diff options
author | Pascal Jäger <pascal.jaeger@leimstift.de> | 2022-11-11 14:34:38 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-11-15 02:38:56 +0000 |
commit | 7736f1c577d6233b1c8aa0fbeab639e1dd13241a (patch) | |
tree | 3891f6974aff741ab19ccf6f0c79d6ac20791ea4 /x11-misc/gtkdialog | |
parent | x11-plugins/pidgin-otr: fix clang16 configure (diff) | |
download | gentoo-7736f1c577d6233b1c8aa0fbeab639e1dd13241a.tar.gz gentoo-7736f1c577d6233b1c8aa0fbeab639e1dd13241a.tar.bz2 gentoo-7736f1c577d6233b1c8aa0fbeab639e1dd13241a.zip |
x11-misc/gtkdialog: revbump, fix build for clang16
Closes: https://bugs.gentoo.org/875704
Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de>
Closes: https://github.com/gentoo/gentoo/pull/28223
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'x11-misc/gtkdialog')
3 files changed, 272 insertions, 9 deletions
diff --git a/x11-misc/gtkdialog/files/gtkdialog-0.8.3-fix-build-for-clang16.patch b/x11-misc/gtkdialog/files/gtkdialog-0.8.3-fix-build-for-clang16.patch new file mode 100644 index 000000000000..fd6ff011f810 --- /dev/null +++ b/x11-misc/gtkdialog/files/gtkdialog-0.8.3-fix-build-for-clang16.patch @@ -0,0 +1,202 @@ +Clang16 will not allow implicit function declarations and implicit integers etc. +This patch overhauls the source code for modern C. + +Bug: https://bugs.gentoo.org/875704 +Upstream PR: https://github.com/oshazard/gtkdialog/pull/81 + +Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de> + +--- a/src/actions.c ++++ b/src/actions.c +@@ -36,6 +36,7 @@ + #include "attributes.h" + #include "variables.h" + #include "tag_attributes.h" ++#include "gtkdialog_parser.h" + + extern gchar *option_include_file; + +--- a/src/automaton.c ++++ b/src/automaton.c +@@ -35,6 +35,7 @@ + */ + + #include <gtk/gtk.h> ++#include <glib/gprintf.h> + + #include "config.h" + #include "gtkdialog.h" +@@ -87,6 +88,8 @@ + #undef TOOLTIPS + + extern gboolean option_no_warning; ++extern void push_widget(GtkWidget * widget, int widgettype); ++int instruction_execute(instruction command); + + instruction *program = NULL; + int instruction_counter = 0; /* The first available memory cell */ +@@ -323,8 +326,7 @@ void print_command(instruction command) + fflush(stdout); + } + +-void +-print_program() ++void print_program() + { + gint pc; + instruction command; +@@ -580,8 +582,7 @@ finalize: + } + + +-int +-instruction_execute(instruction command) ++int instruction_execute(instruction command) + { + GList *element; + token Token; +@@ -911,9 +912,11 @@ gboolean widget_moved(GtkWidget *widget, + //gtk_widget_set_usize(window, + // configure->width -20, + // configure->height); ++#if HAVE_GTK==2 + gtk_widget_set_uposition(GTK_WIDGET(window), + configure->x, + configure->y); ++#endif + } + + fflush(stderr); +--- a/src/gtkdialog.h ++++ b/src/gtkdialog.h +@@ -65,5 +65,6 @@ gint get_program_from_variable(gchar *name); + void set_program_name(gchar *name); + gchar *get_program_name(void); + void load_styles_file(gchar *filename); ++int getnextchar(void); + + #endif +--- a/src/gtkdialog_parser.h ++++ b/src/gtkdialog_parser.h +@@ -385,3 +385,8 @@ typedef union YYSTYPE + extern YYSTYPE gtkdialog_lval; + + ++extern int gtkdialog_error(char *c); ++extern void run_program(void); ++extern void print_program(); ++extern int gtkdialog_lex (void); ++extern int gtkdialog_parse (void); +--- a/src/printing.c ++++ b/src/printing.c +@@ -25,6 +25,7 @@ + #include <stdio.h> + #include <stdlib.h> + #include <gtk/gtk.h> ++#include <glib/gprintf.h> + #include "gtkdialog.h" + #include "printing.h" + +--- a/src/signals.c ++++ b/src/signals.c +@@ -40,6 +40,8 @@ + //#define DEBUG_CONTENT + //#define DEBUG_TRANSITS + ++extern gboolean variables_is_avail_by_name(const char *name); ++ + /* Local variables */ + char *condexpr[] = { + "active_is_true(", "active_is_false(", "active_is_true (", "active_is_false (", +--- a/src/stringman.c ++++ b/src/stringman.c +@@ -30,6 +30,7 @@ + + #include <stdio.h> + #include <stdlib.h> ++#include <ctype.h> + #include <unistd.h> + #include <string.h> + #include <gtk/gtk.h> +--- a/src/variables.c ++++ b/src/variables.c +@@ -59,6 +59,7 @@ + #endif + + extern gboolean option_no_warning; ++extern int yywarning(char *c); + + /* Local function prototypes */ + #ifdef DEBUG +--- a/src/widget_notebook.c ++++ b/src/widget_notebook.c +@@ -28,6 +28,7 @@ + #include "automaton.h" + #include "widgets.h" + #include "tag_attributes.h" ++#include "signals.h" + + /* Defines */ + //#define DEBUG_CONTENT +--- a/src/widget_timer.c ++++ b/src/widget_timer.c +@@ -28,6 +28,7 @@ + #include "automaton.h" + #include "widgets.h" + #include "tag_attributes.h" ++#include "signals.h" + + /* Defines */ + //#define DEBUG_CONTENT +--- a/src/widgets.h ++++ b/src/widgets.h +@@ -38,6 +38,38 @@ + #include "variables.h" + #include "automaton.h" + ++#include "widget_window.h" ++#include "widget_vbox.h" ++#include "widget_tree.h" ++#include "widget_timer.h" ++#include "widget_text.h" ++#include "widget_terminal.h" ++#include "widget_template.h" ++#include "widget_table.h" ++#include "widget_statusbar.h" ++#include "widget_spinbutton.h" ++#include "widget_radiobutton.h" ++#include "widget_progressbar.h" ++#include "widget_pixmap.h" ++#include "widget_notebook.h" ++#include "widget_menuitem.h" ++#include "widget_menubar.h" ++#include "widget_list.h" ++#include "widget_hseparator.h" ++#include "widget_hscale.h" ++#include "widget_hbox.h" ++#include "widget_frame.h" ++#include "widget_fontbutton.h" ++#include "widget_expander.h" ++#include "widget_eventbox.h" ++#include "widget_entry.h" ++#include "widget_edit.h" ++#include "widget_comboboxtext.h" ++#include "widget_combobox.h" ++#include "widget_colorbutton.h" ++#include "widget_checkbox.h" ++#include "widget_button.h" ++ + char *widget_get_text_value(GtkWidget *widget, int type); + FILE *widget_opencommand(const char *command); + char *widgets_to_str(int itype); +--- a/src/gtkdialog.c ++++ b/src/gtkdialog.c +@@ -345,7 +345,7 @@ get_program_from_file(char *name) + * required because the #! is not included in the language. + */ + program_src = NULL; +- result = getline(&program_src, &tmp, sourcefile); ++ result = getline(&program_src, (size_t*)&tmp, sourcefile); + if (program_src[0] != '#') { + fclose(sourcefile); + sourcefile = fopen(name, "r"); diff --git a/x11-misc/gtkdialog/gtkdialog-0.8.3_p20200202-r1.ebuild b/x11-misc/gtkdialog/gtkdialog-0.8.3_p20200202-r1.ebuild new file mode 100644 index 000000000000..f8c30fc9385a --- /dev/null +++ b/x11-misc/gtkdialog/gtkdialog-0.8.3_p20200202-r1.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools xdg + +if [[ "${PV}" == "99999" ]]; then + EGIT_REPO_URI="https://github.com/oshazard/gtkdialog" + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~jsmolic/distfiles/${P}.tar.xz" + KEYWORDS="~amd64 ~ppc ~x86" +fi + +DESCRIPTION="A small utility for fast and easy GUI building" +HOMEPAGE="https://github.com/oshazard/gtkdialog" +LICENSE="GPL-2" + +SLOT="0" +RDEPEND=" + x11-libs/gtk+:3 + x11-libs/vte:2.91= +" +DEPEND=" + ${RDEPEND} + sys-apps/texinfo + sys-devel/flex + virtual/pkgconfig + virtual/yacc +" +PATCHES=( + "${FILESDIR}"/${PN}-0.8.3-fno-common.patch + "${FILESDIR}"/${PN}-0.8.3-do_variables_count_widgets.patch + "${FILESDIR}"/${PN}-0.8.3-fix-build-for-clang16.patch +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf --enable-gtk3 +} + +src_compile() { + emake -C doc stamp-vti + default +} + +src_install() { + # Stop make install from running gtk-update-icon-cache + emake DESTDIR="${D}" UPDATE_ICON_CACHE=true install + einstalldocs +} diff --git a/x11-misc/gtkdialog/gtkdialog-99999.ebuild b/x11-misc/gtkdialog/gtkdialog-99999.ebuild index 471ce7d9bc93..f8c30fc9385a 100644 --- a/x11-misc/gtkdialog/gtkdialog-99999.ebuild +++ b/x11-misc/gtkdialog/gtkdialog-99999.ebuild @@ -3,31 +3,36 @@ EAPI=8 -inherit autotools git-r3 xdg +inherit autotools xdg -DESCRIPTION="Small utility for fast and easy GUI building" -HOMEPAGE="https://github.com/oshazard/gtkdialog" -EGIT_REPO_URI="https://github.com/oshazard/gtkdialog" +if [[ "${PV}" == "99999" ]]; then + EGIT_REPO_URI="https://github.com/oshazard/gtkdialog" + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~jsmolic/distfiles/${P}.tar.xz" + KEYWORDS="~amd64 ~ppc ~x86" +fi +DESCRIPTION="A small utility for fast and easy GUI building" +HOMEPAGE="https://github.com/oshazard/gtkdialog" LICENSE="GPL-2" -SLOT="0" -KEYWORDS="" +SLOT="0" RDEPEND=" x11-libs/gtk+:3 x11-libs/vte:2.91= " -DEPEND="${RDEPEND}" -BDEPEND=" +DEPEND=" + ${RDEPEND} sys-apps/texinfo sys-devel/flex virtual/pkgconfig virtual/yacc " - PATCHES=( "${FILESDIR}"/${PN}-0.8.3-fno-common.patch "${FILESDIR}"/${PN}-0.8.3-do_variables_count_widgets.patch + "${FILESDIR}"/${PN}-0.8.3-fix-build-for-clang16.patch ) src_prepare() { |