[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