diff options
author | Sam James <sam@gentoo.org> | 2024-03-17 03:17:52 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-03-17 03:17:52 +0000 |
commit | 1042734eac3ec936bf9fcd987f1c1e56cdf327c9 (patch) | |
tree | 377bfe9dd0a8fe2575fbcd34690eb7b7d45ce83f /x11-libs | |
parent | gnome-extra/cinnamon-control-center: fix modern C issue (diff) | |
download | gentoo-1042734eac3ec936bf9fcd987f1c1e56cdf327c9.tar.gz gentoo-1042734eac3ec936bf9fcd987f1c1e56cdf327c9.tar.bz2 gentoo-1042734eac3ec936bf9fcd987f1c1e56cdf327c9.zip |
x11-libs/libfm: fix modern C issue
Closes: https://bugs.gentoo.org/919076
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'x11-libs')
-rw-r--r-- | x11-libs/libfm/files/libfm-1.3.2-c99.patch | 48 | ||||
-rw-r--r-- | x11-libs/libfm/libfm-1.3.2-r1.ebuild | 127 |
2 files changed, 175 insertions, 0 deletions
diff --git a/x11-libs/libfm/files/libfm-1.3.2-c99.patch b/x11-libs/libfm/files/libfm-1.3.2-c99.patch new file mode 100644 index 000000000000..b84cf01111c8 --- /dev/null +++ b/x11-libs/libfm/files/libfm-1.3.2-c99.patch @@ -0,0 +1,48 @@ +https://bugs.gentoo.org/919076 +https://github.com/lxde/libfm/issues/100 +https://github.com/lxde/libfm/pull/101 + +From ec6a21263d150aea918826941a80f335b45470a8 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA <mtasaka@fedoraproject.org> +Date: Fri, 1 Mar 2024 14:19:46 +0900 +Subject: [PATCH] FIX: support gcc14 -Werror=incompatible-pointer-types + +gcc14 now defaults to -Werror=incompatible-pointer-types . +To support this, cast GTK related objects for assignment +properly. + +Fixes #100 . +--- a/src/gtk/exo/exo-icon-view.c ++++ b/src/gtk/exo/exo-icon-view.c +@@ -2819,7 +2819,7 @@ exo_icon_view_key_press_event (GtkWidget *widget, + /* allocate a new event to forward */ + new_event = gdk_event_copy ((GdkEvent *) event); + g_object_unref (G_OBJECT (new_event->key.window)); +- new_event->key.window = g_object_ref (G_OBJECT (gtk_widget_get_window (icon_view->priv->search_entry))); ++ new_event->key.window = GDK_WINDOW(g_object_ref (G_OBJECT (gtk_widget_get_window (icon_view->priv->search_entry)))); + + /* send the event to the search entry. If the "preedit-changed" signal is + * emitted during this event, priv->search_imcontext_changed will be set. +--- a/src/gtk/fm-dnd-dest.c ++++ b/src/gtk/fm-dnd-dest.c +@@ -458,7 +458,7 @@ static GdkDragAction _ask_action_on_drop(GtkWidget *widget, + gtk_action_set_sensitive(act, FALSE); + } + } +- ri.menu = g_object_ref(gtk_ui_manager_get_widget(ui, "/popup")); ++ ri.menu = GTK_MENU(g_object_ref(gtk_ui_manager_get_widget(ui, "/popup"))); + g_signal_connect(ri.menu, "selection-done", G_CALLBACK(gtk_widget_destroy), NULL); + unmap_handler = g_signal_connect(ri.menu, "unmap", + G_CALLBACK(run_unmap_handler), &ri); +--- a/src/gtk/fm-standard-view.c ++++ b/src/gtk/fm-standard-view.c +@@ -637,7 +637,7 @@ static inline void create_icon_view(FmStandardView* fv, GList* sels) + "text", FM_FOLDER_MODEL_COL_NAME ); + if(fv->renderer_text) + g_object_unref(fv->renderer_text); +- fv->renderer_text = g_object_ref_sink(render); ++ fv->renderer_text = FM_CELL_RENDERER_TEXT(g_object_ref_sink(render)); + exo_icon_view_set_search_column((ExoIconView*)fv->view, FM_FOLDER_MODEL_COL_NAME); + g_signal_connect(fv->view, "item-activated", G_CALLBACK(on_icon_view_item_activated), fv); + g_signal_connect(fv->view, "selection-changed", G_CALLBACK(on_sel_changed), fv); + diff --git a/x11-libs/libfm/libfm-1.3.2-r1.ebuild b/x11-libs/libfm/libfm-1.3.2-r1.ebuild new file mode 100644 index 000000000000..63012f59c6ff --- /dev/null +++ b/x11-libs/libfm/libfm-1.3.2-r1.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MY_P="${PN}-${PV/_/}" +inherit autotools vala xdg + +DESCRIPTION="Library for file management" +HOMEPAGE="https://wiki.lxde.org/en/PCManFM" +SRC_URI="https://github.com/lxde/libfm/archive/${PV}.tar.gz -> ${MY_P}.tar.gz" +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0/5.3.1" # copy ABI_VERSION because it seems upstream change it randomly +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" +IUSE="+automount debug doc examples exif gtk udisks vala" + +REQUIRED_USE="udisks? ( automount ) doc? ( gtk )" + +DEPEND=" + >=dev-libs/glib-2.18:2 + >=lxde-base/menu-cache-1.1.0-r1:= + ~x11-libs/libfm-extra-${PV} + gtk? ( x11-libs/gtk+:3 ) + udisks? ( dev-libs/dbus-glib ) +" +RDEPEND="${DEPEND} + !lxde-base/lxshortcut + x11-misc/shared-mime-info + automount? ( + udisks? ( gnome-base/gvfs[udev,udisks] ) + !udisks? ( gnome-base/gvfs[udev] ) + ) + exif? ( media-libs/libexif ) +" +BDEPEND=" + app-arch/xz-utils + dev-util/glib-utils + >=dev-util/intltool-0.40 + sys-devel/gettext + virtual/pkgconfig + doc? ( dev-util/gtk-doc ) + vala? ( $(vala_depend) ) +" + +PATCHES=( + "${FILESDIR}/${P}-buildsystem.patch" + "${FILESDIR}/${PN}-1.3.2-c99.patch" +) + +src_prepare() { + xdg_src_prepare + + if ! use doc; then + sed -ie '/^SUBDIR.*=/s#docs##' Makefile.am || die + sed -ie '/^[[:space:]]*docs/d' configure.ac || die + fi + + # disable unused translations. Bug #356029 + cat <<-EOF >> po/POTFILES.in || die +data/ui/app-chooser.ui +data/ui/ask-rename.ui +data/ui/exec-file.ui +data/ui/file-prop.ui +data/ui/preferred-apps.ui +data/ui/progress.ui +EOF + + # subslot sanity check + local sub_slot=${SLOT#*/} + local libfm_major_abi=$(sed -rne '/ABI_VERSION/s:.*=::p' src/Makefile.am | tr ':' '.') + + if [[ ${sub_slot} != ${libfm_major_abi} ]]; then + eerror "Ebuild sub-slot (${sub_slot}) does not match ABI_VERSION(${libfm_major_abi})" + eerror "Please update SLOT variable as follows:" + eerror " SLOT=\"${SLOT%%/*}/${libfm_major_abi}\"" + eerror + die "sub-slot sanity check failed" + fi + + eautoreconf + rm -r autom4te.cache || die + use vala && export VALAC="$(type -p valac-$(vala_best_api_version))" +} + +src_configure() { + local myeconfargs=( + --disable-static + --with-html-dir=/usr/share/doc/${PF}/html + $(use_enable debug) + $(use_enable doc gtk-doc) + $(use_enable examples demo) + $(use_enable exif) + $(use_with gtk gtk 3) + $(use_enable udisks) + $(use_enable vala old-actions) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die + # Sometimes a directory is created instead of a symlink. No idea why... + # It is wrong anyway. We expect a libfm-1.0 directory and then a libfm + # symlink to it. + if [[ -h ${D}/usr/include/${PN} || -d ${D}/usr/include/${PN} ]]; then + rm -r "${D}"/usr/include/${PN} || die + fi + # Remove files installed by split-off libfm-extra package + rm "${D}"/usr/include/libfm-1.0/fm-{extra,version,xml-file}.h || die + rm "${D}"/usr/$(get_libdir)/libfm-extra* || die + rm "${D}"/usr/$(get_libdir)/pkgconfig/libfm-extra.pc || die +} + +pkg_preinst() { + xdg_pkg_preinst + # Resolve the symlink mess. Bug #439570 + if [[ -d "${ROOT}"/usr/include/${PN} ]]; then + rm -rf "${ROOT}"/usr/include/${PN} || die + fi + if [[ -d "${D}"/usr/include/${PN}-1.0 ]]; then + cd "${D}"/usr/include || die + ln -s --force ${PN}-1.0 ${PN} || die + fi +} |