diff --git a/pkgs/by-name/im/imageworsener/package.nix b/pkgs/by-name/im/imageworsener/package.nix new file mode 100644 index 000000000000..7c108002c217 --- /dev/null +++ b/pkgs/by-name/im/imageworsener/package.nix @@ -0,0 +1,86 @@ +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch2, + autoreconfHook, + zlib, + libpng, + libjpeg, + libwebp, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "imageworsener"; + version = "1.3.5"; + + src = fetchFromGitHub { + owner = "jsummers"; + 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 = '' + mkdir -p $out/share/doc/imageworsener + cp readme.txt technical.txt $out/share/doc/imageworsener + ''; + + nativeBuildInputs = [ autoreconfHook ]; + + buildInputs = [ + zlib + libpng + libjpeg + libwebp + ]; + + strictDeps = true; + + doCheck = true; + + enableParallelBuilding = true; + + __structuredAttrs = true; + + passthru.updateScript = nix-update-script { }; + + 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 = "${finalAttrs.src.meta.homepage}/blob/${finalAttrs.src.rev}/changelog.txt"; + sourceProvenance = [ lib.sourceTypes.fromSource ]; + license = lib.licenses.mit; + maintainers = [ + lib.maintainers.emily + lib.maintainers.smitop + ]; + mainProgram = "imagew"; + platforms = lib.platforms.all; + }; +}) diff --git a/pkgs/tools/graphics/imageworsener/default.nix b/pkgs/tools/graphics/imageworsener/default.nix deleted file mode 100644 index bf4c4f7a9c91..000000000000 --- a/pkgs/tools/graphics/imageworsener/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv -, fetchurl -, zlib -, libpng -, libjpeg -, libwebp -}: - -stdenv.mkDerivation rec { - pname = "imageworsener"; - version = "1.3.5"; - - src = fetchurl { - url = "https://entropymine.com/${pname}/${pname}-${version}.tar.gz"; - sha256 = "sha256-p/u2XFreZ9nrwy5SxYmIpPmGuswAjJAh/ja1mEZtXI0="; - }; - - postPatch = '' - patchShebangs tests/runtest - ''; - - postInstall = '' - mkdir -p $out/share/doc/imageworsener - cp readme.txt technical.txt $out/share/doc/imageworsener - ''; - - buildInputs = [ zlib libpng libjpeg libwebp ]; - - doCheck = true; - - enableParallelBuilding = true; - - meta = with lib; { - 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 ]; - mainProgram = "imagew"; - platforms = platforms.all; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 66425ef230a9..bca72068589a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3843,8 +3843,6 @@ with pkgs; imagelol = callPackage ../tools/compression/imagelol { }; - imageworsener = callPackage ../tools/graphics/imageworsener { }; - imgpatchtools = callPackage ../development/mobile/imgpatchtools { }; imgcrypt = callPackage ../applications/virtualization/imgcrypt { };