This commit is contained in:
commit
ab64523d89
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -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
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
3
attr-2.4.28.src.tar.bz2
Normal file
3
attr-2.4.28.src.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1ff1c464693c5e756b8047412f49e84c38c6385aa5b4e1230aafc81ea21f59e7
|
||||||
|
size 93657
|
248
attr.changes
Normal file
248
attr.changes
Normal file
@ -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)
|
||||||
|
|
290
attr.spec
Normal file
290
attr.spec
Normal file
@ -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 <a.gruenbacher@computer.org>
|
||||||
|
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 <a.gruenbacher@computer.org>
|
||||||
|
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)
|
11
builddefs.in.diff
Normal file
11
builddefs.in.diff
Normal file
@ -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@
|
22
xattr.conf
Normal file
22
xattr.conf
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# /etc/xattr.conf
|
||||||
|
#
|
||||||
|
# How to handle extended attributes when copying between files
|
||||||
|
#
|
||||||
|
# Format:
|
||||||
|
# <pattern> <action>
|
||||||
|
#
|
||||||
|
# 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
|
281
xattr_conf.diff
Normal file
281
xattr_conf.diff
Normal file
@ -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 <agruen@suse.de>, 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 <alloca.h>
|
||||||
|
+#include <stdio.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+#include <string.h>
|
||||||
|
+#include <stdarg.h>
|
||||||
|
+#include <fnmatch.h>
|
||||||
|
+
|
||||||
|
+#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
|
31
xfs-cmds-25211a-skip-DMF-attributes-on-copy-also
Normal file
31
xfs-cmds-25211a-skip-DMF-attributes-on-copy-also
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
Date: Thu, Feb 16 2006 14:16:37 +1100
|
||||||
|
From: Nathan Scott <nathans@sgi.com>
|
||||||
|
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
|
81
xfs-cmds-25263a-fix-list_attr-segfault
Normal file
81
xfs-cmds-25263a-fix-list_attr-segfault
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
Date: Wed, Feb 22 2006 13:56:35 +1100
|
||||||
|
From: Nathan Scott <nathans@sgi.com>
|
||||||
|
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;
|
Loading…
Reference in New Issue
Block a user