public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-libs/libfm/, x11-libs/libfm/files/
Date: Sun, 17 Mar 2024 03:20:52 +0000 (UTC)	[thread overview]
Message-ID: <1710645472.1042734eac3ec936bf9fcd987f1c1e56cdf327c9.sam@gentoo> (raw)

commit:     1042734eac3ec936bf9fcd987f1c1e56cdf327c9
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 17 03:17:52 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Mar 17 03:17:52 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1042734e

x11-libs/libfm: fix modern C issue

Closes: https://bugs.gentoo.org/919076
Signed-off-by: Sam James <sam <AT> gentoo.org>

 x11-libs/libfm/files/libfm-1.3.2-c99.patch |  48 +++++++++++
 x11-libs/libfm/libfm-1.3.2-r1.ebuild       | 127 +++++++++++++++++++++++++++++
 2 files changed, 175 insertions(+)

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
+}


             reply	other threads:[~2024-03-17  3:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-17  3:20 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-03-15  9:19 [gentoo-commits] repo/gentoo:master commit in: x11-libs/libfm/, x11-libs/libfm/files/ Andreas Sturmlechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1710645472.1042734eac3ec936bf9fcd987f1c1e56cdf327c9.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox