summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-07-03 23:34:19 +0100
committerSam James <sam@gentoo.org>2024-07-03 23:35:29 +0100
commitb779d4b7e4ae652539320473991663dffa366abf (patch)
tree82ee96ac25eee2f9c3ed3ac3e823ef6829475d58 /x11-misc
parentmedia-sound/quodlibet: drop myself as a maintainer (diff)
downloadgentoo-b779d4b7e4ae652539320473991663dffa366abf.tar.gz
gentoo-b779d4b7e4ae652539320473991663dffa366abf.tar.bz2
gentoo-b779d4b7e4ae652539320473991663dffa366abf.zip
x11-misc/xdg-utils: fix qtpaths for KDE Plasma
Pending questions: * Should qt6paths instead be in /usr/bin in Gentoo? * Why do we have a qtpaths6 as well as a qt6paths? But add this emergency fix for now given it may manifest in confusing and hard-to-diagnose ways. Bug: https://bugs.gentoo.org/934941 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'x11-misc')
-rw-r--r--x11-misc/xdg-utils/files/xdg-utils-1.2.1-qtpaths.patch21
-rw-r--r--x11-misc/xdg-utils/xdg-utils-1.2.1-r3.ebuild106
2 files changed, 127 insertions, 0 deletions
diff --git a/x11-misc/xdg-utils/files/xdg-utils-1.2.1-qtpaths.patch b/x11-misc/xdg-utils/files/xdg-utils-1.2.1-qtpaths.patch
new file mode 100644
index 000000000000..a92d652bf2dc
--- /dev/null
+++ b/x11-misc/xdg-utils/files/xdg-utils-1.2.1-qtpaths.patch
@@ -0,0 +1,21 @@
+Workaround for https://bugs.gentoo.org/934941.
+
+Pending questions:
+* Should qt6paths instead be in /usr/bin in Gentoo?
+* Why do we have a qtpaths6 as well as a qt6paths?
+--- a/scripts/xdg-mime.in
++++ b/scripts/xdg-mime.in
+@@ -166,8 +166,11 @@ make_default_kde()
+ # text/plain=gnome-gedit.desktop;gnu-emacs.desktop;
+ vendor="$1"
+ mimetype="$2"
+- if [ "${KDE_SESSION_VERSION:-0}" -gt 4 ] ; then
+- default_dir="$(qtpaths --writable-path ConfigLocation)"
++ if [ "${KDE_SESSION_VERSION:-0}" -gt 5 ] ; then
++ default_dir="$($(pkg-config --variable=bindir Qt6Core)/qt6paths) --writable-path ConfigLocation)"
++ default_file="$default_dir/mimeapps.list"
++ elif [ x"$KDE_SESSION_VERSION" = x"5" ; then
++ default_dir="$(qtpaths5 --writable-path ConfigLocation)"
+ default_file="$default_dir/mimeapps.list"
+ elif [ x"$KDE_SESSION_VERSION" = x"4" ]; then
+ default_dir="$(kde4-config --path xdgdata-apps 2> /dev/null | cut -d ':' -f 1)"
diff --git a/x11-misc/xdg-utils/xdg-utils-1.2.1-r3.ebuild b/x11-misc/xdg-utils/xdg-utils-1.2.1-r3.ebuild
new file mode 100644
index 000000000000..78afc65ad4b2
--- /dev/null
+++ b/x11-misc/xdg-utils/xdg-utils-1.2.1-r3.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Portland utils for cross-platform/cross-toolkit/cross-desktop interoperability"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/xdg-utils/"
+if [[ ${PV} == *_p* ]] ; then
+ MY_COMMIT="d4f00e1d803038af4f245949d8c747a384117852"
+ SRC_URI="https://gitlab.freedesktop.org/xdg/xdg-utils/-/archive/${MY_COMMIT}/${P}.tar.bz2"
+ S="${WORKDIR}"/xdg-utils-${MY_COMMIT}
+else
+ SRC_URI="https://gitlab.freedesktop.org/xdg/xdg-utils/-/archive/v${PV}/${PN}-v${PV}.tar.bz2"
+ S="${WORKDIR}"/${PN}-v${PV}
+fi
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="dbus doc gnome plasma X"
+REQUIRED_USE="gnome? ( dbus )"
+
+RDEPEND="
+ dev-perl/File-MimeInfo
+ dev-util/desktop-file-utils
+ x11-misc/shared-mime-info
+ dbus? (
+ sys-apps/dbus
+ gnome? (
+ dev-perl/Net-DBus
+ dev-perl/X11-Protocol
+ )
+ )
+ plasma? (
+ virtual/pkgconfig
+ || (
+ (
+ kde-frameworks/kservice:6
+ dev-qt/qtbase:6
+ )
+ (
+ kde-frameworks/kservice:5
+ dev-qt/qtpaths:5
+ )
+ )
+ )
+ X? (
+ x11-apps/xprop
+ x11-apps/xset
+ )
+"
+BDEPEND="
+ app-alternatives/awk
+ >=app-text/xmlto-0.0.28-r3[text(+)]
+"
+
+# Tests run random system programs, including interactive programs
+# that block forever
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-xdg-mime-default.patch
+ "${FILESDIR}"/${PN}-1.2.1-qtpaths.patch
+)
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == *_p* ]] ; then
+ # If you choose to do git snapshot instead of patchset, you need to remember
+ # to run `autoconf` in ./ and `make scripts-clean` in ./scripts/ to refresh
+ # all the files
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ export ac_cv_path_XMLTO="$(type -P xmlto) --skip-validation" #502166
+ default
+ emake -C scripts scripts-clean
+}
+
+src_install() {
+ default
+
+ dodoc RELEASE_NOTES
+
+ newdoc scripts/xsl/README README.xsl
+ use doc && dodoc -r scripts/html
+
+ # Install default XDG_DATA_DIRS, bug #264647
+ echo XDG_DATA_DIRS=\"${EPREFIX}/usr/local/share\" > 30xdg-data-local || die
+ echo 'COLON_SEPARATED="XDG_DATA_DIRS XDG_CONFIG_DIRS"' >> 30xdg-data-local || die
+ doenvd 30xdg-data-local
+
+ echo XDG_DATA_DIRS=\"${EPREFIX}/usr/share\" > 90xdg-data-base || die
+ echo XDG_CONFIG_DIRS=\"${EPREFIX}/etc/xdg\" >> 90xdg-data-base || die
+ doenvd 90xdg-data-base
+}
+
+pkg_postinst() {
+ [[ -x $(type -P gtk-update-icon-cache) ]] \
+ || elog "Install dev-util/gtk-update-icon-cache for the gtk-update-icon-cache command."
+}