Shotwell Cannot Import HEIF/HEIC Images, Says "unsupported"

I remember back when EOG wouldn’t open HIEF-based images, but I haven’t thought about it in a while, which usually means support has arrived. But, I was trying to import a .heic file into Shotwell, today, and it gave me an unsupported file-type error. I checked, and support for HEIF was added to Shotwell a while ago. Someone on the Gnome discord says there is a problem in Fedora and a bug, but if so, it’s not open anymore that I could see.

Thoughts?

Are you using rpmfusion and have libraries for heic/heif installed?

I hope you solve it the RPMFusion way, as mentioned above. Otherwise you can also try installing Shotwell as Flatpak from Flathub. Looking at its metadata, it seems it will also install the org.gnome.Shotwell.HEIC runtime extension.

For further multimedia codecs, there’s always to the option to install the org.freedesktop.Platform.codecs-extra runtime manually (which should also work for other multimedia apps from Flathub - Loupe, Fotema, Showtime, etc).

Yes, I have all rpmfusion libraries for HEIF/HEIC installed, AFAICT.

$ rpm --query --all|rg -i "heif|heic"
ImageMagick-heic-7.1.2.13-2.fc44.x86_64
libheif-1.21.2-1.fc44.x86_64
libheif-freeworld-1.21.2-3.fc44.x86_64
libheif-tools-1.21.2-1.fc44.x86_64
qt-heif-image-plugin-0.3.4-6.fc44.x86_64
libheif-1.21.2-1.fc44.i686
vips-heif-8.18.0-6.fc44.x86_64

From DNF

Installed packages (available for reinstall, available for upgrade)
ImageMagick-heic.x86_64 1:7.1.2.13-2.fc44 <unknown>

Installed packages (available for reinstall, available for upgrade)
libheif.i686                              1.21.2-1.fc44 fedora
libheif.x86_64                            1.21.2-1.fc44 fedora
libheif-freeworld.x86_64                  1.21.2-3.fc44 rpmfusion-free
libheif-tools.x86_64                      1.21.2-1.fc44 fedora
qt-heif-image-plugin.x86_64               0.3.4-6.fc44  rpmfusion-free
vips-heif.x86_64                          8.18.0-6.fc44 fedora

Interesting. I only have the following to make things work:

$ rpm --query --all|egrep -i "heif|heic"
libheif-1.21.2-1.fc44.x86_64
libheif-tools-1.21.2-1.fc44.x86_64
libheif-freeworld-1.21.2-3.fc44.x86_64

and

$ dnf list --installed | egrep -i 'heif|heic'
libheif.x86_64                                       1.21.2-1.fc44                       e2a9d22568824ebe846433db19e0b0b8
libheif-freeworld.x86_64                             1.21.2-3.fc44                       rpmfusion-free
libheif-tools.x86_64                                 1.21.2-1.fc44                       fedora

My repo list

$ dnf repo list
repo id                                                                       repo name                                                                                      
fedora                                                                        Fedora 44 - x86_64                                                                             
fedora-cisco-openh264                                                         Fedora 44 openh264 (From Cisco) - x86_64                                                       
rpmfusion-free                                                                RPM Fusion for Fedora 44 - Free                                                                
rpmfusion-free-updates                                                        RPM Fusion for Fedora 44 - Free - Updates                                                      
updates                                                                       Fedora 44 - x86_64 - Updates   

Basically, default XFCE spin install, then rpmfusion enabled and extra packages installed:

# from fedora base
$ sudo dnf in libheif-tools
# from rpmfusion
$ sudo dnf in libheif-freeworld

I am also using shotwell (shotwell-33~alpha-9.fc44.x86_64) w/o any issues.

Maybe the two libheif packages (x86_64 and i686) cause troubles? Maybe you can share an example image to see if it is something special?

Could be a Gnome vs Xfce thing? Perhaps Shotwell it is behaving differently and using the glycin backend on Gnome and not on Xfce? Although glycin-heif is shipped in Fedora and should still leverage libheif, but could be missing support modes for some particular files… :person_shrugging:

Dunno. Don’t have a Gnome system running. However, just tried it on F44 KDE and it just works the same as with XFCE.

