LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Read the changelog to check for package removal (https://www.linuxquestions.org/questions/slackware-14/read-the-changelog-to-check-for-package-removal-4175667624/)

hitest 01-13-2020 08:55 AM

Read the changelog to check for package removal
 
Slackware64-current is in the midst of very active development. Packages are being upgraded and or added on an almost daily basis.
Sometimes Mr. Volkerding also removes packages; this is noted in the -current changelog.
For example:

Code:

Sat Jan 11 21:58:08 UTC 2020
a/aaa_elflibs-15.0-x86_64-18.txz:  Rebuilt.
  Added:  libdb-4.8.so
  Upgraded:  libcap.so.2.30
  Removed:  libdb-4.2.so
a/mcelog-168-x86_64-1.txz:  Upgraded.
ap/vim-8.2.0111-x86_64-1.txz:  Upgraded.
d/subversion-1.13.0-x86_64-3.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/apr-util-1.6.1-x86_64-8.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/db42-4.2.52-x86_64-4.txz:  Removed.
l/db44-4.4.20-x86_64-4.txz:  Removed.

l/redland-1.0.17-x86_64-6.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/serf-1.3.9-x86_64-4.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/talloc-2.3.1-x86_64-3.txz:  Rebuilt.
  Fix documentation permissions. Thanks to Xsane.
n/httpd-2.4.41-x86_64-2.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
n/ipset-7.5-x86_64-1.txz:  Upgraded.
xap/vim-gvim-8.2.0111-x86_64-1.txz:  Upgraded.
+--------------------------+

To remove these packages using slackpkg run:

Code:

# slackpkg clean-system

An Infamous Historian 01-13-2020 10:10 AM

Quote:

Originally Posted by hitest (Post 6077876)
Slackware64-current is in the midst of very active development. Packages are being upgraded and or added on an almost daily basis.
Sometimes Mr. Volkerding also removes packages; this is noted in the -current changelog.
For example:

Code:

Sat Jan 11 21:58:08 UTC 2020
a/aaa_elflibs-15.0-x86_64-18.txz:  Rebuilt.
  Added:  libdb-4.8.so
  Upgraded:  libcap.so.2.30
  Removed:  libdb-4.2.so
a/mcelog-168-x86_64-1.txz:  Upgraded.
ap/vim-8.2.0111-x86_64-1.txz:  Upgraded.
d/subversion-1.13.0-x86_64-3.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/apr-util-1.6.1-x86_64-8.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/db42-4.2.52-x86_64-4.txz:  Removed.
l/db44-4.4.20-x86_64-4.txz:  Removed.

l/redland-1.0.17-x86_64-6.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/serf-1.3.9-x86_64-4.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
l/talloc-2.3.1-x86_64-3.txz:  Rebuilt.
  Fix documentation permissions. Thanks to Xsane.
n/httpd-2.4.41-x86_64-2.txz:  Rebuilt.
  Recompiled against db48-4.8.30.
n/ipset-7.5-x86_64-1.txz:  Upgraded.
xap/vim-gvim-8.2.0111-x86_64-1.txz:  Upgraded.
+--------------------------+

To remove these packages using slackpkg run:

Code:

# slackpkg clean-system

Unless you've been very diligent about keeping your blacklists up-to-date, clean-system will also remove third-party packages, which may not be what many people want.

Tonus 01-13-2020 10:19 AM

Read the changelog to check for package removal
 
You safely can unselect those packages you wouldn't have blacklisted ;-)

You know, during years I never used that because I feared it would remove everything without prompt!

drgibbon 01-13-2020 10:25 AM

That's true, you'll want your blacklist up to date before running slackpkg clean-all (although it gives you the chance to de-select packages that you actually want). In general that's not too hard, e.g., the default commented line:
Code:

[0-9]+_SBo
will blacklist all SBo packages once uncommented. Other repos can be added in the same way.

Chuck56 01-13-2020 10:42 AM

...or if you're really paranoid about making a mistake:

no package selection:
Code:

slackpkg -onoff=off clean-system

phalange 01-13-2020 10:59 AM

Quote:

Originally Posted by Chuck56 (Post 6077927)
...or if you're really paranoid about making a mistake:

no package selection:
Code:

slackpkg -onoff=off clean-system

Cool!

An Infamous Historian 01-13-2020 11:15 AM

Quote:

Originally Posted by Chuck56 (Post 6077927)
...or if you're really paranoid about making a mistake:

no package selection:
Code:

slackpkg -onoff=off clean-system

Oh, cool!

Is there somewhere where this is documented? Because I double-checked the man page and didn't see it.

Not doubting you that it's there and it works, just wondering where else I might be able to look for future reference.

Chuck56 01-13-2020 11:33 AM

Quote:

Originally Posted by An Infamous Historian (Post 6077940)
Oh, cool!

Is there somewhere where this is documented? Because I double-checked the man page and didn't see it.

Not doubting you that it's there and it works, just wondering where else I might be able to look for future reference.

man slackpkg.conf
Code:

      ONOFF
            The ONOFF variable sets the initial behavior of the dialog interface.  If  you
            set this to "on" then all packages will be selected by default.  If you prefer
            the opposite option (all unchecked), then set this to "off".

            The default value of ONOFF is "on".
            From command line, you can use -onoff=value.


hitest 01-13-2020 12:05 PM

Quote:

Originally Posted by An Infamous Historian (Post 6077904)
Unless you've been very diligent about keeping your blacklists up-to-date, clean-system will also remove third-party packages, which may not be what many people want.

Yes. But, only if you blindly hit enter after you run the command. You can de-select third party packages prior to removing the packages highlighted by #slackpkg clean-system.

USUARIONUEVO 01-13-2020 05:03 PM

for a good reason exist

/etc/slackpkg/blacklist

as example to no remove alien or compat32 ...can blacklist

# If want remove compat32 comment this two tags below
# Removing this , disable wine usage.
[0-9]+compat32
[0-9]+alien

If use slackbuilds , can add

[0-9]+SBo

and clean-system ,turns secure action for third party packages.

After all , clean-system , show you a menu first , with a list of remove packages list ...you can deselect if no want to remove someone.

garpu 01-13-2020 07:38 PM

And should your friend actually manage to hose things with "clean-system," a list of your removed packages is in /var/log/removed_packages. ls -I can exclude things that have been upgraded, kernel packages, and the like.

phalange 01-13-2020 09:44 PM

Quote:

Originally Posted by garpu (Post 6078094)
And should your friend actually manage to hose things with "clean-system," a list of your removed packages is in /var/log/removed_packages. ls -I can exclude things that have been upgraded, kernel packages, and the like.

This thread keeps getting better. I didn't know about this directory. ls -al --ignore=*upgraded* does the trick. Thanks for posting this.

Richard Cranium 01-15-2020 09:54 PM

slackroll will tell you which packages that aren't available any more with the list-transient command.

Geist 01-15-2020 10:40 PM

Btw: 'onoff' and co are the slackpkg.conf manpage, not slackpkg.

Edit:
D'oh, nevermind, Chuck56 already said that.

Well, uhh...
Uh... in case you are going through the removed files 'manually', maybe by searching the changelog, using removepkg instead, well, there's a '--copy' switch that generates an 'exploded' (aka, not tied up on a txz file) backup of the package which you could then re-generate if needed.


Ahem...hopefully that's less of a wasted post now... (and the worst thing is, I wasn't even aware of that until y'all told me so... hahaa)

NonNonBa 01-16-2020 04:42 AM

Quote:

Originally Posted by Richard Cranium (Post 6078865)
slackroll will tell you which packages that aren't available any more with the list-transient command.

But, as slackpkg, it won't say when a local package depends of a removed package, will it?

GazL 01-16-2020 08:27 AM

Quote:

Originally Posted by Richard Cranium (Post 6078865)
slackroll will tell you which packages that aren't available any more with the list-transient command.

My update scripts work in a similar way: driven by the availability, or lack thereof of individual package files, so removal of discontinued packages is handled as part of the normal update process.


Quote:

Originally Posted by NonNonBa (Post 6078929)
But, as slackpkg, it won't say when a local package depends of a removed package, will it?

Nothing outside of a fully functional dependency based package system will handle that situation, and even then, it's only reliable so long as the packager who created it doesn't miss listing a possible dependency (some of which may very well be optional and auto included during the configure run).

Slackware's long held philosophy seems to be that doing it right takes so much effort and attention to detail that attempting to do so on a large scale is simply a fool's errand.

hitest 01-16-2020 08:50 AM

Quote:

Originally Posted by GazL (Post 6079008)
Slackware's long held philosophy seems to be that doing it right takes so much effort and attention to detail that attempting to do so on a large scale is simply a fool's errand.

Agreed. Slackware's lack of dependency resolution is a source of strength, not a deficit. I admire and appreciate our package management system.

GazL 01-16-2020 03:29 PM

Quote:

Originally Posted by hitest (Post 6079016)
I admire and appreciate our package management system.

Well, in all honesty, I could pick some faults with it, but lack of dependency management isn't one of them. :)

drgibbon 01-16-2020 07:34 PM

Quote:

Originally Posted by GazL (Post 6079217)
Well, in all honesty, I could pick some faults with it, but lack of dependency management isn't one of them. :)

Just curious, what would you like to see?

andrew.46 01-16-2020 08:41 PM

I normally parse the changelog with the following:

Code:

grep -a 'Removed.$' ChangeLog.txt | sed -e 's#^.*/##g' -e 's#:.*Removed.$##g' | \
tr '\n' ' ' > removeme

And then run removepkg with the generated list over my installed packages. I am sure that it could be done better but this has worked solidly for me for some years now...

GazL 01-17-2020 04:35 AM

Quote:

Originally Posted by drgibbon (Post 6079289)
Just curious, what would you like to see?

Well, pre and post install scripts would be nice. and a post removal script could help with clean-up.

'.new' as a suffix is a bit generic and can lead to false positives when dealing with .new files. Case in point: /usr/doc/groff-1.22.4/examples/mom/elvis_syntax.new. Better to use something like .slacknew

Using hypens in package names and as a delimiter makes it difficult when it comes to parsing package file names as you have to start at the end and parse in reverse order. CRUX fixes this by using package#version.pkg.tar.gz. They also include pkg in the filename. which I like as it helps differentiate the file as a package rather than any other gzipped tarball. I like what they do here.

I've never liked how symlinks get appended to the doinst.sh, and I really don't like how the symlink lines added to doinst.sh are parsed during removal. If symlinks have to be separated from the tarball then IMO it would be far more reliable to put them in their own file (install/symlinks) or some such.

I also dislike how some stuff has to be duplicated across multiple packages. The glibc stuff being a good example of that, and the whole checking for duplicated files at removal stuff is clunky and slow, but I accept that this is inherent to the design and we're stuck with it.


Having said all that, our package system does and has worked for a long time, so please don't see this as an attack on it, nor is it a request for any specific changes. That's not my intent here. The package system was designed 25 years ago and IMO it simply shows a little.

NonNonBa 01-18-2020 08:53 AM

Quote:

Originally Posted by GazL
Slackware's long held philosophy seems to be that doing it right takes so much effort and attention to detail that attempting to do so on a large scale is simply a fool's errand.

I don't use anything but Slackware, but I'd be surprised Arch, Fedora, etc. couldn't provide something functional.

Still, indeed Slackware (doesn't) deal with it elegantly. Though it relies on the release cycle, IMO. You don't really care to have dead weight if you know every 18-24 months you'll have the occasion to all cleanup. That's also why I worry a bit if the two last devel cycle durations are meant to become a new standard.

Quote:

Originally Posted by GazL (Post 6079410)
I've never liked how symlinks get appended to the doinst.sh, and I really don't like how the symlink lines added to doinst.sh are parsed during removal. If symlinks have to be separated from the tarball then IMO it would be far more reliable to put them in their own file (install/symlinks) or some such.

The symlinks have to be separated because they must be able to clobber anything where they are set, even a full directory. I've once suggested to Pat to use this kind of syntax:

Code:

rm -rf place; ln -sf destination place #SYMINSTALL
Primarily in order to save the pushd/popd stuff which ties the pkgtools to bash (no more subshell here), but also to help parsing. Sadly the transition between the two patterns would be a bit... ugly.

Personally, I still dislike the second installpkg in upgradepkg. On a bit old machines upgrading packages like kernel-modules seems to take ages.

Quote:

Originally Posted by GazL (Post 6079410)
Having said all that, our package system does and has worked for a long time, so please don't see this as an attack on it, nor is it a request for any specific changes. That's not my intent here. The package system was designed 25 years ago and IMO it simply shows a little.

Yes, this is indubitably the major point. You can dislike all you want about it but, damn, it just works! :)

hitest 01-18-2020 11:43 AM

Quote:

Originally Posted by NonNonBa (Post 6079970)
You can dislike all you want about it but, damn, it just works! :)

Yes. There are always things that suck about an OS. Slackware sucks less than other operating systems.
Grateful to be a Slacker. :)


All times are GMT -5. The time now is 05:25 PM.