The officially official Devuan Forum!

You are not logged in.

#1 Desktop and Multimedia » GTK2 Revival thread » 2026-04-20 17:13:27

Daemonratte
Replies: 7

Alright, I decided to pause the Seamless Devuan Project for a moment and fix gtk2.

Here is the repo:

https://git.devuan.org/Daemonratte/gtk2-ng

I added the two patches that the AUR maintainers apply to gtk2, implemented stefan11111's g_qsort_with_data to g_sort_array modernisation and fixed all the compiler warnings so you can compile it on a modern system.

Tested both gcc 14 and clang 21 (and leafpad)

Future plans:
Backport further improvements by stefan11111's (a famous Xlibre contributer)
Backport new features from Ardour's gtk2 fork ytk (without breaking ABI
Getting rid of errors and bugs
Test compiling with gcc 15
Find another name?
Change the license to gpl3 if possible (probably not)

Please test it and report any errors to me

Edit:
Here are build instructions (for installing it on the system:

touch README
autoreconf -fvi
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-xinput=yes
make -j"$(nproc)"
sudo make install

if you only want to test it, only use

./configure --prefix=/TESTDIR --with-xinput=yes
make -j"$(nproc)"
make install

and change TESTDIR to another location

#2 Re: Off-topic » GTK2 Removed from Arch's Repositories » 2026-04-17 06:12:05

Right now I'm busy with the project I mentioned, but shouldn't it be possible to backport bugfixes and modernisations from stefan11111's gtk2 fork and features from ytk (Ardour's gtk2 fork) without breaking ABI?
Is anyone interested in doing this? I'd help you. Else I'm going to try it myself, but first I want a seamless Devuan experience big_smile

About STLWRT: I really wanted this project to succeed, but our best bet is to maintain gtk2 and someone else found a ton of things to work on and fixed them himself

He removed too many features IMO though that people actively use and if we want to get Ardour back into the gtk2 world we need to backport smooth scrolling and touchfeatures from their fork

#3 Re: Devuan » Seamless Devuan Project » 2026-04-14 11:26:18

Ah, thanks!
Time to integrate it

#4 Re: Devuan » Seamless Devuan Project » 2026-04-14 10:09:32

lright, new strategy:
I will fix D-Bus activation wherever it is broken and provide optional init scripts for users that choose not to rely on D-Bus activation.

Sorry for the slow process and the "noob mistakes" guys. I have to deal with tests at the same time

Edit:
tuned and tuned-ppd added (without full runit support)
power-profiles-daemon fixed (optional sysvinit daemon. no runit support yet)
thermald d-bus activation fixed

#5 Re: Devuan » Seamless Devuan Project » 2026-04-12 11:03:07

@Valera

Hi, here"s how runing Pipewire in MX:

Ah, thanks! I forgot about checking MX Linux.

@greenjeans

I can't imagine having to use 3 just to get sound when in fact it's possible to use none at all.

My idea is to write services for software that you have to run as a daemon, while making sure that dbus can start any program that's supposed to be launched via dbus and have every systemd user service converted into something using xdg autostart, xsessions, whatever.

@abower

A lot of work is being done on user services for different init systems for Debian. The runit packages are getting a solution soon that has been long in development, I think there's an openrc solution AND at least one generic solution, and that's just the ones going into standard packages.

I heard so too, but having one tool for patching packages comming directly from Debian would really be worth it IMO smile

And on the specifics of pipewire integration for existing Devuan releases there's a huge thread for that already.

I know. There are threads for getting everything to work. That's still not an out of the box experience as you have to fix it manually

polkitd already works fine for me, probably launched by dbus. Same with accountsservice.

Hmm, don't know what's wrong with my installation then, but in this case I can remove these services.

Better still, try to do it in Debian first and then in Devuan if a maintainer absolutely refuses to co-operate with a polite attempt to contribute.

Definitely not a bad idea, but we still need to prepare the init scripts for them and I doubt that they'll, for example, provide a way to run pipewire via autostart files.

#6 Re: Devuan » Seamless Devuan Project » 2026-04-11 10:32:28

Hey nice!
I've been struggling with complicated solutions described. The only issue is this extra dependency on daemon.
How would you guys prefer handling user daemons?

  • Using a script that automatically makes use of packages when they're installed. (For making use of daemon or init systems with user services when available with a fallback)

  • Also include user services for init systems that support it

  • Just adding daemon as a dependency and use that

I think it's important to define how we should go about with "user serices"

#7 Re: Devuan » Seamless Devuan Project » 2026-04-10 10:03:54

Alright guys, migration is done (goodbye github!).

Thanks for all the suggestions.
I already added scripts for the following packages (only tested with SysVinit):

  • accountsservice

  • nftables

  • pipewire

  • pipewire-pulse

  • polkitd

  • power-profiles-daemon

  • wireplumber

There is a caveat though:
For pipewire, pipewire-pulse and wireplumber I couldn't create services (I don't want them to run as root).
Instead it's handled via /etc/xdg/autostart/pipewire.desktop

