From 12a5caba49dbfe4b734f6c5172e791b861d2ed61 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sat, 22 Feb 2025 19:51:54 +0800 Subject: [PATCH 1/4] libjpeg: refactor --- pkgs/by-name/li/libjpeg_turbo/package.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/li/libjpeg_turbo/package.nix b/pkgs/by-name/li/libjpeg_turbo/package.nix index 26baf7f7ed5c..ad1a48a9e0b0 100644 --- a/pkgs/by-name/li/libjpeg_turbo/package.nix +++ b/pkgs/by-name/li/libjpeg_turbo/package.nix @@ -14,7 +14,6 @@ # for passthru.tests dvgrab, epeg, - freeimage, gd, graphicsmagick, imagemagick, @@ -31,14 +30,13 @@ assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both stdenv.mkDerivation (finalAttrs: { - pname = "libjpeg-turbo"; version = "3.0.4"; src = fetchFromGitHub { owner = "libjpeg-turbo"; repo = "libjpeg-turbo"; - rev = finalAttrs.version; + tag = finalAttrs.version; hash = "sha256-ZNqhOfZtWcMv10VWIUxn7MSy4KhW/jBrgC1tUFKczqs="; }; @@ -117,18 +115,18 @@ stdenv.mkDerivation (finalAttrs: { pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; }; - meta = with lib; { + meta = { homepage = "https://libjpeg-turbo.org/"; description = "Faster (using SIMD) libjpeg implementation"; - license = licenses.ijg; # and some parts under other BSD-style licenses + license = lib.licenses.ijg; # and some parts under other BSD-style licenses pkgConfigModules = [ "libjpeg" "libturbojpeg" ]; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ vcunat kamadorueda ]; - platforms = platforms.all; + platforms = lib.platforms.all; }; }) From b914dfff908efb1e48cb70a71fb945fdf4913d88 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sat, 22 Feb 2025 19:54:14 +0800 Subject: [PATCH 2/4] libjpeg: add update script --- pkgs/by-name/li/libjpeg_turbo/package.nix | 36 +++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/li/libjpeg_turbo/package.nix b/pkgs/by-name/li/libjpeg_turbo/package.nix index ad1a48a9e0b0..f78d2a3a9a70 100644 --- a/pkgs/by-name/li/libjpeg_turbo/package.nix +++ b/pkgs/by-name/li/libjpeg_turbo/package.nix @@ -25,6 +25,7 @@ python3, vips, testers, + nix-update-script, }: assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both @@ -97,22 +98,25 @@ stdenv.mkDerivation (finalAttrs: { doInstallCheck = true; installCheckTarget = "test"; - passthru.tests = { - inherit - dvgrab - epeg - gd - graphicsmagick - imagemagick - imlib2 - jhead - libjxl - mjpegtools - opencv - vips - ; - inherit (python3.pkgs) pillow imread pyturbojpeg; - pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + passthru = { + updateScript = nix-update-script { }; + tests = { + inherit + dvgrab + epeg + gd + graphicsmagick + imagemagick + imlib2 + jhead + libjxl + mjpegtools + opencv + vips + ; + inherit (python3.pkgs) pillow imread pyturbojpeg; + pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + }; }; meta = { From 78ca23098c5ff0adcafaff27174adf441eae4e78 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sat, 22 Feb 2025 20:24:31 +0800 Subject: [PATCH 3/4] libjpeg: 3.0.4 -> 3.1.0 --- ...le-transupp.c-as-part-of-the-library.patch | 37 ++++++------------- ...-exported-symbols-in-transupp.c-weak.patch | 30 +++++---------- .../li/libjpeg_turbo/mingw-boolean.patch | 11 +++--- pkgs/by-name/li/libjpeg_turbo/package.nix | 4 +- 4 files changed, 28 insertions(+), 54 deletions(-) diff --git a/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch b/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch index 552914a51cd5..a0450255a897 100644 --- a/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch +++ b/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch @@ -1,34 +1,21 @@ -From 6442d11617f95d13e2a371bd3e01f5082a9c356d Mon Sep 17 00:00:00 2001 -From: Las -Date: Sun, 3 Jan 2021 18:35:37 +0000 Subject: [PATCH] Compile transupp.c as part of the library - ---- - CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index adb0ca45..46fc16dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -581,7 +581,7 @@ set(JPEG_SOURCES ${JPEG12_SOURCES} jcapimin.c jchuff.c jcicc.c jcinit.c - jclhuff.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c jctrans.c - jdapimin.c jdatadst.c jdatasrc.c jdhuff.c jdicc.c jdinput.c jdlhuff.c - jdmarker.c jdmaster.c jdphuff.c jdtrans.c jerror.c jfdctflt.c jmemmgr.c -- jmemnobs.c jpeg_nbits.c) -+ jmemnobs.c jpeg_nbits.c transupp.c) +@@ -615,7 +615,7 @@ + src/jcparam.c src/jcphuff.c src/jctrans.c src/jdapimin.c src/jdatadst.c + src/jdatasrc.c src/jdhuff.c src/jdicc.c src/jdinput.c src/jdlhuff.c + src/jdmarker.c src/jdmaster.c src/jdphuff.c src/jdtrans.c src/jerror.c +- src/jfdctflt.c src/jmemmgr.c src/jmemnobs.c src/jpeg_nbits.c) ++ src/jfdctflt.c src/jmemmgr.c src/jmemnobs.c src/jpeg_nbits.c src/transupp.c) if(WITH_ARITH_ENC OR WITH_ARITH_DEC) - set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c) -@@ -1803,7 +1803,7 @@ install(EXPORT ${CMAKE_PROJECT_NAME}Targets - + set(JPEG_SOURCES ${JPEG_SOURCES} src/jaricom.c) +@@ -2066,7 +2066,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h - ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h -- ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h -+ ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h ${CMAKE_CURRENT_SOURCE_DIR}/transupp.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/jerror.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/jmorecfg.h +- ${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h ++ ${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h ${CMAKE_CURRENT_SOURCE_DIR}/src/transupp.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include) include(cmakescripts/BuildPackages.cmake) --- -2.43.0 - diff --git a/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch b/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch index fc23b776312a..6ec8d522f61e 100644 --- a/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch +++ b/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch @@ -1,19 +1,10 @@ -From 6442d11617f95d13e2a371bd3e01f5082a9c356d Mon Sep 17 00:00:00 2001 -From: Las -Date: Sun, 3 Jan 2021 18:35:37 +0000 Subject: [PATCH] Make exported symbols in transupp.c weak The exported symbols are made weak to not conflict with users of the library that already vendor this functionality. ---- - transupp.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/transupp.c b/transupp.c -index 34fbb371..c0ade5a9 100644 ---- a/transupp.c -+++ b/transupp.c -@@ -1388,7 +1388,7 @@ jt_read_integer(const char **strptr, JDIMENSION *result) +--- a/src/transupp.c ++++ b/src/transupp.c +@@ -1392,7 +1392,7 @@ * This code is loosely based on XParseGeometry from the X11 distribution. */ @@ -22,7 +13,7 @@ index 34fbb371..c0ade5a9 100644 jtransform_parse_crop_spec(jpeg_transform_info *info, const char *spec) { info->crop = FALSE; -@@ -1488,7 +1488,7 @@ trim_bottom_edge(jpeg_transform_info *info, JDIMENSION full_height) +@@ -1492,7 +1492,7 @@ * and transformation is not perfect. Otherwise returns TRUE. */ @@ -31,7 +22,7 @@ index 34fbb371..c0ade5a9 100644 jtransform_request_workspace(j_decompress_ptr srcinfo, jpeg_transform_info *info) { -@@ -2035,7 +2035,7 @@ adjust_exif_parameters(JOCTET *data, unsigned int length, JDIMENSION new_width, +@@ -2039,7 +2039,7 @@ * to jpeg_write_coefficients(). */ @@ -40,7 +31,7 @@ index 34fbb371..c0ade5a9 100644 jtransform_adjust_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, jvirt_barray_ptr *src_coef_arrays, jpeg_transform_info *info) -@@ -2154,7 +2154,7 @@ jtransform_adjust_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, +@@ -2158,7 +2158,7 @@ * Note that some transformations will modify the source data arrays! */ @@ -49,7 +40,7 @@ index 34fbb371..c0ade5a9 100644 jtransform_execute_transform(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, jvirt_barray_ptr *src_coef_arrays, jpeg_transform_info *info) -@@ -2266,7 +2266,7 @@ jtransform_execute_transform(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, +@@ -2270,7 +2270,7 @@ * (may use custom action then) */ @@ -58,7 +49,7 @@ index 34fbb371..c0ade5a9 100644 jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height, int MCU_width, int MCU_height, JXFORM_CODE transform) -@@ -2305,7 +2305,7 @@ jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height, +@@ -2309,7 +2309,7 @@ * This must be called before jpeg_read_header() to have the desired effect. */ @@ -67,7 +58,7 @@ index 34fbb371..c0ade5a9 100644 jcopy_markers_setup(j_decompress_ptr srcinfo, JCOPY_OPTION option) { #ifdef SAVE_MARKERS_SUPPORTED -@@ -2337,7 +2337,7 @@ jcopy_markers_setup(j_decompress_ptr srcinfo, JCOPY_OPTION option) +@@ -2342,7 +2342,7 @@ * JFIF APP0 or Adobe APP14 markers if selected. */ @@ -76,6 +67,3 @@ index 34fbb371..c0ade5a9 100644 jcopy_markers_execute(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, JCOPY_OPTION option) { --- -2.43.0 - diff --git a/pkgs/by-name/li/libjpeg_turbo/mingw-boolean.patch b/pkgs/by-name/li/libjpeg_turbo/mingw-boolean.patch index 9b9483d63987..e3e6abfc95cb 100644 --- a/pkgs/by-name/li/libjpeg_turbo/mingw-boolean.patch +++ b/pkgs/by-name/li/libjpeg_turbo/mingw-boolean.patch @@ -1,12 +1,11 @@ Ported to updated libjpeg-turbo from https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-libjpeg-turbo/jpeg-typedefs.patch ---- a/jmorecfg.h 2012-02-10 06:47:55 +0300 -+++ b/jmorecfg.h 2012-05-03 10:29:13 +0400 -@@ -224,7 +224,13 @@ - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. +--- a/src/jmorecfg.h ++++ b/src/jmorecfg.h +@@ -200,6 +200,13 @@ */ --#ifndef HAVE_BOOLEAN + #ifndef HAVE_BOOLEAN +#if defined(_WIN32) && !defined(HAVE_BOOLEAN) +#ifndef __RPCNDR_H__ +typedef unsigned char boolean; @@ -16,4 +15,4 @@ https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-libjpeg-turbo/jpeg +#if !defined(HAVE_BOOLEAN) && !defined(__RPCNDR_H__) typedef int boolean; #endif - #ifndef FALSE /* in case these macros already exist */ + #ifndef FALSE /* in case these macros already exist */ diff --git a/pkgs/by-name/li/libjpeg_turbo/package.nix b/pkgs/by-name/li/libjpeg_turbo/package.nix index f78d2a3a9a70..99163770b65c 100644 --- a/pkgs/by-name/li/libjpeg_turbo/package.nix +++ b/pkgs/by-name/li/libjpeg_turbo/package.nix @@ -32,13 +32,13 @@ assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both stdenv.mkDerivation (finalAttrs: { pname = "libjpeg-turbo"; - version = "3.0.4"; + version = "3.1.0"; src = fetchFromGitHub { owner = "libjpeg-turbo"; repo = "libjpeg-turbo"; tag = finalAttrs.version; - hash = "sha256-ZNqhOfZtWcMv10VWIUxn7MSy4KhW/jBrgC1tUFKczqs="; + hash = "sha256-ImDTMObirpw/SouCftlALJoWCbXsRc6bf4IFjYfWpUY="; }; patches = From 608422bd4ba434d02278602bc74c46d10bfde2ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 22 May 2025 10:14:40 +0200 Subject: [PATCH 4/4] libjpeg: drop freeimage support That package seems dead, and it just increases maintenance burden. --- ...le-transupp.c-as-part-of-the-library.patch | 21 ------ ...-exported-symbols-in-transupp.c-weak.patch | 69 ------------------- pkgs/by-name/li/libjpeg_turbo/package.nix | 14 +--- 3 files changed, 2 insertions(+), 102 deletions(-) delete mode 100644 pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch delete mode 100644 pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch diff --git a/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch b/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch deleted file mode 100644 index a0450255a897..000000000000 --- a/pkgs/by-name/li/libjpeg_turbo/0001-Compile-transupp.c-as-part-of-the-library.patch +++ /dev/null @@ -1,21 +0,0 @@ -Subject: [PATCH] Compile transupp.c as part of the library ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -615,7 +615,7 @@ - src/jcparam.c src/jcphuff.c src/jctrans.c src/jdapimin.c src/jdatadst.c - src/jdatasrc.c src/jdhuff.c src/jdicc.c src/jdinput.c src/jdlhuff.c - src/jdmarker.c src/jdmaster.c src/jdphuff.c src/jdtrans.c src/jerror.c -- src/jfdctflt.c src/jmemmgr.c src/jmemnobs.c src/jpeg_nbits.c) -+ src/jfdctflt.c src/jmemmgr.c src/jmemnobs.c src/jpeg_nbits.c src/transupp.c) - - if(WITH_ARITH_ENC OR WITH_ARITH_DEC) - set(JPEG_SOURCES ${JPEG_SOURCES} src/jaricom.c) -@@ -2066,7 +2066,7 @@ - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/jerror.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/jmorecfg.h -- ${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h -+ ${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h ${CMAKE_CURRENT_SOURCE_DIR}/src/transupp.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include) - - include(cmakescripts/BuildPackages.cmake) diff --git a/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch b/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch deleted file mode 100644 index 6ec8d522f61e..000000000000 --- a/pkgs/by-name/li/libjpeg_turbo/0002-Make-exported-symbols-in-transupp.c-weak.patch +++ /dev/null @@ -1,69 +0,0 @@ -Subject: [PATCH] Make exported symbols in transupp.c weak - -The exported symbols are made weak to not conflict with users -of the library that already vendor this functionality. ---- a/src/transupp.c -+++ b/src/transupp.c -@@ -1392,7 +1392,7 @@ - * This code is loosely based on XParseGeometry from the X11 distribution. - */ - --GLOBAL(boolean) -+GLOBAL(boolean) __attribute__((weak)) - jtransform_parse_crop_spec(jpeg_transform_info *info, const char *spec) - { - info->crop = FALSE; -@@ -1492,7 +1492,7 @@ - * and transformation is not perfect. Otherwise returns TRUE. - */ - --GLOBAL(boolean) -+GLOBAL(boolean) __attribute__((weak)) - jtransform_request_workspace(j_decompress_ptr srcinfo, - jpeg_transform_info *info) - { -@@ -2039,7 +2039,7 @@ - * to jpeg_write_coefficients(). - */ - --GLOBAL(jvirt_barray_ptr *) -+GLOBAL(jvirt_barray_ptr *) __attribute__((weak)) - jtransform_adjust_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info) -@@ -2158,7 +2158,7 @@ - * Note that some transformations will modify the source data arrays! - */ - --GLOBAL(void) -+GLOBAL(void) __attribute__((weak)) - jtransform_execute_transform(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info) -@@ -2270,7 +2270,7 @@ - * (may use custom action then) - */ - --GLOBAL(boolean) -+GLOBAL(boolean) __attribute__((weak)) - jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height, - int MCU_width, int MCU_height, - JXFORM_CODE transform) -@@ -2309,7 +2309,7 @@ - * This must be called before jpeg_read_header() to have the desired effect. - */ - --GLOBAL(void) -+GLOBAL(void) __attribute__((weak)) - jcopy_markers_setup(j_decompress_ptr srcinfo, JCOPY_OPTION option) - { - #ifdef SAVE_MARKERS_SUPPORTED -@@ -2342,7 +2342,7 @@ - * JFIF APP0 or Adobe APP14 markers if selected. - */ - --GLOBAL(void) -+GLOBAL(void) __attribute__((weak)) - jcopy_markers_execute(j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JCOPY_OPTION option) - { diff --git a/pkgs/by-name/li/libjpeg_turbo/package.nix b/pkgs/by-name/li/libjpeg_turbo/package.nix index 99163770b65c..e56bbdb07383 100644 --- a/pkgs/by-name/li/libjpeg_turbo/package.nix +++ b/pkgs/by-name/li/libjpeg_turbo/package.nix @@ -42,13 +42,7 @@ stdenv.mkDerivation (finalAttrs: { }; patches = - [ - # This is needed by freeimage - ./0001-Compile-transupp.c-as-part-of-the-library.patch - ] - ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ - ./0002-Make-exported-symbols-in-transupp.c-weak.patch - ] + [ ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ ./mingw-boolean.patch ]; @@ -56,16 +50,11 @@ stdenv.mkDerivation (finalAttrs: { outputs = [ "bin" "dev" - "dev_private" "out" "man" "doc" ]; - postFixup = '' - moveToOutput include/transupp.h $dev_private - ''; - nativeBuildInputs = [ cmake @@ -100,6 +89,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = nix-update-script { }; + dev_private = throw "not supported anymore"; tests = { inherit dvgrab