pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
jpeg-32: compat32 package for jpeg
Module Name: pkgsrc-wip
Committed By: Naveen Narayanan <zerous@nocebo.space>
Pushed By: zerous
Date: Tue Jul 9 22:14:08 2019 +0200
Changeset: baf35c3575a3b092b706d25c0748d409821a13c8
Added Files:
jpeg-32/DESCR
jpeg-32/Makefile
jpeg-32/PLIST
jpeg-32/buildlink3.mk
jpeg-32/distinfo
jpeg-32/files/exifautotran
jpeg-32/files/jpegexiforient.c
jpeg-32/patches/patch-af
jpeg-32/patches/patch-ag
jpeg-32/patches/patch-jmorecfg.h
jpeg-32/patches/patch-jpeglib.h
jpeg-32/patches/patch-rdtarga.c
Log Message:
jpeg-32: compat32 package for jpeg
This package contains C software to implement JPEG image encoding, decoding,
and transcoding. JPEG is a standardized compression method for full-color
and gray-scale images.
Note: This package is intended to crosscompile jpeg for i386 on x86_64
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=baf35c3575a3b092b706d25c0748d409821a13c8
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
jpeg-32/DESCR | 24 ++++
jpeg-32/Makefile | 41 ++++++
jpeg-32/PLIST | 7 +
jpeg-32/buildlink3.mk | 14 ++
jpeg-32/distinfo | 11 ++
jpeg-32/files/exifautotran | 40 ++++++
jpeg-32/files/jpegexiforient.c | 293 +++++++++++++++++++++++++++++++++++++++
jpeg-32/patches/patch-af | 24 ++++
jpeg-32/patches/patch-ag | 62 +++++++++
jpeg-32/patches/patch-jmorecfg.h | 28 ++++
jpeg-32/patches/patch-jpeglib.h | 12 ++
jpeg-32/patches/patch-rdtarga.c | 37 +++++
12 files changed, 593 insertions(+)
diffs:
diff --git a/jpeg-32/DESCR b/jpeg-32/DESCR
new file mode 100644
index 0000000000..8f77e2a44c
--- /dev/null
+++ b/jpeg-32/DESCR
@@ -0,0 +1,24 @@
+Independent JPEG Group's free JPEG software
+-------------------------------------------
+
+This package contains C software to implement JPEG image encoding, decoding,
+and transcoding. JPEG is a standardized compression method for full-color
+and gray-scale images.
+
+The distributed programs provide conversion between JPEG "JFIF" format and
+image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats. The
+core compression and decompression library can easily be reused in other
+programs, such as image viewers. The package is highly portable C code;
+we have tested it on many machines ranging from PCs to Crays.
+
+We are releasing this software for both noncommercial and commercial use.
+Companies are welcome to use it as the basis for JPEG-related products.
+We do not ask a royalty, although we do ask for an acknowledgement in
+product literature (see the README file in the distribution for details).
+We hope to make this software industrial-quality --- although, as with
+anything that's free, we offer no warranty and accept no liability.
+
+For more information, contact jpeg-info%uc.ag@localhost.
+
+Note: This package is intended to crosscompile jpeg for i386 on x86_64
+
diff --git a/jpeg-32/Makefile b/jpeg-32/Makefile
new file mode 100644
index 0000000000..6ebf002f08
--- /dev/null
+++ b/jpeg-32/Makefile
@@ -0,0 +1,41 @@
+# $NetBSD: Makefile,v 1.55 2019/03/10 11:22:43 spz Exp $
+
+DISTNAME= jpegsrc.v9c
+ABI= 32
+PKGNAME= compat${ABI}_${DISTNAME:S/src.v/-/}
+CATEGORIES= graphics
+MASTER_SITES= http://www.ijg.org/files/
+DIST_SUBDIR= jpeg-9c-v2
+PKGREVISION= 1
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= http://www.ijg.org/
+COMMENT= IJG's jpeg compression utilities
+
+CONFLICTS= libjpeg-turbo-[0-9]*
+
+#WRKSRC= ${WRKDIR}/${PKGNAME_NOREV}
+WRKSRC= ${WRKDIR}/jpeg-9c
+USE_LIBTOOL= yes
+GNU_CONFIGURE= yes
+LIBABISUFFIX?= /32
+CFLAGS+= -m32
+CONFIGURE_ARGS+= --disable-ld-version-script
+CONFIGURE_ARGS+= --libdir=${PREFIX}/lib${LIBABISUFFIX}
+
+INSTALLATION_DIRS= bin include share/doc/jpeg
+
+PKGCONFIG_OVERRIDE= libjpeg.pc.in
+
+TEST_TARGET= test
+
+post-extract:
+ ${CP} ${FILESDIR}/jpegexiforient.c ${WRKSRC}
+
+remove-non-libraries:
+ echo "Removing non-compat library package content"
+ find ${DESTDIR}${PREFIX} -path ${DESTDIR}${PREFIX}/lib${LIBABISUFFIX} -prune -o -type f -exec ${RM} {} +
+
+post-install: remove-non-libraries
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/jpeg-32/PLIST b/jpeg-32/PLIST
new file mode 100644
index 0000000000..a74f48f79a
--- /dev/null
+++ b/jpeg-32/PLIST
@@ -0,0 +1,7 @@
+@comment $NetBSD$
+lib/32/libjpeg.la
+lib/32/pkgconfig/libjpeg.pc
+@pkgdir share/doc/jpeg
+@pkgdir man/man1
+@pkgdir include
+@pkgdir bin
diff --git a/jpeg-32/buildlink3.mk b/jpeg-32/buildlink3.mk
new file mode 100644
index 0000000000..70f261ada1
--- /dev/null
+++ b/jpeg-32/buildlink3.mk
@@ -0,0 +1,14 @@
+# $NetBSD: buildlink3.mk,v 1.17 2013/01/24 21:52:28 wiz Exp $
+
+BUILDLINK_TREE+= compat32_jpeg
+
+.if !defined(COMPAT32_JPEG_BUILDLINK3_MK)
+COMPAT32_JPEG_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.compat32_jpeg+= compat32_jpeg>=8nb1
+BUILDLINK_ABI_DEPENDS.compat32_jpeg+= compat32_jpeg>=9
+BUILDLINK_PKGSRCDIR.compat32_jpeg?= ../../wip/jpeg-32
+BUILDLINK_LIBDIRS.compat32_jpeg= lib/32
+.endif # COMPAT32_JPEG_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -compat32_jpeg
diff --git a/jpeg-32/distinfo b/jpeg-32/distinfo
new file mode 100644
index 0000000000..f395645759
--- /dev/null
+++ b/jpeg-32/distinfo
@@ -0,0 +1,11 @@
+$NetBSD: distinfo,v 1.24 2019/03/10 11:22:43 spz Exp $
+
+SHA1 (jpeg-9c-v2/jpegsrc.v9c.tar.gz) = 2ce111c8c0ac828a44b13ad28c265e954a342d07
+RMD160 (jpeg-9c-v2/jpegsrc.v9c.tar.gz) = c181cc66d03d96ffcca85724938551bb089fd519
+SHA512 (jpeg-9c-v2/jpegsrc.v9c.tar.gz) = 2b581c60ae401a79bbbe748ff2deeda5acd50bfd2ea22e5926e36d34b9ebcffb6580b0ff48e972c1441583e30e21e1ea821ca0423f9c67ce08a31dffabdbe6b7
+Size (jpeg-9c-v2/jpegsrc.v9c.tar.gz) = 1028134 bytes
+SHA1 (patch-af) = 925604706574009aacd452dab2d736039b0654e9
+SHA1 (patch-ag) = 46164c00386d1968356f1b61d144bc9168410654
+SHA1 (patch-jmorecfg.h) = c00f81ba94e2ad6b55ca9892553eedbe4eca3ad1
+SHA1 (patch-jpeglib.h) = 635453c5a2b1223ef5af729edcbfcfa3ed78a8b5
+SHA1 (patch-rdtarga.c) = eaec399d67ffb5d33b32131d01a052132bb5bae2
diff --git a/jpeg-32/files/exifautotran b/jpeg-32/files/exifautotran
new file mode 100644
index 0000000000..09db9ee48c
--- /dev/null
+++ b/jpeg-32/files/exifautotran
@@ -0,0 +1,40 @@
+#! /bin/sh
+#
+# $NetBSD: exifautotran,v 1.2 2010/01/04 19:43:39 joerg Exp $
+#
+# Based on http://www.jpegclub.org/exifautotran.txt
+#
+if [ "$#" = "0" ]
+then
+cat << EOF 1>&2
+usage: exifautotran [list of files]
+Transforms Exif files so that Orientation becomes 1
+EOF
+exit 1
+fi
+
+for i
+do
+ case `jpegexiforient -n "$i"` in
+ 1) transform="";;
+ 2) transform="-flip horizontal";;
+ 3) transform="-rotate 180";;
+ 4) transform="-flip vertical";;
+ 5) transform="-transpose";;
+ 6) transform="-rotate 90";;
+ 7) transform="-transverse";;
+ 8) transform="-rotate 270";;
+ *) transform="";;
+ esac
+ if test -n "$transform"; then
+ echo Executing: jpegtran -copy all $transform $i
+ jpegtran -copy all $transform "$i" > tempfile
+ if test $? -ne 0; then
+ echo Error while transforming $i - skipped.
+ else
+ rm "$i"
+ mv tempfile "$i"
+ jpegexiforient -1 "$i" > /dev/null
+ fi
+ fi
+done
diff --git a/jpeg-32/files/jpegexiforient.c b/jpeg-32/files/jpegexiforient.c
new file mode 100644
index 0000000000..177ba51ef6
--- /dev/null
+++ b/jpeg-32/files/jpegexiforient.c
@@ -0,0 +1,293 @@
+/* $NetBSD: jpegexiforient.c,v 1.2 2010/01/04 19:43:39 joerg Exp $ */
+/*
+ * jpegexiforient.c
+ *
+ * This is a utility program to get and set the Exif Orientation Tag.
+ * It can be used together with jpegtran in scripts for automatic
+ * orientation correction of digital camera pictures.
+ *
+ * The Exif orientation value gives the orientation of the camera
+ * relative to the scene when the image was captured. The relation
+ * of the '0th row' and '0th column' to visual position is shown as
+ * below.
+ *
+ * Value | 0th Row | 0th Column
+ * ------+-------------+-----------
+ * 1 | top | left side
+ * 2 | top | rigth side
+ * 3 | bottom | rigth side
+ * 4 | bottom | left side
+ * 5 | left side | top
+ * 6 | right side | top
+ * 7 | right side | bottom
+ * 8 | left side | bottom
+ *
+ * For convenience, here is what the letter F would look like if it were
+ * tagged correctly and displayed by a program that ignores the orientation
+ * tag:
+ *
+ * 1 2 3 4 5 6 7 8
+ *
+ * 888888 888888 88 88 8888888888 88 88 8888888888
+ * 88 88 88 88 88 88 88 88 88 88 88 88
+ * 8888 8888 8888 8888 88 8888888888 8888888888 88
+ * 88 88 88 88
+ * 88 88 888888 888888
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+static FILE * myfile; /* My JPEG file */
+
+static unsigned char exif_data[65536L];
+
+/* Return next input byte, or EOF if no more */
+#define NEXTBYTE() getc(myfile)
+
+/* Error exit handler */
+#define ERREXIT(msg) (exit(0))
+
+/* Read one byte, testing for EOF */
+static int
+read_1_byte (void)
+{
+ int c;
+
+ c = NEXTBYTE();
+ if (c == EOF)
+ ERREXIT("Premature EOF in JPEG file");
+ return c;
+}
+
+/* Read 2 bytes, convert to unsigned int */
+/* All 2-byte quantities in JPEG markers are MSB first */
+static unsigned int
+read_2_bytes (void)
+{
+ int c1, c2;
+
+ c1 = NEXTBYTE();
+ if (c1 == EOF)
+ ERREXIT("Premature EOF in JPEG file");
+ c2 = NEXTBYTE();
+ if (c2 == EOF)
+ ERREXIT("Premature EOF in JPEG file");
+ return (((unsigned int) c1) << 8) + ((unsigned int) c2);
+}
+
+static const char * progname; /* program name for error messages */
+
+static void
+usage (void)
+/* complain about bad command line */
+{
+ fprintf(stderr, "jpegexiforient reads or writes the Exif Orientation Tag ");
+ fprintf(stderr, "in a JPEG Exif file.\n");
+
+ fprintf(stderr, "Usage: %s [switches] jpegfile\n", progname);
+
+ fprintf(stderr, "Switches:\n");
+ fprintf(stderr, " -n Do not output the trailing newline\n");
+ fprintf(stderr, " -1 .. -8 Set orientation value 1 .. 8\n");
+}
+
+/*
+ * The main program.
+ */
+
+int
+main (int argc, char **argv)
+{
+ int n_flag, set_flag;
+ unsigned int length, i;
+ int is_motorola; /* Flag for byte order */
+ unsigned int offset, number_of_tags, tagnum;
+
+ progname = argv[0];
+ if (progname == NULL || progname[0] == 0)
+ progname = "jpegexiforient"; /* in case C library doesn't provide it */
+
+ if (argc < 2) { usage(); return 0; }
+
+ n_flag = 0; set_flag = 0;
+
+ i = 1;
+ while (argv[i][0] == '-') {
+ switch (argv[i][1]) {
+ case 'n':
+ n_flag = 1;
+ break;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ set_flag = argv[i][1] - '0';
+ break;
+ default:
+ usage(); return 0;
+ }
+ if (++i >= argc) { usage(); return 0; }
+ }
+
+ if (set_flag) {
+ if ((myfile = fopen(argv[i], "rb+")) == NULL) {
+ fprintf(stderr, "%s: can't open %s\n", progname, argv[i]);
+ return 0;
+ }
+ } else {
+ if ((myfile = fopen(argv[i], "rb")) == NULL) {
+ fprintf(stderr, "%s: can't open %s\n", progname, argv[i]);
+ return 0;
+ }
+ }
+
+ /* Read File head, check for JPEG SOI + Exif APP1 */
+ for (i = 0; i < 4; i++)
+ exif_data[i] = (unsigned char) read_1_byte();
+ if (exif_data[0] != 0xFF ||
+ exif_data[1] != 0xD8 ||
+ exif_data[2] != 0xFF ||
+ exif_data[3] != 0xE1)
+ return 0;
+
+ /* Get the marker parameter length count */
+ length = read_2_bytes();
+ /* Length includes itself, so must be at least 2 */
+ /* Following Exif data length must be at least 6 */
+ if (length < 8)
+ return 0;
+ length -= 8;
+ /* Read Exif head, check for "Exif" */
+ for (i = 0; i < 6; i++)
+ exif_data[i] = (unsigned char) read_1_byte();
+ if (exif_data[0] != 0x45 ||
+ exif_data[1] != 0x78 ||
+ exif_data[2] != 0x69 ||
+ exif_data[3] != 0x66 ||
+ exif_data[4] != 0 ||
+ exif_data[5] != 0)
+ return 0;
+ /* Read Exif body */
+ for (i = 0; i < length; i++)
+ exif_data[i] = (unsigned char) read_1_byte();
+
+ if (length < 12) return 0; /* Length of an IFD entry */
+
+ /* Discover byte order */
+ if (exif_data[0] == 0x49 && exif_data[1] == 0x49)
+ is_motorola = 0;
+ else if (exif_data[0] == 0x4D && exif_data[1] == 0x4D)
+ is_motorola = 1;
+ else
+ return 0;
+
+ /* Check Tag Mark */
+ if (is_motorola) {
+ if (exif_data[2] != 0) return 0;
+ if (exif_data[3] != 0x2A) return 0;
+ } else {
+ if (exif_data[3] != 0) return 0;
+ if (exif_data[2] != 0x2A) return 0;
+ }
+
+ /* Get first IFD offset (offset to IFD0) */
+ if (is_motorola) {
+ if (exif_data[4] != 0) return 0;
+ if (exif_data[5] != 0) return 0;
+ offset = exif_data[6];
+ offset <<= 8;
+ offset += exif_data[7];
+ } else {
+ if (exif_data[7] != 0) return 0;
+ if (exif_data[6] != 0) return 0;
+ offset = exif_data[5];
+ offset <<= 8;
+ offset += exif_data[4];
+ }
+ if (offset > length - 2) return 0; /* check end of data segment */
+
+ /* Get the number of directory entries contained in this IFD */
+ if (is_motorola) {
+ number_of_tags = exif_data[offset];
+ number_of_tags <<= 8;
+ number_of_tags += exif_data[offset+1];
+ } else {
+ number_of_tags = exif_data[offset+1];
+ number_of_tags <<= 8;
+ number_of_tags += exif_data[offset];
+ }
+ if (number_of_tags == 0) return 0;
+ offset += 2;
+
+ /* Search for Orientation Tag in IFD0 */
+ for (;;) {
+ if (offset > length - 12) return 0; /* check end of data segment */
+ /* Get Tag number */
+ if (is_motorola) {
+ tagnum = exif_data[offset];
+ tagnum <<= 8;
+ tagnum += exif_data[offset+1];
+ } else {
+ tagnum = exif_data[offset+1];
+ tagnum <<= 8;
+ tagnum += exif_data[offset];
+ }
+ if (tagnum == 0x0112) break; /* found Orientation Tag */
+ if (--number_of_tags == 0) return 0;
+ offset += 12;
+ }
+
+ if (set_flag) {
+ /* Set the Orientation value */
+ if (is_motorola) {
+ exif_data[offset+2] = 0; /* Format = unsigned short (2 octets) */
+ exif_data[offset+3] = 3;
+ exif_data[offset+4] = 0; /* Number Of Components = 1 */
+ exif_data[offset+5] = 0;
+ exif_data[offset+6] = 0;
+ exif_data[offset+7] = 1;
+ exif_data[offset+8] = 0;
+ exif_data[offset+9] = (unsigned char)set_flag;
+ exif_data[offset+10] = 0;
+ exif_data[offset+11] = 0;
+ } else {
+ exif_data[offset+2] = 3; /* Format = unsigned short (2 octets) */
+ exif_data[offset+3] = 0;
+ exif_data[offset+4] = 1; /* Number Of Components = 1 */
+ exif_data[offset+5] = 0;
+ exif_data[offset+6] = 0;
+ exif_data[offset+7] = 0;
+ exif_data[offset+8] = (unsigned char)set_flag;
+ exif_data[offset+9] = 0;
+ exif_data[offset+10] = 0;
+ exif_data[offset+11] = 0;
+ }
+ fseek(myfile, (4 + 2 + 6 + 2) + offset, SEEK_SET);
+ fwrite(exif_data + 2 + offset, 1, 10, myfile);
+ } else {
+ /* Get the Orientation value */
+ if (is_motorola) {
+ if (exif_data[offset+8] != 0) return 0;
+ set_flag = exif_data[offset+9];
+ } else {
+ if (exif_data[offset+9] != 0) return 0;
+ set_flag = exif_data[offset+8];
+ }
+ if (set_flag > 8) return 0;
+ }
+
+ /* Write out Orientation value */
+ if (n_flag)
+ printf("%c", '0' + set_flag);
+ else
+ printf("%c\n", '0' + set_flag);
+
+ /* All done. */
+ return 0;
+}
diff --git a/jpeg-32/patches/patch-af b/jpeg-32/patches/patch-af
new file mode 100644
index 0000000000..44f8ae64d5
--- /dev/null
+++ b/jpeg-32/patches/patch-af
@@ -0,0 +1,24 @@
+$NetBSD: patch-af,v 1.6 2016/02/01 09:22:53 wiz Exp $
+
+Build and install jpegexiforient.
+
+--- Makefile.am.orig 2012-05-09 13:13:36.000000000 +0000
++++ Makefile.am
+@@ -76,7 +76,7 @@ if HAVE_LD_VERSION_SCRIPT
+ endif
+
+ # Executables to build
+-bin_PROGRAMS = cjpeg djpeg jpegtran rdjpgcom wrjpgcom
++bin_PROGRAMS = cjpeg djpeg jpegtran rdjpgcom wrjpgcom jpegexiforient
+
+ # Executable sources & libs
+ cjpeg_SOURCES = cjpeg.c rdppm.c rdgif.c rdtarga.c rdrle.c rdbmp.c \
+@@ -89,6 +89,8 @@ jpegtran_SOURCES = jpegtran.c rdswitch.c
+ jpegtran_LDADD = libjpeg.la
+ rdjpgcom_SOURCES = rdjpgcom.c
+ wrjpgcom_SOURCES = wrjpgcom.c
++jpegexiforient_SOURCES = jpegexiforient.c
++jpegexiforient_LDADD = libjpeg.la
+
+ # Manual pages to install
+ man_MANS = $(DISTMANS)
diff --git a/jpeg-32/patches/patch-ag b/jpeg-32/patches/patch-ag
new file mode 100644
index 0000000000..4068278242
--- /dev/null
+++ b/jpeg-32/patches/patch-ag
@@ -0,0 +1,62 @@
+$NetBSD: patch-ag,v 1.4 2016/02/01 09:22:53 wiz Exp $
+
+Build and install jpegexiforient.
+
+--- Makefile.in.orig 2015-09-10 08:04:54.000000000 +0000
++++ Makefile.in
+@@ -99,7 +99,7 @@ host_triplet = @host@
+ target_triplet = @target@
+ @HAVE_LD_VERSION_SCRIPT_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/libjpeg.map
+ bin_PROGRAMS = cjpeg$(EXEEXT) djpeg$(EXEEXT) jpegtran$(EXEEXT) \
+- rdjpgcom$(EXEEXT) wrjpgcom$(EXEEXT)
++ rdjpgcom$(EXEEXT) wrjpgcom$(EXEEXT) jpegexiforient$(EXEEXT)
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+@@ -184,6 +184,9 @@ rdjpgcom_LDADD = $(LDADD)
+ am_wrjpgcom_OBJECTS = wrjpgcom.$(OBJEXT)
+ wrjpgcom_OBJECTS = $(am_wrjpgcom_OBJECTS)
+ wrjpgcom_LDADD = $(LDADD)
++am_jpegexiforient_OBJECTS = jpegexiforient.$(OBJEXT)
++jpegexiforient_OBJECTS = $(am_jpegexiforient_OBJECTS)
++jpegexiforient_DEPENDENCIES = libjpeg.la
+ AM_V_P = $(am__v_P_@AM_V@)
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+ am__v_P_0 = false
+@@ -219,7 +222,8 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V
+ am__v_CCLD_0 = @echo " CCLD " $@;
+ am__v_CCLD_1 =
+ SOURCES = $(libjpeg_la_SOURCES) $(cjpeg_SOURCES) $(djpeg_SOURCES) \
+- $(jpegtran_SOURCES) $(rdjpgcom_SOURCES) $(wrjpgcom_SOURCES)
++ $(jpegtran_SOURCES) $(rdjpgcom_SOURCES) $(wrjpgcom_SOURCES) \
++ $(jpegexiforient_SOURCES)
+ am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+@@ -461,6 +465,8 @@ jpegtran_SOURCES = jpegtran.c rdswitch.c
+ jpegtran_LDADD = libjpeg.la
+ rdjpgcom_SOURCES = rdjpgcom.c
+ wrjpgcom_SOURCES = wrjpgcom.c
++jpegexiforient_SOURCES = jpegexiforient.c
++jpegexiforient_LDADD = libjpeg.la
+
+ # Manual pages to install
+ man_MANS = $(DISTMANS)
+@@ -640,6 +646,9 @@ rdjpgcom$(EXEEXT): $(rdjpgcom_OBJECTS) $
+ wrjpgcom$(EXEEXT): $(wrjpgcom_OBJECTS) $(wrjpgcom_DEPENDENCIES) $(EXTRA_wrjpgcom_DEPENDENCIES)
+ @rm -f wrjpgcom$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(wrjpgcom_OBJECTS) $(wrjpgcom_LDADD) $(LIBS)
++jpegexiforient$(EXEEXT): $(jpegexiforient_OBJECTS) $(jpegexiforient_DEPENDENCIES)
++ @rm -f jpegexiforient$(EXEEXT)
++ $(AM_V_CCLD)$(LINK) $(jpegexiforient_OBJECTS) $(jpegexiforient_LDADD) $(LIBS)
+
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+@@ -693,6 +702,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jidctfst.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jidctint.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jmemmgr.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpegexiforient.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpegtran.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jquant1.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jquant2.Plo@am__quote@
diff --git a/jpeg-32/patches/patch-jmorecfg.h b/jpeg-32/patches/patch-jmorecfg.h
new file mode 100644
index 0000000000..b588b2fac1
--- /dev/null
+++ b/jpeg-32/patches/patch-jmorecfg.h
@@ -0,0 +1,28 @@
+$NetBSD: patch-jmorecfg.h,v 1.3 2014/01/28 21:19:00 wiz Exp $
+
+Fix problem with booleans by reverting to the old definition.
+
+--- jmorecfg.h.orig 2013-09-17 07:20:20.000000000 +0000
++++ jmorecfg.h
+@@ -303,19 +303,14 @@ typedef void noreturn_t;
+ * Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
+ */
+
+-#ifndef HAVE_BOOLEAN
+-#if defined FALSE || defined TRUE || defined QGLOBAL_H
+-/* Qt3 defines FALSE and TRUE as "const" variables in qglobal.h */
+-typedef int boolean;
+ #ifndef FALSE /* in case these macros already exist */
+ #define FALSE 0 /* values of boolean */
+ #endif
+ #ifndef TRUE
+ #define TRUE 1
+ #endif
+-#else
+-typedef enum { FALSE = 0, TRUE = 1 } boolean;
+-#endif
++#ifndef HAVE_BOOLEAN
++typedef int boolean;
+ #endif
+
+
diff --git a/jpeg-32/patches/patch-jpeglib.h b/jpeg-32/patches/patch-jpeglib.h
new file mode 100644
index 0000000000..d4cc4e8023
--- /dev/null
+++ b/jpeg-32/patches/patch-jpeglib.h
@@ -0,0 +1,12 @@
+$NetBSD: patch-jpeglib.h,v 1.1 2013/10/11 14:54:06 joerg Exp $
+
+--- jpeglib.h.orig 2013-10-11 13:06:28.000000000 +0000
++++ jpeglib.h
+@@ -26,6 +26,7 @@
+ #endif
+ #include "jmorecfg.h" /* seldom changed options */
+
++#include <stdio.h>
+
+ #ifdef __cplusplus
+ #ifndef DONT_USE_EXTERN_C
diff --git a/jpeg-32/patches/patch-rdtarga.c b/jpeg-32/patches/patch-rdtarga.c
new file mode 100644
index 0000000000..f037def55d
--- /dev/null
+++ b/jpeg-32/patches/patch-rdtarga.c
@@ -0,0 +1,37 @@
+$NetBSD: patch-rdtarga.c,v 1.1 2019/03/10 11:22:43 spz Exp $
+
+fix for CVE-2018-11813 from
+https://github.com/mozilla/mozjpeg/commit/909a8cfc7bca9b2e6707425bdb74da997e8fa499
+
+--- rdtarga.c.orig 2017-09-16 11:12:46.000000000 +0000
++++ rdtarga.c
+@@ -125,11 +125,10 @@ METHODDEF(void)
+ read_non_rle_pixel (tga_source_ptr sinfo)
+ /* Read one Targa pixel from the input file; no RLE expansion */
+ {
+- register FILE *infile = sinfo->pub.input_file;
+ register int i;
+
+ for (i = 0; i < sinfo->pixel_size; i++) {
+- sinfo->tga_pixel[i] = (U_CHAR) getc(infile);
++ sinfo->tga_pixel[i] = (U_CHAR) read_byte(sinfo);
+ }
+ }
+
+@@ -138,7 +137,6 @@ METHODDEF(void)
+ read_rle_pixel (tga_source_ptr sinfo)
+ /* Read one Targa pixel from the input file, expanding RLE data as needed */
+ {
+- register FILE *infile = sinfo->pub.input_file;
+ register int i;
+
+ /* Duplicate previously read pixel? */
+@@ -160,7 +158,7 @@ read_rle_pixel (tga_source_ptr sinfo)
+
+ /* Read next pixel */
+ for (i = 0; i < sinfo->pixel_size; i++) {
+- sinfo->tga_pixel[i] = (U_CHAR) getc(infile);
++ sinfo->tga_pixel[i] = (U_CHAR) read_byte(sinfo);
+ }
+ }
+
Home |
Main Index |
Thread Index |
Old Index