From 908e80b40cd508b8be7e99f02321bf5655f76c0f Mon Sep 17 00:00:00 2001 From: UsernameRandomlyGenerated Date: Wed, 6 Oct 2021 09:12:05 +0200 Subject: [PATCH] bubblewrap: update to 0.5.0. --- .../fix-TEMP_FAILTURE_RETRY-musl.patch | 19 -- .../patches/realpath-workaround.patch | 249 ------------------ srcpkgs/bubblewrap/template | 10 +- 3 files changed, 4 insertions(+), 274 deletions(-) delete mode 100644 srcpkgs/bubblewrap/patches/fix-TEMP_FAILTURE_RETRY-musl.patch delete mode 100644 srcpkgs/bubblewrap/patches/realpath-workaround.patch diff --git a/srcpkgs/bubblewrap/patches/fix-TEMP_FAILTURE_RETRY-musl.patch b/srcpkgs/bubblewrap/patches/fix-TEMP_FAILTURE_RETRY-musl.patch deleted file mode 100644 index 1afa9e4f9832..000000000000 --- a/srcpkgs/bubblewrap/patches/fix-TEMP_FAILTURE_RETRY-musl.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/bubblewrap.c -+++ b/bubblewrap.c -@@ -42,6 +42,16 @@ - #define CLONE_NEWCGROUP 0x02000000 /* New cgroup namespace */ - #endif - -+/* taken from glibc unistd.h and fixes musl */ -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ - /* Globals to avoid having to use getuid(), since the uid/gid changes during runtime */ - static uid_t real_uid; - static gid_t real_gid; diff --git a/srcpkgs/bubblewrap/patches/realpath-workaround.patch b/srcpkgs/bubblewrap/patches/realpath-workaround.patch deleted file mode 100644 index 45d1fd6231b6..000000000000 --- a/srcpkgs/bubblewrap/patches/realpath-workaround.patch +++ /dev/null @@ -1,249 +0,0 @@ ---- /dev/null 2020-10-18 09:26:32.312745755 +0200 -+++ b/LICENSE.realpath 2020-10-18 11:09:14.119929076 +0200 -@@ -0,0 +1,29 @@ -+Copyright (c) 1989, 1991, 1993, 1995 -+ The Regents of the University of California. All rights reserved. -+ -+This code is derived from software contributed to Berkeley by -+Jan-Simon Pendry. -+ -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions -+are met: -+1. Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+2. Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+3. Neither the name of the University nor the names of its contributors -+ may be used to endorse or promote products derived from this software -+ without specific prior written permission. -+ -+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+SUCH DAMAGE. ---- a/bind-mount.c 2018-09-26 14:55:17.000000000 +0200 -+++ b/bind-mount.c 2020-10-18 11:08:37.822931452 +0200 -@@ -22,6 +22,198 @@ - - #include "utils.h" - #include "bind-mount.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#ifndef __GLIBC__ -+/* -+ * Copyright (c) 1989, 1991, 1993, 1995 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * This code is derived from software contributed to Berkeley by -+ * Jan-Simon Pendry. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+char *realpath_int(const char *, char*); -+char * -+realpath_int(const char * path, char * resolved) -+{ -+ struct stat sb; -+ int idx = 0, nlnk = 0; -+ const char *q; -+ char *p, wbuf[2][MAXPATHLEN], *fres; -+ size_t len; -+ ssize_t n; -+ -+ /* POSIX sez we must test for this */ -+ if (path == NULL) { -+ errno = EINVAL; -+ return NULL; -+ } -+ -+ if (resolved == NULL) { -+ fres = resolved = malloc(MAXPATHLEN); -+ if (resolved == NULL) -+ return NULL; -+ } else -+ fres = NULL; -+ -+ -+ /* -+ * Build real path one by one with paying an attention to ., -+ * .. and symbolic link. -+ */ -+ -+ /* -+ * `p' is where we'll put a new component with prepending -+ * a delimiter. -+ */ -+ p = resolved; -+ -+ if (*path == '\0') { -+ *p = '\0'; -+ errno = ENOENT; -+ goto out; -+ } -+ -+ /* If relative path, start from current working directory. */ -+ if (*path != '/') { -+ /* check for resolved pointer to appease coverity */ -+ if (resolved && getcwd(resolved, MAXPATHLEN) == NULL) { -+ p[0] = '.'; -+ p[1] = '\0'; -+ goto out; -+ } -+ len = strlen(resolved); -+ if (len > 1) -+ p += len; -+ } -+ -+loop: -+ /* Skip any slash. */ -+ while (*path == '/') -+ path++; -+ -+ if (*path == '\0') { -+ if (p == resolved) -+ *p++ = '/'; -+ *p = '\0'; -+ return resolved; -+ } -+ -+ /* Find the end of this component. */ -+ q = path; -+ do -+ q++; -+ while (*q != '/' && *q != '\0'); -+ -+ /* Test . or .. */ -+ if (path[0] == '.') { -+ if (q - path == 1) { -+ path = q; -+ goto loop; -+ } -+ if (path[1] == '.' && q - path == 2) { -+ /* Trim the last component. */ -+ if (p != resolved) -+ while (*--p != '/') -+ continue; -+ path = q; -+ goto loop; -+ } -+ } -+ -+ /* Append this component. */ -+ if (p - resolved + 1 + q - path + 1 > MAXPATHLEN) { -+ errno = ENAMETOOLONG; -+ if (p == resolved) -+ *p++ = '/'; -+ *p = '\0'; -+ goto out; -+ } -+ p[0] = '/'; -+ memcpy(&p[1], path, -+ /* LINTED We know q > path. */ -+ q - path); -+ p[1 + q - path] = '\0'; -+ -+ /* -+ * If this component is a symlink, toss it and prepend link -+ * target to unresolved path. -+ */ -+ if (lstat(resolved, &sb) == -1) -+ goto out; -+ -+ if (S_ISLNK(sb.st_mode)) { -+ if (nlnk++ >= MAXSYMLINKS) { -+ errno = ELOOP; -+ goto out; -+ } -+ n = readlink(resolved, wbuf[idx], sizeof(wbuf[0]) - 1); -+ if (n < 0) -+ goto out; -+ if (n == 0) { -+ errno = ENOENT; -+ goto out; -+ } -+ -+ /* Append unresolved path to link target and switch to it. */ -+ if (n + (len = strlen(q)) + 1 > sizeof(wbuf[0])) { -+ errno = ENAMETOOLONG; -+ goto out; -+ } -+ memcpy(&wbuf[idx][n], q, len + 1); -+ path = wbuf[idx]; -+ idx ^= 1; -+ -+ /* If absolute symlink, start from root. */ -+ if (*path == '/') -+ p = resolved; -+ goto loop; -+ } -+ if (*q == '/' && !S_ISDIR(sb.st_mode)) { -+ errno = ENOTDIR; -+ goto out; -+ } -+ -+ /* Advance both resolved and unresolved path. */ -+ p += 1 + q - path; -+ path = q; -+ goto loop; -+out: -+ free(fres); -+ return NULL; -+} -+#endif - - static char * - skip_token (char *line, bool eat_whitespace) -@@ -395,9 +587,14 @@ - - /* The mount operation will resolve any symlinks in the destination - path, so to find it in the mount table we need to do that too. */ -+#ifdef __GLIBC__ - resolved_dest = realpath (dest, NULL); -- if (resolved_dest == NULL) -+#else -+ resolved_dest = realpath_int (dest, NULL); -+#endif -+ if (resolved_dest == NULL) { - return 2; -+ } - - mount_tab = parse_mountinfo (proc_fd, resolved_dest); - if (mount_tab[0].mountpoint == NULL) diff --git a/srcpkgs/bubblewrap/template b/srcpkgs/bubblewrap/template index 4df1dac59395..fe2e985141df 100644 --- a/srcpkgs/bubblewrap/template +++ b/srcpkgs/bubblewrap/template @@ -1,7 +1,7 @@ # Template file for 'bubblewrap' pkgname=bubblewrap -version=0.4.1 -revision=2 +version=0.5.0 +revision=1 build_style=gnu-configure hostmakedepends="libxslt docbook-xsl pkg-config" makedepends="libcap-devel" @@ -10,10 +10,8 @@ maintainer="Duncaen " license="LGPL-2.0-or-later" homepage="https://github.com/containers/bubblewrap" distfiles="${homepage}/releases/download/v${version}/${pkgname}-${version}.tar.xz" -checksum=b9c69b9b1c61a608f34325c8e1a495229bacf6e4a07cbb0c80cf7a814d7ccc03 +checksum=16fdaf33799d63104e347e0133f909196fe90d0c50515d010bcb422eb5a00818 post_install() { - if [ "$XBPS_TARGET_LIBC" = "musl" ]; then - vlicense LICENSE.realpath - fi + vlicense COPYING }