eclipse-packaging / packages

Eclipse IDE product definitions.
Eclipse Public License 2.0
4 stars 13 forks source link

Installation doesn't work: Unable to create resource URLImageDescriptor #187

Closed igornem1 closed 4 months ago

igornem1 commented 4 months ago

Version: 2024-06 (4.32.0) Build id: 20240606-1231

Steps to reproduce

From a fresh installation and clean workspace:

OR

I tried

I expected: Regular Eclipse window

But got: Eclipse window with many errors(see screenshot) eclipse

Here is attached log exported from Eclipse Workspace log tab

eclipse.log

Tested under this environment:

Community

jonahgraham commented 4 months ago

This works for me on Linux too - the specific image that is raising an error is displayed as expected:

jonahgraham commented 4 months ago

image

I am on Xubuntu 22.04, so a bit older linux. My guess is there is a problem related to the newer Linux version (Mint 21.3 release date is early 2024).

Download package https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2024-06/R/eclipse-java-2024-06-R-linux-gtk-x86_64.tar.gz

The screenshots and error log are from JEE, but this step in your instructions says download Java version. Does the Java version (eclipse-java-2024-06-R) suffer from the same problem (but presumably different icons in error message)?

jonahgraham commented 4 months ago

PS. As a workaround until we resolve this issue (assuming it is only affecting the Project Explorer badly). Close the Project Explorer, create a new project and then when you reopen the project explorer it shouldn't need to create those icons.

igornem1 commented 4 months ago

The screenshots and error log are from JEE, but this step in your instructions says download Java version. Does the Java version (eclipse-java-2024-06-R) suffer from the same problem (but presumably different icons in error message)?

Oh, my bad, sorry, just mistacked with a link, actually was downloaded JEE version, just typo when filled the issue page, don't know if pure Java version has same problem.

ps. As workaround currently installed previous version and updated from it. Yet image errors on initial Java EE perspective(see screenshot), but noticed other similar error-popups when imported Maven project. Probably some other's views images missed too. image

Phillipus commented 4 months ago

Looking at the error log all the images that couldn't be loaded are .gif format. We had a user of our RCP app report that some Linux distros have disabled support for some image formats. See https://github.com/archimatetool/archi/issues/1036#issuecomment-2118878984 and https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/e052a112075a19fb75f1f2ff3de4c82923de13f2

The Linux Mint 21.3. MATE version is Gnome based and that might be the case for that version.

@igornem1 Are you using the MATE version?

jonahgraham commented 4 months ago

Thanks @Phillipus for the insight. The changes in gdk-pixbuf are pretty recent and I can imagine we are about to start seeing the rollout of that change to early adopters of new versions. There was some discussion of reverting the change (https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/169) but that doesn't seem to have happened.

Quoting from that last link:

The fix for most applications is trivial: just convert whatever icons are affected to png.

A quick count shows almost 1000 gifs in the various platform/jdt/pde/equinox projects and an impressive 32k across all projects in SimRel.

@akurtakov have you heard of this potential problem?

Phillipus commented 4 months ago

There was some discussion of reverting the change (https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/169) but that doesn't seem to have happened.

I'm not sure if this a revert? https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/846

akurtakov commented 4 months ago

First time I hear of anything like this.

igornem1 commented 4 months ago

@igornem1 Are you using the MATE version?

Nop, the Cinnamon version

Phillipus commented 4 months ago

Nop, the Cinnamon version

So am I but gif images are showing OK.

igornem1 commented 4 months ago

Nop, the Cinnamon version

So am I but gif images are showing OK.

Bingo! image

Phillipus commented 4 months ago

So why are gifs OK on my version of Linux Mint?

igornem1 commented 4 months ago

So why are gifs OK on my version of Linux Mint?

I would be happy to know it

nitind commented 4 months ago

Are you able to query what version of the gdk library is installed?

igornem1 commented 4 months ago

And another case, for example in the log was errors similar to: !MESSAGE The image could not be loaded: URLImageDescriptor(platform:/plugin/org.eclipse.jst.servlet.ui/icons/full/ctool16/newservlet_wiz.gif)

So I've paid attention that in archive either installed by installer the folder doesn't contain folder "plugin", but "plugins", but anyway the file "newservlet_wiz.gif" doesn't exists at all

igornem1 commented 4 months ago

Are you able to query what version of the gdk library is installed?

Have no idea how to check it but if you'll teach me I can do it

Phillipus commented 4 months ago

So I've paid attention that in archive either installed by installer the folder doesn't contain folder "plugin", but "plugins", but anyway the file "newservlet_wiz.gif" doesn't exists at all

"plugin" is not a folder, it's a protocol. The image exists inside the plugin bundle.

igornem1 commented 4 months ago

