diff --git a/.gitignore b/.gitignore index 7be9f10..0835745 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /v1.4.4.tar.gz /v1.4.5.tar.gz /ClipIt-20210922T1754.tar.gz +/ClipIt-20250116T2347.tar.gz diff --git a/clipit-pr211-c23-function-prototype.patch b/clipit-pr211-c23-function-prototype.patch new file mode 100644 index 0000000..799b2f6 --- /dev/null +++ b/clipit-pr211-c23-function-prototype.patch @@ -0,0 +1,55 @@ +From 46c53082bd81c769d3422f1bedbab57bc73e8007 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA +Date: Fri, 17 Jan 2025 00:23:31 +0900 +Subject: [PATCH] Fix function prototype for g_timer_add family for C23 + +g_timer_add or g_timeout_add_seconds manual says that +the second argument must have type of GSourceFunc, i.e. +function with one gpointer argument returning gboolean. + +Fixing so, unless compilation fails with C23. +--- + src/manage.c | 2 +- + src/manage.h | 2 +- + src/preferences.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/manage.c b/src/manage.c +index 25f7b75..25ed6d4 100644 +--- a/src/manage.c ++++ b/src/manage.c +@@ -331,7 +331,7 @@ void search_window_response(GtkDialog *dialog, gint response_id, gpointer user_d + } + + /* Shows the search dialog */ +-gboolean show_search() ++gboolean show_search(gpointer user_data) + { + /* Prevent multiple instances */ + if(gtk_grab_get_current()) { +diff --git a/src/manage.h b/src/manage.h +index 8740c0f..b810e74 100644 +--- a/src/manage.h ++++ b/src/manage.h +@@ -24,7 +24,7 @@ + + G_BEGIN_DECLS + +-gboolean show_search(); ++gboolean show_search(gpointer); + void remove_all_selected(gpointer); + + G_END_DECLS +diff --git a/src/preferences.c b/src/preferences.c +index 4e9a9ed..8222758 100644 +--- a/src/preferences.c ++++ b/src/preferences.c +@@ -430,7 +430,7 @@ static void start_purge_timer(gint timeout_seconds); + static void stop_purge_timer(); + + /* Purge history if history_timeout is enabled. This function is called every prefs.history_timeout_seconds */ +-static gboolean purge_history() { ++static gboolean purge_history(gpointer user_data) { + if (prefs.history_timeout) { + g_list_free(history); + history = NULL; diff --git a/clipit.spec b/clipit.spec index f04b8e0..1b52227 100644 --- a/clipit.spec +++ b/clipit.spec @@ -1,48 +1,60 @@ %global main_ver 1.4.5 -%global vendor_rel 4 %global reponame ClipIt -%global gitdate 20210513 -%global gitcommit e5fa64c216c1b02a43cb3c90e8a151e43e881d96 +%global gitdate 20241103 +%global gitcommit f35db540c9d3c57b13439d66597736e917e8c9a1 %global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) -%global tarballdate 20210922 -%global tarballtime 1754 +%global tarballdate 20250116 +%global tarballtime 2347 %global use_release 0 -%global use_gitbare 1 -%global use_gitcommit_as_rel 1 +%global use_gitbare 1 +%global use_gitcommit_as_ver 1 %if 0%{?use_gitbare} < 1 %global use_release 1 %endif -%if 0%{?use_gitcommit_as_rel} >= 1 -%global rel %{vendor_rel}.D%{gitdate}git%{shortcommit}%{?dist} +%if 0%{?use_gitcommit_as_ver} >= 1 +%global rpm_ver %{main_ver}^%{gitdate}git%{shortcommit} +%global builddir_ver %{main_ver}-%{gitdate}git%{shortcommit} %else -%define rel %{vendor_rel}%{?dist} +%define rpmver %{main_ver} +%global builddir_ver %{main_ver} %endif Name: clipit -Version: %{main_ver} -Release: %{rel}.2 +Version: %{rpm_ver} +Release: 3%{?dist} Summary: A lightweight, fully featured GTK+ clipboard manager -License: GPLv3+ +# meson.build says: GPL-3.0-or-later +# src/eggaccelerators.{c,h} LGPL-2.1-or-later +# src/keybinder.{c,h} LGPL-2.1-or-later +# Other source GPL-3.0-or-later +# SPDX confirmed +License: GPL-3.0-or-later AND LGPL-2.1-or-later URL: https://github.com/CristianHenzel/ClipIt %if 0%{?use_release} >= 1 Source0: https://github.com/CristianHenzel/ClipIt/archive/v%{version}.tar.gz -%else +%endif +%if 0%{?use_gitbare} >= 1 Source0: %{reponame}-%{tarballdate}T%{tarballtime}.tar.gz %endif Source1: %{name}.appdata.xml +Source2: create-clipit-git-bare-tarball.sh # clipit doesn't autostart in MATE # Fixed upstream but not yet merged Patch0: 0001-Autostart-in-MATE.patch # Force GDK_BACKEND to x11 Patch1: clipit-1.4.5-force-gdk_backend-x11.patch - +# Fix -Werror=incompatible-pointer-types +Patch3: https://sources.debian.org/data/main/c/clipit/1.4.5%2Bgit20210313-3/debian/patches/incompatible-pointer-types.patch +# https://github.com/CristianHenzel/ClipIt/pull/211 +# Fix compilation with C23 struct function prototype +Patch4: clipit-pr211-c23-function-prototype.patch %if 0%{?use_gitbare} >= 1 BuildRequires: git @@ -54,7 +66,7 @@ BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: desktop-file-utils BuildRequires: intltool BuildRequires: gettext -BuildRequires: %{_bindir}/appstream-util +BuildRequires: /usr/bin/appstream-util Requires: xdotool %description @@ -70,23 +82,25 @@ ClipIts main features are: %prep %if 0%{?use_release} >= 1 -%setup -q -n %{reponame}-%{version} +%setup -q -n %{reponame}-%{builddir_ver} %endif %if 0%{?use_gitbare} >= 1 -%setup -q -c -T -a 0 +%setup -q -c -n %{reponame}-%{builddir_ver} -T -a 0 git clone ./%{reponame}.git cd %{reponame} -git checkout -b fedora-%{version}-head %{gitcommit} +git checkout -b fedora-%{builddir_ver}-head %{gitcommit} cp -a [A-Z]* .. git config user.name "%{name} Fedora maintainer" -git config user.email "%{name}-maintainer@fedoraproject.org" +git config user.email "%{name}-maintainers@fedoraproject.org" %endif -%patch0 -p1 -b .mate -%patch1 -p1 -b .nowayland +%patch -P0 -p1 -b .mate +%patch -P1 -p1 -b .nowayland +%patch -P3 -p1 -b .c99_cast +%patch -P4 -p1 -b .c23 sed -i data/clipit.desktop.in -e '\@_Comment.*hr@d' sed -i data/clipit-startup.desktop.in -e '\@_Comment.*hr@d' @@ -150,6 +164,47 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{name}.appdat %config(noreplace) %{_sysconfdir}/xdg/autostart/%{name}-startup.desktop %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 1.4.5^20241103gitf35db54-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 24 2025 Mamoru TASAKA - 1.4.5^20241103gitf35db54-2 +- Remove debugging -std= option + +* Thu Jan 16 2025 Mamoru TASAKA - 1.4.5^20241103gitf35db54-1 +- Update to the latest git (20241103gitf35db54) +- Fix compilation with C23 for struct function prototypes + +* Thu Jan 16 2025 Fedora Release Engineering - 1.4.5^20210513gite5fa64c-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Oct 08 2024 Mamoru TASAKA - 1.4.5^20210513gite5fa64c-6 +- Apply debian patch for -Werror=incompatible-pointer-types + +* Wed Jul 17 2024 Fedora Release Engineering - 1.4.5^20210513gite5fa64c-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 1.4.5^20210513gite5fa64c-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.4.5^20210513gite5fa64c-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Mamoru TASAKA - 1.4.5^20210513gite5fa64c-2 +- Change -Wincompatible-pointer-types from error to warning + +* Wed Jan 10 2024 Mamoru TASAKA - 1.4.5^20210513gite5fa64c-1 +- Use hat for release, change EVR scheme +- SPDX migration + +* Wed Jul 19 2023 Fedora Release Engineering - 1.4.5-4.D20210513gite5fa64c.5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 1.4.5-4.D20210513gite5fa64c.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 14 2022 Florian Weimer - 1.4.5-4.D20210513gite5fa64c.3 +- C99 compatibility fixes + * Wed Jul 20 2022 Fedora Release Engineering - 1.4.5-4.D20210513gite5fa64c.2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/incompatible-pointer-types.patch b/incompatible-pointer-types.patch new file mode 100644 index 0000000..71e52ed --- /dev/null +++ b/incompatible-pointer-types.patch @@ -0,0 +1,79 @@ +Author: Andreas Beckmann +Description: fix building with -Werror=incompatible-pointer-types + +--- a/src/keybinder.c ++++ b/src/keybinder.c +@@ -310,7 +310,7 @@ keybinder_is_modifier (guint keycode) + gboolean retval = FALSE; + + mod_keymap = XGetModifierMapping ( +- GDK_WINDOW_XDISPLAY(gdk_display_get_default())); ++ GDK_DISPLAY_XDISPLAY(gdk_display_get_default())); + + map_size = 8 * mod_keymap->max_keypermod; + +--- a/src/main.c ++++ b/src/main.c +@@ -614,7 +614,7 @@ void underline_match(char* match, GtkMen + PangoAttrList* attr_list = pango_attr_list_new(); + pango_attr_list_insert (attr_list, underline); + +- GtkWidget* gtk_label = gtk_bin_get_child (GTK_BIN (menu_item)); ++ GtkLabel* gtk_label = (GtkLabel *) gtk_bin_get_child (GTK_BIN (menu_item)); + gtk_label_set_attributes (gtk_label, attr_list); + } + +@@ -638,7 +638,7 @@ gboolean selected_by_input(const GtkWidg + append_to_input_buffer(event->string); + + GtkMenuShell* menu = (GtkMenuShell *) history_menu; +- GList* element = gtk_container_get_children(menu); ++ GList* element = gtk_container_get_children((GtkContainer *) menu); + GtkMenuItem *menu_item, *first_match = 0; + + const gchar* menu_label; +@@ -657,9 +657,9 @@ gboolean selected_by_input(const GtkWidg + first_match = menu_item; + match_count++; + underline_match(match, menu_item, menu_label); +- gtk_widget_set_sensitive(menu_item, true); ++ gtk_widget_set_sensitive((GtkWidget *) menu_item, true); + } else { +- gtk_widget_set_sensitive(menu_item, false); ++ gtk_widget_set_sensitive((GtkWidget *) menu_item, false); + } + element = element->next; + count++; +@@ -667,7 +667,7 @@ gboolean selected_by_input(const GtkWidg + + if (first_match && match_count != prefs.items_menu) { + gtk_menu_item_select(first_match); +- gtk_menu_shell_select_item(menu, first_match); ++ gtk_menu_shell_select_item(menu, (GtkWidget *) first_match); + return TRUE; + } + return FALSE; +--- a/src/preferences.c ++++ b/src/preferences.c +@@ -723,7 +723,7 @@ void show_preferences(gint tab) { + *alignment, *hbox, + *vbox; + +- GtkWidget *adjustment, *adjustment_small, *adjustment_statics; ++ GtkAdjustment *adjustment, *adjustment_small, *adjustment_statics; + GtkTreeViewColumn *tree_column; + + /* Create the dialog */ +@@ -898,9 +898,9 @@ void show_preferences(gint tab) { + gtk_misc_set_alignment((GtkMisc*)label, 0.0, 0.50); + gtk_box_pack_start((GtkBox*)hbox, label, FALSE, FALSE, 0); + ellipsize_combo = gtk_combo_box_text_new(); +- gtk_combo_box_text_append_text((GtkComboBox*)ellipsize_combo, _("Beginning")); +- gtk_combo_box_text_append_text((GtkComboBox*)ellipsize_combo, _("Middle")); +- gtk_combo_box_text_append_text((GtkComboBox*)ellipsize_combo, _("End")); ++ gtk_combo_box_text_append_text((GtkComboBoxText*)ellipsize_combo, _("Beginning")); ++ gtk_combo_box_text_append_text((GtkComboBoxText*)ellipsize_combo, _("Middle")); ++ gtk_combo_box_text_append_text((GtkComboBoxText*)ellipsize_combo, _("End")); + gtk_box_pack_start((GtkBox*)hbox, ellipsize_combo, FALSE, FALSE, 0); + gtk_box_pack_start((GtkBox*)vbox_history, frame, FALSE, FALSE, 0); + diff --git a/sources b/sources index 7e741c9..7e089b4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ClipIt-20210922T1754.tar.gz) = ba3efcaaa935b89f76035ade44cfd93eeb58a0982c48db2486edd6f33aa70c017e0b90017870d36ad5d22e26de470c51ade0ed8ea31766461a6bdd753075aa84 +SHA512 (ClipIt-20250116T2347.tar.gz) = c99a3b5633018f9a4f168cca8d81f6ec75b398579c4a875fe9ad258410548b3f6c012f0914ea33af7ffb6c40c7cf47732f3420def042a2a5b8976fdf8e011c35