slackpkg+ - upgrading only if version # has increased
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.
slackpkg+ - upgrading only if version # has increased
In order to get Nautilus to compile, I had to replace the Pango that ships with -current with a newer version since Nautilus depends on features in the newer version. So I did that, made a slackbuild so I could build and install it the slackware way, etc. I now have pango 1.44.7 installed on my system.
The problem is when I use slackpkg upgrade-all (using slackpkg+), it wants to replace that with the 1.42.4 version that is part of -current.
Blacklisting pango is one solution, but I'd have to remember I have it there and remove it once the distribution version catches up with what I have. I can also upgrade packages individually rather than just doing upgrade-all. I can also use the dialog interface and just unselect pango, and then hope I remember to stop doing that once the version catches up (and hope I don't forget until then).
These are all workable solutions, and if that's what I have to do then that's what I'll do. But what I'd like to do if it's possible, and have not been able to figure out if so, is for slackpkg+ to actually compare the version numbers of the distributed version and the installed version and only replace it once the distributed version has caught up.
Sometime you may want that slackpkg+ does not install some package in the upgrade-all
process. To do that you must uncheck the package everytime or add it in the
'blacklist' file. The first method may be onerous when you use upgrade-all frequently.
The second method does not allow you to know which package version is available.
A thirdy method is to put it in the 'greylist' file.
All packages listed in greylist will be available to install and listed in slackpkg
dialog, but they will be unchecked by default so you are sure to not install it
wrongly.
You may decide also to greylist one entire repository. A good idea is to greylist
all thirdy party repository so an upgrade-all automatically upgrade official
slackware packages but force you to review all other packages so to be sure on what
you install.
Simply put, Slackware's package management tools do not care about version numbers other than to make sure either the version number or the build number are different. This allows official downgrades (which are still called "upgrades" in the changelog) to occur without issue and also allows the system to easily deal with version numbers that change drastically, like if they go from an old release to a snapshot of a git repo and uses the 7 character commit ID for the version.
Short of you changing the program itself, your only option would be to do what phenixia2003 mentioned and put the item in a greylist.
Does slackpkg not allow you to blacklist a specific version?
I don't use slackpkg, I have my own tools, but when I want to do this I blacklist a specific version and then it gets ignored until Pat updates that pkg file: at which point the blacklist pattern no longer matches and Pat's new version is installed.
Here is another possible solution. A bit of an overkill perhaps for one package. Yet it's a great solution for multiple packages. Create your own repository.
Does slackpkg not allow you to blacklist a specific version?
I don't use slackpkg, I have my own tools, but when I want to do this I blacklist a specific version and then it gets ignored until Pat updates that pkg file: at which point the blacklist pattern no longer matches and Pat's new version is installed.
Perhaps a pango-1.42 rather than just pango- blacklist entry would work?
I've got an idea, I'll pick some package from the next -current update and see if it makes a difference.
1. Make your own repo
2. Name your packages with your unique tag (somepackage-1.0-1_mytag.tgz) and put in your repo.
3. Install it
4. Set in slackpkgplus.conf option TAG_PRIORITY=on
This way you don't need to blacklist anything, slackpkg upgrade-all works this way as expected - no upgrade of this package from other repositories, but if you put new version of this package to your repository, it will be upgraded as expected.
I use this for my custom kernel and packages backported from current for years.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.