def _scan(self): """ Internal scan method, executes the actual scan and retuns a raw list of AntiMatterPackage objects. """ vardb, portdb = self._get_dbs() result = [] vardb.lock() try: cpv_all = vardb.cpv_all() cpv_all.sort() for count, package in enumerate(cpv_all): count_str = "[%s of %s]" % ( count, len(cpv_all), ) try: slot, repo = vardb.aux_get(package, ["SLOT", "repository"]) except KeyError: # package vanished, can still # happen even if locked? continue atom = portage.dep.Atom("=%s:%s::%s" % (package, slot, repo), allow_wildcard=True, allow_repo=True) if self._nsargs.verbose: print_warning("%s :: %s" % (count_str, atom), back=True) key_slot = "%s:%s" % (atom.cp, atom.slot) best_visible = portage.best(portdb.match(key_slot)) if not best_visible: # dropped upstream pkg = AntiMatterPackage(vardb, portdb, atom, None, -1) result.append(pkg) if self._nsargs.verbose: print_error(" %s no longer upstream or masked" % (key_slot, )) continue cmp_res = portage.versions.pkgcmp( portage.versions.pkgsplit(best_visible), portage.versions.pkgsplit(package)) pkg = AntiMatterPackage(vardb, portdb, atom, best_visible, cmp_res) result.append(pkg) finally: vardb.unlock() if cpv_all and self._nsargs.verbose: print_generic("") return result
def _show_kernel_warnings(kernel_atom): print_info("%s %s" % (purple(kernel_atom), teal(_("has been installed.")))) print_warning( "%s: %s" % (red(_("Attention")), brown( _("some external drivers cannot work across multiple kernels.")))) print_warning(darkgreen(_("Please reboot your computer now !")))
def _get_installed_kernels(self, installed_repository): """ Return a set of kernel packages that are installed on the system. """ installed_package_ids = set() # Resolve the target kernel using the installed packages repository. # First, locate the virtual kernel package (if new virtuals are in # use.) latest_kernel, _k_rc = installed_repository.atomMatch( KERNEL_BINARY_VIRTUAL) if latest_kernel == -1: # Virtual package is not installed. # This happens when kernel packages have been moved to the new # virtual and PROVIDE is broken or no longer supported (EAPI=7?). print_warning("%s: %s %s" % ( red(_("Attention")), KERNEL_BINARY_VIRTUAL, brown( _("is not installed. Unable to resolve kernel " "packages correctly. Please use --from-running or install" "the package. Is your system up-to-date?")))) return installed_package_ids # If we have resolved the package to the virtual, we need to go # one level deep and retrieve the list of available kernel packages. # Do not assume that we hit only one kernel package when scanning, we # may have different packages in the dependency list. virtual_key = entropy.dep.dep_getkey(KERNEL_BINARY_VIRTUAL) latest_key_slot = installed_repository.retrieveKeySlot(latest_kernel) if latest_key_slot: latest_key, _unused = latest_key_slot else: # Cannot find installed package, give up. print_warning("%s: %s" % ( red(_("Attention")), brown( _("Unable to resolve the latest kernel metadata. Try again later." )))) return installed_package_ids if virtual_key == latest_key: print_info("%s: %s" % ( red(_("Resolving virtual kernel package")), KERNEL_BINARY_VIRTUAL, )) # New virtual package support. virtual_deps = installed_repository.retrieveRuntimeDependencies( latest_kernel) for virtual_dep in virtual_deps: virtual_pkg_id, _v_rc = installed_repository.atomMatch( virtual_dep) if virtual_pkg_id != -1: installed_package_ids.add(virtual_pkg_id) else: # Old virtual package detected (pre EAPI=7). Assume it's a kernel # binary. installed_package_ids.add(latest_kernel) return installed_package_ids
def _get_installed_kernels(self, installed_repository): """ Return a set of kernel packages that are installed on the system. """ installed_package_ids = set() # Resolve the target kernel using the installed packages repository. # First, locate the virtual kernel package (if new virtuals are in # use.) latest_kernel, _k_rc = installed_repository.atomMatch(KERNEL_BINARY_VIRTUAL) if latest_kernel == -1: # Virtual package is not installed. # This happens when kernel packages have been moved to the new # virtual and PROVIDE is broken or no longer supported (EAPI=7?). print_warning("%s: %s %s" % ( red(_("Attention")), KERNEL_BINARY_VIRTUAL, brown(_("is not installed. Unable to resolve kernel " "packages correctly. Please use --from-running or install" "the package. Is your system up-to-date?")))) return installed_package_ids # If we have resolved the package to the virtual, we need to go # one level deep and retrieve the list of available kernel packages. # Do not assume that we hit only one kernel package when scanning, we # may have different packages in the dependency list. virtual_key = entropy.dep.dep_getkey(KERNEL_BINARY_VIRTUAL) latest_key_slot = installed_repository.retrieveKeySlot(latest_kernel) if latest_key_slot: latest_key, _unused = latest_key_slot else: # Cannot find installed package, give up. print_warning("%s: %s" % ( red(_("Attention")), brown(_("Unable to resolve the latest kernel metadata. Try again later.")) )) return installed_package_ids if virtual_key == latest_key: print_info("%s: %s" % ( red(_("Resolving virtual kernel package")), KERNEL_BINARY_VIRTUAL, )) # New virtual package support. virtual_deps = installed_repository.retrieveRuntimeDependencies( latest_kernel) for virtual_dep in virtual_deps: virtual_pkg_id, _v_rc = installed_repository.atomMatch(virtual_dep) if virtual_pkg_id != -1: installed_package_ids.add(virtual_pkg_id) else: # Old virtual package detected (pre EAPI=7). Assume it's a kernel # binary. installed_package_ids.add(latest_kernel) return installed_package_ids
def warn_live_system(): print_warning("") print_warning(purple(_("Entropy is running off a Live System"))) print_warning( teal(_("Performance and stability could get" " severely compromised"))) print_warning("")
def warn_live_system(): print_warning("") print_warning( purple(_("Entropy is running off a Live System"))) print_warning( teal(_("Performance and stability could get" " severely compromised"))) print_warning("")
def warn_version_mismatch(): equo_ver = read_client_release() entropy_ver = etpConst['entropyversion'] if equo_ver != entropy_ver: print_warning("") print_warning("%s: %s" % ( bold(_("Entropy/Equo version mismatch")), purple(_("it could make your system explode!")),)) print_warning("(%s [equo] & %s [entropy])" % ( blue(equo_ver), blue(entropy_ver),)) print_warning("")
def warn_version_mismatch(): equo_ver = read_client_release() entropy_ver = etpConst['entropyversion'] if equo_ver != entropy_ver: print_warning("") print_warning("%s: %s" % ( bold(_("Entropy/Equo version mismatch")), purple(_("it could make your system explode!")), )) print_warning("(%s [equo] & %s [entropy])" % ( blue(equo_ver), blue(entropy_ver), )) print_warning("")
def _new_scan(self): """ Internal scan method, executes the actual scan and retuns a raw list of AntiMatterPackage objects. """ vardb, portdb = self._get_dbs() new_days_old_secs = self._nsargs.new_days_old * 3600 * 24 not_installed = self._nsargs.not_installed result = [] cp_all = portdb.cp_all() cp_all.sort() root = portdb.porttree_root for count, package in enumerate(cp_all): count_str = "[%s of %s]" % ( count, len(cp_all), ) if self._nsargs.verbose: print_warning("%s :: %s" % (count_str, package), back=True) if not not_installed: cp_dir = os.path.join(root, package) try: mtime = os.path.getmtime(cp_dir) except (OSError, IOError): mtime = 0.0 if abs(time.time() - mtime) >= new_days_old_secs: # not new enough continue best_installed = portage.best(vardb.match(package)) if best_installed: # package key is already installed, ignore continue best_visible = portage.best(portdb.match(package)) if not best_visible: # wtf? package masked? continue try: slot, repo = portdb.aux_get(best_visible, ["SLOT", "repository"]) except KeyError: # portage is scrappy continue atom = portage.dep.Atom("=%s:%s::%s" % (best_visible, slot, repo), allow_wildcard=True, allow_repo=True) pkg = AntiMatterPackage(vardb, portdb, None, atom, 1) result.append(pkg) if cp_all and self._nsargs.verbose: print_generic("") return result
def _show_kernel_warnings(kernel_atom): print_info("%s %s" % (purple(kernel_atom), teal(_("has been installed.")))) print_warning("%s: %s" % (red(_("Attention")), brown(_("some external drivers cannot work across multiple kernels.")))) print_warning(darkgreen(_("Please reboot your computer now !")))
def _scan(self): """ Internal scan method, executes the actual scan and retuns a raw list of AntiMatterPackage objects. """ vardb, portdb = self._get_dbs() result = [] vardb.lock() try: cpv_all = vardb.cpv_all() cpv_all.sort() for count, package in enumerate(cpv_all): count_str = "[%s of %s]" % ( count, len(cpv_all),) try: slot, repo = vardb.aux_get( package, ["SLOT", "repository"]) except KeyError: # package vanished, can still # happen even if locked? continue atom = portage.dep.Atom( "=%s:%s::%s" % (package, slot, repo), allow_wildcard=True, allow_repo=True) if self._nsargs.verbose: print_warning("%s :: %s" % (count_str, atom), back=True) key_slot = "%s:%s" % (atom.cp, atom.slot) best_visible = portage.best(portdb.match(key_slot)) if not best_visible: # dropped upstream pkg = AntiMatterPackage( vardb, portdb, atom, None, -1) result.append(pkg) if self._nsargs.verbose: print_error( " %s no longer upstream or masked" % (key_slot,)) continue cmp_res = portage.versions.pkgcmp( portage.versions.pkgsplit(best_visible), portage.versions.pkgsplit(package)) pkg = AntiMatterPackage( vardb, portdb, atom, best_visible, cmp_res) result.append(pkg) finally: vardb.unlock() if cpv_all and self._nsargs.verbose: print_generic("") return result
def _new_scan(self): """ Internal scan method, executes the actual scan and retuns a raw list of AntiMatterPackage objects. """ vardb, portdb = self._get_dbs() new_days_old_secs = self._nsargs.new_days_old * 3600 * 24 not_installed = self._nsargs.not_installed result = [] cp_all = portdb.cp_all() cp_all.sort() root = portdb.porttree_root for count, package in enumerate(cp_all): count_str = "[%s of %s]" % ( count, len(cp_all),) if self._nsargs.verbose: print_warning("%s :: %s" % (count_str, package), back=True) if not not_installed: cp_dir = os.path.join(root, package) try: mtime = os.path.getmtime(cp_dir) except (OSError, IOError): mtime = 0.0 if abs(time.time() - mtime) >= new_days_old_secs: # not new enough continue best_installed = portage.best(vardb.match(package)) if best_installed: # package key is already installed, ignore continue best_visible = portage.best(portdb.match(package)) if not best_visible: # wtf? package masked? continue try: slot, repo = portdb.aux_get( best_visible, ["SLOT", "repository"]) except KeyError: # portage is scrappy continue atom = portage.dep.Atom( "=%s:%s::%s" % (best_visible, slot, repo), allow_wildcard=True, allow_repo=True) pkg = AntiMatterPackage( vardb, portdb, None, atom, 1) result.append(pkg) if cp_all and self._nsargs.verbose: print_generic("") return result