Kaydet (Commit) 14d16b44 authored tarafından Ozan Çağlayan's avatar Ozan Çağlayan

Feature: Add ability to avoid source packages from building on specific architectures

Example:

<Source>
    <Name>psyco</Name>
    ..
    ..
    <ExcludeArch>x86_64</ExcludeArch>
</Source>

will avoid the package psyco from building on systems where pisi.conf->architecture == x86_64
üst c1309395
......@@ -26,6 +26,9 @@
<ref name="Name"/>
<ref name="Homepage"/>
<ref name="Packager"/>
<zeroOrMore>
<ref name="ExcludeArch">
</zeroOrMore>
<oneOrMore>
<ref name="License"/>
</oneOrMore>
......
......@@ -51,6 +51,9 @@ class ActionScriptException(Error):
class AbandonedFilesException(Error):
pass
class ExcludedArchitectureException(Error):
pass
# Helper Functions
def get_file_type(path, pinfo_list, install_dir):
"""Return the file type of a path according to the given PathInfo
......@@ -241,6 +244,11 @@ class Builder:
def build(self):
"""Build the package in one shot."""
architecture = ctx.config.values.general.architecture
if architecture in self.spec.source.excludeArch:
raise ExcludedArchitectureException(_("pspec.xml avoids this package from building for '%s'") % architecture)
ctx.ui.status(_("Building PiSi source package: %s") % self.spec.source.name)
self.compile_action_script()
......
......@@ -164,6 +164,7 @@ class Source:
t_Name = [autoxml.String, autoxml.mandatory]
t_Homepage = [autoxml.String, autoxml.optional]
t_Packager = [Packager, autoxml.mandatory]
t_ExcludeArch = [ [autoxml.String], autoxml.optional]
t_License = [ [autoxml.String], autoxml.mandatory]
t_IsA = [ [autoxml.String], autoxml.optional]
t_PartOf = [autoxml.String, autoxml.optional]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment