unofficial mirror of guix-patches@gnu.org 
 help / color / Atom feed
* [bug#42000] [PATCH] gnu: Add drip.
@ 2020-06-22  9:31 Pierre Neidhardt
  2020-06-23 12:51 ` Efraim Flashner
  0 siblings, 1 reply; 4+ messages in thread
From: Pierre Neidhardt @ 2020-06-22  9:31 UTC (permalink / raw)
  To: 42000

* 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.
+  (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
-- 
2.26.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#42000] [PATCH] gnu: Add drip.
  2020-06-22  9:31 [bug#42000] [PATCH] gnu: Add drip Pierre Neidhardt
@ 2020-06-23 12:51 ` Efraim Flashner
  2020-06-23 14:38   ` Pierre Neidhardt
  0 siblings, 1 reply; 4+ messages in thread
From: Efraim Flashner @ 2020-06-23 12:51 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 42000

[-- Attachment #1: Type: text/plain, Size: 4315 bytes --]

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>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#42000] [PATCH] gnu: Add drip.
  2020-06-23 12:51 ` Efraim Flashner
@ 2020-06-23 14:38   ` Pierre Neidhardt
  2020-06-26  9:27     ` Pierre Neidhardt
  0 siblings, 1 reply; 4+ messages in thread
From: Pierre Neidhardt @ 2020-06-23 14:38 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: 42000

[-- Attachment #1: Type: text/plain, Size: 700 bytes --]

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!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#42000] [PATCH] gnu: Add drip.
  2020-06-23 14:38   ` Pierre Neidhardt
@ 2020-06-26  9:27     ` Pierre Neidhardt
  0 siblings, 0 replies; 4+ messages in thread
From: Pierre Neidhardt @ 2020-06-26  9:27 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: 42000

[-- Attachment #1: Type: text/plain, Size: 103 bytes --]

Merged with 880939c1a7cb95b5a4fa1a6b2d300bb2033f546f.

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-22  9:31 [bug#42000] [PATCH] gnu: Add drip Pierre Neidhardt
2020-06-23 12:51 ` Efraim Flashner
2020-06-23 14:38   ` Pierre Neidhardt
2020-06-26  9:27     ` Pierre Neidhardt

unofficial mirror of guix-patches@gnu.org 

Archives are clonable:
	git clone --mirror https://yhetil.org/guix-patches/1 guix-patches/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-patches guix-patches/ https://yhetil.org/guix-patches \
		guix-patches@gnu.org
	public-inbox-index guix-patches

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.patches


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git