Support EAPI="5-progress".
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Fri, 21 Sep 2012 19:03:05 +0000 (21:03 +0200)
committerArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Fri, 21 Sep 2012 19:03:05 +0000 (21:03 +0200)
bin/dohtml.py
bin/ebuild.sh
doc/package/ebuild.docbook
doc/package/ebuild/eapi/5-progress.docbook [new file with mode: 0644]
doc/portage.docbook
pym/portage/__init__.py
pym/portage/eapi.py
pym/portage/tests/update/test_update_dbentry.py

index 3e80ef5f6f4d3b29f067dafdfc5f6ae0ec53cc14..3af27050997b89f26742c33bbdbc308cbc61adde 100755 (executable)
@@ -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']
index a6ff45301f590599629a739c53ae057e4df1c9c5..79da2b518cb5ae73e8c99cfbd796e022b22c0ef7 100755 (executable)
@@ -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
 
index e268a3d111c760e9b0b674ff7559b0c33901c7dc..98084c8faa26dc94876acbecd5ace4f4de8165ef 100644 (file)
@@ -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 (file)
index 0000000..142ff8e
--- /dev/null
@@ -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>
index f5803141e1da1621fd5ce4125c8da1992096d129..04db26303fa33f615750bc9e58bf75262ecd89e5 100644 (file)
@@ -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">
index afaff516b6a33955455a3fae46a915bf5f0fed08..83669398f309a886fbbf0d285883e5c86a1f43b0 100644 (file)
@@ -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):
index 42c108b2e6b3150af1cdcf61fec4fd8b5b8007d8..e02e017eea64f1492600be5f163b8ad760cbbffd 100644 (file)
@@ -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 '
index ae634f03183e67156418e98cbbcdd9d78f6e23cd..0d4c5a02de0f2602bd362741abc4d0b7eb82a2b5 100644 (file)
@@ -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)