Hi, replying to a few emails at once. The ant-build-system uses zip -0 to produce an uncompressed archive. By default, jar produces a compressed one, so there's a repack phase for that: http://git.savannah.nongnu.org/cgit/guix.git/tree/guix/build/ant-build-system.scm#n226 Embedding the classpath in the manifest is possible but would not have the expected effect. That's because a line in the manifest cannot exceed 72 bytes (see "line length" in https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files), so the classpath will look like: Class-Path: ../../../1234567891011 1213141516/share/java/foo.jar Although java would read that fine, the grafter will not see it, nor be able to graft foo in a meaningful manner: java would still use the ungrafted version even if another file references foo. Le 18 octobre 2022 16:56:01 GMT+02:00, Maxim Cournoyer a écrit : >Hello, > >Maxim Cournoyer writes: > >> Tobias Geerinckx-Rice writes: > >[...] > >>> Groan. Which package(s) compress .jars? >> >> Oh, aren't they all? I hadn't realized .jar compression was optional. > >Actually, reading [0] again, it seems a JAR *is* a zip archive, so >cannot be either compressed or uncompressed. > >[0] https://docs.oracle.com/en/java/javase/19/docs/specs/jar/jar.html > >-- >Thanks, >Maxim