--- meson.build	2026-04-12 08:10:06.000000000 +0800
+++ meson.build	2026-05-07 14:00:33.000000000 +0800
@@ -106,8 +106,6 @@
 gio = dependency('gio-2.0', version: glib_ver)
 gio_unix = dependency('gio-unix-2.0', version: glib_ver)
 glib = dependency('glib-2.0', version: glib_ver)
-glycin = dependency('glycin-2', version: '>= 2')
-glycin_gtk4 = dependency('glycin-gtk4-2', version: '>= 2')
 gmodule = dependency('gmodule-no-export-2.0', version: glib_ver)
 gnome_autoar = dependency('gnome-autoar-0', version: '>= 0.4.4')
 gnome_desktop = dependency('gnome-desktop-4', version: '>= 43')

--- src/meson.build	2026-04-12 08:10:06.000000000 +0800
+++ src/meson.build	2026-05-07 14:01:14.000000000 +0800
@@ -273,8 +273,6 @@
   cloudproviders,
   config_h,
   gio_unix,
-  glycin,
-  glycin_gtk4,
   gmodule,
   gnome_autoar,
   gnome_desktop,

--- extensions/image-properties/meson.build.orig	2026-04-12 08:10:06.000000000 +0800
+++ extensions/image-properties/meson.build	2026-05-07 14:11:52.000000000 +0800
@@ -8,7 +8,6 @@
   ],
   dependencies: [
     gexiv,
-    glycin,
     nautilus_extension
   ],
   install: true,

--- extensions/image-properties/nautilus-image-properties-model.c	2026-04-12 08:10:06.000000000 +0800
+++ extensions/image-properties/nautilus-image-properties-model.c	2026-05-07 14:15:40.000000000 +0800
@@ -23,7 +23,6 @@
 
 #include <gexiv2/gexiv2.h>
 #include <glib/gi18n.h>
-#include <glycin.h>
 
 #include <math.h>
 #include <stdio.h>
@@ -127,26 +126,6 @@
     }
 }
 
-static gboolean
-append_glycin_basic_info (NautilusImagesPropertiesModel *self,
-                          GFile                         *file)
-{
-    g_autoptr (GlyLoader) loader = gly_loader_new (file);
-    g_autoptr (GlyImage) image = gly_loader_load (loader, NULL);
-
-    if (image == NULL)
-    {
-        return FALSE;
-    }
-
-    append_basic_info (self,
-                       gly_image_get_mime_type (image),
-                       gly_image_get_width (image),
-                       gly_image_get_height (image));
-
-    return TRUE;
-}
-
 static void
 format_exif_datetime (gchar **tag_value)
 {
@@ -294,7 +273,7 @@
         append_gexiv_basic_info (self);
         append_gexiv2_info (self);
     }
-    else if (!append_glycin_basic_info (self, file))
+    else
     {
         append_item (self, _("Oops! Something went wrong."), _("Failed to load image information"));
     }

--- src/nautilus-icon-info.c	2026-04-12 08:10:06.000000000 +0800
+++ src/nautilus-icon-info.c	2026-05-07 15:14:24.000000000 +0800
@@ -20,9 +20,6 @@
 #include "nautilus-enums.h"
 #include <nautilus-hash-queue.h>
 
-#include <glycin.h>
-#include <glycin-gtk4.h>
-
 struct _NautilusIconInfo
 {
     GObject parent;
@@ -379,9 +376,11 @@
 
     if (G_IS_LOADABLE_ICON (icon))
     {
+        g_autoptr (GdkPixbuf) pixbuf = NULL;
         g_autoptr (GdkPaintable) paintable = NULL;
         LoadableIconKey lookup_key;
         LoadableIconKey *key;
+        GInputStream *stream;
 
         lookup_key.icon = icon;
         lookup_key.scale = scale;
@@ -393,41 +392,30 @@
             return g_object_ref (icon_info);
         }
 
-        g_autoptr (GInputStream) stream = g_loadable_icon_load (G_LOADABLE_ICON (icon),
-                                                                size * scale,
-                                                                NULL, NULL, NULL);
+        stream = g_loadable_icon_load (G_LOADABLE_ICON (icon),
+                                       size * scale,
+                                       NULL, NULL, NULL);
         if (stream)
         {
-            g_autoptr (GlyLoader) loader = gly_loader_new_for_stream (stream);
-            g_autoptr (GlyImage) image = gly_loader_load (loader, NULL);
+            pixbuf = gdk_pixbuf_new_from_stream_at_scale (stream,
+                                                          size * scale, size * scale,
+                                                          TRUE,
+                                                          NULL, NULL);
+            g_input_stream_close (stream, NULL, NULL);
+            g_object_unref (stream);
+        }
 
-            if (image != NULL)
-            {
-                g_autoptr (GlyFrameRequest) frame_request = gly_frame_request_new ();
-                g_autoptr (GlyFrame) frame = NULL;
-
-                gly_frame_request_set_scale (frame_request, size * scale, size * scale);
-                frame = gly_image_get_specific_frame (image, frame_request, NULL);
-
-                if (frame != NULL)
-                {
-                    double iw = gly_frame_get_width (frame);
-                    double ih = gly_frame_get_height (frame);
-
-                    double scale_factor = MIN ((double) size / iw, (double) size / ih);
-
-                    double width = iw * scale_factor;
-                    double height = ih * scale_factor;
-
-                    g_autoptr (GdkTexture) texture = gly_gtk_frame_get_texture (frame);
-                    g_autoptr (GtkSnapshot) snapshot = gtk_snapshot_new ();
-
-                    gdk_paintable_snapshot (GDK_PAINTABLE (texture),
-                                            GDK_SNAPSHOT (snapshot),
-                                            width, height);
-                    paintable = gtk_snapshot_to_paintable (snapshot, NULL);
-                }
-            }
+        if (pixbuf != NULL)
+        {
+            double width = gdk_pixbuf_get_width (pixbuf) / scale;
+            double height = gdk_pixbuf_get_height (pixbuf) / scale;
+            g_autoptr (GdkTexture) texture = gdk_texture_new_for_pixbuf (pixbuf);
+            g_autoptr (GtkSnapshot) snapshot = gtk_snapshot_new ();
+
+            gdk_paintable_snapshot (GDK_PAINTABLE (texture),
+                                    GDK_SNAPSHOT (snapshot),
+                                    width, height);
+            paintable = gtk_snapshot_to_paintable (snapshot, NULL);
         }
 
         if (paintable == NULL)
