diff mbox series

[bug#53040] gnu: bubblewrap: Update to 0.5.0.

Message ID MtA4ks9--B-2@tutanota.com
State Accepted
Headers show
Series [bug#53040] gnu: bubblewrap: Update to 0.5.0. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Deslauriers, Douglas via Guix-patches" via Jan. 11, 2022, 9:46 p.m. UTC
I rebased the patch onto today's Guix commits, and Flatpak 1.12.1 and 1.12.2 passes the tests on my machine. But I'm currently running Guix on Arch and don't have a Guix system available to test further.

All dependent packages except wpewebkit build successfully. wpewebkit build log complains during cmake configuration that a required package is not found, but it seems unrelated to bubblewrap, and it won't build on master anyways.

Jan 11, 2022, 17:52 by ludo@gnu.org:

> Hi,
>
> kiasoc5@tutanota.com skribis:
>
>> Fixed locale in tests, thanks Ludo for the suggestion via email. Also fixed more test substitutions and simplified inputs.
>>
> >>From f5c56100d62d315c3ed860898998a7c8afc78d50 Mon Sep 17 00:00:00 2001
>
>> From: kiasoc5 <kiasoc5@tutanota.com>
>> Date: Mon, 10 Jan 2022 17:58:35 -0500
>> Subject: [PATCH] gnu: bubblewrap: Update to 0.5.0.
>>
>> * gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch: Add it.
>> * gnu/local.mk (dist_patch_DATA): Add it.
>> * gnu/packages/virtualization.scm (bubblewrap): Update to 0.5.0.
>> [source]: Add patch.
>> [arguments]: Adjust test substitutions.
>> [inputs]: Remove labels.
>> [native-inputs]: Remove labels.
>>
>
> That LGTM.  I tested direct dependents as shown by:
>
> ./pre-inst-env guix graph -M1 -t reverse-package bubblewrap | xdot -f fdp -
>
> Unfortunately, the update breaks flatpak (both 1.12.1 and 1.12.2):
>
> --8<---------------cut here---------------start------------->8---
> make[3]: Nothing to be done for 'tests/org.flatpak.Authenticator.test.service.in'.
> rm -rf tests/runtime-repo
> PATH=/tmp/guix-build-flatpak-1.12.2.drv-0/flatpak-1.12.2:${PATH} ./tests/make-test-runtime.sh tests/runtime-repo org.test.Platform master "" ""
> guix
> error: Writing content object: min-free-space-percent '3%' would be exceeded, at least 36.9 kB requested
> make[3]: *** [Makefile:7804: tests/runtime-repo] Error 1
> make[3]: Leaving directory '/tmp/guix-build-flatpak-1.12.2.drv-0/flatpak-1.12.2'
> make[2]: *** [Makefile:7063: check-am] Error 2
> make[2]: Leaving directory '/tmp/guix-build-flatpak-1.12.2.drv-0/flatpak-1.12.2'
> make[1]: *** [Makefile:6255: check-recursive] Error 1
> make[1]: Leaving directory '/tmp/guix-build-flatpak-1.12.2.drv-0/flatpak-1.12.2'
> make: *** [Makefile:7067: check] Error 2
> error: in phase 'check': uncaught exception:
> %exception #<&invoke-error program: "make" arguments: ("check" "TESTS=tests/test-basic.sh tests/test-config.sh testcommon") exit-status: 2 term-signal: #f stop-signal: #f> 
> phase `check' failed after 17.2 seconds
> command "make" "check" "TESTS=tests/test-basic.sh tests/test-config.sh testcommon" failed with status 2
> --8<---------------cut here---------------end--------------->8---
>
> Could you take a look?
>
> Apologies for the extra work!
>
> Thanks,
> Ludo’.
>

Comments

Ludovic Courtès Jan. 13, 2022, 9:55 p.m. UTC | #1
Hi,

kiasoc5@tutanota.com skribis:

> I rebased the patch onto today's Guix commits, and Flatpak 1.12.1 and 1.12.2 passes the tests on my machine. But I'm currently running Guix on Arch and don't have a Guix system available to test further.

Indeed, I tried on a newer machine and it went fine (the one I was
building on previously is really old and I suspect an odd
hardware-related issue.)

> All dependent packages except wpewebkit build successfully. wpewebkit build log complains during cmake configuration that a required package is not found, but it seems unrelated to bubblewrap, and it won't build on master anyways.

Noted.

Applied, thanks!

Ludo’.
diff mbox series

Patch

From dc1d48162f3d9fdc2647cbbd4ed2b8eb57eca08f Mon Sep 17 00:00:00 2001
From: kiasoc5 <kiasoc5@tutanota.com>
Date: Mon, 10 Jan 2022 17:58:35 -0500
Subject: [PATCH] gnu: bubblewrap: Update to 0.5.0.

* gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch: Add it.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/virtualization.scm (bubblewrap): Update to 0.5.0.
[source]: Add patch.
[arguments]: Adjust test substitutions.
[inputs]: Remove labels.
[native-inputs]: Remove labels.
---
 gnu/local.mk                                  |  1 +
 .../bubblewrap-fix-locale-in-tests.patch      | 34 +++++++++++++++++++
 gnu/packages/virtualization.scm               | 24 ++++++++-----
 3 files changed, 50 insertions(+), 9 deletions(-)
 create mode 100644 gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 7c75a1043b..756caeea44 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -911,6 +911,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/binutils-mingw-w64-deterministic.patch	\
   %D%/packages/patches/bpftrace-disable-bfd-disasm.patch	\
   %D%/packages/patches/byobu-writable-status.patch		\
+  %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch	\
   %D%/packages/patches/cabal-install-base16-bytestring1.0.patch		\
   %D%/packages/patches/cabal-install-ghc8.10.patch		\
   %D%/packages/patches/cairo-CVE-2018-19876.patch		\
diff --git a/gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch b/gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch
new file mode 100644
index 0000000000..bd5924ef87
--- /dev/null
+++ b/gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch
@@ -0,0 +1,34 @@ 
+From 9282223de4b511aeda3b7d2caf3810a56a865710 Mon Sep 17 00:00:00 2001
+From: kiasoc5 <kiasoc5@tutanota.com>
+Date: Mon, 10 Jan 2022 14:16:32 -0500
+Subject: [PATCH] Use C locale unconditionally for tests.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The ‘en_US.utf8’ locale is available. However, the ‘locale -a’ command won’t list it.
+---
+ tests/libtest-core.sh | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/tests/libtest-core.sh b/tests/libtest-core.sh
+index 9632e90..82951dd 100644
+--- a/tests/libtest-core.sh
++++ b/tests/libtest-core.sh
+@@ -41,12 +41,7 @@ assert_not_reached () {
+ #
+ # If we can't find the locale command assume we have support for C.UTF-8
+ # (e.g. musl based systems)
+-if type -p locale >/dev/null; then
+-    export LC_ALL=$(locale -a | grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' | head -n1 || true)
+-    if [ -z "${LC_ALL}" ]; then fatal "Can't find suitable UTF-8 locale"; fi
+-else
+-    export LC_ALL=C.UTF-8
+-fi
++export LC_ALL=en_US.utf8
+ # A GNU extension, used whenever LC_ALL is not C
+ unset LANGUAGE
+ 
+-- 
+2.34.1
+
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 82cc02b738..cec1bce5f3 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1926,7 +1926,7 @@  (define-public python-vagrant
 (define-public bubblewrap
   (package
     (name "bubblewrap")
-    (version "0.4.1")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/containers/bubblewrap/"
@@ -1934,7 +1934,8 @@  (define-public bubblewrap
                                   version ".tar.xz"))
               (sha256
                (base32
-                "00ycgi6q2yngh06bnz50wkvar6r2jnjf3j158grhi9k13jdrpimr"))))
+                "0608l2sjwhnb1c0mslah1h6yjvqr17wk60by6i710qwxg4rszz8n"))
+               (patches (search-patches "bubblewrap-fix-locale-in-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1950,7 +1951,9 @@  (define-public bubblewrap
                (substitute* "tests/test-run.sh"
                  (("/var/tmp") tmp-dir)
                  ;; Tests create a temporary python script, so fix its shebang.
-                 (("/usr/bin/env python") (which "python"))
+                 (("/usr/bin/env python3") (which "python3"))
+                 ;; Tests call /usr/bin/env, so fix its path.
+                 (("/usr/bin/env") (which "env"))
                  ;; Some tests try to access /usr, but that doesn't exist.
                  ;; Give them /gnu instead.
                  (("/usr") "/gnu")
@@ -1959,18 +1962,21 @@  (define-public bubblewrap
                  (("--ro-bind /lib /lib") "--ro-bind /gnu /lib")
                  (("  */bin/bash") (which "bash"))
                  (("/bin/sh") (which "sh"))
-                 (("findmnt") (which "findmnt"))))
+                 (("findmnt") (which "findmnt")))
+               (substitute* "tests/libtest.sh"
+                 (("/var/tmp") tmp-dir)
+                 (("/usr") "/gnu")
+                 (("--ro-bind /bin /bin") "--ro-bind /gnu /bin")
+                 (("--ro-bind /sbin /sbin") "--ro-bind /gnu /sbin")
+                 (("--ro-bind /lib /lib") "--ro-bind /gnu /lib")))
              #t))
          ;; Remove the directory we gave to tests to have a clean package.
          (add-after 'check 'remove-tmp-dir
            (lambda* (#:key outputs #:allow-other-keys)
              (delete-file-recursively (string-append (assoc-ref outputs "out") "/tmp"))
              #t)))))
-    (inputs
-     (list libcap))
-    (native-inputs
-     `(("python" ,python-wrapper)
-       ("util-linux" ,util-linux)))
+    (inputs (list libcap))
+    (native-inputs (list python-wrapper util-linux))
     (home-page "https://github.com/containers/bubblewrap")
     (synopsis "Unprivileged sandboxing tool")
     (description "Bubblewrap is aimed at running applications in a sandbox,

base-commit: 993bc8f06cc0662632618e49f6940d5036479c8b
-- 
2.34.1