Hmm, frustrating.

I tried creating a .heic file using ImageMagic to convert a .png file, and that seemed to work; I can open the result in EOG and it says the file type is HEIF. But, when I try to import that image, I get the same error about unsupported file type.

When I click on the button to “Save error”, Shotwell completely crashes. Guess I can report that, but I doubt that is related to the importing problem.

I get the sense that format “support” is not even inside Shotwell, but external. I seems like it is completely automatic, so I’m not sure where to go with the troubleshooting at this point. And, that’s extra confusing, because I’m assuming EOG has a similar automated support system, but EOG opens my .heic files just fine.

Shotwell gives no errors to console or the journal. Guess I could strace it? … Ooph, too much. I see it stat-ing the file, but can’t figure out anything else.

Hm. Maybe you could compare the libraries loaded by shotwell.

# ldd `which shotwell`
	linux-vdso.so.1 (0x00007fba29e7b000)
	libshotwell-plugin-dev-1.0.so.0 => /lib64/libshotwell-plugin-dev-1.0.so.0 (0x00007fba29e39000)
	libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fba29612000)
	libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007fba29dd8000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fba294b0000)
	libgee-0.8.so.2 => /lib64/libgee-0.8.so.2 (0x00007fba293e6000)
	libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007fba2925a000)
	libgtk-4.so.1 => /lib64/libgtk-4.so.1 (0x00007fba28600000)
	libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007fba29dc3000)
	libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007fba29d54000)
	libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007fba2922a000)
	libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x00007fba29d4b000)
	libcairo.so.2 => /lib64/libcairo.so.2 (0x00007fba284b6000)
	libgraphene-1.0.so.0 => /lib64/libgraphene-1.0.so.0 (0x00007fba2920d000)
	libgphoto2.so.6 => /lib64/libgphoto2.so.6 (0x00007fba29184000)
	libgphoto2_port.so.12 => /lib64/libgphoto2_port.so.12 (0x00007fba29d3c000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fba2839f000)
	libgstreamer-1.0.so.0 => /lib64/libgstreamer-1.0.so.0 (0x00007fba2822e000)
	libgudev-1.0.so.0 => /lib64/libgudev-1.0.so.0 (0x00007fba29176000)
	libgexiv2.so.2 => /lib64/libgexiv2.so.2 (0x00007fba281f4000)
	libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007fba29170000)
	libraw.so.25 => /lib64/libraw.so.25 (0x00007fba280bc000)
	libexif.so.12 => /lib64/libexif.so.12 (0x00007fba2807c000)
	libwebpdemux.so.2 => /lib64/libwebpdemux.so.2 (0x00007fba2916a000)
	libwebp.so.7 => /lib64/libwebp.so.7 (0x00007fba27ff3000)
	libportal.so.1 => /lib64/libportal.so.1 (0x00007fba27fc2000)
	libportal-gtk4.so.1 => /lib64/libportal-gtk4.so.1 (0x00007fba27fba000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fba27dbf000)
	libz.so.1 => /lib64/libz.so.1 (0x00007fba27d95000)
	libmount.so.1 => /lib64/libmount.so.1 (0x00007fba27d3c000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fba27d09000)
	libffi.so.8 => /lib64/libffi.so.8 (0x00007fba27cf7000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fba27c46000)
	libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fba27b0a000)
	libharfbuzz-subset.so.0 => /lib64/libharfbuzz-subset.so.0 (0x00007fba279e4000)
	libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007fba279c4000)
	libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fba2796f000)
	libepoxy.so.0 => /lib64/libepoxy.so.0 (0x00007fba27862000)
	libgstplay-1.0.so.0 => /lib64/libgstplay-1.0.so.0 (0x00007fba2783e000)
	libgstvideo-1.0.so.0 => /lib64/libgstvideo-1.0.so.0 (0x00007fba2775f000)
	libgstgl-1.0.so.0 => /lib64/libgstgl-1.0.so.0 (0x00007fba276c7000)
	libgstallocators-1.0.so.0 => /lib64/libgstallocators-1.0.so.0 (0x00007fba276bd000)
	libXi.so.6 => /lib64/libXi.so.6 (0x00007fba276a8000)
	libX11.so.6 => /lib64/libX11.so.6 (0x00007fba27552000)
	libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007fba27536000)
	libtinysparql-3.0.so.0 => /lib64/libtinysparql-3.0.so.0 (0x00007fba27459000)
	libvulkan.so.1 => /lib64/libvulkan.so.1 (0x00007fba273d0000)
	libpng16.so.16 => /lib64/libpng16.so.16 (0x00007fba27393000)
	libtiff.so.6 => /lib64/libtiff.so.6 (0x00007fba272f7000)
	libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007fba27253000)
	libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007fba271f4000)
	libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007fba271e5000)
	libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007fba271e1000)
	libXext.so.6 => /lib64/libXext.so.6 (0x00007fba271cd000)
	libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007fba271be000)
	libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007fba271ba000)
	libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007fba271b2000)
	libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007fba271a5000)
	libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007fba271a1000)
	libcairo-script-interpreter.so.2 => /lib64/libcairo-script-interpreter.so.2 (0x00007fba2717d000)
	libcups.so.2 => /lib64/libcups.so.2 (0x00007fba270e3000)
	libcolord.so.2 => /lib64/libcolord.so.2 (0x00007fba27088000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fba2705b000)
	libthai.so.0 => /lib64/libthai.so.0 (0x00007fba2704f000)
	libglycin-2.so.0 => /lib64/libglycin-2.so.0 (0x00007fba26c00000)
	libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fba26b24000)
	libXrender.so.1 => /lib64/libXrender.so.1 (0x00007fba27040000)
	libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fba26afa000)
	libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fba27031000)
	libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007fba2702d000)
	libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007fba26a49000)
	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fba26a3d000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fba29e7d000)
	libunwind.so.8 => /lib64/libunwind.so.8 (0x00007fba26a22000)
	libdw.so.1 => /lib64/libdw.so.1 (0x00007fba26981000)
	libudev.so.1 => /lib64/libudev.so.1 (0x00007fba26935000)
	libexiv2.so.28 => /lib64/libexiv2.so.28 (0x00007fba26600000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fba26200000)
	liblcms2.so.2 => /lib64/liblcms2.so.2 (0x00007fba26595000)
	libgomp.so.1 => /lib64/libgomp.so.1 (0x00007fba26537000)
	libsharpyuv.so.0 => /lib64/libsharpyuv.so.0 (0x00007fba2692c000)
	libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fba268ef000)
	libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fba26517000)
	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fba26091000)
	libgsttag-1.0.so.0 => /lib64/libgsttag-1.0.so.0 (0x00007fba264d5000)
	libgstpbutils-1.0.so.0 => /lib64/libgstpbutils-1.0.so.0 (0x00007fba2604a000)
	libgstbase-1.0.so.0 => /lib64/libgstbase-1.0.so.0 (0x00007fba25fc1000)
	liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00007fba25f1e000)
	libEGL.so.1 => /lib64/libEGL.so.1 (0x00007fba264c4000)
	libGLX.so.0 => /lib64/libGLX.so.0 (0x00007fba25eed000)
	libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007fba268e3000)
	libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007fba264c0000)
	libdrm.so.2 => /lib64/libdrm.so.2 (0x00007fba25ed7000)
	libgbm.so.1 => /lib64/libgbm.so.1 (0x00007fba264b8000)
	libjson-glib-1.0.so.0 => /lib64/libjson-glib-1.0.so.0 (0x00007fba25eab000)
	libzstd.so.1 => /lib64/libzstd.so.1 (0x00007fba25dc1000)
	libLerc.so.4 => /lib64/libLerc.so.4 (0x00007fba25d26000)
	libjbig.so.2.1 => /lib64/libjbig.so.2.1 (0x00007fba25d18000)
	liblzo2.so.2 => /lib64/liblzo2.so.2 (0x00007fba25cf3000)
	libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fba25c98000)
	libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x00007fba25c89000)
	libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x00007fba25c75000)
	libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007fba25800000)
	libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007fba25c6c000)
	libseccomp.so.2 => /lib64/libseccomp.so.2 (0x00007fba25c40000)
	libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fba25c2c000)
	libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007fba25c1d000)
	libXau.so.6 => /lib64/libXau.so.6 (0x00007fba25c18000)
	libelf.so.1 => /lib64/libelf.so.1 (0x00007fba25bf9000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fba25bc3000)
	libexpat.so.1 => /lib64/../lib64/libexpat.so.1 (0x00007fba25b95000)
	libINIReader.so.0 => /lib64/../lib64/libINIReader.so.0 (0x00007fba25b8a000)
	libgstaudio-1.0.so.0 => /lib64/libgstaudio-1.0.so.0 (0x00007fba25aff000)
	libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007fba25788000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fba256b6000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fba25ae5000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fba25adf000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fba25ace000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fba25ac6000)
	libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007fba25000000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fba256a3000)
	libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fba2564b000)
	libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007fba24e5d000)
	libidn2.so.0 => /lib64/libidn2.so.0 (0x00007fba255fa000)
	libunistring.so.5 => /lib64/libunistring.so.5 (0x00007fba24caf000)
	libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007fba255e3000)
	libhogweed.so.6 => /lib64/libhogweed.so.6 (0x00007fba255a0000)
	libnettle.so.8 => /lib64/libnettle.so.8 (0x00007fba24c58000)
	libgmp.so.10 => /lib64/libgmp.so.10 (0x00007fba24baf000)
	libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007fba2557d000)
	libinih.so.0 => /lib64/libinih.so.0 (0x00007fba25abe000)
	libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fba24a77000)

