diff options
-rw-r--r-- | dev-util/monotone/ChangeLog | 9 | ||||
-rw-r--r-- | dev-util/monotone/files/digest-monotone-0.36 | 3 | ||||
-rw-r--r-- | dev-util/monotone/files/monotone-0.36.initd | 84 | ||||
-rw-r--r-- | dev-util/monotone/monotone-0.36.ebuild | 109 |
4 files changed, 204 insertions, 1 deletions
diff --git a/dev-util/monotone/ChangeLog b/dev-util/monotone/ChangeLog index 56f1ca32290f..1f1b265bbdd4 100644 --- a/dev-util/monotone/ChangeLog +++ b/dev-util/monotone/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-util/monotone # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-util/monotone/ChangeLog,v 1.45 2007/07/02 10:12:11 tove Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-util/monotone/ChangeLog,v 1.46 2007/10/07 12:34:02 opfer Exp $ + +*monotone-0.36 (07 Oct 2007) + + 07 Oct 2007; Christian Faulhammer <opfer@gentoo.org> + +files/monotone-0.36.initd, +monotone-0.36.ebuild: + version bump, fixes bug 193805; correct init file so bug 193935 gets fixed: + solution proposed by Dennis Schridde <lindevel@gmx.net> *monotone-0.35 (21 Jun 2007) diff --git a/dev-util/monotone/files/digest-monotone-0.36 b/dev-util/monotone/files/digest-monotone-0.36 new file mode 100644 index 000000000000..bdb37de95e8d --- /dev/null +++ b/dev-util/monotone/files/digest-monotone-0.36 @@ -0,0 +1,3 @@ +MD5 ba6733ebd9992c8c7b48b9e2226f9fb7 monotone-0.36.tar.gz 4836460 +RMD160 1e542073aa0f528e04653a66693a219b71f905fd monotone-0.36.tar.gz 4836460 +SHA256 99042322392ff6b7024a75935324287109fb7260d0e6b3e6aafdac9a67d0b2a4 monotone-0.36.tar.gz 4836460 diff --git a/dev-util/monotone/files/monotone-0.36.initd b/dev-util/monotone/files/monotone-0.36.initd new file mode 100644 index 000000000000..d4e81ac79404 --- /dev/null +++ b/dev-util/monotone/files/monotone-0.36.initd @@ -0,0 +1,84 @@ +#!/sbin/runscript +# Copyright 2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/dev-util/monotone/files/monotone-0.36.initd,v 1.1 2007/10/07 12:34:03 opfer Exp $ + +opts="import" + +depend() { + need net +} + +# Substitute common default values +MTN_KEY=${MTN_KEY:-monotone@`hostname --fqdn`} +MTN_CONFDIR=${MTN_CONFDIR:-/etc/monotone} +MTN_COMMON="--norc --confdir=${MTN_CONFDIR} \ + --keydir=${MTN_KEYDIR:-/var/lib/monotone/keys} \ + --db=${MTN_DB:-/var/lib/monotone/default.mtn} \ + --rcfile=${MTN_CONFDIR}/hooks.lua --log=/var/log/monotone/monotone.log" + #--dump=$ERRORLOG +MTN_PIDFILE="/var/run/monotone/monotone.pid" +MTN_HOME=$(awk -F: -vuid=$MTN_USER -vuser=$MTN_USER '$3 == uid || $1 == user { print $6 }' </etc/passwd) + +dbexists() { + # Create the database if it doesn't exist + if [ ! -e ${MTN_DB:-/var/lib/monotone/default.mtn} ]; then + ebegin "Creating monotone database" + start-stop-daemon --start \ + --chuid ${MTN_USER:-monotone}:${MTN_GROUP:-monotone} \ + --exec /usr/bin/mtn -- ${MTN_COMMON} db init + eend $? + fi + if [ ! -e ${MTN_KEYDIR:-/var/lib/monotone/keys}/${MTN_KEY} ]; then + ebegin "Creating monotone server keypair" + export MTN_PWD=${RANDOM} + yes "${MTN_PWD}" | \ + start-stop-daemon --start \ + --chuid ${MTN_USER:-monotone}:${MTN_GROUP:-monotone} \ + --exec /usr/bin/mtn -- ${MTN_COMMON} genkey ${MTN_KEY} + + eend $? + # Update the password lua hook + cat > ${MTN_CONFDIR}/passphrase.lua <<EOF +-- This file is automaticaly generated by the init scripts. +-- If you want to add custom hooks, edit ${MTN_CONFDIR}/hooks.lua +-- If you want to change the settings, please edit /etc/conf.d/monotone + +function get_passphrase(identity) + if (identity == "${MTN_KEY}") then + return "${MTN_PWD}" + end + return false +end +EOF + fi +} + +start() { + cd ${MTN_HOME} + dbexists + + ebegin "Starting monotone server" + start-stop-daemon --start --background \ + --chuid ${MTN_USER:-monotone}:${MTN_GROUP:-monotone} \ + --exec /usr/bin/mtn -- ${MTN_COMMON} --pid-file=${MTN_PIDFILE} \ + --key=${MTN_KEY} --bind=${MTN_ADDRESS:-0.0.0.0} serve + eend $? +} + +stop() { + ebegin "Stopping monotone server" + start-stop-daemon --stop --quiet --pidfile ${MTN_PIDFILE} + eend $? +} + +import() { + cd ${MTN_HOME} + + dbexists + + # Read packets into the database + einfo "Importing packets to monotone database" + cat | /usr/bin/mtn ${MTN_COMMON} read + eend $? +} diff --git a/dev-util/monotone/monotone-0.36.ebuild b/dev-util/monotone/monotone-0.36.ebuild new file mode 100644 index 000000000000..55b6d67b473e --- /dev/null +++ b/dev-util/monotone/monotone-0.36.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-util/monotone/monotone-0.36.ebuild,v 1.1 2007/10/07 12:34:02 opfer Exp $ + +inherit elisp-common flag-o-matic bash-completion eutils + +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=">=dev-libs/boost-1.33.1 + sys-libs/zlib + emacs? ( virtual/emacs )" + +DEPEND="${RDEPEND} + nls? ( >=sys-devel/gettext-0.11.5 ) + doc? ( sys-apps/texinfo )" + +pkg_setup() { + enewgroup monotone + enewuser monotone -1 -1 /var/lib/monotone monotone + if [[ "$(gcc-version)" == "3.3" ]]; then + die 'requires >=gcc-3.4' + fi +} + +src_compile() { + # more aggressive optimizations cause trouble with the crypto library + strip-flags + append-flags $(test-flags -fno-stack-protector-all -fno-stack-protector) + append-flags -fno-strict-aliasing -fno-omit-frame-pointer + + econf $(use_enable nls) $(use_enable ipv6) || die "configure failed" + emake || die "Compilation failed" + + if use doc; then + emake html || die 'html compilation failed' + fi + + use emacs && elisp-compile contrib/*.el +} + +src_test() { + emake check || die "self test failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "Installation failed" + + mv "${D}"/usr/share/doc/"${PN}" "${D}"/usr/share/doc/"${PF}" + + 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} + elisp-site-file-install "${FILESDIR}"/30monotone-gentoo.el + fi + + dodoc ABOUT-NLS AUTHORS ChangeLog NEWS README* UPGRADE + docinto contrib + dodoc contrib/* + newconfd "${FILESDIR}"/monotone.confd monotone + newinitd "${FILESDIR}"/${PN}-0.36.initd monotone + + insinto /etc/monotone ; + newins "${FILESDIR}"/hooks.lua hooks.lua + newins "${FILESDIR}"/read-permissions read-permissions + newins "${FILESDIR}"/write-permissions write-permissions + + keepdir /var/lib/monotone/keys/ /var/log/monotone /var/run/monotone + fowners monotone:monotone /var/lib/monotone /var/lib/monotone/keys/ \ + /var/log/monotone /var/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.gz" + 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 +} |