updated for version 2.1.1

This commit is contained in:
Dimitris Zlatanidis 2014-12-02 01:31:10 +02:00
parent 09010cb3b6
commit 5ef0abc555
14 changed files with 159 additions and 111 deletions

View file

@ -1,3 +1,12 @@
Version 2.1.1-dev
02-12-2014
[Feature] - Added options in /etc/slpkg/slpkg.conf file to select
repositories.
- Added options to skip unsupported and untested packages.
[Updated] - Bugfix TypeError for unsupported/untested sbo packages.
Version 2.1.0 Version 2.1.0
28-11-2014 28-11-2014
@ -14,13 +23,13 @@ Version 2.0.9
Version 2.0.8 Version 2.0.8
25-11-2014 25-11-2014
[Updated] - Add more options in slpkg configuration file. [Updated] - Added more options in slpkg configuration file.
Version 2.0.7 Version 2.0.7
22-11-2014 22-11-2014
[Feature] - Add more option in slpkg.conf file. [Feature] - Added more option in slpkg.conf file.
- Add slackware-mirrors file in /etc/slpkg - Added slackware-mirrors file in /etc/slpkg
[Updated] - Fix upgrade Slackware packages if installed. [Updated] - Fix upgrade Slackware packages if installed.
@ -32,19 +41,19 @@ Version 2.0.6
Version 2.0.5 Version 2.0.5
18-11-2014 18-11-2014
[Feature] - Add /etc/slpkg.conf file. [Feature] - Added /etc/slpkg.conf file.
- Move "--current" switch in /etc/slpkg.conf file. - Move "--current" switch in /etc/slpkg.conf file.
- Add local PACKAGES.TXT for Slackware repository. - Added local PACKAGES.TXT for Slackware repository.
- Add options to view package description. - Added options to view package description.
- Add all repositories in tracking dependencies options '-t'. - Added all repositories in tracking dependencies options '-t'.
- Add configuration file managment - Added configuration file managment
[Updated] - Bugfix upgrading binary packages. [Updated] - Bugfix upgrading binary packages.
Version 2.0.4 Version 2.0.4
07-11-2014 07-11-2014
[Feature] - Add Robby Workman, Alien Bob (Eric Hameleers) and [Feature] - Added Robby Workman, Alien Bob (Eric Hameleers) and
slacky.eu repositories. slacky.eu repositories.
[Updated] - Fix remove list reference. [Updated] - Fix remove list reference.

View file

@ -1,6 +1,6 @@
Metadata-Version: 1.1 Metadata-Version: 1.1
Name: slpkg Name: slpkg
Version: 2.1.0 Version: 2.1.1
Author: dslackw Author: dslackw
Author-email: d zlatanidis at gmail com Author-email: d zlatanidis at gmail com
Maintainer: dslackw Maintainer: dslackw

View file

