diff --git a/bin/Notifier/Backends/Snarl.py b/bin/Notifier/Backends/Snarl.py new file mode 100644 index 000000000..4abdd0fd2 --- /dev/null +++ b/bin/Notifier/Backends/Snarl.py @@ -0,0 +1,14 @@ +import os +from Notifier.NotificationInterface import * +from Notifier.Libs.pysnp import * + + +class Snarl(NotificationInterface): + def __init__(self): + NotificationInterface.__init__(self,"Snarl") + self.snp = PySNP() + + def notify(self,title,message): + self.snp.register("emerge", "emerge",icon="http://winkde.org/~pvonreth/other/kde-logo.png") + self.snp.notify("emerge", title, message ,icon="http://winkde.org/~pvonreth/other/kde-logo.png") + diff --git a/bin/Notifier/Backends/__init__.py b/bin/Notifier/Backends/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/bin/Notifier/Libs/__init__.py b/bin/Notifier/Libs/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/bin/Notifier/Libs/pysnp.py b/bin/Notifier/Libs/pysnp.py new file mode 100644 index 000000000..a05e309cb --- /dev/null +++ b/bin/Notifier/Libs/pysnp.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python + +import socket + +__author__ = 'Shawn McTear' +__version__ = '0.1.0' + +class PySNP(object): + host = '127.0.0.1' + port = 9887 + + def __init__(self, **address): + """Creates an object of pySNP.""" + if 'host' in address: + self.host = address['host'] + if 'port' in address: + self.port = address['port'] + + def _send(self, request, errors): + """Trys to sends the request to Snarl""" + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + self.sock.connect((self.host, self.port)) + self.sock.send((request + '\r\n').encode("UTF-8")) + recv = str(self.sock.recv(1024),"UTF-8").rstrip('\r\n') + self.sock.close() + self._response(recv, errors, request) + except IOError: + errors = self._error(1, 'noserver', None, None) + self._error(2, None, errors, None) + + def _response(self, recv, errors, request): + """Displays Snarl's response""" + self._error(2, None, errors, None) + + def _process(self, action, data, args): + """Processes everything from the actions""" + errors = self._error() + request = 'snp://' + action + param = '' + + # Fills data with info from args if needed + for val in data: + if val in args: + data[val][2] = args[val] + + # Checks if data is required and if vals are empty + for key, val in sorted(list(data.items()), key=lambda x: x[1]): + if val[1] is True and val[2]: + param = param + '&' + key + '=' + val[2] + elif val[1] is True and not val[2]: + errors = self._error(1, 'missing', errors, key) + elif val[1] is False and val[2]: + param = param + '&' + key + '=' + val[2] + else: + pass + + # Checks for errors before sending + if not errors: + param = param.replace('&', '?', 1) + request = request + param + self._send(request, errors) + + def _error(self, mode=0, issue=None, errors=None, obj=None): + """Assigns and displays errors""" + issue = issue or '' + errors = errors or [] + obj = obj or '' + + if mode is 1 and issue is 'missing': + error = "*Error: '%s' is missing.*" % obj + errors.append(error) + elif mode is 1 and issue is 'noserver': + error = "*Error: Can't connect to Snarl.*" + errors.append(error) + elif mode is 2: + for error in errors: + print(error) + else: + pass + return errors + + def register(self, app_sig='', app_title='', **args): + """Snarl's register action""" + action = 'register' + data = {'app-sig': [1, True, app_sig], + 'password': [2, False, ''], + 'title': [3, True, app_title], + 'icon': [4, False, '']} + self._process(action, data, args) + + def notify(self, app_sig='', title='', text='', **args): + """Snarl's notify action""" + action = 'notify' + data = {'app-sig': [1, True, app_sig], + 'password': [2, False, ''], + 'title': [3, True, title], + 'text': [4, False, text], + 'icon': [5, False, ''], + 'id': [6, False, ''], + 'uid': [7, False, ''], + 'timeout': [8, False, ''], + 'priority': [9, False, '']} + self._process(action, data, args) + + def addclass(self, app_sig='', cid='', cname='', **args): + """Snarl's addclass action""" + action = 'addclass' + data = {'app-sig': [1, True, app_sig], + 'password': [2, False, ''], + 'title': [3, False, ''], + 'text': [4, False, ''], + 'icon': [5, False, ''], + 'id': [6, True, cid], + 'name': [7, True, cname], + 'enabled': [8, False, '']} + self._process(action, data, args) + + def version(self, **args): + """Snarl's version action""" + action = 'version' + data = {} + self._process(action, data, args) + + def unregister(self, app_sig='', **args): + """Snarl's unregister action""" + action = 'unregister' + data = {'app-sig': [1, True, app_sig], + 'password': [2, False, '']} + self._process(action, data, args) + \ No newline at end of file diff --git a/bin/Notifier/NotificationInterface.py b/bin/Notifier/NotificationInterface.py new file mode 100644 index 000000000..785185d91 --- /dev/null +++ b/bin/Notifier/NotificationInterface.py @@ -0,0 +1,7 @@ +class NotificationInterface(object): + def __init__(self, name): + self.name = name + + def notify(self,title,message): + raise NameError('Not Implemented') + diff --git a/bin/Notifier/NotificationLoader.py b/bin/Notifier/NotificationLoader.py new file mode 100644 index 000000000..5dad1002a --- /dev/null +++ b/bin/Notifier/NotificationLoader.py @@ -0,0 +1,14 @@ +import Notifier.NotificationInterface +import importlib + +_NOTIFICATION_BACKENDS = None +def load(modules): + global _NOTIFICATION_BACKENDS; + if _NOTIFICATION_BACKENDS == None: + _NOTIFICATION_BACKENDS = dict() + for backend in modules: + backend = getattr(importlib.import_module("Notifier.Backends.%s" % backend),backend)() + _NOTIFICATION_BACKENDS[backend.name] = backend + return _NOTIFICATION_BACKENDS + + diff --git a/bin/Notifier/__init__.py b/bin/Notifier/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/bin/emerge.py b/bin/emerge.py index a992d7e2b..9bd135335 100644 --- a/bin/emerge.py +++ b/bin/emerge.py @@ -1,615 +1,619 @@ # -*- coding: utf-8 -*- # this will emerge some programs... # copyright: # Holger Schroeder # Patrick Spendrin import sys import os import utils import portage import emergePlatform import shutil from InstallDB import * def usage(): print(""" Usage: emerge [[ command and flags ] [ singletarget ] [ command and flags ] [ singletarget ] ... ] where singletarget can be of the form: category package category/package Emerge is a tool for building KDE-related software under Windows. emerge automates it, looks for the dependencies and fetches them automatically. Some options should be used with extreme caution since they will make your kde installation unusable in 999 out of 1000 cases. Commands (no packagename needed - will be ignored when given): --print-installed This will show a list of all packages that are installed currently. It queries both databases (etc\portage\installed) and the manifest directory - it prints out only those packages that are contained within --print-installable --print-installable This will give you a list of packages that can be installed. Currently you don't need to enter the category and package: only the package will be enough. --update-all this option tries to update all installed packages that contain one or multiple svn targets. This is equivalent to running all those packages with the flag --update. Commands (must have a packagename): --print-targets This will print all the different targets one package can contain: different releases might have different tags that are build as targets of a package. As an example: You could build the latest amarok sources with the target 'svnHEAD' the previous '1.80' release would be contained as target '1.80'. --print-revision This will print the revision that the source repository of this package currently has or nothing if there is no repository. --fetch retrieve package sources (also checkout sources from svn or git). --unpack unpack package sources and make up the build directory. --compile compile the sources: this includes configure'ing/cmake'ing and running [mingw32-|n|]make. --configure configure the sources (support is package specific) --make run [mingw32-|n|]make (support is package specific) --install This will run [mingw32-|n|]make install into the image directory of each package. --manifest This step creates the files contained in the manifest dir. --qmerge This will merge the image directory into the KDEROOT --test This will run the unittests if they are present --package This step will create a package out of the image directory instead of merge'ing the image directory into the KDEROOT (Requires the packager to be installed already.) --full-package This will create packages instead of installing stuff to KDEROOT --install-deps This will fetch and install all required dependencies for the specified package --unmerge this uninstalls a package from KDEROOT - it requires a working manifest directory. unmerge only delete unmodified files by default. You may use the -f or --force option to let unmerge delete all files unconditional. --cleanallbuilds Clean complete build directory. --cleanbuild Clean build directory for the specified package. This cleans also all the image directories of all targets of the specified package. --checkdigest Check digest for the specified package. If no digest is available calculate and print digests. --cleanimage Clean image directory for the specified package and target. --createpatch Create source patch file for the specific package based on the original archive file or checkout revision of the used software revision control system. --disable-buildhost This disables the building for the host. --disable-buildtarget This disables the building for the target. Flags: --buildtype=[BUILDTYPE] This will override the build type set by the environment option EMERGE_BUILDTYPE . Please set it to one out of Release, Debug, RelWithDebInfo, MinSizeRel --target=[TARGET] This will override the build of the default target. The default Target is marked with a star in the printout of --print-targets --options= Set emerge property from string . An example for is "cmake.openIDE=1"; see options.py for more informations. --patchlevel=[PATCHLEVEL] This will add a patch level when used together with --package --log-dir=[LOG_DIR] This will log the build output to a logfile in LOG_DIR for each package. Logging information is appended to existing logs. -i ignore install: using this option will install a package over an existing install. This can be useful if you want to check some new code and your last build isn't that old. -p --probe probing: emerge will only look which files it has to build according to the list of installed files and according to the dependencies of the package. -q quiet: there should be no output - The verbose level should be 0 -t test: if used on an KDE target it will override the environment variable and build the target with -DKDE_BUILD_TESTS=ON -v verbose: increases the verbose level of emerge. Default is 1. verbose level 1 contains some notes from emerge, all output of cmake, make and other programs that are used. verbose level 2 adds an option VERBOSE=1 to make and emerge is more verbose highest level is verbose level 3. -z if packages from version control system sources are installed, it marks them as out of date and rebuilds them (tags are not marked as out of date). -sz similar to -z, only that it acts only on the last package, and works as normal on the rest. --noclean this option will try to use an existing build directory. Please handle this option with care - it will possibly break if the directory isn't existing. --nocopy this option is deprecated. In older releases emerge would have copied everything from the SVN source tree to a source directory under %KDEROOT%\\tmp - currently nocopy is applied by default if EMERGE_NOCOPY is not set to "False". Be aware that setting EMERGE_NOCOPY to "False" might slow down the build process, irritate you and increase the disk space roughly by the size of SVN source tree. --offline do not try to connect to the internet: KDE packages will try to use an existing source tree and other packages would try to use existing packages in the download directory. If that doesn't work, the build will fail. --update this option is the same as '-i --noclean'. It will update a single package that is already installed. --cleanup Clean your portage directory, to prevent emerge errors, removes empty directories and *.pyc files Internal options or options that aren't fully implemented yet: PLEASE DO NOT USE! --version-dir --version-package More information see the README or http://windows.kde.org/. Send feedback to . """) @utils.log def doExec( category, package, version, action, opts ): utils.startTimer("%s for %s" % ( action,package),1) utils.debug( "emerge doExec called. action: %s opts: %s" % (action, opts), 2 ) fileName = portage.getFilename( category, package, version ) opts_string = ( "%s " * len( opts ) ) % tuple( opts ) commandstring = "python %s %s %s" % ( fileName, action, opts_string ) utils.debug( "file: " + fileName, 1 ) try: #Switched to import the packages only, because otherwise degugging is very hard, if it troubles switch back #makes touble for xcompile -> changed back if not utils.system( commandstring ): utils.die( "running %s" % commandstring ) #mod = portage.__import__( fileName ) #mod.Package().execute(action) except OSError: utils.stopTimer("%s for %s" % ( action,package)) return False utils.stopTimer("%s for %s" % ( action,package)) return True def handlePackage( category, package, version, buildAction, opts ): utils.debug( "emerge handlePackage called: %s %s %s %s" % (category, package, version, buildAction), 2 ) success = True if continueFlag: actionList = ['fetch', 'unpack', 'configure', 'make', 'cleanimage', 'install', 'manifest', 'qmerge'] found = None for action in actionList: if not found and action != buildAction: continue found = True success = success and doExec( category, package, version, action, opts ) elif ( buildAction == "all" or buildAction == "full-package" ): os.putenv( "EMERGE_BUILD_STEP", "" ) success = doExec( category, package, version, "fetch", opts ) success = success and doExec( category, package, version, "unpack", opts ) if emergePlatform.isCrossCompilingEnabled(): if not disableHostBuild: os.putenv( "EMERGE_BUILD_STEP", "host" ) success = success and doExec( category, package, version, "compile", opts ) success = success and doExec( category, package, version, "cleanimage", opts ) success = success and doExec( category, package, version, "install", opts ) if ( buildAction == "all" ): success = success and doExec( category, package, version, "manifest", opts ) if ( buildAction == "all" ): success = success and doExec( category, package, version, "qmerge", opts ) if( buildAction == "full-package" ): success = success and doExec( category, package, version, "package", opts ) if disableTargetBuild: return success os.putenv( "EMERGE_BUILD_STEP", "target" ) success = success and doExec( category, package, version, "compile", opts ) success = success and doExec( category, package, version, "cleanimage", opts ) success = success and doExec( category, package, version, "install", opts ) if ( buildAction == "all" ): success = success and doExec( category, package, version, "manifest", opts ) if ( buildAction == "all" ): success = success and doExec( category, package, version, "qmerge", opts ) if( buildAction == "full-package" ): success = success and doExec( category, package, version, "package", opts ) elif ( buildAction in [ "fetch", "unpack", "preconfigure", "configure", "compile", "make", "qmerge", "checkdigest", "dumpdeps", "package", "manifest", "unmerge", "test", "cleanimage", "cleanbuild", "createpatch", "geturls", "printrev"] and category and package and version ): os.putenv( "EMERGE_BUILD_STEP", "" ) success = True if emergePlatform.isCrossCompilingEnabled(): if not disableHostBuild: os.putenv( "EMERGE_BUILD_STEP", "host" ) success = doExec( category, package, version, buildAction, opts ) if disableTargetBuild: return success os.putenv( "EMERGE_BUILD_STEP", "target" ) success = success and doExec( category, package, version, buildAction, opts ) elif ( buildAction == "install" ): os.putenv( "EMERGE_BUILD_STEP", "" ) success = True if emergePlatform.isCrossCompilingEnabled(): if not disableHostBuild: os.putenv( "EMERGE_BUILD_STEP", "host" ) success = doExec( category, package, version, "cleanimage", opts ) success = success and doExec( category, package, version, "install", opts ) if disableTargetBuild: return success os.putenv( "EMERGE_BUILD_STEP", "target" ) success = success and doExec( category, package, version, "cleanimage", opts ) success = success and doExec( category, package, version, "install", opts ) elif ( buildAction == "version-dir" ): print("%s-%s" % ( package, version )) success = True elif ( buildAction == "version-package" ): print("%s-%s-%s" % ( package, os.getenv( "KDECOMPILER" ), version )) success = True elif ( buildAction == "print-installable" ): portage.printInstallables() success = True elif ( buildAction == "print-installed" ): if isDBEnabled(): printInstalled() else: portage.printInstalled() success = True elif ( buildAction == "print-targets" ): portage.printTargets( category, package, version ) success = True elif ( buildAction == "install-deps" ): success = True else: success = utils.error( "could not understand this buildAction: %s" % buildAction ) return success # # "main" action starts here # # TODO: all the rest should go into main(). But here I am not # sure - maybe some of those variables are actually MEANT to # be used in other modules. Put this back for now # but as a temporary solution rename variables to mainXXX # where it is safe so there are less redefinitions in inner scopes utils.startTimer("Emerge") mainBuildAction = "all" packageName = None doPretend = False outDateVCS = False outDatePackage = False stayQuiet = False disableHostBuild = False disableTargetBuild = False ignoreInstalled = False updateAll = False continueFlag = False if len( sys.argv ) < 2: usage() utils.die("") environ = dict() # TODO: why do we need this at all? environ["EMERGE_TRACE"] = os.getenv( "EMERGE_TRACE" ) environ["EMERGE_BUILDTESTS"] = os.getenv( "EMERGE_BUILDTESTS" ) environ["EMERGE_OFFLINE"] = os.getenv( "EMERGE_OFFLINE" ) environ["EMERGE_FORCED"] = os.getenv( "EMERGE_FORCED" ) environ["EMERGE_VERSION"] = os.getenv( "EMERGE_VERSION" ) environ["EMERGE_BUILDTYPE"] = os.getenv( "EMERGE_BUILDTYPE" ) environ["EMERGE_TARGET"] = os.getenv( "EMERGE_TARGET" ) environ["EMERGE_PKGPATCHLVL"] = os.getenv( "EMERGE_PKGPATCHLVL" ) environ["EMERGE_LOG_DIR"] = os.getenv( "EMERGE_LOG_DIR" ) if environ['EMERGE_TRACE'] == None or not environ['EMERGE_TRACE'].isdigit(): trace = 0 os.environ["EMERGE_TRACE"] = str( trace ) else: trace = int( environ[ "EMERGE_TRACE" ] ) mainOpts = list() executableName = sys.argv.pop( 0 ) nextArguments = sys.argv[:] for i in sys.argv: nextArguments.pop(0) if ( i == "-p" or i == "--probe" ): doPretend = True elif ( i.startswith("--options=") ): # @todo how to add -o option options = i.replace( "--options=", "" ) if "EMERGE_OPTIONS" in os.environ: os.environ["EMERGE_OPTIONS"] += " %s" % options else: os.environ["EMERGE_OPTIONS"] = options elif ( i == "-z" ): outDateVCS = True elif ( i == "-sz" ): outDatePackage = True elif ( i == "-q" ): stayQuiet = True elif ( i == "-t" ): os.environ["EMERGE_BUILDTESTS"] = "True" elif i == "-c" or i == "--continue": continueFlag = True elif ( i == "--offline" ): mainOpts.append( "--offline" ) os.environ["EMERGE_OFFLINE"] = "True" elif ( i == "-f" or i == "--force" ): os.environ["EMERGE_FORCED"] = "True" elif ( i.startswith( "--buildtype=" ) ): os.environ["EMERGE_BUILDTYPE"] = i.replace( "--buildtype=", "" ) elif ( i.startswith( "--target=" ) ): os.environ["EMERGE_TARGET"] = i.replace( "--target=", "" ) elif ( i.startswith( "--patchlevel=" ) ): os.environ["EMERGE_PKGPATCHLVL"] = i.replace( "--patchlevel=", "" ) elif ( i.startswith( "--log-dir=" ) ): os.environ["EMERGE_LOG_DIR"] = i.replace( "--log-dir=", "" ) elif ( i == "-v" ): utils.Verbose.increase() elif ( i == "--trace" ): trace = trace + 1 os.environ["EMERGE_TRACE"] = str( trace ) elif ( i == "--nocopy" ): os.environ["EMERGE_NOCOPY"] = str( True ) elif ( i == "--noclean" ): os.environ["EMERGE_NOCLEAN"] = str( True ) elif ( i == "--clean" ): os.environ["EMERGE_NOCLEAN"] = str( False ) elif ( i in [ "--version-dir", "--version-package", "--print-installable", "--print-installed", "--print-targets" ] ): mainBuildAction = i[2:] stayQuiet = True if i in [ "--print-installable", "--print-installed" ]: break elif ( i == "-i" ): ignoreInstalled = True elif ( i == "--update" ): ignoreInstalled = True os.environ["EMERGE_NOCLEAN"] = str( True ) elif ( i == "--update-all" ): ignoreInstalled = True os.environ["EMERGE_NOCLEAN"] = str( True ) updateAll = True elif ( i == "--install-deps" ): ignoreInstalled = True mainBuildAction = "install-deps" elif ( i in [ "--fetch", "--unpack", "--preconfigure", "--configure", "--compile", "--make", "--install", "--qmerge", "--manifest", "--package", "--unmerge", "--test", "--checkdigest", "--dumpdeps", "--full-package", "--cleanimage", "--cleanbuild", "--createpatch", "--geturls"] ): mainBuildAction = i[2:] elif ( i == "--print-revision" ): mainBuildAction = "printrev" elif ( i == "--disable-buildhost" ): disableHostBuild = True elif ( i == "--disable-buildtarget" ): disableTargetBuild = True elif( i == "--cleanup" ): utils.debug("Starting to clean emerge" ) utils.system("cd %s && git clean -f -x -e *.py -e *.diff -e *.ba\\t -e *.cmd -e *.reg" % os.path.join(os.getenv("KDEROOT"),"emerge") ) exit(0) elif( i == "--cleanup-dry" ): utils.debug("Starting to clean emerge" ) utils.system("cd %s && git clean --dry-run -x -e *.py -e *.diff -e *.ba\\t -e *.cmd -e *.reg" % os.path.join(os.getenv("KDEROOT"),"emerge") ) exit(0) elif i == "--cleanallbuilds": # clean complete build directory utils.cleanDirectory(os.path.join( os.getenv("KDEROOT"), "build")) exit(0) elif ( i.startswith( "-" ) ): usage() exit ( 1 ) else: packageName = i break if stayQuiet == True: utils.setVerbose(0) # get KDEROOT from env KDEROOT = os.getenv( "KDEROOT" ) utils.debug( "buildAction: %s" % mainBuildAction ) utils.debug( "doPretend: %s" % doPretend, 1 ) utils.debug( "packageName: %s" % packageName ) utils.debug( "buildType: %s" % os.getenv( "EMERGE_BUILDTYPE" ) ) utils.debug( "buildTests: %s" % utils.envAsBool( "EMERGE_BUILDTESTS" ) ) utils.debug( "verbose: %d" % utils.verbose(), 1 ) utils.debug( "trace: %s" % os.getenv( "EMERGE_TRACE" ), 1 ) utils.debug( "KDEROOT: %s\n" % KDEROOT, 1 ) utils.debug_line() def unset_var( varname ): if not os.getenv( varname ) == None: print() utils.warning( "%s found as environment variable. you cannot override emerge"\ " with this - unsetting %s locally" % ( varname, varname ) ) os.environ[ varname ] = "" unset_var( "CMAKE_INCLUDE_PATH" ) unset_var( "CMAKE_LIBRARY_PATH" ) unset_var( "CMAKE_FIND_PREFIX" ) unset_var( "CMAKE_INSTALL_PREFIX" ) # adding emerge/bin to find base.py and gnuwin32.py etc. os.environ["PYTHONPATH"] = os.getenv( "PYTHONPATH", "" ) + os.pathsep + \ os.path.join( os.getcwd(), os.path.dirname( executableName ) ) sys.path.append( os.path.join( os.getcwd(), os.path.dirname( executableName ) ) ) _deplist = [] deplist = [] packageList = [] categoryList = [] buildType = os.getenv("EMERGE_BUILDTYPE") if "EMERGE_DEFAULTCATEGORY" in os.environ: defaultCategory = os.environ["EMERGE_DEFAULTCATEGORY"] else: defaultCategory = "kde" if updateAll: installedPackages = portage.PortageInstance.getInstallables() if portage.PortageInstance.isCategory( packageName ): utils.debug( "Updating installed packages from category " + packageName, 1 ) else: utils.debug( "Updating all installed packages", 1 ) packageList = [] for mainCategory, mainPackage, mainVersion in installedPackages: if portage.PortageInstance.isCategory( packageName ) and ( mainCategory != packageName ): continue if portage.isInstalled( mainCategory, mainPackage, mainVersion, buildType ) \ and portage.isPackageUpdateable( mainCategory, mainPackage, mainVersion ): categoryList.append( mainCategory ) packageList.append( mainPackage ) utils.debug( "Will update packages: " + str (packageList), 1 ) elif packageName: packageList, categoryList = portage.getPackagesCategories(packageName) for entry in packageList: utils.debug( "%s" % entry, 1 ) utils.debug_line( 1 ) for mainCategory, entry in zip (categoryList, packageList): _deplist = portage.solveDependencies( mainCategory, entry, "", _deplist ) deplist = [p.ident() for p in _deplist] for item in range( len( deplist ) ): if deplist[ item ][ 0 ] in categoryList and deplist[ item ][ 1 ] in packageList: deplist[ item ].append( ignoreInstalled ) else: deplist[ item ].append( False ) utils.debug( "dependency: %s" % deplist[ item ], 1 ) #for item in deplist: # cat = item[ 0 ] # pac = item[ 1 ] # ver = item[ 2 ] # if portage.isInstalled( cat, pac, ver, buildType) and updateAll and not portage.isPackageUpdateable( cat, pac, ver ): # print "remove:", cat, pac, ver # deplist.remove( item ) if mainBuildAction == "install-deps": # the first dependency is the package itself - ignore it # TODO: why are we our own dependency? del deplist[ 0 ] deplist.reverse() # package[0] -> category # package[1] -> package # package[2] -> version if ( mainBuildAction != "all" and mainBuildAction != "install-deps" ): # if a buildAction is given, then do not try to build dependencies # and do the action although the package might already be installed. # This is still a bit problematic since packageName might not be a valid # package if packageName and len( deplist ) >= 1: mainCategory, mainPackage, mainVersion, tag, ignoreInstalled = deplist[ -1 ] else: mainCategory, mainPackage, mainVersion = None, None, None if not handlePackage( mainCategory, mainPackage, mainVersion, mainBuildAction, mainOpts ): + utils.notify("Emerge build failed", "Build of %s/%s-%s failed" % ( mainCategory, mainPackage, mainVersion)) exit(1) + utils.notify("Emerge build finished", "Build of %s/%s-%s finished" % ( mainCategory, mainPackage, mainVersion)) else: for mainCategory, mainPackage, mainVersion, defaultTarget, ignoreInstalled in deplist: target = "" targetList = [] isLastPackage = [mainCategory, mainPackage, mainVersion, defaultTarget, ignoreInstalled] == deplist[-1] if outDateVCS or (outDatePackage and isLastPackage): target = os.getenv( "EMERGE_TARGET" ) if not target or target not in list(portage.PortageInstance.getAllTargets( mainCategory, mainPackage, mainVersion ).keys()): # if no target or a wrong one is defined, simply set the default target here target = defaultTarget targetList = portage.PortageInstance.getUpdatableVCSTargets( mainCategory, mainPackage, mainVersion ) if isDBEnabled(): if emergePlatform.isCrossCompilingEnabled(): hostEnabled = portage.isHostBuildEnabled( mainCategory, mainPackage, mainVersion ) targetEnabled = portage.isTargetBuildEnabled( mainCategory, mainPackage, mainVersion ) hostInstalled = installdb.isInstalled( mainCategory, mainPackage, mainVersion, "" ) targetInstalled = installdb.isInstalled( mainCategory, mainPackage, mainVersion, os.getenv( "EMERGE_TARGET_PLATFORM" ) ) isInstalled = ( not hostEnabled or hostInstalled ) and ( not targetEnabled or targetInstalled ) else: isInstalled = installdb.isInstalled( mainCategory, mainPackage, mainVersion, "" ) else: isInstalled = portage.isInstalled( mainCategory, mainPackage, mainVersion, buildType ) if ( isInstalled and not ignoreInstalled ) and not ( isInstalled and (outDateVCS or (outDatePackage and isLastPackage) ) and target in targetList ): if utils.verbose() > 1 and mainPackage == packageName: utils.warning( "already installed %s/%s-%s" % ( mainCategory, mainPackage, mainVersion ) ) elif utils.verbose() > 2 and not mainPackage == packageName: utils.warning( "already installed %s/%s-%s" % ( mainCategory, mainPackage, mainVersion ) ) else: # find the installed version of the package if isDBEnabled(): instver = installdb.findInstalled( mainCategory, mainPackage ) else: instver = portage.findInstalled( mainCategory, mainPackage ) # in case we only want to see which packages are still to be build, simply return the package name if ( doPretend ): if utils.verbose() > 0: msg = " " if emergePlatform.isCrossCompilingEnabled(): if isDBEnabled(): hostEnabled = portage.isHostBuildEnabled( mainCategory, mainPackage, mainVersion ) targetEnabled = portage.isTargetBuildEnabled( mainCategory, mainPackage, mainVersion ) hostInstalled = installdb.isInstalled( mainCategory, mainPackage, mainVersion, "" ) targetInstalled = installdb.isInstalled( mainCategory, mainPackage, mainVersion, os.getenv( "EMERGE_TARGET_PLATFORM" ) ) msg += portage.getHostAndTarget( hostEnabled and not hostInstalled, targetEnabled and not targetInstalled ) else: msg = "" utils.warning( "pretending %s/%s-%s%s" % ( mainCategory, mainPackage, mainVersion, msg ) ) else: mainAction = mainBuildAction if mainBuildAction == "install-deps": mainAction = "all" if not handlePackage( mainCategory, mainPackage, mainVersion, mainAction, mainOpts ): utils.error( "fatal error: package %s/%s-%s %s failed" % \ ( mainCategory, mainPackage, mainVersion, mainBuildAction ) ) + utils.notify("Emerge build failed", "Build of %s/%s-%s failed" % ( mainCategory, mainPackage, mainVersion)) exit( 1 ) + utils.notify("Emerge build finished", "Build of %s/%s-%s finished" % ( mainCategory, mainPackage, mainVersion)) utils.new_line() if len( nextArguments ) > 0: command = "\"" + sys.executable + "\" -u " + executableName + " " + " ".join( nextArguments ) #for element in environ.keys(): # if environ[ element ]: # os.environ[ element ] = environ[ element ] # elif element == "EMERGE_VERBOSE": # os.environ[ element ] = "1" # else: # os.environ[ element ] = "" if not utils.system(command): utils.die( "cannot execute next commands cmd: %s" % command ) utils.stopTimer("Emerge") diff --git a/bin/portage.py b/bin/portage.py index 5c29f05ea..34a9fd924 100644 --- a/bin/portage.py +++ b/bin/portage.py @@ -1,864 +1,864 @@ ## @package portage # @brief contains portage tree related functions # @note this file should replace all other related portage related files import utils import builtins import imp import os import re import sys import portage_versions import emergePlatform import copy internalCategory = 'internal' ROOTDIR = os.getenv( "KDEROOT" ) modDict = dict() packageDict = dict() def __import__( module ): # pylint: disable=W0622 utils.debug( "module to import: %s" % module, 2 ) if not os.path.isfile( module ): try: return builtins.__import__( module ) except ImportError as e: - utils.warning( 'import failed for module %s: %s' % (module, e.message) ) + utils.warning( 'import failed for module %s: %s' % (module, str(e)) ) return None else: sys.path.append( os.path.dirname( module ) ) modulename = os.path.basename( module ).replace('.py', '') suff_index = None for suff in imp.get_suffixes(): if suff[0] == ".py": suff_index = suff break if suff_index is None: utils.die("no .py suffix found") with open( module ) as fileHdl: try: return imp.load_module( modulename.replace('.', '_'), fileHdl, module, suff_index ) except ImportError as e: utils.warning( 'import failed for file %s: %s' % (module, e) ) return None class DependencyPackage: """ This class wraps each package and constructs the dependency tree original code is from dependencies.py, integration will come later... """ def __init__( self, category, name, version ): self.category = category self.name = name self.version = version self.runtimeChildren = [] self.buildChildren = [] self.__readChildren() def __eq__( self, other ): return self.category == other.category and self.name == other.name and self.version == other.version def __ne__( self, other ): return self.category != other.category or self.name != other.name or self.version != other.version def ident( self ): return [ self.category, self.name, self.version, PortageInstance.getDefaultTarget( self.category, self.name, self.version ) ] def __readChildren( self ): runtimeDependencies, buildDependencies = readChildren( self.category, self.name, self.version ) self.runtimeChildren = self.__readDependenciesForChildren( list(runtimeDependencies.keys()) ) self.buildChildren = self.__readDependenciesForChildren( list(buildDependencies.keys()) ) def __readDependenciesForChildren( self, deps ): children = [] if deps: for line in deps: ( category, package ) = line.split( "/" ) if emergePlatform.isCrossCompilingEnabled() or utils.isSourceOnly(): sp = PortageInstance.getCorrespondingSourcePackage( package ) if sp: # we found such a package and we're allowed to replace it category = sp[ 0 ] package = sp[ 1 ] line = "%s/%s" % ( category, package ) utils.debug( "category: %s, name: %s" % ( category, package ), 1 ) version = PortageInstance.getNewestVersion( category, package ) if not line in list(packageDict.keys()): p = DependencyPackage( category, package, version ) utils.debug( "adding package p %s/%s-%s" % ( category, package, version ), 1 ) packageDict[ line ] = p else: p = packageDict[ line ] children.append( p ) return children def getDependencies( self, depList=None, dep_type="both" ): """ returns all dependencies """ if depList is None: depList = [] if dep_type == "runtime": children = self.runtimeChildren elif dep_type == "buildtime": children = self.buildChildren else: children = self.runtimeChildren + self.buildChildren for p in children: if not p in depList: p.getDependencies( depList, dep_type ) #if self.category != internalCategory: if not self in depList: depList.append( self ) return depList def buildType(): """return currently selected build type""" return os.getenv( "EMERGE_BUILDTYPE" ) def rootDirectories(): # this function should return all currently set portage directories if os.getenv( "EMERGE_PORTAGE_ROOT" ): rootDirs = os.getenv( "EMERGE_PORTAGE_ROOT" ).split( ";" ) else: rootDirs = [] if len( rootDirs ) == 0: rootDirs = [ os.path.join( os.getenv( "KDEROOT" ), "emerge", "portage" ) ] return rootDirs def rootDir(): # this function should return the portage directory, either the first set # via the environment, or the default one # keep this function for compat reasons return rootDirectories()[0] def rootDirForCategory( category ): # this function should return the portage directory where it finds the # first occurance of a category or the default value for i in rootDirectories(): if category and os.path.exists( os.path.join( i, category ) ): return i # as a fall back return the default even if it might be wrong return os.path.join( os.getenv( "KDEROOT" ), "emerge", "portage" ) def rootDirForPackage( category, package ): # this function should return the portage directory where it finds the # first occurance of a package or the default value package, subpackage = getSubPackage( category, package ) if category and package: if subpackage: for i in rootDirectories(): if os.path.exists( os.path.join( i, category, package, subpackage ) ): return i else: for i in rootDirectories(): if os.path.exists( os.path.join( i, category, package ) ): return i # as a fall back return the default even if it might be wrong return os.path.join( os.getenv( "KDEROOT" ), "emerge", "portage" ) def getDirname( category, package ): """ return absolute pathname for a given category and package """ _package, _subpackage = getSubPackage( category, package ) if category and _package: if _subpackage: return os.path.join( rootDirForPackage( category, package ), category, _package, _subpackage ) else: return os.path.join( rootDirForPackage( category, package ), category, package ) else: return "" def getFilename( category, package, version ): """ return absolute filename for a given category, package and version """ return os.path.join( getDirname( category, package ), "%s-%s.py" % ( package, version ) ) def getCategoryPackageVersion( path ): utils.debug( "getCategoryPackageVersion: %s" % path, 2 ) head, fullFileName = os.path.split( path ) for rd in rootDirectories(): if head.startswith(rd): head = head.replace(rd + os.sep, "") break if len( head.split( os.sep ) ) == 3: category, _dummy, package = head.split( os.sep ) else: head, package = os.path.split( head ) head, category = os.path.split( head ) filename = os.path.splitext( fullFileName )[0] package, version = utils.packageSplit( filename ) utils.debug( "category: %s, package: %s, version: %s" % ( category, package, version ), 1 ) return [ category, package, version ] # TODO: why a list and not a tuple? def VCSDirs(): return [ '.svn', 'CVS', '.hg', '.git' ] class Portage: def __init__( self ): """ """ self.categories = {} self.subpackages = {} self.portages = {} def addPortageDir( self, directory ): """ adds the categories and packages of a portage directory """ if not os.path.exists( directory ): return categoryList = os.listdir( directory ) # remove vcs directories for vcsdir in VCSDirs(): if vcsdir in categoryList: categoryList.remove( vcsdir ) self.portages[ directory ] = [] for category in categoryList: if not os.path.isdir( os.path.join( directory, category ) ): continue self.portages[ directory ].append( category ) packageList = os.listdir( os.path.join( directory, category ) ) # remove vcs directories for vcsdir in VCSDirs(): if vcsdir in packageList: packageList.remove( vcsdir ) if not category in list(self.categories.keys()): self.categories[ category ] = [] for package in packageList: if not os.path.isdir( os.path.join( directory, category, package ) ): continue if not package in self.categories[ category ]: self.categories[ category ].append( package ) subPackageList = os.listdir( os.path.join( directory, category, package ) ) for subPackage in subPackageList: if not os.path.isdir( os.path.join( directory, category, package, subPackage ) ) or subPackage in VCSDirs(): continue if not subPackage in list(self.subpackages.keys()): self.subpackages[ subPackage ] = [] if not subPackage in self.categories[ category ]: self.categories[ category ].append( subPackage ) self.subpackages[ subPackage ].append( category + "/" + package ) def getCategory( self, package ): """ returns the category of this package """ utils.debug( "getCategory: %s" % package, 2 ) for cat in list(self.categories.keys()): if package in self.categories[ cat ]: utils.debug( "found: category %s for package %s" % ( cat, package ), 1 ) return cat return False def isCategory( self, category ): """ returns whether a certain category exists """ return category in list(self.categories.keys()) def isPackage( self, category, package ): """ returns whether a certain package exists within a category """ return package in self.categories[ category ] def isVirtualPackage( self, category, package ): """ check if that package is of VirtualPackageBase """ if not self.isPackage( category, package ): return False version = self.getNewestVersion( category, package ) mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'Package' ): for baseClassObject in mod.Package.__bases__: if baseClassObject.__name__ == 'VirtualPackageBase': return True return False def getAllPackages( self, category ): """returns all packages of a category except those that are listed in a file 'dont_build.txt' in the category directory in case the category doesn't exist, nothing is returned""" if self.isCategory( category ): plist = copy.copy(self.categories[ category ]) if os.path.exists( os.path.join( rootDirForCategory( category ), category, "dont_build.txt" ) ): with open( os.path.join( rootDirForCategory( category ), category, "dont_build.txt" ), "r" ) as f: for line in f: try: plist.remove( line.strip() ) except ValueError: utils.warning( "couldn't remove package %s from category %s's package list" % ( line.strip(), category ) ) return plist else: return def getPackageInstance(self, category, package, buildtarget=None): """return instance of class Package from package file""" if emergePlatform.isCrossCompilingEnabled() \ or utils.isSourceOnly(): sp = self.getCorrespondingSourcePackage( package ) if sp: category = sp[0] package = sp[1] version = self.getNewestVersion( category, package ) fileName = getFilename( category, package, version ) module = __import__( fileName ) p = module.Package() p.setup(fileName, category, package, version, buildtarget) return p def getDefaultTarget( self, category, package, version ): """ returns the default package of a specified package """ utils.debug( "importing file %s" % getFilename( category, package, version ), 1 ) if not ( category and package and version ): return dict() mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): return mod.subinfo().defaultTarget else: return None def getMetaData( self, category, package, version ): """ returns all targets of a specified package """ utils.debug( "importing file %s" % getFilename( category, package, version ), 1 ) if not ( category and package and version ): return dict() mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() tmpdict = dict() if not info.categoryName == "": tmpdict['categoryName'] = info.categoryName if not info.shortDescription == "": tmpdict['shortDescription'] = info.shortDescription if not info.description == "": tmpdict['description'] = info.description tmpdict['withCompiler'] = info.options.package.withCompiler utils.debug( tmpdict, 2 ) return tmpdict else: return {'withCompiler': True} def getAllTargets( self, category, package, version ): """ returns all targets of a specified package """ utils.debug( "importing file %s" % getFilename( category, package, version ), 1 ) if not ( category and package and version ): return dict() mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() tagDict = info.svnTargets tagDict.update( info.targets ) utils.debug( tagDict, 2 ) return tagDict else: return dict() def getAllVCSTargets( self, category, package, version ): """ returns all version control system targets of a specified package, excluding those which do contain tags """ utils.debug( "importing file %s" % getFilename( category, package, version ), 1 ) mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() tagDict = info.svnTargets for key in tagDict: utils.debug( '%s: %s' % ( key, tagDict[key] ), 2 ) return tagDict else: return dict() def getUpdatableVCSTargets( self, category, package, version ): """ check if the targets are tags or not """ targetDict = PortageInstance.getAllVCSTargets( category, package, version ) retList = [] for key in targetDict: url = targetDict[ key ] if url: sourceType = utils.getVCSType( url ) if sourceType == "svn": # for svn, ignore tags if not url.startswith( "tags/" ) and not "/tags/" in url: retList.append( key ) elif sourceType == "git": _, branch, tag = utils.splitVCSUrl( url ) if tag == "" and not branch.endswith("-patched"): retList.append( key ) elif not sourceType == "": # for all other vcs types, simply rebuild everything for now retList.append( key ) return retList def getNewestVersion( self, category, package ): """ returns the newest version of this category/package """ if( category == None ): utils.die( "Empty category for package '%s'" % package ) if not self.isCategory( category ): utils.die( "could not find category '%s'" % category ) if not self.isPackage( category, package ): utils.die( "could not find package '%s' in category '%s'" % ( package, category ) ) versions = [] for fileName in os.listdir( getDirname( category, package ) ): (shortname, ext) = os.path.splitext( fileName ) if ( ext != ".py" ): continue if ( shortname.startswith( package ) ): versions.append( shortname ) tmpver = "" for ver in versions: if ( tmpver == "" ): tmpver = ver else: ret = portage_versions.pkgcmp(portage_versions.pkgsplit(ver), \ portage_versions.pkgsplit(tmpver)) if ( ret == 1 ): tmpver = ver ret = utils.packageSplit( tmpver ) #print "ret:", ret return ret[ 1 ] def getInstallables( self ): """ get all the packages that are within the portage directory """ instList = list() for category in list(self.categories.keys()): for package in self.categories[ category ]: for script in os.listdir( getDirname( category, package ) ): if script.endswith( '.py' ): version = script.replace('.py', '').replace(package + '-', '') instList.append([category, package, version]) return instList def getCorrespondingSourcePackage( self, package ): category = self.getCategory( package + "-src" ) if category: # we found a corresponding package utils.debug( "replacing package %s with its source package" % ( package ), 1 ) return [ category, package + "-src" ] else: return False def getCorrespondingBinaryPackage( self, package ): if not package.endswith( "-src" ): return [ None, None ] category = self.getCategory( package[ :-4 ] ) if category: # we found a corresponding package utils.debug( "replacing package %s with its binary package" % ( package ), 1 ) return [ category, package[ :-4 ] ] else: return [ None, None ] # when importing this, this static Object should get added PortageInstance = Portage() for _dir in rootDirectories(): PortageInstance.addPortageDir( _dir ) def getSubPackage( category, package ): """ returns package and subpackage names """ """ in case no subpackage could be found, None is returned """ if package in PortageInstance.subpackages: for entry in PortageInstance.subpackages[ package ]: cat, pac = entry.split("/") if cat == category: return pac, package return package, None def findPossibleTargets( category, package, version, buildtype=''): # pylint: disable=W0613 """ this function tries to guess which target got used by looking at the different image directories """ target = PortageInstance.getDefaultTarget( category, package, version ) buildroot = os.path.join( ROOTDIR, "build", category, "%s-%s" % ( package, version ) ) if not os.path.exists( buildroot ): return target for directory in os.listdir( buildroot ): if os.path.isdir( os.path.join( buildroot, directory ) ): if directory.startswith( "image" ) and directory != "image": particles = directory.split( '-' )[ 1: ] # the first part should be image- anyway if len(particles) == 3: _platform, _buildType, _target = particles elif len(particles) == 4 and emergePlatform.isCrossCompilingEnabled(): _platform, _buildType, _buildArch, _target = particles elif len(particles) >= 4 and not emergePlatform.isCrossCompilingEnabled(): _platform, _buildType = particles[0:2] _target = '-'.join(particles[2:]) else: return target if _platform == os.getenv( "KDECOMPILER" ) and \ _buildType == os.getenv( "EMERGE_BUILDTYPE" ): return _target return target def getPackageInstance(category, package, buildtarget=None): """return instance of class Package from package file""" return PortageInstance.getPackageInstance(category, package, buildtarget) def getDependencies( category, package, version, runtimeOnly=False ): """returns the dependencies of this package as list of strings: category/package""" if not os.path.isfile( getFilename( category, package, version ) ): utils.die( "package name %s/%s-%s unknown" % ( category, package, version ) ) package, subpackage = getSubPackage( category, package ) if subpackage: utils.debug( "solving package %s/%s/%s-%s %s" % ( category, subpackage, package, version, getFilename( category, package, version ) ), 2 ) else: utils.debug( "solving package %s/%s-%s %s" % ( category, package, version, getFilename( category, package, version ) ), 2 ) subpackage = package deps = [] for pkg in subpackage: mod = __import__( getFilename( category, subpackage, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() depDict = info.hardDependencies depDict.update( info.dependencies ) depDict.update( info.runtimeDependencies ) if not runtimeOnly: depDict.update( info.buildDependencies ) for line in list(depDict.keys()): (category, package) = line.split( "/" ) version = PortageInstance.getNewestVersion( category, package ) deps.append( [ category, package, version, depDict[ line ] ] ) return deps def solveDependencies( category, package, version, depList, dep_type='both' ): depList.reverse() if emergePlatform.isCrossCompilingEnabled() or utils.isSourceOnly(): sp = PortageInstance.getCorrespondingSourcePackage( package ) if sp: # we found such a package and we're allowed to replace it category = sp[ 0 ] package = sp[ 1 ] version = PortageInstance.getNewestVersion( category, package ) utils.debug( "found corresponding source package for %s" % package, 1 ) if ( category == "" ): category = PortageInstance.getCategory( package ) utils.debug( "found package in category %s" % category, 2 ) if ( version == "" ): version = PortageInstance.getNewestVersion( category, package ) utils.debug( "found package with newest version %s" % version, 2 ) pac = DependencyPackage( category, package, version ) depList = pac.getDependencies( depList, dep_type=dep_type ) depList.reverse() return depList def printTargets( category, package, version ): targetsDict = PortageInstance.getAllTargets( category, package, version ) defaultTarget = PortageInstance.getDefaultTarget( category, package, version ) if 'svnHEAD' in targetsDict and not targetsDict['svnHEAD']: del targetsDict['svnHEAD'] targetsDictKeys = list(targetsDict.keys()) targetsDictKeys.sort() for i in targetsDictKeys: if defaultTarget == i: print('*', end=' ') else: print(' ', end=' ') print(i) def readChildren( category, package, version ): identFileName = getFilename( category, package, version ) if not os.path.isfile( identFileName ): utils.die( "package name %s/%s-%s unknown" % ( category, package, version ) ) # if we are an emerge internal package and already in the dictionary, ignore childrens # To avoid possible endless recursion this may be also make sense for all packages if category == internalCategory and identFileName in list(modDict.keys()): return dict(), dict() package, subpackage = getSubPackage( category, package ) if subpackage: utils.debug( "solving package %s/%s/%s-%s %s" % ( category, subpackage, package, version, getFilename( category, package, version ) ), 2 ) else: utils.debug( "solving package %s/%s-%s %s" % ( category, package, version, getFilename( category, package, version ) ), 2 ) if not identFileName in list(modDict.keys()): mod = __import__( identFileName ) modDict[ identFileName ] = mod else: mod = modDict[ identFileName ] if utils.envAsBool('EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES') and hasattr( mod, 'Package' ): _package = mod.Package() subinfo = _package.subinfo elif hasattr( mod, 'subinfo' ): subinfo = mod.subinfo() else: return dict(), dict() runtimeDependencies = subinfo.runtimeDependencies or dict() buildDependencies = subinfo.buildDependencies or dict() # hardDependencies commonDependencies = subinfo.hardDependencies commonDependencies.update( subinfo.dependencies ) runtimeDependencies.update(commonDependencies) buildDependencies.update(commonDependencies) return runtimeDependencies, buildDependencies def isHostBuildEnabled( category, package, version ): """ returns whether this package's host build is enabled. This will only work if isCrossCompilingEnabled() == True """ if emergePlatform.isCrossCompilingEnabled(): mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() return not info.disableHostBuild else: return False else: utils.die( "This function must not be used outside of cross-compiling environments!" ) def isTargetBuildEnabled( category, package, version ): """ returns whether this package's target build is enabled. This will only work if isCrossCompilingEnabled() == True """ if emergePlatform.isCrossCompilingEnabled(): mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() return not info.disableTargetBuild else: return False else: utils.die( "This function must not be used outside of cross-compiling environments!" ) def isPackageUpdateable( category, package, version ): utils.debug( "importing file %s" % getFilename( category, package, version ), 2 ) mod = __import__( getFilename( category, package, version ) ) if hasattr( mod, 'subinfo' ): info = mod.subinfo() if len( info.svnTargets ) == 1 and not info.svnTargets[ list(info.svnTargets.keys())[0] ]: return False return len( info.svnTargets ) > 0 else: return False def alwaysTrue( *dummyArgs): """we sometimes need a function that always returns True""" return True def getHostAndTarget( hostEnabled, targetEnabled ): """used for messages""" msg = "" if hostEnabled or targetEnabled: msg += "(" if hostEnabled: msg += "H" if hostEnabled and targetEnabled: msg += "/" if targetEnabled: msg += "T" msg += ")" return msg def printCategoriesPackagesAndVersions( lines, condition, hostEnabled=alwaysTrue, targetEnabled=alwaysTrue ): """prints a number of 'lines', each consisting of category, package and version field""" def printLine( cat, pack, ver, hnt="" ): catlen = 25 packlen = 25 print(cat + " " * ( catlen - len( cat ) ) + pack + " " * ( packlen - len( pack ) ) + ver, hnt) printLine( 'Category', 'Package', 'Version' ) printLine( '--------', '-------', '-------' ) for category, package, version in lines: if emergePlatform.isCrossCompilingEnabled(): msg = getHostAndTarget( hostEnabled( category, package, version ), targetEnabled( category, package, version ) ) else: msg = "" if condition( category, package, version ): printLine( category, package, version, msg ) def printInstallables(): """get all the packages that can be installed""" printCategoriesPackagesAndVersions( PortageInstance.getInstallables(), alwaysTrue ) def printInstalled(): """get all the packages that are already installed""" printCategoriesPackagesAndVersions( PortageInstance.getInstallables(), isInstalled ) def isInstalled( category, package, version, buildtype='' ): """ deprecated, use InstallDB.installdb.isInstalled() instead """ utils.debug( "isInstalled(%s, %s, %s, %s)" % (category, package, version, buildtype), 2 ) # find in old style database path = utils.etcDir() fileName = os.path.join(path,'installed') found = False if os.path.isfile( fileName ): with open( fileName, "rb" ) as f: for line in f.read().splitlines(): (_category, _packageVersion) = line.split( "/" ) (_package, _version) = utils.packageSplit(_packageVersion) if category != '' and version != '' and category == _category and package == _package and version == _version: found = True break elif category == '' and version == '' and package == _package: found = True break utils.debug("...%s found in main database" % (' ' if found else ' not'), 2 ) if found: return True # find in release mode database if buildtype != '': fileName = os.path.join(path,'installed-' + buildtype ) if os.path.isfile( fileName ): with open( fileName, "rb" ) as f: for line in f.read().splitlines(): (_category, _packageVersion) = line.split( "/" ) (_package, _version) = utils.packageSplit(_packageVersion) if category != '' and version != '' and category == _category and package == _package and version == _version: found = True break elif category == '' and version == '' and package == _package: found = True break utils.debug( "...%s found in %s database" % ( (' ' if found else ' not'), buildtype), 2 ) if found: return True # try to detect packages from the installer binary = utils.checkManifestFile( os.path.join( os.getenv( "KDEROOT" ), "manifest", package + "-" + version + "-bin.ver"), category, package, version ) lib = utils.checkManifestFile( os.path.join( os.getenv( "KDEROOT" ), "manifest", package + "-" + version + "-lib.ver"), category, package, version ) found = found or binary or lib if not utils.envAsBool("EMERGE_VERSIONING", default=True) or utils.isSourceOnly(): # check for any installation except data packages if not os.path.exists(os.path.join( os.getenv( "KDEROOT" ), "manifest" ) ): return False if package.endswith( "-src" ): package = package[:-4] for filename in os.listdir( os.path.join( os.getenv( "KDEROOT" ), "manifest" ) ): if filename.startswith( package ) and not \ filename.startswith( package + "-data" ): return True return False def findInstalled( category, package): """ deprecated, use InstallDB.installdb.findInstalled() instead """ fileName = os.path.join(utils.etcDir(), "installed" ) if ( not os.path.isfile( fileName ) ): return None ret = None regexStr = "^%s/%s-(.*)$" % ( category, re.escape(package) ) regex = re.compile( regexStr ) with open( fileName, "rb" ) as f: for line in f.read().splitlines(): match = regex.match( line ) if match: utils.debug( "found: " + match.group(1), 2 ) ret = match.group(1) return ret def addInstalled( category, package, version, buildtype='' ): """ deprecated, use InstallDB.installdb.addInstalled() instead """ utils.debug( "addInstalled called", 2 ) # write a line to etc/portage/installed, # that contains category/package-version path = os.path.join(utils.etcDir() ) if ( not os.path.isdir( path ) ): os.makedirs( path ) if buildtype != '': fileName = 'installed-' + buildtype else: fileName = 'installed' utils.debug("installing package %s - %s into %s" % (package, version, fileName), 2) if( os.path.isfile( os.path.join( path, fileName ) ) ): with open( os.path.join( path, fileName ), "rb" ) as f: for line in f: if line.startswith( "%s/%s-%s" % ( category, package, version) ): utils.warning( "version already installed" ) return elif line.startswith( "%s/%s-" % ( category, package ) ): utils.die( "already installed, this should no happen" ) with open( os.path.join( path, fileName ), "ab" ) as f: f.write( "%s/%s-%s\r\n" % ( category, package, version ) ) def remInstalled( category, package, version, buildtype='' ): """ deprecated, use InstallDB.installdb.remInstalled() instead """ utils.debug( "remInstalled called", 2 ) if buildtype != '': fileName = 'installed-' + buildtype else: fileName = 'installed' utils.debug("removing package %s - %s from %s" % (package, version, fileName), 2) dbFileName = os.path.join(utils.etcDir(), fileName ) tmpdbfile = os.path.join(utils.etcDir(), "TMPinstalled" ) found = False if os.path.exists( dbFileName ): with open( dbFileName, "rb" ) as dbFile: with open( tmpdbfile, "wb" ) as tfile: for line in dbFile: ## \todo the category should not be part of the search string ## because otherwise it is not possible to unmerge package using ## the same name but living in different categories if not line.startswith("%s/%s" % ( category, package ) ): tfile.write( line ) else: found = True os.remove( dbFileName ) os.rename( tmpdbfile, dbFileName ) return found def getPackagesCategories(packageName, defaultCategory = None): utils.debug( "getPackagesCategories for package name %s" % packageName, 1 ) if defaultCategory is None: if "EMERGE_DEFAULTCATEGORY" in os.environ: defaultCategory = os.environ["EMERGE_DEFAULTCATEGORY"] else: defaultCategory = "kde" packageList, categoryList = [], [] if len( packageName.split( "/" ) ) == 1: if PortageInstance.isCategory( packageName ): utils.debug( "isCategory=True", 2 ) packageList = PortageInstance.getAllPackages( packageName ) categoryList = [ packageName ] * len(packageList) else: utils.debug( "isCategory=False", 2 ) if PortageInstance.isCategory( defaultCategory ) and PortageInstance.isPackage( defaultCategory, packageName ): # prefer the default category packageList = [ packageName ] categoryList = [ defaultCategory ] else: if PortageInstance.getCategory( packageName ): packageList = [ packageName ] categoryList = [ PortageInstance.getCategory( packageName ) ] else: utils.warning( "unknown category or package: %s" % packageName ) elif len( packageName.split( "/" ) ) == 2: [ cat, pac ] = packageName.split( "/" ) if PortageInstance.isCategory( cat ): categoryList = [ cat ] else: utils.warning( "unknown category %s; ignoring package %s" % ( cat, packageName ) ) if len( categoryList ) > 0 and PortageInstance.isPackage( categoryList[0], pac ): packageList = [ pac ] if len( categoryList ) and len( packageList ): utils.debug( "added package %s/%s" % ( categoryList[0], pac ), 2 ) else: utils.debug( "ignoring package %s" % packageName ) else: utils.error( "unknown packageName" ) return packageList, categoryList diff --git a/bin/utils.py b/bin/utils.py index 39fc01615..77b4ee6c0 100644 --- a/bin/utils.py +++ b/bin/utils.py @@ -1,1431 +1,1446 @@ # -*- coding: utf-8 -*- """@brief utilities this file contains some helper functions for emerge """ # copyright: # Holger Schroeder # Patrick Spendrin # Ralf Habacker import http.client import ftplib import os.path import sys import urllib.parse import shutil import zipfile import tarfile import hashlib import traceback import tempfile import getpass import subprocess import re import inspect import types import datetime from operator import itemgetter +import Notifier.NotificationLoader + + if os.name == 'nt': import msvcrt # pylint: disable=F0401 else: import fcntl # pylint: disable=F0401 import configparser def abstract(): caller = inspect.getouterframes(inspect.currentframe())[1][3] raise NotImplementedError(caller + ' must be implemented in subclass') def envAsBool(key, default=False): """ return value of environment variable as bool value """ value = os.getenv(key) if value: return value.lower() in ['true', '1'] else: return default def isSourceOnly(): return envAsBool("EMERGE_SOURCEONLY") def LockFileName(lock_id): '''Generate a user global lock file. For id lock_id TODO: generate it smarter to prevent security issues and possible collisions. ''' if not envAsBool("EMERGE_%s_LOCK" % lock_id): return None try: return os.environ["EMERGE_%s_LOCK_FILE" % lock_id] except KeyError: pass return os.path.join( tempfile.gettempdir(), "emerge%s-%s.lck" % (lock_id, getpass.getuser())) class LockFile(object): """Context manager for a user global lock file""" def __init__(self, file_name): self.file_name = file_name self.file_handle = None def __enter__(self): if not self.file_name: return self.file_handle = open(self.file_name, 'a') fh = self.file_handle if os.name == 'nt': fh.seek(0) while True: try: msvcrt.locking(fh.fileno(), msvcrt.LK_LOCK, 2147483647) except IOError: # after 15 secs (every 1 sec, 1 attempt -> 15 secs) # a exception is raised but we want to continue trying. continue break else: fcntl.flock(fh, fcntl.LOCK_EX) fh.truncate(0) print("%d" % os.getpid(), file=fh) fh.flush() def __exit__(self, exc_type, exc_value, exc_tb): fh = self.file_handle if fh is None: return self.file_handle = None if os.name == 'nt': fh.seek(0) msvcrt.locking(fh.fileno(), msvcrt.LK_UNLCK, 2147483647) else: fcntl.flock(fh, fcntl.LOCK_UN) try: fh.close() except IOError: traceback.print_exc() ### fetch functions #FIXME: get this from somewhere else: WGetExecutable = os.path.join( os.getenv( "KDEROOT" ), "bin", "wget.exe" ) if not os.path.exists( WGetExecutable ): WGetExecutable = os.path.join( os.getenv( "KDEROOT" ), "dev-utils", "bin", "wget.exe" ) def test4application( appname): """check if the application specified by 'appname' is available""" try: f = file('NUL:') p = subprocess.Popen( appname, stdout=f, stderr=f ) p.wait() return True except OSError: debug( "could not find application %s" % appname, 1 ) return False class Verbose(object): """ This class will work on the overall output verbosity It defines the interface for the option parser but before the default value is taken from the environment variable. There is only one verbosity value for all parts of emerge. Always updates the shell variable EMERGE_VERBOSE. """ __level = os.getenv("EMERGE_VERBOSE") if not __level or not __level.isdigit() or int(__level) < 0: __level = 1 else: __level = int(__level) @staticmethod def increase(): """increase verbosity""" Verbose.setLevel(Verbose.__level + 1) @staticmethod def decrease(): """decrease verbosity""" Verbose.setLevel(Verbose.__level - 1) @staticmethod def level(): return Verbose.__level @staticmethod def setLevel(newLevel): """ set the level by hand for quick and dirty changes """ Verbose.__level = max(0, newLevel) os.putenv("EMERGE_VERBOSE", str(newLevel)) def verbose( self ): """ returns the verbosity level for the application """ return Verbose.__level class TemporaryVerbosity(object): """Context handler for temporarily different verbosity""" def __init__(self, tempLevel): self.prevLevel = verbose() setVerbose(tempLevel) def __enter__(self): return self def __exit__(self, exc_type, exc_value, trback): setVerbose(self.prevLevel) def verbose(): """return the value of the verbose level""" return Verbose.level() def setVerbose( _verbose ): Verbose.setLevel(_verbose) def getFiles( urls, destdir, suffix='' , filenames = ''): """download files from 'url' into 'destdir'""" debug( "getfiles called. urls: %s, filenames: %s, suffix: %s" % ( urls, filenames, suffix ), 1 ) # make sure distfiles dir exists if ( not os.path.exists( destdir ) ): os.makedirs( destdir ) if type(urls) == list: urlList = urls else: urlList = urls.split() if filenames == '': filenames = [ os.path.basename(x) for x in urlList ] if type(filenames) == list: filenameList = filenames else: filenameList = filenames.split() dlist = list(zip( urlList , filenameList )) for url,filename in dlist: if ( not getFile( url + suffix, destdir , filename ) ): return False return True def getFile( url, destdir , filename='' ): """download file from 'url' into 'destdir'""" debug( "getFile called. url: %s" % url, 1 ) if url == "": error( "fetch: no url given" ) return False wgetpath = WGetExecutable if ( os.path.exists( wgetpath ) ): return wgetFile( url, destdir , filename ) scheme, host, path, _, _, _ = urllib.parse.urlparse( url ) filename = os.path.basename( path ) debug( "%s\n%s\n%s\n%s" % ( scheme, host, path, filename ) ) if ( scheme == "http" ): return getHttpFile( host, path, destdir, filename ) elif ( scheme == "ftp" ): return getFtpFile( host, path, destdir, filename ) else: error( "getFile: protocol not understood" ) return False def wgetFile( url, destdir, filename=''): """download file with wget from 'url' into 'destdir', if filename is given to the file specified""" compath = WGetExecutable command = "%s --no-check-certificate -c -t 10" % compath if os.environ.get("EMERGE_NO_PASSIVE_FTP"): command += " --no-passive-ftp " if(filename ==''): command += " -P %s" % destdir else: command += " -O %s" % os.path.join( destdir, filename ) command += " %s" % url debug( "wgetfile called", 1 ) ret = system( command ) debug( "wget ret: %s" % ret, 2) return ret def getFtpFile( host, path, destdir, filename ): """download file from a ftp host specified by 'host' and 'path' into 'destdir' using 'filename' as file name""" # FIXME check return values here (implement useful error handling)... debug( "FIXME getFtpFile called. %s %s" % ( host, path ), 1 ) ftp = ftplib.FTP( host ) ftp.login( "anonymous", "johndoe" ) with open( os.path.join( destdir, filename ), "wb" ) as outfile: ftp.retrbinary( "RETR " + path, outfile.write ) return True def getHttpFile( host, path, destdir, filename ): """download file from a http host specified by 'host' and 'path' into 'destdir' using 'filename' as file name""" # FIXME check return values here (implement useful error handling)... debug( "getHttpFile called. %s %s" % ( host, path ), 1 ) conn = http.client.HTTPConnection( host ) conn.request( "GET", path ) r1 = conn.getresponse() debug( "status: %s; reason: %s" % ( str( r1.status ), str( r1.reason ) ) ) count = 0 while r1.status == 302: if count > 10: debug( "Redirect loop" ) return False count += 1 _, host, path, _, _, _ = urllib.parse.urlparse( r1.getheader( "Location" ) ) debug( "Redirection: %s %s" % ( host, path ), 1 ) conn = http.client.HTTPConnection( host ) conn.request( "GET", path ) r1 = conn.getresponse() debug( "status: %s; reason: %s" % ( str( r1.status ), str( r1.reason ) ) ) data = r1.read() with open( os.path.join( destdir, filename ), "wb" ) as f: f.write( data ) return True def isCrEol(filename): with open(filename, "rb") as f: return str(f.readline(),'UTF-8').endswith("\r\n") def checkFilesDigests( downloaddir, filenames, digests=None ): """check digest of (multiple) files specified by 'filenames' from 'downloaddir'""" if digests != None: if type(digests) == list: digestList = digests elif digests.find("\n") != -1: digestList = digests.splitLines() else: digestList = [digests] i = 0 for filename in filenames: debug( "checking digest of: %s" % filename, 1 ) pathName = os.path.join( downloaddir, filename ) if digests == None: digestFileName = pathName + '.sha1' if not os.path.exists( digestFileName ): digestFileName, _ = os.path.splitext( pathName ) digestFileName += '.sha1' if not os.path.exists( digestFileName ): error( "digest validation request for file %s, but no digest file present" % pathName ) return False currentHash = digestFileSha1( pathName ) with open( digestFileName, "r" ) as f: line = f.readline() digest = re.search('\\b[0-9a-fA-F]{40}\\b', line) if not digest: error( " digestFile %s for file %s does not contain a valid checksum" % (digestFileName, pathName,) ) return False digest = digest.group(0) if len(digest) != len(currentHash) or digest.find(currentHash) == -1: error( "digest value for file %s (%s) do not match (%s)" % (pathName, currentHash, digest) ) return False # digest provided in digests parameter else: currentHash = digestFileSha1( pathName ) digest = digestList[i].strip() if len(digest) != len(currentHash) or digest.find(currentHash) == -1: error( "digest value for file %s (%s) do not match (%s)" % (pathName, currentHash, digest) ) return False i = i + 1 return True def createFilesDigests( downloaddir, filenames ): """create digests of (multiple) files specified by 'filenames' from 'downloaddir'""" digestList = list() for filename in filenames: pathName = os.path.join( downloaddir, filename ) digest = digestFileSha1( pathName ) entry = filename, digest digestList.append(entry) return digestList def createDigetFile(path): """creates a sha1 diget file""" digets = digestFileSha1(path) f = open(path + ".sha1","wb+") f.write(bytes(digets,"UTF-8")) f.write(bytes("\n",'UTF-8')) f.close() def printFilesDigests( digestFiles, buildTarget=None): size = len( digestFiles ) i = 0 for (fileName, digest) in digestFiles: print("%40s %s" % ( fileName, digest ), end=' ') if size == 1: if buildTarget == None: print(" '%s'" % ( digest )) else: print("self.targetDigests['%s'] = '%s'" % ( buildTarget, digest )) else: if buildTarget == None: if i == 0: print(" ['%s'," % ( digest )) elif i == size-1: print(" '%s']" % ( digest )) else: print(" '%s'," % ( digest )) i = i + 1 else: if i == 0: print("self.targetDigests['%s'] = ['%s'," % ( buildTarget, digest )) elif i == size-1: print(" '%s']" % ( digest )) else: print(" '%s'," % ( digest )) i = i + 1 ### unpack functions def unpackFiles( downloaddir, filenames, workdir ): """unpack (multiple) files specified by 'filenames' from 'downloaddir' into 'workdir'""" cleanDirectory( workdir ) for filename in filenames: debug( "unpacking this file: %s" % filename, 1 ) if ( not unpackFile( downloaddir, filename, workdir ) ): return False return True def unpackFile( downloaddir, filename, workdir ): """unpack file specified by 'filename' from 'downloaddir' into 'workdir'""" ( shortname, ext ) = os.path.splitext( filename ) if ( ext == ".zip" ): return unZip( os.path.join( downloaddir, filename ), workdir ) elif ( ext == ".7z" ): return un7zip( os.path.join( downloaddir, filename ), workdir ) elif ( ext == ".tgz" ): return unTar( os.path.join( downloaddir, filename ), workdir ) elif ( ext == ".gz" or ext == ".bz2" or ext == ".lzma" or ext == ".xz" ): _, myext = os.path.splitext( shortname ) if ( myext == ".tar" ): return unTar( os.path.join( downloaddir, filename ), workdir ) else: error( "unpacking %s" % myext ) return False elif ( ext == ".exe" ): warning( "unpack ignoring exe file" ) return True else: error( "dont know how to unpack this file: %s" % filename ) return False def un7zip( fileName, destdir ): command = "7za x -r -y -o%s %s" % ( destdir, fileName ) if verbose() > 1: return system( command ) else: tmp = tempfile.TemporaryFile() return system( command, stdout=tmp ) def unTar( fileName, destdir,uselinks = envAsBool("EMERGE_USE_SYMLINKS") ): """unpack tar file specified by 'file' into 'destdir'""" debug( "unTar called. file: %s, destdir: %s" % ( fileName, destdir ), 1 ) ( shortname, ext ) = os.path.splitext( fileName ) emerge_tmp = os.path.join(destdir,"emerge_tmp") mode = "r" if ( ext == ".gz" ): mode = "r:gz" elif(ext == ".bz2"): mode = "r:bz2" elif(ext == ".lzma" or ext == ".xz" ): un7zip( fileName, emerge_tmp ) _, tarname = os.path.split( shortname ) fileName = os.path.join( emerge_tmp , tarname ) if not os.path.exists( fileName ): error( "couldn't find file %s" % fileName ) return False try: with tarfile.open( fileName, mode ) as tar: # FIXME how to handle errors here ? for tarMember in tar: try: if not uselinks and tarMember.issym(): tarDir = os.path.dirname(tarMember.name) target = tarMember.linkname if not target.startswith("/"):#abspath? target = os.path.normpath("%s/%s"%(tarDir, target)).replace("\\","/") if target in tar.getnames(): tar.extract(target, emerge_tmp ) shutil.move(os.path.join( emerge_tmp , tarDir , tarMember.linkname ),os.path.join( destdir , tarMember.name )) else: warning("link target %s for %s not included in tarfile" % ( target , tarMember.name)) else: tar.extract(tarMember, destdir ) except tarfile.TarError: error( "couldn't extract file %s to directory %s" % ( fileName, destdir ) ) return False return True except tarfile.TarError: error( "could not open existing tar archive: %s" % fileName ) return False finally: if os.path.exists(emerge_tmp): shutil.rmtree(emerge_tmp) def unZip( fileName, destdir ): """unzip file specified by 'file' into 'destdir'""" debug( "unZip called: file %s to destination %s" % ( fileName, destdir ), 1 ) if not os.path.exists( destdir ): os.makedirs( destdir ) try: zipObj = zipfile.ZipFile( fileName ) except (zipfile.BadZipfile, IOError): error( "couldn't extract file %s" % fileName ) return False for name in zipObj.namelist(): if not name.endswith( '/' ): dirname = os.path.join( destdir, os.path.dirname( name ) ) if not os.path.exists( dirname ): os.makedirs( dirname ) with open( os.path.join( destdir, name ), 'wb' ) as outfile: outfile.write( zipObj.read( name ) ) return True ### svn fetch/unpack functions def svnFetch( repo, destdir, username = None, password = None ): debug( "utils svnfetch: repo %s to destination %s" % ( repo, destdir ), 1 ) if ( not os.path.exists( destdir ) ): os.makedirs( destdir ) os.chdir( destdir ) ret = 0 #if ( len( os.listdir( destdir ) ) == 0 ): directory = os.path.basename( repo.replace( "/", "\\" ) ) path = os.path.join( destdir, directory ) debug( "path: %s" % path, 1 ) if ( not os.path.exists( path ) ): # not checked out yet command = "svn checkout %s" % repo if ( username != None ): command = command + " --username " + username if ( password != None ): command = command + " --password " + password with LockFile(LockFileName("SVN")): ret = system( command ) else: # already checked out, so only update os.chdir( path ) debug( "svn up cwd: %s" % os.getcwd(), 1 ) with LockFile(LockFileName("SVN")): ret = system( "svn update" ) if ( ret == 0 ): return True else: return False ### package dependencies functions def checkManifestFile( name, category, package, version ): if os.path.isfile( name ): with open( name, "rb" ) as f: header = f.readline() line = f.readline() if not '/' in line: # update the file line = "%s/%s:%s:%s" % ( package, category, package, version ) with open( name, "wb" ) as f: f.write( header ) f.write( line ) if ( line.startswith( "%s/%s:%s:" % ( category, package, version ) ) ): return True return False def info( message ): if verbose() > 0: print("emerge info: %s" % message) return True def debug( message, level=0 ): if verbose() > level and verbose() > 0: print("emerge debug:", message) sys.stdout.flush() return True def warning( message ): if verbose() > 0: print("emerge warning: %s" % message) return True def new_line( level=0 ): if verbose() > level and verbose() > 0: print() def debug_line( level=0 ): if verbose() > level and verbose() > 0: print("_" * 80) def error( message ): if verbose() > 0: print("emerge error: %s" % message, file=sys.stderr) return False def die( message ): print("emerge fatal error: %s" % message, file=sys.stderr) stopAllTimer() exit( 1 ) def traceMode(): """return the value of the trace level""" traceVal = os.getenv( "EMERGE_TRACE" ) if ( not traceVal == None and traceVal.isdigit() and int(traceVal) > 0 and verbose() > 0 ): return int( traceVal ) else: return 0 def trace( message, dummyLevel=0 ): if traceMode(): #> level: print("emerge trace:", message) sys.stdout.flush() return True def system(cmd, **kw ): """execute cmd in a shell. All keywords are passed to Popen. stdout and stderr might be changed depending on the chosen logging options.""" kw['shell'] = True return systemWithoutShell(cmd, **kw) def systemWithoutShell(cmd, **kw): """execute cmd. All keywords are passed to Popen. stdout and stderr might be changed depending on the chosen logging options.""" debug( "executing command: %s" % cmd, 1 ) if kw.get('stdout') is None: kw['stdout'] = sys.stdout if kw.get('stderr') is None: kw['stderr'] = sys.stderr redirected = False prevStreams = sys.stdout, sys.stderr try: if verbose() == 0 and kw['stdout']== sys.stdout and kw['stderr'] == sys.stderr: redirected = True sys.stderr = sys.stdout = open('test.outlog', 'wb') p = subprocess.Popen( cmd, **kw ) ret = p.wait() finally: if redirected: sys.stderr.close() sys.stdout, sys.stderr = prevStreams return ( ret == 0 ) def copySrcDirToDestDir( srcdir, destdir ): """ deprecated """ return copyDir( srcdir, destdir ) def moveSrcDirToDestDir( srcdir, destdir ): """ deprecated """ return moveDir( srcdir, destdir ) def getFileListFromDirectory( imagedir ): """ create a file list containing hashes """ ret = [] myimagedir = imagedir if ( not imagedir.endswith( "\\" ) ): myimagedir = myimagedir + "\\" for root, _, files in os.walk( imagedir ): for fileName in files: ret.append( ( os.path.join( root, fileName ).replace( myimagedir, "" ), digestFile( os.path.join( root, fileName ) ) ) ) return ret def isVersion( part ): ver_regexp = re.compile("^(cvs\\.)?(\\d+)((\\.\\d+)*)([a-z]?)((_(pre|p|beta|alpha|rc)\\d*)*)(-r(\\d+))?$") if ver_regexp.match( part ): return True else: return False def etcDir(): """the etc directory for portage""" return os.path.join( os.getenv( "KDEROOT" ), "etc", "portage" ) def packageSplit( fullname ): """ instead of using portage_versions.catpkgsplit use this function now """ splitname = fullname.split('-') x = 0 # fixes pylint warning about using possibly undefined loop variable. # maybe this could be simplified by using only one for loop. for x in range( len( splitname ) ): if isVersion( splitname[ x ] ): break package = splitname[ 0 ] version = splitname[ x ] for part in splitname[ 1 : x ]: package += '-' + part for part in splitname[ x + 1: ]: version += '-' + part return [ package, version ] def getManifestFiles(rootdir, package): """return a list of manifest files for package. The file names are relative to rootdir and normalized (lowercase on windows). Only return existing files - it sometimes happens that the manifest file exists in the manifest directory but not in the package directory""" result = [] manifestDir = os.path.join( rootdir, "manifest" ) if not os.path.exists( manifestDir ): debug("could not find manifest directory %s" % manifestDir, 2) else: fileNames = (os.path.normcase(x) for x in os.listdir(manifestDir) if x.endswith(".mft")) for fileName in fileNames: if package == packageSplit( fileName.replace( ".mft", ""))[0]: fullName = os.path.join(rootdir, "manifest", fileName) if os.path.exists(fullName): result.append(fileName) else: warning("did not find manifest file %s" % fullName) if not result: debug( "could not find any manifest files in %s for rootdir=%s, package=%s" % \ (manifestDir, rootdir, package), 2 ) return result def getFileListFromManifest(rootdir, package, withManifests=False): """ return sorted list according to the manifest files for deletion/import. Each item holds a file name and a digest. If a file name appears once with and once without digest (which often is the case for *.mft), it is only returned once with digest. The file names are normalized: on Windows, all lowercase. Do not return the names of manifest files unless explicitly requested. """ fileList = dict() manifestFiles = [os.path.join(rootdir, "manifest", x) for x in getManifestFiles(rootdir, package)] for manifestFile in manifestFiles: with open(manifestFile, 'rb' ) as fptr: for line in fptr: try: line = line.replace( "\n", "" ).replace( "\r", "" ) # check for digest having two spaces between filename and hash if not line.find( " " ) == -1: [ b, a ] = line.rsplit( " ", 2 ) # check for filname have spaces elif line.count( " " ) > 1: ri = line.rindex( " " ) b = line[ ri: ] a = line[ : ri - 1 ] # check for digest having one spaces elif not line.find( " " ) == -1: [ a, b ] = line.rsplit( " ", 2 ) else: a, b = line, "" except Exception: # pylint: disable=W0703 die( "could not parse line %s" % line) a = os.path.normcase(a) if withManifests or os.path.join( rootdir, a) not in manifestFiles: if a not in fileList or not fileList[a]: # if it is not yet in the fileList or without digest: fileList[a] = b return sorted(list(fileList.items()), key = lambda x: x[0]) def unmergeFileList(rootdir, fileList, forced=False): """ delete files in the fileList if has matches or forced is True """ for filename, filehash in fileList: fullPath = os.path.join(rootdir, os.path.normcase( filename)) if os.path.isfile(fullPath): currentHash = digestFile(fullPath) if currentHash == filehash or filehash == "" or os.path.islink(fullPath): debug( "deleting file %s" % fullPath) os.remove(fullPath) else: if forced: warning( "file %s has different hash: %s %s, deleting anyway" % \ (fullPath, currentHash, filehash ) ) os.remove(fullPath) else: warning( "file %s has different hash: %s %s, run with option --force to delete it anyway" % \ (fullPath, currentHash, filehash ) ) elif not os.path.isdir(fullPath): warning( "file %s does not exist" % fullPath) def unmerge(rootdir, package, forced=False): """ delete files according to the manifest files. returns False if it found no manifest files.""" debug( "unmerge called: %s" % ( package ), 2 ) fileList = getFileListFromManifest(rootdir, package, withManifests=True) unmergeFileList(rootdir, fileList, forced) return bool(fileList) def cleanManifestDir(imageDir): manifestDir = os.path.join( imageDir, "manifest" ) if os.path.exists( manifestDir ): rmtree(manifestDir) def createManifestDir(imagedir, category, package, version ): """if not yet existing, create the manifest files for an imagedir like the kdewin-packager does""" if not hasManifestFile( imagedir, package ): createManifestFiles( imagedir, imagedir, category, package, version ) def hasManifestFile( imagedir, package ): if os.path.exists( os.path.join( imagedir, "manifest" ) ): for fileName in os.listdir( os.path.join( imagedir, "manifest" ) ): if fileName.startswith( package ) and fileName.endswith( "-bin.mft" ): return True return False def createManifestFiles( imagedir, destdir, category, package, version ): """create the manifest files for an imagedir like the kdewin-packager does""" debug( "createManifestFiles called: %s %s %s %s %s" % ( imagedir, destdir, category, package, version ), 1 ) myimagedir = imagedir if ( not imagedir.endswith( "\\" ) ): myimagedir = myimagedir + "\\" binList = list() libList = list() docList = list() dirType = 0 for root, _, files in os.walk( imagedir ): relativeRoot = root.replace( imagedir, "" ) if relativeRoot.startswith("\\manifest"): continue if relativeRoot.startswith( "\\bin" ): dirType = 1 elif relativeRoot.startswith( "\\lib" ): dirType = 2 elif relativeRoot.startswith( "\\share" ): dirType = 3 elif relativeRoot.startswith( "\\data" ): dirType = 4 elif relativeRoot.startswith( "\\etc" ): dirType = 5 elif relativeRoot.startswith( "\\include" ): dirType = 6 elif relativeRoot.startswith( "\\doc" ): dirType = 7 elif relativeRoot.startswith( "\\man" ): dirType = 8 else: dirType = 1 for fileName in files: if dirType == 1 or dirType == 2: binList.append( os.path.join( root, fileName ).replace( myimagedir, "" ) ) if dirType == 2: if fileName.endswith( ".a" ) or fileName.endswith( ".lib" ): libList.append( os.path.join( root, fileName ).replace( myimagedir, "" ) ) else: binList.append( os.path.join( root, fileName ).replace( myimagedir, "" ) ) if dirType == 3 or dirType == 4 or dirType == 5: binList.append( os.path.join( root, fileName ).replace( myimagedir, "" ) ) if dirType == 6: libList.append( os.path.join( root, fileName ).replace( myimagedir, "" ) ) if dirType == 7 or dirType == 8: docList.append( os.path.join( root, fileName ).replace( myimagedir, "" ) ) if not os.path.exists( os.path.join( destdir, "manifest" ) ): os.makedirs( os.path.join( destdir, "manifest" ) ) for mList, ext, description in [ (binList, 'bin', 'Binaries'), (libList, 'lib', 'developer files'), (docList, 'doc', 'Documentation')]: if mList: with open( os.path.join( destdir, "manifest", "%s-%s-%s.mft" % ( package, version, ext )), 'wb' ) as f: for fileName in mList: f.write( bytes( "%s %s\n" % ( fileName, digestFile( os.path.join( myimagedir, fileName ) ) ), "UTF-8" ) ) f.write( bytes( os.path.join( "manifest", "%s-%s-%s.mft\n" % ( package, version, ext ) ), "UTF-8" ) ) f.write( bytes( os.path.join( "manifest", "%s-%s-%s.ver\n" % ( package, version, ext ) ), "UTF-8" ) ) with open( os.path.join( destdir, "manifest", "%s-%s-%s.ver" % ( package, version, ext )), 'wb' ) as f: f.write( bytes( "%s %s %s\n%s/%s:%s:unknown" % ( package, version, description, category, package, version ), "UTF-8" ) ) return True def mergeImageDirToRootDir( imagedir, rootdir , linkOnly = envAsBool("EMERGE_USE_SYMLINKS")): copyDir( imagedir, rootdir , linkOnly) def moveEntries( srcdir, destdir ): for entry in os.listdir( srcdir ): #print "rootdir:", root debug( "entry: %s" % entry, 1 ) src = os.path.join( srcdir, entry ) dest = os.path.join( destdir, entry ) debug( "src: %s dest: %s" %( src, dest ), 1 ) if( os.path.isfile( dest ) ): os.remove( dest ) if( os.path.isdir( dest ) ): continue os.rename( src, dest ) def moveImageDirContents( imagedir, relSrcDir, relDestDir ): srcdir = os.path.join( imagedir, relSrcDir ) destdir = os.path.join( imagedir, relDestDir ) if ( not os.path.isdir( destdir ) ): os.mkdir( destdir ) moveEntries( srcdir, destdir ) os.chdir( imagedir ) os.removedirs( relSrcDir ) def fixCmakeImageDir( imagedir, rootdir ): """ when using DESTDIR=foo under windows, it does not _replace_ CMAKE_INSTALL_PREFIX with it, but prepends destdir to it. so when we want to be able to install imagedir into KDEROOT, we have to move things around... """ debug( "fixImageDir: %s %s" % ( imagedir, rootdir ), 1 ) # imagedir = e:\foo\thirdroot\tmp\dbus-0\image # rootdir = e:\foo\thirdroot # files are installed to # e:\foo\thirdroot\tmp\dbus-0\image\foo\thirdroot _, rootpath = os.path.splitdrive( rootdir ) #print "rp:", rootpath if ( rootpath.startswith( "\\" ) ): rootpath = rootpath[1:] # CMAKE_INSTALL_PREFIX = X:\ # -> files are installed to # x:\build\foo\dbus\image\ # --> all fine in this case #print "rp:", rootpath if len(rootpath) == 0: return tmp = os.path.join( imagedir, rootpath ) debug( "tmp: %s" % tmp, 1 ) tmpdir = os.path.join( imagedir, "tMpDiR" ) if ( not os.path.isdir( tmpdir ) ): os.mkdir( tmpdir ) moveEntries( tmp, tmpdir ) os.chdir( imagedir ) os.removedirs( rootpath ) moveEntries( tmpdir, imagedir ) cleanDirectory( tmpdir ) os.rmdir( tmpdir ) def cleanDirectory( directory ): debug("clean directory %s" % directory, 1) if ( os.path.exists( directory ) ): for root, dirs, files in os.walk( directory, topdown=False): for name in files: try: os.remove( os.path.join(root, name) ) except OSError: die( "couldn't delete file %s\n ( %s )" % ( name, os.path.join( root, name ) ) ) for name in dirs: try: os.rmdir( os.path.join(root, name) ) except OSError: die( "couldn't delete directory %s\n( %s )" % ( name, os.path.join( root, name ) ) ) else: os.makedirs( directory ) def sedFile( directory, fileName, sedcommand ): """ runs the given sed command on the given file """ olddir = os.getcwd() try: os.chdir( directory ) backup = "%s.orig" % fileName if( os.path.isfile( backup ) ): os.remove( backup ) command = "sed -i.orig %s %s" % ( sedcommand, fileName ) system( command ) finally: os.chdir( olddir ) def digestFile( filepath ): """ md5-digests a file """ fileHash = hashlib.md5() if os.path.islink(filepath): tmp = resolveLink(filepath) if not os.path.exists(tmp): warning("cant resolve symbolic link target %s, returning \"\" as digests" % tmp) return "" filepath = tmp with open( filepath, "rb" ) as digFile: for line in digFile: fileHash.update( line ) return fileHash.hexdigest() def digestFileSha1( filepath ): """ sha1-digests a file """ fileHash = hashlib.sha1() with open( filepath, "rb" ) as hashFile: for line in hashFile: fileHash.update( line ) return fileHash.hexdigest() def getVCSType( url ): """ return the type of the vcs url """ if not url: return "" if isGitUrl( url ): return "git" elif url.find("://") == -1: return "svn" elif url.startswith("[hg]"): return "hg" elif url.find("svn:") >= 0 or url.find("https:") >= 0 or url.find("http:") >= 0: return "svn" ## \todo complete more cvs access schemes elif url.find("pserver:") >= 0: return "cvs" else: return "" def isGitUrl( Url ): """ this function returns true, if the Url given as parameter is a git url: it either starts with git:// or the first part before the first '|' ends with .git or if the url starts with the token [git] """ if Url.startswith('git://'): return True # split away branch and tags splitUrl = Url.split('|') if splitUrl[0].endswith(".git"): return True if Url.startswith("[git]"): return True return False def splitVCSUrl( Url ): """ this function splits up an url provided by Url into the server name, the path, a branch or tag; it will return a list with 3 strings according to the following scheme: git://servername/path.git|4.5branch|v4.5.1 will result in ['git://servername:path.git', '4.5branch', 'v4.5.1'] This also works for all other dvcs""" splitUrl = Url.split('|') if len(splitUrl) < 3: c = [x for x in splitUrl] for dummy in range(3 - len(splitUrl)): c.append('') else: c = splitUrl[0:3] return c def replaceVCSUrl( Url ): """ this function should be used to replace the url of a server this comes in useful if you e.g. need to switch the server url for a push url on gitorious.org """ configfile = os.path.join(etcDir(), "..", "emergehosts.conf" ) replacedict = dict() # FIXME handle svn/git usernames and settings with a distinct naming if ( os.getenv( "KDESVNUSERNAME" ) and os.getenv( "KDESVNUSERNAME" ) != "username" ) : replacedict[ "git://git.kde.org/" ] = "git@git.kde.org:" if os.path.exists( configfile ): config = configparser.ConfigParser() config.read( configfile ) # add the default KDE stuff if the KDE username is set. for section in config.sections(): host = config.get( section, "host" ) replace = config.get( section, "replace" ) replacedict[ host ] = replace for host in list(replacedict.keys()): if not Url.find( host ) == -1: Url = Url.replace( host, replacedict[ host ] ) break return Url def createImportLibs( dll_name, basepath ): """creating the import libraries for the other compiler(if ANSI-C libs)""" dst = os.path.join( basepath, "lib" ) if( not os.path.exists( dst ) ): os.mkdir( dst ) # check whether the required binary tools exist HAVE_PEXPORTS = test4application( "pexports" ) USE_PEXPORTS = HAVE_PEXPORTS HAVE_LIB = test4application( "lib" ) HAVE_DLLTOOL = test4application( "dlltool" ) if verbose() > 1: print("pexports found:", HAVE_PEXPORTS) print("pexports used:", USE_PEXPORTS) print("lib found:", HAVE_LIB) print("dlltool found:", HAVE_DLLTOOL) dllpath = os.path.join( basepath, "bin", "%s.dll" % dll_name ) defpath = os.path.join( basepath, "lib", "%s.def" % dll_name ) exppath = os.path.join( basepath, "lib", "%s.exp" % dll_name ) imppath = os.path.join( basepath, "lib", "%s.lib" % dll_name ) gccpath = os.path.join( basepath, "lib", "%s.dll.a" % dll_name ) if not HAVE_PEXPORTS and os.path.exists( defpath ): HAVE_PEXPORTS = True USE_PEXPORTS = False if not HAVE_PEXPORTS: warning( "system does not have pexports.exe" ) return False if not HAVE_LIB: warning( "system does not have lib.exe (from msvc)" ) if not HAVE_DLLTOOL: warning( "system does not have dlltool.exe" ) return False # create .def if USE_PEXPORTS: cmd = "pexports %s > %s " % ( dllpath, defpath ) system( cmd ) sedcmd = "sed -i \"s/^LIBRARY.*$/LIBRARY %s.dll/\" %s" % (dll_name, defpath) system( sedcmd ) if( HAVE_LIB and not os.path.isfile( imppath ) ): # create .lib cmd = "lib /machine:x86 /def:%s /out:%s" % ( defpath, imppath ) system( cmd ) if( HAVE_DLLTOOL and not os.path.isfile( gccpath ) ): # create .dll.a cmd = "dlltool -d %s -l %s" % ( defpath, gccpath ) system( cmd ) if os.path.exists( defpath ): os.remove( defpath ) if os.path.exists( exppath ): os.remove( exppath ) return True def toMSysPath( path ): path = path.replace( '\\', '/' ) if ( path[1] == ':' ): path = '/' + path[0].lower() + '/' + path[3:] return path def cleanPackageName( basename, packagename ): return os.path.basename( basename ).replace( packagename + "-", "" ).replace( ".py", "" ) def renameDir(src, dest): """ rename a directory """ debug("rename directory from %s to %s" % ( src, dest ), 2) if os.rename( src, dest ) == 0: return False else: return True def createDir(path): """Recursive directory creation function. Makes all intermediate-level directories needed to contain the leaf directory""" if not os.path.exists( path ): debug("creating directory %s " % ( path ), 2) os.makedirs( path ) return True def resolveLink(link): """tries to resolve a symlink""" if not os.path.islink(link): return link tmp = os.path.join(os.path.abspath(os.path.dirname(link) ),os.readlink(link)) if not os.path.exists(tmp): warning("cant resolve Link: %s" % link) return tmp def copyFile(src, dest,linkOnly = envAsBool("EMERGE_USE_SYMLINKS")): """ copy file from src to dest""" debug("copy file from %s to %s" % ( src, dest ), 2) destDir = os.path.dirname(dest) if not os.path.exists(destDir): os.makedirs(destDir) if os.path.islink(src): src = resolveLink(src) if linkOnly: if src.endswith(".exe") or src.endswith("qt.conf"): os.link( src , dest ) else: if (os.path.exists(dest) or os.path.islink(dest)):#if link is invailid os.path.exists will return false warning("overiding existing link or file %s with %s" % (dest,src)) os.remove(dest) os.symlink(deSubstPath(src), dest ) else: shutil.copy(src,dest) return True def copyDir( srcdir, destdir,linkOnly=False ): """ copy directory from srcdir to destdir """ debug( "copyDir called. srcdir: %s, destdir: %s" % ( srcdir, destdir ), 2) if ( not srcdir.endswith( "\\" ) ): srcdir += "\\" if ( not destdir.endswith( "\\" ) ): destdir += "\\" for root, _, files in os.walk( srcdir ): # do not copy files under .svn directories, because they are write-protected # and the they cannot easily be deleted... if ( root.find( ".svn" ) == -1 ): tmpdir = root.replace( srcdir, destdir ) if not os.path.exists( tmpdir ): os.makedirs( tmpdir ) for fileName in files: copyFile(os.path.join( root, fileName ),os.path.join( tmpdir, fileName )) debug( "copy %s to %s" % ( os.path.join( root, fileName ), os.path.join( tmpdir, fileName ) ), 2) def moveDir( srcdir, destdir ): """ move directory from srcdir to destdir """ debug( "moveDir called. srcdir: %s, destdir: %s" % ( srcdir, destdir ), 1 ) shutil.move( srcdir, destdir ) def rmtree( directory ): """ recursively delete directory """ debug( "rmtree called. directory: %s" % ( directory ), 2 ) shutil.rmtree ( directory, True ) # ignore errors def moveFile(src, dest): """move file from src to dest""" debug("move file from %s to %s" % ( src, dest ), 2) os.rename( src, dest ) return True def deleteFile(fileName): """delete file """ if not os.path.exists( fileName ): return False debug("delete file %s " % ( fileName ), 2) os.remove( fileName ) return True def findFiles( directory, pattern=None, fileNames=None): """find files recursivly""" if fileNames == None: fileNames = [] pattern = pattern.lower() for entry in os.listdir(directory): if entry.find(".svn") > -1 or entry.find(".bak") > -1: continue fileName = os.path.join(directory, entry) if os.path.isdir(fileName): findFiles(fileName, pattern, fileNames) elif os.path.isfile(fileName) and pattern == None or entry.lower().find(pattern) > -1: fileNames.append(fileName) return fileNames def putenv(name, value): """set environment variable""" debug("set environment variable -- set %s=%s" % ( name, value ), 2) os.putenv( name, value ) return True def unixToDos(filename): with open(filename, "rb") as f: return str(f.read(),'UTF-8').replace('\n', '\r\n') def applyPatch(sourceDir, f, patchLevel='0'): """apply single patch""" cmd = "patch -d %s -p%s < %s" % (sourceDir, patchLevel, f) debug("applying %s" % cmd) if not isCrEol(f): p = subprocess.Popen([ "patch", "-d", sourceDir, "-p", str(patchLevel)], stdin = subprocess.PIPE) p.communicate(bytes(unixToDos(f),'UTF-8')) result = p.wait() == 0 else: result = system( cmd ) if not result: warning( "applying %s failed!" % f) return result def log(fn): def inner(*args, **argv): logdir = os.environ.get('EMERGE_LOG_DIR') if not logdir: return fn(*args, **argv) if os.path.isfile(logdir): die("EMERGE_LOG_DIR %s is a file" % logdir) if not os.path.exists(logdir): try: os.mkdir(logdir) except OSError: die("EMERGE_LOG_DIR %s can not be created" % logdir) logfile = "%s-%s-%s.log" % (args[0], args[1], args[2]) logfile = os.path.join(logdir, logfile) f = open(logfile, "a+") try: old_out = sys.stdout old_err = sys.stderr sys.stdout = f sys.stderr = f return fn(*args, **argv) finally: sys.stdout = old_out sys.stderr = old_err f.close() return inner def getWinVer(): ''' Returns the Windows Version of the system returns "0" if the Version can not be determined ''' try: result = str(subprocess.Popen("cmd /C ver", stdout=subprocess.PIPE).communicate()[0],"windows-1252") except OSError: debug("Windows Version can not be determined", 1) return "0" version = re.search(r"\d+\.\d+\.\d+", result) if(version): return version.group(0) debug("Windows Version can not be determined", 1) return "0" def regQuery(key, value): ''' Query the registry key for value and return the result. ''' query = 'reg query "%s" /v "%s"' % (key, value) debug("Executing registry query %s " % query, 2) result = subprocess.Popen(query, stdout = subprocess.PIPE).communicate()[0] # Output of this command is either an error to stderr # or the key with the value in the next line reValue = re.compile(r"(\s*%s\s*REG_\w+\s*)(.*)" % value) match = reValue.search(str(result, 'windows-1252')) if match and match.group(2): return match.group(2).rstrip() return False def embedManifest(executable, manifest): ''' Embed a manifest to an executable using either the free kdewin manifest if it exists in dev-utils/bin or the one provided by the Microsoft Platform SDK if it is installed' ''' if not os.path.isfile(executable) or not os.path.isfile(manifest): # We die here because this is a problem with the portage files die("embedManifest %s or %s do not exist" % (executable, manifest)) debug("embedding ressource manifest %s into %s" % \ (manifest, executable), 2) mtExe = None mtExe = os.path.join(os.getenv("KDEROOT"), "dev-utils", "bin", "mt.exe") if(not os.path.isfile(mtExe)): # If there is no free manifest tool installed on the system # try to fallback on the manifest tool provided by visual studio sdkdir = regQuery("HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows", "CurrentInstallFolder") if not sdkdir: debug("embedManifest could not find the Registry Key" " for the Windows SDK", 2) else: mtExe = r'%s' % os.path.join(sdkdir, "Bin", "mt.exe") if not os.path.isfile(os.path.normpath(mtExe)): debug("embedManifest could not find a mt.exe in\n\t %s" % \ os.path.dirname(mtExe), 2) if os.path.isfile(mtExe): system([mtExe, "-nologo", "-manifest", manifest, "-outputresource:%s;1" % executable]) else: debug("No manifest tool found. \n Ressource manifest for %s not embedded"\ % executable, 1) def getscriptname(): if __name__ == '__main__': return sys.argv[ 0 ] else: return __name__ def prependPath(*parts): """put path in front of the PATH environment variable, if it is not there yet. The last part must be a non empty string, otherwise we do nothing""" if parts[-1]: fullPath = os.path.join(*parts) old = os.getenv("PATH").split(';') if old[0] != fullPath: debug("adding %s to system path" % fullPath, 2) old.insert(0, fullPath) os.putenv( "PATH", ";".join(old)) _TIMERS = dict() def startTimer(name, level = 0): """starts a timer for meassurement""" if name in _TIMERS: die("%s already in timers" % name) _TIMERS[name] = (datetime.datetime.now() , level) if os.getenv("EMERGE_MEASURE_TIME") or level == 0 or verbose() > level and verbose() > 0: #debug( "Task: %s started" % name ) sys.stdout.flush() def stopTimer(name): """stops a timer for meassurement""" if not name in _TIMERS: debug( "%s not in timers" % name ) return startTime , level = _TIMERS[name] if os.getenv("EMERGE_MEASURE_TIME") or level == 0 or verbose() > level and verbose() > 0: delta = datetime.datetime.now() - startTime debug( "Task: %s stopped after: %s" % (name , delta) ) sys.stdout.flush() del _TIMERS[name] def stopAllTimer(): """stops all timer for meassurement""" keys = sorted(list(_TIMERS.items()) , key=itemgetter(1) , reverse=True) for key , _ in keys: stopTimer(key) _SUBST = None def deSubstPath(path): """desubstitude emerge short path""" if not envAsBool("EMERGE_USE_SHORT_PATH"): return path global _SUBST # pylint: disable=W0603 drive , tail = os.path.splitdrive(path) drive = drive.upper() if _SUBST == None: tmp = str(subprocess.Popen("subst", stdout=subprocess.PIPE).communicate()[0],"windows-1252").split("\r\n") _SUBST = dict() for s in tmp: if s != "": key , val = s.split("\\: => ") _SUBST[key] = val if drive in list(_SUBST.keys()): deSubst = _SUBST[drive] + tail debug("desubstituded %s to %s" % (path , deSubst) , 1) return deSubst return path +def notify(title,message): + backends = os.getenv("EMERGE_USE_NOTIFY") + if not backends: + return + backends = Notifier.NotificationLoader.load(backends.split(";")) + for backend in backends.values(): + backend.notify(title,message) + + + + + diff --git a/portage/kde/kactivities/kactivities-20111102.py b/portage/kde/kactivities/kactivities-20111102.py index f42cb86b6..2f3df1a33 100644 --- a/portage/kde/kactivities/kactivities-20111102.py +++ b/portage/kde/kactivities/kactivities-20111102.py @@ -1,22 +1,22 @@ import os -import sys import info -# deprecated class class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kactivities' self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.hardDependencies['kde/kdelibs'] = 'default' + self.dependencies['kde/kdelibs'] = 'default' + self.runtimeDependencies['kde/kde-runtime'] = 'default' + self.shortDescription = "KDE Activity Manager" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__(self) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kde-baseapps/kde-baseapps-20110130.py b/portage/kde/kde-baseapps/kde-baseapps-20110130.py index 78e61f704..da404ae9e 100644 --- a/portage/kde/kde-baseapps/kde-baseapps-20110130.py +++ b/portage/kde/kde-baseapps/kde-baseapps-20110130.py @@ -1,24 +1,20 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kde-baseapps' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' - - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = False + self.shortDescription = "KDE base applications (Konqueror, Dolphin)" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kde-runtime/kde-runtime-20110130.py b/portage/kde/kde-runtime/kde-runtime-20110130.py index 386a0c338..a71800b35 100644 --- a/portage/kde/kde-runtime/kde-runtime-20110130.py +++ b/portage/kde/kde-runtime/kde-runtime-20110130.py @@ -1,49 +1,23 @@ import info import compiler class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kde-runtime' - self.svnTargets['komobranch'] = 'branches/work/komo/kdebase/runtime' - if emergePlatform.isCrossCompilingEnabled(): - self.defaultTarget = 'komobranch' - else: - self.defaultTarget = 'gitHEAD' + self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kdesupport/oxygen-icons'] = 'default' - if not emergePlatform.isCrossCompilingEnabled(): - self.dependencies['win32libs-bin/libssh'] = 'default' + self.dependencies['win32libs-bin/libssh'] = 'default' if compiler.isMinGW_WXX(): self.dependencies['win32libs-bin/libbfd'] = 'default' - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = False - from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "" - if emergePlatform.isCrossCompilingEnabled(): - self.subinfo.options.configure.defines += "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE " - - self.subinfo.options.configure.defines += "-DHOST_BINDIR=%s " \ - % os.path.join(ROOTDIR, "bin") - - if self.isTargetBuild(): - self.subinfo.options.configure.defines += "-DKDEBASE_DISABLE_MULTIMEDIA=ON " - self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " - - automoc = os.path.join(self.mergeDestinationDir(), "lib", "automoc4", "Automoc4Config.cmake") - if not os.path.exists(automoc): - utils.warning("could not find automoc in <%s>" % automoc) - ## \todo a standardized way to check if a package is installed in the image dir would be good. - self.subinfo.options.configure.defines += " -DAUTOMOC4_CONFIG_FILE:FILEPATH=%s " \ - % automoc.replace('\\', '/') if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kde-workspace/kde-workspace-20110130.py b/portage/kde/kde-workspace/kde-workspace-20110130.py index d37687e97..66a493d6f 100644 --- a/portage/kde/kde-workspace/kde-workspace-20110130.py +++ b/portage/kde/kde-workspace/kde-workspace-20110130.py @@ -1,40 +1,25 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kde-workspace' - self.svnTargets['komobranch'] = 'branches/work/komo/kdebase/workspace' - if emergePlatform.isCrossCompilingEnabled(): - self.defaultTarget = 'komobranch' - else: - self.defaultTarget = 'gitHEAD' + self.shortDescription = 'the KDE workspace including the oxygen style' + self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['kde/kactivities'] = 'default' -# if not emergePlatform.isCrossCompilingEnabled(): -# self.dependencies['win32libs-bin/fontconfig'] = 'default' self.dependencies['win32libs-bin/freetype'] = 'default' self.dependencies['win32libs-bin/boost'] = 'default' self.dependencies['kdesupport/akonadi'] = 'default' - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = False - from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "" - self.subinfo.options.configure.defines += "-DHOST_BINDIR=%s " \ - % os.path.join(ROOTDIR, "bin") - if self.isTargetBuild(): - self.subinfo.options.configure.defines += "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE " - self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kde4-l10n/kde4-l10n-20090815.py b/portage/kde/kde4-l10n/kde4-l10n-20090815.py index 765c7bc4b..460726576 100644 --- a/portage/kde/kde4-l10n/kde4-l10n-20090815.py +++ b/portage/kde/kde4-l10n/kde4-l10n-20090815.py @@ -1,131 +1,176 @@ import os import info -class subinfo(info.infoclass): +class subinfo( info.infoclass ): def setTargets( self ): - self.svnTargets['svnHEAD'] = 'trunk/l10n-kde4/%s' - self.defaultTarget = 'svnHEAD' + for ver in ['0', '1', '2', '3', '4']: + self.targets['4.8.' + ver] = 'ftp://ftp.kde.org/pub/kde/stable/4.8.' + ver + '/src/kde-l10n/kde-l10n-%s-4.8.' + ver + '.tar.bz2' + self.targetInstSrc['4.8.' + ver] = 'kde-l10n-%s-4.8.' + ver + + # Checking out from SVN is currently broken. The fetch + # Action is not made for it (see hasSVNTargets) and also + # The checkoutDir override will not work correctly + # Please see the master branch for svnHEAD + # self.svnTargets['svnHEAD'] = 'branches/stable/l10n-kde4/%s' + self.defaultTarget = '4.8.0' def setDependencies( self ): self.buildDependencies['dev-util/cmake'] = 'default' + self.buildDependencies['kde/kdelibs'] = 'default' self.buildDependencies['dev-util/gettext-tools'] = 'default' - self.hardDependencies['kde/kdelibs'] = 'default' - + from Package.CMakePackageBase import * -class Package(PackageBase, SvnSource, CMakeBuildSystem, KDEWinPackager): +class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() - PackageBase.__init__( self ) - SvnSource.__init__( self ) - CMakeBuildSystem.__init__( self ) - KDEWinPackager.__init__( self ) + CMakePackageBase.__init__( self ) self.language = None # because of the large amount of packages - # it is very annoying to restart the build, - # wasting several hours, so ignore any errors + # it is very annoying to restart the build, + # wasting several hours, so ignore any errors # for now self.subinfo.options.make.ignoreErrors = True self.subinfo.options.exitOnErrors = False - # hardcoded for now - #self.subinfo.options.package.version = '4.3.63' - - def repositoryUrl(self,index=0): - # \todo we cannot use CMakePackageBase here because repositoryPath - # then is not be overrideable for unknown reasons - url = SvnSource.repositoryUrl(self,index) % self.language + # overwrite the workDir function that is inherited from SourceBase + self.source.workDir = self.workDir.__get__( self, Package ) + self.source.localFileNames = self.localFileNames.__get__( self, Package ) + + def localFileNames( self ): + filenames = [] + for i in range( self.repositoryUrlCount() ): + filenames.append( os.path.basename( self.repositoryUrl( i ) ) ) + return filenames + + def configureSourceDir( self ): + return CMakePackageBase.configureSourceDir( self ) % self.language + + def sourceDir( self ): + return CMakePackageBase.sourceDir( self ) % self.language + + def imageDir( self ): + return os.path.join( CMakePackageBase.imageDir( self ), self.language ) + + def repositoryUrl( self, index=0 ): + # \todo we cannot use CMakePackageBase here because repositoryPath + # then is not be overrideable for unknown reasons + url = CMakePackageBase.repositoryUrl( self, index ) % self.language return url - def checkoutDir(self,index=0): - return SvnSource.checkoutDir(self,index) % self.language + def workDir( self ): + dir = os.path.join( CMakePackageBase.workDir( self ), self.language ) + return dir - def buildRoot(self): - return os.path.join(PackageBase.buildRoot(self)) + def fetch( self ): + filenames = self.localFileNames() - def qmerge(self): - ''' When crosscompiling install l10n files - also into the targets directory ''' - ret = PackageBase.qmerge(self) - if emergePlatform.isCrossCompilingEnabled(): - utils.copyDir(self.imageDir(), - os.path.join(self.rootdir, - os.environ["EMERGE_TARGET_PLATFORM"])) - return ret + if ( self.source.noFetch ): + utils.debug( "skipping fetch (--offline)" ) + return True - def unpack(self): + self.source.setProxy() + if self.subinfo.hasTarget(): + return utils.getFiles( self.subinfo.target() % self.language, self.downloadDir() ) + else: + return utils.getFiles( "", self.downloadDir() ) + + def unpack( self ): autogen = os.path.join( self.packageDir() , "autogen.py" ) - if not SvnSource.unpack(self): + + filenames = self.localFileNames() + + # the following code is taken from ArchiveSource::unpack() function + # it will not remove already existing files + destdir = self.workDir() + utils.debug( "unpacking files into work root %s" % destdir, 1 ) + + if not utils.unpackFiles( self.downloadDir(), filenames, destdir ): return False + + return True + # execute autogen.py and generate the CMakeLists.txt files - # Possible autogen options are --disable-messages, - # --disable-docs, --disable-data and --disable-scripts - cmd = [ "python", autogen, self.language ] - if emergePlatform.isCrossCompilingEnabled(): - cmd.append( "--disable-docs" ) - return self.system( cmd, cwd=os.path.join( self.sourceDir(), ".." ) ) - - def configure(self): - if not os.path.exists(os.path.join(self.buildDir(),"CMakeCache.txt")): - return CMakeBuildSystem.configure(self) +# cmd = "cd %s && python %s %s %s" % \ +# ('..', autogen, self.sourceDir(), self.language ) +# return self.system( cmd ) + + def install( self ): + self.subinfo.options.install.useMakeToolForInstall = False + CMakePackageBase.install( self ) + #ignore errors return True - def createPackage(self): - self.subinfo.options.package.packageName = 'l10n-kde4-%s' % self.language + def createPackage( self ): + self.subinfo.options.package.packageName = 'kde4-l10n-%s' % self.language self.subinfo.options.package.withCompiler = False - return KDEWinPackager.createPackage(self) - - -class MainInfo(info.infoclass): + return CMakePackageBase.createPackage(self) + + +class MainInfo( info.infoclass ): def setTargets( self ): self.svnTargets['svnHEAD'] = 'trunk/l10n-kde4/scripts' self.defaultTarget = 'svnHEAD' - # all targets in svn - self.languages = 'af ar be bg bn bn_IN br ca cs csb cy da de ' - self.languages += 'el en_GB eo es et eu fa fi fr fy ga gl gu ' - self.languages += 'ha he hi hr hsb hu hy is it ja ka kk km kn ko ku ' - self.languages += 'lb lt lv mk ml ms mt nb nds ne nl nn nso oc ' - self.languages += 'pa pl pt pt_BR ro ru rw se sk sl sr sv ' - self.languages += 'ta te tg th tr uk uz vi wa xh zh_CN zh_HK zh_TW ' - + self.languages = dict() + + self.languages['svnHEAD'] = 'ar bg ca ca@valencia cs csb da de el en_GB eo es et eu fi fr fy ga' + self.languages['svnHEAD'] += ' gl gu he hi hr hu id is it ja kk km kn ko lt lv mai mk ml nb nds' + self.languages['svnHEAD'] += ' nl nn pa pl pt pt_BR ro ru si sk sl sr sv tg tr uk wa zh_CN zh_TW' + + self.languages['4.8.0'] = 'ar bg bs ca ca@valencia cs da de el en_GB es et eu fi fr ga gl he hr hu ia id is it ja kk km kn ko lt lv nb nds nl nn pa pl pt pt_BR ro ru sk sl sr sv th tr ug uk wa zh_CN zh_TW' + for ver in ['0', '1', '2', '3', '4']: + self.languages['4.8.' + ver] = self.languages['4.8.0'] + + #for testing + #self.languages['svnHEAD'] = 'de' + def setDependencies( self ): - self.hardDependencies['dev-util/cmake'] = 'default' - self.hardDependencies['dev-util/gettext-tools'] = 'default' - self.hardDependencies['kde/kdelibs'] = 'default' - - def setBuildOptions( self ): - self.disableHostBuild = False - self.disableTargetBuild = True - -class MainPackage(PackageBase): + self.buildDependencies['dev-util/cmake'] = 'default' + self.buildDependencies['dev-util/gettext-tools'] = 'default' + +class MainPackage( CMakePackageBase ): def __init__( self ): self.subinfo = MainInfo() - PackageBase.__init__( self ) - self.kde4_l10n = portage.getPackageInstance('kde','kde4-l10n') - # set to any language to start building from + CMakePackageBase.__init__( self ) + self.kde4_l10n = Package() + + # set to any language to start building from ## \todo when emerge.py is able to provide command line options to us - # it would be possible to set this from command line + # it would be possible to set this from command line self.startLanguage = None - - def execute(self): - command, option = self.getAction() - if self.isTargetBuild(): return True - - ## \todo option does not work yet see note in PackageBase::getAction() - # if no languages are defined, generate them all - languages = (option or os.getenv('EMERGE_LANG') or self.subinfo.languages).split() - utils.debug('building languages:%s' % languages, 2) - - # if self.startLanguage is defined, skip languages before that one - if self.startLanguage: - languages = languages[languages.index(self.startLanguage):] - + + def execute( self ): + ( command, option ) = self.getAction() + self.errors = dict() + ## \todo does not work yet see note in PackageBase::getAction() +# if option <> None: +# languages = option.split() +# else: + + # build target is not set here for unknown reasons, set manually for now + self.buildTarget='4.8.0' + if self.subinfo.languages[self.buildTarget]: + languages = self.subinfo.languages[self.buildTarget].split() + else: + languages = self.subinfo.languages['svnHEAD'].split() + + found=None for language in languages: + if not found and self.startLanguage: + if self.startLanguage <> language: + continue + else: + found = True + self.kde4_l10n.language = language - self.kde4_l10n.runAction(command) # either returns True or calls utils.die() - - return True - + utils.debug( "current language: %s current command: %s" % ( self.kde4_l10n.language, command ), 1 ) + self.kde4_l10n.runAction( command ) +# self.errors["%s-%s" % ( language, command )] = 1 + + if self.errors: + utils.debug( "Errors that happened while executing last command: %s" % self.errors, 2 ) + return True + if __name__ == '__main__': MainPackage().execute() diff --git a/portage/kde/kdeedu/blinken/blinken-20110621.py b/portage/kde/kdeedu/blinken/blinken-20110621.py index f40957d7b..470a28574 100644 --- a/portage/kde/kdeedu/blinken/blinken-20110621.py +++ b/portage/kde/kdeedu/blinken/blinken-20110621.py @@ -1,25 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:blinken|%s|' % ver - - self.svnTargets['gitHEAD'] = '[git]kde:blinken' - self.defaultTarget = 'gitHEAD' + self.svnTargets['gitHEAD'] = '[git]kde:blinken' + self.shortDescription = 'a memory enhancement game' + self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/cantor/cantor-20110621.py b/portage/kde/kdeedu/cantor/cantor-20110621.py index 0cda98b79..bb6c05d00 100644 --- a/portage/kde/kdeedu/cantor/cantor-20110621.py +++ b/portage/kde/kdeedu/cantor/cantor-20110621.py @@ -1,25 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:cantor|%s|' % ver - - self.svnTargets['gitHEAD'] = '[git]kde:cantor' - self.defaultTarget = 'gitHEAD' + self.svnTargets['gitHEAD'] = '[git]kde:cantor' + self.shortDescription = 'a KDE frontend for mathematical software' + self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kalgebra/kalgebra-20110621.py b/portage/kde/kdeedu/kalgebra/kalgebra-20110621.py index dd3694921..6b312504a 100644 --- a/portage/kde/kdeedu/kalgebra/kalgebra-20110621.py +++ b/portage/kde/kdeedu/kalgebra/kalgebra-20110621.py @@ -1,25 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kalgebra|%s|' % ver - - self.svnTargets['gitHEAD'] = '[git]kde:kalgebra' - self.defaultTarget = 'gitHEAD' + self.svnTargets['gitHEAD'] = '[git]kde:kalgebra' + self.shortDescription = 'a graph calculator' + self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kalzium/kalzium-20110621.py b/portage/kde/kdeedu/kalzium/kalzium-20110621.py index 8da5581c3..69fe6367a 100644 --- a/portage/kde/kdeedu/kalzium/kalzium-20110621.py +++ b/portage/kde/kdeedu/kalzium/kalzium-20110621.py @@ -1,26 +1,21 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kalzium|%s|' % ver - - self.svnTargets['gitHEAD'] = '[git]kde:kalzium' - self.defaultTarget = 'gitHEAD' + self.svnTargets['gitHEAD'] = '[git]kde:kalzium' + self.shortDescription = 'periodic table of elements' + self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/libkdeedu'] = 'default' self.dependencies['win32libs-bin/openbabel'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kanagram/kanagram-20110621.py b/portage/kde/kdeedu/kanagram/kanagram-20110621.py index a92d10b94..1acf09ca4 100644 --- a/portage/kde/kdeedu/kanagram/kanagram-20110621.py +++ b/portage/kde/kdeedu/kanagram/kanagram-20110621.py @@ -1,25 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kanagram|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kanagram' + self.shortDescription = 'a letter order game' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/libkdeedu'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kbruch/kbruch-20110621.py b/portage/kde/kdeedu/kbruch/kbruch-20110621.py index 44a4d69ea..ab4255945 100644 --- a/portage/kde/kdeedu/kbruch/kbruch-20110621.py +++ b/portage/kde/kdeedu/kbruch/kbruch-20110621.py @@ -1,25 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kbruch|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kbruch' + self.shortDescription = 'Excercise fractions' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kdeedu-20080202.py b/portage/kde/kdeedu/kdeedu-20080202.py index 4bab52a60..08abe8f58 100644 --- a/portage/kde/kdeedu/kdeedu-20080202.py +++ b/portage/kde/kdeedu/kdeedu-20080202.py @@ -1,43 +1,39 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/libkdeedu'] = 'default' self.dependencies['kde/blinken'] = 'default' self.dependencies['kde/cantor'] = 'default' self.dependencies['kde/kalgebra'] = 'default' self.dependencies['kde/kalzium'] = 'default' self.dependencies['kde/kanagram'] = 'default' self.dependencies['kde/kbruch'] = 'default' self.dependencies['kde/kgeography'] = 'default' self.dependencies['kde/khangman'] = 'default' self.dependencies['kde/kig'] = 'default' self.dependencies['kde/kiten'] = 'default' self.dependencies['kde/klettres'] = 'default' self.dependencies['kde/kmplot'] = 'default' self.dependencies['kde/kstars'] = 'default' self.dependencies['kde/ktouch'] = 'default' self.dependencies['kde/kturtle'] = 'default' self.dependencies['kde/kwordquiz'] = 'default' self.dependencies['kde/marble'] = 'default' self.dependencies['kde/parley'] = 'default' self.dependencies['kde/rocs'] = 'default' self.dependencies['kde/step'] = 'default' from Package.VirtualPackageBase import * class Package( VirtualPackageBase ): def __init__( self ): self.subinfo = subinfo() VirtualPackageBase.__init__( self ) - if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kgeography/kgeography-20110621.py b/portage/kde/kdeedu/kgeography/kgeography-20110621.py index cd7746b68..e22011f95 100644 --- a/portage/kde/kdeedu/kgeography/kgeography-20110621.py +++ b/portage/kde/kdeedu/kgeography/kgeography-20110621.py @@ -1,25 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kgeography|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kgeography' + self.shortDescription = 'a geography trainer' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/khangman/khangman-20110621.py b/portage/kde/kdeedu/khangman/khangman-20110621.py index a3a508626..4d1d0d225 100644 --- a/portage/kde/kdeedu/khangman/khangman-20110621.py +++ b/portage/kde/kdeedu/khangman/khangman-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:khangman|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:khangman' + self.shortDescription = 'the hangman game' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kig/kig-20110621.py b/portage/kde/kdeedu/kig/kig-20110621.py index 043e98aec..972a4d688 100644 --- a/portage/kde/kdeedu/kig/kig-20110621.py +++ b/portage/kde/kdeedu/kig/kig-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kig|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kig' + self.shortDescription = 'interactive geometry' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kiten/kiten-20110621.py b/portage/kde/kdeedu/kiten/kiten-20110621.py index 62b3ed31f..ca0a88931 100644 --- a/portage/kde/kdeedu/kiten/kiten-20110621.py +++ b/portage/kde/kdeedu/kiten/kiten-20110621.py @@ -1,26 +1,21 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kiten|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kiten' + self.shortDescription = 'a Japanese reference/study tool' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/klettres/klettres-20110621.py b/portage/kde/kdeedu/klettres/klettres-20110621.py index 8a3946047..503272b42 100644 --- a/portage/kde/kdeedu/klettres/klettres-20110621.py +++ b/portage/kde/kdeedu/klettres/klettres-20110621.py @@ -1,26 +1,21 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kletters|%s|' % ver - - self.svnTargets['gitHEAD'] = '[git]kde:kletters' + self.svnTargets['gitHEAD'] = '[git]kde:klettres' + self.shortDescription = 'learn the alphabet' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/libkdeedu'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kmplot/kmplot-20110621.py b/portage/kde/kdeedu/kmplot/kmplot-20110621.py index 6b72a9c44..ccfbc0b5f 100644 --- a/portage/kde/kdeedu/kmplot/kmplot-20110621.py +++ b/portage/kde/kdeedu/kmplot/kmplot-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kmplot|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kmplot' + self.shortDescription = 'mathematical function plotter' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kstars/kstars-20110621.py b/portage/kde/kdeedu/kstars/kstars-20110621.py index c06415e19..b1f8f5103 100644 --- a/portage/kde/kdeedu/kstars/kstars-20110621.py +++ b/portage/kde/kdeedu/kstars/kstars-20110621.py @@ -1,29 +1,23 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kstars|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kstars' + self.shortDescription = 'a desktop planetarium' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.buildDependencies['win32libs-bin/cfitsio'] = 'default' self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['win32libs-bin/libnova'] = 'default' self.dependencies['kdesupport/eigen2'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/ktouch/ktouch-20110621.py b/portage/kde/kdeedu/ktouch/ktouch-20110621.py index 9e9df0413..460f1b726 100644 --- a/portage/kde/kdeedu/ktouch/ktouch-20110621.py +++ b/portage/kde/kdeedu/ktouch/ktouch-20110621.py @@ -1,25 +1,19 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:ktouch|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:ktouch' + self.shortDescription = 'touch typing tutor' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kturtle/kturtle-20110621.py b/portage/kde/kdeedu/kturtle/kturtle-20110621.py index de2c91097..622d54fef 100644 --- a/portage/kde/kdeedu/kturtle/kturtle-20110621.py +++ b/portage/kde/kdeedu/kturtle/kturtle-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kturtle|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kturtle' + self.shortDescription = 'educational programming environment' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/kwordquiz/kwordquiz-20110621.py b/portage/kde/kdeedu/kwordquiz/kwordquiz-20110621.py index 22025a3df..73e85e300 100644 --- a/portage/kde/kdeedu/kwordquiz/kwordquiz-20110621.py +++ b/portage/kde/kdeedu/kwordquiz/kwordquiz-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kwordquiz|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kwordquiz' + self.shortDescription = 'a flash card trainer' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/libkdeedu'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/libkdeedu/libkdeedu-20110621.py b/portage/kde/kdeedu/libkdeedu/libkdeedu-20110621.py index bf660f11a..50e13796f 100644 --- a/portage/kde/kdeedu/libkdeedu/libkdeedu-20110621.py +++ b/portage/kde/kdeedu/libkdeedu/libkdeedu-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:libkdeedu|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:libkdeedu' + self.shortDescription = 'the educational support libraries' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/marble/marble-20110621.py b/portage/kde/kdeedu/marble/marble-20110621.py index 1fbab604d..8105a77d9 100644 --- a/portage/kde/kdeedu/marble/marble-20110621.py +++ b/portage/kde/kdeedu/marble/marble-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:marble|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:marble' + self.shortDescription = 'the desktop globe' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/parley/parley-20110621.py b/portage/kde/kdeedu/parley/parley-20110621.py index 2b5144bbc..4281d3a30 100644 --- a/portage/kde/kdeedu/parley/parley-20110621.py +++ b/portage/kde/kdeedu/parley/parley-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:parley|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:parley' + self.shortDescription = 'a vocabulary trainer' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/libkdeedu'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/rocs/rocs-20110621.py b/portage/kde/kdeedu/rocs/rocs-20110621.py index 7bf5a1e39..682b5a01d 100644 --- a/portage/kde/kdeedu/rocs/rocs-20110621.py +++ b/portage/kde/kdeedu/rocs/rocs-20110621.py @@ -1,26 +1,20 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:rocs|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:rocs' + self.shortDescription = 'rocs graph theory' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeedu/step/step-20110621.py b/portage/kde/kdeedu/step/step-20110621.py index b8ff8af28..4adf75813 100644 --- a/portage/kde/kdeedu/step/step-20110621.py +++ b/portage/kde/kdeedu/step/step-20110621.py @@ -1,27 +1,21 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:step|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:step' + self.shortDescription = 'an interactive physical simulator' self.defaultTarget = 'gitHEAD' - def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['kdesupport/eigen2'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegames/kdegames-20080202.py b/portage/kde/kdegames/kdegames-20080202.py index 61db6398d..9075ffbe8 100644 --- a/portage/kde/kdegames/kdegames-20080202.py +++ b/portage/kde/kdegames/kdegames-20080202.py @@ -1,21 +1,21 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['svnHEAD'] = 'trunk/KDE/kdegames' self.defaultTarget = 'svnHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['kdesupport/qca'] = 'default' + self.shortDescription = "KDE games applications" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/gwenview/gwenview-20110627.py b/portage/kde/kdegraphics/gwenview/gwenview-20110627.py index 6bd384561..11edfb6e2 100644 --- a/portage/kde/kdegraphics/gwenview/gwenview-20110627.py +++ b/portage/kde/kdegraphics/gwenview/gwenview-20110627.py @@ -1,31 +1,25 @@ - -import os -import sys import info class subinfo(info.infoclass): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:gwenview|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:gwenview' + self.shortDescription = "Image viewer for KDE" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kde/kde-baseapps'] = 'default' self.dependencies['kde/libkipi'] = 'default' self.dependencies['win32libs-bin/exiv2'] = 'default' self.dependencies['win32libs-bin/jpeg'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/kamera/kamera-20110627.py b/portage/kde/kdegraphics/kamera/kamera-20110627.py index 60ac5897c..0347d10c5 100644 --- a/portage/kde/kdegraphics/kamera/kamera-20110627.py +++ b/portage/kde/kdegraphics/kamera/kamera-20110627.py @@ -1,23 +1,21 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kamera|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kamera' + self.shortDescription = "KDE integration for gphoto2 cameras" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - + self.runtimeDependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/kcolorchooser/kcolorchooser-20110627.py b/portage/kde/kdegraphics/kcolorchooser/kcolorchooser-20110627.py index a8d782255..04c013711 100644 --- a/portage/kde/kdegraphics/kcolorchooser/kcolorchooser-20110627.py +++ b/portage/kde/kdegraphics/kcolorchooser/kcolorchooser-20110627.py @@ -1,23 +1,21 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kcolorchooser|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kcolorchooser' + self.shortDescription = "A small utility to select a color" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - + self.runtimeDependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/kdegraphics-package.xml b/portage/kde/kdegraphics/kdegraphics-package.xml deleted file mode 100644 index b5f1ff6fe..000000000 --- a/portage/kde/kdegraphics/kdegraphics-package.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - the kdegraphics support libraries - - - - - - - - - - - - - kdebase-runtime - kdelibs - poppler - ebook-tools - libspectre - exiv2 - - - a simple color choosing tool - - - - - libkdegraphics - - - a simple screen ruler - - - - - libkdegraphics - - - a simple paint application - - - - - - libkdegraphics - - - KDE's image viewer for jpg, png and more - Gwenview is KDE's picture viewer - - - - - - - - - libkdegraphics - - - KDE's document viewer for PDF and more - Okular is KDE's document viewer and supports besides PDF also PostScript(.ps,.eps), Oasis-Documents(.odt), DejaVu (.djvu), Compressed Windows Help (.chm), ebooks (.epub) - - - - - - - - - - - libkdegraphics - - - Graphics applications (including Okular) - - - - - - okular - gwenview - kolourpaint - kcolorchooser - kruler - - - diff --git a/portage/kde/kdegraphics/kdegraphics-strigi-analyzer/kdegraphics-strigi-analyzer-20110627.py b/portage/kde/kdegraphics/kdegraphics-strigi-analyzer/kdegraphics-strigi-analyzer-20110627.py index e4292edf2..9ecf2d38a 100644 --- a/portage/kde/kdegraphics/kdegraphics-strigi-analyzer/kdegraphics-strigi-analyzer-20110627.py +++ b/portage/kde/kdegraphics/kdegraphics-strigi-analyzer/kdegraphics-strigi-analyzer-20110627.py @@ -1,26 +1,22 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kdegraphics-strigi-analyzer|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kdegraphics-strigi-analyzer' + self.shortDescription = "Strigi analyzers for various graphics file formats" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['win32libs-bin/tiff'] = 'default' self.dependencies['kdesupport/strigi'] = 'default' - - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/kdegraphics-thumbnailers/kdegraphics-thumbnailers-20110627.py b/portage/kde/kdegraphics/kdegraphics-thumbnailers/kdegraphics-thumbnailers-20110627.py index 6d349b7fc..918f23185 100644 --- a/portage/kde/kdegraphics/kdegraphics-thumbnailers/kdegraphics-thumbnailers-20110627.py +++ b/portage/kde/kdegraphics/kdegraphics-thumbnailers/kdegraphics-thumbnailers-20110627.py @@ -1,23 +1,20 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kdegraphics-thumbnailers|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kdegraphics-thumbnailers' + self.shortDescription = "Thumbnailers for various graphics file formats" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/kolourpaint/kolourpaint-20110627.py b/portage/kde/kdegraphics/kolourpaint/kolourpaint-20110627.py index fd75e266c..d0086ecb8 100644 --- a/portage/kde/kdegraphics/kolourpaint/kolourpaint-20110627.py +++ b/portage/kde/kdegraphics/kolourpaint/kolourpaint-20110627.py @@ -1,24 +1,22 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kolourpaint|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kolourpaint' + self.shortDescription = "KolourPaint is an easy-to-use paint program" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kdesupport/qimageblitz'] = 'default' - + self.runtimeDependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/kruler/kruler-20110627.py b/portage/kde/kdegraphics/kruler/kruler-20110627.py index 6886cd1cf..c013c9d9e 100644 --- a/portage/kde/kdegraphics/kruler/kruler-20110627.py +++ b/portage/kde/kdegraphics/kruler/kruler-20110627.py @@ -1,23 +1,21 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:kruler|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:kruler' + self.shortDescription = "A pixel measuring tool for KDE" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - + self.runtimeDependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksaneplugin/ksaneplugin-20110627.py b/portage/kde/kdegraphics/ksaneplugin/ksaneplugin-20110627.py index 8165561b0..bc9bea324 100644 --- a/portage/kde/kdegraphics/ksaneplugin/ksaneplugin-20110627.py +++ b/portage/kde/kdegraphics/ksaneplugin/ksaneplugin-20110627.py @@ -1,23 +1,21 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:ksaneplugin|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:ksaneplugin' + self.shortDescription = "This is a KScan plugin that implements the scanning through libksane" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kde/libksane'] = 'default' from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py index 770620e3c..be8c0b727 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py @@ -1,22 +1,22 @@ import info class subinfo( info.infoclass ): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.shortDescription = "A handy utility primarily designed for taking screenshots" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' self.dependencies['kde/libkipi'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/libkdcraw/libkdcraw-20110627.py b/portage/kde/kdegraphics/libkdcraw/libkdcraw-20110627.py index 6b86d8abd..bca30f663 100644 --- a/portage/kde/kdegraphics/libkdcraw/libkdcraw-20110627.py +++ b/portage/kde/kdegraphics/libkdcraw/libkdcraw-20110627.py @@ -1,23 +1,20 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:libkdcraw|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:libkdcraw' + self.shortDescription = "libkdcraw is a C++ interface around LibRaw library used to decode RAW picture files." self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/libkexiv2/libkexiv2-20110627.py b/portage/kde/kdegraphics/libkexiv2/libkexiv2-20110627.py index ef54350c6..29ffe9018 100644 --- a/portage/kde/kdegraphics/libkexiv2/libkexiv2-20110627.py +++ b/portage/kde/kdegraphics/libkexiv2/libkexiv2-20110627.py @@ -1,24 +1,21 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:libkexiv2|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:libkexiv2' + self.shortDescription = "Libkexiv2 is a wrapper around Exiv2 library to manipulate pictures metadata as EXIF IPTC and XMP." self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['win32libs-bin/exiv2'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/libkipi/libkipi-20110627.py b/portage/kde/kdegraphics/libkipi/libkipi-20110627.py index 733b59a61..6d5f1fbe7 100644 --- a/portage/kde/kdegraphics/libkipi/libkipi-20110627.py +++ b/portage/kde/kdegraphics/libkipi/libkipi-20110627.py @@ -1,23 +1,20 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:libkipi|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:libkipi' + self.shortDescription = "Libkipi is an interface to use kipi-plugins from a KDE image management program like digiKam." self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/libksane/libksane-20110627.py b/portage/kde/kdegraphics/libksane/libksane-20110627.py index 3c652883e..2e8f820ec 100644 --- a/portage/kde/kdegraphics/libksane/libksane-20110627.py +++ b/portage/kde/kdegraphics/libksane/libksane-20110627.py @@ -1,23 +1,20 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:libksane|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:libksane' + self.shortDescription = "libksane is an image scanning library that provides a QWidget that contains all the logic needed to interface a sacanner." self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/mobipocket/mobipocket-20110627.py b/portage/kde/kdegraphics/mobipocket/mobipocket-20110627.py index 1785deeaa..6c8665bda 100644 --- a/portage/kde/kdegraphics/mobipocket/mobipocket-20110627.py +++ b/portage/kde/kdegraphics/mobipocket/mobipocket-20110627.py @@ -1,25 +1,22 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:mobipocket|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:mobipocket' + self.shortDescription = "A collection of plugins to handle mobipocket files" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kde/okular'] = 'default' self.dependencies['kdesupport/strigi'] = 'default' - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/okular/okular-20110627.py b/portage/kde/kdegraphics/okular/okular-20110627.py index 36e41c2cd..67ec3a199 100644 --- a/portage/kde/kdegraphics/okular/okular-20110627.py +++ b/portage/kde/kdegraphics/okular/okular-20110627.py @@ -1,32 +1,30 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:okular|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:okular' + self.shortDescription = "KDE document viewer" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.buildDependencies['win32libs-bin/chm'] = 'default' self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kdesupport/qca'] = 'default' self.dependencies['kdesupport/poppler'] = 'default' self.dependencies['kdesupport/qimageblitz'] = 'default' self.dependencies['win32libs-bin/tiff'] = 'default' self.dependencies['win32libs-bin/djvu'] = 'default' self.dependencies['win32libs-bin/zlib'] = 'default' self.dependencies['win32libs-bin/freetype'] = 'default' self.dependencies['win32libs-bin/libspectre'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/svgpart/svgpart-20110627.py b/portage/kde/kdegraphics/svgpart/svgpart-20110627.py index 9b75d22c2..dbd998679 100644 --- a/portage/kde/kdegraphics/svgpart/svgpart-20110627.py +++ b/portage/kde/kdegraphics/svgpart/svgpart-20110627.py @@ -1,23 +1,17 @@ import info class subinfo( info.infoclass ): def setTargets( self ): - for ver in ['4.6']: - self.svnTargets[ ver ] = '[git]kde:svgpart|%s|' % ver - self.svnTargets['gitHEAD'] = '[git]kde:svgpart' + self.shortDescription = "A svg kpart" self.defaultTarget = 'gitHEAD' - def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' - - from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdelibs/kdelibs-20110130.py b/portage/kde/kdelibs/kdelibs-20110130.py index 8c50b71e2..667113cdd 100644 --- a/portage/kde/kdelibs/kdelibs-20110130.py +++ b/portage/kde/kdelibs/kdelibs-20110130.py @@ -1,38 +1,36 @@ -# -*- coding: utf-8 -*- import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kdelibs|frameworks|' self.shortDescription = "The KDE Library" self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' self.buildDependencies['dev-util/perl'] = 'default' self.buildDependencies['kdesupport/extra-cmake-modules'] = 'default' self.dependencies['kdesupport/kdewin'] = 'default' self.dependencies['kdesupport/phonon'] = 'default' self.dependencies['kdesupport/attica'] = 'default' self.dependencies['kdesupport/dbusmenu-qt'] = 'default' self.dependencies['kdesupport/qca'] = 'default' self.dependencies['kdesupport/qimageblitz'] = 'default' self.dependencies['kdesupport/soprano'] = 'default' self.dependencies['kdesupport/strigi'] = 'default' self.dependencies['virtual/kdelibs-base'] = 'default' self.dependencies['data/docbook-dtd'] = 'default' self.dependencies['data/docbook-xsl'] = 'default' self.dependencies['data/shared-desktop-ontologies'] = 'default' self.runtimeDependencies['kdesupport/phonon-vlc'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdemultimedia/kdemultimedia-20080202.py b/portage/kde/kdemultimedia/kdemultimedia-20080202.py index e7089d4a4..0f388c62d 100644 --- a/portage/kde/kdemultimedia/kdemultimedia-20080202.py +++ b/portage/kde/kdemultimedia/kdemultimedia-20080202.py @@ -1,23 +1,24 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['svnHEAD'] = 'trunk/KDE/kdemultimedia' + self.shortDescription = "KDE multimedia applications (jux, kmix, kmixctrl, kscd)" self.defaultTarget = 'svnHEAD' def setDependencies( self ): + self.runtimeDependencies['kde/kde-runtime'] = 'default' self.dependencies['kde/kdelibs'] = 'default' self.dependencies['win32libs-bin/taglib'] = 'default' self.dependencies['win32libs-bin/libogg'] = 'default' self.dependencies['win32libs-bin/libvorbis'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdenetwork/kdenetwork-20080202.py b/portage/kde/kdenetwork/kdenetwork-20080202.py index ee0c74bd3..b53a01377 100644 --- a/portage/kde/kdenetwork/kdenetwork-20080202.py +++ b/portage/kde/kdenetwork/kdenetwork-20080202.py @@ -1,26 +1,25 @@ -import compiler import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['svnHEAD'] = 'trunk/KDE/kdenetwork' self.defaultTarget = 'svnHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['kde/kdepimlibs'] = 'default' self.dependencies['kdesupport/qca'] = 'default' self.dependencies['win32libs-bin/libidn'] = 'default' self.dependencies['win32libs-bin/libmsn'] = 'default' self.dependencies['win32libs-bin/mpir'] = 'default' + self.shortDescription = "KDE Networking applications (Kopete, KGet)" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdepim-runtime/kdepim-runtime-20101222.py b/portage/kde/kdepim-runtime/kdepim-runtime-20101222.py index 6bb36bd23..e99252856 100644 --- a/portage/kde/kdepim-runtime/kdepim-runtime-20101222.py +++ b/portage/kde/kdepim-runtime/kdepim-runtime-20101222.py @@ -1,67 +1,33 @@ import info class subinfo( info.infoclass ): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kdepim-runtime' self.defaultTarget = 'gitHEAD' def setDependencies( self ): - if not emergePlatform.isCrossCompilingEnabled(): - self.dependencies['kde/kde-runtime'] = 'default' - else: - self.dependencies['kdesupport/oxygen-icons'] = 'default' + self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['kde/kdepimlibs'] = 'default' - if not emergePlatform.isCrossCompilingEnabled(): - self.dependencies['kdesupport/grantlee'] = 'default' + self.dependencies['kdesupport/grantlee'] = 'default' self.dependencies['win32libs-bin/sqlite'] = 'default' - - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = True + self.shortDescription = "Extends the functionality of kdepim" from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) self.subinfo.options.configure.defines = "-DKLEO_SYNCHRONOUS_API_HOTFIX=ON " - if emergePlatform.isCrossCompilingEnabled(): - self.subinfo.options.configure.defines += "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE " - self.subinfo.options.configure.defines += " -DKDEPIM_MOBILE_UI=TRUE " - self.subinfo.options.configure.defines += " -DBUILD_mobile=ON -DBUILD_messagecomposer=ON -DBUILD_runtime=ON -DBUILD_strigi-analyzer=ON " - self.subinfo.options.configure.defines += " -DMESSAGEVIEWER_NO_WEBKIT=ON " - self.subinfo.options.configure.defines += " -DTEMPLATEPARSER_NO_WEBKIT=ON " - #self.subinfo.options.configure.defines += " -DIMAPRESOURCE_NO_SOLID=ON " - self.subinfo.options.configure.defines += " -DRUNTIME_PLUGINS_STATIC=ON " - self.subinfo.options.configure.defines += " -DKDEQMLPLUGIN_STATIC=ON " - self.subinfo.options.configure.defines += " -DACCOUNTWIZARD_NO_GHNS=ON " - self.subinfo.options.configure.defines += " -DBUILD_kmail=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_NO_NEPOMUK=ON " - self.subinfo.options.configure.defines += " -DKDE4_BUILD_TESTS=OFF " - self.subinfo.options.configure.defines += " -DBUILD_kleopatra=ON " - self.subinfo.options.configure.defines += " -DBUILD_korganizer=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_ENTERPRISE_BUILD=ON " - self.subinfo.options.configure.defines += " -DKORGAC_AKONADI_AGENT=ON " - self.subinfo.options.configure.defines += " -DBUILD_NEW_MAIL_NOTIFIER_AGENT=ON " - self.subinfo.options.configure.defines += " -DAKONADI_USE_STRIGI_SEARCH=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_INPROCESS_LDAP=ON " - else: - self.subinfo.options.configure.defines += " -DKDEPIM_BUILD_MOBILE=FALSE " - self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " - - self.subinfo.options.configure.defines += "-DHOST_BINDIR=%s " \ - % os.path.join(ROOTDIR, "bin") - def install( self ): if not CMakePackageBase.install( self ): return False if compiler.isMinGW(): manifest = os.path.join( self.packageDir(), "akonadi_maildispatcher_agent.exe.manifest" ) executable = os.path.join( self.installDir(), "bin", "akonadi_maildispatcher_agent.exe" ) utils.embedManifest( executable, manifest ) return True if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdepim/kdepim-20080202.py b/portage/kde/kdepim/kdepim-20080202.py index 3c6721227..4b3676b8d 100644 --- a/portage/kde/kdepim/kdepim-20080202.py +++ b/portage/kde/kdepim/kdepim-20080202.py @@ -1,96 +1,24 @@ import info class subinfo( info.infoclass ): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kdepim' self.defaultTarget = 'gitHEAD' - self.patchToApply['gitHEAD'] = [('disable-crypto-backend.patch', 1)] - def setDependencies( self ): - if not emergePlatform.isCrossCompilingEnabled(): - self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.runtimeDependencies['kde/kdepim-runtime'] = 'default' - else: - self.dependencies['kdesupport/oxygen-icons'] = 'default' + self.runtimeDependencies['kde/kde-runtime'] = 'default' + self.runtimeDependencies['kde/kdepim-runtime'] = 'default' self.dependencies['kde/kdepimlibs'] = 'default' - if not emergePlatform.isCrossCompilingEnabled(): - self.dependencies['kdesupport/grantlee'] = 'default' + self.dependencies['kdesupport/grantlee'] = 'default' self.dependencies['win32libs-bin/sqlite'] = 'default' - - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = False + self.shortDescription = "KDE's Personal Information Management suite" from Package.CMakePackageBase import * class Package( CMakePackageBase ): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - # save and then overwrite our checkoutDir function - self.baseCheckoutDir = self.source.checkoutDir - self.source.checkoutDir = self.checkoutDir - - self.subDir = False - - self.subinfo.options.configure.defines = "-DKLEO_SYNCHRONOUS_API_HOTFIX=ON " - - if emergePlatform.isCrossCompilingEnabled(): - self.subinfo.options.configure.defines += "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE " - self.subinfo.options.configure.defines += " -DKDEPIM_MOBILE_UI=TRUE " - self.subinfo.options.configure.defines += " -DBUILD_mobile=ON -DBUILD_messagecomposer=ON -DBUILD_runtime=ON -DBUILD_strigi-analyzer=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_NO_WEBKIT=ON " - #self.subinfo.options.configure.defines += " -DIMAPRESOURCE_NO_SOLID=ON " - self.subinfo.options.configure.defines += " -DRUNTIME_PLUGINS_STATIC=ON " - self.subinfo.options.configure.defines += " -DKDEQMLPLUGIN_STATIC=ON " - self.subinfo.options.configure.defines += " -DACCOUNTWIZARD_NO_GHNS=ON " - self.subinfo.options.configure.defines += " -DBUILD_kmail=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_NO_NEPOMUK=ON " - self.subinfo.options.configure.defines += " -DKDE4_BUILD_TESTS=OFF " - self.subinfo.options.configure.defines += " -DBUILD_kleopatra=ON " - self.subinfo.options.configure.defines += " -DBUILD_korganizer=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_ENTERPRISE_BUILD=ON " - self.subinfo.options.configure.defines += " -DKORGAC_AKONADI_AGENT=ON " - self.subinfo.options.configure.defines += " -DBUILD_NEW_MAIL_NOTIFIER_AGENT=ON " - self.subinfo.options.configure.defines += " -DKDEPIM_INPROCESS_LDAP=ON " - self.subinfo.options.configure.defines += " -DKLEO_STATIC_KCMODULES=ON " - - self.subinfo.options.configure.defines += " -DKDEPIM_BUILD_MOBILE=TRUE " - self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " - - self.subinfo.options.configure.defines += "-DHOST_BINDIR=%s " \ - % os.path.join(ROOTDIR, "bin") - - - def checkoutDir( self, index=0 ): - if self.subDir: - # checkout into subdirectory "runtime" - return os.path.join( self.baseCheckoutDir( index ), "runtime" ) - return self.baseCheckoutDir( index ) - - def fetch( self ): - ret = CMakePackageBase.fetch( self ) - if ret and emergePlatform.isCrossCompilingEnabled(): - self.subDir = True - ret = CMakePackageBase.fetch( self, "[git]kde:kdepim-runtime" ) - return ret - - def qmerge( self ): - ret = CMakePackageBase.qmerge(self) - if self.isTargetBuild(): - mime_update = os.path.join(ROOTDIR, "bin", - "update-mime-database.exe") - if os.path.isfile(mime_update): - target_mimedb = os.path.join(ROOTDIR, self.buildPlatform(), - "share", "mime") - utils.debug("calling update-mime-database: on %s " %\ - target_mimedb, 1) - cmd = "%s %s" % (mime_update, target_mimedb) - return utils.system(cmd) - return ret - - if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdepimlibs/kdepimlibs-20080202.py b/portage/kde/kdepimlibs/kdepimlibs-20080202.py deleted file mode 100644 index 2cc59f3d2..000000000 --- a/portage/kde/kdepimlibs/kdepimlibs-20080202.py +++ /dev/null @@ -1,45 +0,0 @@ -import info - -class subinfo(info.infoclass): - def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:kdepimlibs' - for ver in ['80', '83', '85']: - self.targets['4.0.' + ver] = 'ftp://ftp.kde.org/pub/kde/unstable/4.0.' + ver + '/src/kdepimlibs-4.0.' + ver + '.tar.bz2' - self.targetInstSrc['4.0.' + ver] = 'kdepimlibs-4.0.' + ver - self.defaultTarget = 'gitHEAD' - - def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' - self.dependencies['kdesupport/akonadi'] = 'default' - self.dependencies['win32libs-bin/cyrus-sasl'] = 'default' - self.dependencies['win32libs-bin/libical'] = 'default' - self.dependencies['win32libs-bin/boost'] = 'default' - if not emergePlatform.isCrossCompilingEnabled(): - self.dependencies['win32libs-bin/gpgme'] = 'default' - else: - self.dependencies['contributed/gpg4win-dev'] = 'default' - - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = False - -from Package.CMakePackageBase import * - -class Package(CMakePackageBase): - def __init__( self ): - self.subinfo = subinfo() - CMakePackageBase.__init__( self ) - self.boost = portage.getPackageInstance('win32libs-bin','boost') - path = self.boost.installDir() - os.putenv( "BOOST_ROOT", path ) - - self.subinfo.options.configure.defines = "-DHOST_BINDIR=%s " \ - % os.path.join(ROOTDIR, "bin") - - if emergePlatform.isCrossCompilingEnabled(): - if self.isTargetBuild(): - self.subinfo.options.configure.defines += "-DKDEPIM_NO_KRESOURCES=ON -DMAILTRANSPORT_INPROCESS_SMTP=ON " - self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " - -if __name__ == '__main__': - Package().execute() diff --git a/portage/kde/kdepimlibs/kdepimlibs-20110129.py b/portage/kde/kdepimlibs/kdepimlibs-20110129.py index 59138010f..a6921cb8d 100644 --- a/portage/kde/kdepimlibs/kdepimlibs-20110129.py +++ b/portage/kde/kdepimlibs/kdepimlibs-20110129.py @@ -1,46 +1,29 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kdepimlibs' - for ver in ['80', '83', '85']: - self.targets['4.0.' + ver] = 'ftp://ftp.kde.org/pub/kde/unstable/4.0.' + ver + '/src/kdepimlibs-4.0.' + ver + '.tar.bz2' - self.targetInstSrc['4.0.' + ver] = 'kdepimlibs-4.0.' + ver self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kdelibs'] = 'default' self.dependencies['kdesupport/akonadi'] = 'default' self.dependencies['win32libs-bin/cyrus-sasl'] = 'default' self.dependencies['win32libs-bin/libical'] = 'default' self.dependencies['win32libs-bin/boost'] = 'default' + self.dependencies['win32libs-bin/gpgme'] = 'default' self.dependencies['win32libs-bin/openldap'] = 'default' - if not emergePlatform.isCrossCompilingEnabled(): - self.dependencies['win32libs-bin/gpgme'] = 'default' - else: - self.dependencies['contributed/gpg4win-dev'] = 'default' - - def setBuildOptions( self ): - self.disableHostBuild = True - self.disableTargetBuild = False + self.shortDescription = "the base libraries for PIM related services" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) self.boost = portage.getPackageInstance('win32libs-bin','boost') path = self.boost.installDir() os.putenv( "BOOST_ROOT", path ) - self.subinfo.options.configure.defines = "-DHOST_BINDIR=%s " \ - % os.path.join(ROOTDIR, "bin") - - if emergePlatform.isCrossCompilingEnabled(): - if self.isTargetBuild(): - self.subinfo.options.configure.defines += "-DKDEPIM_NO_KRESOURCES=ON -DMAILTRANSPORT_INPROCESS_SMTP=ON " - self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " - if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeplasma-addons/kdeplasma-addons-20080717.py b/portage/kde/kdeplasma-addons/kdeplasma-addons-20080717.py index 8bff2a3fe..18d3eb4d7 100644 --- a/portage/kde/kdeplasma-addons/kdeplasma-addons-20080717.py +++ b/portage/kde/kdeplasma-addons/kdeplasma-addons-20080717.py @@ -1,21 +1,21 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['gitHEAD'] = '[git]kde:kdeplasma-addons' self.defaultTarget = 'gitHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' self.dependencies['kde/kde-workspace'] = 'default' + self.shortDescription = "All kind of addons to improve your Plasma experience" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdesdk/kdesdk-20080202.py b/portage/kde/kdesdk/kdesdk-20080202.py index 670df52ca..5aaa9741a 100644 --- a/portage/kde/kdesdk/kdesdk-20080202.py +++ b/portage/kde/kdesdk/kdesdk-20080202.py @@ -1,38 +1,22 @@ -# -*- coding: iso-8859-15 -*- import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['svnHEAD'] = 'trunk/KDE/kdesdk' self.defaultTarget = 'svnHEAD' def setDependencies( self ): self.dependencies['kde/kde-baseapps'] = 'default' self.dependencies['win32libs-bin/boost'] = 'default' self.dependencies['dev-util/zip'] = 'default' + self.shortDescription = "KDE software development package (umbrello, okteta)" from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kate=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kapptemplate=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kbugbuster=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kcachegrind=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kdeaccounts-plugin=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kdepalettes=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_strigi-analyzer=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kioslave=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kmtrace=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kprofilemethod=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kuiviewer=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_poxml=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_scripts=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_umbrello=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdetoys/kdetoys-20080202.py b/portage/kde/kdetoys/kdetoys-20080202.py index 43734c283..a41a7664e 100644 --- a/portage/kde/kdetoys/kdetoys-20080202.py +++ b/portage/kde/kdetoys/kdetoys-20080202.py @@ -1,20 +1,20 @@ import info class subinfo(info.infoclass): def setTargets( self ): self.svnTargets['svnHEAD'] = 'trunk/KDE/kdetoys' + self.shortDescription = 'some toy apps & games' self.defaultTarget = 'svnHEAD' def setDependencies( self ): self.dependencies['kde/kde-runtime'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/ark/ark-20120112.py similarity index 58% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/ark/ark-20120112.py index 770620e3c..be0c71379 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/ark/ark-20120112.py @@ -1,22 +1,23 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:ark' + self.shortDescription = "KDE's file archiver" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' + self.dependencies['win32libs-bin/libzip'] = 'default' + self.dependencies['win32libs-bin/libarchive'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/filelight/filelight-20120112.py similarity index 67% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/filelight/filelight-20120112.py index 770620e3c..020db7c77 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/filelight/filelight-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:filelight' + self.shortDescription = "a graphical representation of your file system" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kcalc/kcalc-20120112.py similarity index 70% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kcalc/kcalc-20120112.py index 770620e3c..a66bcf874 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kcalc/kcalc-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kcalc' + self.shortDescription = "KDE's calculator" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kcharselect/kcharselect-20120112.py similarity index 65% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kcharselect/kcharselect-20120112.py index 770620e3c..fa080e409 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kcharselect/kcharselect-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kcharselect' + self.shortDescription = "a tool to select special characters from all installed fonts" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdeutils/kdeutils-20080202.py b/portage/kde/kdeutils/kdeutils-20080202.py deleted file mode 100644 index 8258eb413..000000000 --- a/portage/kde/kdeutils/kdeutils-20080202.py +++ /dev/null @@ -1,27 +0,0 @@ -import info -import compiler - -class subinfo(info.infoclass): - def setTargets( self ): - self.svnTargets['svnHEAD'] = 'trunk/KDE/kdeutils' - self.defaultTarget = 'svnHEAD' - - def setDependencies( self ): - self.dependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/kdepimlibs'] = 'default' - self.dependencies['win32libs-bin/mpir'] = 'default' - self.dependencies['win32libs-bin/libzip'] = 'default' - self.dependencies['win32libs-bin/libarchive'] = 'default' - -from Package.CMakePackageBase import * - -class Package(CMakePackageBase): - def __init__( self ): - self.subinfo = subinfo() - CMakePackageBase.__init__( self ) - self.subinfo.options.configure.defines = "-DBUILD_doc=OFF " - # self.subinfo.options.configure.defines += "-DBUILD_kwallet=OFF " - -if __name__ == '__main__': - Package().execute() - diff --git a/portage/kde/kdeutils/kdeutils-20120112.py b/portage/kde/kdeutils/kdeutils-20120112.py new file mode 100644 index 000000000..a31b1df5e --- /dev/null +++ b/portage/kde/kdeutils/kdeutils-20120112.py @@ -0,0 +1,34 @@ +import info + + +class subinfo(info.infoclass): + def setTargets( self ): + self.svnTargets['gitHEAD'] = '' + self.defaultTarget = 'gitHEAD' + + def setDependencies( self ): + self.dependencies['ark'] = 'default' + self.dependencies['filelight'] = 'default' + self.dependencies['kcalc'] = 'default' + self.dependencies['kcharselect'] = 'default' + self.dependencies['kdiskfree'] = 'default' + self.dependencies['kfloppy'] = 'default' + self.dependencies['kgpg'] = 'default' + self.dependencies['kremotecontrol'] = 'default' + self.dependencies['ksecretsservice'] = 'default' + self.dependencies['ktimer'] = 'default' + self.dependencies['kwallet'] = 'default' + self.dependencies['printer-applet'] = 'default' + self.dependencies['superkaramba'] = 'default' + self.dependencies['sweeper'] = 'default' + +from Package.VirtualPackageBase import * + +class Package( VirtualPackageBase ): + def __init__( self ): + self.subinfo = subinfo() + VirtualPackageBase.__init__( self ) + + +if __name__ == '__main__': + Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kdiskfree/kdiskfree-20120112.py similarity index 66% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kdiskfree/kdiskfree-20120112.py index 770620e3c..53b99d136 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kdiskfree/kdiskfree-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kdiskfree' + self.shortDescription = "displays the available file devices along with information" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kfloppy/kfloppy-20120112.py similarity index 69% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kfloppy/kfloppy-20120112.py index 770620e3c..c15fd26f8 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kfloppy/kfloppy-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kfloppy' + self.shortDescription = "a utility to format floppy disks" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kgpg/kgpg-20120112.py similarity index 70% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kgpg/kgpg-20120112.py index 770620e3c..9142a8783 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kgpg/kgpg-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kgpg' + self.shortDescription = "a simple interface for GnuPG" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kremotecontrol/kremotecontrol-20120112.py similarity index 67% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kremotecontrol/kremotecontrol-20120112.py index 770620e3c..a9f833639 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kremotecontrol/kremotecontrol-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kremotecontrol' + self.shortDescription = "a KDE frontend for your remote controls" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/ksecretsservice/ksecretsservice-20120112.py similarity index 68% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/ksecretsservice/ksecretsservice-20120112.py index 770620e3c..75f460335 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/ksecretsservice/ksecretsservice-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:gwenview' + self.shortDescription = "secrets management infrastructure for KDE" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/ktimer/ktimer-20120112.py similarity index 67% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/ktimer/ktimer-20120112.py index 770620e3c..8cba4b493 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/ktimer/ktimer-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:ktimer' + self.shortDescription = "a little tool to execute programs after some time" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/kwallet/kwallet-20120112.py similarity index 70% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/kwallet/kwallet-20120112.py index 770620e3c..877db906b 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/kwallet/kwallet-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:kwallet' + self.shortDescription = "KDE Wallet Manager" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/printer-applet/printer-applet-20120112.py similarity index 65% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/printer-applet/printer-applet-20120112.py index 770620e3c..4652c702b 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/printer-applet/printer-applet-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:printer-applet' + self.shortDescription = "Printer Applet shows current print jobs, warnings & errors" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/superkaramba/superkaramba-20120112.py similarity index 66% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/superkaramba/superkaramba-20120112.py index 770620e3c..5441f3b06 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/superkaramba/superkaramba-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:superkaramba' + self.shortDescription = "a tool to create interactive widgets on your KDE desktop" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py b/portage/kde/kdeutils/sweeper/sweeper-20120112.py similarity index 69% copy from portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py copy to portage/kde/kdeutils/sweeper/sweeper-20120112.py index 770620e3c..08b4578ed 100644 --- a/portage/kde/kdegraphics/ksnapshot/ksnapshot-20110627.py +++ b/portage/kde/kdeutils/sweeper/sweeper-20120112.py @@ -1,22 +1,21 @@ import info -class subinfo( info.infoclass ): +class subinfo(info.infoclass): def setTargets( self ): - self.svnTargets['gitHEAD'] = '[git]kde:ksnapshot' + self.svnTargets['gitHEAD'] = '[git]kde:sweeper' + self.shortDescription = "a tool to clean unwanted traces" self.defaultTarget = 'gitHEAD' def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' self.runtimeDependencies['kde/kde-runtime'] = 'default' - self.dependencies['kde/libkipi'] = 'default' - + self.dependencies['kde/kdelibs'] = 'default' from Package.CMakePackageBase import * -class Package( CMakePackageBase ): +class Package(CMakePackageBase): def __init__( self ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/kde/kdewebdev/kdewebdev-20080202.py b/portage/kde/kdewebdev/kdewebdev-20080202.py deleted file mode 100644 index 66bc73818..000000000 --- a/portage/kde/kdewebdev/kdewebdev-20080202.py +++ /dev/null @@ -1,27 +0,0 @@ -import info - -class subinfo(info.infoclass): - def setTargets( self ): - self.svnTargets['svnHEAD'] = 'trunk/KDE/kdewebdev' - self.defaultTarget = 'svnHEAD' - - def setDependencies( self ): - self.dependencies['kde/kdelibs'] = 'default' - self.dependencies['kde/kdepimlibs'] = 'default' - self.dependencies['kde/kde-runtime'] = 'default' - self.softDependencies['kde/kdevplatform'] = 'default' - -from Package.CMakePackageBase import * - -class Package(CMakePackageBase): - def __init__( self ): - self.subinfo = subinfo() - CMakePackageBase.__init__( self ) - # if you want to build quanta, you need to build kdevplatform as well - this is not build by default!!! - self.subinfo.options.configure.defines = "" - self.subinfo.options.configure.defines += "-DBUILD_kfilereplace=OFF " - self.subinfo.options.configure.defines += "-DBUILD_kxsldbg=OFF " - self.subinfo.options.configure.defines += "-DBUILD_kommander=OFF " - -if __name__ == '__main__': - Package().execute() diff --git a/portage/kde/kdewebdev/post-install-bin.cmd b/portage/kde/kdewebdev/post-install-bin.cmd deleted file mode 100644 index ceef18b8b..000000000 --- a/portage/kde/kdewebdev/post-install-bin.cmd +++ /dev/null @@ -1,33 +0,0 @@ -@echo off - -echo ******************************************************************************* -echo package: %0 -echo ******************************************************************************* - -set quitnow=False -::for %%i in ( kioslave.exe kded4.exe ) DO ( -:: tasklist /NH /FI "IMAGENAME eq %%i" | find "%%i" > "Nul" && ( -:: echo error: found %%i running. please kill this process! -:: set quitnow=True -:: ) -::) - -if %quitnow% equ True ( - echo error: one or more programs are running that shouldn't run. - echo please close them before restarting this script - goto :eof -) - -if not `"bin\update-mime-database.exe --help"` equ "" ( - bin\update-mime-database "%CD%\share\mime" -) else ( - echo error: update-mime-database wasn't found. - echo please check for correct installation -) - -if not `"bin\kbuildsycoca4.exe --help"` equ "" ( - bin\kbuildsycoca4 --noincremental -) else ( - echo error: kbuildsycoca4 wasn't found. - echo please check for correct installation -) \ No newline at end of file diff --git a/portage/testing/vlc/vlc-1.1.11.py b/portage/testing/vlc/vlc-1.1.11.py index 12e94abc4..c21d02094 100644 --- a/portage/testing/vlc/vlc-1.1.11.py +++ b/portage/testing/vlc/vlc-1.1.11.py @@ -1,76 +1,75 @@ from Package.BinaryPackageBase import * import info import shutil import os import re import urllib.request, urllib.error, urllib.parse import compiler _VLC_VER = None class subinfo(info.infoclass): def setTargets( self ): self.vlcArch = "32" - self.vlcTagName = '1.2.0-rc1-' if( emergePlatform.buildArchitecture() == 'x64' ): - self.vlcArch = "64" - self.vlcTagName = '1.3.0-git-%s' % self.getVer() + self.vlcArch = "64" self.vlcBaseUrl = 'http://nightlies.videolan.org/build/win'+self.vlcArch+'/last/' + self.vlcTagName = '1.3.0-git-%s' % self.getVer() self.targets[ self.vlcTagName ] = self.vlcBaseUrl + 'vlc-' + self.vlcTagName + "-win" + self.vlcArch + ".7z" self.targetInstSrc[ self.vlcTagName ] = 'vlc-' + self.vlcTagName self.targets[ self.vlcTagName +"-debug" ] = self.vlcBaseUrl + 'vlc-' + self.vlcTagName + "-win" + self.vlcArch + "-debug.7z" self.targetInstSrc[ self.vlcTagName + "-debug" ] = 'vlc-' + self.vlcTagName releaseTag = '1.1.11' self.targets[ releaseTag ] = "http://downloads.sourceforge.net/sourceforge/vlc/vlc-"+releaseTag+"-win32.7z" self.targetInstSrc[ releaseTag ] = 'vlc-' + releaseTag self.targetDigests['1.1.11'] = '5d95a0e55c1d30f21e6dd4aa2fb1744a3ab694ac' self.shortDescription = "an open-source multimedia framework" if compiler.isMinGW_W64(): self.defaultTarget = self.vlcTagName +"-debug" else: self.defaultTarget = releaseTag def setDependencies( self ): self.buildDependencies['virtual/bin-base'] = 'default' def getVer( self ): global _VLC_VER if _VLC_VER != None : return _VLC_VER else: try: fh = urllib.request.urlopen(self.vlcBaseUrl , timeout = 10) except Exception as e: return "Nightlys Unavailible:"+str(e) m = re.search( "\d\d\d\d\d\d\d\d-\d\d\d\d" , str(fh.read(),'UTF-8' )) fh.close() _VLC_VER = m.group(0) return _VLC_VER class Package(BinaryPackageBase): def __init__(self): self.subinfo = subinfo() self.subinfo.options.package.packSources = False self.subinfo.options.package.packageName = 'vlc' BinaryPackageBase.__init__( self ) def install( self ): shutil.move( os.path.join( self.installDir() , self.subinfo.targetInstSrc[ self.subinfo.buildTarget ]) , os.path.join( self.installDir(), "bin" ) ) shutil.move( os.path.join( self.installDir() , "bin" , "sdk" , "include") , os.path.join( self.installDir(), "include" ) ) shutil.move( os.path.join( self.installDir() , "bin" , "sdk" , "lib") , os.path.join( self.installDir(), "lib" ) ) shutil.copy( os.path.join( self.imageDir() , "lib" ,"libvlc.dll.a" ) , os.path.join( self.imageDir() , "lib" ,"libvlc.lib" )) shutil.copy( os.path.join( self.imageDir() , "lib" ,"libvlccore.dll.a" ) , os.path.join( self.imageDir() , "lib" ,"libvlccore.lib" )) shutil.rmtree( os.path.join( self.installDir() , "bin" , "sdk" ) ) os.makedirs( os.path.join( self.installDir() , "share" , "applications" , "kde4" ) ) utils.wgetFile( "http://git.videolan.org/?p=vlc.git;a=blob_plain;f=share/vlc.desktop" , os.path.join( self.installDir() , "share" , "applications" , "kde4" ) , "vlc.desktop" ) return True if __name__ == '__main__': Package().execute() diff --git a/portage/win32libs-sources/assuan2-src/assuan2-src-2.0.0.py b/portage/win32libs-sources/assuan2-src/assuan2-src-2.0.3.py similarity index 84% rename from portage/win32libs-sources/assuan2-src/assuan2-src-2.0.0.py rename to portage/win32libs-sources/assuan2-src/assuan2-src-2.0.3.py index 3dc481931..8ce7e1b41 100644 --- a/portage/win32libs-sources/assuan2-src/assuan2-src-2.0.0.py +++ b/portage/win32libs-sources/assuan2-src/assuan2-src-2.0.3.py @@ -1,39 +1,41 @@ import utils import os import info import platform import compiler class subinfo(info.infoclass): def setTargets( self ): - for ver in ['2.0.1', '2.0.2']: + for ver in ['2.0.1', '2.0.2', '2.0.3']: self.targets[ ver ] = 'ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-' + ver + '.tar.bz2' self.targetInstSrc[ ver ] = 'libassuan-' + ver self.patchToApply['2.0.1'] = [ ('libassuan-cmake.diff', 1), ('assuan-381-head.diff', 0), ('libassuan-2.0.1-20101029.diff', 1) ] self.patchToApply['2.0.2'] = [ ('libassuan-2.0.2-20110831.diff', 1), ('libassuan-2.0.2-cmake.diff', 1) ] + self.patchToApply['2.0.3'] = [ ('libassuan-2.0.2-20110831.diff', 1), ('libassuan-2.0.3-cmake.diff', 1) ] self.targets['400'] = "http://downloads.sourceforge.net/kde-windows/libassuan-r400.tar.bz2" self.targetInstSrc['400'] = "libassuan-r400" self.patchToApply['400'] = [ ('libassuan-cmake.diff', 1), ('libassuan-2.0.1-20101029.diff', 1) ] self.targetDigests['400'] = '91d85d50ccdc40b5353abe8190d6bd5ee9fb0be4' self.targetDigests['2.0.1'] = 'b7e9dbd41769cc20b1fb7db9f2ecdf276ffc352c' self.targetDigests['2.0.2'] = 'dbcd96e2525d4c3a2da9e8054a06fa517f20a185' + self.targetDigests['2.0.3'] = '2bf4eba3b588758e349976a7eb9e8a509960c3b5' self.shortDescription = "an IPC library used by some of the other GnuPG related packages" - self.defaultTarget = '400' + self.defaultTarget = '2.0.3' def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' self.dependencies['win32libs-bin/gpg-error'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self, **args ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/portage/win32libs-sources/assuan2-src/libassuan-2.0.3-cmake.diff b/portage/win32libs-sources/assuan2-src/libassuan-2.0.3-cmake.diff new file mode 100644 index 000000000..13d1613f0 --- /dev/null +++ b/portage/win32libs-sources/assuan2-src/libassuan-2.0.3-cmake.diff @@ -0,0 +1,475 @@ +diff -Nru libassuan-r400.orig/cmake/modules/FindGpg-Error.cmake libassuan-r400/cmake/modules/FindGpg-Error.cmake +--- libassuan-r400.orig/cmake/modules/FindGpg-Error.cmake 1970-01-01 01:00:00.000000000 +0100 ++++ libassuan-r400/cmake/modules/FindGpg-Error.cmake 2010-12-05 02:23:03.970413400 +0100 +@@ -0,0 +1,35 @@ ++# - Try to find GPG_ERROR ++# Once done this will define ++# ++# GPG_ERROR_FOUND - system has GPG_ERROR ++# GPG_ERROR_INCLUDE_DIR - the GPG_ERROR include directory ++# GPG_ERROR_LIBRARIES - the libraries needed to use GPG_ERROR ++ ++if (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) ++ ++ # in cache already ++ SET(GPG_ERROR_FOUND TRUE) ++ ++else (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) ++ ++ FIND_PATH(GPG_ERROR_INCLUDE_DIR gpg-error.h) ++ ++ FIND_LIBRARY(GPG_ERROR_LIBRARIES NAMES gpg-error libgpg-error gpg-error-0 libgpg-error-0) ++ ++ if (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) ++ set(GPG_ERROR_FOUND TRUE) ++ endif (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) ++ ++ if (GPG_ERROR_FOUND) ++ if (NOT GPG_ERROR_FIND_QUIETLY) ++ message(STATUS "Found gpg-error: ${GPG_ERROR_LIBRARIES}") ++ endif (NOT GPG_ERROR_FIND_QUIETLY) ++ else (GPG_ERROR_FOUND) ++ if (GPG-ERROR_FIND_REQUIRED) ++ message(SEND_ERROR "Could NOT find gpg-error") ++ endif (GPG-ERROR_FIND_REQUIRED) ++ endif (GPG_ERROR_FOUND) ++ ++ MARK_AS_ADVANCED(GPG_ERROR_INCLUDE_DIR GPG_ERROR_LIBRARIES) ++ ++endif (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) +diff -Nru libassuan-r400.orig/CMakeLists.txt libassuan-r400/CMakeLists.txt +--- libassuan-r400.orig/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 ++++ libassuan-r400/CMakeLists.txt 2010-12-05 02:30:23.310542200 +0100 +@@ -0,0 +1,124 @@ ++project(assuan) ++ ++cmake_minimum_required(VERSION 2.6) ++ ++option(BUILD_STATIC "build a static library instead of a dll" OFF) ++ ++set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) ++find_package(Gpg-Error REQUIRED) ++ ++include_directories(${CMAKE_CURRENT_BINARY_DIR} ${GPG_ERROR_INCLUDE_DIR}) ++ ++include(ConfigureChecks.cmake) ++ ++if(WIN32) ++ set(HostOS mingw32) ++ if(WINCE) ++ set(HostOS mingw32ce) ++ include_directories(${GPG_ERROR_INCLUDE_DIR}/gpg-extra) ++ find_program(MKHEADER_EXE mkheader) ++ set(MKHEADER_TARGET) ++ else(WINCE) ++ add_executable(mkheader src/mkheader.c) ++ get_target_property(MKHEADER_EXE mkheader LOCATION) ++ install(TARGETS mkheader RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) ++ set(MKHEADER_TARGET mkheader) ++ endif(WINCE) ++endif(WIN32) ++ ++add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/assuan.h COMMAND ${MKHEADER_EXE} ${HostOS} ${CMAKE_CURRENT_SOURCE_DIR}/src/assuan.h.in > ${CMAKE_CURRENT_BINARY_DIR}/assuan.h DEPENDS ${MKHEADER_TARGET}) ++ ++set(assuan_SRCS ++ src/assuan.c ++ src/context.c ++ src/system.c ++ src/debug.c ++ src/conversion.c ++ src/client.c ++ src/server.c ++ src/assuan-error.c ++ src/assuan-buffer.c ++ src/assuan-handler.c ++ src/assuan-inquire.c ++ src/assuan-listen.c ++ src/assuan-pipe-server.c ++ src/assuan-socket-server.c ++ src/assuan-pipe-connect.c ++ src/assuan-socket-connect.c ++ src/assuan-uds.c ++ src/assuan-logging.c ++ src/assuan-socket.c ++ src/sysutils.c ++ src/assuan-io.c ++ ${CMAKE_CURRENT_BINARY_DIR}/assuan.h ++) ++ ++if(NOT HAVE_PUTC_UNLOCKED) ++ set(assuan_SRCS ${assuan_SRCS} src/putc_unlocked.c) ++endif(NOT HAVE_PUTC_UNLOCKED) ++if(NOT HAVE_STPCPY) ++ set(assuan_SRCS ${assuan_SRCS} src/stpcpy.c) ++endif(NOT HAVE_STPCPY) ++if(NOT HAVE_MEMRCHR) ++ set(assuan_SRCS ${assuan_SRCS} src/memrchr.c) ++endif(NOT HAVE_MEMRCHR) ++if(NOT HAVE_VASPRINTF) ++ set(assuan_SRCS ${assuan_SRCS} src/vasprintf.c) ++endif(NOT HAVE_VASPRINTF) ++if(NOT HAVE_SETENV) ++ set(assuan_SRCS ${assuan_SRCS} src/setenv.c) ++endif(NOT HAVE_SETENV) ++ ++if(WIN32) ++ set(assuan_SRCS ${assuan_SRCS} src/libassuan.def) ++ ++ if(WINCE) ++ set(assuan_SRCS ${assuan_SRCS} src/system-w32ce.c) ++ else(WINCE) ++ set(assuan_SRCS ${assuan_SRCS} src/system-w32.c) ++ endif(WINCE) ++ ++ if(MSVC) ++ add_definitions(-D_CRT_SECURE_NO_DEPRECATE -wd4996) ++ endif(MSVC) ++endif(WIN32) ++ ++if(BUILD_STATIC) ++ set(_shared STATIC) ++else(BUILD_STATIC) ++ set(_shared SHARED) ++endif(BUILD_STATIC) ++ ++add_library(assuan2 ${_shared} ${assuan_SRCS}) ++target_link_libraries(assuan2 ${GPG_ERROR_LIBRARIES}) ++if(WIN32) ++ if(WINCE) ++ target_link_libraries(assuan2 ws2) ++ else(WINCE) ++ target_link_libraries(assuan2 ws2_32) ++ endif(WINCE) ++endif(WIN32) ++ ++install(TARGETS assuan2 RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) ++ ++if(WINCE) ++ set(gpgcedev_SRCS ++ src/gpgcedev.c ++ src/gpgcedev.def ++ ) ++ add_library(gpgcedev ${gpgcedev_SRCS}) ++ ++ set(gpgcemgr_SRCS ++ src/gpgcemgr.c ++ ) ++ add_executable(gpgcemgr ${gpgcemgr_SRCS}) ++ ++ install(TARGETS gpgcedev gpgcemgr RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) ++endif(WINCE) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/assuan.h DESTINATION include) +diff -Nru libassuan-r400.orig/config.h.cmake libassuan-r400/config.h.cmake +--- libassuan-r400.orig/config.h.cmake 1970-01-01 01:00:00.000000000 +0100 ++++ libassuan-r400/config.h.cmake 2010-12-05 02:23:03.974413700 +0100 +@@ -0,0 +1,229 @@ ++/* config.h.in. Generated from configure.ac by autoheader. */ ++ ++/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you ++ don't. */ ++#cmakedefine HAVE_DECL_SYS_SIGLIST 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_DLFCN_H 1 ++ ++/* Defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2) ++ with special properties like no file modes */ ++#cmakedefine HAVE_DOSISH_SYSTEM 1 ++ ++/* Define to 1 if you have the `flockfile' function. */ ++#cmakedefine HAVE_FLOCKFILE 1 ++ ++/* Define to 1 if you have the `fopencookie' function. */ ++#cmakedefine HAVE_FOPENCOOKIE 1 ++ ++/* Define to 1 if you have the `funlockfile' function. */ ++#cmakedefine HAVE_FUNLOCKFILE 1 ++ ++/* Define to 1 if you have the `funopen' function. */ ++#cmakedefine HAVE_FUNOPEN 1 ++ ++/* Define to 1 if you have the `inet_pton' function. */ ++#cmakedefine HAVE_INET_PTON 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `isascii' function. */ ++#cmakedefine HAVE_ISASCII 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_LOCALE_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the `memrchr' function. */ ++#cmakedefine HAVE_MEMRCHR 1 ++ ++/* Define to 1 if you have the `nanosleep' function in libc. */ ++#cmakedefine HAVE_NANOSLEEP 1 ++ ++/* Define to 1 if you have the `putc_unlocked' function. */ ++#cmakedefine HAVE_PUTC_UNLOCKED 1 ++ ++/* Define to 1 if you have the `setenv' function. */ ++#cmakedefine HAVE_SETENV 1 ++ ++/* Defined if SO_PEERCRED is supported (Linux specific) */ ++#cmakedefine HAVE_SO_PEERCRED 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the `stpcpy' function. */ ++#cmakedefine HAVE_STPCPY 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_SYS_SOCKET_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_SYS_UIO_H 1 ++ ++/* Define to 1 if the system has the type `uintptr_t'. */ ++#cmakedefine HAVE_UINTPTR_T 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the `vasprintf' function. */ ++#cmakedefine HAVE_VASPRINTF 1 ++ ++/* Defined if we run on WindowsCE */ ++#cmakedefine HAVE_W32CE_SYSTEM 1 ++ ++/* Defined if we run on a W32 API based system */ ++#cmakedefine HAVE_W32_SYSTEM 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_WINSOCK2_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#cmakedefine HAVE_WS2TCPIP_H 1 ++ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ ++#cmakedefine LT_OBJDIR @LT_OBJDIR@ ++ ++/* Define to 1 if your C compiler doesn't accept -c and -o together. */ ++#cmakedefine NO_MINUS_C_MINUS_O 1 ++ ++/* Name of this package */ ++#cmakedefine PACKAGE @PACKAGE@ ++ ++/* Bug report address */ ++#cmakedefine PACKAGE_BUGREPORT @PACKAGE_BUGREPORT@ ++ ++/* Define to the full name of this package. */ ++#cmakedefine PACKAGE_NAME @PACKAGE_NAME@ ++ ++/* Define to the full name and version of this package. */ ++#cmakedefine PACKAGE_STRING @PACKAGE_STRING@ ++ ++/* Define to the one symbol short name of this package. */ ++#cmakedefine PACKAGE_TARNAME @PACKAGE_TARNAME@ ++ ++/* Define to the home page for this package. */ ++#cmakedefine PACKAGE_URL @PACKAGE_URL@ ++ ++/* Define to the version of this package. */ ++#cmakedefine PACKAGE_VERSION @PACKAGE_VERSION@ ++ ++/* Define as the return type of signal handlers (`int' or `void'). */ ++#cmakedefine RETSIGTYPE @RETSIGTYPE@ ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#cmakedefine STDC_HEADERS 1 ++ ++/* Defined if descriptor passing is supported */ ++#cmakedefine USE_DESCRIPTOR_PASSING 1 ++ ++/* Enable extensions on AIX 3, Interix. */ ++#ifndef _ALL_SOURCE ++# undef _ALL_SOURCE ++#endif ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# undef _GNU_SOURCE ++#endif ++/* Enable threading extensions on Solaris. */ ++#ifndef _POSIX_PTHREAD_SEMANTICS ++# undef _POSIX_PTHREAD_SEMANTICS ++#endif ++/* Enable extensions on HP NonStop. */ ++#ifndef _TANDEM_SOURCE ++# undef _TANDEM_SOURCE ++#endif ++/* Enable general extensions on Solaris. */ ++#ifndef __EXTENSIONS__ ++# undef __EXTENSIONS__ ++#endif ++ ++ ++/* Version of this package */ ++#cmakedefine VERSION @VERSION@ ++ ++/* Activate CMSG_LEN/CMSG_SPACE on MacOS X */ ++#cmakedefine _DARWIN_C_SOURCE 1 ++ ++/* Define to 1 if on MINIX. */ ++#cmakedefine _MINIX 1 ++ ++/* Define to 2 if the system does not provide POSIX.1 features except with ++ this defined. */ ++#cmakedefine _POSIX_1_SOURCE 2 ++ ++/* Define to 1 if you need to in order for `stat' and other things to work. */ ++#cmakedefine _POSIX_SOURCE 1 ++ ++/* Activate extensions on Solaris */ ++#cmakedefine _XOPEN_SOURCE 1 ++ ++/* Activate extensions on Solaris */ ++#cmakedefine _XOPEN_SOURCE_EXTENDED 1 ++ ++/* Activate extensions on Solaris */ ++#cmakedefine __EXTENSIONS__ 1 ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++#cmakedefine const 1 ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus ++#cmakedefine inline @inline@ ++#endif ++ ++/* Define to `unsigned int' if does not define. */ ++#cmakedefine size_t @size_t@ ++ ++/* type to use in place of socklen_t if not defined */ ++#cmakedefine socklen_t @socklen_t@ ++ ++#ifndef HAVE_STDINT_H ++/* Define to the type of an unsigned integer type of width exactly 16 bits if ++ such a type exists and the standard includes do not define it. */ ++#cmakedefine uint16_t @uint16_t@ ++ ++/* Define to the type of an unsigned integer type wide enough to hold a ++ pointer, if such a type exists, and if the system does not define it. */ ++#cmakedefine uintptr_t @uintptr_t@ ++#endif ++ ++#cmakedefine HAVE_ENVIRON_DECL ++#ifdef _WIN32 ++#ifdef _MSC_VER ++# define S_IRUSR 0000400 /* read permission, owner */ ++# define S_IWUSR 0000200 /* write permission, owner */ ++# ifndef ENOFILE ++# define ENOFILE ENOENT ++# endif ++# define snprintf _snprintf ++# define ssize_t SSIZE_T ++typedef int pid_t; ++#define GPG_ERR_ENABLE_ERRNO_MACROS 1 ++#endif ++#endif +diff -Nru libassuan-r400.orig/ConfigureChecks.cmake libassuan-r400/ConfigureChecks.cmake +--- libassuan-r400.orig/ConfigureChecks.cmake 1970-01-01 01:00:00.000000000 +0100 ++++ libassuan-r400/ConfigureChecks.cmake 2010-12-05 02:23:03.975413700 +0100 +@@ -0,0 +1,71 @@ ++#/* config.h.in. Generated from configure.ac by autoheader. */ ++ ++set(PACKAGE "assuan2") ++set(VERSION "2.0.3") ++set(PACKAGE_VERSION "\"${PACKAGE}-${VERSION}\"") ++ ++include(CheckIncludeFile) ++include(CheckFunctionExists) ++include(CheckSymbolExists) ++ ++check_include_file("dlfcn.h" HAVE_DLFCN_H) ++check_include_file("inttypes.h" HAVE_INTTYPES_H) ++check_include_file("locale.h" HAVE_LOCALE_H) ++check_include_file("memory.h" HAVE_MEMORY_H) ++check_include_file("stdint.h" HAVE_STDINT_H) ++check_include_file("stdlib.h" HAVE_STDLIB_H) ++check_include_file("strings.h" HAVE_STRINGS_H) ++check_include_file("string.h" HAVE_STRING_H) ++check_include_file("sys/socket.h" HAVE_SYS_SOCKET_H) ++check_include_file("sys/stat.h" HAVE_SYS_STAT_H) ++check_include_file("sys/types.h" HAVE_SYS_TYPES_H) ++check_include_file("sys/time.h" HAVE_SYS_TIME_H) ++check_include_file("sys/uio.h" HAVE_SYS_UIO_H) ++check_include_file("unistd.h" HAVE_UNISTD_H) ++check_include_file("winsock2.h" HAVE_WINSOCK2_H) ++check_include_file("ws2tcpip.h" HAVE_WS2TCPIP_H) ++ ++if(WIN32) ++ set(HAVE_DOSISH_SYSTEM 1) ++ set(HAVE_W32_SYSTEM 1) ++ if(WINCE) ++ set(HAVE_W32CE_SYSTEM 1) ++ endif(WINCE) ++endif(WIN32) ++ ++if(MSVC) ++ set(inline "__inline") ++ set(uint16_t "unsigned __int16") ++ if(WINCE) ++ set(uintptr_t "unsigned __int32") ++ endif(WINCE) ++endif(MSVC) ++ ++check_function_exists("flockfile" HAVE_FLOCKFILE) ++check_function_exists("fopencookie" HAVE_FOPENCOOKIE) ++check_function_exists("funlockfile" HAVE_FUNLOCKFILE) ++check_function_exists("funopen" HAVE_FUNOPEN) ++check_function_exists("isascii" HAVE_ISASCII) ++check_function_exists("memrchr" HAVE_MEMRCHR) ++check_function_exists("nanosleep" HAVE_NANOSLEEP) ++check_function_exists("putc_unlocked" HAVE_PUTC_UNLOCKED) ++check_function_exists("stpcpy" HAVE_STPCPY) ++check_function_exists("vasprintf" HAVE_VASPRINTF) ++check_function_exists("setenv" HAVE_SETENV) ++ ++if(WIN32) ++ check_symbol_exists(environ "stdlib.h" HAVE_ENVIRON_DECL) ++endif(WIN32) ++ ++#/* Defined if SO_PEERCRED is supported (Linux specific) */ ++#cmakedefine HAVE_SO_PEERCRED 1 ++ ++#/* Defined if descriptor passing is supported */ ++#cmakedefine USE_DESCRIPTOR_PASSING 1 ++ ++#/* Activate CMSG_LEN/CMSG_SPACE on MacOS X */ ++#cmakedefine _DARWIN_C_SOURCE 1 ++ ++add_definitions(-DHAVE_CONFIG_H) ++ ++configure_file(config.h.cmake config.h) diff --git a/portage/win32libs-sources/boost-src/boost-python-src/boost-python-src-1.48.0-20110312.py b/portage/win32libs-sources/boost-src/boost-python-src/boost-python-src-1.48.0-1-20110312.py similarity index 100% rename from portage/win32libs-sources/boost-src/boost-python-src/boost-python-src-1.48.0-20110312.py rename to portage/win32libs-sources/boost-src/boost-python-src/boost-python-src-1.48.0-1-20110312.py diff --git a/portage/win32libs-sources/dbus-src/dbus-src-1.4.10-20110302.py b/portage/win32libs-sources/dbus-src/dbus-src-1.4.16-20110302.py similarity index 95% rename from portage/win32libs-sources/dbus-src/dbus-src-1.4.10-20110302.py rename to portage/win32libs-sources/dbus-src/dbus-src-1.4.16-20110302.py index 9a2c3539e..e4f8b53aa 100644 --- a/portage/win32libs-sources/dbus-src/dbus-src-1.4.10-20110302.py +++ b/portage/win32libs-sources/dbus-src/dbus-src-1.4.16-20110302.py @@ -1,130 +1,132 @@ # -*- coding: utf-8 -*- import utils import os import info import emergePlatform import compiler class subinfo(info.infoclass): def setTargets( self ): svnurl = "https://windbus.svn.sourceforge.net/svnroot/windbus/" self.svnTargets['1.2.4'] = svnurl + 'tags/1.2.4' self.targetInstSrc['1.2.4'] = 'tags/1.2.4' self.targetConfigurePath['1.2.4'] = 'cmake' self.svnTargets['svnHEAD'] = svnurl + 'trunk' self.targetConfigurePath['svnHEAD'] = 'cmake' # dbus-1.3.1.tar.gz is missing the cmake sub dir and because # emerge is not able yet to apply more than one patch we the # 1.3.1 snapshot took for now #self.targets['1.3.1'] = 'http://dbus.freedesktop.org/releases/dbus/dbus-1.3.1.tar.gz' #self.targetDigests['1.3.1'] = '83c27e15ba79d4a84a10b123ff382233cc77773b' self.targets['1.3.1'] = 'http://cgit.freedesktop.org/dbus/dbus/snapshot/dbus-1.3.1.tar.bz2' self.targetDigests['1.3.1'] = 'e8fa74ad6f2294bdf7d22aed25896d8943287c32' self.targetInstSrc['1.3.1'] = 'dbus-1.3.1' self.targetConfigurePath['1.3.1'] = 'cmake' self.targets['1.4.0'] = 'http://cgit.freedesktop.org/dbus/dbus/snapshot/dbus-1.4.0.tar.bz2' self.targetDigests['1.4.0'] = '3983d9a1456e5772fa4cb5e2818ed015b2f6131b' self.targetInstSrc['1.4.0'] = 'dbus-1.4.0' self.targetConfigurePath['1.4.0'] = 'cmake' - self.targets['1.4.1'] = 'http://dbus.freedesktop.org/releases/dbus/dbus-1.4.1.tar.gz' + for ver in ['1.4.1','1.4.16']: + self.targets[ver] = 'http://dbus.freedesktop.org/releases/dbus/dbus-%s.tar.gz' % ver + self.targetInstSrc[ver] = 'dbus-%s' % ver + self.targetConfigurePath[ver] = 'cmake' self.targetDigests['1.4.1'] = '112279ff58305027294fe0eb5bee600f68cf0b50' - self.targetInstSrc['1.4.1'] = 'dbus-1.4.1' - self.targetConfigurePath['1.4.1'] = 'cmake' + for ver in ['1.4.6', '1.4.8', '1.4.10', '1.4.12', '1.4.14']: self.svnTargets[ver] = 'git://anongit.freedesktop.org/git/dbus/dbus||dbus-' + ver self.targetSrcSuffix[ver] = 'git' self.targetConfigurePath[ver] = 'cmake' self.svnTargets['gitHEAD'] = 'git://anongit.freedesktop.org/git/dbus/dbus' self.targetSrcSuffix['gitHEAD'] = 'git' self.targetConfigurePath['gitHEAD'] = 'cmake' if emergePlatform.isCrossCompilingEnabled(): self.patchToApply['1.4.0'] = [('dbus-1.4.0.diff', 1), ('0001-tentative-workaround-for-the-random-hangs-on-windows.patch', 1), ('no-auth.diff', 1), ('msvc2010-has-errnoh.diff', 1), ('live-lock-fix.diff', 1), ('wince-splashscreen.diff', 1) ] self.patchToApply['1.4.1'] = [('no-auth.diff', 1), ('msvc2010-has-errnoh.diff', 1), ] else: self.patchToApply['1.4.0'] = [('dbus-1.4.0.diff', 1), ('0001-tentative-workaround-for-the-random-hangs-on-windows.patch', 1), ('msvc2010-has-errnoh.diff', 1), ('live-lock-fix.diff', 1) ] self.patchToApply['1.4.1'] = [('msvc2010-has-errnoh.diff', 1), ('live-lock-fix.diff', 1), ('replace_path_with_current_installdir.diff', 1) ] self.patchToApply['1.4.6'] = [('live-lock-fix.diff', 1), ('0001-Do-not-use-ELEMENT_TYPE-which-is-reserved.patch', 1) ] self.patchToApply['1.4.10'] = [('workaround-for-inline-keyword-in-msvc10.patch', 1) ] self.shortDescription = "Freedesktop message bus system (daemon and clients)" if emergePlatform.isCrossCompilingEnabled(): self.defaultTarget = '1.4.0' else: - self.defaultTarget = '1.4.6' + self.defaultTarget = '1.4.16' def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' self.dependencies['win32libs-bin/expat'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self, **args ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) self.subinfo.options.package.packageName = 'dbus' self.subinfo.options.make.slnBaseName = 'dbus' self.subinfo.options.configure.defines = ( "-DDBUS_BUILD_TESTS=OFF " "-DDBUS_ENABLE_XML_DOCS=OFF " "-DDBUS_USE_EXPAT=ON " "-DDBUS_REPLACE_LOCAL_DIR=ON ") if (self.buildType == "Release"): self.subinfo.options.configure.defines += ( "-DDBUS_ENABLE_VERBOSE_MODE=OFF " "-DDBUS_DISABLE_ASSERTS=ON ") if emergePlatform.isCrossCompilingEnabled(): self.subinfo.options.configure.defines += ( "-DDBUS_SESSION_BUS_DEFAULT_ADDRESS:" "STRING=tcp:host=localhost,port=12434 ") else: # for 1.4.1 and greater switch to official # supported scopes -> autolaunch:scope=*install-path self.subinfo.options.configure.defines += ( "-DDBUS_SESSION_BUS_DEFAULT_ADDRESS:" "STRING=autolaunch:scope=install-path ") # kde uses debugger output, so dbus should do too # not sure if this works for wince too, so limited to win32 self.subinfo.options.configure.defines += ( "-DDBUS_USE_OUTPUT_DEBUG_STRING=ON ") def unpack(self): if not CMakePackageBase.unpack(self): return False if compiler.isMinGW32(): if self.buildTarget in ['1.2.1', '1.2.3', '1.2.4', 'svnHEAD']: utils.copyFile( os.path.join(self.packageDir(), "wspiapi.h"), os.path.join(self.buildDir(), "wspiapi.h") ) return True if __name__ == '__main__': Package().execute() diff --git a/portage/win32libs-sources/gpgme-src/gpgme-1.3.1-cmake.diff b/portage/win32libs-sources/gpgme-src/gpgme-1.3.1-cmake.diff index eba472be7..8c28266b0 100644 --- a/portage/win32libs-sources/gpgme-src/gpgme-1.3.1-cmake.diff +++ b/portage/win32libs-sources/gpgme-src/gpgme-1.3.1-cmake.diff @@ -1,1261 +1,1293 @@ -diff -Nru gpgme-1.3.1.orig/cmake/modules/FindAssuan2.cmake gpgme-1.3.1/cmake/modules/FindAssuan2.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/cmake/modules/FindAssuan2.cmake gpgme-1.3.1/cmake/modules/FindAssuan2.cmake --- gpgme-1.3.1.orig/cmake/modules/FindAssuan2.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/cmake/modules/FindAssuan2.cmake 2011-08-31 00:32:16.403425900 +0200 ++++ gpgme-1.3.1/cmake/modules/FindAssuan2.cmake 2012-01-11 18:46:47.027691300 +0100 @@ -0,0 +1,256 @@ +# - Try to find the assuan v2 library + +# Variables set: +# ASSUAN2_{INCLUDES,FOUND,LIBRARIES} will be set for each of the above + +# do away with crappy condition repetition on else/endfoo +set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS_assuan2_saved ${CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS} ) +set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) + +#if this is built-in, please replace, if it isn't, export into a MacroToBool.cmake of it's own +macro( macro_bool_to_bool FOUND_VAR ) + foreach( _current_VAR ${ARGN} ) + if ( ${FOUND_VAR} ) + set( ${_current_VAR} TRUE ) + else() + set( ${_current_VAR} FALSE ) + endif() + endforeach() +endmacro() + +include (MacroEnsureVersion) +include (MacroBoolTo01) +include (MacroLogFeature) + +if ( WIN32 ) + + # On Windows, we don't have a libassuan-config script, so we need to + # look for the stuff ourselves: + + # in cmake, AND and OR have the same precedence, there's no + # subexpressions, and expressions are evaluated short-circuit'ed + # IOW: CMake if() suxx. + set( _seem_to_have_cached_assuan2 false ) + if ( ASSUAN2_INCLUDES ) + if ( ASSUAN2_VANILLA_LIBRARIES )#OR ASSUAN2_QT_LIBRARIES OR ASSUAN2_GLIB_LIBRARIES ) + set( _seem_to_have_cached_assuan2 true ) + endif() + endif() + + if ( _seem_to_have_cached_assuan2 ) + + macro_bool_to_bool( ASSUAN2_VANILLA_LIBRARIES ASSUAN2_VANILLA_FOUND ) + # this would have been preferred: + #set( ASSUAN2_*_FOUND macro_bool_to_bool(ASSUAN2_*_LIBRARIES) ) + + if ( ASSUAN2_VANILLA_FOUND ) #OR ASSUAN2_GLIB_FOUND OR ASSUAN2_QT_FOUND ) + set( ASSUAN2_FOUND true ) + else() + set( ASSUAN2_FOUND false ) + endif() + + else() + + set( ASSUAN2_FOUND false ) + set( ASSUAN2_VANILLA_FOUND false ) + #set( ASSUAN2_GLIB_FOUND false ) + #set( ASSUAN2_QT_FOUND false ) + + find_path( ASSUAN2_INCLUDES assuan.h + ${CMAKE_INCLUDE_PATH} + ${CMAKE_INSTALL_PREFIX}/include + ) + + find_library( _assuan2_library NAMES assuan2 libassuan2 assuan-0 libassuan-0 #sic! + PATHS + ${CMAKE_LIBRARY_PATH} + ${CMAKE_INSTALL_PREFIX}/lib + ) + + find_library( _gpg_error_library NAMES gpg-error libgpg-error gpg-error-0 libgpg-error-0 + PATHS + ${CMAKE_LIBRARY_PATH} + ${CMAKE_INSTALL_PREFIX}/lib + ) + + set( ASSUAN2_INCLUDES ${ASSUAN2_INCLUDES} ) + + if ( _assuan2_library AND _gpg_error_library ) + set( ASSUAN2_LIBRARIES ${_assuan2_library} ${_gpg_error_library} ) + if(WINCE) + set( ASSUAN2_LIBRARIES ${ASSUAN2_LIBRARIES} ws2 ) + else(WINCE) + set( ASSUAN2_LIBRARIES ${ASSUAN2_LIBRARIES} ws2_32 ) + endif(WINCE) + set( ASSUAN2_FOUND true ) + endif() + + endif() + + macro_bool_to_01( ASSUAN2_FOUND HAVE_ASSUAN2 ) + +else() # not WIN32 + + # On *nix, we have the libassuan-config script which can tell us all we + # need to know: + + # see WIN32 case for an explanation of what this does: + set( _seem_to_have_cached_assuan2 false ) + if ( ASSUAN2_INCLUDES AND ASSUAN2_LIBRARIES ) + set( _seem_to_have_cached_assuan2 true ) + endif() + + if ( _seem_to_have_cached_assuan2 ) + + set( ASSUAN2_FOUND true ) + + else() + + set( ASSUAN2_FOUND false ) + + find_program( _ASSUAN2CONFIG_EXECUTABLE NAMES libassuan-config ) + + # if libassuan-config has been found + if ( _ASSUAN2CONFIG_EXECUTABLE ) + + message( STATUS "Found libassuan-config at ${_ASSUAN2CONFIG_EXECUTABLE}" ) + + exec_program( ${_ASSUAN2CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE ASSUAN2_VERSION ) + + set( _ASSUAN2_MIN_VERSION "2.0.0" ) + macro_ensure_version( ${_ASSUAN2_MIN_VERSION} ${ASSUAN2_VERSION} _ASSUAN2_INSTALLED_VERSION_OK ) + + if ( NOT _ASSUAN2_INSTALLED_VERSION_OK ) + + message( STATUS "The installed version of assuan is too old: ${ASSUAN2_VERSION} (required: >= ${_ASSUAN2_MIN_VERSION})" ) + + else() + + message( STATUS "Found assuan v${ASSUAN2_VERSION}" ) + + exec_program( ${_ASSUAN2CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE _assuan2_config_libs RETURN_VALUE _ret ) + if ( _ret ) + set( _assuan2_config_libs ) + endif() + + # append -lgpg-error to the list of libraries, if necessary + if ( _assuan2_config_libs AND NOT _assuan2_config_libs MATCHES "lgpg-error" ) + set( _assuan2_config_libs "${_assuan2_config_libs} -lgpg-error" ) + endif() + + if ( _assuan2_config_libs ) + + exec_program( ${_ASSUAN2CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE _ASSUAN2_CFLAGS ) + + if ( _ASSUAN2_CFLAGS ) + string( REGEX REPLACE "(\r?\n)+$" " " _ASSUAN2_CFLAGS "${_ASSUAN2_CFLAGS}" ) + string( REGEX REPLACE " *-I" ";" ASSUAN2_INCLUDES "${_ASSUAN2_CFLAGS}" ) + endif() + + if ( _assuan2_config_libs ) + + set( _assuan2_library_dirs ) + set( _assuan2_library_names ) + + string( REGEX REPLACE " +" ";" _assuan2_config_libs "${_assuan2_config_libs}" ) + + foreach( _flag ${_assuan2_config_libs} ) + if ( "${_flag}" MATCHES "^-L" ) + string( REGEX REPLACE "^-L" "" _dir "${_flag}" ) + file( TO_CMAKE_PATH "${_dir}" _dir ) + set( _assuan2_library_dirs ${_assuan2_library_dirs} "${_dir}" ) + elseif( "${_flag}" MATCHES "^-l" ) + string( REGEX REPLACE "^-l" "" _name "${_flag}" ) + set( _assuan2_library_names ${_assuan2_library_names} "${_name}" ) + endif() + endforeach() + + set( ASSUAN2_FOUND true ) + + foreach( _name ${_assuan2_library_names} ) + set( _assuan2_${_name}_lib ) + + # if -L options were given, look only there + if ( _assuan2_library_dirs ) + find_library( _assuan2_${_name}_lib NAMES ${_name} PATHS ${_assuan2_library_dirs} NO_DEFAULT_PATH ) + endif() + + # if not found there, look in system directories + if ( NOT _assuan2_${_name}_lib ) + find_library( _assuan2_${_name}_lib NAMES ${_name} ) + endif() + + # if still not found, then the whole flavour isn't found + if ( NOT _assuan2_${_name}_lib ) + if ( ASSUAN2_FOUND ) + set( ASSUAN2_FOUND false ) + set( _not_found_reason "dependant library ${_name} wasn't found" ) + endif() + endif() + + set( ASSUAN2_LIBRARIES ${ASSUAN2_LIBRARIES} "${_assuan2_${_name}_lib}" ) + endforeach() + + #check_c_library_exists_explicit( assuan assuan_check_version "${_ASSUAN2_CFLAGS}" "${ASSUAN2_LIBRARIES}" ASSUAN2_FOUND ) + if ( ASSUAN2_FOUND ) + message( STATUS " Checking whether assuan is usable...yes" ) + else() + message( STATUS " Checking whether assuan is usable...no" ) + message( STATUS " (${_not_found_reason})" ) + endif() + endif() + + # ensure that they are cached + set( ASSUAN2_INCLUDES ${ASSUAN2_INCLUDES} ) + set( ASSUAN2_LIBRARIES ${ASSUAN2_LIBRARIES} ) + + endif() + + endif() + + endif() + + endif() + + macro_bool_to_01( ASSUAN2_FOUND HAVE_ASSUAN2 ) + +endif() # WIN32 | Unix + + +if ( NOT Assuan2_FIND_QUIETLY ) + + if ( ASSUAN2_FOUND ) + message( STATUS "Usable assuan found." ) + message( STATUS " Includes: ${ASSUAN2_INCLUDES}" ) + message( STATUS " Libraries: ${ASSUAN2_LIBRARIES}" ) + else() + message( STATUS "No usable assuan found." ) + endif() + + macro_bool_to_bool( Assuan2_FIND_REQUIRED _req ) + + if ( WIN32 ) + set( _assuan2_homepage "http://www.gpg4win.org" ) + else() + set( _assuan2_homepage "http://www.gnupg.org/related_software/libassuan" ) + endif() + + macro_log_feature( + ASSUAN2_FOUND + "assuan2" + "Assuan v2 IPC library" + ${_assuan2_homepage} + ${_req} + "${_ASSUAN2_MIN_VERSION} or greater" + "Needed for Kleopatra to act as the GnuPG UI Server" + ) + +else() + + if ( Assuan2_FIND_REQUIRED AND NOT ASSUAN2_FOUND ) + message( FATAL_ERROR "" ) + endif() + +endif() + +set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS_assuan2_saved ) -diff -Nru gpgme-1.3.1.orig/cmake/modules/FindGpg-Error.cmake gpgme-1.3.1/cmake/modules/FindGpg-Error.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/cmake/modules/FindGpg-Error.cmake gpgme-1.3.1/cmake/modules/FindGpg-Error.cmake --- gpgme-1.3.1.orig/cmake/modules/FindGpg-Error.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/cmake/modules/FindGpg-Error.cmake 2011-08-31 00:32:16.406426100 +0200 ++++ gpgme-1.3.1/cmake/modules/FindGpg-Error.cmake 2012-01-11 18:46:47.029691400 +0100 @@ -0,0 +1,35 @@ +# - Try to find GPG_ERROR +# Once done this will define +# +# GPG_ERROR_FOUND - system has GPG_ERROR +# GPG_ERROR_INCLUDE_DIR - the GPG_ERROR include directory +# GPG_ERROR_LIBRARIES - the libraries needed to use GPG_ERROR + +if (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) + + # in cache already + SET(GPG_ERROR_FOUND TRUE) + +else (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) + + FIND_PATH(GPG_ERROR_INCLUDE_DIR gpg-error.h) + + FIND_LIBRARY(GPG_ERROR_LIBRARIES NAMES gpg-error libgpg-error gpg-error-0 libgpg-error-0) + + if (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) + set(GPG_ERROR_FOUND TRUE) + endif (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) + + if (GPG_ERROR_FOUND) + if (NOT GPG_ERROR_FIND_QUIETLY) + message(STATUS "Found gpg-error: ${GPG_ERROR_LIBRARIES}") + endif (NOT GPG_ERROR_FIND_QUIETLY) + else (GPG_ERROR_FOUND) + if (GPG-ERROR_FIND_REQUIRED) + message(SEND_ERROR "Could NOT find gpg-error") + endif (GPG-ERROR_FIND_REQUIRED) + endif (GPG_ERROR_FOUND) + + MARK_AS_ADVANCED(GPG_ERROR_INCLUDE_DIR GPG_ERROR_LIBRARIES) + +endif (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) -diff -Nru gpgme-1.3.1.orig/cmake/modules/MacroBoolTo01.cmake gpgme-1.3.1/cmake/modules/MacroBoolTo01.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/cmake/modules/MacroBoolTo01.cmake gpgme-1.3.1/cmake/modules/MacroBoolTo01.cmake --- gpgme-1.3.1.orig/cmake/modules/MacroBoolTo01.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/cmake/modules/MacroBoolTo01.cmake 2011-08-31 00:32:16.408426200 +0200 ++++ gpgme-1.3.1/cmake/modules/MacroBoolTo01.cmake 2012-01-11 18:46:47.031691500 +0100 @@ -0,0 +1,20 @@ +# MACRO_BOOL_TO_01( VAR RESULT0 ... RESULTN ) +# This macro evaluates its first argument +# and sets all the given vaiables either to 0 or 1 +# depending on the value of the first one + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +MACRO(MACRO_BOOL_TO_01 FOUND_VAR ) + FOREACH (_current_VAR ${ARGN}) + IF(${FOUND_VAR}) + SET(${_current_VAR} 1) + ELSE(${FOUND_VAR}) + SET(${_current_VAR} 0) + ENDIF(${FOUND_VAR}) + ENDFOREACH(_current_VAR) +ENDMACRO(MACRO_BOOL_TO_01) -diff -Nru gpgme-1.3.1.orig/cmake/modules/MacroEnsureVersion.cmake gpgme-1.3.1/cmake/modules/MacroEnsureVersion.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/cmake/modules/MacroEnsureVersion.cmake gpgme-1.3.1/cmake/modules/MacroEnsureVersion.cmake --- gpgme-1.3.1.orig/cmake/modules/MacroEnsureVersion.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/cmake/modules/MacroEnsureVersion.cmake 2011-08-31 00:32:16.411426400 +0200 ++++ gpgme-1.3.1/cmake/modules/MacroEnsureVersion.cmake 2012-01-11 18:46:47.035691700 +0100 @@ -0,0 +1,117 @@ +# This file defines the following macros for developers to use in ensuring +# that installed software is of the right version: +# +# MACRO_ENSURE_VERSION - test that a version number is greater than +# or equal to some minimum +# MACRO_ENSURE_VERSION_RANGE - test that a version number is greater than +# or equal to some minimum and less than some +# maximum +# MACRO_ENSURE_VERSION2 - deprecated, do not use in new code +# + +# MACRO_ENSURE_VERSION +# This macro compares version numbers of the form "x.y.z" or "x.y" +# MACRO_ENSURE_VERSION( FOO_MIN_VERSION FOO_VERSION_FOUND FOO_VERSION_OK) +# will set FOO_VERSION_OK to true if FOO_VERSION_FOUND >= FOO_MIN_VERSION +# Leading and trailing text is ok, e.g. +# MACRO_ENSURE_VERSION( "2.5.31" "flex 2.5.4a" VERSION_OK) +# which means 2.5.31 is required and "flex 2.5.4a" is what was found on the system + +# Copyright (c) 2006, David Faure, +# Copyright (c) 2007, Will Stephenson +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +# MACRO_ENSURE_VERSION_RANGE +# This macro ensures that a version number of the form +# "x.y.z" or "x.y" falls within a range defined by +# min_version <= found_version < max_version. +# If this expression holds, FOO_VERSION_OK will be set TRUE +# +# Example: MACRO_ENSURE_VERSION_RANGE3( "0.1.0" ${FOOCODE_VERSION} "0.7.0" FOO_VERSION_OK ) +# +# This macro will break silently if any of x,y,z are greater than 100. +# +# Copyright (c) 2007, Will Stephenson +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +# NORMALIZE_VERSION +# Helper macro to convert version numbers of the form "x.y.z" +# to an integer equal to 10^4 * x + 10^2 * y + z +# +# This macro will break silently if any of x,y,z are greater than 100. +# +# Copyright (c) 2006, David Faure, +# Copyright (c) 2007, Will Stephenson +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +# CHECK_RANGE_INCLUSIVE_LOWER +# Helper macro to check whether x <= y < z +# +# Copyright (c) 2007, Will Stephenson +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +MACRO(NORMALIZE_VERSION _requested_version _normalized_version) + STRING(REGEX MATCH "[^0-9]*[0-9]+\\.[0-9]+\\.[0-9]+.*" _threePartMatch "${_requested_version}") + if (_threePartMatch) + # parse the parts of the version string + STRING(REGEX REPLACE "[^0-9]*([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" _major_vers "${_requested_version}") + STRING(REGEX REPLACE "[^0-9]*[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" _minor_vers "${_requested_version}") + STRING(REGEX REPLACE "[^0-9]*[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" _patch_vers "${_requested_version}") + else (_threePartMatch) + STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+" "\\1" _major_vers "${_requested_version}") + STRING(REGEX REPLACE "[0-9]+\\.([0-9]+)" "\\1" _minor_vers "${_requested_version}") + set(_patch_vers "0") + endif (_threePartMatch) + + # compute an overall version number which can be compared at once + MATH(EXPR ${_normalized_version} "${_major_vers}*10000 + ${_minor_vers}*100 + ${_patch_vers}") +ENDMACRO(NORMALIZE_VERSION) + +MACRO(MACRO_CHECK_RANGE_INCLUSIVE_LOWER _lower_limit _value _upper_limit _ok) + if (${_value} LESS ${_lower_limit}) + set( ${_ok} FALSE ) + elseif (${_value} EQUAL ${_lower_limit}) + set( ${_ok} TRUE ) + elseif (${_value} EQUAL ${_upper_limit}) + set( ${_ok} FALSE ) + elseif (${_value} GREATER ${_upper_limit}) + set( ${_ok} FALSE ) + else (${_value} LESS ${_lower_limit}) + set( ${_ok} TRUE ) + endif (${_value} LESS ${_lower_limit}) +ENDMACRO(MACRO_CHECK_RANGE_INCLUSIVE_LOWER) + +MACRO(MACRO_ENSURE_VERSION requested_version found_version var_too_old) + NORMALIZE_VERSION( ${requested_version} req_vers_num ) + NORMALIZE_VERSION( ${found_version} found_vers_num ) + + if (found_vers_num LESS req_vers_num) + set( ${var_too_old} FALSE ) + else (found_vers_num LESS req_vers_num) + set( ${var_too_old} TRUE ) + endif (found_vers_num LESS req_vers_num) + +ENDMACRO(MACRO_ENSURE_VERSION) + +MACRO(MACRO_ENSURE_VERSION2 requested_version2 found_version2 var_too_old2) + MACRO_ENSURE_VERSION( ${requested_version2} ${found_version2} ${var_too_old2}) +ENDMACRO(MACRO_ENSURE_VERSION2) + +MACRO(MACRO_ENSURE_VERSION_RANGE min_version found_version max_version var_ok) + NORMALIZE_VERSION( ${min_version} req_vers_num ) + NORMALIZE_VERSION( ${found_version} found_vers_num ) + NORMALIZE_VERSION( ${max_version} max_vers_num ) + + MACRO_CHECK_RANGE_INCLUSIVE_LOWER( ${req_vers_num} ${found_vers_num} ${max_vers_num} ${var_ok}) +ENDMACRO(MACRO_ENSURE_VERSION_RANGE) + + -diff -Nru gpgme-1.3.1.orig/cmake/modules/MacroLogFeature.cmake gpgme-1.3.1/cmake/modules/MacroLogFeature.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/cmake/modules/MacroLogFeature.cmake gpgme-1.3.1/cmake/modules/MacroLogFeature.cmake --- gpgme-1.3.1.orig/cmake/modules/MacroLogFeature.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/cmake/modules/MacroLogFeature.cmake 2011-08-31 00:32:16.413426500 +0200 ++++ gpgme-1.3.1/cmake/modules/MacroLogFeature.cmake 2012-01-11 18:46:47.037691800 +0100 @@ -0,0 +1,157 @@ +# This file defines the Feature Logging macros. +# +# MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]]) +# Logs the information so that it can be displayed at the end +# of the configure run +# VAR : TRUE or FALSE, indicating whether the feature is supported +# FEATURE: name of the feature, e.g. "libjpeg" +# DESCRIPTION: description what this feature provides +# URL: home page +# REQUIRED: TRUE or FALSE, indicating whether the featue is required +# MIN_VERSION: minimum version number. empty string if unneeded +# COMMENTS: More info you may want to provide. empty string if unnecessary +# +# MACRO_DISPLAY_FEATURE_LOG() +# Call this to display the collected results. +# Exits CMake with a FATAL error message if a required feature is missing +# +# Example: +# +# INCLUDE(MacroLogFeature) +# +# FIND_PACKAGE(JPEG) +# MACRO_LOG_FEATURE(JPEG_FOUND "libjpeg" "Support JPEG images" "http://www.ijg.org" TRUE "3.2a" "") +# ... +# MACRO_DISPLAY_FEATURE_LOG() + +# Copyright (c) 2006, Alexander Neundorf, +# Copyright (c) 2006, Allen Winter, +# Copyright (c) 2009, Sebastian Trueg, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +IF (NOT _macroLogFeatureAlreadyIncluded) + SET(_file ${CMAKE_BINARY_DIR}/MissingRequirements.txt) + IF (EXISTS ${_file}) + FILE(REMOVE ${_file}) + ENDIF (EXISTS ${_file}) + + SET(_file ${CMAKE_BINARY_DIR}/EnabledFeatures.txt) + IF (EXISTS ${_file}) + FILE(REMOVE ${_file}) + ENDIF (EXISTS ${_file}) + + SET(_file ${CMAKE_BINARY_DIR}/DisabledFeatures.txt) + IF (EXISTS ${_file}) + FILE(REMOVE ${_file}) + ENDIF (EXISTS ${_file}) + + SET(_macroLogFeatureAlreadyIncluded TRUE) + + INCLUDE(FeatureSummary) + +ENDIF (NOT _macroLogFeatureAlreadyIncluded) + + +MACRO(MACRO_LOG_FEATURE _var _package _description _url ) # _required _minvers _comments) + + STRING(TOUPPER "${ARGV4}" _required) + SET(_minvers "${ARGV5}") + SET(_comments "${ARGV6}") + + IF (${_var}) + SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt) + ELSE (${_var}) + IF ("${_required}" STREQUAL "TRUE") + SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/MissingRequirements.txt) + ELSE ("${_required}" STREQUAL "TRUE") + SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt) + ENDIF ("${_required}" STREQUAL "TRUE") + ENDIF (${_var}) + + SET(_logtext " * ${_package}") + + IF (NOT ${_var}) + IF (${_minvers} MATCHES ".*") + SET(_logtext "${_logtext} (${_minvers} or higher)") + ENDIF (${_minvers} MATCHES ".*") + SET(_logtext "${_logtext} <${_url}>\n ") + ELSE (NOT ${_var}) + SET(_logtext "${_logtext} - ") + ENDIF (NOT ${_var}) + + SET(_logtext "${_logtext}${_description}") + + IF (NOT ${_var}) + IF (${_comments} MATCHES ".*") + SET(_logtext "${_logtext}\n ${_comments}") + ENDIF (${_comments} MATCHES ".*") +# SET(_logtext "${_logtext}\n") #double-space missing features? + ENDIF (NOT ${_var}) + + FILE(APPEND "${_LOGFILENAME}" "${_logtext}\n") + + IF(COMMAND SET_PACKAGE_INFO) # in FeatureSummary.cmake since CMake 2.8.3 + SET_PACKAGE_INFO("${_package}" "\"${_description}\"" "${_url}" "\"${_comments}\"") + ENDIF(COMMAND SET_PACKAGE_INFO) + +ENDMACRO(MACRO_LOG_FEATURE) + + +MACRO(MACRO_DISPLAY_FEATURE_LOG) + IF(COMMAND FEATURE_SUMMARY) # in FeatureSummary.cmake since CMake 2.8.3 + FEATURE_SUMMARY(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/FindPackageLog.txt + WHAT ALL) + ENDIF(COMMAND FEATURE_SUMMARY) + + SET(_missingFile ${CMAKE_BINARY_DIR}/MissingRequirements.txt) + SET(_enabledFile ${CMAKE_BINARY_DIR}/EnabledFeatures.txt) + SET(_disabledFile ${CMAKE_BINARY_DIR}/DisabledFeatures.txt) + + IF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile}) + SET(_printSummary TRUE) + ENDIF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile}) + + IF(_printSummary) + SET(_missingDeps 0) + IF (EXISTS ${_enabledFile}) + FILE(READ ${_enabledFile} _enabled) + FILE(REMOVE ${_enabledFile}) + SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following external packages were located on your system.\n-- This installation will have the extra features provided by these packages.\n-----------------------------------------------------------------------------\n${_enabled}") + ENDIF (EXISTS ${_enabledFile}) + + + IF (EXISTS ${_disabledFile}) + SET(_missingDeps 1) + FILE(READ ${_disabledFile} _disabled) + FILE(REMOVE ${_disabledFile}) + SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following OPTIONAL packages could NOT be located on your system.\n-- Consider installing them to enable more features from this software.\n-----------------------------------------------------------------------------\n${_disabled}") + ENDIF (EXISTS ${_disabledFile}) + + + IF (EXISTS ${_missingFile}) + SET(_missingDeps 1) + FILE(READ ${_missingFile} _requirements) + SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following REQUIRED packages could NOT be located on your system.\n-- You must install these packages before continuing.\n-----------------------------------------------------------------------------\n${_requirements}") + FILE(REMOVE ${_missingFile}) + SET(_haveMissingReq 1) + ENDIF (EXISTS ${_missingFile}) + + + IF (NOT ${_missingDeps}) + SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- Congratulations! All external packages have been found.") + ENDIF (NOT ${_missingDeps}) + + + MESSAGE(${_summary}) + MESSAGE("-----------------------------------------------------------------------------\n") + + + IF(_haveMissingReq) + MESSAGE(FATAL_ERROR "Exiting: Missing Requirements") + ENDIF(_haveMissingReq) + + ENDIF(_printSummary) + +ENDMACRO(MACRO_DISPLAY_FEATURE_LOG) -diff -Nru gpgme-1.3.1.orig/CMakeLists.txt gpgme-1.3.1/CMakeLists.txt +diff -Nru -x '*~' gpgme-1.3.1.orig/CMakeLists.txt gpgme-1.3.1/CMakeLists.txt --- gpgme-1.3.1.orig/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/CMakeLists.txt 2011-08-31 00:37:15.142512800 +0200 -@@ -0,0 +1,175 @@ ++++ gpgme-1.3.1/CMakeLists.txt 2012-01-11 23:11:08.976942900 +0100 +@@ -0,0 +1,207 @@ +project(gpgme) + +cmake_minimum_required(VERSION 2.6) + -+option(BUILD_STATIC "build a static version of gpgme" OFF) -+option(BUILD_TESTS "build test executables for gpgme" ON) -+option(ENABLE_ASSUAN2 "build in assuan ipc support" ON) ++option(BUILD_STATIC "build a static version of gpgme" OFF) ++option(BUILD_TESTS "build test executables for gpgme" ON) ++option(ENABLE_ASSUAN2 "build in assuan ipc support" ON) ++option(ENABLE_GPGSM "build in gpgsm support" ON) ++option(ENABLE_GPGCONF "build in gpgconf support" ON) ++option(ENABLE_G13 "build in g13 support" ON) ++option(ENABLE_UISERVER "build in uiserver support" ON) + +if(BUILD_TESTS) + enable_testing() +endif(BUILD_TESTS) + +set(NEED__FILE_OFFSET_BITS 0) +set(VERSION "\"1.3.1\"") +set(NEED_GPG_VERSION "\"2.0.17\"") +set(NEED_G13_VERSION "\"\"") +set(NEED_GPGCONF_VERSION "\"\"") +set(NEED_GPGSM_VERSION "\"\"") +set(PACKAGE "\"gpgme\"") +set(PACKAGE_BUGREPORT "\"kde-windows@kde.org\"") +set(PACKAGE_NAME "\"GnuPG made easy\"") +set(PACKAGE_STRING "\"${PACKAGE}-${VERSION}\"") +set(PACKAGE_VERSION "\"${VERSION}\"") + +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") +find_package(Gpg-Error REQUIRED) +if(ENABLE_ASSUAN2) + find_package(Assuan2) +endif(ENABLE_ASSUAN2) + +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${GPG_ERROR_INCLUDE_DIR}) + +if(WINCE) + include_directories(${GPG_ERROR_INCLUDE_DIR}/gpg-extra) + add_definitions(-DHAVE_W32CE_SYSTEM) +endif(WINCE) + +if(ASSUAN2_FOUND) + include_directories(${ASSUAN2_INCLUDES}) + set(ENABLE_ASSUAN 1) +endif(ASSUAN2_FOUND) + +include(ConfigureChecks.cmake) +include(mkstatus.cmake) + +set(gpgme_SRCS -+ src/conversion.c ++ src/conversion.c + src/get-env.c -+ src/data.c ++ src/data.c + src/data-fd.c + src/data-stream.c + src/data-mem.c + src/data-user.c -+ src/data-compat.c -+ src/signers.c ++ src/data-compat.c ++ src/signers.c + src/sig-notation.c -+ src/wait.c ++ src/wait.c + src/wait-global.c + src/wait-private.c + src/wait-user.c -+ src/op-support.c -+ src/encrypt.c ++ src/op-support.c ++ src/encrypt.c + src/encrypt-sign.c + src/decrypt.c + src/decrypt-verify.c + src/verify.c -+ src/sign.c ++ src/sign.c + src/passphrase.c + src/progress.c -+ src/key.c ++ src/key.c + src/keylist.c + src/trust-item.c + src/trustlist.c -+ src/import.c ++ src/import.c + src/export.c + src/genkey.c + src/delete.c + src/edit.c + src/getauditlog.c + src/passwd.c -+ src/engine.c ++ src/engine.c + src/engine-gpg.c -+ src/vfs-mount.c ++ src/vfs-mount.c + src/vfs-create.c -+ src/gpgconf.c -+ src/dirinfo.c -+ src/debug.c ++ src/gpgconf.c ++ src/dirinfo.c ++ src/debug.c + src/gpgme.c + src/version.c + src/error.c +) + +if(WIN32) + set(gpgme_SRCS + ${gpgme_SRCS} + src/ath.c + src/w32-util.c + src/w32-sema.c + src/w32-io.c + ) + if(WINCE) + set(gpgme_SRCS + ${gpgme_SRCS} + src/w32-ce.c + ) + endif(WINCE) + + if(MSVC) + add_definitions(-Dsnprintf=_snprintf -Dstrcasecmp=_stricmp -Dstrncasecmp=_strnicmp -wd4996 -wd4244 -wd4018) + endif(MSVC) +else(WIN32) + set(gpgme_SRCS + ${gpgme_SRCS} + src/posix-util.c + src/posix-sema.c + src/posix-io.c + ) +endif(WIN32) + +if(NOT HAVE_VASPRINTF) + set(gpgme_SRCS ${gpgme_SRCS} src/vasprintf.c) +endif(NOT HAVE_VASPRINTF) +if(NOT HAVE_STPCPY) + set(gpgme_SRCS ${gpgme_SRCS} src/stpcpy.c) +endif(NOT HAVE_STPCPY) +if(NOT HAVE_TTYNAME_R) + set(gpgme_SRCS ${gpgme_SRCS} src/ttyname_r.c) +endif(NOT HAVE_TTYNAME_R) + +if(ASSUAN2_FOUND) + set(gpgme_SRCS + ${gpgme_SRCS} + src/opassuan.c + src/engine-assuan.c + src/assuan-support.c + ) +endif(ASSUAN2_FOUND) + ++if(ENABLE_GPGSM) ++ set(gpgme_SRCS ++ ${gpgme_SRCS} ++ src/engine-gpgsm.c ++ ) ++endif(ENABLE_GPGSM) ++ ++if(ENABLE_GPGCONF) ++ set(gpgme_SRCS ++ ${gpgme_SRCS} ++ src/engine-gpgconf.c ++ ) ++endif(ENABLE_GPGCONF) ++ ++if(ENABLE_G13) ++ set(gpgme_SRCS ++ ${gpgme_SRCS} ++ src/engine-g13.c ++ ) ++endif(ENABLE_G13) ++ ++if(ENABLE_G13) ++ set(gpgme_SRCS ++ ${gpgme_SRCS} ++ src/engine-uiserver.c ++ ) ++endif(ENABLE_G13) ++ +if(BUILD_STATIC) + set(_shared STATIC) +else(BUILD_STATIC) + set(_shared SHARED) + set(gpgme_SRCS ${gpgme_SRCS} src/gpgme.def) +endif(BUILD_STATIC) + +add_library(gpgme ${_shared} ${gpgme_SRCS}) +target_link_libraries(gpgme ${GPG_ERROR_LIBRARIES}) +if(WIN32) + if(WINCE) + target_link_libraries(gpgme ws2) + else(WINCE) + target_link_libraries(gpgme ws2_32) + endif(WINCE) +endif(WIN32) + +if(ASSUAN2_FOUND) + target_link_libraries(gpgme ${ASSUAN2_LIBRARIES}) +endif(ASSUAN2_FOUND) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gpgme.h DESTINATION include) + +add_executable(gpgme-tool src/gpgme-tool.c) +add_executable(gpgme-w32spawn src/gpgme-w32spawn.c) +target_link_libraries(gpgme-tool gpgme ${GPG_ERROR_LIBRARIES} ${ASSUAN2_LIBRARIES}) +target_link_libraries(gpgme-w32spawn gpgme ${GPG_ERROR_LIBRARIES}) + +install(TARGETS gpgme gpgme-tool gpgme-w32spawn RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +if(BUILD_TESTS) + add_subdirectory(tests) +endif(BUILD_TESTS) +macro_display_feature_log() -diff -Nru gpgme-1.3.1.orig/config.h.cmake gpgme-1.3.1/config.h.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/config.h.cmake gpgme-1.3.1/config.h.cmake --- gpgme-1.3.1.orig/config.h.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/config.h.cmake 2011-08-31 00:32:16.420426900 +0200 ++++ gpgme-1.3.1/config.h.cmake 2012-01-11 18:46:47.045692300 +0100 @@ -0,0 +1,281 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Whether Assuan support is enabled */ +#cmakedefine ENABLE_ASSUAN + +/* Whether G13 support is enabled */ +#cmakedefine ENABLE_G13 + +/* Whether GPGCONF support is enabled */ +#cmakedefine ENABLE_GPGCONF + +/* Whether GPGSM support is enabled */ +#cmakedefine ENABLE_GPGSM + +/* Defined if we are building with uiserver support. */ +#cmakedefine ENABLE_UISERVER + +/* Path to the G13 binary. */ +#cmakedefine G13_PATH + +/* Path to the GPGCONF binary. */ +#cmakedefine GPGCONF_PATH + +/* Path to the GPGSM binary. */ +#cmakedefine GPGSM_PATH + +/* The default error source for GPGME. */ +#cmakedefine GPG_ERR_SOURCE_DEFAULT + +/* Path to the GnuPG binary. */ +#define GPG_PATH "C:\\Program Files (x86)\\GNU\\GnuPG\\gpg2.exe" + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H + +/* Defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2) + with special properties like no file modes */ +#cmakedefine HAVE_DOSISH_SYSTEM + +/* Define to 1 if the system has the type `error_t'. */ +#cmakedefine HAVE_ERROR_T + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FCNTL_H + +/* Define to 1 if you have the `fopencookie' function. */ +#cmakedefine HAVE_FOPENCOOKIE + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#cmakedefine HAVE_FSEEKO + +/* Define to 1 if you have the `funopen' function. */ +#cmakedefine HAVE_FUNOPEN + +/* Define to 1 if you have the `getegid' function. */ +#cmakedefine HAVE_GETEGID + +/* Define to 1 if you have the `getenv_r' function. */ +#cmakedefine HAVE_GETENV_R + +/* Define to 1 if you have the `getgid' function. */ +#cmakedefine HAVE_GETGID + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_IO_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H + +/* Define if we have Pth. */ +#cmakedefine HAVE_PTH + +/* Define if we have pthread. */ +#cmakedefine HAVE_PTHREAD + +/* Define to 1 if you have the `setenv' function. */ +#cmakedefine HAVE_SETENV + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H + +/* Define to 1 if you have the `stpcpy' function. */ +#cmakedefine HAVE_STPCPY + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_UIO_H + +/* Define if getenv() is thread-safe */ +#cmakedefine HAVE_THREAD_SAFE_GETENV + +/* Define to 1 if you have the `timegm' function. */ +#cmakedefine HAVE_TIMEGM + +/* Define if __thread is supported */ +#cmakedefine HAVE_TLS + +/* Define to 1 if you have the `ttyname_r' function. */ +#cmakedefine HAVE_TTYNAME_R + +/* Define to 1 if the system has the type `uintptr_t'. */ +#cmakedefine HAVE_UINTPTR_T + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H + +/* Define to 1 if you have the `vasprintf' function. */ +#cmakedefine HAVE_VASPRINTF + +/* Defined if we run on a W32 API based system */ +#cmakedefine HAVE_W32_SYSTEM 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#cmakedefine LT_OBJDIR + +/* used to implement the va_copy macro */ +#cmakedefine MUST_COPY_VA_BYVAL + +/* Min. needed G13 version. */ +#cmakedefine NEED_G13_VERSION @NEED_G13_VERSION@ + +/* Min. needed GPGCONF version. */ +#cmakedefine NEED_GPGCONF_VERSION @NEED_GPGCONF_VERSION@ + +/* Min. needed GPGSM version. */ +#cmakedefine NEED_GPGSM_VERSION @NEED_GPGSM_VERSION@ + +/* Min. needed GnuPG version. */ +#cmakedefine NEED_GPG_VERSION @NEED_GPG_VERSION@ + +/* Name of this package */ +#cmakedefine PACKAGE @PACKAGE@ + +/* Define to the address where bug reports for this package should be sent. */ +#cmakedefine PACKAGE_BUGREPORT @PACKAGE_BUGREPORT@ + +/* Define to the full name of this package. */ +#cmakedefine PACKAGE_NAME @PACKAGE_NAME@ + +/* Define to the full name and version of this package. */ +#cmakedefine PACKAGE_STRING @PACKAGE_STRING@ + +/* Define to the one symbol short name of this package. */ +#cmakedefine PACKAGE_TARNAME @PACKAGE_TARNAME@ + +/* Define to the home page for this package. */ +#cmakedefine PACKAGE_URL @PACKAGE_URL@ + +/* Define to the version of this package. */ +#cmakedefine PACKAGE_VERSION @PACKAGE_VERSION@ + + +/* Separators as used in $PATH. */ +#ifdef HAVE_DOSISH_SYSTEM +#define PATHSEP_C ';' +#else +#define PATHSEP_C ':' +#endif + + +/* The size of `unsigned int', as computed by sizeof. */ +#cmakedefine SIZEOF_UNSIGNED_INT + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS + +/* Defined if descriptor passing is enabled and supported */ +#cmakedefine USE_DESCRIPTOR_PASSING + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version of this package */ +#cmakedefine VERSION @VERSION@ + +/* Number of bits in a file offset, on hosts where this is settable. */ +#cmakedefine _FILE_OFFSET_BITS + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +#cmakedefine _LARGEFILE_SOURCE + +/* Define for large files, on AIX-style hosts. */ +#cmakedefine _LARGE_FILES + +/* Define to 1 if on MINIX. */ +#cmakedefine _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#cmakedefine _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#cmakedefine _POSIX_SOURCE + +/* To allow the use of GPGME in multithreaded programs we have to use + special features from the library. + IMPORTANT: gpgme is not yet fully reentrant and you should use it + only from one thread. */ +#ifndef _REENTRANT +# define _REENTRANT 1 +#endif + +/* Activate POSIX interface on MacOS X */ +#cmakedefine _XOPEN_SOURCE + +/* Define to a type to use for `error_t' if it is not otherwise available. */ +#cmakedefine error_t @error_t@ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#cmakedefine inline @inline@ +#endif + +/* Define to `long int' if does not define. */ +#cmakedefine off_t @off_t@ + +/* Define to the type of an unsigned integer type wide enough to hold a + pointer, if such a type exists, and if the system does not define it. */ +#cmakedefine uintptr_t @uintptr_t@ + + +#ifdef _MSC_VER +# include +# define stricmp _stricmp +# define strdup _strdup +# define strerror gpg_strerror +# define abort() exit(3) +#endif + +/* Definition of GCC specific attributes. */ +#if __GNUC__ > 2 +# define GPGME_GCC_A_PURE __attribute__ ((__pure__)) +#else +# define GPGME_GCC_A_PURE +#endif + + -diff -Nru gpgme-1.3.1.orig/ConfigureChecks.cmake gpgme-1.3.1/ConfigureChecks.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/ConfigureChecks.cmake gpgme-1.3.1/ConfigureChecks.cmake --- gpgme-1.3.1.orig/ConfigureChecks.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/ConfigureChecks.cmake 2011-08-31 00:32:16.422427000 +0200 ++++ gpgme-1.3.1/ConfigureChecks.cmake 2012-01-11 18:46:47.047692400 +0100 @@ -0,0 +1,98 @@ +# Configure checks for the config.h + +include(CheckIncludeFile) +include(CheckFunctionExists) +include(CheckSymbolExists) + + +check_include_file("dlfcn.h" HAVE_DLFCN_H) +check_include_file("fcntl.h" HAVE_FCNTL_H) +check_include_file("inttypes.h" HAVE_INTTYPES_H) +check_include_file("memory.h" HAVE_MEMORY_H) +check_include_file("stdint.h" HAVE_STDINT_H) +check_include_file("stdlib.h" HAVE_STDLIB_H) +check_include_file("strings.h" HAVE_STRINGS_H) +check_include_file("string.h" HAVE_STRING_H) +check_include_file("sys/select.h" HAVE_SYS_SELECT_H) +check_include_file("sys/stat.h" HAVE_SYS_STAT_H) +check_include_file("sys/types.h" HAVE_SYS_TYPES_H) +check_include_file("sys/time.h" HAVE_SYS_TIME_H) +check_include_file("sys/uio.h" HAVE_SYS_UIO_H) +check_include_file("unistd.h" HAVE_UNISTD_H) + +if(WIN32) + set(HAVE_DOSISH_SYSTEM 1) + set(HAVE_W32_SYSTEM 1) + if(WINCE) + set(uintptr_t "unsigned __int32") + endif(WINCE) +endif(WIN32) + +check_function_exists("fopencookie" HAVE_FOPENCOOKIE) +check_function_exists("funopen" HAVE_FUNOPEN) +check_function_exists("getegid" HAVE_GETEGID) +check_function_exists("getenv_r" HAVE_GETENV_R) +check_function_exists("getgid" HAVE_GETGID) +check_function_exists("setenv" HAVE_SETENV) +check_function_exists("stpcpy" HAVE_STPCPY) +check_function_exists("timegm" HAVE_TIMEGM) +check_function_exists("ttyname_r" HAVE_TTYNAME_R) +check_function_exists("vasprintf" HAVE_VASPRINTF) + +#/* Define to 1 if the system has the type `error_t'. */ +#cmakedefine HAVE_ERROR_T + +#/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#cmakedefine HAVE_FSEEKO + +#/* Define if we have Pth. */ +#cmakedefine HAVE_PTH + +#/* Define if we have pthread. */ +#cmakedefine HAVE_PTHREAD + +#/* Define if getenv() is thread-safe */ +#cmakedefine HAVE_THREAD_SAFE_GETENV + +#/* Define if __thread is supported */ +#cmakedefine HAVE_TLS + +#/* Define to 1 if the system has the type `uintptr_t'. */ +#cmakedefine HAVE_UINTPTR_T + +#/* used to implement the va_copy macro */ +#cmakedefine MUST_COPY_VA_BYVAL + +#/* The size of `unsigned int', as computed by sizeof. */ +#cmakedefine SIZEOF_UNSIGNED_INT + +#/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS + +#/* Defined if descriptor passing is enabled and supported */ +#cmakedefine USE_DESCRIPTOR_PASSING + +#/* Number of bits in a file offset, on hosts where this is settable. */ +#cmakedefine _FILE_OFFSET_BITS + +#/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +#cmakedefine _LARGEFILE_SOURCE + +#/* Define to a type to use for `error_t' if it is not otherwise available. */ +#cmakedefine error_t + +if(MSVC) + set(inline __inline) +else(MSVC) + set(inline __inline__) +endif(MSVC) + +#check_symbol_exists("off_t" "sys/types.h" off_t) +#if(NOT off_t) +# set(off_t "long int") +#endif(NOT off_t) + +add_definitions(-DHAVE_CONFIG_H) + +configure_file(config.h.cmake config.h) +configure_file(src/gpgme.h.in gpgme.h) -diff -Nru gpgme-1.3.1.orig/mkstatus.awk gpgme-1.3.1/mkstatus.awk +diff -Nru -x '*~' gpgme-1.3.1.orig/mkstatus.awk gpgme-1.3.1/mkstatus.awk --- gpgme-1.3.1.orig/mkstatus.awk 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/mkstatus.awk 2011-08-31 00:32:16.424427200 +0200 ++++ gpgme-1.3.1/mkstatus.awk 2012-01-11 18:46:47.048692500 +0100 @@ -0,0 +1,4 @@ +/GPGME_STATUS_ENTER/ { okay = 1 } +!okay { next } +/}/ { exit 0 } +/GPGME_STATUS_[A-Za-z_]*/ { sub (/,/, "", $1); printf " { \"%s\", %s },\n", substr($1,14), $1 } -diff -Nru gpgme-1.3.1.orig/mkstatus.cmake gpgme-1.3.1/mkstatus.cmake +diff -Nru -x '*~' gpgme-1.3.1.orig/mkstatus.cmake gpgme-1.3.1/mkstatus.cmake --- gpgme-1.3.1.orig/mkstatus.cmake 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/mkstatus.cmake 2011-08-31 00:32:16.427427300 +0200 ++++ gpgme-1.3.1/mkstatus.cmake 2012-01-11 18:46:47.050692600 +0100 @@ -0,0 +1,45 @@ +############## search for external tools that are needed for header generation ################### +find_program(AWK_EXECUTABLE NAMES awk gawk) + +if(NOT AWK_EXECUTABLE) + message(FATAL_ERROR "awk wasn't found. Please install it.") +else(NOT AWK_EXECUTABLE) + message(STATUS "Found awk: ${AWK_EXECUTABLE}") +endif(NOT AWK_EXECUTABLE) + +file(WRITE ${CMAKE_BINARY_DIR}/status-table.h "/* Generated automatically by mkstatus */\n" +"/* Do not edit! */\n" +"\n" +"struct status_table_s {\n" +" const char *name;\n" +" gpgme_status_code_t code;\n" +"};\n" +"\n" +"static struct status_table_s status_table[] = \n" +"{\n") + +execute_process(COMMAND ${AWK_EXECUTABLE} -f mkstatus.awk + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE _awk_output + ERROR_VARIABLE _awk_error + INPUT_FILE ${CMAKE_BINARY_DIR}/gpgme.h +) + +string(REGEX REPLACE ";" "\\\\;" contents "${_awk_output}") +string(REGEX REPLACE "\n" ";" contents "${contents}") +list(SORT contents) +foreach(line ${contents}) + file(APPEND ${CMAKE_BINARY_DIR}/status-table.h "${line}\n") +endforeach(line ${contents}) + +#message(STATUS "<${_awk_error}><${contents}>") +#awk ' +#/GPGME_STATUS_ENTER/ { okay = 1 } +#!okay { next } +#/}/ { exit 0 } +#/GPGME_STATUS_[A-Za-z_]*/ { sub (/,/, "", $1); printf " { \"%s\", %s },\n", substr($1,14), $1 } +#' | sort + +file(APPEND ${CMAKE_BINARY_DIR}/status-table.h " {NULL, 0}\n" +"};\n" +"\n") -diff -Nru gpgme-1.3.1.orig/tests/CMakeLists.txt gpgme-1.3.1/tests/CMakeLists.txt +diff -Nru -x '*~' gpgme-1.3.1.orig/tests/CMakeLists.txt gpgme-1.3.1/tests/CMakeLists.txt --- gpgme-1.3.1.orig/tests/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 -+++ gpgme-1.3.1/tests/CMakeLists.txt 2011-08-31 00:40:09.078461400 +0200 ++++ gpgme-1.3.1/tests/CMakeLists.txt 2012-01-11 18:46:47.051692600 +0100 @@ -0,0 +1,29 @@ +# gpgme tests + +set(gpgme_TESTS + t-version + t-data + t-engine-info +) + +set(gpgme_test_RUNNERS + run-keylist + run-export + run-import + run-sign + run-verify + ${gpgme_TESTS} +) + +foreach(_t ${gpgme_test_RUNNERS}) + add_executable(${_t} ${_t}.c) + target_link_libraries(${_t} gpgme) + if(ASSUAN2_FOUND) + target_link_libraries(${_t} ${ASSUAN2_LIBRARIES}) + endif(ASSUAN2_FOUND) +endforeach(_t ${gpgme_test_RUNNERS}) + +foreach(_t ${gpgme_TESTS}) + add_test(NAME ${_t} COMMAND ${_t}) + set_tests_properties(${_t} PROPERTIES WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") +endforeach(_t ${gpgme_TESTS}) diff --git a/portage/win32libs-sources/gpgme-src/gpgme-src-1510-3.py b/portage/win32libs-sources/gpgme-src/gpgme-src-1.3.1.py similarity index 97% rename from portage/win32libs-sources/gpgme-src/gpgme-src-1510-3.py rename to portage/win32libs-sources/gpgme-src/gpgme-src-1.3.1.py index 70e166ee0..37f9198d8 100644 --- a/portage/win32libs-sources/gpgme-src/gpgme-src-1510-3.py +++ b/portage/win32libs-sources/gpgme-src/gpgme-src-1.3.1.py @@ -1,42 +1,42 @@ import utils import os import info import platform import compiler class subinfo(info.infoclass): def setTargets( self ): for ver in ['1.3.0', '1.3.1']: self.targets[ver] = 'ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-' + ver + '.tar.bz2' self.targetInstSrc[ver] = 'gpgme-' + ver self.patchToApply['1.3.0'] = [('gpgme-1447-HEAD.diff', 0), ('gpgme-1.3.0-cmake.diff', 1), ('gpgme-1.3.0-20101102.diff', 1), ('gpgme-1.3.0-mingw.diff', 1)] self.patchToApply['1.3.1'] = [('gpgme-1.3.1-20110830.diff', 1), ("gpgme-1.3.1-cmake.diff", 1)] self.targets['1510'] = "download.sourceforge.net/kde-windows/gpgme-r1510.tar.bz2" self.targetInstSrc['1510'] = "gpgme-r1510" self.patchToApply['1510'] = [('gpgme-r1510-cmake.diff', 1), ('gpgme-r1510-20101205.diff', 1)] self.targetDigests['1510'] = 'bb67afb24dc95795ac2a369aafd7ef99438b90b6' self.targetDigests['1.3.0'] = '0db69082abfbbbaf86c3ab0906f5137de900da73' self.targetDigests['1.3.1'] = '7d19a95a2239da13764dad7f97541be884ec5a37' self.shortDescription = "GnuPG cryptography support library (runtime)" - self.defaultTarget = '1510' + self.defaultTarget = '1.3.1' def setDependencies( self ): self.buildDependencies['virtual/base'] = 'default' self.dependencies['win32libs-bin/gpg-error'] = 'default' self.dependencies['win32libs-bin/assuan2'] = 'default' from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__( self, **args ): self.subinfo = subinfo() CMakePackageBase.__init__( self ) if __name__ == '__main__': Package().execute() diff --git a/server/notifications.py b/server/notifications.py index b52c731d3..0f2a39aba 100644 --- a/server/notifications.py +++ b/server/notifications.py @@ -1,162 +1,161 @@ # copyright 2009 Patrick Spendrin # License: BSD import os from email.mime.text import MIMEText import common import smtplib import urllib.request, urllib.parse, urllib.error -import urllib.request, urllib.error, urllib.parse import json class Notification: """ this class is the base class for notifications """ def __init__( self, category, packageName, logfile, error=0 ): self.category = category self.logfile = logfile self.packageName = packageName # expect that if there is no error, there is no error ;-) self.error = error self.settings = common.settings.getSection( "Notification" ) self.dryRun = False def setShortLog( self ): log = open( self.logfile, 'r', encoding="windows-1252" ) logtext = log.readlines()[-20:] log.close() if self.error: self.shortLog = "".join( logtext ) else: self.shortLog = "" def run( self, revision = None ): pass class EmailNotification(Notification): """ send an email """ def run( self, revision = None ): settings = common.settings.getSection( "Email" ) if not self.error: return if settings: if self.settings and self.settings["link-url"]: logurltext = """The full log can be found here: """ + self.settings["link-url"] + """/""" + os.path.basename( self.logfile ) + """\n\n""" else: logurltext = "" self.setShortLog() # Create a text/plain message msg = MIMEText( logurltext + self.shortLog ) # me == the sender's email address # you == the recipient's email address subject = 'Build error in %s/%s on %s' % ( self.category, self.packageName, os.environ["KDECOMPILER"] ) if revision: subject += ' in revision %s' % revision.strip() msg['Subject'] = subject msg['From'] = settings["sender"] msg['To'] = settings["receivers"] if not self.dryRun: server = smtplib.SMTP( settings["server"] ) # server.set_debuglevel(True) # set debuglevel to see that mail can be sent server.starttls() server.login( settings["sender"], settings["password"] ) server.sendmail( settings["sender"], settings["receivers"], msg.as_string() ) server.quit() else: print(subject) # print msg.as_string() class DashboardNotification(Notification): """ announce a build on a dashboard """ def run( self, revision = None ): settings = common.settings.getSection( "Dashboard" ) if settings: self.setShortLog() values = dict() values['accesskey'] = settings["password"] values['category'] = self.category values['name'] = self.packageName values['platform'] = common.settings.getOption( "General", "platform" ) values['date'] = common.isodatetime values['errorlevel'] = str(self.error) values['revision'] = revision values['log'] = self.shortLog if self.settings and self.settings["link-url"]: logurltext = self.settings["link-url"] + "/" + os.path.basename( self.logfile ) else: logurltext = "" values['logUrl'] = logurltext if not self.dryRun: data = urllib.parse.urlencode( values ) req = urllib.request.Request( settings["submit-url"], data.encode() ) response = urllib.request.urlopen( req ) the_page = response.read() else: print(values["logUrl"]) class LogUploadNotification( Notification ): """ this uploads the logfile to a server - it is no real notification """ def run( self, revision = None ): settings = common.settings.getSection( "LogUpload" ) if settings: self.setShortLog() upload = common.Uploader( category="LogUpload" ) print("uploading logfile:", self.logfile, self.dryRun, upload.settings[ "server" ] + "/" + upload.settings[ "directory" ]) if not self.dryRun: upload.upload( self.logfile ) class StatusNotification(Notification): """ this writes the status of the package into a file """ def run( self, revision = None ): settings = common.settings.getSection( "StatusNotes", common.settings.getSection( "General" ) ) if settings: self.setShortLog() values = dict() values[ 'category' ] = self.category values[ 'name' ] = self.packageName values[ 'platform' ] = common.settings.getOption( "General", "platform" ) values[ 'stage' ] = common.settings.getOption( "General", "stage" ) values[ 'date' ] = common.isodatetime values[ 'failed' ] = "0" if self.error: values[ 'failed' ] = "1" values[ 'revision' ] = revision values[ 'log' ] = self.shortLog if self.settings and self.settings[ "link-url" ]: logurltext = self.settings[ "link-url" ] + "/" + os.path.basename( self.logfile ) else: logurltext = "" values[ 'logUrl' ] = logurltext filename = os.path.join( settings[ 'directory' ], self.category + "_" + self.packageName + ".json" ) if not self.dryRun: if not os.path.exists( settings[ 'directory' ] ): os.makedirs( settings[ 'directory' ] ) jsondump = open( filename, "w+", encoding="windows-1252" ) jsondump.write( json.dumps( values, sort_keys=True, indent=4 ) ) jsondump.close() else: print("writing to filename:", filename) print(json.dumps( values, sort_keys=True, indent=4 )) if __name__ == '__main__': email = EmailNotification( "kdesupport", "automoc", __file__ ) email.dryRun = True email.run() dashboard = DashboardNotification( "kdesupport", "automoc", __file__ ) dashboard.dryRun = True dashboard.run( revision="1224" ) logupload = LogUploadNotification( "kdesupport", "automoc", __file__ ) logupload.dryRun = True logupload.run( revision="1224" ) status = StatusNotification( "kdesupport", "automoc", __file__ ) # status.dryRun = True status.run( revision="1224" ) \ No newline at end of file diff --git a/server/package.py b/server/package.py index 37cb82a5d..803b07fcf 100644 --- a/server/package.py +++ b/server/package.py @@ -1,352 +1,352 @@ # copyright 2009,2010 Patrick Spendrin # License: BSD import os; import sys; import subprocess; import time; # for sleep from datetime import datetime; import socket; # extend sys.path so that we can use the emerge stuff sys.path = [ os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "bin" ) ) ] + sys.path import portage; import emergePlatform; from InstallDB import *; # our own headers from notifications import * import common def die( message ): log.write( message ) print("package.py fatal error: %s" % message, file=sys.stderr) exit( 1 ) class BuildError( Exception ): """ this exception handles the error reporting """ def __init__( self, packageName, message, logfile ): self.packageName = packageName self.messageText = message self.logfile = logfile self.revision = False self.enabled = True print("Error:", self.messageText) def __str__( self ): log = open( self.logfile, 'r', encoding="windows-1252" ) logtext = log.readlines()[-20:] log.close() return "Error:" + "".join( logtext ) class package: """ one object for each package to be build it contains all the information needed to build """ def __init__( self, category, packagename, target, patchlevel ): self.category = category self.packageName = packagename self.cleanPackageName = category + "_" + packagename self.target = target if target: self.targetString = "--target=%s " % target else: self.targetString = "" version = portage.PortageInstance.getNewestVersion( category, self.packageName ) self.target = portage.PortageInstance.getDefaultTarget( self.category, self.packageName, version ) self.patchlevel = patchlevel self.revision = None self.generalSettings = common.settings.getSection( 'General', { 'package': self.cleanPackageName, 'pkgdstdir': packageroot, 'logdstdir': logroot } ) self.logfile = outfile % (self.generalSettings["platform"], self.cleanPackageName) log = open( self.logfile, 'w+', encoding="windows-1252" ) log.close() self.notifications = { 'email': EmailNotification( self.category, self.packageName, self.logfile ), 'dashboard': DashboardNotification( self.category, self.packageName, self.logfile ), 'logupload': LogUploadNotification( self.category, self.packageName, self.logfile ), 'statusnotes': StatusNotification( self.category, self.packageName, self.logfile ) } self.enabled = common.settings.getSectionEnabled( "Build" ) self.ignoreNotifications = False if self.category in [ "win32libs-bin", "virtual", "dev-util", "gnuwin32" ]: self.ignoreNotifications = True def __str__( self ): return "%s/%s:%s-%s" % ( self.category, self.packageName, self.target, self.patchlevel ) def timestamp( self ): print(datetime.now().strftime("%m/%d/%Y %H:%M")) log = open( self.logfile, 'a+', encoding="windows-1252" ) log.write( datetime.now().strftime("%m/%d/%Y %H:%M") ) log.close() def getRevision( self ): """ runs emerge --print-revision for a specific package and returns the output """ ## this function must replaced in case we are using the emerge API directly if not self.revision: tempfile = open( os.path.join( logroot, "rev.tmp" ), "w+", encoding="windows-1252" ) tempfile.close() if not self.system( "--print-revision -q %s%s/%s" % ( self.targetString, self.category, self.packageName ), os.path.join( logroot, "rev.tmp" ) ): return "" tempfile = open( os.path.join( logroot, "rev.tmp" ), "r+", encoding="windows-1252" ) self.revision = tempfile.readline().strip() tempfile.close() os.remove( os.path.join( logroot, "rev.tmp" ) ) return self.revision def system( self, cmdstring, logfile ): """ runs an emerge command """ cmdstring = emerge + " " + cmdstring fstderr = open( logfile + ".tmp", 'w+', encoding="windows-1252" ) p = subprocess.Popen( cmdstring, shell=True, stdout=fstderr, stderr=fstderr ) ret = p.wait() log = open( logfile, 'a+', encoding="windows-1252" ) fstderr.seek( os.SEEK_SET ) for line in fstderr: log.write( line ) fstderr.close() log.close() return ( ret == 0 ) def emerge( self, cmd, addParameters = "" ): """ runs an emerge call """ print("running:", cmd, self.packageName) if self.enabled and not self.system( "--" + cmd + addParameters + " %s%s/%s" % ( self.targetString, self.category, self.packageName ), self.logfile ): self.enabled = False raise BuildError( self.cleanPackageName, "%s " % self.cleanPackageName + cmd + " FAILED", self.logfile ) def fetch( self ): """ fetches and unpacks; make sure that all packages are fetched & unpacked correctly before they are used """ self.timestamp() self.emerge( "fetch" ) def build( self ): """ builds and installs packages locally """ self.timestamp() self.emerge( "unpack" ) self.emerge( "compile", " -i" ) self.emerge( "install" ) self.emerge( "manifest" ) self.emerge( "qmerge" ) def test( self ): """ runs unittests and submits them to cdash server """ self.timestamp() self.emerge( "test" ) def package( self ): """ packages into subdirectories of the normal directory - this helps to keep the directory clean """ if not self.enabled: return if self.ignoreNotifications: return self.timestamp() os.environ["EMERGE_PKGDSTDIR"] = os.path.join( self.generalSettings["pkgdstdir"], self.cleanPackageName ) if not os.path.exists( os.environ["EMERGE_PKGDSTDIR"] ): os.mkdir( os.environ["EMERGE_PKGDSTDIR"] ) self.emerge( "package", " --patchlevel=%s" % self.patchlevel ) # cleanup behind us del os.environ["EMERGE_PKGDSTDIR"] def upload( self ): """ uploads packages to winkde server """ if not self.enabled: return if self.ignoreNotifications: return self.timestamp() print("running: upload", self.packageName) upload = common.Uploader( logfile=self.logfile ) sfupload = common.SourceForgeUploader( self.packageName, self.target, self.patchlevel, logfile=self.logfile ) pkgdir = os.path.join( self.generalSettings["pkgdstdir"], self.cleanPackageName ) if os.path.exists( pkgdir ): """ if there is a directory at the specified location, upload files that can be found there """ os.chdir( pkgdir ) filelist = os.listdir( pkgdir ) ret = 0 for entry in filelist: upload.upload( os.path.join( pkgdir, entry ) ) sfupload.upload( os.path.join( pkgdir, entry ) ) sfupload.finalize() if not ret == 0: raise BuildError( self.cleanPackageName, "%s " % self.cleanPackageName + " upload FAILED\n", self.logfile ) else: log = open( self.logfile, 'a+', encoding="windows-1252" ) log.write( "Package directory doesn't exist:\n" "Package directory is %s" % pkgdir ) general = common.settings.getSection( "General" ) emerge = "python " + os.path.join( general["kderoot"], "emerge", "bin", "emerge.py" ) # first cleanup cmdstring = emerge + " --cleanup" p = subprocess.Popen( cmdstring, shell=True ) p.wait() # first emerge base, so that the base is installed everywhere cmdstring = emerge + " base" p = subprocess.Popen( cmdstring, shell=True ) p.wait() # second check whether the kdewin-packager is installed at all ver = portage.PortageInstance.getNewestVersion( "dev-util", "kdewin-packager" ) if isDBEnabled(): isInstalled = installdb.isInstalled( "dev-util", "kdewin-packager", ver ) else: isInstalled = portage.isInstalled( "dev-util", "kdewin-packager", ver ) if not isInstalled: cmdstring = emerge + " kdewin-packager" p = subprocess.Popen( cmdstring, shell=True ) p.wait() if "logdstdir" in general: logroot = general["logdstdir"] else: logroot = os.path.join( general["kderoot"], "tmp", common.isodate, "logs" ) if "pkgdstdir" in general: packageroot = general["pkgdstdir"] else: packageroot = os.path.join( general["kderoot"], "tmp", common.isodate, "packages" ) if not os.path.exists( logroot ): os.makedirs( logroot ) if not os.path.exists( packageroot ): os.makedirs( packageroot ) outfile = os.path.join( logroot, "log-%s-%s.txt" ) packagelist = [] if len( sys.argv ) <= 1: print("please add the path to the packagelist file as only argument") time.sleep( 6 ) exit( 0 ) listfilename = sys.argv[ 1 ] packagefile = open( listfilename ) addInfo = dict() _depList = [] _runtimeDepList = [] for line in packagefile: if not line.startswith( '#' ) and len( line.strip().split( ',' ) ) == 4: cat, pac, target, patchlvl = line.strip().split( ',' ) addInfo[ cat + "/" + pac ] = ( target, patchlvl ) portage.solveDependencies( cat, pac, "", _depList, dep_type='both' ) portage.solveDependencies( cat, pac, "", _runtimeDepList, dep_type='runtime' ) packagefile.close() _depList.reverse() _runtimeDepList.reverse() runtimeDepList = [x.ident() for x in _runtimeDepList] depList = [x.ident() for x in _depList] for [cat, pac, ver, tar] in depList: target, patchlvl = '', '' if cat + "/" + pac in list(addInfo.keys()): target, patchlvl = addInfo[ cat + "/" + pac ] p = package( cat, pac, target, patchlvl ) if not [cat, pac, ver, tar] in runtimeDepList: print("could not find package %s in runtime dependencies" % pac) p.ignoreNotifications = True if isDBEnabled(): isInstalled = installdb.isInstalled( cat, pac, ver ) else: isInstalled = portage.isInstalled( cat, pac, ver ) if common.settings.getSectionEnabled("vcsrebuild"): if target == '': target = portage.PortageInstance.getDefaultTarget( cat, pac, ver ) isInstalled = isInstalled and not target in portage.PortageInstance.getUpdatableVCSTargets( cat, pac, ver ) if not isInstalled: packagelist.append( p ) common.Uploader().executeScript("prepare") for entry in packagelist: try: entry.fetch() entry.getRevision() except BuildError: entry.enabled = False for i in entry.notifications: if i == 'dashboard': continue entry.notifications[i].error = 1 entry.notifications[i].run() for entry in packagelist: try: enabled = entry.enabled if not entry.ignoreNotifications: entry.notifications['dashboard'].error = 2 entry.notifications['dashboard'].run( entry.getRevision() ) entry.notifications['dashboard'].error = 0 entry.build() except BuildError: entry.enabled = False for i in entry.notifications: entry.notifications[i].error = 1 finally: for i in entry.notifications: if enabled and not entry.ignoreNotifications: entry.notifications[i].run( entry.getRevision() ) if "localbotnotificationport" in general: port = int( general["localbotnotificationport"] ) try: s = socket.socket() s.connect( ( socket.gethostname(), port ) ) - s.send( "BUILDFINISHED %s %s\r\n" % ( general[ "platform" ], general[ "stage" ] ) ); - s.send( "QUIT\r\n" ) + s.send( ("BUILDFINISHED %s %s\r\n" % ( general[ "platform" ], general[ "stage" ] )).encode("UTF-8") ) + s.send( ("QUIT\r\n" ).encode("UTF-8") ) s.close() print("send bot command BUILDFINISHED %s %s to %s:%s" % ( general[ "platform" ], general[ "stage" ], socket.gethostname(), port )) except socket.error: print("failed to send BUILDFINISHED to Bot on localhost:%s" % port) else: print("disabled bot communication") for entry in packagelist: try: enabled = entry.enabled entry.package() except BuildError: entry.enabled = False for i in entry.notifications: if i == 'dashboard': continue entry.notifications[i].error = 1 if enabled and not entry.ignoreNotifications: entry.notifications[i].run( entry.getRevision() ) for entry in packagelist: try: enabled = entry.enabled entry.upload() except BuildError: entry.enabled = False for i in entry.notifications: if i == 'dashboard': continue entry.notifications[i].error = 1 if enabled and not entry.ignoreNotifications: entry.notifications[i].run( entry.getRevision() ) common.Uploader().executeScript("finish") depscript = os.path.join( general["kderoot"], "emerge", "bin", "dependencies.py" ) platform = general[ "platform" ] stage = general[ "stage" ] cmdstring = "python " + depscript + " -d runtime -o dependencies-%s-%s -f %s" % ( stage, platform, listfilename ) p = subprocess.Popen( cmdstring, shell=True ) p.wait() diff --git a/server/serverconfig/packagelist-win32libs.txt b/server/serverconfig/packagelist-win32libs.txt index 819196a1a..2d4c19912 100644 --- a/server/serverconfig/packagelist-win32libs.txt +++ b/server/serverconfig/packagelist-win32libs.txt @@ -1,80 +1,80 @@ # this is the package list for the automatic win32libs builds # syntax: # category,package,target,patchlevel # e.g.: # win32libs-sources,dbus-src,1.4.0,1 # is equivalent to emerge --target=1.4.0 --patchlevel=1 win32libs-sources/dbus-src # win32libs-sources,win_iconv-src,, win32libs-sources,zlib-src,,1 win32libs-sources,gettext-src,, win32libs-sources,libxml2-src,,1 win32libs-sources,shared-mime-info-src,,1 win32libs-sources,libxslt-src,,1 win32libs-sources,expat-src,, -win32libs-sources,dbus-src,1.4.10, -win32libs-sources,dbus-src,gitHEAD, +win32libs-sources,dbus-src,1.4.16, +#win32libs-sources,dbus-src,gitHEAD, win32libs-sources,jpeg-src,, win32libs-sources,lcms-src,,2 win32libs-sources,libbzip2-src,, win32libs-sources,libidn-src,,5 win32libs-sources,libpng-src,, win32libs-sources,tiff-src,, win32libs-sources,jasper-src,, win32libs-sources,giflib-src,, win32libs-sources,pcre-src,, win32libs-sources,aspell-src,,3 win32libs-sources,sqlite-src,, win32libs-sources,libcurl-src,, win32libs-sources,openssl-src,, win32libs-sources,libssh-src,,1 win32libs-sources,exiv2-src,,2 win32libs-sources,boost-headers-src,, win32libs-sources,boost-bjam-src,, -win32libs-sources,boost-python-src,, +win32libs-sources,boost-python-src,,1 win32libs-sources,boost-program-options-src,, win32libs-sources,boost-thread-src,, win32libs-sources,boost-system-src,, win32libs-sources,chm-src,, win32libs-sources,djvu-src,, win32libs-sources,libzip-src,, win32libs-sources,ebook-tools-src,,1 win32libs-sources,libspectre-src,, win32libs-sources,cyrus-sasl-src,, win32libs-sources,libical-src,, win32libs-sources,gpg-error-src,, win32libs-sources,assuan2-src,, win32libs-sources,gpgme-src,,2 win32libs-sources,clucene-core-src,, win32libs-sources,libfftw-src,, win32libs-sources,libogg-src,, win32libs-sources,libvorbis-src,, win32libs-sources,libsndfile-src,, win32libs-sources,libsamplerate-src,, win32libs-sources,liblzma-src,, win32libs-sources,libarchive-src,, win32libs-sources,openbabel-src,,1 win32libs-sources,openslp-src,, win32libs-sources,libbfd-src,, win32libs-sources,freetype-src,,2 win32libs-sources,libmsn-src,,2 win32libs-sources,taglib-src,1.7, win32libs-sources,taglib-extras-src,, win32libs-sources,openjpeg-src,,2 win32libs-sources,libnova-src,, win32libs-sources,libopensp-src,, win32libs-sources,libofx-src,, win32libs-sources,mpir-src,, win32libs-sources,glee-src,, win32libs-sources,libwpd-src,, win32libs-sources,libwpg-src,, win32libs-sources,cryptopp-src,,1 win32libs-sources,librdf-src,, win32libs-sources,raptor2-src,, win32libs-sources,rasqal-src,, win32libs-sources,pthreads-src,, win32libs-sources,yajl-src,1.0.12, win32libs-sources,cfitsio-src,3.20,1 win32libs-sources,opencv-src,,3 win32libs-sources,ffmpeg-src,, libs,runtime,,