summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2015-02-04 09:44:24 +0000
committerUlrich Müller <ulm@gentoo.org>2015-02-04 09:44:24 +0000
commitf9e3f1ab2f9b1d84267ec7504247cd3de57a61d3 (patch)
treee814811c48241ad1cca0b81d5e003c6d22fd20f3 /eclass
parentAdd missing boost dep, bug #538774. (diff)
downloadhistorical-f9e3f1ab2f9b1d84267ec7504247cd3de57a61d3.tar.gz
historical-f9e3f1ab2f9b1d84267ec7504247cd3de57a61d3.tar.bz2
historical-f9e3f1ab2f9b1d84267ec7504247cd3de57a61d3.zip
Respect the EVCS_UMASK variable to override the default umask when writing to the repository.
Diffstat (limited to 'eclass')
-rw-r--r--eclass/ChangeLog6
-rw-r--r--eclass/git-r3.eclass32
2 files changed, 34 insertions, 4 deletions
diff --git a/eclass/ChangeLog b/eclass/ChangeLog
index 35101caeb2da..69db1dc50022 100644
--- a/eclass/ChangeLog
+++ b/eclass/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for eclass directory
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1520 2015/02/01 12:01:06 dilfridge Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1521 2015/02/04 09:44:24 ulm Exp $
+
+ 04 Feb 2015; Ulrich Müller <ulm@gentoo.org> git-r3.eclass:
+ Respect the EVCS_UMASK variable to override the default umask when writing
+ to the repository.
01 Feb 2015; Andreas K. Huettel <dilfridge@gentoo.org> perl-module.eclass:
Drop support for EAPI=4
diff --git a/eclass/git-r3.eclass b/eclass/git-r3.eclass
index 51f0ae5a247d..a5d0f054d90f 100644
--- a/eclass/git-r3.eclass
+++ b/eclass/git-r3.eclass
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.47 2014/07/28 14:13:50 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/git-r3.eclass,v 1.48 2015/02/04 09:44:24 ulm Exp $
# @ECLASS: git-r3.eclass
# @MAINTAINER:
@@ -131,6 +131,17 @@ fi
# @DESCRIPTION:
# If non-empty, this variable prevents any online operations.
+# @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: EGIT_BRANCH
# @DEFAULT_UNSET
# @DESCRIPTION:
@@ -309,8 +320,16 @@ _git-r3_set_gitdir() {
addwrite "${EGIT3_STORE_DIR}"
if [[ ! -d ${GIT_DIR} ]]; then
+ local saved_umask
+ if [[ ${EVCS_UMASK} ]]; then
+ saved_umask=$(umask)
+ umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}"
+ fi
mkdir "${GIT_DIR}" || die
git init --bare || die
+ if [[ ${saved_umask} ]]; then
+ umask "${saved_umask}" || die
+ fi
fi
}
@@ -507,7 +526,11 @@ git-r3_fetch() {
fi
# try to fetch from the remote
- local r success
+ local r success saved_umask
+ if [[ ${EVCS_UMASK} ]]; then
+ saved_umask=$(umask)
+ umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}"
+ fi
for r in "${repos[@]}"; do
einfo "Fetching ${r} ..."
@@ -668,6 +691,9 @@ git-r3_fetch() {
break
fi
done
+ if [[ ${saved_umask} ]]; then
+ umask "${saved_umask}" || die
+ fi
[[ ${success} ]] || die "Unable to fetch from any of EGIT_REPO_URI"
# submodules can reference commits in any branch