Esempio n. 1
0
def pkg_upgrade(repo, skip, flag):
    """Checking packages for upgrade
    """
    Msg().checking()
    PACKAGES_TXT = RepoInit(repo).fetch()[0]
    pkgs_for_upgrade = []
    # name = data[0]
    # location = data[1]
    # size = data[2]
    # unsize = data[3]
    data = repo_data(PACKAGES_TXT, repo, flag="")
    for pkg in installed():
        status(0.0005)
        inst_pkg = split_package(pkg)
        for name in data[0]:
            if name:  # this tips because some pkg_name is empty
                repo_pkg = split_package(name[:-4])
            if (repo_pkg[0] == inst_pkg[0]
                    and LooseVersion(repo_pkg[1]) > LooseVersion(inst_pkg[1])
                    and repo_pkg[3] >= inst_pkg[3] and inst_pkg[0] not in skip
                    and repo_pkg[1] != "blacklist"):
                pkgs_for_upgrade.append(repo_pkg[0])
    Msg().done()
    if "--checklist" in flag:
        pkgs_for_upgrade = choose_upg(pkgs_for_upgrade)
    return pkgs_for_upgrade
Esempio n. 2
0
 def find(self, pkg, flag):
     """Start to find packages and print
     """
     print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
         self.cyan, ", ".join(pkg), self.endc))
     Msg().template(78)
     print("| {0}  {1}{2}{3}".format("Repository", "Package", " " * 54,
                                     "Size"))
     Msg().template(78)
     for repo in _meta_.repositories:
         PACKAGES_TXT = PackageManager(pkg).list_lib(repo)
         packages, sizes = PackageManager(pkg).list_greps(
             repo, PACKAGES_TXT)
         for find, size in zip(packages, sizes):
             for p in pkg:
                 if "--case-ins" in flag:
                     self.p_cache = p.lower()
                     self.find_cache = find.lower()
                 else:
                     self.p_cache = p
                     self.find_cache = find
                 if self.p_cache in self.find_cache:
                     if self.cache != repo:
                         self.count_repo += 1
                     self.cache = repo
                     self.count_pkg += 1
                     ver = self.sbo_version(repo, find)
                     print("  {0}{1}{2}{3}{4} {5}{6:>11}".format(
                         self.cyan, repo, self.endc, " " * (12 - len(repo)),
                         find + ver, " " * (53 - len(find + ver)), size))
     print("\nFound summary")
     print("=" * 79)
     print("{0}Total found {1} packages in {2} repositories.{3}\n".format(
         self.grey, self.count_pkg, self.count_repo, self.endc))
Esempio n. 3
0
def pkg_security(pkgs):
    """Check packages before install or upgrade for security
    reasons. Configuration file in the /etc/slpkg/pkg_security"""
    security_packages = Utils().read_file("/etc/slpkg/pkg_security")
    packages = []
    for read in security_packages.splitlines():
        read = read.lstrip()
        if not read.startswith("#"):
            packages.append(read.replace("\n", ""))
    for p in pkgs:
        for pkg in packages:
            if p == pkg:
                Msg().security_pkg(p)
                if not Msg().answer() in ["y", "Y"]:
                    raise SystemExit()
Esempio n. 4
0
 def __init__(self, name, flag):
     self.name = name
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.arch = SBoArch().get()
     self.comp_tar = ".tar.gz"
     self.choice = ""
     self.FAULT = ""
     self.green = self.meta.color["GREEN"]
     self.red = self.meta.color["RED"]
     self.yellow = self.meta.color["YELLOW"]
     self.cyan = self.meta.color["CYAN"]
     self.grey = self.meta.color["GREY"]
     self.endc = self.meta.color["ENDC"]
     self.build_folder = self.meta.build_path
     self._SOURCES = self.meta.SBo_SOURCES
     self.msg.reading()
     self.data = SBoGrep(name="").names()
     self.case_insensitive()
     if "--checklist" in self.flag:
         self.with_checklist()
     grep = SBoGrep(self.name)
     self.sbo_files = grep.files()
     self.blacklist = BlackList().packages(pkgs=self.data, repo="sbo")
     self.sbo_url = sbo_search_pkg(self.name)
     if self.sbo_url:
         self.sbo_desc = grep.description()[len(self.name) + 2:-1]
         self.source_dwn = grep.source().split()
         self.sbo_req = grep.requires()
         self.sbo_dwn = SBoLink(self.sbo_url).tar_gz()
         self.sbo_version = grep.version()
         self.dwn_srcs = self.sbo_dwn.split() + self.source_dwn
     if "--checklist" not in self.flag or not self.sbo_url and self.name:
         self.msg.done()
