commit 0ff5743252f351dfa50b53658beded322f69e935 Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 10:54:00 2019 -0400 Package init diff --git a/jbigkit-2.0-warnings.patch b/jbigkit-2.0-warnings.patch new file mode 100644 index 0000000..9d2008d --- /dev/null +++ b/jbigkit-2.0-warnings.patch @@ -0,0 +1,77 @@ +diff -up jbigkit-2.1/pbmtools/pbmtojbg85.c.warnings jbigkit-2.1/pbmtools/pbmtojbg85.c +--- jbigkit-2.1/pbmtools/pbmtojbg85.c.warnings 2008-08-26 00:26:39.000000000 +0200 ++++ jbigkit-2.1/pbmtools/pbmtojbg85.c 2012-07-17 16:24:56.741332942 +0200 +@@ -72,9 +72,12 @@ static unsigned long getint(FILE *f) + while ((c = getc(f)) != EOF && !(c == 13 || c == 10)) ; + if (c != EOF) { + ungetc(c, f); +- fscanf(f, "%lu", &i); ++ if (fscanf(f, "%lu", &i) != 1) { ++ /* should never fail, since c must be a digit */ ++ fprintf(stderr, "Unexpected failure reading digit '%c'\n", c); ++ exit(1); ++ } + } +- + return i; + } + +@@ -239,7 +242,9 @@ int main (int argc, char **argv) + break; + case '4': + /* PBM raw binary format */ +- fread(next_line, bpl, 1, fin); ++ if (fread(next_line, bpl, 1, fin) != 1) { ++ /* silence compiler warnings; ferror/feof checked below */ ++ } + break; + default: + fprintf(stderr, "Unsupported PBM type P%c!\n", type); +diff -up jbigkit-2.1/pbmtools/pbmtojbg.c.warnings jbigkit-2.1/pbmtools/pbmtojbg.c +--- jbigkit-2.1/pbmtools/pbmtojbg.c.warnings 2008-07-16 22:59:41.000000000 +0200 ++++ jbigkit-2.1/pbmtools/pbmtojbg.c 2012-07-17 16:23:46.584285686 +0200 +@@ -88,7 +88,11 @@ static unsigned long getint(FILE *f) + while ((c = getc(f)) != EOF && !(c == 13 || c == 10)) ; + if (c != EOF) { + ungetc(c, f); +- fscanf(f, "%lu", &i); ++ if (fscanf(f, "%lu", &i) != 1) { ++ /* should never fail, since c must be a digit */ ++ fprintf(stderr, "Unexpected failure reading digit '%c'\n", c); ++ exit(1); ++ } + } + + return i; +@@ -302,7 +306,9 @@ int main (int argc, char **argv) + break; + case '4': + /* PBM raw binary format */ +- fread(bitmap[0], bitmap_size, 1, fin); ++ if (fread(bitmap[0], bitmap_size, 1, fin) != 1) { ++ /* silence compiler warnings; ferror/feof checked below */ ++ } + break; + case '2': + case '5': +@@ -314,8 +320,18 @@ int main (int argc, char **argv) + for (j = 0; j < bpp; j++) + image[x * bpp + (bpp - 1) - j] = v >> (j * 8); + } +- } else +- fread(image, width * height, bpp, fin); ++ } else { ++ if (fread(image, width * height, bpp, fin) != (size_t) bpp) { ++ if (ferror(fin)) { ++ fprintf(stderr, "Problem while reading input file '%s", fnin); ++ perror("'"); ++ exit(1); ++ } else { ++ fprintf(stderr, "Unexpected end of input file '%s'!\n", fnin); ++ exit(1); ++ } ++ } ++ } + jbg_split_planes(width, height, planes, encode_planes, image, bitmap, + use_graycode); + free(image); diff --git a/jbigkit-2.1-shlib.patch b/jbigkit-2.1-shlib.patch new file mode 100644 index 0000000..bf5b22a --- /dev/null +++ b/jbigkit-2.1-shlib.patch @@ -0,0 +1,160 @@ +diff -Naur jbigkit-2.1.old/libjbig/Makefile jbigkit-2.1/libjbig/Makefile +--- jbigkit-2.1.old/libjbig/Makefile 2014-03-27 19:47:15.000000000 +0100 ++++ jbigkit-2.1/libjbig/Makefile 2014-08-04 10:45:31.865773710 +0200 +@@ -4,25 +4,27 @@ + CC = gcc + + # Options for the compiler: A high optimization level is suggested +-CFLAGS = -g -O -W -Wall -ansi -pedantic # --coverage ++CFLAGS = $(RPM_OPT_FLAGS) -W -Wall -ansi -pedantic # --coverage ++PICFLAGS := -fPIC -DPIC + +-all: libjbig.a libjbig85.a tstcodec tstcodec85 ++all: libjbig.so.$(VERSION) tstcodec tstcodec85 + +-tstcodec: tstcodec.o jbig.o jbig_ar.o +- $(CC) $(CFLAGS) -o tstcodec tstcodec.o jbig.o jbig_ar.o ++tstcodec: tstcodec.o libjbig.so ++ $(CC) $(CFLAGS) -o tstcodec $< -L. -ljbig + +-tstcodec85: tstcodec85.o jbig85.o jbig_ar.o +- $(CC) $(CFLAGS) -o tstcodec85 tstcodec85.o jbig85.o jbig_ar.o ++tstcodec85: tstcodec85.o libjbig85.so ++ $(CC) $(CFLAGS) -o tstcodec85 $^ -L. -ljbig + +-libjbig.a: jbig.o jbig_ar.o +- rm -f libjbig.a +- ar rc libjbig.a jbig.o jbig_ar.o +- -ranlib libjbig.a ++%.so: %.so.$(VERSION) ++ ln -sf $< $@ + +-libjbig85.a: jbig85.o jbig_ar.o +- rm -f libjbig85.a +- ar rc libjbig85.a jbig85.o jbig_ar.o +- -ranlib libjbig85.a ++libjbig.so.$(VERSION): jbig.o jbig_ar.o ++ $(CC) $(CFLAGS) -shared -Wl,-soname,$@ -o $@ $^ ++ ++libjbig85.so.$(VERSION): jbig85.o jbig_ar.o ++ $(CC) $(CFLAGS) -shared -Wl,-soname,$@ -o $@ $^ ++ ++jbig.o jbig85.o jbig_ar.o: CFLAGS += $(PICFLAGS) + + jbig.o: jbig.c jbig.h jbig_ar.h + jbig85.o: jbig85.c jbig85.h jbig_ar.h +@@ -43,11 +45,11 @@ + clang --analyze *.c + + test: tstcodec tstcodec85 +- ./tstcodec +- ./tstcodec85 ++ LD_LIBRARY_PATH=`pwd` ./tstcodec ++ LD_LIBRARY_PATH=`pwd` ./tstcodec85 + + t82test.pbm: tstcodec +- ./tstcodec $@ ++ LD_LIBRARY_PATH=`pwd` ./tstcodec $@ + + clean: + rm -f *.o *.gcda *.gcno *.gcov *.plist *~ core gmon.out dbg_d\=??.pbm +diff -Naur jbigkit-2.1.old/Makefile jbigkit-2.1/Makefile +--- jbigkit-2.1.old/Makefile 2014-03-27 19:47:15.000000000 +0100 ++++ jbigkit-2.1/Makefile 2014-08-04 10:52:09.242027746 +0200 +@@ -4,25 +4,26 @@ + CC = gcc + + # Options for the compiler: A high optimization level is suggested +-CFLAGS = -O2 -W -Wno-unused-result ++CFLAGS = $(RPM_OPT_FLAGS) -W -Wno-unused-result + # CFLAGS = -O -g -W -Wall -Wno-unused-result -ansi -pedantic # -DDEBUG + + export CC CFLAGS + + VERSION=2.1 ++export VERSION + + all: lib pbm + @echo "Enter 'make test' in order to start some automatic tests." + + lib: +- cd libjbig && $(MAKE) -e ++ make -C libjbig + + pbm: lib +- cd pbmtools && $(MAKE) -e ++ make -C pbmtools + + test: lib pbm +- cd libjbig && $(MAKE) test +- cd pbmtools && $(MAKE) test ++ LD_LIBRARY_PATH=`pwd`/libjbig make -C libjbig test ++ LD_LIBRARY_PATH=`pwd`/libjbig make -C pbmtools test + + analyze: + cd libjbig && $(MAKE) analyze +@@ -30,8 +31,8 @@ + + clean: + rm -f *~ core +- cd libjbig && $(MAKE) clean +- cd pbmtools && $(MAKE) clean ++ make -C libjbig clean ++ make -C pbmtools clean + + distribution: + rm -rf jbigkit-$(VERSION) +diff -Naur jbigkit-2.1.old/pbmtools/Makefile jbigkit-2.1/pbmtools/Makefile +--- jbigkit-2.1.old/pbmtools/Makefile 2014-03-27 19:47:15.000000000 +0100 ++++ jbigkit-2.1/pbmtools/Makefile 2014-08-04 10:49:47.694581174 +0200 +@@ -4,26 +4,26 @@ + CC = gcc + + # Options for the compiler +-CFLAGS = -g -O -W -Wall -Wno-unused-result -ansi -pedantic # --coverage ++CFLAGS = $(RPM_OPT_FLAGS) -W -Wall -Wno-unused-result -ansi -pedantic # --coverage + CPPFLAGS = -I../libjbig + + .SUFFIXES: .1 .5 .txt $(SUFFIXES) + .PHONY: txt test test82 test85 clean + +-all: pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85 txt ++all: pbmtojbg jbgtopbm pbmtojbg85 jbgtopbm85 # txt + + txt: pbmtojbg.txt jbgtopbm.txt pbm.txt pgm.txt + +-pbmtojbg: pbmtojbg.o ../libjbig/libjbig.a ++pbmtojbg: pbmtojbg.o ../libjbig/libjbig.so + $(CC) $(CFLAGS) -o pbmtojbg pbmtojbg.o -L../libjbig -ljbig + +-jbgtopbm: jbgtopbm.o ../libjbig/libjbig.a ++jbgtopbm: jbgtopbm.o ../libjbig/libjbig.so + $(CC) $(CFLAGS) -o jbgtopbm jbgtopbm.o -L../libjbig -ljbig + +-pbmtojbg85: pbmtojbg85.o ../libjbig/libjbig85.a ++pbmtojbg85: pbmtojbg85.o ../libjbig/libjbig85.so + $(CC) $(CFLAGS) -o pbmtojbg85 pbmtojbg85.o -L../libjbig -ljbig85 + +-jbgtopbm85: jbgtopbm85.o ../libjbig/libjbig85.a ++jbgtopbm85: jbgtopbm85.o ../libjbig/libjbig85.so + $(CC) $(CFLAGS) -o jbgtopbm85 jbgtopbm85.o -L../libjbig -ljbig85 + + jbgtopbm.o: jbgtopbm.c ../libjbig/jbig.h +@@ -31,13 +31,13 @@ + jbgtopbm85.o: jbgtopbm85.c ../libjbig/jbig85.h + pbmtojbg85.o: pbmtojbg85.c ../libjbig/jbig85.h + +-../libjbig/libjbig.a: ../libjbig/jbig.c ../libjbig/jbig.h \ ++../libjbig/libjbig.so: ../libjbig/jbig.c ../libjbig/jbig.h \ + ../libjbig/jbig_ar.c ../libjbig/jbig_ar.h +- make -C ../libjbig libjbig.a ++ make -C ../libjbig libjbig.so + +-../libjbig/libjbig85.a: ../libjbig/jbig85.c ../libjbig/jbig85.h \ ++../libjbig/libjbig85.so: ../libjbig/jbig85.c ../libjbig/jbig85.h \ + ../libjbig/jbig_ar.c ../libjbig/jbig_ar.h +- make -C ../libjbig libjbig85.a ++ make -C ../libjbig libjbig85.so + + analyze: + clang $(CPPFLAGS) --analyze *.c diff --git a/jbigkit-2.1.tar.gz b/jbigkit-2.1.tar.gz new file mode 100644 index 0000000..d496c8b Binary files /dev/null and b/jbigkit-2.1.tar.gz differ diff --git a/jbigkit-ldflags.patch b/jbigkit-ldflags.patch new file mode 100644 index 0000000..e527cb9 --- /dev/null +++ b/jbigkit-ldflags.patch @@ -0,0 +1,51 @@ +diff -up jbigkit-2.1/libjbig/Makefile.ldflags jbigkit-2.1/libjbig/Makefile +--- jbigkit-2.1/libjbig/Makefile.ldflags 2018-02-27 17:50:15.786038149 +0100 ++++ jbigkit-2.1/libjbig/Makefile 2018-02-27 17:55:44.042093437 +0100 +@@ -10,19 +10,19 @@ PICFLAGS := -fPIC -DPIC + all: libjbig.so.$(VERSION) tstcodec tstcodec85 + + tstcodec: tstcodec.o libjbig.so +- $(CC) $(CFLAGS) -o tstcodec $< -L. -ljbig ++ $(CC) $(CFLAGS) -o tstcodec $< -L. -ljbig $(LDFLAGS) + + tstcodec85: tstcodec85.o libjbig85.so +- $(CC) $(CFLAGS) -o tstcodec85 $^ -L. -ljbig ++ $(CC) $(CFLAGS) -o tstcodec85 $^ -L. -ljbig $(LDFLAGS) + + %.so: %.so.$(VERSION) + ln -sf $< $@ + + libjbig.so.$(VERSION): jbig.o jbig_ar.o +- $(CC) $(CFLAGS) -shared -Wl,-soname,$@ -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $^ + + libjbig85.so.$(VERSION): jbig85.o jbig_ar.o +- $(CC) $(CFLAGS) -shared -Wl,-soname,$@ -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $^ + + jbig.o jbig85.o jbig_ar.o: CFLAGS += $(PICFLAGS) + +diff -up jbigkit-2.1/pbmtools/Makefile.ldflags jbigkit-2.1/pbmtools/Makefile +--- jbigkit-2.1/pbmtools/Makefile.ldflags 2018-02-27 17:50:35.902857687 +0100 ++++ jbigkit-2.1/pbmtools/Makefile 2018-02-27 17:57:09.296328639 +0100 +@@ -15,16 +15,16 @@ all: pbmtojbg jbgtopbm pbmtojbg85 jbgtop + txt: pbmtojbg.txt jbgtopbm.txt pbm.txt pgm.txt + + pbmtojbg: pbmtojbg.o ../libjbig/libjbig.so +- $(CC) $(CFLAGS) -o pbmtojbg pbmtojbg.o -L../libjbig -ljbig ++ $(CC) $(CFLAGS) -o pbmtojbg pbmtojbg.o -L../libjbig -ljbig $(LDFLAGS) + + jbgtopbm: jbgtopbm.o ../libjbig/libjbig.so +- $(CC) $(CFLAGS) -o jbgtopbm jbgtopbm.o -L../libjbig -ljbig ++ $(CC) $(CFLAGS) -o jbgtopbm jbgtopbm.o -L../libjbig -ljbig $(LDFLAGS) + + pbmtojbg85: pbmtojbg85.o ../libjbig/libjbig85.so +- $(CC) $(CFLAGS) -o pbmtojbg85 pbmtojbg85.o -L../libjbig -ljbig85 ++ $(CC) $(CFLAGS) -o pbmtojbg85 pbmtojbg85.o -L../libjbig -ljbig85 $(LDFLAGS) + + jbgtopbm85: jbgtopbm85.o ../libjbig/libjbig85.so +- $(CC) $(CFLAGS) -o jbgtopbm85 jbgtopbm85.o -L../libjbig -ljbig85 ++ $(CC) $(CFLAGS) -o jbgtopbm85 jbgtopbm85.o -L../libjbig -ljbig85 $(LDFLAGS) + + jbgtopbm.o: jbgtopbm.c ../libjbig/jbig.h + pbmtojbg.o: pbmtojbg.c ../libjbig/jbig.h diff --git a/jbigkit.spec b/jbigkit.spec new file mode 100644 index 0000000..e1cc3e4 --- /dev/null +++ b/jbigkit.spec @@ -0,0 +1,81 @@ +Name: jbigkit +Version: 2.1 +Release: 16 +Summary: Lossless image compression library + +License: GPLv2+ +URL: https://www.cl.cam.ac.uk/~mgk25/jbigkit/ +Source0: https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/%{name}-%{version}.tar.gz + +# these patches come from fedora +Patch0: jbigkit-2.1-shlib.patch +Patch1: jbigkit-2.0-warnings.patch +Patch2: jbigkit-ldflags.patch + +BuildRequires: gcc +Provides: %{name}-libs +Obsoletes: %{name}-libs + +%description +JBIG-KIT provides a portable library of compression and decompression +functions with a documented interface that you can include very easily +into your image or document processing software. In addition, JBIG-KIT +provides ready-to-use compression and decompression programs with a +simple command line interface. + +%package devel +Summary: Files for %{name} development +Requires: %{name} = %{version}-%{release} +%description devel +files for %{name} development. + +%package_help + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +%make_build + +%install +pushd libjbig +install -Dm 0644 -t %{buildroot}%{_includedir} *.h +install -Dm 0755 -t %{buildroot}%{_libdir} *.so* +popd +ln -sf libjbig.so.%{version} $RPM_BUILD_ROOT/%{_libdir}/libjbig.so +ln -sf libjbig85.so.%{version} $RPM_BUILD_ROOT/%{_libdir}/libjbig85.so +pushd pbmtools +install -Dm 0755 -t %{buildroot}%{_bindir} ???to??? ???to???85 +install -Dm 0644 -t %{buildroot}%{_mandir}/man1/ *.1 +popd + +%check +make test + +%ldconfig_scriptlets + +%files +%defattr(-,root,root) +%license COPYING +%{_bindir}/* +%{_libdir}/*.so.* + +%files devel +%defattr(-,root,root) +%{_includedir}/*.h +%{_libdir}/*.so + +%files help +%defattr(-,root,root) +%doc ANNOUNCE CHANGES TODO +%{_mandir}/man1/* + +%changelog +* Thu Sep 5 2019 openEuler Builteam -2.1-16 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:add requires + +* Tue Aug 20 2019 openEuler Builteam -2.1-15 +- Package init