Skip to content
Commits on Source (7)
......@@ -80,3 +80,4 @@ a3a9e3768fc1ba3da91503b49325fee3 ./slpkg-2.9.7.tar.gz
96b1e1262a410e385f21e5413329ce18 ./slpkg-3.0.0.tar.gz
fab52c1b84e988cd5ec4b5ddbc95277c ./slpkg-3.0.1.tar.gz
4dd94caee2ef25501a5b70546ee0e3a4 ./slpkg-3.0.2.tar.gz
b88c991b2d29934f9f69104144a97e26 ./slpkg-3.0.3.tar.gz
3.0.3 - 1/12/2015
3.0.4 - 30/12/2015
Fixed:
- Cannot install chkrootkit #53
- Avoid reinstall binary packages if is already installed
- Reference message when remove one package
Updated:
- Slackware mirrors
3.0.3 - 01/12/2015
Fixed:
- Upgrading/Installing nouveau in slack repository #55
Updated:
......
......@@ -20,7 +20,7 @@
:target: https://github.com/dslackw/slpkg/issues
Slpkg v3.0.3
Slpkg v3.0.4
============
|
......@@ -82,8 +82,8 @@ Download latest release:
Required root privileges
$ tar xvf slpkg-3.0.3.tar.gz
$ cd slpkg-3.0.3
$ tar xvf slpkg-3.0.4.tar.gz
$ cd slpkg-3.0.4
$ ./install.sh
Installed as Slackware package
......@@ -114,9 +114,9 @@ Using pip:
Binary packages:
Slackware: `slpkg-3.0.3-i486-1_dsw.txz <https://github.com/dslackw/slpkg/releases/download/v3.0.3/slpkg-3.0.3-i486-1_dsw.txz>`_
Slackware: `slpkg-3.0.4-i486-1_dsw.txz <https://github.com/dslackw/slpkg/releases/download/v3.0.4/slpkg-3.0.4-i486-1_dsw.txz>`_
Slackware64: `slpkg-3.0.3-x86_64-1_dsw.txz <https://github.com/dslackw/slpkg/releases/download/v3.0.3/slpkg-3.0.3-x86_64-1_dsw.txz>`_
Slackware64: `slpkg-3.0.4-x86_64-1_dsw.txz <https://github.com/dslackw/slpkg/releases/download/v3.0.4/slpkg-3.0.4-x86_64-1_dsw.txz>`_
Optional dependencies
......
......@@ -31,11 +31,10 @@
# below. Be careful is the template that the rest.
#
#
# Last Updated: Thu Dec 3 01:47:01 UTC 2015
# Last Updated: Wed Dec 30 08:47:02 UTC 2015
#
# Available http mirrors:
#
# au http://ftp.swin.edu.au/slackware/
# au http://mirror.aarnet.edu.au/pub/slackware/
# au http://mirror.crucial.com.au/slackware/
# au http://mirror.internode.on.net/pub/slackware/
......@@ -58,7 +57,7 @@
# fr http://slackware.mirrors.ovh.net/ftp.slackware.com/
# gb http://lon.mirror.rackspace.com/slackware/
# gb http://mirror.bytemark.co.uk/slackware/
# gb http://slackware.org.uk/slackware/
# gb http://slackware.uk/slackware/
# gb http://www.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/
# gr http://ftp.cc.uoc.gr/mirrors/linux/slackware/
# hk http://hkg.mirror.rackspace.com/slackware/
......@@ -122,7 +121,6 @@
#
# Available ftp mirrors:
#
# au ftp://ftp.swin.edu.au/slackware/
# au ftp://mirror.aarnet.edu.au/pub/slackware/
# au ftp://mirror.internode.on.net/pub/slackware/
# au ftp://syd.mirror.rackspace.com/slackware/
......@@ -138,9 +136,9 @@
# ec ftp://mirror.cedia.org.ec/slackware/
# fr ftp://slackware.mirrors.ovh.net/ftp.slackware.com/
# gb ftp://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/
# gb ftp://ftp.slackware.org.uk/slackware
# gb ftp://lon.mirror.rackspace.com/slackware/
# gb ftp://mirror.bytemark.co.uk/slackware/
# gb ftp://slackware.uk/slackware/
# gr ftp://ftp.cc.uoc.gr/mirrors/linux/slackware/
# hk ftp://hkg.mirror.rackspace.com/slackware/
# hr ftp://mirror.slackware.hr/slackware/
......
......@@ -77,7 +77,7 @@ class MetaData(object):
__all__ = "slpkg"
__author__ = "dslackw"
__version_info__ = (3, 0, 3)
__version_info__ = (3, 0, 4)
__version__ = "{0}.{1}.{2}".format(*__version_info__)
__license__ = "GNU General Public License v3 (GPLv3)"
__email__ = "d.zlatanidis@gmail.com"
......
......@@ -75,13 +75,13 @@ class BinaryInstall(object):
self.data = repo_data(self.PACKAGES_TXT, self.repo, self.flag)
self.blacklist = BlackList().packages(self.data[0], self.repo)
def start(self, if_upgrade):
def start(self, is_upgrade):
"""
Install packages from official Slackware distribution
"""
self.case_insensitive()
# fix if packages is for upgrade
self.if_upgrade = if_upgrade
self.is_upgrade = is_upgrade
mas_sum = dep_sum = sums = [0, 0, 0]
self.msg.done()
self.dependencies = self.resolving_deps()
......@@ -98,7 +98,7 @@ class BinaryInstall(object):
print("\nThe following packages will be automatically "
"installed or upgraded \nwith new version:\n")
self.top_view()
self.msg.upg_inst(self.if_upgrade)
self.msg.upg_inst(self.is_upgrade)
mas_sum = self.views(self.install, self.comp_sum)
if self.dependencies:
print("Installing for dependencies:")
......@@ -124,10 +124,17 @@ class BinaryInstall(object):
"space will be used.{2}".format(size[1], unit[1],
self.meta.color["ENDC"]))
print("")
self.if_all_installed()
if self.msg.answer() in ["y", "Y"]:
self.install.reverse()
Download(self.tmp_path, self.dep_dwn + self.dwn,
self.repo).start()
for inst, dwn in zip(self.dep_install + self.install,
self.dep_dwn + self.dwn):
if (not os.path.isfile(self.meta.pkg_path + inst[:-4]) or
"--download-only" in self.flag):
Download(self.tmp_path, dwn.split(), self.repo).start()
else:
self.msg.template(78)
self.msg.pkg_found(inst)
self.msg.template(78)
if "--download-only" in self.flag:
raise SystemExit()
self.dep_install = Utils().check_downloaded(
......@@ -137,9 +144,20 @@ class BinaryInstall(object):
ins, upg = self.install_packages()
self.msg.reference(ins, upg)
write_deps(self.deps_dict)
delete_package(self.tmp_path, self.install)
delete_package(self.tmp_path, self.dep_install + self.install)
else:
self.msg.not_found(self.if_upgrade)
self.msg.not_found(self.is_upgrade)
def if_all_installed(self):
"""Check if all packages is already installed
"""
count_inst = 0
for inst in (self.dep_install + self.install):
if (os.path.isfile(self.meta.pkg_path + inst[:-4]) and
"--download-only" not in self.flag):
count_inst += 1
if count_inst == len(self.dep_install + self.install):
raise SystemExit()
def case_insensitive(self):
"""Matching packages distinguish between uppercase and
......@@ -183,12 +201,7 @@ class BinaryInstall(object):
pkg_ver = "{0}-{1}".format(split_package(inst)[0],
split_package(inst)[1])
self.checksums(inst)
if os.path.isfile(self.meta.pkg_path + inst[:-4]):
print("[ {0}reinstalling{1} ] --> {2}".format(
self.meta.color["GREEN"], self.meta.color["ENDC"], inst))
installs.append(pkg_ver)
PackageManager(package).upgrade("--reinstall")
elif GetFromInstalled(split_package(inst)[0]).name():
if GetFromInstalled(split_package(inst)[0]).name():
print("[ {0}upgrading{1} ] --> {2}".format(
self.meta.color["YELLOW"], self.meta.color["ENDC"], inst))
upgraded.append(pkg_ver)
......
......@@ -60,6 +60,8 @@ class Initialization(object):
os.mkdir(self.tmp_path)
if not os.path.exists(self.build_path):
os.makedirs(self.build_path)
if not os.path.exists(self.build_path + "_SOURCES/"):
os.makedirs(self.build_path + "_SOURCES/")
if not os.path.exists(self.slpkg_tmp_packages):
os.makedirs(self.slpkg_tmp_packages)
if not os.path.exists(self.slpkg_tmp_patches):
......
......@@ -280,15 +280,15 @@ class ArgParse(object):
self.args[1] in self.meta.repositories):
if self.args[1] not in ["slack", "sbo"]:
BinaryInstall(pkg_upgrade(self.args[1], skip, flag),
self.args[1], flag).start(if_upgrade=True)
self.args[1], flag).start(is_upgrade=True)
elif self.args[1] == "slack":
if self.meta.only_installed in ["on", "ON"]:
BinaryInstall(pkg_upgrade("slack", skip, flag),
"slack", flag).start(if_upgrade=True)
"slack", flag).start(is_upgrade=True)
else:
Patches(skip, flag).start()
elif self.args[1] == "sbo":
SBoInstall(sbo_upgrade(skip, flag), flag).start(if_upgrade=True)
SBoInstall(sbo_upgrade(skip, flag), flag).start(is_upgrade=True)
else:
usage(self.args[1])
elif len(self.args) == 2 and self.args[0] in options:
......@@ -340,10 +340,10 @@ class ArgParse(object):
if (self.args[1] in self.meta.repositories and
self.args[1] not in ["sbo"]):
BinaryInstall(self.args[2:], self.args[1], flag).start(
if_upgrade=False)
is_upgrade=False)
elif (self.args[1] == "sbo" and
self.args[1] in self.meta.repositories):
SBoInstall(self.args[2:], flag).start(if_upgrade=False)
SBoInstall(self.args[2:], flag).start(is_upgrade=False)
else:
usage(self.args[1])
else:
......
......@@ -75,11 +75,13 @@ class BuildPackage(object):
self._makeflags()
self._delete_sbo_tar_gz()
self._create_md5_dict()
if not self.auto:
os.chdir(self.path + "_SOURCES/")
for src in self.sources:
# fix build sources with spaces
src = src.replace("%20", " ")
check_md5(self.sbo_md5[src], src)
shutil.copy2(src, self.prgnam)
shutil.copy2(src, self.path + self.prgnam)
os.chdir(self.path + self.prgnam)
# change permissions
subprocess.call("chmod +x {0}.SlackBuild".format(self.prgnam),
......
......@@ -357,7 +357,10 @@ class PackageManager(object):
"""
print("")
self.msg.template(78)
print("| Total {0} packages removed".format(len(removes)))
msg_pkg = "package"
if len(removes) > 1:
msg_pkg = "packages"
print("| Total {0} {1} removed".format(len(removes), msg_pkg))
self.msg.template(78)
for pkg in removes:
if not GetFromInstalled(pkg).name():
......
......@@ -367,8 +367,13 @@ class SBoNetwork(object):
sources = []
if not os.path.exists(self.meta.build_path):
os.makedirs(self.meta.build_path)
if not os.path.exists(self.meta.build_path + "_SOURCES/"):
os.makedirs(self.meta.build_path + "_SOURCES/")
os.chdir(self.meta.build_path)
Download(self.meta.build_path, self.dwn_srcs, repo="sbo").start()
Download(self.meta.build_path, self.sbo_dwn.split(),
repo="sbo").start()
Download(self.meta.build_path + "_SOURCES/", self.source_dwn,
repo="sbo").start()
script = self.sbo_dwn.split("/")[-1]
for src in self.source_dwn:
sources.append(src.split("/")[-1])
......
......@@ -133,6 +133,8 @@ class QueuePkgs(object):
for pkg in packages:
if not os.path.exists(self.meta.build_path):
os.mkdir(self.meta.build_path)
if not os.path.exists(self.meta.build_path + "_SOURCES/"):
os.mkdir(self.meta.build_path + "_SOURCES/")
sbo_url = sbo_search_pkg(pkg)
sbo_dwn = SBoLink(sbo_url).tar_gz()
source_dwn = SBoGrep(pkg).source().split()
......@@ -142,7 +144,7 @@ class QueuePkgs(object):
Download(self.meta.build_path, sbo_dwn.split(),
repo="sbo").start()
for src in source_dwn:
Download(self.meta.build_path, src.split(),
Download(self.meta.build_path + "_SOURCES/", src.split(),
repo="sbo").start()
sources.append(src.split("/")[-1])
BuildPackage(script, sources, self.meta.build_path,
......
......@@ -77,11 +77,11 @@ class SBoInstall(object):
self.data = SBoGrep(name="").names()
self.blacklist = BlackList().packages(pkgs=self.data, repo="sbo")
def start(self, if_upgrade):
def start(self, is_upgrade):
"""Start view, build and install SBo packages
"""
tagc = ""
self.if_upgrade = if_upgrade
self.is_upgrade = is_upgrade
self.case_insensitive()
for _sbo in self.slackbuilds:
status(0.03)
......@@ -115,7 +115,7 @@ class SBoInstall(object):
print("\nThe following packages will be automatically "
"installed or upgraded \nwith new version:\n")
self.top_view()
self.msg.upg_inst(self.if_upgrade)
self.msg.upg_inst(self.is_upgrade)
# view master packages
for sbo, arch in zip(self.master_packages, mas_src):
......@@ -147,7 +147,7 @@ class SBoInstall(object):
print("will be upgraded.{0}\n".format(self.meta.color["ENDC"]))
self.continue_to_install()
else:
self.msg.not_found(self.if_upgrade)
self.msg.not_found(self.is_upgrade)
def case_insensitive(self):
"""Matching packages distinguish between uppercase and
......@@ -304,6 +304,8 @@ class SBoInstall(object):
installs, upgraded, = [], []
if not os.path.exists(self.build_folder):
os.makedirs(self.build_folder)
if not os.path.exists(self.build_folder + "_SOURCES/"):
os.makedirs(self.build_folder + "_SOURCES/")
os.chdir(self.build_folder)
for prgnam in slackbuilds:
pkg = "-".join(prgnam.split("-")[:-1])
......@@ -323,8 +325,10 @@ class SBoInstall(object):
sbo_url = sbo_search_pkg(pkg)
sbo_link = SBoLink(sbo_url).tar_gz()
script = sbo_link.split("/")[-1]
dwn_srcs = sbo_link.split() + src_link
Download(self.build_folder, dwn_srcs, repo="sbo").start()
Download(self.build_folder, sbo_link.split(),
repo="sbo").start()
Download(self.build_folder + "_SOURCES/", src_link,
repo="sbo").start()
if "--download-only" in self.flag:
continue
sources = self.filenames(src_link)
......