GerbilSoft / rom-properties

ROM Properties Page shell extension
GNU General Public License v2.0
469 stars 36 forks source link

Errors in KDE #382

Open Amnesia1000 opened 1 year ago

Amnesia1000 commented 1 year ago

At the moment the 3DS, Wii and GameCube games, when opening the properties tab, Rom-properties does not appear, but a tab that says xattrs. Besides not showing the thumbnails (which were successfully downloaded).

I'm currently using Manjaro KDE (Plasma 5.27.6 - Framework 5.107.0)

Screenshot_20230628_183458

The games are fine, since Windows takes them well and displays the thumbnails correctly.

And on the other hand, when entering "kbuildsycoca5 --noincremental" it gives the following error: kbuildsycoca5 running .... kf.service.services: The desktop entry file "/usr/share/applications/org.freedesktop.Xwayland.desktop" has Type= "Application" but no Exec line kf.service.sycoca: Invalid Service : "/usr/share/applications/org.freedesktop.Xwayland.desktop"

GerbilSoft commented 1 year ago

The xattrs tab is a new feature being introduced in rom-properties v2.2.

Are you able to do a git bisect to figure out which commit broke this? (It seems to be working fine here.)

Amnesia1000 commented 1 year ago

Sorry, it is an error that appeared on the PC of a friend when trying to install rom-properties, and until yesterday I was at home, before I left I uninstalled it so that it would not create problems. I currently use Gnome so I can not reproduce the problem.

Could it be because it has KDE plasma 5.27 and KDE 6?

GerbilSoft commented 1 year ago

I'm using KDE Plasma 5.27 on my own system, so that shouldn't be a problem.

KDE 6 isn't released yet. There's preliminary support for it, but I could see that potentially being an issue if some early KDE 6 packages are installed.

Amnesia1000 commented 1 year ago

Sorry, I meant to say QT6 not KDE 6.

GerbilSoft commented 1 year ago

Qt6 is only used if the necessary KDE Frameworks 6 packages are found. If not, then it'll use Qt5, since that's what KF5 uses.

Amnesia1000 commented 1 year ago

Ok, then I don't know what it could be, I installed it normally as I installed it before in KDE, you can close it if you want, if I ever travel again and I can give more information about the error I will do it without problem.

dnmodder commented 1 year ago

I have the same error and I am using Arch Linux + KDE Plasma 5.27.7, I checked that in Thunar it works well with 3DS ROMs but in Dolphin it doesn't.

I should add that I have installed the rom-properties package from the AUR, I am the current maintainer of the package.

GerbilSoft commented 1 year ago

This may be related to the changes to use the newer JSON plugin loading system introduced in KF5 5.89. I'll need to set up Manjaro and Arch VMs to see if I can reproduce it there.

EDIT: Here's an easy way to test. In src/kde/kf5/CMakeLists.txt, find the line that has this:

SET(HAVE_JSON_PLUGIN_LOADER 1)

and comment it out. (Add a # character at the beginning of the line.) Then rebuild and reinstall. (Remember to set -DCMAKE_INSTALL_PREFIX=/usr .)

dnmodder commented 1 year ago

Well I wanted to give it a try but now I have a compile error that has to do with gdkpixbuf and gtk4. imagen

dnmodder commented 1 year ago

Ah, compiling from master does not give me the error.

GerbilSoft commented 1 year ago

That particular issue was fixed in commit 348adc1ba49b08c14346e977fcea4baf0fe13c0b and was caused by the GTK devs moving gdkpixbuf.h to deprecated in GTK 4.12.

I'll eventually need to replace GdkPixbuf with something else, but I'm not sure what.

dnmodder commented 1 year ago

I applied that patch to fix the build in the PKGBUILD and also the commenting out the line of code in CMakeLists.txt and the tab still doesn't show up in Dolphin with 3DS games.

dnmodder commented 1 year ago

I originally forgot to say that with Wii and Gamecube games I don't have that problem, only with 3DS ones.

GerbilSoft commented 1 year ago

What MIME type does Dolphin say the 3DS games are? (Also the mimetype command line tool, in case they differ.)

dnmodder commented 1 year ago

application/x-ctr-cci and application/x-nintendo-3ds-rom

dnmodder commented 1 year ago

xdg-mime query filetype tells me it is application/x-ctr-cci

dnmodder commented 1 year ago

Also, I have a 3DS (MiiMaker) .app file, it tells me that it is application/x-nintendo-3ds-ncch in Dolphin and with the xdg-mime command, with that ROM the ROM Properties tab is shown.

dnmodder commented 1 year ago

Another thing, if I change the .3ds extension to .app, the ROM Properties tab appears. And xdg-mime returns this: application/x-nintendo-3ds-rom

GerbilSoft commented 1 year ago

application/x-ctr-cci is the issue. This MIME type appears to be specific to Citra; both rom-properties and upstream shared-mime-info use application/x-nintendo-3ds-rom.

I'll add Citra's MIME types to rom-properties to improve support.

dnmodder commented 1 year ago

I thought removing the .3ds extension from there would fix it but no. imagen

GerbilSoft commented 1 year ago

Please try the latest commit from the master branch. Note that you will need to do a clean build because CMake doesn't easily let me add a dependency for the generated .desktop and .json files due to how it's generated.

Remember to run kbuildsycoca5 after installing.

dnmodder commented 1 year ago

I confirm that it works correctly. imagen imagen

dnmodder commented 1 year ago

I have created a new package in AUR so that other users can test it. https://aur.archlinux.org/packages/rom-properties-git