[jhbuild] modulesets: Update schemas to represent the state of the modulesets



commit 6ed4fb5f885f7ce017e46420f8836b7d5483ac95
Author: Philip Withnall <philip tecnocode co uk>
Date:   Wed Mar 20 16:11:47 2013 +0000

    modulesets: Update schemas to represent the state of the modulesets
    
    These updates are not exhaustive, but do mean that (with some fixes to be
    committed shortly) all moduleset files now validate against both schemas.
    
    Helps: https://bugzilla.gnome.org/show_bug.cgi?id=696184

 modulesets/moduleset.dtd |   25 ++++++++++++++++---------
 modulesets/moduleset.rnc |   42 +++++++++++++++++++++++++++++-------------
 2 files changed, 45 insertions(+), 22 deletions(-)
---
diff --git a/modulesets/moduleset.dtd b/modulesets/moduleset.dtd
index 2ab13cb..8a97e57 100644
--- a/modulesets/moduleset.dtd
+++ b/modulesets/moduleset.dtd
@@ -1,11 +1,11 @@
-<!ELEMENT moduleset 
(repository|include|autotools|metamodule|tarball|distutils|perl|linux|testmodule|cvsroot|cvsmodule|waf|cmake)+>
+<!ELEMENT moduleset 
(repository|include|autotools|metamodule|tarball|distutils|perl|linux|testmodule|cvsroot|cvsmodule|waf|cmake|systemmodule)+>
 <!ATTLIST moduleset
        name     CDATA  #IMPLIED>
 
 <!ELEMENT repository (mirror*)>
 <!ATTLIST repository
        name     CDATA  #REQUIRED
-       type     (arch|bzr|cvs|darcs|fossil|git|hg|svn|system|tarball)  #REQUIRED
+       type     (arch|bzr|cvs|darcs|fossil|git|hg|mtn|svn|system|tarball)  #REQUIRED
        default  (yes|no)  "no"
        password CDATA  #IMPLIED
        cvsroot  CDATA  #IMPLIED
@@ -46,6 +46,7 @@
        makefile        CDATA   #IMPLIED
        skip-autogen    (true|false|never) "false"
        supports-non-srcdir-builds (yes|no) "yes"
+       supports-parallel-builds (yes|no) "yes"
        autogen-template CDATA  #IMPLIED
        check-target    (true|false) "true">
 
@@ -56,13 +57,13 @@
        id              CDATA   #REQUIRED
        waf-command     CDATA   #IMPLIED>
 
-<!ELEMENT metamodule (dependencies,after?)>
+<!ELEMENT metamodule (dependencies,suggests?,after?)>
 <!ATTLIST metamodule
        id              CDATA   #REQUIRED>
 
 <!-- tarball module type is deprecated, a tarball repository inside the
      appropriate modtype should be used instead -->
-<!ELEMENT tarball (pkg-config?,source,branch?,dependencies?,patches?,suggests?,after?)>
+<!ELEMENT tarball (pkg-config?,source,branch?,dependencies?,suggests?,after?,patches?)>
 <!ATTLIST tarball
        id              CDATA   #REQUIRED
        version         CDATA   #REQUIRED
@@ -77,7 +78,7 @@
        id      ID      #REQUIRED
        supports-non-srcdir-builds (yes|no) "yes">
 
-<!ELEMENT cmake (pkg-config?,branch?,dependencies?,after?)>
+<!ELEMENT cmake (pkg-config?,branch?,dependencies?,suggests?,after?)>
 <!ATTLIST cmake
        id              CDATA   #REQUIRED
        cmakeargs       CDATA   #IMPLIED
@@ -93,10 +94,10 @@
 <!ATTLIST linux
        id              CDATA   #REQUIRED>
 
-<!ELEMENT systemmodule (pkg-config?,branch?)>
+<!ELEMENT systemmodule (pkg-config?,branch,dependencies?,suggests?,after?,systemdependencies?)>
 <!ATTLIST systemmodule
        id              CDATA   #REQUIRED
-       makeargs        CDATA   #IMPLIED>
+       supports-parallel-builds (yes|no) "yes">
 
 <!ELEMENT testmodule (pkg-config?,branch?,dependencies?,after?,testedmodules?)>
 <!ATTLIST testmodule
@@ -151,11 +152,17 @@
 <!ELEMENT dependencies (dep*)>
 <!ELEMENT suggests (dep*)>
 <!ELEMENT after (dep*)>
+<!ELEMENT systemdependencies (dep*)>
 <!ELEMENT dep EMPTY>
+<!-- This is actually 2 different types of element: <dep package=""/> as used in <dependencies>
+     and <dep type="" name=""/> as used in <systemdependencies>. The DTD can't specify both
+     separately since they have the same element name. -->
 <!ATTLIST dep
-       package CDATA   #REQUIRED>
+       package CDATA   #IMPLIED
+       type    CDATA   #IMPLIED
+       name    CDATA   #IMPLIED>
 
-<!ELEMENT branch (patch*)>
+<!ELEMENT branch (patch*,quilt*)>
 <!ATTLIST branch
        repo            CDATA   #IMPLIED
        module          CDATA   #IMPLIED
