Exemple #1
0
        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()
Exemple #2
0
    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)
Exemple #3
0
 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)
Exemple #4
0
 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)