commit:     eb824502f28aa17d4ebaa4581491b48e156edab2
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 23 07:24:55 2020 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Jun 23 07:25:30 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb824502

app-emulation/lxd: fix 4.0.1 compilation with clang

Closes: https://bugs.gentoo.org/729244
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 app-emulation/lxd/files/lxd-4.0.1-clang.patch | 76 +++++++++++++++++++++++++++
 app-emulation/lxd/lxd-4.0.1.ebuild            |  2 +
 2 files changed, 78 insertions(+)

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 00000000000..765f2f38be5
--- /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?= <[email protected]>
+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 <[email protected]>
+---
+ 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 33decc443dd..578a64630a1 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

Reply via email to