Subject: [bug#35633] [PATCH] gnu: Add dolibarr.

From: Maxim Cournoyer <[email-masked]>
Date: Sun, 20 Feb 2022 22:32:22 -0500

tags 35633 moreinfo
thanks

Hi swedebugia!

It seems this had fallen into the cracks; apologies!

swedebugia <[email-masked]> writes:

>  From 6250680633cec1752519c37301890d71fe56e874 Mon Sep 17 00:00:00 2001
> From: swedebugia <[email-masked]>
> Date: Wed, 8 May 2019 15:03:51 +0200
> Subject: [PATCH] gnu: Add dolibarr.
>
> * gnu/packages/web.scm (dolibarr): New public variable.

Without a service; this doesn't seem to be readily usable.

In its current form, the package description could be simplified to use
the copy build system, like so:

--8<---------------cut here---------------start------------->8---
modified   gnu/packages/web.scm
@@ -5686,22 +5686,10 @@ (define-public dolibarr
               (sha256
                (base32
                 "0505r6q84b0q7qx0fxcp0rklm2kw3d4qakwmlcgi0a3d04qzdvg6"))))
-    (build-system gnu-build-system)
+    (build-system copy-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; No configure, build or tests
-         (delete 'configure)
-         (delete 'build)
-         (delete 'check)
-         (replace 'install
-           ;; There's no ‘install’ target.  Install files manually.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (dol     (string-append out "/lib/" ,name))
-                    (htdocs "htdocs"))
-               (copy-recursively htdocs (string-append dol "/" htdocs))
-               #t))))))
+     `(#:install-plan
+           (list `("htdocs" ,(string-append "lib/" ,name "/htdocs")))))
     (inputs
      `(("php" ,php)
        ("mariadb" ,mariadb)))
--8<---------------cut here---------------end--------------->8---

Another thing: bundled dependencies.  The htdocs directory installed
contains various bundled PHP/JavaScript libraries such as JQuery as well
as fonts.  These should ideally all be un-bundled, but that's a big
endeavor.

There are some packaging recipes in the upstream repo for RPM for
example, that does some of that unbundling (for fonts an JQuery).  This
would be a good start; see:
https://github.com/Dolibarr/dolibarr/blob/develop/build/rpm/dolibarr_fedora.spec#L106
and
https://github.com/Dolibarr/dolibarr/blob/develop/build/rpm/dolibarr_fedora.spec#L275.

A service and a system test would also be ideal; otherwise the
usefulness of this package in Guix is very limited.

If you are up to the challenge, please send an update!  Otherwise, I'll
close it in a few weeks to avoid having it languish here eternally.

Thank you!

Maxim