guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#60250] [PATCH] gnu: Add bees.


From: Adam Faiz
Subject: [bug#60250] [PATCH] gnu: Add bees.
Date: Thu, 22 Dec 2022 18:52:38 +0000

Hi,

#~(list (string-append "CC=" #$(cc-for-target))
+                   (string-append "DESTDIR=" #$output)
+                   (string-append "BEES_VERSION=" #$version)
+                   "PREFIX=''"
+                   "LIBEXEC_PREFIX=/lib/bees"
The LIBEXEC_PREFIX shouldn't be set to this, this is actually a bug with beesd.in and also the sed invocation(or $TEMPLATE_COMPILER which is what it's called in the Makefile).

#~(modify-phases %standard-phases
+               (delete 'configure)
+               (add-after 'install 'fix-path
+                 (lambda _
+                   (substitute* (string-append #$output "/sbin/beesd")
+                     (("/lib/bees/bees" all)
+                      (string-append #$output all))))))))
The 'fix-path phase isn't necessary, and the LIBEXEC_PREFIX doesn't need to be set. The snippet below fixes the bug in bees:

              (modules '((guix build utils)))
              (snippet
               #~(begin
                   (substitute* "Defines.mk"
                     (("^sed.*" all)
                      (string-append all
                                     "\t\t-e's#@DESTDIR@#$(DESTDIR)#' \\\n")))
                   (substitute* "scripts/beesd.in"
                     (("@LIBEXEC_PREFIX@") "@DESTDIR@/@LIBEXEC_PREFIX@"))))))

The files lib/city.cc and include/crucible/city.h need to be unbundled and the cityhash included in guix used instead. The cityhash package needs to be in the inputs, and these files need to be deleted as part of the snippet above:> (for-each delete-file
                             '("lib/city.cc" "include/crucible/city.h"))

It appears that bees hasn't been built on a non-systemd distribution, because an optional feature hard fails. This fixes it, the systemd unit files are installed conditionally anyways:
                   (substitute* "Makefile"
                     (("pkg-config systemd --variable=systemdsystemunitdir" all)
                      (string-append all " || true")))

                   (substitute* "lib/Makefile"
                     (("city.o.*") ""))
                   (substitute* "src/bees-hash.cc"
                     (("#include .crucible/city.h.") "#include <city.h>"))
These substitutions remove references to the bundled cityhash(which is 11 years old!)

Native inputs and inputs for bees:
    (native-inputs
     (list pkg-config markdown))
    (inputs
     (list cityhash))

All the modifications made as part of the snippet should definitely be upstreamed, could you do that for me?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]