[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [emerge] portage/package/test-package: commit my changes
From:       Patrick Spendrin <ps_ml () gmx ! de>
Date:       2015-10-15 11:16:02
Message-ID: E1ZmgVu-0000jg-4J () scm ! kde ! org
[Download RAW message or body]

Git commit b6493ebe7db45c9a7e9ab510177bc75084ac8a01 by Patrick Spendrin.
Committed on 15/10/2015 at 11:14.
Pushed by sengels into branch 'master'.

commit my changes

M  +3    -6    portage/package/test-package/main.wxs.template
M  +53   -15   portage/package/test-package/test-package.py

http://commits.kde.org/emerge/b6493ebe7db45c9a7e9ab510177bc75084ac8a01

diff --git a/portage/package/test-package/main.wxs.template \
b/portage/package/test-package/main.wxs.template index 9529a8d..b31ffff 100644
--- a/portage/package/test-package/main.wxs.template
+++ b/portage/package/test-package/main.wxs.template
@@ -17,12 +17,9 @@
 
     <Feature Id='Complete' Title='KDE Frameworks SDK' Description='The complete \
package.'  Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR'>
-      <Feature Id='Dependencies' Title='the 3rdparty dependencies' Description='the \
                3rdparty dependencies' Display='hidden' Level='1'>
-${dependenciesCode}      </Feature>
-      <Feature Id='Qt5Frameworks' Title='Qt5 Frameworks' Description='The KDE build \
                of Qt5' Level='1'>
-${qtFrameworksCode}      </Feature>
-      <Feature Id='KF5Frameworks' Title='KF5 Frameworks' Description='The KDE \
                Frameworks' Level='1'>
-${kfFrameworksCode}      </Feature>
+${dependenciesCode}
+${qtFrameworksCode}
+${kfFrameworksCode}
     </Feature>
 
     <UIRef Id="WixUI_Mondo" />
diff --git a/portage/package/test-package/test-package.py \
b/portage/package/test-package/test-package.py index a5ebf35..bee8500 100644
--- a/portage/package/test-package/test-package.py
+++ b/portage/package/test-package/test-package.py
@@ -57,7 +57,9 @@ class Package( VirtualPackageBase, CollectionPackagerBase ):
 
 
     def getFeatureXML( self, wxs, package, description, hidden=False ):
-        componentRoot = wxs.createElement( "Feature" )
+        if not wxs.ownerDocument: doc = wxs
+        else: doc = wxs.ownerDocument
+        componentRoot = doc.createElement( "Feature" )
 
         componentRoot.setAttribute( "Id", "%sFeature" % package.replace( '-', '_' ) \
)  componentRoot.setAttribute( "Title", "%s" % package )
@@ -67,16 +69,11 @@ class Package( VirtualPackageBase, CollectionPackagerBase ):
         else: display = "collapse"
         componentRoot.setAttribute( "Display", display )
 
-        componentGroupRef = wxs.createElement( "ComponentGroupRef" )
+        componentGroupRef = doc.createElement( "ComponentGroupRef" )
         componentGroupRef.setAttribute( "Id", "%sComponentGroup" % package.replace( \
'-', '_' ) )  componentRoot.appendChild( componentGroupRef )
 
-        componentlistString = StringIO()
-        componentRoot.writexml( componentlistString, " " * , "  ", "\n" )
-        s = componentlistString.getvalue()
-        componentlistString.close()
-
-        return s
+        wxs.appendChild(componentRoot)
 
     def generateDirectoryFragments( self ):
         wxs = Document()
@@ -127,19 +124,50 @@ class Package( VirtualPackageBase, CollectionPackagerBase ):
         # run heat on all image directories
         _packages = self.__getPackages()
 
-        binwxs = Document()
-        qt5wxs = Document()
-        kf5wxs = Document()
+        def generateFeature(base, id, title, description):
+            if not base.ownerDocument: base.ownerDocument = base
+            t = base.ownerDocument.createElement( "Feature" )
+            t.setAttribute( "Id", id )
+            t.setAttribute( "Title", title )
+            t.setAttribute( "Description", description )
+            t.setAttribute( "Level", "1" )
+            return t
+
+        binwxsdoc = Document()
+        qt5wxsdoc = Document()
+        kf5wxsdoc = Document()
+
+        kf5wxs = generateFeature(kf5wxsdoc, 'KF5Frameworks', 'KF5 Frameworks', 'The \
KDE Frameworks') +        binwxs = generateFeature(binwxsdoc, 'Dependencies', 'the \
3rdparty dependencies', 'the 3rdparty dependencies') +        \
binwxs.setAttribute("Display", "hidden") +        qt5wxs = generateFeature(qt5wxsdoc, \
'Qt5Frameworks', 'Qt5 Frameworks', 'The KDE build of Qt5KF5Frameworks') +        \
tiers = dict() +        _descriptions = { 'tier1': 'Tier 1 - only Qt dependencies',
+                          'tier2': 'Tier 2 - Qt and Tier 1 dependencies',
+                          'tier3': 'Tier 3 - Qt, Tier 1 and Tier 2 dependencies',
+                          'tier4': 'Tier 4 - Qt, Tier 1, Tier 2 and Tier 3 \
dependencies' } +        for i in range( 4 ):
+            tiername = 'tier' + str( i + 1 )
+            print( tiername )
+            t = generateFeature( kf5wxs, tiername, "Tier " + str( i + 1 ), \
_descriptions[ tiername ] ) +            print( t )
+            kf5wxs.appendChild( t )
+            tiers[ tiername ] = t
+
         for package in _packages:
-            if not package.package in frameworks and package.category != "libs":
+            tiername, _ = portage.getSubPackage( package.category, package.package )
+            if not (tiername and tiername.startswith("tier")) and package.category \
!= "libs":  basePackages.append( package.package )
-                dependenciesCode += self.getFeatureXML( binwxs, package.package, \
package.subinfo.shortDescription, True ) +                self.getFeatureXML( binwxs, \
package.package, package.subinfo.shortDescription, True )  elif package.category == \
"libs":  qtFrameworks.append( package.package )
-                qtFrameworksCode += self.getFeatureXML( qt5wxs, package.package, \
package.subinfo.shortDescription ) +                self.getFeatureXML( qt5wxs, \
package.package, package.subinfo.shortDescription )  else:
                 # assume this is a kf5 framework
-                kfFrameworksCode += self.getFeatureXML( kf5wxs, package.package, \
package.subinfo.shortDescription ) +                if tiername in tiers:
+                    self.getFeatureXML( tiers[ tiername ], package.package, \
package.subinfo.shortDescription ) +                else:
+                    self.getFeatureXML( kf5wxs, package.package, \
package.subinfo.shortDescription )  
             package.changePackager( "MSIFragmentPackager" )
             package.outDestination = self.imageDir()
@@ -171,6 +199,16 @@ class Package( VirtualPackageBase, CollectionPackagerBase ):
 
         iconCode = """<Icon Id="Foobar10.exe" SourceFile="FoobarAppl10.exe" />"""
         iconCode = ""
+        
+        s = StringIO()
+        qt5wxs.writexml(s, " " * 8, " " * 4, "\n")
+        qtFrameworksCode = s.getvalue()
+        s = StringIO()
+        kf5wxs.writexml(s, " " * 8, " " * 4, "\n")
+        kfFrameworksCode = s.getvalue()
+        s = StringIO()
+        binwxs.writexml(s, " " * 8, " " * 4, "\n")
+        dependenciesCode = s.getvalue()
 
         substitutedScript = scriptTemplate.safe_substitute( { 'dependenciesCode': \
dependenciesCode, 'qtFrameworksCode': qtFrameworksCode, 'kfFrameworksCode': \
kfFrameworksCode, 'iconCode': iconCode } )  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic