diff mbox series

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

Message ID 87bkst5syp.fsf_-_@gnu.org
State Accepted
Headers show
Series [bug#56858] gnu: libcgroup: Update to 2.0.2. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Ludovic Courtès Aug. 9, 2022, 3:37 p.m. UTC
Hi,

"(" <paren@disroot.org> 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’.

Comments

muradm Aug. 9, 2022, 8:29 p.m. UTC | #1
Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> "(" <paren@disroot.org> 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’ 
> (!):
>
> 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)
>
> Could you check whether they can run at all without root 
> privileges, and
> if not, document it in a comment above #:tests? #f?
unfortunately, tests are executed virtualized with lxc/lxd, while
technically it seems to be possible to execute them, but it will 
require
fixing (but probably rewriting) python test runner code. Possible 
but
not feasible i think.

On the other hand, as far as it is mentioned in their release 
process,
sources release tarball is releaced after tests passing.

;; tests are virtualized with lxc/lxd, it is not very feasible
;; to make them executable under guix build

Will this commend do the work?

> 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
diff mbox series

Patch

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