Hi, I am in the process of packaging Clojure 1.2 for Debian. While doing so, I noticed that Clojure 1.1 AOT compiled packages, such as clojure-contrib, won't work with 1.2. This led me to discover that AOT compiled packages are in general not guaranteed to work between Clojure versions. The way I see it we have two possible solutions:
1) Do nothing. This would essentially mean all clojure libraries would need to move in lockstep with the clojure package. 2) Introduce multi version support for clojure. Each version of clojure would have a version number (major.minor) as part of the package name. I guess a disadvantage here is that new Clojure versions may be slow moving through NEW. To support 2) for libraries we would either need to disable AOT compilation or have each library build multiple binary versions with the clojure version embedded in the package name. I understand that some scenarios (e.g. gen-class) require AOT so we may be forced to do the latter. Maven is an issue. For those clojure packages that build using maven, we may need to have library packages invoke maven multiple times at build time (for the different clojure versions), and rewrite poms to specify version numbers in the artifact IDs (for clojure packages only). From reading the maven-debian-helper code I could not see how this could be done easily. Also, in the future we may need something similar for leiningen, gant or other build systems. I don't think upstream has a specific solution to this problem, all pom.xml files I have seen depend on a specific version of clojure. I'd appreciate any possible feedback on this proposal. If there are any Maven experts around I would like to know how feasible the maven parts are. Thanks, -- Peter -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

