sys-fs/btrfs-progs: fix libbtrfs library, bug #613890
authorSergei Trofimovich <slyfox@gentoo.org>
Mon, 27 Mar 2017 20:44:55 +0000 (21:44 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Mon, 27 Mar 2017 20:45:35 +0000 (21:45 +0100)
Two fixes are here:
- fixed undefined symbols in libbtrfs.so.0 (__error symbol)
- added missing 'sizes.h' kernel compatibility header.

Reported-by: Denis Descheneaux
Bug: https://bugs.gentoo.org/613890
Package-Manager: Portage-2.3.5, Repoman-2.3.2

sys-fs/btrfs-progs/btrfs-progs-4.10-r1.ebuild [moved from sys-fs/btrfs-progs/btrfs-progs-4.10.ebuild with 96% similarity]
sys-fs/btrfs-progs/files/btrfs-progs-4.10-fix-headers.patch [new file with mode: 0644]
sys-fs/btrfs-progs/files/btrfs-progs-4.10-messages.patch [new file with mode: 0644]

similarity index 96%
rename from sys-fs/btrfs-progs/btrfs-progs-4.10.ebuild
rename to sys-fs/btrfs-progs/btrfs-progs-4.10-r1.ebuild
index 397d271d38c960041b3177f5d167ea2237d8f8c9..663141c94091df600b4769b11a301d7ded7eb6c7 100644 (file)
@@ -53,6 +53,11 @@ DEPEND="${RDEPEND}
        )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${P}-messages.patch
+       "${FILESDIR}"/${P}-fix-headers.patch
+)
+
 if [[ ${PV} == 9999 ]]; then
        DEPEND+=" sys-devel/gnuconfig"
 fi
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-4.10-fix-headers.patch b/sys-fs/btrfs-progs/files/btrfs-progs-4.10-fix-headers.patch
new file mode 100644 (file)
index 0000000..414c099
--- /dev/null
@@ -0,0 +1,32 @@
+Add missing 'sizes.h' header install.
+
+Noticed on snapper build failure:
+  In file included from btrfs/send-utils.h:28:0,
+    from BtrfsUtils.cc:36:
+  btrfs/ctree.h:37:25: fatal error: linux/sizes.h: No such file or directory
+diff --git a/Makefile b/Makefile
+index 05a5d06..fb1cfd6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -108,7 +108,7 @@ libbtrfs_objects = send-stream.o send-utils.o kernel-lib/rbtree.o btrfs-list.o \
+                  uuid-tree.o utils-lib.o rbtree-utils.o
+ libbtrfs_headers = send-stream.h send-utils.h send.h kernel-lib/rbtree.h btrfs-list.h \
+              kernel-lib/crc32c.h kernel-lib/list.h kerncompat.h \
+-             kernel-lib/radix-tree.h extent-cache.h \
++             kernel-lib/radix-tree.h kernel-lib/sizes.h extent-cache.h \
+              extent_io.h ioctl.h ctree.h btrfsck.h version.h
+ convert_objects = convert/main.o convert/common.o convert/source-fs.o \
+                 convert/source-ext2.o
+diff --git a/ctree.h b/ctree.h
+index 1d0622d..c8f771b 100644
+--- a/ctree.h
++++ b/ctree.h
+@@ -34,7 +34,7 @@
+ #include <btrfs/extent-cache.h>
+ #include <btrfs/extent_io.h>
+ #include <btrfs/ioctl.h>
+-#include <linux/sizes.h>
++#include <btrfs/sizes.h>
+ #endif /* BTRFS_FLAT_INCLUDES */
+ struct btrfs_root;
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-4.10-messages.patch b/sys-fs/btrfs-progs/files/btrfs-progs-4.10-messages.patch
new file mode 100644 (file)
index 0000000..afcc278
--- /dev/null
@@ -0,0 +1,34 @@
+Fix missing __error symbol in libbtrfs.so.0.
+
+The easiest way to reproduce it is to try to build
+btrfs-progs with LDFLAGS=-Wl,--no-undefined :
+
+btrfs-list.o: In function `lookup_ino_path':
+btrfs-list.c:(.text+0x7d2): undefined reference to `__error'
+
+Reported-by: Denis Descheneaux
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=613890
+diff --git a/Makefile b/Makefile
+index 67fbc48..05a5d06 100644
+--- a/Makefile
++++ b/Makefile
+@@ -97,3 +97,3 @@ objects = ctree.o disk-io.o kernel-lib/radix-tree.o extent-tree.o print-tree.o \
+         inode.o file.o find-root.o free-space-tree.o help.o send-dump.o \
+-        fsfeatures.o messages.o
++        fsfeatures.o
+ cmds_objects = cmds-subvolume.o cmds-filesystem.o cmds-device.o cmds-scrub.o \
+@@ -106,3 +106,3 @@ cmds_objects = cmds-subvolume.o cmds-filesystem.o cmds-device.o cmds-scrub.o \
+ libbtrfs_objects = send-stream.o send-utils.o kernel-lib/rbtree.o btrfs-list.o \
+-                 kernel-lib/crc32c.o \
++                 kernel-lib/crc32c.o messages.o \
+                  uuid-tree.o utils-lib.o rbtree-utils.o
+@@ -448,3 +448,3 @@ test-ioctl: ioctl-test ioctl-test-32 ioctl-test-64
+-library-test: library-test.o messages.o $(libs_shared)
++library-test: library-test.o $(libs_shared)
+       @echo "    [LD]     $@"
+@@ -454,3 +454,3 @@ library-test: library-test.o messages.o $(libs_shared)
+-library-test.static: library-test.static.o messages.static.o $(libs_static)
++library-test.static: library-test.static.o $(libs_static)
+       @echo "    [LD]     $@"