diff options
author | Sardem FF7 <sardemff7.pub@gmail.com> | 2010-12-24 11:18:08 +0100 |
---|---|---|
committer | Sardem FF7 <sardemff7.pub@gmail.com> | 2010-12-24 11:18:08 +0100 |
commit | 86472bec3a3656bba7ddec57238c60d346687906 (patch) | |
tree | b30a56c3ff8f338deae739743481850d017b1173 | |
parent | Fixes (diff) | |
download | sardemff7-86472bec3a3656bba7ddec57238c60d346687906.tar.gz sardemff7-86472bec3a3656bba7ddec57238c60d346687906.tar.bz2 sardemff7-86472bec3a3656bba7ddec57238c60d346687906.zip |
Add speed-mercurial.eclass from Julien Durillon to speed up the sourde directory creation
-rw-r--r-- | eclass/speed-mercurial.eclass | 141 | ||||
-rw-r--r-- | net-libs/xulrunner/Manifest | 3 | ||||
-rw-r--r-- | net-libs/xulrunner/xulrunner-9999.ebuild | 4 | ||||
-rw-r--r-- | www-client/firefox/Manifest | 2 | ||||
-rw-r--r-- | www-client/firefox/firefox-9999.ebuild | 4 |
5 files changed, 147 insertions, 7 deletions
diff --git a/eclass/speed-mercurial.eclass b/eclass/speed-mercurial.eclass new file mode 100644 index 0000000..5c75211 --- /dev/null +++ b/eclass/speed-mercurial.eclass @@ -0,0 +1,141 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/eclass/mercurial.eclass,v 1.15 2010/11/17 18:42:03 nelchael Exp $ + +# @ECLASS: mercurial.eclass +# @MAINTAINER: +# Krzysztof Pawlik <nelchael@gentoo.org> +# Dirkjan Ochtman <djc@gentoo.org> +# @BLURB: This eclass provides generic mercurial fetching functions +# @DESCRIPTION: +# This eclass provides generic mercurial fetching functions. To fetch sources +# from mercurial repository just set EHG_REPO_URI to correct repository URI. If +# you need to share single repository between several ebuilds set EHG_PROJECT to +# project name in all of them. + +inherit eutils + +EXPORT_FUNCTIONS src_unpack + +DEPEND="dev-vcs/mercurial" + +# @ECLASS-VARIABLE: EHG_REPO_URI +# @DESCRIPTION: +# Mercurial repository URI. + +# @ECLASS-VARIABLE: EHG_REVISION +# @DESCRIPTION: +# Create working directory for specified revision, defaults to tip. +# +# EHG_REVISION is passed as a value for --rev parameter, so it can be more than +# just a revision, please consult `hg help revisions' for more details. +[[ -z "${EHG_REVISION}" ]] && EHG_REVISION="tip" + +# @ECLASS-VARIABLE: EHG_STORE_DIR +# @DESCRIPTION: +# Mercurial sources store directory. Users may override this in /etc/make.conf +[[ -z "${EHG_STORE_DIR}" ]] && EHG_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/hg-src" + +# @ECLASS-VARIABLE: EHG_PROJECT +# @DESCRIPTION: +# Project name. +# +# This variable default to $PN, but can be changed to allow repository sharing +# between several ebuilds. +[[ -z "${EHG_PROJECT}" ]] && EHG_PROJECT="${PN}" + +# @ECLASS-VARIABLE: EHG_QUIET +# @DESCRIPTION: +# Suppress some extra noise from mercurial, set it to 'OFF' to be louder. +: ${EHG_QUIET:="ON"} +[[ "${EHG_QUIET}" == "ON" ]] && EHG_QUIET_CMD_OPT="--quiet" + +# @ECLASS-VARIABLE: EHG_CLONE_CMD +# @DESCRIPTION: +# Command used to perform initial repository clone. +[[ -z "${EHG_CLONE_CMD}" ]] && EHG_CLONE_CMD="hg clone ${EHG_QUIET_CMD_OPT} --pull --noupdate" + +# @ECLASS-VARIABLE: EHG_PULL_CMD +# @DESCRIPTION: +# Command used to update repository. +[[ -z "${EHG_PULL_CMD}" ]] && EHG_PULL_CMD="hg pull ${EHG_QUIET_CMD_OPT}" + +# @ECLASS-VARIABLE: EHG_OFFLINE +# @DESCRIPTION: +# Set this variable to a non-empty value to disable the automatic updating of +# a mercurial source tree. This is intended to be set outside the ebuild by +# users. +EHG_OFFLINE="${EHG_OFFLINE:-${ESCM_OFFLINE}}" + +# @FUNCTION: mercurial_fetch +# @USAGE: [repository_uri] [module] [sourcedir] +# @DESCRIPTION: +# Clone or update repository. +# +# If repository URI is not passed it defaults to EHG_REPO_URI, if module is +# empty it defaults to basename of EHG_REPO_URI, sourcedir defaults to S. +function mercurial_fetch { + debug-print-function ${FUNCNAME} ${*} + + EHG_REPO_URI=${1-${EHG_REPO_URI}} + [[ -z "${EHG_REPO_URI}" ]] && die "EHG_REPO_URI is empty" + + local module="${2-$(basename "${EHG_REPO_URI}")}" + local sourcedir="${3-${S}}" + + # Should be set but blank to prevent using $HOME/.hgrc + export HGRCPATH= + + # Check ${EHG_STORE_DIR} directory: + addwrite "$(dirname "${EHG_STORE_DIR}")" || die "addwrite failed" + if [[ ! -d "${EHG_STORE_DIR}" ]]; then + mkdir -p "${EHG_STORE_DIR}" || die "failed to create ${EHG_STORE_DIR}" + chmod -f g+rw "${EHG_STORE_DIR}" || \ + die "failed to chown ${EHG_STORE_DIR}" + fi + + # Create project directory: + mkdir -p "${EHG_STORE_DIR}/${EHG_PROJECT}" || \ + die "failed to create ${EHG_STORE_DIR}/${EHG_PROJECT}" + chmod -f g+rw "${EHG_STORE_DIR}/${EHG_PROJECT}" || \ + echo "Warning: failed to chmod g+rw ${EHG_PROJECT}" + cd "${EHG_STORE_DIR}/${EHG_PROJECT}" || \ + die "failed to cd to ${EHG_STORE_DIR}/${EHG_PROJECT}" + + # Clone/update repository: + if [[ ! -d "${module}" ]]; then + einfo "Cloning ${EHG_REPO_URI} to ${EHG_STORE_DIR}/${EHG_PROJECT}/${module}" + ${EHG_CLONE_CMD} "${EHG_REPO_URI}" "${module}" || { + rm -rf "${module}" + die "failed to clone ${EHG_REPO_URI}" + } + cd "${module}" + elif [[ -z "${EHG_OFFLINE}" ]]; then + einfo "Updating ${EHG_STORE_DIR}/${EHG_PROJECT}/${module} from ${EHG_REPO_URI}" + cd "${module}" || die "failed to cd to ${module}" + ${EHG_PULL_CMD} || die "update failed" + fi + + # Checkout working copy: + einfo "Creating working directory in ${sourcedir} (target revision: ${EHG_REVISION})" + hg archive \ + ${EHG_QUIET_CMD_OPT} \ + --rev="${EHG_REVISION}" \ + -R "${EHG_STORE_DIR}/${EHG_PROJECT}/${module}" \ + "${sourcedir}" || die "hg clone failed" + # An exact revision helps a lot for testing purposes, so have some output... + # id num branch + # fd6e32d61721 6276 default +# local HG_REVDATA=($(hg identify -b -i "${sourcedir}")) +# export HG_REV_ID=${HG_REVDATA[0]} +# local HG_REV_BRANCH=${HG_REVDATA[1]} +# einfo "Work directory: ${sourcedir} global id: ${HG_REV_ID} branch: ${HG_REV_BRANCH}" + einfo "Work directory: ${sourcedir}" +} + +# @FUNCTION: mercurial_src_unpack +# @DESCRIPTION: +# The mercurial src_unpack function, which will be exported. +function speed-mercurial_src_unpack { + mercurial_fetch +} diff --git a/net-libs/xulrunner/Manifest b/net-libs/xulrunner/Manifest index 9289624..9388bf6 100644 --- a/net-libs/xulrunner/Manifest +++ b/net-libs/xulrunner/Manifest @@ -1,5 +1,4 @@ -AUX Xlib-const-XAtomNames.patch 914 RMD160 ab1fca929f638ab8b50ec5fad18f726377bdec30 SHA1 236e4614a5964b1c5cdaa0b3019ce231d20f4297 SHA256 d02549a05a6db8227880fb825c4182919b78ef80c57c751e656e18a847d739a1 AUX gentoo-specific.patch 2957 RMD160 684dc2176769a56c2b1c206b59f999cd44d99c45 SHA1 35ff8e325e45b5384a404a4f99b12fdba9d5e0f3 SHA256 23d981e48a5308dd11ce2fc831071d138d54717bff9cb546dfc5467b0f4204c7 AUX libnotify-0.7-fix.patch 1209 RMD160 07615cde8fb0dbd9876635d0b437943df3f4879c SHA1 16caf17a571b4ede370fc20ffffc87179afd3cd3 SHA256 80dbd0906b45cd42b0fda0ec6fa48daf04cb5f85a14e164287565ffa4e486642 AUX xulrunner-default-prefs.js 709 RMD160 a4d062f75c17552545267ec3fe2f6b54073dafbd SHA1 580128e9edf8021fdbbca2c91abf63cb83bab2c7 SHA256 e6850b0a22f7d3889b49ec4a79a3c4d3d077edd98c8f0ffdc26e30bc70bb4b09 -EBUILD xulrunner-9999.ebuild 7251 RMD160 0725f306ec282b10b36df46bc9dc308ba3c77b89 SHA1 eb1589eb7583e05854542e3927969c731dad21d9 SHA256 9671e26a1df077211d5cf8cd9e872c6628f343d9fec9e729b6361601d2c728ea +EBUILD xulrunner-9999.ebuild 7257 RMD160 c900f41923bb157500c0a62b4c9a4bc93c872df5 SHA1 3ecd8b7711a38dbc06e3864da4f1e4ce88c612b4 SHA256 bdf6d66888b1014736c653cf822cb5dd9a93046c1d6edb1647ceb6189bbfcc68 diff --git a/net-libs/xulrunner/xulrunner-9999.ebuild b/net-libs/xulrunner/xulrunner-9999.ebuild index b5f380b..34312fb 100644 --- a/net-libs/xulrunner/xulrunner-9999.ebuild +++ b/net-libs/xulrunner/xulrunner-9999.ebuild @@ -5,8 +5,8 @@ EAPI="3" WANT_AUTOCONF="2.1" -: ${EHG_QUIET:=OFF} # geeks prefer verbose struf -inherit flag-o-matic toolchain-funcs eutils prefix mozconfig-3 makeedit multilib pax-utils autotools python mercurial +: ${EHG_QUIET:=OFF} # geeks prefer verbose stuff +inherit flag-o-matic toolchain-funcs eutils prefix mozconfig-3 makeedit multilib pax-utils autotools python speed-mercurial EHG_REPO_URI="http://hg.mozilla.org/mozilla-central/" diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 27e199c..45caf8e 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -1,4 +1,4 @@ AUX firefox-default-prefs.js 95 RMD160 805cdfec6fb31c224322cb71125547ad7a515f49 SHA1 7fab69d85b12a9f1b0c87fbb1821bdafd7485ac9 SHA256 8bc4cb870bc402db1f20b135a689f8c5dbfa5de8f1755b1926198d627c12c5f1 AUX firefox.desktop 255 RMD160 4ef1cf548f11057274620b82f0728958a3424bea SHA1 6a440f817072fb60516c1a1d999dffb6d3fa1583 SHA256 9bf6e1264d986c68d64831d166ed6b506bff6df8b56d21bfc166aee09cbc753f AUX gentoo-specific.patch 5781 RMD160 d8e676c7ef75d6ae81dad286d02fb841e162962a SHA1 f77b09a5ae616ca0e58eddb26307b86438c70b2b SHA256 78e54d73b7c6096ae4ab680bf87df9491b501f7417b0c9120fff79e49067eac9 -EBUILD firefox-9999.ebuild 6944 RMD160 880a432c5e3d3904e59198aa4aee0f980ef013bd SHA1 12441362fb3d99e7d1f234f34fda2b670b714bca SHA256 64c1473508a9e80f83f705e121512f087addad10c4ac070663959f7537d67572 +EBUILD firefox-9999.ebuild 6950 RMD160 c8c96ef8911c893b839e4cb38db9e10562fbaef5 SHA1 0e857153e7d372ee19f0b2ace231b02d2591e2f8 SHA256 9109e77a171146b3f044775f0572246e1069436e31eb3619e4530571e08b2bfa diff --git a/www-client/firefox/firefox-9999.ebuild b/www-client/firefox/firefox-9999.ebuild index cfa93d9..2439a98 100644 --- a/www-client/firefox/firefox-9999.ebuild +++ b/www-client/firefox/firefox-9999.ebuild @@ -5,8 +5,8 @@ EAPI="3" WANT_AUTOCONF="2.1" -: ${EHG_QUIET:=OFF} # geeks prefer verbose struf -inherit flag-o-matic toolchain-funcs eutils prefix mozconfig-3 makeedit multilib pax-utils autotools python mercurial fdo-mime mozextension +: ${EHG_QUIET:=OFF} # geeks prefer verbose stuff +inherit flag-o-matic toolchain-funcs eutils prefix mozconfig-3 makeedit multilib pax-utils autotools python speed-mercurial fdo-mime mozextension EHG_REPO_URI="http://hg.mozilla.org/mozilla-central/" EHG_PROJECT="xulrunner" |