x11-libs/libfm: fix modern C issue
Closes: https://bugs.gentoo.org/919076 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
parent
20a9ce835b
commit
1042734eac
|
@ -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);
|
||||
|
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue