From 5fbd20085afa8622d21dd177255672db81fc5bdc Mon Sep 17 00:00:00 2001 From: maravtdm Date: Fri, 13 Jan 2023 20:21:42 +0100 Subject: [PATCH 01/16] few bold update --- man/slpkg-fr.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/slpkg-fr.1 b/man/slpkg-fr.1 index 09a7aa84..48993aa7 100644 --- a/man/slpkg-fr.1 +++ b/man/slpkg-fr.1 @@ -131,7 +131,7 @@ Dépendances inverses complètes. Ne fonctionne qu'avec la commande \fB-e, depen --search .RS Active l'utilitaire de dialogue pour rechercher des paquets dans le référentiel. -Essayez par exemple : `slpkg install python3 --search` ou `slpkg download python3 --search` et ainsi de suite. +Essayez par exemple : \fB`slpkg install python3 --search`\fP ou \fB`slpkg download python3 --search`\fP et ainsi de suite. .RE .P -h | --help From 9185b1c1a7fc1d2d140f49b39eebef585de2f684 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 13 Jan 2023 22:41:27 +0200 Subject: [PATCH 02/16] Updated for version 4.4.9 --- ChangeLog.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog.txt b/ChangeLog.txt index b1424cac..4def4831 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,7 @@ +4.4.9 - 13/01/2023 +Updated: +- Color highlight for installed packages + 4.4.8 - 12/01/2023 Added: - Error ascii box for checksum From 262c4e5d2e2a22b8737f7203b0ef2dafa63eb9b9 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 13 Jan 2023 23:37:33 +0200 Subject: [PATCH 03/16] Moved compare to utilities --- slpkg/upgrade.py | 5 +---- slpkg/utilities.py | 6 ++++++ slpkg/views/views.py | 8 ++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/slpkg/upgrade.py b/slpkg/upgrade.py index 0bbbaac7..7b47e4b7 100644 --- a/slpkg/upgrade.py +++ b/slpkg/upgrade.py @@ -1,9 +1,6 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- - -from distutils.version import LooseVersion - from slpkg.configs import Configs from slpkg.queries import SBoQueries from slpkg.utilities import Utilities @@ -38,7 +35,7 @@ class Upgrade: inst_ver = self.utils.split_installed_pkg(pkg)[1] repo_ver = SBoQueries(inst_pkg_name).version() - if LooseVersion(repo_ver) > LooseVersion(inst_ver): + if self.utils.is_repo_version_bigger(repo_ver, inst_ver): requires += Requires(inst_pkg_name).resolve() upgrade.append(inst_pkg_name) diff --git a/slpkg/utilities.py b/slpkg/utilities.py index eba30100..b2d33d5f 100644 --- a/slpkg/utilities.py +++ b/slpkg/utilities.py @@ -5,6 +5,7 @@ import time import shutil import tarfile from pathlib import Path +from distutils.version import LooseVersion from slpkg.configs import Configs from slpkg.blacklist import Blacklist @@ -87,3 +88,8 @@ class Utilities: print(f'\n{self.yellow}Finished Successfully:{self.endc}', time.strftime(f'[{self.cyan}%H:%M:%S{self.endc}]', time.gmtime(elapsed_time))) + + @staticmethod + def is_repo_version_bigger(repository_version, installed_version): + """ Compare two versions. """ + return LooseVersion(repository_version) > LooseVersion(installed_version) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index a58dadb1..503cace0 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -3,7 +3,6 @@ import os from typing import Any -from distutils.version import LooseVersion from slpkg.configs import Configs from slpkg.views.ascii import Ascii @@ -41,14 +40,15 @@ class ViewMessage: def view_packages(self, package, version, mode): """ Printing the main packages. """ + is_installed = self.utils.is_installed(package) color = self.cyan - if mode == 'install' and self.utils.is_installed(package): + if mode == 'install' and is_installed: color = self.grey if mode == 'remove': color = self.red if mode == 'build': color = self.yellow - if mode == 'upgrade': + if mode == 'upgrade' and is_installed: color = self.violet self.ascii.draw_view_package(package, version, color) @@ -191,7 +191,7 @@ class ViewMessage: install += 1 elif installed and self.flag_reinstall in self.flags: upgrade += 1 - elif (installed and LooseVersion(repo_ver) > LooseVersion(inst_ver) and + elif (installed and self.utils.is_repo_version_bigger(repo_ver, inst_ver) and self.flag_reinstall not in self.flags): upgrade += 1 elif installed and option == 'remove': From 28e7d3e6d71d32553a3f857c54caa45552d50b43 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 00:03:51 +0200 Subject: [PATCH 04/16] Fixed for upgrade --- ChangeLog.txt | 2 ++ slpkg/slackbuild.py | 10 +--------- slpkg/upgrade.py | 4 +--- slpkg/utilities.py | 11 ++++++++--- slpkg/views/views.py | 10 ++++------ 5 files changed, 16 insertions(+), 21 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 4def4831..4bcf4011 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,8 @@ 4.4.9 - 13/01/2023 Updated: - Color highlight for installed packages +Fixed: +- Upgarde packages 4.4.8 - 12/01/2023 Added: diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 1c444837..a297eaea 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -7,7 +7,6 @@ import subprocess from pathlib import Path from collections import OrderedDict -from distutils.version import LooseVersion from multiprocessing import Process, cpu_count from slpkg.checksum import Md5sum @@ -155,14 +154,7 @@ class Slackbuilds: package = self.utils.is_installed(sbo) - if package: - inst_ver = self.utils.split_installed_pkg(package)[1] - - repo_ver = SBoQueries(sbo).version() - - if (self.mode == 'install' and LooseVersion(repo_ver) > LooseVersion(inst_ver) or - self.mode == 'upgrade' and package and LooseVersion(repo_ver) > LooseVersion(inst_ver) or - package and self.flag_reinstall in self.flags and self.mode == 'install' or self.mode == 'build'): + if not package or self.utils.is_repo_version_bigger(sbo) or self.mode == 'build': file = f'{sbo}{self.configs.sbo_tar_suffix}' diff --git a/slpkg/upgrade.py b/slpkg/upgrade.py index 7b47e4b7..e54d57a3 100644 --- a/slpkg/upgrade.py +++ b/slpkg/upgrade.py @@ -32,10 +32,8 @@ class Upgrade: and inst_pkg_name not in black): if inst_pkg_name in repo_packages: - inst_ver = self.utils.split_installed_pkg(pkg)[1] - repo_ver = SBoQueries(inst_pkg_name).version() - if self.utils.is_repo_version_bigger(repo_ver, inst_ver): + if self.utils.is_repo_version_bigger(inst_pkg_name): requires += Requires(inst_pkg_name).resolve() upgrade.append(inst_pkg_name) diff --git a/slpkg/utilities.py b/slpkg/utilities.py index b2d33d5f..a4f5173f 100644 --- a/slpkg/utilities.py +++ b/slpkg/utilities.py @@ -8,6 +8,7 @@ from pathlib import Path from distutils.version import LooseVersion from slpkg.configs import Configs +from slpkg.queries import SBoQueries from slpkg.blacklist import Blacklist @@ -89,7 +90,11 @@ class Utilities: time.strftime(f'[{self.cyan}%H:%M:%S{self.endc}]', time.gmtime(elapsed_time))) - @staticmethod - def is_repo_version_bigger(repository_version, installed_version): + def is_repo_version_bigger(self, package): """ Compare two versions. """ - return LooseVersion(repository_version) > LooseVersion(installed_version) + installed = self.is_installed(package) + if installed: + installed_version = self.split_installed_pkg(installed)[1] + repository_version = SBoQueries(package).version() + + return LooseVersion(repository_version) > LooseVersion(installed_version) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 503cace0..e342a563 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -44,11 +44,13 @@ class ViewMessage: color = self.cyan if mode == 'install' and is_installed: color = self.grey + if mode == 'install' and self.utils.is_repo_version_bigger(package): + color = self.violet if mode == 'remove': color = self.red if mode == 'build': color = self.yellow - if mode == 'upgrade' and is_installed: + if mode == 'upgrade': color = self.violet self.ascii.draw_view_package(package, version, color) @@ -181,17 +183,13 @@ class ViewMessage: install = upgrade = remove = 0 for sbo in slackbuilds: - inst_ver = repo_ver = 0 installed = self.utils.is_installed(sbo) - if installed: - inst_ver = self.utils.split_installed_pkg(installed)[1] - repo_ver = SBoQueries(sbo).version() if not installed: install += 1 elif installed and self.flag_reinstall in self.flags: upgrade += 1 - elif (installed and self.utils.is_repo_version_bigger(repo_ver, inst_ver) and + elif (installed and self.utils.is_repo_version_bigger(sbo) and self.flag_reinstall not in self.flags): upgrade += 1 elif installed and option == 'remove': From c7b56a3b4c3f5533284eb6fbb68e890bda6e2978 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 00:05:43 +0200 Subject: [PATCH 05/16] Fixed for reinstall --- slpkg/slackbuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index a297eaea..284f92e3 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -154,7 +154,7 @@ class Slackbuilds: package = self.utils.is_installed(sbo) - if not package or self.utils.is_repo_version_bigger(sbo) or self.mode == 'build': + if not package or self.utils.is_repo_version_bigger(sbo) or self.mode == 'build' or self.flag_reinstall in self.flags: file = f'{sbo}{self.configs.sbo_tar_suffix}' From 6584f704e673cfe1a152ac44d5a41a5619dc39d7 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 17:58:59 +0200 Subject: [PATCH 06/16] Added version --- slpkg/views/views.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index e342a563..2dc541f8 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -41,9 +41,13 @@ class ViewMessage: def view_packages(self, package, version, mode): """ Printing the main packages. """ is_installed = self.utils.is_installed(package) + inst_ver = self.utils.split_installed_pkg(is_installed)[1] + color = self.cyan if mode == 'install' and is_installed: color = self.grey + if mode == 'install' and self.flag_reinstall in self.flags: + color = self.cyan if mode == 'install' and self.utils.is_repo_version_bigger(package): color = self.violet if mode == 'remove': @@ -53,6 +57,8 @@ class ViewMessage: if mode == 'upgrade': color = self.violet + package = f'{package}-{inst_ver}' + self.ascii.draw_view_package(package, version, color) def view_skipping_packages(self, sbo, version): From 80e106be2cfac072a697cd57c4df6734a0189298 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 18:00:24 +0200 Subject: [PATCH 07/16] Change color --- slpkg/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 2dc541f8..cbc56c6d 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -47,7 +47,7 @@ class ViewMessage: if mode == 'install' and is_installed: color = self.grey if mode == 'install' and self.flag_reinstall in self.flags: - color = self.cyan + color = self.yellow if mode == 'install' and self.utils.is_repo_version_bigger(package): color = self.violet if mode == 'remove': From e28fa4f3c4cb1784ef9542c2375894902b26c306 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 18:03:16 +0200 Subject: [PATCH 08/16] Bugfixes install packages --- slpkg/slackbuild.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 284f92e3..0f813f0c 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -148,13 +148,12 @@ class Slackbuilds: def download_slackbuilds_and_build(self): """ Downloads files and sources and starting the build. """ - inst_ver = '0' - for sbo in self.install_order: package = self.utils.is_installed(sbo) - if not package or self.utils.is_repo_version_bigger(sbo) or self.mode == 'build' or self.flag_reinstall in self.flags: + if (not package or self.utils.is_repo_version_bigger(sbo) or + self.mode == 'build' or self.flag_reinstall in self.flags): file = f'{sbo}{self.configs.sbo_tar_suffix}' From c34caa1b668791ade5cce547330cbba450e2bd87 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 19:53:29 +0200 Subject: [PATCH 09/16] Fixed for version --- slpkg/views/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index cbc56c6d..c9e6fbda 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -57,7 +57,8 @@ class ViewMessage: if mode == 'upgrade': color = self.violet - package = f'{package}-{inst_ver}' + if inst_ver: + package = f'{package}-{inst_ver}' self.ascii.draw_view_package(package, version, color) From e8e733173e2b6239ad2165cec54c56f8c31626f2 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 19:56:11 +0200 Subject: [PATCH 10/16] BugFixed upgrade packages --- ChangeLog.txt | 4 ++-- slpkg/main.py | 14 +++++++------- slpkg/upgrade.py | 11 ++++------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 4bcf4011..480bff4b 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,8 +1,8 @@ 4.4.9 - 13/01/2023 Updated: - Color highlight for installed packages -Fixed: -- Upgarde packages +BugFixed: +- Upgrade packages (Thanks to marav) 4.4.8 - 12/01/2023 Added: diff --git a/slpkg/main.py b/slpkg/main.py index c2e28733..22794584 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -170,15 +170,15 @@ class Argparse: for package in repo_packages: for pkg in packages: - if pkg in package: + if method == 'install' and pkg in package: repo_ver = SBoQueries(package).version() + choices += [(package, repo_ver, False)] - if method == 'upgrade': - pkg = self.utils.is_installed(package) - inst_ver = self.utils.split_installed_pkg(pkg)[1] - choices += [(package, f'{inst_ver} -> {repo_ver}', True)] - else: - choices += [(package, repo_ver, False)] + elif method == 'upgrade' and pkg == package: + repo_ver = SBoQueries(package).version() + pkg = self.utils.is_installed(package) + inst_ver = self.utils.split_installed_pkg(pkg)[1] + choices += [(package, f'{inst_ver} -> {repo_ver}', True)] if not choices: return packages diff --git a/slpkg/upgrade.py b/slpkg/upgrade.py index e54d57a3..0b1f32c4 100644 --- a/slpkg/upgrade.py +++ b/slpkg/upgrade.py @@ -28,14 +28,11 @@ class Upgrade: for pkg in installed: inst_pkg_name = self.utils.split_installed_pkg(pkg)[0] - if (pkg.endswith(self.configs.sbo_repo_tag) - and inst_pkg_name not in black): + if inst_pkg_name not in black and inst_pkg_name in repo_packages: - if inst_pkg_name in repo_packages: - - if self.utils.is_repo_version_bigger(inst_pkg_name): - requires += Requires(inst_pkg_name).resolve() - upgrade.append(inst_pkg_name) + if self.utils.is_repo_version_bigger(inst_pkg_name): + requires += Requires(inst_pkg_name).resolve() + upgrade.append(inst_pkg_name) # Clean the packages if they are dependencies for pkg in upgrade: From b74a36dc37f627457f2ba877797acafc3bd81cce Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 20:17:01 +0200 Subject: [PATCH 11/16] Fixed remove double --- slpkg/views/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index c9e6fbda..06be1577 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -130,12 +130,13 @@ class ViewMessage: dependencies += requires[0].split() if dependencies and self.flag_resolve_off not in self.flags: - dependencies = self.choose_dependencies_for_remove(dependencies) + dependencies = self.choose_dependencies_for_remove(set(dependencies)) self.ascii.draw_package_title_box('The following packages will be removed:', 'Remove Packages') for pkg in slackbuilds: - self._view_removed(pkg) + if pkg not in dependencies: + self._view_removed(pkg) if dependencies and self.flag_resolve_off not in self.flags: self.ascii.draw_middle_line() From 22c0ebd2204b3e024850302fba6205f7cf17b310 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 20:17:56 +0200 Subject: [PATCH 12/16] Fixed for list --- slpkg/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 06be1577..a550aa2b 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -130,7 +130,7 @@ class ViewMessage: dependencies += requires[0].split() if dependencies and self.flag_resolve_off not in self.flags: - dependencies = self.choose_dependencies_for_remove(set(dependencies)) + dependencies = self.choose_dependencies_for_remove(list(set(dependencies))) self.ascii.draw_package_title_box('The following packages will be removed:', 'Remove Packages') From 36f72e1bd6ccd712bbbeffaf0751849104dc700d Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 20:21:59 +0200 Subject: [PATCH 13/16] Fixed color for reinstall --- slpkg/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index a550aa2b..c9e7d604 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -46,7 +46,7 @@ class ViewMessage: color = self.cyan if mode == 'install' and is_installed: color = self.grey - if mode == 'install' and self.flag_reinstall in self.flags: + if mode == 'install' and self.flag_reinstall in self.flags and is_installed: color = self.yellow if mode == 'install' and self.utils.is_repo_version_bigger(package): color = self.violet From eb7d141ac59edeed7d6084bf6f63bc25db3e03fd Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 20:44:46 +0200 Subject: [PATCH 14/16] Fixed for main packages --- slpkg/slackbuild.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 0f813f0c..8181beee 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -88,9 +88,6 @@ class Slackbuilds: self.utils.is_installed(dep)): continue - if dep in self.slackbuilds: - self.slackbuilds.remove(dep) - self.dependencies.append(dep) # Remove duplicate packages and keeps the order. @@ -99,6 +96,11 @@ class Slackbuilds: if dependencies: self.dependencies = self.choose_dependencies(dependencies) + # Clean up the main packages if they were selected for dependencies + for dep in self.dependencies: + if dep in self.slackbuilds: + self.slackbuilds.remove(dep) + self.install_order.extend(self.dependencies) def choose_dependencies(self, dependencies: list): From 1e78d8e5bcd56a3db532f67f36fa33d0a752fdc2 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 20:55:46 +0200 Subject: [PATCH 15/16] Fixed for main packages --- slpkg/slackbuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 8181beee..3ee33732 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -135,7 +135,7 @@ class Slackbuilds: def creating_main_for_build(self): """ List with the main slackbuilds. """ - [self.install_order.append(main) for main in self.sbos.keys()] + [self.install_order.append(main) for main in self.sbos.keys() if main not in self.install_order] def view_before_build(self): """ View slackbuilds before proceed. """ From 971849336955a18a6aeeb18d0b7253a3f4e973ea Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 14 Jan 2023 21:24:33 +0200 Subject: [PATCH 16/16] Updated for version 4.4.9 Signed-off-by: Dimitris Zlatanidis --- README.rst | 4 ++-- setup.cfg | 2 +- slpkg/views/version.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 89610fbf..092c87f4 100644 --- a/README.rst +++ b/README.rst @@ -31,8 +31,8 @@ Install from the official third-party `SBo repository