summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2010-10-29 15:24:18 +0000
committerPeter Volkov <pva@gentoo.org>2010-10-29 15:24:18 +0000
commit5fc5e80179e7b4f44782d661c35273231dde14e9 (patch)
tree53273d401111e4503ae3a9cb6533489a454edc07 /dev-vcs/monotone
parentVersion bump. Closes bug 325477. (diff)
downloadgentoo-2-5fc5e80179e7b4f44782d661c35273231dde14e9.tar.gz
gentoo-2-5fc5e80179e7b4f44782d661c35273231dde14e9.tar.bz2
gentoo-2-5fc5e80179e7b4f44782d661c35273231dde14e9.zip
Apply upstream patch for 0.99 to fix crash. Add better version for fast stabilization for security bug #342705.
(Portage version: 2.1.9.22/cvs/Linux x86_64)
Diffstat (limited to 'dev-vcs/monotone')
-rw-r--r--dev-vcs/monotone/ChangeLog11
-rw-r--r--dev-vcs/monotone/files/monotone-0.48.1-sqlite-3.7.3.patch27
-rw-r--r--dev-vcs/monotone/files/monotone-0.99-crash.patch30
-rw-r--r--dev-vcs/monotone/monotone-0.48.1.ebuild127
-rw-r--r--dev-vcs/monotone/monotone-0.99-r1.ebuild (renamed from dev-vcs/monotone/monotone-0.99.ebuild)3
5 files changed, 196 insertions, 2 deletions
diff --git a/dev-vcs/monotone/ChangeLog b/dev-vcs/monotone/ChangeLog
index 3784420cade8..0386ffde5154 100644
--- a/dev-vcs/monotone/ChangeLog
+++ b/dev-vcs/monotone/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-vcs/monotone
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-vcs/monotone/ChangeLog,v 1.8 2010/10/29 07:58:13 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/monotone/ChangeLog,v 1.9 2010/10/29 15:24:17 pva Exp $
+
+*monotone-0.99-r1 (29 Oct 2010)
+*monotone-0.48.1 (29 Oct 2010)
+
+ 29 Oct 2010; Peter Volkov <pva@gentoo.org> +monotone-0.48.1.ebuild,
+ +files/monotone-0.48.1-sqlite-3.7.3.patch, -monotone-0.99.ebuild,
+ +monotone-0.99-r1.ebuild, +files/monotone-0.99-crash.patch:
+ Apply upstream patch for 0.99 to fix crash. Add better version for fast
+ stabilization for security bug #342705.
*monotone-0.99 (29 Oct 2010)
diff --git a/dev-vcs/monotone/files/monotone-0.48.1-sqlite-3.7.3.patch b/dev-vcs/monotone/files/monotone-0.48.1-sqlite-3.7.3.patch
new file mode 100644
index 000000000000..fc0092229c0a
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-0.48.1-sqlite-3.7.3.patch
@@ -0,0 +1,27 @@
+============================================================
+--- database.cc 0afa3ff4bd9c9ee3bc62b10bcf6295a9f5388d64
++++ database.cc 8bfff559a0894259fe3668294bd3906ae837129b
+@@ -1531,12 +1531,19 @@ database_impl::fetch(results & res,
+ vector<string> row;
+ for (int col = 0; col < ncol; col++)
+ {
++ // We never store NULLs, so we should never see one.
++ int const datatype = sqlite3_column_type(i->second.stmt(), col);
++ E(datatype != SQLITE_NULL, origin::database,
++ F("null result in query: %s") % query.sql_cmd);
+ const char * value = (const char*)sqlite3_column_blob(i->second.stmt(), col);
+ int bytes = sqlite3_column_bytes(i->second.stmt(), col);
+- E(value, origin::database,
+- F("null result in query: %s") % query.sql_cmd);
+- row.push_back(string(value, value + bytes));
+- //L(FL("row %d col %d value='%s'") % nrow % col % value);
++ if (value) {
++ row.push_back(string(value, value + bytes));
++ } else {
++ // sqlite3_column_blob() returns null for zero-length
++ I(bytes == 0);
++ row.push_back(string());
++ }
+ }
+ res.push_back(row);
+ }
diff --git a/dev-vcs/monotone/files/monotone-0.99-crash.patch b/dev-vcs/monotone/files/monotone-0.99-crash.patch
new file mode 100644
index 000000000000..0a6220dc4f69
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-0.99-crash.patch
@@ -0,0 +1,30 @@
+============================================================
+--- NEWS 28057863abe389acf343fd6781d215d7d99dd2eb
++++ NEWS 287e77585d21957e85230c1fc3f06921a0621561
+@@ -1,3 +1,14 @@
++??? ??? ?? ??:??:?? UTC 2010
++
++ 0.99.1 release.
++
++ Bugs fixed
++
++ - monotone crashed on x86_64 when a netsync action required
++ the parsing of an URL. This has been fixed.
++ (closes monotone issue 100)
++
++
+ Thu Oct 28 21:07:18 UTC 2010
+
+ 0.99 release.
+============================================================
+--- pcrewrap.cc 08ac10d9a75557faba316d1b0a242b8ed3cd4243
++++ pcrewrap.cc 42611610af4de2f7d1da39bf5c023038b7590be7
+@@ -144,7 +144,7 @@ namespace pcre
+ // because pcre_exec might not signal trailing unmatched subpatterns
+ // i.e. if "abc" matches "(abc)(de)?", the match count is two, not
+ // the expected three
+- size_t cap_count;
++ size_t cap_count = 0;
+ int rc = pcre_fullinfo(basedat, extradat, PCRE_INFO_CAPTURECOUNT, &cap_count);
+ I(rc == 0);
+
diff --git a/dev-vcs/monotone/monotone-0.48.1.ebuild b/dev-vcs/monotone/monotone-0.48.1.ebuild
new file mode 100644
index 000000000000..6f11462873f6
--- /dev/null
+++ b/dev-vcs/monotone/monotone-0.48.1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/monotone/monotone-0.48.1.ebuild,v 1.1 2010/10/29 15:24:17 pva Exp $
+
+EAPI=2
+inherit bash-completion elisp-common eutils toolchain-funcs
+
+DESCRIPTION="Monotone Distributed Version Control System"
+HOMEPAGE="http://monotone.ca"
+SRC_URI="http://monotone.ca/downloads/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="1"
+KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
+IUSE="doc emacs ipv6 nls"
+
+RDEPEND="sys-libs/zlib
+ emacs? ( virtual/emacs )
+ >=dev-libs/libpcre-7.6
+ >=dev-libs/botan-1.8.0
+ >=dev-db/sqlite-3.3.8
+ >=dev-lang/lua-5.1
+ net-dns/libidn"
+DEPEND="${RDEPEND}
+ >=dev-libs/boost-1.33.1
+ nls? ( >=sys-devel/gettext-0.11.5 )
+ doc? ( sys-apps/texinfo )"
+
+pkg_setup() {
+ enewgroup monotone
+ enewuser monotone -1 -1 /var/lib/monotone monotone
+}
+
+src_prepare() {
+ if [[ $(gcc-major-version) -lt "3" ||
+ ( $(gcc-major-version) -eq "3" && $(gcc-minor-version) -le 3 ) ]]; then
+ die 'requires >=gcc-3.4'
+ fi
+
+ epatch "${FILESDIR}/monotone-0.48.1-sqlite-3.7.3.patch"
+}
+
+src_configure() {
+ econf \
+ --disable-dependency-tracking \
+ $(use_enable nls) \
+ $(use_enable ipv6)
+}
+
+src_compile() {
+ emake || die
+
+ if use doc; then
+ emake html || die
+ fi
+
+ if use emacs; then
+ cd contrib
+ elisp-compile *.el || die
+ fi
+}
+
+src_test() {
+ if [ ${UID} != 0 ]; then
+ emake check || die "emake check failed"
+ else
+ ewarn "Tests will fail if ran as root, skipping."
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+
+ mv "${D}"/usr/share/doc/${PN} "${D}"/usr/share/doc/${PF} || die
+
+ dobashcompletion contrib/monotone.bash_completion
+
+ if use doc; then
+ dohtml -r html/*
+ dohtml -r figures
+ fi
+
+ if use emacs; then
+ elisp-install ${PN} contrib/*.{el,elc} || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}"/50${PN}-gentoo.el \
+ || die
+ fi
+
+ dodoc AUTHORS NEWS README* UPGRADE || die
+ docinto contrib
+ dodoc contrib/*
+ newconfd "${FILESDIR}"/monotone.confd monotone || die
+ newinitd "${FILESDIR}"/${PN}-0.36.initd monotone || die
+
+ insinto /etc/monotone
+ newins "${FILESDIR}"/hooks.lua hooks.lua || die
+ newins "${FILESDIR}"/read-permissions read-permissions || die
+ newins "${FILESDIR}"/write-permissions write-permissions || die
+
+ keepdir /var/lib/monotone/keys/ /var/{log,run}/monotone
+ fowners monotone:monotone /var/lib/monotone{,/keys} /var/{log,run}/monotone
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ bash-completion_pkg_postinst
+
+ elog
+ elog "For details and instructions to upgrade from previous versions,"
+ elog "please read /usr/share/doc/${PF}/UPGRADE.bz2"
+ elog
+ elog " 1. edit /etc/conf.d/monotone"
+ elog " 2. import the first keys to enable access with"
+ elog " env HOME=\${homedir} mtn pubkey me@example.net | /etc/init.d/monotone import"
+ elog " Thereafter, those with write permission can add other keys via"
+ elog " netsync with 'monotone push --key-to-push=IDENT' and then IDENT"
+ elog " can be used in the read-permission and write-permission files."
+ elog " 3. adjust permisions in /etc/monotone/read-permissions"
+ elog " and /etc/monotone/write-permissions"
+ elog " 4. start the daemon: /etc/init.d/monotone start"
+ elog " 5. make persistent: rc-update add monotone default"
+ elog
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/monotone/monotone-0.99.ebuild b/dev-vcs/monotone/monotone-0.99-r1.ebuild
index db7be441c1f1..271a397d87bb 100644
--- a/dev-vcs/monotone/monotone-0.99.ebuild
+++ b/dev-vcs/monotone/monotone-0.99-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-vcs/monotone/monotone-0.99.ebuild,v 1.1 2010/10/29 07:58:13 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/monotone/monotone-0.99-r1.ebuild,v 1.1 2010/10/29 15:24:17 pva Exp $
EAPI=2
inherit bash-completion elisp-common eutils toolchain-funcs
@@ -36,6 +36,7 @@ src_prepare() {
( $(gcc-major-version) -eq "3" && $(gcc-minor-version) -le 3 ) ]]; then
die 'requires >=gcc-3.4'
fi
+ epatch "${FILESDIR}/${P}-crash.patch"
}
src_configure() {