Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 704808 - An eclass for creating jars and uberjars for clojure programs
Summary: An eclass for creating jars and uberjars for clojure programs
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-05 05:28 UTC by crocket
Modified: 2020-01-05 13:38 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description crocket 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.