diff options
author | Konarev Alexander | 2022-03-13 19:49:17 +0300 |
---|---|---|
committer | Konarev Alexander | 2022-03-13 19:49:17 +0300 |
commit | 5739ca849c1ba9fa462896b79f28a6175d6aeb5d (patch) | |
tree | 790ed5074e212b827e01597789d752e6462bcce1 | |
download | aur-5739ca849c1ba9fa462896b79f28a6175d6aeb5d.tar.gz |
First commit
-rwxr-xr-x | .SRCINFO | 22 | ||||
-rw-r--r-- | 0001-patch.patch | 81 | ||||
-rwxr-xr-x | PKGBUILD | 69 | ||||
-rw-r--r-- | download.py | 68 |
4 files changed, 240 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100755 index 000000000000..24ae9a720ca0 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = aksusbd-bin + pkgdesc = Sentinel AKSUSB daemon supporting Sentinel HASP, HASP HL, HASP4 and Hardlock keys. + pkgver = 8.31 + pkgrel = 1 + url = https://supportportal.thalesgroup.com + arch = i686 + arch = x86_64 + license = custom + makedepends = libarchive + makedepends = python + makedepends = python-pip + makedepends = firefox + makedepends = geckodriver + conflicts = ehaspd + conflicts = aksusbd + options = !strip + source = 0001-patch.patch + source = download.py + sha256sums = 6fcb6c4fcba1d01c1b3e68258e95297c323b2cbe8ee75c0a14ac0e9006926312 + sha256sums = a3f8107436cb6242b040d2c761653685770bbbdb21e99f76daeb3629e2b95757 + +pkgname = aksusbd-bin diff --git a/0001-patch.patch b/0001-patch.patch new file mode 100644 index 000000000000..b7bbaffe8990 --- /dev/null +++ b/0001-patch.patch @@ -0,0 +1,81 @@ +From f32bd3f04ae2ca0952d7d4912407e99f06ba608f Mon Sep 17 00:00:00 2001 +From: Konarev Alexander <avkonarev@gmail.com> +Date: Sun, 13 Mar 2022 13:37:24 +0300 +Subject: [PATCH] patch + +--- + etc/udev/rules.d/80-hasp.rules | 4 ++-- + var/hasplm/init/aksusbd.service | 2 +- + var/hasplm/init/aksusbd_x86_64.service | 2 +- + var/hasplm/init/hasplmd.service | 2 +- + var/hasplm/init/hasplmd_x86_64.service | 2 +- + 5 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/etc/udev/rules.d/80-hasp.rules b/etc/udev/rules.d/80-hasp.rules +index b929049..8e81959 100644 +--- a/etc/udev/rules.d/80-hasp.rules ++++ b/etc/udev/rules.d/80-hasp.rules +@@ -1,6 +1,6 @@ + # HASP rules +-ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0001", MODE="664", ENV{HASP}="1", SYMLINK+="aks/hasp/%k", RUN+="/usr/sbin/aksusbd_x86_64 -c $root/aks/hasp/$kernel" +-ACTION=="remove", ENV{HASP}=="1", RUN+="/usr/sbin/aksusbd_x86_64 -r $root/aks/hasp/$kernel" ++ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0001", MODE="664", ENV{HASP}="1", SYMLINK+="aks/hasp/%k", RUN+="/usr/bin/aksusbd_x86_64 -c $root/aks/hasp/$kernel" ++ACTION=="remove", ENV{HASP}=="1", RUN+="/usr/bin/aksusbd_x86_64 -r $root/aks/hasp/$kernel" + + # SENTINEL rules + ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0003", KERNEL!="hiddev*", MODE="666", GROUP="plugdev", ENV{SENTINELHID}="1", SYMLINK+="aks/sentinelhid/%k" +diff --git a/var/hasplm/init/aksusbd.service b/var/hasplm/init/aksusbd.service +index 14e30da..93cebd1 100644 +--- a/var/hasplm/init/aksusbd.service ++++ b/var/hasplm/init/aksusbd.service +@@ -5,7 +5,7 @@ Requires=hasplmd.service + + [Service] + Type=forking +-ExecStart=/usr/sbin/aksusbd ++ExecStart=/usr/bin/aksusbd + + [Install] + WantedBy=multi-user.target +diff --git a/var/hasplm/init/aksusbd_x86_64.service b/var/hasplm/init/aksusbd_x86_64.service +index 0298baf..2c4d4b4 100644 +--- a/var/hasplm/init/aksusbd_x86_64.service ++++ b/var/hasplm/init/aksusbd_x86_64.service +@@ -5,7 +5,7 @@ Requires=hasplmd.service + + [Service] + Type=forking +-ExecStart=/usr/sbin/aksusbd_x86_64 ++ExecStart=/usr/bin/aksusbd_x86_64 + + [Install] + WantedBy=multi-user.target +diff --git a/var/hasplm/init/hasplmd.service b/var/hasplm/init/hasplmd.service +index 7564492..4de88c0 100644 +--- a/var/hasplm/init/hasplmd.service ++++ b/var/hasplm/init/hasplmd.service +@@ -5,7 +5,7 @@ After=aksusbd.service + + [Service] + Type=forking +-ExecStart=/usr/sbin/hasplmd -s ++ExecStart=/usr/bin/hasplmd -s + + [Install] + WantedBy=multi-user.target +diff --git a/var/hasplm/init/hasplmd_x86_64.service b/var/hasplm/init/hasplmd_x86_64.service +index 9961c5c..78900c4 100644 +--- a/var/hasplm/init/hasplmd_x86_64.service ++++ b/var/hasplm/init/hasplmd_x86_64.service +@@ -5,7 +5,7 @@ After=aksusbd.service + + [Service] + Type=forking +-ExecStart=/usr/sbin/hasplmd_x86_64 -s ++ExecStart=/usr/bin/hasplmd_x86_64 -s + + [Install] + WantedBy=multi-user.target +-- +2.35.1 + diff --git a/PKGBUILD b/PKGBUILD new file mode 100755 index 000000000000..bcf144ea26b1 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,69 @@ +# $Id$ +# Maintainer: Alexander Konarev (avkonarev) <AVKonarev@gmail.com> + +pkgname=aksusbd-bin +pkgver=8.31 +pkgrel=1 +pkgdesc="Sentinel AKSUSB daemon supporting Sentinel HASP, HASP HL, HASP4 and Hardlock keys." +arch=('i686' 'x86_64') +url="https://supportportal.thalesgroup.com" +license=('custom') + +_pkgname=aksusbd +_ldk_filename="Sentinel_LDK_Linux_Run-time_Installer_script" + +source=( + "0001-patch.patch" + "download.py") +sha256sums=('6fcb6c4fcba1d01c1b3e68258e95297c323b2cbe8ee75c0a14ac0e9006926312' + 'a3f8107436cb6242b040d2c761653685770bbbdb21e99f76daeb3629e2b95757') +makedepends=('libarchive' + 'python' + 'python-pip' + 'firefox' + 'geckodriver') + +conflicts=('ehaspd' 'aksusbd') +options=('!strip') + + +prepare(){ + cd $srcdir + python -m venv venv + pip install selenium + python download.py + + tar -xvzf ${_ldk_filename}.tar.gz + tar -xvzf ${_ldk_filename}/aksusbd-${pkgver}.${pkgrel}.tar.gz + + # Extract RPM into $srcdir: + bsdtar -xvf ${_pkgname}-${pkgver}.${pkgrel}/pkg/${_pkgname}-${pkgver}-${pkgrel}.${CARCH}.rpm + + patch -p1 < 0001-patch.patch +} + +package() { + cd $srcdir + if [ "${CARCH}" == "x86_64" ]; then + arch_suffix=_${CARCH} + fi + + # Binaries: + install -dm755 ${pkgdir}/usr/bin + install -Dm755 usr/sbin/{aksusbd,hasplmd}${arch_suffix} ${pkgdir}/usr/bin/ + + # udev rules: + install -dm755 ${pkgdir}/usr/lib/udev/rules.d + install -m644 etc/udev/rules.d/* ${pkgdir}/usr/lib/udev/rules.d/ + + # systemd service + install -dm755 ${pkgdir}/usr/lib/systemd/system/ + install -m644 var/hasplm/init/aksusbd${arch_suffix}.service ${pkgdir}/usr/lib/systemd/system/aksusbd.service + install -m644 var/hasplm/init/hasplmd${arch_suffix}.service ${pkgdir}/usr/lib/systemd/system/hasplmd.service + + # Readme.html: + install -dm755 ${pkgdir}/usr/share/${_pkgname}/Readme + cp -R ${_ldk_filename}/Readme_HTML5/* ${pkgdir}/usr/share/${_pkgname}/Readme/ + chmod -R 644 ${pkgdir}/usr/share/${_pkgname}/Readme/* + +} diff --git a/download.py b/download.py new file mode 100644 index 000000000000..3ba9b7a087b4 --- /dev/null +++ b/download.py @@ -0,0 +1,68 @@ +import os +import sys +import glob +from time import sleep +from selenium import webdriver +from selenium.webdriver.common.by import By + + +def humansize(nbytes): + suffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'] + i = 0 + while nbytes >= 1024 and i < len(suffixes)-1: + nbytes /= 1024. + i += 1 + f = ('%.2f' % nbytes).rstrip('0').rstrip('.') + return '%s %s' % (f, suffixes[i]) + + +def message(msg): + bar = "\u2588" + sys.stdout.write(bar+"\r"+msg) + # sys.stdout.flush() + + +def wait_downloading(): + timeout_start = 60 + timeout_download = 60*5 + for wait_start in range(timeout_start-1): + if len(glob.glob(f'{os.getcwd()}/*.part')) > 0: + for wait_download in range(timeout_download-1): + tmpfiles = glob.glob(f'{os.getcwd()}/*.part') + if len(tmpfiles) > 0: + filesize = os.path.getsize(tmpfiles[0]) + message(f"Downloading file: {humansize(filesize)}") + else: + print("Loading is complete") + return + sleep(1) + else: + if wait_download >= timeout_download: + print("Download interrupted by timeout") + return + sleep(1) + + if wait_start >= timeout_start: + print("Waiting for download interrupted by timeout") + + +options = webdriver.FirefoxOptions() +options.headless = True +options.set_preference("browser.download.folderList", 2) +options.set_preference("browser.download.manager.showWhenStarting", False) +options.set_preference("browser.download.dir", os.getcwd()) +options.set_preference( + "browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") + +browser = webdriver.Firefox(options=options) +browser.implicitly_wait(60) + +browser.get( + 'https://supportportal.gemalto.com/csm?id=kb_article_view&sysparm_article=KB0018315#') +browser.find_element(By.LINK_TEXT, "DOW0003342").click() +sleep(10) +browser.find_element(By.CSS_SELECTOR, ".btn-success").click() + +wait_downloading() + +browser.quit() |