rebuilt with debug package and build requirements [release 3.4-4mamba;Sun Sep 06 2020]

This commit is contained in:
Silvan Calarco 2024-01-06 08:26:45 +01:00
parent fdc36b41f1
commit a5a12cd88d
10 changed files with 449 additions and 3 deletions

21
pax-3.4-PATHMAX.patch Normal file
View File

@ -0,0 +1,21 @@
--- pax-3.0/src/pax.h.MAXPATH 2001-12-15 14:52:52.000000000 +0100
+++ pax-3.0/src/pax.h 2004-10-08 11:10:50.673000632 +0200
@@ -41,6 +41,7 @@
/*
* BSD PAX global data structures and constants.
*/
+#include <limits.h>
#define MAXBLK 64512 /* MAX blocksize supported (posix SPEC) */
/* WARNING: increasing MAXBLK past 32256 */
@@ -50,8 +51,8 @@
/* Don't even think of changing this */
#define DEVBLK 8192 /* default read blksize for devices */
#define FILEBLK 10240 /* default read blksize for files */
-#define PAXPATHLEN 3072 /* maximium path length for pax. MUST be */
- /* longer than the system MAXPATHLEN */
+#define PAXPATHLEN PATH_MAX /* maximium path length for pax. MUST be */
+ /* longer than the system MAXPATHLEN */
/*
* Pax modes of operation

17
pax-3.4-abs_100.patch Normal file
View File

@ -0,0 +1,17 @@
--- pax-3.4/src/tar.c.abs100 2005-08-01 18:17:58.000000000 +0200
+++ pax-3.4/src/tar.c 2007-06-20 10:44:54.000000000 +0200
@@ -1181,6 +1181,14 @@ name_split (name, len)
* prefix we can find)
*/
start = name + len - TNMSZ;
+ /* if filename is absolute and exactly TNMSZ in length,
+ * before we invoke the strict interpretation of /str below, we
+ * check to see if there is another slash further along which
+ * would allow a safe split. if this search fails then we hit
+ * the end of the string and fail in a similar manner
+ */
+ if((start == name) && (*start == '/'))
+ ++start;
while ((*start != '\0') && (*start != '/'))
++start;

185
pax-3.4-fix_for_x32.patch Normal file
View File

