[packages/btrfs-progs] - updated to 3.14.1 - added arg_strtou64 patch from opensuse (fixes missing symbol in library)
qboosh
qboosh at pld-linux.org
Sat Apr 19 23:11:55 CEST 2014
commit ada6dcafbfc306f0eaf1699176e733ba2214aa85
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sat Apr 19 23:14:02 2014 +0200
- updated to 3.14.1
- added arg_strtou64 patch from opensuse (fixes missing symbol in library)
btrfs-progs-arg_strtou64.patch | 136 +++++++++++++++++++++++++++++++++++++++++
btrfs-progs.spec | 7 ++-
2 files changed, 141 insertions(+), 2 deletions(-)
---
diff --git a/btrfs-progs.spec b/btrfs-progs.spec
index 9d601c1..ddf260e 100644
--- a/btrfs-progs.spec
+++ b/btrfs-progs.spec
@@ -1,12 +1,13 @@
Summary: Utilities belonging to the btrfs filesystem
Summary(pl.UTF-8): Narzędzia należące do systemu plików btrfs
Name: btrfs-progs
-Version: 3.12
+Version: 3.14.1
Release: 1
License: GPL v2
Group: Applications/System
Source0: https://www.kernel.org/pub/linux/kernel/people/mason/btrfs-progs/%{name}-v%{version}.tar.xz
-# Source0-md5: cd96bb73acd864e577cddba5fe310650
+# Source0-md5: 761d07cfe5b468ec733e90a57b413e5c
+Patch0: %{name}-arg_strtou64.patch
URL: http://btrfs.wiki.kernel.org/
BuildRequires: acl-devel
BuildRequires: e2fsprogs-devel
@@ -59,6 +60,7 @@ Statyczna biblioteka dla systemu plików btrfs.
%prep
%setup -q -n %{name}-v%{version}
+%patch0 -p1
%build
%{__make} \
@@ -109,6 +111,7 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man8/btrfs-show-super.8*
%{_mandir}/man8/btrfs-zero-log.8*
%{_mandir}/man8/btrfstune.8*
+%{_mandir}/man8/fsck.btrfs.8*
%files devel
%defattr(644,root,root,755)
diff --git a/btrfs-progs-arg_strtou64.patch b/btrfs-progs-arg_strtou64.patch
new file mode 100644
index 0000000..f86ae43
--- /dev/null
+++ b/btrfs-progs-arg_strtou64.patch
@@ -0,0 +1,136 @@
+From f555e06e2d266f52cdeb12218f8175eba2a17020 Mon Sep 17 00:00:00 2001
+From: David Sterba <dste... at suse.cz>
+Date: Fri, 11 Apr 2014 13:22:50 +0200
+Subject: [PATCH] btrfs-progs: move arg_strtou64 to a separate file for library
+
+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 <aschn... at suse.com>
+Signed-off-by: David Sterba <dste... at suse.cz>
+---
+ Makefile | 5 +++--
+ libutils.c | 43 +++++++++++++++++++++++++++++++++++++++++++
+ utils.c | 33 ---------------------------------
+ 3 files changed, 46 insertions(+), 35 deletions(-)
+ create mode 100644 libutils.c
+
+diff --git a/Makefile b/Makefile
+index da0519766443..9ae7115d23a3 100644
+--- btrfs-progs-v3.14.1/Makefile.orig 2014-04-19 23:01:20.255226683 +0200
++++ btrfs-progs-v3.14.1/Makefile 2014-04-19 23:01:24.018559938 +0200
+@@ -9,14 +9,15 @@
+ 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 \
++ libutils.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 libutils.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/libutils.c b/libutils.c
+new file mode 100644
+index 000000000000..074f771e0b6e
+--- /dev/null
++++ b/libutils.c
+@@ -0,0 +1,43 @@
++#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 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;
++}
++
+diff --git a/utils.c b/utils.c
+index 3e9c527a492c..134f43a76fe9 100644
+--- btrfs-progs-v3.14.1/utils.c.orig 2014-04-19 22:59:57.785228402 +0200
++++ btrfs-progs-v3.14.1/utils.c 2014-04-19 23:03:03.918557853 +0200
+@@ -1539,39 +1539,6 @@
+ 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
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/btrfs-progs.git/commitdiff/ada6dcafbfc306f0eaf1699176e733ba2214aa85
More information about the pld-cvs-commit
mailing list