def get_build_from_file (platform, file_name, name): gub_name = file_name.replace (os.getcwd () + '/', '') logging.verbose ('reading spec: %(gub_name)s\n' % locals ()) # Ugh, FIXME # This loads gub/specs/darwin/python.py in PYTHON. namespace, # overwriting the PYTHON. namespace from gub/specs/python.py # Current workaround: always/also use __darwin etc. postfixing # of class names, also in specs/darwin/ etc. warnings.filterwarnings ('ignore', '''Parent module 'python-2' ''') module = misc.load_module (file_name, name) # cross/gcc.py:Gcc will be called: cross/Gcc.py, # to distinguish from specs/gcc.py:Gcc.py base = os.path.basename (name) class_name = ((base[0].upper () + base[1:]) .replace ('-', '_') .replace ('.', '_') .replace ('++', '_xx_') .replace ('+', '_x_') + ('-' + platform).replace ('-', '__')) logging.debug ('LOOKING FOR: %(class_name)s\n' % locals ()) cls = misc.most_significant_in_dict (module.__dict__, class_name, '__') if (platform == 'tools32' and (not cls or issubclass (cls, target.AutoBuild))): cls = misc.most_significant_in_dict (module.__dict__, class_name.replace ('tools32', 'tools'), '__') if ((platform == 'tools' or platform == 'tools32') and (issubclass (cls, target.AutoBuild) and not issubclass (cls, tools.AutoBuild) and not issubclass (cls, tools32.AutoBuild))): cls = None return cls
def get_build_class (settings, flavour, name): cls = get_build_from_module (settings, name) if not cls: logging.verbose ('making spec: %(name)s\n' % locals ()) cls = get_build_without_module (flavour, name) if cls: cls._created_name = name return cls
def calculate_checksums(self): logging.verbose('calculating checksums\n') for spec in list(self.specs.values()): name = spec.platform_name() logger = logging.NullCommandLogger() command_runner = runner.DeferredRunner(logger) spec.connect_command_runner(command_runner) spec.build(skip=['download']) spec.connect_command_runner(None) self.checksums[name] = command_runner.checksum() reason = self.spec_checksums_fail_reason(spec) if reason: self.failed_checksums[name] = reason
def calculate_checksums (self): logging.verbose ('calculating checksums\n') for spec in list (self.specs.values ()): name = spec.platform_name () logger = logging.NullCommandLogger () command_runner = runner.DeferredRunner (logger) spec.connect_command_runner (command_runner) spec.build (skip=['download']) spec.connect_command_runner (None) self.checksums[name] = command_runner.checksum () reason = self.spec_checksums_fail_reason (spec) if reason: self.failed_checksums[name] = reason
def get_build_from_file (platform, file_name, name): gub_name = file_name.replace (os.getcwd () + '/', '') logging.verbose ('reading spec: %(gub_name)s\n' % locals ()) # Ugh, FIXME # This loads gub/specs/darwin/python.py in PYTHON. namespace, # overwriting the PYTHON. namespace from gub/specs/python.py # Current workaround: always/also use __darwin etc. postfixing # of class names, also in specs/darwin/ etc. module = misc.load_module (file_name, name) # cross/gcc.py:Gcc will be called: cross/Gcc.py, # to distinguish from specs/gcc.py:Gcc.py base = os.path.basename (name) class_name = ((base[0].upper () + base[1:]) .replace ('-', '_') .replace ('.', '_') .replace ('++', '_xx_') .replace ('+', '_x_') + ('-' + platform).replace ('-', '__')) logging.debug ('LOOKING FOR: %(class_name)s\n' % locals ()) return misc.most_significant_in_dict (module.__dict__, class_name, '__')
def uninstall_package (self, name): logging.action ('uninstalling package: %s\n' % name) lst = self.package_installed_files (name) dirs = [] files = [] for i in lst: f = os.path.join (self.root, i) if os.path.islink (f): files.append (f) elif (not os.path.exists (f) and not self.is_distro): printf ('FileManager: uninstall: %s' % name) printf ('FileManager: no such file: %s' % f) elif os.path.isdir (f): dirs.append (f) else: files.append (f) for f in files: os.unlink (f) for d in reversed (dirs): try: os.rmdir (d) except OSError: logging.verbose ('warning: %(d)s not empty\n' % locals ()) for f in lst: ## fixme (?) -- when is f == '' if not f or f.endswith ('/'): continue try: del self._file_package_db[f] except: printf ('db delete failing for ', f) del self._package_file_db[name]
def uninstall_package(self, name): logging.action('uninstalling package: %s\n' % name) lst = self.package_installed_files(name) dirs = [] files = [] for i in lst: f = os.path.join(self.root, i) if os.path.islink(f): files.append(f) elif (not os.path.exists(f) and not self.is_distro): printf('FileManager: uninstall: %s' % name) printf('FileManager: no such file: %s' % f) elif os.path.isdir(f): dirs.append(f) else: files.append(f) for f in files: os.unlink(f) for d in reversed(dirs): try: os.rmdir(d) except OSError: logging.verbose('warning: %(d)s not empty\n' % locals()) for f in lst: ## fixme (?) -- when is f == '' if not f or f.endswith('/'): continue try: del self._file_package_db[f] except: printf('db delete failing for ', f) del self._package_file_db[name]