Klar. Am Ende.
Dein PKGBUILD aus dem letzten Post ist identisch zu meinem.
Ich mache folgendes:
[gerhard@ws01 vinci]$ patch --verbose --ignore-whitespace PKGBUILD diff -o PKGBUILD.new
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/PKGBUILD b/PKGBUILD
|index ec09c3b..0e1476d 100644
|--- a/PKGBUILD
|+++ b/PKGBUILD
--------------------------
patching file PKGBUILD.new (read from PKGBUILD)
Using Plan A...
patch: **** malformed patch at line 6: prepare()
Das ist, weil die o.a. Fehler im Diff aus den AUR-Kommentaren sind.
Ich editiere nun das Diff, indem ich ein Leerzeichen in Zeile 6 (prepare()) uhd 7 ({) dazugebe. Danach:
[gerhard@ws01 vinci]$ patch --verbose --ignore-whitespace PKGBUILD diff -o PKGBUILD.new
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/PKGBUILD b/PKGBUILD
|index ec09c3b..0e1476d 100644
|--- a/PKGBUILD
|+++ b/PKGBUILD
--------------------------
patching file PKGBUILD.new (read from PKGBUILD)
Using Plan A...
Hunk #1 succeeded at 96.
Hunk #2 succeeded at 123 (offset 1 line).
Hunk #3 succeeded at 159 with fuzz 2 (offset 1 line).
done
Der Patch läuft also durch, beim Hunk #3 muß patch allerdings etwas "nachdenken" (fuzz 2), entscheidet aber das die zu patchende Stelle korrekt ist (wohl weitere Leerstellen o.ä.)
In PKGBUILD.new ist nun der Code, ergänzt/editiert um die Stellen aus dem Diff.
Hier nun das Diff (schon mit Leerstellen) was ich aus dem AUR-Kommentar verwende. Damit solltest du genausoweit kommen wie ich:
diff --git a/PKGBUILD b/PKGBUILD
index ec09c3b..0e1476d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -96,7 +96,7 @@ source=("${_archive}"::"$_srcurl")
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}'
+ confiles=$(find /usr/lib/udev/rules.d -name 75-davincipanel.rules -o -name 75-sdx.rules -o -name 75-davincikb.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
@@ -122,6 +122,12 @@ package()
cd squashfs-root
./installer -i -y -n -a -C "${pkgdir}/opt/${_pkgname}" "$PWD"
+ msg2 "Panel API..."
+ cd "${srcdir}/squashfs-root/share/panels"
+ tar xvzf dvpanel-framework-linux-x86_64.tgz
+ install -Dm644 libDaVinciPanelAPI.so "${pkgdir}/usr/lib/libDaVinciPanelAPI.so"
+ install -Dm644 libFairlightPanelAPI.so "${pkgdir}/usr/lib/libFairlightPanelAPI.so"
+
msg2 "Add lib symlinks..."
cd "${pkgdir}/opt/${_pkgname}/" || exit
ln -s /usr/lib/libcrypto.so.1.0.0 libs/libcrypto.so.10
@@ -152,7 +158,14 @@ package()
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}
+ cat > ${pkgdir}/usr/lib/udev/rules.d/75-davincikb.rules <<EOF
+SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="\$attr{bInterfaceNumber}"
+# Editor Keyboard
+SUBSYSTEM=="hidraw", KERNEL=="hidraw*", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="da0b", ENV{.LOCAL_ifNum}=="04", MODE="0666"
+# Speed Editor Keyboard
+SUBSYSTEM=="hidraw", KERNEL=="hidraw*", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="da0e", ENV{.LOCAL_ifNum}=="02", MODE="0666"
+EOF
+ chmod 644 "${pkgdir}/usr/lib/udev/rules.d/"{75-davincipanel.rules,75-sdx.rules,75-davincikb.rules}
# Not sure we need it
# msg2 "Any final tweaks..."
Damit erhalte ich folgendes gepatchtes PKGBUILD.new
# Maintainer: Alex S. <shantanna_at_hotmail_dot_com>
# Contributor: Jonathon Fernyhough <jonathon_at_manjaro_dot_org>
# Hardware support is limited. Nvidia cards should work fine.
# If you're running a hybrid setup, try with primusrun/optirun.
# This was originally written by Daniel Bermond in blackmagic-decklink-sdk pkgbuild
# It is sufficient to just replace _downloadid to correspond new release version
# It can be obtained from chromium -> Developer Tools -> Network -> XHR -> click latest-version and copy downloadId
_downloadid='bf8c4f6eac894d4c84cfe9ba8518d388'
_referid='697bfa693faa49fbb785b2aedb584a8b'
_siteurl="https://www.blackmagicdesign.com/api/register/us/download/${_downloadid}"
_useragent="User-Agent: Mozilla/5.0 (X11; Linux ${CARCH}) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/77.0.3865.75 \
Safari/537.36"
_reqjson="{ \
\"firstname\": \"Arch\", \
\"lastname\": \"Linux\", \
\"email\": \"someone@archlinux.org\", \
\"phone\": \"202-555-0194\", \
\"country\": \"us\", \
\"state\": \"New York\", \
\"city\": \"AUR\", \
\"product\": \"DaVinci Resolve Studio\" \
}"
_reqjson="$( printf '%s' "$_reqjson" | sed 's/[[:space:]]\+/ /g')"
_useragent="$(printf '%s' "$_useragent" | sed 's/[[:space:]]\+/ /g')"
_useragent_escaped="${_useragent// /\\ }"
_srcurl="$(curl \
-s \
-H 'Host: www.blackmagicdesign.com' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Origin: https://www.blackmagicdesign.com' \
-H "$_useragent" \
-H 'Content-Type: application/json;charset=UTF-8' \
-H "Referer: https://www.blackmagicdesign.com/support/download/${_referid}/Linux" \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'Accept-Language: en-US,en;q=0.9' \
-H 'Authority: www.blackmagicdesign.com' \
-H 'Cookie: _ga=GA1.2.1849503966.1518103294; _gid=GA1.2.953840595.1518103294' \
--data-ascii "$_reqjson" \
--compressed \
"$_siteurl")"
DLAGENTS=("https::/usr/bin/curl \
-gqb '' -C - --retry 3 --retry-delay 3 \
-H Host:\ sw.blackmagicdesign.com \
-H Upgrade-Insecure-Requests:\ 1 \
-H ${_useragent_escaped} \
-H Accept:\ text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 \
-H Accept-Language:\ en-US,en;q=0.9 \
-o %o \
--compressed \
%u")
pkgname=davinci-resolve-studio
_pkgname=resolve
resolve_app_name=com.blackmagicdesign.resolve
pkgver=17.1.1
pkgrel=1
arch=('any')
url="https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion"
license=('Commercial')
depends=('glu' 'gtk2' 'gstreamer' 'libpng12' 'lib32-libpng12' 'ocl-icd' 'openssl-1.0' 'fuse2'
'opencl-driver' 'qt5-base' 'qt5-svg' 'qt5-webkit' 'qt5-webengine' 'qt5-websockets')
makedepends=('libarchive' 'xdg-user-dirs')
options=('!strip')
provides=('davinci-resolve')
install=davinci-resolve.install
if [ ${pkgname} == "davinci-resolve-studio" ]; then
# Variables for STUDIO edition
pkgdesc='Professional A/V post-production software suite from Blackmagic Design. Studio edition, requires license key or license dongle.'
_archive_name=DaVinci_Resolve_Studio_${pkgver}_Linux
sha256sums=('22a1b294565d60933577c241a6c89b9d2826c4aa3da9897ca16937ee96958a4e')
conflicts=('davinci-resolve-beta' 'davinci-resolve' 'davinci-resolve-studio-beta')
else
# Variables for FREE edition
pkgdesc='Professional A/V post-production software suite from Blackmagic Design'
_archive_name=DaVinci_Resolve_${pkgver}_Linux
sha256sums=('7c1ef07b669f8d785a41fb2cfb530b2f43749424cf35b21e6df229445b2dcd7c')
conflicts=('davinci-resolve-studio' 'davinci-resolve-beta' 'davinci-resolve-studio-beta')
fi
_archive=${_archive_name}.zip
_installer_binary=${_archive_name}.run
source=("${_archive}"::"$_srcurl")
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 -o -name 75-davincikb.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,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"
msg2 "Extracting from bundle..."
msg "Please wait, this take a while..."
cd "${srcdir}" || exit
./${_installer_binary} --appimage-extract
rm -rf ${_installer_binary}
cd squashfs-root
./installer -i -y -n -a -C "${pkgdir}/opt/${_pkgname}" "$PWD"
msg2 "Panel API..."
cd "${srcdir}/squashfs-root/share/panels"
tar xvzf dvpanel-framework-linux-x86_64.tgz
install -Dm644 libDaVinciPanelAPI.so "${pkgdir}/usr/lib/libDaVinciPanelAPI.so"
install -Dm644 libFairlightPanelAPI.so "${pkgdir}/usr/lib/libFairlightPanelAPI.so"
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
msg2 "Install launchers and configs..."
cd "${pkgdir}/opt/${_pkgname}/" || exit
install -Dm666 share/default-config.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/DaVinciControlPanelsSetup.desktop "${pkgdir}/usr/share/applications/${resolve_app_name}-Panels-Setup.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/blackmagicraw-player.desktop "${pkgdir}/usr/share/applications/blackmagicraw-player.desktop"
install -Dm644 share/blackmagicraw-speedtest.desktop "${pkgdir}/usr/share/applications/blackmagicraw-speedtest.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
# 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"
cat > ${pkgdir}/usr/lib/udev/rules.d/75-davincikb.rules <<EOF
SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="\$attr{bInterfaceNumber}"
# Editor Keyboard
SUBSYSTEM=="hidraw", KERNEL=="hidraw*", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="da0b", ENV{.LOCAL_ifNum}=="04", MODE="0666"
# Speed Editor Keyboard
SUBSYSTEM=="hidraw", KERNEL=="hidraw*", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="da0e", ENV{.LOCAL_ifNum}=="02", MODE="0666"
EOF
chmod 644 "${pkgdir}/usr/lib/udev/rules.d/"{75-davincipanel.rules,75-sdx.rules,75-davincikb.rules}
# 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..."
if [ ! "$(logname 2>&1 >/dev/null)" ]; then
_user=$(logname)
_group=$(id -g -n ${_user})
else
_user=root
_group=root
fi
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!"
}
# vim: fileencoding=utf-8 sts=4 sw=4 noet
Ich drücke die Daumen, daß der Patch für dieses SpeedDingsbums auch funktioniert...
Die Änderungen im Patch sehen zumindest "glaubwürdig" aus ;-)
//Edit:
Vor dem Bauen mit dem neuen PKGBUILD würde ich an deiner Stelle noch die Zeile mit
pkgrel=1
um Eins erhöhen (also pkgrel=2). Das erleichtert dir das Update des bestehenden Paketes und du kannst ggf. wieder ein "Downgrade" auf die jetzige, funktionierende Version -1 machen wenn du das Paket noch (ggf. im Cache) hast.