Merge branch 'develop'

This commit is contained in:
Dimitris Zlatanidis 2022-05-24 17:57:26 +03:00
commit 7c09c8497a
10 changed files with 80 additions and 129 deletions

View file

@ -1,3 +1,7 @@
3.9.8 - 12/05/2022
Updated:
- Stderr error output to auto-install packages
3.9.8 - 12/05/2022 3.9.8 - 12/05/2022
Bugfix: Bugfix:
- Flag (--repos=) TypeError: exceptions must derive from BaseException - Flag (--repos=) TypeError: exceptions must derive from BaseException

View file

@ -1,92 +1,5 @@
# Slpkg # Slpkg
##### Usage
Before you start to use slpkg need to run '`slpkg update`' to synchronize the lists of packages,
also every time you add a new repository.
To add or remove repositories you have to edit the file '`/etc/slpkg/repositories.conf`'
or run '`slpkg repo-enable`' (python3-pythondialog required).
Add custom repositories with the command '`slpkg add-repo <repository name> <URL>`' and
after run '`slpkg update`' to update package list.
View list of repositories with the command `slpkg repo-list` or get repository information
with the command '`slpkg repo-info <repository>`'.
Update slpkg itself simply run '`slpkg update slpkg`', and slpkg check from GitLab repository if the
new version is available.
Checking packages health with the command '`slpkg health`' and slpkg check if the files missing
from the package file list.
View the dependencies status with the command '`slpkg deps-status`' or draw image map dependencies
with the additional option '`--graph=[image]`'.
Manage '`.new`' configuration files with the command '`slpkg new-config`', like remove, overwrite,
merge etc.
If you have already downloaded the script and the source code you can build the package with the
command '`slpkg -a <sbo_script.tar.gz> <sources>`'.
Manage the packages in the blacklist with the command '`slpkg -b <packages> --add or --remove`'.
Add the SBo packages to the queue with the command '`slpkg -q <packages> --add or --remove`' and
manage as build, install or build and install with the command '`slpkg build or install or
build-install`'. This is very useful if you want to install multiple packages together, suffice to
add in the right order if there are dependent packages.
View list of the packages from specific repository with command '`slpkg -l <repository>`'.
Combine with the command '`grep`' to catch the results you want.
Check and upgrade your distribution or upgrade your packages with the command '`slpkg -c <repository>
--upgrade`'. Don't forget to update the packages lists before (for the '`slack`' repository it's not
necessary). This command except upgrade the packages will fix the packages with the broken
dependencies. Switch off the automatic resolve dependencies with the additional option '`--resolve-off`'.
Use '`--checklist`' option to help you to choose easy the packages. For advanced users, the
option '`--skip`' give them more power (see manpage).
The most famous command is '`slpkg -s <repository> <packages>`', this command downloads, build and
installs packages and resolve all the dependencies or switch off resolve with the option
'`--resolve-off`'. Also the additional option '`--case-ins`' help you find the packages with case
insensitive. Two new arguments, help you to rebuild '`--rebuild`' or reinstall '`--reinstall`' packages.
The last one argument '`--patches`' help you to switch in the '`patches/`' directory, only for the slack
repository.
Tracking the dependencies of a package with command '`slpkg -t <repository> <package>`', displays a
package dependency tree and also shows to you which ones are installed on your system events.
Check if the packages used from other packages with the option '`--check-deps`' or draw image map
dependencies with the additional option '`--graph=[image]`'.
Get information description of a package with the command '`slpkg -p <repository> <package>`' and
change the color of the text with the additional flag '`--color=[]`'.
View a SBo package page on your terminal with command `slpkg -n <package>` and then manage
multiple choices such read, download, build, install etc.
If you want to find a package of all the repositories, this command will solve your hands
'`slpkg -F <packages>`', it will search in all the enable repositories and will print all the
packages that match the description that you enter.
If you want to see if any packages are installed on your system enter the command
'`slpkg -f <packages>`'. The option '`--third-party`' help you to view only the third-party
packages
The next three commands '`slpkg --installpkg, --upgradepkg, --removepkg <packages>`' install, upgrade,
remove packages from your system events. Notable mention you must give in the command
'`slpkg --removepkg <packages>`' which you can remove the packages with all dependencies together
after editing configuration file '`/etc/slpkg/slpkg.conf`' (default is disable) or add additional
option '`--deps`'. Also you can check if the packages they are used as dependency with additional
option '`--check-deps`'. Option '`--tag`' allow to remove packages by TAG. Optional you can use
the dialog utility with the additional option '`--checklist`' (require python3-pythondialog). Rmove
third-party packages with the option '`--third-party`'.
The command '`slpkg -d <packages>`' is useful to print the entire contents of a package.
Some examples you will see below.
##### Slpkg Examples ##### Slpkg Examples
Enable or disable default repositories, edit '`/etc/slpkg/repositories.conf`' file or with the command. Enable or disable default repositories, edit '`/etc/slpkg/repositories.conf`' file or with the command.

View file

@ -1,26 +0,0 @@
# slpkg 3.9.8
Slpkg is a powerful software package manager that installs, updates, and removes packages on
[Slackware](http://www.slackware.com/) based systems. It automatically computes dependencies and
figures out what things should occur to install packages. Slpkg makes it easier to maintain groups
of machines without having to manually update.
Slpkg works in accordance with the standards of the organization [SlackBuilds.org](https://www.slackbuilds.org)
to builds packages. Also uses the Slackware Linux instructions for installation,
upgrading or removing packages.
What makes slpkg to distinguish it from the other tools; The user friendliness it's a primary
target as well as easy to understand and use, also use colors to highlight packages and
display warning messages, etc.
[EXAMPLES.md](https://gitlab.com/dslackw/slpkg/blob/master/EXAMPLES.md) Explore some examples.
#### Asciicast:
[<img src="https://gitlab.com/dslackw/images/raw/master/slpkg/asciicast.png" width="250">](https://asciinema.org/a/3uFNAOX8o16AmKKJDIvdezPBa)
##### Copyright
Copyright 2014-2022 © Dimitris Zlatanidis. Slackware® is a Registered Trademark of Patrick Volkerding. Linux is a Registered Trademark of Linus Torvalds.

61
README.rst Normal file
View file

@ -0,0 +1,61 @@
***********
slpkg 3.9.9
***********
Slpkg is a powerful software package manager that installs, updates, and removes packages on
`Slackware <http://www.slackware.com/>`_ based systems. It automatically computes dependencies and
figures out what things should occur to install packages. Slpkg makes it easier to maintain groups
of machines without having to manually update.
Slpkg works in accordance with the standards of the organization `SlackBuilds.org <https://www.slackbuilds.org>`_
to build packages. Also uses the Slackware Linux instructions for installation,
upgrading or removing packages.
What makes slpkg distinguish from the other tools; The user-friendliness it's a primary
target as well as easy to understand and use, also uses colours to highlight packages and
display warning messages, etc.
Look in the `EXAMPLES.md <https://gitlab.com/dslackw/slpkg/blob/master/EXAMPLES.md>`_ file to explore some examples.
Asciicast
---------
.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/asciicast.png
:target: https://asciinema.org/a/3uFNAOX8o16AmKKJDIvdezPBa
:width: 200px
Install
-------
Install from the official third party `SBo repository <https://slackbuilds.org/repository/15.0/system/slpkg/>`_, or directly from the source:
.. code-block:: bash
$ wget slpkg-3.9.9.tar.gz
$ tar xvf slpkg-3.9.9.tar.gz
$ cd slpkg-3.9.9
$ ./install.sh
Usage
-----
.. code-block:: bash
$ slpkg update
$ slpkg -s sbo install <package_name>
$ slpkg --help
Copyright
---------
Copyright 2014-2022 © Dimitris Zlatanidis.
Slackware® is a Registered Trademark of Patrick Volkerding.
Linux is a Registered Trademark of Linus Torvalds.

