diff --git a/0001-incompatible-pointer-types.patch b/0001-incompatible-pointer-types.patch new file mode 100644 index 0000000..918665b --- /dev/null +++ b/0001-incompatible-pointer-types.patch @@ -0,0 +1,371 @@ +diff -up epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob +--- epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob 2023-12-04 09:52:32.852869201 +0100 +@@ -140,7 +140,7 @@ class MN:Base:Mbox:Mailbox:Backend from + mime_message = g_mime_parser_construct_message(parser); + if (mime_message) + { +- if (g_mime_object_get_header(mime_message, "X-Mozilla-Status")) ++ if (g_mime_object_get_header(GMIME_OBJECT(mime_message), "X-Mozilla-Status")) + { + #if WITH_MOZILLA + type = MN_TYPE_MOZILLA_MAILBOX_BACKEND; +diff -up epienbroek-mail-notification-9ae8768/src/mn-mail-icon.gob.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-mail-icon.gob +--- epienbroek-mail-notification-9ae8768/src/mn-mail-icon.gob.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-mail-icon.gob 2023-12-04 09:52:32.852869201 +0100 +@@ -43,7 +43,7 @@ + class MN:Mail:Icon from Egg:Tray:Icon + { + private MNTooltips *tooltips = {mn_tooltips_new()} unrefwith g_object_unref; +- private GtkWidget *widget = {mn_mail_icon_widget_new()}; ++ private GtkWidget *widget = {GTK_WIDGET(mn_mail_icon_widget_new())}; + + private char *stock_id destroywith g_free; + private int size; +diff -up epienbroek-mail-notification-9ae8768/src/mn-mail-icon-widget.gob.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-mail-icon-widget.gob +--- epienbroek-mail-notification-9ae8768/src/mn-mail-icon-widget.gob.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-mail-icon-widget.gob 2023-12-04 09:52:39.701953344 +0100 +@@ -132,64 +132,65 @@ class MN:Mail:Icon:Widget from Mn:Widget + } + + override (Mn:Widget) void +- mn_size_request (GtkWidget *widget, GtkRequisition *requisition) ++ mn_size_request (Mn:Widget *widget, GtkRequisition *requisition) + { +- self_size_request_internal(widget, requisition); ++ self_size_request_internal(GTK_WIDGET(widget), requisition); + } + + override (Mn:Widget) void +- mn_get_preferred_width (GtkWidget *widget, gint *minimal_width, gint *natural_width) ++ mn_get_preferred_width (Mn:Widget *widget, gint *minimal_width, gint *natural_width) + { + #if GTK_CHECK_VERSION(3,0,0) + GtkRequisition requisition; + +- self_size_request_internal (widget, &requisition); ++ self_size_request_internal (GTK_WIDGET(widget), &requisition); + *minimal_width = *natural_width = requisition.width; + #endif + } + + override (Mn:Widget) void +- mn_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height) ++ mn_get_preferred_height(Mn:Widget *widget, gint *minimal_height, gint *natural_height) + { + #if GTK_CHECK_VERSION(3,0,0) + GtkRequisition requisition; + +- self_size_request_internal (widget, &requisition); ++ self_size_request_internal (GTK_WIDGET(widget), &requisition); + *minimal_height = *natural_height = requisition.height; + #endif + } + + /* GTK2 only */ + override (Mn:Widget) gboolean +- mn_expose_event (GtkWidget *widget, GdkEventExpose *event) ++ mn_expose_event (Mn:Widget *widget, GdkEventExpose *event) + { + #if !GTK_CHECK_VERSION(3,0,0) + Self *self = SELF(widget); + +- if (! GTK_WIDGET_DRAWABLE(widget) || ! selfp->stock_id) ++ if (! GTK_WIDGET_DRAWABLE(GTK_WIDGET(widget)) || ! selfp->stock_id) + return FALSE; + + if (selfp->is_on) { + int x; + int y; + GdkRectangle image_area; ++ GtkWidget *gtkwidget = GTK_WIDGET(widget); + + /* note: widget->requisition is the pixbuf size, see size_request() */ + +- x = floor(widget->allocation.x + ((widget->allocation.width - widget->requisition.width) * ICON_XALIGN)); +- y = floor(widget->allocation.y + ((widget->allocation.height - widget->requisition.height) * ICON_YALIGN)); ++ x = floor(gtkwidget->allocation.x + ((gtkwidget->allocation.width - gtkwidget->requisition.width) * ICON_XALIGN)); ++ y = floor(gtkwidget->allocation.y + ((gtkwidget->allocation.height - gtkwidget->requisition.height) * ICON_YALIGN)); + + image_area.x = x; + image_area.y = y; +- image_area.width = widget->requisition.width; +- image_area.height = widget->requisition.height; ++ image_area.width = gtkwidget->requisition.width; ++ image_area.height = gtkwidget->requisition.height; + + if (gdk_rectangle_intersect(&event->area, &image_area, &image_area)) { + GdkPixbuf *pixbuf; + + pixbuf = self_render_icon(self); + +- gdk_draw_pixbuf(widget->window, ++ gdk_draw_pixbuf(gtkwidget->window, + NULL, + pixbuf, + image_area.x - x, +@@ -219,12 +220,12 @@ class MN:Mail:Icon:Widget from Mn:Widget + const char *size; + char *markup; + +- if (widget->allocation.height < 32) ++ if (gtkwidget->allocation.height < 32) + size = "small"; + else + size = "medium"; + +- selfp->count_layout = gtk_widget_create_pango_layout(widget, NULL); ++ selfp->count_layout = gtk_widget_create_pango_layout(gtkwidget, NULL); + + markup = g_strdup_printf("%i", size, selfp->count); + pango_layout_set_markup(selfp->count_layout, markup, -1); +@@ -236,19 +237,19 @@ class MN:Mail:Icon:Widget from Mn:Widget + box_width = count_rect.width + COUNT_BOX_XPAD * 2; + box_height = count_rect.height + COUNT_BOX_YPAD * 2; + +- box_x = widget->allocation.x + widget->allocation.width - box_width - COUNT_BOX_XMARGIN; +- box_y = widget->allocation.y + widget->allocation.height - box_height - COUNT_BOX_YMARGIN; ++ box_x = gtkwidget->allocation.x + gtkwidget->allocation.width - box_width - COUNT_BOX_XMARGIN; ++ box_y = gtkwidget->allocation.y + gtkwidget->allocation.height - box_height - COUNT_BOX_YMARGIN; + + count_x = box_x - count_rect.x + COUNT_BOX_XPAD; + count_y = box_y - count_rect.y + COUNT_BOX_YPAD; + + #if !GTK_CHECK_VERSION(2,8,0) +- gtk_paint_box(widget->style, +- widget->window, ++ gtk_paint_box(gtkwidget->style, ++ gtkwidget->window, + GTK_WIDGET_STATE(widget), + GTK_SHADOW_OUT, + &event->area, +- widget, ++ gtkwidget, + NULL, + box_x, + box_y, +@@ -256,7 +257,7 @@ class MN:Mail:Icon:Widget from Mn:Widget + box_height); + #else + cairo_t *cr; +- cr = gdk_cairo_create(GDK_DRAWABLE(widget->window)); ++ cr = gdk_cairo_create(GDK_DRAWABLE(gtkwidget->window)); + cairo_save(cr); + cairo_set_line_width(cr, 2.0); + cairo_set_source_rgba (cr, 0.66, 0.62, 0.55, 1.0); +@@ -271,12 +272,12 @@ class MN:Mail:Icon:Widget from Mn:Widget + cairo_destroy(cr); + #endif + +- gtk_paint_layout(widget->style, +- widget->window, +- GTK_WIDGET_STATE(widget), ++ gtk_paint_layout(gtkwidget->style, ++ gtkwidget->window, ++ GTK_WIDGET_STATE(gtkwidget), + FALSE, + &event->area, +- widget, ++ gtkwidget, + NULL, + count_x, + count_y, +@@ -289,12 +290,12 @@ class MN:Mail:Icon:Widget from Mn:Widget + + /* GTK3 only */ + override (Mn:Widget) gboolean +- mn_draw (GtkWidget *widget, cairo_t *cr) ++ mn_draw (Mn:Widget *widget, cairo_t *cr) + { + #if GTK_CHECK_VERSION(3,0,0) + Self *self = SELF(widget); + +- if (! gtk_widget_is_drawable(widget) || ! selfp->stock_id) ++ if (! gtk_widget_is_drawable(GTK_WIDGET(widget)) || ! selfp->stock_id) + return FALSE; + + if (selfp->is_on) { +@@ -307,8 +308,8 @@ class MN:Mail:Icon:Widget from Mn:Widget + + /* note: widget->requisition is the pixbuf size, see size_request() */ + +- gtk_widget_get_allocation(widget, &allocation); +- gtk_widget_get_requisition(widget, &requisition); ++ gtk_widget_get_allocation(GTK_WIDGET(widget), &allocation); ++ gtk_widget_get_requisition(GTK_WIDGET(widget), &requisition); + + x = floor(allocation.x + ((allocation.width - requisition.width) * ICON_XALIGN)); + y = floor(allocation.y + ((allocation.height - requisition.height) * ICON_YALIGN)); +@@ -338,7 +339,7 @@ class MN:Mail:Icon:Widget from Mn:Widget + int box_height; + GtkAllocation allocation; + +- gtk_widget_get_allocation(widget, &allocation); ++ gtk_widget_get_allocation(GTK_WIDGET(widget), &allocation); + + if (! selfp->count_layout) { + const char *size; +@@ -349,7 +350,7 @@ class MN:Mail:Icon:Widget from Mn:Widget + else + size = "medium"; + +- selfp->count_layout = gtk_widget_create_pango_layout(widget, NULL); ++ selfp->count_layout = gtk_widget_create_pango_layout(GTK_WIDGET(widget), NULL); + + markup = g_strdup_printf("%i", size, selfp->count); + pango_layout_set_markup(selfp->count_layout, markup, -1); +@@ -379,11 +380,11 @@ class MN:Mail:Icon:Widget from Mn:Widget + + cairo_restore(cr); + +- gtk_paint_layout(gtk_widget_get_style(widget), ++ gtk_paint_layout(gtk_widget_get_style(GTK_WIDGET(widget)), + cr, +- gtk_widget_get_state_flags(widget), ++ gtk_widget_get_state_flags(GTK_WIDGET(widget)), + FALSE, +- widget, ++ GTK_WIDGET(widget), + NULL, + count_x, + count_y, +diff -up epienbroek-mail-notification-9ae8768/src/mn-message-mime.c.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-message-mime.c +--- epienbroek-mail-notification-9ae8768/src/mn-message-mime.c.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-message-mime.c 2023-12-04 09:52:32.852869201 +0100 +@@ -33,12 +33,12 @@ is_spam (GMimeMessage *mime_message) + g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), FALSE); + + /* SpamAssassin */ +- spam = g_mime_object_get_header(mime_message, "X-Spam-Status"); ++ spam = g_mime_object_get_header(GMIME_OBJECT(mime_message), "X-Spam-Status"); + if (spam && mn_ascii_str_case_has_prefix(spam, "yes")) + return TRUE; + + /* bogofilter */ +- spam = g_mime_object_get_header(mime_message, "X-Bogosity"); ++ spam = g_mime_object_get_header(GMIME_OBJECT(mime_message), "X-Bogosity"); + if (spam && mn_ascii_str_case_has_prefix(spam, "yes")) + return TRUE; + +@@ -89,7 +89,7 @@ mn_message_new_from_mime_message_full (G + { + const char *status; + +- status = g_mime_object_get_header(mime_message, "Status"); ++ status = g_mime_object_get_header(GMIME_OBJECT(mime_message), "Status"); + if (status && strchr(status, 'R')) + return NULL; /* the message was read */ + else if (status && strchr(status, 'O')) +diff -up epienbroek-mail-notification-9ae8768/src/mn-mozilla-mailbox-backend.gob.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-mozilla-mailbox-backend.gob +--- epienbroek-mail-notification-9ae8768/src/mn-mozilla-mailbox-backend.gob.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-mozilla-mailbox-backend.gob 2023-12-04 09:52:32.852869201 +0100 +@@ -69,7 +69,7 @@ class MN:Mozilla:Mailbox:Backend from MN + { + const char *header; + +- header = g_mime_object_get_header(mime_message, header_name); ++ header = g_mime_object_get_header(GMIME_OBJECT(mime_message), header_name); + if (header && mn_str_ishex(header)) + return strtol(header, NULL, 16); + else +diff -up epienbroek-mail-notification-9ae8768/src/mn-text-table.gob.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-text-table.gob +--- epienbroek-mail-notification-9ae8768/src/mn-text-table.gob.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-text-table.gob 2023-12-04 09:52:32.853869213 +0100 +@@ -105,7 +105,7 @@ class MN:Text:Table from Mn:Widget + } + + private void +- size_request_internal (GtkWidget *widget, GtkRequisition *requisition) ++ size_request_internal (Mn:Widget *widget, GtkRequisition *requisition) + { + Self *self = SELF(widget); + +@@ -116,13 +116,13 @@ class MN:Text:Table from Mn:Widget + } + + override (Mn:Widget) void +- mn_size_request (GtkWidget *widget, GtkRequisition *requisition) ++ mn_size_request (Mn:Widget *widget, GtkRequisition *requisition) + { + self_size_request_internal(widget, requisition); + } + + override (Mn:Widget) void +- mn_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width) ++ mn_get_preferred_width (Mn:Widget * widget, gint * minimal_width, gint * natural_width) + { + #if GTK_CHECK_VERSION(3,0,0) + GtkRequisition requisition; +@@ -133,7 +133,7 @@ class MN:Text:Table from Mn:Widget + } + + override (Mn:Widget) void +- mn_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height) ++ mn_get_preferred_height (Mn:Widget * widget, gint * minimal_height, gint * natural_height) + { + #if GTK_CHECK_VERSION(3,0,0) + GtkRequisition requisition; +@@ -218,16 +218,16 @@ class MN:Text:Table from Mn:Widget + + /* GTK2 only */ + override (Mn:Widget) gboolean +- mn_expose_event (GtkWidget *widget, GdkEventExpose *event) ++ mn_expose_event (Mn:Widget *widget, GdkEventExpose *event) + { +- return self_draw_internal(widget, event, NULL); ++ return self_draw_internal(GTK_WIDGET(widget), event, NULL); + } + + /* GTK3 only */ + override (Mn:Widget) gboolean +- mn_draw (GtkWidget *widget, cairo_t *cr) ++ mn_draw (Mn:Widget *widget, cairo_t *cr) + { +- return self_draw_internal(widget, NULL, cr); ++ return self_draw_internal(GTK_WIDGET(widget), NULL, cr); + } + + private void +diff -up epienbroek-mail-notification-9ae8768/src/mn-widget.c.incompatible-pointer-types epienbroek-mail-notification-9ae8768/src/mn-widget.c +--- epienbroek-mail-notification-9ae8768/src/mn-widget.c.incompatible-pointer-types 2013-12-31 16:31:59.000000000 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-widget.c 2023-12-04 09:52:32.853869213 +0100 +@@ -42,32 +42,33 @@ mn_size_request (MnWidget *widget, GtkRe + /* GTK3 */ + #if GTK_CHECK_VERSION(3,0,0) + static gboolean +-mn_draw (MnWidget *widget, cairo_t *cr) ++mn_draw (GtkWidget *widget, cairo_t *cr) + { + MnWidgetClass *klass = MN_WIDGET_GET_CLASS(widget); + + if (klass->mn_draw) { +- klass->mn_draw(widget, cr); ++ klass->mn_draw(MN_WIDGET(widget), cr); + } ++ return FALSE; + } + + static void +-mn_get_preferred_height (MnWidget *widget, gint *minimum_height, gint *natural_height) ++mn_get_preferred_height (GtkWidget *widget, gint *minimum_height, gint *natural_height) + { + MnWidgetClass *klass = MN_WIDGET_GET_CLASS(widget); + + if (klass->mn_get_preferred_height) { +- klass->mn_get_preferred_height(widget, minimum_height, natural_height); ++ klass->mn_get_preferred_height(MN_WIDGET(widget), minimum_height, natural_height); + } + } + + static void +-mn_get_preferred_width (MnWidget *widget, gint *minimum_width, gint *natural_width) ++mn_get_preferred_width (GtkWidget *widget, gint *minimum_width, gint *natural_width) + { + MnWidgetClass *klass = MN_WIDGET_GET_CLASS(widget); + + if (klass->mn_get_preferred_width) { +- klass->mn_get_preferred_width(widget, minimum_width, natural_width); ++ klass->mn_get_preferred_width(MN_WIDGET(widget), minimum_width, natural_width); + } + } + #endif diff --git a/0002-maybe-uninitialized.patch b/0002-maybe-uninitialized.patch new file mode 100644 index 0000000..1f1c53a --- /dev/null +++ b/0002-maybe-uninitialized.patch @@ -0,0 +1,44 @@ +diff -up epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob.maybe-uninitialized epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob +--- epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob.maybe-uninitialized 2023-12-04 09:30:30.944060224 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-base-mbox-mailbox-backend.gob 2023-12-04 09:30:32.486079619 +0100 +@@ -269,7 +269,7 @@ class MN:Base:Mbox:Mailbox:Backend from + if (! uri_set) + { + GnomeVFSFileInfo *file_info; +- GnomeVFSURI *uri; ++ GnomeVFSURI *uri = NULL; + gboolean aborted; + + file_info = gnome_vfs_file_info_new(); +diff -up epienbroek-mail-notification-9ae8768/src/mn-pi-mailbox-properties.gob.maybe-uninitialized epienbroek-mail-notification-9ae8768/src/mn-pi-mailbox-properties.gob +--- epienbroek-mail-notification-9ae8768/src/mn-pi-mailbox-properties.gob.maybe-uninitialized 2023-12-04 09:31:02.152452799 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-pi-mailbox-properties.gob 2023-12-04 09:31:03.005463529 +0100 +@@ -269,7 +269,7 @@ class MN:PI:Mailbox:Properties from MN:A + const char **server, + int *port) + { +- MNPIMailboxConnectionType _connection_type; ++ MNPIMailboxConnectionType _connection_type = 0; + + if (connection_type || port) + { +diff -up epienbroek-mail-notification-9ae8768/src/mn-sylpheed-mailbox-backend.gob.maybe-uninitialized epienbroek-mail-notification-9ae8768/src/mn-sylpheed-mailbox-backend.gob +--- epienbroek-mail-notification-9ae8768/src/mn-sylpheed-mailbox-backend.gob.maybe-uninitialized 2023-12-04 09:30:46.809259795 +0100 ++++ epienbroek-mail-notification-9ae8768/src/mn-sylpheed-mailbox-backend.gob 2023-12-04 09:30:49.198289842 +0100 +@@ -217,7 +217,7 @@ class MN:Sylpheed:Mailbox:Backend from M + } + + if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id)) +- goto finish; ++ goto end; + + result = gnome_vfs_directory_open_from_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS); + if (result != GNOME_VFS_OK) +@@ -295,7 +295,6 @@ class MN:Sylpheed:Mailbox:Backend from M + gnome_vfs_file_info_unref(file_info); + close_result = gnome_vfs_directory_close(handle); + +- finish: + GDK_THREADS_ENTER(); + + if (! mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id)) diff --git a/mail-notification.spec b/mail-notification.spec index 33a60ef..ea69304 100644 --- a/mail-notification.spec +++ b/mail-notification.spec @@ -5,7 +5,7 @@ Name: mail-notification Version: 5.4 -Release: 107.git.%{git_revision}%{?dist} +Release: 108.git.%{git_revision}%{?dist} Summary: Status icon that informs you if you have new mail License: GPL-3.0-or-later @@ -39,6 +39,8 @@ Patch4: mail-notification-eds3_23_2.patch Patch5: mail-notification-gstreamer1.patch Patch6: mail-notification-jb-c99.patch +Patch7: 0001-incompatible-pointer-types.patch +Patch8: 0002-maybe-uninitialized.patch BuildRequires: make BuildRequires: gcc @@ -106,6 +108,8 @@ Evolution support for Mail Notification. %patch4 -p1 -b .eds3_23_2 %patch5 -p1 %patch6 -p1 +%patch7 -p1 -b .incompatible-pointer-types +%patch8 -p1 -b .maybe-uninitialized # update config.{guess,sub} manually cp -p /usr/lib/rpm/redhat/config.{guess,sub} jbsrc/tools/ @@ -126,8 +130,8 @@ popd ./jb configure \ cc="%{__cc}" \ - cflags="$RPM_OPT_FLAGS" \ - cppflags="-D_GNU_SOURCE" \ + cflags="$RPM_OPT_FLAGS -Wno-deprecated-declarations" \ + cppflags="-D_GNU_SOURCE -Wno-deprecated-declarations" \ ldflags="$RPM_LD_FLAGS" \ destdir=$RPM_BUILD_ROOT \ prefix=%{_prefix} \ @@ -223,6 +227,9 @@ desktop-file-install \ %changelog +* Mon Dec 04 2023 Milan Crha 5.4-108.git.9ae8768 +- Add patches to fix "incompatible-pointer-types" and "maybe-uninitialized" compiler warnings + * Thu Jul 20 2023 Fedora Release Engineering - 5.4-107.git.9ae8768 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild