diff options
author | Alex | 2019-01-24 19:44:33 +0100 |
---|---|---|
committer | Alex | 2019-01-24 19:44:33 +0100 |
commit | 7cf524bc13fc07f31bf3d5c31f1d128b32ccdb73 (patch) | |
tree | 38e300b0b64af467f5fed88453ffd6100b8ceb32 | |
parent | 6093b3710aca5788ee043b0f165edb1923b2cd7b (diff) | |
download | aur-7cf524bc13fc07f31bf3d5c31f1d128b32ccdb73.tar.gz |
Update to v15.2.3
-rw-r--r-- | .SRCINFO | 9 | ||||
-rw-r--r-- | PKGBUILD | 54 | ||||
-rw-r--r-- | davinci-resolve.install | 65 |
3 files changed, 76 insertions, 52 deletions
@@ -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 @@ -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 } |