[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