# Copyright 2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit systemd udev PV_MINOR=${PV%.*} PV_EXTRA="63.33" UBUNTU_VERSION=1604 DESCRIPTION="DisplayLink USB Graphics Software" HOMEPAGE="https://www.synaptics.com/products/displaylink-graphics" SRC_URI="https://www.synaptics.com/sites/default/files/exe_files/2023-08/DisplayLink%20USB%20Graphics%20Software%20for%20Ubuntu${PV_MINOR}-EXE.zip -> ${P}.zip" LICENSE="DisplayLink-EULA" SLOT="0" KEYWORDS="~amd64" DEPEND=" >=x11-drivers/evdi-1.14.1 virtual/libusb:1 " RDEPEND="${DEPEND}" BDEPEND=" app-admin/chrpath app-arch/unzip sys-apps/grep[pcre] " RESTRICT="mirror bindist" QA_PRESTRIPPED="/opt/displaylink/DisplayLinkManager" src_unpack() { default sh ./"${P}-${PV_EXTRA}".run --noexec --target "${P}" } src_compile() { grep -ozP '(?s)cat > "\$DISPLAYLINK_RULES_FILE"[^\n]*\n\K.*?(?=\nEOF)' \ "${WORKDIR}/${P}"/udev-installer.sh | tr -d '\000' > 99-displaylink.rules || die grep -ozP '(?s)displaylink_bootstrapper_code\(\)\n{\n cat[^\n]*\n\K.*?(?=EOF)' \ "${WORKDIR}/${P}"/udev-installer.sh | tr -d '\000' > udev.sh || die grep -ozP '(?s)systemd_start_stop_functions\(\)\n{\n cat[^\n]*\n\K.*?(?=EOF)' \ "${WORKDIR}/${P}"/udev-installer.sh | tr -d '\000' >> udev.sh || die grep -ozP '(?s)create_main_function\(\)\n{\n cat[^\n]*\n\K.*?(?=EOF)' \ "${WORKDIR}/${P}"/udev-installer.sh | tr -d '\000' >> udev.sh || die grep -ozP '(?s)cat > "\$service_path" < ${PN}.service grep -ozP '(?s)cat > "\$suspend" << EOF\n\K.*?(?=EOF)' \ "${WORKDIR}/${P}"/service-installer.sh | tr -d '\000' > suspend.sh grep -ozP '(?s)systemd\)\n +cat >> "\$suspend"[^\n]*\n\K.*?(?=\nEOF)' \ "${WORKDIR}/${P}"/service-installer.sh | tr -d '\000' >> suspend.sh } src_install() { case "${ARCH}" in amd64) MY_ARCH="x64" ;; *) MY_ARCH="${ARCH}" ;; esac DLM="${S}/${MY_ARCH}-ubuntu-${UBUNTU_VERSION}/DisplayLinkManager" dodir /opt/displaylink keepdir /var/log/displaylink exeinto /opt/displaylink chrpath -d "${DLM}" doexe "${DLM}" insinto /opt/displaylink doins *.spkg doexe udev.sh udev_dorules 99-displaylink.rules doexe suspend.sh dosym ../../../../opt/displaylink/suspend.sh /usr/lib/systemd/system-sleep/displaylink.sh systemd_dounit ${PN}.service dodoc LICENSE dodoc 3rd_party_licences.txt } pkg_postinst() { udev_reload } pkg_postrm() { udev_reload }