[SOLVED] Proper way to upgrade built-in package on Slackware stable release?
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.
Proper way to upgrade built-in package on Slackware stable release?
I am using Slackware 15.0 and I wish to upgrade my Emacs to the new 28.1 version.
The way that I have thought to do this is to download the Slackware-15.0 source tree, replace the emacs-27.2.tar.xz tarball with the new emacs-28.1.tar.xz tarball, make any necessary changes to the emacs.SlackBuild and then execute the emacs.SlackBuild.
Is this the best way to do it? What happens if the Slackware team releases an update for Emacs whether security related or to upgrade to version 28.1?
Last edited by nicholas_hubbard; 04-24-2022 at 10:36 AM.
Reason: font
Distribution: Slackware64 {15.0,-current}, FreeBSD, stuff on QEMU
Posts: 452
Rep:
Welcome. That's the right idea. If you use slackpkg, you'll also want to add emacs to /etc/slackpkg/blacklist to keep the script from offering to upgrade your new package:
Emacs 28.1 was added to slackware-current on April 5, so the easiest solution is the just grab the source from the slackware-current branch and build that on your 15.0 system... Easiest way is...
Code:
cd /tmp
lftp -c "open https://slackware.osuosl.org/slackware64-current/source/e/ ; mirror emacs"
cd emacs
chmod +x emacs.SlackBuild
./emacs.SlackBuild
then like pghvlaans said, make sure you blacklist the emacs package so that it doesn't get replaced by slackpkg
If you're after native-compilation, keep in mind that it's not enabled on -current just yet. To try it you have to rebuild gcc, and there are some useful notes about that in this thread, and this post.
Yes I am after native-compilation. I realized that to do this I will need to recompile gcc for the jit support but I am not sure that is something I want to do as I if I blacklist gcc from getting updates with slackpkg then I will have to monitor gcc myself in cases of security updates, etc.
Last edited by nicholas_hubbard; 04-25-2022 at 08:53 AM.
I recompiled gcc here but didn't bother blacklisting it. If gcc updates come (pretty rare), then it will presumably break emacs and remind me to recompile it myself
Save it to your hard drive and run, upgradepkg --reinstall --install-new
on it?
While it might work right now due to -current not straying very far from 15.0 right now (I'm not sure since I haven't tested it), it's usually not a good idea to mix packages from different Slackware versions. It's possible those packages might rely on newer libraries than are present in 15.0 and the package may be partially or completely broken.
The recommended way is to download the source and compile it for your own Slackware version if an existing package compiled for that Slackware version doesn't already exist.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.