Subject: [bug#56858] [PATCH] gnu: libcgroup: Update to 2.0.2.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 09 Aug 2022 17:37:02 +0200

Hi,

"(" <[email-masked]> skribis:

> On Mon Aug 1, 2022 at 6:42 AM BST, muradm wrote:
>> Is there a guideline where home-page should be? I find it more
>> DRY when reusing.
> Almost every package in Guix puts it directly above synopsis, though
> you do have a point about DRY.

Yeah IMO it’s a good idea to reuse ‘home-page’ like this patch does.

>> Their repo is not suitable for building from, instead
>> they release sources manually.
> Looks okay to me: <https://github.com/libcgroup/libcgroup/tree/v2.0.2>
> But there is a problem with vendoring googletest, it seems. You'll want
> to use the system's googletest, and (recursive? #t) in the git-reference
> to clone the tests repo. Also, the tarball seems to contain pregenerated
> autotools files, which are discouraged by Guix.

So, first things first.  The priority should be to run tests and remove
the bundled googletest, which I tried with the patch below.

Now, tests won’t run because apparently they try to use ‘sudo’ (!):

--8<---------------cut here---------------start------------->8---
Traceback (most recent call last):
  File "/tmp/guix-build-libcgroup-2.0.2.drv-0/libcgroup-2.0.2/tests/ftests/./ftests.py", line 353, in <module>
    sys.exit(main(config))
  File "/tmp/guix-build-libcgroup-2.0.2.drv-0/libcgroup-2.0.2/tests/ftests/./ftests.py", line 337, in main
    setup(config, record_time=True)
  File "/tmp/guix-build-libcgroup-2.0.2.drv-0/libcgroup-2.0.2/tests/ftests/./ftests.py", line 170, in setup
    Run.run(['sudo', 'lxd', 'init', '--auto'])
  File "/tmp/guix-build-libcgroup-2.0.2.drv-0/libcgroup-2.0.2/tests/ftests/run.py", line 38, in run
    subproc = subprocess.Popen(command, shell=shell_bool,
  File "/gnu/store/65i3nhcwmz0p8rqbg48gaavyky4g4hwk-python-3.9.9/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/gnu/store/65i3nhcwmz0p8rqbg48gaavyky4g4hwk-python-3.9.9/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'sudo'
FAIL ftests.sh (exit status: 1)
--8<---------------cut here---------------end--------------->8---

Could you check whether they can run at all without root privileges, and
if not, document it in a comment above #:tests? #f?

Thanks,
Ludo’.

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e70d8d1a90..7eb309dfa5 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -8177,14 +8177,18 @@ (define-public libcgroup
        (uri (string-append home-page "/releases/download/v"
                            version "/" name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y0c9ncsawamj77raiw6qkbm5cdsyvhjb2mvgma1kxmgw0r3pxlf"))))
+        (base32 "1y0c9ncsawamj77raiw6qkbm5cdsyvhjb2mvgma1kxmgw0r3pxlf"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Delete the bundled copy of googletest, that even includes a .so.
+        '(delete-file-recursively "googletest"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f))
+    ;; (arguments
+    ;;  `(#:tests? #f))
     (native-inputs
-     (list bison flex))
+     (list bison flex python-wrapper))
     (inputs
-     (list linux-pam))
+     (list linux-pam googletest))
     (synopsis "Control groups management tools")
     (description "Control groups is Linux kernel method for process resource
 restriction, permission handling and more.  This package provides userspace