View file

@ -1,17 +1,17 @@
### This file was created to explain some peculiarities of repositories used by the slpkg. ## This file was created to explain some peculiarities of repositories used by the slpkg.
*NOTE: For more informations, refer directly to the repositories* *NOTE: For more informations, refer directly to the repositories*
##### Default repositories: ## Default repositories:
For the -current users who they use the sbo repository: For the -current users who they use the sbo repository:
SlackBuilds.org (sbo) FAQ(15): SlackBuilds.org (sbo) FAQ(15):
Slackware current is not supported, but as a general rule, the scripts Slackware current is not supported, but as a general rule, the scripts
should work on it as well. should work on it as well.
Rworkman's (rlw) repository use dependencies where displayed in central site Rworkman's (rlw) repository use dependencies where displayed in a central site
'`http://rlworkman.net/pkgs/`' and only those. Unfortunately there is no fixed reference '`http://rlworkman.net/pkgs/`' and only those. Unfortunately there is no fixed reference
dependencies in the file PACKAGES.TXT. You can make changes in '`/etc/slpkg/rlworkman.deps`' dependencies in the file PACKAGES.TXT. You can make changes in '`/etc/slpkg/rlworkman.deps`'
file. file.
@ -35,13 +35,13 @@ Alien's ktown (ktown), Alien's multilib (multi), Slacke E17 and E18, slack-n-fre
IMPORTANT: For Alien's (Eric Hameleers) repositories (alien, multi and ktown) should run IMPORTANT: For Alien's (Eric Hameleers) repositories (alien, multi and ktown) should run
'`slpkg upgrade`' instant '`slpkg update`', if you want to spend from -stable in -current or '`slpkg upgrade`' instant '`slpkg update`', if you want to spend from -stable in -current or
not, because there is not different file '`ChangeLog.txt`' for each version. not, because there is no different file '`ChangeLog.txt`' for each version.
##### Custom repositories: ## Custom repositories:
There is the possibility of adding the repository directly from the user enough to address There is the possibility of adding the repository directly from the user enough to address
up to be the '`PACKAGES.TXT`' files and '`CHECKSUMS.md5`' least. If not is there file '`ChangeLog.txt`' the '`PACKAGES.TXT`' files and '`CHECKSUMS.md5`' at least. If not is there file '`ChangeLog.txt`'
will get warning messages that the '`ChangeLog.txt`' file can not be read but not worry, the process will get warning messages that the '`ChangeLog.txt`' file can not be read but not worry, the process
is completed normally have each time you run the command '`slpkg update`' the package lists for such is completed normally have each time you run the command '`slpkg update`' the package lists for such
a repository will be recreated from start automatically. a repository will be recreated from start automatically.
@ -51,6 +51,6 @@ Sometimes you may experience some problems with these repositories such as the n
can not be calculated, good is the report these problems. can not be calculated, good is the report these problems.
##### Slackware ARM repositories: ## Slackware ARM repositories:
Slackware ARM users will must use only two repositories at the moment slack and sbo. Slackware ARM users will must use only two repositories at the moment slack and sbo.

