summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Ludd <solar@gentoo.org>2004-06-07 14:37:38 +0000
committerNed Ludd <solar@gentoo.org>2004-06-07 14:37:38 +0000
commita742f5d5247b7e5855568aeb855ccca27a627020 (patch)
tree917bd71943c19ea8bbc126ed7cd2aae0b094fdc5
parentremove me from metadata (diff)
downloadhistorical-a742f5d5247b7e5855568aeb855ccca27a627020.tar.gz
historical-a742f5d5247b7e5855568aeb855ccca27a627020.tar.bz2
historical-a742f5d5247b7e5855568aeb855ccca27a627020.zip
added pre-1.0.5 patch to subversion
-rw-r--r--dev-util/subversion/ChangeLog8
-rw-r--r--dev-util/subversion/Manifest31
-rw-r--r--dev-util/subversion/files/digest-subversion-1.0.4-r11
-rw-r--r--dev-util/subversion/files/subversion-pre-1.0.5.patch91
-rw-r--r--dev-util/subversion/subversion-1.0.4-r1.ebuild311
5 files changed, 433 insertions, 9 deletions
diff --git a/dev-util/subversion/ChangeLog b/dev-util/subversion/ChangeLog
index 635e41c3a4c4..e1182a6b26be 100644
--- a/dev-util/subversion/ChangeLog
+++ b/dev-util/subversion/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-util/subversion
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/subversion/ChangeLog,v 1.76 2004/06/07 11:35:32 pauldv Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-util/subversion/ChangeLog,v 1.77 2004/06/07 14:37:38 solar Exp $
+
+*subversion-1.0.4-r1 (07 Jun 2004)
+
+ 07 Jun 2004; <solar@gentoo.org> subversion-1.0.4-r1.ebuild,
+ files/subversion-pre-1.0.5.patch:
+ added pre-1.0.5 patch to subversion
07 Jun 2004; Paul de Vrieze <pauldv@gentoo.org> subversion-1.0.4.ebuild:
Do not longer install the apache config file when the module is not
diff --git a/dev-util/subversion/Manifest b/dev-util/subversion/Manifest
index 34dd474aad05..0852254b1552 100644
--- a/dev-util/subversion/Manifest
+++ b/dev-util/subversion/Manifest
@@ -1,16 +1,31 @@
-MD5 216da8c738e6a712699303028bac340c subversion-1.0.4.ebuild 9387
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+MD5 0faad4ffbb6af5bfa0509323fc2cd2d4 ChangeLog 13632
MD5 8fbcd267012fd1eef74d5161888cc7b8 metadata.xml 222
MD5 876f1949225234b75c93c269ab3bed3c subversion-1.0.2.ebuild 9231
-MD5 6793caae5f00ff64b1f91c221a764556 ChangeLog 13459
+MD5 4d01c4206eefc31f6fd3beeb18c33100 subversion-1.0.3.ebuild 9237
MD5 6601903057f11ebfe20fb631477a2063 subversion-0.32.1.ebuild 8139
MD5 4fe1c6e4550d30bf61d45b2268c1454f subversion-0.27.0.ebuild 7890
+MD5 c8018311d910c21c9f8c779af3174e86 subversion-1.0.4.ebuild 9388
+MD5 d1a10d0ca97cb2b332b4916a989dcc7f subversion-1.0.4-r1.ebuild 9433
MD5 9a30df8be0f38758b5f2a56172df06a2 subversion-1.0.1.ebuild 8717
-MD5 4d01c4206eefc31f6fd3beeb18c33100 subversion-1.0.3.ebuild 9237
-MD5 e232822bee0a8ed00f6b9d7805b83307 files/digest-subversion-0.27.0 132
+MD5 a92dea7d8f92e84faf8e695b2bd93d42 files/digest-subversion-1.0.2 70
+MD5 13e74109573f8771bd51e54f3f7ece95 files/digest-subversion-1.0.3 70
MD5 69cf99186dd88a6b26c6c121fc4c16a9 files/digest-subversion-0.32.1 132
-MD5 4fd39b311d09602c93a9ff0aceaf8596 files/70svn-gentoo.el 136
+MD5 e232822bee0a8ed00f6b9d7805b83307 files/digest-subversion-0.27.0 132
MD5 ce6f3698724b55cf49e647727207cca5 files/subversion-db4.patch 563
-MD5 44e762d79cdf7048a3300c29c77f0e81 files/digest-subversion-1.0.1 70
MD5 8cfa170f6a78d0d7a1ab27cd35753efd files/digest-subversion-1.0.4 70
-MD5 a92dea7d8f92e84faf8e695b2bd93d42 files/digest-subversion-1.0.2 70
-MD5 13e74109573f8771bd51e54f3f7ece95 files/digest-subversion-1.0.3 70
+MD5 4fd39b311d09602c93a9ff0aceaf8596 files/70svn-gentoo.el 136
+MD5 5246b9044c4d5fbd25d9e15268495fc2 files/subversion-pre-1.0.5.patch 3268
+MD5 8cfa170f6a78d0d7a1ab27cd35753efd files/digest-subversion-1.0.4-r1 70
+MD5 44e762d79cdf7048a3300c29c77f0e81 files/digest-subversion-1.0.1 70
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.2.4 (GNU/Linux)
+
+iQCVAwUBQMR9YZ4WFLgrx1GWAQIAEQP/QrExq5Me4ix2xyDymDjtjfT1AOYhaWUS
+JS6tjYeLn6e65ZUndVZX2wxIgK79r+FT/EgMHKId1Pa6pBuELE7hY5eMhCE2epMt
+2ytRsqOneD0tBqyEM6jf2Fjn5p3rKYkX/328dlPNFlbQ2DAAzHWdSCCT/bo+VQKB
+VUHnHPAQjv0=
+=vfcS
+-----END PGP SIGNATURE-----
diff --git a/dev-util/subversion/files/digest-subversion-1.0.4-r1 b/dev-util/subversion/files/digest-subversion-1.0.4-r1
new file mode 100644
index 000000000000..07f7ef91db63
--- /dev/null
+++ b/dev-util/subversion/files/digest-subversion-1.0.4-r1
@@ -0,0 +1 @@
+MD5 313bd03f353683de7561eadf477f7612 subversion-1.0.4.tar.bz2 6081806
diff --git a/dev-util/subversion/files/subversion-pre-1.0.5.patch b/dev-util/subversion/files/subversion-pre-1.0.5.patch
new file mode 100644
index 000000000000..a73338552201
--- /dev/null
+++ b/dev-util/subversion/files/subversion-pre-1.0.5.patch
@@ -0,0 +1,91 @@
+Index: subversion/libsvn_ra_svn/marshal.c
+===================================================================
+--- subversion/libsvn_ra_svn/marshal.c (revision 9837)
++++ subversion/libsvn_ra_svn/marshal.c (working copy)
+@@ -479,13 +479,49 @@
+
+ /* --- READING DATA ITEMS --- */
+
++/* Read LEN bytes from CONN into already-allocated structure ITEM.
++ * Afterwards, *ITEM is of type 'SVN_RA_SVN_STRING', and its string
++ * data is allocated in POOL. */
++static svn_error_t *read_string(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
++ svn_ra_svn_item_t *item, apr_uint64_t len)
++{
++ char readbuf[4096];
++ apr_size_t readbuf_len;
++ svn_stringbuf_t *stringbuf = svn_stringbuf_create ("", pool);
++
++ /* We can't store strings longer than the maximum size of apr_size_t,
++ * so check for wrapping */
++ if (((apr_size_t) len) < len)
++ return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
++ "String length larger than maximum");
++
++ while (len)
++ {
++ readbuf_len = len > sizeof(readbuf) ? sizeof(readbuf) : len;
++
++ SVN_ERR(readbuf_read(conn, pool, readbuf, readbuf_len));
++ /* Read into a stringbuf_t to so we don't allow the sender to allocate
++ * an arbitrary amount of memory without actually sending us that much
++ * data */
++ svn_stringbuf_appendbytes(stringbuf, readbuf, readbuf_len);
++ len -= readbuf_len;
++ }
++
++ item->kind = SVN_RA_SVN_STRING;
++ item->u.string = apr_palloc(pool, sizeof(*item->u.string));
++ item->u.string->data = stringbuf->data;
++ item->u.string->len = stringbuf->len;
++
++ return SVN_NO_ERROR;
++}
++
+ /* Given the first non-whitespace character FIRST_CHAR, read an item
+ * into the already allocated structure ITEM. */
+ static svn_error_t *read_item(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
+ svn_ra_svn_item_t *item, char first_char)
+ {
+- char c = first_char, *strdata;
+- apr_uint64_t val;
++ char c = first_char;
++ apr_uint64_t val, prev_val=0;
+ svn_stringbuf_t *str;
+ svn_ra_svn_item_t *listitem;
+
+@@ -498,21 +534,19 @@
+ val = c - '0';
+ while (1)
+ {
++ prev_val = val;
+ SVN_ERR(readbuf_getchar(conn, pool, &c));
+ if (!apr_isdigit(c))
+ break;
+ val = val * 10 + (c - '0');
++ if ((val / 10) != prev_val) /* val wrapped past maximum value */
++ return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
++ "Number is larger than maximum");
+ }
+ if (c == ':')
+ {
+ /* It's a string. */
+- strdata = apr_palloc(pool, val + 1);
+- SVN_ERR(readbuf_read(conn, pool, strdata, val));
+- strdata[val] = '\0';
+- item->kind = SVN_RA_SVN_STRING;
+- item->u.string = apr_palloc(pool, sizeof(*item->u.string));
+- item->u.string->data = strdata;
+- item->u.string->len = val;
++ SVN_ERR(read_string(conn, pool, item, val));
+ SVN_ERR(readbuf_getchar(conn, pool, &c));
+ }
+ else
+@@ -521,7 +555,6 @@
+ item->kind = SVN_RA_SVN_NUMBER;
+ item->u.number = val;
+ }
+- return SVN_NO_ERROR;
+ }
+ else if (apr_isalpha(c))
+ { \ No newline at end of file
diff --git a/dev-util/subversion/subversion-1.0.4-r1.ebuild b/dev-util/subversion/subversion-1.0.4-r1.ebuild
new file mode 100644
index 000000000000..497005894677
--- /dev/null
+++ b/dev-util/subversion/subversion-1.0.4-r1.ebuild
@@ -0,0 +1,311 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/subversion/subversion-1.0.4-r1.ebuild,v 1.1 2004/06/07 14:37:38 solar Exp $
+
+inherit elisp-common libtool python eutils
+
+DESCRIPTION="A compelling replacement for CVS"
+SRC_URI="http://subversion.tigris.org/tarballs/${P}.tar.bz2"
+HOMEPAGE="http://subversion.tigris.org/"
+
+SLOT="0"
+LICENSE="Apache-1.1"
+KEYWORDS="~x86 ~sparc ~ppc ~amd64 ~alpha"
+IUSE="ssl apache2 berkdb python emacs perl java"
+
+S=${WORKDIR}/${PN}-${PV}
+
+#Allow for custion repository locations
+if [ "${SVN_REPOS_LOC}x" = "x" ]; then
+ SVN_REPOS_LOC="/var/svn"
+fi
+
+#
+#
+# Note that to disable the server part of subversion you need to specify
+# USE="-berkdb" emerge subversion.
+#
+#
+
+RDEPEND="python? ( >=dev-lang/python-2.0 )
+ apache2? ( >=net-www/apache-2.0.48 )
+ !apache2? ( !>=net-www/apache-2* )
+ !dev-libs/apr
+ python? ( || ( >=dev-lang/swig-1.3.21
+ =dev-lang/swig-1.3.19
+ ) )
+ perl? ( !python? ( || ( >=dev-lang/swig-1.3.21
+ =dev-lang/swig-1.3.19
+ ) )
+ >=dev-lang/perl-5.8 )
+ >=net-misc/neon-0.24.4
+ berkdb? ( =sys-libs/db-4*
+ java? ( virtual/jdk ) )
+ emacs? ( virtual/emacs )"
+
+DEPEND="${RDEPEND}
+ || (
+ >=sys-devel/autoconf-2.59
+ =sys-devel/autoconf-2.57*
+ )
+ !=sys-devel/autoconf-2.58"
+
+pkg_setup() {
+ if has_version =sys-devel/autoconf-2.58*; then
+ die "Subversion WILL NOT BUILD with autoconf-2.58"
+ fi
+
+ if use berkdb && has_version '<dev-util/subversion-0.34.0' && [ "${SVN_DUMPED}" == "" ]; then
+ einfo ""
+ ewarn ": Now you have $(best_version subversion)"
+ ewarn " Subversion has changed the repository filesystem schema from 0.34.0."
+ ewarn " So you MUST dump your repositories before upgrading."
+ ewarn ""
+ ewarn "After doing so call emerge with SVN_DUMPED=1 emerge !!"
+ einfo ""
+ einfo "More details on dumping:"
+ einfo "http://svn.collab.net/repos/svn/trunk/notes/repos_upgrade_HOWTO"
+ die "ensure that you dump your repository first"
+ fi
+
+ if use apache2; then
+ einfo "The apache2 subversion module will be built, and libapr from the"
+ einfo "apache package will be used instead of the included."
+ else
+ einfo "Please note that subversion and apache2 cannot be installed"
+ einfo "simultaneously without specifying the apache2 use flag. This is"
+ einfo "because subversion installs its own libapr and libapr-util in that"
+ einfo "case. Specifying the apache2 useflag will also enable the building of"
+ einfo "the apache2 module."
+ fi
+}
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${PN}-${PV}.tar.bz2
+ cd ${S}
+
+ epatch ${FILESDIR}/subversion-db4.patch
+ epatch ${FILESDIR}/${PN}-pre-1.0.5.patch
+
+ export WANT_AUTOCONF_2_5=1
+ elibtoolize
+ autoconf
+ (cd apr; autoconf)
+ (cd apr-util; autoconf)
+ sed -i -e 's,\(subversion/svnversion/svnversion\)\(>.*svn-revision.txt\),echo "external" \2,' Makefile.in
+}
+
+src_compile() {
+ local myconf
+
+ cd ${S}
+ use ssl && myconf="${myconf} --with-ssl"
+ use ssl || myconf="${myconf} --without-ssl"
+
+ use apache2 && myconf="${myconf} --with-apxs=/usr/sbin/apxs2 \
+ --with-apr=/usr --with-apr-util=/usr"
+ use apache2 || myconf="${myconf} --without-apxs"
+
+ use berkdb && myconf="${myconf} --with-berkeley-db"
+ use berkdb || myconf="${myconf} --without-berkeley-db"
+
+ use python && myconf="${myconf} --with-python=/usr/bin/python --with-swig"
+ use python || myconf="${myconf} --without-python --without-swig"
+
+ econf ${myconf} \
+ --with-neon=/usr \
+ --disable-experimental-libtool \
+ --disable-mod-activation ||die "configuration failed"
+
+
+ # build subversion, but do it in a way that is safe for paralel builds
+ # Also apparently the included apr does have a libtool that doesn't like
+ # -L flags. So not specifying it at all when not building apache modules
+ # and only specify it for internal parts otherwise
+ if use apache2; then
+ ( emake external-all && emake LT_LDFLAGS="-L${D}/usr/lib" local-all ) || die "make of subversion failed"
+ else
+ ( emake external-all && emake local-all ) || die "make of subversion failed"
+ fi
+
+ #building fails without the apache apr-util as includes are wrong.
+ #Also the python bindings do not work without db installed
+ if use berkdb; then
+ if use python; then
+ if use apache2; then
+ emake swig-py || die "subversion python bindings failed"
+ else
+ emake SVN_APR_INCLUDES="-I${S}/apr/include -I${S}/apr-util/include" swig-py || die "subversion python bindings failed"
+ fi
+ fi
+ if use perl; then
+ make swig-pl-lib || die "Perl library building failed"
+ cd subversion/bindings/swig/perl
+ APR_CONFIG=/usr/bin/apr-config DESTDIR=${D} perl Makefile.PL
+ make all
+ cd ${S}
+ fi
+ if use java; then
+ cd ${S}/subversion/bindings/java/javahl
+ WANT_AUTOMAKE=1.6 WANT_AUTOCONF=2.53 ./autogen.sh
+ use apache2 && myconfj="--with-apxs=/usr/sbin/apxs2 \
+ --with-apr=/usr --with-apr-util=/usr"
+ use apache2 || myconfj=""
+ econf ${myconfj} || die "Configuration failed"
+ make || die "Compilation failed"
+ cd ${S}
+ fi
+ fi
+ cd ${S}
+ if use emacs; then
+ einfo "compiling emacs support"
+ elisp-compile ${S}/contrib/client-side/psvn/psvn.el || die "emacs modules failed"
+ elisp-compile ${S}/contrib/client-side/vc-svn.el || die "emacs modules failed"
+ fi
+}
+
+
+src_install () {
+ use apache2 && mkdir -p ${D}/etc/apache2/conf
+
+ python_version
+ PYTHON_DIR=/usr/lib/python${PYVER}
+
+ make DESTDIR=${D} install || die "Installation of subversion failed"
+ if [ -e ${D}/usr/lib/apache2 ]; then
+ if has_version '>=net-www/apache-2.0.48-r2'; then
+ mv ${D}/usr/lib/apache2/modules ${D}/usr/lib/apache2-extramodules
+ rmdir ${D}/usr/lib/apache2
+ else
+ mv ${D}/usr/lib/apache2 ${D}/usr/lib/apache2-extramodules
+ fi
+ fi
+
+ if use berkdb; then
+ dobin svn-config
+ if use python; then
+ make install-swig-py DESTDIR=${D} DISTUTIL_PARAM=--prefix=${D} LD_LIBRARY_PATH="-L${D}/usr/lib" || die "Installation of subversion python bindings failed"
+ # install cvs2svn
+ dobin tools/cvs2svn/cvs2svn.py
+ mv ${D}/usr/bin/cvs2svn.py ${D}/usr/bin/cvs2svn
+ doman tools/cvs2svn/cvs2svn.1
+
+ # move python bindings
+ mkdir -p ${D}${PYTHON_DIR}/site-packages
+ cp -r tools/cvs2svn/rcsparse ${D}${PYTHON_DIR}/site-packages
+ mv ${D}/usr/lib/svn-python/svn ${D}${PYTHON_DIR}/site-packages
+ mv ${D}/usr/lib/svn-python/libsvn ${D}${PYTHON_DIR}/site-packages
+ rmdir ${D}/usr/lib/svn-python
+ fi
+ if use perl; then
+ make DESTDIR=${D} install-swig-pl-lib || die "Perl library building failed"
+ cd subversion/bindings/swig/perl
+ make DESTDIR=${D} install
+ cd ${S}
+ fi
+ if use java; then
+ cd ${S}/subversion/bindings/java/javahl
+ make DESTDIR="${D}" install || die "installation failed"
+ cd ${S}
+ fi
+ fi
+
+ dodoc BUGS COMMITTERS COPYING HACKING INSTALL README
+ dodoc CHANGES
+ dodoc tools/xslt/svnindex.css tools/xslt/svnindex.xsl
+
+ # install documentation
+ docinto notes
+ for f in notes/*
+ do
+ [ -f ${f} ] && dodoc ${f}
+ done
+
+ cd ${S}
+ echo "installing html book"
+ dohtml -r doc/book/book/book.html doc/book/book/styles.css doc/book/book/images
+
+ # install emacs lisps
+ if use emacs; then
+ insinto /usr/share/emacs/site-lisp/subversion
+ doins contrib/client-side/psvn/psvn.el*
+ doins contrib/client-side/vc-svn.el*
+
+ elisp-site-file-install ${FILESDIR}/70svn-gentoo.el
+ fi
+
+
+
+ #Install apache module config
+ if useq apache2 && useq berkdb; then
+ mkdir -p ${D}/etc/apache2/conf/modules.d
+ cat <<EOF >${D}/etc/apache2/conf/modules.d/47_mod_dav_svn.conf
+<IfDefine SVN>
+ <IfModule !mod_dav_svn.c>
+ LoadModule dav_svn_module extramodules/mod_dav_svn.so
+ </IfModule>
+ <Location /svn/repos>
+ DAV svn
+ SVNPath ${SVN_REPOS_LOC}/repos
+ AuthType Basic
+ AuthName "Subversion repository"
+ AuthUserFile ${SVN_REPOS_LOC}/conf/svnusers
+ Require valid-user
+ </Location>
+</IfDefine>
+EOF
+ fi
+}
+
+pkg_postinst() {
+
+ use emacs && elisp-site-regen
+ if use berkdb; then
+ if use apache2; then
+ einfo "Subversion has multiple server types. To enable the http based version"
+ einfo "you must edit /etc/conf.d/apache2 to include both \"-D DAV\" and \"-D SVN\""
+ einfo ""
+ fi
+ einfo "A repository needs to be created using the ebuild ${PN} config command"
+ einfo ""
+ einfo "If you upgraded from an older version of berkely db and experience"
+ einfo "problems with your repository then run the following command:"
+ einfo " su apache -c \"db4_recover -h /path/to/repos\""
+
+ if use apache2; then
+ einfo ""
+ einfo "To allow web access a htpasswd file needs to be created using the"
+ einfo "following command:"
+ einfo " htpasswd2 -m -c ${SVN_REPOS_LOC}/conf/svnusers USERNAME"
+ fi
+
+ else
+ einfo "Your subversion is client only as the server is only build when"
+ einfo "the berkdb flag is set"
+ fi
+}
+
+pkg_postrm() {
+ has_version virtual/emacs && elisp-site-regen
+}
+
+pkg_config() {
+ if [ ! -x /usr/bin/svnadmin ]; then
+ die "You seem to only have build the subversion client"
+ fi
+ einfo ">>> Initializing the database in ${SVN_REPOS_LOC}..."
+ if [ -f ${SVN_REPOS_LOC}/repos ] ; then
+ echo "A subversion repository already exists and I will not overwrite it."
+ echo "Delete ${SVN_REPOS_LOC}/repos first if you're sure you want to have a clean version."
+ else
+ mkdir -p ${SVN_REPOS_LOC}/conf
+ einfo ">>> Populating repository directory ..."
+ # create initial repository
+ /usr/bin/svnadmin create ${SVN_REPOS_LOC}/repos
+
+ einfo ">>> Setting repository permissions ..."
+ chown -Rf apache:apache ${SVN_REPOS_LOC}/repos
+ chmod -Rf 755 ${SVN_REPOS_LOC}/repos
+ fi
+}