diff --git a/jbigkit-2.0-warnings.patch b/jbigkit-2.0-warnings.patch new file mode 100644 index 0000000000000000000000000000000000000000..9d2008da061c8cf6df7a4ebef95650e0a38a93ab --- /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 0000000000000000000000000000000000000000..2d115c003c188189237e05f3ccab6f8b904ff0f9 --- /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. -ljbig85 + +-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-covscan.patch b/jbigkit-covscan.patch new file mode 100644 index 0000000000000000000000000000000000000000..22282b9074481be62734beedb569425d877c8754 --- /dev/null +++ b/jbigkit-covscan.patch @@ -0,0 +1,30 @@ +diff --git a/libjbig/jbig.c b/libjbig/jbig.c +index 751ceff..3c76e07 100644 +--- a/libjbig/jbig.c ++++ b/libjbig/jbig.c +@@ -889,7 +889,7 @@ void jbg_enc_options(struct jbg_enc_state *s, int order, int options, + if (order >= 0 && order <= 0x0f) s->order = order; + if (options >= 0) s->options = options; + if (l0 > 0) s->l0 = l0; +- if (mx >= 0 && my < 128) s->mx = mx; ++ if (mx >= 0 && mx < 128) s->mx = mx; + if (my >= 0 && my < 256) s->my = my; + + return; +diff --git a/pbmtools/Makefile b/pbmtools/Makefile +index 85e1783..6ae2d33 100644 +--- a/pbmtools/Makefile ++++ b/pbmtools/Makefile +@@ -56,9 +56,9 @@ test82: pbmtojbg jbgtopbm + make IMG=sandra "OPTIONSP=-o 2" OPTIONSJ= dotest2g + make IMG=multi OPTIONSP= OPTIONSJ= dotest2g + make IMG=multi OPTIONSP=-b OPTIONSJ=-b dotest2g +- make IMG=mx "OPTIONSP=-q -s 3 -m 128" dotest1 +- make IMG=mx "OPTIONSP=-q -s 3 -m 128" dotest2b +- make IMG=mx "OPTIONSP=-q -s 3 -m 128 -p 92" dotest2b ++ make IMG=mx "OPTIONSP=-q -s 3 -m 127" dotest1 ++ make IMG=mx "OPTIONSP=-q -s 3 -m 127" dotest2b ++ make IMG=mx "OPTIONSP=-q -s 3 -m 127 -p 92" dotest2b + make IMG=mx "OPTIONSP=-q -Y -1" dotest2b + make IMG=mx "OPTIONSP=-Y -1" dotest2b + rm -f test-*.jbg test-*.pbm test-*.pgm diff --git a/jbigkit-ldflags.patch b/jbigkit-ldflags.patch new file mode 100644 index 0000000000000000000000000000000000000000..3d24f693cdd13f93e2b87f9b6df9623ea874c42a --- /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. -ljbig85 ++ $(CC) $(CFLAGS) -o tstcodec85 $< -L. -ljbig85 $(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 index 26e648bda17f111c577b91ad60f7d508b39413a7..e3a960d2cba1541e89068ba79a71f4b0a14f0d4d 100644 --- a/jbigkit.spec +++ b/jbigkit.spec @@ -1,7 +1,7 @@ -%define anolis_release 17 +%define anolis_release 18 Name: jbigkit -Version: 2.1 +Version: 2.1 Release: %{anolis_release}%{?dist} Summary: JBIG1 lossless image compression tools License: GPLv2+ @@ -12,6 +12,10 @@ Patch0: 0001-%{name}-2.1-shlib.patch Patch1: 0002-%{name}-2.0-warnings.patch Patch2: 0003-%{name}-ldflags.patch Patch3: 0004-%{name}-covscan.patch +Patch4: jbigkit-2.1-shlib.patch +Patch5: jbigkit-2.0-warnings.patch +Patch6: jbigkit-ldflags.patch +Patch7: jbigkit-covscan.patch BuildRequires: gcc make @@ -102,6 +106,8 @@ make test %doc ANNOUNCE TODO CHANGES %changelog +* Thu Jul 10 2025 wenyuzifang - 2.1-18 +- Fix incorrect validation of mx parameter and update tests to ensure correct behavior and prevent invalid inputs. * Thu Apr 13 2023 Jing Zhang - 2.1-17 - Refact spec @@ -118,4 +124,4 @@ make test - add doc package * Mon Apr 18 2022 yuanhui - 2.1-1 -- Init jbigkit for anolis os 23 +- Init jbigkit for anolis os 23 \ No newline at end of file