From 78fbdb4202d6f424b4b1e3d8f31a5b776cc50192e45e8b928051e2243e5c304e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Tue, 9 Jul 2024 18:25:56 +0000 Subject: [PATCH] - Added patches dia-configure-c99.patch, dia-0.97.3-get_data_size.patch, dia-0.97.3-const-ft_vector.patch, dia-0.97.3-g_test_add_data_func_1.patch and dia-0.97.3-g_test_add_data_func_2.patch to address C99 compliance issues (mainly use of incompatible pointer types) that are errors by default with GCC 14 [boo#1224536]. All of these patches were taken from the Fedora dia package. Please (assuming the request is OK) forward to Factory soon-ish too so that we can switch the default compiler. Thanks. OBS-URL: https://build.opensuse.org/package/show/GNOME:Apps/dia?expand=0&rev=56 --- dia-0.97.3-const-ft_vector.patch | 83 +++++++++++++++ dia-0.97.3-g_test_add_data_func_1.patch | 31 ++++++ dia-0.97.3-g_test_add_data_func_2.patch | 48 +++++++++ dia-0.97.3-get_data_size.patch | 128 ++++++++++++++++++++++++ dia-configure-c99.patch | 33 ++++++ dia.changes | 11 ++ dia.spec | 17 ++++ 7 files changed, 351 insertions(+) create mode 100644 dia-0.97.3-const-ft_vector.patch create mode 100644 dia-0.97.3-g_test_add_data_func_1.patch create mode 100644 dia-0.97.3-g_test_add_data_func_2.patch create mode 100644 dia-0.97.3-get_data_size.patch create mode 100644 dia-configure-c99.patch diff --git a/dia-0.97.3-const-ft_vector.patch b/dia-0.97.3-const-ft_vector.patch new file mode 100644 index 0000000..a2285f2 --- /dev/null +++ b/dia-0.97.3-const-ft_vector.patch @@ -0,0 +1,83 @@ +From e5557aa1d396bc3ca80240f7b5c0a1831a5cf209 Mon Sep 17 00:00:00 2001 +From: Hans Breuer +Date: Sat, 4 May 2013 15:20:15 +0200 +Subject: [PATCH] [warningectomy] initialization from incompatible pointer type + +FT_Outline_Funcs take const FT_Vector* nowadays. +--- + plug-ins/postscript/diapsft2renderer.c | 28 +++++++++++++------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/plug-ins/postscript/diapsft2renderer.c b/plug-ins/postscript/diapsft2renderer.c +index 63aac74b5..ed4182e5e 100644 +--- a/plug-ins/postscript/diapsft2renderer.c ++++ b/plug-ins/postscript/diapsft2renderer.c +@@ -61,16 +61,16 @@ void draw_bezier_outline(DiaPsRenderer *renderer, + double pos_y + ); + /* Countour traveling functions */ +-static int paps_move_to( FT_Vector* to, ++static int paps_move_to( const FT_Vector* to, + void *user_data); +-static int paps_line_to( FT_Vector* to, ++static int paps_line_to( const FT_Vector* to, + void *user_data); +-static int paps_conic_to( FT_Vector* control, +- FT_Vector* to, ++static int paps_conic_to( const FT_Vector* control, ++ const FT_Vector* to, + void *user_data); +-static int paps_cubic_to( FT_Vector* control1, +- FT_Vector* control2, +- FT_Vector* to, ++static int paps_cubic_to( const FT_Vector* control1, ++ const FT_Vector* control2, ++ const FT_Vector* to, + void *user_data); + + static void dia_ps_ft2_renderer_class_init (DiaPsFt2RendererClass *klass); +@@ -111,7 +111,7 @@ set_font(DiaRenderer *self, DiaFont *font, real height) + /*====================================================================== + outline traversing functions. + ----------------------------------------------------------------------*/ +-static int paps_move_to( FT_Vector* to, ++static int paps_move_to( const FT_Vector* to, + void *user_data) + { + OutlineInfo *outline_info = (OutlineInfo*)user_data; +@@ -121,7 +121,7 @@ static int paps_move_to( FT_Vector* to, + return 0; + } + +-static int paps_line_to( FT_Vector* to, ++static int paps_line_to( const FT_Vector* to, + void *user_data) + { + OutlineInfo *outline_info = (OutlineInfo*)user_data; +@@ -131,8 +131,8 @@ static int paps_line_to( FT_Vector* to, + return 0; + } + +-static int paps_conic_to( FT_Vector* control, +- FT_Vector* to, ++static int paps_conic_to( const FT_Vector* control, ++ const FT_Vector* to, + void *user_data) + { + OutlineInfo *outline_info = (OutlineInfo*)user_data; +@@ -144,9 +144,9 @@ static int paps_conic_to( FT_Vector* control, + return 0; + } + +-static int paps_cubic_to( FT_Vector* control1, +- FT_Vector* control2, +- FT_Vector* to, ++static int paps_cubic_to( const FT_Vector* control1, ++ const FT_Vector* control2, ++ const FT_Vector* to, + void *user_data) + { + OutlineInfo *outline_info = (OutlineInfo*)user_data; +-- +GitLab + diff --git a/dia-0.97.3-g_test_add_data_func_1.patch b/dia-0.97.3-g_test_add_data_func_1.patch new file mode 100644 index 0000000..0753a4b --- /dev/null +++ b/dia-0.97.3-g_test_add_data_func_1.patch @@ -0,0 +1,31 @@ +From caddfcab250fe677ecf294fad835b71e6b10cf26 Mon Sep 17 00:00:00 2001 +From: Hans Breuer +Date: Fri, 3 Oct 2014 22:26:36 +0200 +Subject: [PATCH] [warningectomy] incompatible pointer types passing ... + +test-boundingbox.c:152:58: warning: incompatible pointer types passing 'void (const struct _TestBeziers *)' to parameter of type 'GTestDataFunc' (aka 'void (*)(gconstpointer)') [-Wincompatible-pointer-types] + g_test_add_data_func (testpath, &_test_beziers[i], _check_one_bezier); + ^~~~~~~~~~~~~~~~~ +test-svg.c:117:55: warning: incompatible pointer types passing 'void (const PathData *)' to parameter of type 'GTestDataFunc' (aka 'void (*)(gconstpointer)') [-Wincompatible-pointer-types] + g_test_add_data_func (testpath, &_test_path[i], _check_one_path); + ^~~~~~~~~~~~~~~ +--- + tests/test-boundingbox.c | 3 ++- + tests/test-svg.c | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/tests/test-boundingbox.c b/tests/test-boundingbox.c +index f5b57250e..f542e590d 100644 +--- a/tests/test-boundingbox.c ++++ b/tests/test-boundingbox.c +@@ -132,8 +132,9 @@ static struct _TestBeziers { + #undef BEZ + + static void +-_check_one_bezier (const struct _TestBeziers *test) ++_check_one_bezier (gconstpointer p) + { ++ const struct _TestBeziers *test = p; + Rectangle rect; + PolyBBExtras extra = {0, T*.7, T*.7, T*.7, 0 }; + diff --git a/dia-0.97.3-g_test_add_data_func_2.patch b/dia-0.97.3-g_test_add_data_func_2.patch new file mode 100644 index 0000000..d357d11 --- /dev/null +++ b/dia-0.97.3-g_test_add_data_func_2.patch @@ -0,0 +1,48 @@ +Backport from https://gitlab.gnome.org/GNOME/dia/-/commit/9c481f649414190bf8d6741cbca1777e9766756b + +--- dia-0.97.3/tests/test-objects.c 2014-08-24 17:46:02.000000000 +0200 ++++ dia-0.97.3/tests/test-objects.c.g_test_add_data_func_2 2024-03-03 01:01:53.832977690 +0100 +@@ -39,8 +39,9 @@ + int num_objects = 0; + + static void +-_test_creation (const DiaObjectType *type) ++_test_creation (gconstpointer user_data) + { ++ const DiaObjectType *type = (const DiaObjectType *)user_data; + int i; + Handle *h1 = NULL, *h2 = NULL; + Point point = {0, 0}; +@@ -112,8 +113,9 @@ + } + + static void +-_test_copy (const DiaObjectType *type) ++_test_copy (gconstpointer user_data) + { ++ const DiaObjectType *type = (const DiaObjectType *)user_data; + Handle *h1 = NULL, *h2 = NULL; + Point from = {0, 0}; + DiaObject *oc, *o = type->ops->create (&from, type->default_user_data, &h1, &h2); +@@ -172,8 +174,9 @@ + } + + static void +-_test_movement (const DiaObjectType *type) ++_test_movement (gconstpointer user_data) + { ++ const DiaObjectType *type = (const DiaObjectType *)user_data; + Handle *h1 = NULL, *h2 = NULL; + Point from = {0, 0}; + DiaObject *o = type->ops->create (&from, type->default_user_data, &h1, &h2); +@@ -215,8 +218,9 @@ + } + + static void +-_test_change (const DiaObjectType *type) ++_test_change (gconstpointer user_data) + { ++ const DiaObjectType *type = (const DiaObjectType *)user_data; + Handle *h1 = NULL, *h2 = NULL; + Point from = {0, 0}; + DiaObject *o = type->ops->create (&from, type->default_user_data, &h1, &h2); diff --git a/dia-0.97.3-get_data_size.patch b/dia-0.97.3-get_data_size.patch new file mode 100644 index 0000000..01930aa --- /dev/null +++ b/dia-0.97.3-get_data_size.patch @@ -0,0 +1,128 @@ +Backport from https://gitlab.gnome.org/GNOME/dia/-/commit/f57ea2685034ddbafc19f35d9b525a12283d7c24 + +--- dia-0.97.3/lib/prop_geomtypes.c 2014-08-24 17:46:01.000000000 +0200 ++++ dia-0.97.3/lib/prop_geomtypes.c.get_data_size 2024-03-02 22:11:06.700789662 +0100 +@@ -129,9 +129,10 @@ + } + + static int +-realprop_get_data_size(RealProperty *prop) ++realprop_get_data_size(void) + { +- return sizeof (prop->real_data); ++ RealProperty prop; ++ return sizeof (prop.real_data); + } + + static const PropertyOps realprop_ops = { +@@ -242,9 +243,10 @@ + } + + static int +-lengthprop_get_data_size(LengthProperty *prop) ++lengthprop_get_data_size(void) + { +- return sizeof (prop->length_data); ++ LengthProperty prop; ++ return sizeof (prop.length_data); + } + + static const PropertyOps lengthprop_ops = { +@@ -358,9 +360,10 @@ + } + + static int +-fontsizeprop_get_data_size(FontsizeProperty *prop) ++fontsizeprop_get_data_size(void) + { +- return sizeof (prop->fontsize_data); ++ FontsizeProperty prop; ++ return sizeof (prop.fontsize_data); + } + + static const PropertyOps fontsizeprop_ops = { +--- dia-0.97.3/lib/prop_inttypes.c 2014-08-24 17:46:01.000000000 +0200 ++++ dia-0.97.3/lib/prop_inttypes.c.get_data_size 2024-03-02 22:12:01.683149664 +0100 +@@ -122,9 +122,10 @@ + } + + static int +-charprop_get_data_size(CharProperty *prop) ++charprop_get_data_size(void) + { +- return sizeof (prop->char_data); ++ CharProperty prop; ++ return sizeof (prop.char_data); + } + + +@@ -229,9 +230,10 @@ + } + + static int +-boolprop_get_data_size(BoolProperty *prop) ++boolprop_get_data_size(void) + { +- return sizeof (prop->bool_data); ++ BoolProperty prop; ++ return sizeof (prop.bool_data); + } + + +@@ -339,9 +341,10 @@ + } + + static int +-intprop_get_data_size(IntProperty *prop) ++intprop_get_data_size(void) + { +- return sizeof (prop->int_data); ++ IntProperty prop; ++ return sizeof (prop.int_data); + } + + static const PropertyOps intprop_ops = { +--- dia-0.97.3/lib/prop_text.c 2014-08-24 17:46:01.000000000 +0200 ++++ dia-0.97.3/lib/prop_text.c.get_data_size 2024-03-02 22:12:46.741444615 +0100 +@@ -208,9 +208,10 @@ + } + + static int +-stringprop_get_data_size(StringProperty *prop) ++stringprop_get_data_size(void) + { +- return sizeof (prop->string_data); /* only the pointer */ ++ StringProperty prop; ++ return sizeof (prop.string_data); /* only the pointer */ + } + + static StringListProperty * +--- dia-0.97.3/lib/properties.h 2014-08-24 17:46:01.000000000 +0200 ++++ dia-0.97.3/lib/properties.h.get_data_size 2024-03-02 22:13:08.051584089 +0100 +@@ -116,7 +116,7 @@ + void *base, guint offset, guint offset2); + typedef void (*PropertyType_SetFromOffset)(Property *prop, + void *base, guint offset, guint offset2); +-typedef int (*PropertyType_GetDataSize)(Property *prop); ++typedef int (*PropertyType_GetDataSize)(void); + + + struct _PropertyOps { +--- dia-0.97.3/objects/custom/custom_object.c 2014-08-24 17:46:01.000000000 +0200 ++++ dia-0.97.3/objects/custom/custom_object.c.get_data_size 2024-03-02 22:13:29.153722188 +0100 +@@ -372,14 +372,7 @@ + info->prop_offsets[i].name = info->props[i].name; + info->prop_offsets[i].type = info->props[i].type; + info->prop_offsets[i].offset = offs; +- /* FIXME: +- custom_object.c:328: warning: passing arg 1 of pointer to function +- from incompatible pointer type +- We don't have a Property* here so there is not much we can do about. +- Maybe it even works cause the sizeof() in *_get_data_size can be +- calculated at compile time. Anyway, a mess ;) --hb +- */ +- size = info->props[i].ops->get_data_size (&info->props[i]); ++ size = info->props[i].ops->get_data_size (); + info->ext_attr_size += size; + offs += size; + } diff --git a/dia-configure-c99.patch b/dia-configure-c99.patch new file mode 100644 index 0000000..842800b --- /dev/null +++ b/dia-configure-c99.patch @@ -0,0 +1,33 @@ +C99 removes support for implicit ints, so declare the return type +of main explicitly. Future compilers are likely to require explicit +type declarations. + +Upstream has switched to Meson, and it does not seem to use this +particular check anymore. + +diff --git a/configure b/configure +index 14cdc757c3ee0f15..504ae93d8e3a4f48 100755 +--- a/configure ++++ b/configure +@@ -17571,7 +17571,7 @@ $as_echo_n "checking for png_structp in png.h... " >&6; } + png_structp pp; + png_infop info; + png_colorp cmap; +- main() { void*foo = png_create_read_struct; } ++ int main(void) { void*foo = png_create_read_struct; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + png_ok=yes +diff --git a/configure.in b/configure.in +index c5edeeddf766d5fb..f90ed4ef953af139 100644 +--- a/configure.in ++++ b/configure.in +@@ -197,7 +197,7 @@ if test "$png_ok" = yes; then + png_structp pp; + png_infop info; + png_colorp cmap; +- main() { void*foo = png_create_read_struct; }], ++ int main(void) { void*foo = png_create_read_struct; }], + png_ok=yes, + png_ok=no) + LDFLAGS="${old_LDFLAGS}" diff --git a/dia.changes b/dia.changes index fb93a3a..8a906ab 100644 --- a/dia.changes +++ b/dia.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Jul 8 14:01:36 UTC 2024 - Martin Jambor + +- Added patches dia-configure-c99.patch, + dia-0.97.3-get_data_size.patch, dia-0.97.3-const-ft_vector.patch, + dia-0.97.3-g_test_add_data_func_1.patch and + dia-0.97.3-g_test_add_data_func_2.patch to address C99 compliance + issues (mainly use of incompatible pointer types) that are errors by + default with GCC 14 [boo#1224536]. All of these patches were taken + from the Fedora dia package. + ------------------------------------------------------------------- Thu Feb 8 16:04:53 UTC 2024 - Dominique Leuenberger diff --git a/dia.spec b/dia.spec index 4aeb9a6..cc69e5f 100644 --- a/dia.spec +++ b/dia.spec @@ -38,6 +38,17 @@ Patch17: dia-remove-datetime.patch Patch20: dia-libemf-64bit.patch # PATCH-FIX-OPENSUSE dia-enable-html-doc.patch mgorse@suse.com -- Always enable html docs if xsltproc present. Patch23: dia-enable-html-doc.patch +# PATCH-FIX-OPENSUSE dia-configure-c99.patch boo#1224536 mjambor@suse.cz -- Fix configure issue with GCC 14, from https://src.fedoraproject.org/rpms/dia/c/0a14169fc36b959598074065678e0126830317f8?branch=rawhide +Patch30: dia-configure-c99.patch +# PATCH-FIX-UPSTREAM dia-0.97.3-get_data_size.patch boo#1224536 mjambor@suse.cz -- One of upstream patches for -Wincompatible-pointer-types +Patch31: dia-0.97.3-get_data_size.patch +# PATCH-FIX-UPSTREAM dia-0.97.3-const-ft_vector.patch boo#1224536 mjambor@suse.cz -- One of upstream patches for -Wincompatible-pointer-types +Patch32: dia-0.97.3-const-ft_vector.patch +# PATCH-FIX-UPSTREAM dia-0.97.3-g_test_add_data_func_1.patch boo#1224536 mjambor@suse.cz -- One of upstream patches for -Wincompatible-pointer-types +Patch33: dia-0.97.3-g_test_add_data_func_1.patch +# PATCH-FIX-UPSTREAM dia-0.97.3-g_test_add_data_func_2.patch boo#1224536 mjambor@suse.cz -- One of upstream patches for -Wincompatible-pointer-types +Patch34: dia-0.97.3-g_test_add_data_func_2.patch + BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gcc-c++ @@ -89,6 +100,12 @@ pages). %patch -P 17 -p1 %patch -P 20 -p1 %patch -P 23 -p1 +%patch -P 30 -p1 +%patch -P 31 -p1 +%patch -P 32 -p1 +%patch -P 33 -p1 +%patch -P 34 -p1 + cp $RPM_SOURCE_DIR/font-test*dia . %build