what version of the gdk library is installed HTH: $ dpkg -l libgtk | grep -e '^i' | grep -e 'libgtk-[0-9]' ii libgtk-3-0:amd64 3.24.33-1ubuntu2.1 amd64 GTK graphical user interface library ii libgtk-3-bin 3.24.33-1ubuntu2.1 amd64 programs for the GTK graphical user interface library ii libgtk-3-common 3.24.33-1ubuntu2.1 all common files for the GTK graphical user interface library ii libgtk2.0-0:amd64 2.24.33-2ubuntu2 amd64 GTK graphical user interface library - old version ii libgtk2.0-bin 2.24.33-2ubuntu2 amd64 programs for the GTK graphical user interface library ii libgtk2.0-common 2.24.33-2ubuntu2 all common files for the GTK graphical user interface library ii libgtk3-perl 0.038-1 all Perl bindings for the GTK+ graphical user interface library

igornem1 commented 4 months ago

and $ dpkg -l gtk | grep -e '^i' | grep -e 'gtk-[0-9]' ii gtk2-engines:amd64 1:2.20.2-5build2 amd64 theme engines for GTK+ 2.x ii gtk2-engines-murrine:amd64 0.98.2-3build2 amd64 cairo-based gtk+-2.0 theme engine ii gtk2-engines-pixbuf:amd64 2.24.33-2ubuntu2 amd64 pixbuf-based theme for GTK 2

Phillipus commented 4 months ago

I installed a fresh install of Linux Mint Cinnamon 21.3 in a VM and all gif images are showing OK.

~@nitind~ @igornem1 Maybe you could check you have the latest updates for Mint, or check if there is something different about your installation, or even, if possible, try a fresh install on another machine or VM?

(Edited to change recipient of comment)

igornem1 commented 4 months ago

Hi guys, sorry for your effort I pushed you to do, just want add that before I installed Cinnamon it was installed with Mate version and the Cinnamon was installed upon it. The installation process was promised it will erase the previous and install a fresh Cinnamon but probably something went wrong.

nitind commented 4 months ago

@nitind Maybe you could check you have the latest updates for Mint, or check if there is something different about your installation, or even, if possible, try a fresh install on another machine or VM?

Unfortunately I tend to only run Fedora. My interest in this problem is as the product owner of the JEE package, and the maintainer of that org.eclipse.jst.servlet.ui plug-in.

jonahgraham commented 4 months ago

@igornem1 - you have answered which version of gtk as opposed to gdk. IIUC the problem is libgdk-pixbuf2.0 version, e.g. on my Xubuntu I see 2.42.8. The problematic version may be >= 2.42.11

$ dpkg -l *pixbuf*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version                Architecture Description
+++-==============================-======================-============-================================================
ii  gir1.2-gdkpixbuf-2.0:amd64     2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library - GObject-Introspection
ii  gtk2-engines-pixbuf:amd64      2.24.33-2ubuntu2       amd64        pixbuf-based theme for GTK 2
ii  libgdk-pixbuf-2.0-0:amd64      2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library
ii  libgdk-pixbuf-xlib-2.0-0:amd64 2.40.2-2build4         amd64        GDK Pixbuf library (deprecated Xlib integration)
ii  libgdk-pixbuf2.0-0:amd64       2.40.2-2build4         amd64        GDK Pixbuf library (transitional package)
ii  libgdk-pixbuf2.0-bin           2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library (thumbnailer)
ii  libgdk-pixbuf2.0-common        2.42.8+dfsg-1ubuntu0.3 all          GDK Pixbuf library - data files
un  libgdk-pixbuf2.0-dev           <none>                 <none>       (no description available)
ii  ruby-gdk-pixbuf2               3.4.3-1+ubuntu5        all          Gdk-Pixbuf 2 bindings for the Ruby language
akurtakov commented 4 months ago

My Fedora 40 still has gdk-pixbuf2-2.42.10-8.fc40.x86_64 so no breakage for me (still?). Even version wouldn't matter that much as whether these codecs are available seems to be controlled by a compile time flag as per https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/169#note_2092832 aka same version might be fine on one distro and not on another.

igornem1 commented 4 months ago

@jonahgraham

$ dpkg -l *pixbuf*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version                Architecture Description
+++-==========================-======================-============-==================================================================
ii  gir1.2-gdkpixbuf-2.0:amd64 2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library - GObject-Introspection
ii  gtk2-engines-pixbuf:amd64  2.24.33-2ubuntu2       amd64        pixbuf-based theme for GTK 2
ii  heif-gdk-pixbuf:amd64      1.14.2-1ubuntu1        amd64        ISO/IEC 23008-12:2017 HEIF file format decoder - gdk-pixbuf loader
ii  libgdk-pixbuf-2.0-0:amd64  2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library
un  libgdk-pixbuf2.0-0         <none>                 <none>       (no description available)
ii  libgdk-pixbuf2.0-bin       2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library (thumbnailer)
ii  libgdk-pixbuf2.0-common    2.42.8+dfsg-1ubuntu0.3 all          GDK Pixbuf library - data files
un  libgdk-pixbuf2.0-dev       <none>                 <none>       (no description available)
ii  webp-pixbuf-loader         0.0.5-5                amd64        WebP Image format GdkPixbuf loader

