# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

RPM_COMPRESS_TYPE="xz"
inherit desktop xdg rpm

DESCRIPTION="Cisco video conferencing and online meeting software"
HOMEPAGE="https://www.webex.com/"
SRC_URI="https://binaries.webex.com/WebexDesktop-CentOS-Official-Package/Webex.rpm -> ${P}.rpm"

S=${WORKDIR}
LICENSE="all-rights-reserved"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="debug"
RESTRICT="bindist mirror strip"

BDEPEND="
	app-arch/rpm
"
RDEPEND="
	>=app-accessibility/at-spi2-core-2.46.0
	app-crypt/libsecret
	app-crypt/tpm2-tss
	dev-libs/nss
	dev-libs/wayland
	media-libs/alsa-lib
	media-libs/libglvnd
	media-libs/libpulse
	media-libs/mesa
	media-video/ffmpeg-compat:7
	sys-apps/lshw
	sys-power/upower
	virtual/libcrypt
	virtual/libudev
	x11-libs/libXScrnSaver
	x11-libs/libXcomposite
	x11-libs/libXcursor
	x11-libs/libXrandr
	x11-libs/libnotify
	x11-libs/libxkbcommon
	x11-libs/pango
	x11-libs/xcb-util-image
	x11-libs/xcb-util-keysyms
	x11-libs/xcb-util-renderutil
	x11-libs/xcb-util-wm
"

QA_PREBUILT="*"

src_install() {
	insinto /opt
	doins -r opt/. || die

	# The bundled libstdc++ is causing the applications to not start. They work with the system variant, though.
	rm "${ED}/opt/Webex/lib/libstdc++.so.6" || die

	# Add executable bit to the bundled shared libraries
	for subdir in bin lib qml; do
		find "${ED}/opt/Webex/${subdir}" -type f -name "*.so*" | while read -r file; do
			fperms 0755 "${file#${ED}}"
		done
	done

	# Add executable bit to the installed programs
	for exe in CiscoCollabHost CiscoCollabHostCef CiscoCollabHostCefWM WebexFileSelector pxgsettings; do
		fperms 0755 opt/Webex/bin/$exe
	done

	# Cisco delivers build ids for all components.
	if use debug; then
		insinto /usr/lib/debug/.build-id
		doins -r usr/lib/.build-id/. || die
	fi

	# Cisco does not bundle ffmpeg:7, so we symlink the needed libraries from ffmpeg-compat:7
	dodir /opt/webex/lib
	dosym -r /usr/lib/ffmpeg7/lib64/libavcodec.so.61   /opt/Webex/lib/libavcodec.so.61   || die
	dosym -r /usr/lib/ffmpeg7/lib64/libavformat.so.61  /opt/Webex/lib/libavformat.so.61  || die
	dosym -r /usr/lib/ffmpeg7/lib64/libavutil.so.59    /opt/Webex/lib/libavutil.so.59    || die
	dosym -r /usr/lib/ffmpeg7/lib64/libswresample.so.5 /opt/Webex/lib/libswresample.so.5 || die
	dosym -r /usr/lib/ffmpeg7/lib64/libswscale.so.8    /opt/Webex/lib/libswscale.so.8    || die

	sed -e 's:Utility;Application;:Network;InstantMessaging;:g' -i "${D}/opt/Webex/bin/webex.desktop"
	sed -e '/^Version=.*$/d' -i "${D}/opt/Webex/bin/webex.desktop"

	domenu "${D}/opt/Webex/bin/webex.desktop"
	doicon "${D}/opt/Webex/bin/sparklogosmall.png"
}