diff --git a/modulesets/moduleset.rnc b/modulesets/moduleset.rnc
index 2c75b6b..bedfd38 100644
--- a/modulesets/moduleset.rnc
+++ b/modulesets/moduleset.rnc
@@ -14,7 +14,9 @@ moduleset =
      | testmodule
      | cvsroot
      | cvsmodule
-     | waf)+
+     | waf
+     | cmake
+     | systemmodule)+
   }
 attlist.moduleset &= attribute name { text }?
 repository = element repository { attlist.repository, mirror* }
@@ -28,7 +30,9 @@ attlist.repository &=
     | "fossil"
     | "git"
     | "hg"
+    | "mtn"
     | "svn"
+    | "system"
     | "tarball"
   },
   [ a:defaultValue = "no" ] attribute default { "yes" | "no" }?,
@@ -66,9 +70,11 @@ attlist.mirror &=
   attribute href { text }?
 \include = element include { attlist.include, empty }
 attlist.include &= attribute href { text }
+# As parsed by get_dependencies()
+dependencieselements = dependencies?, suggests?, after?, systemdependencies?
 autotools =
   element autotools {
-    attlist.autotools, branch, dependencies?, suggests?, after?
+    attlist.autotools, pkg-config?, branch, dependencieselements
   }
 # Note: Here the ID type is not used as some existing IDs in modsets are not
 # valid XML ID types - instead CDATA is used
@@ -83,30 +89,36 @@ attlist.autotools &=
   attribute skip-autogen { "true" | "false" | "never" }?,
   [ a:defaultValue = "yes" ]
   attribute supports-non-srcdir-builds { "yes" | "no" }?,
+  attribute supports-parallel-builds { "yes" | "no" }?,
   attribute autogen-template { text }?,
   [ a:defaultValue = "true" ]
   attribute check-target { "true" | "false" }?
 waf =
-  element waf { attlist.waf, branch, dependencies?, suggests?, after? }
+  element waf { attlist.waf, branch, dependencieselements }
 # Note: Here the ID type is not used as some existing IDs in modsets are not
 # valid XML ID types - instead CDATA is used
 attlist.waf &=
   attribute id { text },
   attribute waf-command { text }?
+systemmodule =
+  element systemmodule { attlist.systemmodule, pkg-config?, branch, dependencieselements }
+attlist.systemmodule &=
+  attribute id { text },
+  attribute supports-parallel-builds { "yes" | "no" }?
+pkg-config = element pkg-config { text }
 metamodule =
-  element metamodule { attlist.metamodule, dependencies, after? }
+  element metamodule { attlist.metamodule, dependencieselements }
 attlist.metamodule &= attribute id { text }
 # tarball module type is deprecated, a tarball repository inside the
 # appropriate modtype should be used instead
 tarball =
   element tarball {
     attlist.tarball,
+    pkg-config?,
     source,
     branch?,
-    dependencies?,
-    patches?,
-    suggests?,
-    after?
+    dependencieselements,
+    patches?
   }
 attlist.tarball &=
   attribute id { text },
@@ -125,10 +137,10 @@ attlist.distutils &=
   attribute id { xsd:ID },
   [ a:defaultValue = "yes" ]
   attribute supports-non-srcdir-builds { "yes" | "no" }?
-cmake = element cmake { attlist.cmake, branch?, dependencies?, after? }
+cmake = element cmake { attlist.cmake, pkg-config?, branch?, dependencieselements }
 attlist.cmake &=
   attribute id { text },
-  attribute cmakeargs { text }?
+  attribute cmakeargs { text }?,
   attribute makeargs { text }?
 perl = element perl { attlist.perl, branch?, dependencies?, after? }
 attlist.perl &=
@@ -159,7 +171,7 @@ attlist.cvsroot &=
   [ a:defaultValue = "" ] attribute password { text }?
 cvsmodule =
   element cvsmodule {
-    attlist.cvsmodule, suggests?, dependencies?, after?
+    attlist.cvsmodule, dependencieselements
   }
 attlist.cvsmodule &=
   attribute id { text },
@@ -198,9 +210,13 @@ suggests = element suggests { attlist.suggests, dep* }
 attlist.suggests &= empty
 after = element after { attlist.after, dep* }
 attlist.after &= empty
+systemdependencies = element systemdependencies { attlist.systemdependencies, sysdep* }
+attlist.systemdependencies &= empty
 dep = element dep { attlist.dep, empty }
 attlist.dep &= attribute package { text }
-branch = element branch { attlist.branch, patch* }
+sysdep = element dep { attlist.sysdep, empty }
+attlist.sysdep &= attribute type { text }, attribute name { text }
+branch = element branch { attlist.branch, patch*, quilt* }
 attlist.branch &=
   attribute repo { text }?,
   attribute module { text }?,
@@ -223,4 +239,4 @@ attlist.branch &=
 # source-subdir is tarballs only
 quilt = element quilt { attlist.quilt, branch }
 attlist.quilt &= attribute id { text }
-start = quilt | moduleset | cmake | ant
+start = moduleset | ant


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]