summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 33af2df05731f75793260a0ff13bf3c27726eba3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Maintainer: YidaozhanYa <yidaozhan_ya@outlook.com>
# Maintainer: YidaozhanYa <yidaozhan_ya@outlook.com>
pkgname=com.seewo.easicamera
pkgver=2.0.0.670
pkgrel=1
pkgdesc="Seewo EasiCamera 希沃视频展台,展示助力课堂"
arch=('x86_64')
url="https://e.seewo.com/product/EasiCamera"
license=('custom')
depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'libnotify' 'libxss' 'libxtst' 'openssl' 'xdg-utils' 'electron8-bin' 'ffmpeg' 'curl' 'jsoncpp' 'libidn2' 'systemd'
'python37')
makedepends=('asar')
options=('!strip' '!emptydirs')
install=${pkgname}.install
source=("EasiCamera.deb::http://static.cvte.com/file/myou/uploads/android_rom/698ddad103d2a5263acb330fc7a4983550ddbe9a/EasiCamera_2.0.0.670-f877c.deb")
sha256sums=('56e69eca3ac85de02f083394d306ee56936e0a952350a135f3739b12864db957')

package(){
	tar xf "${srcdir}/data.tar.xz" -C "${pkgdir}"

	mkdir -p "${pkgdir}/usr/share/applications"

	APP_ROOT="${pkgdir}/opt/apps/${pkgname}/files"
	LIBS_DIR="${APP_ROOT}/resources/public/lib"

	# 安装 Python 虚拟环境
	python3.7 -m venv "${APP_ROOT}/env"
	"${APP_ROOT}/env/bin/pip3" install paddlepaddle==1.8.5 paddleocr==1.1.1 protobuf==3.20.0 pillow flask flask-bootstrap pyspellchecker wordninja

	# 剥离 electron
	rm -rf "${APP_ROOT}/locales"
	rm -rf "${APP_ROOT}/swiftshader"
	rm "${APP_ROOT}/chrome_"*".pak"
	rm "${APP_ROOT}/chrome-sandbox"
	rm "${APP_ROOT}/crashpad_handler"
	rm "${APP_ROOT}/icudtl.dat"
	rm "${APP_ROOT}/libEGL.so"
	rm "${APP_ROOT}/libffmpeg.so"
	rm "${APP_ROOT}/libGLESv2.so"
	rm "${APP_ROOT}/libvk_swiftshader.so"
	rm "${APP_ROOT}/LICENSE"*
	rm "${APP_ROOT}/resources.pak"
	rm "${APP_ROOT}/snapshot_blob.bin"
	rm "${APP_ROOT}/v8_context_snapshot.bin"
	rm "${APP_ROOT}/vk_swiftshader_icd.json"
	rm "${APP_ROOT}/easicamera" # 1! 5!

	# 剥离动态链接库
	rm "${LIBS_DIR}/libcrypto"*
	rm "${LIBS_DIR}/libcurl"*
	rm "${LIBS_DIR}/libidn2"*
	rm "${LIBS_DIR}/libjsoncpp"*
	rm "${LIBS_DIR}/libssl"*

	# systemd 相关
	install -D "${APP_ROOT}/seewo-hid.rules" "${pkgdir}/usr/lib/udev/rules.d/51-seewo-hid.rules"
	sed -i "s#/opt/apps/com.seewo.easicamera/files/easicamera#/usr/bin/electron8 ${APP_ROOT}/resources/app.asar#" "${APP_ROOT}/com.cvte.seewo.easicamera.service"
	install -D "${APP_ROOT}/com.cvte.seewo.easicamera.service" "${pkgdir}/usr/lib/systemd/system/easicamera.service"
	mkdir -p "${pkgdir}/etc/systemd/system/multi-user.target.wants"
	ln -sf "/usr/lib/systemd/system/easicamera.service" "${pkgdir}/etc/systemd/system/multi-user.target.wants/easicamera.service"

	# 更改 electron 中 python 路径
	mkdir -p "/tmp/asar_extract"
	asar e "${APP_ROOT}/resources/app.asar" "/tmp/asar_extract"
	sed -i 's#/usr/bin/python3#/opt/apps/com.seewo.easicamera/files/env/bin/python3#' "/tmp/asar_extract/main.prod.js"
	asar p "/tmp/asar_extract" "/tmp/app.asar"
	mv "/tmp/app.asar"  "${APP_ROOT}/resources/app.asar"

	pushd "${APP_ROOT}/resources/public/ocr-service"
	rm -rf "__pycache__"
	rm -rf "tools/__pycache__"
	rm -rf "tools/infer/__pycache__"
	popd

	# 编辑启动脚本
	STARTUP_SCRIPT="${APP_ROOT}/${pkgname}.sh"
	sed -i 's#cp \$appPath/entries/applications/\$appid\.desktop \$desktopPath#printf "skip copy desktop icon"#' "${STARTUP_SCRIPT}"
	sed -i 's#\$appPath/files/easicamera#/usr/bin/electron8 /opt/apps/com.seewo.easicamera/files/resources/app.asar#' "${STARTUP_SCRIPT}"
	sed -i "1i\source /opt/apps/com.seewo.easicamera/files/env/bin/activate" "${APP_ROOT}/${pkgname}.sh"
	# sed "1i\export NODE_OPTIONS=--openssl-legacy-provider" "${APP_ROOT}/${pkgname}.sh"
	sed -i "1i\#!/bin/bash" "${APP_ROOT}/${pkgname}.sh"

	cp "${pkgdir}/opt/apps/${pkgname}/entries/applications/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"

}