Message ID | 0204dc81-bfad-4efb-a88a-5f90e00678aa@www.fastmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#37725] gnu: lxqt-config: Add libkscreen as propagated-inputs. | expand |
Hi,
"Hamzeh Nasajpour" <h.nasajpour@pantherx.org> skribis:
> * gnu/packages/lxqt.scm (lxqt-config): Remove libkscreen from native-inputs to propagated-inputs for running the lxqt-config-monitor.
In general, when adding a propagated input, could you add a comment in
the code itself explaining why it’s this way?
In this particular case, is the ‘lxqt-config-monitor’ command part of
libkscreen? Could we avoid propagation somehow?
Thanks,
Ludo’.
Hi, The problem is crashing the `lxqt-config-monitor` when I want to run it(`segmentation fault`). I installed the `libkscreen` and the problem was resolved. So I change the `lxqt-config` package definition and remove the `libkscreen` from `inputs` to `propagated-inputs`, install it and everything was ok. Regards, Hamzeh. On Mon, Oct 14, 2019, at 1:37 AM, Ludovic Courtès wrote: > Hi, > > "Hamzeh Nasajpour" <h.nasajpour@pantherx.org> skribis: > > > * gnu/packages/lxqt.scm (lxqt-config): Remove libkscreen from native-inputs to propagated-inputs for running the lxqt-config-monitor. > > In general, when adding a propagated input, could you add a comment in > the code itself explaining why it’s this way? > > In this particular case, is the ‘lxqt-config-monitor’ command part of > libkscreen? Could we avoid propagation somehow? > > Thanks, > Ludo’. >
Hi Hamzeh,
"Hamzeh Nasajpour" <h.nasajpour@pantherx.org> skribis:
> The problem is crashing the `lxqt-config-monitor` when I want to run it(`segmentation fault`). I installed the `libkscreen` and the problem was resolved. So I change the `lxqt-config` package definition and remove the `libkscreen` from `inputs` to `propagated-inputs`, install it and everything was ok.
Do you have a simple ‘operating-system’ configuration and instructions
we could follow to reproduce the initial problem?
Thanks in advance,
Ludo’.
Hi, maybe I could describe better about this patch file. `libkscreen` is used by `lxqt-config-monitor` to modify the desktop resolution in LXQt desktop. the problem is that, during execution of `lxqt-config-monitor` application crashes with "segmentation fault". we had a review over `lxqt-config-monitor` source code, but didn't find any unusual usage of `ksceen` library. just a normal link during build process and binaries were made successfully. this issue might because of crash inside `libkscreen`, but we didn't review that yet. so as a quick workaround we find that adding the `libkscreen` as a propagated input could fix this issue. -- Regards Reza Alizadeh Majd PantherX Team
Hi Reza, "Reza Alizadeh Majd" <r.majd@pantherx.org> skribis: > maybe I could describe better about this patch file. > > `libkscreen` is used by `lxqt-config-monitor` to modify > the desktop resolution in LXQt desktop. > > the problem is that, during execution of `lxqt-config-monitor` > application crashes with "segmentation fault". > > we had a review over `lxqt-config-monitor` source code, > but didn't find any unusual usage of `ksceen` library. just > a normal link during build process and binaries were made > successfully. > > this issue might because of crash inside `libkscreen`, but we > didn't review that yet. > > so as a quick workaround we find that adding the `libkscreen` > as a propagated input could fix this issue. Thanks for explaining, I understand better now. I think that it’s not satisfying to apply a workaround that we don’t understand. That is, intuitively, I see now reason why propagating libkscreen would “fix” a segfault. Could you either (1) provide an ‘operating-system’ config and instructions to reproduce the problem, or (2) grab a backtrace of the segfaulted program with GDB? Let us know if you need guidance. Thanks, Ludo’.
Hi Ludo, Sure, here is a minimal operating system configuration that we used for a minimal LXQt desktop on Guix: ``` (use-modules (gnu) (gnu system nss) (gnu packages kde-plasma)) (use-service-modules desktop networking ssh sddm dbus) (use-package-modules ssh certs tls lxqt xorg) (operating-system (host-name "panther") (timezone "Asia/Tehran") (locale "en_US.utf8") ;; Boot in "legacy" BIOS mode (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "/dev/sda"))) (file-systems (cons (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) (users (cons (user-account (name "user") (password "1234") (group "users") (supplementary-groups '("wheel" "audio" "video")) (home-directory "/home/user")) %base-user-accounts)) (packages (cons* openssh nss-certs gnutls lxqt lxqt-globalkeys ;; commented in order to re-produce the issue ; libkscreen %base-packages)) (services (cons* (sddm-service (sddm-configuration (minimum-uid 1000) (theme "elarun"))) (elogind-service) (udisks-service) (dbus-service) (colord-service) (service polkit-service-type) (service upower-service-type) (service dhcp-client-service-type) ;; network configuration (service openssh-service-type (openssh-configuration (port-number 22) (permit-root-login #t) (authorized-keys `(("panther" ,(local-file "/etc/vagrant.pub")) ("root" ,(local-file "/etc/vagrant.pub")))))) (service wpa-supplicant-service-type) %base-services)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss)) ``` the issue occurs when I try to execute `lxqt-config-monitor`. here is also the GDB backtrace log that I received during application crash: ``` root@panther /home/panther# cat monitor.txt Starting program: /gnu/store/k09wlkkmllwyr5d41bzn2mn9kvylgszr-profile/bin/lxqt-config-monitor [Thread debugging using libthread_db enabled] Using host libthread_db library "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/libthread_db.so.1". [New Thread 0x7ffff3bfb700 (LWP 860)] [New Thread 0x7ffff32d4700 (LWP 861)] [Detaching after fork from child process 862] [New Thread 0x7fffea615700 (LWP 863)] [New Thread 0x7fffe9e14700 (LWP 864)] [New Thread 0x7fffe9613700 (LWP 865)] [New Thread 0x7fffe8e12700 (LWP 866)] Thread 1 "lxqt-config-mon" received signal SIGSEGV, Segmentation fault. 0x00007ffff7fa1b01 in KScreen::GetConfigOperation::start() () from /gnu/store/ds7ib4ndgy48ac0hxrrsgc6xc4lsccva-libkscreen-5.15.1/lib/libKF5Screen.so.7 #0 0x00007ffff7fa1b01 in KScreen::GetConfigOperation::start() () from /gnu/store/ds7ib4ndgy48ac0hxrrsgc6xc4lsccva-libkscreen-5.15.1/lib/libKF5Screen.so.7 #1 0x00007ffff7fbe48d in KScreen::ConfigOperation::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /gnu/store/ds7ib4ndgy48ac0hxrrsgc6xc4lsccva-libkscreen-5.15.1/lib/libKF5Screen.so.7 #2 0x00007ffff6f28ad1 in QObject::event(QEvent*) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #3 0x00007ffff788214c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Widgets.so.5 #4 0x00007ffff7889280 in QApplication::notify(QObject*, QEvent*) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Widgets.so.5 #5 0x00007ffff6efd4f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #6 0x00007ffff6efff2b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #7 0x00007ffff6f51643 in ?? () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #8 0x00007ffff43ddb57 in g_main_context_dispatch () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libglib-2.0.so.0 #9 0x00007ffff43ddd98 in g_main_context_iterate.isra () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libglib-2.0.so.0 #10 0x00007ffff43dde3c in g_main_context_iteration () from /gnu/store/cgy82g6yv8l1chawgch47zh23b0jll3l-glib-2.56.3/lib/libglib-2.0.so.0 #11 0x00007ffff6f50caf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #12 0x00007ffff3deb3c1 in ?? () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/qt5/plugins/platforms/../../../libQt5XcbQpa.so.5 #13 0x00007ffff6efbe4a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #14 0x00007ffff6f04740 in QCoreApplication::exec() () from /gnu/store/ahyi57vlk48cmzsvxjwhxlxg2fdhxl9w-qtbase-5.11.3/lib/libQt5Core.so.5 #15 0x000000000040f92c in main () Quit quit ``` Best, Reza On Fri, Oct 18, 2019, at 1:24 PM, Ludovic Courtès wrote: > Hi Reza, > > "Reza Alizadeh Majd" <r.majd@pantherx.org> skribis: > > > maybe I could describe better about this patch file. > > > > `libkscreen` is used by `lxqt-config-monitor` to modify > > the desktop resolution in LXQt desktop. > > > > the problem is that, during execution of `lxqt-config-monitor` > > application crashes with "segmentation fault". > > > > we had a review over `lxqt-config-monitor` source code, > > but didn't find any unusual usage of `ksceen` library. just > > a normal link during build process and binaries were made > > successfully. > > > > this issue might because of crash inside `libkscreen`, but we > > didn't review that yet. > > > > so as a quick workaround we find that adding the `libkscreen` > > as a propagated input could fix this issue. > > Thanks for explaining, I understand better now. > > I think that it’s not satisfying to apply a workaround that we don’t > understand. That is, intuitively, I see now reason why propagating > libkscreen would “fix” a segfault. > > Could you either (1) provide an ‘operating-system’ config and > instructions to reproduce the problem, or (2) grab a backtrace of the > segfaulted program with GDB? > > Let us know if you need guidance. > > Thanks, > Ludo’. >
Hi Ludo, Have we any conclusion here? _Reza_ sent a configuration and backtrace. Regards, Hamzeh On Mon, Oct 14, 2019, at 11:51 PM, Ludovic Courtès wrote: > Hi Hamzeh, > > "Hamzeh Nasajpour" <h.nasajpour@pantherx.org> skribis: > > > The problem is crashing the `lxqt-config-monitor` when I want to run it(`segmentation fault`). I installed the `libkscreen` and the problem was resolved. So I change the `lxqt-config` package definition and remove the `libkscreen` from `inputs` to `propagated-inputs`, install it and everything was ok. > > Do you have a simple ‘operating-system’ configuration and instructions > we could follow to reproduce the initial problem? > > Thanks in advance, > Ludo’. >
Hi Reza, Sorry for the very late reply. "Reza Alizadeh Majd" <r.majd@pantherx.org> skribis: > Sure, here is a minimal operating system configuration that we used for a > minimal LXQt desktop on Guix: I added a window manager to the global profile so that I could actually log in, but then I don’t even know how to get a terminal… I think I’m not well positioned to further debug this. Did you discuss it with upstream? Thanks, Ludo’. (use-modules (gnu) (gnu system nss) (gnu packages kde-plasma)) (use-service-modules desktop networking ssh sddm dbus) (use-package-modules ssh certs tls lxqt xorg openbox) (operating-system (host-name "panther") (timezone "Asia/Tehran") (locale "en_US.utf8") ;; Boot in "legacy" BIOS mode (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "/dev/sda"))) (file-systems (cons (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) (users (cons (user-account (name "user") (password (crypt "1234" "$6$abc")) (group "users") (supplementary-groups '("wheel" "audio" "video")) (home-directory "/home/user")) %base-user-accounts)) (packages (cons* openssh nss-certs gnutls lxqt lxqt-globalkeys openbox ;; commented in order to re-produce the issue ; libkscreen %base-packages)) (services (cons* (sddm-service (sddm-configuration (minimum-uid 1000) (theme "elarun"))) (elogind-service) (udisks-service) (dbus-service) (colord-service) (service polkit-service-type) (service upower-service-type) (service dhcp-client-service-type) ;; network configuration (service openssh-service-type (openssh-configuration (port-number 22) (permit-root-login #t))) (service wpa-supplicant-service-type) %base-services)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss))
On Thu, Apr 02, 2020 at 11:47:04PM +0430, Hamzeh Nasajpour wrote: > > Hi Ludo, > > Have we any conclusion here? _Reza_ sent a configuration and backtrace. > > Regards, > Hamzeh > > On Mon, Oct 14, 2019, at 11:51 PM, Ludovic Courtès wrote: > > Hi Hamzeh, > > > > "Hamzeh Nasajpour" <h.nasajpour@pantherx.org> skribis: > > > > > The problem is crashing the `lxqt-config-monitor` when I want to run it(`segmentation fault`). I installed the `libkscreen` and the problem was resolved. So I change the `lxqt-config` package definition and remove the `libkscreen` from `inputs` to `propagated-inputs`, install it and everything was ok. > > > > Do you have a simple ‘operating-system’ configuration and instructions > > we could follow to reproduce the initial problem? > > > > Thanks in advance, > > Ludo’. > > I did some investigating myself and I think there's a regression in qtbase somewhere. guix environment --ad-hoc strace libkscreen lxqt-config -- strace -o ~/lxqt-config-monitor.strace lxqt-config-monitor QApplication: invalid style override passed, ignoring it. Available styles: Windows, Fusion (0x7ffc74134b40) Warning: "Icon Theme not set. Fallbacking to Oxygen, if installed" (0x7ffc74134b40) Warning: "Fallback Icon Theme (Oxygen) not found" And no lxqt-config-monitor loaded. I've attached the strace, but it shows it looking for the kscreen directory in qtbase/lib/qt5/plugins/kf5/kscreen and lxqt-config/bin/kf5/kscreen. For the record it's in libkscreen/lib/qt5/plugins/kf5/kscreen
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index e5487d3ae4..a3c796d9e8 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -367,7 +367,6 @@ the operating system LXQt is running on.") (inputs `(("eudev" ,eudev) ("kwindowsystem" ,kwindowsystem) - ("libkscreen" ,libkscreen) ("liblxqt" ,liblxqt) ("libqtxdg" ,libqtxdg) ("libxcursor" ,libxcursor) @@ -382,6 +381,8 @@ the operating system LXQt is running on.") `(("pkg-config" ,pkg-config) ("lxqt-build-tools" ,lxqt-build-tools) ("qttools" ,qttools))) + (propagated-inputs + `(("libkscreen" ,libkscreen))) (arguments '(#:tests? #f ; no tests #:phases