diff --git a/.attr.metadata b/.attr.metadata new file mode 100644 index 0000000..a0518f0 --- /dev/null +++ b/.attr.metadata @@ -0,0 +1 @@ +835572a990537b7b1da71502dd7d2037b1467ed2 SOURCES/attr-2.4.46.src.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/attr-2.4.32-build.patch b/SOURCES/attr-2.4.32-build.patch new file mode 100644 index 0000000..a7c3af2 --- /dev/null +++ b/SOURCES/attr-2.4.32-build.patch @@ -0,0 +1,40 @@ +diff --git a/include/builddefs.in b/include/builddefs.in +index 6df0f5a..575a6df 100644 +--- a/include/builddefs.in ++++ b/include/builddefs.in +@@ -40,14 +40,14 @@ PKG_RELEASE = @pkg_release@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@/attr +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@/attr ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@-@pkg_version@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ +diff --git a/include/buildmacros b/include/buildmacros +index ab89182..3118a17 100644 +--- a/include/buildmacros ++++ b/include/buildmacros +@@ -40,7 +40,7 @@ OBJECTS = $(ASFILES:.s=.o) \ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/include/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/include/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images diff --git a/SOURCES/attr-2.4.44-bz660613.patch b/SOURCES/attr-2.4.44-bz660613.patch new file mode 100644 index 0000000..c7beda1 --- /dev/null +++ b/SOURCES/attr-2.4.44-bz660613.patch @@ -0,0 +1,50 @@ +From bad2f36467d1f606eb418542a23949743708304e Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Wed, 22 Dec 2010 15:03:48 +0100 +Subject: [PATCH] walk_tree: do not follow symlink to directory with -h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +reported by Jean-Pierre André at https://bugzilla.redhat.com/660613 +--- + libmisc/walk_tree.c | 3 ++- + test/attr.test | 8 ++++++++ + 2 files changed, 10 insertions(+), 1 deletions(-) + +diff --git a/libmisc/walk_tree.c b/libmisc/walk_tree.c +index b82a301..e237e85 100644 +--- a/libmisc/walk_tree.c ++++ b/libmisc/walk_tree.c +@@ -60,7 +60,8 @@ static int walk_tree_rec(const char *path, int walk_flags, + void *), void *arg, int depth) + { + int follow_symlinks = (walk_flags & WALK_TREE_LOGICAL) || +- (!(walk_flags & WALK_TREE_PHYSICAL) && ++ ((walk_flags & WALK_TREE_DEREFERENCE) && ++ !(walk_flags & WALK_TREE_PHYSICAL) && + depth == 0); + int have_dir_stat = 0, flags = walk_flags, err; + struct entry_handle dir; +diff --git a/test/attr.test b/test/attr.test +index 10f10d0..a3e472d 100644 +--- a/test/attr.test ++++ b/test/attr.test +@@ -221,6 +221,14 @@ Attributes of symlinks vs. the files pointed to + + $ rm f + ++Attributes of symlinks vs. the files pointed to in a directory ++ ++ $ mkdir src ++ $ touch src/target ++ $ setfattr -n user.color -v blue src/target ++ $ ln -s src symlink ++ $ getfattr -n user.color -h symlink 2>/dev/null ++ + Tests for file name that contain special characters + + $ touch "f " +-- +1.7.3.3 + diff --git a/SOURCES/attr-2.4.44-bz660619.patch b/SOURCES/attr-2.4.44-bz660619.patch new file mode 100644 index 0000000..a925029 --- /dev/null +++ b/SOURCES/attr-2.4.44-bz660619.patch @@ -0,0 +1,61 @@ +From c3fa3829e494c1875416058bb8d448a89f9e5e55 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Wed, 22 Dec 2010 14:13:27 +0100 +Subject: [PATCH] getfattr: return non-zero exit code on failure +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +reported by Jean-Pierre André at https://bugzilla.redhat.com/660619 +--- + getfattr/getfattr.c | 7 ++++--- + test/attr.test | 4 ++++ + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/getfattr/getfattr.c b/getfattr/getfattr.c +index 7ced700..d8a7bc5 100644 +--- a/getfattr/getfattr.c ++++ b/getfattr/getfattr.c +@@ -355,6 +355,7 @@ int do_print(const char *path, const struct stat *stat, int walk_flags, + void *unused) + { + int header_printed = 0; ++ int err = 0; + + if (walk_flags & WALK_TREE_FAILED) { + fprintf(stderr, "%s: %s: %s\n", progname, xquote(path, "\n\r"), +@@ -363,13 +364,13 @@ int do_print(const char *path, const struct stat *stat, int walk_flags, + } + + if (opt_name) +- print_attribute(path, opt_name, &header_printed); ++ err = print_attribute(path, opt_name, &header_printed); + else +- list_attributes(path, &header_printed); ++ err = list_attributes(path, &header_printed); + + if (header_printed) + puts(""); +- return 0; ++ return err; + } + + void help(void) +diff --git a/test/attr.test b/test/attr.test +index e8f134c..10f10d0 100644 +--- a/test/attr.test ++++ b/test/attr.test +@@ -22,6 +22,10 @@ Try various valid and invalid names + > user.name + > + ++ $ setfattr -x user.name f ++ $ sh -c 'getfattr -n user.name f && echo zero exit code' ++ > f: user.name: No such attribute ++ + $ setfattr -n user.n -v value f + $ rm f + +-- +1.7.3.3 + diff --git a/SOURCES/attr-2.4.44-bz669095.patch b/SOURCES/attr-2.4.44-bz669095.patch new file mode 100644 index 0000000..3838a3a --- /dev/null +++ b/SOURCES/attr-2.4.44-bz669095.patch @@ -0,0 +1,35 @@ +From 5c6e19a6ef4b3acb15665fadeb9c7305e1bebaf4 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Thu, 13 Jan 2011 12:08:32 +0100 +Subject: [PATCH] fix typos in attr.1 man page + +Contributed by John Bradshaw. +--- + man/man1/attr.1 | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/man/man1/attr.1 b/man/man1/attr.1 +index b265823..392464c 100644 +--- a/man/man1/attr.1 ++++ b/man/man1/attr.1 +@@ -76,7 +76,7 @@ and + address spaces. + The + .B root +-address space is accessable only to the superuser, ++address space is accessible only to the superuser, + and then only by specifying a flag argument to the function call. + Other users will not see or be able to modify attributes in the + .B root +@@ -127,7 +127,7 @@ option tells + .I attr + to remove an attribute with the given name from the object if the + attribute exists. +-There is no output on sucessful completion. ++There is no output on successful completion. + .TP + .B SET/CREATE + The +-- +1.7.4.rc1 + diff --git a/SOURCES/attr-2.4.44-bz957989.patch b/SOURCES/attr-2.4.44-bz957989.patch new file mode 100644 index 0000000..a2ddf2f --- /dev/null +++ b/SOURCES/attr-2.4.44-bz957989.patch @@ -0,0 +1,198 @@ +From 182a48b83c0319ec4bad60aecf1b688288bf0f9d Mon Sep 17 00:00:00 2001 +From: Riku Voipio +Date: Wed, 20 Mar 2013 07:51:18 -0700 +Subject: [PATCH] libattr: syscalls: use syscalls.h + +Include syscalls.h and check for __NR_setxattr being set. This fixes the +build on new and odd archs but may break on really really old machines +with out of date syscalls.h. + +[upstream commit db54b565deace6d27eaa158508087ce54fe959c4] + +Signed-off-by: Kamil Dudka +--- + libattr/syscalls.c | 166 +--------------------------------------------------- + 1 files changed, 2 insertions(+), 164 deletions(-) + +diff --git a/libattr/syscalls.c b/libattr/syscalls.c +index cbfec57..51fe98c 100644 +--- a/libattr/syscalls.c ++++ b/libattr/syscalls.c +@@ -23,172 +23,10 @@ + + #include + #include ++#include + +-#if defined (__i386__) ++#if defined (__NR_setxattr) + # define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 226 +-# define __NR_lsetxattr 227 +-# define __NR_fsetxattr 228 +-# define __NR_getxattr 229 +-# define __NR_lgetxattr 230 +-# define __NR_fgetxattr 231 +-# define __NR_listxattr 232 +-# define __NR_llistxattr 233 +-# define __NR_flistxattr 234 +-# define __NR_removexattr 235 +-# define __NR_lremovexattr 236 +-# define __NR_fremovexattr 237 +-#elif defined (__sparc__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 169 +-# define __NR_lsetxattr 170 +-# define __NR_fsetxattr 171 +-# define __NR_getxattr 172 +-# define __NR_lgetxattr 173 +-# define __NR_fgetxattr 177 +-# define __NR_listxattr 178 +-# define __NR_llistxattr 179 +-# define __NR_flistxattr 180 +-# define __NR_removexattr 181 +-# define __NR_lremovexattr 182 +-# define __NR_fremovexattr 186 +-#elif defined (__ia64__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 1217 +-# define __NR_lsetxattr 1218 +-# define __NR_fsetxattr 1219 +-# define __NR_getxattr 1220 +-# define __NR_lgetxattr 1221 +-# define __NR_fgetxattr 1222 +-# define __NR_listxattr 1223 +-# define __NR_llistxattr 1224 +-# define __NR_flistxattr 1225 +-# define __NR_removexattr 1226 +-# define __NR_lremovexattr 1227 +-# define __NR_fremovexattr 1228 +-#elif defined (__powerpc__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 209 +-# define __NR_lsetxattr 210 +-# define __NR_fsetxattr 211 +-# define __NR_getxattr 212 +-# define __NR_lgetxattr 213 +-# define __NR_fgetxattr 214 +-# define __NR_listxattr 215 +-# define __NR_llistxattr 216 +-# define __NR_flistxattr 217 +-# define __NR_removexattr 218 +-# define __NR_lremovexattr 219 +-# define __NR_fremovexattr 220 +-#elif defined (__x86_64__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 188 +-# define __NR_lsetxattr 189 +-# define __NR_fsetxattr 190 +-# define __NR_getxattr 191 +-# define __NR_lgetxattr 192 +-# define __NR_fgetxattr 193 +-# define __NR_listxattr 194 +-# define __NR_llistxattr 195 +-# define __NR_flistxattr 196 +-# define __NR_removexattr 197 +-# define __NR_lremovexattr 198 +-# define __NR_fremovexattr 199 +-#elif defined (__s390__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 224 +-# define __NR_lsetxattr 225 +-# define __NR_fsetxattr 226 +-# define __NR_getxattr 227 +-# define __NR_lgetxattr 228 +-# define __NR_fgetxattr 229 +-# define __NR_listxattr 230 +-# define __NR_llistxattr 231 +-# define __NR_flistxattr 232 +-# define __NR_removexattr 233 +-# define __NR_lremovexattr 234 +-# define __NR_fremovexattr 235 +-#elif defined (__arm__) +-# define HAVE_XATTR_SYSCALLS 1 +-# if defined(__ARM_EABI__) || defined(__thumb__) +-# define __NR_SYSCALL_BASE 0 +-# else +-# define __NR_SYSCALL_BASE 0x900000 +-# endif +-# define __NR_setxattr (__NR_SYSCALL_BASE+226) +-# define __NR_lsetxattr (__NR_SYSCALL_BASE+227) +-# define __NR_fsetxattr (__NR_SYSCALL_BASE+228) +-# define __NR_getxattr (__NR_SYSCALL_BASE+229) +-# define __NR_lgetxattr (__NR_SYSCALL_BASE+230) +-# define __NR_fgetxattr (__NR_SYSCALL_BASE+231) +-# define __NR_listxattr (__NR_SYSCALL_BASE+232) +-# define __NR_llistxattr (__NR_SYSCALL_BASE+233) +-# define __NR_flistxattr (__NR_SYSCALL_BASE+234) +-# define __NR_removexattr (__NR_SYSCALL_BASE+235) +-# define __NR_lremovexattr (__NR_SYSCALL_BASE+236) +-# define __NR_fremovexattr (__NR_SYSCALL_BASE+237) +-#elif defined (__mips64) +-# define HAVE_XATTR_SYSCALLS 1 +-# ifdef __LP64__ /* mips64 using n64 ABI */ +-# define __NR_Linux 5000 +-# else /* mips64 using n32 ABI */ +-# define __NR_Linux 6000 +-# endif +-# define __NR_setxattr (__NR_Linux + 180) +-# define __NR_lsetxattr (__NR_Linux + 181) +-# define __NR_fsetxattr (__NR_Linux + 182) +-# define __NR_getxattr (__NR_Linux + 183) +-# define __NR_lgetxattr (__NR_Linux + 184) +-# define __NR_fgetxattr (__NR_Linux + 185) +-# define __NR_listxattr (__NR_Linux + 186) +-# define __NR_llistxattr (__NR_Linux + 187) +-# define __NR_flistxattr (__NR_Linux + 188) +-# define __NR_removexattr (__NR_Linux + 189) +-# define __NR_lremovexattr (__NR_Linux + 190) +-# define __NR_fremovexattr (__NR_Linux + 191) +-#elif defined (__mips__) /* mips32, or mips64 using o32 ABI */ +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_Linux 4000 +-# define __NR_setxattr (__NR_Linux + 224) +-# define __NR_lsetxattr (__NR_Linux + 225) +-# define __NR_fsetxattr (__NR_Linux + 226) +-# define __NR_getxattr (__NR_Linux + 227) +-# define __NR_lgetxattr (__NR_Linux + 228) +-# define __NR_fgetxattr (__NR_Linux + 229) +-# define __NR_listxattr (__NR_Linux + 230) +-# define __NR_llistxattr (__NR_Linux + 231) +-# define __NR_flistxattr (__NR_Linux + 232) +-# define __NR_removexattr (__NR_Linux + 233) +-# define __NR_lremovexattr (__NR_Linux + 234) +-# define __NR_fremovexattr (__NR_Linux + 235) +-#elif defined (__alpha__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 382 +-# define __NR_lsetxattr 383 +-# define __NR_fsetxattr 384 +-# define __NR_getxattr 385 +-# define __NR_lgetxattr 386 +-# define __NR_fgetxattr 387 +-# define __NR_listxattr 388 +-# define __NR_llistxattr 389 +-# define __NR_flistxattr 390 +-# define __NR_removexattr 391 +-# define __NR_lremovexattr 392 +-# define __NR_fremovexattr 393 +-#elif defined (__mc68000__) +-# define HAVE_XATTR_SYSCALLS 1 +-# define __NR_setxattr 223 +-# define __NR_lsetxattr 224 +-# define __NR_fsetxattr 225 +-# define __NR_getxattr 226 +-# define __NR_lgetxattr 227 +-# define __NR_fgetxattr 228 +-# define __NR_listxattr 229 +-# define __NR_llistxattr 230 +-# define __NR_flistxattr 231 +-# define __NR_removexattr 232 +-# define __NR_lremovexattr 233 +-# define __NR_fremovexattr 234 + #else + # warning "Extended attribute syscalls undefined for this architecture" + # define HAVE_XATTR_SYSCALLS 0 +-- +1.7.1 + diff --git a/SOURCES/attr-2.4.44-tests.patch b/SOURCES/attr-2.4.44-tests.patch new file mode 100644 index 0000000..a856cf2 --- /dev/null +++ b/SOURCES/attr-2.4.44-tests.patch @@ -0,0 +1,22 @@ +diff --git a/test/attr.test b/test/attr.test +index d394562..e8f134c 100644 +--- a/test/attr.test ++++ b/test/attr.test +@@ -264,7 +264,7 @@ Tests for proper path recursion reported by Tony Ernst bnc#457660 + $ setfattr -n "user.9" 1/2/3 + $ setfattr -n "user.a" 1/2/3 + +- $ getfattr -h -L -R -m '.' -e hex 1 | ./sort-getfattr-output ++ $ getfattr -h -L -R -m '.' -e hex 1 | grep -v ^security\\.selinux | ./sort-getfattr-output + > # file: 1 + > user.9 + > user.a +@@ -278,7 +278,7 @@ Tests for proper path recursion reported by Tony Ernst bnc#457660 + > user.a + > + +- $ getfattr -h -P -R -m '.' -e hex 1/2 | ./sort-getfattr-output ++ $ getfattr -h -P -R -m '.' -e hex 1/2 | grep -v ^security\\.selinux | ./sort-getfattr-output + > # file: 1/2 + > user.9 + > user.a diff --git a/SOURCES/attr-2.4.44-warnings.patch b/SOURCES/attr-2.4.44-warnings.patch new file mode 100644 index 0000000..ab11a02 --- /dev/null +++ b/SOURCES/attr-2.4.44-warnings.patch @@ -0,0 +1,89 @@ +From b01c9a5805632167acc4c669852093555bfc10ae Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Tue, 19 Apr 2011 08:48:53 +0200 +Subject: [PATCH] fix compile-time warnings in attr-2.4.45 + +--- + attr/attr.c | 10 ++++++++-- + getfattr/getfattr.c | 6 ++++-- + libmisc/quote.c | 1 + + libmisc/walk_tree.c | 4 ++-- + 4 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/attr/attr.c b/attr/attr.c +index e4a8272..2b1ba6a 100644 +--- a/attr/attr.c ++++ b/attr/attr.c +@@ -173,9 +173,11 @@ main(int argc, char **argv) + exit(1); + } + if (verbose) { ++ int sink; + printf(_("Attribute \"%s\" set to a %d byte value " + "for %s:\n"), attrname, attrlength, filename); +- fwrite(attrvalue, 1, attrlength, stdout); ++ sink = fwrite(attrvalue, 1, attrlength, stdout); ++ (void) sink; + printf("\n"); + } + break; +@@ -199,7 +201,11 @@ main(int argc, char **argv) + printf(_("Attribute \"%s\" had a %d byte value " + "for %s:\n"), attrname, attrlength, filename); + } +- fwrite(attrvalue, 1, attrlength, stdout); ++ { ++ /* silence compiler's warning */ ++ int sink = fwrite(attrvalue, 1, attrlength, stdout); ++ (void) sink; ++ } + if (verbose) { + printf("\n"); + } +diff --git a/getfattr/getfattr.c b/getfattr/getfattr.c +index 9c3de32..7ced700 100644 +--- a/getfattr/getfattr.c ++++ b/getfattr/getfattr.c +@@ -274,8 +274,10 @@ int print_attribute(const char *path, const char *name, int *header_printed) + *header_printed = 1; + } + +- if (opt_value_only) +- fwrite(value, length, 1, stdout); ++ if (opt_value_only) { ++ int sink = fwrite(value, length, 1, stdout); ++ (void) sink; ++ } + else if (length) { + const char *enc = encode(value, &length); + +diff --git a/libmisc/quote.c b/libmisc/quote.c +index bf8f9eb..8835af4 100644 +--- a/libmisc/quote.c ++++ b/libmisc/quote.c +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include + #include + #include "misc.h" +diff --git a/libmisc/walk_tree.c b/libmisc/walk_tree.c +index 30ff92a..b87c35c 100644 +--- a/libmisc/walk_tree.c ++++ b/libmisc/walk_tree.c +@@ -100,8 +100,8 @@ static int walk_tree_rec(const char *path, int walk_flags, + * a dir not from a symlink + * a link and follow_symlinks + */ +- if ((flags & WALK_TREE_RECURSIVE) && +- (!(flags & WALK_TREE_SYMLINK) && S_ISDIR(st.st_mode)) || ++ if (((flags & WALK_TREE_RECURSIVE) && ++ (!(flags & WALK_TREE_SYMLINK) && S_ISDIR(st.st_mode))) || + ((flags & WALK_TREE_SYMLINK) && follow_symlinks)) { + struct dirent *entry; + +-- +1.7.4.2 + diff --git a/SPECS/attr.spec b/SPECS/attr.spec new file mode 100644 index 0000000..cfe3dea --- /dev/null +++ b/SPECS/attr.spec @@ -0,0 +1,352 @@ +Summary: Utilities for managing filesystem extended attributes +Name: attr +Version: 2.4.46 +Release: 10%{?dist} +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Source: http://download.savannah.gnu.org/releases-noredirect/attr/attr-%{version}.src.tar.gz + +# make it ready for rpmbuild +Patch1: attr-2.4.32-build.patch + +# prepare the test-suite for SELinux +Patch3: attr-2.4.44-tests.patch + +# silence compile-time warnings +Patch4: attr-2.4.44-warnings.patch + +# getfattr: return non-zero exit code on failure (#660619) +Patch7: attr-2.4.44-bz660619.patch + +# walk_tree: do not follow symlink to directory with -h (#660613) +Patch8: attr-2.4.44-bz660613.patch + +# fix typos in attr(1) man page (#669095) +Patch9: attr-2.4.44-bz669095.patch + +# use to fix build on aarch64 (#957989) +Patch10: attr-2.4.44-bz957989.patch + +License: GPLv2+ +URL: http://acl.bestbits.at/ +Group: System Environment/Base +BuildRequires: gettext +BuildRequires: libtool +Requires: libattr = %{version}-%{release} + +%description +A set of tools for manipulating extended attributes on filesystem +objects, in particular getfattr(1) and setfattr(1). +An attr(1) command is also provided which is largely compatible +with the SGI IRIX tool of the same name. + +%package -n libattr +Summary: Dynamic library for extended attribute support +Group: System Environment/Libraries +License: LGPLv2+ +Conflicts: filesystem < 3 + +%description -n libattr +This package contains the libattr.so dynamic library which contains +the extended attribute system calls and library functions. + +%package -n libattr-devel +Summary: Files needed for building programs with libattr +Group: Development/Libraries +License: LGPLv2+ +Requires: libattr = %{version}-%{release} + +%description -n libattr-devel +This package contains header files and documentation needed to +develop programs which make use of extended attributes. +For Linux programs, the documented system call API is the +recommended interface, but an SGI IRIX compatibility interface +is also provided. + +Currently only ext2, ext3 and XFS support extended attributes. +The SGI IRIX compatibility API built above the Linux system calls is +used by programs such as xfsdump(8), xfsrestore(8) and xfs_fsr(8). + +You should install libattr-devel if you want to develop programs +which make use of extended attributes. If you install libattr-devel, +you'll also want to install attr. + +%prep +%setup -q +%patch1 -p1 +%patch3 -p1 +%patch4 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 + +%build +# attr <= 2.4.46 abuses libexecdir (fixed upstream in 2971df45) +%configure --libexecdir=%{_libdir} + +# uncomment to turn off optimizations +# sed -i 's/-O2/-O0/' libtool include/builddefs +# unset CFLAGS + +make %{?_smp_mflags} LIBTOOL="libtool --tag=CC" + +%check +if ./setfattr/setfattr -n user.name -v value .; then + make tests || exit $? + + # FIXME: root-tests are not ready for the SELinux + #if test 0 = `id -u`; then + # make root-tests || exit $? + #fi +else + echo '*** xattrs are probably not supported by the file system,' \ + 'the test-suite will NOT run ***' +fi + +%install +make install DESTDIR=$RPM_BUILD_ROOT +make install-dev DESTDIR=$RPM_BUILD_ROOT +make install-lib DESTDIR=$RPM_BUILD_ROOT + +# get rid of libattr.a and libattr.la +rm -f $RPM_BUILD_ROOT/%{_lib}/libattr.a +rm -f $RPM_BUILD_ROOT/%{_lib}/libattr.la +rm -f $RPM_BUILD_ROOT%{_libdir}/libattr.a +rm -f $RPM_BUILD_ROOT%{_libdir}/libattr.la + +chmod 0755 $RPM_BUILD_ROOT/%{_libdir}/libattr.so.*.*.* + +%find_lang %{name} + +%post -n libattr -p /sbin/ldconfig + +%postun -n libattr -p /sbin/ldconfig + +%files -f %{name}.lang +%doc doc +%{_bindir}/attr +%{_bindir}/getfattr +%{_bindir}/setfattr +%{_mandir}/man1/attr.1* +%{_mandir}/man1/getfattr.1* +%{_mandir}/man1/setfattr.1* +%{_mandir}/man5/attr.5* + +%files -n libattr-devel +%{_libdir}/libattr.so +%{_includedir}/attr +%{_mandir}/man2/*attr.2* +%{_mandir}/man3/attr_*.3.* + +%files -n libattr +%{_libdir}/libattr.so.* + +%changelog +* Fri May 03 2013 Kamil Dudka 2.4.46-10 +- use to fix build on aarch64 (#957989) + +* Wed Feb 13 2013 Fedora Release Engineering - 2.4.46-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Aug 28 2012 Kamil Dudka 2.4.46-8 +- fix specfile issues reported by the fedora-review script + +* Wed Jul 18 2012 Fedora Release Engineering - 2.4.46-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 02 2012 Kamil Dudka 2.4.46-6 +- do not mention static libraries in the summary of libattr-devel (#817953) + +* Wed Jan 25 2012 Harald Hoyer 2.4.46-5 +- add filesystem guard + +* Wed Jan 25 2012 Harald Hoyer 2.4.46-4 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Thu Jan 12 2012 Fedora Release Engineering - 2.4.46-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri May 06 2011 Kamil Dudka 2.4.46-2 +- update project URL (#702636) + +* Thu Apr 21 2011 Kamil Dudka 2.4.46-1 +- new upstream release + +* Tue Apr 19 2011 Kamil Dudka 2.4.45-1 +- new upstream release + +* Tue Mar 29 2011 Kamil Dudka 2.2.44-8 +- fix typos in attr(1) man page (#669095) + +* Mon Feb 07 2011 Fedora Release Engineering - 2.4.44-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Dec 22 2010 Kamil Dudka 2.2.44-6 +- setfattr.1: document supported encodings of values (#587516) +- getfattr: encode NULs properly with --encoding=text (#650539) +- getfattr: return non-zero exit code on failure (#660619) +- walk_tree: do not follow symlink to directory with -h (#660613) + +* Tue May 25 2010 Kamil Dudka 2.2.44-5 +- let attr depend on the same version of libattr (#595689) +- silence compile-time warnings + +* Wed Mar 10 2010 Kamil Dudka 2.2.44-4 +- run the test-suite if possible + +* Tue Jan 19 2010 Kamil Dudka 2.2.44-3 +- do not package a static library (#556038) +- remove multilib patch no longer useful +- enable parallel make + +* Thu Jan 07 2010 Kamil Dudka 2.4.44-2 +- cleanup in BuildRequires +- updated source URL +- re-downloaded source tarball from upstream (size changed by one) + +* Wed Nov 25 2009 Kamil Dudka 2.4.44-1 +- new upstream release + +* Fri Jul 24 2009 Fedora Release Engineering - 2.4.43-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Feb 23 2009 Fedora Release Engineering - 2.4.43-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 18 2009 Zdenek Prikryl 2.4.43-2 +- Fixed memory leaks (#485473) + +* Wed Jul 16 2008 Zdenek Prikryl 2.4.43-1 +- New version 2.4.43 + +* Mon Jul 14 2008 Tom "spot" Callaway 2.4.41-2 +- fix license tags + +* Tue Feb 13 2008 Zdenek Prikryl 2.4.41-1 +- New version 2.4.41 +- Removed useless attr-2.0.8-docperms.patch + +* Wed Oct 31 2007 Zdenek Prikryl 2.4.39-1 +- New version 2.4.39 +- Resolves #284121 + +* Tue Oct 30 2007 Zdenek Prikryl 2.4.38-2 +- Removed explicit Requires(post + postun) +- Resolves #225290 + +* Tue Jul 31 2007 Zdenek Prikryl 2.4.38-1 +- New version 2.4.38 +- Resolves #245415 + +* Fri Feb 23 2007 Karsten Hopp 2.4.32-2 +- add disttag +- remove trailing dot from summary +- fix buildroot +- -devel package requires same libattr version +- change prereq to Requires(post) +- escape macro in changelog +- replace absolute link with relative link (libattr.so) +- use %%doc macro + +* Wed Jul 12 2006 Jesse Keating - 2.4.32-1.1 +- rebuild + +* Wed Jul 5 2006 Thomas Woerner 2.4.32-1 +- new version 2.4.32 +- fixes segmentation fault in attr, which affects #189106 + +* Wed Jun 7 2006 Jeremy Katz - 2.4.28-2 +- rebuild for -devel deps + +* Fri Feb 10 2006 Jesse Keating - 2.4.28-1.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.4.28-1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Feb 3 2006 Thomas Woerner 2.4.28-1 +- new version 2.4.28 + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Tue Dec 6 2005 Thomas Woerner 2.4.24-2 +- spec file cleanup +- mark po files as lang specific + +* Sun Nov 06 2005 Florian La Roche +- 2.4.24 + +* Wed Sep 28 2005 Than Ngo 2.4.23-1 +- update to 2.4.23 + +* Wed Sep 28 2005 Than Ngo 2.4.16-6 +- get rid of *.la files +- remove duplicate doc files + +* Wed Feb 9 2005 Stephen C. Tweedie 2.4.16-4 +- Rebuild + +* Fri Sep 10 2004 Stephen C. Tweedie 2.4.16-3 +- Build requires libtool >= 1.5 + +* Thu Aug 19 2004 Phil Knirsch 2.4.16-2 +- Make libattr.so.* executable. + +* Thu Aug 19 2004 Phil Knirsch 2.4.16-1 +- Update to latest upstream version. + +* Sun Aug 8 2004 Alan Cox 2.4.1-6 +- Fix bug #125304 (Steve Grubb: build requires gettext) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Wed Mar 31 2004 Stephen C. Tweedie 2.4.1-4 +- Add missing %%defattr + +* Tue Mar 30 2004 Stephen C. Tweedie 2.4.1-3 +- Add /usr/include/attr to files manifest +- Fix location of doc files, add main doc dir to files manifest + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Tue Aug 5 2003 Elliot Lee 2.4.1-2 +- Fix libtool + +* Tue Jun 3 2003 Stephen C. Tweedie 2.4.1-1 +- update to attr-2.4.1 + +* Tue Jan 28 2003 Michael K. Johnson 2.2.0-1 +- update/rebuild + +* Sat Jan 4 2003 Jeff Johnson 2.0.8-6 +- set execute bits on library so that requires are generated. + +* Thu Nov 21 2002 Elliot Lee 2.0.8-5 +- Redo multilib patch to work everywhere + +* Wed Sep 11 2002 Than Ngo 2.0.8-4 +- Added fix to install libs in correct directory on 64bit machine + +* Thu Aug 08 2002 Michael K. Johnson 2.0.8-3 +- Made the package only own the one directory that is unique to it: + /usr/include/attr + +* Wed Jun 26 2002 Michael K. Johnson 2.0.8-2 +- get perl out of base with attr-2.0.8-docperms.patch + +* Mon Jun 24 2002 Michael K. Johnson 2.0.8-1 +- Initial Red Hat package + Made as few changes as possible relative to upstream packaging to + make it easier to maintain long-term. This means that some of + the techniques used here are definitely not standard Red Hat + techniques. If you are looking for an example package to fit + into Red Hat Linux transparently, this would not be the one to + pick. +- attr-devel -> libattr-devel