Oh, yes, duh, that’s a great idea…

	linux-vdso.so.1 (0x00007f8dceab8000)
	libshotwell-plugin-dev-1.0.so.0 => /lib64/libshotwell-plugin-dev-1.0.so.0 (0x00007f8dcea4b000)
	libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f8dce212000)
	libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f8dce9ea000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f8dce0b0000)
	libgee-0.8.so.2 => /lib64/libgee-0.8.so.2 (0x00007f8dcdfe6000)
	libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007f8dcde5a000)
	libgtk-4.so.1 => /lib64/libgtk-4.so.1 (0x00007f8dcd200000)
	libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007f8dce9d5000)
	libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007f8dce966000)
	libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007f8dcde2a000)
	libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x00007f8dce95d000)
	libcairo.so.2 => /lib64/libcairo.so.2 (0x00007f8dcd0b6000)
	libgraphene-1.0.so.0 => /lib64/libgraphene-1.0.so.0 (0x00007f8dce93e000)
	libgphoto2.so.6 => /lib64/libgphoto2.so.6 (0x00007f8dcdda1000)
	libgphoto2_port.so.12 => /lib64/libgphoto2_port.so.12 (0x00007f8dcdd94000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f8dccf9f000)
	libgstreamer-1.0.so.0 => /lib64/libgstreamer-1.0.so.0 (0x00007f8dcce2e000)
	libgudev-1.0.so.0 => /lib64/libgudev-1.0.so.0 (0x00007f8dcdd86000)
	libgexiv2.so.2 => /lib64/libgexiv2.so.2 (0x00007f8dccdf4000)
	libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f8dcdd80000)
	libraw.so.25 => /lib64/libraw.so.25 (0x00007f8dcccbc000)
	libexif.so.12 => /lib64/libexif.so.12 (0x00007f8dccc7c000)
	libwebpdemux.so.2 => /lib64/libwebpdemux.so.2 (0x00007f8dcdd7a000)
	libwebp.so.7 => /lib64/libwebp.so.7 (0x00007f8dccbf3000)
	libportal.so.1 => /lib64/libportal.so.1 (0x00007f8dccbc4000)
	libportal-gtk4.so.1 => /lib64/libportal-gtk4.so.1 (0x00007f8dcdd72000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f8dcc9c9000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f8dcc99f000)
	libmount.so.1 => /lib64/libmount.so.1 (0x00007f8dcc946000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f8dcc913000)
	libffi.so.8 => /lib64/libffi.so.8 (0x00007f8dcc903000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f8dcc852000)
	libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f8dcc716000)
	libharfbuzz-subset.so.0 => /lib64/libharfbuzz-subset.so.0 (0x00007f8dcc5f0000)
	libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007f8dcc5d0000)
	libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f8dcc57d000)
	libepoxy.so.0 => /lib64/libepoxy.so.0 (0x00007f8dcc470000)
	libgstplay-1.0.so.0 => /lib64/libgstplay-1.0.so.0 (0x00007f8dcc44c000)
	libgstvideo-1.0.so.0 => /lib64/libgstvideo-1.0.so.0 (0x00007f8dcc36d000)
	libgstgl-1.0.so.0 => /lib64/libgstgl-1.0.so.0 (0x00007f8dcc2d5000)
	libgstallocators-1.0.so.0 => /lib64/libgstallocators-1.0.so.0 (0x00007f8dcc2cb000)
	libXi.so.6 => /lib64/libXi.so.6 (0x00007f8dcc2b8000)
	libX11.so.6 => /lib64/libX11.so.6 (0x00007f8dcc162000)
	libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007f8dcc146000)
	libtinysparql-3.0.so.0 => /lib64/libtinysparql-3.0.so.0 (0x00007f8dcc069000)
	libvulkan.so.1 => /lib64/libvulkan.so.1 (0x00007f8dcbfe0000)
	libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f8dcbfa3000)
	libtiff.so.6 => /lib64/libtiff.so.6 (0x00007f8dcbf09000)
	libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007f8dcbe65000)
	libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007f8dcbe06000)
	libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007f8dcbdf7000)
	libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007f8dcbdf3000)
	libXext.so.6 => /lib64/libXext.so.6 (0x00007f8dcbddf000)
	libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007f8dcbdd0000)
	libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f8dcbdcc000)
	libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f8dcbdc4000)
	libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f8dcbdb7000)
	libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007f8dcbdb3000)
	libcairo-script-interpreter.so.2 => /lib64/libcairo-script-interpreter.so.2 (0x00007f8dcbd8f000)
	libcups.so.2 => /lib64/libcups.so.2 (0x00007f8dcbcf5000)
	libcolord.so.2 => /lib64/libcolord.so.2 (0x00007f8dcbc9a000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8dcbc6d000)
	libthai.so.0 => /lib64/libthai.so.0 (0x00007f8dcbc61000)
	libglycin-2.so.0 => /lib64/libglycin-2.so.0 (0x00007f8dcb800000)
	libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f8dcb724000)
	libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f8dcbc52000)
	libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f8dcbc28000)
	libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007f8dcb715000)
	libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007f8dcb711000)
	libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007f8dcb660000)
	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f8dcb654000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f8dceaba000)
	libunwind.so.8 => /lib64/libunwind.so.8 (0x00007f8dcb639000)
	libdw.so.1 => /lib64/libdw.so.1 (0x00007f8dcb598000)
	libudev.so.1 => /lib64/libudev.so.1 (0x00007f8dcb54c000)
	libexiv2.so.28 => /lib64/libexiv2.so.28 (0x00007f8dcb200000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f8dcae00000)
	liblcms2.so.2 => /lib64/liblcms2.so.2 (0x00007f8dcb195000)
	libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f8dcb4ec000)
	libsharpyuv.so.0 => /lib64/libsharpyuv.so.0 (0x00007f8dcb4e3000)
	libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f8dcb158000)
	libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f8dcb136000)
	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f8dcac91000)
	libgsttag-1.0.so.0 => /lib64/libgsttag-1.0.so.0 (0x00007f8dcb0f4000)
	libgstpbutils-1.0.so.0 => /lib64/libgstpbutils-1.0.so.0 (0x00007f8dcac4a000)
	libgstbase-1.0.so.0 => /lib64/libgstbase-1.0.so.0 (0x00007f8dcabc1000)
	liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00007f8dcab1e000)
	libEGL.so.1 => /lib64/libEGL.so.1 (0x00007f8dcb0e1000)
	libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f8dcaaed000)
	libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007f8dcb0d7000)
	libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f8dcb0d3000)
	libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f8dcb0bd000)
	libgbm.so.1 => /lib64/libgbm.so.1 (0x00007f8dcb0b5000)
	libjson-glib-1.0.so.0 => /lib64/libjson-glib-1.0.so.0 (0x00007f8dcaac1000)
	libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f8dca9d7000)
	libLerc.so.4 => /lib64/libLerc.so.4 (0x00007f8dca93c000)
	libjbig.so.2.1 => /lib64/libjbig.so.2.1 (0x00007f8dca92e000)
	liblzo2.so.2 => /lib64/liblzo2.so.2 (0x00007f8dca909000)
	libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f8dca8ae000)
	libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x00007f8dca89f000)
	libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x00007f8dca88b000)
	libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007f8dca400000)
	libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007f8dca880000)
	libseccomp.so.2 => /lib64/libseccomp.so.2 (0x00007f8dca854000)
	libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f8dca840000)
	libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f8dca831000)
	libXau.so.6 => /lib64/libXau.so.6 (0x00007f8dca82c000)
	libelf.so.1 => /lib64/libelf.so.1 (0x00007f8dca80d000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f8dca7d7000)
	libexpat.so.1 => /lib64/../lib64/libexpat.so.1 (0x00007f8dca7a9000)
	libINIReader.so.0 => /lib64/../lib64/libINIReader.so.0 (0x00007f8dca79e000)
	libgstaudio-1.0.so.0 => /lib64/libgstaudio-1.0.so.0 (0x00007f8dca713000)
	libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f8dca388000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f8dca2b6000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f8dca6f9000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f8dca6f3000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f8dca6e2000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f8dca6da000)
	libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f8dc9c00000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f8dca6c7000)
	libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f8dca25e000)
	libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007f8dc9a5d000)
	libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f8dca20d000)
	libunistring.so.5 => /lib64/libunistring.so.5 (0x00007f8dc98af000)
	libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007f8dca1f6000)
	libhogweed.so.6 => /lib64/libhogweed.so.6 (0x00007f8dca1b3000)
	libnettle.so.8 => /lib64/libnettle.so.8 (0x00007f8dc9858000)
	libgmp.so.10 => /lib64/libgmp.so.10 (0x00007f8dc97af000)
	libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f8dca190000)
	libinih.so.0 => /lib64/libinih.so.0 (0x00007f8dca6bf000)
	libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f8dc9677000)

