summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>2012-09-21 21:03:05 +0200
committerArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>2012-09-21 21:03:05 +0200
commit6ee701eb65fbfc00cbf6ebc16de2d6487ba2cfd7 (patch)
treebd88f1bbac16d9ffe78341f896a9dafd94306a87
parentAdd _DEPCLEAN_LIB_CHECK_DEFAULT constant. (diff)
downloadportage-6ee701eb65fbfc00cbf6ebc16de2d6487ba2cfd7.tar.gz
portage-6ee701eb65fbfc00cbf6ebc16de2d6487ba2cfd7.tar.bz2
portage-6ee701eb65fbfc00cbf6ebc16de2d6487ba2cfd7.zip
Support EAPI="5-progress".
-rwxr-xr-xbin/dohtml.py2
-rwxr-xr-xbin/ebuild.sh6
-rw-r--r--doc/package/ebuild.docbook1
-rw-r--r--doc/package/ebuild/eapi/5-progress.docbook133
-rw-r--r--doc/portage.docbook1
-rw-r--r--pym/portage/__init__.py2
-rw-r--r--pym/portage/eapi.py10
-rw-r--r--pym/portage/tests/update/test_update_dbentry.py2
8 files changed, 146 insertions, 11 deletions
diff --git a/bin/dohtml.py b/bin/dohtml.py
index 3e80ef5f6..3af270509 100755
--- a/bin/dohtml.py
+++ b/bin/dohtml.py
@@ -106,7 +106,7 @@ class OptionsClass:
self.DOCDESTTREE = os.environ["_E_DOCDESTTREE_"]
self.allowed_exts = ['css', 'gif', 'htm', 'html', 'jpeg', 'jpg', 'js', 'png']
- if os.environ.get("EAPI", "0") in ("4-python",):
+ if os.environ.get("EAPI", "0") in ("4-python", "5-progress"):
self.allowed_exts += ['ico', 'svg', 'xhtml', 'xml']
self.allowed_files = []
self.disallowed_dirs = ['CVS']
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index a6ff45301..79da2b518 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -26,7 +26,7 @@ else
__strip_duplicate_slashes \
use_with use_enable ; do
eval "${x}() {
- if has \"\${EAPI:-0}\" 4-python; then
+ if has \"\${EAPI:-0}\" 4-python 5-progress; then
die \"\${FUNCNAME}() calls are not allowed in global scope\"
fi
}"
@@ -35,7 +35,7 @@ else
# `use multislot` is false for the "depend" phase.
for x in use useq usev usex ; do
eval "${x}() {
- if has \"\${EAPI:-0}\" 4-python; then
+ if has \"\${EAPI:-0}\" 4-python 5-progress; then
die \"\${FUNCNAME}() calls are not allowed in global scope\"
else
return 1
@@ -506,7 +506,7 @@ if ! has "$EBUILD_PHASE" clean cleanrm depend && \
[[ -n $EAPI ]] || EAPI=0
fi
-if has "${EAPI:-0}" 4-python; then
+if has "${EAPI:-0}" 4-python 5-progress; then
shopt -s globstar
fi
diff --git a/doc/package/ebuild.docbook b/doc/package/ebuild.docbook
index e268a3d11..98084c8fa 100644
--- a/doc/package/ebuild.docbook
+++ b/doc/package/ebuild.docbook
@@ -12,5 +12,6 @@
&package_ebuild_eapi_4_python;
&package_ebuild_eapi_4_slot_abi;
&package_ebuild_eapi_5;
+&package_ebuild_eapi_5_progress;
</section>
</chapter>
diff --git a/doc/package/ebuild/eapi/5-progress.docbook b/doc/package/ebuild/eapi/5-progress.docbook
new file mode 100644
index 000000000..142ff8e2e
--- /dev/null
+++ b/doc/package/ebuild/eapi/5-progress.docbook
@@ -0,0 +1,133 @@
+<section id='package-ebuild-eapi-5-progress'>
+ <title>EAPI 5-progress</title>
+ <para>
+ Also see the <ulink url="http://people.apache.org/~Arfrever/EAPI_5-progress_Specification">official EAPI 5-progress Specification</ulink>.
+ </para>
+ <section id='package-ebuild-eapi-5-progress-helpers'>
+ <title>Helpers</title>
+ <section id='package-ebuild-eapi-5-progress-helpers-dohtml-extended-default-list-of-extensions'>
+ <title>Extended default list of extensions in dohtml</title>
+ <para>
+ dohtml by default additionally installs files with .ico, .svg, .xhtml and .xml extensions.
+ </para>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-helpers-banned-in-global-scope'>
+ <title>Helpers Banned in Global Scope</title>
+ <para>
+ <itemizedlist>
+ <listitem><para>diropts</para></listitem>
+ <listitem><para>docompress</para></listitem>
+ <listitem><para>exeopts</para></listitem>
+ <listitem><para>insopts</para></listitem>
+ <listitem><para>keepdir</para></listitem>
+ <listitem><para>libopts</para></listitem>
+ <listitem><para>use</para></listitem>
+ <listitem><para>use_enable</para></listitem>
+ <listitem><para>use_with</para></listitem>
+ <listitem><para>useq</para></listitem>
+ <listitem><para>usev</para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-metadata'>
+ <title>Metadata</title>
+ <section id='package-ebuild-eapi-5-progress-metadata-package-names-allow-period-characters'>
+ <title>Support for Period Characters in Package Names</title>
+ <para>
+ The "." character is allowed in package names.
+ </para>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-metadata-use-flags-allow-period-characters'>
+ <title>Support for Period Characters in USE Flags</title>
+ <para>
+ The "." character is allowed in USE flags.
+ </para>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-metadata-repository-dependencies'>
+ <title>Repository Dependencies</title>
+ <para>
+ Repository dependencies are supported in atoms in DEPEND, PDEPEND and RDEPEND and atoms passed to best_version and has_version functions.
+ Repository dependency is specified by two colons followed by repository name.
+ </para>
+ <table><title>Repository Dependency Examples</title>
+ <tgroup cols='1' align='left'>
+ <colspec colname='atom'/>
+ <thead>
+ <row>
+ <entry>Atom</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>dev-lang/python::progress</entry>
+ </row>
+ <row>
+ <entry>&gt;=dev-lang/python-3.2::progress</entry>
+ </row>
+ <row>
+ <entry>dev-lang/python:3.2::progress</entry>
+ </row>
+ <row>
+ <entry>dev-lang/python::progress[xml]</entry>
+ </row>
+ <row>
+ <entry>dev-lang/python:3.2::progress[xml]</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-globstar'>
+ <title>globstar shell option enabled by default</title>
+ <para>
+ globstar shell option is enabled by default, which enables recursive expansion of ** pattern in pathname expansion context.
+ </para>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-variables'>
+ <title>Variables</title>
+ <section id='package-ebuild-eapi-5-progress-variables-repository'>
+ <title>REPOSITORY Variable</title>
+ <para>
+ The new REPOSITORY variable is set in ebuild environment. This variable contains name of repository, which contains currently used ebuild.
+ </para>
+ </section>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-repo-level-config'>
+ <title>Extended Repository-Level Configuration</title>
+ <para>
+ Repository-level configuration in ${repository_path}/profiles is supported for the following files:
+ <itemizedlist>
+ <listitem><para>make.defaults</para></listitem>
+ <listitem><para>package.use</para></listitem>
+ <listitem><para>package.use.force</para></listitem>
+ <listitem><para>package.use.mask</para></listitem>
+ <listitem><para>package.use.stable.force</para></listitem>
+ <listitem><para>package.use.stable.mask</para></listitem>
+ <listitem><para>use.force</para></listitem>
+ <listitem><para>use.mask</para></listitem>
+ <listitem><para>use.stable.force</para></listitem>
+ <listitem><para>use.stable.mask</para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ <section id='package-ebuild-eapi-5-progress-directories'>
+ <title>Directories Allowed for Profile-Level and Repository-Level Configuration</title>
+ <para>
+ The following files can be directories:
+ <itemizedlist>
+ <listitem><para>package.mask</para></listitem>
+ <listitem><para>package.use</para></listitem>
+ <listitem><para>package.use.force</para></listitem>
+ <listitem><para>package.use.mask</para></listitem>
+ <listitem><para>package.use.stable.force</para></listitem>
+ <listitem><para>package.use.stable.mask</para></listitem>
+ <listitem><para>use.force</para></listitem>
+ <listitem><para>use.mask</para></listitem>
+ <listitem><para>use.stable.force</para></listitem>
+ <listitem><para>use.stable.mask</para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+</section>
diff --git a/doc/portage.docbook b/doc/portage.docbook
index f5803141e..04db26303 100644
--- a/doc/portage.docbook
+++ b/doc/portage.docbook
@@ -23,6 +23,7 @@
<!ENTITY package_ebuild_eapi_4_python SYSTEM "package/ebuild/eapi/4-python.docbook">
<!ENTITY package_ebuild_eapi_4_slot_abi SYSTEM "package/ebuild/eapi/4-slot-abi.docbook">
<!ENTITY package_ebuild_eapi_5 SYSTEM "package/ebuild/eapi/5.docbook">
+ <!ENTITY package_ebuild_eapi_5_progress SYSTEM "package/ebuild/eapi/5-progress.docbook">
<!ENTITY qa SYSTEM "qa.docbook">
<!ENTITY config SYSTEM "config.docbook">
<!ENTITY config_bashrc SYSTEM "config/bashrc.docbook">
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index afaff516b..83669398f 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -414,7 +414,7 @@ def abssymlink(symlink, target=None):
_doebuild_manifest_exempt_depend = 0
-_testing_eapis = frozenset(["4-python", "4-slot-abi", "5_pre2"])
+_testing_eapis = frozenset(["4-python", "4-slot-abi", "5_pre2", "5-progress"])
_deprecated_eapis = frozenset(["4_pre1", "3_pre2", "3_pre1", "5_pre1"])
def _eapi_is_deprecated(eapi):
diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
index 42c108b2e..e02e017ee 100644
--- a/pym/portage/eapi.py
+++ b/pym/portage/eapi.py
@@ -48,7 +48,7 @@ def eapi_exports_EBUILD_PHASE_FUNC(eapi):
return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi")
def eapi_exports_REPOSITORY(eapi):
- return eapi in ("4-python",)
+ return eapi in ("4-python", "5-progress")
def eapi_has_pkg_pretend(eapi):
return eapi not in ("0", "1", "2", "3")
@@ -69,19 +69,19 @@ def eapi_has_use_dep_defaults(eapi):
return eapi not in ("0", "1", "2", "3")
def eapi_has_repo_deps(eapi):
- return eapi in ("4-python",)
+ return eapi in ("4-python", "5-progress")
def eapi_allows_dots_in_PN(eapi):
- return eapi in ("4-python",)
+ return eapi in ("4-python", "5-progress")
def eapi_allows_dots_in_use_flags(eapi):
- return eapi in ("4-python",)
+ return eapi in ("4-python", "5-progress")
def eapi_supports_stable_use_forcing_and_masking(eapi):
return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi")
def eapi_allows_directories_on_profile_level_and_repository_level(eapi):
- return eapi in ("4-python",)
+ return eapi in ("4-python", "5-progress")
_eapi_attrs = collections.namedtuple('_eapi_attrs',
'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC '
diff --git a/pym/portage/tests/update/test_update_dbentry.py b/pym/portage/tests/update/test_update_dbentry.py
index ae634f031..0d4c5a02d 100644
--- a/pym/portage/tests/update/test_update_dbentry.py
+++ b/pym/portage/tests/update/test_update_dbentry.py
@@ -191,7 +191,7 @@ class UpdateDbentryTestCase(TestCase):
self.assertTrue(old_pattern.search(rdepend) is None)
self.assertTrue("dev-libs/M-moved" in rdepend)
- # EAPI 4-python N -> N.moved
+ # EAPI 4-python/*-progress N -> N.moved
rdepend = vardb.aux_get("dev-libs/B-1", ["RDEPEND"])[0]
old_pattern = re.compile(r"\bdev-libs/N(\s|$)")
self.assertTrue(old_pattern.search(rdepend) is None)