mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2024-12-27 09:58:10 +01:00
updated for version 2.1.5
This commit is contained in:
parent
1c944e9271
commit
11351c2d27
62 changed files with 1352 additions and 512 deletions
13
CHANGELOG
13
CHANGELOG
|
@ -1,3 +1,16 @@
|
||||||
|
Version 2.1.5
|
||||||
|
27-12-2014
|
||||||
|
|
||||||
|
[Feature] - Added slacker.it, slackonly.com, Alien's ktown, Alien's multilib,
|
||||||
|
Slacke E17 and E18, SalixOS and Slackel repositories.
|
||||||
|
- Added command 're-create'.
|
||||||
|
- Added command 'repolist'.
|
||||||
|
- Added command 'repoinfo'.
|
||||||
|
|
||||||
|
[Updated] - Fix Slackware current upgrade checksums.
|
||||||
|
- Fix ingore hiden files in /var/log/packages/ path.
|
||||||
|
- Fix arguments.
|
||||||
|
|
||||||
Version 2.1.4
|
Version 2.1.4
|
||||||
16-12-2014
|
16-12-2014
|
||||||
|
|
||||||
|
|
2
PKG-INFO
2
PKG-INFO
|
@ -1,6 +1,6 @@
|
||||||
Metadata-Version: 1.1
|
Metadata-Version: 1.1
|
||||||
Name: slpkg
|
Name: slpkg
|
||||||
Version: 2.1.4
|
Version: 2.1.5
|
||||||
Author: dslackw
|
Author: dslackw
|
||||||
Author-email: d zlatanidis at gmail com
|
Author-email: d zlatanidis at gmail com
|
||||||
Maintainer: dslackw
|
Maintainer: dslackw
|
||||||
|
|
117
README.rst
117
README.rst
|
@ -11,9 +11,9 @@
|
||||||
|
|
||||||
Latest Release:
|
Latest Release:
|
||||||
|
|
||||||
- Version: 2.1.4
|
- Version: 2.1.5
|
||||||
- `Package <https://sourceforge.net/projects/slpkg/files/slpkg/binary/>`_
|
- `Package <https://sourceforge.net/projects/slpkg/files/slpkg/binary/>`_
|
||||||
- `Source <https://github.com/dslackw/slpkg/archive/v2.1.4.tar.gz>`_
|
- `Source <https://github.com/dslackw/slpkg/archive/v2.1.5.tar.gz>`_
|
||||||
- `CHANGELOG <https://github.com/dslackw/slpkg/blob/master/CHANGELOG>`_
|
- `CHANGELOG <https://github.com/dslackw/slpkg/blob/master/CHANGELOG>`_
|
||||||
|
|
||||||
.. image:: https://raw.githubusercontent.com/dslackw/images/master/slpkg/logo.png
|
.. image:: https://raw.githubusercontent.com/dslackw/images/master/slpkg/logo.png
|
||||||
|
@ -37,7 +37,7 @@ Supported Repositories:
|
||||||
- Slack - `Repository <http://www.slackware.com/>`_
|
- Slack - `Repository <http://www.slackware.com/>`_
|
||||||
Arch: {x86, x86_64}
|
Arch: {x86, x86_64}
|
||||||
Versions: {3.3, 8.1, 9.0, 9.1, 10.0, 10.1, 10.2, 11.0, 12.0, 12.2, 13.0, 13.37, 14.0, 14.1, current}
|
Versions: {3.3, 8.1, 9.0, 9.1, 10.0, 10.1, 10.2, 11.0, 12.0, 12.2, 13.0, 13.37, 14.0, 14.1, current}
|
||||||
- Alien - `Repository <http://www.slackware.com/~alien/slackbuilds/>`_
|
- Alien's - `Repository <http://www.slackware.com/~alien/slackbuilds/>`_
|
||||||
Arch: {x86, x86_64}
|
Arch: {x86, x86_64}
|
||||||
Versions: {11.0, 12.0, 12.1, 12.2, 13.0, 13.1, 13.37, 14.0, 14.1, current}
|
Versions: {11.0, 12.0, 12.1, 12.2, 13.0, 13.1, 13.37, 14.0, 14.1, current}
|
||||||
- Slacky - `Repository <http://repository.slacky.eu/>`_
|
- Slacky - `Repository <http://repository.slacky.eu/>`_
|
||||||
|
@ -49,14 +49,38 @@ Supported Repositories:
|
||||||
- Studioware - `Repository <http://studioware.org/packages>`_
|
- Studioware - `Repository <http://studioware.org/packages>`_
|
||||||
Arch: {x86, x86_64}
|
Arch: {x86, x86_64}
|
||||||
Versions: {13.37, 14.0, 14.1}
|
Versions: {13.37, 14.0, 14.1}
|
||||||
|
- Slackers - `Repository <http://www.slackers.it/repository/>`_
|
||||||
|
Arch: {x86_64}
|
||||||
|
Versions: {current}
|
||||||
|
- Slackonly - `Repository <https://slackonly.com/>`_
|
||||||
|
Arch: {x86, x86_64}
|
||||||
|
Versions: {14.1}
|
||||||
|
- Alien's ktown - `Repository <http://alien.slackbook.org/ktown/>`_
|
||||||
|
Arch: {x86, x86_64}
|
||||||
|
Versions: {13.37, 14.0, 14.1, current}
|
||||||
|
- Alien's multi - `Repository <http://www.slackware.com/~alien/multilib/>`_
|
||||||
|
Arch: {x86_64}
|
||||||
|
Versions: {13.0, 13.1, 13.37, 14.0, 14.1, current}
|
||||||
|
- Slacke E17 and E18 - `Repository <http://ngc891.blogdns.net/pub/>`_
|
||||||
|
Arch: {x86, x86_64, arm}
|
||||||
|
Versions: {14.1}
|
||||||
|
- SalixOS - `Repository <http://download.salixos.org/>`_
|
||||||
|
Arch: {x86, x86_64}
|
||||||
|
Versions: {13.0, 13.1, 13.37, 14.0, 14.1}
|
||||||
|
- Slackel - `Repository <http://www.slackel.gr/repo/>`_
|
||||||
|
Arch: {x86, x86_64}
|
||||||
|
Versions: {current}
|
||||||
|
|
||||||
|
|
||||||
* Choose repositories you need to work from file '/etc/slpkg/slpkg.conf' default is
|
* Choose repositories you need to work from file '/etc/slpkg/slpkg.conf' default is
|
||||||
all repositories.
|
'slack' and 'sbo' repositories and read REPOSITORIES file for each of the particularities.
|
||||||
|
|
||||||
Slpkg works in accordance with the standards of the organization slackbuilds.org
|
Slpkg works in accordance with the standards of the organization slackbuilds.org
|
||||||
to builds packages. Also uses the Slackware linux instructions for installation,
|
to builds packages. Also uses the Slackware linux instructions for installation,
|
||||||
upgrading or removing packages.
|
upgrading or removing packages.
|
||||||
|
|
||||||
|
Slpkg must work with any Slackware based distribution such Salix and Slackel or Slax etc.
|
||||||
|
|
||||||
What makes slpkg to distinguish it from other tools; The user friendliness is its primary
|
What makes slpkg to distinguish it from other tools; The user friendliness is its primary
|
||||||
target as well as easy to understand and use, also use color to highlight packages and
|
target as well as easy to understand and use, also use color to highlight packages and
|
||||||
display warning messages, etc.
|
display warning messages, etc.
|
||||||
|
@ -65,10 +89,9 @@ The big advantages is resolving dependencies packages from repositories and moni
|
||||||
upgraded packages.
|
upgraded packages.
|
||||||
|
|
||||||
Also you can install official packages of your favorite distribution directly from the
|
Also you can install official packages of your favorite distribution directly from the
|
||||||
official repositories
|
official repositories of Slackware. Even you can check for the official updates and install them.
|
||||||
of Slackware. Even you can check for the official updates and install them.
|
|
||||||
|
|
||||||
And as we say Slackers, Keep it Simple Stupid!
|
More features come ...
|
||||||
|
|
||||||
.. image:: https://raw.githubusercontent.com/dslackw/images/master/slpkg/slpkg_package.png
|
.. image:: https://raw.githubusercontent.com/dslackw/images/master/slpkg/slpkg_package.png
|
||||||
:target: https://github.com/dslackw/slpkg
|
:target: https://github.com/dslackw/slpkg
|
||||||
|
@ -112,8 +135,8 @@ Untar the archive and run install.sh script:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ tar xvf slpkg-2.1.4.tar.gz
|
$ tar xvf slpkg-2.1.5.tar.gz
|
||||||
$ cd slpkg-2.1.4
|
$ cd slpkg-2.1.5
|
||||||
$ ./install.sh
|
$ ./install.sh
|
||||||
|
|
||||||
From SourceForge:
|
From SourceForge:
|
||||||
|
@ -203,6 +226,9 @@ Command Line Tool Usage
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
update update all package lists
|
update update all package lists
|
||||||
|
re-create recreate package lists
|
||||||
|
repolist list all repositories
|
||||||
|
repoinfo [repository] repository information
|
||||||
update slpkg check and update slpkg
|
update slpkg check and update slpkg
|
||||||
|
|
||||||
Optional arguments:
|
Optional arguments:
|
||||||
|
@ -213,7 +239,7 @@ Command Line Tool Usage
|
||||||
-q, --list, [package...] --add, --remove add, remove SBo packages in queue
|
-q, --list, [package...] --add, --remove add, remove SBo packages in queue
|
||||||
--build, --install, --build-install build, install packages from queue
|
--build, --install, --build-install build, install packages from queue
|
||||||
-g, --config, --config=[editor] configuration file management
|
-g, --config, --config=[editor] configuration file management
|
||||||
-l, [repository], all, noarch list of installed packages
|
-l, [repository], all list of installed packages
|
||||||
-c, [repository] --upgrade check for updated packages
|
-c, [repository] --upgrade check for updated packages
|
||||||
-s, [repository] [package] download, build & install
|
-s, [repository] [package] download, build & install
|
||||||
-t, [repository] [package] tracking dependencies
|
-t, [repository] [package] tracking dependencies
|
||||||
|
@ -230,7 +256,64 @@ Command Line Tool Usage
|
||||||
Slpkg Examples
|
Slpkg Examples
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Find packages from slackbuilds.org download,
|
If you use slpkg for the first time will have to create
|
||||||
|
and update the package lists:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ slpkg update
|
||||||
|
|
||||||
|
Update repository slack .......................Done
|
||||||
|
Update repository sbo .............Done
|
||||||
|
Update repository alien ...Done
|
||||||
|
Update repository slacky .....................................Done
|
||||||
|
Update repository studio ...................Done
|
||||||
|
Update repository slackr .............................................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
|
||||||
|
|
||||||
|
|
||||||
|
Take information repositories with commands:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ slpkg repolist
|
||||||
|
|
||||||
|
+==============================================================================
|
||||||
|
| Repo id Repo name Status
|
||||||
|
+==============================================================================
|
||||||
|
alien http://www.slackware.com/~alien/slackbuilds/ enabled
|
||||||
|
ktown http://alien.slackbook.org/ktown/ enabled
|
||||||
|
multi http://www.slackware.com/~alien/multilib/ enabled
|
||||||
|
rlw http://rlworkman.net/pkgs/ enabled
|
||||||
|
salix http://download.salixos.org/ enabled
|
||||||
|
sbo http://slackbuilds.org/slackbuilds/ enabled
|
||||||
|
slack http://mirrors.slackware.com/slackware/ enabled
|
||||||
|
slacke http://ngc891.blogdns.net/pub/ enabled
|
||||||
|
slackl http://www.slackel.gr/repo/ enabled
|
||||||
|
slackr http://www.slackers.it/repository/ disabled
|
||||||
|
slacky http://repository.slacky.eu/ enabled
|
||||||
|
slonly https://slackonly.com/pub/packages/ enabled
|
||||||
|
studio http://studioware.org/files/packages/ enabled
|
||||||
|
|
||||||
|
For enable or disable repositories edit '/etc/slpkg/slpkg.conf' file
|
||||||
|
|
||||||
|
$ slpkg repoinfo alien
|
||||||
|
|
||||||
|
Last updated: Tue Dec 23 11:48:31 UTC 2014
|
||||||
|
Number of packages: 3149
|
||||||
|
Repo id: alien
|
||||||
|
Repo url: http://www.slackware.com/~alien/slackbuilds/
|
||||||
|
Status: enabled
|
||||||
|
Total compressed packages: 9.3 Gb
|
||||||
|
Total uncompressed packages: 36.31 Gb
|
||||||
|
|
||||||
|
|
||||||
|
Find packages from repository download,
|
||||||
build and install with all dependencies :
|
build and install with all dependencies :
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
@ -373,9 +456,9 @@ Check if your Slackware distribution is up to date:
|
||||||
| Package Version Arch Build Repos Size
|
| Package Version Arch Build Repos Size
|
||||||
+==============================================================================
|
+==============================================================================
|
||||||
Upgrading:
|
Upgrading:
|
||||||
dhcpcd 6.0.5 x86_64 3 Slack 92 K
|
dhcpcd-6.0.5 6.0.5 x86_64 3 Slack 92 K
|
||||||
samba 4.1.11 x86_64 1 Slack 9928 K
|
samba-4.1.0 4.1.11 x86_64 1 Slack 9928 K
|
||||||
xscreensaver 5.29 x86_64 1 Slack 3896 K
|
xscreensaver-5.22 5.29 x86_64 1 Slack 3896 K
|
||||||
|
|
||||||
Installing summary
|
Installing summary
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
@ -746,3 +829,9 @@ Man page it is available for full support:
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ man slpkg
|
$ man slpkg
|
||||||
|
|
||||||
|
|
||||||
|
Donate
|
||||||
|
--------
|
||||||
|
If you feel satisfied with this project and want to thank me go
|
||||||
|
to `Slackware <https://store.slackware.com/cgi-bin/store/slackdonation>`_ and make a donation or visit the `store <https://store.slackware.com/cgi-bin/store>`_.
|
||||||
|
|
32
REPOSITORIES
Normal file
32
REPOSITORIES
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
This file was created to explain some peculiarities of repositories used by the slpkg.
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SlackBuilds.org (sbo) FAQ(15):
|
||||||
|
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 central site
|
||||||
|
'http://rlworkman.net/pkgs/' and only those. Unfortunately there is no fixed reference
|
||||||
|
dependencies file PACKAGES.TXT.
|
||||||
|
|
||||||
|
Slackers.it (slackr) repository must be used only from Slackware64 current users.
|
||||||
|
Also find in some packages will not show package description when you run the command
|
||||||
|
'slpkg -p slackr <package>' and this is because there is not constant reference to the
|
||||||
|
description of the file 'PACKAGES.TXT' as in other repositories. Some packages reference
|
||||||
|
dependencies not included in the repository. This can be checked if you run the command
|
||||||
|
'slpkg -t slackr <package>'. (Example: noticed that the package 'digikam' indicate
|
||||||
|
dependence 'ffmpeg' but that is not available from the repository itself).
|
||||||
|
|
||||||
|
Slackonly (slonly) repository contains no dependencies on file PACKAGES.TXT and this makes
|
||||||
|
it difficult to automatically resolve dependencies and in the file PACKAGES.TXT and some
|
||||||
|
lines with 'PACKAGE NAME:' there is no package so 'slpkg' can not find package.
|
||||||
|
Users with Slackware x86_64 will use this repository should establish from the beginning
|
||||||
|
the list of packages with the command 'slpkg re-create' to be updated with new packages
|
||||||
|
and it's because the repository has not 'ChangeLog.txt' file.
|
||||||
|
|
||||||
|
Studioware (studio), Alien's ktown (ktown), Alien's multilib (multi), Slacke E17 and E18
|
||||||
|
repository has no reference dependencies.
|
||||||
|
|
||||||
|
Slackel.gr (slackl) repository must be used only from Slackware current users and has the
|
||||||
|
same peculiarities in the repository 'slackr'.
|
17
TESTING
17
TESTING
|
@ -13,3 +13,20 @@ Release : 14.1
|
||||||
Version : stable
|
Version : stable
|
||||||
Arch : x86, x86_64
|
Arch : x86, x86_64
|
||||||
|
|
||||||
|
--------------------------------
|
||||||
|
19-12-2014
|
||||||
|
Slackware Arch: x86_64, Version: 14.1 'stable'
|
||||||
|
|
||||||
|
Test to upgrade Slackware Linux Distribution.
|
||||||
|
Successful upgrade fresh full installation with command 'slpkg -c slack --upgrade'
|
||||||
|
Total 54 packages upgraded and kernel, after auto-install 'lilo' reinstall successfully so.
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------
|
||||||
|
20-12-2014
|
||||||
|
Slackware Arch: x86 Version 14.1 'current'
|
||||||
|
|
||||||
|
Test to upgrade Slackware Linux Distribution.
|
||||||
|
Successful upgrade fresh full installation with command 'slpkg -c slack --upgrade'
|
||||||
|
Total 66 packages upgraded and kernel, after auto-install 'lilo' reinstall successfully so.
|
||||||
|
|
||||||
|
|
4
THANKS
4
THANKS
|
@ -9,6 +9,10 @@ Willy Sudiarto Raharjo - https://github.com/willysr
|
||||||
For the interesting and valuable advice around the systems of Slackware
|
For the interesting and valuable advice around the systems of Slackware
|
||||||
and SBo packages.
|
and SBo packages.
|
||||||
|
|
||||||
|
Kostas Nikiforakis - Tester
|
||||||
|
|
||||||
|
For the tests in his system.
|
||||||
|
|
||||||
LinuxQuestions.org - http://www.linuxquestions.org
|
LinuxQuestions.org - http://www.linuxquestions.org
|
||||||
|
|
||||||
In all members of the community of Slackware forum linuxquestions.org.
|
In all members of the community of Slackware forum linuxquestions.org.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations.
|
||||||
#
|
#
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
#
|
#
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
# below. Be careful is the template that the rest.
|
# below. Be careful is the template that the rest.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Last Updated: Mon Dec 15 02:47:02 UTC 2014
|
# Last Updated: Sat Dec 27 09:47:02 UTC 2014
|
||||||
#
|
#
|
||||||
# Available http mirrors:
|
# Available http mirrors:
|
||||||
#
|
#
|
||||||
|
@ -106,6 +106,7 @@
|
||||||
# us http://mirrors2.kernel.org/slackware/
|
# us http://mirrors2.kernel.org/slackware/
|
||||||
# us http://mirrors3.kernel.org/slackware/
|
# us http://mirrors3.kernel.org/slackware/
|
||||||
# us http://mirrors4.kernel.org/slackware/
|
# us http://mirrors4.kernel.org/slackware/
|
||||||
|
# us http://reflect.cs.princeton.edu/slackware/
|
||||||
# us http://slackblog.com/slackware/
|
# us http://slackblog.com/slackware/
|
||||||
# us http://slackbuilds.org/mirror/slackware/
|
# us http://slackbuilds.org/mirror/slackware/
|
||||||
# us http://slackware.cs.utah.edu/
|
# us http://slackware.cs.utah.edu/
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations.
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -23,9 +23,13 @@
|
||||||
# Slackware version 'stable' or 'current'.
|
# Slackware version 'stable' or 'current'.
|
||||||
VERSION=stable
|
VERSION=stable
|
||||||
|
|
||||||
# Choose repositories want to work.
|
# Choose repositories want to work. Read first REPOSITORIES file.
|
||||||
# Available repositories : slack, sbo, alien, rlw, slacky, studio
|
# Available repositories : slack,sbo,alien,rlw,slacky,studio,slackr,slonly,
|
||||||
REPOSITORIES=slack,sbo,alien,rlw,slacky,studio
|
# ktown{latest},multi,slacke{18},salix,slackl
|
||||||
|
# slackr (slackers.it) repository must used from Slackware64 current.
|
||||||
|
# Ktown (Alien's ktown) repository. Default ktown{latest}.
|
||||||
|
# Slacke (Enlightenment E17 and E18) repository. Default slacke{18}.
|
||||||
|
REPOSITORIES=slack,sbo
|
||||||
|
|
||||||
# Build directory for repository slackbuilds.org. In this directory
|
# Build directory for repository slackbuilds.org. In this directory
|
||||||
# downloaded sources and scripts for building.
|
# downloaded sources and scripts for building.
|
||||||
|
@ -63,7 +67,9 @@ REMOVE_DEPS_ANSWER=n
|
||||||
SKIP_UNST=n
|
SKIP_UNST=n
|
||||||
|
|
||||||
# Delete package dependencies if DEL_DEPS is on.
|
# Delete package dependencies if DEL_DEPS is on.
|
||||||
DEL_DEPS=on
|
# You must be careful if you enable this option because it can remove
|
||||||
|
# packages related to distribution.
|
||||||
|
DEL_DEPS=off
|
||||||
|
|
||||||
# Use colors for highlighting. Choose 'on' or 'off'.
|
# Use colors for highlighting. Choose 'on' or 'off'.
|
||||||
USE_COLORS=on
|
USE_COLORS=on
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=slpkg
|
PRGNAM=slpkg
|
||||||
VERSION=${VERSION:-2.1.4}
|
VERSION=${VERSION:-2.1.5}
|
||||||
TAG=${TAG:-_dsw}
|
TAG=${TAG:-_dsw}
|
||||||
|
|
||||||
# Installation script.
|
# Installation script.
|
||||||
|
|
45
man/slpkg.8
45
man/slpkg.8
|
@ -13,14 +13,14 @@
|
||||||
.\"
|
.\"
|
||||||
.TH Slpkg "8" "5 2014" "slpkg"
|
.TH Slpkg "8" "5 2014" "slpkg"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
slpkg - Utility for easy management packages in Slackware
|
Slpkg is a user-friendly package manager for Slackware installations
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
Usage: slpkg [-h] [-v] [-a script.tar.gz [sources...]]
|
Usage: slpkg [-h] [-v] [-a script.tar.gz [sources...]]
|
||||||
[-b --list, --add, --remove [...]]
|
[-b --list, --add, --remove [...]]
|
||||||
[-q --list, [...] --add, --remove]
|
[-q --list, [...] --add, --remove]
|
||||||
[ --build, --install, --build-install]
|
[ --build, --install, --build-install]
|
||||||
[-g --config, --config=[editor]]
|
[-g --config, --config=[editor]]
|
||||||
[-l [repository], all, noarch]
|
[-l [repository], all]
|
||||||
[-c [repository] --upgrade]
|
[-c [repository] --upgrade]
|
||||||
[-s [repository] [package][
|
[-s [repository] [package][
|
||||||
[-t [repository] [package]]
|
[-t [repository] [package]]
|
||||||
|
@ -33,10 +33,13 @@ Usage: slpkg [-h] [-v] [-a script.tar.gz [sources...]]
|
||||||
.PP
|
.PP
|
||||||
It's a quick and easy way to manage your packages in slackware to a command.
|
It's a quick and easy way to manage your packages in slackware to a command.
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
Utility for easy management packages in Slackware
|
Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
update update all package lists
|
update update all package lists
|
||||||
|
re-create recreate package lists
|
||||||
|
repolist list all repositories
|
||||||
|
repoinfo [repository] repository information
|
||||||
update slpkg check and update slpkg
|
update slpkg check and update slpkg
|
||||||
|
|
||||||
Optional arguments:
|
Optional arguments:
|
||||||
|
@ -47,7 +50,7 @@ Optional arguments:
|
||||||
-q, --list, [package...] --add, --remove add, remove SBo packages in queue
|
-q, --list, [package...] --add, --remove add, remove SBo packages in queue
|
||||||
--build, --install, --build-install build, install packages from queue
|
--build, --install, --build-install build, install packages from queue
|
||||||
-g, --config, --config=<editor> configuration file management
|
-g, --config, --config=<editor> configuration file management
|
||||||
-l, [repository], all, noarch list of installed packages
|
-l, [repository], all list of installed packages
|
||||||
-c, [repository] --upgrade check for updated packages
|
-c, [repository] --upgrade check for updated packages
|
||||||
-s, [repository] [package] download, build & install
|
-s, [repository] [package] download, build & install
|
||||||
-t, [repository] [package] tracking dependencies
|
-t, [repository] [package] tracking dependencies
|
||||||
|
@ -61,7 +64,23 @@ Optional arguments:
|
||||||
-d, [package...] display the contents
|
-d, [package...] display the contents
|
||||||
|
|
||||||
.SH REPOSITORIES
|
.SH REPOSITORIES
|
||||||
slack, sbo, alien, slacky, rlw, studio
|
slackware.com = 'slack'
|
||||||
|
SlackBuilds.org = 'sbo'
|
||||||
|
Alien's = 'alien'
|
||||||
|
slacky.eu = 'slacky'
|
||||||
|
rworkman's = 'rlw'
|
||||||
|
studioware.org = 'studio'
|
||||||
|
slacker.it = 'slackr'
|
||||||
|
slackonly.com = 'slonly'
|
||||||
|
Alien's ktown = 'ktown{latest}'
|
||||||
|
Alien's multilib = 'multi'
|
||||||
|
Slacke E17 and E18 = 'slacke{18}'
|
||||||
|
SalixOS = 'salix'
|
||||||
|
Slackel.gr = 'slackel'
|
||||||
|
|
||||||
|
Default enable repository is 'slack' and 'sbo'.
|
||||||
|
Add or remove repository in configuration file '/etc/slpkg/slpkg.conf'
|
||||||
|
|
||||||
.SH COLORS
|
.SH COLORS
|
||||||
red, green, yellow, cyan, grey
|
red, green, yellow, cyan, grey
|
||||||
.PP
|
.PP
|
||||||
|
@ -79,6 +98,22 @@ The following commands are available.
|
||||||
Used to re-synchronize the package lists and create some important files.
|
Used to re-synchronize the package lists and create some important files.
|
||||||
This command must run every new repository is added or new updates is available.
|
This command must run every new repository is added or new updates is available.
|
||||||
|
|
||||||
|
.SS re-create
|
||||||
|
\fBslpkg\fP \fBre-create\fP
|
||||||
|
.PP
|
||||||
|
It is sometimes useful to create all of the base file from the beginning so this
|
||||||
|
command deletes all the packages lists and re-created.
|
||||||
|
|
||||||
|
.SS repolist
|
||||||
|
\fBslpkg\fP \fBrepolist\fP
|
||||||
|
.PP
|
||||||
|
Lists all enabled or disabled repositories.
|
||||||
|
|
||||||
|
.SS repoinfo
|
||||||
|
\fBslpkg\fP \fBrepoinfo\fP <\fBrepository\fP>
|
||||||
|
.PP
|
||||||
|
View repository information.
|
||||||
|
|
||||||
.SS update slpkg
|
.SS update slpkg
|
||||||
\fBslpkg\fP \fBupdate\fP \fBslpkg\fP
|
\fBslpkg\fP \fBupdate\fP \fBslpkg\fP
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -3,7 +3,3 @@
|
||||||
# Slackware 32 x86
|
# Slackware 32 x86
|
||||||
# Slackware 64 x86_64
|
# Slackware 64 x86_64
|
||||||
# Slackware current
|
# Slackware current
|
||||||
#
|
|
||||||
# NOTE from SlackBuilds.org FAQ(15):
|
|
||||||
# Slackware current is not supported, but as a general rule, the scripts
|
|
||||||
# should work on it as well.
|
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ config() {
|
||||||
|
|
||||||
CONFIGS="slpkg.conf blacklist slackware-mirrors"
|
CONFIGS="slpkg.conf blacklist slackware-mirrors"
|
||||||
for file in $CONFIGS; do
|
for file in $CONFIGS; do
|
||||||
config /etc/slpkg/${file}.new
|
config etc/slpkg/${file}.new
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -x /usr/bin/update-desktop-database ]; then
|
if [ -x /usr/bin/update-desktop-database ]; then
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=slpkg
|
PRGNAM=slpkg
|
||||||
VERSION=${VERSION:-2.1.4}
|
VERSION=${VERSION:-2.1.5}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_dsw}
|
TAG=${TAG:-_dsw}
|
||||||
|
|
||||||
|
@ -90,7 +90,8 @@ gzip -9 man/$PRGNAM.8
|
||||||
install -D -m0644 man/$PRGNAM.8.gz $PKG/usr/man/man8/$PRGNAM.8.gz
|
install -D -m0644 man/$PRGNAM.8.gz $PKG/usr/man/man8/$PRGNAM.8.gz
|
||||||
|
|
||||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
cp -a README.rst CHANGELOG LICENSE TESTING ISSUES $PKG/usr/doc/$PRGNAM-$VERSION
|
cp -a README.rst CHANGELOG LICENSE TESTING ISSUES REPOSITORIES \
|
||||||
|
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
mkdir -p $PKG/install
|
mkdir -p $PKG/install
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# Slpkg is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
|
@ -23,10 +23,9 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
__all__ = "slpkg"
|
__all__ = "slpkg"
|
||||||
__author__ = "dslackw"
|
__author__ = "dslackw"
|
||||||
__version_info__ = (2, 1, 4)
|
__version_info__ = (2, 1, 5)
|
||||||
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
||||||
__license__ = "GNU General Public License v3 (GPLv3)"
|
__license__ = "GNU General Public License v3 (GPLv3)"
|
||||||
__email__ = "d.zlatanidis@gmail.com"
|
__email__ = "d.zlatanidis@gmail.com"
|
||||||
|
@ -42,8 +41,40 @@ repositories = [
|
||||||
'rlw',
|
'rlw',
|
||||||
'alien',
|
'alien',
|
||||||
'slacky',
|
'slacky',
|
||||||
'studio'
|
'studio',
|
||||||
|
'slackr',
|
||||||
|
'slonly',
|
||||||
|
'ktown{latest}',
|
||||||
|
'multi',
|
||||||
|
'slacke{18}',
|
||||||
|
'salix',
|
||||||
|
'slackl'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def ktown_repo(repositories):
|
||||||
|
'''
|
||||||
|
Find if ktown repositories enabled then
|
||||||
|
take SUB_REPOSITORY
|
||||||
|
'''
|
||||||
|
for i, repo in enumerate(repositories):
|
||||||
|
if 'ktown' in repo:
|
||||||
|
sub = repositories[i].replace('ktown', '')
|
||||||
|
repositories[i] = 'ktown'
|
||||||
|
return sub
|
||||||
|
|
||||||
|
|
||||||
|
def slacke_repo(repositories):
|
||||||
|
'''
|
||||||
|
Find if slacke repositories enabled then
|
||||||
|
take SUB_REPOSITORY
|
||||||
|
'''
|
||||||
|
for i, repo in enumerate(repositories):
|
||||||
|
if 'slacke' in repo:
|
||||||
|
sub = repositories[i].replace('slacke', '')
|
||||||
|
repositories[i] = 'slacke'
|
||||||
|
return sub
|
||||||
|
|
||||||
build_path = "/tmp/slpkg/build/"
|
build_path = "/tmp/slpkg/build/"
|
||||||
slpkg_tmp_packages = tmp + "slpkg/packages/"
|
slpkg_tmp_packages = tmp + "slpkg/packages/"
|
||||||
slpkg_tmp_patches = tmp + "slpkg/patches/"
|
slpkg_tmp_patches = tmp + "slpkg/patches/"
|
||||||
|
@ -94,16 +125,19 @@ if os.path.isfile("/etc/slpkg/slpkg.conf"):
|
||||||
if line.startswith("USE_COLORS"):
|
if line.startswith("USE_COLORS"):
|
||||||
use_colors = line[11:].strip()
|
use_colors = line[11:].strip()
|
||||||
|
|
||||||
if use_colors == "on":
|
ktown_kde_repo = ktown_repo(repositories)
|
||||||
color = {
|
slacke_sub_repo = slacke_repo(repositories)
|
||||||
|
|
||||||
|
color = {
|
||||||
'RED': '\x1b[31m',
|
'RED': '\x1b[31m',
|
||||||
'GREEN': '\x1b[32m',
|
'GREEN': '\x1b[32m',
|
||||||
'YELLOW': '\x1b[33m',
|
'YELLOW': '\x1b[33m',
|
||||||
'CYAN': '\x1b[36m',
|
'CYAN': '\x1b[36m',
|
||||||
'GREY': '\x1b[38;5;247m',
|
'GREY': '\x1b[38;5;247m',
|
||||||
'ENDC': '\x1b[0m'
|
'ENDC': '\x1b[0m'
|
||||||
}
|
}
|
||||||
else:
|
|
||||||
|
if use_colors == "off":
|
||||||
color = {
|
color = {
|
||||||
'RED': '',
|
'RED': '',
|
||||||
'GREEN': '',
|
'GREEN': '',
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -21,19 +21,26 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from repolist import RepoList
|
||||||
from __metadata__ import (
|
from __metadata__ import (
|
||||||
__version__,
|
__version__,
|
||||||
|
repositories
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def options():
|
def options():
|
||||||
arguments = [
|
arguments = [
|
||||||
"\nslpkg - version {0}\n".format(__version__),
|
"\nslpkg - version {0}\n".format(__version__),
|
||||||
"Utility for easy management packages in Slackware\n",
|
"Slpkg is a user-friendly package manager for Slackware " +
|
||||||
|
"installations\n",
|
||||||
"Commands:",
|
"Commands:",
|
||||||
" update update all package " +
|
" update update all package " +
|
||||||
"lists",
|
"lists",
|
||||||
|
" re-create recreate package lists",
|
||||||
|
" repolist list all repositories",
|
||||||
|
" repoinfo [repository] repository information",
|
||||||
" update slpkg check and update slpkg\n",
|
" update slpkg check and update slpkg\n",
|
||||||
"Optional arguments:",
|
"Optional arguments:",
|
||||||
" -h, --help show this help message " +
|
" -h, --help show this help message " +
|
||||||
|
@ -48,7 +55,7 @@ def options():
|
||||||
"from queue",
|
"from queue",
|
||||||
" -g, --config, --config=[editor] configuration file " +
|
" -g, --config, --config=[editor] configuration file " +
|
||||||
"management",
|
"management",
|
||||||
" -l, [repository], all, noarch list of installed " +
|
" -l, [repository], all list of installed " +
|
||||||
"packages",
|
"packages",
|
||||||
" -c, [repository] --upgrade check for updated " +
|
" -c, [repository] --upgrade check for updated " +
|
||||||
"packages",
|
"packages",
|
||||||
|
@ -66,9 +73,20 @@ def options():
|
||||||
]
|
]
|
||||||
for opt in arguments:
|
for opt in arguments:
|
||||||
print(opt)
|
print(opt)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
def usage():
|
def usage(repo):
|
||||||
|
error_repo = ""
|
||||||
|
if repo and repo not in repositories:
|
||||||
|
all_repos = RepoList().all_repos
|
||||||
|
del RepoList().all_repos
|
||||||
|
if repo in all_repos:
|
||||||
|
error_repo = ("slpkg: error: repository '{0}' is not activated"
|
||||||
|
"\n".format(repo))
|
||||||
|
else:
|
||||||
|
error_repo = ("slpkg: error: repository '{0}' does not exist"
|
||||||
|
"\n".format(repo))
|
||||||
view = [
|
view = [
|
||||||
"slpkg - version {0}\n".format(__version__),
|
"slpkg - version {0}\n".format(__version__),
|
||||||
"Usage: slpkg [-h] [-v] [-a script.tar.gz [sources...]]",
|
"Usage: slpkg [-h] [-v] [-a script.tar.gz [sources...]]",
|
||||||
|
@ -76,14 +94,16 @@ def usage():
|
||||||
" [-q --list, [...] --add, --remove]",
|
" [-q --list, [...] --add, --remove]",
|
||||||
" [ --build, --install, --build-install]",
|
" [ --build, --install, --build-install]",
|
||||||
" [-g --config, --config=[editor]]",
|
" [-g --config, --config=[editor]]",
|
||||||
" [-l [repository], all, noarch]",
|
" [-l [repository], all]",
|
||||||
" [-c [repository] --upgrade]",
|
" [-c [repository] --upgrade]",
|
||||||
" [-s [repository] [package]",
|
" [-s [repository] [package]",
|
||||||
" [-t [repository] [package]",
|
" [-t [repository] [package]",
|
||||||
" [-p [repository] [package], --color=[]]",
|
" [-p [repository] [package], --color=[]]",
|
||||||
" [-f] [-n] [-i [...]] [-u [...]]",
|
" [-f] [-n] [-i [...]] [-u [...]]",
|
||||||
" [-o [...]] [-r [...]] [-d [...]]\n",
|
" [-o [...]] [-r [...]] [-d [...]]\n",
|
||||||
|
error_repo,
|
||||||
"For more information try 'slpkg --help' or view manpage\n"
|
"For more information try 'slpkg --help' or view manpage\n"
|
||||||
]
|
]
|
||||||
for usg in view:
|
for usg in view:
|
||||||
print(usg)
|
print(usg)
|
||||||
|
sys.exit(0)
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ from messages import pkg_not_found
|
||||||
from __metadata__ import (
|
from __metadata__ import (
|
||||||
lib_path,
|
lib_path,
|
||||||
repositories,
|
repositories,
|
||||||
color
|
color,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,15 +48,7 @@ class PkgDesc(object):
|
||||||
}
|
}
|
||||||
self.COLOR = color_text[self.paint]
|
self.COLOR = color_text[self.paint]
|
||||||
if self.repo in repositories:
|
if self.repo in repositories:
|
||||||
repos = {
|
self.lib = lib_path + '{0}_repo/PACKAGES.TXT'.format(self.repo)
|
||||||
'sbo': 'sbo_repo/SLACKBUILDS.TXT',
|
|
||||||
'slack': 'slack_repo/PACKAGES.TXT',
|
|
||||||
'rlw': 'rlw_repo/PACKAGES.TXT',
|
|
||||||
'alien': 'alien_repo/PACKAGES.TXT',
|
|
||||||
'slacky': 'slacky_repo/PACKAGES.TXT',
|
|
||||||
'studio': 'studio_repo/PACKAGES.TXT'
|
|
||||||
}
|
|
||||||
self.lib = lib_path + repos[self.repo]
|
|
||||||
|
|
||||||
def view(self):
|
def view(self):
|
||||||
f = open(self.lib, "r")
|
f = open(self.lib, "r")
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -24,7 +24,10 @@
|
||||||
from slack.mirrors import mirrors
|
from slack.mirrors import mirrors
|
||||||
|
|
||||||
from url_read import URL
|
from url_read import URL
|
||||||
from __metadata__ import lib_path
|
from __metadata__ import (
|
||||||
|
lib_path,
|
||||||
|
slack_rel
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def pkg_checksum(binary, repo):
|
def pkg_checksum(binary, repo):
|
||||||
|
@ -32,18 +35,13 @@ def pkg_checksum(binary, repo):
|
||||||
Return checksum from CHECKSUMS.md5 file by repository
|
Return checksum from CHECKSUMS.md5 file by repository
|
||||||
'''
|
'''
|
||||||
md5 = "None"
|
md5 = "None"
|
||||||
if repo == "slack_patches":
|
if repo == "slack_patches" and slack_rel == "stable":
|
||||||
CHECKSUMS_md5 = URL(mirrors("CHECKSUMS.md5", "patches/")).reading()
|
CHECKSUMS_md5 = URL(mirrors("CHECKSUMS.md5", "patches/")).reading()
|
||||||
|
elif repo == "slack_patches" and slack_rel == "current":
|
||||||
|
CHECKSUMS_md5 = URL(mirrors("CHECKSUMS.md5", "")).reading()
|
||||||
else:
|
else:
|
||||||
repos = {
|
lib = '{0}{1}_repo/CHECKSUMS.md5'.format(lib_path, repo)
|
||||||
'slack': 'slack_repo/CHECKSUMS.md5',
|
f = open(lib, "r")
|
||||||
'rlw': 'rlw_repo/CHECKSUMS.md5',
|
|
||||||
'alien': 'alien_repo/CHECKSUMS.md5',
|
|
||||||
'slacky': 'slacky_repo/CHECKSUMS.md5',
|
|
||||||
'studio': 'studio_repo/CHECKSUMS.md5'
|
|
||||||
}
|
|
||||||
lib = repos[repo]
|
|
||||||
f = open(lib_path + lib, "r")
|
|
||||||
CHECKSUMS_md5 = f.read()
|
CHECKSUMS_md5 = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
for line in CHECKSUMS_md5.splitlines():
|
for line in CHECKSUMS_md5.splitlines():
|
||||||
|
|
281
slpkg/init.py
281
slpkg/init.py
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -35,7 +35,8 @@ from __metadata__ import (
|
||||||
build_path,
|
build_path,
|
||||||
repositories,
|
repositories,
|
||||||
slpkg_tmp_packages,
|
slpkg_tmp_packages,
|
||||||
slpkg_tmp_patches
|
slpkg_tmp_patches,
|
||||||
|
slacke_sub_repo
|
||||||
)
|
)
|
||||||
|
|
||||||
from slack.mirrors import mirrors
|
from slack.mirrors import mirrors
|
||||||
|
@ -67,6 +68,7 @@ class Initialization(object):
|
||||||
log = log_path + "slack/"
|
log = log_path + "slack/"
|
||||||
lib = lib_path + "slack_repo/"
|
lib = lib_path + "slack_repo/"
|
||||||
lib_file = "PACKAGES.TXT"
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
md5_file = "CHECKSUMS.md5"
|
md5_file = "CHECKSUMS.md5"
|
||||||
log_file = "ChangeLog.txt"
|
log_file = "ChangeLog.txt"
|
||||||
if not os.path.exists(log):
|
if not os.path.exists(log):
|
||||||
|
@ -74,6 +76,7 @@ class Initialization(object):
|
||||||
if not os.path.exists(lib):
|
if not os.path.exists(lib):
|
||||||
os.mkdir(lib)
|
os.mkdir(lib)
|
||||||
packages = mirrors(lib_file, "")
|
packages = mirrors(lib_file, "")
|
||||||
|
filelist_txt = ""
|
||||||
pkg_checksums = mirrors(md5_file, "")
|
pkg_checksums = mirrors(md5_file, "")
|
||||||
extra = mirrors(lib_file, "extra/")
|
extra = mirrors(lib_file, "extra/")
|
||||||
ext_checksums = mirrors(md5_file, "extra/")
|
ext_checksums = mirrors(md5_file, "extra/")
|
||||||
|
@ -88,7 +91,7 @@ class Initialization(object):
|
||||||
self.write(lib, md5_file, checksums_md5)
|
self.write(lib, md5_file, checksums_md5)
|
||||||
self.write(log, log_file, changelog_txt)
|
self.write(log, log_file, changelog_txt)
|
||||||
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
md5_file, checksums_md5)
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
def sbo(self):
|
def sbo(self):
|
||||||
'''
|
'''
|
||||||
|
@ -98,6 +101,7 @@ class Initialization(object):
|
||||||
log = log_path + "sbo/"
|
log = log_path + "sbo/"
|
||||||
lib = lib_path + "sbo_repo/"
|
lib = lib_path + "sbo_repo/"
|
||||||
lib_file = "SLACKBUILDS.TXT"
|
lib_file = "SLACKBUILDS.TXT"
|
||||||
|
lst_file = ""
|
||||||
md5_file = ""
|
md5_file = ""
|
||||||
log_file = "ChangeLog.txt"
|
log_file = "ChangeLog.txt"
|
||||||
if not os.path.exists(log):
|
if not os.path.exists(log):
|
||||||
|
@ -105,12 +109,13 @@ class Initialization(object):
|
||||||
if not os.path.exists(lib):
|
if not os.path.exists(lib):
|
||||||
os.mkdir(lib)
|
os.mkdir(lib)
|
||||||
packages_txt = "{0}{1}/{2}".format(repo, slack_ver(), lib_file)
|
packages_txt = "{0}{1}/{2}".format(repo, slack_ver(), lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
checksums_md5 = ""
|
checksums_md5 = ""
|
||||||
changelog_txt = "{0}/{1}/{2}".format(repo, slack_ver(), log_file)
|
changelog_txt = "{0}/{1}/{2}".format(repo, slack_ver(), log_file)
|
||||||
self.write(lib, lib_file, packages_txt)
|
self.write(lib, lib_file, packages_txt)
|
||||||
self.write(log, log_file, changelog_txt)
|
self.write(log, log_file, changelog_txt)
|
||||||
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
md5_file, checksums_md5)
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
def rlw(self):
|
def rlw(self):
|
||||||
'''
|
'''
|
||||||
|
@ -120,6 +125,7 @@ class Initialization(object):
|
||||||
log = log_path + "rlw/"
|
log = log_path + "rlw/"
|
||||||
lib = lib_path + "rlw_repo/"
|
lib = lib_path + "rlw_repo/"
|
||||||
lib_file = "PACKAGES.TXT"
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
md5_file = "CHECKSUMS.md5"
|
md5_file = "CHECKSUMS.md5"
|
||||||
log_file = "ChangeLog.txt"
|
log_file = "ChangeLog.txt"
|
||||||
if not os.path.exists(log):
|
if not os.path.exists(log):
|
||||||
|
@ -127,13 +133,14 @@ class Initialization(object):
|
||||||
if not os.path.exists(lib):
|
if not os.path.exists(lib):
|
||||||
os.mkdir(lib)
|
os.mkdir(lib)
|
||||||
packages_txt = "{0}{1}/{2}".format(repo, slack_ver(), lib_file)
|
packages_txt = "{0}{1}/{2}".format(repo, slack_ver(), lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
checksums_md5 = "{0}{1}/{2}".format(repo, slack_ver(), md5_file)
|
checksums_md5 = "{0}{1}/{2}".format(repo, slack_ver(), md5_file)
|
||||||
changelog_txt = "{0}{1}/{2}".format(repo, slack_ver(), log_file)
|
changelog_txt = "{0}{1}/{2}".format(repo, slack_ver(), log_file)
|
||||||
self.write(lib, lib_file, packages_txt)
|
self.write(lib, lib_file, packages_txt)
|
||||||
self.write(lib, md5_file, checksums_md5)
|
self.write(lib, md5_file, checksums_md5)
|
||||||
self.write(log, log_file, changelog_txt)
|
self.write(log, log_file, changelog_txt)
|
||||||
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
md5_file, checksums_md5)
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
def alien(self):
|
def alien(self):
|
||||||
'''
|
'''
|
||||||
|
@ -143,6 +150,7 @@ class Initialization(object):
|
||||||
log = log_path + "alien/"
|
log = log_path + "alien/"
|
||||||
lib = lib_path + "alien_repo/"
|
lib = lib_path + "alien_repo/"
|
||||||
lib_file = "PACKAGES.TXT"
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
md5_file = "CHECKSUMS.md5"
|
md5_file = "CHECKSUMS.md5"
|
||||||
log_file = "ChangeLog.txt"
|
log_file = "ChangeLog.txt"
|
||||||
if not os.path.exists(log):
|
if not os.path.exists(log):
|
||||||
|
@ -150,13 +158,14 @@ class Initialization(object):
|
||||||
if not os.path.exists(lib):
|
if not os.path.exists(lib):
|
||||||
os.mkdir(lib)
|
os.mkdir(lib)
|
||||||
packages_txt = "{0}{1}".format(repo, lib_file)
|
packages_txt = "{0}{1}".format(repo, lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
checksums_md5 = "{0}{1}".format(repo, md5_file)
|
checksums_md5 = "{0}{1}".format(repo, md5_file)
|
||||||
changelog_txt = "{0}{1}".format(repo, log_file)
|
changelog_txt = "{0}{1}".format(repo, log_file)
|
||||||
self.write(lib, lib_file, packages_txt)
|
self.write(lib, lib_file, packages_txt)
|
||||||
self.write(lib, md5_file, checksums_md5)
|
self.write(lib, md5_file, checksums_md5)
|
||||||
self.write(log, log_file, changelog_txt)
|
self.write(log, log_file, changelog_txt)
|
||||||
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
md5_file, checksums_md5)
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
def slacky(self):
|
def slacky(self):
|
||||||
'''
|
'''
|
||||||
|
@ -168,6 +177,7 @@ class Initialization(object):
|
||||||
log = log_path + "slacky/"
|
log = log_path + "slacky/"
|
||||||
lib = lib_path + "slacky_repo/"
|
lib = lib_path + "slacky_repo/"
|
||||||
lib_file = "PACKAGES.TXT"
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
md5_file = "CHECKSUMS.md5"
|
md5_file = "CHECKSUMS.md5"
|
||||||
log_file = "ChangeLog.txt"
|
log_file = "ChangeLog.txt"
|
||||||
if not os.path.exists(log):
|
if not os.path.exists(log):
|
||||||
|
@ -178,6 +188,7 @@ class Initialization(object):
|
||||||
ar = "64"
|
ar = "64"
|
||||||
packages_txt = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
packages_txt = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
||||||
lib_file)
|
lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
checksums_md5 = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
checksums_md5 = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
||||||
md5_file)
|
md5_file)
|
||||||
|
|
||||||
|
@ -187,9 +198,9 @@ class Initialization(object):
|
||||||
self.write(lib, md5_file, checksums_md5)
|
self.write(lib, md5_file, checksums_md5)
|
||||||
self.write(log, log_file, changelog_txt)
|
self.write(log, log_file, changelog_txt)
|
||||||
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
md5_file, checksums_md5)
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
def studioware(self):
|
def studio(self):
|
||||||
'''
|
'''
|
||||||
Creating alien local library
|
Creating alien local library
|
||||||
'''
|
'''
|
||||||
|
@ -199,6 +210,7 @@ class Initialization(object):
|
||||||
log = log_path + "studio/"
|
log = log_path + "studio/"
|
||||||
lib = lib_path + "studio_repo/"
|
lib = lib_path + "studio_repo/"
|
||||||
lib_file = "PACKAGES.TXT"
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
md5_file = "CHECKSUMS.md5"
|
md5_file = "CHECKSUMS.md5"
|
||||||
log_file = "ChangeLog.txt"
|
log_file = "ChangeLog.txt"
|
||||||
if not os.path.exists(log):
|
if not os.path.exists(log):
|
||||||
|
@ -209,6 +221,7 @@ class Initialization(object):
|
||||||
ar = "64"
|
ar = "64"
|
||||||
packages_txt = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
packages_txt = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
||||||
lib_file)
|
lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
checksums_md5 = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
checksums_md5 = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
||||||
md5_file)
|
md5_file)
|
||||||
changelog_txt = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
changelog_txt = "{0}slackware{1}-{2}/{3}".format(repo, ar, slack_ver(),
|
||||||
|
@ -217,7 +230,206 @@ class Initialization(object):
|
||||||
self.write(lib, md5_file, checksums_md5)
|
self.write(lib, md5_file, checksums_md5)
|
||||||
self.write(log, log_file, changelog_txt)
|
self.write(log, log_file, changelog_txt)
|
||||||
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
md5_file, checksums_md5)
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def slackr(self):
|
||||||
|
'''
|
||||||
|
Creating slackers local library
|
||||||
|
'''
|
||||||
|
repo = Repo().slackers()
|
||||||
|
log = log_path + "slackr/"
|
||||||
|
lib = lib_path + "slackr_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = "FILELIST.TXT"
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
packages_txt = "{0}{1}".format(repo, lib_file)
|
||||||
|
filelist_txt = "{0}{1}".format(repo, lst_file)
|
||||||
|
checksums_md5 = "{0}{1}".format(repo, md5_file)
|
||||||
|
changelog_txt = "{0}{1}".format(repo, log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, lst_file, filelist_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def slonly(self):
|
||||||
|
'''
|
||||||
|
Creating slackers local library
|
||||||
|
'''
|
||||||
|
ar = "{0}-x86".format(slack_ver())
|
||||||
|
arch = os.uname()[4]
|
||||||
|
repo = Repo().slackonly()
|
||||||
|
log = log_path + "slonly/"
|
||||||
|
lib = lib_path + "slonly_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = "FILELIST.TXT"
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
if arch == "x86_64":
|
||||||
|
ar = "{0}-x86_64".format(slack_ver())
|
||||||
|
packages_txt = "{0}{1}/{2}".format(repo, ar, lib_file)
|
||||||
|
filelist_txt = "{0}{1}/{2}".format(repo, ar, lst_file)
|
||||||
|
checksums_md5 = "{0}{1}/{2}".format(repo, ar, md5_file)
|
||||||
|
# ChangeLog.txt file available only for x86 arch
|
||||||
|
changelog_txt = "{0}{1}-x86/{2}".format(repo, slack_ver(), log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, lst_file, filelist_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def ktown(self):
|
||||||
|
'''
|
||||||
|
Creating alien ktown local library
|
||||||
|
'''
|
||||||
|
repo = Repo().ktown()
|
||||||
|
log = log_path + "ktown/"
|
||||||
|
lib = lib_path + "ktown_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
packages_txt = "{0}{1}".format(repo, lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
|
checksums_md5 = "{0}{1}".format(repo, md5_file)
|
||||||
|
changelog_txt = "{0}{1}".format(repo, log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def multi(self):
|
||||||
|
'''
|
||||||
|
Creating alien multilib local library
|
||||||
|
'''
|
||||||
|
repo = Repo().multi()
|
||||||
|
log = log_path + "multi/"
|
||||||
|
lib = lib_path + "multi_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
packages_txt = "{0}{1}".format(repo, lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
|
checksums_md5 = "{0}{1}".format(repo, md5_file)
|
||||||
|
changelog_txt = "{0}{1}".format(repo, log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def slacke(self):
|
||||||
|
'''
|
||||||
|
Creating Slacke local library
|
||||||
|
'''
|
||||||
|
ar = ""
|
||||||
|
arch = os.uname()[4]
|
||||||
|
repo = Repo().slacke()
|
||||||
|
log = log_path + "slacke/"
|
||||||
|
lib = lib_path + "slacke_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
if arch == "x86_64":
|
||||||
|
ar = "64"
|
||||||
|
elif arch == "arm":
|
||||||
|
ar = "arm"
|
||||||
|
packages_txt = "{0}slacke{1}/slackware{2}-{3}/{4}".format(
|
||||||
|
repo, slacke_sub_repo[1:-1], ar, slack_ver(), lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
|
checksums_md5 = "{0}slacke{1}/slackware{2}-{3}/{4}".format(
|
||||||
|
repo, slacke_sub_repo[1:-1], ar, slack_ver(), md5_file)
|
||||||
|
changelog_txt = "{0}slacke{1}/slackware{2}-{3}/{4}".format(
|
||||||
|
repo, slacke_sub_repo[1:-1], ar, slack_ver(), log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def salix(self):
|
||||||
|
'''
|
||||||
|
Creating SalixOS local library
|
||||||
|
'''
|
||||||
|
ar = "i486"
|
||||||
|
arch = os.uname()[4]
|
||||||
|
repo = Repo().salix()
|
||||||
|
log = log_path + "salix/"
|
||||||
|
lib = lib_path + "salix_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
if arch == "x86_64":
|
||||||
|
ar = "x86_64"
|
||||||
|
packages_txt = "{0}{1}/{2}/{3}".format(repo, ar, slack_ver(), lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
|
checksums_md5 = "{0}{1}/{2}/{3}".format(repo, ar, slack_ver(), md5_file)
|
||||||
|
changelog_txt = "{0}{1}/{2}/{3}".format(repo, ar, slack_ver(), log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
|
def slackl(self):
|
||||||
|
'''
|
||||||
|
Creating SalixOS local library
|
||||||
|
'''
|
||||||
|
ar = "i486"
|
||||||
|
arch = os.uname()[4]
|
||||||
|
repo = Repo().slackel()
|
||||||
|
log = log_path + "slackl/"
|
||||||
|
lib = lib_path + "slackl_repo/"
|
||||||
|
lib_file = "PACKAGES.TXT"
|
||||||
|
lst_file = ""
|
||||||
|
md5_file = "CHECKSUMS.md5"
|
||||||
|
log_file = "ChangeLog.txt"
|
||||||
|
if not os.path.exists(log):
|
||||||
|
os.mkdir(log)
|
||||||
|
if not os.path.exists(lib):
|
||||||
|
os.mkdir(lib)
|
||||||
|
if arch == "x86_64":
|
||||||
|
ar = "x86_64"
|
||||||
|
packages_txt = "{0}{1}/current/{2}".format(repo, ar, lib_file)
|
||||||
|
filelist_txt = ""
|
||||||
|
checksums_md5 = "{0}{1}/current/{2}".format(repo, ar, md5_file)
|
||||||
|
changelog_txt = "{0}{1}/current/{2}".format(repo, ar, log_file)
|
||||||
|
self.write(lib, lib_file, packages_txt)
|
||||||
|
self.write(lib, md5_file, checksums_md5)
|
||||||
|
self.write(log, log_file, changelog_txt)
|
||||||
|
self.remote(log, log_file, changelog_txt, lib, lib_file, packages_txt,
|
||||||
|
md5_file, checksums_md5, lst_file, filelist_txt)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def write(path, data_file, file_url):
|
def write(path, data_file, file_url):
|
||||||
|
@ -240,9 +452,16 @@ class Initialization(object):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def remote(*args):
|
def remote(*args):
|
||||||
'''
|
'''
|
||||||
args[0]=log, args[1]=log_file, arg[2]=changelog_txt
|
args[0] = log
|
||||||
args[3]=lib, args[4]=lib_file, arg[5]=packages_txt
|
args[1] = log_file
|
||||||
args[6]=md5_file, args[7]=checksums_md5
|
args[2] = changelog_txt
|
||||||
|
args[3] = lib
|
||||||
|
args[4] = lib_file
|
||||||
|
args[5] = packages_txt
|
||||||
|
args[6] = md5_file
|
||||||
|
args[7] = checksums_md5
|
||||||
|
args[8] = lst_file
|
||||||
|
args[9] = filelist_txt
|
||||||
|
|
||||||
We take the size of ChangeLog.txt from the server and locally.
|
We take the size of ChangeLog.txt from the server and locally.
|
||||||
If the two files differ in size delete and replace all files with new.
|
If the two files differ in size delete and replace all files with new.
|
||||||
|
@ -259,6 +478,9 @@ class Initialization(object):
|
||||||
# remove CHECKSUMS.md5
|
# remove CHECKSUMS.md5
|
||||||
if args[6]:
|
if args[6]:
|
||||||
os.remove("{0}{1}".format(args[3], args[6]))
|
os.remove("{0}{1}".format(args[3], args[6]))
|
||||||
|
# remove FILELIST.TXT
|
||||||
|
if args[8]:
|
||||||
|
os.remove("{0}{1}".format(args[3], args[8]))
|
||||||
for fu in args[5].split():
|
for fu in args[5].split():
|
||||||
PACKAGES_TXT += URL(fu).reading()
|
PACKAGES_TXT += URL(fu).reading()
|
||||||
CHANGELOG_TXT = URL(args[2]).reading()
|
CHANGELOG_TXT = URL(args[2]).reading()
|
||||||
|
@ -285,19 +507,36 @@ class Initialization(object):
|
||||||
toolbar_width = status(index, toolbar_width, 700)
|
toolbar_width = status(index, toolbar_width, 700)
|
||||||
f.write(line + "\n")
|
f.write(line + "\n")
|
||||||
f.close()
|
f.close()
|
||||||
|
# create FILELIST.TXT file
|
||||||
|
if args[8]:
|
||||||
|
FILELIST_TXT = URL(args[9]).reading()
|
||||||
|
with open("{0}{1}".format(args[3], args[8]), "w") as f:
|
||||||
|
for line in FILELIST_TXT.splitlines():
|
||||||
|
index += 1
|
||||||
|
toolbar_width = status(index, toolbar_width, 700)
|
||||||
|
f.write(line + "\n")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
def re_create(self):
|
||||||
|
'''
|
||||||
|
Remove all package lists with changelog and checksums files
|
||||||
|
and create lists again
|
||||||
|
'''
|
||||||
|
for repo in repositories:
|
||||||
|
changelogs = '{0}{1}{2}'.format(log_path, repo, '/ChangeLog.txt')
|
||||||
|
if os.path.isfile(changelogs):
|
||||||
|
os.remove(changelogs)
|
||||||
|
for f in os.listdir(lib_path + '{0}_repo/'.format(repo)):
|
||||||
|
packages = '{0}{1}_repo/{2}'.format(lib_path, repo, f)
|
||||||
|
if os.path.isfile(packages):
|
||||||
|
os.remove(packages)
|
||||||
|
Update().repository()
|
||||||
|
|
||||||
|
|
||||||
class Update(object):
|
class Update(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.repos = {
|
self._init = 'Initialization()'
|
||||||
'sbo': Initialization().sbo,
|
|
||||||
'slack': Initialization().slack,
|
|
||||||
'rlw': Initialization().rlw,
|
|
||||||
'alien': Initialization().alien,
|
|
||||||
'slacky': Initialization().slacky,
|
|
||||||
'studio': Initialization().studioware
|
|
||||||
}
|
|
||||||
|
|
||||||
def repository(self):
|
def repository(self):
|
||||||
'''
|
'''
|
||||||
|
@ -308,7 +547,7 @@ class Update(object):
|
||||||
sys.stdout.write("{0}Update repository {1} ...{2}".format(
|
sys.stdout.write("{0}Update repository {1} ...{2}".format(
|
||||||
color['GREY'], repo, color['ENDC']))
|
color['GREY'], repo, color['ENDC']))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
self.repos[repo]()
|
exec('{0}.{1}()'.format(self._init, repo))
|
||||||
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
||||||
color['ENDC']))
|
color['ENDC']))
|
||||||
print("") # new line at end
|
print("") # new line at end
|
||||||
|
|
120
slpkg/main.py
120
slpkg/main.py
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -24,7 +24,8 @@
|
||||||
import sys
|
import sys
|
||||||
import getpass
|
import getpass
|
||||||
|
|
||||||
from slpkg_update import it_self_update
|
from repoinfo import RepoInfo
|
||||||
|
from repolist import RepoList
|
||||||
|
|
||||||
from desc import PkgDesc
|
from desc import PkgDesc
|
||||||
from config import Config
|
from config import Config
|
||||||
|
@ -34,7 +35,9 @@ from tracking import track_dep
|
||||||
from blacklist import BlackList
|
from blacklist import BlackList
|
||||||
from version import prog_version
|
from version import prog_version
|
||||||
from arguments import options, usage
|
from arguments import options, usage
|
||||||
|
from slpkg_update import it_self_update
|
||||||
from init import (
|
from init import (
|
||||||
|
Initialization,
|
||||||
Update,
|
Update,
|
||||||
check_exists_repositories
|
check_exists_repositories
|
||||||
)
|
)
|
||||||
|
@ -69,17 +72,8 @@ class Case(object):
|
||||||
def slack_install(self):
|
def slack_install(self):
|
||||||
Slack(self.package).start()
|
Slack(self.package).start()
|
||||||
|
|
||||||
def rlw_install(self):
|
def others_install(self, repo):
|
||||||
OthersInstall(self.package, "rlw", self.release).start()
|
OthersInstall(self.package, repo, slack_rel).start()
|
||||||
|
|
||||||
def alien_install(self):
|
|
||||||
OthersInstall(self.package, "alien", self.release).start()
|
|
||||||
|
|
||||||
def slacky_install(self):
|
|
||||||
OthersInstall(self.package, "slacky", self.release).start()
|
|
||||||
|
|
||||||
def studioware_install(self):
|
|
||||||
OthersInstall(self.package, "studio", self.release).start()
|
|
||||||
|
|
||||||
def sbo_upgrade(self):
|
def sbo_upgrade(self):
|
||||||
SBoCheck().start()
|
SBoCheck().start()
|
||||||
|
@ -87,17 +81,8 @@ class Case(object):
|
||||||
def slack_upgrade(self):
|
def slack_upgrade(self):
|
||||||
Patches(self.release).start()
|
Patches(self.release).start()
|
||||||
|
|
||||||
def rlw_upgrade(self):
|
def others_upgrade(self, repo):
|
||||||
OthersUpgrade("rlw", self.release).start()
|
OthersUpgrade(repo, self.release).start()
|
||||||
|
|
||||||
def alien_upgrade(self):
|
|
||||||
OthersUpgrade("alien", self.release).start()
|
|
||||||
|
|
||||||
def slacky_upgrade(self):
|
|
||||||
OthersUpgrade("slacky", self.release).start()
|
|
||||||
|
|
||||||
def studioware_upgrade(self):
|
|
||||||
OthersUpgrade("studio", self.release).start()
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -108,61 +93,83 @@ def main():
|
||||||
blacklist = BlackList()
|
blacklist = BlackList()
|
||||||
queue = QueuePkgs()
|
queue = QueuePkgs()
|
||||||
|
|
||||||
|
# all_args = [
|
||||||
|
# 'update', 're-create', 'repolist', 'repoinfo',
|
||||||
|
# '-h', '--help', '-v', '-a', '-b',
|
||||||
|
# '-q', '-g', '-l', '-c', '-s', '-t', '-p', '-f',
|
||||||
|
# '-n', '-i', '-u', '-o', '-r', '-d'
|
||||||
|
# ]
|
||||||
|
|
||||||
|
without_repos = [
|
||||||
|
'-h', '--help', '-v', '-a', '-b',
|
||||||
|
'-q', '-g', '-f', '-n', '-i', '-u',
|
||||||
|
'-o', '-r', '-d'
|
||||||
|
]
|
||||||
|
|
||||||
if len(args) == 1 and args[0] == "update":
|
if len(args) == 1 and args[0] == "update":
|
||||||
Update().repository()
|
Update().repository()
|
||||||
|
|
||||||
if len(args) == 2 and args[0] == "update" and args[1] == "slpkg":
|
if len(args) == 2 and args[0] == "update" and args[1] == "slpkg":
|
||||||
it_self_update()
|
it_self_update()
|
||||||
|
|
||||||
# checking if repositories exists
|
if len(args) == 1 and args[0] == "repolist":
|
||||||
check_exists_repositories()
|
RepoList().repos()
|
||||||
|
|
||||||
if len(args) == 0:
|
if len(args) == 0:
|
||||||
usage()
|
usage('')
|
||||||
elif (len(args) == 1 and args[0] == "-h" or
|
elif (len(args) == 1 and args[0] == "-h" or
|
||||||
args[0] == "--help" and args[1:] == []):
|
args[0] == "--help" and args[1:] == []):
|
||||||
options()
|
options()
|
||||||
elif (len(args) == 1 and args[0] == "-v" or
|
|
||||||
|
if (len(args) == 1 and args[0] == "-v" or
|
||||||
args[0] == "--version" and args[1:] == []):
|
args[0] == "--version" and args[1:] == []):
|
||||||
prog_version()
|
prog_version()
|
||||||
elif len(args) == 3 and args[0] == "-a":
|
|
||||||
|
# checking if repositories exists
|
||||||
|
check_exists_repositories()
|
||||||
|
|
||||||
|
if len(args) == 1 and args[0] == "re-create":
|
||||||
|
Initialization().re_create()
|
||||||
|
|
||||||
|
if (len(args) == 2 and args[0] == "repoinfo" and
|
||||||
|
args[1] in RepoList().all_repos):
|
||||||
|
del RepoList().all_repos
|
||||||
|
RepoInfo().view(args[1])
|
||||||
|
elif (len(args) == 2 and args[0] == "repoinfo" and
|
||||||
|
args[1] not in RepoList().all_repos):
|
||||||
|
usage(args[1])
|
||||||
|
|
||||||
|
if len(args) == 3 and args[0] == "-a":
|
||||||
BuildPackage(args[1], args[2:], path).build()
|
BuildPackage(args[1], args[2:], path).build()
|
||||||
elif len(args) == 2 and args[0] == "-l":
|
elif len(args) == 2 and args[0] == "-l":
|
||||||
pkg_list = ["all", "noarch"] + repositories
|
pkg_list = ["all"] + repositories
|
||||||
if args[1] in pkg_list:
|
if args[1] in pkg_list:
|
||||||
PackageManager(None).list(args[1])
|
PackageManager(None).list(args[1])
|
||||||
else:
|
else:
|
||||||
usage()
|
usage('')
|
||||||
elif len(args) == 3 and args[0] == "-c" and args[2] == "--upgrade":
|
elif len(args) == 3 and args[0] == "-c" and args[2] == "--upgrade":
|
||||||
pkg = Case("")
|
if args[1] in repositories and args[1] not in ['slack', 'sbo']:
|
||||||
|
Case('').others_upgrade(args[1])
|
||||||
|
elif args[1] in ['slack', 'sbo']:
|
||||||
upgrade = {
|
upgrade = {
|
||||||
'sbo': pkg.sbo_upgrade,
|
'sbo': Case(args[2]).sbo_upgrade,
|
||||||
'slack': pkg.slack_upgrade,
|
'slack': Case(args[2]).slack_upgrade
|
||||||
'rlw': pkg.rlw_upgrade,
|
|
||||||
'alien': pkg.alien_upgrade,
|
|
||||||
'slacky': pkg.slacky_upgrade,
|
|
||||||
'studio': pkg.studioware_upgrade
|
|
||||||
}
|
}
|
||||||
if args[1] in repositories:
|
|
||||||
upgrade[args[1]]()
|
upgrade[args[1]]()
|
||||||
else:
|
else:
|
||||||
usage()
|
usage(args[1])
|
||||||
elif len(args) == 3 and args[0] == "-s":
|
elif len(args) == 3 and args[0] == "-s":
|
||||||
pkg = Case(args[2])
|
if args[1] in repositories and args[1] not in ['slack', 'sbo']:
|
||||||
|
Case(args[2]).others_install(args[1])
|
||||||
|
elif args[1] in ['slack', 'sbo']:
|
||||||
install = {
|
install = {
|
||||||
'sbo': pkg.sbo_install,
|
'sbo': Case(args[2]).sbo_install,
|
||||||
'slack': pkg.slack_install,
|
'slack': Case(args[2]).slack_install
|
||||||
'rlw': pkg.rlw_install,
|
|
||||||
'alien': pkg.alien_install,
|
|
||||||
'slacky': pkg.slacky_install,
|
|
||||||
'studio': pkg.studioware_install
|
|
||||||
}
|
}
|
||||||
if args[1] in repositories:
|
|
||||||
install[args[1]]()
|
install[args[1]]()
|
||||||
else:
|
else:
|
||||||
usage()
|
usage(args[1])
|
||||||
elif (len(args) == 3 and args[0] == "-t" and args[1] in repositories
|
elif (len(args) == 3 and args[0] == "-t" and args[1] in repositories):
|
||||||
and args[1] != "slack"):
|
|
||||||
track_dep(args[2], args[1])
|
track_dep(args[2], args[1])
|
||||||
elif len(args) == 2 and args[0] == "-n" and "sbo" in repositories:
|
elif len(args) == 2 and args[0] == "-n" and "sbo" in repositories:
|
||||||
SBoNetwork(args[1]).view()
|
SBoNetwork(args[1]).view()
|
||||||
|
@ -193,7 +200,7 @@ def main():
|
||||||
PackageManager(args[1:]).reinstall()
|
PackageManager(args[1:]).reinstall()
|
||||||
elif len(args) > 1 and args[0] == "-r":
|
elif len(args) > 1 and args[0] == "-r":
|
||||||
PackageManager(args[1:]).remove()
|
PackageManager(args[1:]).remove()
|
||||||
elif len(args) > 1 and args[0] == "-f":
|
elif len(args) == 2 and args[0] == "-f":
|
||||||
PackageManager(args[1:]).find()
|
PackageManager(args[1:]).find()
|
||||||
elif len(args) == 3 and args[0] == "-p" and args[1] in repositories:
|
elif len(args) == 3 and args[0] == "-p" and args[1] in repositories:
|
||||||
PkgDesc(args[2], args[1], "").view()
|
PkgDesc(args[2], args[1], "").view()
|
||||||
|
@ -203,7 +210,7 @@ def main():
|
||||||
if args[1] in repositories and tag in colors:
|
if args[1] in repositories and tag in colors:
|
||||||
PkgDesc(args[2], args[1], tag).view()
|
PkgDesc(args[2], args[1], tag).view()
|
||||||
else:
|
else:
|
||||||
usage()
|
usage(args[1])
|
||||||
elif len(args) > 1 and args[0] == "-d":
|
elif len(args) > 1 and args[0] == "-d":
|
||||||
PackageManager(args[1:]).display()
|
PackageManager(args[1:]).display()
|
||||||
elif len(args) == 2 and args[0] == "-g" and args[1].startswith("--config"):
|
elif len(args) == 2 and args[0] == "-g" and args[1].startswith("--config"):
|
||||||
|
@ -213,9 +220,12 @@ def main():
|
||||||
elif editor:
|
elif editor:
|
||||||
Config().edit(editor)
|
Config().edit(editor)
|
||||||
else:
|
else:
|
||||||
usage()
|
usage('')
|
||||||
else:
|
else:
|
||||||
usage()
|
if len(args) > 1 and args[0] not in without_repos:
|
||||||
|
usage(args[1])
|
||||||
|
else:
|
||||||
|
usage('')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -76,12 +76,3 @@ def template(max_len):
|
||||||
Print template
|
Print template
|
||||||
'''
|
'''
|
||||||
print("+" + "=" * max_len)
|
print("+" + "=" * max_len)
|
||||||
|
|
||||||
|
|
||||||
def slacky_error():
|
|
||||||
'''
|
|
||||||
Slacky repository error
|
|
||||||
'''
|
|
||||||
print("\nRepository slack working together with the slacky.")
|
|
||||||
print("Please add the repository slack from file " +
|
|
||||||
"'/etc/slpkg/slpkg.conf'\n")
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ import sys
|
||||||
|
|
||||||
from slpkg.sizes import units
|
from slpkg.sizes import units
|
||||||
from slpkg.remove import delete
|
from slpkg.remove import delete
|
||||||
|
from slpkg.toolbar import status
|
||||||
from slpkg.repositories import Repo
|
from slpkg.repositories import Repo
|
||||||
from slpkg.messages import template
|
from slpkg.messages import template
|
||||||
from slpkg.checksum import check_md5
|
from slpkg.checksum import check_md5
|
||||||
|
@ -38,9 +39,11 @@ from slpkg.__metadata__ import (
|
||||||
lib_path,
|
lib_path,
|
||||||
slpkg_tmp_packages,
|
slpkg_tmp_packages,
|
||||||
default_answer,
|
default_answer,
|
||||||
color
|
color,
|
||||||
|
slacke_sub_repo
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from slpkg.pkg.find import find_package
|
||||||
from slpkg.pkg.manager import PackageManager
|
from slpkg.pkg.manager import PackageManager
|
||||||
|
|
||||||
from slpkg.slack.slack_version import slack_ver
|
from slpkg.slack.slack_version import slack_ver
|
||||||
|
@ -54,46 +57,101 @@ class OthersUpgrade(object):
|
||||||
self.repo = repo
|
self.repo = repo
|
||||||
self.version = version
|
self.version = version
|
||||||
self.tmp_path = slpkg_tmp_packages
|
self.tmp_path = slpkg_tmp_packages
|
||||||
repos = Repo()
|
|
||||||
sys.stdout.write("{0}Reading package lists ...{1}".format(
|
sys.stdout.write("{0}Reading package lists ...{1}".format(
|
||||||
color['GREY'], color['ENDC']))
|
color['GREY'], color['ENDC']))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
self.step = 700
|
self.step = 700
|
||||||
repos = Repo()
|
|
||||||
if self.repo == "rlw":
|
exec('self._init_{0}()'.format(self.repo))
|
||||||
lib = lib_path + "rlw_repo/PACKAGES.TXT"
|
|
||||||
self.mirror = "{0}{1}/".format(repos.rlw(), slack_ver())
|
f = open(self.lib, "r")
|
||||||
elif self.repo == "alien":
|
self.PACKAGES_TXT = f.read()
|
||||||
lib = lib_path + "alien_repo/PACKAGES.TXT"
|
f.close()
|
||||||
self.mirror = repos.alien()
|
|
||||||
|
def _init_rlw(self):
|
||||||
|
self.lib = lib_path + "rlw_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}{1}/".format(Repo().rlw(), slack_ver())
|
||||||
|
|
||||||
|
def _init_alien(self):
|
||||||
|
self.lib = lib_path + "alien_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().alien()
|
||||||
self.step = self.step * 2
|
self.step = self.step * 2
|
||||||
elif self.repo == "slacky":
|
|
||||||
lib = lib_path + "slacky_repo/PACKAGES.TXT"
|
def _init_slacky(self):
|
||||||
|
self.lib = lib_path + "slacky_repo/PACKAGES.TXT"
|
||||||
arch = ""
|
arch = ""
|
||||||
if os.uname()[4] == "x86_64":
|
if os.uname()[4] == "x86_64":
|
||||||
arch = "64"
|
arch = "64"
|
||||||
self.mirror = "{0}slackware{1}-{2}/".format(repos.slacky(), arch,
|
self.mirror = "{0}slackware{1}-{2}/".format(Repo().slacky(), arch,
|
||||||
slack_ver())
|
slack_ver())
|
||||||
self.step = self.step * 2
|
self.step = self.step * 2
|
||||||
elif self.repo == "studio":
|
|
||||||
lib = lib_path + "studio_repo/PACKAGES.TXT"
|
def _init_studio(self):
|
||||||
|
self.lib = lib_path + "studio_repo/PACKAGES.TXT"
|
||||||
arch = ""
|
arch = ""
|
||||||
if os.uname()[4] == "x86_64":
|
if os.uname()[4] == "x86_64":
|
||||||
arch = "64"
|
arch = "64"
|
||||||
self.mirror = "{0}slackware{1}-{2}/".format(repos.studioware(),
|
self.mirror = "{0}slackware{1}-{2}/".format(Repo().studioware(),
|
||||||
arch, slack_ver())
|
arch, slack_ver())
|
||||||
self.step = self.step * 2
|
self.step = self.step * 2
|
||||||
|
|
||||||
f = open(lib, "r")
|
def _init_slackr(self):
|
||||||
self.PACKAGES_TXT = f.read()
|
self.lib = lib_path + "slackr_repo/PACKAGES.TXT"
|
||||||
f.close()
|
self.mirror = Repo().slackers()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slonly(self):
|
||||||
|
self.lib = lib_path + "slonly_repo/PACKAGES.TXT"
|
||||||
|
arch = "{0}-x86".format(slack_ver())
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "{0}-x86_64".format(slack_ver())
|
||||||
|
self.mirror = "{0}{1}/".format(Repo().slackonly(), arch)
|
||||||
|
self.step = self.step * 3
|
||||||
|
|
||||||
|
def _init_ktown(self):
|
||||||
|
self.lib = lib_path + "ktown_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().ktown()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_multi(self):
|
||||||
|
self.lib = lib_path + "multi_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().multi()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slacke(self):
|
||||||
|
arch = ""
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "64"
|
||||||
|
elif os.uname()[4] == "arm":
|
||||||
|
arch = "arm"
|
||||||
|
self.lib = lib_path + "slacke_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}slacke{1}/slackware{2}-{3}/".format(
|
||||||
|
Repo().slacke(), slacke_sub_repo[1:-1], arch, slack_ver())
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_salix(self):
|
||||||
|
arch = "i486"
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "x86_64"
|
||||||
|
self.lib = lib_path + "salix_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}{1}/{2}/".format(Repo().salix(), arch, slack_ver())
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slackl(self):
|
||||||
|
arch = "i486"
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "x86_64"
|
||||||
|
self.lib = lib_path + "slackl_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}{1}/current/".format(Repo().slackel(), arch)
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
'''
|
'''
|
||||||
Install packages from official Slackware distribution
|
Install packages from official Slackware distribution
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
dwn_links, upgrade_all, comp_sum, uncomp_sum = self.store()
|
(pkg_for_upgrade, dwn_links, upgrade_all, comp_sum,
|
||||||
|
uncomp_sum) = self.store()
|
||||||
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
||||||
color['ENDC']))
|
color['ENDC']))
|
||||||
print("") # new line at start
|
print("") # new line at start
|
||||||
|
@ -101,14 +159,14 @@ class OthersUpgrade(object):
|
||||||
template(78)
|
template(78)
|
||||||
print("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}".format(
|
print("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}".format(
|
||||||
"| Package", " " * 17,
|
"| Package", " " * 17,
|
||||||
"New version", " " * 8,
|
"New version", " " * 9,
|
||||||
"Arch", " " * 4,
|
"Arch", " " * 4,
|
||||||
"Build", " " * 2,
|
"Build", " " * 2,
|
||||||
"Repos", " " * 10,
|
"Repos", " " * 9,
|
||||||
"Size"))
|
"Size"))
|
||||||
template(78)
|
template(78)
|
||||||
print("Upgrading:")
|
print("Upgrading:")
|
||||||
views(upgrade_all, comp_sum, self.repo)
|
views(pkg_for_upgrade, upgrade_all, comp_sum, self.repo)
|
||||||
unit, size = units(comp_sum, uncomp_sum)
|
unit, size = units(comp_sum, uncomp_sum)
|
||||||
msg = msgs(upgrade_all)
|
msg = msgs(upgrade_all)
|
||||||
print("\nInstalling summary")
|
print("\nInstalling summary")
|
||||||
|
@ -130,7 +188,7 @@ class OthersUpgrade(object):
|
||||||
upgrade(self.tmp_path, upgrade_all, self.repo, self.version)
|
upgrade(self.tmp_path, upgrade_all, self.repo, self.version)
|
||||||
delete(self.tmp_path, upgrade_all)
|
delete(self.tmp_path, upgrade_all)
|
||||||
else:
|
else:
|
||||||
print("No new updates in the repository '{0}'\n".format(
|
print("No new updates from repository '{0}'\n".format(
|
||||||
self.repo))
|
self.repo))
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("") # new line at exit
|
print("") # new line at exit
|
||||||
|
@ -140,65 +198,54 @@ class OthersUpgrade(object):
|
||||||
'''
|
'''
|
||||||
Store and return packages for install
|
Store and return packages for install
|
||||||
'''
|
'''
|
||||||
dwn, install, comp_sum, uncomp_sum = ([] for i in range(4))
|
pkg_for_upgrade, dwn, install, comp_sum, uncomp_sum = (
|
||||||
black = BlackList().packages()
|
[] for i in range(5))
|
||||||
# name = data[0]
|
# name = data[0]
|
||||||
# location = data[1]
|
# location = data[1]
|
||||||
# size = data[2]
|
# size = data[2]
|
||||||
# unsize = data[3]
|
# unsize = data[3]
|
||||||
installed = self.installed()
|
|
||||||
data = repo_data(self.PACKAGES_TXT, self.step, self.repo, self.version)
|
data = repo_data(self.PACKAGES_TXT, self.step, self.repo, self.version)
|
||||||
for pkg in installed:
|
index, toolbar_width = 0, 700
|
||||||
|
for pkg in self.installed():
|
||||||
|
index += 1
|
||||||
|
toolbar_width = status(index, toolbar_width, 10)
|
||||||
for name, loc, comp, uncomp in zip(data[0], data[1], data[2],
|
for name, loc, comp, uncomp in zip(data[0], data[1], data[2],
|
||||||
data[3]):
|
data[3]):
|
||||||
inst_pkg = split_package(pkg)
|
inst_pkg = split_package(pkg)
|
||||||
|
if name: # this tips because some pkg_name is empty
|
||||||
repo_pkg = split_package(name[:-4])
|
repo_pkg = split_package(name[:-4])
|
||||||
if (repo_pkg[0] == inst_pkg[0] and
|
if (repo_pkg[0] == inst_pkg[0] and
|
||||||
name[:-4] > pkg and inst_pkg[0] not in black):
|
repo_pkg[1] > inst_pkg[1] and
|
||||||
|
inst_pkg[0] not in BlackList().packages()):
|
||||||
# store downloads packages by repo
|
# store downloads packages by repo
|
||||||
dwn.append("{0}{1}/{2}".format(self.mirror, loc, name))
|
dwn.append("{0}{1}/{2}".format(self.mirror, loc, name))
|
||||||
install.append(name)
|
install.append(name)
|
||||||
comp_sum.append(comp)
|
comp_sum.append(comp)
|
||||||
uncomp_sum.append(uncomp)
|
uncomp_sum.append(uncomp)
|
||||||
return [dwn, install, comp_sum, uncomp_sum]
|
pkg_for_upgrade.append('{0}-{1}'.format(
|
||||||
|
inst_pkg[0], inst_pkg[1]))
|
||||||
|
return [pkg_for_upgrade, dwn, install, comp_sum, uncomp_sum]
|
||||||
|
|
||||||
def installed(self):
|
def installed(self):
|
||||||
'''
|
'''
|
||||||
Return all installed packages by repository
|
Return all installed packages
|
||||||
'''
|
'''
|
||||||
packages = []
|
return find_package('', pkg_path)
|
||||||
repository = {
|
|
||||||
'rlw': '_rlw',
|
|
||||||
'alien': 'alien',
|
|
||||||
'slacky': 'sl',
|
|
||||||
'studio': 'se'
|
|
||||||
}
|
|
||||||
repo = repository[self.repo]
|
|
||||||
for pkg in os.listdir(pkg_path):
|
|
||||||
if pkg.endswith(repo):
|
|
||||||
packages.append(pkg)
|
|
||||||
return packages
|
|
||||||
|
|
||||||
|
|
||||||
def views(upgrade_all, comp_sum, repository):
|
def views(pkg_for_upgrade, upgrade_all, comp_sum, repository):
|
||||||
'''
|
'''
|
||||||
Views packages
|
Views packages
|
||||||
'''
|
'''
|
||||||
upg_sum = 0
|
upg_sum = 0
|
||||||
# fix repositories align
|
# fix repositories align
|
||||||
align = {
|
repository = repository + (' ' * (6 - (len(repository))))
|
||||||
'rlw': ' ' * 3,
|
for upg, pkg, comp in zip(pkg_for_upgrade, upgrade_all, comp_sum):
|
||||||
'alien': ' ',
|
|
||||||
'slacky': '',
|
|
||||||
'studio': ''
|
|
||||||
}
|
|
||||||
repository += align[repository]
|
|
||||||
for pkg, comp in zip(upgrade_all, comp_sum):
|
|
||||||
pkg_split = split_package(pkg[:-4])
|
pkg_split = split_package(pkg[:-4])
|
||||||
upg_sum += 1
|
upg_sum += 1
|
||||||
print(" {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11:>11}{12}".format(
|
print(" {0}{1}{2}{3} {4}{5} {6}{7}{8}{9}{10}{11:>10}{12}".format(
|
||||||
color['YELLOW'], pkg_split[0], color['ENDC'],
|
color['YELLOW'], upg, color['ENDC'],
|
||||||
" " * (25-len(pkg_split[0])), pkg_split[1],
|
" " * (24-len(upg)), pkg_split[1],
|
||||||
" " * (19-len(pkg_split[1])), pkg_split[2],
|
" " * (19-len(pkg_split[1])), pkg_split[2],
|
||||||
" " * (8-len(pkg_split[2])), pkg_split[3],
|
" " * (8-len(pkg_split[2])), pkg_split[3],
|
||||||
" " * (7-len(pkg_split[3])), repository,
|
" " * (7-len(pkg_split[3])), repository,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -24,11 +24,12 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from slpkg.toolbar import status
|
from slpkg.toolbar import status
|
||||||
from slpkg.__metadata__ import lib_path
|
|
||||||
from slpkg.splitting import split_package
|
from slpkg.splitting import split_package
|
||||||
from slpkg.slack.slack_version import slack_ver
|
from slpkg.slack.slack_version import slack_ver
|
||||||
|
from slpkg.__metadata__ import (
|
||||||
len_deps = 0
|
lib_path,
|
||||||
|
ktown_kde_repo
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def repo_data(PACKAGES_TXT, step, repo, version):
|
def repo_data(PACKAGES_TXT, step, repo, version):
|
||||||
|
@ -42,6 +43,9 @@ def repo_data(PACKAGES_TXT, step, repo, version):
|
||||||
index += 1
|
index += 1
|
||||||
toolbar_width = status(index, toolbar_width, step)
|
toolbar_width = status(index, toolbar_width, step)
|
||||||
if line.startswith("PACKAGE NAME"):
|
if line.startswith("PACKAGE NAME"):
|
||||||
|
if repo == "slackr":
|
||||||
|
name.append(fix_slackers_pkg(line[15:]))
|
||||||
|
else:
|
||||||
name.append(line[15:].strip())
|
name.append(line[15:].strip())
|
||||||
if line.startswith("PACKAGE LOCATION"):
|
if line.startswith("PACKAGE LOCATION"):
|
||||||
location.append(line[21:].strip())
|
location.append(line[21:].strip())
|
||||||
|
@ -61,7 +65,20 @@ def repo_data(PACKAGES_TXT, step, repo, version):
|
||||||
rsize,
|
rsize,
|
||||||
runsize
|
runsize
|
||||||
) = alien_filter(name, location, size, unsize, version)
|
) = alien_filter(name, location, size, unsize, version)
|
||||||
elif repo in ["slacky", "studio"]:
|
elif repo == "ktown":
|
||||||
|
(rname,
|
||||||
|
rlocation,
|
||||||
|
rsize,
|
||||||
|
runsize
|
||||||
|
) = ktown_filter(name, location, size, unsize, version)
|
||||||
|
elif repo == "multi":
|
||||||
|
(rname,
|
||||||
|
rlocation,
|
||||||
|
rsize,
|
||||||
|
runsize
|
||||||
|
) = multi_filter(name, location, size, unsize, version)
|
||||||
|
elif repo in ["slacky", "studio", "slackr", "slonly", "slacke",
|
||||||
|
"salix", "slackl"]:
|
||||||
rname, rlocation, rsize, runsize = name, location, size, unsize
|
rname, rlocation, rsize, runsize = name, location, size, unsize
|
||||||
return [rname, rlocation, rsize, runsize]
|
return [rname, rlocation, rsize, runsize]
|
||||||
|
|
||||||
|
@ -86,7 +103,7 @@ def rlw_filter(name, location, size, unsize):
|
||||||
|
|
||||||
def alien_filter(name, location, size, unsize, version):
|
def alien_filter(name, location, size, unsize, version):
|
||||||
'''
|
'''
|
||||||
Filter alien repository data
|
Filter Alien's repository data
|
||||||
'''
|
'''
|
||||||
ver = slack_ver()
|
ver = slack_ver()
|
||||||
if version == "current":
|
if version == "current":
|
||||||
|
@ -104,40 +121,94 @@ def alien_filter(name, location, size, unsize, version):
|
||||||
return [fname, flocation, fsize, funsize]
|
return [fname, flocation, fsize, funsize]
|
||||||
|
|
||||||
|
|
||||||
|
def ktown_filter(name, location, size, unsize, version):
|
||||||
|
'''
|
||||||
|
Filter Alien's ktown repository data
|
||||||
|
'''
|
||||||
|
ver = slack_ver()
|
||||||
|
if version == "current":
|
||||||
|
ver = "current"
|
||||||
|
path_pkg = "x86"
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
path_pkg = os.uname()[4]
|
||||||
|
(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 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]
|
||||||
|
|
||||||
|
|
||||||
|
def multi_filter(name, location, size, unsize, version):
|
||||||
|
'''
|
||||||
|
Filter Alien's multilib repository data
|
||||||
|
'''
|
||||||
|
ver = slack_ver()
|
||||||
|
if version == "current":
|
||||||
|
ver = "current"
|
||||||
|
(fname, flocation, fsize, funsize) = ([] for i in range(4))
|
||||||
|
for n, l, s, u in zip(name, location, size, unsize):
|
||||||
|
if l.startswith(ver):
|
||||||
|
fname.append(n)
|
||||||
|
flocation.append(l)
|
||||||
|
fsize.append(s)
|
||||||
|
funsize.append(u)
|
||||||
|
return [fname, flocation, fsize, funsize]
|
||||||
|
|
||||||
|
|
||||||
|
def fix_slackers_pkg(name):
|
||||||
|
'''
|
||||||
|
Fix 'PACKAGE NAME:' from PACKAGES.TXT file
|
||||||
|
Beacause repository slackers.it not report the full
|
||||||
|
name in PACKAGES.TXT file use FILELIST.TXT to
|
||||||
|
get.
|
||||||
|
'''
|
||||||
|
f = open(lib_path + "slackr_repo/FILELIST.TXT", "r")
|
||||||
|
FILELIST_TXT = f.read()
|
||||||
|
f.close()
|
||||||
|
for line in FILELIST_TXT.splitlines():
|
||||||
|
if name in line and line.endswith(".txz"):
|
||||||
|
return line.split("/")[-1].strip()
|
||||||
|
# This trick fix spliting 'NoneType' packages
|
||||||
|
# reference wrong name between PACKAGE.TXT and
|
||||||
|
# FILELIST.TXT
|
||||||
|
return ""
|
||||||
|
|
||||||
|
|
||||||
class Requires(object):
|
class Requires(object):
|
||||||
|
|
||||||
def __init__(self, name, repo):
|
def __init__(self, name, repo):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.repo = repo
|
self.repo = repo
|
||||||
lib = lib_path + "slack_repo/PACKAGES.TXT"
|
|
||||||
f = open(lib, "r")
|
|
||||||
self.SLACK_PACKAGES_TXT = f.read()
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def get_deps(self):
|
def get_deps(self):
|
||||||
'''
|
'''
|
||||||
Grap package requirements from repositories
|
Grap package requirements from repositories
|
||||||
'''
|
'''
|
||||||
if self.repo in ["alien", "slacky"]:
|
if self.repo in ["alien", "slacky", "slackr", "salix", "slackl"]:
|
||||||
lib = {
|
lib = '{0}{1}_repo/PACKAGES.TXT'.format(lib_path, self.repo)
|
||||||
'alien': lib_path + "alien_repo/PACKAGES.TXT",
|
f = open(lib, "r")
|
||||||
'slacky': lib_path + "slacky_repo/PACKAGES.TXT"
|
|
||||||
}
|
|
||||||
f = open(lib[self.repo], "r")
|
|
||||||
PACKAGES_TXT = f.read()
|
PACKAGES_TXT = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
for line in PACKAGES_TXT.splitlines():
|
for line in PACKAGES_TXT.splitlines():
|
||||||
if line.startswith("PACKAGE NAME: "):
|
if line.startswith("PACKAGE NAME: "):
|
||||||
|
if self.repo == "slackr":
|
||||||
|
pkg_name = line[14:].strip()
|
||||||
|
else:
|
||||||
pkg = line[14:].strip()
|
pkg = line[14:].strip()
|
||||||
pkg_name = split_package(pkg)[0]
|
pkg_name = split_package(pkg)[0]
|
||||||
if line.startswith("PACKAGE REQUIRED: "):
|
if line.startswith("PACKAGE REQUIRED: "):
|
||||||
if pkg_name == self.name:
|
if pkg_name == self.name:
|
||||||
if line[17:].strip():
|
if line[17:].strip():
|
||||||
if self.repo == "slacky":
|
if self.repo in ["slacky", "salix", "slackl"]:
|
||||||
return self.slacky_req_fix(line)
|
return self._req_fix(line)
|
||||||
|
elif self.repo == "alien":
|
||||||
else:
|
|
||||||
return line[18:].strip().split(",")
|
return line[18:].strip().split(",")
|
||||||
|
else:
|
||||||
|
return line[18:].strip().split()
|
||||||
|
|
||||||
elif self.repo == "rlw":
|
elif self.repo == "rlw":
|
||||||
# Robby's repository dependencies as shown in the central page
|
# Robby's repository dependencies as shown in the central page
|
||||||
# http://rlworkman.net/pkgs/
|
# http://rlworkman.net/pkgs/
|
||||||
|
@ -154,38 +225,23 @@ class Requires(object):
|
||||||
else:
|
else:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def slacky_req_fix(self, line):
|
def _req_fix(self, line):
|
||||||
'''
|
'''
|
||||||
Fix slacky requirements because many dependencies splitting
|
Fix slacky and salix requirements because many dependencies splitting
|
||||||
with ',' and others with '|'
|
with ',' and others with '|'
|
||||||
'''
|
'''
|
||||||
slacky_deps = []
|
deps = []
|
||||||
for dep in line[18:].strip().split(","):
|
for dep in line[18:].strip().split(","):
|
||||||
dep = dep.split("|")
|
dep = dep.split("|")
|
||||||
|
if self.repo == 'slacky':
|
||||||
if len(dep) > 1:
|
if len(dep) > 1:
|
||||||
for d in dep:
|
for d in dep:
|
||||||
slacky_deps.append(d.split()[0])
|
deps.append(d.split()[0])
|
||||||
dep = "".join(dep)
|
dep = "".join(dep)
|
||||||
slacky_deps.append(dep.split()[0])
|
deps.append(dep.split()[0])
|
||||||
slacky_deps = self.remove_slack_deps(slacky_deps)
|
else:
|
||||||
return slacky_deps
|
if len(dep) > 1:
|
||||||
|
for d in dep:
|
||||||
def remove_slack_deps(self, dependencies):
|
deps.append(d)
|
||||||
'''
|
deps.append(dep[0])
|
||||||
Because the repository slacky mentioned packages and dependencies
|
return deps
|
||||||
that exist in the distribution Slackware, this feature is intended
|
|
||||||
to remove them and return only those needed.
|
|
||||||
'''
|
|
||||||
global len_deps
|
|
||||||
len_deps += len(dependencies)
|
|
||||||
name, slacky_deps = [], []
|
|
||||||
index, toolbar_width, step = 0, 700, (len_deps * 500)
|
|
||||||
for line in self.SLACK_PACKAGES_TXT.splitlines():
|
|
||||||
index += 1
|
|
||||||
toolbar_width = status(index, toolbar_width, step)
|
|
||||||
if line.startswith("PACKAGE NAME:"):
|
|
||||||
name.append("-".join(line[15:].split("-")[:-3]))
|
|
||||||
for deps in dependencies:
|
|
||||||
if deps not in name:
|
|
||||||
slacky_deps.append(deps)
|
|
||||||
return slacky_deps
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ from slpkg.downloader import Download
|
||||||
from slpkg.grep_md5 import pkg_checksum
|
from slpkg.grep_md5 import pkg_checksum
|
||||||
from slpkg.splitting import split_package
|
from slpkg.splitting import split_package
|
||||||
from slpkg.messages import (
|
from slpkg.messages import (
|
||||||
slacky_error,
|
|
||||||
pkg_not_found,
|
pkg_not_found,
|
||||||
template
|
template
|
||||||
)
|
)
|
||||||
|
@ -43,7 +42,8 @@ from slpkg.__metadata__ import (
|
||||||
log_path,
|
log_path,
|
||||||
slpkg_tmp_packages,
|
slpkg_tmp_packages,
|
||||||
default_answer,
|
default_answer,
|
||||||
color
|
color,
|
||||||
|
slacke_sub_repo
|
||||||
)
|
)
|
||||||
|
|
||||||
from slpkg.pkg.find import find_package
|
from slpkg.pkg.find import find_package
|
||||||
|
@ -62,55 +62,105 @@ class OthersInstall(object):
|
||||||
self.repo = repo
|
self.repo = repo
|
||||||
self.version = version
|
self.version = version
|
||||||
self.tmp_path = slpkg_tmp_packages
|
self.tmp_path = slpkg_tmp_packages
|
||||||
if (not os.path.isfile(lib_path + "slack_repo/PACKAGES.TXT") and
|
|
||||||
repo == "slacky"):
|
|
||||||
slacky_error()
|
|
||||||
sys.exit(0)
|
|
||||||
repos = Repo()
|
|
||||||
print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
|
print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
|
||||||
color['CYAN'], self.package, color['ENDC']))
|
color['CYAN'], self.package, color['ENDC']))
|
||||||
sys.stdout.write("{0}Reading package lists ...{1}".format(
|
sys.stdout.write("{0}Reading package lists ...{1}".format(
|
||||||
color['GREY'], color['ENDC']))
|
color['GREY'], color['ENDC']))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
self.step = 700
|
self.step = 700
|
||||||
repos = Repo()
|
|
||||||
if self.repo == "rlw":
|
|
||||||
lib = lib_path + "rlw_repo/PACKAGES.TXT"
|
|
||||||
self.mirror = "{0}{1}/".format(repos.rlw(), slack_ver())
|
|
||||||
elif self.repo == "alien":
|
|
||||||
lib = lib_path + "alien_repo/PACKAGES.TXT"
|
|
||||||
self.mirror = repos.alien()
|
|
||||||
self.step = self.step * 2
|
|
||||||
elif self.repo == "slacky":
|
|
||||||
lib = lib_path + "slacky_repo/PACKAGES.TXT"
|
|
||||||
arch = ""
|
|
||||||
if os.uname()[4] == "x86_64":
|
|
||||||
arch = "64"
|
|
||||||
self.mirror = "{0}slackware{1}-{2}/".format(repos.slacky(), arch,
|
|
||||||
slack_ver())
|
|
||||||
self.step = self.step * 2
|
|
||||||
elif self.repo == "studio":
|
|
||||||
lib = lib_path + "studio_repo/PACKAGES.TXT"
|
|
||||||
arch = ""
|
|
||||||
if os.uname()[4] == "x86_64":
|
|
||||||
arch = "64"
|
|
||||||
self.mirror = "{0}slackware{1}-{2}/".format(repos.studioware(),
|
|
||||||
arch, slack_ver())
|
|
||||||
self.step = self.step * 2
|
|
||||||
|
|
||||||
f = open(lib, "r")
|
exec('self._init_{0}()'.format(self.repo))
|
||||||
|
|
||||||
|
f = open(self.lib, "r")
|
||||||
self.PACKAGES_TXT = f.read()
|
self.PACKAGES_TXT = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
sys.stdout.write("{0}Done{1}\n".format(color['GREY'], color['ENDC']))
|
sys.stdout.write("{0}Done{1}\n".format(color['GREY'], color['ENDC']))
|
||||||
|
|
||||||
|
def _init_rlw(self):
|
||||||
|
self.lib = lib_path + "rlw_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}{1}/".format(Repo().rlw(), slack_ver())
|
||||||
|
|
||||||
|
def _init_alien(self):
|
||||||
|
self.lib = lib_path + "alien_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().alien()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slacky(self):
|
||||||
|
self.lib = lib_path + "slacky_repo/PACKAGES.TXT"
|
||||||
|
arch = ""
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "64"
|
||||||
|
self.mirror = "{0}slackware{1}-{2}/".format(Repo().slacky(), arch,
|
||||||
|
slack_ver())
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_studio(self):
|
||||||
|
self.lib = lib_path + "studio_repo/PACKAGES.TXT"
|
||||||
|
arch = ""
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "64"
|
||||||
|
self.mirror = "{0}slackware{1}-{2}/".format(Repo().studioware(),
|
||||||
|
arch, slack_ver())
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slackr(self):
|
||||||
|
self.lib = lib_path + "slackr_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().slackers()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slonly(self):
|
||||||
|
self.lib = lib_path + "slonly_repo/PACKAGES.TXT"
|
||||||
|
arch = "{0}-x86".format(slack_ver())
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "{0}-x86_64".format(slack_ver())
|
||||||
|
self.mirror = "{0}{1}/".format(Repo().slackonly(), arch)
|
||||||
|
self.step = self.step * 3
|
||||||
|
|
||||||
|
def _init_ktown(self):
|
||||||
|
self.lib = lib_path + "ktown_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().ktown()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_multi(self):
|
||||||
|
self.lib = lib_path + "multi_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = Repo().multi()
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slacke(self):
|
||||||
|
arch = ""
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "64"
|
||||||
|
elif os.uname()[4] == "arm":
|
||||||
|
arch = "arm"
|
||||||
|
self.lib = lib_path + "slacke_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}slacke{1}/slackware{2}-{3}/".format(
|
||||||
|
Repo().slacke(), slacke_sub_repo[1:-1], arch, slack_ver())
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_salix(self):
|
||||||
|
arch = "i486"
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "x86_64"
|
||||||
|
self.lib = lib_path + "salix_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}{1}/{2}/".format(Repo().salix(), arch, slack_ver())
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
|
def _init_slackl(self):
|
||||||
|
arch = "i486"
|
||||||
|
if os.uname()[4] == "x86_64":
|
||||||
|
arch = "x86_64"
|
||||||
|
self.lib = lib_path + "slackl_repo/PACKAGES.TXT"
|
||||||
|
self.mirror = "{0}{1}/current/".format(Repo().slackel(), arch)
|
||||||
|
self.step = self.step * 2
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
'''
|
'''
|
||||||
Install packages from official Slackware distribution
|
Install packages from official Slackware distribution
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
dependencies = resolving_deps(self.package, self.repo)
|
dependencies = resolving_deps(self.package, self.repo)
|
||||||
(dwn_links, install_all, comp_sum, uncomp_sum,
|
(dwn_links, install_all, comp_sum, uncomp_sum
|
||||||
matching) = self.store(dependencies)
|
) = self.store(dependencies)
|
||||||
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
||||||
color['ENDC']))
|
color['ENDC']))
|
||||||
print("") # new line at start
|
print("") # new line at start
|
||||||
|
@ -124,7 +174,6 @@ class OthersInstall(object):
|
||||||
"Repos", " " * 10,
|
"Repos", " " * 10,
|
||||||
"Size"))
|
"Size"))
|
||||||
template(78)
|
template(78)
|
||||||
if not matching:
|
|
||||||
print("Installing:")
|
print("Installing:")
|
||||||
sums = views(install_all, comp_sum, self.repo, dependencies)
|
sums = views(install_all, comp_sum, self.repo, dependencies)
|
||||||
unit, size = units(comp_sum, uncomp_sum)
|
unit, size = units(comp_sum, uncomp_sum)
|
||||||
|
@ -153,17 +202,6 @@ class OthersInstall(object):
|
||||||
self.version)
|
self.version)
|
||||||
write_deps(dependencies)
|
write_deps(dependencies)
|
||||||
delete(self.tmp_path, install_all)
|
delete(self.tmp_path, install_all)
|
||||||
else:
|
|
||||||
print("Matching:")
|
|
||||||
sums = views(install_all, comp_sum, self.repo, dependencies)
|
|
||||||
msg = msgs(install_all, sums[2])
|
|
||||||
print("\nInstalling summary")
|
|
||||||
print("=" * 79)
|
|
||||||
print("{0}Total found {1} matching {2}.".format(
|
|
||||||
color['GREY'], len(install_all), msg[1]))
|
|
||||||
print("{0} installed {1} and {2} uninstalled {3}.{4}"
|
|
||||||
"\n".format(sums[0] + sums[1], msg[0], sums[2],
|
|
||||||
msg[1], color['ENDC']))
|
|
||||||
else:
|
else:
|
||||||
pkg_not_found("", self.package, "No matching", "\n")
|
pkg_not_found("", self.package, "No matching", "\n")
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
@ -176,7 +214,6 @@ class OthersInstall(object):
|
||||||
'''
|
'''
|
||||||
dwn, install, comp_sum, uncomp_sum = ([] for i in range(4))
|
dwn, install, comp_sum, uncomp_sum = ([] for i in range(4))
|
||||||
black = BlackList().packages()
|
black = BlackList().packages()
|
||||||
matching = False
|
|
||||||
# name = data[0]
|
# name = data[0]
|
||||||
# location = data[1]
|
# location = data[1]
|
||||||
# size = data[2]
|
# size = data[2]
|
||||||
|
@ -202,13 +239,11 @@ class OthersInstall(object):
|
||||||
install.append(name)
|
install.append(name)
|
||||||
comp_sum.append(comp)
|
comp_sum.append(comp)
|
||||||
uncomp_sum.append(uncomp)
|
uncomp_sum.append(uncomp)
|
||||||
if len(install) > 1:
|
|
||||||
matching = True
|
|
||||||
dwn.reverse()
|
dwn.reverse()
|
||||||
install.reverse()
|
install.reverse()
|
||||||
comp_sum.reverse()
|
comp_sum.reverse()
|
||||||
uncomp_sum.reverse()
|
uncomp_sum.reverse()
|
||||||
return [dwn, install, comp_sum, uncomp_sum, matching]
|
return [dwn, install, comp_sum, uncomp_sum]
|
||||||
|
|
||||||
|
|
||||||
def views(install_all, comp_sum, repository, dependencies):
|
def views(install_all, comp_sum, repository, dependencies):
|
||||||
|
@ -217,13 +252,7 @@ def views(install_all, comp_sum, repository, dependencies):
|
||||||
'''
|
'''
|
||||||
count = pkg_sum = uni_sum = upg_sum = 0
|
count = pkg_sum = uni_sum = upg_sum = 0
|
||||||
# fix repositories align
|
# fix repositories align
|
||||||
align = {
|
repository = repository + (' ' * (6 - (len(repository))))
|
||||||
'rlw': ' ' * 3,
|
|
||||||
'alien': ' ',
|
|
||||||
'slacky': '',
|
|
||||||
'studio': ''
|
|
||||||
}
|
|
||||||
repository += align[repository]
|
|
||||||
for pkg, comp in zip(install_all, comp_sum):
|
for pkg, comp in zip(install_all, comp_sum):
|
||||||
pkg_split = split_package(pkg[:-4])
|
pkg_split = split_package(pkg[:-4])
|
||||||
if find_package(pkg_split[0] + "-" + pkg_split[1], pkg_path):
|
if find_package(pkg_split[0] + "-" + pkg_split[1], pkg_path):
|
||||||
|
@ -235,10 +264,10 @@ def views(install_all, comp_sum, repository, dependencies):
|
||||||
else:
|
else:
|
||||||
COLOR = color['RED']
|
COLOR = color['RED']
|
||||||
uni_sum += 1
|
uni_sum += 1
|
||||||
print(" {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11:>11}{12}".format(
|
print(" {0}{1}{2}{3} {4}{5} {6}{7}{8}{9}{10}{11:>11}{12}".format(
|
||||||
COLOR, pkg_split[0], color['ENDC'],
|
COLOR, pkg_split[0], color['ENDC'],
|
||||||
" " * (25-len(pkg_split[0])), pkg_split[1],
|
" " * (24-len(pkg_split[0])), pkg_split[1],
|
||||||
" " * (19-len(pkg_split[1])), pkg_split[2],
|
" " * (18-len(pkg_split[1])), pkg_split[2],
|
||||||
" " * (8-len(pkg_split[2])), pkg_split[3],
|
" " * (8-len(pkg_split[2])), pkg_split[3],
|
||||||
" " * (7-len(pkg_split[3])), repository,
|
" " * (7-len(pkg_split[3])), repository,
|
||||||
comp, " K"))
|
comp, " K"))
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -24,8 +24,10 @@
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from slpkg.blacklist import BlackList
|
from slpkg.blacklist import BlackList
|
||||||
from slpkg.__metadata__ import lib_path
|
|
||||||
from slpkg.splitting import split_package
|
from slpkg.splitting import split_package
|
||||||
|
from slpkg.__metadata__ import (
|
||||||
|
lib_path
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def search_pkg(name, repo):
|
def search_pkg(name, repo):
|
||||||
|
@ -35,15 +37,13 @@ def search_pkg(name, repo):
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
blacklist = BlackList().packages()
|
blacklist = BlackList().packages()
|
||||||
repo_dir = {
|
with open(lib_path + '{0}_repo/PACKAGES.TXT'.format(
|
||||||
"rlw": "rlw_repo/PACKAGES.TXT",
|
repo), "r") as PACKAGES_TXT:
|
||||||
"alien": "alien_repo/PACKAGES.TXT",
|
|
||||||
"slacky": "slacky_repo/PACKAGES.TXT",
|
|
||||||
"studio": "studio_repo/PACKAGES.TXT"
|
|
||||||
}
|
|
||||||
with open(lib_path + repo_dir[repo], "r") as PACKAGES_TXT:
|
|
||||||
for line in PACKAGES_TXT:
|
for line in PACKAGES_TXT:
|
||||||
if line.startswith("PACKAGE NAME: "):
|
if line.startswith("PACKAGE NAME: ") and len(line) > 16:
|
||||||
|
if repo == 'slackr':
|
||||||
|
pkg_name = line[15:].strip()
|
||||||
|
else:
|
||||||
pkg_name = split_package(line[15:])[0].strip()
|
pkg_name = split_package(line[15:])[0].strip()
|
||||||
if name == pkg_name and name not in blacklist:
|
if name == pkg_name and name not in blacklist:
|
||||||
PACKAGES_TXT.close()
|
PACKAGES_TXT.close()
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ def find_package(find_pkg, directory):
|
||||||
pkgs = []
|
pkgs = []
|
||||||
blacklist = BlackList().packages()
|
blacklist = BlackList().packages()
|
||||||
for pkg in sorted(os.listdir(directory)):
|
for pkg in sorted(os.listdir(directory)):
|
||||||
if pkg.startswith(find_pkg)and split_package(pkg)[0] not in blacklist:
|
if (not pkg.startswith('.') and pkg.startswith(find_pkg)
|
||||||
|
and split_package(pkg)[0] not in blacklist):
|
||||||
pkgs.append(pkg)
|
pkgs.append(pkg)
|
||||||
return pkgs
|
return pkgs
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ from slpkg.__metadata__ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
from slpkg.pkg.find import find_package
|
from slpkg.pkg.find import find_package
|
||||||
|
from slpkg.slack.slack_version import slack_ver
|
||||||
|
|
||||||
|
|
||||||
class PackageManager(object):
|
class PackageManager(object):
|
||||||
|
@ -227,12 +228,11 @@ class PackageManager(object):
|
||||||
'''
|
'''
|
||||||
Find installed Slackware packages
|
Find installed Slackware packages
|
||||||
'''
|
'''
|
||||||
self.binary = "".join(self.binary)
|
|
||||||
matching = size = 0
|
matching = size = 0
|
||||||
print("\nPackages with matching name [ {0}{1}{2} ]\n".format(
|
print("\nPackages with matching name [ {0}{1}{2} ]\n".format(
|
||||||
color['CYAN'], self.binary, color['ENDC']))
|
color['CYAN'], ''.join(self.binary), color['ENDC']))
|
||||||
for match in find_package(self.binary, pkg_path):
|
for match in find_package(''.join(self.binary), pkg_path):
|
||||||
if self.binary in match:
|
if ''.join(self.binary) in match:
|
||||||
matching += 1
|
matching += 1
|
||||||
print("[ {0}installed{1} ] - {2}".format(
|
print("[ {0}installed{1} ] - {2}".format(
|
||||||
color['GREEN'], color['ENDC'], match))
|
color['GREEN'], color['ENDC'], match))
|
||||||
|
@ -286,29 +286,34 @@ class PackageManager(object):
|
||||||
row = int(tty_size[0]) - 2
|
row = int(tty_size[0]) - 2
|
||||||
try:
|
try:
|
||||||
pkg_list = {
|
pkg_list = {
|
||||||
'sbo': '_SBo',
|
'sbo': ['_SBo'],
|
||||||
'slack': '_slack',
|
'slack': ['_slack{0}'.format(slack_ver())],
|
||||||
'noarch': '-noarch-',
|
'rlw': ['_rlw'],
|
||||||
'rlw': '_rlw',
|
'alien': ['alien'],
|
||||||
'alien': 'alien',
|
'slacky': ['sl'],
|
||||||
'slacky': 'sl',
|
'studio': ['se'],
|
||||||
'studio': 'se',
|
'slackr': ['cf'],
|
||||||
'all': ''
|
'slonly': ['_slack'],
|
||||||
|
'ktown': ['alien'],
|
||||||
|
'multi': ['alien', 'alien_slack{0}'.format(slack_ver()),
|
||||||
|
'compat32'],
|
||||||
|
'slacke': ['jp'],
|
||||||
|
'salix': ['gv', 'rl', 'msb', 'dj', 'tg', 'cp', 'tjb', 'alien'],
|
||||||
|
'slackl': [''],
|
||||||
|
'all': ['']
|
||||||
}
|
}
|
||||||
search = pkg_list[pattern]
|
search = pkg_list[pattern]
|
||||||
index, page = 0, row
|
index, page = 0, row
|
||||||
sl = search
|
|
||||||
if search == "-noarch-":
|
|
||||||
search = ""
|
|
||||||
for pkg in find_package("", pkg_path):
|
for pkg in find_package("", pkg_path):
|
||||||
if pkg.endswith(search) and sl in pkg:
|
for tag in search:
|
||||||
|
if pkg.endswith(tag):
|
||||||
index += 1
|
index += 1
|
||||||
print("{0}{1}:{2} {3}".format(color['GREY'], index,
|
print("{0}{1}:{2} {3}".format(color['GREY'], index,
|
||||||
color['ENDC'], pkg))
|
color['ENDC'], pkg))
|
||||||
if index == page:
|
if index == page:
|
||||||
read = raw_input("\nPress {0}Enter{1} to "
|
read = raw_input("\nPress {0}Enter{1} to "
|
||||||
"continue... ".format(color['CYAN'],
|
"continue... ".format(
|
||||||
color['ENDC']))
|
color['CYAN'], color['ENDC']))
|
||||||
if read in ['Q', 'q']:
|
if read in ['Q', 'q']:
|
||||||
break
|
break
|
||||||
print("") # new line after page
|
print("") # new line after page
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
111
slpkg/repoinfo.py
Normal file
111
slpkg/repoinfo.py
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# repoinfo.py file is part of slpkg.
|
||||||
|
|
||||||
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
|
# https://github.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 sys
|
||||||
|
|
||||||
|
from sizes import units
|
||||||
|
from repolist import RepoList
|
||||||
|
from __metadata__ import (
|
||||||
|
lib_path,
|
||||||
|
log_path,
|
||||||
|
repositories,
|
||||||
|
color
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RepoInfo(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.form = {
|
||||||
|
'Last updated:': '',
|
||||||
|
'Number of packages:': '',
|
||||||
|
'Repo id:': '',
|
||||||
|
'Repo url:': '',
|
||||||
|
'Status:': '',
|
||||||
|
'Total compressed packages:': '',
|
||||||
|
'Total uncompressed packages:': ''
|
||||||
|
}
|
||||||
|
|
||||||
|
self.all_repos = RepoList().all_repos
|
||||||
|
del RepoList().all_repos
|
||||||
|
|
||||||
|
def view(self, repo):
|
||||||
|
'''
|
||||||
|
View repository information
|
||||||
|
'''
|
||||||
|
status = '{0}disabled{1}'.format(color['RED'], color['ENDC'])
|
||||||
|
self.form['Status:'] = status
|
||||||
|
if (repo in repositories and
|
||||||
|
os.path.isfile(log_path + '{0}/ChangeLog.txt'.format(repo))):
|
||||||
|
status = '{0}enabled{1}'.format(color['GREEN'], color['ENDC'])
|
||||||
|
if repo != 'sbo':
|
||||||
|
data = self.repository_data(repo)
|
||||||
|
size = units(data[1], data[2])
|
||||||
|
self.form['Repo id:'] = repo
|
||||||
|
self.form['Repo url:'] = self.all_repos[repo]
|
||||||
|
self.form['Total compressed packages:'] = '{0} {1}'.format(
|
||||||
|
str(size[1][0]), str(size[0][0]))
|
||||||
|
self.form['Total uncompressed packages:'] = '{0} {1}'.format(
|
||||||
|
str(size[1][1]), str(size[0][1]))
|
||||||
|
self.form['Number of packages:'] = data[0]
|
||||||
|
self.form['Status:'] = status
|
||||||
|
self.form['Last updated:'] = data[3]
|
||||||
|
elif repo == 'sbo':
|
||||||
|
sum_sbo_pkgs = 0
|
||||||
|
for line in open(lib_path + 'sbo_repo/SLACKBUILDS.TXT', 'r'):
|
||||||
|
if line.startswith('SLACKBUILD NAME: '):
|
||||||
|
sum_sbo_pkgs += 1
|
||||||
|
with open(log_path + 'sbo/ChangeLog.txt', 'r') as changelog_txt:
|
||||||
|
last_upd = changelog_txt.readline().replace('\n', '')
|
||||||
|
self.form['Repo id:'] = repo
|
||||||
|
self.form['Repo url:'] = self.all_repos[repo]
|
||||||
|
self.form['Total compressed packages:'] = ''
|
||||||
|
self.form['Total uncompressed packages:'] = ''
|
||||||
|
self.form['Number of packages:'] = sum_sbo_pkgs
|
||||||
|
self.form['Status:'] = status
|
||||||
|
self.form['Last updated:'] = last_upd
|
||||||
|
print('')
|
||||||
|
for key, value in sorted(self.form.iteritems()):
|
||||||
|
print color['GREY'] + key + color['ENDC'], value
|
||||||
|
print('')
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
def repository_data(self, repo):
|
||||||
|
'''
|
||||||
|
Grap data packages
|
||||||
|
'''
|
||||||
|
sum_pkgs, size, unsize, last_upd = 0, [], [], ''
|
||||||
|
for line in open(lib_path + repo + '_repo/PACKAGES.TXT', 'r'):
|
||||||
|
if line.startswith('PACKAGES.TXT;'):
|
||||||
|
last_upd = line[14:].strip()
|
||||||
|
if line.startswith('PACKAGE NAME:'):
|
||||||
|
sum_pkgs += 1
|
||||||
|
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 in ['salix', 'slackl']:
|
||||||
|
with open(log_path + '{0}/ChangeLog.txt'.format(repo), 'r') as log:
|
||||||
|
last_upd = log.readline().replace('\n', '')
|
||||||
|
return [sum_pkgs, size, unsize, last_upd]
|
75
slpkg/repolist.py
Normal file
75
slpkg/repolist.py
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# repolist.py file is part of slpkg.
|
||||||
|
|
||||||
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
|
# https://github.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 repositories import Repo
|
||||||
|
from messages import template
|
||||||
|
from __metadata__ import (
|
||||||
|
repositories,
|
||||||
|
color
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RepoList(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.all_repos = {
|
||||||
|
'slack': Repo().slack(),
|
||||||
|
'sbo': Repo().sbo(),
|
||||||
|
'rlw': Repo().rlw(),
|
||||||
|
'alien': Repo().alien(),
|
||||||
|
'slacky': Repo().slacky(),
|
||||||
|
'studio': Repo().studioware(),
|
||||||
|
'slackr': Repo().slackers(),
|
||||||
|
'slonly': Repo().slackonly(),
|
||||||
|
'ktown': Repo().ktown(),
|
||||||
|
'multi': Repo().multi(),
|
||||||
|
'slacke': Repo().slacke(),
|
||||||
|
'salix': Repo().salix(),
|
||||||
|
'slackl': Repo().slackel()
|
||||||
|
}
|
||||||
|
|
||||||
|
def repos(self):
|
||||||
|
'''
|
||||||
|
View or enabled or disabled repositories
|
||||||
|
'''
|
||||||
|
print('')
|
||||||
|
template(78)
|
||||||
|
print('{0}{1}{2}{3}{4}'.format(
|
||||||
|
'| Repo id', ' ' * 10,
|
||||||
|
'Repo name', ' ' * 45,
|
||||||
|
'Status'))
|
||||||
|
template(78)
|
||||||
|
for repo_id, repo_name in sorted(self.all_repos.iteritems()):
|
||||||
|
status, COLOR = 'disabled', color['RED']
|
||||||
|
if repo_id in repositories:
|
||||||
|
status, COLOR = 'enabled', color['GREEN']
|
||||||
|
print(' {0}{1}{2}{3}{4}{5:>15}{6}'.format(
|
||||||
|
repo_id, ' ' * (17 - len(repo_id)),
|
||||||
|
repo_name, ' ' * (45 - len(repo_name)),
|
||||||
|
COLOR, status, color['ENDC']))
|
||||||
|
print("\nFor enable or disable repositories edit "
|
||||||
|
"'/etc/slpkg/slpkg.conf' file\n")
|
||||||
|
sys.exit(0)
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ class Repo(object):
|
||||||
|
|
||||||
def alien(self):
|
def alien(self):
|
||||||
'''
|
'''
|
||||||
Alien repository
|
Alien's slackbuilds repository
|
||||||
'''
|
'''
|
||||||
return "http://www.slackware.com/~alien/slackbuilds/"
|
return "http://www.slackware.com/~alien/slackbuilds/"
|
||||||
|
|
||||||
|
@ -74,3 +74,45 @@ class Repo(object):
|
||||||
Studioware repository
|
Studioware repository
|
||||||
'''
|
'''
|
||||||
return "http://studioware.org/files/packages/"
|
return "http://studioware.org/files/packages/"
|
||||||
|
|
||||||
|
def slackers(self):
|
||||||
|
'''
|
||||||
|
Slackers.it repository
|
||||||
|
'''
|
||||||
|
return "http://www.slackers.it/repository/"
|
||||||
|
|
||||||
|
def slackonly(self):
|
||||||
|
'''
|
||||||
|
Slackonly.com repository
|
||||||
|
'''
|
||||||
|
return "https://slackonly.com/pub/packages/"
|
||||||
|
|
||||||
|
def ktown(self):
|
||||||
|
'''
|
||||||
|
Alien's ktown repository
|
||||||
|
'''
|
||||||
|
return "http://alien.slackbook.org/ktown/"
|
||||||
|
|
||||||
|
def multi(self):
|
||||||
|
'''
|
||||||
|
Alien's multilib repository
|
||||||
|
'''
|
||||||
|
return "http://www.slackware.com/~alien/multilib/"
|
||||||
|
|
||||||
|
def slacke(self):
|
||||||
|
'''
|
||||||
|
Slacke slacke{17|18} repository
|
||||||
|
'''
|
||||||
|
return "http://ngc891.blogdns.net/pub/"
|
||||||
|
|
||||||
|
def salix(self):
|
||||||
|
'''
|
||||||
|
SalixOS salix repository
|
||||||
|
'''
|
||||||
|
return "http://download.salixos.org/"
|
||||||
|
|
||||||
|
def slackel(self):
|
||||||
|
'''
|
||||||
|
Slackel.gr slackel repository
|
||||||
|
'''
|
||||||
|
return "http://www.slackel.gr/repo/"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ def order_list(upgrade_names):
|
||||||
|
|
||||||
def store(dependencies):
|
def store(dependencies):
|
||||||
'''
|
'''
|
||||||
In the end lest a check of the packages that are on the list
|
In the end last a check of the packages that are on the list
|
||||||
are already installed.
|
are already installed.
|
||||||
'''
|
'''
|
||||||
(upgrade_name,
|
(upgrade_name,
|
||||||
|
@ -276,9 +276,9 @@ def view_packages(package_for_upgrade, upgrade_version, upgrade_arch):
|
||||||
else:
|
else:
|
||||||
COLOR = color['RED']
|
COLOR = color['RED']
|
||||||
count_installed += 1
|
count_installed += 1
|
||||||
print(" {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}".format(
|
print(" {0}{1}{2}{3} {4}{5}{6} {7}{8}{9}{10}".format(
|
||||||
COLOR, upg, color['ENDC'], " " * (38-len(upg)), color['GREEN'],
|
COLOR, upg, color['ENDC'], " " * (37-len(upg)), color['GREEN'],
|
||||||
ver, color['ENDC'], " " * (17-len(ver)), arch,
|
ver, color['ENDC'], " " * (16-len(ver)), arch,
|
||||||
" " * (13-len(arch)), "SBo"))
|
" " * (13-len(arch)), "SBo"))
|
||||||
msg_upg = "package"
|
msg_upg = "package"
|
||||||
msg_ins = msg_upg
|
msg_ins = msg_upg
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -260,10 +260,10 @@ def view_packages(*args):
|
||||||
'''
|
'''
|
||||||
View slackbuild packages with version and arch
|
View slackbuild packages with version and arch
|
||||||
'''
|
'''
|
||||||
print(" {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}".format(
|
print(" {0}{1}{2}{3} {4}{5}{6} {7}{8}{9}{10}".format(
|
||||||
args[0], args[1], color['ENDC'],
|
args[0], args[1], color['ENDC'],
|
||||||
" " * (38-len(args[1])), args[2],
|
" " * (37-len(args[1])), args[2],
|
||||||
" " * (17-len(args[2])), args[3], args[4], color['ENDC'],
|
" " * (16-len(args[2])), args[3], args[4], color['ENDC'],
|
||||||
" " * (13-len(args[4])), "SBo"))
|
" " * (13-len(args[4])), "SBo"))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -145,10 +145,10 @@ def views(install_all, comp_sum):
|
||||||
else:
|
else:
|
||||||
COLOR = color['RED']
|
COLOR = color['RED']
|
||||||
uni_sum += 1
|
uni_sum += 1
|
||||||
print(" {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11:>12}{12}".format(
|
print(" {0}{1}{2}{3} {4}{5} {6}{7}{8}{9}{10}{11:>12}{12}".format(
|
||||||
COLOR, pkg_split[0], color['ENDC'],
|
COLOR, pkg_split[0], color['ENDC'],
|
||||||
" " * (25-len(pkg_split[0])), pkg_split[1],
|
" " * (24-len(pkg_split[0])), pkg_split[1],
|
||||||
" " * (19-len(pkg_split[1])), pkg_split[2],
|
" " * (18-len(pkg_split[1])), pkg_split[2],
|
||||||
" " * (8-len(pkg_split[2])), pkg_split[3],
|
" " * (8-len(pkg_split[2])), pkg_split[3],
|
||||||
" " * (7-len(pkg_split[3])), "Slack",
|
" " * (7-len(pkg_split[3])), "Slack",
|
||||||
comp, " K"))
|
comp, " K"))
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ class Patches(object):
|
||||||
if self.version == "stable":
|
if self.version == "stable":
|
||||||
self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT",
|
self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT",
|
||||||
"patches/")).reading()
|
"patches/")).reading()
|
||||||
self.step = 100
|
self.step = 10
|
||||||
else:
|
else:
|
||||||
self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT", "")).reading()
|
self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT", "")).reading()
|
||||||
self.step = 700
|
self.step = 700
|
||||||
|
@ -70,7 +70,8 @@ class Patches(object):
|
||||||
Install new patches from official Slackware mirrors
|
Install new patches from official Slackware mirrors
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
dwn_links, upgrade_all, comp_sum, uncomp_sum = self.store()
|
(pkg_for_upgrade, dwn_links, upgrade_all, comp_sum,
|
||||||
|
uncomp_sum) = self.store()
|
||||||
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
sys.stdout.write("{0}Done{1}\n".format(color['GREY'],
|
||||||
color['ENDC']))
|
color['ENDC']))
|
||||||
if upgrade_all:
|
if upgrade_all:
|
||||||
|
@ -85,7 +86,7 @@ class Patches(object):
|
||||||
"Size"))
|
"Size"))
|
||||||
template(78)
|
template(78)
|
||||||
print("Upgrading:")
|
print("Upgrading:")
|
||||||
views(upgrade_all, comp_sum)
|
views(pkg_for_upgrade, upgrade_all, comp_sum)
|
||||||
unit, size = units(comp_sum, uncomp_sum)
|
unit, size = units(comp_sum, uncomp_sum)
|
||||||
print("\nInstalling summary")
|
print("\nInstalling summary")
|
||||||
print("=" * 79)
|
print("=" * 79)
|
||||||
|
@ -119,30 +120,34 @@ class Patches(object):
|
||||||
'''
|
'''
|
||||||
Store and return packages for upgrading
|
Store and return packages for upgrading
|
||||||
'''
|
'''
|
||||||
(dwn, upgrade, comp_sum, uncomp_sum) = ([] for i in range(4))
|
(pkg_for_upgrade, dwn, upgrade, comp_sum,
|
||||||
|
uncomp_sum) = ([] for i in range(5))
|
||||||
data = slack_data(self.PACKAGES_TXT, self.step)
|
data = slack_data(self.PACKAGES_TXT, self.step)
|
||||||
black = BlackList().packages()
|
black = BlackList().packages()
|
||||||
for name, loc, comp, uncomp in zip(data[0], data[1], data[2], data[3]):
|
for name, loc, comp, uncomp in zip(data[0], data[1], data[2], data[3]):
|
||||||
if find_package(split_package(name)[0] + "-", pkg_path):
|
inst_pkg = find_package(split_package(name)[0] + "-", pkg_path)
|
||||||
if (not os.path.isfile(pkg_path + name[:-4]) and
|
if (inst_pkg and not os.path.isfile(pkg_path + name[:-4]) and
|
||||||
split_package(name)[0] not in black):
|
split_package(''.join(inst_pkg[0])) not in black):
|
||||||
dwn.append("{0}{1}/{2}".format(mirrors("", ""), loc, name))
|
dwn.append("{0}{1}/{2}".format(mirrors("", ""), loc, name))
|
||||||
comp_sum.append(comp)
|
comp_sum.append(comp)
|
||||||
uncomp_sum.append(uncomp)
|
uncomp_sum.append(uncomp)
|
||||||
upgrade.append(name)
|
upgrade.append(name)
|
||||||
return [dwn, upgrade, comp_sum, uncomp_sum]
|
pkg_for_upgrade.append('{0}-{1}'.format(
|
||||||
|
split_package(''.join(inst_pkg[0]))[0],
|
||||||
|
split_package(''.join(inst_pkg[0]))[1]))
|
||||||
|
return [pkg_for_upgrade, dwn, upgrade, comp_sum, uncomp_sum]
|
||||||
|
|
||||||
|
|
||||||
def views(upgrade_all, comp_sum):
|
def views(pkg_for_upgrade, upgrade_all, comp_sum):
|
||||||
'''
|
'''
|
||||||
Views packages
|
Views packages
|
||||||
'''
|
'''
|
||||||
for upgrade, size in zip(upgrade_all, comp_sum):
|
for upg, upgrade, size in zip(pkg_for_upgrade, upgrade_all, comp_sum):
|
||||||
pkg_split = split_package(upgrade[:-4])
|
pkg_split = split_package(upgrade[:-4])
|
||||||
print(" {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11:>12}{12}".format(
|
print(" {0}{1}{2}{3} {4}{5} {6}{7}{8}{9}{10}{11:>12}{12}".format(
|
||||||
color['YELLOW'], pkg_split[0], color['ENDC'],
|
color['YELLOW'], upg, color['ENDC'],
|
||||||
" " * (25-len(pkg_split[0])), pkg_split[1],
|
" " * (24-len(upg)), pkg_split[1],
|
||||||
" " * (19-len(pkg_split[1])), pkg_split[2],
|
" " * (18-len(pkg_split[1])), pkg_split[2],
|
||||||
" " * (8-len(pkg_split[2])), pkg_split[3],
|
" " * (8-len(pkg_split[2])), pkg_split[3],
|
||||||
" " * (7-len(pkg_split[3])), "Slack",
|
" " * (7-len(pkg_split[3])), "Slack",
|
||||||
size, " K"))
|
size, " K"))
|
||||||
|
@ -176,6 +181,16 @@ def kernel(upgrade_all):
|
||||||
'''
|
'''
|
||||||
for core in upgrade_all:
|
for core in upgrade_all:
|
||||||
if "kernel" in core:
|
if "kernel" in core:
|
||||||
print("The kernel has been upgraded, reinstall `lilo` ...")
|
if default_answer == "y":
|
||||||
|
answer = default_answer
|
||||||
|
else:
|
||||||
|
print("")
|
||||||
|
template(78)
|
||||||
|
print("| {0}*** HIGHLY recommended reinstall 'LILO' "
|
||||||
|
"***{1}".format(color['RED'], color['ENDC']))
|
||||||
|
template(78)
|
||||||
|
answer = raw_input("\nThe kernel has been upgraded, "
|
||||||
|
"reinstall `LILO` [Y/n]? ")
|
||||||
|
if answer in ['y', 'Y']:
|
||||||
subprocess.call("lilo", shell=True)
|
subprocess.call("lilo", shell=True)
|
||||||
break
|
break
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -21,8 +21,6 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from slack.slack_version import slack_ver
|
|
||||||
|
|
||||||
|
|
||||||
def split_package(package):
|
def split_package(package):
|
||||||
'''
|
'''
|
||||||
|
@ -30,25 +28,12 @@ def split_package(package):
|
||||||
arch and build tag.
|
arch and build tag.
|
||||||
'''
|
'''
|
||||||
split = package.split("-")
|
split = package.split("-")
|
||||||
sbo = "_SBo"
|
|
||||||
slack = "_slack{0}".format(slack_ver())
|
|
||||||
rlw = "_rlw"
|
|
||||||
alien = "alien"
|
|
||||||
slacky = "sl"
|
|
||||||
studio = "se"
|
|
||||||
build = split[-1]
|
build = split[-1]
|
||||||
if build.endswith(sbo):
|
build_a, build_b = '', ''
|
||||||
build = split[-1][:-4] # and remove .t?z extension
|
build_a = build[:1]
|
||||||
if build.endswith(slack):
|
if build[1:2].isdigit():
|
||||||
build = split[-1][:-len(slack)]
|
build_b = build[1:2]
|
||||||
elif build.endswith(rlw):
|
build = build_a + build_b
|
||||||
build = split[-1][:-len(rlw)]
|
|
||||||
elif build.endswith(alien):
|
|
||||||
build = split[-1][:-len(alien)]
|
|
||||||
elif build.endswith(slacky):
|
|
||||||
build = split[-1][:-len(slacky)]
|
|
||||||
elif build.endswith(studio):
|
|
||||||
build = split[-1][:-len(studio)]
|
|
||||||
arch = split[-2]
|
arch = split[-2]
|
||||||
ver = split[-3]
|
ver = split[-3]
|
||||||
name = "-".join(split[:-3])
|
name = "-".join(split[:-3])
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -21,15 +21,12 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from messages import (
|
from messages import (
|
||||||
template,
|
template
|
||||||
slacky_error
|
|
||||||
)
|
)
|
||||||
from __metadata__ import (
|
from __metadata__ import (
|
||||||
lib_path,
|
|
||||||
pkg_path,
|
pkg_path,
|
||||||
color,
|
color,
|
||||||
sp
|
sp
|
||||||
|
@ -51,10 +48,6 @@ def track_dep(name, repo):
|
||||||
if allready installed and color red
|
if allready installed and color red
|
||||||
if not installed.
|
if not installed.
|
||||||
'''
|
'''
|
||||||
if (not os.path.isfile(lib_path + "slack_repo/PACKAGES.TXT") and
|
|
||||||
repo == "slacky"):
|
|
||||||
slacky_error()
|
|
||||||
sys.exit(0)
|
|
||||||
sys.stdout.write("{0}Reading package lists ...{1}".format(color['GREY'],
|
sys.stdout.write("{0}Reading package lists ...{1}".format(color['GREY'],
|
||||||
color['ENDC']))
|
color['ENDC']))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
# Utility for easy management packages in Slackware
|
# Slpkg is a user-friendly package manager for Slackware installations
|
||||||
|
|
||||||
# https://github.com/dslackw/slpkg
|
# https://github.com/dslackw/slpkg
|
||||||
|
|
||||||
|
@ -21,6 +21,8 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
from __metadata__ import (
|
from __metadata__ import (
|
||||||
__version__,
|
__version__,
|
||||||
__license__,
|
__license__,
|
||||||
|
@ -35,3 +37,4 @@ def prog_version():
|
||||||
print("Version : {0}".format(__version__))
|
print("Version : {0}".format(__version__))
|
||||||
print("Licence : {0}".format(__license__))
|
print("Licence : {0}".format(__license__))
|
||||||
print("Email : {0}".format(__email__))
|
print("Email : {0}".format(__email__))
|
||||||
|
sys.exit(0)
|
||||||
|
|
Loading…
Reference in a new issue