Subject: bug#26150: [PATCH 0/15]: Add pplacer and OCaml dependencies.

From: [email-masked] (Ludovic Courtès)
Date: Wed, 05 Apr 2017 23:18:12 +0200

Hi Ben,

Ben Woodcroft <[email-masked]> skribis:

> On 06/03/17 19:16, Ludovic Courtès wrote:

[...]

>> To make progress, how about applying the non-4.01-specific parts of the
>> patch series first (I think you didn’t get any feedback on these, so
>> it’s safe to assume they’re OK if ‘guix lint’ has nothing to say)?
>>
>> Second, could you submit the bits about supporting 4.01 to guix-patches?
>> I’ll take a look if nobody beats me at it.
> OK. I've pushed the non-4.01-specific parts to master, and attached
> here a modified patch series which contains the rest. There's 15 steps
> but most are quite trivial.

[...]

>>>From 1e39824159fe0a43276c810fb514f56761fb8dcd Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Mon, 2 Jan 2017 17:18:59 +1000
> Subject: [PATCH 01/15] gnu: Add ocaml-4.01.
>
> * gnu/packages/ocaml.scm (ocaml-4.01): New variable.

OK.

>>>From 6acdb4749edfeeb8a8fac3b6df75eeebad9c42cd Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Mon, 2 Jan 2017 22:29:28 +1000
> Subject: [PATCH 02/15] gnu: Add ocaml4.01-findlib.
>
> * gnu/packages/ocaml.scm (ocaml4.01-findlib): New variable.

OK.

>>>From ec75318098c99f57bb7f769c7989e929cc3fa380 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Mon, 2 Jan 2017 22:23:34 +1000
> Subject: [PATCH 03/15] build-system: Add package-with-ocaml4.01.
>
> * guix/build-system/ocaml.scm (default-ocaml4.01, default-ocaml4.01-findlib,
> package-with-explicit-ocaml, package-with-ocaml4.01,
> strip-ocaml4.01-variant): New variables.

[...]

