| 30 Aug 2025 |
| Herz uwu joined the room. | 18:34:20 |
| BasiqueEvangelist joined the room. | 18:35:11 |
Herz uwu | Sup 👋 | 20:44:20 |
Herz uwu | Some time ago (about a year ago) I was attempting to make a flake.nix that could be used to build a custom KDE/Qt application by simply running nix build and nix run on non-NixOS. It's a pretty simple flake:
{
description = "A flake for building a KDE app";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
};
outputs = { self, nixpkgs, }: {
defaultPackage.x86_64-linux =
with import nixpkgs {
system = "x86_64-linux";
};
stdenv.mkDerivation {
name = "someapp";
src = ./.;
buildInputs = [
qt6.full
pkgs.glibcLocales
pkgs.extra-cmake-modules
pkgs.libGL
kdePackages.kirigami
];
nativeBuildInputs = [
pkgs.cmake
qt6.wrapQtAppsHook
];
};
};
}
| 20:45:32 |
Herz uwu | It apparently works on NixOS according to a friend, but no on non-NixOS (openSUSE or Fedora). But on non-NixOS I get the following when I try with one of my apps:
qt.multimedia.symbolsresolver: Couldn't load pipewire-0.3 library
qt.multimedia.symbolsresolver: Couldn't resolve pipewire-0.3 symbols
qt.qpa.wayland: EGL not available
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.1 GPL version 3 or later
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
QRhiGles2: Failed to create temporary context
QRhiGles2: Failed to create context
Failed to create RHI (backend 2)
Failed to initialize graphics backend for OpenGL.
| 20:47:21 |
Herz uwu | It apparently works on NixOS according to a friend, but not on non-NixOS (openSUSE or Fedora). But on non-NixOS I get the following when I try it with one of my apps:
qt.multimedia.symbolsresolver: Couldn't load pipewire-0.3 library
qt.multimedia.symbolsresolver: Couldn't resolve pipewire-0.3 symbols
qt.qpa.wayland: EGL not available
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.1 GPL version 3 or later
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
QRhiGles2: Failed to create temporary context
QRhiGles2: Failed to create context
Failed to create RHI (backend 2)
Failed to initialize graphics backend for OpenGL.
| 20:47:58 |
Herz uwu | I'm aware of https://nixos.wiki/wiki/Nixpkgs_with_OpenGL_on_non-NixOS, but I'd like to know if I'm just missing something or, ideally, I could achieve this without needing nixGL. | 20:49:10 |
Herz uwu | * I'm aware of https://nixos.wiki/wiki/Nixpkgs_with_OpenGL_on_non-NixOS, but I'd like to know if I'm just missing something or, ideally, if I could achieve this without needing nixGL. | 20:49:55 |
| 31 Aug 2025 |
aloisw | That would require XDG_MENU_PREFIX=plasma- I think. In any case maybe these files should be moved to a separate output to avoid dragging in almost all of Plasma. | 04:59:05 |
K900 | You can pull in your own Mesa and set that up nixGL style | 05:14:51 |
K900 | But generally no | 05:14:54 |
K900 | The problem with graphics drivers is that even if we were to pull them in from the host system, there would be ABI fuckiness | 05:15:49 |
K900 | That is unavoidable | 05:15:53 |
Sandro 🐧 | If it is required to work then maybe it is unavoidable | 10:33:55 |
Sandro 🐧 | Also what problem does the extra output solve? Not rebuild counts and on plasma you have the entirety of plasma anyway | 10:34:21 |
aloisw | That entire issue is about using KDE apps on non-Plasma desktops to begin with. On Plasma XDG_MENU_PREFIX=plasma- is set automatically and obviously as you say the entirety of Plasma is already installed anyway. | 13:10:41 |
aloisw | If you want to e.g. use Dolphin on Niri then I don't know what ill effects XDG_MENU_PREFIX=plasma- will have (I do have set it myself and didn't notice any, but a lot about my desktop is fake Plasma to begin with) but having half of plasma is just a waste of disk space. | 13:12:22 |
Sandro 🐧 | is that also a problem if we just set it for dolphin? | 13:17:33 |
Sandro 🐧 | only for the programs launched from it probably | 13:17:42 |
aloisw | I do not know, I have it desktop-wide and it doesn't break anything that I care about, but don't know about other use cases. | 13:21:35 |
aloisw | Also note that setting this environment variable is not enough. You always need that file somewhere in XDG_CONFIG_DIRS (plus the submenu *.directory files in XDG_DATA_DIRS). In addition you either need to link it to applications.menu as described in the issue, or set XDG_MENU_PREFIX=plasma-. | 13:25:48 |
Marie | my plasmashell segfaults every hour or so :/ | 13:28:33 |
Marie | #0 0x00007f423a09caac in __pthread_kill_implementation () from /nix/store/8p33is69mjdw3bi1wmi8v2zpsxir8nwd-glibc-2.40-66/lib/libc.so.6
#1 0x00007f423a04190e in raise () from /nix/store/8p33is69mjdw3bi1wmi8v2zpsxir8nwd-glibc-2.40-66/lib/libc.so.6
#2 0x00007f423e6c96f3 in KCrash::defaultCrashHandler(int) () from /nix/store/ggwx87438a9wjz917cj8qbrwlfzg7k2p-kcrash-6.17.0/lib/libKF6Crash.so.6
#3 <signal handler called>
#4 0x00007f423b1185ee in QHttp2Connection::handleDATA() () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Network.so.6
#5 0x00007f423b11bb58 in QHttp2Connection::handleReadyRead() () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Network.so.6
#6 0x00007f423aa25d6e in void doActivate<false>(QObject*, int, void**) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#7 0x00007f419ffc3f93 in QTlsPrivate::TlsCryptographOpenSSL::transmit() [clone .part.0] () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/qt-6/plugins/tls/libqopensslbackend.so
#8 0x00007f423aa26038 in void doActivate<false>(QObject*, int, void**) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#9 0x00007f423b0e0667 in QAbstractSocketPrivate::canReadNotification() () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Network.so.6
#10 0x00007f423b0e98e1 in QReadNotifier::event(QEvent*) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Network.so.6
#11 0x00007f423d9a1c2d in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Widgets.so.6
#12 0x00007f423a9b8098 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#13 0x00007f423ace692d in socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#14 0x00007f4239d08f6d in g_main_context_dispatch_unlocked () from /nix/store/9151j4k3hwgj35bdz7va4bmlvgpa4pdm-glib-2.84.3/lib/libglib-2.0.so.0
#15 0x00007f4239d0b2b8 in g_main_context_iterate_unlocked.isra () from /nix/store/9151j4k3hwgj35bdz7va4bmlvgpa4pdm-glib-2.84.3/lib/libglib-2.0.so.0
#16 0x00007f4239d0bb4f in g_main_context_iteration () from /nix/store/9151j4k3hwgj35bdz7va4bmlvgpa4pdm-glib-2.84.3/lib/libglib-2.0.so.0
#17 0x00007f423ace55d3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#18 0x00007f423a9c6e4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#19 0x00007f423aaeee95 in QThread::exec() () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#20 0x00007f423ab97437 in QThreadPrivate::start(void*) () from /nix/store/9wrby1l822pmbvfn9kfxmvh5dhfnpgyb-qtbase-6.9.1/lib/libQt6Core.so.6
#21 0x00007f423a09a97a in start_thread () from /nix/store/8p33is69mjdw3bi1wmi8v2zpsxir8nwd-glibc-2.40-66/lib/libc.so.6
#22 0x00007f423a122d2c in __clone3 () from /nix/store/8p33is69mjdw3bi1wmi8v2zpsxir8nwd-glibc-2.40-66/lib/libc.so.6
| 13:28:47 |
K900 | This should be fixed in Qt 6.9.2 | 13:30:44 |
K900 | Which is now in staging-next | 13:30:48 |
Marie | oh, nice | 13:31:20 |
Sandro 🐧 | so then the issue is rather closed as not fixable? | 13:32:38 |
Sandro 🐧 | same... | 13:32:45 |
aloisw | What do you mean by "not fixable"? It even describes one solution. | 13:33:51 |
Sandro 🐧 | then we put the file for /etc in an extra module for dolphin? | 13:35:01 |