Merge branch 'develop' into 'master'

Some corrections

See merge request dslackw/slpkg!99
This commit is contained in:
Dimitris Zlatanidis 2023-01-09 16:01:14 +00:00
commit 8c97629ff8
6 changed files with 196 additions and 6 deletions

View file

@ -1,3 +1,9 @@
4.4.7 - 07/01/2023
Added:
- Finished report to download only
- The French manpage (Thanks to marav)
- Check if the file dowwnload
4.4.6 - 06/01/2023
Updated:
- Improve speed for dependees

156
man/slpkg-fr.1 Normal file
View file

@ -0,0 +1,156 @@
.TH slpkg 1 "Orestiada, Grèce" "slpkg 4.4.0" dslackw
.SH NOM
.P
slpkg - [OPTIONS] [COMMANDE] <packages>.
.SH SYNOPSIS
.P
slpkg [-h|-v] [update] [upgrade] [check-updates] [configs] [clean-logs] [clean-tmp] [-b, build] [-i, install] [-d, download]
[-r, remove] [-f, find] [-w, view] [-s, search] [-e, dependees] [-t, tracking] --yes, --jobs, --resolve-off,
--reinstall, --skip-installed, --full-reverse, --search
.SH DESCRIPTION
.P
\fBSlpkg\fP est un gestionnaire de paquets logiciels qui \fBinstalle\fP, \fBmet à jour\fP et \fBsupprime\fP les paquets pour les systèmes basés sur \fBSlackware\fP.
Il calcule automatiquement \fBles dépendances\fP et détermine comment doit se dérouler l'installation des paquets.
\fBSlpkg\fP facilite la maintenance de groupes de machines sans avoir à effectuer des mises à jour manuelles.
.P
\fBSlpkg\fP travaille en accord avec les standards de l'organisation \fBSlackBuilds.org\fP pour construire des paquets.
Il utilise également les instructions de \fBSlackware Linux\fP pour l'installation, la mise à jour ou la suppression des paquets.
.SH COMMANDES
.P
update
.RS
Met à jour la liste des paquets et la base de données.
.RE
.P
upgrade
.RS
Met à niveau tous les paquets installés si une version plus récente existe dans le référentiel.
.RE
.P
check-updates
.RS
Vérifie si le fichier \fBChangeLog.txt\fP du SlackBuild contient des mises à jour.
.RE
.P
configs
.RS
Modifier le fichier de configuration \fB/etc/slpkg/slpkg.toml\fP.
.RE
.P
clean-logs
.RS
Nettoie les journaux de suivi de dépendances. \fBAttention\fP, après cette procédure vous devrez supprimer les dépendances à la main.
.RE
.P
clean-tmp
.RS
Supprime tous les scripts et sources des SlackBuilds téléchargés.
.RE
.P
-b, build
.RS
Construit les scripts des Slackbuilds et les ajoute au répertoire \fB/tmp\fP.
.RE
.P
-i, install
.RS
Construit et installe les paquets dans l'ordre adéquat et enregistre également les paquets avec les dépendances à utiliser pour la suppression.
.RE
.P
-d, download
.RS
Télécharger les scripts et les sources des SlackBuilds sans les construire ni les installer.
.RE
.P
-r, remove
.RS
Supprime les paquets avec leurs dépendances s'ils ont été installés avec la méthode \fB'slpkg install'\fP.
Slpkg examine la configuration \fB'sbo_repo_tag'\fP pour trouver les paquets à supprimer.
.RE
.P
-f, find
.RS
Trouver les paquets installés par \fBSBo\fP (taggés _SBo) sur votre distribution.
.RE
.P
-w, view
.RS
Voir les paquets du dépôt et obtenir toutes les informations dans le terminal.
.RE
.P
-s, search
.RS
Rechercher les paquets.
.RE
.P
-e, dependees
.RS
Montre les dépendances du paquet.
.RE
.P
-t, tracking
.RS
Suivi des dépendances des paquets.
.RE
.SH OPTIONS
.P
--yes
.RS
Répondre \fBOui\fP à toutes les questions.
.RE
.P
--jobs
.RS
Accélération des scripts SlackBuild. Lorsque l'indicateur \fB--jobs\fP est activé, slpkg détecte automatiquement le nombre de
de processeurs et le saisit dans la variable \fBMAKEFLAGS\fP. Certains SlackBuilds échouent lorsque \fBMAKEFLAGS\fP est déclaré ou que
le nombre de processeurs (-j) est supérieur à 1.
.RE
.P
--resolve-off
.RS
Désactive la résolution des dépendances.
.RE
.P
--reinstall
.RS
Utilisez cette option si vous voulez mettre à niveau tous les paquets même si la même version est déjà installée.
Ne saute pas les paquets déjà installés.
.RE
.P
--skip-installed
.RS
Cette option est utile si vous voulez éviter de construire et de réinstaller des paquets.
Remarque : Cette option n'affecte que les dépendances.
.RE
.P
--full-reverse
.RS
Dépendances inverses complètes. Ne fonctionne qu'avec la commande \fB-e, dependees\fP et montre aussi les \fBRequires\fP.
.RE
.P
--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.
.RE
.P
-h | --help
.RS
Affiche l'aide.
.RE
.P
-v | --version
.RS
Affiche la version.
.RE
.SH FICHIERS DE CONFIGURATION
.P
Fichier de \fBconfiguration\fP : /etc/slpkg/slpkg.toml
.RE
Fichier \fBblacklist\fP : /etc/slpkg/blacklist.toml
.SH RAPPORT DE BOGUES
.P
Veuillez signaler tout bogue trouvé à \fBhttps://gitlab.com/dslackw/slpkg/-/issues\fP.
.SH AUTEUR
.P
\fBDimitris Zlatanidis\fP <d.zlatanidis@gmail.com>

