On 2020-11-16, Ludovic Courtès wrote: > Vagrant Cascadian 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: /<>/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. Thanks for the quick fix! That seems to fix tests/guix-system.sh... Though may introduce a different issue in tests/build-utils.log: ... test-name: wrap-script, simple case location: /build/guix-41NMGX/guix-1.2.0~rc1/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) (display script-contents port))) + (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: # format string: "#!/build/guix-41NMGX/guix-1.2.0~rc1/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: # format string: "#!/build/guix-41NMGX/guix-1.2.0~rc1/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.YrSRbV/foo" type: misc-error>) expected-value: "#!/build/guix-41NMGX/guix-1.2.0~rc1/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.YrSRbV/foo" type: misc-error>) result: FAIL test-name: wrap-script, with encoding declaration ... result: PASS test-name: wrap-script, raises condition ... result: PASS FORMAT: error with call: (format # "#!/build/guix-41NMGX/guix-1.2.0~r<===c1/guile --no-auto-compile #!#; Guix wrapper #\-(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 (quote ("")) cl)))) " ===>) missing argument(s) wrap-script: /tmp/guix-directory.YrSRbV/foo: error: misc-error (#f "error in format" () #f) Not sure what test or where in the code that last error is coming from... Because I've added so many network-reachable/test-skip patches, it is *possible* that it is something I've broken... Thanks! live well, vagrant