Rats. Same linked libs. That was the right thing to check, though.

Darn.

What about

# ldconfig -p | grep -Ei 'de265|heif|heic|x265'
	libx265_main12.so.215 (libc6,x86-64) => /lib64/libx265_main12.so.215
	libx265_main10.so.215 (libc6,x86-64) => /lib64/libx265_main10.so.215
	libx265.so.215 (libc6,x86-64) => /lib64/libx265.so.215
	libheif.so.1 (libc6,x86-64) => /lib64/libheif.so.1
	libde265.so.0 (libc6,x86-64) => /lib64/libde265.so.0

and

$ shotwell --version
** Message: 23:22:01.048: main.vala:460: Starting session with system profile
Shotwell 33.alpha (33.alpha)

No flatpaks, involved, right?

What about this

$ rpm -qa | grep -Ei 'heif|libheif|shotwell|gdk-pixbuf|glycin'
libheif-1.21.2-1.fc44.x86_64
glycin-loaders-2.1.1-1.fc44.x86_64
glycin-libs-2.1.1-1.fc44.x86_64
gdk-pixbuf2-2.44.4-2.fc44.x86_64
gdk-pixbuf2-modules-extra-2.44.0-2.fc44.x86_64
libheif-tools-1.21.2-1.fc44.x86_64
libheif-freeworld-1.21.2-3.fc44.x86_64
shotwell-33~alpha-9.fc44.x86_64

