commit:     7736f1c577d6233b1c8aa0fbeab639e1dd13241a
Author:     Pascal Jäger <pascal.jaeger <AT> leimstift <DOT> de>
AuthorDate: Fri Nov 11 13:34:38 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Nov 15 02:38:56 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7736f1c5

x11-misc/gtkdialog: revbump, fix build for clang16

Closes: https://bugs.gentoo.org/875704
Signed-off-by: Pascal Jäger <pascal.jaeger <AT> leimstift.de>
Closes: https://github.com/gentoo/gentoo/pull/28223
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../gtkdialog-0.8.3-fix-build-for-clang16.patch    | 202 +++++++++++++++++++++
 ....ebuild => gtkdialog-0.8.3_p20200202-r1.ebuild} |  23 ++-
 x11-misc/gtkdialog/gtkdialog-99999.ebuild          |  23 ++-
 3 files changed, 230 insertions(+), 18 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 <[email protected]>
+
+--- 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-99999.ebuild 
b/x11-misc/gtkdialog/gtkdialog-0.8.3_p20200202-r1.ebuild
similarity index 65%
copy from x11-misc/gtkdialog/gtkdialog-99999.ebuild
copy to x11-misc/gtkdialog/gtkdialog-0.8.3_p20200202-r1.ebuild
index 471ce7d9bc93..f8c30fc9385a 100644
--- a/x11-misc/gtkdialog/gtkdialog-99999.ebuild
+++ b/x11-misc/gtkdialog/gtkdialog-0.8.3_p20200202-r1.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() {

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() {

Reply via email to