Slackware This 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.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
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.
|
 |
|
10-10-2016, 12:00 PM
|
#631
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
Quote:
Originally Posted by nk_
Hi, zerouno and phenixia2003
can you help me, I don't know why packages not found with this actions:
Code:
...
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled alien vlc-2.2.4-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
Code:
# slackpkg install vlc-2.2.4
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alien vlc-2.2.4-x86_64-1alien
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
You can search specific files using "slackpkg file-search file".
# ls /var/log/packages/ | grep vlc
vlc-2.2.4-x86_64-1alien
Where are in search vlc package from alien repository (vlc-2.2.4-x86_64-1alien)?
Code:
# removepkg vlc
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled alien vlc-2.2.4-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
|
In the given case, search does not work as expected because vlc from repositories alienbob and restricted have the exact same name, therefore, the search function of slackpkg+ can't distinguish them and ignore the second: From restricted in your case, but that would be the one from alienbob if you give precedence to restricted repository :
Code:
$ grep "^PKGS_PRIORITY" /etc/slackpkg/slackpkgplus.conf
PKGS_PRIORITY=( alienbob restricted )
$ slackpkg search vlc
Looking for vlc in package list. Please wait...DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alienbob npapi-vlc-20160706-x86_64-1alien
uninstalled alienbob vlc-2.2.4-x86_64-1alien
uninstalled(masked) restricted vlc-2.2.4-x86_64-1alien
$ slackpkg install vlc
...
$ slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alienbob npapi-vlc-20160706-x86_64-1alien
installed alienbob vlc-2.2.4-x86_64-1alien
$ slackpkg remove vlc
$ grep "^PKGS_PRIORITY" /etc/slackpkg/slackpkgplus.conf
PKGS_PRIORITY=( restricted alienbob )
$ slackpkg install vlc
...
$ slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed restricted npapi-vlc-20160706-x86_64-1alien
installed restricted vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
The only way to solve this would be that restricted and alienbob don't share, at least, the same build numbers (ex: packages from alienbob with an even number, and the packages from restricted with odd number)
--
SeB
Last edited by phenixia2003; 10-10-2016 at 12:14 PM.
|
|
|
10-11-2016, 04:05 AM
|
#632
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
Quote:
Originally Posted by nk_
Hi, zerouno and phenixia2003
can you help me, I don't know why packages not found with this actions:
[code]# slackpkg install vlc-2.2.4
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alien vlc-2.2.4-x86_64-1alien
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
You can search specific files using "slackpkg file-search file".
|
Even if it would be better that all repositories use, at least, different build ID, I've implemented the patch slackpkg+-search-duplicate-packages-fix.patch.txt to fix this issue :
Code:
--- slackpkgplus.sh.org 2016-10-11 09:40:12.650732937 +0200
+++ slackpkgplus.sh 2016-10-11 09:40:12.650732937 +0200
@@ -1018,8 +1018,16 @@
# the following format:
# repo:<repository_name>:bname:<package_basename>:ver:<package_version>:fname:<package_fullname>:
#
+ # HDLPKGS:
+ # temporary file used to store data about packages already handled when CMD=search
+ # to support case where different repositories offer the same package (ie. same basename,
+ # version, and build) and one of them is installed.
+ #
+ # format : <repository_name> <package_fullname>
+ #
PKGLIST=$(tempfile --directory=$TMPDIR)
PKGINFOS=$(tempfile --directory=$TMPDIR)
+ HDLPKGS=$(tempfile --directory=$TMPDIR)
for i in ${PRIORITY[@]}; do
DIR="$i"
@@ -1065,10 +1073,15 @@
# if the current package P is installed, this means the previous P' will be
# proposed as an upgrade to P. In this case, the loop must continue without
- # any other action...
- grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist && continue
+ # any other action unless when different repositories offers the same
+ # packages and P is not referenced in HDLPKGS file ...
+
+ grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist \
+ &&
+ grep ${GREPOPTS} -q "^${PKGDIR} ${PKGFULLNAME}$" $HDLPKGS && continue
- # The current package P is not installed. In this case P must be shown as
+ # The current package P is not installed, or P is in different repositories. In
+ # this case P must be shown as
# being uninstalled and masked.
LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
else
@@ -1076,15 +1089,18 @@
fi
echo "repo:${PKGDIR}:bname:${PKGBASENAME}:ver:${PKGVER}:fname:${PKGFULLNAME}:" >> $PKGLIST
+ echo "${PKGDIR} ${PKGFULLNAME}" >> $HDLPKGS
done < $PKGINFOS
done
+
rm ${TMPDIR}/waiting
rm -f $PKGLIST $PKGINFOS
LIST=$(echo -e $LIST | tr \ "\n" | uniq )
echo -e "DONE\n"
+
} # END function searchPackages()
#### ===== PRIORITY AND SEARCH FUNCTIONS ===== #####
The patch in action :
Code:
$ slackpkg search vlc
Looking for vlc in package list. Please wait...DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alienbob npapi-vlc-20160706-x86_64-1alien
installed alienbob vlc-2.2.4-x86_64-1alien
uninstalled(masked) restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) restricted vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
Important :
Even if the patch solve the issue, keep in mind that information returned by slackpkg search <pattern> when different repositories offer the same package (ie. with exact name) depend on the defined priorities and thus, could be wrong. For instance, if you have PKGS_PRIORITY=(alienbob restricted), then you install vlc from alienbob, and later you set PKGS_PRIORITY=(restricted alienbob ), then, slackpkg search will show that vlc is from restricted instead of alienbob :
Code:
$ grep "^PKGS_PRIORITY" /etc/slackpkg/slackpkgplus.conf
PKGS_PRIORITY=( alienbob restricted )
$ slackpkg search vlc
Looking for vlc in package list. Please wait...DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alienbob npapi-vlc-20160706-x86_64-1alien
installed alienbob vlc-2.2.4-x86_64-1alien
uninstalled(masked) restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) restricted vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
# PKGS_PRIORITY has been changed ...
$ grep "^PKGS_PRIORITY" /etc/slackpkg/slackpkgplus.conf
PKGS_PRIORITY=( restricted alienbob )
$ slackpkg search vlc
Looking for vlc in package list. Please wait...DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed restricted npapi-vlc-20160706-x86_64-1alien
installed restricted vlc-2.2.4-x86_64-1alien
uninstalled(masked) alienbob npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alienbob vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
P.S: In case of any trouble with this patch, feel free to report it here.
--
SeB
Last edited by phenixia2003; 10-11-2016 at 04:06 AM.
|
|
1 members found this post helpful.
|
10-11-2016, 02:56 PM
|
#633
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
@Zerouno
I found an important bug in givepriority().
slackpkg+ does not work as expected (ie. the same way as slackpkg) when a serie (a,ap,d,e,f ...,y) is passed in argument.
For instance, on a slackware VM without any package from serie d,e,f,kde,kdei,t,tcl,x,xap,xfce, you get the results below :
Code:
-------------------------------------------------------------------
! Serie ! number of package returned by slackpkg install <serie> !
! ! slackpkg ! slackpkg+ !
!--------+-----------------------------+----------------------------!
! d ! 35 ! 4 !
! e ! 1 ! 1 !
! f ! 2 ! 1 !
! kde ! 247 ! 90 !
! kdei ! 82 ! 0 !
! t ! 4 ! 4 !
! tcl ! 6 ! 2 !
! x ! 297 ! 297 !
! xap ! 41 ! 0 !
! xfce ! 26 ! 17 !
-------------------------------------------------------------------
The patch slackpkg+-fix-for-givepriority-serie-bug.patch.txt fix this issue (but it needs to be tested more before applying it) :
Code:
--- slackpkgplus.sh.org 2016-10-11 09:40:12.650732937 +0200
+++ slackpkgplus.sh 2016-10-11 20:40:37.677404551 +0200
@@ -960,9 +960,13 @@
grep "^${REPOSITORY} " ${TMPDIR}/priority.filters | cut -f2 -d" " > ${TMPDIR}/filter.patterns
grep "^[.][*] " ${TMPDIR}/priority.filters | cut -f2 -d" " >> ${TMPDIR}/filter.patterns
- # If no filter patterns were found, or if the selected package does not
- # match any of the filter patterns, the selected package is rejected...
- if [ ! -s ${TMPDIR}/filter.patterns ] || ! echo "${PKGDATA[5]}.${PKGDATA[7]}" | grep -q -f ${TMPDIR}/filter.patterns ; then
+ # The selected package is rejected when (1) no filter patterns were found, or (2)
+ # none of the filter patterns matches the package's data
+ #
+ if [ ! -s ${TMPDIR}/filter.patterns ] \
+ || \
+ ! echo "${PKGDATA[*]}" | grep -q -f ${TMPDIR}/filter.patterns ; then
+
PKGDATA=""
LINEIDX=""
NAME=""
--
SeB
|
|
1 members found this post helpful.
|
10-11-2016, 03:05 PM
|
#634
|
Member
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 983
|
Thankyou.
I think that I can apply both patches this weekend.
|
|
|
10-12-2016, 06:33 PM
|
#635
|
LQ Newbie
Registered: Jan 2016
Distribution: Slackware
Posts: 11
Rep:
|
Quote:
Originally Posted by phenixia2003
Even if it would be better that all repositories use, at least, different build ID, I've implemented the patch Attachment 23213 to fix this issue
Important :
Even if the patch solve the issue, keep in mind that information returned by slackpkg search <pattern> when different repositories offer the same package (ie. with exact name) depend on the defined priorities and thus, could be wrong. For instance, if you have PKGS_PRIORITY=(alienbob restricted), then you install vlc from alienbob, and later you set PKGS_PRIORITY=(restricted alienbob ), then, slackpkg search will show that vlc is from restricted instead of alienbob
|
Thanks, works fine
Code:
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alien vlc-2.2.4-x86_64-1alien
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled ktown5 phonon-vlc-0.9.0-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted vlc-2.2.4-x86_64-1alien
uninstalled(masked) salix vlc-2.2.4-x86_64-1gv
You can search specific files using "slackpkg file-search file".
And yet one moment, about PKGS_PRIORITY=( repository:but_package_other)
slackpkgplus.conf
Code:
SLACKPKGPLUS=on
VERBOSE=1
ALLOW32BIT=off
USEBL=1
WGETOPTS="--timeout=20 --tries=2"
SEARCH_CLOG_INPARENT=on
CACHEUPDATE=off
GREYLIST=on
SENSITIVE_SEARCH=on
WW_FILE_SEARCH=on
SHOWORDER=package
DETAILED_INFO=none
STRICTGPG=on
TAG_PRIORITY=off
REPOPLUS=( slackpkgplus alien boost )
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
PKGS_PRIORITY=( boost:infozip )
Code:
# ls /var/log/packages/ | grep p7zip
p7zip-16.02-x86_64-1alien
with PKGS_PRIORITY=( boost:infozip ) in /etc/slackpkg/slackpkgplus.conf
Code:
# slackpkg update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) alien p7zip-16.02-x86_64-1alien
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
and without PKGS_PRIORITY=( boost:infozip ) , with PKGS_PRIORITY=( )
Code:
# slackpkg update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
installed alien p7zip-16.02-x86_64-1alien
uninstalled(masked) boost p7zip-16.02-x86_64-2sb
I'm about installed(masked) -> upgrade
Code:
p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
With Salix-repository, too
Code:
REPOPLUS=( slackpkgplus alien salix )
MIRRORPLUS['salix']=http://download.salixos.org/x86_64/14.2/
Try with salix:gslapt
Code:
# removepkg gslapt
ls: cannot access '/var/log/packages/gslapt*': No such file or directory
No such package: /var/log/packages/gslapt. Can't remove.
PKGS_PRIORITY=( ) :
Code:
# slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
installed alien p7zip-16.02-x86_64-1alien
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
PKGS_PRIORITY=( salix:gslapt ) :
Code:
# slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) alien p7zip-16.02-x86_64-1alien
upgrade salix p7zip-16.02-x86_64-1alien --> p7zip-15.14.1-x86_64-1gv
Can you fix it?
Thanks
Last edited by nk_; 10-12-2016 at 06:53 PM.
|
|
1 members found this post helpful.
|
10-13-2016, 05:10 AM
|
#636
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
Quote:
Originally Posted by nk_
Code:
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) alien p7zip-16.02-x86_64-1alien
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
and without PKGS_PRIORITY=( boost:infozip ) , with PKGS_PRIORITY=( )
Code:
# slackpkg update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
installed alien p7zip-16.02-x86_64-1alien
uninstalled(masked) boost p7zip-16.02-x86_64-2sb
|
Well, the previous patch is not as good as I thought => garbage !
Try with the new patch slackpkg+-search-duplicate-packages-fix-V2.patch.txt :
Code:
--- slackpkgplus.sh.org 2016-10-13 10:52:49.214902588 +0200
+++ slackpkgplus.sh 2016-10-13 10:54:26.539896471 +0200
@@ -1014,12 +1014,19 @@
[ "$SENSITIVE_SEARCH" = "off" ] && GREPOPTS="--ignore-case"
# -- PKGLIST:
- # temporary file used to store data about packages. It uses
+ # temporary file used to store data about handled packages. It uses
# the following format:
# repo:<repository_name>:bname:<package_basename>:ver:<package_version>:fname:<package_fullname>:
#
+ # DUPTRACK:
+ # used to store the fullname of all packages that match the search pattern. This is
+ # to support case where different repositories offer same packages (ie. same name,
+ # version, arch and build) and one of them is installed.
+ #
PKGLIST=$(tempfile --directory=$TMPDIR)
PKGINFOS=$(tempfile --directory=$TMPDIR)
+ DUPTRACK=$(tempfile --directory=$TMPDIR)
+
for i in ${PRIORITY[@]}; do
DIR="$i"
@@ -1055,21 +1062,36 @@
while read PKGDIR PKGBASENAME PKGVER PKGARCH PKGBUILD PKGFULLNAME PKGPATH PKGEXT ; do
+ # add current package fullname to be able to identify cases where different repositories
+ # offer same packages (ie. same name, version, arch, and build...
+ #
+ echo "${PKGFULLNAME}" >> $DUPTRACK
+
+
# does nothing when the package has been handled ...
grep ${GREPOPTS} -q "^repo:${PKGDIR}:bname:${PKGBASENAME}:ver:${PKGVER}:fname:${PKGFULLNAME}:" $PKGLIST && continue
+
# When a package P' with the same basename has been handled before the current package, this means
# the package P' has precedence over P.
if grep ${GREPOPTS} -q ":bname:${PKGBASENAME}:" $PKGLIST ; then
- # if the current package P is installed, this means the previous P' will be
- # proposed as an upgrade to P. In this case, the loop must continue without
- # any other action...
- grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist && continue
-
- # The current package P is not installed. In this case P must be shown as
- # being uninstalled and masked.
+ # if the current package P is installed, and there's only one occurence of
+ # its fullname in DUPTRACK, P' will be proposed as an upgrade to P and the
+ # loop must continue without any other action. Otherwise, P must be shown
+ # as being uninstalled and masked.
+ #
+ if grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist ; then
+ COUNT=$(grep "$PKGFULLNAME" $DUPTRACK | wc -l)
+
+ [ $COUNT -eq 1 ] && continue
+ fi
+
+ # The current package P is not installed or different repositories offer the
+ # same package (ie. same name, version, arch, and build). In these cases P must
+ # be shown as being uninstalled and masked.
+ #
LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
else
LIST="$LIST ${PKGDIR}:${PKGFULLNAME}"
Here it (seems to) work(s) well :
Code:
$ grep -E "^(REPOPLUS|PKGS_PRIORITY)" /etc/slackpkg/slackpkgplus.conf
REPOPLUS=( slackpkgplus restricted alien boost )
PKGS_PRIORITY=( boost:infozip )
$ slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
You can search specific files using "slackpkg file-search file".
$ ls /var/log/packages/vlc*
/var/log/packages/vlc-2.2.4-x86_64-1alien
$ slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed restricted vlc-2.2.4-x86_64-1alien
uninstalled restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien vlc-2.2.4-x86_64-1alien
You can search specific files using "slackpkg file-search file".
... but it seems you're used to find unexpected behaviors
--
SeB
|
|
|
10-13-2016, 10:08 AM
|
#637
|
LQ Newbie
Registered: Jan 2016
Distribution: Slackware
Posts: 11
Rep:
|
Quote:
Originally Posted by phenixia2003
|
Ok
Code:
# slackpkg reinstall slackpkg+
# ls /var/log/packages/ | grep slackpkg+
slackpkg+-1.7.0-noarch-4mt
# cd /usr/libexec/slackpkg/functions.d/
# patch < /tmp/slackpkg+-search-duplicate-packages-fix-V2.patch.txt
patching file slackpkgplus.sh
Code:
REPOPLUS=( slackpkgplus alien alien_restricted boost )
PKGS_PRIORITY=( boost:infozip )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['alien_restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
Code:
# printf 'y' | slackpkg -checkgpg=off update
Code:
# ls /var/log/packages/vlc*
/var/log/packages/vlc-2.2.4-x86_64-1alien
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alien vlc-2.2.4-x86_64-1alien
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted vlc-2.2.4-x86_64-1alien
Code:
# ls /var/log/packages/p7zip*
/var/log/packages/p7zip-16.02-x86_64-1alien
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
and try with salix
Code:
REPOPLUS=( slackpkgplus alien alien_restricted boost salix )
PKGS_PRIORITY=( )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['alien_restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/
PKGS_PRIORITY+=( boost:infozip )
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
PKGS_PRIORITY+=( salix:gslapt )
MIRRORPLUS['salix']=http://download.salixos.org/x86_64/14.2/
Code:
# printf 'y' | slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
- founded, works! (installed package hide in search)
And this is not 100%, next:
Code:
# removepkg vlc
# slackpkg install alien_restricted:vlc-2.2
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alien vlc-2.2.4-x86_64-1alien
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted vlc-2.2.4-x86_64-1alien
Sorry, but don't work idea, because
" vlc-2.2.4-x86_64-1alien / alien_restricted " != " vlc-2.2.4-x86_64-1alien / alien "
Last edited by nk_; 10-13-2016 at 10:19 AM.
|
|
|
10-13-2016, 10:46 AM
|
#638
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
Quote:
Originally Posted by nk_
Code:
# ls /var/log/packages/p7zip*
/var/log/packages/p7zip-16.02-x86_64-1alien
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
and try with salix
Code:
REPOPLUS=( slackpkgplus alien alien_restricted boost salix )
PKGS_PRIORITY=( )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['alien_restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/
PKGS_PRIORITY+=( boost:infozip )
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
PKGS_PRIORITY+=( salix:gslapt )
MIRRORPLUS['salix']=http://download.salixos.org/x86_64/14.2/
Code:
# printf 'y' | slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
- founded, works! (installed package hide in search)
And this is not 100%,
|
I really don't understand what you mean ...
Quote:
Originally Posted by nk_
next:
Code:
# removepkg vlc
# slackpkg install alien_restricted:vlc-2.2
# slackpkg search vlc
Looking for vlc in package list. Please wait... DONE
The list below shows all packages with name matching "vlc".
[ Status ] [ Repository ] [ Package ]
installed alien vlc-2.2.4-x86_64-1alien
uninstalled alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien_restricted vlc-2.2.4-x86_64-1alien
Sorry, but don't work idea, because
" vlc-2.2.4-x86_64-1alien / alien_restricted " != " vlc-2.2.4-x86_64-1alien / alien "
|
As long as the repositories alienbob and restricted will use the same build tag (ie [[:digit:]]+alien), you'll see that kind of misleading results with some packages because slackpkg+ has no way to differentiate these packages. I already pointed out this :
Quote:
Originally Posted by phenixia2003
Important :
Even if the patch solve the issue, keep in mind that information returned by slackpkg search <pattern> when different repositories offer the same package (ie. with exact name) depend on the defined priorities and thus, could be wrong. For instance, if you have PKGS_PRIORITY=(alienbob restricted), then you install vlc from alienbob, and later you set PKGS_PRIORITY=(restricted alienbob ), then, slackpkg search will show that vlc is from restricted instead of alienbob
|
Quote:
Originally Posted by phenixia2003
The only way to solve this would be that restricted and alienbob don't share, at least, the same build numbers (ex: packages from alienbob with an even number, and the packages from restricted with odd number)
|
--
SeB
Last edited by phenixia2003; 10-13-2016 at 11:04 AM.
|
|
|
10-13-2016, 12:57 PM
|
#639
|
LQ Newbie
Registered: Jan 2016
Distribution: Slackware
Posts: 11
Rep:
|
Quote:
As long as the repositories alienbob and restricted will use the same build tag (ie [[:digit:]]+alien), you'll see that kind of misleading results with some packages because slackpkg+ has no way to differentiate these packages. I already pointed out this :
|
Oh, sorry, all right
Quote:
I really don't understand what you mean ...
|
About this, tried again:
Code:
# ls /var/log/packages/p7zip*
/var/log/packages/p7zip-16.02-x86_64-1alien
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
why installed package hide with PKGS_PRIORITY=( some_repo:some_package ), maybe show it?
Last edited by nk_; 10-13-2016 at 01:02 PM.
|
|
1 members found this post helpful.
|
10-13-2016, 03:04 PM
|
#640
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
First of all, there's a bug in the patch I sent... Well, we're the 13th :
Code:
$ ls /var/log/packages/p7zip*
/var/log/packages/p7zip-16.02-x86_64-1alien
$ grep ^PKGS_PRIORITY /etc/slackpkg/slackpkgplus.conf
PKGS_PRIORITY=( boost restricted alien salix )
$ slackpkg search p7zip
Looking for p7zip in package list. Please wait...DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) alien p7zip-16.02-x86_64-1alien
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
You can search specific files using "slackpkg file-search file".
Quote:
Originally Posted by nk_
About this, tried again:
Code:
# ls /var/log/packages/p7zip*
/var/log/packages/p7zip-16.02-x86_64-1alien
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
why installed package hide with PKGS_PRIORITY=( some_repo:some_package ), maybe show it?
|
If I understand well, you'd want something like that :
Code:
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
installled alien p7zip-16.02-x86_64-1alien
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
or, better, like that :
Code:
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost alien:p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
This new patch slackpkg+-search-duplicate-packages-fix-V3.patch.txt fixes (I hope) the issue found in previous version, and, indicates the source repository of each package for which there's an available update in another repository :
Code:
--- slackpkgplus.sh.org 2016-10-13 20:45:52.685750598 +0200
+++ slackpkgplus.sh 2016-10-13 21:03:48.327682995 +0200
@@ -1014,12 +1014,19 @@
[ "$SENSITIVE_SEARCH" = "off" ] && GREPOPTS="--ignore-case"
# -- PKGLIST:
- # temporary file used to store data about packages. It uses
+ # temporary file used to store data about handled packages. It uses
# the following format:
# repo:<repository_name>:bname:<package_basename>:ver:<package_version>:fname:<package_fullname>:
#
+ # DUPTRACK:
+ # used to store the fullname of all packages that match the search pattern. This is
+ # to support case where different repositories offer same packages (ie. same name,
+ # version, arch and build) and one of them is installed.
+ #
PKGLIST=$(tempfile --directory=$TMPDIR)
PKGINFOS=$(tempfile --directory=$TMPDIR)
+ DUPTRACK=$(tempfile --directory=$TMPDIR)
+
for i in ${PRIORITY[@]}; do
DIR="$i"
@@ -1055,6 +1062,12 @@
while read PKGDIR PKGBASENAME PKGVER PKGARCH PKGBUILD PKGFULLNAME PKGPATH PKGEXT ; do
+ # add current package fullname to be able to identify cases where different repositories
+ # offer same packages (ie. same name, version, arch, and build...
+ #
+ echo "${PKGFULLNAME}" >> $DUPTRACK
+
+
# does nothing when the package has been handled ...
grep ${GREPOPTS} -q "^repo:${PKGDIR}:bname:${PKGBASENAME}:ver:${PKGVER}:fname:${PKGFULLNAME}:" $PKGLIST && continue
@@ -1063,14 +1076,26 @@
if grep ${GREPOPTS} -q ":bname:${PKGBASENAME}:" $PKGLIST ; then
- # if the current package P is installed, this means the previous P' will be
- # proposed as an upgrade to P. In this case, the loop must continue without
- # any other action...
- grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist && continue
-
- # The current package P is not installed. In this case P must be shown as
- # being uninstalled and masked.
- LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
+ IS_INSTALLED=false
+
+ # if the current package P is installed, and there's only one occurence of
+ # its fullname in DUPTRACK, P' will be proposed as an upgrade to P and the
+ # loop must continue without any other action. Otherwise, P must be shown
+ # as being uninstalled and masked.
+ #
+ if grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist ; then
+ COUNT=$(grep "$PKGFULLNAME" $DUPTRACK | wc -l)
+
+ [ $COUNT -eq 1 ] && IS_INSTALLED=true
+ fi
+
+ if [ $IS_INSTALLED = false ] ; then
+ # The current package P is not installed or different repositories offer the
+ # same package (ie. same name, version, arch, and build). In these cases P must
+ # be shown as being uninstalled and masked.
+ #
+ LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
+ fi
else
LIST="$LIST ${PKGDIR}:${PKGFULLNAME}"
fi
@@ -1149,6 +1174,13 @@
STATUS=" installed "
printf " %-20s %-24s %-40s \n" "$STATUS" "$REPO" "$CINSTPKG"
else
+
+ INSTPKG_REPO=$(grep -m 1 "$CINSTPKG" ${WORKDIR}/pkglist | cut -f1 -d" " | sed "s/SLACKPKGPLUS_//")
+
+ if [ "$INSTPKG_REPO" != "$REPO" ] ; then
+ CINSTPKG="$INSTPKG_REPO:$CINSTPKG"
+ fi
+
STATUS="upgrade"
printf " %-20s %-24s %-40s \n" "$STATUS" "$REPO" "$CINSTPKG --> ${RAWNAME}"
fi
A simple test :
Code:
$ slackpkg search p7zip
Looking for p7zip in package list. Please wait...DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost alien:p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
You can search specific files using "slackpkg file-search file".
Please test this and report any issue.
--
SeB
Last edited by phenixia2003; 10-13-2016 at 03:15 PM.
|
|
|
10-13-2016, 06:16 PM
|
#641
|
LQ Newbie
Registered: Jan 2016
Distribution: Slackware
Posts: 11
Rep:
|
Hello)
Quote:
Originally Posted by phenixia2003
If I understand well, you'd want something like that :
Code:
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
installled alien p7zip-16.02-x86_64-1alien
upgrade boost p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
or, better, like that :
Code:
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost alien:p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
|
Yes, I'm about this, thanks
But I don't understand, why Status: upgrade?
And ` slackpkg upgrade-all ` don't show this package for upgrade
Status: upgrade , if PKGS_PRIORITY+=( repo:pkg ) and search_pkg founded this repository
Example-1:
Code:
REPOPLUS=( slackpkgplus alien alien_restricted boost salix )
PKGS_PRIORITY=( )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['alien_restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
PKGS_PRIORITY+=( salix:gslapt )
MIRRORPLUS['salix']=http://download.salixos.org/x86_64/14.2/
Code:
# slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) boost p7zip-16.02-x86_64-2sb
upgrade salix alien:p7zip-16.02-x86_64-1alien --> p7zip-15.14.1-x86_64-1gv
How alien:p7zip-16.02-x86_64-1alien --> salix:p7zip-15.14.1-x86_64-1gv (p7zip-16.02 -> 15.14.1)
with priority REPOPLUS=( slackpkgplus alien alien_restricted boost salix ) ?
Example-2 (add PKGS_PRIORITY+=( boost:infozip )):
Code:
REPOPLUS=( slackpkgplus alien alien_restricted boost salix )
PKGS_PRIORITY=( )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['alien_restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/
PKGS_PRIORITY+=( boost:infozip )
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
PKGS_PRIORITY+=( salix:gslapt )
MIRRORPLUS['salix']=http://download.salixos.org/x86_64/14.2/
Code:
# slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost alien:p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
You can search specific files using "slackpkg file-search file".
But # slackpkg upgrade-all don't show this upgrade(s)
Example-3 (w/o PKGS_PRIORITY):
Code:
REPOPLUS=( slackpkgplus alien alien_restricted boost salix )
PKGS_PRIORITY=( )
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['alien']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/
MIRRORPLUS['alien_restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/
MIRRORPLUS['boost']=ftp://download.deepstyle.org.ua/pub/slackware/slackboost64-14.2/slackboost64/
MIRRORPLUS['salix']=http://download.salixos.org/x86_64/14.2/
Code:
# slackpkg -checkgpg=off update
# slackpkg search p7zip
Looking for p7zip in package list. Please wait... DONE
The list below shows all packages with name matching "p7zip".
[ Status ] [ Repository ] [ Package ]
installed alien p7zip-16.02-x86_64-1alien
uninstalled(masked) boost p7zip-16.02-x86_64-2sb
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
in Example-3 all-right
|
|
1 members found this post helpful.
|
10-14-2016, 02:01 AM
|
#642
|
Member
Registered: Jan 2008
Posts: 426
|
phenixia2003,
please note nk_'s example 2 above:
adding only one package with repo into PKGS_PRIORITY (boost:infozip) leads to list other packages from this repo as "upgrade" (boost:p7zip in example). So, it lists packages as whole boost priority and not only boost:infozip.
Last edited by bormant; 10-14-2016 at 02:06 AM.
|
|
2 members found this post helpful.
|
10-14-2016, 06:05 AM
|
#643
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Hello,
Quote:
Originally Posted by nk_
But I don't understand, why Status: upgrade?
And ` slackpkg upgrade-all ` don't show this package for upgrade
Status: upgrade , if PKGS_PRIORITY+=( repo:pkg ) and search_pkg founded this repository
|
Quote:
Originally Posted by bormant
phenixia2003,
please note nk_'s example 2 above:
adding only one package with repo into PKGS_PRIORITY (boost:infozip) leads to list other packages from this repo as "upgrade" (boost:p7zip in example). So, it lists packages as whole boost priority and not only boost:infozip.
|
You're right, this is a bug (an old furthermore). I fixed it. I also corrected/optimized/simplified the last patch I sent yesterday .
- The patch slackpkg+-search-duplicate-packages-fix-V6.patch.txt supersedes the last patch I sent yesterday.
Code:
--- slackpkgplus.sh.org 2016-10-14 10:11:23.283949727 +0200
+++ slackpkgplus.sh 2016-10-14 12:07:42.637393904 +0200
@@ -1014,13 +1014,14 @@
[ "$SENSITIVE_SEARCH" = "off" ] && GREPOPTS="--ignore-case"
# -- PKGLIST:
- # temporary file used to store data about packages. It uses
+ # temporary file used to store data about handled packages. It uses
# the following format:
# repo:<repository_name>:bname:<package_basename>:ver:<package_version>:fname:<package_fullname>:
#
PKGLIST=$(tempfile --directory=$TMPDIR)
PKGINFOS=$(tempfile --directory=$TMPDIR)
+
for i in ${PRIORITY[@]}; do
DIR="$i"
if [[ "$DIR" =~ ^[-_[:alnum:]]+[:] ]] ; then # was if echo "$DIR" | grep -q "[a-zA-Z0-9]\+[:]" ; then
@@ -1063,14 +1064,26 @@
if grep ${GREPOPTS} -q ":bname:${PKGBASENAME}:" $PKGLIST ; then
- # if the current package P is installed, this means the previous P' will be
- # proposed as an upgrade to P. In this case, the loop must continue without
- # any other action...
- grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist && continue
-
- # The current package P is not installed. In this case P must be shown as
- # being uninstalled and masked.
- LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
+ # P' has precedence over P. Therefore, P must be displayed with masked
+ # attribute, unless when installed, in which case P' will be proposed
+ # as an upgrade to P.
+
+ MASKED=true
+
+ if grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist ; then
+ COUNT=$(grep ":$PKGFULLNAME:" $PKGLIST | wc -l)
+
+ # P is installed. It should not be masked. However, when different
+ # repositories offer the same package (ie. same name,version,arch,
+ # build) this rule must be applied only when there's *no occurence*
+ # of fullname(P) in PKGLIST (ie. list of handled packages).
+ #
+ [ $COUNT -eq 0 ] && MASKED=false
+ fi
+
+ if [ $MASKED = true ] ; then
+ LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
+ fi
else
LIST="$LIST ${PKGDIR}:${PKGFULLNAME}"
fi
@@ -1149,6 +1162,13 @@
STATUS=" installed "
printf " %-20s %-24s %-40s \n" "$STATUS" "$REPO" "$CINSTPKG"
else
+
+ INSTPKG_REPO=$(grep -m 1 "$CINSTPKG" ${WORKDIR}/pkglist | cut -f1 -d" " | sed "s/SLACKPKGPLUS_//")
+
+ if [ ! -z "$INSTPKG_REPO" ] && [ "$INSTPKG_REPO" != "$REPO" ] ; then
+ CINSTPKG="$INSTPKG_REPO:$CINSTPKG"
+ fi
+
STATUS="upgrade"
printf " %-20s %-24s %-40s \n" "$STATUS" "$REPO" "$CINSTPKG --> ${RAWNAME}"
fi
- The patch slackpkg+-search-fix-wrong-upgrade-info-bug.patch.txt fixes the issue about wrong updates suggested by slackpkg search.
Code:
--- slackpkgplus.sh.org 2016-10-14 10:11:23.283949727 +0200
+++ slackpkgplus.sh 2016-10-14 10:11:23.283949727 +0200
@@ -1024,7 +1024,24 @@
for i in ${PRIORITY[@]}; do
DIR="$i"
if [[ "$DIR" =~ ^[-_[:alnum:]]+[:] ]] ; then # was if echo "$DIR" | grep -q "[a-zA-Z0-9]\+[:]" ; then
- DIR=${DIR/:*/} # was DIR=$(echo "$i" | cut -f1 -d":")
+ DIR=${i/:*/} # was DIR=$(echo "$i" | cut -f1 -d":")
+ PAT=${i/*:/}
+
+ # when the current priority is of kind <REPO>:<PATTERN>, the loop must be short-circuited
+ # when SEARCHSTR does not match PATTERN, otherwise, some packages could be mistakenly
+ #Â*selectd.
+ #
+ # Example:
+ # - p7zip is present in alien and boost
+ # - alien has precedence over boost
+ #Â - PKGS_PRIORITY=(boost:infozip)
+ # - p7zip from alien is installed.
+ #
+ # In these case, the priority boost:infozip must be ignored otherwise slackpkg+ will
+ # wrongly shows boost:p7zip as an upgrade for alien:p7zip
+ #
+
+ [ ! -z "$PAT" ] && ! echo "$SEARCHSTR" | grep -qw "$PAT" && continue
fi
if [ "$CMD" == "file-search" ] ; then
Example :
Code:
# ls /var/log/packages/p7zip*
p7zip-16.02-x86_64-1alien
# REPOPLUS=(slackpkgplus alien restricted boost salix )
# PKGS_PRIORITY=()
$ slackpkg search p7zip
[ Status ] [ Repository ] [ Package ]
installed alien p7zip-16.02-x86_64-1alien
uninstalled(masked) boost p7zip-16.02-x86_64-2sb
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
# PKGS_PRIORITY=(boost)
$ slackpkg search p7zip
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
upgrade boost alien:p7zip-16.02-x86_64-1alien --> p7zip-16.02-x86_64-2sb
# PKGS_PRIORITY=(boost:infozip)
$ slackpkg search p7zip
[ Status ] [ Repository ] [ Package ]
installed alien p7zip-16.02-x86_64-1alien
uninstalled(masked) boost p7zip-16.02-x86_64-2sb
uninstalled(masked) salix p7zip-15.14.1-x86_64-1gv
$ ls /var/log/packages/vlc*
/var/log/packages/vlc-2.2.4-x86_64-1alien
#REPOPLUS=( slackpkgplus alien restricted boost salix )
#PKGS_PRIORITY=( boost restricted alien salix )
$ slackpkg search vlc
[ Status ] [ Repository ] [ Package ]
installed restricted vlc-2.2.4-x86_64-1alien
uninstalled restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien vlc-2.2.4-x86_64-1alien
uninstalled(masked) salix vlc-2.2.4-x86_64-1gv
#PKGS_PRIORITY=( salix:vlc boost restricted alien salix )
$ slackpkg search vlc
[ Status ] [ Repository ] [ Package ]
uninstalled restricted npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien npapi-vlc-20160706-x86_64-1alien
uninstalled(masked) alien vlc-2.2.4-x86_64-1alien
upgrade salix restricted:vlc-2.2.4-x86_64-1alien --> vlc-2.2.4-x86_64-1gv
--
SeB
Last edited by phenixia2003; 10-14-2016 at 06:12 AM.
|
|
2 members found this post helpful.
|
10-14-2016, 09:26 AM
|
#644
|
LQ Newbie
Registered: Jan 2016
Distribution: Slackware
Posts: 11
Rep:
|
Yes! Cool.
phenixia2003 thanks for the patches
bormant thanks for help with my bad english(
And maybe yet,
about wrong updates suggested by slackpkg search with /etc/slackpkg/ greylist and blacklist
Code:
> blacklist: qmmp
# slackpkg search qmmp
Looking for qmmp in package list. Please wait... DONE
The list below shows all packages with name matching "qmmp".
[ Status ] [ Repository ] [ Package ]
upgrade alien qmmp-0.10.3-x86_64-1_SBo --> qmmp-0.7.6-x86_64-1alien
Code:
> greylist: [0-9]+_SBo
# slackpkg search unrar
Looking for unrar in package list. Please wait... DONE
The list below shows all packages with name matching "unrar".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix unrar-5.3.11-x86_64-1gv
upgrade alien unrar-5.4.5-x86_64-1_SBo --> unrar-4.2.4-x86_64-1alien
Status upgrade(masked) for this upgrades in search?
Last edited by nk_; 10-14-2016 at 09:29 AM.
|
|
1 members found this post helpful.
|
10-14-2016, 10:53 AM
|
#645
|
Senior Member
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 1,052
|
Quote:
Originally Posted by nk_
Yes! Cool.
phenixia2003 thanks for the patches
bormant thanks for help with my bad english(
|
Thanks for taking time to test these patches.
Quote:
Originally Posted by nk_
And maybe yet,
about wrong updates suggested by slackpkg search with /etc/slackpkg/ greylist and blacklist
Code:
> blacklist: qmmp
# slackpkg search qmmp
Looking for qmmp in package list. Please wait... DONE
The list below shows all packages with name matching "qmmp".
[ Status ] [ Repository ] [ Package ]
upgrade alien qmmp-0.10.3-x86_64-1_SBo --> qmmp-0.7.6-x86_64-1alien
Code:
> greylist: [0-9]+_SBo
|
You're right, this is a bug ( ${WORKDIR}/pkglist used instead of ${TMPDIR}/pkglist in searchPackages).
The patch slackpkg+-search-duplicate-packages-fix-V7.patch.txt fixes it and supersedes the 'V6' I sent in my last post:
Code:
--- slackpkgplus.sh.org 2016-10-14 16:45:59.467757177 +0200
+++ slackpkgplus.sh 2016-10-14 16:45:59.467757177 +0200
@@ -1014,13 +1014,14 @@
[ "$SENSITIVE_SEARCH" = "off" ] && GREPOPTS="--ignore-case"
# -- PKGLIST:
- # temporary file used to store data about packages. It uses
+ # temporary file used to store data about handled packages. It uses
# the following format:
# repo:<repository_name>:bname:<package_basename>:ver:<package_version>:fname:<package_fullname>:
#
PKGLIST=$(tempfile --directory=$TMPDIR)
PKGINFOS=$(tempfile --directory=$TMPDIR)
+
for i in ${PRIORITY[@]}; do
DIR="$i"
if [[ "$DIR" =~ ^[-_[:alnum:]]+[:] ]] ; then # was if echo "$DIR" | grep -q "[a-zA-Z0-9]\+[:]" ; then
@@ -1050,7 +1051,7 @@
}' l_dir=${DIR} > $PKGINFOS
else # -- CMD==search
- grep -h ${GREPOPTS} "^$DIR" ${WORKDIR}/pkglist ${TMPDIR}/pkglist-pre|grep -E ${GREPOPTS} "/SLACKPKGPLUS_$SEARCHSTR/|/$SEARCHSTR/|/$SEARCHSTR | [^ /]*$SEARCHSTR[^ /]* " > $PKGINFOS
+ grep -h ${GREPOPTS} "^$DIR" ${TMPDIR}/pkglist ${TMPDIR}/pkglist-pre|grep -E ${GREPOPTS} "/SLACKPKGPLUS_$SEARCHSTR/|/$SEARCHSTR/|/$SEARCHSTR | [^ /]*$SEARCHSTR[^ /]* " > $PKGINFOS
fi
while read PKGDIR PKGBASENAME PKGVER PKGARCH PKGBUILD PKGFULLNAME PKGPATH PKGEXT ; do
@@ -1063,14 +1064,26 @@
if grep ${GREPOPTS} -q ":bname:${PKGBASENAME}:" $PKGLIST ; then
- # if the current package P is installed, this means the previous P' will be
- # proposed as an upgrade to P. In this case, the loop must continue without
- # any other action...
- grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist && continue
-
- # The current package P is not installed. In this case P must be shown as
- # being uninstalled and masked.
- LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
+ # P' has precedence over P. Therefore, P must be displayed with masked
+ # attribute, unless when installed, in which case P' will be proposed
+ # as an upgrade to P.
+
+ MASKED=true
+
+ if grep ${GREPOPTS} -q " $PKGFULLNAME " ${TMPDIR}/tmplist ; then
+ COUNT=$(grep ":$PKGFULLNAME:" $PKGLIST | wc -l)
+
+ # P is installed. It should not be masked. However, when different
+ # repositories offer the same package (ie. same name,version,arch,
+ # build) this rule must be applied only when there's *no occurence*
+ # of fullname(P) in PKGLIST (ie. list of handled packages).
+ #
+ [ $COUNT -eq 0 ] && MASKED=false
+ fi
+
+ if [ $MASKED = true ] ; then
+ LIST="$LIST MASKED_${PKGDIR}:${PKGFULLNAME}"
+ fi
else
LIST="$LIST ${PKGDIR}:${PKGFULLNAME}"
fi
@@ -1149,6 +1162,13 @@
STATUS=" installed "
printf " %-20s %-24s %-40s \n" "$STATUS" "$REPO" "$CINSTPKG"
else
+
+ INSTPKG_REPO=$(grep -m 1 "$CINSTPKG" ${WORKDIR}/pkglist | cut -f1 -d" " | sed "s/SLACKPKGPLUS_//")
+
+ if [ ! -z "$INSTPKG_REPO" ] && [ "$INSTPKG_REPO" != "$REPO" ] ; then
+ CINSTPKG="$INSTPKG_REPO:$CINSTPKG"
+ fi
+
STATUS="upgrade"
printf " %-20s %-24s %-40s \n" "$STATUS" "$REPO" "$CINSTPKG --> ${RAWNAME}"
fi
Here is an example :
Code:
$ grep "qmmp" /etc/slackpkg/blacklist
$ slackpkg search qmmp
[ Status ] [ Repository ] [ Package ]
upgrade alien qmmp-0.10.3-x86_64-1_SBo --> qmmp-0.7.6-x86_64-1alien
$ echo "qmmp" >> /etc/slackpkg/blacklist
$ slackpkg search qmmp
Looking for qmmp in package list. Please wait...DONE
No package name matches the pattern.
Quote:
Originally Posted by nk_
# slackpkg search unrar
Looking for unrar in package list. Please wait... DONE
The list below shows all packages with name matching "unrar".
[ Status ] [ Repository ] [ Package ]
uninstalled(masked) salix unrar-5.3.11-x86_64-1gv
upgrade alien unrar-5.4.5-x86_64-1_SBo --> unrar-4.2.4-x86_64-1alien [/CODE]
Status upgrade(masked) for this upgrades in search?
|
This is not a bug. The greylist does not work as a blacklist. This is a convenience which allows users to define the packages that must be unchecked when packages that match a request are displayed within a dialog interface. For instance, if you run slackpg upgrade-all, the greylist will be used, unless the dialog interface is disabled. That is :
- when DIALOG=off in /etc/slackpkg/slackpkg.conf
- when you pass -dialog=off to slackpkg :
Code:
$ slackpkg -dialog=off install foo
--
SeB
|
|
1 members found this post helpful.
|
All times are GMT -5. The time now is 06:13 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|