View file

@ -100,8 +100,9 @@ mkdir -p $PKG/etc/$PRGNAM
install -D -m0644 configs/slpkg.toml $PKG/etc/slpkg/slpkg.toml.new
install -D -m0644 configs/blacklist.toml $PKG/etc/slpkg/blacklist.toml.new
mkdir -p $PKG/usr/man/man1
mkdir -p $PKG/usr/man/man1 mkdir -p $PKG/usr/man/fr/man1
cp man/slpkg.1 $PKG/usr/man/man1
cp man/slpkg-fr.1 $PKG/usr/man/fr/man1/slpkg.1
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz; rm $i ; done

View file

@ -39,7 +39,7 @@ class Dependees:
print(f'{self.byellow}{pkg}{self.endc}')
print(f' {self.llc}{self.hl}', end='')
if not dependees:
print(f'{self.cyan}No dependees{self.endc}')
print(f'{self.cyan} No dependees{self.endc}')
sp = ' ' * 4
for i, dep in enumerate(dependees, start=1):

View file

@ -1,8 +1,11 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time
from slpkg.configs import Configs
from slpkg.queries import SBoQueries
from slpkg.utilities import Utilities
from slpkg.downloader import Downloader
from slpkg.views.views import ViewMessage
from slpkg.models.models import session as Session
@ -15,6 +18,7 @@ class Download:
self.flags: list = flags
self.configs = Configs
self.session = Session
self.utils = Utilities()
def packages(self, slackbuilds: list):
""" Download the package only. """
@ -22,6 +26,7 @@ class Download:
view.download_packages(slackbuilds)
view.question()
start = time.time()
for sbo in slackbuilds:
file = f'{sbo}{self.configs.sbo_tar_suffix}'
location = SBoQueries(sbo).location()
@ -34,3 +39,6 @@ class Download:
for source in sources:
down_source = Downloader(self.configs.download_only, source)
down_source.download()
elapsed_time = time.time() - start
self.utils.finished_time(elapsed_time)

View file

@ -23,20 +23,34 @@ class Downloader:
self.bold = self.color['bold']
self.green = self.color['green']
self.yellow = self.color['yellow']
self.byellow = f'{self.bold}{self.yellow}'
self.red = self.color['red']
self.blue = self.color['blue']
self.endc = self.color['endc']
self.byellow = f'{self.bold}{self.yellow}'
self.bred = f'{self.bold}{self.red}'
self.progress = ProgressBar()
self.stderr = None
self.stdout = None
def wget(self):
""" Wget downloader. """
subprocess.call(f'wget {self.configs.wget_options} --directory-prefix={self.path} {self.url}',
shell=True, stderr=self.stderr, stdout=self.stdout)
output = subprocess.call(f'wget {self.configs.wget_options} --directory-prefix={self.path} {self.url}',
shell=True, stderr=self.stderr, stdout=self.stdout)
if output != 0:
raise SystemExit(output)
def check_if_downloaded(self):
""" Checks if the file downloaded. """
file = self.url.split('/')[-1]
path_file = Path(self.path, file)
if not path_file.exists():
raise SystemExit(f"\n{self.red}FAILED {self.stderr}:{self.endc} '{self.blue}{self.url}{self.endc}' "
f"to download.\n")
def download(self):
""" Starting multiprocessing download process. """
if self.configs.view_mode == 'new':
done = f' {self.byellow} Done{self.endc}'
self.stderr = subprocess.DEVNULL
self.stdout = subprocess.DEVNULL
@ -54,7 +68,10 @@ class Downloader:
# Terminate process 2 if process 1 finished
if not p1.is_alive():
print(f'{self.endc}{self.byellow} Done{self.endc}', end='')
if p1.exitcode != 0:
done = f' {self.bred} Failed{self.endc}'
self.stderr = p1.exitcode
print(f'{self.endc}{done}', end='')
p2.terminate()
# Wait until process 2 finish
@ -64,3 +81,5 @@ class Downloader:
print('\x1b[?25h')
else:
self.wget()
self.check_if_downloaded()