diff options
author | 2014-05-20 14:47:03 +0000 | |
---|---|---|
committer | 2014-05-20 14:47:03 +0000 | |
commit | 0150133e8009792446e2b888ad8dbc622852dc7d (patch) | |
tree | c99711c94b8b66ef6a7075168c9e06ef4f3f7e26 /sys-fs | |
parent | version bump (diff) | |
download | gentoo-2-0150133e8009792446e2b888ad8dbc622852dc7d.tar.gz gentoo-2-0150133e8009792446e2b888ad8dbc622852dc7d.tar.bz2 gentoo-2-0150133e8009792446e2b888ad8dbc622852dc7d.zip |
Backport patch to fix linking failures with libbtrfs, reported by dlan.
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 0BBEEA1FEA4843A4)
Diffstat (limited to 'sys-fs')
-rw-r--r-- | sys-fs/btrfs-progs/ChangeLog | 8 | ||||
-rw-r--r-- | sys-fs/btrfs-progs/btrfs-progs-3.14.1-r1.ebuild | 58 | ||||
-rw-r--r-- | sys-fs/btrfs-progs/files/btrfs-progs-3.14.1-arg_strtou64.patch | 146 |
3 files changed, 211 insertions, 1 deletions
diff --git a/sys-fs/btrfs-progs/ChangeLog b/sys-fs/btrfs-progs/ChangeLog index a44187544fc9..409c92dd3a82 100644 --- a/sys-fs/btrfs-progs/ChangeLog +++ b/sys-fs/btrfs-progs/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sys-fs/btrfs-progs # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/ChangeLog,v 1.78 2014/04/29 01:50:12 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/ChangeLog,v 1.79 2014/05/20 14:47:03 floppym Exp $ + +*btrfs-progs-3.14.1-r1 (20 May 2014) + + 20 May 2014; Mike Gilbert <floppym@gentoo.org> +btrfs-progs-3.14.1-r1.ebuild, + +files/btrfs-progs-3.14.1-arg_strtou64.patch: + Backport patch to fix linking failures with libbtrfs, reported by dlan. *btrfs-progs-3.14.1 (29 Apr 2014) diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.14.1-r1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.14.1-r1.ebuild new file mode 100644 index 000000000000..38a92808882f --- /dev/null +++ b/sys-fs/btrfs-progs/btrfs-progs-3.14.1-r1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/btrfs-progs-3.14.1-r1.ebuild,v 1.1 2014/05/20 14:47:03 floppym Exp $ + +EAPI=5 + +inherit eutils multilib toolchain-funcs + +libbtrfs_soname=0 + +if [[ ${PV} != 9999 ]]; then + MY_PV=v${PV} + KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" + SRC_URI="https://www.kernel.org/pub/linux/kernel/people/mason/${PN}/${PN}-${MY_PV}.tar.xz" + S="${WORKDIR}"/${PN}-${MY_PV} +else + inherit git-2 + EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git + https://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git" +fi + +DESCRIPTION="Btrfs filesystem utilities" +HOMEPAGE="https://btrfs.wiki.kernel.org" + +LICENSE="GPL-2" +SLOT="0/${libbtrfs_soname}" +IUSE="" + +DEPEND=" + dev-libs/lzo + sys-libs/zlib + sys-apps/acl + sys-fs/e2fsprogs +" +RDEPEND="${DEPEND}" + +src_prepare() { + epatch "${FILESDIR}/${P}-arg_strtou64.patch" + epatch_user +} + +src_compile() { + emake \ + AR="$(tc-getAR)" \ + CC="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + BUILD_VERBOSE=1 +} + +src_install() { + emake install \ + DESTDIR="${D}" \ + prefix=/usr \ + bindir=/sbin \ + libdir=/usr/$(get_libdir) \ + mandir=/usr/share/man +} diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-3.14.1-arg_strtou64.patch b/sys-fs/btrfs-progs/files/btrfs-progs-3.14.1-arg_strtou64.patch new file mode 100644 index 000000000000..a9cced815b21 --- /dev/null +++ b/sys-fs/btrfs-progs/files/btrfs-progs-3.14.1-arg_strtou64.patch @@ -0,0 +1,146 @@ +From: David Sterba <dsterba@suse.cz> +To: linux-btrfs@vger.kernel.org +Subject: [PATCH v2] btrfs-progs: move arg_strtou64 to a separate file for library +Date: Tue, 22 Apr 2014 17:49:01 +0200 + +Linking with libbtrfs fails because arg_strtou64 is not defined and we +cannot just add utils.o to library objects because it's not +library-clean. + +Reported-by: Arvin Schnell <aschnell@suse.com> +Reported-by: Anton Farygin <rider@altlinux.org> +Signed-off-by: David Sterba <dsterba@suse.cz> +--- + +v2: (thanks to Hugo) +- added missing line from comment +- fixed typo +- reformated comment paragraphs + + Makefile | 5 +++-- + utils-lib.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + utils.c | 33 --------------------------------- + 3 files changed, 45 insertions(+), 35 deletions(-) + create mode 100644 utils-lib.c + +diff --git a/Makefile b/Makefile +index 51d53fadf5af..76565e8b2307 100644 +--- a/Makefile ++++ b/Makefile +@@ -9,14 +9,15 @@ CFLAGS = -g -O1 -fno-strict-aliasing + objects = ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \ + root-tree.o dir-item.o file-item.o inode-item.o inode-map.o \ + extent-cache.o extent_io.o volumes.o utils.o repair.o \ +- qgroup.o raid6.o free-space-cache.o list_sort.o props.o ++ qgroup.o raid6.o free-space-cache.o list_sort.o props.o \ ++ utils-lib.o + cmds_objects = cmds-subvolume.o cmds-filesystem.o cmds-device.o cmds-scrub.o \ + cmds-inspect.o cmds-balance.o cmds-send.o cmds-receive.o \ + cmds-quota.o cmds-qgroup.o cmds-replace.o cmds-check.o \ + cmds-restore.o cmds-rescue.o chunk-recover.o super-recover.o \ + cmds-property.o + libbtrfs_objects = send-stream.o send-utils.o rbtree.o btrfs-list.o crc32c.o \ +- uuid-tree.o ++ uuid-tree.o utils-lib.o + libbtrfs_headers = send-stream.h send-utils.h send.h rbtree.h btrfs-list.h \ + crc32c.h list.h kerncompat.h radix-tree.h extent-cache.h \ + extent_io.h ioctl.h ctree.h btrfsck.h +diff --git a/utils-lib.c b/utils-lib.c +new file mode 100644 +index 000000000000..9d53c6e5c710 +--- /dev/null ++++ b/utils-lib.c +@@ -0,0 +1,42 @@ ++#define _GNU_SOURCE ++ ++#include "kerncompat.h" ++#include <unistd.h> ++#include <stdlib.h> ++#include <limits.h> ++ ++#if BTRFS_FLAT_INCLUDES ++#else ++#endif /* BTRFS_FLAT_INCLUDES */ ++ ++/* ++ * This function should be only used when parsing command arg, it won't return ++ * error to its caller and rather exit directly just like usage(). ++ */ ++u64 arg_strtou64(const char *str) ++{ ++ u64 value; ++ char *ptr_parse_end = NULL; ++ ++ value = strtoull(str, &ptr_parse_end, 0); ++ if (ptr_parse_end && *ptr_parse_end != '\0') { ++ fprintf(stderr, "ERROR: %s is not a valid numeric value.\n", ++ str); ++ exit(1); ++ } ++ ++ /* ++ * if we pass a negative number to strtoull, it will return an ++ * unexpected number to us, so let's do the check ourselves. ++ */ ++ if (str[0] == '-') { ++ fprintf(stderr, "ERROR: %s: negative value is invalid.\n", ++ str); ++ exit(1); ++ } ++ if (value == ULLONG_MAX) { ++ fprintf(stderr, "ERROR: %s is too large.\n", str); ++ exit(1); ++ } ++ return value; ++} +diff --git a/utils.c b/utils.c +index 29953d9dd2a9..e130849c7bb5 100644 +--- a/utils.c ++++ b/utils.c +@@ -1538,39 +1538,6 @@ scan_again: + return 0; + } + +-/* +- * This function should be only used when parsing +- * command arg, it won't return error to it's +- * caller and rather exit directly just like usage(). +- */ +-u64 arg_strtou64(const char *str) +-{ +- u64 value; +- char *ptr_parse_end = NULL; +- +- value = strtoull(str, &ptr_parse_end, 0); +- if (ptr_parse_end && *ptr_parse_end != '\0') { +- fprintf(stderr, "ERROR: %s is not a valid numeric value.\n", +- str); +- exit(1); +- } +- /* +- * if we pass a negative number to strtoull, +- * it will return an unexpected number to us, +- * so let's do the check ourselves. +- */ +- if (str[0] == '-') { +- fprintf(stderr, "ERROR: %s: negative value is invalid.\n", +- str); +- exit(1); +- } +- if (value == ULLONG_MAX) { +- fprintf(stderr, "ERROR: %s is too large.\n", str); +- exit(1); +- } +- return value; +-} +- + u64 parse_size(char *s) + { + int i; +-- +1.9.0 + +-- +To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html |