summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex2019-01-10 14:18:25 +0100
committerAlex2019-01-10 14:18:25 +0100
commit6093b3710aca5788ee043b0f165edb1923b2cd7b (patch)
tree7b3015b2c866dd627508e2f95ccc69e638ea421c
parent05d9168358d955085001b645522c4584946ba5a5 (diff)
downloadaur-6093b3710aca5788ee043b0f165edb1923b2cd7b.tar.gz
Update to v15.2.2. Hopefully without issues
-rw-r--r--.SRCINFO3
-rw-r--r--PKGBUILD114
-rw-r--r--davinci-resolve.install113
3 files changed, 158 insertions, 72 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a587b4365348..94af221093e0 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = davinci-resolve
pkgdesc = Professional A/V post-production software suite from Blackmagic Design
pkgver = 15.2.2
- pkgrel = 1
+ pkgrel = 2
url = https://www.blackmagicdesign.com/
arch = x86_64
license = Commercial
@@ -17,6 +17,7 @@ pkgbase = davinci-resolve
depends = qt5-base
depends = qt5-svg
depends = qt5-webkit
+ depends = libisoburn
depends = qt5-webengine
depends = qt5-websockets
depends = xdg-user-dirs
diff --git a/PKGBUILD b/PKGBUILD
index 6f57789a606c..5ccc9ffd8bd5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,103 +9,75 @@
pkgname=davinci-resolve
_pkgname=resolve
+resolve_app_name=com.blackmagicdesign.resolve
pkgver=15.2.2
-pkgrel=1
+pkgrel=2
pkgdesc='Professional A/V post-production software suite from Blackmagic Design'
arch=('x86_64')
url="https://www.blackmagicdesign.com/"
license=('Commercial')
depends=('glu' 'gtk2' 'gstreamer' 'libpng12' 'lib32-libpng12' 'ocl-icd' 'openssl-1.0'
- 'opencl-driver' 'qt4' 'qt5-base' 'qt5-svg' 'qt5-webkit'
+ 'opencl-driver' 'qt4' 'qt5-base' 'qt5-svg' 'qt5-webkit' 'libisoburn'
'qt5-webengine' 'qt5-websockets' 'xdg-user-dirs')
options=('!strip')
conflicts=('davinci-resolve-beta' 'davinci-resolve-studio' 'davinci-resolve-studio-beta')
+
+# Trying to make the user's life easier ;o)
+msg2 "Trying to fetch the archive file if available..."
DOWNLOADS_DIR=`xdg-user-dir DOWNLOAD`
if [ ! -f ${pkgdir}/DaVinci_Resolve_${pkgver}_Linux.zip ]; then
- if [ -f $DOWNLOADS_DIR/DaVinci_Resolve_${pkgver}_Linux.zip ]; then
- ln -sfn $DOWNLOADS_DIR/DaVinci_Resolve_${pkgver}_Linux.zip ${pkgdir}
- else
- msg2 "The package can be downloaded here: https://www.blackmagicdesign.com/products/davinciresolve/"
- msg2 "Please remember to put a downloaded package DaVinci_Resolve_${pkgver}_Linux.zip into the build directory or $DOWNLOADS_DIR"
- sleep 3
- fi
+ if [ -f $DOWNLOADS_DIR/DaVinci_Resolve_${pkgver}_Linux.zip ]; then
+ ln -sfn $DOWNLOADS_DIR/DaVinci_Resolve_${pkgver}_Linux.zip ${pkgdir}
+ else
+ msg2 ""
+ msg2 "The package can be downloaded here: https://www.blackmagicdesign.com/products/davinciresolve/"
+ msg2 "Please remember to put a downloaded package DaVinci_Resolve_${pkgver}_Linux.zip into the build directory ${PWD} or $DOWNLOADS_DIR"
+ msg2 ""
+ fi
fi
source=("local://DaVinci_Resolve_${pkgver}_Linux.zip")
sha256sums=('4330673cbe62f1ce2292d0357e20503233124bbb5a1b7752ce83b4befcf29497')
-package() {
-# msg2 "Did you download the archive manually? If not, this will fail."
- mkdir -p "${pkgdir}/opt/${_pkgname}/"{bin,configs,Media}
+package()
+{
+ msg2 "Creating missing folders..."
+ mkdir -p -m 0775 "${pkgdir}/opt/${_pkgname}/"{configs,DolbyVision,easyDCP,Fairlight,logs,Media,"Resolve Disk Database",.crashreport,.license,.LUT}
+ mkdir -p "${pkgdir}/usr/share/"{applications,desktop-directories}
+ mkdir -p "${pkgdir}/usr/lib/udev/rules.d"
+ mkdir -p "${pkgdir}/etc/xdg/menus"
msg2 "Extracting from bundle..."
cd "${srcdir}" || exit
- ./DaVinci_Resolve_${pkgver}_Linux.sh --tar xf -C "${pkgdir}/opt/${_pkgname}"
+ xorriso -osirrox on -indev DaVinci_Resolve_${pkgver}_Linux.run -extract / "${pkgdir}/opt/${_pkgname}"
- msg2 "Extracting library archives..."
+ msg2 "Add lib symlinks..."
cd "${pkgdir}/opt/${_pkgname}/" || exit
- gunzip -f LUT/trim_lut0.dpx.gz
- for archive in libs/*tgz; do
- tar xf "${archive}" -C libs/
- rm -f "${archive}"
- done
+ ln -s /usr/lib/libcrypto.so.1.0.0 libs/libcrypto.so.10
+ ln -s /usr/lib/libssl.so.1.0.0 libs/libssl.so.10
- msg2 "Relocate binaries and config..."
+ msg2 "Install launchers and configs..."
cd "${pkgdir}/opt/${_pkgname}/" || exit
- local _binaries=(
- BMDPanelFirmware
- DPDecoder
- ShowDpxHeader
- TestIO
- bandwidthTest
- bmdpaneld
- deviceQuery
- oclBandwidthTest
- oclDeviceQuery
- qt.conf
- )
- for binary in "${_binaries[@]}"; do
- mv "rsf/${binary}" "bin/${binary}"
+ install -Dm666 share/default-config-linux.dat "${pkgdir}/opt/${_pkgname}/configs/config.dat"
+ install -Dm666 share/log-conf.xml "${pkgdir}/opt/${_pkgname}/configs/log-conf.xml"
+ install -Dm666 share/default_cm_config.bin "${pkgdir}/opt/${_pkgname}/DolbyVision/config.bin"
+ install -Dm644 share/DaVinciResolve.desktop "${pkgdir}/usr/share/applications/${resolve_app_name}.desktop"
+ install -Dm644 share/DaVinciResolvePanelSetup.desktop "${pkgdir}/usr/share/applications/${resolve_app_name}-Panels.desktop"
+ install -Dm644 share/DaVinciResolveInstaller.desktop "${pkgdir}/usr/share/applications/${resolve_app_name}-Installer.desktop"
+ install -Dm644 share/DaVinciResolveCaptureLogs.desktop "${pkgdir}/usr/share/applications/${resolve_app_name}-CaptureLogs.desktop"
+ install -Dm644 share/DaVinciResolve.directory "${pkgdir}/usr/share/desktop-directories/${resolve_app_name}.directory"
+ install -Dm644 share/DaVinciResolve.menu "${pkgdir}/etc/xdg/menus/${resolve_app_name}.menu"
+
+ for _file in $(find ${pkgdir}/usr/share ${pkgdir}/etc -type f -name *.desktop -o -name *.directory -o -name *.menu | xargs)
+ do
+ sed -i "s|RESOLVE_INSTALL_LOCATION|/opt/${_pkgname}|g" $_file
done
- mv resolve bin/resolve
- mv rsf/Control Control
- install -Dm666 rsf/default-config-linux.dat "${pkgdir}/opt/${_pkgname}/configs/config.dat"
-
- msg2 "Add lib symlinks..."
- cd "${pkgdir}/opt/${_pkgname}/" || exit
- ln -s /usr/lib/libcrypto.so.1.0.0 libs/libcrypto.so.10
- ln -s /usr/lib/libssl.so.1.0.0 libs/libssl.so.10
- ln -s /usr/lib/libgstbase-1.0.so libs/libgstbase-0.10.so.0
- ln -s /usr/lib/libgstreamer-1.0.so libs/libgstreamer-0.10.so.0
-
- msg2 "Creating launchers..."
- cd "${srcdir}" || exit
- cat > "${srcdir}/DaVinci Resolve.desktop" << EOF
-#!/usr/bin/env xdg-open
-[Desktop Entry]
-Type=Application
-Name=DaVinci Resolve
-Comment=Professional non-linear editing
-Exec=/opt/${_pkgname}/bin/start-resolve
-Icon=/opt/${_pkgname}/rsf/DV_Resolve.png
-Terminal=false
-Categories=Multimedia;AudioVideo;Application;
-EOF
- install -Dm644 DaVinci\ Resolve.desktop "${pkgdir}/usr/share/applications/DaVinci Resolve.desktop"
-
- cat > "${srcdir}/start-resolve" << EOF
-#!/bin/sh
-mkdir -p /tmp/${_pkgname}/{logs,GPUCache}
-cd /opt/${_pkgname}
-exec bin/resolve "\$@"
-EOF
- install -Dm755 start-resolve "${pkgdir}/opt/${_pkgname}/bin/start-resolve"
- msg2 "Making sure file ownership is 'correct'..."
- chown -R root:root "${pkgdir}/opt"
- chmod 0777 "${pkgdir}/opt/${_pkgname}/configs"
- chmod 0777 "${pkgdir}/opt/${_pkgname}/Media"
+ msg2 "Creating and installing udev rules..."
+ echo 'SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="096e", MODE="0666"' > "${pkgdir}/usr/lib/udev/rules.d/75-davincipanel.rules"
+ echo 'SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1edb", MODE="0666"' > "${pkgdir}/usr/lib/udev/rules.d/75-sdx.rules"
+ chmod 644 "${pkgdir}/usr/lib/udev/rules.d/"{75-davincipanel.rules,75-sdx.rules}
msg2 "Any final tweaks..."
ln -s "/tmp/${_pkgname}/logs" "${pkgdir}/opt/${_pkgname}/logs"
diff --git a/davinci-resolve.install b/davinci-resolve.install
new file mode 100644
index 000000000000..fcb569335e65
--- /dev/null
+++ b/davinci-resolve.install
@@ -0,0 +1,113 @@
+pre_install()
+{
+ echo "Removing old files..."
+ DIRS_TO_REMOVE=(
+ "Onboarding"
+ "libs"
+ "plugins"
+ "UI_Resource")
+
+ if [[ -d ${/opt/${_pkgname}} ]]; then
+ echo "Removing old files"
+ for dir in "${DIRS_TO_REMOVE[@]}"; do
+ rm -rf "$/opt/${_pkgname}/$dir"
+ done
+ fi
+
+# TODO: We should talk to the BMD developers about it. Pretty sensitive subject systemd @_@
+#if [[ $EUID -ne 0 ]]; then
+# # Script being run as non-root user
+# USER_UID=$EUID
+#else
+# # Script being run as root
+# USER_UID=$SUDO_UID
+# if [ -z "$USER_UID" ]; then
+# USER_UID=$PKEXEC_UID
+# fi
+# if [ -z "$USER_UID" ]; then
+# USER_UID=0
+# fi
+#fi
+
+#USER_HOME=`awk -v val=$USER_UID -F ":" '\$3==val{print \$6;exit}' /etc/passwd`
+
+# if [[ -d ${/opt/${_pkgname}} && ${/opt/${_pkgname}} == /home/resolve* ]]; then
+# chown $USER_UID "$/opt/${_pkgname}"
+# else
+# # Uninstall the panel daemon only on Standalone install
+# # Uninstall BMD panel daemon
+# SVC_NAME=bmdpaneld
+
+# # Kill the daemon in case it is running
+# killall -9 ${SVC_NAME}
+
+# if [ -f /etc/init.d/${SVC_NAME} ]; then
+# echo "#Uninstalling BMD panel service..."
+# service ${SVC_NAME} stop
+# /sbin/chkconfig --del ${SVC_NAME}
+# rm -f /etc/init.d/${SVC_NAME}
+# fi
+# mkdir -m 0775 -p "$/opt/${_pkgname}"
+# chown $USER_UID "$/opt/${_pkgname}" -R
+# fi
+}
+
+post_install()
+{
+ echo "Installing Application icons..."
+ xdg-icon-resource install --size 64 "${pkgdir}/graphics/DV_Resolve.png" DaVinci-Resolve 2>&1 >> /dev/null
+ xdg-icon-resource install --size 64 "${pkgdir}/graphics/DV_ResolveProj.png" DaVinci-ResolveProj 2>&1 >> /dev/null
+
+ xdg-icon-resource install --size 64 --context mimetypes "${pkgdir}/graphics/DV_ResolveProj.png" application-x-resolveproj 2>&1 >> /dev/null
+ xdg-mime install --novendor "${pkgdir}/share/resolve.xml" 2>&1 >> /dev/null
+
+ echo "Updating icon cache..."
+ gtk-update-icon-cache "share/icons/hicolor" -f 2>&1 >> /dev/null
+ update-mime-database "share/mime/" 2>&1 >> /dev/null
+
+ echo "Installing the default app associations..."
+ # $1 is .desktop
+ # $2 is mime/type
+
+ DEFAULT_MIME_FILE="/usr/share/applications/defaults.list"
+ grep -v "application/x-resolveproj=" $DEFAULT_MIME_FILE > ${DEFAULT_MIME_FILE}.new 2> /dev/null
+ if ! grep "[Default Applications]" ${DEFAULT_MIME_FILE}.new > /dev/null; then
+ echo "[Default Applications]" >> ${DEFAULT_MIME_FILE}.new
+ fi
+ echo application/x-resolveproj=${resolve_app_name}.desktop >> ${DEFAULT_MIME_FILE}.new
+ mv ${DEFAULT_MIME_FILE}.new $DEFAULT_MIME_FILE
+
+ # reload the udev rules
+ udevadm control --reload-rules 2>&1
+ udevadm trigger 2>&1
+
+ # Ensure panel permissions are correctly set for the current session
+ DEVICES=`lsusb | grep "ID 1edb\|ID 096e" | sed -e "s/:/ /g" | awk '{print"/dev/bus/usb/"$2"/"$4}'`
+ for DEV in $DEVICES
+ do
+ echo "Fixing usb permissions for $DEV"
+ chmod a+w $DEV
+ done
+}
+
+pre_upgrade()
+{
+ pre_install
+}
+
+post_remove()
+{
+ # Remove entry from /usr/share/applications/defaults.list
+ if [ "$(grep -ir 'application/x-resolveproj=com.blackmagicdesign.resolve.desktop' /usr/share/applications/defaults.list)" ]; then
+ sed -i '/application\/x-resolveproj=com.blackmagicdesign.resolve.desktop/d' /usr/share/applications/defaults.list
+ fi
+
+ # Removing entry from /usr/share/applications/mimeinfo.cache
+ if [ "$(grep -ir 'application/x-resolveproj=com.blackmagicdesign.resolve.desktop;' /usr/share/applications/mimeinfo.cache)" ]; then
+ sed -i '/application\/x-resolveproj=com.blackmagicdesign.resolve.desktop;/d' /usr/share/applications/mimeinfo.cache
+ fi
+
+ # Remove udev rules
+ rm -rf /usr/lib/udev/rules.d/75-davincipanel.rules
+ rm -rf /usr/lib/udev/rules.d/75-sdx.rules
+}