summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Newgard2018-12-20 11:00:19 -0600
committerDoug Newgard2018-12-20 11:00:19 -0600
commit593cf931299823cafe666425b9fd415710af7a3d (patch)
treed0fc00ca5c39313614258b1f8edfecd191764f9a
parent916771fd8a96ebd223a3811e966b8cc794fd78f3 (diff)
downloadaur-593cf931299823cafe666425b9fd415710af7a3d.tar.gz
Use library function to get version
-rw-r--r--PKGBUILD9
-rw-r--r--get_cdm_version.c25
2 files changed, 31 insertions, 3 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 88843d1f9da2..211731ed1803 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -13,16 +13,19 @@ url='https://www.widevine.com/'
license=('custom')
options=('!strip')
source=("chrome-eula_text-$_license_date.html::https://www.google.com/intl/en/chrome/privacy/eula_text.html"
- "https://dl.google.com/linux/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${_chrome_ver}-1_amd64.deb")
+ "https://dl.google.com/linux/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${_chrome_ver}-1_amd64.deb"
+ get_cdm_version.c)
sha256sums=('22e323091aab9730fc9431376e63d95fe03e3df08a1ab7d913b67bd16a6c159b'
- 'efd6aa29f5d1ce80a3908ee40b0c6e71aa354ad8fcd9788b1ff6893bef92d0be')
+ 'efd6aa29f5d1ce80a3908ee40b0c6e71aa354ad8fcd9788b1ff6893bef92d0be'
+ '3fda44a5b8b222434530f27923568de1fda1eb0caa8621b56a8b2a6a2a2e3d5d')
prepare() {
bsdtar -x --strip-components 4 -f data.tar.xz opt/google/chrome/libwidevinecdm.so
+ gcc get_cdm_version.c -o get_cdm_version -ldl
}
pkgver() {
- awk 'match($0,/widevine.cdm.version\0Google\0ChromeCDM\0([0-9.]+)/,a) {print a[1];}' libwidevinecdm.so
+ ./get_cdm_version
}
package() {
diff --git a/get_cdm_version.c b/get_cdm_version.c
new file mode 100644
index 000000000000..ac77bd7cf05a
--- /dev/null
+++ b/get_cdm_version.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+
+int main(int argc, char *argv[]) {
+ void *handle;
+ const char *(*get_cdm_version)();
+
+ handle = dlopen("./libwidevinecdm.so", RTLD_LAZY);
+ if (!handle) {
+ fprintf(stderr, "%s\n", dlerror());
+ exit(EXIT_FAILURE);
+ }
+
+ get_cdm_version = dlsym(handle, "GetCdmVersion");
+ if (!get_cdm_version) {
+ fprintf(stderr, "%s\n", dlerror());
+ exit(EXIT_FAILURE);
+ }
+
+ printf("%s\n", get_cdm_version());
+ dlclose(handle);
+ exit(EXIT_SUCCESS);
+}
+