@ -11,9 +11,9 @@
Latest Release: Latest Release:
- Version: 2.1.0 - Version: 2.1.1
- `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.0.tar.gz>`_ - `Source <https://github.com/dslackw/slpkg/archive/v2.1.1.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
@ -50,6 +50,9 @@ Supported Repositories:
Arch: {x86, x86_64} Arch: {x86, x86_64}
Versions: {13.37, 14.0, 14.1} Versions: {13.37, 14.0, 14.1}
* Choose repositories you need to work from file '/etc/slpkg/slpkg.conf' default is all repositories.
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.
@ -115,8 +118,8 @@ Untar the archive and run install.sh script:
.. code-block:: bash .. code-block:: bash
$ tar xvf slpkg-2.1.0.tar.gz $ tar xvf slpkg-2.1.1.tar.gz
$ cd slpkg-2.1.0 $ cd slpkg-2.1.1
$ ./install.sh $ ./install.sh
From SourceForge: From SourceForge:
@ -136,6 +139,9 @@ Upgrade
In each slpkg upgrade should track the configuration files in the file '/etc/slpkg' for In each slpkg upgrade should track the configuration files in the file '/etc/slpkg' for
new updates. new updates.
*** IMPORTANT :
*** Recommended to replace '/etc/slpkg/slpkg.conf' file with '/etc/slpkg/slpkg.conf.new' file.
Configuration files Configuration files
------------------- -------------------
@ -197,8 +203,6 @@ Command Line Tool Usage
-r, [package...] remove binary packages -r, [package...] remove binary packages
-d, [package...] display the contents -d, [package...] display the contents
Repositories: <slack, sbo, alien, slacky, rlw, studio>
Colors = [red, green, yellow, cyan, grey]
Slpkg Examples Slpkg Examples
-------------- --------------
@ -700,7 +704,7 @@ Print package description:
.. code-block:: bash .. code-block:: bash
$ slpkg -p alien vlc $ slpkg -p alien vlc --color=green
vlc (multimedia player for various audio and video formats) vlc (multimedia player for various audio and video formats)

View file

@ -23,6 +23,10 @@
# Slackware version 'stable' or 'current'. # Slackware version 'stable' or 'current'.
VERSION=stable VERSION=stable
# Choose repositories want to work.
# Available repositories : slack, sbo, alien, rlw, slacky, studio
REPOSITORIES=slack,sbo,alien,rlw,slacky,studio
# 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.
BUILD=/tmp/slpkg/build/ BUILD=/tmp/slpkg/build/
@ -55,6 +59,9 @@ DEFAULT_ANSWER=n
# Choose 'y' if you do not want to question. # Choose 'y' if you do not want to question.
REMOVE_DEPS_ANSWER=n REMOVE_DEPS_ANSWER=n
# If you want build UNSUPPORTED or UNTESTED packages choose 'y'.
SKIP_UNST=n
# Delete package dependencies if DEL_DEPS is on. # Delete package dependencies if DEL_DEPS is on.
DEL_DEPS=on DEL_DEPS=on

View file

@ -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.0} VERSION=${VERSION:-2.1.1}
TAG=${TAG:-_dsw} TAG=${TAG:-_dsw}
# Installation script. # Installation script.

View file

@ -15,51 +15,52 @@
.SH NAME .SH NAME
slpkg - Utility for easy management packages in Slackware slpkg - Utility for easy management packages in Slackware
.SH SYNOPSIS .SH SYNOPSIS
\fBUsage: 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, noarch]
[-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 [...]]\fp [-o [...]] [-r [...]] [-d [...]]
.SH DESCRIPTION .SH DESCRIPTION
\fBslpkg\fP is a terminal multitool in order to easy use Slackware packages. \fBslpkg\fP is a terminal multitool in order to easy use Slackware packages.
.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
\fB Utility for easy management packages in Slackware
Utility for easy management packages in Slackware
Optional arguments: Optional arguments:
-h, --help show this help message and exit -h, --help show this help message and exit
-v, --version print version and exit -v, --version print version and exit
-a, script.tar.gz [source...] auto build SBo packages -a, script.tar.gz [source...] auto build SBo packages
-b, --list, [package...] --add, --remove add, remove packages in blacklist -b, --list, [package...] --add, --remove add, remove packages in blacklist
-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, noarch 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
-p, [repository] [package] --color=[] print package description -p, [repository] [package] --color=[] print package description
-f, [package] find installed packages -f, [package] find installed packages
-n, [package] view packages from SBo -n, [package] view packages from SBo
-i, [package...] install binary packages -i, [package...] install binary packages
-u, [package...] upgrade binary packages -u, [package...] upgrade binary packages
-o, [package...] reinstall binary packages -o, [package...] reinstall binary packages
-r, [package...] remove binary packages -r, [package...] remove binary packages
-d, [package...] display the contents -d, [package...] display the contents
Repositories: <slack, sbo, alien, slacky, rlw, studio>
Colors = [red, green, yellow, cyan, grey]\fP
.SH REPOSITORIES
slack, sbo, alien, slacky, rlw, studio
.SH COLORS
red, green, yellow, cyan, grey
.PP
.SH GLOBAL OPTIONS .SH GLOBAL OPTIONS
.TP .TP
\fB\-v\fP, \fB\-\-version\fP \fB\-v\fP, \fB\-\-version\fP
@ -117,9 +118,9 @@ Tracking all dependencies of that package.
The sequence shown is that you must follow to correctly install package. The sequence shown is that you must follow to correctly install package.
.SS -p , print packages description .SS -p , print packages description
\fBslpkg\fP \fB-p\fP <\fIrepository\fP> <\fIname of package\fP> \fBslpkg\fP \fB-p\fP <\fIrepository\fP> <\fIname of package\fP> \fI--color=\fP
.PP .PP
Print package description Print package description with color. Available colors: red, green, yellow, cyan, grey
.SS -f find packages .SS -f find packages
\fBslpkg\fP \fB-f\fP <\fIname of package\fP> \fBslpkg\fP \fB-f\fP <\fIname of package\fP>

View file

@ -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.0} VERSION=${VERSION:-2.1.1}
BUILD=${BUILD:-1} BUILD=${BUILD:-1}
TAG=${TAG:-_dsw} TAG=${TAG:-_dsw}

View file

@ -26,7 +26,7 @@ import os
__all__ = "slpkg" __all__ = "slpkg"
__author__ = "dslackw" __author__ = "dslackw"
__version_info__ = (2, 1, 0) __version_info__ = (2, 1, 1)
__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"
@ -36,6 +36,14 @@ tmp = "/tmp/"
# Default configuration values # Default configuration values
slack_rel = "stable" slack_rel = "stable"
repositories = [
'slack',
'sbo',
'rlw',
'alien',
'slacky',
'studio'
]
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/"
@ -45,6 +53,7 @@ del_build = "off"
sbo_build_log = "on" sbo_build_log = "on"
default_answer = "n" default_answer = "n"
remove_deps_answer = "n" remove_deps_answer = "n"
skip_unst = "n"
del_deps = "on" del_deps = "on"
use_colors = "on" use_colors = "on"
@ -58,6 +67,8 @@ if os.path.isfile("/etc/slpkg/slpkg.conf"):
slack_rel = line[8:].strip() slack_rel = line[8:].strip()
if not slack_rel: if not slack_rel:
slack_rel = "stable" slack_rel = "stable"
if line.startswith("REPOSITORIES"):
repositories = line[13:].strip().split(",")
if line.startswith("BUILD"): if line.startswith("BUILD"):
build_path = line[6:].strip() build_path = line[6:].strip()
if line.startswith("PACKAGES"): if line.startswith("PACKAGES"):
@ -76,22 +87,13 @@ if os.path.isfile("/etc/slpkg/slpkg.conf"):
default_answer = line[15:].strip() default_answer = line[15:].strip()
if line.startswith("REMOVE_DEPS_ANSWER"): if line.startswith("REMOVE_DEPS_ANSWER"):
remove_deps_answer = line[19:].strip() remove_deps_answer = line[19:].strip()
if line.startswith("SKIP_UNST"):
skip_unst = line[10:].strip()
if line.startswith("DEL_DEPS"): if line.startswith("DEL_DEPS"):
del_deps = line[9:].strip() del_deps = line[9:].strip()
if line.startswith("USE_COLORS"): if line.startswith("USE_COLORS"):
use_colors = line[11:].strip() use_colors = line[11:].strip()
# repositories
repositories = [
'slack',
'sbo',
'rlw',
'alien',
'slacky',
'studio'
]
if use_colors == "on": if use_colors == "on":
color = { color = {
'RED': '\x1b[31m', 'RED': '\x1b[31m',

View file

@ -22,7 +22,10 @@
# 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 __metadata__ import __version__ from __metadata__ import (
__version__,
repositories
)
def options(): def options():
@ -56,8 +59,6 @@ def options():
" -o, [package...] reinstall binary packages", " -o, [package...] reinstall binary packages",
" -r, [package...] remove binary packages", " -r, [package...] remove binary packages",
" -d, [package...] display the contents\n", " -d, [package...] display the contents\n",
"Repositories: <slack, sbo, alien, slacky, rlw, studio>",
"Colors = [red, green, yellow, cyan, grey]\n",
] ]
for opt in arguments: for opt in arguments:
print(opt) print(opt)
@ -78,7 +79,10 @@ def usage():
" [-p [repository] [package] --color=[]]", " [-p [repository] [package] --color=[]]",
" [-f] [-n] [-i [...]] [-u [...]]", " [-f] [-n] [-i [...]] [-u [...]]",
" [-o [...]] [-r [...]] [-d [...]]\n", " [-o [...]] [-r [...]] [-d [...]]\n",
"Repositories: " + ", ".join(repositories),
"Colors: red, green, yellow, cyan, grey\n",
"For more information try 'slpkg --help'\n" "For more information try 'slpkg --help'\n"
] ]
for usg in view: for usg in view:
print(usg) print(usg)

View file

@ -38,6 +38,7 @@ class Config(object):
print("") # new line at start print("") # new line at start
conf_args = [ conf_args = [
'VERSION', 'VERSION',
'REPOSITORIES',
'BUILD', 'BUILD',
'SBO_CHECK_MD5', 'SBO_CHECK_MD5',
'PACKAGES', 'PACKAGES',
@ -47,6 +48,7 @@ class Config(object):
'SBO_BUILD_LOG', 'SBO_BUILD_LOG',
'DEFAULT_ANSWER', 'DEFAULT_ANSWER',
'REMOVE_DEPS_ANSWER', 'REMOVE_DEPS_ANSWER',
'SKIP_UNST',
'DEL_DEPS', 'DEL_DEPS',
'USE_COLORS' 'USE_COLORS'
] ]

View file

@ -134,22 +134,22 @@ def main():
usage() usage()
elif len(args) == 3 and args[0] == "-s": elif len(args) == 3 and args[0] == "-s":
pkg = Case(args[2]) pkg = Case(args[2])
install = {
'sbo': pkg.sbo_install,
'slack': pkg.slack_install,
'rlw': pkg.rlw_install,
'alien': pkg.alien_install,
'slacky': pkg.slacky_install,
'studio': pkg.studioware_install
}
if args[1] in repositories: if args[1] in repositories:
install = {
'sbo': pkg.sbo_install,
'slack': pkg.slack_install,
'rlw': pkg.rlw_install,
'alien': pkg.alien_install,
'slacky': pkg.slacky_install,
'studio': pkg.studioware_install
}
install[args[1]]() install[args[1]]()
else: else:
usage() usage()
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"): and args[1] != "slack"):
track_dep(args[2], args[1]) track_dep(args[2], args[1])
elif len(args) == 2 and args[0] == "-n": elif len(args) == 2 and args[0] == "-n" and "sbo" in repositories:
SBoNetwork(args[1]).view() SBoNetwork(args[1]).view()
elif len(args) == 2 and args[0] == "-b" and args[1] == "--list": elif len(args) == 2 and args[0] == "-b" and args[1] == "--list":
blacklist.listed() blacklist.listed()

View file

@ -81,7 +81,7 @@ class BuildPackage(object):
if sbo_check_md5 == "on": if sbo_check_md5 == "on":
check_md5(sbo_md5, src) check_md5(sbo_md5, src)
shutil.copy2(src, self.prgnam) shutil.copy2(src, self.prgnam)
os.chdir(self.path + "/" + self.prgnam) os.chdir(self.path + self.prgnam)
# change permissions # change permissions
subprocess.call("chmod +x {0}.SlackBuild".format(self.prgnam), subprocess.call("chmod +x {0}.SlackBuild".format(self.prgnam),
shell=True) shell=True)

View file

@ -23,7 +23,8 @@
from slpkg.__metadata__ import ( from slpkg.__metadata__ import (
arch, arch,
lib_path lib_path,
skip_unst
) )
@ -43,7 +44,8 @@ class SBoGrep(object):
self.line_md5_64 = "SLACKBUILD MD5SUM_{0}: ".format(arch64) self.line_md5_64 = "SLACKBUILD MD5SUM_{0}: ".format(arch64)
self.line_des = "SLACKBUILD SHORT DESCRIPTION: " self.line_des = "SLACKBUILD SHORT DESCRIPTION: "
self.sbo_txt = lib_path + "sbo_repo/SLACKBUILDS.TXT" self.sbo_txt = lib_path + "sbo_repo/SLACKBUILDS.TXT"
self.answer = ['y', 'Y']
self.unst = ['UNSUPPORTED', 'UNTESTED']
# open an read SLACKBUILDS.TXT file # open an read SLACKBUILDS.TXT file
f = open(self.sbo_txt, "r") f = open(self.sbo_txt, "r")
self.SLACKBUILDS_TXT = f.read() self.SLACKBUILDS_TXT = f.read()
@ -53,20 +55,29 @@ class SBoGrep(object):
''' '''
Grab sources downloads links Grab sources downloads links
''' '''
if arch == "x86_64": source, source64, src, = "", "", ""
for line in self.SLACKBUILDS_TXT.splitlines():
if line.startswith(self.line_name):
sbo_name = line[17:].strip()
if line.startswith(self.line_down_64):
if sbo_name == self.name:
if line[28:].strip():
return line[28:].strip()
for line in self.SLACKBUILDS_TXT.splitlines(): for line in self.SLACKBUILDS_TXT.splitlines():
if line.startswith(self.line_name): if line.startswith(self.line_name):
sbo_name = line[17:].strip() sbo_name = line[17:].strip()
if line.startswith(self.line_down): if line.startswith(self.line_down):
if sbo_name == self.name: if sbo_name == self.name and line[21:].strip():
return line[21:].strip() source = line[21:]
if line.startswith(self.line_down_64):
if sbo_name == self.name and line[28:].strip():
source64 = line[28:]
if arch == "x86_64":
if source64:
src = source64
else:
src = source
if skip_unst in self.answer and source64 in self.unst:
src = source
else:
if source:
src = source
if skip_unst in self.answer and source in self.unst:
src = source64
return src
def requires(self): def requires(self):
''' '''
@ -94,20 +105,29 @@ class SBoGrep(object):
''' '''
Grab checksum string Grab checksum string
''' '''
if arch == "x86_64": md5sum, md5sum64, md5 = [], [], []
for line in self.SLACKBUILDS_TXT.splitlines():
if line.startswith(self.line_name):
sbo_name = line[17:].strip()
if line.startswith(self.line_md5_64):
if sbo_name == self.name:
if line[26:].strip():
return line[26:].strip().split()
for line in self.SLACKBUILDS_TXT.splitlines(): for line in self.SLACKBUILDS_TXT.splitlines():
if line.startswith(self.line_name): if line.startswith(self.line_name):
sbo_name = line[17:].strip() sbo_name = line[17:].strip()
if line.startswith(self.line_md5_64):
if sbo_name == self.name and line[26:].strip():
md5sum64 = line[26:].strip().split()
if line.startswith(self.line_md5): if line.startswith(self.line_md5):
if sbo_name == self.name: if sbo_name == self.name and line[19:].strip():
return line[19:].strip().split() md5sum = line[19:].strip().split()
if arch == "x86_64":
if md5sum64:
md5 = md5sum64
else:
md5 = md5sum
if skip_unst in self.answer:
md5 = md5sum
else:
if md5sum:
md5 = md5sum
if skip_unst in self.answer and not md5sum:
md5 = md5sum64
return md5
def description(self): def description(self):
''' '''

View file

@ -214,8 +214,7 @@ def pkg_colors_tag(name, sbo_versions, count_upg, count_ins):
''' '''
Tag with color green if package already installed, Tag with color green if package already installed,
color yellow for packages to upgrade and color red color yellow for packages to upgrade and color red
if not installed. Also if package arch is UNSUPPORTED if not installed.
tag with color red and if UNTESTED with color yellow.
''' '''
# check if 'sbo_versions' is list if true # check if 'sbo_versions' is list if true
# then get last package from list is master package # then get last package from list is master package
@ -238,12 +237,12 @@ def arch_colors_tag(support, package_arch):
''' '''
Arch color tag Arch color tag
''' '''
color = "" paint = ""
if support[0] in package_arch[-1]: if support[0] in package_arch[-1]:
color = color['RED'] paint = color['RED']
elif support[1] in package_arch[-1]: elif support[1] in package_arch[-1]:
color = color['YELLOW'] paint = color['YELLOW']
return color return paint
def top_view(): def top_view():