From edaab670f8eaa9561504df5963974511e8d93148 Mon Sep 17 00:00:00 2001 From: toonn Date: Wed, 12 Jun 2024 14:09:33 +0200 Subject: [PATCH 1/6] libdevil: 1.7.8 -> 1.8.0 --- pkgs/development/libraries/libdevil/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix index ea030e9c6359..d16b38e1c612 100644 --- a/pkgs/development/libraries/libdevil/default.nix +++ b/pkgs/development/libraries/libdevil/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchurl +, cmake , libjpeg , libpng , libmng @@ -18,16 +19,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "libdevil"; - version = "1.7.8"; + version = "1.8.0"; outputs = [ "out" "dev" ]; src = fetchurl { url = "mirror://sourceforge/openil/DevIL-${finalAttrs.version}.tar.gz"; - sha256 = "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8"; + hash = "sha256-AHWXPufdifBQeHPiWArHgzZFLSnTSgcTSyCPROL+twk="; }; - nativeBuildInputs = [ pkg-config ]; + sourceRoot = "DevIL/DevIL"; + + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr ] ++ lib.optionals withXorg [ libX11 libGL ] From 34165eab42e211bbbbce30169fd7fa084472d28b Mon Sep 17 00:00:00 2001 From: toonn Date: Wed, 12 Jun 2024 14:10:09 +0200 Subject: [PATCH 2/6] libdevil: Drop redundant `sed`s Drop several sed commands, std=gnu99 is no longer passed, there's no file passing AM_FLAGS and there's no RESTRICT_KEYWORD to delete. --- pkgs/development/libraries/libdevil/default.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix index d16b38e1c612..ffe79e2b816a 100644 --- a/pkgs/development/libraries/libdevil/default.nix +++ b/pkgs/development/libraries/libdevil/default.nix @@ -41,14 +41,7 @@ stdenv.mkDerivation (finalAttrs: { CXXFLAGS = lib.optionalString stdenv.cc.isClang "-Wno-register"; preConfigure = '' - sed -i 's, -std=gnu99,,g' configure sed -i 's,malloc.h,stdlib.h,g' src-ILU/ilur/ilur.c - '' + lib.optionalString stdenv.cc.isClang '' - sed -i 's/libIL_la_CXXFLAGS = $(AM_CFLAGS)/libIL_la_CXXFLAGS =/g' lib/Makefile.in - ''; - - postConfigure = '' - sed -i '/RESTRICT_KEYWORD/d' include/IL/config.h ''; patches = [ From eb510a1bde539c44071b7987185cc4762ebe01f6 Mon Sep 17 00:00:00 2001 From: toonn Date: Wed, 12 Jun 2024 14:11:20 +0200 Subject: [PATCH 3/6] libdevil: Drop CVE patch Drop 03_CVE-2009-3994.diff patch, it has been merged upstream. --- pkgs/development/libraries/libdevil/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix index ffe79e2b816a..94b4813e12eb 100644 --- a/pkgs/development/libraries/libdevil/default.nix +++ b/pkgs/development/libraries/libdevil/default.nix @@ -45,10 +45,6 @@ stdenv.mkDerivation (finalAttrs: { ''; patches = [ - (fetchurl { - url = "https://sources.debian.org/data/main/d/devil/1.7.8-10/debian/patches/03_CVE-2009-3994.diff"; - sha256 = "0qkx2qfv02igbrmsn6z5a3lbrbwjfh3rb0c2sj54wy0j1f775hbc"; - }) ./ftbfs-libpng15.patch ./il_endian.h.patch ]; From 02c395d446313096ebcd49687f1246e730534737 Mon Sep 17 00:00:00 2001 From: toonn Date: Wed, 12 Jun 2024 14:12:10 +0200 Subject: [PATCH 4/6] libdevil: Drop libpng 1.5 patch Drop ftbfs-libpng15.patch, upstream has incorporated the change without branching on the version of libpng but the default version in NixPkgs is 1.6.43 so should be fine. --- .../libraries/libdevil/default.nix | 1 - .../libraries/libdevil/ftbfs-libpng15.patch | 31 ------------------- 2 files changed, 32 deletions(-) delete mode 100644 pkgs/development/libraries/libdevil/ftbfs-libpng15.patch diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix index 94b4813e12eb..c453a1a871eb 100644 --- a/pkgs/development/libraries/libdevil/default.nix +++ b/pkgs/development/libraries/libdevil/default.nix @@ -45,7 +45,6 @@ stdenv.mkDerivation (finalAttrs: { ''; patches = [ - ./ftbfs-libpng15.patch ./il_endian.h.patch ]; diff --git a/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch b/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch deleted file mode 100644 index 5fc53c2dc6a7..000000000000 --- a/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch +++ /dev/null @@ -1,31 +0,0 @@ -Source: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649554 ---- devil-1.7.8.orig/src-IL/src/il_icon.c -+++ devil-1.7.8/src-IL/src/il_icon.c -@@ -525,7 +525,11 @@ - - // Expand low-bit-depth grayscale images to 8 bits - if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { -+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 -+ png_set_expand_gray_1_2_4_to_8(ico_png_ptr); -+#else - png_set_gray_1_2_4_to_8(ico_png_ptr); -+#endif - } - - // Expand RGB images with transparency to full alpha channels -only in patch2: -unchanged: ---- devil-1.7.8.orig/src-IL/src/il_png.c -+++ devil-1.7.8/src-IL/src/il_png.c -@@ -278,7 +278,11 @@ - - // Expand low-bit-depth grayscale images to 8 bits - if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { -+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 -+ png_set_expand_gray_1_2_4_to_8(png_ptr); -+#else - png_set_gray_1_2_4_to_8(png_ptr); -+#endif - } - - // Expand RGB images with transparency to full alpha channels From f353aa412be818264e32e56432df511b940ef39b Mon Sep 17 00:00:00 2001 From: toonn Date: Wed, 12 Jun 2024 14:13:10 +0200 Subject: [PATCH 5/6] libdevil: Update endianness handling patch The patch no longer applied but MacPorts includes it for libdevil 1.7.8 so it seems valuable. Though __ORDER_BIG_ENDIAN__ and __BYTE_ORDER__ are apparently not the right way to check for endiannes on MSVC, https://reviews.llvm.org/D109108, which means this might break things for Windows. Since Windows is not yet supported in NixPkgs and MacPorts deems the patch relevant for macOS, I've updated it to apply to the newer header. --- ...0001-il_endian.h-Fix-endian-handling.patch | 35 +++++++++++++++++++ .../libraries/libdevil/default.nix | 2 +- .../libraries/libdevil/il_endian.h.patch | 27 -------------- 3 files changed, 36 insertions(+), 28 deletions(-) create mode 100644 pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch delete mode 100644 pkgs/development/libraries/libdevil/il_endian.h.patch diff --git a/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch b/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch new file mode 100644 index 000000000000..a1826354f88b --- /dev/null +++ b/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch @@ -0,0 +1,35 @@ +From 85ca659a59ae5be6fc0824b0684967ec94727e2a Mon Sep 17 00:00:00 2001 +From: toonn +Date: Wed, 12 Jun 2024 11:39:35 +0000 +Subject: [PATCH] il_endian.h: Fix endian handling + +Based on https://sourceforge.net/p/resil/tickets/8/, which has also been +incorporated in the MacPort for libdevil 1.7.8, +https://trac.macports.org/export/154482/trunk/dports/devel/libdevil/files/patch-src-IL-include-il_endian.h.diff, +but updated for the header included in release 1.8.0 of libdevil. +--- + src-IL/include/il_endian.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src-IL/include/il_endian.h b/src-IL/include/il_endian.h +index c4e6d86..a3cd57f 100644 +--- a/src-IL/include/il_endian.h ++++ b/src-IL/include/il_endian.h +@@ -23,9 +23,13 @@ extern "C" { + #ifndef __BIG_ENDIAN__ + #define __BIG_ENDIAN__ 1 + #endif ++#else ++#ifndef __LITTLE_ENDIAN__ ++#define __LITTLE_ENDIAN__ 1 ++#endif + #endif + +-#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __BIG_ENDIAN__) \ ++#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \ + || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) + #undef __LITTLE_ENDIAN__ + #define Short(s) iSwapShort(s) +-- +2.44.0 + diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix index c453a1a871eb..2e3af6cbc471 100644 --- a/pkgs/development/libraries/libdevil/default.nix +++ b/pkgs/development/libraries/libdevil/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { ''; patches = [ - ./il_endian.h.patch + ./0001-il_endian.h-Fix-endian-handling.patch ]; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/libdevil/il_endian.h.patch b/pkgs/development/libraries/libdevil/il_endian.h.patch deleted file mode 100644 index c220e6802fd9..000000000000 --- a/pkgs/development/libraries/libdevil/il_endian.h.patch +++ /dev/null @@ -1,27 +0,0 @@ -Source: http://sourceforge.net/p/resil/tickets/8/ ---- devil-1.7.8.orig/src-IL/include/il_endian.h.orig 2009-03-08 01:10:08.000000000 -0600 -+++ devil-1.7.8/src-IL/include/il_endian.h 2013-11-03 01:52:37.000000000 -0600 -@@ -19,9 +19,13 @@ - #ifndef __BIG_ENDIAN__ - #define __BIG_ENDIAN__ 1 - #endif -+#else -+ #ifndef __LITTLE_ENDIAN__ -+ #define __LITTLE_ENDIAN__ 1 -+ #endif - #endif - --#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __BIG_ENDIAN__) \ -+#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \ - || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) - #undef __LITTLE_ENDIAN__ - #define Short(s) iSwapShort(s) -@@ -39,8 +43,6 @@ - #define BigDouble(d) - #else - #undef __BIG_ENDIAN__ -- #undef __LITTLE_ENDIAN__ // Not sure if it's defined by any compiler... -- #define __LITTLE_ENDIAN__ - #define Short(s) - #define UShort(s) - #define Int(i) From adf72c84ce42d3ba1d18140f676d6b1b6ec92ead Mon Sep 17 00:00:00 2001 From: toonn Date: Wed, 12 Jun 2024 14:17:05 +0200 Subject: [PATCH 6/6] libdevil: Retarget substitute command `test/Makefile.in` is not included but we can apply the same substitute to `test/Makefile.am`. --- pkgs/development/libraries/libdevil/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix index 2e3af6cbc471..63ca4877da65 100644 --- a/pkgs/development/libraries/libdevil/default.nix +++ b/pkgs/development/libraries/libdevil/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; postPatch = '' - for a in test/Makefile.in test/format_test/format_checks.sh.in ; do + for a in test/Makefile.am test/format_test/format_checks.sh.in ; do substituteInPlace $a \ --replace /bin/bash ${runtimeShell} done