unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#31250] [PATCH] Add leiningen
@ 2018-04-24 15:44 Charlie Ritter
  2018-04-25 20:54 ` Ludovic Courtès
  2023-07-26 13:21 ` guix-patches--- via
  0 siblings, 2 replies; 6+ messages in thread
From: Charlie Ritter @ 2018-04-24 15:44 UTC (permalink / raw)
  To: 31250


[-- Attachment #1.1: 0001-gnu-Add-leiningen.patch --]
[-- Type: text/x-patch, Size: 2305 bytes --]

From eac978c99ef288926530dcdee64cc9e3b7b8fe32 Mon Sep 17 00:00:00 2001
From: Charlie Ritter <chewzerita@posteo.net>
Date: Tue, 24 Apr 2018 11:42:39 -0400
Subject: [PATCH] gnu: Add leiningen.

* gnu/packages/java.scm (leiningen): New variable.
---
 gnu/packages/java.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 500f27dcf..ffbd40890 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1861,6 +1862,38 @@ designs.")
                      license:asl2.0
                      license:cpl1.0)))))
 
+(define-public leiningen
+  (package
+    (name "leiningen")
+    (version "2.8.1")
+    (source (origin
+              (method url-fetch/tarbomb)
+              (uri (string-append
+                    "https://github.com/technomancy/"
+                    name "/archive/" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hjjszxqhc9sh31dpirak3c5ws90z41ypcc16y4s1q35ydlajv3w"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file (string-append
+                            ,name "-" ,version "/bin/lein")
+                           (string-append
+                            (assoc-ref outputs "out") "/bin")))))))
+    (home-page "https://leiningen.org")
+    (synopsis "Automating Clojure projects without setting your hair on fire")
+    (description "Leiningen is the easiest way to use Clojure.  With a focus
+on project automation and declarative configuration, it gets out of your way
+and lets you focus on your code.")
+    (license license:epl1.0)))
+
 (define-public javacc
   (package
     (name "javacc")
-- 
2.17.0


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

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

* [bug#31250] [PATCH] Add leiningen
  2018-04-24 15:44 [bug#31250] [PATCH] Add leiningen Charlie Ritter
@ 2018-04-25 20:54 ` Ludovic Courtès
  2018-04-26 12:41   ` Nils Gillmann
  2023-07-26 13:21 ` guix-patches--- via
  1 sibling, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2018-04-25 20:54 UTC (permalink / raw)
  To: Charlie Ritter; +Cc: 31250

Hello,

Charlie Ritter <chewzerita@posteo.net> skribis:

> From eac978c99ef288926530dcdee64cc9e3b7b8fe32 Mon Sep 17 00:00:00 2001
> From: Charlie Ritter <chewzerita@posteo.net>
> Date: Tue, 24 Apr 2018 11:42:39 -0400
> Subject: [PATCH] gnu: Add leiningen.
>
> * gnu/packages/java.scm (leiningen): New variable.

Good to see the family of package managers *and* Lisps grow in Guix.
:-)

> +    (source (origin
> +              (method url-fetch/tarbomb)
> +              (uri (string-append
> +                    "https://github.com/technomancy/"
> +                    name "/archive/" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0hjjszxqhc9sh31dpirak3c5ws90z41ypcc16y4s1q35ydlajv3w"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)
> +         (delete 'build)
> +         (delete 'check)
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (install-file (string-append
> +                            ,name "-" ,version "/bin/lein")
> +                           (string-append
> +                            (assoc-ref outputs "out") "/bin")))))))

Unfortunately installing the ‘lein’ script alone won’t cut it.  The
issue is that, AIUI, the script downloads and installs pre-built Jars on
a first run (through its ‘self_install’ function).

The policy for Guix is to build things from source.  So we would have to
provide Leiningen and its dependencies as packages built from source,
and to remove the auto-download functionality from the script.

That’s obviously more work.  WDYT?

Thanks,
Ludo’.

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

* [bug#31250] [PATCH] Add leiningen
  2018-04-25 20:54 ` Ludovic Courtès
@ 2018-04-26 12:41   ` Nils Gillmann
  2018-04-27  5:16     ` Pjotr Prins
  0 siblings, 1 reply; 6+ messages in thread
From: Nils Gillmann @ 2018-04-26 12:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Charlie Ritter, 31250

Ludovic Courtès transcribed 1.7K bytes:
> Hello,
> 
> Charlie Ritter <chewzerita@posteo.net> skribis:
> 
> > From eac978c99ef288926530dcdee64cc9e3b7b8fe32 Mon Sep 17 00:00:00 2001
> > From: Charlie Ritter <chewzerita@posteo.net>
> > Date: Tue, 24 Apr 2018 11:42:39 -0400
> > Subject: [PATCH] gnu: Add leiningen.
> >
> > * gnu/packages/java.scm (leiningen): New variable.

Nice!

> Good to see the family of package managers *and* Lisps grow in Guix.
> :-)
> 
> > +    (source (origin
> > +              (method url-fetch/tarbomb)
> > +              (uri (string-append
> > +                    "https://github.com/technomancy/"
> > +                    name "/archive/" version ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +                "0hjjszxqhc9sh31dpirak3c5ws90z41ypcc16y4s1q35ydlajv3w"))))
> > +    (build-system ant-build-system)
> > +    (arguments
> > +     `(#:phases
> > +       (modify-phases %standard-phases
> > +         (delete 'configure)
> > +         (delete 'build)
> > +         (delete 'check)
> > +         (replace 'install
> > +           (lambda* (#:key outputs #:allow-other-keys)
> > +             (install-file (string-append
> > +                            ,name "-" ,version "/bin/lein")
> > +                           (string-append
> > +                            (assoc-ref outputs "out") "/bin")))))))
> 
> Unfortunately installing the ‘lein’ script alone won’t cut it.  The
> issue is that, AIUI, the script downloads and installs pre-built Jars on
> a first run (through its ‘self_install’ function).

Yes, that's why my attempt at leiningen has been "sleeping" for a long time now...

> The policy for Guix is to build things from source.  So we would have to
> provide Leiningen and its dependencies as packages built from source,
> and to remove the auto-download functionality from the script.

But this is on first run, not during the installation as far as I remember.
So in my opinion that's not an immediate blocker for the initial package.
The obvious fix afterwards is to apply the building from source.

> That’s obviously more work.  WDYT?
> 
> Thanks,
> Ludo’.
> 
> 
> 

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

* [bug#31250] [PATCH] Add leiningen
  2018-04-26 12:41   ` Nils Gillmann
@ 2018-04-27  5:16     ` Pjotr Prins
  2018-04-28 20:44       ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Pjotr Prins @ 2018-04-27  5:16 UTC (permalink / raw)
  To: Nils Gillmann; +Cc: Charlie Ritter, 31250

On Thu, Apr 26, 2018 at 12:41:32PM +0000, Nils Gillmann wrote:
> > The policy for Guix is to build things from source.  So we would have to
> > provide Leiningen and its dependencies as packages built from source,
> > and to remove the auto-download functionality from the script.
> 
> But this is on first run, not during the installation as far as I remember.
> So in my opinion that's not an immediate blocker for the initial package.
> The obvious fix afterwards is to apply the building from source.

We also packaged tools like conda that download binaries when run.

Adding Leiningen may accelerate using Clojure from Guix and support
will get better over time. Every time Rich Hickey talks about
deployment I am thinking he should be introduced to Guix.

Thanks for this!

Pj.

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

* [bug#31250] [PATCH] Add leiningen
  2018-04-27  5:16     ` Pjotr Prins
@ 2018-04-28 20:44       ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-04-28 20:44 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: Charlie Ritter, Nils Gillmann, 31250

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

> On Thu, Apr 26, 2018 at 12:41:32PM +0000, Nils Gillmann wrote:
>> > The policy for Guix is to build things from source.  So we would have to
>> > provide Leiningen and its dependencies as packages built from source,
>> > and to remove the auto-download functionality from the script.
>> 
>> But this is on first run, not during the installation as far as I remember.
>> So in my opinion that's not an immediate blocker for the initial package.
>> The obvious fix afterwards is to apply the building from source.
>
> We also packaged tools like conda that download binaries when run.

True, that’s not great, and Leiningen may actually do the same thing as
part of its normal job…

I think it’s good to estimate how difficult it would be to build
Leiningen from source, and then we can decide what to do.

Ludo’.

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

* [bug#31250] [PATCH] Add leiningen
  2018-04-24 15:44 [bug#31250] [PATCH] Add leiningen Charlie Ritter
  2018-04-25 20:54 ` Ludovic Courtès
@ 2023-07-26 13:21 ` guix-patches--- via
  1 sibling, 0 replies; 6+ messages in thread
From: guix-patches--- via @ 2023-07-26 13:21 UTC (permalink / raw)
  To: 31250


[-- Attachment #1.1: Type: text/plain, Size: 3643 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hello,

I did take a look at what Nix does and apparently one should use
lein-pkg instead of lein and perform some regexp replaces.

Here's what I have, but it doesn't work since my Guix knowledge is too
small (I added comments where appropriate, also I think it's better to
use Codeberg than GitHub):

```
(use-modules (guix)
             (guix download)
             ((guix licenses) #:prefix license:)
             (guix packages)
             (guix build-system ant)
             (guix build-system copy)
             (gnu packages clojure)
             (gnu packages wget))


(define-public leiningen-jar-standalone
  ;; 1. fetch https://codeberg.org/attachments/43cebda5-a7c2-405b-b641-5143a00051b5 (leiningen-2.10.0-standalone.jar)
  (package
    (name "leiningen-jar-standalone")
    (version "2.10.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://codeberg.org/attachments/43cebda5-a7c2-405b-b641-5143a00051b5"))
             (file-name (string-append "leiningen-" version "-standalone.jar"))
             (sha256
              (base32
               "0d5vmpyp9ddxpj1s5c60fv2f5iimz1chbgfhchlaqxa0sfx9jwnj"))))
    (build-system copy-build-system)
    (home-page "https://leiningen.org")
    (synopsis "Automating Clojure projects without setting your hair on fire")
    (description "Leiningen is the easiest way to use Clojure.  With a focus
on project automation and declarative configuration, it gets out of your way
and lets you focus on your code.")
    (license license:epl1.0)))


(define-public leiningen
  (package
    (name "leiningen")
    (version "2.10.0")
    (source (origin
             (method url-fetch/tarbomb)
             ;; https://codeberg.org/leiningen/leiningen/archive/2.10.0.zip
             (uri (string-append
                   "https://codeberg.org/leiningen/"
                   name "/archive/" version ".tar.gz"))
              (sha256
               (base32
                "0hxp8qlxcn7svskvvhalyk0ajaqd56nma03vq96w7d2ajghdn13b"))))
    (build-system ant-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (delete 'configure)
         (delete 'build)
         (delete 'check)
    ;; TODO
    ;; 2. replace 'LEIN_JAR=/usr/share/java/leiningen-$LEIN_VERSION-standalone.jar' "LEIN_JAR=$out/share/$JARNAME"
    ;; 3 . wrapProgram $out/bin/lein
    ;;       --prefix PATH ":" "${lib.makeBinPath [ rlwrap coreutils ]}"
    ;;       --set LEIN_GPG ${gnupg}/bin/gpg
    ;;       --set JAVA_CMD ${jdk}/bin/java
         (replace 'install
                  (lambda* (#:key outputs #:allow-other-keys)
                           (install-file (string-append
                                          ,name "/bin/lein-pkg")
                                         (string-append
                                          (assoc-ref outputs "out") "/bin/lein")))))))
    (native-inputs (list leiningen-jar-standalone))
    ;; (build-inputs (list clojure clojure-tools))
    (home-page "https://leiningen.org")
    (synopsis "Automating Clojure projects without setting your hair on fire")
    (description "Leiningen is the easiest way to use Clojure.  With a focus
on project automation and declarative configuration, it gets out of your way
and lets you focus on your code.")
    (license license:epl1.0)))

leiningen
```
-----BEGIN PGP SIGNATURE-----

iIMEARYIACsWIQQeBFZmqKTSqjEi1nTzlEDXxNbhWAUCZMEd1A0cY2dlbmllQHBt
Lm1lAAoJEPOUQNfE1uFYOFwBAJ2bDsW2vrysvvcWLgwpOCpz0wKvNGYSdFA/9ZJv
aNsOAQCBI3BQxW7ZDU4moGSaw/27n1k6oKP90PVID8J+RojHDg==
=5cDc
-----END PGP SIGNATURE-----

[-- Attachment #1.2: publickey - cgenie@pm.me - 9cc42b0a.asc --]
[-- Type: application/pgp-keys, Size: 681 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]

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

end of thread, other threads:[~2023-07-26 15:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-24 15:44 [bug#31250] [PATCH] Add leiningen Charlie Ritter
2018-04-25 20:54 ` Ludovic Courtès
2018-04-26 12:41   ` Nils Gillmann
2018-04-27  5:16     ` Pjotr Prins
2018-04-28 20:44       ` Ludovic Courtès
2023-07-26 13:21 ` guix-patches--- via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).