diff options
author | Ned Ludd <solar@gentoo.org> | 2004-06-07 14:37:38 +0000 |
---|---|---|
committer | Ned Ludd <solar@gentoo.org> | 2004-06-07 14:37:38 +0000 |
commit | a742f5d5247b7e5855568aeb855ccca27a627020 (patch) | |
tree | 917bd71943c19ea8bbc126ed7cd2aae0b094fdc5 | |
parent | remove me from metadata (diff) | |
download | historical-a742f5d5247b7e5855568aeb855ccca27a627020.tar.gz historical-a742f5d5247b7e5855568aeb855ccca27a627020.tar.bz2 historical-a742f5d5247b7e5855568aeb855ccca27a627020.zip |
added pre-1.0.5 patch to subversion
-rw-r--r-- | dev-util/subversion/ChangeLog | 8 | ||||
-rw-r--r-- | dev-util/subversion/Manifest | 31 | ||||
-rw-r--r-- | dev-util/subversion/files/digest-subversion-1.0.4-r1 | 1 | ||||
-rw-r--r-- | dev-util/subversion/files/subversion-pre-1.0.5.patch | 91 | ||||
-rw-r--r-- | dev-util/subversion/subversion-1.0.4-r1.ebuild | 311 |
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 +} |