@ -0,0 +1,185 @@
Upstream-Status: Pending
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Dec 6 10:34:53 2011 -0800
Fix pax-3.4 build for x32
off_t is 8byte for x32. We need to check both _FILE_OFFSET_BITS and
size of off_t to see if file offset is 64bit. This patch adds
AC_CHECK_SIZEOF(off_t) and checks SIZEOF_OFF_T == 8.
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/06
Index: pax-3.4/configure.in
===================================================================
--- pax-3.4.orig/configure.in
+++ pax-3.4/configure.in
@@ -33,4 +33,7 @@ dnl Checks for header files.
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
+AC_CHECK_SIZEOF(off_t)
+AC_CHECK_SIZEOF(long)
+
AC_OUTPUT([Makefile lib/Makefile src/Makefile])
Index: pax-3.4/src/ar_io.c
===================================================================
--- pax-3.4.orig/src/ar_io.c
+++ pax-3.4/src/ar_io.c
@@ -378,7 +378,8 @@ ar_close(void)
* could have written anything yet.
*/
if (frmt == NULL) {
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
(void)fprintf(listf, "%s: unknown format, %qu bytes skipped.\n",
#else
(void)fprintf(listf, "%s: unknown format, %lu bytes skipped.\n",
@@ -391,7 +392,8 @@ ar_close(void)
if (strcmp(NM_CPIO, argv0) == 0)
(void)fprintf(listf,
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
"%qu blocks\n",
#else
"%lu blocks\n",
@@ -399,7 +401,8 @@ ar_close(void)
(rdcnt ? rdcnt : wrcnt) / 5120);
else if (strcmp(NM_TAR, argv0) != 0)
(void)fprintf(listf,
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
"%s: %s vol %d, %lu files, %qu bytes read, %qu bytes written.\n",
#else
"%s: %s vol %d, %lu files, %lu bytes read, %lu bytes written.\n",
Index: pax-3.4/src/cpio.c
===================================================================
--- pax-3.4.orig/src/cpio.c
+++ pax-3.4/src/cpio.c
@@ -218,7 +218,8 @@ rd_ln_nm (ARCHD *arcn)
*/
if ((arcn->sb.st_size == 0) ||
(arcn->sb.st_size >= (off_t) sizeof(arcn->ln_name))) {
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
paxwarn (1, "Cpio link name length is invalid: %qu",
arcn->sb.st_size);
#else
Index: pax-3.4/src/gen_subs.c
===================================================================
--- pax-3.4.orig/src/gen_subs.c
+++ pax-3.4/src/gen_subs.c
@@ -133,7 +133,8 @@ ls_list (ARCHD *arcn, time_t now, FILE *
* print device id's for devices, or sizes for other nodes
*/
if ((arcn->type == PAX_CHR) || (arcn->type == PAX_BLK))
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
(void) fprintf (fp, "%4lu,%4lu ", (unsigned long) MAJOR (sbp->st_rdev),
(unsigned long) MINOR (sbp->st_rdev));
#else
@@ -142,7 +143,8 @@ ls_list (ARCHD *arcn, time_t now, FILE *
#endif
else
{
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
(void) fprintf (fp, "%9qu ", sbp->st_size);
#else
(void) fprintf (fp, "%9lu ", sbp->st_size);
@@ -334,7 +336,8 @@ ul_asc (u_long val, char *str, int len,
return (0);
}
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
/*
* asc_uqd()
* convert hex/octal character string into a u_quad_t. We do not have to
Index: pax-3.4/src/options.c
===================================================================
--- pax-3.4.orig/src/options.c
+++ pax-3.4/src/options.c
@@ -1545,7 +1545,8 @@ str_offt (char *val)
char *expr;
off_t num, t;
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
num = strtoq (val, &expr, 0);
if ((num == LONG_LONG_MAX) || (num <= 0) || (expr == val))
#else
Index: pax-3.4/src/tar.c
===================================================================
--- pax-3.4.orig/src/tar.c
+++ pax-3.4/src/tar.c
@@ -58,7 +58,8 @@
static unsigned long tar_chksm (char *, int);
static char *name_split (char *, int);
static int ul_oct (u_long, char *, int, int);
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
static int uqd_oct (u_quad_t, char *, int, int);
#endif
@@ -196,7 +197,8 @@ ul_oct (u_long val, register char *str,
return (0);
}
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
/*
* uqd_oct()
* convert an u_quad_t to an octal string. one of many oddball field
@@ -427,7 +429,8 @@ tar_rd (ARCHD *arcn, char *buf)
0xfff);
arcn->sb.st_uid = (uid_t) asc_ul (hd->uid, sizeof (hd->uid), OCT);
arcn->sb.st_gid = (gid_t) asc_ul (hd->gid, sizeof (hd->gid), OCT);
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
arcn->sb.st_size = (off_t) asc_uqd (hd->size, sizeof (hd->size), OCT);
#else
arcn->sb.st_size = (off_t) asc_ul (hd->size, sizeof (hd->size), OCT);
@@ -659,7 +662,8 @@ tar_wr (register ARCHD * arcn)
* data follows this file, so set the pad
*/
hd->linkflag = AREGTYPE;
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
if (uqd_oct ((u_quad_t) arcn->sb.st_size, hd->size,
sizeof (hd->size), 1))
#else
@@ -834,7 +838,8 @@ ustar_rd (ARCHD *arcn, char *buf)
*/
arcn->sb.st_mode = (mode_t) (asc_ul (hd->mode, sizeof (hd->mode), OCT) &
0xfff);
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
arcn->sb.st_size = (off_t) asc_uqd (hd->size, sizeof (hd->size), OCT);
#else
arcn->sb.st_size = (off_t) asc_ul (hd->size, sizeof (hd->size), OCT);
@@ -1081,7 +1086,8 @@ ustar_wr (register ARCHD * arcn)
else
hd->typeflag = REGTYPE;
arcn->pad = TAR_PAD (arcn->sb.st_size);
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
+ || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
if (uqd_oct ((u_quad_t) arcn->sb.st_size, hd->size,
sizeof (hd->size), 3))
{

25
pax-3.4-gcc-4.6.0.patch Normal file
View File

@ -0,0 +1,25 @@
Upstream-Status: Pending
This patch fixes this compiler error with gcc 4.6.0
Nitin A Kamble <nitin.a.kamble@intel.com> 2011/05/08
| fts.c: In function 'pax_fts_set':
| fts.c:469:7: error: parameter 'sp' set but not used [-Werror=unused-but-set-parameter]
| cc1: all warnings being treated as errors
|
| make[2]: *** [fts.o] Error 1
Index: pax-3.4/lib/fts.c
===================================================================
--- pax-3.4.orig/lib/fts.c
+++ pax-3.4/lib/fts.c
@@ -466,7 +466,7 @@ name: t = sp->fts_path + NAPPEND(p->fts
/* ARGSUSED */
int
fts_set(sp, p, instr)
- FTS *sp;
+ FTS __attribute__((__unused__)) *sp;
FTSENT *p;
int instr;
{

60
pax-3.4-gcc-6.1.patch Normal file
View File

@ -0,0 +1,60 @@
diff -crB pax-3.4/src/cpio.c pax-3.4-a/src/cpio.c
*** pax-3.4/src/cpio.c 2005-08-01 12:16:23.000000000 -0400
--- pax-3.4-a/src/cpio.c 2017-03-11 04:58:22.162570602 -0300
***************
*** 36,42 ****
#include "config.h"
#endif
! #include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
--- 36,42 ----
#include "config.h"
#endif
! #include <sys/sysmacros.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
diff -crB pax-3.4/src/gen_subs.c pax-3.4-a/src/gen_subs.c
*** pax-3.4/src/gen_subs.c 2005-08-01 12:15:42.000000000 -0400
--- pax-3.4-a/src/gen_subs.c 2017-03-11 05:02:02.553239802 -0300
***************
*** 37,43 ****
#include "config.h"
#endif
! #include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
--- 37,43 ----
#include "config.h"
#endif
! #include <sys/sysmacros.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
diff -crB pax-3.4/src/tar.c pax-3.4-a/src/tar.c
*** pax-3.4/src/tar.c 2005-08-01 12:17:58.000000000 -0400
--- pax-3.4-a/src/tar.c 2017-03-11 05:04:54.493764070 -0300
***************
*** 37,43 ****
#include "config.h"
#endif
! #include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
--- 37,43 ----
#include "config.h"
#endif
! #include <sys/sysmacros.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>

59
pax-3.4-gcc-8.patch Normal file
View File

@ -0,0 +1,59 @@
diff -Naurp a/src/pax.c b/src/pax.c
--- a/src/pax.c 2005-07-29 07:46:31.000000000 +0000
+++ b/src/pax.c 2019-01-01 02:59:31.257262876 +0000
@@ -335,6 +335,10 @@ gen_init (void)
struct sigaction n_hand;
struct sigaction o_hand;
+ // gcc8 fix: temporary pointer to avoid restricted argument aliases
+ struct sigaction *ptr_o_hand;
+ ptr_o_hand = &o_hand;
+
/*
* Really needed to handle large archives. We can run out of memory for
* internal tables really fast when we have a whole lot of files...
@@ -403,27 +407,27 @@ gen_init (void)
if ((sigaction (SIGHUP, &n_hand, &o_hand) < 0) &&
(o_hand.sa_handler == SIG_IGN) &&
- (sigaction (SIGHUP, &o_hand, &o_hand) < 0))
+ (sigaction (SIGHUP, &o_hand, ptr_o_hand) < 0))
goto out;
if ((sigaction (SIGTERM, &n_hand, &o_hand) < 0) &&
(o_hand.sa_handler == SIG_IGN) &&
- (sigaction (SIGTERM, &o_hand, &o_hand) < 0))
+ (sigaction (SIGTERM, &o_hand, ptr_o_hand) < 0))
goto out;
if ((sigaction (SIGINT, &n_hand, &o_hand) < 0) &&
(o_hand.sa_handler == SIG_IGN) &&
- (sigaction (SIGINT, &o_hand, &o_hand) < 0))
+ (sigaction (SIGINT, &o_hand, ptr_o_hand) < 0))
goto out;
if ((sigaction (SIGQUIT, &n_hand, &o_hand) < 0) &&
(o_hand.sa_handler == SIG_IGN) &&
- (sigaction (SIGQUIT, &o_hand, &o_hand) < 0))
+ (sigaction (SIGQUIT, &o_hand, ptr_o_hand) < 0))
goto out;
if ((sigaction (SIGXCPU, &n_hand, &o_hand) < 0) &&
(o_hand.sa_handler == SIG_IGN) &&
- (sigaction (SIGXCPU, &o_hand, &o_hand) < 0))
+ (sigaction (SIGXCPU, &o_hand, ptr_o_hand) < 0))
goto out;
n_hand.sa_handler = SIG_IGN;
diff -Naurp a/src/tar.c b/src/tar.c
--- a/src/tar.c 2019-01-01 02:55:53.000000000 +0000
+++ b/src/tar.c 2019-01-01 02:59:53.181069890 +0000
@@ -1102,7 +1102,7 @@ ustar_wr (register ARCHD * arcn)
}
strncpy (hd->magic, TMAGIC, TMAGLEN);
- strncpy (hd->version, TVERSION, TVERSLEN);
+ memcpy (hd->version, TVERSION, TVERSLEN);
/*
* Set the remaining fields. We only write 12 bit of the mode field

27
pax-3.4-options.c.patch Normal file
View File

@ -0,0 +1,27 @@
rom eefac5786d01f1c3c4660cb218eb380eb19894a7 Mon Sep 17 00:00:00 2001
From: Noel Kuntze <noel@familie-kuntze.de>
Date: Fri, 21 Jul 2017 16:39:50 +0200
Subject: [PATCH] Fix implicit fallthrough in src/options.c
---
pax-3.4/src/options.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/pax-3.4/src/options.c b/pax-3.4/src/options.c
index e30a877..18c5266 100644
--- a/pax-3.4/src/options.c
+++ b/pax-3.4/src/options.c
@@ -722,8 +722,10 @@ tar_options (int argc, char **argv)
pmtime = 0;
break;
case 'o':
- if (opt_add ("write_opt=nodir") < 0)
+ if (opt_add ("write_opt=nodir") < 0) {
tar_usage ();
+ }
+ break;
case 'O':
Oflag = 1;
break;
--
2.13.3

11
pax-3.4-rdtruncate.patch Normal file
View File

@ -0,0 +1,11 @@
--- pax-3.4/src/tar.c.rdtruncate 2007-07-13 15:33:05.000000000 +0200
+++ pax-3.4/src/tar.c 2007-07-13 15:34:23.000000000 +0200
@@ -821,7 +821,7 @@ ustar_rd (ARCHD *arcn, char *buf)
if (gnu_hack_string)
{
arcn->nlen = cnt + strlcpy (dest, gnu_hack_string,
- MIN(TNMSZ+1, sizeof (arcn->name) - cnt));
+ sizeof (arcn->name) - cnt);
free(gnu_hack_string);
gnu_hack_string = NULL;
} else

11
pax-3.4-unuse_warn.patch Normal file
View File

@ -0,0 +1,11 @@
*** lib/fts.c Thu Feb 14 15:10:10 2013
--- lib/fts.c Fri Jul 29 17:55:25 2005
*************** fts_set(sp, p, instr)
*** 472,474 ****
{
! sp = NULL; /* stop compiler whinging */
if (instr != 0 && instr != FTS_AGAIN && instr != FTS_FOLLOW &&
--- 472,474 ----
{
! (void)sp; /* stop compiler whinging */
if (instr != 0 && instr != FTS_AGAIN && instr != FTS_FOLLOW &&

View File

@ -1,6 +1,6 @@
Name: pax
Version: 3.4
Release: 3mamba
Release: 4mamba
Summary: POSIX File System Archiver
Group: Applications/Archiving
Vendor: openmamba
@ -8,6 +8,19 @@ Distribution: openmamba
Packager: Aleph0 <aleph0@openmamba.org>
URL: ftp://ftp.suse.com/pub/people/kukuk/pax/
Source: ftp://ftp.suse.com/pub/people/kukuk/pax/pax-%{version}.tar.bz2
Patch0: pax-3.4-gcc-4.6.0.patch
Patch1: pax-3.4-gcc-8.patch
Patch2: pax-3.4-PATHMAX.patch
Patch3: pax-3.4-gcc-6.1.patch
Patch4: pax-3.4-options.c.patch
Patch5: pax-3.4-fix_for_x32.patch
Patch6: pax-3.4-unuse_warn.patch
Patch7: pax-3.4-abs_100.patch
Patch8: pax-3.4-rdtruncate.patch
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: ldconfig
## AUTOBUILDREQ-END
License: BSD
BuildRoot: %{_tmppath}/%{name}-%{version}-root
@ -15,12 +28,25 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
'pax' is the POSIX standard archive tool.
It supports the two most common forms of standard Unix archive (backup) files - CPIO and TAR.
%debug_package
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p2
%patch5 -p1
%patch6 -p0
%patch7 -p1
%patch8 -p1
autoreconf -fi
%build
%configure \
CFLAGS="-Wno-unused-but-set-parameter"
CFLAGS="%{optflags} -z muldefs"
%make
@ -35,9 +61,13 @@ It supports the two most common forms of standard Unix archive (backup) files -
%defattr(-,root,root)
%{_bindir}/pax
%{_mandir}/man1/pax.*
%doc AUTHORS COPYING ChangeLog NEWS README THANKS
%doc AUTHORS COPYING
#ChangeLog NEWS README THANKS
%changelog
* Sun Sep 06 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4-4mamba
- rebuilt with debug package and build requirements
* Sun Oct 20 2013 Automatic Build System <autodist@mambasoft.it> 3.4-3mamba
- automatic rebuild by autodist