Message ID | 87bkst5syp.fsf_-_@gnu.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#56858] gnu: libcgroup: Update to 2.0.2. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
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 --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