* [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
---
| 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
--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/
!
---
| 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
--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
---
| 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
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox