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)
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)
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)
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)