Esempio n. 5
0
 def __init__(self, slackbuilds, flag):
     self.slackbuilds = slackbuilds
     pkg_security(self.slackbuilds)
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.arch = SBoArch().get()
     self.build_folder = self.meta.build_path
     self._SOURCES = self.meta.SBo_SOURCES
     for fl in self.flag:
         if fl.startswith("--directory-prefix="):
             self.build_folder = fl.split("=")[1]
             if not self.build_folder.endswith("/"):
                 self.build_folder += "/"
     self.unst = ["UNSUPPORTED", "UNTESTED"]
     self.master_packages = []
     self.deps = []
     self.dependencies = []
     self.package_not_found = []
     self.package_found = []
     self.deps_dict = {}
     self.answer = ""
     self.match = False
     self.count_ins = 0
     self.count_upg = 0
     self.count_uni = 0
     self.msg.reading()
     self.data = SBoGrep(name="").names()
     self.blacklist = BlackList().packages(pkgs=self.data, repo="sbo")
Esempio n. 6
0
 def __init__(self, mode):
     self.mode = mode
     self.meta = _meta_
     self.msg = Msg()
     self.pkg_path = _meta_.pkg_path
     self.installed = []
     self.cn = 0
Esempio n. 7
0
 def __init__(self, repo):
     self.repo = repo
     self.meta = _meta_
     self.msg = Msg()
     self.check = 2
     self.st = ""
     self.count_repo = 0
     self.count_news = 0
     self._init = Initialization(True)
     self.all_repos = {
         "slack": self._init.slack,
         "sbo": self._init.sbo,
         "rlw": self._init.rlw,
         "alien": self._init.alien,
         "slacky": self._init.slacky,
         "conrad": self._init.conrad,
         "slonly": self._init.slonly,
         "ktown": self._init.ktown,
         "multi": self._init.multi,
         "slacke": self._init.slacke,
         "salix": self._init.salix,
         "slackl": self._init.slackl,
         "rested": self._init.rested,
         "msb": self._init.msb,
         "csb": self._init.csb,
         "connos": self._init.msb,
         "mles": self._init.mles
     }
Esempio n. 8
0
 def __init__(self, packages, repo, flag):
     self.packages = packages
     pkg_security(packages)
     self.repo = repo
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.version = self.meta.slack_rel
     self.tmp_path = self.meta.slpkg_tmp_packages
     for fl in self.flag:
         if fl.startswith("--directory-prefix="):
             self.tmp_path = fl.split("=")[1]
             if not self.tmp_path.endswith("/"):
                 self.tmp_path += "/"
     self.dwn, self.dep_dwn = [], []
     self.install, self.dep_install = [], []
     self.comp_sum, self.dep_comp_sum = [], []
     self.uncomp_sum, self.dep_uncomp_sum = [], []
     self.dependencies = []
     self.deps_dict = {}
     self.answer = ""
     self.msg.reading()
     self.PACKAGES_TXT, self.mirror = RepoInit(self.repo).fetch()
     self.data = repo_data(self.PACKAGES_TXT, self.repo, self.flag)
     self.repo_pkg_names = []
     for name in self.data[0]:
         self.repo_pkg_names.append(split_package(name)[0])
     self.blacklist = BlackList().packages(self.data[0], self.repo)
     self.matching = False
Esempio n. 9
0
 def __init__(self, binary):
     self.binary = binary
     self.meta = _meta_
     self.msg = Msg()
     self.skip = []
     self.size = 0
     self.unit = "Kb"
Esempio n. 10
0
 def __init__(self, packages):
     self.packages = packages
     self.meta = _meta_
     self.msg = Msg()
     self.commands = {
         "i": "installpkg",
         "u": "upgradepkg --install-new",
         "r": "upgradepkg --reinstall"
     }
