* Subversion with Java bindings.

svn path=/nixpkgs/trunk/; revision=1322
This commit is contained in:
Eelco Dolstra 2004-08-23 19:23:03 +00:00
parent 57978bb80c
commit 38f56c36dc
6 changed files with 130 additions and 13 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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)

View File

@ -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

View File

@ -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;
}

View File

@ -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;