From 64792ffdaa753ebf35efd06bc843a8a9c90a400f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 16 Dec 2015 15:17:00 +0100 Subject: [PATCH] subversion: Use callPackages --- .../version-management/subversion/default.nix | 145 +++++++++--------- pkgs/top-level/all-packages.nix | 31 ++-- 2 files changed, 93 insertions(+), 83 deletions(-) diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix index f563bebd9db8..050d3d72b0fb 100644 --- a/pkgs/applications/version-management/subversion/default.nix +++ b/pkgs/applications/version-management/subversion/default.nix @@ -8,7 +8,6 @@ , stdenv, fetchurl, apr, aprutil, zlib, sqlite , apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null , sasl ? null, serf ? null -, branch ? "1.9" }: assert bdbSupport -> aprutil.bdbSupport; @@ -17,81 +16,85 @@ assert pythonBindings -> swig != null && python != null; assert javahlBindings -> jdk != null && perl != null; let - config = { - "1.9".ver_min = "2"; - "1.9".sha1 = "fb9db3b7ddf48ae37aa8785872301b59bfcc7017"; - "1.8".ver_min = "14"; - "1.8".sha1 = "0698efc58373e7657f6dd3ce13cab7b002ffb497"; - }; -in -assert builtins.hasAttr branch config; + common = { version, sha1 }: stdenv.mkDerivation (rec { + inherit version; + name = "subversion-${version}"; -stdenv.mkDerivation (rec { + src = fetchurl { + url = "mirror://apache/subversion/${name}.tar.bz2"; + inherit sha1; + }; - version = "${branch}." + config.${branch}.ver_min; + buildInputs = [ zlib apr aprutil sqlite ] + ++ stdenv.lib.optional httpSupport serf + ++ stdenv.lib.optional pythonBindings python + ++ stdenv.lib.optional perlBindings perl + ++ stdenv.lib.optional saslSupport sasl; - name = "subversion-${version}"; + configureFlags = '' + ${if bdbSupport then "--with-berkeley-db" else "--without-berkeley-db"} + ${if httpServer then "--with-apxs=${apacheHttpd}/bin/apxs" else "--without-apxs"} + ${if pythonBindings || perlBindings then "--with-swig=${swig}" else "--without-swig"} + ${if javahlBindings then "--enable-javahl --with-jdk=${jdk}" else ""} + --disable-keychain + ${if saslSupport then "--with-sasl=${sasl}" else "--without-sasl"} + ${if httpSupport then "--with-serf=${serf}" else "--without-serf"} + --with-zlib=${zlib} + --with-sqlite=${sqlite} + ''; - src = fetchurl { - url = "mirror://apache/subversion/${name}.tar.bz2"; - inherit (config.${branch}) sha1; + preBuild = '' + makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules) + ''; + + postInstall = '' + if test -n "$pythonBindings"; then + make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + fi + + if test -n "$perlBindings"; then + make swig-pl-lib + make install-swig-pl-lib + cd subversion/bindings/swig/perl/native + perl Makefile.PL PREFIX=$out + make install + cd - + fi + + mkdir -p $out/share/bash-completion/completions + cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion + ''; + + inherit perlBindings pythonBindings; + + enableParallelBuilding = true; + + meta = { + description = "A version control system intended to be a compelling replacement for CVS in the open source community"; + homepage = http://subversion.apache.org/; + maintainers = with stdenv.lib.maintainers; [ eelco lovek323 ]; + hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + }; + + } // stdenv.lib.optionalAttrs stdenv.isDarwin { + CXX = "clang++"; + CC = "clang"; + CPP = "clang -E"; + CXXCPP = "clang++ -E"; + }); + +in { + + subversion18 = common { + version = "1.8.14"; + sha1 = "0698efc58373e7657f6dd3ce13cab7b002ffb497"; }; - buildInputs = [ zlib apr aprutil sqlite ] - ++ stdenv.lib.optional httpSupport serf - ++ stdenv.lib.optional pythonBindings python - ++ stdenv.lib.optional perlBindings perl - ++ stdenv.lib.optional saslSupport sasl; - - configureFlags = '' - ${if bdbSupport then "--with-berkeley-db" else "--without-berkeley-db"} - ${if httpServer then "--with-apxs=${apacheHttpd}/bin/apxs" else "--without-apxs"} - ${if pythonBindings || perlBindings then "--with-swig=${swig}" else "--without-swig"} - ${if javahlBindings then "--enable-javahl --with-jdk=${jdk}" else ""} - --disable-keychain - ${if saslSupport then "--with-sasl=${sasl}" else "--without-sasl"} - ${if httpSupport then "--with-serf=${serf}" else "--without-serf"} - --with-zlib=${zlib} - --with-sqlite=${sqlite} - ''; - - preBuild = '' - makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules) - ''; - - postInstall = '' - if test -n "$pythonBindings"; then - make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn - make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn - fi - - if test -n "$perlBindings"; then - make swig-pl-lib - make install-swig-pl-lib - cd subversion/bindings/swig/perl/native - perl Makefile.PL PREFIX=$out - make install - cd - - fi - - mkdir -p $out/share/bash-completion/completions - cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion - ''; - - inherit perlBindings pythonBindings; - - enableParallelBuilding = true; - - meta = { - description = "A version control system intended to be a compelling replacement for CVS in the open source community"; - homepage = http://subversion.apache.org/; - maintainers = with stdenv.lib.maintainers; [ eelco lovek323 ]; - hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + subversion19 = common { + version = "1.9.2"; + sha1 = "fb9db3b7ddf48ae37aa8785872301b59bfcc7017"; }; -} // stdenv.lib.optionalAttrs stdenv.isDarwin { - CXX = "clang++"; - CC = "clang"; - CPP = "clang -E"; - CXXCPP = "clang++ -E"; -}) + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 674a3ea639ed..5fa7ca1ad0ea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13217,18 +13217,21 @@ let sublime3 = lowPrio (callPackage ../applications/editors/sublime3 { }); - subversion = callPackage ../applications/version-management/subversion/default.nix { - bdbSupport = true; - httpServer = false; - httpSupport = true; - pythonBindings = false; - perlBindings = false; - javahlBindings = false; - saslSupport = false; - sasl = cyrus_sasl; - }; + inherit (callPackages ../applications/version-management/subversion/default.nix { + bdbSupport = true; + httpServer = false; + httpSupport = true; + pythonBindings = false; + perlBindings = false; + javahlBindings = false; + saslSupport = false; + sasl = cyrus_sasl; + }) + subversion18 subversion19; - subversionClient = appendToName "client" (subversion.override { + subversion = pkgs.subversion19; + + subversionClient = appendToName "client" (pkgs.subversion.override { bdbSupport = false; perlBindings = true; pythonBindings = true; @@ -14527,7 +14530,11 @@ let libcanberra = libcanberra_kde; boost = boost155; kdelibs = kdeApps_15_08.kdelibs; - subversionClient = subversionClient.override { branch = "1.8"; }; + subversionClient = pkgs.subversion18.override { + bdbSupport = false; + perlBindings = true; + pythonBindings = true; + }; } ../desktops/kde-4.14;