SHA256
1
0
forked from pool/cpio
OBS User unknown 2008-03-14 16:30:55 +00:00 committed by Git OBS Bridge
parent 6f1b1f7f87
commit 6d32c543d6
3 changed files with 170 additions and 46 deletions

101
cpio-2.9-dir_perm.patch Normal file
View File

@ -0,0 +1,101 @@
diff -up cpio-2.9/src/extern.h.orig cpio-2.9/src/extern.h
--- cpio-2.9/src/extern.h.orig 2007-06-28 14:59:38.000000000 +0200
+++ cpio-2.9/src/extern.h 2008-02-13 15:24:37.000000000 +0100
@@ -211,7 +211,7 @@ uintmax_t from_ascii (char const *where,
void delay_set_stat (char const *file_name, struct stat *st,
mode_t invert_permissions);
-void repair_delayed_set_stat (char const *dir,
+int repair_delayed_set_stat (char const *dir,
struct stat *dir_stat_info);
void apply_delayed_set_stat (void);
diff -up cpio-2.9/src/copyin.c.orig cpio-2.9/src/copyin.c
--- cpio-2.9/src/copyin.c.orig 2007-06-28 12:51:09.000000000 +0200
+++ cpio-2.9/src/copyin.c 2008-02-14 10:28:33.000000000 +0100
@@ -570,6 +570,7 @@ static void
copyin_directory (struct cpio_file_stat *file_hdr, int existing_dir)
{
int res; /* Result of various function calls. */
+ struct stat file_stat;
#ifdef HPUX_CDF
int cdf_flag; /* True if file is a CDF. */
int cdf_char; /* Index of `+' char indicating a CDF. */
@@ -626,7 +627,6 @@ copyin_directory (struct cpio_file_stat
create_all_directories(), so the mkdir will fail
because the directory exists. If that's the case,
don't complain about it. */
- struct stat file_stat;
if (errno != EEXIST)
{
mkdir_error (file_hdr->c_name);
@@ -645,7 +645,11 @@ copyin_directory (struct cpio_file_stat
}
}
- set_perms (-1, file_hdr);
+ /* if the directory is queued for delayed_set_stat,
+ fix permissions in the queue, otherwise set the permissions now */
+ cpio_to_stat(file_hdr, &file_stat);
+ if (repair_delayed_set_stat(file_hdr->c_name, &file_stat))
+ set_perms (-1, file_hdr);
}
static void
diff -up cpio-2.9/src/makepath.c.orig cpio-2.9/src/makepath.c
diff -up cpio-2.9/src/util.c.orig cpio-2.9/src/util.c
--- cpio-2.9/src/util.c.orig 2007-06-28 15:04:51.000000000 +0200
+++ cpio-2.9/src/util.c 2008-02-14 13:24:37.000000000 +0100
@@ -1265,6 +1265,16 @@ stat_to_cpio (struct cpio_file_stat *hdr
hdr->c_tar_linkname = NULL;
}
+void
+cpio_to_stat (struct cpio_file_stat *hdr, struct stat *st)
+{
+ stat (hdr->c_name, st);
+ st->st_mode = hdr->c_mode;
+ st->st_uid = CPIO_UID(hdr->c_uid);
+ st->st_gid = CPIO_GID(hdr->c_gid);
+ st->st_mtime = hdr->c_mtime;
+}
+
#ifndef HAVE_FCHOWN
# define fchown(fd, uid, gid) (-1)
#endif
@@ -1389,7 +1399,7 @@ delay_set_stat (char const *file_name, s
created within the file name of DIR. The intermediate directory turned
out to be the same as this directory, e.g. due to ".." or symbolic
links. *DIR_STAT_INFO is the status of the directory. */
-void
+int
repair_delayed_set_stat (char const *dir,
struct stat *dir_stat_info)
{
@@ -1400,22 +1410,19 @@ repair_delayed_set_stat (char const *dir
if (stat (data->stat.c_name, &st) != 0)
{
stat_error (data->stat.c_name);
- return;
+ return 0;
}
if (st.st_dev == dir_stat_info->st_dev
&& st.st_ino == dir_stat_info->st_ino)
{
stat_to_cpio (&data->stat, dir_stat_info);
- data->invert_permissions =
- ((dir_stat_info->st_mode ^ st.st_mode)
- & MODE_RWX & ~ newdir_umask);
- return;
+ data->invert_permissions = 0;
+ return 0;
}
}
- ERROR ((0, 0, _("%s: Unexpected inconsistency when making directory"),
- quotearg_colon (dir)));
+ return -1;
}
void

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Thu Mar 13 19:03:41 CET 2008 - lmichnovic@suse.cz
- lang subpackage split off
-------------------------------------------------------------------
Thu Mar 13 18:55:59 CET 2008 - lmichnovic@suse.cz
- applying upstream patch cpio-2.9-dir_perm.patch which fixes
incorrect directory permissions after archive extraction
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Nov 29 15:49:49 CET 2007 - lmichnovic@suse.cz Thu Nov 29 15:49:49 CET 2007 - lmichnovic@suse.cz

104
cpio.spec
View File

@ -1,7 +1,7 @@
# #
# spec file for package cpio (Version 2.9) # spec file for package cpio (Version 2.9)
# #
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine # This file and all modifications and additions to the pristine
# package are under the same license as the package itself. # package are under the same license as the package itself.
# #
@ -10,13 +10,14 @@
# norootforbuild # norootforbuild
Name: cpio Name: cpio
Url: http://www.gnu.org/software/cpio/cpio.html Url: http://www.gnu.org/software/cpio/cpio.html
License: GPL v3 only License: GPL v3 only
Group: Productivity/Archiving/Compression Group: Productivity/Archiving/Compression
AutoReqProv: on AutoReqProv: on
Version: 2.9 Version: 2.9
Release: 27 Release: 44
Summary: A Backup and Archiving Utility Summary: A Backup and Archiving Utility
Source: cpio-2.9.tar.bz2 Source: cpio-2.9.tar.bz2
Patch1: cpio-2.9-no_rmt.patch Patch1: cpio-2.9-no_rmt.patch
@ -32,8 +33,10 @@ Patch10: cpio-2.9-segfault_in_copyin.patch
Patch11: cpio-2.9-avoid_overflow_warning.patch Patch11: cpio-2.9-avoid_overflow_warning.patch
Patch12: cpio-2.9-doc_typo.patch Patch12: cpio-2.9-doc_typo.patch
Patch13: cpio-2.9-m4_macro.patch Patch13: cpio-2.9-m4_macro.patch
Patch14: cpio-2.9-dir_perm.patch
PreReq: %install_info_prereq PreReq: %install_info_prereq
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: %{name}-lang = %{version}
%description %description
GNU cpio is a program to manage archives of files. This package also GNU cpio is a program to manage archives of files. This package also
@ -54,6 +57,7 @@ Authors:
David J. MacKenzie <djm@gnu.org> David J. MacKenzie <djm@gnu.org>
Jim Meyering <meyering@na-net.ornl.gov> Jim Meyering <meyering@na-net.ornl.gov>
%lang_package
%prep %prep
%setup %setup
%patch1 %patch1
@ -69,6 +73,7 @@ Authors:
%patch11 %patch11
%patch12 %patch12
%patch13 %patch13
%patch14 -p1
chmod 755 . chmod 755 .
chmod u+w * chmod u+w *
chmod a+r * chmod a+r *
@ -98,7 +103,7 @@ ln -sf ../../bin/cpio $RPM_BUILD_ROOT/usr/bin/cpio
%postun %postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%files -f %{name}.lang %files
%defattr(-,root,root) %defattr(-,root,root)
/bin/cpio /bin/cpio
/usr/bin/cpio /usr/bin/cpio
@ -108,32 +113,39 @@ ln -sf ../../bin/cpio $RPM_BUILD_ROOT/usr/bin/cpio
%doc %{_mandir}/man1/mt.1.gz %doc %{_mandir}/man1/mt.1.gz
#/usr/share/locale/*/LC_MESSAGES/cpio.mo #/usr/share/locale/*/LC_MESSAGES/cpio.mo
%files lang -f %{name}.lang
%changelog %changelog
* Thu Nov 29 2007 - lmichnovic@suse.cz * Thu Mar 13 2008 lmichnovic@suse.cz
- lang subpackage split off
* Thu Mar 13 2008 lmichnovic@suse.cz
- applying upstream patch cpio-2.9-dir_perm.patch which fixes
incorrect directory permissions after archive extraction
* Thu Nov 29 2007 lmichnovic@suse.cz
- removed unused m4 macro gl_LONG_LONG (*m4_macro.patch) - removed unused m4 macro gl_LONG_LONG (*m4_macro.patch)
* Wed Nov 07 2007 - lmichnovic@suse.cz * Wed Nov 07 2007 lmichnovic@suse.cz
- upstream fix of typo in documantation (*doc_typo.patch) - upstream fix of typo in documantation (*doc_typo.patch)
* Tue Oct 23 2007 - lmichnovic@suse.cz * Tue Oct 23 2007 lmichnovic@suse.cz
- rewrote code which uses overflow to copy string in structure and - rewrote code which uses overflow to copy string in structure and
gcc was complaining about it (*avoid_overflow_warning.patch) gcc was complaining about it (*avoid_overflow_warning.patch)
* Mon Oct 01 2007 - lmichnovic@suse.cz * Mon Oct 01 2007 lmichnovic@suse.cz
- Fixed typo in copin.c causing segfault [#329744] - Fixed typo in copin.c causing segfault [#329744]
(*segfault_in_copyin.patch) (*segfault_in_copyin.patch)
* Tue Sep 25 2007 - lmichnovic@suse.cz * Tue Sep 25 2007 lmichnovic@suse.cz
- fix for compiling with new gcc 4.3 (*gcc4_3.patch) - fix for compiling with new gcc 4.3 (*gcc4_3.patch)
* Mon Aug 20 2007 - lmichnovic@suse.cz * Mon Aug 20 2007 lmichnovic@suse.cz
- fixed typo in paxlib-owl-alloca.patch [#301416] - fixed typo in paxlib-owl-alloca.patch [#301416]
* Fri Aug 17 2007 - lmichnovic@suse.cz * Fri Aug 17 2007 lmichnovic@suse.cz
- upstream fix: use of alloca can cause stack overflow - upstream fix: use of alloca can cause stack overflow
(paxlib-owl-alloca.patch) (paxlib-owl-alloca.patch)
* Tue Aug 14 2007 - lmichnovic@suse.cz * Tue Aug 14 2007 lmichnovic@suse.cz
- CAN-2005-1111 is not fixed completely in 2.9 (chmodRaceC.patch) - CAN-2005-1111 is not fixed completely in 2.9 (chmodRaceC.patch)
based on fedora patch based on fedora patch
* Wed Jul 25 2007 - lmichnovic@suse.cz * Wed Jul 25 2007 lmichnovic@suse.cz
- fixed types of variables for LFS support (*lfs_correction.patch) - fixed types of variables for LFS support (*lfs_correction.patch)
* Tue Jul 24 2007 - lmichnovic@suse.cz * Tue Jul 24 2007 lmichnovic@suse.cz
- adjusted *mt.patch to fix compression handling [#223494] - adjusted *mt.patch to fix compression handling [#223494]
* Fri Jul 20 2007 - lmichnovic@suse.cz * Fri Jul 20 2007 lmichnovic@suse.cz
- update to version 2.9 - update to version 2.9
- obsoletes *lstat.patch - obsoletes *lstat.patch
* Licensed under the GPLv3. * Licensed under the GPLv3.
@ -162,79 +174,79 @@ ln -sf ../../bin/cpio $RPM_BUILD_ROOT/usr/bin/cpio
--no-absolute-pathnames; option --absolute-pathnames is still possible --no-absolute-pathnames; option --absolute-pathnames is still possible
- obsoletes *checksum.patch, fix_umask.patch, sparse.patch - obsoletes *checksum.patch, fix_umask.patch, sparse.patch
- using lang macro - using lang macro
* Thu Sep 21 2006 - lmichnovic@suse.cz * Thu Sep 21 2006 lmichnovic@suse.cz
- fixed typo in cpio-2.6.dif; renamed to *-mt.patch - fixed typo in cpio-2.6.dif; renamed to *-mt.patch
- united suffix of patches - united suffix of patches
* Tue Sep 19 2006 - schwab@suse.de * Tue Sep 19 2006 schwab@suse.de
- Fix missing newline after mt status. - Fix missing newline after mt status.
* Mon Jul 24 2006 - rguenther@suse.de * Mon Jul 24 2006 rguenther@suse.de
- remove useless build-dependency on rsh. - remove useless build-dependency on rsh.
* Wed Jan 25 2006 - mls@suse.de * Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires - converted neededforbuild to BuildRequires
* Tue Dec 06 2005 - fehr@suse.de * Tue Dec 06 2005 fehr@suse.de
- add cpio-2.6-chmodRaceC.patch and cpio-2.6-dirTraversal.patch to - add cpio-2.6-chmodRaceC.patch and cpio-2.6-dirTraversal.patch to
fix bug #80226 fix bug #80226
- add cpio-2.6-writeOutHeaderBufferOverflow.patch to fix #133454 - add cpio-2.6-writeOutHeaderBufferOverflow.patch to fix #133454
- add cpio-2.6-checksum.patch fix wrong checksum on 64bit archs - add cpio-2.6-checksum.patch fix wrong checksum on 64bit archs
- add cpio-2.6-lfs.patch to support large files on 32bit archs - add cpio-2.6-lfs.patch to support large files on 32bit archs
* Wed Aug 10 2005 - fehr@suse.de * Wed Aug 10 2005 fehr@suse.de
- fix call to setlocale to make multibyte characters work (#98902) - fix call to setlocale to make multibyte characters work (#98902)
* Thu Jun 30 2005 - fehr@suse.de * Thu Jun 30 2005 fehr@suse.de
- open with O_NONBLOCK option (#94449) - open with O_NONBLOCK option (#94449)
* Wed May 04 2005 - ro@suse.de * Wed May 04 2005 ro@suse.de
- properly detect lstat in configure - properly detect lstat in configure
* Wed Apr 27 2005 - snwint@suse.de * Wed Apr 27 2005 snwint@suse.de
- fix '--sparse' option check - fix '--sparse' option check
* Mon Apr 25 2005 - fehr@suse.de * Mon Apr 25 2005 fehr@suse.de
- update to cpio 2.6 - update to cpio 2.6
* Mon Jan 24 2005 - fehr@suse.de * Mon Jan 24 2005 fehr@suse.de
- fix problem with cpio not respecting umask (#50054) - fix problem with cpio not respecting umask (#50054)
* Mon Jan 19 2004 - ro@suse.de * Mon Jan 19 2004 ro@suse.de
- fix build as user - fix build as user
* Sun Jan 11 2004 - adrian@suse.de * Sun Jan 11 2004 adrian@suse.de
- add %%defattr - add %%defattr
* Thu Apr 24 2003 - ro@suse.de * Thu Apr 24 2003 ro@suse.de
- fix install_info --delete call and move from preun to postun - fix install_info --delete call and move from preun to postun
* Tue Apr 15 2003 - coolo@suse.de * Tue Apr 15 2003 coolo@suse.de
- use BuildRoot - use BuildRoot
* Fri Feb 07 2003 - fehr@suse.de * Fri Feb 07 2003 fehr@suse.de
- Use %%install_info macro - Use %%install_info macro
* Tue Sep 17 2002 - ro@suse.de * Tue Sep 17 2002 ro@suse.de
- removed bogus self-provides - removed bogus self-provides
* Tue Aug 13 2002 - mfabian@suse.de * Tue Aug 13 2002 mfabian@suse.de
- add cpio-2.5-i18n-0.1.patch received from - add cpio-2.5-i18n-0.1.patch received from
"Mitsuru Chinen" <CHINEN@jp.ibm.com> "Mitsuru Chinen" <CHINEN@jp.ibm.com>
The patch just adds a setlocale (LC_ALL, ""). The patch just adds a setlocale (LC_ALL, "").
* Sun Jul 28 2002 - kukuk@suse.de * Sun Jul 28 2002 kukuk@suse.de
- remove unused tetex from neededforbuild - remove unused tetex from neededforbuild
* Fri Jul 05 2002 - fehr@suse.de * Fri Jul 05 2002 fehr@suse.de
- update to new version 2.5 - update to new version 2.5
* Mon Dec 03 2001 - fehr@suse.de * Mon Dec 03 2001 fehr@suse.de
- make the -c switch comatible to SVR4 (and compatible to RedHat) - make the -c switch comatible to SVR4 (and compatible to RedHat)
- fix the man page accordingly - fix the man page accordingly
- add rsh to #needfobuild to allow remote file access again (#12543) - add rsh to #needfobuild to allow remote file access again (#12543)
* Sun Dec 03 2000 - schwab@suse.de * Sun Dec 03 2000 schwab@suse.de
- Fix a few bugs and typos. - Fix a few bugs and typos.
* Tue Nov 28 2000 - fehr@suse.de * Tue Nov 28 2000 fehr@suse.de
- add compile options for LFS - add compile options for LFS
* Mon Apr 17 2000 - fehr@suse.de * Mon Apr 17 2000 fehr@suse.de
- move cpio binary to /bin for compatibility with RedHat - move cpio binary to /bin for compatibility with RedHat
* Fri Feb 25 2000 - kukuk@suse.de * Fri Feb 25 2000 kukuk@suse.de
- remove Makefile.Linux - remove Makefile.Linux
- use _infodir/_mandir - use _infodir/_mandir
* Mon Sep 13 1999 - bs@suse.de * Mon Sep 13 1999 bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec. - ran old prepare_spec on spec file to switch to new prepare_spec.
* Thu Sep 02 1999 - fehr@suse.de * Thu Sep 02 1999 fehr@suse.de
- Fix patch for broken header (cast to short instead of int) - Fix patch for broken header (cast to short instead of int)
* Wed Aug 04 1999 - kukuk@suse.de * Wed Aug 04 1999 kukuk@suse.de
- Add patch for broken header in oldascii format - Add patch for broken header in oldascii format
* Tue Sep 22 1998 - ro@suse.de * Tue Sep 22 1998 ro@suse.de
- define _GNU_SOURCE for glibc where including getopt - define _GNU_SOURCE for glibc where including getopt
* Tue Sep 01 1998 - ro@suse.de * Tue Sep 01 1998 ro@suse.de
- fixed strdup-macro problem - fixed strdup-macro problem
* Thu Jun 05 1997 - florian@suse.de * Thu Jun 05 1997 florian@suse.de
- go through the list of regex in a more suitable way (from ma@suse.de) - go through the list of regex in a more suitable way (from ma@suse.de)
* Sun Apr 13 1997 - florian@suse.de * Mon Apr 14 1997 florian@suse.de
- update to new version 2.4.2 - update to new version 2.4.2
- add Linux patches from RedHat - add Linux patches from RedHat
- add patches from gnu.utils.bugs - add patches from gnu.utils.bugs