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

104
cpio.spec
View File

@ -1,7 +1,7 @@
#
# 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
# package are under the same license as the package itself.
#
@ -10,13 +10,14 @@
# norootforbuild
Name: cpio
Url: http://www.gnu.org/software/cpio/cpio.html
License: GPL v3 only
Group: Productivity/Archiving/Compression
AutoReqProv: on
Version: 2.9
Release: 27
Release: 44
Summary: A Backup and Archiving Utility
Source: cpio-2.9.tar.bz2
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
Patch12: cpio-2.9-doc_typo.patch
Patch13: cpio-2.9-m4_macro.patch
Patch14: cpio-2.9-dir_perm.patch
PreReq: %install_info_prereq
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: %{name}-lang = %{version}
%description
GNU cpio is a program to manage archives of files. This package also
@ -54,6 +57,7 @@ Authors:
David J. MacKenzie <djm@gnu.org>
Jim Meyering <meyering@na-net.ornl.gov>
%lang_package
%prep
%setup
%patch1
@ -69,6 +73,7 @@ Authors:
%patch11
%patch12
%patch13
%patch14 -p1
chmod 755 .
chmod u+w *
chmod a+r *
@ -98,7 +103,7 @@ ln -sf ../../bin/cpio $RPM_BUILD_ROOT/usr/bin/cpio
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%files -f %{name}.lang
%files
%defattr(-,root,root)
/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
#/usr/share/locale/*/LC_MESSAGES/cpio.mo
%files lang -f %{name}.lang
%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)
* Wed Nov 07 2007 - lmichnovic@suse.cz
* Wed Nov 07 2007 lmichnovic@suse.cz
- 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
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]
(*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)
* Mon Aug 20 2007 - lmichnovic@suse.cz
* Mon Aug 20 2007 lmichnovic@suse.cz
- 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
(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)
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)
* Tue Jul 24 2007 - lmichnovic@suse.cz
* Tue Jul 24 2007 lmichnovic@suse.cz
- 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
- obsoletes *lstat.patch
* 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
- obsoletes *checksum.patch, fix_umask.patch, sparse.patch
- 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
- united suffix of patches
* Tue Sep 19 2006 - schwab@suse.de
* Tue Sep 19 2006 schwab@suse.de
- 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.
* Wed Jan 25 2006 - mls@suse.de
* Wed Jan 25 2006 mls@suse.de
- 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
fix bug #80226
- 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-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)
* Thu Jun 30 2005 - fehr@suse.de
* Thu Jun 30 2005 fehr@suse.de
- 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
* Wed Apr 27 2005 - snwint@suse.de
* Wed Apr 27 2005 snwint@suse.de
- fix '--sparse' option check
* Mon Apr 25 2005 - fehr@suse.de
* Mon Apr 25 2005 fehr@suse.de
- 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)
* Mon Jan 19 2004 - ro@suse.de
* Mon Jan 19 2004 ro@suse.de
- fix build as user
* Sun Jan 11 2004 - adrian@suse.de
* Sun Jan 11 2004 adrian@suse.de
- 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
* Tue Apr 15 2003 - coolo@suse.de
* Tue Apr 15 2003 coolo@suse.de
- use BuildRoot
* Fri Feb 07 2003 - fehr@suse.de
* Fri Feb 07 2003 fehr@suse.de
- Use %%install_info macro
* Tue Sep 17 2002 - ro@suse.de
* Tue Sep 17 2002 ro@suse.de
- 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
"Mitsuru Chinen" <CHINEN@jp.ibm.com>
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
* Fri Jul 05 2002 - fehr@suse.de
* Fri Jul 05 2002 fehr@suse.de
- 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)
- fix the man page accordingly
- 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.
* Tue Nov 28 2000 - fehr@suse.de
* Tue Nov 28 2000 fehr@suse.de
- 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
* Fri Feb 25 2000 - kukuk@suse.de
* Fri Feb 25 2000 kukuk@suse.de
- remove Makefile.Linux
- 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.
* 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)
* Wed Aug 04 1999 - kukuk@suse.de
* Wed Aug 04 1999 kukuk@suse.de
- 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
* Tue Sep 01 1998 - ro@suse.de
* Tue Sep 01 1998 ro@suse.de
- 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)
* Sun Apr 13 1997 - florian@suse.de
* Mon Apr 14 1997 florian@suse.de
- update to new version 2.4.2
- add Linux patches from RedHat
- add patches from gnu.utils.bugs