commit:     3e5793c0eec2c3bcbb1ec55294ad685526d3b6c1
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  8 11:47:40 2026 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Feb  8 12:34:10 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e5793c0

sci-calculators/galculator: add 2.1.5_pre20150928

Apply Debian patch to fix building with c23 standard.
Completely migrate to github tarball.
Update to the latest branch to also get modernized autotools
build system and some minor fixes from upstream.

Closes: https://bugs.gentoo.org/944875
Closes: https://bugs.gentoo.org/945739
Closes: https://bugs.gentoo.org/969250
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 sci-calculators/galculator/Manifest                |   1 +
 .../galculator/files/galculator-2.1.4-c23.patch    | 106 +++++++++++++++++++++
 .../galculator/galculator-2.1.5_pre20150928.ebuild |  46 +++++++++
 3 files changed, 153 insertions(+)

diff --git a/sci-calculators/galculator/Manifest 
b/sci-calculators/galculator/Manifest
index b7322b6a84c7..bb7f0d559941 100644
--- a/sci-calculators/galculator/Manifest
+++ b/sci-calculators/galculator/Manifest
@@ -1 +1,2 @@
 DIST galculator-2.1.4.tar.bz2 472989 BLAKE2B 
2fa40aa0d04880e46aad89c79ebb221a13fca815af3540c159205690a65dae6c5ec9e52e48c110ecadc4a18b86d5bd5d363f9d77c162717c8bfd2a60b71d0896
 SHA512 
ca5f373649d9bf26184e94ba6a501610efbb13e92a8723cda78b83aa495519e82e5b4fcd17f00f615eb702ed186598aecc70ae63a8238c32384b7f608cba4cfa
+DIST galculator-2.1.5_pre20150928.tar.gz 482678 BLAKE2B 
1895b15712e0592acc40ccf292b86c62e7a8e71fa77f8a898266a13af8fdccd90432af6b03c176a8efeb23c11f98d072de87fee8de64de30412cb6149faa07be
 SHA512 
c5d07a5cad25a7d081e4b8b85ae391b7a628a488df9b3722d0959e41b023b5c9ada22c1ffcf7c9f26a2af6373bdd8f53e8a3795b5a0f0c0ab53eec9af32fa35a