View file

@ -40,6 +40,5 @@ if __name__ == "__main__":
s_user() s_user()
virtual_env() virtual_env()
main() main()
except KeyboardInterrupt: except KeyboardInterrupt as err:
print() raise SystemExit(err)
raise SystemExit()

View file

@ -108,7 +108,7 @@ 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 for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README.md ChangeLog.txt LICENSE ISSUES KNOWN_ISSUES REPOSITORIES.md \ cp -a README.rst ChangeLog.txt LICENSE ISSUES KNOWN_ISSUES REPOSITORIES.md \
INSTALL.md requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION INSTALL.md requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

View file

@ -81,7 +81,7 @@ class MetaData:
__all__ = "slpkg" __all__ = "slpkg"
__author__ = "dslackw" __author__ = "dslackw"
__version_info__ = (3, 9, 8) __version_info__ = (3, 9, 9)
__version__ = "{0}.{1}.{2}".format(*__version_info__) __version__ = "{0}.{1}.{2}".format(*__version_info__)
__license__ = "GNU General Public License v3 (GPLv3)" __license__ = "GNU General Public License v3 (GPLv3)"
__email__ = "d.zlatanidis@gmail.com" __email__ = "d.zlatanidis@gmail.com"

View file

@ -28,7 +28,7 @@ from slpkg.__metadata__ import MetaData as _meta_
from slpkg.pkg.manager import PackageManager from slpkg.pkg.manager import PackageManager
class Auto: class AutoInstall:
"""Select Slackware command to install packages """Select Slackware command to install packages
""" """
def __init__(self, packages): def __init__(self, packages):

View file

@ -29,7 +29,6 @@ from slpkg.clean import clean_tmp
from slpkg.load import Regex from slpkg.load import Regex
from slpkg.desc import PkgDesc from slpkg.desc import PkgDesc
from slpkg.messages import Msg from slpkg.messages import Msg
from slpkg.auto_pkg import Auto
from slpkg.config import Config from slpkg.config import Config
from slpkg.checks import Updates from slpkg.checks import Updates
from slpkg.repoinfo import RepoInfo from slpkg.repoinfo import RepoInfo
@ -37,6 +36,7 @@ from slpkg.repolist import RepoList
from slpkg.repositories import Repo from slpkg.repositories import Repo
from slpkg.blacklist import BlackList from slpkg.blacklist import BlackList
from slpkg.version import prog_version from slpkg.version import prog_version
from slpkg.auto_pkg import AutoInstall
from slpkg.health import PackageHealth from slpkg.health import PackageHealth
from slpkg.new_config import NewConfig from slpkg.new_config import NewConfig
from slpkg.tracking import TrackingDeps from slpkg.tracking import TrackingDeps
@ -777,11 +777,11 @@ class ArgParse(BlackList):
else: else:
not_found.append(pkg) not_found.append(pkg)
if packages: if packages:
Auto(packages).select() AutoInstall(packages).select()
if not_found: if not_found:
for ntf in not_found: for ntf in not_found:
self.msg.pkg_not_found("", ntf, "Not installed", "") self.msg.pkg_not_found("", ntf, "Not installed", "")
raise SystemExit(1) raise SystemExit(0)
def if_checklist(self): def if_checklist(self):
try: try: