diff options
author | Ulrich Müller <ulm@gentoo.org> | 2019-09-02 15:48:58 +0200 |
---|---|---|
committer | Ulrich Müller <ulm@gentoo.org> | 2019-09-09 10:10:27 +0200 |
commit | a3880bcae6b796a9662e7a394edb68ae9c9762c2 (patch) | |
tree | 5f9a12a2846b6ce2614def09e7c638495b0ca90f /eclass/bzr.eclass | |
parent | dev-tex/tex4ht: x86 stable wrt bug #693806 (diff) | |
download | gentoo-a3880bcae6b796a9662e7a394edb68ae9c9762c2.tar.gz gentoo-a3880bcae6b796a9662e7a394edb68ae9c9762c2.tar.bz2 gentoo-a3880bcae6b796a9662e7a394edb68ae9c9762c2.zip |
bzr.eclass: Respect the EVCS_UMASK variable.
Bug: https://bugs.gentoo.org/497798
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'eclass/bzr.eclass')
-rw-r--r-- | eclass/bzr.eclass | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/eclass/bzr.eclass b/eclass/bzr.eclass index 10bd6bc7e5ad..598a0f87fe6d 100644 --- a/eclass/bzr.eclass +++ b/eclass/bzr.eclass @@ -140,6 +140,17 @@ EXPORT_FUNCTIONS src_unpack # by users. : ${EBZR_OFFLINE=${EVCS_OFFLINE}} +# @ECLASS-VARIABLE: EVCS_UMASK +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable to a custom umask. This is intended to be set by +# users. By setting this to something like 002, it can make life easier +# for people who do development as non-root (but are in the portage +# group), and then switch over to building with FEATURES=userpriv. +# Or vice-versa. Shouldn't be a security issue here as anyone who has +# portage group write access already can screw the system over in more +# creative ways. + # @ECLASS-VARIABLE: EBZR_WORKDIR_CHECKOUT # @DEFAULT_UNSET # @DESCRIPTION: @@ -197,7 +208,7 @@ bzr_update() { # working copy. bzr_fetch() { local repo_dir branch_dir - local save_sandbox_write=${SANDBOX_WRITE} + local save_sandbox_write=${SANDBOX_WRITE} save_umask [[ -n ${EBZR_REPO_URI} ]] || die "${EBZR}: EBZR_REPO_URI is empty" @@ -214,6 +225,10 @@ bzr_fetch() { repo_dir=${EBZR_STORE_DIR}/${EBZR_PROJECT} branch_dir=${repo_dir}${EBZR_BRANCH:+/${EBZR_BRANCH}} + if [[ -n ${EVCS_UMASK} ]]; then + save_umask=$(umask) + umask "${EVCS_UMASK}" || die + fi addwrite "${EBZR_STORE_DIR}" if [[ ! -d ${branch_dir}/.bzr ]]; then @@ -240,8 +255,11 @@ bzr_fetch() { bzr_update "${EBZR_REPO_URI}" "${branch_dir}" fi - # Restore sandbox environment + # Restore sandbox environment and umask SANDBOX_WRITE=${save_sandbox_write} + if [[ -n ${save_umask} ]]; then + umask "${save_umask}" || die + fi cd "${branch_dir}" || die "${EBZR}: can't chdir to ${branch_dir}" |