From 392d2f5acff27f3fd07683933c30479445b6c28b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 22 May 2008 08:06:52 +0000 Subject: [PATCH] Git: Don't depend on Perl libs and Subversion when no Subversion support is built. svn path=/nixpkgs/trunk/; revision=11877 --- .../version-management/git/default.nix | 17 ++++++++--- pkgs/top-level/all-packages.nix | 28 +++++++++++-------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/pkgs/applications/version-management/git/default.nix b/pkgs/applications/version-management/git/default.nix index 764fd6a0203..323b5d27d0c 100644 --- a/pkgs/applications/version-management/git/default.nix +++ b/pkgs/applications/version-management/git/default.nix @@ -1,6 +1,12 @@ { fetchurl, stdenv, curl, openssl, zlib, expat, perl, gettext, emacs, cpio , asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_42 -, libxslt, tcl, tk, makeWrapper, svnSupport, subversion, perlLibs }: +, libxslt, tcl, tk, makeWrapper +, svnSupport, subversion, perlLibs }: + +# `git-svn' support requires Subversion and various Perl libraries. +# FIXME: We should make sure Subversion comes with its Perl bindings. +assert svnSupport -> (subversion != null && perlLibs != []); + stdenv.mkDerivation rec { name = "git-1.5.5"; @@ -33,6 +39,7 @@ stdenv.mkDerivation rec { else ''echo "NOT installing Emacs mode. Set \`git.useEmacs' to \`true' in your" echo "\`~/.nixpkgs/config.nix' file to change it." '') + + (if svnSupport then ''# wrap git-svn @@ -41,10 +48,12 @@ stdenv.mkDerivation rec { gitperllib=$gitperllib:$i/lib/site_perl done wrapProgram "$out/bin/git-svn" \ - --set GITPERLLIB "$gitperllib" \ + --set GITPERLLIB "$gitperllib" \ --prefix PATH : "${subversion}/bin" '' - else ''# rm git-svn - rm $out/bin/git-svn '' ) + else '' + echo "NOT installing \`git-svn' since \`svnSupport' is false." + rm $out/bin/git-svn '') + + ''# Install man pages and Info manual make PERL_PATH="${perl}/bin/perl" cmd-list.made install install-info \ -C Documentation '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 279a04d7732..7a83b066a34 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5323,19 +5323,25 @@ let pkgs = rec { inherit (gnome) gtk libgtkhtml libart_lgpl; }; - git = import ../applications/version-management/git { - inherit fetchurl stdenv curl openssl zlib expat perl gettext - asciidoc texinfo xmlto docbook2x - docbook_xsl docbook_xml_dtd_42 libxslt - cpio tcl tk makeWrapper; + git = + let svnSupport = getConfig [ "git" "svnSupport" ] false; + in + import ../applications/version-management/git { + inherit fetchurl stdenv curl openssl zlib expat perl gettext + asciidoc texinfo xmlto docbook2x + docbook_xsl docbook_xml_dtd_42 libxslt + cpio tcl tk makeWrapper; - # for git-svn support: - svnSupport = getConfig [ "git" "svnSupport" ] false; - inherit subversion ; - perlLibs = [ perlLWP perlURI perlTermReadKey subversion ]; + # `git-svn' support + inherit svnSupport; + subversion = (if svnSupport then subversion else null) ; + perlLibs = (if svnSupport + then [ perlLWP perlURI perlTermReadKey subversion ] + else []); - emacs = if (getConfig ["git" "useEmacs"] true) then emacs else null; - }; + # Emacs support + emacs = if (getConfig ["git" "useEmacs"] true) then emacs else null; + }; gkrellm = import ../applications/misc/gkrellm { inherit fetchurl stdenv gettext pkgconfig;