On Mon, Jun 22, 2020 at 11:31:54AM +0200, Pierre Neidhardt wrote: > * gnu/packages/java.scm (drip): New variable. > --- > gnu/packages/java.scm | 52 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm > index d5bc713c70..d4bb88cf49 100644 > --- a/gnu/packages/java.scm > +++ b/gnu/packages/java.scm > @@ -165,6 +165,58 @@ defined in The Java Language Specification into the bytecoded instruction set > and binary format defined in The Java Virtual Machine Specification.") > (license license:ibmpl1.0))) > > +(define-public drip > + ;; Last release is from 2014, with few important commits afterwards. 'with few important commits' has a negative connotation, while 'with a few important commits' has a positive connotation. Considering we're using a commit after the release I assume we want those commits. There's probably something more concrete than that but we want the extra 'a'. > + (let ((commit "a4bd00df0199e78243847f06cc04ecaea31f8f08")) > + (package > + (name "drip") > + (version (git-version "0.2.4" "1" commit)) > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/ninjudd/drip") > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "0wzmjwfyldr3jn49517xd8yn7dgdk8h88qkga3kjyg1zc375ylg2")))) > + (build-system gnu-build-system) > + (native-inputs > + `(("jdk" ,icedtea "jdk"))) > + (arguments > + `(#:tests? #f ; No tests. > + #:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (add-before 'install 'fix-wrapper > + (lambda* (#:key inputs #:allow-other-keys) > + (let ((jps (string-append (assoc-ref inputs "jdk") "/bin/jps"))) > + (substitute* "bin/drip" > + (("jps") jps) > + (("brew update && brew upgrade drip") "guix pull && guix install drip") > + ;; No need to make: > + (("\\(cd -- \"\\$drip_dir\" && make -s\\) \\|\\| exit 1") "") > + ;; No need to include source: > + (("\\[\\[ -r \\$drip_dir/src/org/flatland/drip/Main\\.java \\]\\]") > + "true"))))) Don't forget to return #t and make sure the lines aren't too long. > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin"))) > + (mkdir-p bin) > + (for-each > + (lambda (file) > + (install-file (string-append "bin/" file) bin)) > + '("drip" "drip_daemon" "drip_proxy")) > + (install-file "drip.jar" out))))))) Is drip.jar supposed to be at the root of %output? Also, this phase should return #t. > + (home-page "https://github.com/ninjudd/drip") > + (synopsis "Fast Java Virtual Machine launching") I see Github has "Fast JVM launching without the hassle of persistent JVMs." which doesn't look too long. Alternatively I'd consider switching 'Fast' to 'Faster'. > + (description "Drip is a launcher for the Java Virtual Machine that > +provides much faster startup times than the java command. The @command{drip} ^@command{java} here too > +script is intended to be a drop-in replacement for the @command{java} command, > +only faster.") > + (license license:epl1.0)))) > + > ;; This is the last version of GNU Classpath that can be built without ECJ. > (define classpath-bootstrap > (package > -- > 2.26.2 > I have nothing to test it with but it looks good with those few changes. -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted