summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex2019-01-24 19:44:33 +0100
committerAlex2019-01-24 19:44:33 +0100
commit7cf524bc13fc07f31bf3d5c31f1d128b32ccdb73 (patch)
tree38e300b0b64af467f5fed88453ffd6100b8ceb32
parent6093b3710aca5788ee043b0f165edb1923b2cd7b (diff)
downloadaur-7cf524bc.tar.gz
Update to v15.2.3
-rw-r--r--.SRCINFO9
-rw-r--r--PKGBUILD54
-rw-r--r--davinci-resolve.install65
3 files changed, 76 insertions, 52 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 94af221093e0..785e80f1f49b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,9 @@
pkgbase = davinci-resolve
pkgdesc = Professional A/V post-production software suite from Blackmagic Design
- pkgver = 15.2.2
- pkgrel = 2
+ pkgver = 15.2.3
+ pkgrel = 1
url = https://www.blackmagicdesign.com/
+ install = davinci-resolve.install
arch = x86_64
license = Commercial
depends = glu
@@ -25,8 +26,8 @@ pkgbase = davinci-resolve
conflicts = davinci-resolve-studio
conflicts = davinci-resolve-studio-beta
options = !strip
- source = local://DaVinci_Resolve_15.2.2_Linux.zip
- sha256sums = 4330673cbe62f1ce2292d0357e20503233124bbb5a1b7752ce83b4befcf29497
+ source = local://DaVinci_Resolve_15.2.3_Linux.zip
+ sha256sums = d0123739c68b3b03565a1478625a3ebafbb067eb5631a7c7b0a41726f5d5c854
pkgname = davinci-resolve
diff --git a/PKGBUILD b/PKGBUILD
index 5ccc9ffd8bd5..a9753631f191 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -10,8 +10,8 @@
pkgname=davinci-resolve
_pkgname=resolve
resolve_app_name=com.blackmagicdesign.resolve
-pkgver=15.2.2
-pkgrel=2
+pkgver=15.2.3
+pkgrel=1
pkgdesc='Professional A/V post-production software suite from Blackmagic Design'
arch=('x86_64')
url="https://www.blackmagicdesign.com/"
@@ -21,7 +21,7 @@ depends=('glu' 'gtk2' 'gstreamer' 'libpng12' 'lib32-libpng12' 'ocl-icd' 'openssl
'qt5-webengine' 'qt5-websockets' 'xdg-user-dirs')
options=('!strip')
conflicts=('davinci-resolve-beta' 'davinci-resolve-studio' 'davinci-resolve-studio-beta')
-
+install=${pkgname}.install
# Trying to make the user's life easier ;o)
msg2 "Trying to fetch the archive file if available..."
DOWNLOADS_DIR=`xdg-user-dir DOWNLOAD`
@@ -34,17 +34,32 @@ if [ ! -f ${pkgdir}/DaVinci_Resolve_${pkgver}_Linux.zip ]; then
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 ""
+ exit 1
fi
fi
source=("local://DaVinci_Resolve_${pkgver}_Linux.zip")
-sha256sums=('4330673cbe62f1ce2292d0357e20503233124bbb5a1b7752ce83b4befcf29497')
+sha256sums=('d0123739c68b3b03565a1478625a3ebafbb067eb5631a7c7b0a41726f5d5c854')
+
+prepare()
+{
+ # Remove udev rules (The official installer does not remove these files. This leads to the conflict "exists in the file system".)
+ confiles=$(find /usr/lib/udev/rules.d -name 75-davincipanel.rules -o -name 75-sdx.rules 2> /dev/null | awk -F/ '{print $NF}'
+ find /opt/resolve/configs -name log-conf.xml -o -name config.dat 2> /dev/null | awk -F/ '{print $NF}'
+ )
+ if [ "${confiles}" ]; then
+ msg2 "The file(s) $(echo ${confiles} | xargs | sed 's/ /, /g') already exist in your filesystem."
+ msg2 "This can lead to a conflict and the installation will fail."
+ msg2 "Please restart the installation with the --overwrite option."
+ fi
+}
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 -m 0775 "${pkgdir}/opt/${_pkgname}/"{configs,DolbyVision,easyDCP,Fairlight,GPUCache,logs,Media,"Resolve Disk Database",.crashreport,.license,.LUT}
+ mkdir -p "${pkgdir}/usr/share/"{applications,desktop-directories,icons/hicolor,mime/packages}
+# mkdir -p "${pkgdir}/tmp/${_pkgname}/"{logs,GPUCache}
mkdir -p "${pkgdir}/usr/lib/udev/rules.d"
mkdir -p "${pkgdir}/etc/xdg/menus"
@@ -74,14 +89,35 @@ package()
sed -i "s|RESOLVE_INSTALL_LOCATION|/opt/${_pkgname}|g" $_file
done
+ # This will help adding the app to favorites and prevent glitches on many desktops.
+ echo "StartupWMClass=resolve" >> "${pkgdir}/usr/share/applications/${resolve_app_name}.desktop"
+
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"
- ln -s "/tmp/${_pkgname}/GPUCache" "${pkgdir}/opt/${_pkgname}/GPUCache"
+# Not sure we need it
+# msg2 "Any final tweaks..."
+# ln -s "/tmp/${_pkgname}/logs" "${pkgdir}/opt/${_pkgname}/logs"
+# ln -s "/tmp/${_pkgname}/GPUCache" "${pkgdir}/opt/${_pkgname}/GPUCache"
+
+ msg2 "Installing Application icons..."
+ # Obviously not working without root rights.
+# XDG_DATA_DIRS="${pkgdir}/usr/share/icons/hicolor" xdg-icon-resource install --size 64 "${pkgdir}/opt/${_pkgname}/graphics/DV_Resolve.png" DaVinci-Resolve 2>&1 >> /dev/null
+# XDG_DATA_DIRS="${pkgdir}/usr/share/icons/hicolor" xdg-icon-resource install --size 64 "${pkgdir}/opt/${_pkgname}/graphics/DV_ResolveProj.png" DaVinci-ResolveProj 2>&1 >> /dev/null
+# XDG_DATA_DIRS="${pkgdir}/usr/share/icons/hicolor" xdg-icon-resource install --size 64 --context mimetypes "${pkgdir}/opt/${_pkgname}/graphics/DV_ResolveProj.png" application-x-resolveproj 2>&1 >> /dev/null
+# XDG_DATA_DIRS="${pkgdir}/usr/share/mime/packages" xdg-mime install --novendor "${pkgdir}/opt/${_pkgname}/share/resolve.xml" 2>&1 >> /dev/null
+ install -D -m644 graphics/DV_Resolve.png "${pkgdir}/usr/share/icons/hicolor/64x64/apps/DV_Resolve.png"
+ install -D -m644 graphics/DV_ResolveProj.png "${pkgdir}/usr/share/icons/hicolor/64x64/apps/DV_ResolveProj.png"
+
+ install -D -m644 share/resolve.xml "${pkgdir}/usr/share/mime/packages/resolve.xml"
+
+ msg2 "Setting the right permissions..."
+ _user=$(logname)
+ _group=$(id -g -n ${_user})
+ chown -R ${_user}:${_group} "${pkgdir}/opt/${_pkgname}/"{*,.*}
+ chown -R ${_user}:root "${pkgdir}/opt/${_pkgname}/"{configs,DolbyVision,easyDCP,Fairlight,logs,Media,'Resolve Disk Database',.crashreport,.license,.LUT}
msg2 "Done!"
}
diff --git a/davinci-resolve.install b/davinci-resolve.install
index fcb569335e65..7cb3f99396da 100644
--- a/davinci-resolve.install
+++ b/davinci-resolve.install
@@ -1,20 +1,20 @@
-pre_install()
-{
- echo "Removing old files..."
- DIRS_TO_REMOVE=(
- "Onboarding"
- "libs"
- "plugins"
- "UI_Resource")
+# These are fragments from the original code.
+# I do not see any need for it yet, but maybe I will be able to find out later.
- if [[ -d ${/opt/${_pkgname}} ]]; then
- echo "Removing old files"
- for dir in "${DIRS_TO_REMOVE[@]}"; do
- rm -rf "$/opt/${_pkgname}/$dir"
- done
- fi
+# 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
@@ -31,6 +31,7 @@ pre_install()
#USER_HOME=`awk -v val=$USER_UID -F ":" '\$3==val{print \$6;exit}' /etc/passwd`
+# TODO: We should talk to the BMD developers about it. Pretty sensitive subject systemd @_@
# if [[ -d ${/opt/${_pkgname}} && ${/opt/${_pkgname}} == /home/resolve* ]]; then
# chown $USER_UID "$/opt/${_pkgname}"
# else
@@ -50,32 +51,21 @@ pre_install()
# 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
+ if [ ! "$(grep -ir 'application/x-resolveproj=com.blackmagicdesign.resolve.desktop' /usr/share/applications/defaults.list)" ]; then
+ echo "application/x-resolveproj=com.blackmagicdesign.resolve.desktop" /usr/share/applications/defaults.list
+ fi
- 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
+ if [ ! "$(grep -ir 'application/x-resolveproj=com.blackmagicdesign.resolve.desktop;' /usr/share/applications/mimeinfo.cache)" ]; then
+ echo "/application\/x-resolveproj=com.blackmagicdesign.resolve.desktop;/d" /usr/share/applications/mimeinfo.cache
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
@@ -90,11 +80,6 @@ post_install()
done
}
-pre_upgrade()
-{
- pre_install
-}
-
post_remove()
{
# Remove entry from /usr/share/applications/defaults.list
@@ -106,8 +91,10 @@ post_remove()
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
+ for rules in /usr/lib/udev/rules.d/75-davincipanel.rules /usr/lib/udev/rules.d/75-sdx.rules
+ do
+ [[ -f $rules ]] && rm -rf $rules
+ done
}