mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2025-01-10 20:01:54 +01:00
Merge branch 'develop'
This commit is contained in:
commit
6c957c937a
45 changed files with 419 additions and 1529 deletions
|
@ -1,3 +1,10 @@
|
|||
4.0.2 - 30/05/2022
|
||||
Removed:
|
||||
- Repositories rlw, mles, ktown, rested, slacke, slacky, slackl
|
||||
- Option --directory-prefix
|
||||
- Option --autobuild
|
||||
- Option --network
|
||||
|
||||
4.0.1 - 30/05/2022
|
||||
Added:
|
||||
- SQLAlchemy Object Relational Mapper
|
||||
|
|
37
EXAMPLES.md
37
EXAMPLES.md
|
@ -21,13 +21,9 @@ $ slpkg update
|
|||
Update repository [slack] ... Done
|
||||
Update repository [sbo] ... Done
|
||||
Update repository [alien] ... Done
|
||||
Update repository [slacky] ... Done
|
||||
Update repository [conrad] ... Done
|
||||
Update repository [slonly] ... Done
|
||||
Update repository [ktown] ... Done
|
||||
Update repository [salix] ... Done
|
||||
Update repository [slacke] ... Done
|
||||
Update repository [slackl] ... Done
|
||||
Update repository [multi] ... Done
|
||||
Update repository [msb] ... Done
|
||||
|
||||
|
@ -35,7 +31,7 @@ Update repository [msb] ... Done
|
|||
Update specifically repositories:
|
||||
|
||||
```
|
||||
$ slpkg update --repositories=sbo,msb,slacky
|
||||
$ slpkg update --repositories=sbo,msb
|
||||
```
|
||||
|
||||
Also you can check ChangeLog.txt for changes, like:
|
||||
|
@ -60,13 +56,11 @@ $ slpkg --check
|
|||
+==============================================================================
|
||||
slack No changes in ChangeLog.txt
|
||||
sbo News in ChangeLog.txt
|
||||
slacky News in ChangeLog.txt
|
||||
alien No changes in ChangeLog.txt
|
||||
rlw No changes in ChangeLog.txt
|
||||
|
||||
Summary
|
||||
===============================================================================
|
||||
From 5 repositories need 2 updating. Run the command 'slpkg update'.
|
||||
From 3 repositories need 2 updating. Run the command 'slpkg update'.
|
||||
```
|
||||
|
||||
Add and remove custom repositories:
|
||||
|
@ -95,24 +89,18 @@ $ slpkg repo-list
|
|||
| Repo id Repo URL Default Status
|
||||
+==============================================================================
|
||||
alien http://www.slackware.com/~alien/slackbuilds/ yes disabled
|
||||
ktown http://alien.slackbook.org/ktown/ yes disabled
|
||||
msb http://slackware.org.uk/msb/ yes enabled
|
||||
multi http://www.slackware.com/~alien/multilib/ yes disabled
|
||||
ponce http://ponce.cc/slackware/slackware64-14.2/packa~ no enabled
|
||||
rested http://taper.alienbase.nl/mirrors/people/alien/r~ yes disabled
|
||||
rlw http://rlworkman.net/pkgs/ yes disabled
|
||||
salix http://download.salixos.org/ yes disabled
|
||||
sbo http://slackbuilds.org/slackbuilds/ yes enabled
|
||||
slack http://ftp.cc.uoc.gr/mirrors/linux/slackware/ yes enabled
|
||||
slacke http://ngc891.blogdns.net/pub/ yes disabled
|
||||
slackl http://www.slackel.gr/repo/ yes disabled
|
||||
conrad http://slack.conraid.net/repository/slackware64-~ yes disabled
|
||||
slacky http://repository.slacky.eu/ yes disabled
|
||||
conrad http://slack.conraid.net/repository/slackware64-~ yes disabled
|
||||
slonly https://slackonly.com/pub/packages/ yes disabled
|
||||
|
||||
Repositories summary
|
||||
===============================================================================
|
||||
3/14 enabled default repositories and 1 custom.
|
||||
3/9 enabled default repositories and 1 custom.
|
||||
For enable or disable default repositories edit '/etc/slpkg/repositories.conf'
|
||||
file.
|
||||
|
||||
|
@ -477,7 +465,7 @@ will be upgraded.
|
|||
Would you like to continue [y/N]?
|
||||
|
||||
|
||||
$ slpkg -c slacky --upgrade
|
||||
$ slpkg -c alien --upgrade
|
||||
Checking... Done
|
||||
Reading package lists... Done
|
||||
Resolving dependencies... Done
|
||||
|
@ -486,7 +474,7 @@ Resolving dependencies... Done
|
|||
| Package New version Arch Build Repos Size
|
||||
+==============================================================================
|
||||
Upgrading:
|
||||
gstreamer1-1.4.1 1.4.4 x86_64 1 slacky 1563 K
|
||||
gstreamer1-1.4.1 1.4.4 x86_64 1 alien 1563 K
|
||||
|
||||
Installing summary
|
||||
===============================================================================
|
||||
|
@ -528,13 +516,12 @@ Would you like to continue [y/N]?
|
|||
Upgrade only distribution:
|
||||
|
||||
```
|
||||
$ slpkg -c slack --upgrade --skip="multi:*multilib*,ktown:*" // This upgrade
|
||||
Checking... Done // distribution
|
||||
// and skip all
|
||||
Slackware64 'stable' v14.2 distribution is up to date // packages from
|
||||
// ktown repository
|
||||
// and multilib
|
||||
// from multi.
|
||||
$ slpkg -c slack --upgrade
|
||||
Checking... Done
|
||||
|
||||
Slackware64 'stable' v14.2 distribution is up to date
|
||||
|
||||
|
||||
```
|
||||
|
||||
Skip packages when upgrading:
|
||||
|
|
16
README.rst
16
README.rst
|
@ -1,5 +1,5 @@
|
|||
***********
|
||||
slpkg 4.0.1
|
||||
slpkg 4.0.2
|
||||
***********
|
||||
|
||||
Slpkg is a powerful software package manager that installs, updates, and removes packages on
|
||||
|
@ -35,9 +35,9 @@ Install from the official third party `SBo repository <https://slackbuilds.org/r
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
$ wget slpkg-4.0.1.tar.gz
|
||||
$ tar xvf slpkg-4.0.1.tar.gz
|
||||
$ cd slpkg-4.0.1
|
||||
$ wget slpkg-4.0.2.tar.gz
|
||||
$ tar xvf slpkg-4.0.2.tar.gz
|
||||
$ cd slpkg-4.0.2
|
||||
$ ./install.sh
|
||||
|
||||
|
||||
|
@ -54,8 +54,6 @@ Usage
|
|||
Copyright
|
||||
---------
|
||||
|
||||
Copyright 2014-2022 © Dimitris Zlatanidis.
|
||||
|
||||
Slackware® is a Registered Trademark of Patrick Volkerding.
|
||||
|
||||
Linux is a Registered Trademark of Linus Torvalds.
|
||||
- Copyright 2014-2022 © Dimitris Zlatanidis.
|
||||
- Slackware® is a Registered Trademark of Patrick Volkerding.
|
||||
- Linux is a Registered Trademark of Linus Torvalds.
|
||||
|
|
|
@ -11,16 +11,9 @@ For the -current users who they use the sbo repository:
|
|||
Slackware current is not supported, but as a general rule, the scripts
|
||||
should work on it as well.
|
||||
|
||||
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
|
||||
dependencies in the file PACKAGES.TXT. You can make changes in '`/etc/slpkg/rlworkman.deps`'
|
||||
file.
|
||||
|
||||
Conraid's (conrad) repository must be used only from Slackware64 current users and it has no
|
||||
reference dependencies.
|
||||
|
||||
Slackel.gr (slackl) repository must be used only from Slackware{x86, x86_64} -current users.
|
||||
|
||||
MSB (msb) repository has one ChangeLog.txt file for three sub-repositories {1.14, 1.16, latest}.
|
||||
So if you have updated the list of packages with the version 1.14 and you want to switch to
|
||||
version 1.16 you must run '`slpkg upgrade`' instead of '`slpkg update`'. MSB (msb) repository
|
||||
|
@ -30,11 +23,10 @@ MSB (msb) repository has one ChangeLog.txt file for three sub-repositories {1.14
|
|||
|
||||
Slonly repository don't support -current for x86 arch.
|
||||
|
||||
Alien's ktown (ktown), Alien's multilib (multi), Slacke E17 and E18, slack-n-free, csb,
|
||||
mles and Alien's restricted repository has no reference dependencies.
|
||||
Alien's multilib (multi), csb and Alien's restricted repository has no reference dependencie.
|
||||
|
||||
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
|
||||
IMPORTANT: For Alien's (Eric Hameleers) repositories (alien and multi) should run
|
||||
'`slpkg upgrade`' instant '`slpkg update`', if you want to pass from -stable in -current or
|
||||
not, because there is no different file '`ChangeLog.txt`' for each version.
|
||||
|
||||
|
||||
|
|
|
@ -29,25 +29,17 @@
|
|||
# repository.
|
||||
#
|
||||
# Default repositories names:
|
||||
# sbo, slack, rlw, alien, slacky, conrad, slonly, ktown, multi, slacke, salix,
|
||||
# slackl, rested, msb, csb, connos, mles
|
||||
# sbo, slack, alien, conrad, slonly, multi, salix, msb, csb, connos
|
||||
# NOTE: Slackware repository (slack) served from file slackware-mirros
|
||||
# -----------------------------------------------------------------------------
|
||||
#
|
||||
# NAME URL
|
||||
sbo http://slackbuilds.org/slackbuilds/
|
||||
rlw http://slackware.uk/people/rlworkman/
|
||||
alien http://bear.alienbase.nl/mirrors/people/alien/sbrepos/
|
||||
slacky http://repository.slacky.eu/
|
||||
conrad http://slack.conraid.net/repository/slackware64-current/
|
||||
slonly https://slackonly.com/pub/packages/
|
||||
ktown http://alien.slackbook.org/ktown/
|
||||
multi http://bear.alienbase.nl/mirrors/people/alien/multilib/
|
||||
slacke http://ngc891.blogdns.net/pub/
|
||||
salix http://download.salixos.org/
|
||||
slackl http://www.slackel.gr/repo/
|
||||
rested http://bear.alienbase.nl/mirrors/people/alien/restricted_slackbuilds/
|
||||
msb http://slackware.org.uk/msb/
|
||||
csb http://slackware.uk/csb/
|
||||
sbo https://slackbuilds.org/slackbuilds/
|
||||
alien https://bear.alienbase.nl/mirrors/people/alien/sbrepos/
|
||||
conrad https://slack.conraid.net/repository/slackware64-current/
|
||||
slonly httpss://slackonly.com/pub/packages/
|
||||
multi https://bear.alienbase.nl/mirrors/people/alien/multilib/
|
||||
salix https://download.salixos.org/
|
||||
msb https://slackware.uk/msb/
|
||||
csb https://slackware.uk/csb/
|
||||
connos https://connochaetos.org/slack-n-free/
|
||||
mles http://slackware.uk/microlinux/
|
||||
|
|
|
@ -24,10 +24,7 @@
|
|||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
# conrad (Conraid's) repository must used from Slackware64 current.
|
||||
# ktown (Alien"s ktown: 4.14.3 and latest) repository. Default ktown{latest}.
|
||||
# slacke (Enlightenment: E17 and E18) repository. Default slacke{18}.
|
||||
# msb (Mate: 1.14, 1.16, 1,18, latest) repository. Default msb{1.18}
|
||||
# mles (Microlinux: desktop, extras, server) repository. Default mles{desktop}
|
||||
# msb (Mate: 1,26, latest) repository. Default msb{1.26}
|
||||
#
|
||||
# Slackware ARM users will must use only two repositories at the moment slack and sbo.
|
||||
#
|
||||
|
@ -43,17 +40,10 @@
|
|||
slack
|
||||
sbo
|
||||
# alien
|
||||
# rlw
|
||||
# slacky
|
||||
# conrad
|
||||
# slonly
|
||||
# ktown{latest}
|
||||
# multi
|
||||
# slacke{18}
|
||||
# salix
|
||||
# slackl
|
||||
# rested
|
||||
# msb{1.18}
|
||||
# msb{1.26}
|
||||
# csb
|
||||
# connos
|
||||
# mles{desktop}
|
||||
|
|
|
@ -4,7 +4,7 @@ _slpkg()
|
|||
cur=${COMP_WORDS[COMP_CWORD]}
|
||||
|
||||
if [[ "$cur" == -* ]]; then
|
||||
COMPREPLY=( $( compgen -W "--autobuild --blacklist --queue --list --check --sync --tracking --print --network --FIND --find --installpkg --upgradepkg --removepkg --display" -- $cur ))
|
||||
COMPREPLY=( $( compgen -W "--blacklist --queue --list --check --sync --tracking --print --FIND --find --installpkg --upgradepkg --removepkg --display" -- $cur ))
|
||||
|
||||
else
|
||||
_filedir
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
complete --command slpkg --long-option help --short-option h --description 'Print this help message and exit.'
|
||||
complete --command slpkg --long-option version --short-option v --description 'Print program version and exit.'
|
||||
complete --command slpkg --long-option autobuild --short-option a --description 'Auto build SBo packages. If you already have downloaded the script and the source code you can build a new package with this command.'
|
||||
complete --command slpkg --long-option blacklist --short-option b --description 'Manage packages in the blacklist. Add or remove packages and print the list. Each package is added here will not be accessible by the program.'
|
||||
complete --command slpkg --long-option queue --short-option q --description 'Manage SBo packages in the queue. Add or remove and print the list build-install of packages. Build and then install the packages from the queue.'
|
||||
complete --command slpkg --long-option config --short-option g --description 'Configuration file management. Print the configuration file or edit.'
|
||||
|
@ -9,7 +8,6 @@ complete --command slpkg --long-option check --short-option c --description 'Che
|
|||
complete --command slpkg --long-option sync --short-option s --description 'Sync packages. Install packages directly from remote repositories with all dependencies.'
|
||||
complete --command slpkg --long-option tracking --short-option t --description 'Tracking package dependencies and print package dependenies tree with highlight if packages is installed.'
|
||||
complete --command slpkg --long-option print --short-option p --description 'Print description of a package directly from the repository and change color text.'
|
||||
complete --command slpkg --long-option network --short-option n --description 'View a standard of SBo page in terminal and manage multiple options like reading downloading building installation etc.'
|
||||
complete --command slpkg --long-option find --short-option f --description 'Find and print installed packages reporting the size and the sum.'
|
||||
complete --command slpkg --long-option FIND --short-option F --description 'Find packages from repositories and search at each enabled repository and prints results.'
|
||||
complete --command slpkg --long-option installpkg --short-option i --description 'Installs single or multiple Slackware binary packages.'
|
||||
|
|
22
man/slpkg.8
22
man/slpkg.8
|
@ -206,8 +206,6 @@ Additional options:
|
|||
.PP
|
||||
\fB--download-only\fP : Download packages without install.
|
||||
.PP
|
||||
\fB--directory-prefix=[path/to/dir/]\fP : Download packages in specific directory.
|
||||
.PP
|
||||
\fB--case-ins\fP : Search package name in repository with case insensitive.
|
||||
.PP
|
||||
\fB--patches\fP : Switch to patches\ directory, only for slack repository.
|
||||
|
@ -259,19 +257,6 @@ Additional options:
|
|||
.PP
|
||||
\fB--third-party\fP : View all the third-party packages.
|
||||
|
||||
.SS -n, --network, view SBo packages
|
||||
\fBslpkg\fP \fB-n\fP <\fIname of package\fP>, <\fI[pattern], --checklist\fP>, \fB--case-ins\fP
|
||||
.PP
|
||||
View complete slackbuilds.org site in your terminal. Read file, download,
|
||||
build or install etc. Use "--checklist" additional option to load all repository, example:
|
||||
"# slpkg -n --checklist".
|
||||
.PP
|
||||
Additional options:
|
||||
.PP
|
||||
\fB--checklist\fP : Enable dialog utility and checklist option. (Require python3-pythondialog)
|
||||
.PP
|
||||
\fB--case-ins\fP : Search package name in repository with case insensitive.
|
||||
|
||||
.SS -i, --installpkg, install Slackware binary packages
|
||||
\fBslpkg\fP \fB-i\fP \fB[--warn, --md5sum, --root /otherroot, --infobox, --menu, --terse,
|
||||
--ask, --priority ADD|REC|OPT|SKP, --tagfile /somedir/tagfile]\fP <\fIpackages.t?z\fP>
|
||||
|
@ -324,20 +309,13 @@ For example:
|
|||
slackware.com = "slack"
|
||||
SlackBuilds.org = "sbo"
|
||||
Alien's = "alien"
|
||||
slacky.eu = "slacky"
|
||||
rworkman's = "rlw"
|
||||
Conraid's = "conrad"
|
||||
slackonly.com = "slonly"
|
||||
Alien's ktown = "ktown{latest}"
|
||||
Alien's multilib = "multi"
|
||||
Slacke E17 and E18 = "slacke{18}"
|
||||
SalixOS = "salix"
|
||||
Slackel.gr = "slackel"
|
||||
Alien's restricted = "rested"
|
||||
MATE Desktop Environment = "msb{1.18}"
|
||||
Cinnamon Desktop Environment = "csb"
|
||||
Connochaetos slack-n-free = "connos"
|
||||
Microlinux mles = "mles"
|
||||
|
||||
Default enable repository is "slack" and "sbo".
|
||||
Add or remove default repository in configuration file "/etc/slpkg/repositories.conf".
|
||||
|
|
|
@ -379,10 +379,6 @@ options:</p>
|
|||
: Download packages without install.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>--directory-prefix=[path/to/dir/]</b>
|
||||
: Download packages in specific directory.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>--case-ins</b>
|
||||
: Search package name in repository with case
|
||||
insensitive.</p>
|
||||
|
@ -474,29 +470,6 @@ options:</p>
|
|||
<p style="margin-left:11%; margin-top: 1em"><b>--third-party</b>
|
||||
: View all the third-party packages.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>-n,
|
||||
--network, view SBo packages <br>
|
||||
slpkg -n</b> <<i>name of package</i>>,
|
||||
<<i>[pattern], --checklist</i>>, <b>--case-ins</b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">View complete
|
||||
slackbuilds.org site in your terminal. Read file, download,
|
||||
build or install etc. Use "--checklist" additional
|
||||
option to load all repository, example: "# slpkg -n
|
||||
--checklist".</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Additional
|
||||
options:</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>--checklist</b>
|
||||
: Enable dialog utility and checklist option. (Require
|
||||
python3-pythondialog)</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>--case-ins</b>
|
||||
: Search package name in repository with case
|
||||
insensitive.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>-i,
|
||||
--installpkg, install Slackware binary packages <br>
|
||||
|
@ -592,20 +565,13 @@ slpkg −−help</b> - display help for slpkg</p>
|
|||
"slack" <br>
|
||||
SlackBuilds.org = "sbo" <br>
|
||||
Alien’s = "alien" <br>
|
||||
slacky.eu = "slacky" <br>
|
||||
rworkman’s = "rlw" <br>
|
||||
Conraid’s = "conrad" <br>
|
||||
slackonly.com = "slonly" <br>
|
||||
Alien’s ktown = "ktown{latest}" <br>
|
||||
Alien’s multilib = "multi" <br>
|
||||
Slacke E17 and E18 = "slacke{18}" <br>
|
||||
SalixOS = "salix" <br>
|
||||
Slackel.gr = "slackel" <br>
|
||||
Alien’s restricted = "rested" <br>
|
||||
MATE Desktop Environment = "msb{1.18}" <br>
|
||||
Cinnamon Desktop Environment = "csb" <br>
|
||||
Connochaetos slack-n-free = "connos" <br>
|
||||
Microlinux mles = "mles"</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Default enable
|
||||
repository is "slack" and "sbo". <br>
|
||||
|
|
|
@ -77,7 +77,7 @@ class MetaData:
|
|||
|
||||
__all__ = "slpkg"
|
||||
__author__ = "dslackw"
|
||||
__version_info__ = (4, 0, 1)
|
||||
__version_info__ = (4, 0, 2)
|
||||
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
||||
__license__ = "GNU General Public License v3 (GPLv3)"
|
||||
__email__ = "d.zlatanidis@gmail.com"
|
||||
|
@ -99,11 +99,8 @@ class MetaData:
|
|||
"RELEASE": STABLE,
|
||||
"SLACKWARE_VERSION": "off",
|
||||
"COMP_ARCH": "off",
|
||||
"REPOSITORIES": ["slack", "sbo", "rlw", "alien",
|
||||
"slacky", "conrad", "slonly",
|
||||
"ktown{latest}", "multi", "slacke{18}",
|
||||
"salix", "slackl", "rested", "msb{1.18}",
|
||||
"csb", "connos", "mles{desktop}"],
|
||||
"REPOSITORIES": ["slack", "sbo", "alien", "conrad", "slonly",
|
||||
"multi", "salix", "msb{1.26}", "csb", "connos"],
|
||||
"BUILD_PATH": "/tmp/slpkg/build/",
|
||||
"SBOSRCARCH": "off",
|
||||
"SBOSRCARCH_LINK": "http://slackware.uk/sbosrcarch/by-name/",
|
||||
|
@ -129,9 +126,9 @@ class MetaData:
|
|||
"HTTP_PROXY": "",
|
||||
}
|
||||
|
||||
default_repositories = ["slack", "sbo", "rlw", "alien", "slacky", "conrad",
|
||||
"slonly", "ktown", "multi", "slacke", "salix",
|
||||
"slackl", "rested", "msb", "csb", "connos", "mles"]
|
||||
default_repositories = ["slack", "sbo", "alien", "conrad",
|
||||
"slonly", "multi", "salix", "msb",
|
||||
"csb", "connos"]
|
||||
|
||||
# reads values from the configuration file
|
||||
repositories = []
|
||||
|
@ -186,10 +183,7 @@ class MetaData:
|
|||
slack_rel = select_slack_release(slack_rel)
|
||||
|
||||
# Grabs sub repositories
|
||||
ktown_kde_repo = grab_sub_repo(repositories, "ktown")
|
||||
slacke_sub_repo = grab_sub_repo(repositories, "slacke")
|
||||
msb_sub_repo = grab_sub_repo(repositories, "msb")
|
||||
mles_sub_repo = grab_sub_repo(repositories, "mles")
|
||||
|
||||
# removes no default repositories
|
||||
repositories = list(remove_repositories(repositories,
|
||||
|
|
|
@ -85,12 +85,6 @@ Optional arguments:
|
|||
|
||||
-v | --version Print program version and exit.
|
||||
|
||||
-a | --autobuild, [script] [source...] Auto build SBo packages.
|
||||
If you have already downloaded the
|
||||
script and the source code you can
|
||||
build a new package with this
|
||||
command.
|
||||
|
||||
-b | --blacklist, [package...] --add, Manage packages in the blacklist.
|
||||
--remove, list Add or remove packages and print
|
||||
the list. Each package is added
|
||||
|
@ -119,7 +113,6 @@ Optional arguments:
|
|||
-s | --sync, [repository] [package...], Sync packages. Install packages
|
||||
--rebuild, --reinstall, directly from remote repositories
|
||||
--resolve-off, --download-only, with all dependencies.
|
||||
--directory-prefix=[dir],
|
||||
--case-ins, --patches
|
||||
|
||||
-t | --tracking, [repository] [package], Tracking package dependencies and
|
||||
|
@ -133,11 +126,6 @@ Optional arguments:
|
|||
--color=[] directly from the repository and
|
||||
change color text.
|
||||
|
||||
-n | --network, [package], --checklist, View a standard of SBo page in
|
||||
--case-ins terminal and manage multiple
|
||||
options like reading, downloading,
|
||||
building, installation, etc.
|
||||
|
||||
-F | --FIND, [package...], --case-ins Find packages from each enabled
|
||||
repository and view results.
|
||||
|
||||
|
@ -190,7 +178,6 @@ def usage(repo, stderr):
|
|||
|
||||
Optional arguments:
|
||||
[-h] [-v]
|
||||
[-a [script] [sources...]]
|
||||
[-b [package...] --add, --remove,
|
||||
[list]]
|
||||
[-q [package...] --add, --remove,
|
||||
|
@ -201,12 +188,10 @@ def usage(repo, stderr):
|
|||
--resolve-off, --checklist]
|
||||
[-s [repository] [package...], --rebuild, --reinstall,
|
||||
--resolve-off, --download-only,
|
||||
--directory-prefix=[dir],
|
||||
--case-ins, --patches]
|
||||
[-t [repository] [package], --check-deps, --graph=[type],
|
||||
--case-ins]
|
||||
[-p [repository] [package], --color=[]]
|
||||
[-n [SBo package], --checklist, --case-ins]
|
||||
[-F [package...], --case-ins]
|
||||
[-f [package...], --case-ins, --third-party]
|
||||
[-i [options] [package...]]
|
||||
|
|
|
@ -31,8 +31,8 @@ from slpkg.__metadata__ import MetaData as _meta_
|
|||
|
||||
from slpkg.pkg.find import find_package
|
||||
|
||||
from slpkg.binary.greps import repo_data
|
||||
from slpkg.binary.repo_init import RepoInit
|
||||
from slpkg.binaries.queries import repo_data
|
||||
from slpkg.binaries.repo_init import RepoInit
|
||||
|
||||
|
||||
def pkg_upgrade(repo, skip, flag):
|
|
@ -26,23 +26,23 @@ import sys
|
|||
from functools import lru_cache
|
||||
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.binary.greps import Requires
|
||||
from slpkg.blacklist import BlackList
|
||||
from slpkg.binaries.queries import Requires
|
||||
|
||||
|
||||
class Dependencies:
|
||||
"""Resolving binary dependencies
|
||||
"""
|
||||
def __init__(self, repo, black):
|
||||
def __init__(self, repo):
|
||||
self.repo = repo
|
||||
self.black = black
|
||||
self.black = BlackList().get()
|
||||
self.dep_results = []
|
||||
self.meta = _meta_
|
||||
|
||||
def binary(self, name, flag):
|
||||
def binary(self, name):
|
||||
"""Builds all dependencies of a package
|
||||
"""
|
||||
if self.meta.rsl_deps in ["on", "ON"] and "--resolve-off" not in flag:
|
||||
if self.meta.rsl_deps in ["on", "ON"]:
|
||||
sys.setrecursionlimit(10000)
|
||||
dependencies = []
|
||||
requires = Requires(name, self.repo).get_deps()
|
||||
|
@ -54,7 +54,7 @@ class Dependencies:
|
|||
if req and req not in self.black:
|
||||
dependencies.append(req)
|
||||
|
||||
self.deep_check(tuple(dependencies), tuple(flag))
|
||||
self.deep_check(tuple(dependencies))
|
||||
|
||||
return self.dep_results
|
||||
|
||||
|
@ -62,9 +62,9 @@ class Dependencies:
|
|||
return []
|
||||
|
||||
@lru_cache
|
||||
def deep_check(self, dependencies, flag):
|
||||
def deep_check(self, dependencies):
|
||||
"""Checking if dependencies are finnished
|
||||
"""
|
||||
if dependencies:
|
||||
self.dep_results.append(dependencies)
|
||||
[self.binary(dep, flag) for dep in dependencies]
|
||||
[self.binary(dep) for dep in dependencies]
|
|
@ -43,12 +43,12 @@ from slpkg.pkg.find import find_package
|
|||
from slpkg.pkg.manager import PackageManager
|
||||
from slpkg.pkg.installed import GetFromInstalled
|
||||
|
||||
from slpkg.binary.greps import repo_data
|
||||
from slpkg.binary.repo_init import RepoInit
|
||||
from slpkg.binary.dependency import Dependencies
|
||||
from slpkg.binaries.queries import repo_data
|
||||
from slpkg.binaries.repo_init import RepoInit
|
||||
from slpkg.binaries.dependency import Dependencies
|
||||
|
||||
|
||||
class BinaryInstall(BlackList, Utils):
|
||||
class BinaryInstall(Utils):
|
||||
"""Installs binaries packages with all dependencies from
|
||||
repository
|
||||
"""
|
||||
|
@ -67,7 +67,6 @@ class BinaryInstall(BlackList, Utils):
|
|||
self.msg = Msg()
|
||||
self.version = self.meta.slack_rel
|
||||
self.tmp_path = self.meta.slpkg_tmp_packages
|
||||
self.init_flags()
|
||||
self.dwn, self.dep_dwn = [], []
|
||||
self.install, self.dep_install = [], []
|
||||
self.comp_sum, self.dep_comp_sum = [], []
|
||||
|
@ -83,20 +82,9 @@ class BinaryInstall(BlackList, Utils):
|
|||
for name in self.data[0]:
|
||||
self.repo_pkg_names.append(split_package(name)[0])
|
||||
|
||||
self.blacklist = list(self.get_black())
|
||||
self.blacklist = BlackList().get()
|
||||
self.matching = False
|
||||
|
||||
def init_flags(self):
|
||||
"""Flags initiliazation
|
||||
"""
|
||||
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 += "/"
|
||||
|
||||
def start(self, is_upgrade):
|
||||
"""Installs packages from official Slackware distribution
|
||||
"""
|
||||
|
@ -105,6 +93,7 @@ class BinaryInstall(BlackList, Utils):
|
|||
self.is_upgrade = is_upgrade
|
||||
mas_sum = dep_sum = sums = 0, 0, 0, 0
|
||||
self.msg.done()
|
||||
|
||||
self.dependencies = self.resolving_deps()
|
||||
self.update_deps()
|
||||
|
||||
|
@ -237,12 +226,11 @@ class BinaryInstall(BlackList, Utils):
|
|||
self.packages[index] = value
|
||||
|
||||
def update_deps(self):
|
||||
"""Updates dependencies dictionary with all package
|
||||
"""Updates dependencies dictionary with all packages
|
||||
"""
|
||||
for dep in self.dependencies:
|
||||
deps = self.dimensional_list(Dependencies(
|
||||
self.repo, self.blacklist).binary(
|
||||
dep, self.flag))
|
||||
self.repo).binary(dep))
|
||||
|
||||
self.deps_dict[dep] = deps
|
||||
|
||||
|
@ -251,7 +239,7 @@ class BinaryInstall(BlackList, Utils):
|
|||
or if added to install two or more times
|
||||
"""
|
||||
packages = []
|
||||
for mas in self.remove_dbs(self.packages):
|
||||
for mas in self.packages:
|
||||
|
||||
if mas not in self.dependencies:
|
||||
packages.append(mas)
|
||||
|
@ -310,18 +298,24 @@ class BinaryInstall(BlackList, Utils):
|
|||
"""
|
||||
requires = []
|
||||
|
||||
if (self.meta.rsl_deps in ["on", "ON"] and
|
||||
self.flag != "--resolve-off"):
|
||||
self.msg.resolving()
|
||||
if (self.meta.rsl_deps in ["off", "OFF"] and
|
||||
"--resolve-off" not in self.flag):
|
||||
return requires
|
||||
|
||||
self.msg.resolving()
|
||||
|
||||
for dep in self.packages:
|
||||
dependencies = []
|
||||
dependencies = self.dimensional_list(Dependencies(
|
||||
self.repo, self.blacklist).binary(dep, self.flag))
|
||||
requires += list(self._fix_deps_repos(dependencies))
|
||||
self.deps_dict[dep] = self.remove_dbs(requires)
|
||||
|
||||
return self.remove_dbs(requires)
|
||||
dependencies = []
|
||||
|
||||
dependencies = self.dimensional_list(Dependencies(
|
||||
self.repo).binary(dep))
|
||||
|
||||
requires += list(self._fix_deps_repos(dependencies))
|
||||
|
||||
self.deps_dict[dep] = requires
|
||||
|
||||
return requires
|
||||
|
||||
def _fix_deps_repos(self, dependencies):
|
||||
"""Fixes store deps include in the repository
|
152
slpkg/binaries/queries.py
Normal file
152
slpkg/binaries/queries.py
Normal file
|
@ -0,0 +1,152 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# greps.py file is part of slpkg.
|
||||
|
||||
# Copyright 2014-2022 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||
# All rights reserved.
|
||||
|
||||
# Slpkg is a user-friendly package manager for Slackware installations
|
||||
|
||||
# https://gitlab.com/dslackw/slpkg
|
||||
|
||||
# Slpkg is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
from slpkg.utils import Utils
|
||||
from slpkg.splitting import split_package
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.slack.slack_version import slack_ver
|
||||
from slpkg.models.models import AlienTable, session
|
||||
|
||||
|
||||
class PkgQuery:
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.session = session
|
||||
|
||||
def location(self):
|
||||
|
||||
location = self.session.query(AlienTable).filter(
|
||||
AlienTable.location == self.name).first()
|
||||
|
||||
return location[0]
|
||||
|
||||
|
||||
def repo_data(PACKAGES_TXT, repo, flag):
|
||||
"""Grabs data packages
|
||||
"""
|
||||
(name, location, size, unsize,
|
||||
rname, rlocation, rsize, runsize) = ([] for i in range(8))
|
||||
|
||||
for line in PACKAGES_TXT.splitlines():
|
||||
if line.startswith("PACKAGE NAME:"):
|
||||
name.append(line[15:].strip())
|
||||
|
||||
if line.startswith("PACKAGE LOCATION:"):
|
||||
location.append(line[21:].strip())
|
||||
|
||||
if line.startswith("PACKAGE SIZE (compressed):"):
|
||||
size.append(line[28:-2].strip())
|
||||
|
||||
if line.startswith("PACKAGE SIZE (uncompressed):"):
|
||||
unsize.append(line[30:-2].strip())
|
||||
|
||||
if repo == "slack" and "--upgrade" not in flag:
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = slack_filter(name, location, size, unsize, flag)
|
||||
|
||||
elif repo == "alien":
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = alien_filter(name, location, size, unsize)
|
||||
|
||||
else:
|
||||
rname, rlocation, rsize, runsize = name, location, size, unsize
|
||||
|
||||
return [rname, rlocation, rsize, runsize]
|
||||
|
||||
|
||||
def slack_filter(name, location, size, unsize, flag):
|
||||
"""Slackware filter seperate packages from patches/ directory
|
||||
"""
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
if "--patches" not in flag:
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if f"_slack{slack_ver()}" not in n:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
if "--patches" in flag:
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if f"_slack{slack_ver()}" in n:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
def alien_filter(name, location, size, unsize):
|
||||
"""Fix to avoid packages include in slackbuilds folder
|
||||
"""
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if "slackbuilds" != l:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
class Requires:
|
||||
|
||||
def __init__(self, name, repo):
|
||||
self.name = name
|
||||
self.repo = repo
|
||||
|
||||
def get_deps(self):
|
||||
"""Grabs package requirements from repositories
|
||||
"""
|
||||
PACKAGES_TXT = Utils().read_file(f"{_meta_.lib_path}"
|
||||
f"{self.repo}_repo/PACKAGES.TXT")
|
||||
|
||||
for line in PACKAGES_TXT.splitlines():
|
||||
|
||||
if line.startswith("PACKAGE NAME:"):
|
||||
pkg_name = split_package(line[14:].strip())[0]
|
||||
|
||||
if line.startswith("PACKAGE REQUIRED:"):
|
||||
|
||||
if pkg_name == self.name:
|
||||
|
||||
if line[18:].strip():
|
||||
return line.replace("PACKAGE REQUIRED:", "").split(",")
|
|
@ -57,9 +57,6 @@ class RepoInit(Utils):
|
|||
def _init_slack(self):
|
||||
self.mirror = mirrors(name="", location="")
|
||||
|
||||
def _init_rlw(self):
|
||||
self.mirror = f"{self.def_repo_dict}{slack_ver()}/"
|
||||
|
||||
def _init_alien(self):
|
||||
ver = slack_ver()
|
||||
arch = "x86"
|
||||
|
@ -71,13 +68,6 @@ class RepoInit(Utils):
|
|||
|
||||
self.mirror = f"{self.def_repo_dict['alien']}{ver}/{arch}/"
|
||||
|
||||
def _init_slacky(self):
|
||||
arch = ""
|
||||
if self.meta.arch == "x86_64":
|
||||
arch = "64"
|
||||
|
||||
self.mirror = f"{self.def_repo_dict}slackware{arch}-{slack_ver()}/"
|
||||
|
||||
def _init_conrad(self):
|
||||
self.mirror = self.def_repo_dict["conrad"]
|
||||
|
||||
|
@ -97,9 +87,6 @@ class RepoInit(Utils):
|
|||
|
||||
self.mirror = f"{self.def_repo_dict['slonly']}{arch}/"
|
||||
|
||||
def _init_ktown(self):
|
||||
self.mirror = self.def_repo_dict["ktown"]
|
||||
|
||||
def _init_multi(self):
|
||||
ver = slack_ver()
|
||||
if self.meta.slack_rel == "current":
|
||||
|
@ -107,15 +94,6 @@ class RepoInit(Utils):
|
|||
|
||||
self.mirror = self.def_repo_dict["multi"] + ver + "/"
|
||||
|
||||
def _init_slacke(self):
|
||||
arch = ""
|
||||
if self.meta.arch == "x86_64":
|
||||
arch = "64"
|
||||
|
||||
self.mirror = (f"{self.def_repo_dict['slacke']}"
|
||||
f"slacke{self.meta.slacke_sub_repo[1:-1]}/slackware"
|
||||
f"{arch}-{slack_ver()}/")
|
||||
|
||||
def _init_salix(self):
|
||||
arch = "i486"
|
||||
if self.meta.arch == "x86_64":
|
||||
|
@ -123,16 +101,6 @@ class RepoInit(Utils):
|
|||
|
||||
self.mirror = f"{self.def_repo_dict['salix']}{arch}/{slack_ver()}/"
|
||||
|
||||
def _init_slackl(self):
|
||||
arch = "i486"
|
||||
if self.meta.arch == "x86_64":
|
||||
arch = "x86_64"
|
||||
|
||||
self.mirror = f"{self.def_repo_dict['slackl']}{arch}/current/"
|
||||
|
||||
def _init_rested(self):
|
||||
self.mirror = self.def_repo_dict["rested"]
|
||||
|
||||
def _init_msb(self):
|
||||
arch = "x86"
|
||||
if self.meta.arch == "x86_64":
|
||||
|
@ -153,11 +121,3 @@ class RepoInit(Utils):
|
|||
arch = "64"
|
||||
self.mirror = (f"{self.def_repo_dict['connos']}slack-n-free"
|
||||
f"{arch}-{slack_ver()}/")
|
||||
|
||||
def _init_mles(self):
|
||||
arch = "32"
|
||||
if self.meta.arch == "x86_64":
|
||||
arch = "64"
|
||||
self.mirror = (f"{self.def_repo_dict['mles']}"
|
||||
f"{self.meta.mles_sub_repo[1:-1]}-"
|
||||
f"{slack_ver()}-{arch}bit/")
|
|
@ -37,7 +37,7 @@ def search_pkg(name, repo):
|
|||
text = utils.read_file(_meta_.lib_path + f"{repo}_repo/PACKAGES.TXT")
|
||||
|
||||
PACKAGES_TXT = list(utils.package_name(text))
|
||||
blacklist = list(black.get_black())
|
||||
blacklist = black.get()
|
||||
|
||||
if name in PACKAGES_TXT and name not in blacklist:
|
||||
return name
|
|
@ -1,284 +0,0 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# greps.py file is part of slpkg.
|
||||
|
||||
# Copyright 2014-2022 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||
# All rights reserved.
|
||||
|
||||
# Slpkg is a user-friendly package manager for Slackware installations
|
||||
|
||||
# https://gitlab.com/dslackw/slpkg
|
||||
|
||||
# Slpkg is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
from functools import lru_cache
|
||||
from slpkg.utils import Utils
|
||||
from slpkg.splitting import split_package
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.slack.slack_version import slack_ver
|
||||
|
||||
|
||||
def repo_data(PACKAGES_TXT, repo, flag):
|
||||
"""Grabs data packages
|
||||
"""
|
||||
(name, location, size, unsize,
|
||||
rname, rlocation, rsize, runsize) = ([] for i in range(8))
|
||||
|
||||
for line in PACKAGES_TXT.splitlines():
|
||||
|
||||
if line.startswith("PACKAGE NAME:"):
|
||||
name.append(line[15:].strip())
|
||||
|
||||
if line.startswith("PACKAGE LOCATION:"):
|
||||
location.append(line[21:].strip())
|
||||
|
||||
if line.startswith("PACKAGE SIZE (compressed):"):
|
||||
size.append(line[28:-2].strip())
|
||||
|
||||
if line.startswith("PACKAGE SIZE (uncompressed):"):
|
||||
unsize.append(line[30:-2].strip())
|
||||
|
||||
if repo == "slack" and "--upgrade" not in flag:
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = slack_filter(name, location, size, unsize, flag)
|
||||
|
||||
elif repo == "rlw":
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = rlw_filter(name, location, size, unsize)
|
||||
|
||||
elif repo == "alien":
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = alien_filter(name, location, size, unsize)
|
||||
|
||||
elif repo == "rested":
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = rested_filter(name, location, size, unsize)
|
||||
|
||||
elif repo == "ktown":
|
||||
(rname,
|
||||
rlocation,
|
||||
rsize,
|
||||
runsize
|
||||
) = ktown_filter(name, location, size, unsize)
|
||||
|
||||
else:
|
||||
rname, rlocation, rsize, runsize = name, location, size, unsize
|
||||
|
||||
return [rname, rlocation, rsize, runsize]
|
||||
|
||||
|
||||
def slack_filter(name, location, size, unsize, flag):
|
||||
"""Slackware filter seperate packages from patches/ directory
|
||||
"""
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
if "--patches" not in flag:
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if f"_slack{slack_ver()}" not in n:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
if "--patches" in flag:
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if f"_slack{slack_ver()}" in n:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
def rlw_filter(name, location, size, unsize):
|
||||
"""Filter rlw repository data
|
||||
"""
|
||||
arch = _meta_.arch
|
||||
|
||||
if arch.startswith("i") and arch.endswith("86"):
|
||||
arch = "i486"
|
||||
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
loc = l.split("/")
|
||||
|
||||
if arch == loc[-1]:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
def alien_filter(name, location, size, unsize):
|
||||
"""Fix to avoid packages include in slackbuilds folder
|
||||
"""
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if "slackbuilds" != l:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
def rested_filter(name, location, size, unsize):
|
||||
"""Filter Alien"s repository data
|
||||
"""
|
||||
ver = slack_ver()
|
||||
if _meta_.slack_rel == "current":
|
||||
ver = "current"
|
||||
|
||||
path_pkg = "pkg"
|
||||
|
||||
if _meta_.arch == "x86_64":
|
||||
path_pkg = "pkg64"
|
||||
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if path_pkg == l.split("/")[-2] and ver == l.split("/")[-1]:
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
def ktown_filter(name, location, size, unsize):
|
||||
"""Filter Alien"s ktown repository data
|
||||
"""
|
||||
ver = slack_ver()
|
||||
|
||||
if _meta_.slack_rel == "current":
|
||||
ver = "current"
|
||||
|
||||
path_pkg = "x86"
|
||||
|
||||
if _meta_.arch == "x86_64":
|
||||
path_pkg = _meta_.arch
|
||||
|
||||
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||
|
||||
for n, l, s, u in zip(name, location, size, unsize):
|
||||
|
||||
if (path_pkg in l and _meta_.ktown_kde_repo[1:-1] in l and
|
||||
l.startswith(ver)):
|
||||
fname.append(n)
|
||||
flocation.append(l)
|
||||
fsize.append(s)
|
||||
funsize.append(u)
|
||||
|
||||
return [fname, flocation, fsize, funsize]
|
||||
|
||||
|
||||
class Requires:
|
||||
|
||||
def __init__(self, name, repo):
|
||||
self.name = name
|
||||
self.repo = repo
|
||||
|
||||
def get_deps(self):
|
||||
"""Grabs package requirements from repositories
|
||||
"""
|
||||
if self.repo == "rlw":
|
||||
|
||||
dependencies = {}
|
||||
rlw_deps = Utils().read_file(_meta_.conf_path + "rlworkman.deps")
|
||||
|
||||
for line in rlw_deps.splitlines():
|
||||
|
||||
if line and not line.startswith("#"):
|
||||
pkgs = line.split(":")
|
||||
dependencies[pkgs[0]] = pkgs[1]
|
||||
|
||||
if self.name in dependencies.keys():
|
||||
return dependencies[self.name].split()
|
||||
|
||||
else:
|
||||
return ""
|
||||
|
||||
else:
|
||||
PACKAGES_TXT = Utils().read_file(f"{_meta_.lib_path}"
|
||||
f"{self.repo}_repo/PACKAGES.TXT")
|
||||
|
||||
for line in PACKAGES_TXT.splitlines():
|
||||
|
||||
if line.startswith("PACKAGE NAME:"):
|
||||
pkg_name = split_package(line[14:].strip())[0]
|
||||
|
||||
if line.startswith("PACKAGE REQUIRED:"):
|
||||
|
||||
if pkg_name == self.name:
|
||||
|
||||
if line[18:].strip():
|
||||
return self._req_fix(line)
|
||||
|
||||
@lru_cache
|
||||
def _req_fix(self, line):
|
||||
"""Fix slacky and salix requirements because many dependencies
|
||||
splitting with "," and others with "|"
|
||||
"""
|
||||
deps = []
|
||||
|
||||
for dep in line[18:].strip().split(","):
|
||||
dep = dep.split("|")
|
||||
|
||||
if self.repo == "slacky":
|
||||
|
||||
if len(dep) > 1:
|
||||
|
||||
for d in dep:
|
||||
deps.append(d.split()[0])
|
||||
|
||||
dep = "".join(dep)
|
||||
deps.append(dep.split()[0])
|
||||
|
||||
else:
|
||||
|
||||
if len(dep) > 1:
|
||||
|
||||
for d in dep:
|
||||
deps.append(d)
|
||||
|
||||
deps.append(dep[0])
|
||||
|
||||
return deps
|
|
@ -43,7 +43,10 @@ class BlackList(Utils):
|
|||
if os.path.isfile(self.blackfile):
|
||||
self.black_conf = self.read_file(self.blackfile)
|
||||
|
||||
def get_black(self):
|
||||
def get(self):
|
||||
return list(self.black_list())
|
||||
|
||||
def black_list(self):
|
||||
"""Return blacklist packages from /etc/slpkg/blacklist
|
||||
configuration file."""
|
||||
blacklist = list(self.black_filter())
|
||||
|
|
|
@ -46,21 +46,14 @@ class Updates:
|
|||
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
|
||||
}
|
||||
|
||||
def status_bar(self):
|
||||
|
|
|
@ -26,7 +26,7 @@ from slpkg.utils import Utils
|
|||
from slpkg.messages import Msg
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
|
||||
|
||||
class PkgDesc(Utils):
|
||||
|
@ -57,7 +57,7 @@ class PkgDesc(Utils):
|
|||
description, count = "", 0
|
||||
|
||||
if self.repo == "sbo":
|
||||
description = SBoGrep(self.name).description()
|
||||
description = SboQuery(self.name).description()
|
||||
|
||||
else:
|
||||
PACKAGES_TXT = self.read_file(self.lib)
|
||||
|
|
262
slpkg/init.py
262
slpkg/init.py
|
@ -34,7 +34,7 @@ from slpkg.__metadata__ import MetaData as _meta_
|
|||
|
||||
from slpkg.slack.mirrors import mirrors
|
||||
from slpkg.slack.slack_version import slack_ver
|
||||
from slpkg.models.models import SBoTable, session
|
||||
from slpkg.models.models import SBoTable, AlienTable, session
|
||||
|
||||
|
||||
class Init(Utils):
|
||||
|
@ -195,36 +195,6 @@ class Init(Utils):
|
|||
self.remote(log, ChangeLog_txt, lib, SLACKBUILDS_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def rlw(self):
|
||||
"""Creating rlw local library
|
||||
"""
|
||||
repo = self.def_repos_dict["rlw"]
|
||||
log = self.log_path + "rlw/"
|
||||
lib = self.lib_path + "rlw_repo/"
|
||||
repo_name = Init.rlw.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
PACKAGES_TXT = f"{repo}{self.slack_ver}/{lib_file}"
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = f"{repo}{self.slack_ver}/{md5_file}"
|
||||
ChangeLog_txt = f"{repo}{self.slack_ver}/{log_file}"
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def alien(self):
|
||||
"""Creating alien local library
|
||||
"""
|
||||
|
@ -263,43 +233,8 @@ class Init(Utils):
|
|||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def slacky(self):
|
||||
"""Creating slacky.eu local library
|
||||
"""
|
||||
ar = ""
|
||||
repo = self.def_repos_dict["slacky"]
|
||||
log = self.log_path + "slacky/"
|
||||
lib = self.lib_path + "slacky_repo/"
|
||||
repo_name = Init.slacky.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
if self.arch == "x86_64":
|
||||
ar = "64"
|
||||
|
||||
PACKAGES_TXT = f"{repo}slackware{ar}-{self.slack_ver}/{lib_file}"
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = f"{repo}slackware{ar}-{self.slack_ver}/{md5_file}"
|
||||
|
||||
ChangeLog_txt = f"{repo}slackware{ar}-{self.slack_ver}/{log_file}"
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def conrad(self):
|
||||
"""Creating slackers local library
|
||||
"""Creating conrad local library
|
||||
"""
|
||||
repo = self.def_repos_dict["conrad"]
|
||||
log = self.log_path + "conrad/"
|
||||
|
@ -328,7 +263,7 @@ class Init(Utils):
|
|||
FILELIST_TXT, repo_name)
|
||||
|
||||
def slonly(self):
|
||||
"""Creating slackers local library
|
||||
"""Creating slonly local library
|
||||
"""
|
||||
ar = f"{self.slack_ver}-x86"
|
||||
repo = self.def_repos_dict["slonly"]
|
||||
|
@ -367,36 +302,6 @@ class Init(Utils):
|
|||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def ktown(self):
|
||||
"""Creating alien ktown local library
|
||||
"""
|
||||
repo = self.def_repos_dict["ktown"]
|
||||
log = self.log_path + "ktown/"
|
||||
lib = self.lib_path + "ktown_repo/"
|
||||
repo_name = Init.ktown.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
PACKAGES_TXT = f"{repo}{lib_file}"
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = f"{repo}{md5_file}"
|
||||
ChangeLog_txt = f"{repo}{log_file}"
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def multi(self):
|
||||
"""Creating alien multilib local library
|
||||
"""
|
||||
|
@ -431,44 +336,6 @@ class Init(Utils):
|
|||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def slacke(self):
|
||||
"""Creating Slacke local library
|
||||
"""
|
||||
ar = ""
|
||||
repo = self.def_repos_dict["slacke"]
|
||||
log = self.log_path + "slacke/"
|
||||
lib = self.lib_path + "slacke_repo/"
|
||||
repo_name = Init.slacke.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
if self.arch == "x86_64":
|
||||
ar = "64"
|
||||
|
||||
version = self.meta.slacke_sub_repo[1:-1]
|
||||
PACKAGES_TXT = (f"{repo}slacke{version}/slackware{ar}-"
|
||||
f"{self.slack_ver}/{lib_file}")
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = (f"{repo}slacke{version}/slackware{ar}-"
|
||||
f"{self.slack_ver}/{md5_file}")
|
||||
ChangeLog_txt = (f"{repo}slacke{version}/slackware{ar}-"
|
||||
f"{self.slack_ver}/{log_file}")
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def salix(self):
|
||||
"""Creating SalixOS local library
|
||||
"""
|
||||
|
@ -503,70 +370,6 @@ class Init(Utils):
|
|||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def slackl(self):
|
||||
"""Creating slackel.gr local library
|
||||
"""
|
||||
ar = "i486"
|
||||
repo = self.def_repos_dict["slackl"]
|
||||
log = self.log_path + "slackl/"
|
||||
lib = self.lib_path + "slackl_repo/"
|
||||
repo_name = Init.slackl.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
if self.arch == "x86_64":
|
||||
ar = "x86_64"
|
||||
|
||||
PACKAGES_TXT = f"{repo}{ar}/current/{lib_file}"
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = f"{repo}{ar}/current/{md5_file}"
|
||||
ChangeLog_txt = f"{repo}{ar}/current/{log_file}"
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def rested(self):
|
||||
"""Creating alien restricted local library
|
||||
"""
|
||||
repo = self.def_repos_dict["rested"]
|
||||
log = self.log_path + "rested/"
|
||||
lib = self.lib_path + "rested_repo/"
|
||||
repo_name = Init.rested.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
PACKAGES_TXT = f"{repo}{lib_file}"
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = f"{repo}{md5_file}"
|
||||
ChangeLog_txt = f"{repo}{log_file}"
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def msb(self):
|
||||
"""Creating MATE local library
|
||||
"""
|
||||
|
@ -679,41 +482,6 @@ class Init(Utils):
|
|||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def mles(self):
|
||||
"""Creating Microlinux local library
|
||||
"""
|
||||
ar = "32"
|
||||
repo = self.def_repos_dict["mles"]
|
||||
log = self.log_path + "mles/"
|
||||
lib = self.lib_path + "mles_repo/"
|
||||
repo_name = Init.mles.__name__
|
||||
|
||||
lib_file = "PACKAGES.TXT"
|
||||
# lst_file = ""
|
||||
md5_file = "CHECKSUMS.md5"
|
||||
log_file = "ChangeLog.txt"
|
||||
|
||||
self.make_dir([log, lib])
|
||||
|
||||
if self.arch == "x86_64":
|
||||
ar = "64"
|
||||
|
||||
version = self.meta.mles_sub_repo[1:-1]
|
||||
PACKAGES_TXT = f"{repo}{version}-{self.slack_ver}-{ar}bit/{lib_file}"
|
||||
FILELIST_TXT = ""
|
||||
CHECKSUMS_MD5 = f"{repo}{version}-{self.slack_ver}-{ar}bit/{md5_file}"
|
||||
ChangeLog_txt = f"{repo}{version}-{self.slack_ver}-{ar}bit/{log_file}"
|
||||
|
||||
if self.check:
|
||||
return self.checks_logs(log, ChangeLog_txt)
|
||||
|
||||
self.down(lib, PACKAGES_TXT, repo_name)
|
||||
self.down(lib, CHECKSUMS_MD5, repo_name)
|
||||
self.down(log, ChangeLog_txt, repo_name)
|
||||
|
||||
self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5,
|
||||
FILELIST_TXT, repo_name)
|
||||
|
||||
def down(self, path, link, repo):
|
||||
"""Downloads files
|
||||
"""
|
||||
|
@ -731,7 +499,6 @@ class Init(Utils):
|
|||
CHECKSUMS_MD5 = args[4]
|
||||
FILELIST_TXT = args[5]
|
||||
repo = args[6]
|
||||
|
||||
if self.checks_logs(log_path, ChangeLog_txt):
|
||||
# remove old files
|
||||
self.file_remove(log_path, ChangeLog_txt.split("/")[-1])
|
||||
|
@ -760,9 +527,7 @@ class Init(Utils):
|
|||
self.down(lib_path, FILELIST_TXT, repo)
|
||||
self.down(log_path, ChangeLog_txt, repo)
|
||||
|
||||
if repo == 'sbo':
|
||||
self.session.query(SBoTable).delete() # delete all data
|
||||
self.session.commit()
|
||||
delete_table_data(repo)
|
||||
|
||||
def merge(self, path, outfile, infiles):
|
||||
"""Merging files
|
||||
|
@ -798,7 +563,6 @@ class Init(Utils):
|
|||
|
||||
if os.path.isfile(log_path + filename):
|
||||
local = FileSize(log_path + filename).local()
|
||||
|
||||
if server != local:
|
||||
return True
|
||||
|
||||
|
@ -846,10 +610,7 @@ class Upgrade:
|
|||
update = Update()
|
||||
update.run(repos)
|
||||
|
||||
def del_tables(self, repo):
|
||||
if repo == 'sbo':
|
||||
self.session.query(SBoTable).delete() # delete all data
|
||||
self.session.commit()
|
||||
delete_table_data(repo)
|
||||
|
||||
|
||||
class Update:
|
||||
|
@ -909,12 +670,25 @@ class Update:
|
|||
if self.session.query(SBoTable).first() is None:
|
||||
db.insert_sbo_table()
|
||||
|
||||
if self.session.query(AlienTable).first() is None:
|
||||
db.insert_alien_table()
|
||||
|
||||
def done_msg(self, repo):
|
||||
print(f"{self.grey}Checking repository "
|
||||
f"[{self.cyan}{repo}{self.grey}] ... "
|
||||
f"{self.endc}", end="", flush=True)
|
||||
|
||||
|
||||
def delete_table_data(repo):
|
||||
if repo == 'sbo':
|
||||
session.query(SBoTable).delete()
|
||||
session.commit()
|
||||
|
||||
if repo == 'alien':
|
||||
session.query(AlienTable).delete()
|
||||
session.commit()
|
||||
|
||||
|
||||
def check_exists_repositories(repo):
|
||||
"""Checking if repositories exists by PACKAGES.TXT file
|
||||
"""
|
||||
|
|
|
@ -57,22 +57,21 @@ from slpkg.pkg.manager import PackageManager
|
|||
|
||||
from slpkg.sbo.queue import QueuePkgs
|
||||
from slpkg.sbo.check import sbo_upgrade
|
||||
from slpkg.sbo.network import SBoNetwork
|
||||
from slpkg.sbo.autobuild import AutoBuild
|
||||
from slpkg.sbo.slackbuild import SBoInstall
|
||||
|
||||
from slpkg.slack.patches import Patches
|
||||
from slpkg.binary.check import pkg_upgrade
|
||||
from slpkg.binary.install import BinaryInstall
|
||||
from slpkg.binaries.check import pkg_upgrade
|
||||
from slpkg.binaries.install import BinaryInstall
|
||||
|
||||
|
||||
class ArgParse(BlackList):
|
||||
class ArgParse:
|
||||
|
||||
def __init__(self, args):
|
||||
super().__init__()
|
||||
self.args = args
|
||||
self.meta = _meta_
|
||||
self.msg = Msg()
|
||||
self.blacklist = BlackList().get()
|
||||
self.commands = [
|
||||
"update",
|
||||
"upgrade",
|
||||
|
@ -292,20 +291,6 @@ class ArgParse(BlackList):
|
|||
else:
|
||||
usage("", 1)
|
||||
|
||||
def auto_build(self):
|
||||
"""Auto built tool
|
||||
"""
|
||||
options = [
|
||||
"-a",
|
||||
"--autobuild"
|
||||
]
|
||||
|
||||
if len(self.args) >= 3 and self.args[0] in options:
|
||||
AutoBuild(self.args[1], self.args[2:], self.meta.path).run()
|
||||
|
||||
else:
|
||||
usage("", 1)
|
||||
|
||||
def pkg_list(self):
|
||||
"""List of packages by repository
|
||||
"""
|
||||
|
@ -437,7 +422,6 @@ class ArgParse(BlackList):
|
|||
additional_options = [
|
||||
"--resolve-off",
|
||||
"--download-only",
|
||||
"--directory-prefix=",
|
||||
"--case-ins",
|
||||
"--rebuild",
|
||||
"--reinstall",
|
||||
|
@ -524,40 +508,6 @@ class ArgParse(BlackList):
|
|||
else:
|
||||
usage("", 1)
|
||||
|
||||
def sbo_network(self):
|
||||
"""Views slackbuilds packages
|
||||
"""
|
||||
flag = []
|
||||
options = [
|
||||
"-n",
|
||||
"--network"
|
||||
]
|
||||
additional_options = [
|
||||
"--checklist",
|
||||
"--case-ins"
|
||||
]
|
||||
|
||||
for add in additional_options:
|
||||
|
||||
if add in self.args:
|
||||
flag.append(add)
|
||||
self.args.remove(add)
|
||||
|
||||
if "--checklist" in flag:
|
||||
self.if_checklist()
|
||||
|
||||
if (len(self.args) == 2 and self.args[0] in options and
|
||||
"sbo" in self.meta.repositories):
|
||||
SBoNetwork(self.args[1], flag).view()
|
||||
|
||||
elif (len(self.args) == 1 and self.args[0] in options and
|
||||
"sbo" in self.meta.repositories and
|
||||
additional_options[0] in flag):
|
||||
SBoNetwork("", flag).view()
|
||||
|
||||
else:
|
||||
usage("sbo", 1)
|
||||
|
||||
def pkg_blacklist(self):
|
||||
"""Manages blacklist packages
|
||||
"""
|
||||
|
@ -584,7 +534,7 @@ class ArgParse(BlackList):
|
|||
elif (len(self.args) == 2 and self.args[0] in options and
|
||||
flag[1] in self.args):
|
||||
self.args.remove(flag[1])
|
||||
self.black_remove(list(self.get_black()))
|
||||
self.black_remove(self.blacklist)
|
||||
|
||||
elif (len(self.args) > 2 and self.args[0] in options and
|
||||
flag[1] in self.args):
|
||||
|
@ -998,8 +948,6 @@ def main():
|
|||
"deps-status": argparse.command_deps_status,
|
||||
"new-config": argparse.command_new_config,
|
||||
"clean-tmp": argparse.command_clean_tmp,
|
||||
"-a": argparse.auto_build,
|
||||
"--autobuild": argparse.auto_build,
|
||||
"-l": argparse.pkg_list,
|
||||
"--list": argparse.pkg_list,
|
||||
"-c": argparse.pkg_upgrade,
|
||||
|
@ -1008,8 +956,6 @@ def main():
|
|||
"--sync": argparse.pkg_install,
|
||||
"-t": argparse.pkg_tracking,
|
||||
"--tracking": argparse.pkg_tracking,
|
||||
"-n": argparse.sbo_network,
|
||||
"--netwotk": argparse.sbo_network,
|
||||
"-b": argparse.pkg_blacklist,
|
||||
"--blacklist": argparse.pkg_blacklist,
|
||||
"-q": argparse.pkg_queue,
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
from progress.bar import Bar
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
from slpkg.models.models import SBoTable, session
|
||||
from slpkg.models.models import SBoTable, AlienTable, session
|
||||
|
||||
|
||||
class Database:
|
||||
|
@ -33,6 +33,21 @@ class Database:
|
|||
self.lib_path = _meta_.lib_path
|
||||
self.session = session
|
||||
|
||||
self.pkg_tags = [
|
||||
"PACKAGE NAME:",
|
||||
"PACKAGE LOCATION:",
|
||||
"PACKAGE SIZE (compressed):",
|
||||
"PACKAGE SIZE (uncompressed):",
|
||||
"PACKAGE REQUIRED:",
|
||||
"PACKAGE CONFLICTS:",
|
||||
"PACKAGE SUGGESTS:",
|
||||
"PACKAGE DESCRIPTION:"
|
||||
]
|
||||
|
||||
def open_file(self, file):
|
||||
with open(file, "r", encoding="utf-8") as f:
|
||||
return f.readlines()
|
||||
|
||||
def insert_sbo_table(self):
|
||||
"""Grabbing data line by line and inserting them into the database
|
||||
"""
|
||||
|
@ -65,7 +80,8 @@ class Database:
|
|||
cache.append(line)
|
||||
|
||||
if (i % 11) == 0:
|
||||
data = SBoTable(name=cache[0], location=cache[1],
|
||||
data = SBoTable(name=cache[0],
|
||||
location=cache[1].split('/')[1:-1][0],
|
||||
files=cache[2], version=cache[3],
|
||||
download=cache[4], download64=cache[5],
|
||||
md5sum=cache[6], md5sum64=cache[7],
|
||||
|
@ -79,6 +95,33 @@ class Database:
|
|||
|
||||
self.session.commit()
|
||||
|
||||
def open_file(self, file):
|
||||
with open(file, "r", encoding="utf-8") as f:
|
||||
return f.readlines()
|
||||
def insert_alien_table(self):
|
||||
pkg_file = self.open_file(f"{self.lib_path}alien_repo/PACKAGES.TXT")
|
||||
|
||||
bar = Bar("Creating alien database", max=len(pkg_file),
|
||||
suffix="%(percent)d%% - %(eta)ds")
|
||||
|
||||
cache = [] # init cache
|
||||
|
||||
for i, line in enumerate(pkg_file, 1):
|
||||
|
||||
for p in self.pkg_tags:
|
||||
if line.startswith(p):
|
||||
line = line.replace(p, "").strip()
|
||||
cache.append(line)
|
||||
|
||||
if (i % 20) == 0:
|
||||
data = AlienTable(name=cache[0],
|
||||
location=cache[1][2:],
|
||||
comp_size=cache[2][:-2],
|
||||
uncomp_size=cache[3][:-2],
|
||||
required=cache[4], conflicts=cache[5],
|
||||
suggests=cache[6], description=cache[7])
|
||||
self.session.add(data)
|
||||
|
||||
cache = [] # reset cache after 11 lines
|
||||
|
||||
bar.next()
|
||||
bar.finish()
|
||||
|
||||
self.session.commit()
|
||||
|
|
|
@ -55,4 +55,19 @@ class SBoTable(Base):
|
|||
short_description = Column(Text)
|
||||
|
||||
|
||||
class AlienTable(Base):
|
||||
|
||||
__tablename__ = "alientable"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(Text)
|
||||
location = Column(Text)
|
||||
comp_size = Column(Integer)
|
||||
uncomp_size = Column(Integer)
|
||||
required = Column(Text)
|
||||
conflicts = Column(Text)
|
||||
suggests = Column(Text)
|
||||
description = Column(Text)
|
||||
|
||||
|
||||
Base.metadata.create_all(engine)
|
||||
|
|
|
@ -37,7 +37,7 @@ from slpkg.messages import Msg
|
|||
from slpkg.checksum import check_md5
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
|
||||
|
||||
class BuildPackage(Utils):
|
||||
|
@ -146,7 +146,7 @@ class BuildPackage(Utils):
|
|||
"""
|
||||
self.sbo_md5 = {}
|
||||
|
||||
md5_lists = SBoGrep(self.prgnam).checksum()
|
||||
md5_lists = SboQuery(self.prgnam).checksum()
|
||||
|
||||
for src, md5 in itertools.zip_longest(self.sources, md5_lists):
|
||||
self.sbo_md5[src] = md5
|
||||
|
|
|
@ -34,7 +34,7 @@ def searching(find_pkg, directory):
|
|||
|
||||
if os.path.isdir(directory):
|
||||
installed = os.listdir(directory)
|
||||
blacklist = list(black.get_black())
|
||||
blacklist = black.get()
|
||||
|
||||
if os.path.exists(directory):
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ from slpkg.messages import Msg
|
|||
from slpkg.dialog_box import DialogUtil
|
||||
from slpkg.splitting import split_package
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
|
||||
from slpkg.slack.slackware_repo import slackware_repository
|
||||
|
||||
|
@ -617,15 +618,13 @@ class PackageManager(Utils):
|
|||
"""Grabs packages
|
||||
"""
|
||||
pkg_list, pkg_size = [], []
|
||||
for line in packages.splitlines():
|
||||
|
||||
if repo == "sbo":
|
||||
if repo == "sbo":
|
||||
pkg_list = SboQuery(name="").names()
|
||||
|
||||
if line.startswith("SLACKBUILD NAME: "):
|
||||
pkg_list.append(line[17:].strip())
|
||||
pkg_size.append("0 K")
|
||||
else:
|
||||
|
||||
else:
|
||||
for line in packages.splitlines():
|
||||
|
||||
if line.startswith("PACKAGE NAME: "):
|
||||
pkg_list.append(line[15:].strip())
|
||||
|
@ -633,7 +632,7 @@ class PackageManager(Utils):
|
|||
if line.startswith("PACKAGE SIZE (compressed): "):
|
||||
pkg_size.append(line[26:].strip())
|
||||
|
||||
if repo == "alien" or repo == "ktown":
|
||||
if repo == "alien":
|
||||
return alien_filter(pkg_list, pkg_size)
|
||||
|
||||
return pkg_list, pkg_size
|
||||
|
@ -649,7 +648,6 @@ class PackageManager(Utils):
|
|||
self.meta.lib_path + "sbo_repo/SLACKBUILDS.TXT")):
|
||||
packages = self.read_file(f"{self.meta.lib_path}"
|
||||
"sbo_repo/SLACKBUILDS.TXT")
|
||||
|
||||
else:
|
||||
|
||||
if (os.path.isfile(
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
|
||||
from slpkg.messages import Msg
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
from slpkg.pkg.manager import PackageManager
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
|
@ -91,6 +91,6 @@ class FindFromRepos:
|
|||
ver = ""
|
||||
|
||||
if repo == "sbo":
|
||||
ver = f"-{SBoGrep(find).version()}"
|
||||
ver = f"-{SboQuery(find).version()}"
|
||||
|
||||
return ver
|
||||
|
|
|
@ -132,7 +132,7 @@ class RepoInfo(Utils):
|
|||
if line.startswith("PACKAGE SIZE (uncompressed): "):
|
||||
unsize.append(line[30:-2].strip())
|
||||
|
||||
if repo in ["salix", "slackl"]:
|
||||
if repo == "salix":
|
||||
log = self.read_file(
|
||||
f"{self.meta.log_path}{repo}/ChangeLog.txt")
|
||||
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# autobuild.py file is part of slpkg.
|
||||
|
||||
# Copyright 2014-2022 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||
# All rights reserved.
|
||||
|
||||
# Slpkg is a user-friendly package manager for Slackware installations
|
||||
|
||||
# https://gitlab.com/dslackw/slpkg
|
||||
|
||||
# Slpkg is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import os
|
||||
|
||||
from slpkg.pkg.build import BuildPackage
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
|
||||
|
||||
class AutoBuild:
|
||||
"""Autobuild package if sources and script is already
|
||||
downloaded
|
||||
"""
|
||||
def __init__(self, script, sources, path):
|
||||
self.script = script
|
||||
self.sources = sources
|
||||
self.prgnam = self.script[:-7]
|
||||
self.path = path
|
||||
self.sbo_sources = []
|
||||
|
||||
def run(self):
|
||||
"""Builds package and fix ordelist per checksum
|
||||
"""
|
||||
self.files_exist()
|
||||
self.info_file()
|
||||
sources = self.sources
|
||||
|
||||
if len(sources) > 1 and self.sbo_sources != sources:
|
||||
sources = self.sbo_sources
|
||||
# If the list does not have the same order uses from .info
|
||||
# order.
|
||||
BuildPackage(self.script, sources, self.path, auto=True).build()
|
||||
|
||||
raise SystemExit()
|
||||
|
||||
def info_file(self):
|
||||
"""Grabs sources from .info file and stores filename
|
||||
"""
|
||||
sources = SBoGrep(self.prgnam).source().split()
|
||||
for source in sources:
|
||||
self.sbo_sources.append(source.split("/")[-1])
|
||||
|
||||
def files_exist(self):
|
||||
"""Check if SlackBuild archive.tar.gz and sources exist
|
||||
"""
|
||||
if not os.path.isfile(self.path + self.script):
|
||||
raise SystemExit("\nslpkg: Error: SlackBuild archive.tar.gz "
|
||||
"not found\n")
|
||||
|
||||
for src in self.sources:
|
||||
|
||||
if not os.path.isfile(self.path + src):
|
||||
raise SystemExit(f"\nslpkg: Error: Source file '{src}' "
|
||||
f"not found\n")
|
|
@ -31,7 +31,7 @@ from slpkg.splitting import split_package
|
|||
from slpkg.upgrade_checklist import choose_upg
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
|
||||
|
||||
def sbo_upgrade(skip, flag):
|
||||
|
@ -41,15 +41,15 @@ def sbo_upgrade(skip, flag):
|
|||
black = BlackList()
|
||||
msg.checking()
|
||||
upgrade_names = []
|
||||
data = SBoGrep(name="").names()
|
||||
blacklist = list(black.get_black())
|
||||
data = SboQuery(name="").names()
|
||||
blacklist = black.get()
|
||||
|
||||
for pkg in sbo_list():
|
||||
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 = f"{name}-{SBoGrep(name).version()}"
|
||||
sbo_package = f"{name}-{SboQuery(name).version()}"
|
||||
package = f"{name}-{ver}"
|
||||
|
||||
if parse_version(sbo_package) > parse_version(package):
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
# Rworkman's dependencies:
|
||||
#
|
||||
# rlworkman.deps file is part of slpkg.
|
||||
#
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# dependencies.py file is part of slpkg.
|
||||
|
||||
# Copyright 2014-2022 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Slpkg is a user-friendly package manager for Slackware installations.
|
||||
#
|
||||
|
||||
# Slpkg is a user-friendly package manager for Slackware installations
|
||||
|
||||
# https://gitlab.com/dslackw/slpkg
|
||||
#
|
||||
|
||||
# Slpkg is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
|
@ -19,17 +20,29 @@
|
|||
# GNU General Public License for more details.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# END OF LEGAL NOTICE
|
||||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
# Some notes about package dependencies (all deps are also found here):
|
||||
# Rworkman's repository dependencies as shown in the central page
|
||||
# http://rlworkman.net/pkgs/
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# PACKAGE: DEPENDENCIES
|
||||
abiword: wv
|
||||
claws-mail: libetpan
|
||||
inkscape: lxml numpy BeautifulSoup
|
||||
xfburn: libburn libisofs
|
||||
|
||||
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
from slpkg.blacklist import BlackList
|
||||
|
||||
|
||||
class Requires:
|
||||
"""Creates a list of dependencies with
|
||||
the right order to install"""
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.black = BlackList().get()
|
||||
|
||||
def sbo(self):
|
||||
requires = SboQuery(self.name).requires()
|
||||
|
||||
for r in requires:
|
||||
if r not in self.black and r != "%README%":
|
||||
sub = SboQuery(r).requires()
|
||||
for s in sub:
|
||||
requires.append(s)
|
||||
|
||||
requires.reverse()
|
||||
|
||||
return list(dict.fromkeys(requires))
|
|
@ -1,77 +0,0 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# dependency.py file is part of slpkg.
|
||||
|
||||
# Copyright 2014-2022 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||
# All rights reserved.
|
||||
|
||||
# Slpkg is a user-friendly package manager for Slackware installations
|
||||
|
||||
# https://gitlab.com/dslackw/slpkg
|
||||
|
||||
# Slpkg is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import sys
|
||||
from functools import lru_cache
|
||||
|
||||
from slpkg.blacklist import BlackList
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
|
||||
|
||||
class Requires(BlackList):
|
||||
"""Resolving SBo dependencies
|
||||
"""
|
||||
def __init__(self, flag):
|
||||
super().__init__()
|
||||
self.flag = flag
|
||||
self.meta = _meta_
|
||||
self.SLACKBUILDS_TXT = SBoGrep(name="").names()
|
||||
self.blacklist = list(self.get_black())
|
||||
self.dep_results = []
|
||||
|
||||
@lru_cache
|
||||
def sbo(self, name):
|
||||
"""Builds all dependencies of a package
|
||||
"""
|
||||
if (self.meta.rsl_deps in ["on", "ON"] and
|
||||
"--resolve-off" not in self.flag):
|
||||
sys.setrecursionlimit(10000)
|
||||
dependencies = []
|
||||
requires = SBoGrep(name).requires()
|
||||
|
||||
if requires:
|
||||
|
||||
for req in requires:
|
||||
|
||||
# avoids adding %README% as dependency and if
|
||||
# requires in the blacklist
|
||||
if "%README%" not in req and req not in self.blacklist:
|
||||
dependencies.append(req)
|
||||
|
||||
self.deep_check(tuple(dependencies))
|
||||
|
||||
return self.dep_results
|
||||
|
||||
else:
|
||||
return []
|
||||
|
||||
@lru_cache
|
||||
def deep_check(self, dependencies):
|
||||
"""Checking if dependencies are finished
|
||||
"""
|
||||
if dependencies:
|
||||
self.dep_results.append(dependencies)
|
||||
[self.sbo(dep) for dep in dependencies]
|
|
@ -1,418 +0,0 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# network.py file is part of slpkg.
|
||||
|
||||
# Copyright 2014-2022 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||
# All rights reserved.
|
||||
|
||||
# Slpkg is a user-friendly package manager for Slackware installations
|
||||
|
||||
# https://gitlab.com/dslackw/slpkg
|
||||
|
||||
# Slpkg is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import os
|
||||
import pydoc
|
||||
|
||||
from slpkg.utils import Utils
|
||||
from slpkg.messages import Msg
|
||||
from slpkg.blacklist import BlackList
|
||||
from slpkg.downloader import Download
|
||||
from slpkg.remove import delete_folder
|
||||
from slpkg.dialog_box import DialogUtil
|
||||
from slpkg.security import pkg_security
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
from slpkg.pkg.find import find_package
|
||||
from slpkg.pkg.build import BuildPackage
|
||||
from slpkg.pkg.manager import PackageManager
|
||||
|
||||
from slpkg.sbo.read import ReadSBo
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.sbo_arch import SBoArch
|
||||
from slpkg.sbo.compressed import SBoLink
|
||||
from slpkg.sbo.search import sbo_search_pkg
|
||||
from slpkg.sbo.slack_find import slack_package
|
||||
|
||||
from slpkg.slack.slack_version import slack_ver
|
||||
|
||||
|
||||
class SBoNetwork(BlackList, Utils):
|
||||
"""View SBo site in the terminal and also read, build or
|
||||
install packages
|
||||
"""
|
||||
def __init__(self, name, flag):
|
||||
super().__init__()
|
||||
self.name = name
|
||||
self.flag = flag
|
||||
self.meta = _meta_
|
||||
self.msg = Msg()
|
||||
self.data = SBoGrep(name="").names()
|
||||
self.check_pkg_exist()
|
||||
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.case_insensitive()
|
||||
|
||||
if "--checklist" in self.flag:
|
||||
self.with_checklist()
|
||||
|
||||
grep = SBoGrep(self.name)
|
||||
self.sbo_files = grep.files()
|
||||
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()
|
||||
|
||||
def check_pkg_exist(self):
|
||||
if self.name not in self.data:
|
||||
self.msg.pkg_not_found("\n", self.name, "can't find", "\n")
|
||||
raise SystemExit(1)
|
||||
|
||||
def view(self):
|
||||
"""View SlackBuild package, read or install them
|
||||
from slackbuilds.org
|
||||
"""
|
||||
if self.sbo_url and self.name not in self.get_black():
|
||||
self.prgnam = f"{self.name}-{self.sbo_version}"
|
||||
self.view_sbo()
|
||||
|
||||
while True:
|
||||
|
||||
self.read_choice()
|
||||
|
||||
choice = {
|
||||
"r": self.choice_README,
|
||||
"R": self.choice_README,
|
||||
"s": self.choice_SlackBuild,
|
||||
"S": self.choice_SlackBuild,
|
||||
"f": self.choice_info,
|
||||
"F": self.choice_info,
|
||||
"o": self.choice_doinst,
|
||||
"O": self.choice_doinst,
|
||||
"d": self.choice_download,
|
||||
"D": self.choice_download,
|
||||
"download": self.choice_download,
|
||||
"b": self.choice_build,
|
||||
"B": self.choice_build,
|
||||
"build": self.choice_build,
|
||||
"i": self.choice_install,
|
||||
"I": self.choice_install,
|
||||
"install": self.choice_install,
|
||||
"c": self.choice_clear_screen,
|
||||
"C": self.choice_clear_screen,
|
||||
"clear": self.choice_clear_screen,
|
||||
"q": self.choice_quit,
|
||||
"quit": self.choice_quit,
|
||||
"Q": self.choice_quit
|
||||
}
|
||||
|
||||
try:
|
||||
choice[self.choice]()
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
else:
|
||||
self.msg.pkg_not_found("\n", self.name, "Can't view", "\n")
|
||||
raise SystemExit(1)
|
||||
|
||||
def case_insensitive(self):
|
||||
"""Matching packages distinguish between uppercase and
|
||||
lowercase
|
||||
"""
|
||||
|
||||
if "--case-ins" in self.flag:
|
||||
data_dict = self.case_sensitive(self.data)
|
||||
|
||||
for key, value in data_dict.items():
|
||||
|
||||
if key == self.name.lower():
|
||||
self.name = value
|
||||
|
||||
def read_choice(self):
|
||||
"""Return choice
|
||||
"""
|
||||
commands = {
|
||||
"r": "README",
|
||||
"R": "README",
|
||||
"s": f"{self.name}.SlackBuild",
|
||||
"S": f"{self.name}.SlackBuild",
|
||||
"f": f"{self.name}.info",
|
||||
"F": f"{self.name}.info",
|
||||
"o": "doinst.sh",
|
||||
"O": "doinst.sh",
|
||||
"d": "download",
|
||||
"D": "download",
|
||||
"download": "download",
|
||||
"b": "build",
|
||||
"B": "build",
|
||||
"build": "build",
|
||||
"i": "install",
|
||||
"I": "install",
|
||||
"install": "install",
|
||||
"c": "clear",
|
||||
"C": "clear",
|
||||
"clear": "clear",
|
||||
"q": "quit",
|
||||
"quit": "quit",
|
||||
"Q": "quit"
|
||||
}
|
||||
|
||||
try:
|
||||
message = " Choose an option > "
|
||||
self.choice = input(f"{self.grey}{message}{self.endc}")
|
||||
except EOFError:
|
||||
raise SystemExit('\n')
|
||||
|
||||
try:
|
||||
print("{0}\x1b[1A{1}{2}{3}\n".format(
|
||||
" " * len(message), self.cyan, commands[self.choice],
|
||||
self.endc), end="")
|
||||
print(end="", flush=True)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
def choice_README(self):
|
||||
"""View README file
|
||||
"""
|
||||
README = ReadSBo(self.sbo_url).readme("README")
|
||||
fill = self.fill_pager(README)
|
||||
self.pager(README + fill)
|
||||
|
||||
def choice_SlackBuild(self):
|
||||
"""View .SlackBuild file
|
||||
"""
|
||||
SlackBuild = ReadSBo(self.sbo_url).slackbuild(self.name, ".SlackBuild")
|
||||
fill = self.fill_pager(SlackBuild)
|
||||
self.pager(SlackBuild + fill)
|
||||
|
||||
def choice_info(self):
|
||||
"""View .info file
|
||||
"""
|
||||
info = ReadSBo(self.sbo_url).info(self.name, ".info")
|
||||
fill = self.fill_pager(info)
|
||||
self.pager(info + fill)
|
||||
|
||||
def choice_doinst(self):
|
||||
"""View doinst.sh file
|
||||
"""
|
||||
if "doinst.sh" in self.sbo_files.split():
|
||||
doinst_sh = ReadSBo(self.sbo_url).doinst("doinst.sh")
|
||||
fill = self.fill_pager(doinst_sh)
|
||||
self.pager(doinst_sh + fill)
|
||||
|
||||
def choice_download(self):
|
||||
"""Download script.tar.gz and sources
|
||||
"""
|
||||
Download(path="", url=self.dwn_srcs, repo="sbo").start()
|
||||
raise SystemExit()
|
||||
|
||||
def choice_build(self):
|
||||
"""Build package
|
||||
"""
|
||||
self.build()
|
||||
delete_folder(self.build_folder)
|
||||
raise SystemExit()
|
||||
|
||||
def choice_install(self):
|
||||
"""Download, build and install the package
|
||||
"""
|
||||
pkg_security([self.name])
|
||||
|
||||
if not find_package(self.prgnam, self.meta.pkg_path):
|
||||
self.build()
|
||||
self.install()
|
||||
delete_folder(self.build_folder)
|
||||
|
||||
raise SystemExit()
|
||||
|
||||
else:
|
||||
self.msg.template(78)
|
||||
self.msg.pkg_found(self.prgnam)
|
||||
self.msg.template(78)
|
||||
|
||||
raise SystemExit()
|
||||
|
||||
def choice_clear_screen(self):
|
||||
"""Clear screen
|
||||
"""
|
||||
os.system("clear")
|
||||
self.view()
|
||||
|
||||
def choice_quit(self):
|
||||
"""Quit from choices
|
||||
"""
|
||||
raise SystemExit()
|
||||
|
||||
def view_sbo(self):
|
||||
"""View slackbuild.org
|
||||
"""
|
||||
sbo_url = self.sbo_url.replace("/slackbuilds/", "/repository/")
|
||||
br1, br2, fix_sp = "", "", " "
|
||||
|
||||
if self.meta.use_colors in ["off", "OFF"]:
|
||||
br1 = "("
|
||||
br2 = ")"
|
||||
fix_sp = ""
|
||||
|
||||
print() # new line at start
|
||||
self.msg.template(78)
|
||||
print(f"| {' ' * 28}{self.grey}SlackBuilds Repository{self.endc}")
|
||||
self.msg.template(78)
|
||||
print(f"| {slack_ver()} > {sbo_url.split('/')[-3].title()} > {self.cyan}{self.name}{self.endc}")
|
||||
self.msg.template(78)
|
||||
print(f"| {self.green}Package url{self.endc}: {sbo_url}")
|
||||
self.msg.template(78)
|
||||
print(f"| {self.green}Description: {self.endc}{self.sbo_desc}")
|
||||
print(f"| {self.green}SlackBuild: {self.endc}{self.sbo_dwn.split('/')[-1]}")
|
||||
print(f"| {self.green}Sources: {self.endc}{', '.join([src.split('/')[-1] for src in self.source_dwn])}")
|
||||
print(f"| {self.yellow}Requirements: {self.endc}{', '.join(self.sbo_req)}")
|
||||
self.msg.template(78)
|
||||
print(f"| {self.red}R{self.endc}{br2}EADME View the README file")
|
||||
print(f"| {self.red}S{self.endc}{br2}lackBuild View the .SlackBuild file")
|
||||
print(f"| In{br1}{self.red}f{self.endc}{br2}o{fix_sp} View the .info file")
|
||||
|
||||
if "doinst.sh" in self.sbo_files.split():
|
||||
print(f"| D{br1}{self.red}o{self.endc}{br2}inst.sh{fix_sp} View the doinst.sh file")
|
||||
|
||||
print(f"| {self.red}D{self.endc}{br2}ownload Download this package")
|
||||
print(f"| {self.red}B{self.endc}{br2}uild Download and build")
|
||||
print(f"| {self.red}I{self.endc}{br2}nstall Download/Build/Install")
|
||||
print(f"| {self.red}C{self.endc}{br2}lear Clear screen")
|
||||
print(f"| {self.red}Q{self.endc}{br2}uit Quit")
|
||||
self.msg.template(78)
|
||||
|
||||
def with_checklist(self):
|
||||
"""Using dialog and checklist option
|
||||
"""
|
||||
data = []
|
||||
|
||||
if not self.name:
|
||||
data = self.data
|
||||
|
||||
else:
|
||||
for name in self.data:
|
||||
if self.name in name:
|
||||
data.append(name)
|
||||
|
||||
if data:
|
||||
text = "Press 'spacebar' to choose SlackBuild for view"
|
||||
title = " SlackBuilds.org "
|
||||
backtitle = f"{_meta_.__all__} {_meta_.__version__}"
|
||||
status = False
|
||||
pkg = DialogUtil(data, text, title, backtitle, status).checklist()
|
||||
|
||||
if pkg and len(pkg) > 1:
|
||||
os.system("clear")
|
||||
raise SystemExit("\nslpkg: Error: Choose only one package\n")
|
||||
|
||||
if pkg is None:
|
||||
raise SystemExit(1)
|
||||
|
||||
self.name = "".join(pkg)
|
||||
os.system("clear")
|
||||
|
||||
def pager(self, text):
|
||||
"""Read text
|
||||
"""
|
||||
pydoc.pager(text)
|
||||
|
||||
def fill_pager(self, page):
|
||||
"""Fixes pager spaces
|
||||
"""
|
||||
tty_size = os.popen("stty size", "r").read().split()
|
||||
rows = int(tty_size[0]) - 1
|
||||
lines = sum(1 for line in page.splitlines())
|
||||
diff = rows - lines
|
||||
fill = "\n" * diff
|
||||
|
||||
if diff > 0:
|
||||
return fill
|
||||
|
||||
else:
|
||||
return ""
|
||||
|
||||
def error_uns(self):
|
||||
"""Checks if the package supported by an arch
|
||||
before proceeding to install
|
||||
"""
|
||||
self.FAULT = ""
|
||||
UNST = ["UNSUPPORTED", "UNTESTED"]
|
||||
|
||||
if "".join(self.source_dwn) in UNST:
|
||||
self.FAULT = "".join(self.source_dwn)
|
||||
|
||||
def build(self):
|
||||
"""Builds slackware package
|
||||
"""
|
||||
pkg_security([self.name])
|
||||
self.error_uns()
|
||||
|
||||
if self.FAULT:
|
||||
print()
|
||||
self.msg.template(78)
|
||||
print(f"| Package {self.prgnam} {self.red} {self.FAULT} "
|
||||
f"{self.endc}")
|
||||
self.msg.template(78)
|
||||
|
||||
else:
|
||||
sources = []
|
||||
|
||||
if not os.path.exists(self.meta.build_path):
|
||||
os.makedirs(self.meta.build_path)
|
||||
|
||||
if not os.path.exists(self._SOURCES):
|
||||
os.makedirs(self._SOURCES)
|
||||
|
||||
os.chdir(self.meta.build_path)
|
||||
|
||||
Download(self.meta.build_path, self.sbo_dwn.split(),
|
||||
repo="sbo").start()
|
||||
|
||||
Download(self._SOURCES, self.source_dwn, repo="sbo").start()
|
||||
|
||||
script = self.sbo_dwn.split("/")[-1]
|
||||
|
||||
for src in self.source_dwn:
|
||||
sources.append(src.split("/")[-1])
|
||||
|
||||
BuildPackage(script, sources, self.meta.build_path,
|
||||
auto=False).build()
|
||||
|
||||
slack_package(self.prgnam) # check if build
|
||||
|
||||
def install(self):
|
||||
"""Installs SBo package found in /tmp directory.
|
||||
"""
|
||||
binary = slack_package(self.prgnam)
|
||||
print(f"[ {self.green}Installing{self.endc} ] --> {self.name}")
|
||||
PackageManager(binary).upgrade(flag="--install-new")
|
|
@ -22,18 +22,16 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
from slpkg.utils import Utils
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
from slpkg.models.models import SBoTable, session
|
||||
|
||||
|
||||
class SBoGrep(Utils):
|
||||
class SboQuery:
|
||||
"""Grabs data from sbo database
|
||||
"""
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.meta = _meta_
|
||||
self.db = self.meta.db
|
||||
self.arch64 = "x86_64"
|
||||
self.session = session
|
||||
|
|
@ -33,7 +33,7 @@ from slpkg.pkg.find import find_package
|
|||
from slpkg.pkg.build import BuildPackage
|
||||
from slpkg.pkg.manager import PackageManager
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
from slpkg.sbo.compressed import SBoLink
|
||||
from slpkg.sbo.search import sbo_search_pkg
|
||||
from slpkg.sbo.slack_find import slack_package
|
||||
|
@ -145,7 +145,7 @@ class QueuePkgs(Utils):
|
|||
|
||||
for pkg in packages:
|
||||
|
||||
if pkg not in SBoGrep(pkg).names():
|
||||
if pkg not in SboQuery(pkg).names():
|
||||
raise SystemExit(f"\nPackage '{pkg}' was not found in "
|
||||
f"the SBo repository\n")
|
||||
|
||||
|
@ -157,7 +157,7 @@ class QueuePkgs(Utils):
|
|||
|
||||
sbo_url = sbo_search_pkg(pkg)
|
||||
sbo_dwn = SBoLink(sbo_url).tar_gz()
|
||||
source_dwn = SBoGrep(pkg).source().split()
|
||||
source_dwn = SboQuery(pkg).source().split()
|
||||
os.chdir(self.meta.build_path)
|
||||
script = sbo_dwn.split("/")[-1]
|
||||
|
||||
|
@ -186,7 +186,7 @@ class QueuePkgs(Utils):
|
|||
|
||||
for pkg in packages:
|
||||
|
||||
ver = SBoGrep(pkg).version()
|
||||
ver = SboQuery(pkg).version()
|
||||
prgnam = f"{pkg}-{ver}"
|
||||
|
||||
if find_package(prgnam, self.meta.output):
|
||||
|
|
|
@ -38,4 +38,4 @@ def sbo_search_pkg(name):
|
|||
sbo = repo.default_repository()["sbo"]
|
||||
sbo_url = f"{sbo}{slack_ver()}/"
|
||||
|
||||
return f"{sbo_url}{location[0][2:]}/"
|
||||
return f"{sbo_url}{location[0]}/{name}/"
|
||||
|
|
|
@ -39,15 +39,15 @@ from slpkg.pkg.build import BuildPackage
|
|||
from slpkg.pkg.manager import PackageManager
|
||||
from slpkg.pkg.installed import GetFromInstalled
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
from slpkg.sbo.sbo_arch import SBoArch
|
||||
from slpkg.sbo.compressed import SBoLink
|
||||
from slpkg.sbo.dependency import Requires
|
||||
from slpkg.sbo.search import sbo_search_pkg
|
||||
from slpkg.sbo.dependencies import Requires
|
||||
from slpkg.sbo.slack_find import slack_package
|
||||
|
||||
|
||||
class SBoInstall(BlackList, Utils):
|
||||
class SBoInstall(Utils):
|
||||
"""Build and install SBo packages with all dependencies
|
||||
"""
|
||||
def __init__(self, slackbuilds, flag):
|
||||
|
@ -65,7 +65,6 @@ class SBoInstall(BlackList, Utils):
|
|||
self.arch = SBoArch().get()
|
||||
self.build_folder = self.meta.build_path
|
||||
self._SOURCES = self.meta.SBo_SOURCES
|
||||
self.init_flags()
|
||||
self.unst = ["UNSUPPORTED", "UNTESTED"]
|
||||
self.master_packages = []
|
||||
self.deps = []
|
||||
|
@ -79,19 +78,8 @@ class SBoInstall(BlackList, Utils):
|
|||
self.count_upg = 0
|
||||
self.count_uni = 0
|
||||
self.msg.reading()
|
||||
self.data = SBoGrep(name="").names()
|
||||
self.blacklist = list(self.get_black())
|
||||
|
||||
def init_flags(self):
|
||||
"""Flags initialization
|
||||
"""
|
||||
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.data = SboQuery(name="").names()
|
||||
self.blacklist = BlackList().get()
|
||||
|
||||
def start(self, is_upgrade):
|
||||
"""Start view, build and install SBo packages
|
||||
|
@ -103,33 +91,35 @@ class SBoInstall(BlackList, Utils):
|
|||
for _sbo in self.slackbuilds:
|
||||
|
||||
if _sbo in self.data and _sbo not in self.blacklist:
|
||||
sbo_deps = Requires(self.flag).sbo(_sbo)
|
||||
sbo_deps = Requires(_sbo).sbo()
|
||||
self.deps += sbo_deps
|
||||
self.deps_dict[_sbo] = self.one_for_all(sbo_deps)
|
||||
|
||||
self.deps_dict[_sbo] = 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))
|
||||
|
||||
self.dependencies, dep_src = self.sbo_version_source(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:
|
||||
|
@ -198,17 +188,6 @@ class SBoInstall(BlackList, Utils):
|
|||
if key == name.lower():
|
||||
self.slackbuilds[index] = value
|
||||
|
||||
def update_deps(self):
|
||||
"""Update dependencies dictionary with all package
|
||||
"""
|
||||
onelist, dependencies = [], []
|
||||
onelist = self.dimensional_list(self.deps)
|
||||
dependencies = self.remove_dbs(onelist)
|
||||
|
||||
for dep in dependencies:
|
||||
deps = Requires(self.flag).sbo(dep)
|
||||
self.deps_dict[dep] = self.one_for_all(deps)
|
||||
|
||||
def continue_to_install(self):
|
||||
"""Continue to install ?
|
||||
"""
|
||||
|
@ -235,7 +214,6 @@ class SBoInstall(BlackList, Utils):
|
|||
"""Clear master slackbuilds if already exist in dependencies
|
||||
or if added to install two or more times
|
||||
"""
|
||||
self.master_packages = self.remove_dbs(self.master_packages)
|
||||
for mas in self.master_packages:
|
||||
|
||||
if mas in self.dependencies:
|
||||
|
@ -257,9 +235,9 @@ class SBoInstall(BlackList, Utils):
|
|||
sbo_versions, sources = [], []
|
||||
|
||||
for sbo in slackbuilds:
|
||||
sbo_ver = f"{sbo}-{SBoGrep(sbo).version()}"
|
||||
sbo_ver = f"{sbo}-{SboQuery(sbo).version()}"
|
||||
sbo_versions.append(sbo_ver)
|
||||
sources.append(SBoGrep(sbo).source())
|
||||
sources.append(SboQuery(sbo).source())
|
||||
|
||||
return [sbo_versions, sources]
|
||||
|
||||
|
@ -376,7 +354,7 @@ class SBoInstall(BlackList, Utils):
|
|||
|
||||
pkg = "-".join(prgnam.split("-")[:-1])
|
||||
installed = "".join(find_package(prgnam, self.meta.pkg_path))
|
||||
src_link = SBoGrep(pkg).source().split()
|
||||
src_link = SboQuery(pkg).source().split()
|
||||
|
||||
if (installed and "--download-only" not in self.flag and
|
||||
"--rebuild" not in self.flag):
|
||||
|
|
|
@ -46,13 +46,13 @@ from slpkg.pkg.find import find_package
|
|||
from slpkg.pkg.manager import PackageManager
|
||||
from slpkg.pkg.installed import GetFromInstalled
|
||||
|
||||
from slpkg.binary.greps import repo_data
|
||||
from slpkg.binaries.queries import repo_data
|
||||
|
||||
from slpkg.slack.mirrors import mirrors
|
||||
from slpkg.slack.slack_version import slack_ver
|
||||
|
||||
|
||||
class Patches(BlackList, Utils):
|
||||
class Patches(Utils):
|
||||
"""Upgrades distribution from the official Slackware mirrors
|
||||
"""
|
||||
def __init__(self, skip, flag):
|
||||
|
@ -78,6 +78,7 @@ class Patches(BlackList, Utils):
|
|||
self.comp_sum = []
|
||||
self.uncomp_sum = []
|
||||
self.msg.checking()
|
||||
self.blacklist = BlackList().get()
|
||||
|
||||
if self.version == "stable":
|
||||
self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT",
|
||||
|
@ -153,7 +154,7 @@ class Patches(BlackList, Utils):
|
|||
"""Stores and returns packages for upgrading
|
||||
"""
|
||||
data = repo_data(self.PACKAGES_TXT, "slack", self.flag)
|
||||
black = list(self.get_black())
|
||||
|
||||
for name, loc, comp, uncomp in zip(data[0], data[1], data[2], data[3]):
|
||||
repo_pkg_name = split_package(name)[0]
|
||||
|
||||
|
@ -162,7 +163,7 @@ class Patches(BlackList, Utils):
|
|||
pkg_ver = split_package(name)[1]
|
||||
|
||||
if (GetFromInstalled(pkg_name).name() and
|
||||
repo_pkg_name not in black and
|
||||
repo_pkg_name not in self.blacklist and
|
||||
repo_pkg_name not in self.skip and
|
||||
parse_version(pkg_ver) > parse_version(
|
||||
GetFromInstalled(pkg_name).version())):
|
||||
|
@ -178,7 +179,7 @@ class Patches(BlackList, Utils):
|
|||
self.count_upg -= 1
|
||||
|
||||
elif (not os.path.isfile(self.meta.pkg_path + name[:-4]) and
|
||||
repo_pkg_name not in black and
|
||||
repo_pkg_name not in self.blacklist and
|
||||
repo_pkg_name not in self.skip):
|
||||
self.dwn_links.append(f"{mirrors('', '')}{loc}/{name}")
|
||||
self.comp_sum.append(comp)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
|
||||
from slpkg.utils import Utils
|
||||
from slpkg.binary.greps import repo_data
|
||||
from slpkg.binaries.queries import repo_data
|
||||
from slpkg.splitting import split_package
|
||||
from slpkg.__metadata__ import MetaData as _meta_
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
from slpkg.utils import Utils
|
||||
from slpkg.graph import Graph
|
||||
from slpkg.messages import Msg
|
||||
from slpkg.blacklist import BlackList
|
||||
|
@ -30,20 +29,21 @@ from slpkg.__metadata__ import MetaData as _meta_
|
|||
|
||||
from slpkg.pkg.find import find_package
|
||||
|
||||
from slpkg.sbo.greps import SBoGrep
|
||||
from slpkg.sbo.dependency import Requires
|
||||
from slpkg.sbo.queries import SboQuery
|
||||
from slpkg.sbo.dependencies import Requires
|
||||
from slpkg.sbo.search import sbo_search_pkg
|
||||
|
||||
from slpkg.binary.search import search_pkg
|
||||
from slpkg.binary.dependency import Dependencies
|
||||
from slpkg.binaries.search import search_pkg
|
||||
from slpkg.binaries.dependency import Dependencies
|
||||
|
||||
|
||||
class TrackingDeps(BlackList, Utils):
|
||||
class TrackingDeps:
|
||||
"""Views tree of dependencies and also
|
||||
highlights packages with the colour green
|
||||
if already installed and the colour red
|
||||
if not installed.
|
||||
"""
|
||||
|
||||
def __init__(self, name, repo, flag):
|
||||
super().__init__()
|
||||
self.name = name
|
||||
|
@ -57,9 +57,8 @@ class TrackingDeps(BlackList, Utils):
|
|||
self.red = self.meta.color["RED"]
|
||||
self.endc = self.meta.color["ENDC"]
|
||||
self.requires = []
|
||||
self.dependencies = []
|
||||
self.dependencies_list = []
|
||||
self.deps_dict = {}
|
||||
self.blacklist = BlackList()
|
||||
self.init_flags()
|
||||
|
||||
def init_flags(self):
|
||||
|
@ -78,9 +77,6 @@ class TrackingDeps(BlackList, Utils):
|
|||
self.repositories()
|
||||
|
||||
if self.find_pkg:
|
||||
self.dependencies_list.reverse()
|
||||
self.requires = self.dimensional_list(self.dependencies_list)
|
||||
self.dependencies = self.remove_dbs(self.requires)
|
||||
|
||||
if self.dependencies == []:
|
||||
self.dependencies = ["No dependencies"]
|
||||
|
@ -152,7 +148,7 @@ class TrackingDeps(BlackList, Utils):
|
|||
self.find_pkg = sbo_search_pkg(self.name)
|
||||
|
||||
if self.find_pkg:
|
||||
self.dependencies_list = Requires(self.flag).sbo(self.name)
|
||||
self.dependencies = Requires(self.name).sbo()
|
||||
|
||||
else:
|
||||
PACKAGES_TXT = self.read_file(
|
||||
|
@ -162,8 +158,8 @@ class TrackingDeps(BlackList, Utils):
|
|||
self.find_pkg = search_pkg(self.name, self.repo)
|
||||
|
||||
if self.find_pkg:
|
||||
self.black = list(self.get_black())
|
||||
self.dependencies_list = Dependencies(
|
||||
self.black = list(self.blacklist.get())
|
||||
self.dependencies = Dependencies(
|
||||
self.repo, self.black).binary(self.name, self.flag)
|
||||
|
||||
def sbo_case_insensitive(self):
|
||||
|
@ -171,7 +167,7 @@ class TrackingDeps(BlackList, Utils):
|
|||
lowercase for sbo repository
|
||||
"""
|
||||
if "--case-ins" in self.flag:
|
||||
data = SBoGrep(name="").names()
|
||||
data = SboQuery(name="").names()
|
||||
data_dict = self.case_sensitive(data)
|
||||
|
||||
for key, value in data_dict.items():
|
||||
|
@ -219,7 +215,7 @@ class TrackingDeps(BlackList, Utils):
|
|||
if self.repo == "sbo":
|
||||
|
||||
for dep in dependencies:
|
||||
deps = Requires(flag="").sbo(dep)
|
||||
deps = Requires(dep).sbo()
|
||||
|
||||
if dep not in self.deps_dict.values():
|
||||
self.deps_dict[dep] = self.dimensional_list(deps)
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
|
||||
|
||||
import os
|
||||
from collections import OrderedDict
|
||||
|
||||
from slpkg.splitting import split_package
|
||||
|
||||
|
@ -50,11 +49,6 @@ class Utils:
|
|||
|
||||
return one_list
|
||||
|
||||
def remove_dbs(self, double):
|
||||
"""Removes double item from list
|
||||
"""
|
||||
return list(OrderedDict.fromkeys(double))
|
||||
|
||||
def read_file(self, registry):
|
||||
"""Returns reading file
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue