Saturday, November 03, 2018

Re: [PATCH] grpahics/jpeg 2.0.0 broke dependents using autotools

The easy/safe way is to bump libjpeg's shared library major version.

--
Sent from a phone, apologies for poor formatting.

On 3 November 2018 14:47:00 trondd <trondd@kagu-tsuchi.com> wrote:

> I noticed that at some point www/links+ wasn't able to display jpegs. Turns
> out not to be able to detect jpeglib.h on the system using configure.
>
> The root cause is a bug introduced in the upgrade of graphics/jpeg which
> incorrectly set #defines in a header file, causing compiler warnings and
> resulting in configure failing to correctly include jpeglib.h
>
> They've fixed it [0] and are targeting to reease it with 2.0.1 but I don't know
> when that'll happen. I'm backporting the fix to 2.0.0 so I can have a
> functional links+.
>
> I am not sure if I have to do something to force links+ to update since it's
> version didn't change. Is there a global way to do that or does each impacted
> downstream program need to be REVISON bumped?
>
> Tim.
>
> [0]
> https://github.com/libjpeg-turbo/libjpeg-turbo/commit/2260b66e1671038a362dca4a204c28d72b8f7e4e
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/jpeg/Makefile,v
> retrieving revision 1.60
> diff -u -p -r1.60 Makefile
> --- Makefile 1 Oct 2018 14:16:55 -0000 1.60
> +++ Makefile 3 Nov 2018 14:36:04 -0000
> @@ -5,6 +5,7 @@ COMMENT= SIMD-accelerated JPEG codec rep
> V= 2.0.0
> DISTNAME= jpeg-turbo-${V}
> PKGNAME= jpeg-${V}
> +REVISION= 0
> EPOCH= 0
>
> SHARED_LIBS+= jpeg 69.0 # 64.0
> Index: patches/patch-jconfig_h_in
> ===================================================================
> RCS file: patches/patch-jconfig_h_in
> diff -N patches/patch-jconfig_h_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-jconfig_h_in 3 Nov 2018 14:36:04 -0000
> @@ -0,0 +1,74 @@
> +$OpenBSD$
> +
> +Index: jconfig.h.in
> +--- jconfig.h.in.orig
> ++++ jconfig.h.in
> +@@ -10,16 +10,16 @@
> + #define LIBJPEG_TURBO_VERSION_NUMBER @LIBJPEG_TURBO_VERSION_NUMBER@
> +
> + /* Support arithmetic encoding */
> +-#cmakedefine C_ARITH_CODING_SUPPORTED
> ++#cmakedefine C_ARITH_CODING_SUPPORTED 1
> +
> + /* Support arithmetic decoding */
> +-#cmakedefine D_ARITH_CODING_SUPPORTED
> ++#cmakedefine D_ARITH_CODING_SUPPORTED 1
> +
> + /* Support in-memory source/destination managers */
> +-#cmakedefine MEM_SRCDST_SUPPORTED
> ++#cmakedefine MEM_SRCDST_SUPPORTED 1
> +
> + /* Use accelerated SIMD routines. */
> +-#cmakedefine WITH_SIMD
> ++#cmakedefine WITH_SIMD 1
> +
> + /*
> + * Define BITS_IN_JSAMPLE as either
> +@@ -33,37 +33,37 @@
> + #define BITS_IN_JSAMPLE @BITS_IN_JSAMPLE@ /* use 8 or 12 */
> +
> + /* Define to 1 if you have the <locale.h> header file. */
> +-#cmakedefine HAVE_LOCALE_H
> ++#cmakedefine HAVE_LOCALE_H 1
> +
> + /* Define to 1 if you have the <stddef.h> header file. */
> +-#cmakedefine HAVE_STDDEF_H
> ++#cmakedefine HAVE_STDDEF_H 1
> +
> + /* Define to 1 if you have the <stdlib.h> header file. */
> +-#cmakedefine HAVE_STDLIB_H
> ++#cmakedefine HAVE_STDLIB_H 1
> +
> + /* Define if you need to include <sys/types.h> to get size_t. */
> +-#cmakedefine NEED_SYS_TYPES_H
> ++#cmakedefine NEED_SYS_TYPES_H 1
> +
> + /* Define if you have BSD-like bzero and bcopy in <strings.h> rather than
> + memset/memcpy in <string.h>. */
> +-#cmakedefine NEED_BSD_STRINGS
> ++#cmakedefine NEED_BSD_STRINGS 1
> +
> + /* Define to 1 if the system has the type `unsigned char'. */
> +-#cmakedefine HAVE_UNSIGNED_CHAR
> ++#cmakedefine HAVE_UNSIGNED_CHAR 1
> +
> + /* Define to 1 if the system has the type `unsigned short'. */
> +-#cmakedefine HAVE_UNSIGNED_SHORT
> ++#cmakedefine HAVE_UNSIGNED_SHORT 1
> +
> + /* Compiler does not support pointers to undefined structures. */
> +-#cmakedefine INCOMPLETE_TYPES_BROKEN
> ++#cmakedefine INCOMPLETE_TYPES_BROKEN 1
> +
> + /* Define if your (broken) compiler shifts signed values as if they were
> + unsigned. */
> +-#cmakedefine RIGHT_SHIFT_IS_UNSIGNED
> ++#cmakedefine RIGHT_SHIFT_IS_UNSIGNED 1
> +
> + /* Define to 1 if type `char' is unsigned and you are not using gcc. */
> + #ifndef __CHAR_UNSIGNED__
> +- #cmakedefine __CHAR_UNSIGNED__
> ++ #cmakedefine __CHAR_UNSIGNED__ 1
> +

No comments:

Post a Comment