From 68cfba1ac6985faa78c362adf78dec240ae692ee Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 19 May 2021 02:25:16 -0400 Subject: [PATCH 1/4] libAfterImage: unvendor dependencies --- .../libraries/libAfterImage/default.nix | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix index 1c88459ba9b..e43999a5ca9 100644 --- a/pkgs/development/libraries/libAfterImage/default.nix +++ b/pkgs/development/libraries/libAfterImage/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, zlib }: +{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, zlib }: stdenv.mkDerivation { pname = "libAfterImage"; @@ -13,7 +13,50 @@ stdenv.mkDerivation { sha256 = "0n74rxidwig3yhr6fzxsk7y19n1nq1f296lzrvgj5pfiyi9k48vf"; }; - buildInputs = [ zlib ]; + patches = [ + # add back --with-gif option + (fetchpatch { + name = "libafterimage-gif.patch"; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-gif.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4"; + sha256 = "16pa94wlqpd7h6mzs4f0qm794yk1xczrwsgf93kdd3g0zbjq3rnr"; + }) + + # fix build with newer giflib + (fetchpatch { + name = "libafterimage-giflib5-v2.patch"; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-giflib5-v2.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4"; + sha256 = "0qwydqy9bm73cg5n3vm97aj4jfi70p7fxqmfbi54vi78z593brln"; + stripLen = 1; + }) + + # fix build with newer libpng + (fetchpatch { + name = "libafterimage-libpng15.patch"; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-libpng15.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4"; + sha256 = "1qyvf7786hayasfnnilfbri3p99cfz5wjpbli3gdqj2cvk6mpydv"; + }) + + # fix an ldconfig problem + (fetchpatch { + name = "libafterimage-makefile.patch"; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-makefile.in.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4"; + sha256 = "1n6fniz6dldms615046yhc4mlg9gb53y4yfia8wfz6szgq5zicj4"; + }) + ]; + patchFlags = [ "-p0" ]; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ giflib libjpeg libpng zlib ]; + + preConfigure = '' + rm -rf {libjpeg,libpng,libungif,zlib}/ + substituteInPlace Makefile.in \ + --replace "include .depend" "" + ''; + + configureFlags = [ + "--with-gif" + ]; meta = with lib; { homepage = "http://www.afterstep.org/afterimage/"; From 3ec06bc2eb274c752923fbed4471f02b686ba629 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 19 May 2021 02:25:32 -0400 Subject: [PATCH 2/4] libAfterImage: don't use weird mmx flags --- pkgs/development/libraries/libAfterImage/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix index e43999a5ca9..6096c6a67b7 100644 --- a/pkgs/development/libraries/libAfterImage/default.nix +++ b/pkgs/development/libraries/libAfterImage/default.nix @@ -56,6 +56,7 @@ stdenv.mkDerivation { configureFlags = [ "--with-gif" + "--disable-mmx-optimization" ]; meta = with lib; { From 0b6dcc02cd23953586c6ada1d9a5e14a2f6c0c0a Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 19 May 2021 02:44:30 -0400 Subject: [PATCH 3/4] libAfterImage: build shared libs by default --- pkgs/development/libraries/libAfterImage/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix index 6096c6a67b7..1f833321d90 100644 --- a/pkgs/development/libraries/libAfterImage/default.nix +++ b/pkgs/development/libraries/libAfterImage/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, zlib }: +{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, zlib +, static ? stdenv.hostPlatform.isStatic }: stdenv.mkDerivation { pname = "libAfterImage"; @@ -52,11 +53,16 @@ stdenv.mkDerivation { rm -rf {libjpeg,libpng,libungif,zlib}/ substituteInPlace Makefile.in \ --replace "include .depend" "" + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace Makefile.in \ + --replace "-soname," "-install_name,$out/lib/" ''; configureFlags = [ "--with-gif" "--disable-mmx-optimization" + "--${if static then "enable" else "disable"}-staticlibs" + "--${if !static then "enable" else "disable"}-sharedlibs" ]; meta = with lib; { From bfaeb1bdd7d496f3b01113c7325e23c11e2b4a80 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 19 May 2021 05:12:55 -0400 Subject: [PATCH 4/4] libAfterImage: compile against libX11 This is needed to not have X_DISPLAY_MISSING for asimage2pixmap function to be implemented: https://root-forum.cern.ch/t/root-xpm-error-on-ubuntu-revisited/4552/10 --- pkgs/development/libraries/libAfterImage/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix index 1f833321d90..de463cdf42c 100644 --- a/pkgs/development/libraries/libAfterImage/default.nix +++ b/pkgs/development/libraries/libAfterImage/default.nix @@ -1,5 +1,6 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, zlib -, static ? stdenv.hostPlatform.isStatic }: +{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, libX11, zlib +, static ? stdenv.hostPlatform.isStatic +, withX ? !stdenv.isDarwin }: stdenv.mkDerivation { pname = "libAfterImage"; @@ -47,7 +48,7 @@ stdenv.mkDerivation { patchFlags = [ "-p0" ]; nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ giflib libjpeg libpng zlib ]; + buildInputs = [ giflib libjpeg libpng zlib ] ++ lib.optional withX libX11; preConfigure = '' rm -rf {libjpeg,libpng,libungif,zlib}/ @@ -63,7 +64,7 @@ stdenv.mkDerivation { "--disable-mmx-optimization" "--${if static then "enable" else "disable"}-staticlibs" "--${if !static then "enable" else "disable"}-sharedlibs" - ]; + ] ++ lib.optional withX "--with-x"; meta = with lib; { homepage = "http://www.afterstep.org/afterimage/";