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