> +(define package-with-ocaml4.01
> +  (package-with-explicit-ocaml (delay (default-ocaml4.01))
> +                               (delay (default-ocaml4.01-findlib))
> +                                "ocaml-" "ocaml4.01-"
> +                                #:variant-property 'ocaml4.01-variant))

I choked for a few hours on this one, my main problem being that I
didn’t want us to duplicate the logic from build-system/python.scm.
This led to commits f37f2b83fa95c1fe2bf01c4b8072cfc23d4c67ec and
1618006d0bc9bfdc63f4d199fd980f29ecc78ec4.

Is the “variant” property really needed?  In Python it’s needed because
the 2.x variants sometimes need a different set of dependencies that
‘package-with-python2’ cannot automatically guess.  Conversely,
‘package-with-guile-2.0’ has no need for that.

If the variant is not needed, then I recommend using
‘package-with-input-rewriting’.

If the variant is needed, then could you use ‘package-mapping’ as in
1618006d0bc9bfdc63f4d199fd980f29ecc78ec4?

>>>From 6b98a10a41179654788f49f9eb837fff0f94de65 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 18 Mar 2017 08:59:01 +1000
> Subject: [PATCH 04/15] gnu: Add ocaml4.01-bisect.
>
> * gnu/packages/ocaml.scm (ocaml4.01-bisect): New variable.
> (ocaml-bisect)[properties]: New field.

[...]

> +(define-public ocaml4.01-bisect
> +  (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml-bisect))))
> +    (package
> +      (inherit base)
> +      (arguments
> +       `(#:ocaml ,ocaml-4.01
> +         ,@(strip-keyword-arguments '(#:make-flags) (package-arguments base))))
> +      (native-inputs `(,@(alist-delete "camlp4" (package-native-inputs base))))
> +      (propagated-inputs
> +       `(,@(alist-delete "camlp4" (package-propagated-inputs base)))))))

Could you add comments explaining why camlp4 needs to be propagated and
 why #:make-flags is removed?

>>>From e9deb37a918beba30fb3ce3c1f39f14dba28f6d4 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 18 Mar 2017 07:10:55 +1000
> Subject: [PATCH 05/15] gnu: Add ocaml4.01-sqlite3.
>
> * gnu/packages/ocaml.scm: (ocaml4.01-sqlite3): New variable.
> (ocaml-sqlite3)[properties]: New field.

OK.

>>>From 6861038410dee1ea663a5129d84f10a6f1cd6227 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 18 Mar 2017 07:14:17 +1000
> Subject: [PATCH 06/15] gnu: Add ocaml4.01-csv.
>
> * gnu/packages/ocaml.scm (ocaml4.01-csv): New variable.
> (ocaml-csv)[properties]: New field.

OK.

>>>From a64bee2e8d248cb227801a0b915df06530d657e0 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 18 Mar 2017 07:15:58 +1000
> Subject: [PATCH 07/15] gnu: Add ocaml4.01-gsl.
>
> * gnu/packages/maths.scm (ocaml4.01-gsl): New variable.
> (ocaml-gsl)[properties]: New field.

OK.

>>>From 7c0aaffa5e556e46a9a61319714e43f93cc808d4 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 18 Mar 2017 07:17:07 +1000
> Subject: [PATCH 08/15] gnu: Add ocaml4.01-mcl.
>
> * gnu/packages/machine-learning.scm (ocaml4.01-mcl): New variable.
> (ocaml-mcl)[properties]: New field.

OK.

>>>From 2d132b3c0d0604992dc5176cb5304978c06ed007 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Fri, 6 Jan 2017 22:15:12 +1000
> Subject: [PATCH 09/15] gnu: Add ocaml4.01-camlzip.
>
> * gnu/packages/ocaml.scm (ocaml4.01-camlzip): New variable.

OK.

>>>From 9902aa5db83ee2b0879f4f350f7e827607b21cfd Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Fri, 6 Jan 2017 22:17:34 +1000
> Subject: [PATCH 10/15] gnu: Add ocaml4.01-qtest.
>
> * gnu/packages/ocaml.scm (ocaml4.01-qtest): New variable.
> (ocaml-qtest)[properties]: New field.

OK.

>>>From 6d3b0543c22323944f13d5ca7c7233b94828a144 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Fri, 6 Jan 2017 22:34:01 +1000
> Subject: [PATCH 11/15] gnu: Add ocaml4.01-ounit.
>
> * gnu/packages/ocaml.scm (ocaml4.01-ounit): New variable.
> (ocaml-ounit)[properties]: New field.

OK.

>>>From f907957a0243c43dfe9c0c29400545b115ec92f8 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 4 Feb 2017 12:15:39 +1000
> Subject: [PATCH 12/15] gnu: Add ocaml4.01-xmlm.
>
> * gnu/packages/ocaml.scm (ocaml4.01-xmlm): New variable.
> (ocaml-xmlm)[properties]: New field.

OK.

>>>From 38c70285408cf1fd3c0d571df6b8e35abcc63236 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 4 Feb 2017 12:16:50 +1000
> Subject: [PATCH 13/15] gnu: Add ocaml4.01-batteries.
>
> * gnu/packages/ocaml.scm (ocaml4.01-batteries): New variable.
> (ocaml-batteries)[properties]: New field.

OK.

>>>From 0253fdf1f723a8029f6e2511bfcad6543394b00a Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 4 Feb 2017 15:23:45 +1000
> Subject: [PATCH 14/15] gnu: Add taxtastic.
>
> * gnu/packages/bioinformatics.scm (taxtastic): New variable.

OK.

>>>From 3d4e5e2e73067c5968e38abd1fe0e88204d6d9f8 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <[email-masked]>
> Date: Sat, 4 Feb 2017 15:25:29 +1000
> Subject: [PATCH 15/15] gnu: Add pplacer.
>
> * gnu/packages/bioinformatics.scm (pplacer, pplacer-scripts): New
> variables.

[...]

> +      (home-page "http://matsen.fhcrc.org/pplacer")
> +      (license license:gpl3))))

Version 3 only?

> +;; This package is installed alongside 'pplacer'.  It is a separate package so
> +;; that it can use the python-build-system for the scripts that are
> +;; distributed alongside the main OCaml binaries.
> +(define pplacer-scripts
> +  (package
> +    (inherit pplacer)
> +    (name "pplacer-scripts")

Maybe add a different synopsis?

Apologies for taking so long!

Thanks,
Ludo’.