def show_props(ebuild): # Use flags ebuild_use_flags = get_reduced_flags(ebuild) # parent module defined use_flags if use_flags and config.Prefs.summary.showuseflags: #debug.dprint("SUMMARY: SHOW_PROPS(); use_flags = " +str(use_flags)) final_use, use_expand_hidden, usemasked, useforced = portage_lib.get_cpv_use(ebuild) iuse_output = False myflags = filter_flags(iuse, use_expand_hidden, usemasked, useforced) if myflags != []: iuse_output = True append(_("IUSE: "), "property") append(", ".join(myflags)) nl() _usemasked = set(usemasked).intersection(abs_list(iuse)) if _usemasked: append(_("Masked flags: "), "property") show_flags(_usemasked, ebuild_use_flags) nl() _useforced = set(useforced).intersection(abs_list(iuse)) if _useforced: append(_("Forced flags: "), "property") show_flags(_useforced, ebuild_use_flags) nl() myflags = filter_flags(use_flags, use_expand_hidden, usemasked, useforced) if myflags != []: append(_("Use flags settings: "), "property") show_flags(myflags, ebuild_use_flags) nl() myflags = filter_flags(final_use, use_expand_hidden, usemasked, useforced) if myflags != [] or iuse_output: append(_("Final environment Use flags: "), "property") show_flags(myflags, ebuild_use_flags, id_overrides=True) nl(2) # Keywords if keywords and config.Prefs.summary.showkeywords: append(_("Keywords: "), "property") first_keyword = True for keyword in keywords: if not first_keyword: append(", ", "value") else: first_keyword = False append(keyword, "value") nl(2) # License if licenses and config.Prefs.summary.showlicense: append(_("License: "), "property") _licenses = licenses.split() x = 0 for license in _licenses: if license not in ["||","(",")"]: if x > 0: append( ', ') append_url(license, self.license_dir + license, "blue") x += 1 nl()
def get_versions(self): """ Build a dictionary of all versions for this package with an info list for each version info["number"] = version number only info["name"] = full ebuild name info["best"] = True if best version for this system info["best_downgrades"] = True if "best" version will downgrade info["installed"] = True if installed info["slot"] = slot number info["keywords"] = keyword list info["use_flags"] = use flag list info["stable"] = True if stable on current architecture info["hard_masked"] = True if hard masked info["available"] = False if the ebuild is no longer available """ self.verList = [] # Get all versions sorted in chronological order portage_versions = self.package.get_versions() # Get all installed versions installed = self.package.get_installed() ebuilds = portage_versions[:] for item in installed: if item not in portage_versions: ebuilds.append(item) ebuilds = ver_sort(ebuilds) # get lists of hard masked and stable versions (unstable inferred) hardmasked = self.package.get_hard_masked(check_unmask=True) nonmasked = self.package.get_versions(include_masked=False) # iterate through ebuild list and create data structure for ebuild in ebuilds: info = {} props = self.package.get_properties(ebuild) info["name"] = ebuild info["number"] = backends.portage_lib.get_version(ebuild) if ebuild == self.package.get_best_ebuild(): info["best"] = True info[ "best_downgrades"] = ebuild not in backends.portage_lib.best( installed + [ebuild]) else: info["best"] = info["best_downgrades"] = False info["installed"] = ebuild in installed info["slot"] = props.get_slot() info["keywords"] = props.get_keywords() iuse = props.get_use_flags() final_use, use_expand_hidden, usemasked, useforced = backends.portage_lib.get_cpv_use( ebuild) myflags = filter_flags(iuse, use_expand_hidden, usemasked, useforced) info["use_flags"] = abs_list(myflags) info["stable"] = ebuild in nonmasked info["hard_masked"] = ebuild in hardmasked info["available"] = ebuild in portage_versions self.verList.append(info)
def show_flags(use_flags, ebuild_use_flags, id_overrides=False, first_flag=True): """runs through the list of flags and formats and prints them""" #debug.dprint("SUMMARY: SHOW_PROPS(),show_flags(); use_flags = " +str( use_flags) + ", ebuild_use_flags = " + str(ebuild_use_flags)) #first_flag = True if id_overrides: full_list = abs_list(iuse) else: full_list = [] for flag in use_flags: if id_overrides: debug.dprint( "SUMMARY: SHOW_PROPS(),show_flags(); flag = " + str(flag) + " " + str(full_list)) else: debug.dprint( "SUMMARY: SHOW_PROPS(),show_flags(); flag = " + str(flag)) # Check to see if flag applies: flag_active = False myflag = abs_flag(flag) if myflag in ebuild_use_flags: debug.dprint( "SUMMARY: SHOW_PROPS(),show_flags(); flag in ebuild_use_flags = True" ) flag_active = True elif '-' + myflag in ebuild_use_flags: flag = '-' + myflag if not first_flag: append(", ", "value") else: first_flag = False show_flag(flag, flag_active, id_overrides) if myflag in full_list: full_list.remove(myflag) else: debug.dprint( "SUMMARY: SHOW_PROPS(),show_flags(); flag in full_list: " + myflag) if id_overrides and len(full_list): # print remaining flags for flag in full_list: if not first_flag: append(", ", "value") else: first_flag = False flag_override = False if flag in ebuild_use_flags: debug.dprint( "SUMMARY: SHOW_PROPS(),show_flags(); flag_override = True" ) flag_override = True elif '-' + flag in ebuild_use_flags: flag = '-' + flag show_flag(flag, False, flag_override)
def notebook_changed(self, widget, pointer, index): """Catch when the user changes the notebook""" package = self.package debug.dprint( "PackageNotebook notebook_changed(); self.summary.ebuild " + self.summary.ebuild + " self.loaded_version['deps'] : " + str(self.loaded_version["deps"])) if index == 1: if self.loaded_version[ "deps"] != self.summary.ebuild or not self.loaded["deps"]: debug.dprint( "PackageNotebook notebook_changed(); fill the deps view!") self.deps_view.fill_depends_tree(self.deps_view, package, self.summary.ebuild) self.loaded["deps"] = True self.loaded_version["deps"] = self.summary.ebuild elif index == 2: if not self.loaded["changelog"]: # fill in the change log #load_textfile(self.changelog, package, "changelog") self.changelog.update(self.summary.ebuild, True) self.loaded["changelog"] = True elif index == 3: debug.dprint( "PackageNotebook notebook_changed(); load installed files for: " + str(self.summary.ebuild)) if not self.loaded["installed"] or self.loaded_version[ "installed"] != self.summary.ebuild: # load list of installed files load_installed_files(self.installed_window, self.installed_files, package, self.summary.ebuild) self.loaded["installed"] = True self.loaded_version["installed"] = self.summary.ebuild elif index == 4: debug.dprint( "PackageNotebook notebook_changed(); self.summary.ebuild = " + str(self.summary.ebuild)) if not self.loaded["ebuild"] or self.loaded_version[ "ebuild"] != self.summary.ebuild: #load_textfile(self.ebuild, package, "best_ebuild") #load_textfile(self.ebuild, package, "version_ebuild", self.summary.ebuild) self.ebuild.update(self.summary.ebuild, True) self.loaded["ebuild"] = True self.loaded_version["ebuild"] = self.summary.ebuild elif index == 5: debug.dprint( "PackageNotebook notebook_changed(); self.summary.ebuild = " + str(self.summary.ebuild)) child = self.use_flag_page.get_child() if not child is None: debug.dprint("PackageNotebook: removing use_view_widget") self.use_flag_page.remove(child) frame = Gtk.VBox() ebuild = self.summary.ebuild props = self.summary.package.get_properties(ebuild) iuse = props.get_use_flags() final_use, use_expand_hidden, usemasked, useforced = backends.portage_lib.get_cpv_use( ebuild) myflags = filter_flags(iuse, use_expand_hidden, usemasked, useforced) use_flags = abs_list(myflags) self.use_flag_view = UseFlagWidget(use_flags, ebuild, None) self.use_flag_view.show() frame.pack_start(self.use_flag_view, expand=True, fill=True, padding=0) button = Gtk.Button("Save USE Flags") button.set_size_request(100, 50) button.connect('clicked', self.save_use_flags_clicked) if utils.is_root() or utils.can_gksu(): button.show() frame.pack_end(button, expand=False, fill=False, padding=2) frame.show() self.use_flag_page.add_with_viewport(frame) self.use_flag_page.show() else: for i in self.plugin_package_tabs: #Search through the plugins dictionary and select the correct one. if self.plugin_package_tabs[i][2] == index: self.plugin_package_tabs[i][0](package)