Hello,
I intend to package OneDev as I could not find any package for it yet on the AUR. It currently uses JSW (Java Service Wrapper) which is a proprietary tool to wrap it, I am currently contacting the developer in providing the plain Jar without wrapping with proprietary deployment tools, this will also shrink the size of the package because who the fuck wants a proprietary JVM wrapped within every java package?
My issue is, the codebase contains all the libs such as "logback.jar", which I do not want to include within the package because it is a very common dependency, and I feel it will bloat the package and will cause duplicate data within the system where other java packages will have logback with them.
So I was thinking instead of doing this, having separate AUR packages for every dependency, this can already be seen here:;
https://aur.archlinux.org/packages/slf4j
which is a package for slf4j which is in almost every single java codebase!
Looking at the PKGBUILD of this AUR package it installs them under /usr/share/java, but I am not sure if this is conventional or just what the package maintainer has decided to do.
I also recommend that the AUR ArchWiki pages be extended to have guides on how to package every non-binary programming language which is common, as there is currently no "conventional" method of doing it, which means each AUR package has a different way of doing it, one aur package I have adopted bundles all the dependencies with it WHICH IS NOT MAINTAINABLE!!!
A way I think of packages is asking yourself "does this package service one function, and provide ONLY that function", for example if you are bundling a JDK you would not start sticking in the GCC codebases in there because "JDK might want GCC to build it".
Its a poor example but you get the idea, as AUR packagers we need to ensure that the packages are small, and service their purpose with as little to no data duplication as possible!
Thanks for the support :)