From 7ef4cb60320de3fc1b78b42189f557c2d0fe017a Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Sat, 26 Oct 2024 20:11:52 +0200 Subject: [PATCH 1/3] vips: migrate to pkgs/by-name, format with nixfmt-rfc-style --- pkgs/by-name/vi/vips/package.nix | 169 +++++++++++++++++++++++++++ pkgs/tools/graphics/vips/default.nix | 139 ---------------------- pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 170 insertions(+), 140 deletions(-) create mode 100644 pkgs/by-name/vi/vips/package.nix delete mode 100644 pkgs/tools/graphics/vips/default.nix diff --git a/pkgs/by-name/vi/vips/package.nix b/pkgs/by-name/vi/vips/package.nix new file mode 100644 index 000000000000..c179ca22ff92 --- /dev/null +++ b/pkgs/by-name/vi/vips/package.nix @@ -0,0 +1,169 @@ +{ + lib, + stdenv, + fetchFromGitHub, + + # Native build inputs + docbook-xsl-nons, + gobject-introspection, + gtk-doc, + meson, + ninja, + pkg-config, + + # Build inputs + ApplicationServices, + expat, + Foundation, + glib, + libxml2, + python3, + + # Optional dependencies + cfitsio, + cgif, + fftw, + imagemagick, + lcms2, + libarchive, + libexif, + libheif, + libhwy, + libimagequant, + libjpeg, + libjxl, + librsvg, + libspng, + libtiff, + libwebp, + matio, + openexr, + openjpeg, + openslide, + pango, + poppler, + + # passthru + testers, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "vips"; + version = "8.15.3"; + + outputs = [ + "bin" + "out" + "man" + "dev" + ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ "devdoc" ]; + + src = fetchFromGitHub { + owner = "libvips"; + repo = "libvips"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-VQtHHitEpxv63wC41TtRWLLCKHDAK7fbrS+cByeWxT0="; + # Remove unicode file names which leads to different checksums on HFS+ + # vs. other filesystems because of unicode normalisation. + postFetch = '' + rm -r $out/test/test-suite/images/ + ''; + }; + + nativeBuildInputs = + [ + docbook-xsl-nons + gobject-introspection + meson + ninja + pkg-config + ] + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + gtk-doc + ]; + + buildInputs = + [ + glib + libxml2 + expat + (python3.withPackages (p: [ p.pycairo ])) + + # Optional dependencies + cfitsio + cgif + fftw + imagemagick + lcms2 + libarchive + libexif + libheif + libhwy + libimagequant + libjpeg + libjxl + librsvg + libspng + libtiff + libwebp + matio + openexr + openjpeg + openslide + pango + poppler + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + ApplicationServices + Foundation + ]; + + # Required by .pc file + propagatedBuildInputs = [ + glib + ]; + + mesonFlags = + [ + (lib.mesonEnable "pdfium" false) + (lib.mesonEnable "nifti" false) + ] + ++ lib.optional (!stdenv.hostPlatform.isDarwin) (lib.mesonBool "gtk_doc" true) + ++ lib.optional (imagemagick == null) (lib.mesonEnable "magick" false); + + passthru = { + tests = { + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + }; + version = testers.testVersion { + package = finalAttrs.finalPackage; + command = "vips --version"; + }; + }; + updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "v([0-9.]+)" + ]; + }; + }; + + meta = with lib; { + changelog = "https://github.com/libvips/libvips/blob/${finalAttrs.src.rev}/ChangeLog"; + homepage = "https://www.libvips.org/"; + description = "Image processing system for large images"; + license = licenses.lgpl2Plus; + maintainers = with maintainers; [ + kovirobi + anthonyroussel + ]; + pkgConfigModules = [ + "vips" + "vips-cpp" + ]; + platforms = platforms.unix; + mainProgram = "vips"; + }; +}) diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix deleted file mode 100644 index c8f41167f865..000000000000 --- a/pkgs/tools/graphics/vips/default.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ lib -, stdenv -, pkg-config -, glib -, libxml2 -, expat -, ApplicationServices -, Foundation -, python3 -, fetchFromGitHub -, meson -, ninja -, gtk-doc -, docbook-xsl-nons -, gobject-introspection - # Optional dependencies -, libjpeg -, libexif -, librsvg -, poppler -, libtiff -, fftw -, lcms2 -, libspng -, libimagequant -, imagemagick -, pango -, matio -, cfitsio -, libwebp -, openexr -, openjpeg -, libjxl -, openslide -, libheif -, cgif -, libarchive -, libhwy -, testers -, nix-update-script -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "vips"; - version = "8.15.3"; - - outputs = [ "bin" "out" "man" "dev" ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ "devdoc" ]; - - src = fetchFromGitHub { - owner = "libvips"; - repo = "libvips"; - rev = "refs/tags/v${finalAttrs.version}"; - hash = "sha256-VQtHHitEpxv63wC41TtRWLLCKHDAK7fbrS+cByeWxT0="; - # Remove unicode file names which leads to different checksums on HFS+ - # vs. other filesystems because of unicode normalisation. - postFetch = '' - rm -r $out/test/test-suite/images/ - ''; - }; - - nativeBuildInputs = [ - pkg-config - meson - ninja - docbook-xsl-nons - gobject-introspection - ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ - gtk-doc - ]; - - buildInputs = [ - glib - libxml2 - expat - (python3.withPackages (p: [ p.pycairo ])) - # Optional dependencies - libjpeg - libexif - librsvg - poppler - libtiff - fftw - lcms2 - libspng - libimagequant - imagemagick - pango - matio - cfitsio - libwebp - openexr - openjpeg - libjxl - openslide - libheif - cgif - libarchive - libhwy - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ ApplicationServices Foundation ]; - - # Required by .pc file - propagatedBuildInputs = [ - glib - ]; - - mesonFlags = [ - "-Dpdfium=disabled" - "-Dnifti=disabled" - ] - ++ lib.optional (!stdenv.hostPlatform.isDarwin) "-Dgtk_doc=true" - ++ lib.optional (imagemagick == null) "-Dmagick=disabled" - ; - - passthru = { - tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; - version = testers.testVersion { - package = finalAttrs.finalPackage; - command = "vips --version"; - }; - }; - updateScript = nix-update-script { - extraArgs = [ "--version-regex" "v([0-9.]+)" ]; - }; - }; - - meta = with lib; { - changelog = "https://github.com/libvips/libvips/blob/${finalAttrs.src.rev}/ChangeLog"; - homepage = "https://www.libvips.org/"; - description = "Image processing system for large images"; - license = licenses.lgpl2Plus; - maintainers = with maintainers; [ kovirobi anthonyroussel ]; - pkgConfigModules = [ "vips" "vips-cpp" ]; - platforms = platforms.unix; - mainProgram = "vips"; - }; -}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 65d48fc5f467..c7ddbcaeb5b7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37901,7 +37901,7 @@ with pkgs; vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { }; vimb = wrapFirefox vimb-unwrapped { }; - vips = callPackage ../tools/graphics/vips { + vips = callPackage ../by-name/vi/vips/package.nix { inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; }; From 60f3c0325f247a6b776efe9de3c260b5fe339ec3 Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Sat, 26 Oct 2024 20:24:23 +0200 Subject: [PATCH 2/3] vips: 8.15.3 -> 8.15.5 https://github.com/libvips/libvips/compare/v8.15.3...v8.15.5 --- pkgs/by-name/vi/vips/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vi/vips/package.nix b/pkgs/by-name/vi/vips/package.nix index c179ca22ff92..ca866f148441 100644 --- a/pkgs/by-name/vi/vips/package.nix +++ b/pkgs/by-name/vi/vips/package.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "vips"; - version = "8.15.3"; + version = "8.15.5"; outputs = [ "bin" @@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "libvips"; repo = "libvips"; rev = "refs/tags/v${finalAttrs.version}"; - hash = "sha256-VQtHHitEpxv63wC41TtRWLLCKHDAK7fbrS+cByeWxT0="; + hash = "sha256-Lwe4lu3kS1WxgbM0eRfrMf/UIpDebvooHKvyVv7lq24="; # Remove unicode file names which leads to different checksums on HFS+ # vs. other filesystems because of unicode normalisation. postFetch = '' From cf5ffc828c279fe434ee6531773f36c1e21437ef Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Sat, 26 Oct 2024 20:31:25 +0200 Subject: [PATCH 3/3] python312Packages.pyvips: 2.2.1 -> 2.2.3 https://github.com/libvips/pyvips/compare/v2.2.1...v2.2.3 --- .../python-modules/pyvips/default.nix | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/pyvips/default.nix b/pkgs/development/python-modules/pyvips/default.nix index 7fc07f20a61a..8a428bce2e09 100644 --- a/pkgs/development/python-modules/pyvips/default.nix +++ b/pkgs/development/python-modules/pyvips/default.nix @@ -1,33 +1,33 @@ { + lib, stdenv, buildPythonPackage, - pythonOlder, - fetchFromGitHub, - pytestCheckHook, - glib, - vips, cffi, - pkgconfig, # from pythonPackages + fetchFromGitHub, + glib, pkg-config, # from pkgs - lib, + pkgconfig, # from pythonPackages + pytestCheckHook, + pythonOlder, + setuptools, + vips, }: buildPythonPackage rec { pname = "pyvips"; - version = "2.2.1"; - format = "setuptools"; + version = "2.2.3"; + pyproject = true; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "libvips"; repo = "pyvips"; - rev = "v${version}"; - hash = "sha256-9S7h3bkm+QP78cpemYS7l3c8t+wXsJ5MUAP2T50R/Mc="; + rev = "refs/tags/v${version}"; + hash = "sha256-EGB1cOR1pVCXGjRj1NLj4Mk3kIy8luRqk3gGJqVNs7U="; }; nativeBuildInputs = [ - pkgconfig pkg-config ]; @@ -36,7 +36,12 @@ buildPythonPackage rec { vips ]; - propagatedBuildInputs = [ cffi ]; + build-system = [ + pkgconfig + setuptools + ]; + + dependencies = [ cffi ]; env = lib.optionalAttrs stdenv.cc.isClang { NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types";