Just fyi, it seems that b/jar doesn't support sections for the manifest file. Sections are groups which start with Name: and have section-specific entries in them. I know Capsule uses this for having platform-specific information about how to start.
Here's an example of use:
Main-Class: clojure.main
Name: Frank
Main-Class: frank.clojure.main
❯ clj
Clojure 1.10.3
user=> (require '[ :as io])
nil
user=> (io/input-stream "/tmp/MANIFEST.MF")
#object[java.io.BufferedInputStream 0x69ce2f62 "java.io.BufferedInputStream@69ce2f62"]
user=> (def mf (java.util.jar.Manifest. (io/input-stream "/tmp/MANIFEST.MF")))
#'user/mf
user=> (.getAttributes mf "Frank")
{#object[java.util.jar.Attributes$Name 0x2e3a5237 "Main-Class"] "frank.clojure.main"}
user=> (.getMainAttributes mf)
{#object[java.util.jar.Attributes$Name 0x2e3a5237 "Main-Class"] "clojure.main"}
user=> (.getEntries mf)
{"Frank" {#object[java.util.jar.Attributes$Name 0x2e3a5237 "Main-Class"] "frank.clojure.main"}}
Can you file a request on ask Clojure?
Absolutely 🙂
Capsule will look at something like this:
JVM-Args: -Xms256m
Name: Windows
JVM-Args: -Xmx1G
Name: Linux
JVM-Args: -Xmx2G
I'm not sure if it merges/overrides in that case off the top of my head.https://clojure.github.io/tools.build/clojure.tools.build.api.html#var-create-basis I stopped reading the :user in pack (and very happy to see how easy this is now!) but one thing that did come up is users specifying :mvn/repos that only worked on their machine. e.g. a user behind a firewall trying to build an open source library might have to specify :mvn/repos to be a particular proxy.
We support maven proxies in settings.xml
That way it's external to what's in mvn/repos. Not sure if that covers what you're asking
Ah, that might not have been the case when I added that code N years ago. It's probably no longer relevant then 🙂