[packaging] split native libs from the main jar - #834
Conversation
…ty and bothering when creating distribution or docker images, also makes creating fatjars/shades quite slow for nothing
|
Hi, thanks for the PR! Just the description is a little bit confusing - can you clarify what is it trying to achieve? This part:
should be already covered by the existence of a |
|
totally missed the nolib jar so closing thanks! edit: @staticlibs .so libs contain the java code? this kind of work but is ackward and require more audit work (think CVE linked to a jar, now it is linked to 7 jars or alike) |
M, no, There is a number of JAR files, The "universal" (Linux x86_64, Windows x86_64 and Mac universal) JAR and platform specific JARs contain It is expected, that any non-trivial re-packaging process only consumes the
M, I would think a CVE would apply to the whole JDBC release (all artifacts in a Maven version) or even to all DuckDB clients (if CVE is inside the engine). |
|
@staticlibs I was more referencing that: the common pactise is that classified jar only contains the .so the unclassified (or nolib is ok there) will load.
this is the case due to current packaging but downgrading the nolib jar could be a workaround (often) if only java code is affected - it is what I had in mind when I wrote previous message. |
|
Thanks for clarification! Yes, the point is clear now, the Java part is indeed included with platform JARs. I cannot immediately say whether it is better in include it or to require 2 dependencies. Current state may be more convenient to users who need to include only a single dependency. If the point deemed important - please feel free to open an issue to track it (right now it is not clear to me which variant is better). |
it makes it fatty and bothering when creating distribution or docker images, also makes creating fatjars/shades quite slow for nothing
design: duckdb_jdbc = empty jar (for compatibility of pom but the jar is technically useless) with as dependency (pom) java lib + 4 historical native lib, duckdb_jdbc_java = java code, then one jar per native lib
note: review of release process is welcomed, I'm not 100% sure what I did is aligned on the practise