diff --git a/sci-calculators/galculator/files/galculator-2.1.4-c23.patch 
b/sci-calculators/galculator/files/galculator-2.1.4-c23.patch
new file mode 100644
index 000000000000..d773cf9953eb
--- /dev/null
+++ b/sci-calculators/galculator/files/galculator-2.1.4-c23.patch
@@ -0,0 +1,106 @@
+From: "Henrique F. Simoes" <[email protected]>
+Date: Wed, 15 Oct 2025 21:17:51 -0300
+Subject: Declare function parameters as required by C23
+
+In C23, having no parameter in a function declaration no longer means an
+"unspecified" number of arguments [1]. Therefore, this code fails to
+build with this standard. Declare the missing function arguments, so
+that it compiles once again with the default standard from modern
+compilers, such as GCC 15.
+
+The exception here is the set_{basic,scientific}_object_data functions,
+which actually don't use their argument at all. Thus, their unique calls
+are changed instead.
+
+Because functions registered by set_disp_ctrl_object_data don't receive
+a button pointer as argument as the others, declare a new struct for
+holding the entries for that. It is named after "display" as it is only
+used for display control buttons.
+
+[1] https://gcc.gnu.org/gcc-15/porting_to.html
+
+Bug-Debian: https://bugs.debian.org/1096669
+---
+ src/callbacks.c  | 2 +-
+ src/galculator.h | 8 +++++++-
+ src/ui.c         | 6 +++---
+ src/ui.h         | 2 +-
+ 4 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/src/callbacks.c b/src/callbacks.c
+index 503fb13..7259afe 100644
+--- a/src/callbacks.c
++++ b/src/callbacks.c
+@@ -262,7 +262,7 @@ void
+ on_gfunc_button_clicked                (GtkToggleButton       *button,
+                                         gpointer         user_data)
+ {
+-    void    (*func)();
++    void    (*func)(GtkToggleButton *);
+     char     *display_string;
+ 
+     if (gtk_toggle_button_get_active(button) == FALSE) return;
+diff --git a/src/galculator.h b/src/galculator.h
+index 22a4060..bb2ff9f 100644
+--- a/src/galculator.h
++++ b/src/galculator.h
+@@ -180,9 +180,15 @@ typedef struct {
+ typedef struct {
+       char            *button_name;
+       char            *display_string;
+-      void            (*func)();
++      void            (*func)(GtkToggleButton *button);
+ } s_gfunc_map;
+ 
++typedef struct {
++      char            *button_name;
++      char            *display_string;
++      void            (*func)();
++} s_disp_func_map;
++
+ typedef struct {
+       char            *button_name;
+       /* display_string: what to display in history or formula entry. hasn't 
+diff --git a/src/ui.c b/src/ui.c
+index 6eaac7d..3ed50a5 100644
+--- a/src/ui.c
++++ b/src/ui.c
+@@ -244,7 +244,7 @@ static void set_disp_ctrl_object_data ()
+ {
+       int     counter=0;
+       
+-      s_gfunc_map map[] = {\
++      s_disp_func_map map[] = {\
+               {"button_clr", NULL, clear},\
+               {"button_backspace", NULL, backspace},\
+               {"button_allclr", NULL, all_clear},\
+@@ -433,14 +433,14 @@ void ui_main_window_buttons_create (int mode)
+               button_box_xml = gtk_builder_file_open (BASIC_GLADE_FILE, TRUE);
+         box = GTK_WIDGET(gtk_builder_get_object (view_xml, 
"classic_view_vbox"));
+               ui_pack_from_xml (box, 2, button_box_xml, "button_box", TRUE, 
TRUE);
+-              set_basic_object_data (button_box_xml);
++              set_basic_object_data ();
+               break;
+       case SCIENTIFIC_MODE:
+               if (button_box_xml) g_object_unref (G_OBJECT(button_box_xml));
+               button_box_xml = gtk_builder_file_open (SCIENTIFIC_GLADE_FILE, 
TRUE);
+         box = GTK_WIDGET(gtk_builder_get_object (view_xml, 
"classic_view_vbox"));
+               ui_pack_from_xml (box, 2, button_box_xml, "button_box", TRUE, 
TRUE);
+-              set_scientific_object_data (button_box_xml);
++              set_scientific_object_data ();
+               break;
+       case PAPER_MODE:
+               return;
+diff --git a/src/ui.h b/src/ui.h
+index 90992a2..a20ac3c 100644
+--- a/src/ui.h
++++ b/src/ui.h
+@@ -74,7 +74,7 @@ void ui_formula_entry_activate ();
+ void ui_formula_entry_set (G_CONST_RETURN gchar *text);
+ void ui_formula_entry_insert (G_CONST_RETURN gchar *text);
+ void ui_formula_entry_backspace ();
+-void ui_formula_entry_state ();
++void ui_formula_entry_state (gboolean error);
+ void ui_button_set_pan ();
+ void ui_button_set_rpn ();
+ void ui_relax_fmod_buttons ();

diff --git a/sci-calculators/galculator/galculator-2.1.5_pre20150928.ebuild 
b/sci-calculators/galculator/galculator-2.1.5_pre20150928.ebuild
new file mode 100644
index 000000000000..e1e56799a74a
--- /dev/null
+++ b/sci-calculators/galculator/galculator-2.1.5_pre20150928.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools xdg
+
+DESCRIPTION="GTK+ based algebraic and RPN calculator"
+HOMEPAGE="https://github.com/galculator/galculator";
+COMMIT="ccf6f06602a5cf9d9fc95d767b545b03af6a7f71"
+SRC_URI="https://github.com/galculator/galculator/archive/${COMMIT}.tar.gz -> 
${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~x86"
+
+RDEPEND="
+       dev-libs/glib:2
+       x11-libs/gtk+:3
+       x11-libs/pango
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       dev-util/intltool
+       app-alternatives/lex
+       sys-devel/gettext
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.1.4-fno-common.patch
+       "${FILESDIR}"/${PN}-2.1.4-c23.patch
+)
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_install() {
+       default
+       dodoc doc/shortcuts
+
+       mv "${ED}"/usr/share/{appdata,metainfo} || die
+}

Reply via email to