diff --git a/pkgs/applications/version-management/subversion-1.2.x/builder.sh b/pkgs/applications/version-management/subversion-1.2.x/builder.sh new file mode 100644 index 000000000000..168ba61c7929 --- /dev/null +++ b/pkgs/applications/version-management/subversion-1.2.x/builder.sh @@ -0,0 +1,60 @@ +buildInputs="$openssl $zlib $db4 $httpd $swig $python $j2sdk $expat $patch" +. $stdenv/setup + +configureFlags="--without-gdbm --disable-static" + +if test "$localServer"; then + configureFlags="--with-berkeley-db=$db4 $configureFlags" +fi + +if test "$sslSupport"; then + configureFlags="--with-ssl --with-libs=$openssl $configureFlags" +fi + +if test "$httpServer"; then + configureFlags="--with-apxs=$httpd/bin/apxs --with-apr=$httpd --with-apr-util=$httpd $configureFlags" + makeFlags="APACHE_LIBEXECDIR=$out/modules $makeFlags" +fi + +if test -n "$pythonBindings" -o -n "$javaSwigBindings"; then + configureFlags="--with-swig=$swig $configureFlags" +fi + +if test "$javahlBindings"; then + configureFlags="--enable-javahl --with-jdk=$j2sdk $configureFlags" +fi + +installFlags="$makeFlags" + + +postInstall() { + if test "$pythonBindings"; then + make swig-py + make install-swig-py + fi + if test "$javaSwigBindings"; then + # Hack to get Java-Swig bindings to build if Python is not in + # scope (this fails because Subversion's configure script does + # something silly like `SWIG_JAVA_COMPILE="$SWIG_PY_COMPILE"'). + FL1='SWIG_JAVA_COMPILE=gcc' + FL2='SWIG_JAVA_LINK=gcc -L$(SWIG_BUILD_DIR)/.libs' + make swig-java "$FL1" "$FL2" + make swig-java-api "$FL1" "$FL2" + make swig-java-java "$FL1" "$FL2" + make install-swig-java "$FL1" "$FL2" + fi + if test "$javahlBindings"; then + mkdir -p subversion/bindings/java/javahl/classes # bug fix + make javahl + make install-javahl + mkdir -p $out/share/doc/$name + $j2sdk/bin/javadoc -d $out/share/doc/$name \ + -windowtitle "JavaHL Subversion Bindings" \ + -link http://java.sun.com/j2se/1.4.2/docs/api/ \ + subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/*.java + fi +} +postInstall=postInstall + + +genericBuild diff --git a/pkgs/applications/version-management/subversion-1.2.x/default.nix b/pkgs/applications/version-management/subversion-1.2.x/default.nix new file mode 100644 index 000000000000..ca565cca3f42 --- /dev/null +++ b/pkgs/applications/version-management/subversion-1.2.x/default.nix @@ -0,0 +1,46 @@ +{ localServer ? false +, httpServer ? false +, sslSupport ? false +, compressionSupport ? false +, pythonBindings ? false +, javaSwigBindings ? false +, javahlBindings ? false +, stdenv, fetchurl +, openssl ? null, httpd ? null, db4 ? null, expat, swig ? null, j2sdk ? null, zlib ? null +}: + +assert expat != null; +assert localServer -> db4 != null; +assert httpServer -> httpd != null && httpd.expat == expat; +assert sslSupport -> openssl != null && (httpServer -> httpd.openssl == openssl); +assert pythonBindings -> swig != null && swig.pythonSupport; +assert javaSwigBindings -> swig != null && swig.javaSupport; +assert javahlBindings -> j2sdk != null; +assert compressionSupport -> zlib != null; + +stdenv.mkDerivation { + name = "subversion-1.2.0-pre-rc2"; + + builder = ./builder.sh; + src = fetchurl { + url = http://subversion.tigris.org/downloads/subversion-1.2.0-rc2.tar.bz2; + md5 = "342acdc60e41232ba3b686913e1cad24"; + }; + + # This is a hopefully temporary fix for the problem that + # libsvnjavahl.so isn't linked against libstdc++, which causes + # loading the library into the JVM to fail. + patches = if javahlBindings then [./javahl.patch] else []; + + openssl = if sslSupport then openssl else null; + zlib = if compressionSupport then zlib else null; + httpd = if httpServer then httpd else null; + db4 = if localServer then db4 else null; + swig = if pythonBindings || javaSwigBindings then swig else null; + python = if pythonBindings then swig.python else null; + j2sdk = if javaSwigBindings then swig.j2sdk else + if javahlBindings then j2sdk else null; + + inherit expat localServer httpServer sslSupport + pythonBindings javaSwigBindings javahlBindings; +} diff --git a/pkgs/applications/version-management/subversion-1.2.x/javahl.patch b/pkgs/applications/version-management/subversion-1.2.x/javahl.patch new file mode 100644 index 000000000000..ee306f93e242 --- /dev/null +++ b/pkgs/applications/version-management/subversion-1.2.x/javahl.patch @@ -0,0 +1,20 @@ +diff -rc subversion-orig/build-outputs.mk subversion-1.1.0-rc2/build-outputs.mk +*** subversion-orig/build-outputs.mk 2004-08-10 20:17:32.000000000 +0200 +--- subversion-1.1.0-rc2/build-outputs.mk 2004-08-23 21:04:35.000000000 +0200 +*************** +*** 200,206 **** + libsvnjavahl_DEPS = subversion/bindings/java/javahl/native/BlameCallback.lo subversion/bindings/java/javahl/native/CommitMessage.lo subversion/bindings/java/javahl/native/Inputer.lo subversion/bindings/java/javahl/native/JNIByteArray.lo subversion/bindings/java/javahl/native/JNICriticalSection.lo subversion/bindings/java/javahl/native/JNIMutex.lo subversion/bindings/java/javahl/native/JNIStackElement.lo subversion/bindings/java/javahl/native/JNIStringHolder.lo subversion/bindings/java/javahl/native/JNIThreadData.lo subversion/bindings/java/javahl/native/JNIUtil.lo subversion/bindings/java/javahl/native/MessageReceiver.lo subversion/bindings/java/javahl/native/Notify.lo subversion/bindings/java/javahl/native/Outputer.lo subversion/bindings/java/javahl/native/Path.lo subversion/bindings/java/javahl/native/Pool.lo subversion/bindings/java/javahl/native/Prompter.lo subversion/bindings/java/javahl/native/Revision.lo subversion/bindings/java/javahl/native/SVNAdmin.lo subversion/bindings/java/javahl/native/SVNBase.lo subversion/bindings/java/javahl/native/SVNClient.lo subversion/bindings/java/javahl/native/Targets.lo subversion/bindings/java/javahl/native/libsvnjavahl.la.lo subversion/bindings/java/javahl/native/org_tigris_subversion_javahl_SVNAdmin.lo subversion/bindings/java/javahl/native/org_tigris_subversion_javahl_SVNClient.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la + libsvnjavahl_OBJECTS = BlameCallback.lo CommitMessage.lo Inputer.lo JNIByteArray.lo JNICriticalSection.lo JNIMutex.lo JNIStackElement.lo JNIStringHolder.lo JNIThreadData.lo JNIUtil.lo MessageReceiver.lo Notify.lo Outputer.lo Path.lo Pool.lo Prompter.lo Revision.lo SVNAdmin.lo SVNBase.lo SVNClient.lo Targets.lo libsvnjavahl.la.lo org_tigris_subversion_javahl_SVNAdmin.lo org_tigris_subversion_javahl_SVNClient.lo + subversion/bindings/java/javahl/native/libsvnjavahl-1.la: $(libsvnjavahl_DEPS) +! cd subversion/bindings/java/javahl/native && $(LINK_JAVAHL_CXX) -o libsvnjavahl-1.la $(LT_NO_UNDEFINED) $(libsvnjavahl_OBJECTS) ../../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(NEON_LIBS) $(LIBS) + + locale_DEPS = subversion/po/de.mo subversion/po/es.mo subversion/po/ja.mo subversion/po/nb.mo subversion/po/pl.mo subversion/po/sv.mo + locale: $(locale_DEPS) +--- 200,206 ---- + libsvnjavahl_DEPS = subversion/bindings/java/javahl/native/BlameCallback.lo subversion/bindings/java/javahl/native/CommitMessage.lo subversion/bindings/java/javahl/native/Inputer.lo subversion/bindings/java/javahl/native/JNIByteArray.lo subversion/bindings/java/javahl/native/JNICriticalSection.lo subversion/bindings/java/javahl/native/JNIMutex.lo subversion/bindings/java/javahl/native/JNIStackElement.lo subversion/bindings/java/javahl/native/JNIStringHolder.lo subversion/bindings/java/javahl/native/JNIThreadData.lo subversion/bindings/java/javahl/native/JNIUtil.lo subversion/bindings/java/javahl/native/MessageReceiver.lo subversion/bindings/java/javahl/native/Notify.lo subversion/bindings/java/javahl/native/Outputer.lo subversion/bindings/java/javahl/native/Path.lo subversion/bindings/java/javahl/native/Pool.lo subversion/bindings/java/javahl/native/Prompter.lo subversion/bindings/java/javahl/native/Revision.lo subversion/bindings/java/javahl/native/SVNAdmin.lo subversion/bindings/java/javahl/native/SVNBase.lo subversion/bindings/java/javahl/native/SVNClient.lo subversion/bindings/java/javahl/native/Targets.lo subversion/bindings/java/javahl/native/libsvnjavahl.la.lo subversion/bindings/java/javahl/native/org_tigris_subversion_javahl_SVNAdmin.lo subversion/bindings/java/javahl/native/org_tigris_subversion_javahl_SVNClient.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la + libsvnjavahl_OBJECTS = BlameCallback.lo CommitMessage.lo Inputer.lo JNIByteArray.lo JNICriticalSection.lo JNIMutex.lo JNIStackElement.lo JNIStringHolder.lo JNIThreadData.lo JNIUtil.lo MessageReceiver.lo Notify.lo Outputer.lo Path.lo Pool.lo Prompter.lo Revision.lo SVNAdmin.lo SVNBase.lo SVNClient.lo Targets.lo libsvnjavahl.la.lo org_tigris_subversion_javahl_SVNAdmin.lo org_tigris_subversion_javahl_SVNClient.lo + subversion/bindings/java/javahl/native/libsvnjavahl-1.la: $(libsvnjavahl_DEPS) +! cd subversion/bindings/java/javahl/native && $(LINK_JAVAHL_CXX) -o libsvnjavahl-1.la $(LT_NO_UNDEFINED) $(libsvnjavahl_OBJECTS) ../../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(NEON_LIBS) $(LIBS) -lstdc++ + + locale_DEPS = subversion/po/de.mo subversion/po/es.mo subversion/po/ja.mo subversion/po/nb.mo subversion/po/pl.mo subversion/po/sv.mo + locale: $(locale_DEPS) diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix index dba69ab661bd..91be9d85cdb5 100644 --- a/pkgs/system/all-packages-generic.nix +++ b/pkgs/system/all-packages-generic.nix @@ -1044,6 +1044,15 @@ rec { httpd = apacheHttpd; }; + subversion12x = (import ../applications/version-management/subversion-1.2.x) { + inherit fetchurl stdenv openssl db4 expat swig zlib; + localServer = true; + httpServer = false; + sslSupport = true; + compressionSupport = true; + httpd = apacheHttpd; + }; + subversionWithJava = (import ../applications/version-management/subversion-1.1.x) { inherit fetchurl stdenv openssl db4 expat; swig = swigWithJava;