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@gentoo.org>
This commit is contained in:
Pacho Ramos
2026-02-08 12:47:40 +01:00
parent 54ae98768f
commit 3e5793c0ee
3 changed files with 153 additions and 0 deletions

View File

@@ -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

View File

@@ -0,0 +1,106 @@
From: "Henrique F. Simoes" <henriquesimoes@riseup.net>
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 ();

View File

@@ -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
}