From f8cc92fd6deed36e610b627cee5cf74d572ac81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 23 May 2016 19:41:41 +0200 Subject: [PATCH 1/3] man-db: clean the expression a bit This solves the errors > can't open the manpath configuration file /etc/man_db.conf which were common e.g. for fish users. --- pkgs/tools/misc/man-db/default.nix | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix index d77b7ff4812..825921327e1 100644 --- a/pkgs/tools/misc/man-db/default.nix +++ b/pkgs/tools/misc/man-db/default.nix @@ -1,19 +1,24 @@ { stdenv, fetchurl, pkgconfig, libpipeline, db, groff }: - + stdenv.mkDerivation rec { name = "man-db-2.7.5"; - + src = fetchurl { url = "mirror://savannah/man-db/${name}.tar.xz"; sha256 = "056a3il7agfazac12yggcg4gf412yq34k065im0cpfxbcw6xskaw"; }; - - buildInputs = [ pkgconfig libpipeline db groff ]; + + outputs = [ "out" "doc" ]; + outputMan = "out"; # users will want `man man` to work + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libpipeline db groff ]; configureFlags = [ "--disable-setuid" - "--sysconfdir=/etc" "--localstatedir=/var" + # Don't try /etc/man_db.conf by default, so we avoid error messages. + "--with-config-file=\${out}/etc/man_db.conf" "--with-systemdtmpfilesdir=\${out}/lib/tmpfiles.d" "--with-eqn=${groff}/bin/eqn" "--with-neqn=${groff}/bin/neqn" @@ -23,15 +28,9 @@ stdenv.mkDerivation rec { "--with-tbl=${groff}/bin/tbl" ]; - installFlags = [ "DESTDIR=\${out}" ]; + enableParallelBuilding = true; - postInstall = '' - mv $out/$out/* $out - DIR=$out/$out - while rmdir $DIR 2>/dev/null; do - DIR="$(dirname "$DIR")" - done - ''; + doCheck = true; meta = with stdenv.lib; { homepage = "http://man-db.nongnu.org"; From b9df4311dc1f50253ec86be6b7908fa620070ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 23 May 2016 19:50:25 +0200 Subject: [PATCH 2/3] man-db: make it the default man provider For now, leave the old implementation under `man-old` attribute. Small warning: I had a leftover ~/.nix-profile/man from an old package, which caused man-db's man prefer it and ignore ~/.nix-profile/share/man. The PATH->MANPATH code just selects the first match for each PATH item. --- nixos/modules/programs/man.nix | 2 +- pkgs/top-level/aliases.nix | 2 ++ pkgs/top-level/all-packages.nix | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/modules/programs/man.nix b/nixos/modules/programs/man.nix index 201144ccb45..e59ffd6f936 100644 --- a/nixos/modules/programs/man.nix +++ b/nixos/modules/programs/man.nix @@ -19,7 +19,7 @@ with lib; config = mkIf config.programs.man.enable { - environment.systemPackages = [ pkgs.man ]; + environment.systemPackages = [ pkgs.man-db ]; environment.pathsToLink = [ "/share/man" ]; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index fb1b3571e37..a6b312619c9 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -64,6 +64,8 @@ doNotDisplayTwice rec { lttngTools = lttng-tools; # added 2014-07-31 lttngUst = lttng-ust; # added 2014-07-31 manpages = man-pages; # added 2015-12-06 + man_db = man-db; # added 2016-05 + man = man-db; # added 2016-05 midoriWrapper = midori; # added 2015-01 mlt-qt5 = qt5.mlt; # added 2015-12-19 module_init_tools = kmod; # added 2016-04-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24b56ef5d75..3f882ce1654 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2379,9 +2379,9 @@ in makemkv = callPackage ../applications/video/makemkv { }; - man = callPackage ../tools/misc/man { }; + man-old = callPackage ../tools/misc/man { }; - man_db = callPackage ../tools/misc/man-db { }; + man-db = callPackage ../tools/misc/man-db { }; mawk = callPackage ../tools/text/mawk { }; From 3472b61f371da6b38928f72e8def2809b86aab91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 24 May 2016 10:07:29 +0200 Subject: [PATCH 3/3] fish: use a different alias man_db -> man-db --- pkgs/shells/fish/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 8916cca0f04..6de8aa7f18b 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, nettools, python, which, groff, gettext, man_db, +{ stdenv, fetchurl, ncurses, nettools, python, which, groff, gettext, man-db, bc, libiconv, coreutils, gnused, kbd, utillinux, glibc }: stdenv.mkDerivation rec { @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { # Required binaries during execution # Python: Autocompletion generated from manpages and config editing propagatedBuildInputs = [ python which groff gettext ] - ++ stdenv.lib.optional (!stdenv.isDarwin) man_db + ++ stdenv.lib.optional (!stdenv.isDarwin) man-db ++ [ bc coreutils ]; postInstall = '' @@ -55,8 +55,8 @@ stdenv.mkDerivation rec { done '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' sed -i "s|(hostname\||(${nettools}/bin/hostname\||" "$out/share/fish/functions/fish_prompt.fish" - sed -i "s|Popen(\['manpath'|Popen(\['${man_db}/bin/manpath'|" "$out/share/fish/tools/create_manpage_completions.py" - sed -i "s|command manpath|command ${man_db}/bin/manpath|" "$out/share/fish/functions/man.fish" + sed -i "s|Popen(\['manpath'|Popen(\['${man-db}/bin/manpath'|" "$out/share/fish/tools/create_manpage_completions.py" + sed -i "s|command manpath|command ${man-db}/bin/manpath|" "$out/share/fish/functions/man.fish" '' + '' sed -i "s|/sbin /usr/sbin||" \ "$out/share/fish/functions/__fish_complete_subcommand_root.fish"