[Desktop Entry]
Type=Application
Name=PipeWire
Comment=Start the PipeWire media server for the current user session
Exec=/usr/libexec/pipewire/pipewire-session-start

/usr/libexec/pipewire/pipewire-session-start

#!/bin/sh
set -eu

# Rootless session starter for PipeWire on Devuan.
# This is intended for graphical user sessions only (for now).

# Do nothing if a runtime directory is not available.
[ -n "${XDG_RUNTIME_DIR:-}" ] || exit 0
[ -d "$XDG_RUNTIME_DIR" ] || exit 0

# Avoid duplicate instances for the same user.
if command -v pgrep >/dev/null 2>&1; then
    if pgrep -u "$(id -u)" -x pipewire >/dev/null 2>&1; then
        exit 0
    fi
fi

# If a session D-Bus is already available, start directly.
if [ -n "${DBUS_SESSION_BUS_ADDRESS:-}" ]; then
    exec /usr/bin/pipewire
fi

# If dbus-run-session exists, use it as a fallback for sessions that do not
# already provide a user bus.
if command -v dbus-run-session >/dev/null 2>&1; then
    exec dbus-run-session /usr/bin/pipewire
fi

# Last resort: start PipeWire anyway. This supports minimal setups that provide
# enough environment without a session bus.
exec /usr/bin/pipewire

When wireplumber OR pipewire-pulse are installed a little file will be added to /usr/share/pipewire/pipewire.conf.d that automatically loads the installed package when pipewire starts. I also made sure that pipewire-pulse starts AFTER wireplumber

10-wireplumber.conf

context.exec = [
    { path = "/usr/bin/wireplumber" args = "" }
]

20-pipewire-pulse.conf

context.exec = [
    { path = "/usr/bin/pipewire-pulse" args = "" }
]

My requirements aren't fulfilled though, because there's one thing I definitely want and one thing that you guys MIGHT want:
I want to displaymanagers like sddm, lightdm, tdm, etc to have their own pipewire session. This isn't only useful for a greeter sound, but also screenreaders.
This is one of the reasons why  xdg autostart really isn't ideal. Please let me know if you have any good ideas. Having pipewire when only using a tty would also be nice.

Meanwhile you guys might want a way to have pipewire and wireplumber installed, but disabled. Let me know if that's what you want, because it will be important for porting all systemd services that should only run in a user session.

#8 Devuan » Seamless Devuan Project » 2026-04-09 16:50:01

Daemonratte
Replies: 17

Hey Devuan community!

Unfortunately over the last few years more and more sysv-init scripts have been removed from the debian repo, resulting in a less than optimal situation. Powerprofiles don't work out of the box meaning that even the netinstaller will drain your laptop's battery quickly, pipewire doesn't work unless you manually configure it, etc.
More and more people are starting to hate systemd and want to get away from it. Then they try Devuan and notice that they just don't get this "out of the box" experience they get on Debian. They're going to think Devuan sucks and we're going to lose them.

This is why I propose the "Seamless Devuan Project" big_smile
As far as I know the Devuan team maintains specialised packages for Devuan while pulling the rest from the Debian repos.
The goal is to provide the Devuan maintainers with a script that automatically patches those packages pulled from Debian to enable the same "out of the box"-experience debian has, but better (because we're going to support 6-7 init-systems).

For now I only checked each package in the excalibur repo for amd64 for init scripts. There are are lists for what packages contain scripts for which init system:
https://git.devuan.org/Daemonratte/Seam … lists-init

Step 1
For now we should only fokus on full coverage for SysVinit and OpenRC for Devuan Excalibur.
Here is the list of packages that we have to take care of:
https://git.devuan.org/Daemonratte/Seam … g_sysvinit

Step 2
Next in line is going to be runit. Void Linux is probably going to be the main source for runit scripts that can be copies.

Step 3 and 4
After we prepared all the services for OpenRC, SysVinit and Runit the next step is either going to be creating scripts for sinit, s6, shepherd and dinit (hey, there's no way this won't be added in the future) or doing the same for Freia, Ceres, Daedalus and Chimaera (in that order).

Step 5
When we're done it's time to create a script that automatically patches every .deb downloaded from the Debian repo. This way we can eliminate both the maintainance burden for the Devuan maintainers while also keeping users happy.

What you can do:
When you go to https://git.devuan.org/Daemonratte/Seam … atchfolder you're going to find folders for each package containing a script. Every package should have a systemd init script. Only half of the packages contain a SysVinit script. Feel free to upload working solutions that work on your machine smile
Please test all packages listed here:
https://git.devuan.org/Daemonratte/Seam … totest.txt
The plan is to get every package to work out of the box for each init script, which is why it's also important to update the postinstall, preremove and postremove scripts (DEBIAN/postinst | DEBIAN/prerm | DEBIAN/postrm) whenever you contribute to a package.

Board footer

Forum Software