diff options
author | Doug Newgard | 2018-12-20 11:00:19 -0600 |
---|---|---|
committer | Doug Newgard | 2018-12-20 11:00:19 -0600 |
commit | 593cf931299823cafe666425b9fd415710af7a3d (patch) | |
tree | d0fc00ca5c39313614258b1f8edfecd191764f9a | |
parent | 916771fd8a96ebd223a3811e966b8cc794fd78f3 (diff) | |
download | aur-593cf931299823cafe666425b9fd415710af7a3d.tar.gz |
Use library function to get version
-rw-r--r-- | PKGBUILD | 9 | ||||
-rw-r--r-- | get_cdm_version.c | 25 |
2 files changed, 31 insertions, 3 deletions
@@ -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); +} + |