commit: b84ebc44875c02084bdbecc0e3fb45545f650389 Author: Hans de Graaff <graaff <AT> gentoo <DOT> org> AuthorDate: Fri Sep 5 10:00:50 2025 +0000 Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org> CommitDate: Fri Sep 5 10:02:35 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b84ebc44
sci-geosciences/viking: fix c23 compilation and gpsd dep - backport upstream's C23 changes - fix gpsd dependency to allow automatic recompilation Closes: https://bugs.gentoo.org/949870 Closes: https://bugs.gentoo.org/962237 Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org> sci-geosciences/viking/files/viking-1.10-c23.patch | 82 +++++++++++++++++ sci-geosciences/viking/viking-1.10-r1.ebuild | 100 +++++++++++++++++++++ 2 files changed, 182 insertions(+) diff --git a/sci-geosciences/viking/files/viking-1.10-c23.patch b/sci-geosciences/viking/files/viking-1.10-c23.patch new file mode 100644 index 000000000000..d1139fa3eabd --- /dev/null +++ b/sci-geosciences/viking/files/viking-1.10-c23.patch @@ -0,0 +1,82 @@ +From d447c19b6a2fe499fd60aa8969ea91c5cbfda159 Mon Sep 17 00:00:00 2001 +From: Otto Liljalaakso <[email protected]> +Date: Wed, 29 Jan 2025 00:49:42 +0200 +Subject: [PATCH] C23 compatibility +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In C23, empty paramter list in function declaration actually means that +function takes parameters. Update to declare parameters for all +functions that take them, and pass NULL as needed. + +Without this change, building with C23 fails with errors like shown +below. These broke build for Fedora 42, which comes with GCC 15 and +uses C23 by default. + + vikaggregatelayer.c: In function ‘vik_aggregate_layer_create’: + vikaggregatelayer.c:631:27: error: too many arguments to function ‘vik_aggregate_layer_new’; expected 0, have 1 + 631 | VikAggregateLayer *rv = vik_aggregate_layer_new (vp); + | ^~~~~~~~~~~~~~~~~~~~~~~ ~~ + In file included from viking.h:57: + vikaggregatelayer.h:48:20: note: declared here + 48 | VikAggregateLayer *vik_aggregate_layer_new (); + | ^~~~~~~~~~~~~~~~~~~~~~~ + vikaggregatelayer.c: In function ‘aggregate_layer_unmarshall’: + vikaggregatelayer.c:680:27: error: too many arguments to function ‘vik_aggregate_layer_new’; expected 0, have 1 + 680 | VikAggregateLayer *rv = vik_aggregate_layer_new(vvp); + | ^~~~~~~~~~~~~~~~~~~~~~~ ~~~ + vikaggregatelayer.h:48:20: note: declared here + 48 | VikAggregateLayer *vik_aggregate_layer_new (); + | ^~~~~~~~~~~~~~~~~~~~~~~ + vikaggregatelayer.c: At top level: + vikaggregatelayer.c:700:20: error: conflicting types for ‘vik_aggregate_layer_new’; have ‘VikAggregateLayer *(VikViewport *)’ {aka ‘struct _VikAggregateLayer *(struct _VikViewport *)’} + 700 | VikAggregateLayer *vik_aggregate_layer_new (VikViewport *vvp) + | ^~~~~~~~~~~~~~~~~~~~~~~ + vikaggregatelayer.h:48:20: note: previous declaration of ‘vik_aggregate_layer_new’ with type ‘VikAggregateLayer *(void)’ {aka ‘struct _VikAggregateLayer *(void)’} + 48 | VikAggregateLayer *vik_aggregate_layer_new (); + | ^~~~~~~~~~~~~~~~~~~~~~~ +--- + src/vikaggregatelayer.h | 2 +- + src/viklayerspanel.c | 2 +- + test/test_file_load.c | 2 +- + test/vik2vik.c | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/vikaggregatelayer.h b/src/vikaggregatelayer.h +index fe726600..38061152 100644 +--- a/src/vikaggregatelayer.h ++++ b/src/vikaggregatelayer.h +@@ -45,7 +45,7 @@ GType vik_aggregate_layer_get_type (); + typedef struct _VikAggregateLayer VikAggregateLayer; + + void vik_aggregate_layer_uninit (); +-VikAggregateLayer *vik_aggregate_layer_new (); ++VikAggregateLayer *vik_aggregate_layer_new ( VikViewport *vvp ); + void vik_aggregate_layer_add_layer ( VikAggregateLayer *val, VikLayer *l, gboolean allow_reordering ); + void vik_aggregate_layer_insert_layer ( VikAggregateLayer *val, VikLayer *l, VikLayer *crt_layer, gboolean allow_reordering ); + void vik_aggregate_layer_move_layer ( VikAggregateLayer *val, GtkTreeIter *child_iter, gboolean up ); +diff --git a/src/viklayerspanel.c b/src/viklayerspanel.c +index 2ac4b33e..cc513885 100644 +--- a/src/viklayerspanel.c ++++ b/src/viklayerspanel.c +@@ -659,7 +659,7 @@ static void vik_layers_panel_init ( VikLayersPanel *vlp ) + vlp->hbox = gtk_hbox_new ( TRUE, 2 ); + vlp->vt = vik_treeview_new ( ); + +- vlp->toplayer = vik_aggregate_layer_new (); ++ vlp->toplayer = vik_aggregate_layer_new ( NULL ); + vik_layer_rename ( VIK_LAYER(vlp->toplayer), _("Top Layer")); + g_signal_connect_swapped ( G_OBJECT(vlp->toplayer), "update", G_CALLBACK(layers_panel_emit_update), vlp ); + +diff --git a/test/vik2vik.c b/test/vik2vik.c +index e53a9746..ff8c8fa1 100644 +--- a/test/vik2vik.c ++++ b/test/vik2vik.c +@@ -43,5 +43,5 @@ int main(int argc, char *argv[]) + // Also get lots of warnings about no actual drawing GCs available + // but for file processing this seems to be good enough + VikLoadType_t lt; +- VikAggregateLayer* agg = vik_aggregate_layer_new (); ++ VikAggregateLayer* agg = vik_aggregate_layer_new ( NULL ); + VikViewport* vp = vik_viewport_new (); diff --git a/sci-geosciences/viking/viking-1.10-r1.ebuild b/sci-geosciences/viking/viking-1.10-r1.ebuild new file mode 100644 index 000000000000..7fe5568bdfed --- /dev/null +++ b/sci-geosciences/viking/viking-1.10-r1.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools xdg-utils + +DESCRIPTION="GPS data editor and analyzer" +HOMEPAGE="https://github.com/viking-gps/viking/" +SRC_URI=" + https://github.com/viking-gps/${PN}/archive/${P}.tar.gz + doc? ( https://github.com/viking-gps/${PN}/releases/download/${P}/${PN}.pdf )" +S="${WORKDIR}/${PN}-${P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="doc +exif libexif geoclue gps +magic nls oauth" + +COMMONDEPEND=" + app-arch/bzip2 + >=dev-tcltk/expect-5.45.4 + dev-db/sqlite:3 + dev-libs/expat + >=dev-libs/glib-2.44:2 + >=dev-libs/json-glib-0.16 + dev-libs/nettle + net-misc/curl + sys-libs/zlib + >=x11-libs/gdk-pixbuf-2.26:2 + >=x11-libs/gtk+-3.22:3 + geoclue? ( >=app-misc/geoclue-2.4.4:2.0 ) + gps? ( >=sci-geosciences/gpsd-3.20:= ) + exif? ( libexif? ( media-libs/libexif ) !libexif? ( media-libs/gexiv2 ) ) + magic? ( sys-apps/file ) + oauth? ( net-libs/liboauth ) +" +RDEPEND="${COMMONDEPEND} + sci-geosciences/gpsbabel +" +DEPEND="${COMMONDEPEND} + app-text/yelp-tools + dev-util/intltool + dev-util/gtk-doc + dev-build/gtk-doc-am + dev-libs/libxslt + virtual/pkgconfig + sys-devel/gettext +" + +PATCHES=( "${FILESDIR}/${P}-terraserver.patch" "${FILESDIR}/${P}-c23.patch" ) + +src_prepare() { + default + eautoreconf + + sed -i -e '/Avoid creator line/isrcdir=test' test/check_gpx.sh || die +} + +src_configure() { + econf \ + --disable-deprecations \ + --with-libcurl \ + --with-expat \ + --enable-google \ + --enable-nettle \ + --enable-terraserver \ + --enable-expedia \ + --enable-openstreetmap \ + --enable-bluemarble \ + --enable-geonames \ + --enable-geocaches \ + --disable-dem24k \ + --disable-mapnik \ + --enable-mbtiles \ + $(use_enable exif geotag) \ + $(use_with libexif ) \ + $(use_enable geoclue) \ + $(use_enable gps realtime-gps-tracking) \ + $(use_enable magic) \ + $(use_enable nls) \ + $(use_enable oauth) +} + +src_install() { + default + if use doc; then + dodoc "${DISTDIR}"/${PN}.pdf + fi +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +}
