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.
It could be useful to have a script that updates initrd and the bootloader when a new kernel is installed. I know about the zlookkernel.sh script, but would it work better if the script does this?
Search for the installed bootloader (I have made a script to find the bootloader)
Run "geninitird"
Run bootloader command (f.ex. eliloconfig, lilo, grub-mkconfig -o /boot/grub/grub.cfg)
Then some kernel panics could be avoided for more recent users of Slackware.
I had not seen these posts, thanks for the links. The best thing might be to have this functionality in a separate script like zlookkernel.sh. The last part of the script would be better though with a discovery of the bootloader and then running genitird and the bootloader command in my opinion.
It could be useful to have a script that updates initrd and the bootloader when a new kernel is installed. I know about the zlookkernel.sh script, but would it work better if the script does this?
Search for the installed bootloader (I have made a script to find the bootloader)
Run "geninitird"
Run bootloader command (f.ex. eliloconfig, lilo, grub-mkconfig -o /boot/grub/grub.cfg)
Then some kernel panics could be avoided for more recent users of Slackware.
wrapupgradepkg does that. Adapting it to Slackware is left to the reader as an exercise. Hint: replace the calls to spkg (not shipped in Slint) by calls to a script shipped in pkgtools. Users didn't complain so far. Call it like this:
You should add gforth to slackware current so it can be a part of slackware 15. https://ftp.gnu.org/gnu/gforth/gforth-0.7.3.tar.gz
gforth is the official GNU implementation of ANSI FORTH. Forth is a stack based language that can be extremely powerful and incredibly tiny at the same time.
Here is a slackbuild script that will make adding gforth a two minute job. http://slackbuilds.org/slackbuilds/1.../gforth.tar.gz
FORTH is a wonderful and unique language, don't overlook it.
I would highly recommend adding in the Ffcall package as well. It's an optional dependency, but it will allow calling C libraries with gforth. Install Ffcall first before gforth to make use of it. http://cvs.savannah.gnu.org/viewvc/libffcall/ffcall/
Perhaps Slackware64 should be renamed to just "Slackware", and the 32-bit version renamed to "Slackware32" or similar.
Grounds: 64-bit builds are now widespread and considered as the new default. Thus, it would make sense that this build carries the default "Slackware" name.
I'm not suggesting to retire 32-bit, just a rename.
Perhaps Slackware64 should be renamed to just "Slackware", and the 32-bit version renamed to "Slackware32" or similar.
I agree that your suggestion to rename 32-bit Slackware to “Slackware32” makes sense, but I would keep the “Slackware64” name, if I had any say in it (which I don’t). Otherwise, you would have to rename it back to “Slackware64” once “Slackware128” comes along.
The latest version 0.8 added an unique support for interacting with elogind and auto-quitting on user logout, at our feature request accepted by this friendly developer.
I can say that this elogind integration was added specially for Slackware and developed under Debian and its systemd(-logind) then this is a supplementary guarantee that the logind API is fully respected, until it works similarly under systemd, but of course there is no need for this feature.
This feature of auto-quitting on user logout is particularly useful for running programs which are developed as "user target" daemons for systemd, like are the three PipeWire daemons. But the daemon itself is a program developed since 12 years, for multiple operating systems, and it could be generally useful to run system services which has no ways to daemonize themselves.
For example, it can help to create a complete rc.d script/service (with start/restart/stop/status) for xBrowserSync, which is a NodeJS based server.
Also, please note that this daemon supervisor has a really small footprint, and it could be packaged in a 100KB package, which installs a 200KB program (the daemon itself), a man file and a configuration file.
I should also note that I use this daemon supervisor with great success since its elogind integration development started, as I described also in a dedicated thread, where I described also a packaging approach:
In other hand, please consider to add on the PipeWire package the following three sample files for the global XDG autostart.
/etc/xdg/autostart/pipewire.desktop-sample
Code:
[Desktop Entry]
Version=1.0
Name=PipeWire Media System
Comment=Start the PipeWire Media System
Exec=/usr/bin/daemon -frB --pidfiles=~/.run --name=pipewire /usr/bin/pipewire
Terminal=false
Type=Application
X-GNOME-Autostart-Phase=Initialization
X-KDE-autostart-phase=1
The first two files, IF renamed with a proper .desktop extension, will start the main daemons of PipeWire, and this will enable the standard support from PipeWire, as expected by Wayland/Plasma5 and various features of it will start working, for example the taskbar thumbnails.
The third file, IF renamed with a proper .desktop extension, will start the Pulse Audio replacement daemon (just like Fedora intends to do), and this will need also the disabling of PA server by the user, by renaming the file /etc/xdg/autostart/pulseaudio.desktop and changing on /etc/pulse/client.conf
Code:
autospawn = no
So, probably somewhere should be added those instructions of how to disable the PulseAudio server while using the PipeWire Pulse-compat server.
However, please note that I do NOT ask for enabling the PipeWire daemons by default, BUT about adding a consistent infrastructure at user decision whether s/he would enable those PipeWire daemons, considering our past experiences with them.
So, I would say that my proposal is about transforming the Slackware-current on being "PipeWire ready", to facilitate for its users to experiment with the PipeWire features, and definitely is NOT about requesting a fully switching to PipeWire, like Fedora intends to do.
Last edited by ZhaoLin1457; 03-21-2021 at 03:12 PM.
I'm sorry for bumping this, below changes are needed for /usr/bin/sddm to let the init process properly supervise SDDM. Also "$*" is changed to "$@" since I think that is more appropriate for propagating the positional parameters in this script.
Thanks for the consideration!
Code:
--- a/usr/bin/sddm 2021-03-22 13:30:32.209653646 +0700
+++ b/usr/bin/sddm 2021-03-22 13:32:55.810714919 +0700
@@ -3,4 +3,4 @@
if [ -f /etc/default/sddm ]; then
. /etc/default/sddm
fi
-/usr/bin/sddm.bin "$*"
+exec /usr/bin/sddm.bin "$@"
I don't see why not to adding fasm to slackware. https://flatassembler.net/download.php
It's written in x86 assembly making it lightning fast compared to other assemblers.
The latest version 0.8 added an unique support for interacting with elogind and auto-quitting on user logout, at our feature request accepted by this friendly developer.
I can say that this elogind integration was added specially for Slackware and developed under Debian and its systemd(-logind) then this is a supplementary guarantee that the logind API is fully respected, until it works similarly under systemd, but of course there is no need for this feature.
This feature of auto-quitting on user logout is particularly useful for running programs which are developed as "user target" daemons for systemd, like are the three PipeWire daemons. But the daemon itself is a program developed since 12 years, for multiple operating systems, and it could be generally useful to run system services which has no ways to daemonize themselves.
For example, it can help to create a complete rc.d script/service (with start/restart/stop/status) for xBrowserSync, which is a NodeJS based server.
Also, please note that this daemon supervisor has a really small footprint, and it could be packaged in a 100KB package, which installs a 200KB program (the daemon itself), a man file and a configuration file.
I should also note that I use this daemon supervisor with great success since its elogind integration development started, as I described also in a dedicated thread, where I described also a packaging approach:
In other hand, please consider to add on the PipeWire package the following three sample files for the global XDG autostart.
/etc/xdg/autostart/pipewire.desktop-sample
Code:
[Desktop Entry]
Version=1.0
Name=PipeWire Media System
Comment=Start the PipeWire Media System
Exec=/usr/bin/daemon -frB --pidfiles=~/.run --name=pipewire /usr/bin/pipewire
Terminal=false
Type=Application
X-GNOME-Autostart-Phase=Initialization
X-KDE-autostart-phase=1
The first two files, IF renamed with a proper .desktop extension, will start the main daemons of PipeWire, and this will enable the standard support from PipeWire, as expected by Wayland/Plasma5 and various features of it will start working, for example the taskbar thumbnails.
The third file, IF renamed with a proper .desktop extension, will start the Pulse Audio replacement daemon (just like Fedora intends to do), and this will need also the disabling of PA server by the user, by renaming the file /etc/xdg/autostart/pulseaudio.desktop and changing on /etc/pulse/client.conf
Code:
autospawn = no
So, probably somewhere should be added those instructions of how to disable the PulseAudio server while using the PipeWire Pulse-compat server.
However, please note that I do NOT ask for enabling the PipeWire daemons by default, BUT about adding a consistent infrastructure at user decision whether s/he would enable those PipeWire daemons, considering our past experiences with them.
So, I would say that my proposal is about transforming the Slackware-current on being "PipeWire ready", to facilitate for its users to experiment with the PipeWire features, and definitely is NOT about requesting a fully switching to PipeWire, like Fedora intends to do.
I fully subscribe to this feature request, as from my own experience this daemon supervisor do a quite fine job on handing the PipeWire daemons, which themselves looks being a quite stable software.
I used the PipeWire main daemons (pipewire and pipewire-media-session) since this software was added in KTown (via lauching them from global XDG autostart and configuring the elogind to kill the user processes on logout) and since some time I use also the PulseAudio compat server, mainly because I observed that it works way better with the Bluetooth devices than the PulseAudio server itself.
Of course, just like you, I for one I do not expect Slackware to use PipeWire as main Audio server, and probably there's no one wanting this. However, I believe too that having a good infrastructure (like you proposed), for the user to run eventually those PipeWire daemons in a "recommended way" would be very nice.
And here I would like to note a very cool behavior of this method of running the PipeWire daemon via this particular daemon supervisor, which makes it probably the best way to do this job.
So, the three PipeWire daemons have, as you suspect, a certain order of execution. From what I read and did, this order is:
That's not a problem for systemd, which have a dependencies resolution for its services, but if someone use (just like me) those XDG auto-start files named just like was proposed by you (from a logical POV, I guess, and I agree with it), in fact their execution order is:
Which is is totally wrong, as both pipewire-media-session and pipewire-pulse will suddenly quit because the main daemon (pipewire) is not running yet.
BUT, their daemon supervisor instances (because all of them runs with the --respawn option) will wait a bit after that premature quitting, then every one will execute again its client program. Then, the cycle will be repeated again and again.
The final result is that this tandem (PipeWire daemon and its daemon supervisor) manages to "synchronize" the execution of the three PipeWire daemons just like there is a "services dependency resolution", no matter on which order you execute them initially.
Last edited by LuckyCyborg; 03-22-2021 at 01:30 PM.
Add an option to pkgtool and setup that is called Repair which runs these commands in one - Find bootloader installed, Run geninitrd, Run bootloader command, Output kernel version and bootload conf file at the end.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.