No "sysinfo" for Leap 42.3

Although I know the “kio_sysinfo” package is old, it is still useful and it works in every openSUSE version I have used up through Leap 42.2.

In Leap 42.3, it does not work, at least not well. The package exists in the KDE Extra Leap 42.3 repository. Apparently neither Konqueror nor Rekonq are installed by default in 42.3. After installing Konqueror, when attempting to invoke “konqueror sysinfo:/”, which is how I have always used it in the past, it returns an error page to the effect of “Malformed url”. When invoking “rekonq sysinfo:/” it does load a sysinfo page which is colorless and lacking in icons (this is the same behavior when invoking “rekonq sysinfo:/” in 42.2).

So apparently something is missing which prevents konqueror from understanding the url “sysinfo:/”.

Any ideas?

Konqueror is KF5/Qt5 based in 42.3, and nobody ported kio_sysinfo.

The old KDE4 package is not going to work in the latest konqueror.

Like you I carried on using kio-system after it was dropped but as Wolfi says it won’t work with the version of plasma5 with 42.3

No, it (kio_sysinfo) doesn’t work with the version of Konqueror in 42.3. Plasma5 is irrelevant here… :wink:

Btw, I played a few hours with it today and ported it to Qt5/KF5. Here’s the result if you want to try (on your own risk of course):
https://software.opensuse.org//download.html?project=home%3Awolfi323%3Abranches%3AKDE%3AExtra&package=kio_sysinfo

Beware though: don’t right-click on a device! That made Konqueror eat up all memory here… (I removed handling of this for now as I wasn’t able to compile it, and that seems to cause that problem)

Also, it doesn’t work with the webenginepart, only with KHTML or kwebkitpart. (I remember discussions about similar problems with the man kio-slave, I suppose I will have a look what they did to fix it there)

I also had to remove the power plug status display, the used functionality has been removed from KDE Frameworks5.

Otherwise, it seems to work more or less fine.

But note that kio_sysinfo has been dropped upstream years ago already (long before work on KF5 started), the official replacement is KInfocenter (which is also part of Plasma5).
And I don’t intend to continue its development either, nor do I want to promise to fix possible problems or improve it in any way.

Thanks for going to this trouble.

I have installed your rpm (plus an old ‘kio_sysinfo’ branding rpm). But cannot get it to work (using the latest tumbleweed snapshot). On the desktop I have created a link with the url ‘sysinfo:/’ but it just opens in dolphin. Am I doing something wrong?

It was not trouble really, more for fun… :wink:

I have installed your rpm (plus an old ‘kio_sysinfo’ branding rpm). But cannot get it to work (using the latest tumbleweed snapshot). On the desktop I have created a link with the url ‘sysinfo:/’ but it just opens in dolphin. Am I doing something wrong?

Enter sysinfo:/ into konqueror’s address bar, or run “konqueror sysinfo:/”.

The reason that a normal link opens in dolphin might be that I “forgot” to register the mimetype application/x-sysinfo. I added that to the package now, so maybe try again.

I am aware of a few other problems though. E.g. kio_sysinfo actually consists of two parts, a KIO slave (that handles the “sysinfo:/” protocol and delivers a HTML page with the information) and a KPart (based on KHTML) that is to be embedded in Konqueror to actually display that HTML page.
The former works, but the latter not (yet) as Qt refuses to load the plugin, so the standard HTML engines are used (KHTML, kwebkitpart, webenginepart).
It would need more porting work.

The “extensions” of the kpart (over KHTML) AFAICS are just that it refreshes the page automatically every few seconds or whenever a device is added/removed, and it specifically handles right-clicks on device links (this is broken/doesn’t work in the KDE4 version already though, as I also noticed).

Also, the network status display is missing currently too, it would need to be ported away from Solid (its network classes are deprecated and apparently don’t work any more) to use Qt functionality directly.

The graphics card detection is somewhat outdated too (e.g. it only knows about R300 and R600, the latter is even patched in by openSUSE…).

And the OS detection uses deprecated files like /etc/SuSE-release, so will cease to work as well (in the probably not so distant future, I’m not even sure that Tumbleweed still has /etc/SuSE-release…)

Working fine. Thanks for your guidance.

As you say - the nvidia card details are brief and there is no /etc/SuSE-release file now with tumbleweed but I can copy over and amend the file from an old 13.2 installation. The ‘online’ info was taken from network manager - I have switch my system to this from wicked but it does not show.

Good fun - thank you very much.

I just revisited this thread and saw that wolfi had rewritten kio_sysinfo, and it works for me too. Thanks!

If you want the ‘system’ info to show in sysinfo add a text file with the name ‘SUSE-release’ in the etc folder with the following text:

openSUSE 42.3 (x86_64)

VERSION = 42.3

Actually only the first line would be needed… :wink:

But /etc/SuSE-release does still exist in 42.3 anyway.

That should have been the same in the past too though. Unless changes elsewhere causes problems in getting (some of) the information… (don’t have an nvidia card to investigate)

There’s also a possible problem with getting the 2D driver though:
It parses /var/log/Xorg.0.log for that, which may not exist any more (e.g. if you use gdm).

and there is no /etc/SuSE-release file now

I’ll probably change it to take the info from /etc/os-release (like kinfocenter does), but that’s not completely straight-forward because that file has a different structure. Currently, it just reads the first line from /etc/SuSE-release (or depending on the compile options, /etc/redhat-release or /etc/debian_version, others are not supported at all) and displays it.

The ‘online’ info was taken from network manager - I have switch my system to this from wicked but it does not show.

Not exactly.
As already indicated, it gets the status from KDE’s solid framework.
And the network classes are deprecated in KF5. They have actually been removed from solid, but are still part of kdelibs4support to ease the porting, though it seems they are not really functional any more.

The corresponding API docs do explain how it should be done now, but changing that needs work (and time) of course…

FYI, I implemented that change meanwhile, it now displays the “PRETTY_NAME” value from /etc/os-release.

IOW, with the current version, /etc/SuSE-release is no longer needed nor used.

Thanks very much.

Thank you wolfi, works great here.

One question, if you don’t mind: is there a way to sort the partition order? Here, for instance, I get:

label (partition)
work (sdb4)
tmp (sdb2)
windowsD (sdb1)
log (sdb3)
home (sda7)
root (sda6)
windowsC (sda4)
EFI system partition (sda2)
Recovery (sda1)

I’d like to sort by label or partition, if possible.

Thanks again,

Bruno

I’m sure there is, if you modify the source code. :wink:

If you ask about an option/configuration, there wasn’t one in the old KDE4 version either.

Ah, it’s a cost/benefit thing. Given that my last coding experience involved Turbopascal many decades ago and my successes in compiling source code were mediocre at best - besides the time off the constant struggle to provide for my family, I don’t think I could do it before being my creditors start knocking on my door. Or knocking down my door! :slight_smile:

Yes, I know. It’s just that there seems so be no logic whatsoever. It isn’t sorted by label, UUID, name nor anything.

Just for fun I opened the .src from Wolfi’s repo. IINM the relevant code is in the sysinfo.cpp file.

It seems that the relevant part are in sections:

*bool kio_sysinfoProtocol::fillMediaDevices()
*
and

QString kio_sysinfoProtocol::diskInfo()

But I don’t know where the device list is assembled. By the way, what language is that, C?

looks like Qt c++ (I’m no programer)

AFAICS, fillMediaDevices() just gets the list of devices from solid (KDE’s hardware abstraction layer/library) and doesn’t sort it in any way at all.
diskInfo() generates the HTML “code” for the table according to the list of devices.

IOW, the list of devices is “assembled” in the “solid” KDE Framework.
But sorting it there is probably non-sense.

If at all, it should be sorted manually in one of the two methods you mentioned.
But as the device list is stored in a normal QList, that is probably not straight-forward to implement though and would introduce additional complexity. (QList doesn’t allow to sort the elements unless they are QString’s, but they are of type DiskInfo in this case…)
IOW, I don’t think I will do it in the near future…

Indeed.
Like most of KDE’s software (including the libraries/Frameworks), since ever.

Although, to be exact, it’s written in C++, and uses the Qt framework.
(there is no programming language called “Qt c++” really… :wink: )

I’m sure I could understand this in one or two months… :slight_smile:

What you already did is more than enough, thank you very much!

Excuse me, is it possible to use “sysinfo” in Tumbleweed now? Or in 42.3?
I’m on 13.2 yet, time is came to upgrade the system, but I should not like to change my tools, “sysinfo” is among them and probably this tool already doesn’t work, is all so bad?