Thanks Chris! I really appreciate your patience and help!

$ ldconfig -p | grep -Ei 'de265|heif|heic|x265'
        libx265_main12.so.215 (libc6,x86-64) => /lib64/libx265_main12.so.215
        libx265_main10.so.215 (libc6,x86-64) => /lib64/libx265_main10.so.215
        libx265.so.215 (libc6,x86-64) => /lib64/libx265.so.215
        libheif.so.1 (libc6,x86-64) => /lib64/libheif.so.1
        libheif.so.1 (libc6) => /lib/libheif.so.1
        libde265.so.0 (libc6,x86-64) => /lib64/libde265.so.0

Hmm, looks like I got an old 32bit lib in there, too. Didn’t someone suggest that, earlier? :wink:

I see, that lib is brought in by Steam requisites.

$ shotwell --version
** Message: 15:57:56.755: main.vala:460: Starting session with system profile
Shotwell 33.alpha (33.alpha)
$ rpm --query --all | grep -Ei 'heif|libheif|shotwell|gdk-pixbuf|glycin'
gdk-pixbuf2-2.44.4-2.fc44.x86_64
glycin-loaders-2.1.1-1.fc44.x86_64
glycin-libs-2.1.1-1.fc44.x86_64
gdk-pixbuf2-modules-extra-2.44.0-2.fc44.x86_64
glycin-devel-2.1.1-1.fc44.x86_64
gdk-pixbuf2-devel-2.44.4-2.fc44.x86_64
glycin-gtk4-libs-2.1.1-1.fc44.x86_64
shotwell-33~alpha-9.fc44.x86_64
glycin-thumbnailer-2.1.1-1.fc44.x86_64
glycin-loaders-2.1.1-1.fc44.i686
glycin-libs-2.1.1-1.fc44.i686
gdk-pixbuf2-2.44.4-2.fc44.i686
libheif-1.21.2-1.fc44.x86_64
libheif-freeworld-1.21.2-3.fc44.x86_64
libheif-tools-1.21.2-1.fc44.x86_64
qt-heif-image-plugin-0.3.4-6.fc44.x86_64
libheif-1.21.2-1.fc44.i686
vips-heif-8.18.0-6.fc44.x86_64

