emacs-bug-tracker
[Top][All Lists]
Advanced

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

bug#44626: closed (tests/build-utils, tests/guix-system: fail when build


From: GNU bug Tracking System
Subject: bug#44626: closed (tests/build-utils, tests/guix-system: fail when build path contains "~")
Date: Mon, 16 Nov 2020 11:58:02 +0000

Your message dated Mon, 16 Nov 2020 12:57:06 +0100
with message-id <87pn4dy0od.fsf@gnu.org>
and subject line Re: bug#44626: tests/build-utils, tests/guix-system: fail when 
build path contains "~"
has caused the debbugs.gnu.org bug report #44626,
regarding tests/build-utils, tests/guix-system: fail when build path contains 
"~"
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
44626: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=44626
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: tests/build-utils, tests/guix-system: fail when build path contains "~" Date: Fri, 13 Nov 2020 17:58:46 -0800
When building from a build path containing a "~", such as:

  /build/guix-1WL3Dl/guix-1.2.0~rc1/

tests/build-utils.scm and tests/guix-system.sh both fail.

I've observed this with v1.2.0rc1, as well as
c6e8f40f2ce6082171c18b4aad9877b0ad022563.

Building in such a directory revealed two failing tests, which I could
reproduce attempting to run the tests directly from a directory that
such as /home/vagrant/src/guix~tilde/ using "guix environment --pure
guix":

  make -j2 check RES_OPTIONS=attempts:0 AM_SCM_LOG_DRIVER_FLAGS="--brief=no" 
TESTS="tests/build-utils.scm tests/guix-system.sh"

Running the same tests in /home/vagrant/src/guix-tilde PASSed.

(FWIW, The version is renamed in Debian so that release candidates such
are treated as older versions than the eventual released version
(e.g. 1.2.0rc1 > 1.2.0 > 1.2.0~rc1 for Debian package versions) and it
would be best for Debian to be able to use the ~ in the Debian package
version)


