diff --git a/pkgs/applications/version-management/subversion-1.1rc/builder.sh b/pkgs/applications/version-management/subversion-1.1rc/builder.sh new file mode 100644 index 000000000000..dcfdee5b2a53 --- /dev/null +++ b/pkgs/applications/version-management/subversion-1.1rc/builder.sh @@ -0,0 +1,44 @@ +buildInputs="$openssl $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 "$pythonBindings"; then + configureFlags="--with-swig=$swig $configureFlags" +fi + +if test "$javaBindings"; 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 "$javaBindings"; then + mkdir subversion/bindings/java/javahl/classes # bug fix + make javahl + make install-javahl + fi +} +postInstall=postInstall + + +genericBuild diff --git a/pkgs/applications/version-management/subversion-1.1rc/default.nix b/pkgs/applications/version-management/subversion-1.1rc/default.nix new file mode 100644 index 000000000000..e31dc7941113 --- /dev/null +++ b/pkgs/applications/version-management/subversion-1.1rc/default.nix @@ -0,0 +1,40 @@ +{ localServer ? false +, httpServer ? false +, sslSupport ? false +, pythonBindings ? false +, javaBindings ? false +, stdenv, fetchurl +, openssl ? null, httpd ? null, db4 ? null, expat, swig ? null, patch +}: + +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 javaBindings -> swig != null && swig.javaSupport; + +stdenv.mkDerivation { + name = "subversion-1.1.0pre-rc2"; + + builder = ./builder.sh; + src = fetchurl { + url = http://subversion.tigris.org/tarballs/subversion-1.1.0-rc2.tar.bz2; + md5 = "ecd53e9f065739023da768891b83b70e"; + }; + + # 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 javaBindings then [./javahl.patch] else []; + + openssl = if sslSupport then openssl else null; + httpd = if httpServer then httpd else null; + db4 = if localServer then db4 else null; + swig = if pythonBindings || javaBindings then swig else null; + python = if pythonBindings then swig.python else null; + j2sdk = if javaBindings then swig.j2sdk else null; + + inherit expat patch localServer httpServer sslSupport + pythonBindings javaBindings; +} diff --git a/pkgs/applications/version-management/subversion-1.1rc/javahl.patch b/pkgs/applications/version-management/subversion-1.1rc/javahl.patch new file mode 100644 index 000000000000..ee306f93e242 --- /dev/null +++ b/pkgs/applications/version-management/subversion-1.1rc/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/development/tools/misc/swig/builder.sh b/pkgs/development/tools/misc/swig/builder.sh index 10d96cbea53c..d57a2199f737 100644 --- a/pkgs/development/tools/misc/swig/builder.sh +++ b/pkgs/development/tools/misc/swig/builder.sh @@ -1,8 +1,3 @@ -buildinputs="$perl $python" -. $stdenv/setup || exit 1 - -tar xvfz $src || exit 1 -cd SWIG-* || exit 1 -./configure --prefix=$out || exit 1 -make || exit 1 -make install || exit 1 +buildInputs="$perl $python $j2sdk" +. $stdenv/setup +genericBuild diff --git a/pkgs/development/tools/misc/swig/default.nix b/pkgs/development/tools/misc/swig/default.nix index d0dd0a8cd3d7..e8ba2d23f987 100644 --- a/pkgs/development/tools/misc/swig/default.nix +++ b/pkgs/development/tools/misc/swig/default.nix @@ -1,8 +1,9 @@ -{ perlSupport, pythonSupport -, stdenv, fetchurl, perl ? null, python ? null}: +{ perlSupport, pythonSupport, javaSupport +, stdenv, fetchurl, perl ? null, python ? null, j2sdk ? null}: assert perlSupport -> perl != null; assert pythonSupport -> python != null; +assert javaSupport -> j2sdk != null; stdenv.mkDerivation { name = "swig-1.3.19"; @@ -13,9 +14,9 @@ stdenv.mkDerivation { md5 = "a733455544426b31868dd87fc162e750"; }; - perlSupport = perlSupport; - pythonSupport = pythonSupport; + inherit perlSupport pythonSupport javaSupport; perl = if perlSupport then perl else null; python = if pythonSupport then python else null; + j2sdk = if javaSupport then j2sdk else null; } \ No newline at end of file diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix index f9d865e55af3..f343cc313719 100644 --- a/pkgs/system/all-packages-generic.nix +++ b/pkgs/system/all-packages-generic.nix @@ -190,6 +190,14 @@ rec { inherit fetchurl stdenv perl python; perlSupport = true; pythonSupport = true; + javaSupport = false; + }; + + swigWithJava = (import ../development/tools/misc/swig) { + inherit fetchurl stdenv j2sdk; + perlSupport = false; + pythonSupport = false; + javaSupport = true; }; valgrind = (import ../development/tools/misc/valgrind) { @@ -669,10 +677,19 @@ rec { localServer = true; httpServer = false; sslSupport = true; - swigBindings = false; httpd = apacheHttpd; }; + subversionWithJava = (import ../applications/version-management/subversion-1.1rc) { + inherit fetchurl stdenv openssl db4 expat patch; + swig = swigWithJava; + localServer = true; + httpServer = false; + sslSupport = true; + httpd = apacheHttpd; + javaBindings = true; + }; + pan = (import ../applications/networking/newsreaders/pan) { inherit fetchurl stdenv pkgconfig gnet libxml2 perl pcre; inherit (gtkLibs) gtk;