commit ab64523d89792a94076be1d3c7d2990f208f6e8535504b1f4d24a34241c7e344 Author: OBS User unknown Date: Mon Dec 18 23:15:07 2006 +0000 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/attr?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/attr-2.4.28.src.tar.bz2 b/attr-2.4.28.src.tar.bz2 new file mode 100644 index 0000000..4567e0d --- /dev/null +++ b/attr-2.4.28.src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff1c464693c5e756b8047412f49e84c38c6385aa5b4e1230aafc81ea21f59e7 +size 93657 diff --git a/attr.changes b/attr.changes new file mode 100644 index 0000000..69d5a3f --- /dev/null +++ b/attr.changes @@ -0,0 +1,248 @@ +------------------------------------------------------------------- +Mon Oct 16 17:55:45 CEST 2006 - agruen@suse.de + +- Ignore Beagle index data when copying files. + +------------------------------------------------------------------- +Wed Oct 4 15:26:41 CEST 2006 - agruen@suse.de + +- /etc/xattr.conf: Allow to configure which attributes to skip + when copying, and which attributes contain file permissions. + +------------------------------------------------------------------- +Sat Mar 18 09:12:03 CET 2006 - aj@suse.de + +- Remove .la package that was introduced in last change and breaks + build of many packages. + +------------------------------------------------------------------- +Fri Mar 17 19:09:00 CET 2006 - agruen@suse.de + +- Fix symlinks in the -devel package (149945, Nathan Scott). + +------------------------------------------------------------------- +Tue Mar 7 15:34:22 CET 2006 - agruen@suse.de + +- xfs-cmds-25263a-fix-list_attr-segfault: Fix a possible segfault + in the attr_list compat function (155746). + +------------------------------------------------------------------- +Sat Feb 18 18:37:35 CET 2006 - agruen@suse.de + +- Add xfs-cmds-25211a-skip-DMF-attributes-on-copy-also patch from + SGI (151782). + +------------------------------------------------------------------- +Wed Jan 25 21:29:56 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Fri Jan 13 19:20:08 CET 2006 - mjancar@suse.cz + +- update to 2.4.28 + * Implement the IRIX list_attr interfaces + +------------------------------------------------------------------- +Wed Nov 2 15:17:07 CET 2005 - schwab@suse.de + +- Use RPM_OPT_FLAGS. + +------------------------------------------------------------------- +Fri Aug 26 13:53:35 CEST 2005 - agruen@suse.de + +- Update to version 2.4.24: integrates two patches we had + separately before; add a missing space in an error message; + an error path fix in setfattr. No API/ABI changes in libattr. + +------------------------------------------------------------------- +Fri Aug 19 16:49:59 CEST 2005 - kukuk@suse.de + +- Move devel files from / to /usr +- Don't generate filelist dynamic (fix broken attr statements) + +------------------------------------------------------------------- +Mon Jun 6 14:08:08 CEST 2005 - agruen@suse.de + +- Bump version number to 2.4.23. + +------------------------------------------------------------------- +Thu Jun 2 18:47:31 CEST 2005 - agruen@suse.de + +- reduce-verboseness.diff: attr_copy_{fd,file}: Don't report an + error for each attribute copy that fails with ENOSYS, but report + such failures only once (85646). + +------------------------------------------------------------------- +Mon Feb 21 11:38:15 CET 2005 - agruen@suse.de + +- Update to version 2.4.22. Various fixes. + +------------------------------------------------------------------- +Fri Aug 13 18:00:01 CEST 2004 - mjancar@suse.cz + +- update to 2.4.16 + +------------------------------------------------------------------- +Tue Jan 27 10:11:29 CET 2004 - kukuk@suse.de + +- Don't include man2/*xattr.2 manual pages, use the copy from + the man-pages package (so we have documentation for the glibc + functions, too). + +------------------------------------------------------------------- +Sat Jan 10 21:22:37 CET 2004 - adrian@suse.de + +- build as user + +------------------------------------------------------------------- +Thu Jan 1 15:14:58 CET 2004 - agruen@suse.de + +- Update to version 2.4.12. Bug fix in directory tree walking + code. + +------------------------------------------------------------------- +Wed Oct 22 08:30:45 CEST 2003 - kukuk@suse.de + +- Fix provides/requires for update case + +------------------------------------------------------------------- +Thu Aug 28 13:26:04 CEST 2003 - agruen@suse.de + +- Fix a bug with error handling while walking directory trees. + +------------------------------------------------------------------- +Thu Aug 28 01:48:43 CEST 2003 - ro@suse.de + +- fix patch-depth in specfile + +------------------------------------------------------------------- +Wed Aug 27 00:50:55 CEST 2003 - agruen@suse.de + +- Fix SIGSEGV if the quote function. + +------------------------------------------------------------------- +Fri Aug 15 14:22:46 CEST 2003 - agruen@suse.de + +- Update to 2.4.8: Fixes SIGSEGV if the quote/unquote functions + are passed NULL arguments. + +------------------------------------------------------------------- +Sat Jul 26 20:30:17 CEST 2003 - agruen@suse.de + +- Update to 2.4.6 + additional patch to be merged upstream. + +------------------------------------------------------------------- +Mon Jun 16 19:09:14 CEST 2003 - jderfina@suse.cz + +- File list fixed. + +------------------------------------------------------------------- +Wed Apr 16 12:46:06 CEST 2003 - jderfina@suse.cz + +- Update to 2.4.2 + +------------------------------------------------------------------- +Sun Apr 6 21:28:21 CEST 2003 - agruen@suse.de + +- Update to 2.4.1. + +------------------------------------------------------------------- +Thu Feb 27 05:20:41 CET 2003 - agruen@suse.de + +- Fix broken attr_copy_check_permissions() function. + +------------------------------------------------------------------- +Wed Feb 26 14:31:57 CET 2003 - agruen@suse.de + +- Update to attr-2.4.0 which has our patches integrated. + +------------------------------------------------------------------- +Mon Feb 24 12:11:20 CET 2003 - agruen@suse.de + +- Increment libattr library version to 1.1.0. +- Fix [#24244] (prevent accidental acl copying on xfs). +- Add symbol level versioning for libattr. + +------------------------------------------------------------------- +Thu Feb 13 21:57:56 CET 2003 - agruen@suse.de + +- Fix an interface declaration in in the error_context.h header. + +------------------------------------------------------------------- +Wed Jan 22 16:30:49 CET 2003 - agruen@suse.de + +- Update to attr-2.2.0 +- Add EA copying functions patch +- Let mls@suse.de add the following package alias in Autobuild + for building packages against older releases: + libattr-devel -> attr-devel [for <= 8.1] + +------------------------------------------------------------------- +Tue Jan 21 14:02:36 CET 2003 - agruen@suse.de + +- Remove (Prereq: /sbin/ldconfig) tag, and use %run_ldconfig + in %post and %postun instead. +- attr-devel was renamed to libattr-devel: add missing + `Obsoletes: attr-devel' tag to libattr-devel. + +------------------------------------------------------------------- +Fri Dec 13 16:30:03 CET 2002 - schwab@suse.de + +- Fix filelist generation. + +------------------------------------------------------------------- +Thu Dec 12 17:56:03 CET 2002 - jderfina@suse.cz + +- upgrading to version 2.1.1 +- spliting attr to attr (binaries), libattr (libraries, only this package is + needed for other packages) and libattr-devel (development stuff). This + spliting follows SGI's release. + +------------------------------------------------------------------- +Thu Sep 5 13:32:18 CEST 2002 - agruen@suse.de + +- Update to version 2.0.11: Adds support for m68k and alpha, minor + corrections (see attr-2.0.11/doc/CHANGES for details). + +------------------------------------------------------------------- +Thu Aug 15 10:06:57 CEST 2002 - agruen@suse.de + +- Remove the suse_update_config macro and the config.* stuff. + (According to ro@suse.de this is not necessary.) +- Change the documentation path in builddefs.in instead of in + configure.in. +- Update to version 2.0.9 + +------------------------------------------------------------------- +Thu Jun 20 09:39:30 CEST 2002 - lmuelle@suse.de + +- Remove DESTDIR patch, use DIST_ROOT of package instead +- Update to version 2.0.8 + +------------------------------------------------------------------- +Wed Jun 12 17:37:03 CEST 2002 - ro@suse.de + +- fix for ppc64 (it's called powerpc64 in configure) + +------------------------------------------------------------------- +Tue May 21 10:59:48 CEST 2002 - coolo@suse.de + +- build also on archs without xattr syscalls + +------------------------------------------------------------------- +Mon May 13 13:56:09 CEST 2002 - sf@suse.de + +- changed configure.in to use */lib64 as pkg_slib_dir and + pkg_lib_dir on architectures with lib and lib64 + +------------------------------------------------------------------- +Wed Apr 24 17:52:15 MEST 2002 - mls@suse.de + +- support for mips architecture + +------------------------------------------------------------------- +Mon Feb 25 22:34:59 CET 2002 - ro@suse.de + +- initial package (split from xfstools spec) + diff --git a/attr.spec b/attr.spec new file mode 100644 index 0000000..4c6810c --- /dev/null +++ b/attr.spec @@ -0,0 +1,290 @@ +# +# spec file for package attr (Version 2.4.28) +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: attr +Group: System/Filesystems +Autoreqprov: on +Summary: A Command to Manipulate File System Extended Attributes +Version: 2.4.28 +Release: 26 +Source: %{name}-%{version}.src.tar.bz2 +Source1: xattr.conf +Patch0: builddefs.in.diff +Patch1: xfs-cmds-25211a-skip-DMF-attributes-on-copy-also +Patch2: xfs-cmds-25263a-fix-list_attr-segfault +Patch3: xattr_conf.diff +URL: ftp://oss.sgi.com/projects/xfs/cmd_tars +BuildRoot: %{_tmppath}/%{name}-%{version}-build +License: GPL, Other License(s), see package +Conflicts: xfsdump < 2.0.0 + +%description +A set of tools for manipulating extended attributes on file system +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. + + + +Authors: +-------- + Andreas Gruenbacher + SGI + +%package -n libattr +Summary: A dynamic library for filesystem extended attribute support +Autoreqprov: on +Group: System/Libraries + +%description -n libattr +This package contains the libattr.so dynamic library.It contains the +extended attribute system calls and library functions. + + + +Authors: +-------- + Andreas Gruenbacher + SGI + +%package -n libattr-devel +Summary: Include Files and Libraries mandatory for Development +Autoreqprov: on +Group: Development/Libraries/C and C++ +Provides: attr-devel +Obsoletes: attr-devel +Requires: libattr = %{version} + +%description -n libattr-devel +This package contains the libraries and header files 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. + + + +Authors: +-------- + SGI + +%prep +%setup +%patch0 -p1 +%patch1 -p2 +%patch2 -p2 +%patch3 -p1 + +%build +export OPTIMIZER="$RPM_OPT_FLAGS -fPIC" +export DEBUG=-DNDEBUG +autoconf +CFLAGS="$RPM_OPT_FLAGS" \ +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=%{_bindir} \ + --mandir=%{_mandir} \ + --includedir=%{_includedir} \ + --libdir=/%{_lib} \ + --datadir=/usr/share \ + --libexecdir=/%{_libdir} +make + +%install +DIST_ROOT="$RPM_BUILD_ROOT" +DIST_INSTALL=`pwd`/install.manifest +DIST_INSTALL_DEV=`pwd`/install-dev.manifest +DIST_INSTALL_LIB=`pwd`/install-lib.manifest +export DIST_ROOT DIST_INSTALL DIST_INSTALL_DEV DIST_INSTALL_LIB +/usr/bin/make install DIST_MANIFEST="$DIST_INSTALL" +/usr/bin/make install-dev DIST_MANIFEST="$DIST_INSTALL_DEV" +/usr/bin/make install-lib DIST_MANIFEST="$DIST_INSTALL_LIB" +ln -sf /%{_lib}/$(readlink $RPM_BUILD_ROOT/%{_lib}/libattr.so) \ + $RPM_BUILD_ROOT/%{_libdir}/libattr.so +rm -f $RPM_BUILD_ROOT/%{_lib}/libattr.{a,la,so} +rm -f $RPM_BUILD_ROOT%{_mandir}/man2/*xattr.2* +rm -f $RPM_BUILD_ROOT/%{_libdir}/libattr.la +install -d -m 755 $RPM_BUILD_ROOT/%{_sysconfdir} +install -m 644 %_sourcedir/xattr.conf $RPM_BUILD_ROOT/%{_sysconfdir} +%find_lang %name + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -n libattr -p /sbin/ldconfig + +%postun -n libattr -p /sbin/ldconfig + +%files -f %{name}.lang +%defattr (-,root,root) +%dir %attr(755,root,root) /usr/share/doc/packages/attr +%dir %attr(755,root,root) /usr/share/doc/packages/attr/ea-conv +%doc %attr(644,root,root) /usr/share/doc/packages/attr/README +%doc %attr(644,root,root) /usr/share/doc/packages/attr/CHANGES.gz +%doc %attr(644,root,root) /usr/share/doc/packages/attr/COPYING +%doc %attr(644,root,root) /usr/share/doc/packages/attr/PORTING +%doc %attr(644,root,root) /usr/share/doc/packages/attr/ea-conv/README +%doc %attr(755,root,root) /usr/share/doc/packages/attr/ea-conv/ea-conv +%doc %attr(644,root,root) %{_mandir}/man1/attr.1.gz +%doc %attr(644,root,root) %{_mandir}/man1/getfattr.1.gz +%doc %attr(644,root,root) %{_mandir}/man1/setfattr.1.gz +%doc %attr(644,root,root) %{_mandir}/man5/attr.5.gz +%attr(755,root,root) %{_bindir}/attr +%attr(755,root,root) %{_bindir}/getfattr +%attr(755,root,root) %{_bindir}/setfattr + +%files -n libattr-devel +%defattr(-,root,root) +%dir %attr(755,root,root) %{_includedir}/attr +%attr(644,root,root) %{_includedir}/attr/attributes.h +%attr(644,root,root) %{_includedir}/attr/error_context.h +%attr(644,root,root) %{_includedir}/attr/libattr.h +%attr(644,root,root) %{_includedir}/attr/xattr.h +%attr(644,root,root) %{_libdir}/libattr.a +%attr(755,root,root) %{_libdir}/libattr.so +%doc %attr(644,root,root) %{_mandir}/man3/attr_get.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_list.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_multi.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_remove.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_set.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_getf.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_listf.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_multif.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_removef.3.gz* +%doc %attr(644,root,root) %{_mandir}/man3/attr_setf.3.gz* + +%files -n libattr +%defattr (755,root,root) +/%{_lib}/libattr.so.1* +%config %{_sysconfdir}/xattr.conf + +%changelog -n attr +* Mon Oct 16 2006 - agruen@suse.de +- Ignore Beagle index data when copying files. +* Wed Oct 04 2006 - agruen@suse.de +- /etc/xattr.conf: Allow to configure which attributes to skip + when copying, and which attributes contain file permissions. +* Sat Mar 18 2006 - aj@suse.de +- Remove .la package that was introduced in last change and breaks + build of many packages. +* Fri Mar 17 2006 - agruen@suse.de +- Fix symlinks in the -devel package (149945, Nathan Scott). +* Tue Mar 07 2006 - agruen@suse.de +- xfs-cmds-25263a-fix-list_attr-segfault: Fix a possible segfault + in the attr_list compat function (155746). +* Sat Feb 18 2006 - agruen@suse.de +- Add xfs-cmds-25211a-skip-DMF-attributes-on-copy-also patch from + SGI (151782). +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Fri Jan 13 2006 - mjancar@suse.cz +- update to 2.4.28 + * Implement the IRIX list_attr interfaces +* Wed Nov 02 2005 - schwab@suse.de +- Use RPM_OPT_FLAGS. +* Fri Aug 26 2005 - agruen@suse.de +- Update to version 2.4.24: integrates two patches we had + separately before; add a missing space in an error message; + an error path fix in setfattr. No API/ABI changes in libattr. +* Fri Aug 19 2005 - kukuk@suse.de +- Move devel files from / to /usr +- Don't generate filelist dynamic (fix broken attr statements) +* Mon Jun 06 2005 - agruen@suse.de +- Bump version number to 2.4.23. +* Thu Jun 02 2005 - agruen@suse.de +- reduce-verboseness.diff: attr_copy_{fd,file}: Don't report an + error for each attribute copy that fails with ENOSYS, but report + such failures only once (85646). +* Mon Feb 21 2005 - agruen@suse.de +- Update to version 2.4.22. Various fixes. +* Fri Aug 13 2004 - mjancar@suse.cz +- update to 2.4.16 +* Tue Jan 27 2004 - kukuk@suse.de +- Don't include man2/*xattr.2 manual pages, use the copy from + the man-pages package (so we have documentation for the glibc + functions, too). +* Sat Jan 10 2004 - adrian@suse.de +- build as user +* Thu Jan 01 2004 - agruen@suse.de +- Update to version 2.4.12. Bug fix in directory tree walking + code. +* Wed Oct 22 2003 - kukuk@suse.de +- Fix provides/requires for update case +* Thu Aug 28 2003 - agruen@suse.de +- Fix a bug with error handling while walking directory trees. +* Thu Aug 28 2003 - ro@suse.de +- fix patch-depth in specfile +* Wed Aug 27 2003 - agruen@suse.de +- Fix SIGSEGV if the quote function. +* Fri Aug 15 2003 - agruen@suse.de +- Update to 2.4.8: Fixes SIGSEGV if the quote/unquote functions + are passed NULL arguments. +* Sat Jul 26 2003 - agruen@suse.de +- Update to 2.4.6 + additional patch to be merged upstream. +* Mon Jun 16 2003 - jderfina@suse.cz +- File list fixed. +* Wed Apr 16 2003 - jderfina@suse.cz +- Update to 2.4.2 +* Sun Apr 06 2003 - agruen@suse.de +- Update to 2.4.1. +* Thu Feb 27 2003 - agruen@suse.de +- Fix broken attr_copy_check_permissions() function. +* Wed Feb 26 2003 - agruen@suse.de +- Update to attr-2.4.0 which has our patches integrated. +* Mon Feb 24 2003 - agruen@suse.de +- Increment libattr library version to 1.1.0. +- Fix [#24244] (prevent accidental acl copying on xfs). +- Add symbol level versioning for libattr. +* Thu Feb 13 2003 - agruen@suse.de +- Fix an interface declaration in in the error_context.h header. +* Wed Jan 22 2003 - agruen@suse.de +- Update to attr-2.2.0 +- Add EA copying functions patch +- Let mls@suse.de add the following package alias in Autobuild + for building packages against older releases: + libattr-devel -> attr-devel [for <= 8.1] +* Tue Jan 21 2003 - agruen@suse.de +- Remove (Prereq: /sbin/ldconfig) tag, and use %%run_ldconfig + in %%post and %%postun instead. +- attr-devel was renamed to libattr-devel: add missing + `Obsoletes: attr-devel' tag to libattr-devel. +* Fri Dec 13 2002 - schwab@suse.de +- Fix filelist generation. +* Thu Dec 12 2002 - jderfina@suse.cz +- upgrading to version 2.1.1 +- spliting attr to attr (binaries), libattr (libraries, only this package is + needed for other packages) and libattr-devel (development stuff). This + spliting follows SGI's release. +* Thu Sep 05 2002 - agruen@suse.de +- Update to version 2.0.11: Adds support for m68k and alpha, minor + corrections (see attr-2.0.11/doc/CHANGES for details). +* Thu Aug 15 2002 - agruen@suse.de +- Remove the suse_update_config macro and the config.* stuff. + (According to ro@suse.de this is not necessary.) +- Change the documentation path in builddefs.in instead of in + configure.in. +- Update to version 2.0.9 +* Thu Jun 20 2002 - lmuelle@suse.de +- Remove DESTDIR patch, use DIST_ROOT of package instead +- Update to version 2.0.8 +* Wed Jun 12 2002 - ro@suse.de +- fix for ppc64 (it's called powerpc64 in configure) +* Tue May 21 2002 - coolo@suse.de +- build also on archs without xattr syscalls +* Mon May 13 2002 - sf@suse.de +- changed configure.in to use */lib64 as pkg_slib_dir and + pkg_lib_dir on architectures with lib and lib64 +* Wed Apr 24 2002 - mls@suse.de +- support for mips architecture +* Mon Feb 25 2002 - ro@suse.de +- initial package (split from xfstools spec) diff --git a/builddefs.in.diff b/builddefs.in.diff new file mode 100644 index 0000000..6dc65cf --- /dev/null +++ b/builddefs.in.diff @@ -0,0 +1,11 @@ +--- attr-2.4.28/include/builddefs.in ++++ attr-2.4.28/include/builddefs.in +@@ -30,7 +30,7 @@ + PKG_DEVLIB_DIR = @libexecdir@ + PKG_INC_DIR = @includedir@/attr + PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ ++PKG_DOC_DIR = @datadir@/doc/packages/@pkg_name@ + PKG_LOCALE_DIR = @datadir@/locale + + CC = @cc@ diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 diff --git a/xattr.conf b/xattr.conf new file mode 100644 index 0000000..3235d60 --- /dev/null +++ b/xattr.conf @@ -0,0 +1,22 @@ +# /etc/xattr.conf +# +# How to handle extended attributes when copying between files +# +# Format: +# +# +# Actions: +# permissions - copy when trying to preserve permissions. +# skip - do not copy. + +system.nfs4_acl permissions +system.nfs4acl permissions +system.posix_acl_access permissions +system.posix_acl_default permissions +trusted.SGI_ACL_DEFAULT skip # xfs specific +trusted.SGI_ACL_FILE skip # xfs specific +trusted.SGI_CAP_FILE skip # xfs specific +trusted.SGI_DMI_* skip # xfs specific +trusted.SGI_MAC_FILE skip # xfs specific +xfsroot.* skip # xfs specific; obsolete +user.Beagle.* skip # ignore Beagle index data diff --git a/xattr_conf.diff b/xattr_conf.diff new file mode 100644 index 0000000..9c16bb2 --- /dev/null +++ b/xattr_conf.diff @@ -0,0 +1,281 @@ +Index: attr-2.4.28/libattr/Makefile +=================================================================== +--- attr-2.4.28.orig/libattr/Makefile ++++ attr-2.4.28/libattr/Makefile +@@ -13,7 +13,7 @@ LT_CURRENT = 2 + LT_REVISION = 0 + LT_AGE = 1 + +-CFILES = libattr.c syscalls.c attr_copy_fd.c attr_copy_file.c attr_copy_check.c ++CFILES = libattr.c syscalls.c attr_copy_fd.c attr_copy_file.c attr_copy_check.c attr_copy_action.c + HFILES = libattr.h + + LCFLAGS = -include libattr.h +Index: attr-2.4.28/libattr/attr_copy_action.c +=================================================================== +--- /dev/null ++++ attr-2.4.28/libattr/attr_copy_action.c +@@ -0,0 +1,163 @@ ++/* Copyright (C) 2006 Andreas Gruenbacher , SuSE Linux AG. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2 of the License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "attr/libattr.h" ++#define ERROR_CONTEXT_MACROS ++#include "error_context.h" ++ ++#define ATTR_CONF "/etc/xattr.conf" ++ ++struct attr_action { ++ struct attr_action *next; ++ char *pattern; ++ int action; ++}; ++ ++static struct attr_action *attr_actions; ++ ++static void ++free_attr_actions(void) ++{ ++ struct attr_action *tmp; ++ ++ while (attr_actions) { ++ tmp = attr_actions->next; ++ free(attr_actions->pattern); ++ free(attr_actions); ++ attr_actions = tmp; ++ } ++} ++ ++static int ++attr_parse_attr_conf(struct error_context *ctx) ++{ ++ char *text, *t; ++ size_t size_guess = 4096, len; ++ FILE *file; ++ char *pattern = NULL; ++ struct attr_action *new; ++ int action; ++ ++ if (attr_actions) ++ return 0; ++ ++repeat: ++ text = malloc(size_guess + 1); ++ if (!text) ++ goto fail; ++ ++ if ((file = fopen(ATTR_CONF, "r")) == NULL) { ++ if (errno == ENOENT) ++ return 0; ++ goto fail; ++ } ++ len = fread(text, 1, size_guess, file); ++ if (ferror(file)) ++ goto fail; ++ if (!feof(file)) { ++ fclose(file); ++ file = NULL; ++ free(text); ++ size_guess *= 2; ++ goto repeat; ++ } ++ fclose(file); ++ file = NULL; ++ ++ text[len] = 0; ++ t = text; ++ for (;;) { ++ t += strspn(t, " \t\n"); ++ len = strcspn(t, " \t\n#"); ++ if (t[len] == '#') { ++ if (len) ++ goto parse_error; ++ t += strcspn(t, "\n"); ++ continue; ++ } else if (t[len] == 0) ++ break; ++ else if (t[len] == '\n') ++ goto parse_error; ++ pattern = strndup(t, len); ++ if (!pattern) ++ goto fail; ++ t += len; ++ ++ t += strspn(t, " \t"); ++ len = strcspn(t, " \t\n#"); ++ if (len == 4 && !strncmp(t, "skip", 4)) ++ action = ATTR_ACTION_SKIP; ++ else if (len == 11 && !strncmp(t, "permissions", 11)) ++ action = ATTR_ACTION_PERMISSIONS; ++ else ++ goto parse_error; ++ t += len; ++ t += strspn(t, " \t"); ++ if (*t != '#' && *t != '\n') ++ goto parse_error; ++ ++ new = malloc(sizeof(struct attr_action)); ++ if (!new) ++ goto parse_error; ++ new->next = attr_actions; ++ new->pattern = pattern; ++ new->action = action; ++ attr_actions = new; ++ ++ t += strcspn(t, "\n"); ++ } ++ return 0; ++ ++parse_error: ++ errno = EINVAL; ++ ++fail: ++ { ++ const char *q = quote (ctx, ATTR_CONF); ++ error (ctx, "%s", q); ++ quote_free (ctx, q); ++ } ++ ++ free(pattern); ++ if (file) ++ fclose(file); ++ free(text); ++ free_attr_actions(); ++ return -1; ++} ++ ++int ++attr_copy_action(const char *name, struct error_context *ctx) ++{ ++ struct attr_action *action = attr_actions; ++ ++ if (!attr_parse_attr_conf(ctx)) { ++ for (action = attr_actions; action; action = action->next) { ++ if (!fnmatch(action->pattern, name, 0)) ++ return action->action; ++ } ++ } ++ return 0; ++} +Index: attr-2.4.28/libattr/attr_copy_fd.c +=================================================================== +--- attr-2.4.28.orig/libattr/attr_copy_fd.c ++++ attr-2.4.28/libattr/attr_copy_fd.c +@@ -120,7 +120,7 @@ attr_copy_fd(const char *src_path, int s + quote_free (ctx, qname); + quote_free (ctx, qpath); + ret = -1; +- continue; /* may not have permission to access */ ++ continue; + } + value = (char *) realloc (old_value = value, size); + if (size != 0 && value == NULL) { +@@ -137,6 +137,7 @@ attr_copy_fd(const char *src_path, int s + quote_free (ctx, qname); + quote_free (ctx, qpath); + ret = -1; ++ continue; + } + if (fsetxattr (dst_fd, name, value, size, 0) != 0) { + if (errno == ENOTSUP) +Index: attr-2.4.28/libattr/attr_copy_file.c +=================================================================== +--- attr-2.4.28.orig/libattr/attr_copy_file.c ++++ attr-2.4.28/libattr/attr_copy_file.c +@@ -118,7 +118,7 @@ attr_copy_file(const char *src_path, con + quote_free (ctx, qname); + quote_free (ctx, qpath); + ret = -1; +- continue; /* may not have permission to access */ ++ continue; + } + value = (char *) realloc (old_value = value, size); + if (size != 0 && value == NULL) { +@@ -135,6 +135,7 @@ attr_copy_file(const char *src_path, con + quote_free (ctx, qname); + quote_free (ctx, qpath); + ret = -1; ++ continue; + } + if (lsetxattr (dst_path, name, value, size, 0) != 0) { + if (errno == ENOTSUP) +Index: attr-2.4.28/libattr/attr_copy_check.c +=================================================================== +--- attr-2.4.28.orig/libattr/attr_copy_check.c ++++ attr-2.4.28/libattr/attr_copy_check.c +@@ -23,32 +23,6 @@ + int + attr_copy_check_permissions(const char *name, struct error_context *ctx) + { +- /* Skip POSIX ACLs. */ +- if (strncmp(name, "system.posix_acl_", 17) == 0 && +- (strcmp(name+17, "access") == 0 || +- strcmp(name+17, "default") == 0)) +- return 0; +- +- /* Skip permissions attributes which are used on IRIX, and +- hence are part of the XFS ondisk format (incl. ACLs). +- Also skip SGI DMF attributes as they are inappropriate +- targets for copying over as well. */ +- if (strncmp(name, "trusted.SGI_", 12) == 0 && +- (strcmp(name+12, "ACL_DEFAULT") == 0 || +- strcmp(name+12, "ACL_FILE") == 0 || +- strcmp(name+12, "CAP_FILE") == 0 || +- strcmp(name+12, "MAC_FILE") == 0 || +- strncmp(name+12, "DMI_", 4) == 0)) +- return 0; +- +- /* The xfsroot namespace mirrored attributes, some of which +- are also also available via the system.* and trusted.* +- namespaces. To avoid the problems this would cause, +- we skip xfsroot altogether. +- Note: xfsroot namespace has now been removed from XFS. */ +- if (strncmp(name, "xfsroot.", 8) == 0) +- return 0; +- +- return 1; ++ return attr_copy_action(name, ctx) == 0; + } + +Index: attr-2.4.28/include/libattr.h +=================================================================== +--- attr-2.4.28.orig/include/libattr.h ++++ attr-2.4.28/include/libattr.h +@@ -14,9 +14,14 @@ extern int attr_copy_fd (const char *, i + int (*) (const char *, struct error_context *), + struct error_context *); + +-/* The default check function used by attr_copy_{fd,file}. */ ++/* Keep this function for backwards compatibility. */ + extern int attr_copy_check_permissions(const char *, struct error_context *); + ++#define ATTR_ACTION_SKIP 1 ++#define ATTR_ACTION_PERMISSIONS 2 ++ ++extern int attr_copy_action(const char *, struct error_context *); ++ + #ifdef __cplusplus + } + #endif diff --git a/xfs-cmds-25211a-skip-DMF-attributes-on-copy-also b/xfs-cmds-25211a-skip-DMF-attributes-on-copy-also new file mode 100644 index 0000000..909b807 --- /dev/null +++ b/xfs-cmds-25211a-skip-DMF-attributes-on-copy-also @@ -0,0 +1,31 @@ +Date: Thu, Feb 16 2006 14:16:37 +1100 +From: Nathan Scott +References: 151782, SGI:PV948880 +Subject: skip DMF attributes on copy also + +Do not copy SGI DMI (data migration) attributes as well. + +=========================================================================== +Index: attr/libattr/attr_copy_check.c +=========================================================================== + +--- a/attr/libattr/attr_copy_check.c 2006-02-16 13:47:35.000000000 +1100 ++++ b/attr/libattr/attr_copy_check.c 2006-02-16 13:47:35.000000000 +1100 +@@ -30,12 +30,15 @@ attr_copy_check_permissions(const char * + return 0; + + /* Skip permissions attributes which are used on IRIX, and +- hence are part of the XFS ondisk format (incl. ACLs). */ ++ hence are part of the XFS ondisk format (incl. ACLs). ++ Also skip SGI DMF attributes as they are inappropriate ++ targets for copying over as well. */ + if (strncmp(name, "trusted.SGI_", 12) == 0 && + (strcmp(name+12, "ACL_DEFAULT") == 0 || + strcmp(name+12, "ACL_FILE") == 0 || + strcmp(name+12, "CAP_FILE") == 0 || +- strcmp(name+12, "MAC_FILE") == 0)) ++ strcmp(name+12, "MAC_FILE") == 0 || ++ strncmp(name+12, "DMI_", 4) == 0)) + return 0; + + /* The xfsroot namespace mirrored attributes, some of which diff --git a/xfs-cmds-25263a-fix-list_attr-segfault b/xfs-cmds-25263a-fix-list_attr-segfault new file mode 100644 index 0000000..453676b --- /dev/null +++ b/xfs-cmds-25263a-fix-list_attr-segfault @@ -0,0 +1,81 @@ +Date: Wed, Feb 22 2006 13:56:35 +1100 +From: Nathan Scott +References: SGI:PV949977 +Subject: fix list_attr segfault + +Fix a possible segfault from the attr list compat interfaces, +thanks to Simon Munton. + +=========================================================================== +Index: attr/libattr/libattr.c +=========================================================================== + +--- a/attr/libattr/libattr.c 2006-02-22 13:28:37.000000000 +1100 ++++ b/attr/libattr/libattr.c 2006-02-22 13:28:37.000000000 +1100 +@@ -268,7 +268,7 @@ attr_list(const char *path, char *buffer + attrlist_cursor_t *cursor) + { + const char *l; +- int length, count = 0; ++ int length, vlength, count = 0; + char lbuf[MAXLISTLEN]; + char name[MAXNAMELEN+16]; + unsigned int start_offset, end_offset; +@@ -293,14 +293,14 @@ attr_list(const char *path, char *buffer + if (api_unconvert(name, l, flags)) + continue; + if (flags & ATTR_DONTFOLLOW) +- length = lgetxattr(path, l, NULL, 0); ++ vlength = lgetxattr(path, l, NULL, 0); + else +- length = getxattr(path, l, NULL, 0); +- if (length < 0 && (errno == ENOATTR || errno == ENOTSUP)) ++ vlength = getxattr(path, l, NULL, 0); ++ if (vlength < 0 && (errno == ENOATTR || errno == ENOTSUP)) + continue; + if (count++ < cursor->opaque[0]) + continue; +- if (attr_list_pack(name, length, buffer, buffersize, ++ if (attr_list_pack(name, vlength, buffer, buffersize, + &start_offset, &end_offset)) { + cursor->opaque[0] = count; + break; +@@ -314,7 +314,7 @@ attr_listf(int fd, char *buffer, const i + attrlist_cursor_t *cursor) + { + const char *l; +- int c, count = 0; ++ int length, vlength, count = 0; + char lbuf[MAXLISTLEN]; + char name[MAXNAMELEN+16]; + unsigned int start_offset, end_offset; +@@ -325,22 +325,22 @@ attr_listf(int fd, char *buffer, const i + } + bzero(buffer, sizeof(attrlist_t)); + +- c = flistxattr(fd, lbuf, sizeof(lbuf)); +- if (c < 0) +- return c; ++ length = flistxattr(fd, lbuf, sizeof(lbuf)); ++ if (length < 0) ++ return length; + + start_offset = sizeof(attrlist_t); + end_offset = buffersize & ~(8-1); /* 8 byte align */ + +- for (l = lbuf; l != lbuf + c; l = strchr(l, '\0') + 1) { ++ for (l = lbuf; l != lbuf + length; l = strchr(l, '\0') + 1) { + if (api_unconvert(name, l, flags)) + continue; +- c = fgetxattr(fd, l, NULL, 0); +- if (c < 0 && (errno == ENOATTR || errno == ENOTSUP)) ++ vlength = fgetxattr(fd, l, NULL, 0); ++ if (vlength < 0 && (errno == ENOATTR || errno == ENOTSUP)) + continue; + if (count++ < cursor->opaque[0]) + continue; +- if (attr_list_pack(name, c, buffer, buffersize, ++ if (attr_list_pack(name, vlength, buffer, buffersize, + &start_offset, &end_offset)) { + cursor->opaque[0] = count; + break;