sys-fs/btrfs-progs: fix missing depends of ioctl.h
authorSergei Trofimovich <slyfox@gentoo.org>
Mon, 24 Oct 2016 08:20:00 +0000 (09:20 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Mon, 24 Oct 2016 08:20:21 +0000 (09:20 +0100)
Reported-by: Mikhail Pukhlikov <cynede@gentoo.org>
Package-Manager: portage-2.3.2

sys-fs/btrfs-progs/btrfs-progs-4.8.1-r1.ebuild [moved from sys-fs/btrfs-progs/btrfs-progs-4.8.1.ebuild with 98% similarity]
sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h [new file with mode: 0644]

similarity index 98%
rename from sys-fs/btrfs-progs/btrfs-progs-4.8.1.ebuild
rename to sys-fs/btrfs-progs/btrfs-progs-4.8.1-r1.ebuild
index 7f648be159bff94ad1e1e9155d0dbb552e32e567..b508b57e3f144b39b681ac018cbbaac70cd47267 100644 (file)
@@ -58,6 +58,8 @@ if [[ ${PV} == 9999 ]]; then
        DEPEND+=" sys-devel/gnuconfig"
 fi
 
+PATCHES=("${FILESDIR}"/${P}-fix-ioctl.h)
+
 src_prepare() {
        default
        if [[ ${PV} == 9999 ]]; then
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h b/sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h
new file mode 100644 (file)
index 0000000..61b60c7
--- /dev/null
@@ -0,0 +1,36 @@
+commit 3ddbf895db678fb40f7513bac9dbc36fd4095693
+Author: Sergei Trofimovich <slyfox@gentoo.org>
+Date:   Mon Oct 24 09:08:53 2016 +0100
+
+    ioctl.h: add missing kernel compatibility header for BUILD_ASSERT
+    
+    Header breakage noticed by cynede. Reproducible as:
+    
+        $ gcc -c /usr/include/btrfs/ioctl.h -o /tmp/a.o
+            /usr/include/btrfs/ioctl.h:42:14: error: expected declaration specifiers or '...' before 'sizeof'
+         BUILD_ASSERT(sizeof(struct btrfs_ioctl_vol_args) == 4096);
+                      ^~~~~~
+    
+    Basically gcc tries to say us BUILD_ASSERT is not visible.
+    
+    BUILD_ASSERT lives in kerncompat.h which this change adds.
+    
+    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+
+diff --git a/ioctl.h b/ioctl.h
+index a7235c0..abea7ed 100644
+--- a/ioctl.h
++++ b/ioctl.h
+@@ -26,6 +26,12 @@ extern "C" {
+ #include <asm/types.h>
+ #include <linux/ioctl.h>
+ 
++#if BTRFS_FLAT_INCLUDES
++#include "kerncompat.h"
++#else
++#include <btrfs/kerncompat.h>
++#endif /* BTRFS_FLAT_INCLUDES */
++
+ #ifndef __user
+ #define __user
+ #endif