summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2020-06-23 10:24:55 +0300
committerJoonas Niilola <juippis@gentoo.org>2020-06-23 10:25:30 +0300
commiteb824502f28aa17d4ebaa4581491b48e156edab2 (patch)
treeae1f4a561911eab19766c84ca217cfa1459c33e5 /app-emulation/lxd
parentdev-python/qtconsole: Use HTTPS for HOMEPAGE (diff)
downloadgentoo-eb824502f28aa17d4ebaa4581491b48e156edab2.tar.gz
gentoo-eb824502f28aa17d4ebaa4581491b48e156edab2.tar.bz2
gentoo-eb824502f28aa17d4ebaa4581491b48e156edab2.zip
app-emulation/lxd: fix 4.0.1 compilation with clang
Closes: https://bugs.gentoo.org/729244 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'app-emulation/lxd')
-rw-r--r--app-emulation/lxd/files/lxd-4.0.1-clang.patch76
-rw-r--r--app-emulation/lxd/lxd-4.0.1.ebuild2
2 files changed, 78 insertions, 0 deletions
diff --git a/app-emulation/lxd/files/lxd-4.0.1-clang.patch b/app-emulation/lxd/files/lxd-4.0.1-clang.patch
new file mode 100644
index 000000000000..765f2f38be5d
--- /dev/null
+++ b/app-emulation/lxd/files/lxd-4.0.1-clang.patch
@@ -0,0 +1,76 @@
+From c7ce94825871ea5d0946e92762e981354628b8ad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@ubuntu.com>
+Date: Mon, 22 Jun 2020 22:17:02 -0400
+Subject: [PATCH] lxd: Fix building with clang
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Closes #7573
+
+Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
+---
+ lxd/main_forksyscall.go | 8 --------
+ lxd/seccomp/seccomp.go | 16 ++++++++--------
+ 2 files changed, 8 insertions(+), 16 deletions(-)
+
+diff --git a/lxd/main_forksyscall.go b/lxd/main_forksyscall.go
+index a304405c2e..14895b6ce0 100644
+--- a/lxd/main_forksyscall.go
++++ b/lxd/main_forksyscall.go
+@@ -34,12 +34,6 @@ extern void attach_userns_fd(int ns_fd);
+ extern int pidfd_nsfd(int pidfd, pid_t pid);
+ extern bool setnsat(int ns_fd, const char *ns);
+
+-static inline bool same_fsinfo(struct stat *s1, struct stat *s2,
+- struct statfs *sfs1, struct statfs *sfs2)
+-{
+- return ((sfs1->f_type == sfs2->f_type) && (s1->st_dev == s2->st_dev));
+-}
+-
+ static bool chdirchroot_in_mntns(int cwd_fd, int root_fd)
+ {
+ ssize_t len;
+@@ -209,8 +203,6 @@ const char *ns_names[] = { "user", "pid", "uts", "ipc", "net", "cgroup", NULL };
+
+ static bool change_creds(int ns_fd, cap_t caps, uid_t nsuid, gid_t nsgid, uid_t nsfsuid, gid_t nsfsgid)
+ {
+- __do_close int fd = -EBADF;
+-
+ if (prctl(PR_SET_KEEPCAPS, 1))
+ return false;
+
+diff --git a/lxd/seccomp/seccomp.go b/lxd/seccomp/seccomp.go
+index 8945fd9197..025efb3141 100644
+--- a/lxd/seccomp/seccomp.go
++++ b/lxd/seccomp/seccomp.go
+@@ -91,21 +91,21 @@ static int device_allowed(dev_t dev, mode_t mode)
+ {
+ switch (mode & S_IFMT) {
+ case S_IFCHR:
+- if ((dev == makedev(0, 0))) // whiteout
++ if (dev == makedev(0, 0)) // whiteout
+ return 0;
+- else if ((dev == makedev(5, 1))) // /dev/console
++ else if (dev == makedev(5, 1)) // /dev/console
+ return 0;
+- else if ((dev == makedev(1, 7))) // /dev/full
++ else if (dev == makedev(1, 7)) // /dev/full
+ return 0;
+- else if ((dev == makedev(1, 3))) // /dev/null
++ else if (dev == makedev(1, 3)) // /dev/null
+ return 0;
+- else if ((dev == makedev(1, 8))) // /dev/random
++ else if (dev == makedev(1, 8)) // /dev/random
+ return 0;
+- else if ((dev == makedev(5, 0))) // /dev/tty
++ else if (dev == makedev(5, 0)) // /dev/tty
+ return 0;
+- else if ((dev == makedev(1, 9))) // /dev/urandom
++ else if (dev == makedev(1, 9)) // /dev/urandom
+ return 0;
+- else if ((dev == makedev(1, 5))) // /dev/zero
++ else if (dev == makedev(1, 5)) // /dev/zero
+ return 0;
+ }
+
diff --git a/app-emulation/lxd/lxd-4.0.1.ebuild b/app-emulation/lxd/lxd-4.0.1.ebuild
index 33decc443dd3..578a64630a10 100644
--- a/app-emulation/lxd/lxd-4.0.1.ebuild
+++ b/app-emulation/lxd/lxd-4.0.1.ebuild
@@ -67,6 +67,8 @@ QA_PREBUILT="/usr/lib/lxd/libdqlite.so.0.0.1
EGO_PN="github.com/lxc/lxd"
GOPATH="${S}/_dist" # this seems to reset every now and then, though
+PATCHES=( "${FILESDIR}"/lxd-4.0.1-clang.patch )
+
common_op() {
local i
for i in dqlite raft; do