From 98f5d0574f941f1fd7b08f0f895b76b4d2656373 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 21 Mar 2020 13:16:05 +0200 Subject: [PATCH] gtk-gnutella: 1.1.14 -> 1.1.15 Remove patches applied between 1.1.14 and 1.1.15 and switch to GitHub source. gtk-gnutella: several changes. Disable internal malloc implementation. Add @doronbehar as maintainer. Comment about hardeningDisable regarding next release. Format arguments and inputs. Enable to disable GUI. --- .../networking/p2p/gtk-gnutella/default.nix | 70 ++++++++++++------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix index 70e36cb7ec58..08163bd8a9e2 100644 --- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix +++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix @@ -1,37 +1,58 @@ -{ stdenv, fetchurl, fetchpatch, bison, pkgconfig, gettext, desktop-file-utils -, glib, gtk2, libxml2, libbfd, zlib, binutils, gnutls +{ stdenv +, fetchFromGitHub +, fetchpatch +, bison +, pkgconfig +, gettext +, desktop-file-utils +, glib +, gtk2 +, libxml2 +, libbfd +, zlib +, binutils +, gnutls +, enableGui ? true }: stdenv.mkDerivation rec { pname = "gtk-gnutella"; - version = "1.1.14"; + # NOTE: Please remove hardeningDisable on the next release, see: + # https://sourceforge.net/p/gtk-gnutella/bugs/555/#5c19 + version = "1.1.15"; - src = fetchurl { - url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.xz"; - sha256 = "0sljjha4anfz1r1xq1c6qnnkjv62ld56p7xgj4bsi6lqmq1azvii"; + src = fetchFromGitHub { + owner = "gtk-gnutella"; + repo = "gtk-gnutella"; + rev = "v${version}"; + sha256 = "1g7w6ywwp2g4qdgmfqkrl1rldk1b4rx50yb7h75hh15mh6nr159r"; }; - patches = [ - (fetchpatch { - # Avoid namespace conflict with glibc 2.28 'statx' struct / remove after v1.1.14 - url = "https://github.com/gtk-gnutella/gtk-gnutella/commit/e4205a082eb32161e28de81f5cba8095eea8ecc7.patch"; - sha256 = "0ffkw2cw2b2yhydii8jm40vd40p4xl224l8jvhimg02lgs3zfbca"; - }) - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/gtk-gnutella/raw/f30/f/gtk-gnutella-1.1.14-endian.patch"; - sha256 = "19q4lq8msknfz4mkbjdqmmgld16p30j2yx371p8spmr19q5i0sfn"; - }) + nativeBuildInputs = [ + bison + desktop-file-utils + gettext + pkgconfig ]; - - postPatch = '' - substituteInPlace Makefile.SH --replace "@exit 0" "@echo done" - ''; - - nativeBuildInputs = [ bison desktop-file-utils gettext pkgconfig ]; - buildInputs = [ binutils glib gnutls gtk2 libbfd libxml2 zlib ]; + buildInputs = [ + glib + gnutls + libbfd + libxml2 + zlib + ] + ++ + stdenv.lib.optionals (enableGui) [ gtk2 ] + ; configureScript = "./build.sh"; - configureFlags = [ "--configure-only" ]; + configureFlags = [ + "--configure-only" + # See https://sourceforge.net/p/gtk-gnutella/bugs/555/ + "--disable-malloc" + ] + ++ stdenv.lib.optionals (!enableGui) [ "--topless" ] + ; hardeningDisable = [ "bindnow" "fortify" "pic" "relro" ]; @@ -45,6 +66,7 @@ stdenv.mkDerivation rec { description = "A GTK Gnutella client, optimized for speed and scalability"; homepage = "http://gtk-gnutella.sourceforge.net/"; # Code: https://github.com/gtk-gnutella/gtk-gnutella changelog = "https://raw.githubusercontent.com/gtk-gnutella/gtk-gnutella/v${version}/ChangeLog"; + maintainers = [ maintainers.doronbehar ]; license = licenses.gpl2Plus; platforms = platforms.unix; };