[PATCH] gnu: Add roswell.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Pierre Neidhardt
Owner
unassigned
Submitted by
Pierre Neidhardt
Severity
normal
P
P
Pierre Neidhardt wrote on 27 Aug 2019 17:33
(address . guix-patches@gnu.org)
20190827153304.25380-1-mail@ambrevar.xyz
* gnu/packages/lisp.scm (roswell): New variable.
---
gnu/packages/lisp.scm | 50 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)

Toggle diff (82 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d32f4b19bd..696bb393bc 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
@@ -44,11 +44,13 @@
#:use-module (guix build-system asdf)
#:use-module (guix build-system trivial)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages ed)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
@@ -679,6 +681,52 @@ libraries for Machine Learning, Neural Nets and statistical estimation.")
(home-page "http://lush.sourceforge.net/")
(license license:lgpl2.1+)))
+(define-public roswell
+ (package
+ (name "roswell")
+ (version "19.08.10.101")
+ (home-page "https://github.com/roswell/roswell/")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0i72vzzzjwi9lnzzl8y10pp3kq298vhzz3spvsmi8n1yalqwslbf"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("curl" ,curl)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-ssl-certs
+ (lambda _
+ ;; TODO: libcurl does not honor SSL_CERT_DIR et al.
+ ;; See https://issues.guix.gnu.org/issue/25240.
+ ;; Is the following workaround right?
+ (substitute* "src/download.c"
+ (("curl_easy_setopt\\(curl, CURLOPT_URL, uri\\);")
+ "curl_easy_setopt(curl, CURLOPT_URL, uri);
+curl_easy_setopt(curl, CURLOPT_CAINFO, \"/etc/ssl/certs/ca-certificates.crt\");"))
+ #t)))))
+ (synopsis "Common Lisp implementation manager, launcher, and more")
+ (description
+ "Roswell started out as a command-line tool with the aim to make
+installing and managing Common Lisp implementations really simple and easy.
+Roswell has now evolved into a full-stack environment for Common Lisp
+development, and has many features that makes it easy to test, share, and
+distribute your Lisp applications.
+
+Roswell is still in beta. Despite this, the basic interfaces are stable and
+not likely to change.")
+ (license license:expat)))
+
(define-public sbcl-alexandria
(let ((revision "1")
(commit "926a066611b7b11cb71e26c827a271e500888c30"))
--
2.21.0
P
P
Pierre Neidhardt wrote on 27 Aug 2019 17:35
Re: bug#37200: Acknowledgement ([PATCH] gnu: Add roswell.)
(address . 37200@debbugs.gnu.org)
87k1aysjs3.fsf@ambrevar.xyz
This is a work in progress.
In particular, I know of the libcurl issue with SSL_CERT_DIR.
Is the proposed workaround appropriate?

There are still a couple more issues that need fixing.

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl1lTdwACgkQm9z0l6S7
zH9SMAf+O+uixozYNk6xxb1AJZ7wN8o6BYmZCz7huUX18/DnTseDwzSiTBNJ0rQL
h44cGsTy1cd1IVDt7WqTtOXHO56NCvpYRjoIF+8YmwycX46s56vIsAFTgQM21A5R
V6Gh1iLY+Kra9GUx8ixOJPCtH6+CcGwCTeXinUk7BvaT6osz+BUwT9Vqm/sHxCtW
cbXBNjDIDEmyD7weoYkcReXkHvVX8IarJ1r+6aSYmi8i/nzbjIQMY5BdFE8PCDYi
HxR8oSMKD9rY47MqVGA90y2vTp4WJB8QgzlCiypkpSjj2glCksalDxhS3hlEGiE6
pntohuTrJJJdTflPG6J1gayZfGHfcg==
=arQ4
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 16 Sep 2019 10:40
Re: [bug#37200] [PATCH] gnu: Add roswell.
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 37200@debbugs.gnu.org)
87muf4d47u.fsf@gnu.org
Hello Pierre,

Pierre Neidhardt <mail@ambrevar.xyz> skribis:

Toggle quote (2 lines)
> * gnu/packages/lisp.scm (roswell): New variable.

Looks like this patch feel through the cracks…

Toggle quote (10 lines)
> + (lambda _
> + ;; TODO: libcurl does not honor SSL_CERT_DIR et al.
> + ;; See https://issues.guix.gnu.org/issue/25240.
> + ;; Is the following workaround right?
> + (substitute* "src/download.c"
> + (("curl_easy_setopt\\(curl, CURLOPT_URL, uri\\);")
> + "curl_easy_setopt(curl, CURLOPT_URL, uri);
> +curl_easy_setopt(curl, CURLOPT_CAINFO, \"/etc/ssl/certs/ca-certificates.crt\");"))
> + #t)))))

Normally, it’s up to applications using libcurl to do the right thing,
which is (1) to check standard certificate locations like you did above,
and ideally (2) to check some environment variables.

Unfortunately some applications don’t do this (see for instance commit
489d16577e4a6ccc30f3719d9263900089edd842.) In those cases, we usually
do what you did above.

In short, I think it’s a fine workaround.

Toggle quote (10 lines)
> + (description
> + "Roswell started out as a command-line tool with the aim to make
> +installing and managing Common Lisp implementations really simple and easy.
> +Roswell has now evolved into a full-stack environment for Common Lisp
> +development, and has many features that makes it easy to test, share, and
> +distribute your Lisp applications.
> +
> +Roswell is still in beta. Despite this, the basic interfaces are stable and
> +not likely to change.")

Maybe you can drop the second paragraph since it’ll hopefully become
stale. :-)

Thanks!

Ludo’.
P
P
Pierre Neidhardt wrote on 17 Sep 2019 15:05
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37200@debbugs.gnu.org)
87muf3kr83.fsf@ambrevar.xyz
Thanks for the review!

After some discussion with upstream, it does not seem that Roswell can
be used without using a binary blob of SBCL:


So I don't think that makes it a good fit for a Guix package.

A few options:

- Patch Roswell so that it takes Guix' SBCL instead of its own (could be
a lot of work).

- Patchelf the binary blob.

Thoughts?

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl2A2iwACgkQm9z0l6S7
zH+CkwgAgLZPsWfOwa/CiXM6Gp0lBD2ltRtBQ3rFVE1lEZeSRA79kKibjJtulPap
IhjAp1t5h8wJO/Gt8sc7O5V/yVz/WGSYZH2VjchEOdzz57s6KsT2G09zJK/x2kLv
2TQ1/9makVLAyiQRgaz1YFR0WuWkPfgfqpwOyPkiudQ7DRg2dn8zu+hYRlXbdxCf
iPG2tvCiogPRbiABK6HY1y3EutAW1s7ATzvRAkxoNAB7J/dN8flLeqmIHb2dCCGJ
Bctk3YhcKNWWnpVDMgML6Wz5tQQTxpMINGwr+5GzUNjvYcaXx2QjGi1S8w9KXgUb
Ipr97qBQ1LgAmn6tMmuaj4bW1klH3g==
=kUyn
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 18 Sep 2019 14:05
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 37200@debbugs.gnu.org)
87y2ylbyhn.fsf@gnu.org
Hi Pierre,

Pierre Neidhardt <mail@ambrevar.xyz> skribis:

Toggle quote (16 lines)
> Thanks for the review!
>
> After some discussion with upstream, it does not seem that Roswell can
> be used without using a binary blob of SBCL:
>
> https://github.com/roswell/roswell/issues/387
>
> So I don't think that makes it a good fit for a Guix package.
>
> A few options:
>
> - Patch Roswell so that it takes Guix' SBCL instead of its own (could be
> a lot of work).
>
> - Patchelf the binary blob.

It’s clear that “patchelf the binary blob” is not an option in Guix.

The description for Roswell says it’s a tool for “installing and
managing Common Lisp implementations”. If its job is precisely to
download and run pre-built binaries, then perhaps that would require
significant changes in Roswell itself so that it patches the binaries it
downloads?

But then again, if Roswell is about downloading pre-built binaries, we
should be careful about what’s going on. After all, that might be
partly redundant with what Guix does, except that those binaries it
downloads may be non-reproducible or may even lack and build recipe
altogether.

So… the story about these pre-built binaries raises a red flag for me,
and I’m not sure what can be done here.

Thoughts?

Ludo’.
P
P
Pierre Neidhardt wrote on 19 Sep 2019 08:51
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37200@debbugs.gnu.org)
878sqkeq2d.fsf@ambrevar.xyz
I initially wanted to package Roswell so that we can start packaging Lem
(https://github.com/cxxxr/lem)but Lem it turns out the Lem does not
need it anymore.

I guess "Roswell on Guix" can be dropped then.

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl2DJYoACgkQm9z0l6S7
zH8WTQf/U4pnM8bq4y11B8LKiNe/l2xkcxxfQI9LSfwxwVNxlgu1PfYol/6rtCen
AtBzFAf1mWUErE81Ou6zGvGMqFkPfmj12hA1box8b5nKJqEXcS0WktvSzCiMUkfn
5aj2NlbQp1WMBWEj2zuXwXG51/q8DhIPDY84MHwHKrkFAOk0SDUwB48KKqqvL2Jh
48JN3Gmt3PdgqrZMJcNALdOMd1o+choesvXcRLmmEugt7JmZPMf6YOlZFegfwxVr
RwUNCFCNXZkEnpol15XFA9O6otnpUiI8CJWyDKBaXBcR60NYjP71KiFAT56VoH31
0MKzlzCjiIbbCREGnrJ4WpuSg7RFeQ==
=tIYk
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 19 Sep 2019 10:22
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 37200@debbugs.gnu.org)
87r24cy9tm.fsf@gnu.org
Hi Pierre,

Pierre Neidhardt <mail@ambrevar.xyz> skribis:

Toggle quote (4 lines)
> I initially wanted to package Roswell so that we can start packaging Lem
> (https://github.com/cxxxr/lem) but Lem it turns out the Lem does not
> need it anymore.

OK.

Toggle quote (2 lines)
> I guess "Roswell on Guix" can be dropped then.

Your call. If you feel this way, feel free to close this bug.

We can always revisit the issue later if needed.

Thank you,
Ludo’.
P
P
Pierre Neidhardt wrote on 19 Sep 2019 10:31
control message for bug #37200
(address . control@debbugs.gnu.org)
87a7b0d6vo.fsf@ambrevar.xyz
close 37200
quit
--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl2DPOsACgkQm9z0l6S7
zH/BUAgAmvX6cEaGumYrXJX8UqIDwR+BBeFZPMstR7S+zaROoEwW+hJsTxQ2RgzH
SAIqQBxMzDndhtzPou9JnbT74WtiG5KXa0+rw5bXKRcw9QGPq3I/mX9I60P/ynbl
zT3AmQzCP4Xy0DA5xVd8os4wklz2Ksq/7FpNtcgSm/5BCYOtFjrVxyrEe7FgrAo2
e093/l4bQB2mSLStqrlDl7yoNfBbkjq3yDFnlnqzAalhedn3lxSWQMdCG23R1Lzu
VxJm7vebTpJOUu+LrjuR/38trqQGfXslEIT0Ly0rQlPW+k0Gf0tqGER/MR0eL6wO
yF123YwSvzyv0xWj4wPmn4P1yvALyA==
=cFN/
-----END PGP SIGNATURE-----

?