FAIL: tests/build-utils
=======================
...
test-name: wrap-script, simple case
location: /<<PKGBUILDDIR>>/tests/build-utils.scm:152
source:
+ (test-equal
+   "wrap-script, simple case"
+   (string-append
+     (format
+       #f
+       "#!~a --no-auto-compile\n#!#; Guix wrapper\n#\\-~s\n#\\-~s\n"
+       (which "guile")
+       '(begin
+          (let ((current (getenv "GUIX_FOO")))
+            (setenv
+              "GUIX_FOO"
+              (if current
+                (string-append
+                  "/some/path:/some/other/path"
+                  ":"
+                  current)
+                "/some/path:/some/other/path"))))
+       '(let ((cl (command-line)))
+          (apply execl
+                 "/anything/cabbage-bash-1.2.3/bin/sh"
+                 (car cl)
+                 (cons (car cl) (append '("") cl)))))
+     script-contents)
+   (call-with-temporary-directory
+     (lambda (directory)
+       (let ((script-file-name
+               (string-append directory "/foo")))
+         (call-with-output-file
+           script-file-name
+           (lambda (port) (format port script-contents)))
+         (chmod script-file-name 511)
+         (wrap-script
+           script-file-name
+           `("GUIX_FOO"
+             prefix
+             ("/some/path" "/some/other/path")))
+         (let ((str (call-with-input-file
+                      script-file-name
+                      get-string-all)))
+           (with-directory-excursion
+             directory
+             (delete-file "foo"))
+           str)))))
FORMAT: INTERNAL ERROR IN FORMAT-ERROR!
        destination: #<input-output: /tmp/guix-directory.s4eviV/foo.tD6mtU 8>
        format string: "#!/<<PKGBUILDDIR>>/guile --no-auto-compile\n#!#; Guix 
wrapper\n#\\-(begin (let ((current (getenv \"GUIX_FOO\"))) (setenv \"GUIX_FOO\" 
(if current (string-append \"/some/path:/some/other/path\" \":\" current) 
\"/some/path:/some/other/path\"))))\n#\\-(let ((cl (command-line))) (apply 
execl \"/anything/cabbage-bash-1.2.3/bin/sh\" (car cl) (cons (car cl) (append 
(quote (\"\")) cl))))\n"
        format args: ()
        error args:  (#f "error in format" () #f)
FORMAT: INTERNAL ERROR IN FORMAT-ERROR!
        destination: #<input-output: /tmp/guix-directory.s4eviV/foo.tD6mtU 8>
        format string: "#!/<<PKGBUILDDIR>>/guile --no-auto-compile\n#!#; Guix 
wrapper\n#\\-(begin (let ((current (getenv \"GUIX_FOO\"))) (setenv \"GUIX_FOO\" 
(if current (string-append \"/some/path:/some/other/path\" \":\" current) 
\"/some/path:/some/other/path\"))))\n#\\-(let ((cl (command-line))) (apply 
execl \"/anything/cabbage-bash-1.2.3/bin/sh\" (car cl) (cons (car cl) (append 
(quote (\"\")) cl))))\n"
        format args: ()
        error args:  (#<&wrap-error program: "/tmp/guix-directory.s4eviV/foo" 
type: misc-error>)
expected-value: "#!/<<PKGBUILDDIR>>/guile --no-auto-compile\n#!#; Guix 
wrapper\n#\\-(begin (let ((current (getenv \"GUIX_FOO\"))) (setenv \"GUIX_FOO\" 
(if current (string-append \"/some/path:/some/other/path\" \":\" current) 
\"/some/path:/some/other/path\"))))\n#\\-(let ((cl (command-line))) (apply 
execl \"/anything/cabbage-bash-1.2.3/bin/sh\" (car cl) (cons (car cl) (append 
(quote (\"\")) cl))))\n#!/anything/cabbage-bash-1.2.3/bin/sh\n\necho hello 
world"
actual-value: #f
actual-error:
+ (%exception
+   #<&wrap-error program: "/tmp/guix-directory.s4eviV/foo" type: misc-error>)
result: FAIL


FAIL: tests/guix-system
=======================

+ set -e
+ guix system --version
guix system (GNU Guix) 1.2.0rc1
Copyright (C) 2020 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ tmpfile=t-guix-system-6249
+ errorfile=t-guix-system-error-6249
+ tmpdir=/tmp/t-guix-system-6249
+ mkdir /tmp/t-guix-system-6249
+ trap 'rm -f "$tmpfile" "$errorfile" "$tmpdir"/*; rmdir "$tmpdir"' EXIT
+ cat
+ guix system vm t-guix-system-6249
+ grep 't-guix-system-6249:2:3:.*missing.* initializers' 
t-guix-system-error-6249
t-guix-system-6249:2:3: error: (operating-system): missing field initializers 
(bootloader host-name file-systems timezone)
+ cat
+ guix system vm t-guix-system-6249
+ grep 't-guix-system-6249:4:1: missing closing paren' t-guix-system-error-6249
t-guix-system-6249:4:1: missing closing parenthesis
+ cat
+ guix system build t-guix-system-6249 -n
+ grep 't-guix-system-6249:3:2: .*module .*openssh.*not found' 
t-guix-system-error-6249
t-guix-system-6249:3:2: error: module (gnu services openssh) not found
+ grep 'Try.*use-service-modules ssh' t-guix-system-error-6249
hint: Try adding `(use-service-modules ssh)'.
+ cat
+ guix system build t-guix-system-6249 -n
+ grep 't-guix-system-6249:3:2: .*module .*qemu.*not found' 
t-guix-system-error-6249
t-guix-system-6249:3:2: error: module (gnu packages qemu) not found
+ grep 'Try.*use-package-modules virtualization' t-guix-system-error-6249
hint: Try adding `(use-package-modules virtualization)'.
+ cat
+ guix system build t-guix-system-6249 -n
++ guile -c '(display (effective-version))'
+ test 3.0 = 3.0
+ grep 't-guix-system-6249:[0-9]\+:[0-9]\+:.*GRUB-config.*[Uu]nbound variable' 
t-guix-system-error-6249
t-guix-system-6249:9:14: error: GRUB-config: unbound variable
+ cat
+ guix system build t-guix-system-6249 -n
+ grep 't-guix-system-6249:3:[0-9]\+:.*%base-file-system.*invalid field 
specifier' t-guix-system-error-6249
t-guix-system-6249:3:0: error: %base-file-systems: invalid field specifier
+ OS_BASE='
  (host-name "antelope")
  (timezone "Europe/Paris")
  (locale "en_US.UTF-8")

  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (target "/dev/sdX")))
  (file-systems (cons (file-system
                        (device (file-system-label "root"))
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))
'
+ cat
+ guix system vm t-guix-system-6249
accepted connection from pid 6412, user vagrant
+ grep 'service '\''networking'\''.*more than once' t-guix-system-error-6249
guix system: error: service 'networking' provided more than once
+ cat
+ guix system build t-guix-system-6249
accepted connection from pid 6433, user vagrant
+ grep 'service '\''buggy!'\''.*'\''does-not-exist'\''.*not provided' 
t-guix-system-error-6249
guix system: error: service 'buggy!' requires 'does-not-exist', which is not 
provided by any service
+ make_user_config users wheel
+ cat
+ guix system build t-guix-system-6249 -n
accepted connection from pid 6454, user vagrant
guix system: error: invalid character `~' in name 
`shepherd-file-system--build-guix-1WL3Dl-guix-1.2.0~rc1-test-tmp-store.scm-builder'
+ rm -f t-guix-system-6249 t-guix-system-error-6249 '/tmp/t-guix-system-6249/*'
+ rmdir /tmp/t-guix-system-6249
FAIL tests/guix-system.sh (exit status: 1)


live well,
  vagrant

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message --- Subject: Re: bug#44626: tests/build-utils, tests/guix-system: fail when build path contains "~" Date: Mon, 16 Nov 2020 12:57:06 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Hi!

Vagrant Cascadian <vagrant@debian.org> skribis:

> When building from a build path containing a "~", such as:
>
>   /build/guix-1WL3Dl/guix-1.2.0~rc1/
>
> tests/build-utils.scm and tests/guix-system.sh both fail.

[...]

> FAIL: tests/build-utils
> =======================
> ...
> test-name: wrap-script, simple case
> location: /<<PKGBUILDDIR>>/tests/build-utils.scm:152
> source:
> + (test-equal
> +   "wrap-script, simple case"

[…]

> + make_user_config users wheel
> + cat
> + guix system build t-guix-system-6249 -n
> accepted connection from pid 6454, user vagrant
> guix system: error: invalid character `~' in name 
> `shepherd-file-system--build-guix-1WL3Dl-guix-1.2.0~rc1-test-tmp-store.scm-builder'

I believe both are fixed by 977eb5d023cfdf8e336f1896480eea9cef5c04e9.

Note that another solution to sidestep those issues would have been to
use a test store that doesn’t contain ‘~’, like so:

  ./configure ac_cv_guix_test_root=/tmp/build-guix…/store

Thanks!

Ludo’.


--- End Message ---

reply via email to

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