Rebase to 5.0

Use autosetup
Change source links
Redo patch files and remove obsolete ones
Add runtests.sh
Rebase to the latest upstream version (rhbz#1924029)
This commit is contained in:
Ondřej Sloup 2022-06-24 12:33:07 +02:00
parent 25a7c2905d
commit e29649e545
15 changed files with 126 additions and 176 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/ncompress-4.2.4.4.tar.gz
/v5.0.tar.gz

View File

@ -1,13 +0,0 @@
diff --git a/compress42.c b/compress42.c
index 4d33342..495bdf3 100644
--- a/compress42.c
+++ b/compress42.c
@@ -1373,7 +1373,7 @@ compress(fdin, fdout)
REG11 int boff;
REG12 int n_bits;
REG13 int ratio;
- REG14 long checkpoint;
+ REG14 unsigned long long checkpoint;
REG15 code_int extcode;
union
{

View File

@ -1,11 +0,0 @@
--- ncompress-4.2.4/compress42.c.endians 2006-09-19 13:53:58.000000000 +0200
+++ ncompress-4.2.4/compress42.c 2006-09-19 13:57:54.000000000 +0200
@@ -432,7 +432,7 @@
union bytes
{
- long word;
+ int word;
struct
{
#if BYTEORDER == 4321

View File

@ -1,60 +0,0 @@
diff --git a/compress42.c b/compress42.c
index b3b3add..6878046 100644
--- a/compress42.c
+++ b/compress42.c
@@ -141,6 +141,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
+#include <string.h>
#ifdef DIRENT
# include <dirent.h>
@@ -214,7 +215,7 @@
# define OBUFSIZ BUFSIZ /* Default output buffer size */
#endif
-#define MAXPATHLEN 1024 /* MAXPATHLEN - maximum length of a pathname we allow */
+#define MAXPATHLEN PATH_MAX /* MAXPATHLEN - maximum length of a pathname we allow */
#define SIZE_INNER_LOOP 256 /* Size of the inter (fast) compress loop */
/* Defines for third byte of header */
@@ -701,6 +702,7 @@ main(argc, argv)
{
REG3 char **filelist;
REG4 char **fileptr;
+ int i;
if (fgnd_flag = (signal(SIGINT, SIG_IGN) != SIG_IGN))
signal(SIGINT, (SIG_TYPE)abort_compress);
@@ -714,13 +716,18 @@ main(argc, argv)
nomagic = 1; /* Original didn't have a magic number */
#endif
- filelist = (char **)malloc(argc*sizeof(char *));
+ for (i=0; i<argc; i++) {
+ if (strlen(argv[i])>(MAXPATHLEN-1)) {
+ fprintf(stderr,"Filename too long\n");
+ exit(1);
+ }
+ }
+ filelist = fileptr = (char **)malloc(argc*sizeof(char *));
if (filelist == NULL)
{
fprintf(stderr, "Cannot allocate memory for file list.\n");
exit (1);
}
- fileptr = filelist;
*filelist = NULL;
if((progname = strrchr(argv[0], '/')) != 0)
@@ -860,7 +867,9 @@ nextarg: continue;
decompress(0, 1);
}
+ free(filelist);
exit((exit_code== -1) ? 1:exit_code);
+ return 0;
}
void

View File

@ -1,23 +0,0 @@
diff --git a/compress42.c b/compress42.c
index 804d099..b3b3add 100644
--- a/compress42.c
+++ b/compress42.c
@@ -130,6 +130,7 @@
* Add variable bit length output.
*
*/
+#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -538,8 +539,8 @@ int remove_ofname = 0; /* Remove output file on a error */
char ofname[MAXPATHLEN]; /* Output filename */
int fgnd_flag = 0; /* Running in background (SIGINT=SIGIGN) */
-long bytes_in; /* Total number of byte from input */
-long bytes_out; /* Total number of byte to output */
+long long bytes_in; /* Total number of byte from input */
+long long bytes_out; /* Total number of byte to output */
/*
* 8086 & 80286 Has a problem with array bigger than 64K so fake the array

View File

@ -1,20 +0,0 @@
diff --git a/Makefile.def b/Makefile.def
index e493d7c..1e6612f 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -31,7 +31,14 @@ MANDIR=/usr/local/man/man1
# -DDEF_ERRNO=1 Define error (not defined in errno.h).
# -DMAXSEG_64K=1 -BITS=16 Support segment processsor like 80286.
#
-options= $(CFLAGS) $(CPPFLAGS) -DDIRENT=1 -DUSERMEM=800000 -DREGISTERS=3
+options= $(CFLAGS) $(CPPFLAGS) -DDIRENT=1 -DUSERMEM=800000 -DREGISTERS=20 \
+ -D_FILE_OFFSET_BITS=64 \
+ -D_LARGEFILE_SOURCE \
+ -DNOFUNCDEF=1 \
+ -DOBUFSIZ=1024 \
+ -DUTIME_H \
+ -DSYSDIR=1 \
+ $(ARCH_FLAGS)
# libary options
LBOPT= $(LDFLAGS)

View File

@ -1,12 +0,0 @@
diff -urNp ncompress-4.2.4-orig/compress42.c ncompress-4.2.4/compress42.c
--- ncompress-4.2.4-orig/compress42.c 2012-01-03 15:13:58.014222927 +0100
+++ ncompress-4.2.4/compress42.c 2012-01-03 15:15:17.117097419 +0100
@@ -1441,7 +1441,7 @@ compress(fdin, fdout)
boff = -(((OBUFSIZ<<3)-boff)%(n_bits<<3));
bytes_out += OBUFSIZ;
- memcpy(outbuf, outbuf+OBUFSIZ, (outbits>>3)+1);
+ memmove(outbuf, outbuf+OBUFSIZ, (outbits>>3)+1);
memset(outbuf+(outbits>>3)+1, '\0', OBUFSIZ);
}

View File

@ -1,33 +0,0 @@
diff --git a/compress42.c b/compress42.c
index c3f6b35..834c2f2 100644
--- a/compress42.c
+++ b/compress42.c
@@ -704,7 +704,7 @@ main(argc, argv)
REG4 char **fileptr;
int i;
- if (fgnd_flag = (signal(SIGINT, SIG_IGN) != SIG_IGN))
+ if ((fgnd_flag = (signal(SIGINT, SIG_IGN)) != SIG_IGN))
signal(SIGINT, (SIG_TYPE)abort_compress);
signal(SIGTERM, (SIG_TYPE)abort_compress);
@@ -1016,8 +1016,8 @@ comprexx(fileptr)
if (infstat.st_nlink > 1 && (!force))
{
- fprintf(stderr, "%s has %d other links: unchanged\n",
- tempname, infstat.st_nlink - 1);
+ fprintf(stderr, "%s has %ld other links: unchanged\n",
+ tempname, (long)(infstat.st_nlink - 1));
exit_code = 1;
return;
}
@@ -1318,7 +1318,7 @@ compdir(dir)
** think it's worth it. -- Dave Mack
*/
- while (dp = readdir(dirp))
+ while ((dp = readdir(dirp)))
{
if (dp->d_ino == 0)
continue;

12
ncompress-5.0-2GB.patch Normal file
View File

@ -0,0 +1,12 @@
diff -ur v5.0_original/ncompress-5.0/compress.c v5.0/ncompress-5.0/compress.c
--- v5.0_original/ncompress-5.0/compress.c 2021-02-02 09:16:16.000000000 +0100
+++ v5.0/ncompress-5.0/compress.c 2022-06-24 11:20:37.795568007 +0200
@@ -1236,7 +1236,7 @@
int boff;
int n_bits;
int ratio;
- long checkpoint;
+ unsigned long long checkpoint;
code_int extcode;
union
{

View File

@ -0,0 +1,12 @@
diff -ur v5.0_original/ncompress-5.0/compress.c v5.0/ncompress-5.0/compress.c
--- v5.0_original/ncompress-5.0/compress.c 2021-02-02 09:16:16.000000000 +0100
+++ v5.0/ncompress-5.0/compress.c 2022-06-24 11:39:42.325726170 +0200
@@ -357,7 +357,7 @@
union bytes
{
- long word;
+ int word;
struct
{
#if BYTEORDER == 4321

22
ncompress-5.0-lfs.patch Normal file
View File

@ -0,0 +1,22 @@
diff -ur v5.0_original/ncompress-5.0/compress.c v5.0/ncompress-5.0/compress.c
--- v5.0_original/ncompress-5.0/compress.c 2021-02-02 09:16:16.000000000 +0100
+++ v5.0/ncompress-5.0/compress.c 2022-06-24 11:11:52.435388146 +0200
@@ -150,6 +150,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
+#include <unistd.h>
#if !defined(DOS) && !defined(WINDOWS)
# include <dirent.h>
@@ -424,8 +425,8 @@
char *ofname = NULL; /* Output filename */
int fgnd_flag = 0; /* Running in background (SIGINT=SIGIGN) */
-long bytes_in; /* Total number of byte from input */
-long bytes_out; /* Total number of byte to output */
+long long bytes_in; /* Total number of byte from input */
+long long bytes_out; /* Total number of byte to output */
/*
* 8086 & 80286 Has a problem with array bigger than 64K so fake the array

19
ncompress-5.0-make.patch Normal file
View File

@ -0,0 +1,19 @@
diff -ur v5.0_original/ncompress-5.0/Makefile.def v5.0/ncompress-5.0/Makefile.def
--- v5.0_original/ncompress-5.0/Makefile.def 2021-02-02 09:16:16.000000000 +0100
+++ v5.0/ncompress-5.0/Makefile.def 2022-06-24 10:23:42.777040729 +0200
@@ -27,7 +27,14 @@
# -DBYTEORDER=<order> Byte order (default: unknown).
# -DMAXSEG_64K=1 -BITS=16 Support segment processor like 80286.
#
-options= $(CFLAGS) $(CPPFLAGS) -DUSERMEM=800000
+options= $(CFLAGS) $(CPPFLAGS) -DDIRENT=1 -DUSERMEM=800000 -DREGISTERS=20 \
+ -D_FILE_OFFSET_BITS=64 \
+ -D_LARGEFILE_SOURCE \
+ -DNOFUNCDEF=1 \
+ -DOBUFSIZ=1024 \
+ -DUTIME_H \
+ -DSYSDIR=1 \
+ $(ARCH_FLAGS)
# library options
LBOPT= $(LDFLAGS)

View File

@ -0,0 +1,11 @@
--- v5.0_original/ncompress-5.0/compress.c 2021-02-02 09:16:16.000000000 +0100
+++ v5.0/ncompress-5.0/compress.c 2022-06-24 11:41:59.632028398 +0200
@@ -1337,7 +1337,7 @@
boff = -(((OBUFSIZ<<3)-boff)%(n_bits<<3));
bytes_out += OBUFSIZ;
- memcpy(outbuf, outbuf+OBUFSIZ, (outbits>>3)+1);
+ memmove(outbuf, outbuf+OBUFSIZ, (outbits>>3)+1);
memset(outbuf+(outbits>>3)+1, '\0', OBUFSIZ);
}

View File

@ -6,6 +6,39 @@ License: Public Domain
URL: https://github.com/vapier/%{name}
Source: https://github.com/vapier/%{name}/archive/refs/tags/v%{version}.tar.gz
# allow to build ncompress
# ~> downstream
Patch0: ncompress-5.0-make.patch
# from dist-git commit 0539779d937
# (praiskup: removed redundant part as -DNOFUNCDEF is defined)
# ~> downstream
Patch1: ncompress-5.0-lfs.patch
# exit when too long filename is given (do not segfault)
# ~> #unknown
# ~> downstream
# Patch2: ncompress-4.2.4.4-filenamelen.patch
# Did not segfault, Prints error 'File name too long'
# permit files > 2GB to be compressed
# ~> #126775
Patch3: ncompress-5.0-2GB.patch
# do not fail to compress on ppc/s390x
# ~> #207001
Patch4: ncompress-5.0-endians.patch
# use memmove instead of memcpy
# ~> 760657
# ~> downstream
Patch5: ncompress-5.0-memmove.patch
# silence gcc warnings
# ~> downstream
# Patch6: ncompress-4.2.4.4-silence-gcc.patch
# Fixed with %ld and brackets are included
BuildRequires: make
BuildRequires: gcc
BuildRequires: glibc-devel
@ -22,7 +55,15 @@ which are compatible with the original UNIX compress utility.
%prep
%autosetup -n %{name}-%{version}
%ifarch sparc m68k armv4l ppc s390 s390x ppc64 sparc64
ARCH_FLAGS="$ARCH_FLAGS -DBYTEORDER=1234"
%endif
%ifarch alpha ia64
ARCH_FLAGS="$ARCH_FLAGS -DNOALLIGN=0"
%endif
%autosetup -n %{name}-%{version} -p2
%build
make CFLAGS="%{optflags} %{?nc_endian} %{?nc_align} %{build_ldflags}"
@ -36,6 +77,9 @@ ln -sf compress $RPM_BUILD_ROOT/%{_bindir}/uncompress
install -p -m644 compress.1 $RPM_BUILD_ROOT%{_mandir}/man1
ln -sf compress.1 $RPM_BUILD_ROOT%{_mandir}/man1/uncompress.1
%check
./tests/runtests.sh
%files
%{_bindir}/compress
@ -45,10 +89,11 @@ ln -sf compress.1 $RPM_BUILD_ROOT%{_mandir}/man1/uncompress.1
%changelog
* Wed May 18 2022 Ondrej Sloup <osloup@redhat.com> - 5.0-1
* Fri Jun 24 2022 Ondrej Sloup <osloup@redhat.com> - 5.0-1
- Use autosetup
- Change source links
- Remove patch files
- Redo patch files and remove obsolete ones
- Add runtests.sh
- Rebase to the latest upstream version (rhbz#1924029)
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.4.4-21

View File

@ -1 +1 @@
4be215caacf3d082bfe24cfdbaba538e ncompress-4.2.4.4.tar.gz
SHA512 (v5.0.tar.gz) = 5bc886f98f25b03d034e8d8ebb0ee9388d727ee3e0c6d8a906698b2f8fa5c930f55d857486244b7f40447c7b74f3c620626600db619d0c6d6fd434f52912be42