Esempio n. 11
0
 def __init__(self, path, url, repo):
     self.path = path
     self.url = url
     self.repo = repo
     self.file_name = ""
     self.meta = _meta_
     self.msg = Msg()
     self.dir_prefix = ""
     self.downder = self.meta.downder
     self.downder_options = self.meta.downder_options
Esempio n. 12
0
 def __init__(self):
     self.meta = _meta_
     self.msg = Msg()
     self.red = self.meta.color["RED"]
     self.green = self.meta.color["GREEN"]
     self.endc = self.meta.color["ENDC"]
     self.br = ""
     if self.meta.use_colors in ["off", "OFF"]:
         self.br = ")"
     self.etc = "/etc/"
     self.news = []
Esempio n. 13
0
def sbo_upgrade(skip, flag):
    """Return packages for upgrade
    """
    Msg().checking()
    upgrade_names = []
    data = SBoGrep(name="").names()
    blacklist = BlackList().packages(pkgs=data, repo="sbo")
    for pkg in sbo_list():
        status(0.02)
        name = split_package(pkg)[0]
        ver = split_package(pkg)[1]
        if (name in data and name not in skip and name not in blacklist):
            sbo_package = ("{0}-{1}".format(name, SBoGrep(name).version()))
            package = ("{0}-{1}".format(name, ver))
            if LooseVersion(sbo_package) > LooseVersion(package):
                upgrade_names.append(name)
    Msg().done()
    if "--checklist" in flag:
        upgrade_names = choose_upg(upgrade_names)
    return upgrade_names
Esempio n. 14
0
 def __init__(self):
     self.meta = _meta_
     self.msg = Msg()
     self.tag = "[REPOSITORIES]"
     self.tag_line = False
     self.repositories_conf = "repositories.conf"
     self.conf = Utils().read_file(
         self.meta.conf_path + self.repositories_conf)
     self.enabled = []
     self.disabled = []
     self.selected = []
Esempio n. 15
0
def check_md5(pkg_md5, src_file):
    """MD5 Checksum
    """
    if _meta_.checkmd5 in ["on", "ON"]:
        print("")
        md5s = md5(src_file)
        if pkg_md5 != md5s:
            Msg().template(78)
            print("| MD5SUM check for {0} [ {1}FAILED{2} ]".format(
                src_file.split("/")[-1], _meta_.color["RED"],
                _meta_.color["ENDC"]))
            Msg().template(78)
            print("| Expected: {0}".format(pkg_md5))
            print("| Found: {0}".format(md5s))
            Msg().template(78)
            print("")
            if not Msg().answer() in ["y", "Y"]:
                raise SystemExit()
        else:
            Msg().template(78)
            print("| MD5SUM check for {0} [ {1}PASSED{2} ]".format(
                src_file.split("/")[-1], _meta_.color["GREEN"],
                _meta_.color["ENDC"]))
            Msg().template(78)
        print("")  # new line after pass checksum
Esempio n. 16
0
 def __init__(self, image):
     self.image = image
     self.meta = _meta_
     self.msg = Msg()
     self.grey = self.meta.color["GREY"]
     self.green = self.meta.color["GREEN"]
     self.endc = self.meta.color["ENDC"]
     self.dmap = {}
     self.count_pkg = 0
     self.count_dep = 0
     self.dep_path = self.meta.log_path + "dep/"
     self.logs = find_package("", self.dep_path)
     if not self.logs:
         self.no_logs()
     self.installed = find_package("", self.meta.pkg_path)
Esempio n. 17
0
def slack_package(prgnam):
    """Return maximum binary Slackware package from output directory
    """
    binaries, cache, binary = [], "0", ""
    for pkg in find_package(prgnam, _meta_.output):
        if pkg.startswith(prgnam) and pkg[:-4].endswith("_SBo"):
            binaries.append(pkg)
    for bins in binaries:
        if LooseVersion(bins) > LooseVersion(cache):
            binary = bins
            cache = binary
    if not binary:
        Msg().build_FAILED(prgnam)
        raise SystemExit(1)
    return ["".join(_meta_.output + binary)]
