From ba67110de3e0f38e8f3793e468ea50d47236c6e2 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 16 Dec 2017 03:20:06 +0100 Subject: [PATCH 1/4] pinentry_qt: merge into pinentry --- nixos/modules/config/no-x-libs.nix | 2 +- pkgs/tools/security/pinentry/default.nix | 12 ++---- pkgs/tools/security/pinentry/qt5.nix | 49 ------------------------ pkgs/top-level/all-packages.nix | 7 ++-- 4 files changed, 7 insertions(+), 63 deletions(-) delete mode 100644 pkgs/tools/security/pinentry/qt5.nix diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix index ae3e17ac27b..9140474114e 100644 --- a/nixos/modules/config/no-x-libs.nix +++ b/nixos/modules/config/no-x-libs.nix @@ -35,7 +35,7 @@ with lib; networkmanager_pptp = pkgs.networkmanager_pptp.override { withGnome = false; }; networkmanager_vpnc = pkgs.networkmanager_vpnc.override { withGnome = false; }; networkmanager_iodine = pkgs.networkmanager_iodine.override { withGnome = false; }; - pinentry = pkgs.pinentry.override { gtk2 = null; qt4 = null; }; + pinentry = pkgs.pinentry.override { gtk2 = null; }; }; }; } diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix index 0d957fc97e0..47c7431e32d 100644 --- a/pkgs/tools/security/pinentry/default.nix +++ b/pkgs/tools/security/pinentry/default.nix @@ -1,5 +1,5 @@ { fetchurl, fetchpatch, stdenv, lib, pkgconfig -, libgpgerror, libassuan, libcap ? null, libsecret ? null, ncurses ? null, gtk2 ? null, gcr ? null, qt4 ? null +, libgpgerror, libassuan, libcap ? null, libsecret ? null, ncurses ? null, gtk2 ? null, gcr ? null, qt ? null }: let @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { sha256 = "0ni7g4plq6x78p32al7m8h2zsakvg1rhfz0qbc3kdc7yq7nw4whn"; }; - buildInputs = [ libgpgerror libassuan libcap libsecret gtk2 gcr ncurses qt4 ]; + buildInputs = [ libgpgerror libassuan libcap libsecret gtk2 gcr ncurses qt ]; prePatch = '' substituteInPlace pinentry/pinentry-curses.c --replace ncursesw ncurses @@ -31,12 +31,6 @@ stdenv.mkDerivation rec { sha256 = "046jy7k0n7fj74s5w1h6sq1ljg8y77i0xwi301kv53bhsp0xsirx"; })]; - # configure cannot find moc on its own - preConfigure = stdenv.lib.optionalString (qt4 != null) '' - export QTDIR="${qt4}" - export MOC="${qt4}/bin/moc" - ''; - configureFlags = [ (mkWith (libcap != null) "libcap") (mkEnable (libsecret != null) "libsecret") @@ -44,7 +38,7 @@ stdenv.mkDerivation rec { (mkEnable true "pinentry-tty") (mkEnable (gtk2 != null) "pinentry-gtk2") (mkEnable (gcr != null) "pinentry-gnome3") - (mkEnable (qt4 != null) "pinentry-qt") + (mkEnable (qt != null) "pinentry-qt") ]; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/tools/security/pinentry/qt5.nix b/pkgs/tools/security/pinentry/qt5.nix deleted file mode 100644 index 6230529a733..00000000000 --- a/pkgs/tools/security/pinentry/qt5.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ fetchurl, stdenv, pkgconfig -, libgpgerror, libassuan -, qtbase -, libcap ? null -}: - -let - mkFlag = pfxTrue: pfxFalse: cond: name: "--${if cond then pfxTrue else pfxFalse}-${name}"; - mkEnable = mkFlag "enable" "disable"; - mkWith = mkFlag "with" "without"; -in -with stdenv.lib; -stdenv.mkDerivation rec { - name = "pinentry-0.9.6"; - - src = fetchurl { - url = "mirror://gnupg/pinentry/${name}.tar.bz2"; - sha256 = "0rhyw1vk28kgasjp22myf7m2q8kycw82d65pr9kgh93z17lj849a"; - }; - - buildInputs = [ libgpgerror libassuan libcap qtbase ]; - - # configure cannot find moc on its own - preConfigure = '' - export QTDIR="${qtbase.dev}" - export MOC="${qtbase.dev}/bin/moc" - ''; - - configureFlags = [ - (mkWith (libcap != null) "libcap") - (mkEnable true "pinentry-qt") - ]; - - NIX_CFLAGS_COMPILE = [ "-std=c++11" ]; - - nativeBuildInputs = [ pkgconfig ]; - - meta = { - homepage = http://gnupg.org/aegypten2/; - description = "GnuPG's interface to passphrase input"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.all; - longDescription = '' - Pinentry provides a console and (optional) GTK+ and Qt GUIs allowing users - to enter a passphrase when `gpg' or `gpg2' is run and needs it. - ''; - maintainers = [ stdenv.lib.maintainers.ttuegel ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 20ce40e1074..9dce65fef42 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3977,7 +3977,6 @@ with pkgs; pinentry = callPackage ../tools/security/pinentry { libcap = if stdenv.isDarwin then null else libcap; - qt4 = null; }; pinentry_ncurses = pinentry.override { @@ -3989,11 +3988,11 @@ with pkgs; }; pinentry_qt4 = pinentry_ncurses.override { - inherit qt4; + qt = qt4; }; - pinentry_qt5 = libsForQt5.callPackage ../tools/security/pinentry/qt5.nix { - libcap = if stdenv.isDarwin then null else libcap; + pinentry_qt5 = pinentry_ncurses.override { + qt = qt5.qtbase; }; pinentry_mac = callPackage ../tools/security/pinentry-mac { From 7ea74f4b7b787b1ca503a394b7d49e0cd5108968 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 16 Dec 2017 03:42:32 +0100 Subject: [PATCH 2/4] =?UTF-8?q?pinentry:=201.0.0=20=E2=86=92=201.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/tools/security/pinentry/default.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix index 47c7431e32d..ac35f2af662 100644 --- a/pkgs/tools/security/pinentry/default.nix +++ b/pkgs/tools/security/pinentry/default.nix @@ -9,11 +9,11 @@ let in with stdenv.lib; stdenv.mkDerivation rec { - name = "pinentry-1.0.0"; + name = "pinentry-1.1.0"; src = fetchurl { url = "mirror://gnupg/pinentry/${name}.tar.bz2"; - sha256 = "0ni7g4plq6x78p32al7m8h2zsakvg1rhfz0qbc3kdc7yq7nw4whn"; + sha256 = "0w35ypl960pczg5kp6km3dyr000m1hf0vpwwlh72jjkjza36c1v8"; }; buildInputs = [ libgpgerror libassuan libcap libsecret gtk2 gcr ncurses qt ]; @@ -24,9 +24,6 @@ stdenv.mkDerivation rec { patches = lib.optionals (gtk2 != null) [ (fetchpatch { - url = https://anonscm.debian.org/cgit/pkg-gnupg/pinentry.git/plain/debian/patches/0006-gtk2-Fix-a-problem-with-fvwm.patch; - sha256 = "1w3y4brqp74hy3fbfxqnqp6jf985bd6667ivy1crz50r3z9zsy09"; - })(fetchpatch { url = https://anonscm.debian.org/cgit/pkg-gnupg/pinentry.git/plain/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch; sha256 = "046jy7k0n7fj74s5w1h6sq1ljg8y77i0xwi301kv53bhsp0xsirx"; })]; From 49993bec81a143032cae93a72e54e210ff8de423 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 16 Dec 2017 03:52:37 +0100 Subject: [PATCH 3/4] pinentry: clean up --- pkgs/tools/security/pinentry/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix index ac35f2af662..c551a8161aa 100644 --- a/pkgs/tools/security/pinentry/default.nix +++ b/pkgs/tools/security/pinentry/default.nix @@ -7,7 +7,6 @@ let mkEnable = mkFlag "enable" "disable"; mkWith = mkFlag "with" "without"; in -with stdenv.lib; stdenv.mkDerivation rec { name = "pinentry-1.1.0"; @@ -24,9 +23,10 @@ stdenv.mkDerivation rec { patches = lib.optionals (gtk2 != null) [ (fetchpatch { - url = https://anonscm.debian.org/cgit/pkg-gnupg/pinentry.git/plain/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch; - sha256 = "046jy7k0n7fj74s5w1h6sq1ljg8y77i0xwi301kv53bhsp0xsirx"; - })]; + url = https://anonscm.debian.org/cgit/pkg-gnupg/pinentry.git/plain/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch; + sha256 = "046jy7k0n7fj74s5w1h6sq1ljg8y77i0xwi301kv53bhsp0xsirx"; + }) + ]; configureFlags = [ (mkWith (libcap != null) "libcap") @@ -40,15 +40,15 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; - meta = { + meta = with stdenv.lib; { homepage = http://gnupg.org/aegypten2/; - description = "GnuPG's interface to passphrase input"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.all; + description = "GnuPG’s interface to passphrase input"; + license = licenses.gpl2Plus; + platforms = platforms.all; longDescription = '' Pinentry provides a console and (optional) GTK+ and Qt GUIs allowing users to enter a passphrase when `gpg' or `gpg2' is run and needs it. ''; - maintainers = [ stdenv.lib.maintainers.ttuegel ]; + maintainers = [ maintainers.ttuegel ]; }; } From bd0d5217749201a9f96fc8c5921a21bbe11eb3f8 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 16 Dec 2017 04:39:29 +0100 Subject: [PATCH 4/4] pinentry: override pinentry_ncurses instead of the other way around --- nixos/modules/config/no-x-libs.nix | 2 +- pkgs/top-level/all-packages.nix | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix index 9140474114e..e1c4d0d602a 100644 --- a/nixos/modules/config/no-x-libs.nix +++ b/nixos/modules/config/no-x-libs.nix @@ -35,7 +35,7 @@ with lib; networkmanager_pptp = pkgs.networkmanager_pptp.override { withGnome = false; }; networkmanager_vpnc = pkgs.networkmanager_vpnc.override { withGnome = false; }; networkmanager_iodine = pkgs.networkmanager_iodine.override { withGnome = false; }; - pinentry = pkgs.pinentry.override { gtk2 = null; }; + pinentry = pkgs.pinentry_ncurses; }; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9dce65fef42..a7300df8f80 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3975,11 +3975,12 @@ with pkgs; philter = callPackage ../tools/networking/philter { }; - pinentry = callPackage ../tools/security/pinentry { - libcap = if stdenv.isDarwin then null else libcap; + pinentry = pinentry_ncurses.override { + inherit gtk2; }; - pinentry_ncurses = pinentry.override { + pinentry_ncurses = callPackage ../tools/security/pinentry { + libcap = if stdenv.isDarwin then null else libcap; gtk2 = null; };