From 9806a7638b7f26fafe48496c5d544aa52aa4bc4a Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 4 Mar 2020 01:23:43 +0100 Subject: [PATCH 1/5] vips: clean up --- pkgs/tools/graphics/vips/default.nix | 58 +++++++++++++++++++++------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix index 15cecf3d71e..3b09f0172cd 100644 --- a/pkgs/tools/graphics/vips/default.nix +++ b/pkgs/tools/graphics/vips/default.nix @@ -1,11 +1,25 @@ -{ stdenv, pkgconfig, glib, libxml2, expat, - fftw, orc, lcms, imagemagick, openexr, libtiff, libjpeg, libgsf, libexif, - ApplicationServices, - python27, libpng ? null, - fetchFromGitHub, - autoreconfHook, - gtk-doc, - gobject-introspection, +{ stdenv +, pkgconfig +, glib +, libxml2 +, expat +, fftw +, orc +, lcms +, imagemagick +, openexr +, libtiff +, libjpeg +, libgsf +, libexif +, ApplicationServices +, python27 +, libpng ? null +, fetchFromGitHub +, autoreconfHook +, gtk-doc +, gobject-introspection +, }: stdenv.mkDerivation rec { @@ -24,11 +38,29 @@ stdenv.mkDerivation rec { ''; }; - nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc gobject-introspection ]; - buildInputs = [ glib libxml2 fftw orc lcms - imagemagick openexr libtiff libjpeg - libgsf libexif python27 libpng expat ] - ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices; + nativeBuildInputs = [ + pkgconfig + autoreconfHook + gtk-doc + gobject-introspection + ]; + + buildInputs = [ + glib + libxml2 + fftw + orc + lcms + imagemagick + openexr + libtiff + libjpeg + libgsf + libexif + python27 + libpng + expat + ] ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices; autoreconfPhase = '' ./autogen.sh From 1829f233dc4d1afda19d4f3866baa7c86993a2ce Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 4 Mar 2020 01:27:23 +0100 Subject: [PATCH 2/5] vips: do not run configure twice --- pkgs/tools/graphics/vips/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix index 3b09f0172cd..190cc6f0d29 100644 --- a/pkgs/tools/graphics/vips/default.nix +++ b/pkgs/tools/graphics/vips/default.nix @@ -16,6 +16,7 @@ , python27 , libpng ? null , fetchFromGitHub +, fetchpatch , autoreconfHook , gtk-doc , gobject-introspection @@ -38,6 +39,15 @@ stdenv.mkDerivation rec { ''; }; + patches = [ + # autogen.sh should not run configure + # https://github.com/libvips/libvips/pull/1566 + (fetchpatch { + url = "https://github.com/libvips/libvips/commit/97a92e0e6abab652fdf99313b138bfd77d70deb4.patch"; + sha256 = "0w1sm5wmvfp8svdpk8mz57c1n6zzy3snq0g2f8yxjamv0d2gw2dp"; + }) + ]; + nativeBuildInputs = [ pkgconfig autoreconfHook @@ -63,7 +73,7 @@ stdenv.mkDerivation rec { ] ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices; autoreconfPhase = '' - ./autogen.sh + NOCONFIGURE=1 ./autogen.sh ''; meta = with stdenv.lib; { From 658b4914f3968e388a930438897875544ecbe7ab Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 4 Mar 2020 01:28:09 +0100 Subject: [PATCH 3/5] vips: propagate glib The .pc file has gobject-2.0 in Requires --- pkgs/tools/graphics/vips/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix index 190cc6f0d29..8812a632966 100644 --- a/pkgs/tools/graphics/vips/default.nix +++ b/pkgs/tools/graphics/vips/default.nix @@ -72,6 +72,11 @@ stdenv.mkDerivation rec { expat ] ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices; + # Required by .pc file + propagatedBuildInputs = [ + glib + ]; + autoreconfPhase = '' NOCONFIGURE=1 ./autogen.sh ''; From 3aa9d99a0a2714f078b74ddcdce797abe85f9c37 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 4 Mar 2020 01:32:41 +0100 Subject: [PATCH 4/5] vips: split into multiple outputs --- pkgs/development/ruby-modules/gem-config/default.nix | 2 +- pkgs/tools/graphics/vips/default.nix | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix index f26e33ca242..d68e1592d88 100644 --- a/pkgs/development/ruby-modules/gem-config/default.nix +++ b/pkgs/development/ruby-modules/gem-config/default.nix @@ -506,7 +506,7 @@ in --replace "gobject-2.0" "${glib.out}/lib/libgobject-2.0${stdenv.hostPlatform.extensions.sharedLibrary}" substituteInPlace lib/vips.rb \ - --replace "vips_libname = 'vips'" "vips_libname = '${vips}/lib/libvips${stdenv.hostPlatform.extensions.sharedLibrary}'" + --replace "vips_libname = 'vips'" "vips_libname = '${stdenv.lib.getLib vips}/lib/libvips${stdenv.hostPlatform.extensions.sharedLibrary}'" ''; }; diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix index 8812a632966..8546c4e8182 100644 --- a/pkgs/tools/graphics/vips/default.nix +++ b/pkgs/tools/graphics/vips/default.nix @@ -27,6 +27,8 @@ stdenv.mkDerivation rec { pname = "vips"; version = "8.9.1"; + outputs = [ "bin" "out" "man" "dev" ]; + src = fetchFromGitHub { owner = "libvips"; repo = "libvips"; From 699b2d40c9073d0c45c46882cf31e3734f653c2c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 4 Mar 2020 01:35:17 +0100 Subject: [PATCH 5/5] joplin: clean up dependencies vips now propagates the requirements correctly --- pkgs/development/node-packages/default-v10.nix | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/development/node-packages/default-v10.nix b/pkgs/development/node-packages/default-v10.nix index 54bd0337fad..5d7e2c7668f 100644 --- a/pkgs/development/node-packages/default-v10.nix +++ b/pkgs/development/node-packages/default-v10.nix @@ -115,12 +115,9 @@ nodePackages // { joplin = nodePackages.joplin.override { nativeBuildInputs = [ pkgs.pkg-config ]; buildInputs = with pkgs; [ - # sharp, dep list: - # http://sharp.pixelplumbing.com/en/stable/install/ - cairo expat fontconfig freetype fribidi gettext giflib - glib harfbuzz lcms libcroco libexif libffi libgsf - libjpeg_turbo libpng librsvg libtiff vips - libwebp libxml2 pango pixman zlib + # required by sharp + # https://sharp.pixelplumbing.com/install + vips nodePackages.node-pre-gyp ];