From: Fabian Groffen Date: Tue, 28 Apr 2009 19:03:01 +0000 (-0000) Subject: Merged from trunk -r13400:13404 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=01bf3a2d1482ace6c6a03e828d2d594ed20e65a7;p=portage.git Merged from trunk -r13400:13404 | 13401 | Add a new EAPI.definition check for cases in which EAPI is | | zmedico | defined after an inherit call. Thanks to Markus Meier | | | for the initial patch. | | 13402 | fix e-mail munging and add see also section | | SpankMan | | | 13403 | Bug #71646 - Don't allow the HISTFILE variable into the | | zmedico | ebuild environment since it triggers sandbox violations. | | 13404 | Put ebuild helpers at the absolute front of the PATH. | | zmedico | | svn path=/main/branches/prefix/; revision=13405 --- diff --git a/bin/ebuild.sh b/bin/ebuild.sh index b872b5e5a..3e2d51551 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -71,10 +71,14 @@ unalias -a # Unset some variables that break things. unset GZIP BZIP BZIP2 CDPATH GREP_OPTIONS GREP_COLOR GLOBIGNORE -#export PATH="/usr/local/sbin:/sbin:/usr/sbin:$PORTAGE_BIN_PATH/ebuild-helpers:/usr/local/bin:/bin:/usr/bin:${ROOTPATH}" +ROOTPATH=${ROOTPATH##:} +ROOTPATH=${ROOTPATH%%:} +PREROOTPATH=${PREROOTPATH##:} +PREROOTPATH=${PREROOTPATH%%:} +#PATH=$PORTAGE_BIN_PATH/ebuild-helpers:$PREROOTPATH${PREROOTPATH:+:}/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin${ROOTPATH:+:}$ROOTPATH # PREFIX: we deviate in path order, should we split up DEFAULT_PATH? -export PATH="${DEFAULT_PATH}:$PORTAGE_BIN_PATH/ebuild-helpers:${ROOTPATH}" -[ ! -z "$PREROOTPATH" ] && export PATH="${PREROOTPATH%%:}:$PATH" +PATH="$PORTAGE_BIN_PATH/ebuild-helpers:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}:${ROOTPATH:+:}$ROOTPATH" +export PATH source "${PORTAGE_BIN_PATH}/isolated-functions.sh" &>/dev/null @@ -1632,7 +1636,7 @@ filter_readonly_variables() { SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB SANDBOX_LOG SANDBOX_ON" filtered_vars="${readonly_bash_vars} ${READONLY_PORTAGE_VARS} - BASH_.* PATH POSIXLY_CORRECT" + BASH_.* HISTFILE PATH POSIXLY_CORRECT" if hasq --filter-sandbox $* ; then filtered_vars="${filtered_vars} SANDBOX_.*" else @@ -1925,10 +1929,9 @@ ebuild_main() { ;; esac - #export PATH="/usr/local/sbin:/sbin:/usr/sbin:${ebuild_helpers_path}:/usr/local/bin:/bin:/usr/bin:${ROOTPATH}" + #PATH=$ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin${ROOTPATH:+:}$ROOTPATH # PREFIX: same deviation as at the top of this file - export PATH="${DEFAULT_PATH}:${ebuild_helpers_path}:${ROOTPATH}" - [[ -n $PREROOTPATH ]] && export PATH="${PREROOTPATH%%:}:$PATH" + PATH="$ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}${ROOTPATH:+:}$ROOTPATH" unset ebuild_helpers_path if ! hasq $EBUILD_SH_ARGS clean depend help info nofetch ; then diff --git a/bin/repoman b/bin/repoman index 669715ce7..243645bec 100755 --- a/bin/repoman +++ b/bin/repoman @@ -264,6 +264,7 @@ qahelp={ "LICENSE.missing":"Ebuilds that have a missing or empty LICENSE variable", "DESCRIPTION.missing":"Ebuilds that have a missing or empty DESCRIPTION variable", "DESCRIPTION.toolong":"DESCRIPTION is over %d characters" % max_desc_len, + "EAPI.definition":"EAPI is defined after an inherit call (must be defined before)", "EAPI.incompatible":"Ebuilds that use features that are only available with a different EAPI", "EAPI.unsupported":"Ebuilds that have an unsupported EAPI version (you must upgrade portage)", "SLOT.missing":"Ebuilds that have a missing or empty SLOT variable", diff --git a/man/repoman.1 b/man/repoman.1 index 6389a5fa2..59320ca0b 100644 --- a/man/repoman.1 +++ b/man/repoman.1 @@ -105,6 +105,9 @@ Syntax error in DEPEND (usually an extra/missing space/parenthesis) .B DESCRIPTION.missing Ebuilds that have a missing or empty DESCRIPTION variable .TP +.B EAPI.definition +EAPI is defined after an inherit call (must be defined before) +.TP .B EAPI.incompatible Ebuilds that use features that are only available with a different EAPI .TP diff --git a/man/xpak.5 b/man/xpak.5 index 22667dc67..149ffdeaf 100644 --- a/man/xpak.5 +++ b/man/xpak.5 @@ -187,4 +187,8 @@ bytes. there we got our data block: |<-----dataN_offset----->|<--dataN_len->| ||| .SH AUTHORS -Lars Hartmann chaotikaorg> +Lars Hartmann +.SH "SEE ALSO" +.BR qtbz2 (1), +.BR quickpkg (1), +.BR qxpak (1) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 379eef5ca..6ff97393a 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -1134,7 +1134,7 @@ class config(object): # variables that break bash _environ_filter += [ - "POSIXLY_CORRECT", + "HISTFILE", "POSIXLY_CORRECT", ] # portage config variables and variables set directly by portage diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py index 458812057..f1dce8b89 100644 --- a/pym/repoman/checks.py +++ b/pym/repoman/checks.py @@ -213,6 +213,23 @@ class EbuildUselessCdS(LineCheck): elif self.method_re.match(line): self.check_next_line = True +class EapiDefinition(LineCheck): + """ Check that EAPI is defined before inherits""" + repoman_check_name = 'EAPI.definition' + + eapi_re = re.compile(r'^EAPI=') + inherit_re = re.compile(r'^\s*inherit\s') + + def new(self, pkg): + self.inherit_line = None + + def check(self, num, line): + if self.eapi_re.match(line) is not None: + if self.inherit_line is not None: + return errors.EAPI_DEFINED_AFTER_INHERIT + elif self.inherit_re.match(line) is not None: + self.inherit_line = line + class EbuildPatches(LineCheck): """Ensure ebuilds use bash arrays for PATCHES to ensure white space safety""" repoman_check_name = 'ebuild.patches' @@ -349,7 +366,7 @@ _constant_checks = tuple((c() for c in ( EbuildHeader, EbuildWhitespace, EbuildQuote, EbuildAssignment, EbuildUselessDodoc, EbuildUselessCdS, EbuildNestedDie, - EbuildPatches, EbuildQuotedA, + EbuildPatches, EbuildQuotedA, EapiDefinition, IUseUndefined, ImplicitRuntimeDeps, InheritAutotools, EMakeParallelDisabled, EMakeParallelDisabledViaMAKEOPTS, DeprecatedBindnowFlags, WantAutoDefaultValue))) diff --git a/pym/repoman/errors.py b/pym/repoman/errors.py index 2e13e0d67..bab2faca7 100644 --- a/pym/repoman/errors.py +++ b/pym/repoman/errors.py @@ -16,3 +16,4 @@ REDUNDANT_CD_S_ERROR = 'Ebuild has redundant cd ${S} statement on line: %d' EMAKE_PARALLEL_DISABLED = 'Upstream parallel compilation bug (ebuild calls emake -j1 on line: %d)' EMAKE_PARALLEL_DISABLED_VIA_MAKEOPTS = 'Upstream parallel compilation bug (MAKEOPTS=-j1 on line: %d)' DEPRECATED_BINDNOW_FLAGS = 'Deprecated bindnow-flags call on line: %d' +EAPI_DEFINED_AFTER_INHERIT = 'EAPI defined after inherit on line: %d'