Hmm, here are more 32-bit libs… Oh, same dependency, too.

Damn, when are they going to build steam 64-bit. They’ve been talking about it for ten years…oh damn! They did it!? Guess I’ve been out of it for a while.

OMG, their e-mail verification takes so damn long. I hate it.

Well, guess I could uninstall, just to test. Guess that’s not too big of a deal. I prefer the native to the flatpak, but I it worth a test.

Oh, wait, ldd didn’t report that lib was linked, though. No 32bit libs in the list, actually. So, does that mean the 32-bit libs are completely excluded, or could they still be involved?

Well, no joy. I removed libheif 32-bit, ran ldconfig, and tried shotwell, again, but it still gave me the same unsupported error.

Poor you! I decided to write F44 Workstation live image & installer to a USB stick and booted from it. Connected to internet, enabled rpmfusion and switched multimedia & codec packages from fedora to rpmfusion, then installed libheif-freeworld and shotwell.

When I clicked on “Open with” and chose shotwell, the shotwell image viewer started and was showing the image.

But, when opening shotwell directly, and then trying to import images, I received the message that this image got skipped.

I am puzzled about this behavior…

But your system & shotwell still behave differently from what I described above, right?

Oh, no; That is exactly my behavior. I just never use Shotwell to view images, only manage my library.

I can open this specific .heic file with Shotwell using “Open with…” from Nautilus, as you describe. Looks fine, no errors.

I just cannot import it. So, yes, you’ve recreated my symptom. Is it time for a bug report, you think?

Good question. AFAIU, XFCE spin uses the same binaries as available for Fedora Workstation. So, it’s not a bug in shotwell.

It’s more like something is missing in Workstation. If it is just some package (but which one?), then you might want to file a bug report for shotwell package dependencies. If shotwell is relying on some technology stack that Gnome does not use, things might be tricky.

Dunno. Frankly, I was hoping that someone successfully running shotwell on Workstation would jump in :wink:

Okay, well, then I’ll open an bug against Fedora, as it doesn’t’ seem to be all spins or an upstream issue.

Thanks for your help! We did a lot of troubleshooting.