Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 704808

Summary: An eclass for creating jars and uberjars for clojure programs
Product: Gentoo Linux Reporter: anonymous <fakih18716>
Component: EclassesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED CANTFIX    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description anonymous 2020-01-05 05:28:39 UTC
To compile https://github.com/borkdude/babashka, I first need to compile an uberjar from the source and its dependencies and compile the uberjar into a GraaVM binary.

I will deal with GraalVM later. For now, I want to know how to create an eclass for clojure jars and clojure uberjars.

clojure depends on spec.alpha and core.specs.alpha java packages to bootstrap itself from java.

java-utils-2.eclass and java-pkg-simple.eclass seem relevant.
In my theory,

* Compile a list of java source files into class files with transitively calculated jar dependencies.
* Put class files in a jar with a simple manifest at a specific place.
* Compile a list of clojure source files with clojure jar with transitively calculated jar dependencies.
* Put clojure class files in a jar with a simple manifest.
* When you want to create an uberjar, extract transitive jar dependencies and the main jar into one spot and make a jar out of it.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2020-01-05 13:38:01 UTC
(In reply to crocket from comment #0)
> To compile https://github.com/borkdude/babashka, I first need to compile an
> uberjar from the source and its dependencies and compile the uberjar into a
> GraaVM binary.
> 
> I will deal with GraalVM later. For now, I want to know how to create an
> eclass for clojure jars and clojure uberjars.

This website (https://bugs.gentoo.org/) is intended to be used as a public notification and commmunication system to report and fix bugs in Gentoo projects. It is not intended to serve as a forum (https://forms.gentoo.org/). Please use our forums to discuss your new eclass.