Message ID | 20200622093154.15486-1-mail@ambrevar.xyz |
---|---|
State | Accepted |
Headers | show |
Series | [bug#42000] gnu: Add drip. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
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 <efraim@flashner.co.il> writes: > Don't forget to return #t and make sure the lines aren't too long. `guix lint' does not complain :) >> + (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? The `drip' script looks at "..". Alternatively, I could patch the script. I think I'll do that. > I have nothing to test it with but it looks good with those few changes. Thanks for you review!
Merged with 880939c1a7cb95b5a4fa1a6b2d300bb2033f546f.
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. + (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"))))) + (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))))))) + (home-page "https://github.com/ninjudd/drip") + (synopsis "Fast Java Virtual Machine launching") + (description "Drip is a launcher for the Java Virtual Machine that +provides much faster startup times than the java command. The @command{drip} +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