188 lines
7.2 KiB
Bash
188 lines
7.2 KiB
Bash
# Copyright 1999-2020 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# TODOs:
|
|
# - fix QA notice about installing symlinks in /usr/lib
|
|
|
|
EAPI=6
|
|
|
|
inherit linux-mod
|
|
|
|
DESCRIPTION="Desktop Video - drivers and tools for products by Blackmagic Design including DeckLink and Intensity"
|
|
HOMEPAGE="http://www.blackmagicdesign.com/"
|
|
HOMEPAGE_DOWNLOAD_NAME="Desktop Video ${PV}"
|
|
|
|
SRC_URI="Blackmagic_Desktop_Video_Linux_${PV}.tar.gz"
|
|
DESKTOP_VIDEO_SHORT_VERSION="12.2"
|
|
DESKTOP_VIDEO_VERSION="12.2a12"
|
|
CONTAINER_DIR="Blackmagic_Desktop_Video_Linux_${DESKTOP_VIDEO_SHORT_VERSION}"
|
|
UNPACKED_DIR="desktopvideo-${DESKTOP_VIDEO_VERSION}-x86_64"
|
|
|
|
LICENSE="BlackmagicDesktopVideo"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
IUSE="autostart"
|
|
RESTRICT="fetch splitdebug"
|
|
|
|
# dependencies found via command: (ldd would include transitive dependencies)
|
|
# equery belongs $(for file in /usr/lib/libDeckLink* /usr/lib/blackmagic/*; do objdump -p $file | grep NEEDED; done 2>/dev/null | cut -b24- | sort | uniq | grep -vE 'lib(Qt5(Core|Network|Gui|Widgets)|qxcb|qgtk2|DeckLink)')
|
|
DEPEND=""
|
|
RDEPEND="${DEPEND}
|
|
media-libs/mesa
|
|
sys-devel/gcc
|
|
sys-libs/glibc
|
|
sys-libs/libcxx
|
|
sys-libs/libcxxabi
|
|
"
|
|
|
|
# supress QA warnings about stripping etc., i.e. stuff we cannot change since we install prebuilt binaries
|
|
QA_PREBUILT="opt/blackmagic-desktop-video/usr/bin/* opt/blackmagic-desktop-video/usr/lib/*"
|
|
|
|
# for kernel module compilation
|
|
MODULE_NAMES="blackmagic(misc:${S}/usr/src/blackmagic-${DESKTOP_VIDEO_VERSION}:${S}/usr/src/blackmagic-${DESKTOP_VIDEO_VERSION}) blackmagic-io(misc:${S}/usr/src/blackmagic-io-${DESKTOP_VIDEO_VERSION}:${S}/usr/src/blackmagic-io-${DESKTOP_VIDEO_VERSION})"
|
|
BUILD_PARAMS="-j1"
|
|
BUILD_TARGETS="clean all"
|
|
|
|
pkg_nofetch() {
|
|
# 1 2 3 4 5 6 7 8
|
|
# 1234567890123456789012345678901234567890123456789012345678901234567890123456789012
|
|
einfo "Please visit ${HOMEPAGE} and download \"${HOMEPAGE_DOWNLOAD_NAME}\""
|
|
einfo "for your product from the support section and move it to your DISTDIR"
|
|
einfo "(/var/cache/distfiles or /usr/portage/distfiles unless you changed it)."
|
|
einfo ""
|
|
einfo " expected filename: ${SRC_URI}"
|
|
einfo ""
|
|
einfo "If your browser downloads a .tar file you will need to rename it to .tar.gz"
|
|
}
|
|
|
|
src_unpack() {
|
|
unpack ${A}
|
|
|
|
cd ${WORKDIR}
|
|
tar xfz ${CONTAINER_DIR}/other/x86_64/desktopvideo-${DESKTOP_VIDEO_VERSION}-x86_64.tar.gz
|
|
|
|
# symlink to what is supposed to have been prepared
|
|
ln -s ${UNPACKED_DIR} ${P}
|
|
}
|
|
|
|
src_compile() {
|
|
# library/tools are binary but kernel module requires compilation
|
|
linux-mod_src_compile
|
|
}
|
|
|
|
src_install() {
|
|
# all pre-built binaries should go into /opt and be symlinked to usr/bin etc.
|
|
finalinstalldir="/opt/blackmagic-desktop-video"
|
|
installdir="${D}${finalinstalldir}"
|
|
|
|
mkdir -p ${installdir}
|
|
cp -a ${WORKDIR}/${UNPACKED_DIR}/* ${installdir}/
|
|
|
|
# copy text files (readme and license) from parent directory
|
|
cp -a ${WORKDIR}/${CONTAINER_DIR}/*.txt ${installdir}/
|
|
|
|
# there should a blank directory in /etc according to the archive...
|
|
mkdir -p ${installdir}/etc/blackmagic
|
|
chmod 755 ${installdir}/etc/blackmagic
|
|
|
|
# NOTE: Not linking usr/lib/systemd as I don't use that and thus can't test it...
|
|
symlinks=(
|
|
'etc/init.d/DesktopVideoHelper'
|
|
'usr/bin/BlackmagicDesktopVideoSetup'
|
|
'usr/bin/DesktopVideoUpdateTool'
|
|
'usr/bin/DesktopVideoUpdater'
|
|
'usr/lib/blackmagic'
|
|
'usr/lib/libDeckLinkAPI.so'
|
|
'usr/lib/libDeckLinkPreviewAPI.so'
|
|
'usr/share/applications/BlackmagicDesktopVideoSetup.desktop'
|
|
'usr/share/applications/DesktopVideoUpdater.desktop'
|
|
'usr/share/doc/desktopvideo'
|
|
'usr/share/doc/desktopvideo-gui'
|
|
'usr/share/icons/hicolor/16x16/apps/BlackmagicDesktopVideoSetup.png'
|
|
'usr/share/icons/hicolor/16x16/apps/DesktopVideoUpdater.png'
|
|
'usr/share/icons/hicolor/32x32/apps/BlackmagicDesktopVideoSetup.png'
|
|
'usr/share/icons/hicolor/32x32/apps/DesktopVideoUpdater.png'
|
|
'usr/share/icons/hicolor/48x48/apps/BlackmagicDesktopVideoSetup.png'
|
|
'usr/share/icons/hicolor/48x48/apps/DesktopVideoUpdater.png'
|
|
'usr/share/icons/hicolor/128x128/apps/BlackmagicDesktopVideoSetup.png'
|
|
'usr/share/icons/hicolor/128x128/apps/DesktopVideoUpdater.png'
|
|
'usr/share/icons/hicolor/256x256/apps/BlackmagicDesktopVideoSetup.png'
|
|
'usr/share/icons/hicolor/256x256/apps/DesktopVideoUpdater.png'
|
|
)
|
|
|
|
for path in "${symlinks[@]}"; do
|
|
dosym /opt/blackmagic-desktop-video/${path} ${path}
|
|
done
|
|
|
|
# dneuge: no clue on how to use this...
|
|
## QA notice says we should generate a linker script if we don't place libraries in /usr/lib
|
|
## see: https://devmanual.gentoo.org/eclass-reference/toolchain-funcs.eclass/index.html
|
|
#gen_usr_ldscript usr/lib/libDeckLinkAPI.so usr/lib/libDeckLinkPreviewAPI.so
|
|
|
|
# don't symlink man-pages, install a copy instead
|
|
# NOTE: DesktopVideoHelper appears to have disappeared, so we won't install the man page either
|
|
doman usr/share/man/man1/BlackmagicDesktopVideoSetup.1
|
|
doman usr/share/man/man1/BlackmagicFirmwareUpdater.1
|
|
doman usr/share/man/man1/DesktopVideoHelper.1
|
|
doman usr/share/man/man1/DesktopVideoUpdateTool.1
|
|
doman usr/share/man/man1/DesktopVideoUpdater.1
|
|
|
|
# udev rules should be placed in /lib/udev/rules.d instead
|
|
dosym /opt/blackmagic-desktop-video/etc/udev/rules.d/55-blackmagic.rules /lib/udev/rules.d/55-blackmagic.rules
|
|
|
|
# add firmware check to autostart?
|
|
if use autostart; then
|
|
dosym /opt/blackmagic-desktop-video/etc/xdg/autostart/DesktopVideoUpdaterAutoStart.desktop /etc/xdg/autostart/DesktopVideoUpdaterAutoStart.desktop
|
|
fi
|
|
|
|
# kernel module
|
|
linux-mod_src_install
|
|
}
|
|
|
|
pkg_postinst() {
|
|
# kernel module
|
|
linux-mod_pkg_postinst
|
|
|
|
# 12345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
einfo ""
|
|
einfo "Please do *NOT* report any QA errors to Gentoo or Blackmagic!"
|
|
einfo ""
|
|
einfo "Kernel modules are blackmagic and blackmagic-io. Try blackmagic if in doubt."
|
|
einfo "When upgrading, please rmmod both first. Then modprobe blackmagic to see if it"
|
|
einfo "works (it should print your devices to kernel log)."
|
|
einfo ""
|
|
einfo "Installed tools are DesktopVideoUpdateTool (CLI), DesktopVideoUpdater (GUI) and"
|
|
einfo "BlackmagicDesktopVideoSetup."
|
|
einfo ""
|
|
einfo "For Media Express emerge media-video/blackmagic-media-express."
|
|
einfo ""
|
|
if use autostart; then
|
|
einfo "Automated firmware update check has been installed."
|
|
else
|
|
einfo "Automated firmware update check has *not* been installed this time."
|
|
einfo "(set USE flag autostart if you want that)"
|
|
fi
|
|
einfo ""
|
|
einfo "If your product is not being recognized, there are two common reasons:"
|
|
einfo ""
|
|
einfo " 1) You may need to increase the vmalloc limit in your kernel."
|
|
einfo " This can be done by adding e.g. vmalloc=256M to your kernel boot line. You"
|
|
einfo " can see current usage by running"
|
|
einfo ""
|
|
einfo " # grep VmallocUsed /proc/meminfo"
|
|
einfo ""
|
|
einfo " 2) Your firmware may be outdated. Make sure you reload the modules (or simply"
|
|
einfo " reboot) and then run DesktopVideoUpdateTool (CLI) or, if you prefer,"
|
|
einfo " DesktopVideoUpdater (GUI)"
|
|
einfo ""
|
|
einfo "Licenses can be found in: ${finalinstalldir}/usr/share/doc/"
|
|
einfo ""
|
|
einfo "We are reloading udev rules now..."
|
|
/bin/udevadm control --reload-rules || einfo " ... failed, you may want to check this before rebooting!"
|
|
}
|
|
|
|
pkg_postrm() {
|
|
# kernel module
|
|
linux-mod_pkg_postrm
|
|
}
|