these are needed

This commit is contained in:
İsmail Dönmez
2007-07-11 09:28:36 +00:00
parent 029d1675c1
commit 25c03b10b9
3 changed files with 523 additions and 13 deletions
+10 -2
View File
@@ -78,6 +78,7 @@
RuntimeDependencies |
Files |
Conflicts |
Replaces |
AdditionalFiles |
Provides
)*>
@@ -90,6 +91,14 @@
<!-- we have a problem here, this Package tag only contains a package name
while dtd treats this as another Package section, who said dtd doesnt
suck anyway -->
<!ATTLIST Package versionFrom CDATA #IMPLIED>
<!ATTLIST Package versionTo CDATA #IMPLIED>
<!ATTLIST Package version CDATA #IMPLIED>
<!ATTLIST Package releaseFrom CDATA #IMPLIED>
<!ATTLIST Package releaseTo CDATA #IMPLIED>
<!ATTLIST Package release CDATA #IMPLIED>
<!ELEMENT Replaces (Package)+>
<!ELEMENT AdditionalFiles (AdditionalFile+)>
<!ELEMENT AdditionalFile (#PCDATA)>
@@ -115,8 +124,7 @@ suck anyway -->
<!ELEMENT Update (#PCDATA | Date | Version | Comment | Name | Email)*>
<!ATTLIST Update release CDATA #REQUIRED>
<!-- FIXME: valid types must be used instead of CDATA -->
<!ATTLIST Update type CDATA #IMPLIED>
<!ATTLIST Update type (security|bug) #IMPLIED>
<!ELEMENT Date (#PCDATA)>
<!ELEMENT Version (#PCDATA)>
+502
View File
@@ -0,0 +1,502 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- RELAX NG schema file for PISI pspec.xml files -->
<!-- http://www.pardus.org.tr/projeler/pisi/ -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<!-- Start Document -->
<start>
<ref name="PISI"/>
</start>
<!-- PISI Section -->
<define name="PISI">
<element name="PISI">
<ref name="Source"/>
<oneOrMore>
<ref name="Package"/>
</oneOrMore>
<ref name="History"/>
</element>
</define>
<!-- Source Section -->
<define name="Source">
<element name="Source">
<ref name="Name"/>
<ref name="Homepage"/>
<ref name="Packager"/>
<oneOrMore>
<ref name="License"/>
</oneOrMore>
<optional>
<ref name="Icon"/>
</optional>
<zeroOrMore>
<ref name="IsA"/>
</zeroOrMore>
<optional>
<ref name="PartOf"/>
</optional>
<oneOrMore>
<ref name="Summary"/>
</oneOrMore>
<zeroOrMore>
<!-- FIXME: should be oneOrMore -->
<ref name="Description"/>
</zeroOrMore>
<ref name="Archive"/>
<optional>
<ref name="BuildDependencies"/>
</optional>
<optional>
<ref name="Patches"/>
</optional>
</element>
</define>
<!-- Package Section -->
<define name="Package">
<element name="Package">
<ref name="Name"/>
<optional>
<ref name="License"/>
</optional>
<zeroOrMore>
<ref name="IsA"/>
</zeroOrMore>
<optional>
<ref name="PartOf"/>
</optional>
<zeroOrMore>
<ref name="Summary"/>
</zeroOrMore>
<zeroOrMore>
<ref name="Description"/>
</zeroOrMore>
<optional>
<ref name="RuntimeDependencies"/>
</optional>
<optional>
<ref name="Conflicts"/>
</optional>
<optional>
<ref name="Replaces"/>
</optional>
<ref name="Files"/>
<optional>
<ref name="AdditionalFiles"/>
</optional>
<optional>
<ref name="Provides"/>
</optional>
</element>
</define>
<!-- History Section -->
<define name="History">
<element name="History">
<oneOrMore>
<ref name="Update"/>
</oneOrMore>
</element>
</define>
<!-- Name -->
<define name="Name">
<element name="Name">
<data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<param name="pattern">[0-9a-zA-Z\-_+]*</param>
<param name="maxLength">255</param>
</data>
</element>
</define>
<!-- Homepage -->
<define name="Homepage">
<element name="Homepage">
<text/>
</element>
</define>
<!-- Icon -->
<define name="Icon">
<element name="Icon">
<text/>
</element>
</define>
<!-- Packager -->
<define name="Packager">
<element name="Packager">
<ref name="Packager.Name"/>
<ref name="Email"/>
</element>
</define>
<!-- Packager.Name -->
<define name="Packager.Name">
<element name="Name">
<data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<param name="maxLength">255</param>
</data>
</element>
</define>
<!-- Email -->
<define name="Email">
<element name="Email">
<text/>
</element>
</define>
<!-- License -->
<define name="License">
<element name="License">
<text/>
</element>
</define>
<!-- IsA -->
<define name="IsA">
<element name="IsA">
<choice>
<value>app</value>
<value>app:console</value>
<value>app:gui</value>
<value>app:web</value>
<value>library</value>
<value>service</value>
<value>data</value>
<value>data:doc</value>
<value>data:font</value>
<value>kernel</value>
<value>driver</value>
<value>locale</value>
<value>locale:tr</value>
<value>locale:en</value>
<value>locale:es</value>
<value>locale:nl</value>
<value>locale:fr</value>
<value>locale:de</value>
<value>locale:it</value>
</choice>
</element>
</define>
<!-- PartOf -->
<define name="PartOf">
<element name="PartOf">
<text/>
</element>
</define>
<!-- Summary -->
<define name="Summary">
<element name="Summary">
<ref name="attlist.Summary"/>
<text/>
</element>
</define>
<!-- attlist.Summary -->
<define name="attlist.Summary" combine="interleave">
<optional>
<attribute name="xml:lang"/>
</optional>
</define>
<!-- Description -->
<define name="Description">
<element name="Description">
<ref name="attlist.Description"/>
<text/>
</element>
</define>
<!-- attlist.Description -->
<define name="attlist.Description" combine="interleave">
<optional>
<attribute name="xml:lang"/>
</optional>
</define>
<!-- Archive -->
<define name="Archive">
<element name="Archive">
<ref name="attlist.Archive"/>
<text/>
</element>
</define>
<!-- attlist.Archive -->
<define name="attlist.Archive" combine="interleave">
<group>
<attribute name="sha1sum"/>
<attribute name="type">
<choice>
<value>targz</value>
<value>tarbz2</value>
<value>tarlzma</value>
<value>tar</value>
<value>zip</value>
<value>gzip</value>
<value>binary</value>
</choice>
</attribute>
</group>
</define>
<!-- BuildDependencies -->
<define name="BuildDependencies">
<element name="BuildDependencies">
<oneOrMore>
<ref name="Dependency"/>
</oneOrMore>
</element>
</define>
<!-- Dependency -->
<define name="Dependency">
<element name="Dependency">
<ref name="attlist.VersionReleaseToFrom"/>
<text/>
</element>
</define>
<!-- attlist.VersionReleaseToFrom -->
<define name="attlist.VersionReleaseToFrom">
<group>
<optional>
<attribute name="versionFrom"/>
</optional>
<optional>
<attribute name="versionTo"/>
</optional>
<optional>
<attribute name="version"/>
</optional>
<optional>
<attribute name="releaseFrom"/>
</optional>
<optional>
<attribute name="releaseTo"/>
</optional>
<optional>
<attribute name="release"/>
</optional>
</group>
</define>
<!-- Patches -->
<define name="Patches">
<element name="Patches">
<oneOrMore>
<ref name="Patch"/>
</oneOrMore>
</element>
</define>
<!-- Patch -->
<define name="Patch">
<element name="Patch">
<ref name="attlist.Patch"/>
<text/>
</element>
</define>
<!-- attlist.Patch -->
<define name="attlist.Patch" combine="interleave">
<group>
<optional>
<attribute name="compressionType"/>
</optional>
<optional>
<attribute name="level"/>
</optional>
<optional>
<attribute name="target"/>
</optional>
</group>
</define>
<!-- Provides -->
<define name="Provides">
<element name="Provides">
<oneOrMore>
<ref name="COMAR"/>
</oneOrMore>
</element>
</define>
<!-- COMAR -->
<define name="COMAR">
<element name="COMAR">
<ref name="attlist.COMAR"/>
<text/>
</element>
</define>
<!-- attlist.COMAR -->
<define name="attlist.COMAR">
<optional>
<attribute name="script"/>
</optional>
</define>
<!-- Conflicts -->
<define name="Conflicts">
<element name="Conflicts">
<oneOrMore>
<ref name="Conflicts.Package"/>
</oneOrMore>
</element>
</define>
<define name="Conflicts.Package">
<element name="Package">
<ref name="attlist.VersionReleaseToFrom"/>
<text />
</element>
</define>
<!-- Replaces -->
<define name="Replaces">
<element name="Replaces">
<oneOrMore>
<ref name="Replaces.Package"/>
</oneOrMore>
</element>
</define>
<define name="Replaces.Package">
<element name="Package">
<ref name="attlist.VersionReleaseToFrom"/>
<text />
</element>
</define>
<!-- AdditionalFiles -->
<define name="AdditionalFiles">
<element name="AdditionalFiles">
<oneOrMore>
<ref name="AdditionalFile"/>
</oneOrMore>
</element>
</define>
<!-- AdditionalFile -->
<define name="AdditionalFile">
<element name="AdditionalFile">
<ref name="attlist.AdditionalFile"/>
<text/>
</element>
</define>
<!-- attlist.AdditionalFile -->
<define name="attlist.AdditionalFile">
<attribute name="target"/>
<optional>
<attribute name="permission"/>
</optional>
<optional>
<attribute name="owner"/>
</optional>
</define>
<!-- RuntimeDependencies -->
<define name="RuntimeDependencies">
<element name="RuntimeDependencies">
<oneOrMore>
<ref name="Dependency"/>
</oneOrMore>
</element>
</define>
<!-- Files -->
<define name="Files">
<element name="Files">
<oneOrMore>
<ref name="Path"/>
</oneOrMore>
</element>
</define>
<!-- Path -->
<define name="Path">
<element name="Path">
<ref name="attlist.Path"/>
<text/>
</element>
</define>
<!-- attlist.Path -->
<define name="attlist.Path" combine="interleave">
<group>
<attribute name="fileType">
<choice>
<value>executable</value>
<value>library</value>
<value>data</value>
<value>config</value>
<value>doc</value>
<value>man</value>
<value>info</value>
<value>localedata</value>
<value>header</value>
</choice>
</attribute>
<optional>
<attribute name="permanent">
<choice>
<value>false</value>
<value>true</value>
</choice>
</attribute>
</optional>
</group>
</define>
<!-- Update -->
<define name="Update">
<element name="Update">
<ref name="attlist.Update"/>
<ref name="Date"/>
<ref name="Version"/>
<ref name="Comment"/>
<ref name="Packager.Name"/>
<ref name="Email"/>
</element>
</define>
<!-- attlist.Update -->
<define name="attlist.Update" combine="interleave">
<attribute name="release"/>
<optional>
<attribute name="type">
<choice>
<value>security</value>
<value>bug</value>
</choice>
</attribute>
</optional>
</define>
<!-- Date -->
<define name="Date">
<element name="Date">
<data type="date" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</element>
</define>
<!-- Version -->
<define name="Version">
<element name="Version">
<text/>
</element>
</define>
<!-- Comment -->
<define name="Comment">
<element name="Comment">
<text/>
</element>
</define>
</grammar>
+11 -11
View File
@@ -172,7 +172,7 @@ def xterm_title(message):
terminalType = os.environ["TERM"]
for term in ["xterm", "Eterm", "aterm", "rxvt", "screen", "kterm", "rxvt-unicode"]:
if terminalType.startswith(term):
sys.stderr.write("\x1b]2;"+str(message)+"\x07")
sys.stderr.write("\x1b]2;"+unicode(message)+"\x07")
sys.stderr.flush()
break
@@ -241,9 +241,9 @@ def absolute_path(path):
def join_path(a, *p):
"""Join two or more pathname components.
Python os.path.join cannot handle '/' at the start of latter components.
"""
path = a
for b in p:
@@ -331,7 +331,7 @@ def clean_ar_timestamps(ar_file):
# an unrelated problem
def get_file_hashes(top, excludePrefix=None, removePrefix=None):
"""Iterate over given path and return a list of file hashes.
Generator function iterates over a toplevel path and returns the
(filePath, sha1Hash) tuples for all files. If excludePrefixes list
is given as a parameter, function will exclude the filePaths
@@ -608,9 +608,9 @@ def package_name(name, version, release, build, prependSuffix=True):
def is_package_name(fn, package_name = None):
"""Check if fn is a valid filename for given package_name.
If not given a package name, see if fn fits the package name rules
"""
if (package_name==None) or fn.startswith(package_name + '-'):
if fn.endswith(ctx.const.package_suffix):
@@ -626,9 +626,9 @@ def is_package_name(fn, package_name = None):
def parse_package_name(package_name):
"""Separate package name and version string.
example: tasma-1.0.3-5-2 -> (tasma, 1.0.3-5-2)
"""
# We should handle package names like 855resolution
name = []
@@ -644,14 +644,14 @@ def parse_package_name(package_name):
def parse_delta_package_name(package_name):
"""Separate delta package name and release infos
example: tasma-5-7.pisi.delta -> (tasma, 5, 7)
"""
name, build = parse_package_name(package_name)
build = build[:-len(ctx.const.delta_package_suffix)]
buildFrom, buildTo = build.split("-")
return name, buildFrom, buildTo
def filter_latest_packages(package_paths):