From 82ab3a870f042dc86df8106b4ec63f42e5ab2be6 Mon Sep 17 00:00:00 2001 From: Emily Date: Sat, 6 Jul 2024 11:29:14 +0100 Subject: [PATCH 1/6] imageworsener: move to `pkgs/by-name` --- .../default.nix => by-name/im/imageworsener/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{tools/graphics/imageworsener/default.nix => by-name/im/imageworsener/package.nix} (100%) diff --git a/pkgs/tools/graphics/imageworsener/default.nix b/pkgs/by-name/im/imageworsener/package.nix similarity index 100% rename from pkgs/tools/graphics/imageworsener/default.nix rename to pkgs/by-name/im/imageworsener/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f9e889de1649..33d1e39013f3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3850,8 +3850,6 @@ with pkgs; imagelol = callPackage ../tools/compression/imagelol { }; - imageworsener = callPackage ../tools/graphics/imageworsener { }; - imgpatchtools = callPackage ../development/mobile/imgpatchtools { }; imgcrypt = callPackage ../applications/virtualization/imgcrypt { }; From a023d4dff6a60cb4bae2053917c5c7d1c0f59b74 Mon Sep 17 00:00:00 2001 From: Emily Date: Sat, 6 Jul 2024 11:28:59 +0100 Subject: [PATCH 2/6] imageworsener: format with `nixfmt-rfc-style` --- pkgs/by-name/im/imageworsener/package.nix | 26 ++++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/im/imageworsener/package.nix b/pkgs/by-name/im/imageworsener/package.nix index bf4c4f7a9c91..ab203ea62ea9 100644 --- a/pkgs/by-name/im/imageworsener/package.nix +++ b/pkgs/by-name/im/imageworsener/package.nix @@ -1,9 +1,11 @@ -{ lib, stdenv -, fetchurl -, zlib -, libpng -, libjpeg -, libwebp +{ + lib, + stdenv, + fetchurl, + zlib, + libpng, + libjpeg, + libwebp, }: stdenv.mkDerivation rec { @@ -24,7 +26,12 @@ stdenv.mkDerivation rec { cp readme.txt technical.txt $out/share/doc/imageworsener ''; - buildInputs = [ zlib libpng libjpeg libwebp ]; + buildInputs = [ + zlib + libpng + libjpeg + libwebp + ]; doCheck = true; @@ -35,7 +42,10 @@ stdenv.mkDerivation rec { homepage = "https://entropymine.com/imageworsener/"; changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt"; license = licenses.mit; - maintainers = with maintainers; [ emily smitop ]; + maintainers = with maintainers; [ + emily + smitop + ]; mainProgram = "imagew"; platforms = platforms.all; }; From 02083c79cfa2a85491f2b5bf38793a023753591b Mon Sep 17 00:00:00 2001 From: Emily Date: Sat, 6 Jul 2024 11:31:08 +0100 Subject: [PATCH 3/6] imageworsener: modernize --- pkgs/by-name/im/imageworsener/package.nix | 24 +++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/im/imageworsener/package.nix b/pkgs/by-name/im/imageworsener/package.nix index ab203ea62ea9..81758fe73438 100644 --- a/pkgs/by-name/im/imageworsener/package.nix +++ b/pkgs/by-name/im/imageworsener/package.nix @@ -8,12 +8,12 @@ libwebp, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "imageworsener"; version = "1.3.5"; src = fetchurl { - url = "https://entropymine.com/${pname}/${pname}-${version}.tar.gz"; + url = "https://entropymine.com/${finalAttrs.pname}/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; sha256 = "sha256-p/u2XFreZ9nrwy5SxYmIpPmGuswAjJAh/ja1mEZtXI0="; }; @@ -33,20 +33,24 @@ stdenv.mkDerivation rec { libwebp ]; + strictDeps = true; + doCheck = true; enableParallelBuilding = true; - meta = with lib; { + __structuredAttrs = true; + + meta = { description = "Raster image scaling and processing utility"; homepage = "https://entropymine.com/imageworsener/"; - changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt"; - license = licenses.mit; - maintainers = with maintainers; [ - emily - smitop + changelog = "https://github.com/jsummers/${finalAttrs.pname}/blob/${finalAttrs.version}/changelog.txt"; + license = lib.licenses.mit; + maintainers = [ + lib.maintainers.emily + lib.maintainers.smitop ]; mainProgram = "imagew"; - platforms = platforms.all; + platforms = lib.platforms.all; }; -} +}) From fdb840f002c1d524b80464b8ced6f779e8918aee Mon Sep 17 00:00:00 2001 From: Emily Date: Sat, 6 Jul 2024 11:31:08 +0100 Subject: [PATCH 4/6] imageworsener: add `longDescription` --- pkgs/by-name/im/imageworsener/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/im/imageworsener/package.nix b/pkgs/by-name/im/imageworsener/package.nix index 81758fe73438..78fb80a70e4d 100644 --- a/pkgs/by-name/im/imageworsener/package.nix +++ b/pkgs/by-name/im/imageworsener/package.nix @@ -43,6 +43,13 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Raster image scaling and processing utility"; + longDescription = '' + ImageWorsener is a cross-platform command-line utility and library for + image scaling and other image processing. It has full support for PNG, + JPEG, BMP formats, experimental support for WebP, read-only support for + GIF, and limited support for some other image formats. It’s not as + fast or memory-efficient as some utilities, but it’s very accurate. + ''; homepage = "https://entropymine.com/imageworsener/"; changelog = "https://github.com/jsummers/${finalAttrs.pname}/blob/${finalAttrs.version}/changelog.txt"; license = lib.licenses.mit; From db313ef39f4e90f50a9d66b0211c78248267ab5c Mon Sep 17 00:00:00 2001 From: Emily Date: Sat, 6 Jul 2024 11:31:08 +0100 Subject: [PATCH 5/6] imageworsener: fetch source from GitHub --- pkgs/by-name/im/imageworsener/package.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/im/imageworsener/package.nix b/pkgs/by-name/im/imageworsener/package.nix index 78fb80a70e4d..dc20823ec73f 100644 --- a/pkgs/by-name/im/imageworsener/package.nix +++ b/pkgs/by-name/im/imageworsener/package.nix @@ -1,20 +1,24 @@ { lib, stdenv, - fetchurl, + fetchFromGitHub, + autoreconfHook, zlib, libpng, libjpeg, libwebp, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "imageworsener"; version = "1.3.5"; - src = fetchurl { - url = "https://entropymine.com/${finalAttrs.pname}/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-p/u2XFreZ9nrwy5SxYmIpPmGuswAjJAh/ja1mEZtXI0="; + src = fetchFromGitHub { + owner = "jsummers"; + repo = finalAttrs.pname; + rev = finalAttrs.version; + hash = "sha256-1f5x8Ph994Kkjo38NudXL+UF0fpR8BmZfaGPxc8RENU="; }; postPatch = '' @@ -26,6 +30,8 @@ stdenv.mkDerivation (finalAttrs: { cp readme.txt technical.txt $out/share/doc/imageworsener ''; + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ zlib libpng @@ -41,6 +47,8 @@ stdenv.mkDerivation (finalAttrs: { __structuredAttrs = true; + passthru.updateScript = nix-update-script { }; + meta = { description = "Raster image scaling and processing utility"; longDescription = '' @@ -51,7 +59,8 @@ stdenv.mkDerivation (finalAttrs: { fast or memory-efficient as some utilities, but it’s very accurate. ''; homepage = "https://entropymine.com/imageworsener/"; - changelog = "https://github.com/jsummers/${finalAttrs.pname}/blob/${finalAttrs.version}/changelog.txt"; + changelog = "${finalAttrs.src.meta.homepage}/blob/${finalAttrs.src.rev}/changelog.txt"; + sourceProvenance = [ lib.sourceTypes.fromSource ]; license = lib.licenses.mit; maintainers = [ lib.maintainers.emily From 8e484a4cd100b11b5968d4ff335b55237a9b69f5 Mon Sep 17 00:00:00 2001 From: Emily Date: Sat, 6 Jul 2024 20:10:49 +0100 Subject: [PATCH 6/6] imageworsener: fix tests --- pkgs/by-name/im/imageworsener/package.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/im/imageworsener/package.nix b/pkgs/by-name/im/imageworsener/package.nix index dc20823ec73f..7c108002c217 100644 --- a/pkgs/by-name/im/imageworsener/package.nix +++ b/pkgs/by-name/im/imageworsener/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch2, autoreconfHook, zlib, libpng, @@ -16,13 +17,26 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "jsummers"; - repo = finalAttrs.pname; + repo = "imageworsener"; rev = finalAttrs.version; hash = "sha256-1f5x8Ph994Kkjo38NudXL+UF0fpR8BmZfaGPxc8RENU="; }; + patches = [ + # Fix tests not failing even when they should. + # https://github.com/jsummers/imageworsener/pull/46 + (fetchpatch2 { + url = "https://github.com/jsummers/imageworsener/commit/91c7c79d86f55920193d17a7b87631b14ac7779f.patch?full_index=1"; + hash = "sha256-8vxht0FiQFOdglwaO0ZQpg5BNYXXHROkznZ+Caxm/v0="; + }) + ]; + postPatch = '' patchShebangs tests/runtest + + # JPEG tests fail due to libjpeg-turbo differences. + sed -i '/\.jpg/d' tests/runtest + rm tests/expected/*.jpg ''; postInstall = ''