- Change most of `EC` to `VPN` in the source code, since this project will not
be only for EasyConnect
- Dehardcode
- Refactor for more than one type of Sangfor VPN
Since non-amd64 deb packages of EasyConnect are proved to exist
(https://github.com/Hagb/docker-easyconnect/issues/25#issuecomment-1233369467),
the deb package should not be assume to be amd64 and architecture
specific code should be rewritten:
- Add EC_HOST build argument to tell Dockerfile the architecture of
EasyConnect package
- Whether to install cross toolchain and qemu-user and which package
should be install, is determined by EC_HOST and the local architecture
now, more specifically by build-scripts/get-echost-names.sh (no longer
hard-code amd64 cross toolchain)
- fake-hwaddr.so should follow the architecture of the EC deb, so
fake-hwaddr/Makefile uses CC envirnoment variable instead of
hard-coded x86_64-linux-gnu-gcc as c compiler now
- qemu_args is removed now. It was used to pass LD_PRELOAD to foreign
binaries under qemu-user, but now we pass LD_PRELOAD to the qemu
wrapper and wrapper will pass the LD_PRELOAD to the simulated
binaries
https://github.com/Hagb/docker-easyconnect/issues/47#issuecomment-1189448697
Use the following programs to provide cross-platform noVNC service with
little size growth:
- busybox httpd: http service for static resources (busybox is not very
high-performance, but has already been installed)
- websockify in C: tiny websockify service
- tinyproxy with websocket support: provide http reverse proxy, used to
provide http and websockify in the same port
As an alternation, easy-novnc will be compiled from source code if chosen.
Not only fake-hwaddr.so, there will be more things to be compiled.
- The image name of building stage is hagb/docker-easyconnect:build now
- Every independent building result will be in /root/name/, which will
be an empty folder if turned off by user.