diff options
81 files changed, 314 insertions, 428 deletions
diff --git a/lib/default.nix b/lib/default.nix index d7a05fec8338..aff36d0e5c2d 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -80,7 +80,7 @@ let inherit (strings) concatStrings concatMapStrings concatImapStrings intersperse concatStringsSep concatMapStringsSep concatImapStringsSep makeSearchPath makeSearchPathOutput - makeLibraryPath makeBinPath makePerlPath makeFullPerlPath optionalString + makeLibraryPath makeBinPath optionalString hasPrefix hasSuffix stringToCharacters stringAsChars escape escapeShellArg escapeShellArgs replaceChars lowerChars upperChars toLower toUpper addContextFrom splitString diff --git a/lib/strings.nix b/lib/strings.nix index 48420a367815..47c881cfbc7c 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -162,26 +162,6 @@ rec { */ makeBinPath = makeSearchPathOutput "bin" "bin"; - - /* Construct a perl search path (such as $PERL5LIB) - - Example: - pkgs = import <nixpkgs> { } - makePerlPath [ pkgs.perlPackages.libnet ] - => "/nix/store/n0m1fk9c960d8wlrs62sncnadygqqc6y-perl-Net-SMTP-1.25/lib/perl5/site_perl" - */ - # FIXME(zimbatm): this should be moved in perl-specific code - makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl"; - - /* Construct a perl search path recursively including all dependencies (such as $PERL5LIB) - - Example: - pkgs = import <nixpkgs> { } - makeFullPerlPath [ pkgs.perlPackages.CGI ] - => "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl" - */ - makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps); - /* Depending on the boolean `cond', return either the given string or the empty string. Useful to concatenate against a bigger string. diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix index 0bb3fd53e853..05b06ca467e4 100644 --- a/nixos/lib/testing.nix +++ b/nixos/lib/testing.nix @@ -34,14 +34,14 @@ in rec { cp ${./test-driver/test-driver.pl} $out/bin/nixos-test-driver chmod u+x $out/bin/nixos-test-driver - libDir=$out/lib/perl5/site_perl + libDir=$out/${perl.libPrefix} mkdir -p $libDir cp ${./test-driver/Machine.pm} $libDir/Machine.pm cp ${./test-driver/Logger.pm} $libDir/Logger.pm wrapProgram $out/bin/nixos-test-driver \ --prefix PATH : "${lib.makeBinPath [ qemu_test vde2 netpbm coreutils ]}" \ - --prefix PERL5LIB : "${with perlPackages; lib.makePerlPath [ TermReadLineGnu XMLWriter IOTty FileSlurp ]}:$out/lib/perl5/site_perl" + --prefix PERL5LIB : "${with perlPackages; makePerlPath [ TermReadLineGnu XMLWriter IOTty FileSlurp ]}:$out/${perl.libPrefix}" ''; }; diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index 137ee243813d..c3f228c9bcc4 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -534,8 +534,8 @@ in { install -m 0755 -d /home ${pkgs.perl}/bin/perl -w \ - -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl \ - -I${pkgs.perlPackages.JSON}/lib/perl5/site_perl \ + -I${pkgs.perlPackages.FileSlurp}/${pkgs.perl.libPrefix} \ + -I${pkgs.perlPackages.JSON}/${pkgs.perl.libPrefix} \ ${./update-users-groups.pl} ${spec} ''; diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index af0a3a2fcc88..00c4d5018bf5 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -37,7 +37,7 @@ let name = "nixos-generate-config"; src = ./nixos-generate-config.pl; path = [ pkgs.btrfs-progs ]; - perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; + perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/${pkgs.perl.libPrefix}"; inherit (config.system.nixos) release; }; diff --git a/nixos/modules/programs/command-not-found/command-not-found.nix b/nixos/modules/programs/command-not-found/command-not-found.nix index bbe7165c62fb..656c255fcb18 100644 --- a/nixos/modules/programs/command-not-found/command-not-found.nix +++ b/nixos/modules/programs/command-not-found/command-not-found.nix @@ -16,7 +16,7 @@ let isExecutable = true; inherit (pkgs) perl; inherit (cfg) dbPath; - perlFlags = concatStrings (map (path: "-I ${path}/lib/perl5/site_perl ") + perlFlags = concatStrings (map (path: "-I ${path}/${pkgs.perl.libPrefix} ") [ pkgs.perlPackages.DBI pkgs.perlPackages.DBDSQLite pkgs.perlPackages.StringShellQuote ]); }; diff --git a/nixos/modules/services/web-servers/lighttpd/collectd.nix b/nixos/modules/services/web-servers/lighttpd/collectd.nix index 35b5edced68b..e70c980d5243 100644 --- a/nixos/modules/services/web-servers/lighttpd/collectd.nix +++ b/nixos/modules/services/web-servers/lighttpd/collectd.nix @@ -48,7 +48,7 @@ in "/collectd" => "${cfg.collectionCgi}" ) setenv.add-environment = ( - "PERL5LIB" => "${with pkgs; lib.makePerlPath [ perlPackages.CGI perlPackages.HTMLParser perlPackages.URI rrdtool ]}", + "PERL5LIB" => "${with pkgs.perlPackages; makePerlPath [ CGI HTMLParser URI pkgs.rrdtool ]}", "COLLECTION_CONF" => "${collectionConf}" ) } diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index 3a33b3f65d36..a1537ad3cedc 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -586,7 +586,7 @@ in in pkgs.writeScript "install-grub.sh" ('' #!${pkgs.runtimeShell} set -e - export PERL5LIB=${makePerlPath (with pkgs.perlPackages; [ FileSlurp XMLLibXML XMLSAX XMLSAXBase ListCompare ])} + export PERL5LIB=${with pkgs.perlPackages; makePerlPath [ FileSlurp XMLLibXML XMLSAX XMLSAXBase ListCompare ]} ${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"} '' + flip concatMapStrings cfg.mirroredBoots (args: '' ${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@ diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix index 7d43ba07ca57..57ade2880962 100644 --- a/nixos/modules/system/etc/etc.nix +++ b/nixos/modules/system/etc/etc.nix @@ -154,7 +154,7 @@ in '' # Set up the statically computed bits of /etc. echo "setting up /etc..." - ${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl ${./setup-etc.pl} ${etc}/etc + ${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/${pkgs.perl.libPrefix} ${./setup-etc.pl} ${etc}/etc ''; }; diff --git a/nixos/modules/testing/service-runner.nix b/nixos/modules/testing/service-runner.nix index 25490d671152..5ead75788e5c 100644 --- a/nixos/modules/testing/service-runner.nix +++ b/nixos/modules/testing/service-runner.nix @@ -6,7 +6,7 @@ let makeScript = name: service: pkgs.writeScript "${name}-runner" '' - #! ${pkgs.perl}/bin/perl -w -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl + #! ${pkgs.perl}/bin/perl -w -I${pkgs.perlPackages.FileSlurp}/${pkgs.perl.libPrefix} use File::Slurp; diff --git a/pkgs/applications/audio/abcde/default.nix b/pkgs/applications/audio/abcde/default.nix index 58e8ecc4fcab..240729811352 100644 --- a/pkgs/applications/audio/abcde/default.nix +++ b/pkgs/applications/audio/abcde/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, libcdio-paranoia, cddiscid, wget, which, vorbis-tools, id3v2, eyeD3 , lame, flac, glyr -, perl, MusicBrainz, MusicBrainzDiscID +, perlPackages , makeWrapper }: let version = "2.9.2"; @@ -29,7 +29,7 @@ in nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ perl MusicBrainz MusicBrainzDiscID ]; + buildInputs = with perlPackages; [ perl MusicBrainz MusicBrainzDiscID ]; installFlags = [ "sysconfdir=$(out)/etc" ]; diff --git a/pkgs/applications/audio/crip/default.nix b/pkgs/applications/audio/crip/default.nix index 0383af06795e..f7bf919c2212 100644 --- a/pkgs/applications/audio/crip/default.nix +++ b/pkgs/applications/audio/crip/default.nix @@ -2,7 +2,6 @@ , fetchurl , makeWrapper -, perl , perlPackages , cdparanoia @@ -26,7 +25,7 @@ stdenv.mkDerivation rec { sha256 = "0pk9152wll6fmkj1pki3fz3ijlf06jyk32v31yarwvdkwrk7s9xz"; }; - buildInputs = [ perl perlPackages.CDDB_get ]; + buildInputs = [ perlPackages.perl perlPackages.CDDB_get ]; nativeBuildInputs = [ makeWrapper ]; toolDeps = makeBinPath [ @@ -53,7 +52,7 @@ stdenv.mkDerivation rec { --replace '$editor = "vim";' '$editor = "${nano}/bin/nano";' wrapProgram $out/bin/$script \ - --set PERL5LIB "${makePerlPath [ perlPackages.CDDB_get ]}" \ + --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.CDDB_get ]}" \ --set PATH "${toolDeps}" done ''; diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix index 8938df4d42de..0c0b699f431e 100644 --- a/pkgs/applications/graphics/feh/default.nix +++ b/pkgs/applications/graphics/feh/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { checkInputs = [ perlPackages.TestCommand perlPackages.TestHarness ]; preCheck = '' - export PERL5LIB="${perlPackages.TestCommand}/lib/perl5/site_perl" + export PERL5LIB="${perlPackages.TestCommand}/${perlPackages.perl.libPrefix}" ''; doCheck = true; diff --git a/pkgs/applications/graphics/shutter/default.nix b/pkgs/applications/graphics/shutter/default.nix index 7e7bf644ce79..5800fb6df3cf 100644 --- a/pkgs/applications/graphics/shutter/default.nix +++ b/pkgs/applications/graphics/shutter/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, perl, perlPackages, makeWrapper, imagemagick, gdk_pixbuf, librsvg +{ stdenv, fetchurl, perlPackages, makeWrapper, imagemagick, gdk_pixbuf, librsvg , hicolor-icon-theme, procps }: @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ perl procps gdk_pixbuf librsvg ] ++ perlModules; + buildInputs = [ perlPackages.perl procps gdk_pixbuf librsvg ] ++ perlModules; installPhase = '' mkdir -p "$out" @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { (cd "$out" && mv CHANGES README COPYING "$out/share/doc/shutter") wrapProgram $out/bin/shutter \ - --set PERL5LIB "${stdenv.lib.makePerlPath perlModules}" \ + --set PERL5LIB "${perlPackages.makePerlPath perlModules}" \ --prefix PATH : "${imagemagick.out}/bin" \ --suffix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" diff --git a/pkgs/applications/misc/extract_url/default.nix b/pkgs/applications/misc/extract_url/default.nix index 389ac7dfb1fc..2b7888c9cd04 100644 --- a/pkgs/applications/misc/extract_url/default.nix +++ b/pkgs/applications/misc/extract_url/default.nix @@ -1,14 +1,13 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper, perl -, MIMEtools, HTMLParser -, cursesSupport ? true, CursesUI -, uriFindSupport ? true, URIFind +{ stdenv, lib, fetchFromGitHub, makeWrapper, perlPackages +, cursesSupport ? true +, uriFindSupport ? true }: let perlDeps = - [ MIMEtools HTMLParser ] - ++ lib.optional cursesSupport CursesUI - ++ lib.optional uriFindSupport URIFind; + [ perlPackages.MIMEtools perlPackages.HTMLParser ] + ++ lib.optional cursesSupport perlPackages.CursesUI + ++ lib.optional uriFindSupport perlPackages.URIFind; in stdenv.mkDerivation rec { name = "extract_url-${version}"; @@ -22,14 +21,14 @@ in stdenv.mkDerivation rec { }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ perl ] ++ perlDeps; + buildInputs = [ perlPackages.perl ] ++ perlDeps; makeFlags = [ "prefix=$(out)" ]; installFlags = [ "INSTALL=install" ]; postFixup = '' wrapProgram "$out/bin/extract_url" \ - --set PERL5LIB "${lib.makeFullPerlPath perlDeps}" + --set PERL5LIB "${perlPackages.makeFullPerlPath perlDeps}" ''; meta = with lib; { diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix index 6e4fc2065885..957f0f7f68bb 100644 --- a/pkgs/applications/misc/ikiwiki/default.nix +++ b/pkgs/applications/misc/ikiwiki/default.nix @@ -1,13 +1,9 @@ -{ stdenv, fetchurl, perl, gettext, makeWrapper, PerlMagick, YAML -, TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate -, CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple -, YAMLLibYAML, which, HTMLTree, AuthenPassphrase, NetOpenIDConsumer -, LWPxParanoidAgent, CryptSSLeay +{ stdenv, fetchurl, perlPackages, gettext, makeWrapper, PerlMagick, which , gitSupport ? false, git ? null |