Update manjaro-settings-manager to Qt6

Ayuh. Guilty as charged. :grinning_face:

I think I figured it out just before you replied. Thanks for the explanation, it filled in a little more information. I’m testing the packages in a Plasma VM as I go along.

.
└── usr
    ├── lib
    │   └── qt6
    │       └── plugins
    │           ├── msm_kernel.so
    │           ├── msm_language_packages.so
    │           └── msm_mhwd.so
    └── share
        ├── applications
        │   ├── msm_kernel.desktop
        │   ├── msm_language_packages.desktop
        │   └── msm_mhwd.desktop
        └── systemsettings
            └── categories
                └── manjaro-category.desktop

9 directories, 7 files

Now if only it would stop randomly failing to build. Disabling LTO doesn’t help.

[100%] Linking CXX shared module ../../../bin/msm_kernel.so
[100%] Built target msm_kernel
[100%] Linking CXX executable ../../bin/manjaro-settings-manager
/usr/bin/ld: /tmp/ccK2RFWP.ltrans0.ltrans.o: in function `main':
/build/manjaro-settings-manager/src/manjaro-settings-manager/src/msm/main.cpp:36:(.text.startup+0x11f): undefined reference to `qInitResources_kernel()'
collect2: error: ld returned 1 exit status
make[2]: *** [src/msm/CMakeFiles/msm_bin.dir/build.make:198: bin/manjaro-settings-manager] Error 1
make[1]: *** [CMakeFiles/Makefile2:2447: src/msm/CMakeFiles/msm_bin.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

I guess I’m done fiddling for the day. :waving_hand:

Amazing, thanks for all the effort you’re putting into this ^^.

I’ve not seen the linker error here :grimacing: - I’ll see if I can reproduce tomorrow. It is getting late!

I made one change to your PKGBUILD, my line 97 is:

  find "$pkgdir"/usr/share/applications/ -not -iname "$pkgbase.desktop" -type f -delete

(and remove install ... on line 98).

I installed the generated packages and manjaro-settings-manager seems to be working fine, functionality is easier to exercise this way :sweat_smile:. I’ll see if I can work out the notifier and the kcm package for similar testing tomorrow.

Should I push a commit to bump the manjaro-settings-manager version to 0.6.0? I see a couple more tweaks to make to the README as well.

Still no linker error seen here. Are you just running makepkg -Cs, or something else?

Just a heads-up that I’ve pushed a few more commits to my branch, hopefully all make sense.

I’ve been digging into the plugin install path a bit and came across kcoreaddons/KF6CoreAddonsMacros.cmake at master · KDE/kcoreaddons · GitHub . Fundamentally, these KCM .so files are not Qt - they’re KDE, and ldd shows dependencies on KF6, etc - so putting them in /usr/lib/qt6/plugins feels wrong to me. It looks like KDE puts its in /usr/lib/plugins/<namespace>, so maybe we should copy that? Or even use this CMake helper directly?

Looks like you already did, that’s fine. As you noticed, I was bumping it manually, anyway. I figured 0.6.0 would be a nice round version to use for something this big.

Yep, apparently that would be the way to do it. The modules launch manually, but aren’t appearing in System Settings.

❯ kcmshell6 msm_kernel
qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'msm_kernel'")

Well, after updating including Qt 6.11.2 packages today, I can’t reproduce it.

I’m building in a clean chroot with chrootbuild; i.e.,

sudo chrootbuild -p manjaro-settings-manager -c

I’ve been using manjaro‑settings‑manager‑qt6 for a few days on Openbox.
Everything works correctly.
:+1:

4 Likes

Do we have some current version suitable for broader public testing? Or the latest is the pkgbuild from 9 days ago?

The current PKGBUILD is on GitLab, ignore the old temporary one I posted above. Keep in mind it’s a WIP and the KCM is not complete.

Sorry I’ve gone a little quiet on this one, the KCM stuff is well outside of my wheelhouse and work stuff has taken priority the last week. Glad to see some testing is going on!

One thing I’ve not managed to get around to testing, that I view as important, is the notification logic. Any ideas / validation on that gratefully received.

On the -kcm package, I’ll note again that the current PKGBUILD has it commented out completely - PKGBUILD · master · Packages / extra / manjaro-settings-manager · GitLab . I view getting them working in plasma as a stretch goal, and it’s not very interesting to me personally as I use gnome :sweat_smile: . Probably better tackled in a separate effort by a different person, if at all, especially given this documentation: Settings module (KCM) development | Developer

KCMs consist of a KPackage holding the QML UI and a C++ library holding the logic. Some legacy KCMs are based on QtWidgets, however this is not recommended for new KCMs and it’s not possible to load these in plasma-settings. In Plasma, new KCMs should be built using QML and Kirigami.

If that applies to the msm code, then it implies a significant rewrite of the existing code, extending into a full rewrite of the UIs, that just isn’t necessary for dropping the qt5 dependency. The Qt5/Kf5 KCMs wouldn’t display in plasma either, even if they were being packaged, after all ^^.

3 Likes

Honestly i think since the distro has 3 official DEs, all distro related stuff and gui tools should be kept as DE independent as possible. So that it runs on gnome and xfce too. KCM shouldn’t really be a requirement in my opinion. Or maybe kept as an optional addon for plasma users, if technically possible. But not in the main package.

We already have the experiment with 2 pamacs - except for double efforts for maintenance it didn’t really bring anything useful.

1 Like

I think you’re misunderstanding.The KCM was always packaged separately as an optional dependency for Plasma users. I brought it up as I thought it would be nice for Plasma users. However, it sounds like an entire rewrite would be required as @lupine mentioned. Either way, it hasn’t been packaged in the repos for years.

2 Likes
3 Likes

What am I supposed to do here?
I cancelled and holding onto the update for now.
(Note - If this isnt the place where this belongs, please merge it into Unstable updates thread of August/Sep) I am on Unstable branch

❯ sudo pacman -Syu
[sudo] password for gaurav: 
:: Synchronising package databases...
 core                                                                      149.6 KiB   106 KiB/s 00:01 [#############################################################] 100%
 extra is up to date
 multilib is up to date
error: failed retrieving file 'extra.db' from mirrors.cicku.me : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
error: failed retrieving file 'multilib.db' from mirrors.cicku.me : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
:: Starting full system upgrade...
:: Replace manjaro-settings-manager-knotifier with extra/manjaro-settings-manager-kstatus-notifier? [Y/n] 
resolving dependencies...
looking for conflicting packages...
:: manjaro-settings-manager-qt6-0.6.0-2 and manjaro-settings-manager-0.5.8-10 are in conflict. Remove manjaro-settings-manager? [y/N] ^C
Interrupt signal received

Wouldn’t it be better if the testing version can be installed at the same time as the stable one instead of directly replacing a bunch of packages proven by the years?

Or the motto is - “if you’re on unstable you readily accept all kinds of experiments”. But then again someone has to remove the experiment before it trickles down to other branches.

I think at least until this is declared final stable version it should not conflict/replace anything (to be perfectly honest - qt5 will be with us for years to come, so it wasn’t really a necessityy, the qt6 version is a nice thing but not so critical that it be immediately forced upon everyone untested).

Since the qt6 version is brand new my personal opinion is it still should not replace the qt5 one without maybe at least 10 persons testing it, but that is up to the devs. Maybe just wait a bit and follow the dedicated topic.

1 Like

Hi,
today I replaced the Manjaro Settings Manager with the new Qt6 version.
Everything seems to be working fine for me so far, but when I first launched it, I wasn’t entirely sure if it was the right version… that’s when I noticed there was no “About” section.
It’s not a big deal, but it would be nice to have it.

Didn’t you know? “unstable” is for the “Chuck Norris” types among Manjaro users. :smiling_face_with_sunglasses:

1 Like

My main concern was if it’ll break something critical, thats why I created the support topic.
If that is just qt6 version update I’ll just install it, If I see anything weird I’ll report it here.


Although I am now confident troubleshooting on Arch based system, I still think its a better idea to seek advise from more experienced users here.
Its part of learning process for me.


Thanks for the link. I’ll proceed with the update.

Thanks for the link, I’ll proceed with the update.

P.S. : This time I didnt get prompted for any conflicts, maybe one of the packages has been withdrawn.

The manjaro-settings-manager is not system critical - it is a convenience GUI :slight_smile:

3 Likes

Manjaro Wiki - Manjaro:A Different Kind of Beast - Unstable branch

Unstable branch is synced several times daily from Arch stable and the packages from Arch repo are generally considered stable as they have been vetted by the Archlinux QA and the Archlinux community. Manjaro maintainers build kernels, kernel modules and nvidia graphic drivers from kernel source. This branch is also the entry point for Manjaro’s inhouse applications. The latest available versions of software will be located here and using the unstable branch may cause issues on your system but you are proficient, motivated and have no problem solving minor isssues on your own.

Manjaro Team could create a legacy package manjaro-settings-manager-qt5 if the Qt6 version is found to be buggy

4 Likes

Or if the user must remain with Qt5 for (other) compatibility reasons.

2 Likes