Esempio n. 18
0
 def __init__(self, name, repo, flag):
     self.name = name
     self.repo = repo
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.green = self.meta.color["GREEN"]
     self.yellow = self.meta.color["YELLOW"]
     self.cyan = self.meta.color["CYAN"]
     self.red = self.meta.color["RED"]
     self.endc = self.meta.color["ENDC"]
     self.requires = []
     self.dependencies = []
     self.dependencies_list = []
     self.deps_dict = {}
     for i in range(0, len(self.flag)):
         if self.flag[i].startswith("--graph="):
             self.image = self.flag[i].split("=")[1]
             self.flag[i] = "--graph="
Esempio n. 19
0
 def __init__(self, script, sources, path, auto):
     self.script = script
     self.sources = sources
     self.path = path
     self.auto = auto
     self.meta = _meta_
     self.msg = Msg()
     self._SOURCES = self.meta.SBo_SOURCES
     self.prgnam = self.script[:-7]
     self.log_file = "build_{0}_log".format(self.prgnam)
     self.sbo_logs = self.meta.log_path + "sbo/"
     self.build_logs = self.sbo_logs + "build_logs/"
     self.start_log_time = time.strftime("%H:%M:%S")
     self.start_time = time.time()
     if not os.path.exists(self.meta.log_path):
         os.mkdir(self.meta.log_path)
     if not os.path.exists(self.sbo_logs):
         os.mkdir(self.sbo_logs)
     if not os.path.exists(self.build_logs):
         os.mkdir(self.build_logs)
Esempio n. 20
0
 def __init__(self, name, repo, paint):
     self.name = name
     self.repo = repo
     self.paint = paint
     self.meta = _meta_
     self.msg = Msg()
     self.COLOR = ""
     self.lib = ""
     color_text = {
         "red": self.meta.color["RED"],
         "green": self.meta.color["GREEN"],
         "yellow": self.meta.color["YELLOW"],
         "cyan": self.meta.color["CYAN"],
         "grey": self.meta.color["GREY"],
         "": ""
     }
     self.COLOR = color_text[self.paint]
     if self.repo in self.meta.repositories and self.repo != "sbo":
         self.lib = self.meta.lib_path + "{0}_repo/PACKAGES.TXT".format(
             self.repo)
Esempio n. 21
0
 def __init__(self, skip, flag):
     self.skip = skip
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.version = self.meta.slack_rel
     self.patch_path = self.meta.slpkg_tmp_patches
     self.pkg_for_upgrade = []
     self.dwn_links = []
     self.upgrade_all = []
     self.count_added = 0
     self.count_upg = 0
     self.upgraded = []
     self.installed = []
     self.comp_sum = []
     self.uncomp_sum = []
     self.utils = Utils()
     self.msg.checking()
     if self.version == "stable":
         self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT",
                                         "patches/")).reading()
     else:
         self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT", "")).reading()
Esempio n. 22
0
    def __init__(self, args):
        self.args = args
        self.meta = _meta_
        self.msg = Msg()
        self.commands = [
            "update", "upgrade", "repo-add", "repo-remove", "repo-enable",
            "repo-list", "repo-info", "update-slpkg", "health", "deps-status",
            "new-config"
        ]

        # checking if repositories exists
        enabled_repos = _meta_.repositories
        if len(self.args) > 1:
            repo = check_exists_repositories(args[1])
        if len(self.args) > 1 and self.args[0] in [
                "-c", "--check", "-l", "--list", "-c", "--check", "-s",
                "--sync", "-t", "--tracking", "-p", "--desc", "-F", "--FIND",
                "-f", "--find"
        ] and self.args[1] == repo and repo in enabled_repos:
            print("\n  Please update packages lists. Run 'slpkg update'.\n" +
                  "  This command should be used to synchronize packages\n" +
                  "  lists from the repositories are enabled.\n")
            raise SystemExit()
Esempio n. 23
0
 def __init__(self):
     self.meta = _meta_
     self.msg = Msg()
     self.all_repos = Repo().default_repository()
     self.all_repos["slack"] = Repo().slack()
     self.all_repos.update(Repo().custom_repository())