$ dpkg -l *gdk*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version                Architecture Description
+++-==========================-======================-============-==================================================================
un  gir1.2-cluttergdk-1.0      <none>                 <none>       (no description available)
un  gir1.2-gdk-3.0             <none>                 <none>       (no description available)
ii  gir1.2-gdkpixbuf-2.0:amd64 2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library - GObject-Introspection
un  gir1.2-gdkpixdata-2.0      <none>                 <none>       (no description available)
un  gir1.2-gdkx11-3.0          <none>                 <none>       (no description available)
ii  heif-gdk-pixbuf:amd64      1.14.2-1ubuntu1        amd64        ISO/IEC 23008-12:2017 HEIF file format decoder - gdk-pixbuf loader
ii  libgdk-pixbuf-2.0-0:amd64  2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library
un  libgdk-pixbuf2.0-0         <none>                 <none>       (no description available)
ii  libgdk-pixbuf2.0-bin       2.42.8+dfsg-1ubuntu0.3 amd64        GDK Pixbuf library (thumbnailer)
ii  libgdk-pixbuf2.0-common    2.42.8+dfsg-1ubuntu0.3 all          GDK Pixbuf library - data files
un  libgdk-pixbuf2.0-dev       <none>                 <none>       (no description available)
Phillipus commented 4 months ago

@nitind Maybe you could check you have the latest updates for Mint, or check if there is something different about your installation, or even, if possible, try a fresh install on another machine or VM?

Unfortunately I tend to only run Fedora. My interest in this problem is as the product owner of the JEE package, and the maintainer of that org.eclipse.jst.servlet.ui plug-in.

@nitind Sorry, I mistyped. That comment was meant for @igornem1 !

igornem1 commented 4 months ago

Hi @Phillipus , I've just removed manually my Linux Mint installation and installed it from beginning and now everything working as expected. One difference it that I've installed it with distribution package which I've downloaded about 2 monthes ago instead aforementioned one which I've downloaded a day before yesterday. As per checksum files they are identical although has a bit different folder structures, I hope later will have time to check it more thoroughly. Once again my apologies for a mess, seems the topic can be closed

Phillipus commented 4 months ago

Clearly this is not just an Eclipse issue but a potential problem for many Linux users/developers that use gif/bmp/ico/xpm format images in their tools. I guess it depends on the distro. I'm still unclear if the issue will be reverted:

https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/846

jonahgraham commented 4 months ago

@igornem1 I am glad to hear that a fresh install worked. I can't tell enough from the versions of pixbuf you have if that is the reason it failed (it seems unlikely someone built 2.42.8+dfsg-1ubuntu0.3 differently - without gif codec - for Ubuntu than Mint). There could be some other failure unrelated to the pixbuf included codecs change, but especially now that you have a working system I don't know how to diagnose this further.

Regardless, you have brought this to our collective attention, but it looks like Eclipse is going to rely on the Distros to keep including gif support as pixbuf goes through its refactoring.

I don't think there is any additional action here for now, but eventually Eclipse may have to replace all gifs with png, or add a different library to load gif files. The former would be a bug report on every single project, the latter would be an SWT change.

I have created the SWT issue https://github.com/eclipse-platform/eclipse.platform.swt/issues/1307 and I am going to close this issue. AFAICT there is nothing that Eclipse Packaging Project can do here.

iloveeclipse commented 4 months ago

What I can't understand: was it a "mistake" in Gnome or not, as the issue https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/846 is now closed / fixed?

Do we have a pointer to a Gnome ticket that would say "let remove gif/bmp/ico" support in XYZ version?

jonahgraham commented 4 months ago

IIUC it was disabled in Gnome by mistake, but it was disabled in the underlying library (gdk-pixbuf) on purpose. The challenge is that consumers of gdk-pixbuf needed to make a build script change between 2.42.10 and 2.42.11 (add -Dothers=enabled to compiler flags of gdk-pixbuf). It was documented in gdk-pixbuf NEWS - but you would have to know that gif (and others) were considered fringe by the gdk-pixbuf maintainers.

iloveeclipse commented 4 months ago

Sometimes I wonder if GTK developers are actually using what they produce. A world without gif isn't imaginable, how would we survive without all that? hell_yeah