示例#1
0
 def update_deps(self):
     """Update dependencies dictionary with all package
     """
     onelist, dependencies = [], []
     onelist = Utils().dimensional_list(self.deps)
     dependencies = Utils().remove_dbs(onelist)
     for dep in dependencies:
         deps = Requires(self.flag).sbo(dep)
         self.deps_dict[dep] = self.one_for_all(deps)
示例#2
0
 def deps_tree(self):
     """Package dependencies image map file
     """
     dependencies = self.dependencies + [self.name]
     if self.repo == "sbo":
         for dep in dependencies:
             deps = Requires(flag="").sbo(dep)
             if dep not in self.deps_dict.values():
                 self.deps_dict[dep] = Utils().dimensional_list(deps)
     else:
         for dep in dependencies:
             deps = Dependencies(self.repo, self.black).binary(dep, flag="")
             if dep not in self.deps_dict.values():
                 self.deps_dict[dep] = Utils().dimensional_list(deps)
示例#3
0
 def repositories(self):
     """Get dependencies by repositories
     """
     if self.repo == "sbo":
         self.sbo_case_insensitive()
         self.find_pkg = sbo_search_pkg(self.name)
         if self.find_pkg:
             self.dependencies_list = Requires(self.flag).sbo(self.name)
     else:
         PACKAGES_TXT = Utils().read_file(
             self.meta.lib_path + "{0}_repo/PACKAGES.TXT".format(self.repo))
         self.names = Utils().package_name(PACKAGES_TXT)
         self.bin_case_insensitive()
         self.find_pkg = search_pkg(self.name, self.repo)
         if self.find_pkg:
             self.black = BlackList().packages(self.names, self.repo)
             self.dependencies_list = Dependencies(
                 self.repo, self.black).binary(self.name, self.flag)
示例#4
0
    def start(self, is_upgrade):
        """Start view, build and install SBo packages
        """
        tagc = ""
        self.is_upgrade = is_upgrade
        self.case_insensitive()
        for _sbo in self.slackbuilds:
            status(0.03)
            if _sbo in self.data and _sbo not in self.blacklist:
                sbo_deps = Requires(self.flag).sbo(_sbo)
                self.deps += sbo_deps
                self.deps_dict[_sbo] = self.one_for_all(sbo_deps)
                self.package_found.append(_sbo)
            else:
                self.package_not_found.append(_sbo)
        self.update_deps()

        if not self.package_found:
            self.match = True
            self.matching()

        self.master_packages, mas_src = self.sbo_version_source(
            self.package_found)
        self.msg.done()
        if (self.meta.rsl_deps in ["on", "ON"] and self.flag != "--resolve-off"
                and not self.match):
            self.msg.resolving()
        self.dependencies, dep_src = self.sbo_version_source(
            self.one_for_all(self.deps))
        if (self.meta.rsl_deps in ["on", "ON"] and self.flag != "--resolve-off"
                and not self.match):
            self.msg.done()
        self.clear_masters()

        if self.package_found:
            print("\nThe following packages will be automatically "
                  "installed or upgraded \nwith new version:\n")
            self.top_view()
            self.msg.upg_inst(self.is_upgrade)

            # view master packages
            for sbo, arch in zip(self.master_packages, mas_src):
                tagc = self.tag(sbo)
                name = "-".join(sbo.split("-")[:-1])
                self.view_packages(tagc, name,
                                   sbo.split("-")[-1], self.select_arch(arch))
            self.view_installing_for_deps()

            # view dependencies
            for dep, arch in zip(self.dependencies, dep_src):
                tagc = self.tag(dep)
                name = "-".join(dep.split("-")[:-1])
                self.view_packages(tagc, name,
                                   dep.split("-")[-1], self.select_arch(arch))

            count_total = sum([self.count_ins, self.count_upg, self.count_uni])
            print("\nInstalling summary")
            print("=" * 79)
            print("{0}Total {1} {2}.".format(self.meta.color["GREY"],
                                             count_total,
                                             self.msg.pkg(count_total)))
            print("{0} {1} will be installed, {2} already installed and "
                  "{3} {4}".format(self.count_uni,
                                   self.msg.pkg(self.count_uni),
                                   self.count_ins, self.count_upg,
                                   self.msg.pkg(self.count_upg)))
            print("will be upgraded.{0}\n".format(self.meta.color["ENDC"]))
            self.continue_to_install()
        else:
            self.msg.not_found(self.is_upgrade)
            raise SystemExit(1)