parent
b1c9eb80f7
commit
a7351294ef
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1 @@
|
||||
/ncompress-4.2.4.4.tar.gz
|
||||
/ncompress-5.0.tar.gz
|
||||
/v5.0.tar.gz
|
||||
|
||||
13
ncompress-4.2.4.4-2GB.patch
Normal file
13
ncompress-4.2.4.4-2GB.patch
Normal file
@ -0,0 +1,13 @@
|
||||
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
|
||||
{
|
||||
11
ncompress-4.2.4.4-endians.patch
Normal file
11
ncompress-4.2.4.4-endians.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- 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
|
||||
60
ncompress-4.2.4.4-filenamelen.patch
Normal file
60
ncompress-4.2.4.4-filenamelen.patch
Normal file
@ -0,0 +1,60 @@
|
||||
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
|
||||
23
ncompress-4.2.4.4-lfs.patch
Normal file
23
ncompress-4.2.4.4-lfs.patch
Normal file
@ -0,0 +1,23 @@
|
||||
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
|
||||
20
ncompress-4.2.4.4-make.patch
Normal file
20
ncompress-4.2.4.4-make.patch
Normal file
@ -0,0 +1,20 @@
|
||||
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)
|
||||
12
ncompress-4.2.4.4-memmove.patch
Normal file
12
ncompress-4.2.4.4-memmove.patch
Normal file
@ -0,0 +1,12 @@
|
||||
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);
|
||||
}
|
||||
|
||||
33
ncompress-4.2.4.4-silence-gcc.patch
Normal file
33
ncompress-4.2.4.4-silence-gcc.patch
Normal file
@ -0,0 +1,33 @@
|
||||
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;
|
||||
@ -1,10 +1,41 @@
|
||||
Summary: Fast compression and decompression utilities
|
||||
Name: ncompress
|
||||
Version: 5.0
|
||||
Release: 1%{?dist}
|
||||
Version: 4.2.4.4
|
||||
Release: 21%{?dist}
|
||||
License: Public Domain
|
||||
URL: https://github.com/vapier/%{name}
|
||||
Source: https://github.com/vapier/%{name}/archive/refs/tags/v%{version}.tar.gz
|
||||
URL: http://ncompress.sourceforge.net/
|
||||
Source: http://prdownloads.sourceforge.net/sourceforge/%{name}/%{name}-%{version}.tar.gz
|
||||
|
||||
# allow to build ncompress
|
||||
# ~> downstream
|
||||
Patch0: ncompress-4.2.4.4-make.patch
|
||||
|
||||
# from dist-git commit 0539779d937
|
||||
# (praiskup: removed redundant part as -DNOFUNCDEF is defined)
|
||||
# ~> downstream
|
||||
Patch1: ncompress-4.2.4.4-lfs.patch
|
||||
|
||||
# exit when too long filename is given (do not segfault)
|
||||
# ~> #unknown
|
||||
# ~> downstream
|
||||
Patch2: ncompress-4.2.4.4-filenamelen.patch
|
||||
|
||||
# permit files > 2GB to be compressed
|
||||
# ~> #126775
|
||||
Patch3: ncompress-4.2.4.4-2GB.patch
|
||||
|
||||
# do not fail to compress on ppc/s390x
|
||||
# ~> #207001
|
||||
Patch4: ncompress-4.2.4.4-endians.patch
|
||||
|
||||
# use memmove instead of memcpy
|
||||
# ~> 760657
|
||||
# ~> downstream
|
||||
Patch5: ncompress-4.2.4.4-memmove.patch
|
||||
|
||||
# silence gcc warnings
|
||||
# ~> downstream
|
||||
Patch6: ncompress-4.2.4.4-silence-gcc.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
@ -22,7 +53,29 @@ which are compatible with the original UNIX compress utility.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version}
|
||||
%setup -q
|
||||
|
||||
# configure build system
|
||||
# ~> downstream
|
||||
%patch0 -p1 -b .configure-buildsystem
|
||||
|
||||
%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
|
||||
|
||||
sed "s/\$(ARCH_FLAGS)/$ARCH_FLAGS/" Makefile.def > Makefile
|
||||
|
||||
%patch1 -p1 -b .lfs
|
||||
%patch2 -p1 -b .filenamelen
|
||||
%patch3 -p1 -b .2GB
|
||||
%patch4 -p1 -b .endians
|
||||
%patch5 -p1 -b .memmove
|
||||
%patch6 -p1 -b .silence-gcc
|
||||
|
||||
|
||||
%build
|
||||
make CFLAGS="%{optflags} %{?nc_endian} %{?nc_align} %{build_ldflags}"
|
||||
@ -41,16 +94,10 @@ ln -sf compress.1 $RPM_BUILD_ROOT%{_mandir}/man1/uncompress.1
|
||||
%{_bindir}/compress
|
||||
%{_bindir}/uncompress
|
||||
%{_mandir}/man1/*
|
||||
%doc LZW.INFO README.md
|
||||
%doc LZW.INFO README
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed May 18 2022 Ondrej Sloup <osloup@redhat.com> - 5.0-1
|
||||
- Use %autosetup
|
||||
- Change source links
|
||||
- Remove patch files
|
||||
- Rebase to the latest upstream version (rhbz#1924029)
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.4.4-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user