SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
If slackpkg+ found a package with the same tag in two or more repositories (for example restricted and alienbob contains many duplicated but differents packages with the same name and same tag), it will honor $REPOPLUS order.
The only exception where is not preserved the tag is when in a slackware-stable the installed package is an official slackware package and exists a patch for that package.
In my point of view, these two exceptions show that using tags to achieve what you want is not a good idea. Some users will not understand why some packages are upgraded as expected, and others not.
If you want slackpkg upgrade-all handles the packages according to their respective repositories, you should register the dynamic orders specified by (each) slackpkg install|upgrade repository:package somewhere, and merge them in front of PKGS_PRIORITY at runtime :
2. If you don't want to use an external register, you can dynamically update slackpkgplus.conf, and more precisely PKGS_PRIORITY, each time slackpkg install|upgrade repository:package is used. This could be better, no extra file to manage, and users will have a better control on that.
--
SeB
Last edited by phenixia2003; 07-02-2015 at 04:58 AM.
As you can see in this thread, the OP has trouble to install the multilib with the script setupmultilib.sh bundled with slackpkg+ (in /usr/doc/slackpkg+<version>).
The problem is due to a bug at line #70 of this script, the multilib repository being defined as "multilib:" while it should simply be "multilib" :
Code:
sed -i -r -e '1,/^#PKGS_PRIORITY=.*$/s/^(#PKGS_PRIORITY=.*)$/\1\nPKGS_PRIORITY=( multilib: )\n/' $CONF/slackpkgplus.conf
This should not be a slackpkg+ bug but sounds as the recent bug fixed in slackpkg-2.28.0-14 in slackware-current.
Quote:
+--------------------------+
Sun Aug 9 19:42:38 UTC 2015
ap/slackpkg-2.82.0-noarch-14.tgz: Rebuilt.
Patched to avoid false package name matches when the full name of a
package is a substring of another package's name, as happened recently
with atk-2.16.0 and at-spi2-atk-2.16.0. Thanks to Eric Hameleers.
+--------------------------+
so I just add a note to suggest to install slackpkg from slackware current even to slackware 14.1 users.
slackpkg+ changelog
Quote:
Version 1.5.1 - 20/Nov/2015
Note for Slackware 14.1 users: slackware-current introduce important bug fix
in slackpkg 2.82.0-14 (see Slackware ChangeLog) not backported in slackware
14.1; it is not mandatory but you are encouraged to upgrade it by download it
manually; be sure to graylist slackpkg to avoid an automatic downgrade.
- The trailing slash in MIRRORPLUS[] is now optional (thanks to phenixia2003
and Didier Spaier)
- Added DOWNLOADCMD option to add a custom downloader
- Fixed a bug that causes that ALL repositories fail if ONE repository fails
(thanks to FR on Alien Pasture for reporting)
- Fixed TAG_PRIORITY to avoid impact in slackpkg install
This should not be a slackpkg+ bug but sounds as the recent bug fixed in slackpkg-2.28.0-14 in slackware-current.
This is a slackpkg+ bug, caused by the second grep statement at line #415. This (troublesome) statement has been added earlier to support version number in priority rules (ie. <repository-name>:<package-name>-<version>), which is, correct me if I'm wrong, useless, since a repository should not include more than one version of a package.
--- slackpkgplus.sh.orig 2015-11-21 12:59:57.349236501 +0100
+++ slackpkgplus.sh 2015-11-21 13:01:12.379239849 +0100
@@ -408,13 +408,11 @@
# ARGUMENT is always a basename. But PAT can be:
# 1. a regular expression (ie .*)
# 2. a basename (openjdk)
- # 3. a partial (or complete) package name (vlc-2.0.6, ).
#
- # The current "enhanced priority rule" is applied :
- # + In case (1) and (2) when ARGUMENT contains the pattern PAT
- # + In the case (3) when ARGUMENT starts the pattern PAT.
+ # The current "enhanced priority rule" is applied in case (1)
+ # and (2) when ARGUMENT contains the pattern PAT
#
- if echo "$ARGUMENT" | grep -q "$PAT" || echo "$PAT" | grep "^$ARGUMENT" ; then
+ if echo "$ARGUMENT" | grep -q "$PAT" ; then
PKGDATA=""
PKGINFOS=$(grep -n -m 1 "^${DIR} ${ARGUMENT} " ${TMPDIR}/pkglist)
I upgraded to slackpkg+ 1.5.1 yesterday from 1.5.0.
I'm using KDE 4.14.6 from alienBOB ktown repository except for package phonon-gstreamer. So when I run "slackpkg upgrade-all", I usually saw this package as a candidate for upgrade. With slackpkg+ 1.5.1, "slackpkg upgrade-all" shows me nothing to upgrade but "slackpkg upgrade phonon-gstreamer" works.
Any idea what went wrong?
Code:
$slackpkg search phonon-gstreamer
DONE
The list below shows all packages with name matching "phonon-gstreamer".
[ Status ] [ Repository ] [ Package ]
installed phonon-gstreamer-4.6.3-x86_64-1
upgrade ktown phonon-gstreamer-4.6.3-x86_64-1 --> phonon-gstreamer-4.8.0-x86_64-1alien
Code:
$slackpkg upgrade-all
Checking local integrity... DONE
Looking for packages to upgrade. Please wait... DONE
No packages match the pattern for upgrade. Try:
/usr/sbin/slackpkg install|reinstall
Here's my /etc/slackpkg/slackpkgplus.conf:
Code:
# Configuration for slackpkg+. See /usr/doc/slackpkg+-*/README for more details
# Enable (on) / Disable (off) slackpkg+
SLACKPKGPLUS=on
# set to '0' to never show the download progress bar
# set to '1' to show the bar only in download packages (default)
# set to '2' to always show the download bar
# set to '3' for a debug mode
VERBOSE=1
# By default slackpkg+ deny to install 32bit packages.
#
# Set this flag to 'on' allow slackpkg+ to install 32bit packages on a 64bit slackware
# installation (possibly unsafe). Please, do not install both 32 and 64bit of the same
# package to avoid problems, and NEVER upgrade existant 64bit packages with relative 32bit package.
# Do not forget to install the multilibs.
ALLOW32BIT=off
# Enable (1) / Disable (0) the official slackpkg blacklist. May be useful to temporarily skip
# the slackware blacklist. You can also override it from command line:
# 'USEBL=0 slackpkg upgrade-all'
USEBL=1
# Add custom option to 'wget'.
# You can solve the repository indisponibility issue by set a timeout here
WGETOPTS="--timeout=20 --tries=2"
# If you want replace wget with another downloader search DOWNLOADCMD in documentation
# at /usr/doc/slackpkg+-*/README
#DOWNLOADCMD="wget -O"
# Enable (on) / Disable (off) notification events (see notifymsg.conf)
#ENABLENOTIFY=off
# Enable (on) / Disable (off) the greylist feature. See /etc/slackpkg/greylist
GREYLIST=on
# If two or more repositories contains some same packages, you can specify
# from which repository you prefer to search it.
# The syntax is "<repository_name>:<package_name>"
# Accepts regular expressions. To give priority to an entire repository use "<repository_name>"
# Examples:
#PKGS_PRIORITY=( restricted:vlc )
# OR
#PKGS_PRIORITY=( myrepo )
#
# if you have two reporitories to give priority you must set both in the same line
#PKGS_PRIORITY=( myrepo restricted:vlc )
#
# if you want to install 'ktown' repository you must set it here
#PKGS_PRIORITY=( ktown )
# and DO NOT MISS to read special instruction on /usr/doc/slackpkg+-*/repositories.txt
#
# If you want a multilib system, uncomment the multilib repository and set:
#PKGS_PRIORITY=( multilib )
#
# (Use /usr/doc/slackpkg+-*/setupmultilib.sh to setup a multilib configuration)
#
# For both multilib and ktown set
PKGS_PRIORITY=( patches:.* slackpkgplus:.* alienbob:flashplayer-plugin alienbob:libreoffice ktown:.* mled:.* )
# Otherwise you can try to upgrade a package from a repository that contains a package with the
# same tag of the already installed package. Tipically that means to upgrade a package from the
# same author of the already installed package.
# Note that this method may not works properly where two repositories contains a package with the
# same tag.
# Set TAG_PRIORITY to 'on' to enable this function
TAG_PRIORITY=off
# List repositories you want to use (defined below)
# remember to launch 'slackpkg update' if you modify that row.
REPOPLUS=( slackpkgplus ktown mled extras alienbob )
# Define mirrors (uncomment one or more mirror; remember to add it to REPOPLUS)
# GPG Note: after adding a repository, you must to run 'slackpkg update gpg'
# some repositories as salixos or slackel, have a partial GPG support;
# for that repositories you may need to run slackpkg with 'slackpkg -checkgpg=off ...'
# Slackware 14.1 - x86_64
#MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/14.1/
MIRRORPLUS['ktown']=http://taper.alienbase.nl/mirrors/alien-kde/14.1/latest/x86_64/
MIRRORPLUS['mled']=http://www.microlinux.fr/microlinux/desktop-14.1-64bit/
MIRRORPLUS['extras']=http://www.microlinux.fr/microlinux/extras-14.1-64bit/
MIRRORPLUS['alienbob']=http://taper.alienbase.nl/mirrors/people/alien/sbrepos/14.1/x86_64/
# use this to keep the slackpkg+ package updated
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
# Slackware current - x86_64
#MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/current/
# Local repository:
#MIRRORPLUS['alienbob']=file://repositories/alien/sbrepos/14.1/x86/
#
# Local packages (you do not need metadata nor 'slackpkg update' command):
#MIRRORPLUS['myrepo']=dir://repositories/mypackages/
@phenixia2003:
Really a reporitory CAN contains two versions of the same package (see extra:aspell-uk) but currently the version find does not work, and yes it has no sense.
But I'm not able to reproduce the reported error.
So yes, I can remove the second grep, but before I want to try to reproduce the error.
@phenixia2003:
Really a reporitory CAN contains two versions of the same package (see extra:aspell-uk) but currently the version find does not work, and yes it has no sense.
But I'm not able to reproduce the reported error.
So yes, I can remove the second grep, but before I want to try to reproduce the error.
@gegechris99: I will verify
You don't really need to reproduce the error.
At line #415, you have the faulty statement :
Code:
if echo "$ARGUMENT | grep -q "$PAT" || echo "$PAT" | grep "^$ARGUMENT" ; then
ARGUMENT is the basename of package passed to givepriority() and PAT is the pattern of the current priority.
So, when PRIORITY includes the rule multilib:glibc-solibs, and the basename glibc is passed to givepriority(), at a certain point you'll have this :
Code:
ARGUMENT=glibc
PAT=glibc-solibs
With this configuration, the faulty statement is evaluated as below :
To reproduce the error "for real", here is how to proceed :
On a slackware64/multilib:
To reproduce the issue on a up to date multilib installation, it is easier to substitute the rule slackware64:glibc-solibs :
1. add slackware64:glibc-solibs to PKGS_PRIORITY
2. slackpkg upgrade-all prints glibc and glibc-solibs packages from the "repository" slackware64 :
Code:
slackpkg -dialog=off upgrade-all
Checking local integrity... DONE
Looking for packages to upgrade. Please wait... glibc-solibs
DONE
glibc-2.17-x86_64-7.txz
glibc-solibs-2.17-x86_64-7.txz
Total package(s): 2
Do you wish to upgrade selected packages (Y/n)?
On a slackware64/pure:
1. Activate the multilib repository
2. add multilib:glibc-solibs to PKGS_PRIORITY
3. slackpkg update
4. slackpkg upgrade-all prints glibc and glibc-solibs packages from the repository multilib.
I upgraded to slackpkg+ 1.5.1 yesterday from 1.5.0.
I'm using KDE 4.14.6 from alienBOB ktown repository except for package phonon-gstreamer. So when I run "slackpkg upgrade-all", I usually saw this package as a candidate for upgrade. With slackpkg+ 1.5.1, "slackpkg upgrade-all" shows me nothing to upgrade but "slackpkg upgrade phonon-gstreamer" works.
Any idea what went wrong?
No way to reproduce it. Can you post (or attach) :
1. the content of /var/lib/slackpkg/pkglist
2. the output of command :
You don't really need to reproduce the error.
...
...
thankyou for analisys. I will patch it in a short.
About @gegechris99 problem:
there was a casting problem in how to we manage the REPOPLUS variable.
It is used as an array from start
REPOPLUS=( .... )
and used sometime as a string and sometime as an array.
In 1.5.1 version I fixed that but I forgot the row 614 that is the mainly.
This broke the repositories order (and some repository duplication).
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.