All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.0
@ 2024-11-16 16:08 Thomas Devoogdt
  2025-01-25 21:07 ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.3 Thomas Devoogdt
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Devoogdt @ 2024-11-16 16:08 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Devoogdt

https://gitlab.gnome.org/GNOME/gtk/-/blob/4.17.0/NEWS

Note that libgtk4 never selected BR2_PACKAGE_CAIRO_{PNG,ZLIB},
this is also not needed since [1]. Instead, we have to select
BR2_PACKAGE_LIBPNG ourselves, which libgtk3 indirectly did
by including BR2_PACKAGE_CAIRO_PNG.

Also, add patches for:
 - toolchains without fenv.h. [2]
 - when cairo has been compiled without surfaces. [3]

[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7717
[2] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
[3] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2:
- update patches
- reword commit message
---
 ...uild-add-a-check-for-the-fenv-header.patch |  26 +++++
 ...value.c-fix-compilation-if-fenv.h-is.patch | 106 ++++++++++++++++++
 ...kends-gtkprintbackendfile.c-fix-comp.patch |  96 ++++++++++++++++
 package/libgtk4/Config.in                     |   1 +
 package/libgtk4/libgtk4.hash                  |   4 +-
 package/libgtk4/libgtk4.mk                    |   5 +-
 6 files changed, 234 insertions(+), 4 deletions(-)
 create mode 100644 package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
 create mode 100644 package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
 create mode 100644 package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch

diff --git a/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch b/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
new file mode 100644
index 0000000000..6a15748086
--- /dev/null
+++ b/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
@@ -0,0 +1,26 @@
+From 67cf230a85dcde61ba335cb8de52c4ea2e19caf2 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 08:22:23 +0100
+Subject: [PATCH] meson.build: add a check for the fenv header
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/meson.build b/meson.build
+index 2bb6f7c299..5f51aeb8a7 100644
+--- a/meson.build
++++ b/meson.build
+@@ -180,6 +180,7 @@ check_headers = [
+   'crt/externs.h',
+   'dev/evdev/input.h',
+   'dlfcn.h',
++  'fenv.h',
+   'ftw.h',
+   'inttypes.h',
+   'linux/input.h',
+-- 
+2.43.0
+
diff --git a/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
new file mode 100644
index 0000000000..c7dd8e1b9f
--- /dev/null
+++ b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
@@ -0,0 +1,106 @@
+From 4fb5e414b627d9c5c35ea85d467b06b56f5c7ee1 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 08:22:40 +0100
+Subject: [PATCH] gtk/gtkcssnumbervalue.c: fix compilation if fenv.h is missing
+
+../gtk/gtkcssnumbervalue.c:29:10: fatal error: fenv.h: No such file or directory
+   29 | #include <fenv.h>
+      |
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ gtk/gtkcssnumbervalue.c | 59 ++++++++++++++++++++++++++++++++---------
+ 1 file changed, 47 insertions(+), 12 deletions(-)
+
+diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c
+index 1181c1a802..03cf30262a 100644
+--- a/gtk/gtkcssnumbervalue.c
++++ b/gtk/gtkcssnumbervalue.c
+@@ -26,7 +26,9 @@
+ #include "gtkcssstyleprivate.h"
+ #include "gtkprivate.h"
+ 
++#ifdef HAVE_FENV_H
+ #include <fenv.h>
++#endif
+ 
+ #define RAD_TO_DEG(x) ((x) * 180.0 / G_PI)
+ #define DEG_TO_RAD(x) ((x) * G_PI / 180.0)
+@@ -1846,13 +1848,25 @@ gtk_css_dimension_value_is_zero (const GtkCssValue *value)
+   return value->dimension.value == 0;
+ }
+ 
+-static double
+-_round (guint mode, double a, double b)
++#ifdef HAVE_FENV_H
++static inline double
++_round_fenv (int mode, double a, double b)
+ {
+-  int old_mode;
+-  int modes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO };
+   double result;
++  int old_mode;
+ 
++  old_mode = fegetround ();
++  fesetround (mode);
++  result = nearbyint (a/b) * b;
++  fesetround (old_mode);
++
++  return result;
++}
++#endif
++
++static double
++_round (guint mode, double a, double b)
++{
+   if (b == 0)
+     return NAN;
+ 
+@@ -1880,14 +1894,35 @@ _round (guint mode, double a, double b)
+         }
+     }
+ 
+-  old_mode = fegetround ();
+-  fesetround (modes[mode]);
+-
+-  result = nearbyint (a/b) * b;
+-
+-  fesetround (old_mode);
+-
+-  return result;
++  switch (mode)
++    {
++    case ROUND_NEAREST:
++#ifdef FE_TONEAREST
++      return _round_fenv (FE_TONEAREST, a, b);
++#else
++      return round (a/b) * b;
++#endif
++    case ROUND_UP:
++#ifdef FE_UPWARD
++      return _round_fenv (FE_UPWARD, a, b);
++#else
++      return (((a/b) >= 0) ? ceil (a/b) : floor (a/b)) * b;
++#endif
++    case ROUND_DOWN:
++#ifdef FE_DOWNWARD
++      return _round_fenv (FE_DOWNWARD, a, b);
++#else
++      return (((a/b) >= 0) ? floor (a/b) : ceil (a/b)) * b;
++#endif
++    case ROUND_TO_ZERO:
++#ifdef FE_TOWARDZERO
++      return _round_fenv (FE_TOWARDZERO, a, b);
++#else
++      return (((a/b) >= 0) ? floor (a/b) : ceil (a/b)) * b;
++#endif
++    default:
++      g_assert_not_reached ();
++    }
+ }
+ 
+ static double
+-- 
+2.43.0
+
diff --git a/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch b/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch
new file mode 100644
index 0000000000..728e719047
--- /dev/null
+++ b/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch
@@ -0,0 +1,96 @@
+From b60bee17ddce7c44a455fa533e23aebebbfeea59 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 13:42:58 +0100
+Subject: [PATCH] modules/printbackends/gtkprintbackendfile.c: fix compilation
+ if no cairo surfaces are present
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+../modules/printbackends/gtkprintbackendfile.c: In function ‘output_file_from_settings’:
+../modules/printbackends/gtkprintbackendfile.c:241:20: error: label at end of compound statement
+  241 |               case N_FORMATS:
+      |                    ^~~~~~~~~
+../modules/printbackends/gtkprintbackendfile.c: In function ‘file_printer_create_cairo_surface’:
+../modules/printbackends/gtkprintbackendfile.c:363:12: error: label at end of compound statement
+  363 |       case N_FORMATS:
+      |            ^~~~~~~~~
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ modules/printbackends/gtkprintbackendfile.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/modules/printbackends/gtkprintbackendfile.c b/modules/printbackends/gtkprintbackendfile.c
+index ddfd8d4425..436c767e4f 100644
+--- a/modules/printbackends/gtkprintbackendfile.c
++++ b/modules/printbackends/gtkprintbackendfile.c
+@@ -55,6 +55,12 @@ typedef struct _GtkPrintBackendFileClass GtkPrintBackendFileClass;
+ 
+ #define _STREAM_MAX_CHUNK_SIZE 8192
+ 
++#if defined(CAIRO_HAS_PDF_SURFACE) || \
++    defined(CAIRO_HAS_PS_SURFACE) || \
++    defined(CAIRO_HAS_SVG_SURFACE)
++#define _CAIRO_HAS_SURFACE 1
++#endif
++
+ struct _GtkPrintBackendFileClass
+ {
+   GtkPrintBackendClass parent_class;
+@@ -237,8 +243,10 @@ output_file_from_settings (GtkPrintSettings *settings,
+           format = format_from_settings (settings);
+           switch (format)
+             {
++#ifdef _CAIRO_HAS_SURFACE
+               default:
+               case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+               case FORMAT_PDF:
+                 extension = "pdf";
+@@ -359,8 +367,10 @@ file_printer_create_cairo_surface (GtkPrinter       *printer,
+ 
+   switch (format)
+     {
++#ifdef _CAIRO_HAS_SURFACE
+       default:
+       case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+       case FORMAT_PDF:
+         surface = cairo_pdf_surface_create_for_stream (_cairo_write, cache_io, width, height);
+@@ -727,8 +737,10 @@ file_printer_get_options (GtkPrinter           *printer,
+     {
+       switch (format)
+         {
++#ifdef _CAIRO_HAS_SURFACE
+           default:
+           case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+           case FORMAT_PDF:
+             current_format = FORMAT_PDF;
+@@ -741,7 +753,7 @@ file_printer_get_options (GtkPrinter           *printer,
+ #endif
+ #ifdef CAIRO_HAS_SVG_SURFACE
+           case FORMAT_SVG:
+-            current_format = FORMAT_SVG;            
++            current_format = FORMAT_SVG;
+             break;
+ #endif
+         }
+@@ -854,7 +866,9 @@ file_printer_prepare_for_print (GtkPrinter       *printer,
+ #ifdef CAIRO_HAS_PDF_SURFACE
+       case FORMAT_PDF:
+ #endif
++#ifdef _CAIRO_HAS_SURFACE
+       case N_FORMATS:
++#endif
+ 	gtk_print_job_set_rotate (print_job, FALSE);
+         break;
+       default:
+-- 
+2.43.0
+
diff --git a/package/libgtk4/Config.in b/package/libgtk4/Config.in
index 99553fc44e..2f597ea872 100644
--- a/package/libgtk4/Config.in
+++ b/package/libgtk4/Config.in
@@ -27,6 +27,7 @@ config BR2_PACKAGE_LIBGTK4
 	select BR2_PACKAGE_GRAPHENE
 	select BR2_PACKAGE_LIBEPOXY
 	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBPNG
 	select BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_TIFF
 	# At least one backend is required
diff --git a/package/libgtk4/libgtk4.hash b/package/libgtk4/libgtk4.hash
index 636b675d15..98afaddfe9 100644
--- a/package/libgtk4/libgtk4.hash
+++ b/package/libgtk4/libgtk4.hash
@@ -1,5 +1,5 @@
-# From https://download.gnome.org/sources/gtk/4.14/gtk-4.14.5.sha256sum
-sha256  5547f2b9f006b133993e070b87c17804e051efda3913feaca1108fa2be41e24d  gtk-4.14.5.tar.xz
+# From https://download.gnome.org/sources/gtk/4.17/gtk-4.17.0.sha256sum
+sha256  efcef355b5d903fc62a70934b1c644f39661e3c2ff44c8c53a8fcdb70c7dd97e  gtk-4.17.0.tar.xz
 
 # Hash for license file:
 sha256  b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c  COPYING
diff --git a/package/libgtk4/libgtk4.mk b/package/libgtk4/libgtk4.mk
index b00a2facad..d33ccc5e05 100644
--- a/package/libgtk4/libgtk4.mk
+++ b/package/libgtk4/libgtk4.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-LIBGTK4_VERSION_MAJOR = 4.14
-LIBGTK4_VERSION = $(LIBGTK4_VERSION_MAJOR).5
+LIBGTK4_VERSION_MAJOR = 4.17
+LIBGTK4_VERSION = $(LIBGTK4_VERSION_MAJOR).0
 LIBGTK4_SOURCE = gtk-$(LIBGTK4_VERSION).tar.xz
 LIBGTK4_SITE = https://download.gnome.org/sources/gtk/$(LIBGTK4_VERSION_MAJOR)
 LIBGTK4_LICENSE = LGPL-2.0+
@@ -21,6 +21,7 @@ LIBGTK4_DEPENDENCIES = \
 	graphene \
 	libepoxy \
 	libglib2 \
+	libpng \
 	pango \
 	$(TARGET_NLS_DEPENDENCIES)
 
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.3
  2024-11-16 16:08 [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.0 Thomas Devoogdt
@ 2025-01-25 21:07 ` Thomas Devoogdt
  2025-02-05 15:37   ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Devoogdt @ 2025-01-25 21:07 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Devoogdt

https://gitlab.gnome.org/GNOME/gtk/-/blob/4.17.3/NEWS

Note that libgtk4 never selected BR2_PACKAGE_CAIRO_{PNG,ZLIB},
this is also not needed since [1]. Instead, we have to select
BR2_PACKAGE_LIBPNG ourselves, which libgtk3 indirectly did
by including BR2_PACKAGE_CAIRO_PNG.

Also, add patches for:
 - toolchains without fenv.h. [2]
 - when cairo has been compiled without surfaces. [3]

[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7717
[2] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
[3] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
! This bump depends on these patches:
- https://patchwork.ozlabs.org/project/buildroot/patch/20250125182148.234260-1-thomas@devoogdt.com/
- https://patchwork.ozlabs.org/project/buildroot/patch/20250120211707.2381182-3-fiona.klute@gmx.de/
!
---
 ...uild-add-a-check-for-the-fenv-header.patch |  26 +++++
 ...value.c-fix-compilation-if-fenv.h-is.patch | 106 ++++++++++++++++++
 ...kends-gtkprintbackendfile.c-fix-comp.patch |  96 ++++++++++++++++
 package/libgtk4/Config.in                     |   1 +
 package/libgtk4/libgtk4.hash                  |   4 +-
 package/libgtk4/libgtk4.mk                    |   5 +-
 6 files changed, 234 insertions(+), 4 deletions(-)
 create mode 100644 package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
 create mode 100644 package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
 create mode 100644 package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch

diff --git a/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch b/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
new file mode 100644
index 0000000000..d487c5bfe1
--- /dev/null
+++ b/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
@@ -0,0 +1,26 @@
+From 9c248022da794e9422b37554fb9e316ffa71fd7a Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 08:22:23 +0100
+Subject: [PATCH] meson.build: add a check for the fenv header
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/meson.build b/meson.build
+index e4006a3f8f..f9fc0dcb70 100644
+--- a/meson.build
++++ b/meson.build
+@@ -191,6 +191,7 @@ cdata.set_quoted('GETTEXT_PACKAGE', 'gtk40')
+ 
+ check_headers = [
+   'dev/evdev/input.h',
++  'fenv.h',
+   'ftw.h',
+   'linux/input.h',
+   'linux/memfd.h',
+-- 
+2.43.0
+
diff --git a/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
new file mode 100644
index 0000000000..0455df39c8
--- /dev/null
+++ b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
@@ -0,0 +1,106 @@
+From ae4180e3abba9e053cf5b5826df2f6854c3c7256 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 08:22:40 +0100
+Subject: [PATCH] gtk/gtkcssnumbervalue.c: fix compilation if fenv.h is missing
+
+../gtk/gtkcssnumbervalue.c:29:10: fatal error: fenv.h: No such file or directory
+   29 | #include <fenv.h>
+      |
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ gtk/gtkcssnumbervalue.c | 59 ++++++++++++++++++++++++++++++++---------
+ 1 file changed, 47 insertions(+), 12 deletions(-)
+
+diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c
+index 1181c1a802..03cf30262a 100644
+--- a/gtk/gtkcssnumbervalue.c
++++ b/gtk/gtkcssnumbervalue.c
+@@ -26,7 +26,9 @@
+ #include "gtkcssstyleprivate.h"
+ #include "gtkprivate.h"
+ 
++#ifdef HAVE_FENV_H
+ #include <fenv.h>
++#endif
+ 
+ #define RAD_TO_DEG(x) ((x) * 180.0 / G_PI)
+ #define DEG_TO_RAD(x) ((x) * G_PI / 180.0)
+@@ -1846,13 +1848,25 @@ gtk_css_dimension_value_is_zero (const GtkCssValue *value)
+   return value->dimension.value == 0;
+ }
+ 
+-static double
+-_round (guint mode, double a, double b)
++#ifdef HAVE_FENV_H
++static inline double
++_round_fenv (int mode, double a, double b)
+ {
+-  int old_mode;
+-  int modes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO };
+   double result;
++  int old_mode;
+ 
++  old_mode = fegetround ();
++  fesetround (mode);
++  result = nearbyint (a/b) * b;
++  fesetround (old_mode);
++
++  return result;
++}
++#endif
++
++static double
++_round (guint mode, double a, double b)
++{
+   if (b == 0)
+     return NAN;
+ 
+@@ -1880,14 +1894,35 @@ _round (guint mode, double a, double b)
+         }
+     }
+ 
+-  old_mode = fegetround ();
+-  fesetround (modes[mode]);
+-
+-  result = nearbyint (a/b) * b;
+-
+-  fesetround (old_mode);
+-
+-  return result;
++  switch (mode)
++    {
++    case ROUND_NEAREST:
++#ifdef FE_TONEAREST
++      return _round_fenv (FE_TONEAREST, a, b);
++#else
++      return round (a/b) * b;
++#endif
++    case ROUND_UP:
++#ifdef FE_UPWARD
++      return _round_fenv (FE_UPWARD, a, b);
++#else
++      return (((a/b) >= 0) ? ceil (a/b) : floor (a/b)) * b;
++#endif
++    case ROUND_DOWN:
++#ifdef FE_DOWNWARD
++      return _round_fenv (FE_DOWNWARD, a, b);
++#else
++      return (((a/b) >= 0) ? floor (a/b) : ceil (a/b)) * b;
++#endif
++    case ROUND_TO_ZERO:
++#ifdef FE_TOWARDZERO
++      return _round_fenv (FE_TOWARDZERO, a, b);
++#else
++      return (((a/b) >= 0) ? floor (a/b) : ceil (a/b)) * b;
++#endif
++    default:
++      g_assert_not_reached ();
++    }
+ }
+ 
+ static double
+-- 
+2.43.0
+
diff --git a/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch b/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch
new file mode 100644
index 0000000000..fe83adbc99
--- /dev/null
+++ b/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch
@@ -0,0 +1,96 @@
+From 66beb6fa84a1d86e3d607d11e5eab119a95d2a02 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 13:42:58 +0100
+Subject: [PATCH] modules/printbackends/gtkprintbackendfile.c: fix compilation
+ if no cairo surfaces are present
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+../modules/printbackends/gtkprintbackendfile.c: In function ‘output_file_from_settings’:
+../modules/printbackends/gtkprintbackendfile.c:241:20: error: label at end of compound statement
+  241 |               case N_FORMATS:
+      |                    ^~~~~~~~~
+../modules/printbackends/gtkprintbackendfile.c: In function ‘file_printer_create_cairo_surface’:
+../modules/printbackends/gtkprintbackendfile.c:363:12: error: label at end of compound statement
+  363 |       case N_FORMATS:
+      |            ^~~~~~~~~
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ modules/printbackends/gtkprintbackendfile.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/modules/printbackends/gtkprintbackendfile.c b/modules/printbackends/gtkprintbackendfile.c
+index ddfd8d4425..436c767e4f 100644
+--- a/modules/printbackends/gtkprintbackendfile.c
++++ b/modules/printbackends/gtkprintbackendfile.c
+@@ -55,6 +55,12 @@ typedef struct _GtkPrintBackendFileClass GtkPrintBackendFileClass;
+ 
+ #define _STREAM_MAX_CHUNK_SIZE 8192
+ 
++#if defined(CAIRO_HAS_PDF_SURFACE) || \
++    defined(CAIRO_HAS_PS_SURFACE) || \
++    defined(CAIRO_HAS_SVG_SURFACE)
++#define _CAIRO_HAS_SURFACE 1
++#endif
++
+ struct _GtkPrintBackendFileClass
+ {
+   GtkPrintBackendClass parent_class;
+@@ -237,8 +243,10 @@ output_file_from_settings (GtkPrintSettings *settings,
+           format = format_from_settings (settings);
+           switch (format)
+             {
++#ifdef _CAIRO_HAS_SURFACE
+               default:
+               case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+               case FORMAT_PDF:
+                 extension = "pdf";
+@@ -359,8 +367,10 @@ file_printer_create_cairo_surface (GtkPrinter       *printer,
+ 
+   switch (format)
+     {
++#ifdef _CAIRO_HAS_SURFACE
+       default:
+       case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+       case FORMAT_PDF:
+         surface = cairo_pdf_surface_create_for_stream (_cairo_write, cache_io, width, height);
+@@ -727,8 +737,10 @@ file_printer_get_options (GtkPrinter           *printer,
+     {
+       switch (format)
+         {
++#ifdef _CAIRO_HAS_SURFACE
+           default:
+           case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+           case FORMAT_PDF:
+             current_format = FORMAT_PDF;
+@@ -741,7 +753,7 @@ file_printer_get_options (GtkPrinter           *printer,
+ #endif
+ #ifdef CAIRO_HAS_SVG_SURFACE
+           case FORMAT_SVG:
+-            current_format = FORMAT_SVG;            
++            current_format = FORMAT_SVG;
+             break;
+ #endif
+         }
+@@ -854,7 +866,9 @@ file_printer_prepare_for_print (GtkPrinter       *printer,
+ #ifdef CAIRO_HAS_PDF_SURFACE
+       case FORMAT_PDF:
+ #endif
++#ifdef _CAIRO_HAS_SURFACE
+       case N_FORMATS:
++#endif
+ 	gtk_print_job_set_rotate (print_job, FALSE);
+         break;
+       default:
+-- 
+2.43.0
+
diff --git a/package/libgtk4/Config.in b/package/libgtk4/Config.in
index 99553fc44e..2f597ea872 100644
--- a/package/libgtk4/Config.in
+++ b/package/libgtk4/Config.in
@@ -27,6 +27,7 @@ config BR2_PACKAGE_LIBGTK4
 	select BR2_PACKAGE_GRAPHENE
 	select BR2_PACKAGE_LIBEPOXY
 	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBPNG
 	select BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_TIFF
 	# At least one backend is required
diff --git a/package/libgtk4/libgtk4.hash b/package/libgtk4/libgtk4.hash
index 636b675d15..62dbf903f1 100644
--- a/package/libgtk4/libgtk4.hash
+++ b/package/libgtk4/libgtk4.hash
@@ -1,5 +1,5 @@
-# From https://download.gnome.org/sources/gtk/4.14/gtk-4.14.5.sha256sum
-sha256  5547f2b9f006b133993e070b87c17804e051efda3913feaca1108fa2be41e24d  gtk-4.14.5.tar.xz
+# From https://download.gnome.org/sources/gtk/4.17/gtk-4.17.3.sha256sum
+sha256  5fada0343e172eb110335d5df7de68d00344332e7e885b04e6755f879c0748a6  gtk-4.17.3.tar.xz
 
 # Hash for license file:
 sha256  b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c  COPYING
diff --git a/package/libgtk4/libgtk4.mk b/package/libgtk4/libgtk4.mk
index b00a2facad..063cde0370 100644
--- a/package/libgtk4/libgtk4.mk
+++ b/package/libgtk4/libgtk4.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-LIBGTK4_VERSION_MAJOR = 4.14
-LIBGTK4_VERSION = $(LIBGTK4_VERSION_MAJOR).5
+LIBGTK4_VERSION_MAJOR = 4.17
+LIBGTK4_VERSION = $(LIBGTK4_VERSION_MAJOR).3
 LIBGTK4_SOURCE = gtk-$(LIBGTK4_VERSION).tar.xz
 LIBGTK4_SITE = https://download.gnome.org/sources/gtk/$(LIBGTK4_VERSION_MAJOR)
 LIBGTK4_LICENSE = LGPL-2.0+
@@ -21,6 +21,7 @@ LIBGTK4_DEPENDENCIES = \
 	graphene \
 	libepoxy \
 	libglib2 \
+	libpng \
 	pango \
 	$(TARGET_NLS_DEPENDENCIES)
 
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.3
  2025-01-25 21:07 ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.3 Thomas Devoogdt
@ 2025-02-05 15:37   ` Thomas Petazzoni via buildroot
  2025-03-25 10:11     ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Thomas Devoogdt
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-02-05 15:37 UTC (permalink / raw)
  To: Thomas Devoogdt; +Cc: buildroot

Hello,

On Sat, 25 Jan 2025 22:07:39 +0100
Thomas Devoogdt <thomas@devoogdt.com> wrote:

> https://gitlab.gnome.org/GNOME/gtk/-/blob/4.17.3/NEWS
> 
> Note that libgtk4 never selected BR2_PACKAGE_CAIRO_{PNG,ZLIB},
> this is also not needed since [1]. Instead, we have to select

I was confused by the "also" in this sentence. I would have found
clearer to say:

"Note that libgtk4 never selected BR2_PACKAGE_CAIRO_{PNG,ZLIB} as it is
not needed thanks to [1]. However, we need to select BR2_PACKAGE_LIBPNG
.... <add some reason here>. In libgtk3, this was indirectly done as
libgtk3 selects BR2_PACKAGE_CAIRO_PNG."

> +LIBGTK4_VERSION_MAJOR = 4.17

Odd middle number indicate development/unstable releases. The current
stable release is 4.16.12. Could you use this version instead?

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42
  2025-02-05 15:37   ` Thomas Petazzoni via buildroot
@ 2025-03-25 10:11     ` Thomas Devoogdt
  2025-03-25 10:11       ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.18.2 Thomas Devoogdt
  2025-03-25 21:50       ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Julien Olivain
  0 siblings, 2 replies; 7+ messages in thread
From: Thomas Devoogdt @ 2025-03-25 10:11 UTC (permalink / raw)
  To: buildroot; +Cc: thomas, thomas.petazzoni

Announce:
 - https://lists.freedesktop.org/archives/wayland-devel/2025-January/043966.html
 - https://lists.freedesktop.org/archives/wayland-devel/2025-February/043980.html
 - http://lists.freedesktop.org/archives/wayland-devel/2025-March/044027.html

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v1: N/A
---
 package/wayland-protocols/wayland-protocols.hash | 6 +++---
 package/wayland-protocols/wayland-protocols.mk   | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/wayland-protocols/wayland-protocols.hash b/package/wayland-protocols/wayland-protocols.hash
index 645d6d8f25..c6fca6cd25 100644
--- a/package/wayland-protocols/wayland-protocols.hash
+++ b/package/wayland-protocols/wayland-protocols.hash
@@ -1,4 +1,4 @@
-# From https://lists.freedesktop.org/archives/wayland-devel/2024-December/043920.html
-sha256  e1dcdcbbf08e2e0a8a02ee5d9a0be3a6aafc39a4b51fa7e0d2f1a16411cb72fa  wayland-protocols-1.39.tar.xz
-sha512  480a195ec0846400d93160e3d0a7ba12948ed841835ee4661f54b0101ae0027affd9c0f660a73244786fecd70e4f609830489a6b95e00d750cf2379734aacbe0  wayland-protocols-1.39.tar.xz
+# From https://lists.freedesktop.org/archives/wayland-devel/2025-March/044027.html
+sha256  23ba80d410d1200a86fe29592c19766eae8f1c350b67289999e9e7ea12d9f7aa  wayland-protocols-1.42.tar.xz
+sha512  ce85fecbe886264eaeb34c7992d4e493295f57f6213d5a2ec04b3471daee04a4225b1a7e77a27ccf39306074780553ec1383c55af30cc2c78942b40cc5777c1b  wayland-protocols-1.42.tar.xz
 sha256  f1a2b233e8a9a71c40f4aa885be08a0842ac85bb8588703c1dd7e6e6502e3124  COPYING
diff --git a/package/wayland-protocols/wayland-protocols.mk b/package/wayland-protocols/wayland-protocols.mk
index b04693978d..b7c5b118e6 100644
--- a/package/wayland-protocols/wayland-protocols.mk
+++ b/package/wayland-protocols/wayland-protocols.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-WAYLAND_PROTOCOLS_VERSION = 1.39
+WAYLAND_PROTOCOLS_VERSION = 1.42
 WAYLAND_PROTOCOLS_SITE = https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/$(WAYLAND_PROTOCOLS_VERSION)/downloads
 WAYLAND_PROTOCOLS_SOURCE = wayland-protocols-$(WAYLAND_PROTOCOLS_VERSION).tar.xz
 WAYLAND_PROTOCOLS_LICENSE = MIT
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] package/libgtk4: bump to 4.18.2
  2025-03-25 10:11     ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Thomas Devoogdt
@ 2025-03-25 10:11       ` Thomas Devoogdt
  2025-04-21 21:26         ` Thomas Petazzoni via buildroot
  2025-03-25 21:50       ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Julien Olivain
  1 sibling, 1 reply; 7+ messages in thread
From: Thomas Devoogdt @ 2025-03-25 10:11 UTC (permalink / raw)
  To: buildroot; +Cc: thomas, thomas.petazzoni

https://gitlab.gnome.org/GNOME/gtk/-/blob/4.18.2/NEWS

Note that libgtk4 never selected BR2_PACKAGE_CAIRO_{PNG,ZLIB} as it is
not needed thanks to [1]. However, we need to select BR2_PACKAGE_LIBPNG [2].
In libgtk3, this was indirectly done as libgtk3 selects BR2_PACKAGE_CAIRO_PNG.

Also, add patches for:
 - toolchains without fenv.h. [3]
 - when cairo has been compiled without surfaces. [4]

[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7717
[2] https://gitlab.gnome.org/GNOME/gtk/-/blob/4.18.2/meson.build?ref_type=tags#L450
[3] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
[4] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: bumped to a stable version, and changed the git message a bit
---
 ...uild-add-a-check-for-the-fenv-header.patch |  26 +++++
 ...value.c-fix-compilation-if-fenv.h-is.patch | 106 ++++++++++++++++++
 ...kends-gtkprintbackendfile.c-fix-comp.patch |  96 ++++++++++++++++
 package/libgtk4/Config.in                     |   1 +
 package/libgtk4/libgtk4.hash                  |   4 +-
 package/libgtk4/libgtk4.mk                    |   5 +-
 6 files changed, 234 insertions(+), 4 deletions(-)
 create mode 100644 package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
 create mode 100644 package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
 create mode 100644 package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch

diff --git a/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch b/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
new file mode 100644
index 0000000000..70bfd11d57
--- /dev/null
+++ b/package/libgtk4/0001-meson.build-add-a-check-for-the-fenv-header.patch
@@ -0,0 +1,26 @@
+From c9739dce443d8fdb2d0e8ad01b62d32d4a905dab Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 08:22:23 +0100
+Subject: [PATCH] meson.build: add a check for the fenv header
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/meson.build b/meson.build
+index a8be83e4dc..9046fb084e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -202,6 +202,7 @@ cdata.set_quoted('GETTEXT_PACKAGE', 'gtk40')
+ 
+ check_headers = [
+   'dev/evdev/input.h',
++  'fenv.h',
+   'ftw.h',
+   'linux/input.h',
+   'linux/memfd.h',
+-- 
+2.43.0
+
diff --git a/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
new file mode 100644
index 0000000000..02d6a25526
--- /dev/null
+++ b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
@@ -0,0 +1,106 @@
+From e76e2c0c8afad80c6918890e443418e4f78c97c3 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 08:22:40 +0100
+Subject: [PATCH] gtk/gtkcssnumbervalue.c: fix compilation if fenv.h is missing
+
+../gtk/gtkcssnumbervalue.c:29:10: fatal error: fenv.h: No such file or directory
+   29 | #include <fenv.h>
+      |
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ gtk/gtkcssnumbervalue.c | 59 ++++++++++++++++++++++++++++++++---------
+ 1 file changed, 47 insertions(+), 12 deletions(-)
+
+diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c
+index 1181c1a802..03cf30262a 100644
+--- a/gtk/gtkcssnumbervalue.c
++++ b/gtk/gtkcssnumbervalue.c
+@@ -26,7 +26,9 @@
+ #include "gtkcssstyleprivate.h"
+ #include "gtkprivate.h"
+ 
++#ifdef HAVE_FENV_H
+ #include <fenv.h>
++#endif
+ 
+ #define RAD_TO_DEG(x) ((x) * 180.0 / G_PI)
+ #define DEG_TO_RAD(x) ((x) * G_PI / 180.0)
+@@ -1846,13 +1848,25 @@ gtk_css_dimension_value_is_zero (const GtkCssValue *value)
+   return value->dimension.value == 0;
+ }
+ 
+-static double
+-_round (guint mode, double a, double b)
++#ifdef HAVE_FENV_H
++static inline double
++_round_fenv (int mode, double a, double b)
+ {
+-  int old_mode;
+-  int modes[] = { FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, FE_TOWARDZERO };
+   double result;
++  int old_mode;
+ 
++  old_mode = fegetround ();
++  fesetround (mode);
++  result = nearbyint (a/b) * b;
++  fesetround (old_mode);
++
++  return result;
++}
++#endif
++
++static double
++_round (guint mode, double a, double b)
++{
+   if (b == 0)
+     return NAN;
+ 
+@@ -1880,14 +1894,35 @@ _round (guint mode, double a, double b)
+         }
+     }
+ 
+-  old_mode = fegetround ();
+-  fesetround (modes[mode]);
+-
+-  result = nearbyint (a/b) * b;
+-
+-  fesetround (old_mode);
+-
+-  return result;
++  switch (mode)
++    {
++    case ROUND_NEAREST:
++#ifdef FE_TONEAREST
++      return _round_fenv (FE_TONEAREST, a, b);
++#else
++      return round (a/b) * b;
++#endif
++    case ROUND_UP:
++#ifdef FE_UPWARD
++      return _round_fenv (FE_UPWARD, a, b);
++#else
++      return (((a/b) >= 0) ? ceil (a/b) : floor (a/b)) * b;
++#endif
++    case ROUND_DOWN:
++#ifdef FE_DOWNWARD
++      return _round_fenv (FE_DOWNWARD, a, b);
++#else
++      return (((a/b) >= 0) ? floor (a/b) : ceil (a/b)) * b;
++#endif
++    case ROUND_TO_ZERO:
++#ifdef FE_TOWARDZERO
++      return _round_fenv (FE_TOWARDZERO, a, b);
++#else
++      return (((a/b) >= 0) ? floor (a/b) : ceil (a/b)) * b;
++#endif
++    default:
++      g_assert_not_reached ();
++    }
+ }
+ 
+ static double
+-- 
+2.43.0
+
diff --git a/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch b/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch
new file mode 100644
index 0000000000..c9bfad0198
--- /dev/null
+++ b/package/libgtk4/0003-modules-printbackends-gtkprintbackendfile.c-fix-comp.patch
@@ -0,0 +1,96 @@
+From 197bf56cefb9c13e30f00fd4f5e651e87ba85e0b Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Fri, 15 Nov 2024 13:42:58 +0100
+Subject: [PATCH] modules/printbackends/gtkprintbackendfile.c: fix compilation
+ if no cairo surfaces are present
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+../modules/printbackends/gtkprintbackendfile.c: In function ‘output_file_from_settings’:
+../modules/printbackends/gtkprintbackendfile.c:241:20: error: label at end of compound statement
+  241 |               case N_FORMATS:
+      |                    ^~~~~~~~~
+../modules/printbackends/gtkprintbackendfile.c: In function ‘file_printer_create_cairo_surface’:
+../modules/printbackends/gtkprintbackendfile.c:363:12: error: label at end of compound statement
+  363 |       case N_FORMATS:
+      |            ^~~~~~~~~
+
+Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ modules/printbackends/gtkprintbackendfile.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/modules/printbackends/gtkprintbackendfile.c b/modules/printbackends/gtkprintbackendfile.c
+index ddfd8d4425..436c767e4f 100644
+--- a/modules/printbackends/gtkprintbackendfile.c
++++ b/modules/printbackends/gtkprintbackendfile.c
+@@ -55,6 +55,12 @@ typedef struct _GtkPrintBackendFileClass GtkPrintBackendFileClass;
+ 
+ #define _STREAM_MAX_CHUNK_SIZE 8192
+ 
++#if defined(CAIRO_HAS_PDF_SURFACE) || \
++    defined(CAIRO_HAS_PS_SURFACE) || \
++    defined(CAIRO_HAS_SVG_SURFACE)
++#define _CAIRO_HAS_SURFACE 1
++#endif
++
+ struct _GtkPrintBackendFileClass
+ {
+   GtkPrintBackendClass parent_class;
+@@ -237,8 +243,10 @@ output_file_from_settings (GtkPrintSettings *settings,
+           format = format_from_settings (settings);
+           switch (format)
+             {
++#ifdef _CAIRO_HAS_SURFACE
+               default:
+               case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+               case FORMAT_PDF:
+                 extension = "pdf";
+@@ -359,8 +367,10 @@ file_printer_create_cairo_surface (GtkPrinter       *printer,
+ 
+   switch (format)
+     {
++#ifdef _CAIRO_HAS_SURFACE
+       default:
+       case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+       case FORMAT_PDF:
+         surface = cairo_pdf_surface_create_for_stream (_cairo_write, cache_io, width, height);
+@@ -727,8 +737,10 @@ file_printer_get_options (GtkPrinter           *printer,
+     {
+       switch (format)
+         {
++#ifdef _CAIRO_HAS_SURFACE
+           default:
+           case N_FORMATS:
++#endif
+ #ifdef CAIRO_HAS_PDF_SURFACE
+           case FORMAT_PDF:
+             current_format = FORMAT_PDF;
+@@ -741,7 +753,7 @@ file_printer_get_options (GtkPrinter           *printer,
+ #endif
+ #ifdef CAIRO_HAS_SVG_SURFACE
+           case FORMAT_SVG:
+-            current_format = FORMAT_SVG;            
++            current_format = FORMAT_SVG;
+             break;
+ #endif
+         }
+@@ -854,7 +866,9 @@ file_printer_prepare_for_print (GtkPrinter       *printer,
+ #ifdef CAIRO_HAS_PDF_SURFACE
+       case FORMAT_PDF:
+ #endif
++#ifdef _CAIRO_HAS_SURFACE
+       case N_FORMATS:
++#endif
+ 	gtk_print_job_set_rotate (print_job, FALSE);
+         break;
+       default:
+-- 
+2.43.0
+
diff --git a/package/libgtk4/Config.in b/package/libgtk4/Config.in
index 99553fc44e..2f597ea872 100644
--- a/package/libgtk4/Config.in
+++ b/package/libgtk4/Config.in
@@ -27,6 +27,7 @@ config BR2_PACKAGE_LIBGTK4
 	select BR2_PACKAGE_GRAPHENE
 	select BR2_PACKAGE_LIBEPOXY
 	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBPNG
 	select BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_TIFF
 	# At least one backend is required
diff --git a/package/libgtk4/libgtk4.hash b/package/libgtk4/libgtk4.hash
index 636b675d15..215066c6c9 100644
--- a/package/libgtk4/libgtk4.hash
+++ b/package/libgtk4/libgtk4.hash
@@ -1,5 +1,5 @@
-# From https://download.gnome.org/sources/gtk/4.14/gtk-4.14.5.sha256sum
-sha256  5547f2b9f006b133993e070b87c17804e051efda3913feaca1108fa2be41e24d  gtk-4.14.5.tar.xz
+# From https://download.gnome.org/sources/gtk/4.18/gtk-4.18.2.sha256sum
+sha256  cca5677be4c3e501b49f1c50bcafacba8dcf4bd3a2d016388f834eff274dc159  gtk-4.18.2.tar.xz
 
 # Hash for license file:
 sha256  b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c  COPYING
diff --git a/package/libgtk4/libgtk4.mk b/package/libgtk4/libgtk4.mk
index b00a2facad..31c0da1d0e 100644
--- a/package/libgtk4/libgtk4.mk
+++ b/package/libgtk4/libgtk4.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-LIBGTK4_VERSION_MAJOR = 4.14
-LIBGTK4_VERSION = $(LIBGTK4_VERSION_MAJOR).5
+LIBGTK4_VERSION_MAJOR = 4.18
+LIBGTK4_VERSION = $(LIBGTK4_VERSION_MAJOR).2
 LIBGTK4_SOURCE = gtk-$(LIBGTK4_VERSION).tar.xz
 LIBGTK4_SITE = https://download.gnome.org/sources/gtk/$(LIBGTK4_VERSION_MAJOR)
 LIBGTK4_LICENSE = LGPL-2.0+
@@ -21,6 +21,7 @@ LIBGTK4_DEPENDENCIES = \
 	graphene \
 	libepoxy \
 	libglib2 \
+	libpng \
 	pango \
 	$(TARGET_NLS_DEPENDENCIES)
 
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42
  2025-03-25 10:11     ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Thomas Devoogdt
  2025-03-25 10:11       ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.18.2 Thomas Devoogdt
@ 2025-03-25 21:50       ` Julien Olivain
  1 sibling, 0 replies; 7+ messages in thread
From: Julien Olivain @ 2025-03-25 21:50 UTC (permalink / raw)
  To: Thomas Devoogdt; +Cc: buildroot, thomas.petazzoni

On 25/03/2025 11:11, Thomas Devoogdt wrote:
> Announce:
>  - 
> https://lists.freedesktop.org/archives/wayland-devel/2025-January/043966.html
>  - 
> https://lists.freedesktop.org/archives/wayland-devel/2025-February/043980.html
>  - 
> http://lists.freedesktop.org/archives/wayland-devel/2025-March/044027.html
> 
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>

Applied to master, thanks.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Buildroot] [PATCH v2] package/libgtk4: bump to 4.18.2
  2025-03-25 10:11       ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.18.2 Thomas Devoogdt
@ 2025-04-21 21:26         ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-21 21:26 UTC (permalink / raw)
  To: Thomas Devoogdt; +Cc: buildroot

Hello Thomas,

On Tue, 25 Mar 2025 11:11:15 +0100
Thomas Devoogdt <thomas@devoogdt.com> wrote:

> https://gitlab.gnome.org/GNOME/gtk/-/blob/4.18.2/NEWS
> 
> Note that libgtk4 never selected BR2_PACKAGE_CAIRO_{PNG,ZLIB} as it is
> not needed thanks to [1]. However, we need to select BR2_PACKAGE_LIBPNG [2].
> In libgtk3, this was indirectly done as libgtk3 selects BR2_PACKAGE_CAIRO_PNG.
> 
> Also, add patches for:
>  - toolchains without fenv.h. [3]
>  - when cairo has been compiled without surfaces. [4]
> 
> [1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7717
> [2] https://gitlab.gnome.org/GNOME/gtk/-/blob/4.18.2/meson.build?ref_type=tags#L450
> [3] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
> [4] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7926
> 
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>

Thanks for the new iteration!

> diff --git a/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
> new file mode 100644
> index 0000000000..02d6a25526
> --- /dev/null
> +++ b/package/libgtk4/0002-gtk-gtkcssnumbervalue.c-fix-compilation-if-fenv.h-is.patch
> @@ -0,0 +1,106 @@
> +From e76e2c0c8afad80c6918890e443418e4f78c97c3 Mon Sep 17 00:00:00 2001
> +From: Thomas Devoogdt <thomas@devoogdt.com>
> +Date: Fri, 15 Nov 2024 08:22:40 +0100
> +Subject: [PATCH] gtk/gtkcssnumbervalue.c: fix compilation if fenv.h is missing
> +
> +../gtk/gtkcssnumbervalue.c:29:10: fatal error: fenv.h: No such file or directory
> +   29 | #include <fenv.h>
> +      |
> +
> +Upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7925
> +Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>

The feedback from upstream on this was pretty negative, and having to
maintain this forever doesn't seem like a great idea. There's already
quite a few packages that need fenv.h, and we for now address that with
ad-hoc architecture exclusions. Maybe it's time to bite the bullet, and
have some proper BR2_TOOLCHAIN_HAS_FENV_FE_DOWNWARD, etc so that we can
clean up all those dependencies?

You can "git grep fenv" in Buildroot to see the packages that have
fenv-related issues.

And yes, that means libgtk4 would not be available for certain
architecture/libc combinations, and I think that's fine.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-04-21 21:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-16 16:08 [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.0 Thomas Devoogdt
2025-01-25 21:07 ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.17.3 Thomas Devoogdt
2025-02-05 15:37   ` Thomas Petazzoni via buildroot
2025-03-25 10:11     ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Thomas Devoogdt
2025-03-25 10:11       ` [Buildroot] [PATCH v2] package/libgtk4: bump to 4.18.2 Thomas Devoogdt
2025-04-21 21:26         ` Thomas Petazzoni via buildroot
2025-03-25 21:50       ` [Buildroot] [PATCH v2] package/wayland-protocols: bump to 1.42 Julien Olivain

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.