1
0
flewkey-overlay/x11-drivers/displaylink-driver/displaylink-driver-5.8.0.63.33.ebuild

84 lines
2.2 KiB
Bash

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit udev systemd
AR_DATE="2023-08"
AR_NAME="DisplayLink%20USB%20Graphics%20Software%20for%20Ubuntu5.8-EXE.zip"
UBUNTU_VER="1604"
MY_PV=$(ver_rs 3 '-')
MY_P="${PN}-${MY_PV}"
S="${WORKDIR}/${MY_P}"
SRC_URI="https://www.synaptics.com/sites/default/files/exe_files/${AR_DATE}/${AR_NAME} -> ${P}.zip"
KEYWORDS="~amd64"
DESCRIPTION="Driver for modern DisplayLink devices"
HOMEPAGE="http://www.displaylink.com/downloads/ubuntu"
LICENSE="DisplayLink-EULA"
SLOT="0"
IUSE="systemd"
DEPEND="app-arch/unzip"
RDEPEND="
virtual/libusb
virtual/udev
x11-libs/libevdi
"
QA_PREBUILT="opt/displaylink/DisplayLinkManager"
src_unpack() {
default
sh "${WORKDIR}/${MY_P}.run" --noexec --keep
}
src_prepare() {
default
source "${S}/udev-installer.sh" && create_udev_rules_file "${S}/99-dlm.rules"
source "${S}/udev-installer.sh" && displaylink_bootstrapper_code > "${S}/udev.sh"
if use systemd; then
sed -i '/^ chmod.*displaylink-driver.service/d' "${S}/displaylink-installer.sh"
sed -i 's;^ cat > /.*/displaylink-driver.service <<EOF; cat <<EOF;' "${S}/displaylink-installer.sh"
sed -i '/^if.*$(id -u).*then/i return' "${S}/displaylink-installer.sh"
source "${S}/udev-installer.sh" && systemd_start_stop_functions >> "${S}/udev.sh"
source "${S}/displaylink-installer.sh" && add_systemd_service > "${S}/displaylink-driver.service"
else
cat "${FILESDIR}/openrc_start_stop_functions" >> "${S}/udev.sh"
fi
source "${S}/udev-installer.sh" && create_main_function >> "${S}/udev.sh"
}
src_install() {
exeinto "/opt/displaylink"
insinto "/opt/displaylink"
case "${ARCH}" in
amd64) MY_ARCH="x64" ;;
*) MY_ARCH="${ARCH}" ;;
esac
ARCH_DIR="${S}/${MY_ARCH}-ubuntu-${UBUNTU_VER}"
doexe "${ARCH_DIR}/DisplayLinkManager"
doins "${S}/ella-dock-release.spkg"
doins "${S}/firefly-monitor-release.spkg"
doins "${S}/ridge-dock-release.spkg"
if use systemd; then
systemd_dounit "${S}/displaylink-driver.service"
else
newinitd "${FILESDIR}/dlm.init.d" "dlm"
fi
udev_dorules "${S}/99-dlm.rules"
insopts -m744
doins "${S}/udev.sh"
}
pkg_postinst() {
udev_reload
}
pkg_postrm() {
udev_reload
}