public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Rick \"Zero_Chaos\" Farina" <zerochaos@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] bzr.eclass changes, please review
Date: Fri, 14 Sep 2012 09:15:14 -0400	[thread overview]
Message-ID: <50532DE2.1060908@gentoo.org> (raw)
In-Reply-To: <20562.62029.425431.864386@a1i15.kph.uni-mainz.de>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/14/2012 05:01 AM, Ulrich Mueller wrote:
> In bug 434746 it has been suggested that ${WORKDIR} should look like a
> bzr branch or checkout. Proposed changes for bzr.eclass are included
> below, comprising the following:
> 
> - bzr_fetch can optionally call bzr checkout --lightweight instead of
>   bzr export. The default behaviour won't change, the new behaviour
>   can be enabled with:
> - New variable EBZR_WORKDIR_CHECKOUT, (Or can anyone come up with a
>   better/shorter name?)
> - New variable EBZR_CHECKOUT_CMD.
> - The sandbox environment is now always restored; before it was only
>   restored if ${EBZR_STORE_DIR} didn't exist. This is to prevent the
>   package's build system from writing to ${EBZR_STORE_DIR} when it's
>   calling bzr (which wasn't an issue for an export, but could be for
>   a checkout).
> - Unrelated to the above, some old cleanup code (around line 220) is
>   removed.
> 
> The updated bzr.eclass is available in the emacs overlay, along with
> an app-editors/emacs-vcs ebuild that I've used for testing.
> 
> Ulrich
> 
> 
> --- bzr.eclass	18 Jul 2012 15:12:54 -0000	1.18
> +++ bzr.eclass	14 Sep 2012 08:02:08 -0000
> @@ -61,6 +61,11 @@
>  # The Bazaar command to export a branch.
>  : ${EBZR_EXPORT_CMD:="bzr export"}
>  
> +# @ECLASS-VARIABLE: EBZR_CHECKOUT_CMD
> +# @DESCRIPTION:
> +# The Bazaar command to checkout a branch.
> +: ${EBZR_CHECKOUT_CMD:="bzr checkout --lightweight -q"}
> +
>  # @ECLASS-VARIABLE: EBZR_REVNO_CMD
>  # @DESCRIPTION:
>  # The Bazaar command to list a revision number of the branch.
> @@ -145,6 +150,12 @@
>  # by users.
>  : ${EBZR_OFFLINE=${EVCS_OFFLINE}}
>  
> +# @ECLASS-VARIABLE: EBZR_WORKDIR_CHECKOUT
> +# @DEFAULT_UNSET
> +# @DESCRIPTION:
> +# If this variable is set to a non-empty value, EBZR_CHECKOUT_CMD will
> +# be used instead of EBZR_EXPORT_CMD to copy the sources to WORKDIR.
> +
>  # @FUNCTION: bzr_initial_fetch
>  # @USAGE: <repository URI> <branch directory>
>  # @DESCRIPTION:
> @@ -196,11 +207,11 @@
>  # working copy.
>  bzr_fetch() {
>  	local repo_dir branch_dir
> +	local save_sandbox_write=${SANDBOX_WRITE}
>  
>  	[[ -n ${EBZR_REPO_URI} ]] || die "${EBZR}: EBZR_REPO_URI is empty"
>  
>  	if [[ ! -d ${EBZR_STORE_DIR} ]] ; then
> -		local save_sandbox_write=${SANDBOX_WRITE}
>  		addwrite /
Am I reading this wrong, or is "addwrite /" being more than just a
little lazy?  I know this isn't part of your change set but it has
always bothered me that it needs to unlocking writing on the whole
filesystem to save something in distdir.

Thanks,
Zero
>  		mkdir -p "${EBZR_STORE_DIR}" \
>  			|| die "${EBZR}: can't mkdir ${EBZR_STORE_DIR}"
> @@ -215,19 +226,6 @@
>  
>  	addwrite "${EBZR_STORE_DIR}"
>  
> -	# Clean up if the existing local copy is a checkout (as was the case
> -	# with an older version of bzr.eclass).
> -	# This test can be removed after 1 Mar 2012.
> -	if [[ ${EBZR_FETCH_CMD} != *checkout* && -d ${repo_dir}/.bzr/checkout ]]
> -	then
> -		local tmpname=$(mktemp -u "${repo_dir}._old_.XXXXXX")
> -		ewarn "checkout from old version of ${EBZR} found, moving it to:"
> -		ewarn "${tmpname}"
> -		ewarn "you may manually remove it"
> -		mv "${repo_dir}" "${tmpname}" \
> -			|| die "${EBZR}: can't move old checkout out of the way"
> -	fi
> -
>  	if [[ ! -d ${branch_dir}/.bzr ]]; then
>  		if [[ ${repo_dir} != "${branch_dir}" && ! -d ${repo_dir}/.bzr ]]; then
>  			einfo "creating shared bzr repository: ${repo_dir}"
> @@ -252,14 +250,23 @@
>  		bzr_update "${EBZR_REPO_URI}" "${branch_dir}"
>  	fi
>  
> +	# Restore sandbox environment
> +	SANDBOX_WRITE=${save_sandbox_write}
> +
>  	cd "${branch_dir}" || die "${EBZR}: can't chdir to ${branch_dir}"
>  
>  	# Save revision number in environment. #311101
>  	export EBZR_REVNO=$(${EBZR_REVNO_CMD})
>  
> -	einfo "exporting ..."
> -	${EBZR_EXPORT_CMD} ${EBZR_REVISION:+-r ${EBZR_REVISION}} \
> -		"${WORKDIR}/${P}" . || die "${EBZR}: export failed"
> +	if [[ -n ${EBZR_WORKDIR_CHECKOUT} ]]; then
> +		einfo "checking out ..."
> +		${EBZR_CHECKOUT_CMD} ${EBZR_REVISION:+-r ${EBZR_REVISION}} \
> +			. "${WORKDIR}/${P}" || die "${EBZR}: checkout failed"
> +	else
> +		einfo "exporting ..."
> +		${EBZR_EXPORT_CMD} ${EBZR_REVISION:+-r ${EBZR_REVISION}} \
> +			"${WORKDIR}/${P}" . || die "${EBZR}: export failed"
> +	fi
>  	einfo "revision ${EBZR_REVISION:-${EBZR_REVNO}} is now in ${WORKDIR}/${P}"
>  
>  	popd > /dev/null
> 
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQIcBAEBAgAGBQJQUy3iAAoJEKXdFCfdEflKGn8P/2nWVsOWor82RWYneDHpxaFU
U0rZn7D3PPNCLhNpIH9/61BlJsarOW7MuFSgTwTRlAnyKN8gLMyOYvr5bBi9URgT
7rC6pKxy+tH9EoyemZks9SoTjSQk6d+jZLx+0nvFUqvqtK+Elp0qs4FyxyWDqq0j
ZL3dunSIcNHhekQYbuaIJQ6bCBTUyqtUTLyzIWRveoHaGPE0Nl5r7y/LJOeOA4JX
my+3UyK6snWvpuUqYjEXjTTRvZivoD1hoX9ALtFOFquzQ6ITHYAWSYgfGP96cTAo
+IiSt2DgSCz1wnGyXPgRgj7I0cijtBZ/ozkIZVfEAdbyzatVkOh+vkepF3Fw8698
1V5SDjqqPCEtHTcLEvTD5Q7yUhx805N78v47GsYAdwul3ZCFCW8nNUdzbCEIQXWD
QXwOZQ9wsYFhedJgbO6Sd68au4OP4L1yL+u/+wdyag5ipnBRcCMuInYmL8n2Orkq
UZR+XI6QURauCqg/MoaiUcbRbE6uUQarke93uU0hR3odZlBDk3Evo9Vvs+veK5Cq
a9VJig3PD+b+EjFfenDlwptI3oBXtd0NMZgkqL3NrOAxsz4osDj7Un9TXqbdHHt7
LAlIgAxWjGZBjGDoj+uFT5DBb+bhI2g0XHik96O5+47oDqw4VORtdOyo0/oo1p14
FdwcD7TA9Xb/WDqCKicg
=dB/J
-----END PGP SIGNATURE-----


  reply	other threads:[~2012-09-14 13:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-14  9:01 [gentoo-dev] bzr.eclass changes, please review Ulrich Mueller
2012-09-14 13:15 ` Rick "Zero_Chaos" Farina [this message]
2012-09-14 15:51   ` Ulrich Mueller
2012-09-14 16:12     ` Rick "Zero_Chaos" Farina
2012-09-14 22:26       ` Mike Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50532DE2.1060908@gentoo.org \
    --to=zerochaos@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox