commit 8661060b01cf93959e190d38bae24272635fc4fc Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 10:31:47 2019 -0400 Package init diff --git a/0000-attr-2.4.48-test-suite-perl.patch b/0000-attr-2.4.48-test-suite-perl.patch new file mode 100644 index 0000000..f91562f --- /dev/null +++ b/0000-attr-2.4.48-test-suite-perl.patch @@ -0,0 +1,29 @@ +From 46baedf88fe22abafa3f2341b2c1bcb4764ce389 Mon Sep 17 00:00:00 2001 +From: Troy Dawson +Date: Fri, 21 Jul 2017 14:05:47 -0700 +Subject: [PATCH] attr: escape left brace in a regex in test/run + +... to fix test-suite failure with perl-5.26.0 + +Bug: https://bugzilla.redhat.com/1473853 +Signed-off-by: Kamil Dudka +--- + test/run | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/run b/test/run +index 4b1f8d0..07e916c 100755 +--- a/test/run ++++ b/test/run +@@ -106,7 +106,7 @@ for (;;) { + if (defined $line) { + # Substitute %VAR and %{VAR} with environment variables. + $line =~ s[%(\w+)][$ENV{$1}]eg; +- $line =~ s[%{(\w+)}][$ENV{$1}]eg; ++ $line =~ s[%\{(\w+)}][$ENV{$1}]eg; + } + if (defined $line) { + if ($line =~ s/^\s*< ?//) { +-- +2.13.0 + diff --git a/6000-Switch-back-to-syscall.patch b/6000-Switch-back-to-syscall.patch new file mode 100644 index 0000000..de879e2 --- /dev/null +++ b/6000-Switch-back-to-syscall.patch @@ -0,0 +1,126 @@ +From 14adc898a36948267bfe5c63b399996879e94c98 Mon Sep 17 00:00:00 2001 +From: Andreas Gruenbacher +Date: Fri, 17 Aug 2018 14:07:31 +0200 +Subject: Switch back to syscall() + +Switch back to syscall() for the *xattr system calls. The current +mechanism of forwarding those calls to glibc breaks libraries like +libfakeroot (fakeroot) and libasan (the gcc address sanitizer; gcc +-fsanitize=address). + +Those libraries provide wrappers for functions defined in other shared +libraries, usually glibc, do their own processing, and forward calls to +the original symbols looke dup via dlsym(RTLD_NEXT, "symbol_name"). In +our case, dlsym returns the libattr_*xattr wrappers. However, when our +wrappers try calling glibc, they end up calling the libfakeroot / +libasan wrappers instead because those override the original symbols => +recursion. + +The libattr_*xattr wrappers will only be used when symbols are looked up +at runtime (dlopen / dlsym). Programs linking against libattr will +directly use the glibc provided symbols. Therefore, the slightly worse +performance of syscall() won't affect any of the "normal" users of +libattr. + +[nicolas.cavallari: with uclibc-ng, the recursion always happen] +Signed-off-by: Nicolas Cavallari +--- + libattr/syscalls.c | 26 ++++++++++++++------------ + 1 file changed, 14 insertions(+), 12 deletions(-) + +diff --git a/libattr/syscalls.c b/libattr/syscalls.c +index 3013aa0..721ad7f 100644 +--- a/libattr/syscalls.c ++++ b/libattr/syscalls.c +@@ -22,6 +22,8 @@ + + #include "config.h" + ++#include ++#include + #include + + #ifdef HAVE_VISIBILITY_ATTRIBUTE +@@ -31,67 +33,67 @@ + int libattr_setxattr(const char *path, const char *name, + void *value, size_t size, int flags) + { +- return setxattr(path, name, value, size, flags); ++ return syscall(__NR_setxattr, path, name, value, size, flags); + } + + int libattr_lsetxattr(const char *path, const char *name, + void *value, size_t size, int flags) + { +- return lsetxattr(path, name, value, size, flags); ++ return syscall(__NR_lsetxattr, path, name, value, size, flags); + } + + int libattr_fsetxattr(int filedes, const char *name, + void *value, size_t size, int flags) + { +- return fsetxattr(filedes, name, value, size, flags); ++ return syscall(__NR_fsetxattr, filedes, name, value, size, flags); + } + + ssize_t libattr_getxattr(const char *path, const char *name, + void *value, size_t size) + { +- return getxattr(path, name, value, size); ++ return syscall(__NR_getxattr, path, name, value, size); + } + + ssize_t libattr_lgetxattr(const char *path, const char *name, + void *value, size_t size) + { +- return lgetxattr(path, name, value, size); ++ return syscall(__NR_lgetxattr, path, name, value, size); + } + + ssize_t libattr_fgetxattr(int filedes, const char *name, + void *value, size_t size) + { +- return fgetxattr(filedes, name, value, size); ++ return syscall(__NR_fgetxattr, filedes, name, value, size); + } + + ssize_t libattr_listxattr(const char *path, char *list, size_t size) + { +- return listxattr(path, list, size); ++ return syscall(__NR_listxattr, path, list, size); + } + + ssize_t libattr_llistxattr(const char *path, char *list, size_t size) + { +- return llistxattr(path, list, size); ++ return syscall(__NR_llistxattr, path, list, size); + } + + ssize_t libattr_flistxattr(int filedes, char *list, size_t size) + { +- return flistxattr(filedes, list, size); ++ return syscall(__NR_flistxattr, filedes, list, size); + } + + int libattr_removexattr(const char *path, const char *name) + { +- return removexattr(path, name); ++ return syscall(__NR_removexattr, path, name); + } + + int libattr_lremovexattr(const char *path, const char *name) + { +- return lremovexattr(path, name); ++ return syscall(__NR_lremovexattr, path, name); + } + + int libattr_fremovexattr(int filedes, const char *name) + { +- return fremovexattr(filedes, name); ++ return syscall(__NR_fremovexattr, filedes, name); + } + + #ifdef HAVE_VISIBILITY_ATTRIBUTE +-- +cgit v1.0-41-gc330 + diff --git a/attr-2.4.48.tar.gz b/attr-2.4.48.tar.gz new file mode 100644 index 0000000..78a7c0e Binary files /dev/null and b/attr-2.4.48.tar.gz differ diff --git a/attr.spec b/attr.spec new file mode 100644 index 0000000..dffc3a4 --- /dev/null +++ b/attr.spec @@ -0,0 +1,126 @@ +%{!?_licensedir:%global license %%doc} +Name: attr +Version: 2.4.48 +Release: 5 +Summary: Commands for Manipulating Filesystem Extended Attributes +License: GPLv2+ AND LGPLv2+ +URL: https://savannah.nongnu.org/projects/attr +Source0: https://download-mirror.savannah.gnu.org/releases/attr/attr-%{version}.tar.gz + +# fix test-suite failure with perl-5.26.0 (#1473853) +Patch0000: 0000-attr-2.4.48-test-suite-perl.patch +Patch6000: 6000-Switch-back-to-syscall.patch + + +BuildRequires: gettext, libtool, chrpath, gcc, git +Provides: libattr +Obsoletes: libattr +Conflicts: xfsdump < 3.1.8 +Conflicts: filesystem < 3 + +%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-devel +License: LGPLv2+ +Summary: Header files for libattr +Obsoletes: libattr +Requires: glibc-headers + +%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. + +%package help +Summary: Including man files for attr +Requires: man + +%description help +This contains man files for the using of attr + +%prep +%autosetup -Sgit -n %{name}-%{version} + +%build +%configure --disable-silent-rules +make %{?_smp_mflags} + +%install +%make_install +# remove rpath +chrpath -d $RPM_BUILD_ROOT%{_bindir}/attr +chrpath -d $RPM_BUILD_ROOT%{_bindir}/getfattr +chrpath -d $RPM_BUILD_ROOT%{_bindir}/setfattr + + +# handle docs on our own +rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}* + +# temporarily provide attr/xattr.h symlink until users are migrated (#1601482) +ln -fs ../sys/xattr.h $RPM_BUILD_ROOT%{_includedir}/attr/xattr.h + +%find_lang %{name} + +%check +make %{?_smp_mflags} check + +%post -n %{name} -p /sbin/ldconfig +%postun -n %{name} -p /sbin/ldconfig + +%files -f %{name}.lang +%doc doc/CHANGES +%license doc/COPYING* +%{_bindir}/* +%{_libdir}/libattr.so.* +%config(noreplace) %{_sysconfdir}/xattr.conf + +%files -n libattr-devel +%{_libdir}/libattr.so +%{_libdir}/pkgconfig/*.pc +%{_libdir}/libattr.a +%{_libdir}/libattr.la +%{_includedir}/attr + +%files help +%{_mandir}/man1/* +%{_mandir}/man3/* + +%changelog +* Fri Aug 30 2019 zoujing - 2.4.48-5 +- Type:enhancemnet +- ID:NA +- SUG:restart +- DESCi:openEuler Debranding + +* Tue Aug 20 2019 zoujing - 2.4.48-4 +- Type:enhancemnet +- ID:NA +- SUG:NA +- DESCi:openEuler Debranding + +* Tue Aug 20 2019 luoshijie - 2.4.48-2.3 +- Type:bugfix +- ID:NA +- SUG:restart +- DESC:rename patch name + +* Wed Jun 12 2019 gulining - 2.4.48-2.2 +- Type:bugfix +- ID:NA +- SUG:restart +- DESC:remove rpath + +* Wed Apr 24 2019 tianhang- 2.4.48-2.1 +- Type:bugfix +- ID:NA +- SUG:restart +- DESC:Switch back to syscall + +* Mon Apr 15 2019 Buildteam - 2.4.48-2 +- Package Initialization