diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix index ae3e17ac27b..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; qt4 = null; }; + pinentry = pkgs.pinentry_ncurses; }; }; } diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix index 0d957fc97e0..c551a8161aa 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 @@ -7,16 +7,15 @@ let mkEnable = mkFlag "enable" "disable"; mkWith = mkFlag "with" "without"; 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 qt4 ]; + buildInputs = [ libgpgerror libassuan libcap libsecret gtk2 gcr ncurses qt ]; prePatch = '' substituteInPlace pinentry/pinentry-curses.c --replace ncursesw ncurses @@ -24,18 +23,10 @@ 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"; - })]; - - # configure cannot find moc on its own - preConfigure = stdenv.lib.optionalString (qt4 != null) '' - export QTDIR="${qt4}" - export MOC="${qt4}/bin/moc" - ''; + 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") @@ -44,20 +35,20 @@ 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 ]; - 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 ]; }; } 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 8812bf05ef0..aa6e5b3e6ea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3980,12 +3980,12 @@ with pkgs; philter = callPackage ../tools/networking/philter { }; - pinentry = callPackage ../tools/security/pinentry { - libcap = if stdenv.isDarwin then null else libcap; - qt4 = null; + 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; }; @@ -3994,11 +3994,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 {