mirror of
https://github.com/antos-rde/antos.git
synced 2025-04-30 04:36:47 +02:00
Compare commits
No commits in common. "54a596872ea2302a710ecbb848d9060381bee108" and "ba5c2f70de022c19339a828cc43da762c63becb6" have entirely different histories.
54a596872e
...
ba5c2f70de
227
Jenkinsfile
vendored
227
Jenkinsfile
vendored
@ -1,5 +1,85 @@
|
|||||||
|
def build_rust_mod() {
|
||||||
|
sh '''#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
TARGET=
|
||||||
|
case "$arch" in
|
||||||
|
amd64)
|
||||||
|
TARGET="x86_64-unknown-linux-gnu"
|
||||||
|
;;
|
||||||
|
arm64)
|
||||||
|
TARGET="aarch64-unknown-linux-gnu"
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
TARGET="armv7-unknown-linux-gnueabihf"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unknown target for architecture $arch"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
mkdir -p build/$arch/
|
||||||
|
DESTDIR=$(realpath build/$arch/) \
|
||||||
|
PLATFORM=$arch \
|
||||||
|
RUST_TARGET=$TARGET \
|
||||||
|
RUSTUP_HOME=/opt/rust/rustup \
|
||||||
|
CARGO_HOME=/opt/rust/cargo \
|
||||||
|
make luafcgi
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
def build_server_and_backend() {
|
||||||
|
sh '''#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
TARGET=
|
||||||
|
case "$arch" in
|
||||||
|
amd64)
|
||||||
|
;;
|
||||||
|
arm64)
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unknown target for architecture $arch"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
mkdir -p build/$arch/
|
||||||
|
DESTDIR=$(realpath build/$arch/) \
|
||||||
|
PLATFORM=$arch \
|
||||||
|
FRONTEND_IGNORE=true \
|
||||||
|
LUAFCGI_IGNORE=true \
|
||||||
|
make clean_c all
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
def build_package() {
|
||||||
|
sh '''#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
TARGET=
|
||||||
|
case "$arch" in
|
||||||
|
amd64)
|
||||||
|
;;
|
||||||
|
arm64)
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unknown target for architecture $arch"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
mkdir -p build/$arch/
|
||||||
|
DESTDIR=$(realpath build/$arch/) \
|
||||||
|
PLATFORM=$arch \
|
||||||
|
make deb appimg
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { node { label'xsangle/ci-tools:latest' } }
|
agent { node { label'master' } }
|
||||||
options {
|
options {
|
||||||
// Limit build history with buildDiscarder option:
|
// Limit build history with buildDiscarder option:
|
||||||
// daysToKeepStr: history is only kept up to this many days.
|
// daysToKeepStr: history is only kept up to this many days.
|
||||||
@ -24,53 +104,140 @@ pipeline {
|
|||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh'''
|
sh'''
|
||||||
cd antd/luasocket && git stash || true
|
|
||||||
cd $WORKSPACE
|
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
make clean || true
|
make clean || true
|
||||||
rm -rf build/* || true
|
rm -rf build/* || true
|
||||||
mkdir build
|
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build AMD64)') {
|
stage('Build Frontend (TS)') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh'''
|
sh'''
|
||||||
DESTDIR=$(realpath build) \
|
mkdir -p build/frontend/
|
||||||
ARCH=amd64 \
|
DESTDIR=$(realpath build/frontend/) make frontend
|
||||||
RUSTUP_HOME=/opt/rust/rustup \
|
for arch in arm arm64 amd64; do
|
||||||
CARGO_HOME=/opt/rust/cargo \
|
mkdir build/$arch
|
||||||
make all deb appimg
|
cp -rf build/frontend/* build/$arch/
|
||||||
|
done
|
||||||
|
rm -rf build/frontend
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build ARM64)') {
|
stage('Build RUST MODULE AMD64') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh'''
|
script {
|
||||||
DESTDIR=$(realpath build) \
|
env.arch = 'amd64'
|
||||||
ARCH=arm64 \
|
}
|
||||||
RUSTUP_HOME=/opt/rust/rustup \
|
build_rust_mod()
|
||||||
CARGO_HOME=/opt/rust/cargo \
|
|
||||||
make all deb appimg
|
|
||||||
'''
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build ARM)') {
|
stage('Build RUST MODULE ARM64') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh'''
|
script {
|
||||||
DESTDIR=$(realpath build) \
|
env.arch = 'arm64'
|
||||||
ARCH=arm \
|
}
|
||||||
RUSTUP_HOME=/opt/rust/rustup \
|
build_rust_mod()
|
||||||
CARGO_HOME=/opt/rust/cargo \
|
|
||||||
make all deb appimg
|
|
||||||
'''
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Checking build)') {
|
stage('Build RUST MODULE ARM') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh'''
|
script {
|
||||||
./scripts/ckarch.sh build
|
env.arch = 'arm'
|
||||||
'''
|
}
|
||||||
|
build_rust_mod()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Server + backend AMD64') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'xsangle/ci-tools:latest-amd64'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.arch = 'amd64'
|
||||||
|
}
|
||||||
|
build_server_and_backend()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Server + backend ARM64') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'xsangle/ci-tools:latest-arm64'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.arch = 'arm64'
|
||||||
|
}
|
||||||
|
build_server_and_backend()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Server + backend ARM') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'xsangle/ci-tools:latest-arm'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.arch = 'arm'
|
||||||
|
}
|
||||||
|
build_server_and_backend()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build package AMD64') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.arch = 'amd64'
|
||||||
|
}
|
||||||
|
build_package()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build package ARM64') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.arch = 'arm64'
|
||||||
|
}
|
||||||
|
build_package()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build package ARM') {
|
||||||
|
agent {
|
||||||
|
node { label'workstation' }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.arch = 'arm'
|
||||||
|
}
|
||||||
|
build_package()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Archive') {
|
stage('Archive') {
|
||||||
|
84
Makefile
84
Makefile
@ -1,105 +1,76 @@
|
|||||||
|
|
||||||
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||||
TAG:=$(subst master,stable,$(subst refs/heads/,,$(shell git symbolic-ref -q HEAD)))
|
|
||||||
|
|
||||||
ARCH?=amd64
|
PLATFORM?=x86_64
|
||||||
VERSION?=2.0.0-b
|
|
||||||
|
|
||||||
RUSTUP_HOME?=/opt/rust
|
RUSTUP_HOME?=/opt/rust
|
||||||
CARGO_HOME?=/opt/rust/cargo
|
CARGO_HOME?=/opt/rust/cargo
|
||||||
DESTDIR?=$(ROOT_DIR)/build/
|
|
||||||
|
|
||||||
ifeq ('$(ARCH)','amd64')
|
|
||||||
RUST_TARGET?=x86_64-unknown-linux-gnu
|
RUST_TARGET?=x86_64-unknown-linux-gnu
|
||||||
CC_PREFIX?=
|
|
||||||
HOST?=
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ('$(ARCH)','arm64')
|
DESTDIR?=$(ROOT_DIR)/build/
|
||||||
RUST_TARGET?=aarch64-unknown-linux-gnu
|
|
||||||
CC_PREFIX?=aarch64-linux-gnu-
|
|
||||||
HOST?=--host=aarch64-linux-gnu
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ('$(ARCH)','arm')
|
|
||||||
RUST_TARGET?=armv7-unknown-linux-gnueabihf
|
|
||||||
CC_PREFIX?=arm-linux-gnueabihf-
|
|
||||||
HOST?=--host=arm-linux-gnueabihf
|
|
||||||
endif
|
|
||||||
|
|
||||||
CC:=$(CC_PREFIX)gcc
|
|
||||||
CXX:=$(CC_PREFIX)g++
|
|
||||||
BUILD_PREFIX:=/opt/www
|
BUILD_PREFIX:=/opt/www
|
||||||
INSTALL_DIR:=$(DESTDIR)/$(ARCH)/$(BUILD_PREFIX)
|
INSTALL_DIR:=$(DESTDIR)/$(BUILD_PREFIX)
|
||||||
|
|
||||||
BUILDID:=$(shell git rev-parse --short HEAD)
|
VERSION?=2.0.0
|
||||||
|
BRANCH?=b
|
||||||
|
BUILDID=$(shell git rev-parse --short HEAD)
|
||||||
|
|
||||||
VERSION_STR=$(VERSION)-$(BUILDID)
|
VERSION_STR=$(VERSION)-$(BRANCH)-$(BUILDID)
|
||||||
PKG_NAME="AntOS_${VERSION_STR}_${ARCH}"
|
PKG_NAME="AntOS_${VERSION_STR}_${PLATFORM}"
|
||||||
|
|
||||||
all: antos tar.gz
|
all: antos tar.gz
|
||||||
|
|
||||||
antos: antd backend frontend
|
antos: antd backend frontend
|
||||||
cp $(ROOT_DIR)/README.md $(INSTALL_DIR)/htdocs/os
|
|
||||||
|
|
||||||
antd: httpd plugins luasec luasocket silk luafcgi
|
antd: httpd plugins luasec luasocket silk luafcgi
|
||||||
rm $(INSTALL_DIR)/runner.ini
|
rm $(INSTALL_DIR)/runner.ini
|
||||||
cp $(ROOT_DIR)/config/*.ini $(INSTALL_DIR)/etc
|
cp $(ROOT_DIR)/config/*.ini $(INSTALL_DIR)/etc
|
||||||
rm $(INSTALL_DIR)/bin/ant-d $(INSTALL_DIR)/bin/runnerd
|
cp $(ROOT_DIR)/README.md $(INSTALL_DIR)/htdocs/os
|
||||||
@echo "Finish building Antd server"
|
@echo "Finish building Antd server"
|
||||||
|
|
||||||
httpd: clean_c
|
httpd:
|
||||||
cd $(ROOT_DIR)/antd/ant-http && libtoolize && aclocal && autoconf && automake --add-missing
|
cd $(ROOT_DIR)/antd/ant-http && libtoolize && aclocal && autoconf && automake --add-missing
|
||||||
cd $(ROOT_DIR)/antd/ant-http && ./configure $(HOST) --prefix=$(BUILD_PREFIX)
|
cd $(ROOT_DIR)/antd/ant-http && ./configure --prefix=$(BUILD_PREFIX)
|
||||||
DESTDIR=$(DESTDIR)/$(ARCH) make -C $(ROOT_DIR)/antd/ant-http install
|
make -C $(ROOT_DIR)/antd/ant-http install
|
||||||
|
|
||||||
plugins: antd-fcgi-plugin antd-tunnel-plugin antd-wvnc-plugin antd-tunnel-publishers
|
plugins: antd-fcgi-plugin antd-tunnel-plugin antd-wvnc-plugin antd-tunnel-publishers
|
||||||
@echo "Finish making plugins"
|
@echo "Finish making plugins"
|
||||||
|
|
||||||
luasec: clean_c
|
luasec:
|
||||||
@echo "Building $@"
|
@echo "Building $@"
|
||||||
lua5.3 $(ROOT_DIR)/antd/luasec/src/options.lua -g \
|
lua5.3 $(ROOT_DIR)/antd/luasec/src/options.lua -g \
|
||||||
/usr/include/openssl/ssl.h \
|
/usr/include/openssl/ssl.h \
|
||||||
> $(ROOT_DIR)/antd/luasec/src/options.c
|
> $(ROOT_DIR)/antd/luasec/src/options.c
|
||||||
CC=$(CC) \
|
|
||||||
INC_PATH=-I$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
INC_PATH=-I$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
||||||
make -C $(ROOT_DIR)/antd/luasec linux
|
make -C $(ROOT_DIR)/antd/luasec linux
|
||||||
CC=$(CC) \
|
|
||||||
INC_PATH=-I$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
INC_PATH=-I$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
||||||
DESTDIR=$(DESTDIR)/$(ARCH) \
|
DESTDIR=$(DESTDIR) \
|
||||||
LUAPATH=/opt/www/lib/lua \
|
LUAPATH=/opt/www/lib/lua \
|
||||||
LUACPATH=/opt/www/lib/lua \
|
LUACPATH=/opt/www/lib/lua \
|
||||||
make -C $(ROOT_DIR)/antd/luasec install
|
make -C $(ROOT_DIR)/antd/luasec install
|
||||||
|
|
||||||
luasocket: clean_c
|
luasocket:
|
||||||
@echo "Building $@"
|
@echo "Building $@"
|
||||||
sed -i 's/^CC_linux=/CC_linux?=/g' $(ROOT_DIR)/antd/luasocket/src/makefile
|
|
||||||
sed -i 's/^LD_linux=/LD_linux?=/g' $(ROOT_DIR)/antd/luasocket/src/makefile
|
|
||||||
CC_linux=$(CC) \
|
|
||||||
LD_linux=$(CC) \
|
|
||||||
LUAV=5.4 \
|
LUAV=5.4 \
|
||||||
LUAINC_linux=$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
LUAINC_linux=$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
||||||
LUAPREFIX_linux=$(BUILD_PREFIX) \
|
LUAPREFIX_linux=$(BUILD_PREFIX) \
|
||||||
PLAT=linux \
|
PLAT=linux \
|
||||||
make -C $(ROOT_DIR)/antd/luasocket linux
|
make -C $(ROOT_DIR)/antd/luasocket linux
|
||||||
CC_linux=$(CC) \
|
|
||||||
LD_linux=$(CC) \
|
|
||||||
LUAV=5.4 \
|
LUAV=5.4 \
|
||||||
LUAINC_linux=$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
LUAINC_linux=$(ROOT_DIR)/antd/silk/modules/lua/lua54/ \
|
||||||
LUAPREFIX_linux=$(BUILD_PREFIX) \
|
LUAPREFIX_linux=$(BUILD_PREFIX) \
|
||||||
PLAT=linux \
|
PLAT=linux \
|
||||||
DESTDIR=$(DESTDIR)/$(ARCH) make -C $(ROOT_DIR)/antd/luasocket install-unix
|
make -C $(ROOT_DIR)/antd/luasocket install-unix
|
||||||
-mkdir -p $(INSTALL_DIR)/lib/lua
|
-mkdir -p $(INSTALL_DIR)/lib/lua
|
||||||
cp -rf $(INSTALL_DIR)/lib/lua/5.4/* $(INSTALL_DIR)/lib/lua/
|
cp -rf $(INSTALL_DIR)/lib/lua/5.4/* $(INSTALL_DIR)/lib/lua/
|
||||||
cp -rf $(INSTALL_DIR)/share/lua/5.4/* $(INSTALL_DIR)/lib/lua/
|
cp -rf $(INSTALL_DIR)/share/lua/5.4/* $(INSTALL_DIR)/lib/lua/
|
||||||
rm -rf $(INSTALL_DIR)/lib/lua/5.4 $(INSTALL_DIR)/share
|
rm -rf $(INSTALL_DIR)/lib/lua/5.4 $(INSTALL_DIR)/share
|
||||||
|
|
||||||
antd-% sil%: clean_c
|
antd-% sil%: httpd
|
||||||
@echo "Building $@"
|
@echo "Building $@"
|
||||||
cd $(ROOT_DIR)/antd/$@ && libtoolize && aclocal && autoconf && automake --add-missing
|
cd $(ROOT_DIR)/antd/$@ && libtoolize && aclocal && autoconf && automake --add-missing
|
||||||
cd $(ROOT_DIR)/antd/$@ && CFLAGS="-I$(INSTALL_DIR)/include" LDFLAGS="-L$(INSTALL_DIR)/lib" \
|
cd $(ROOT_DIR)/antd/$@ && CFLAGS="-I$(INSTALL_DIR)/include" LDFLAGS="-L$(INSTALL_DIR)/lib" ./configure --prefix=$(BUILD_PREFIX)
|
||||||
./configure $(HOST) --prefix=$(BUILD_PREFIX)
|
make -C $(ROOT_DIR)/antd/$@ install
|
||||||
DESTDIR=$(DESTDIR)/$(ARCH) make -C $(ROOT_DIR)/antd/$@ install
|
|
||||||
|
|
||||||
luafcgi:
|
luafcgi:
|
||||||
ifeq ($(LUAFCGI_IGNORE),)
|
ifeq ($(LUAFCGI_IGNORE),)
|
||||||
@ -107,7 +78,6 @@ ifeq ($(LUAFCGI_IGNORE),)
|
|||||||
mkdir -p $(INSTALL_DIR)/bin
|
mkdir -p $(INSTALL_DIR)/bin
|
||||||
RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) \
|
RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) \
|
||||||
. $(CARGO_HOME)/env && \
|
. $(CARGO_HOME)/env && \
|
||||||
rustup default stable && \
|
|
||||||
rustup target add $(RUST_TARGET) && \
|
rustup target add $(RUST_TARGET) && \
|
||||||
cargo build --target=$(RUST_TARGET) --release \
|
cargo build --target=$(RUST_TARGET) --release \
|
||||||
--manifest-path=$(ROOT_DIR)/antd/luafcgi/Cargo.toml \
|
--manifest-path=$(ROOT_DIR)/antd/luafcgi/Cargo.toml \
|
||||||
@ -131,9 +101,7 @@ clean_c:
|
|||||||
clean: clean_c
|
clean: clean_c
|
||||||
@echo "Clean Rust project and output DIR"
|
@echo "Clean Rust project and output DIR"
|
||||||
RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) \
|
RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) \
|
||||||
. $(CARGO_HOME)/env && \
|
. $(CARGO_HOME)/env && cargo clean \
|
||||||
rustup default stable && \
|
|
||||||
cargo clean \
|
|
||||||
--manifest-path=$(ROOT_DIR)/antd/luafcgi/Cargo.toml \
|
--manifest-path=$(ROOT_DIR)/antd/luafcgi/Cargo.toml \
|
||||||
--config=$(ROOT_DIR)/antd/luafcgi/.cargo/config.toml
|
--config=$(ROOT_DIR)/antd/luafcgi/.cargo/config.toml
|
||||||
-rm -rf $(DESTDIR)/*
|
-rm -rf $(DESTDIR)/*
|
||||||
@ -153,15 +121,15 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
deb:
|
deb:
|
||||||
-rm $(DESTDIR)/$(ARCH)/*.deb
|
-rm $(DESTDIR)/*.deb
|
||||||
scripts/mkdeb.sh $(VERSION_STR) $(ARCH) $(DESTDIR)/$(ARCH)
|
scripts/mkdeb.sh $(VERSION_STR) $(PLATFORM) $(DESTDIR)
|
||||||
|
|
||||||
tar.gz: antos
|
tar.gz: antos
|
||||||
-rm $(DESTDIR)/$(ARCH)/$(PKG_NAME).tar.gz
|
-rm $(DESTDIR)/$(PKG_NAME).tar.gz
|
||||||
cd $(DESTDIR)/$(ARCH)/ && tar cvzf $(PKG_NAME).tar.gz opt
|
cd $(DESTDIR)/ && tar cvzf $(PKG_NAME).tar.gz opt
|
||||||
|
|
||||||
appimg:
|
appimg:
|
||||||
-rm $(DESTDIR)/$(ARCH)/*.AppImage
|
-rm $(DESTDIR)/*.AppImage
|
||||||
scripts/mkappimg.sh $(ARCH) $(VERSION_STR) $(DESTDIR)/$(ARCH) $(ROOT_DIR)/antos-64.png
|
scripts/mkappimg.sh $(PLATFORM) $(VERSION_STR) $(DESTDIR) $(ROOT_DIR)/antos-64.png
|
||||||
|
|
||||||
.PHONY: antd antos
|
.PHONY: antd antos
|
@ -1,8 +1,10 @@
|
|||||||
FROM debian:bookworm AS deploy-env
|
FROM ubuntu:jammy AS deploy-env
|
||||||
ARG tag
|
ARG tag
|
||||||
COPY deps/ /
|
COPY deps/ /
|
||||||
|
|
||||||
RUN apt-get update && apt-get --yes --no-install-recommends install libsqlite3-0 zlib1g libreadline8 wget libssl3 libvncclient1 libturbojpeg0 openssh-client tar tree
|
RUN dpkg -i /libssl1.1_1.1.1f-$(uname -m).deb
|
||||||
|
# manual install libssl1.1
|
||||||
|
RUN apt-get update && apt-get --yes --no-install-recommends install libsqlite3-0 zlib1g libreadline8 wget libvncclient1 libjpeg-turbo8 openssh-client tar tree
|
||||||
RUN apt clean && rm -rf /var/lib/apt/lists/*
|
RUN apt clean && rm -rf /var/lib/apt/lists/*
|
||||||
RUN mkdir /ulib
|
RUN mkdir /ulib
|
||||||
RUN cp -rf /lib/*-linux-*/libsqlite3*.so* /ulib
|
RUN cp -rf /lib/*-linux-*/libsqlite3*.so* /ulib
|
||||||
@ -59,7 +61,7 @@ RUN chown -R root:root /platform
|
|||||||
RUN tree /platform
|
RUN tree /platform
|
||||||
RUN ls -al /platform
|
RUN ls -al /platform
|
||||||
|
|
||||||
FROM busybox:1.36.1-glibc
|
FROM busybox:stable-glibc
|
||||||
#copy all necessary libraries
|
#copy all necessary libraries
|
||||||
COPY --from=deploy-env /ulib/ /lib/
|
COPY --from=deploy-env /ulib/ /lib/
|
||||||
COPY --from=deploy-env /bin/wget /bin/
|
COPY --from=deploy-env /bin/wget /bin/
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
FROM debian:bookworm AS deploy-env
|
FROM ubuntu:jammy AS deploy-env
|
||||||
|
|
||||||
|
# manual install libssl1.1
|
||||||
RUN apt-get update && apt-get --yes --no-install-recommends install \
|
RUN apt-get update && apt-get --yes --no-install-recommends install \
|
||||||
build-essential \
|
build-essential \
|
||||||
make \
|
make \
|
||||||
@ -16,22 +17,11 @@ RUN apt-get update && apt-get --yes --no-install-recommends install \
|
|||||||
libffi-dev \
|
libffi-dev \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
unzip \
|
unzip \
|
||||||
libturbojpeg0-dev \
|
libjpeg-turbo8-dev \
|
||||||
libvncserver-dev \
|
libvncserver-dev \
|
||||||
lua5.3
|
lua5.3
|
||||||
|
|
||||||
RUN RUSTUP_HOME=/opt/rust/rustup CARGO_HOME=/opt/rust/cargo bash -c 'curl https://sh.rustup.rs -sSf | sh -s -- -y'
|
RUN RUSTUP_HOME=/opt/rust/rustup CARGO_HOME=/opt/rust/cargo bash -c 'curl https://sh.rustup.rs -sSf | sh -s -- -y'
|
||||||
RUN chmod -R 777 /opt/rust/
|
RUN chmod -R 777 /opt/rust/
|
||||||
RUN apt-get update && apt-get --yes --no-install-recommends install \
|
RUN apt-get update && apt-get --yes --no-install-recommends install \
|
||||||
nodejs npm git wget libfuse2 fuse3
|
nodejs npm git wget libfuse2 fuse3
|
||||||
|
|
||||||
# cross build support
|
|
||||||
RUN dpkg --add-architecture armhf
|
|
||||||
RUN dpkg --add-architecture arm64
|
|
||||||
RUN apt-get update && apt-get --yes --no-install-recommends install \
|
|
||||||
crossbuild-essential-armhf \
|
|
||||||
crossbuild-essential-armhf \
|
|
||||||
libsqlite3-0:arm64 zlib1g:arm64 libreadline8:arm64 libssl3:arm64 \
|
|
||||||
libffi-dev:arm64 libturbojpeg0:arm64 libvncclient1:arm64 \
|
|
||||||
libsqlite3-0:armhf zlib1g:armhf libreadline8:armhf libssl3:armhf \
|
|
||||||
libffi-dev:armhf libturbojpeg0:armhf libvncclient1:armhf
|
|
@ -1,69 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
TARGET=$1
|
|
||||||
|
|
||||||
[[ -z "$TARGET" ]] && echo "No taget provided" && exit 1
|
|
||||||
[[ ! -d "$TARGET" ]] && echo "Target is not a directory" && exit 1
|
|
||||||
|
|
||||||
DIRS=$(ls "$TARGET")
|
|
||||||
EXIT_CODE=0
|
|
||||||
|
|
||||||
BLUE="\e[1;34m"
|
|
||||||
NC="\e[0m"
|
|
||||||
CERR="\e[1;31m"
|
|
||||||
COK="\e[1;32m"
|
|
||||||
GRAY="\e[90m"
|
|
||||||
YELLOW="\e[93m"
|
|
||||||
|
|
||||||
check_file() {
|
|
||||||
FILE=$1
|
|
||||||
LD=$2
|
|
||||||
echo -n -e "${YELLOW}Checking $FILE:....................${NC}"
|
|
||||||
if ! file "$(realpath "$FILE")" | grep "$LD" > /dev/null ; then
|
|
||||||
echo -e "${CERR}FAILED${NC}"
|
|
||||||
EXIT_CODE=1
|
|
||||||
echo -e -n "${GRAY}"
|
|
||||||
file "$(realpath "$FILE")"
|
|
||||||
echo -e "${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${COK}OK${NC}"
|
|
||||||
echo -e -n "${GRAY}"
|
|
||||||
readelf -d "$FILE" | grep NEEDED || true
|
|
||||||
echo -e "${NC}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check() {
|
|
||||||
ARCH=$1
|
|
||||||
LD=$2
|
|
||||||
ROOT=$TARGET/$ARCH/opt/www
|
|
||||||
echo -e "${BLUE}Checking: $TARGET/$ARCH${NC}"
|
|
||||||
# check bin directory
|
|
||||||
for file in "$ROOT"/bin/*; do
|
|
||||||
check_file "$file" "$LD"
|
|
||||||
done
|
|
||||||
# check for libraries
|
|
||||||
libs=$(find "$ROOT"/lib/ -name "*.so*")
|
|
||||||
for lib in $libs; do
|
|
||||||
check_file "$lib" "$LD"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
for dir in $DIRS; do
|
|
||||||
case $dir in
|
|
||||||
arm64)
|
|
||||||
check "$dir" "ARM aarch64"
|
|
||||||
;;
|
|
||||||
arm)
|
|
||||||
check "$dir" "ARM, EABI"
|
|
||||||
;;
|
|
||||||
amd64)
|
|
||||||
check "$dir" "x86-64"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unkown architecture: $dir, ignore it"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
exit $EXIT_CODE
|
|
@ -6,22 +6,25 @@ arch=$1
|
|||||||
tag=$2
|
tag=$2
|
||||||
DIR=$3
|
DIR=$3
|
||||||
logo=$4
|
logo=$4
|
||||||
[ -z "$arch" ] && echo "1. No architecture provided" && exit 1
|
[ -z $arch ] && echo "1. No architecture provided" && exit 1
|
||||||
[ -z "$tag" ] && echo "2. No version provided" && exit 1
|
[ -z $tag ] && echo "2. No version provided" && exit 1
|
||||||
[ -z "$DIR" ] && echo "3. No input dir provided" && exit 1
|
[ -z $DIR ] && echo "3. No input dir provided" && exit 1
|
||||||
[ -z "$logo" ] && echo "4. No logo file provided" && exit 1
|
[ -z $logo ] && echo "4. No logo file provided" && exit 1
|
||||||
# download the appimagetools
|
# download the appimagetools
|
||||||
echo "Downloading the appimage tools"
|
echo "Downloading the appimage tools"
|
||||||
archname=x86_64
|
archname=x86_64
|
||||||
case $arch in
|
case $arch in
|
||||||
amd64|x86_64)
|
amd64|x86_64)
|
||||||
archname=x86_64
|
archname=x86_64
|
||||||
|
suffix=x86_64
|
||||||
;;
|
;;
|
||||||
aarch64|arm64)
|
aarch64|arm64)
|
||||||
archname=aarch64
|
archname=aarch64
|
||||||
|
suffix=aarch64
|
||||||
;;
|
;;
|
||||||
armv7l|arm)
|
armv7l|arm)
|
||||||
archname=armhf
|
archname=armhf
|
||||||
|
suffix=armv7l
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unkown architecture"
|
echo "Unkown architecture"
|
||||||
@ -43,7 +46,7 @@ echo "Building app image for $arch"
|
|||||||
|
|
||||||
mkdir -p "$APP_DIR"
|
mkdir -p "$APP_DIR"
|
||||||
|
|
||||||
cp -rf "$DIR/opt" "$APP_DIR"
|
cp -rf $DIR/opt "$APP_DIR"
|
||||||
rm -rf $APP_DIR/opt/www/include || true
|
rm -rf $APP_DIR/opt/www/include || true
|
||||||
rm -rf $APP_DIR/opt/www/etc/* || true
|
rm -rf $APP_DIR/opt/www/etc/* || true
|
||||||
|
|
||||||
@ -183,6 +186,6 @@ Categories=Utility;
|
|||||||
Terminal=true
|
Terminal=true
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cp "$logo" "$APP_DIR/antos.png"
|
cp $logo $APP_DIR/antos.png
|
||||||
|
|
||||||
$APP_IMG --runtime-file $APP_RUNT $APP_DIR "$DIR/$NAME.AppImage"
|
$APP_IMG --runtime-file $APP_RUNT $APP_DIR $DIR/$NAME.AppImage
|
@ -42,23 +42,23 @@ NAME="AntOS_${TAG}_${archname}"
|
|||||||
FILE="$NAME.deb"
|
FILE="$NAME.deb"
|
||||||
TMP="/tmp/$NAME"
|
TMP="/tmp/$NAME"
|
||||||
[ -d "$TMP" ] && rm -rf "$TMP"
|
[ -d "$TMP" ] && rm -rf "$TMP"
|
||||||
mkdir -p "$TMP"
|
mkdir -p $TMP
|
||||||
|
|
||||||
echo "Copying binaries of version $TAG, architecture $ARCH to $TMP"
|
echo "Copying binaries of version $TAG, architecture $ARCH to $TMP"
|
||||||
cp "$DIR/opt" "$TMP/" -rf
|
cp $DIR/opt $TMP/ -rf
|
||||||
cd "$TMP"
|
cd $TMP
|
||||||
mkdir DEBIAN
|
mkdir DEBIAN
|
||||||
|
|
||||||
cat << EOF >> DEBIAN/control
|
cat << EOF >> DEBIAN/control
|
||||||
Package: AntOS
|
Package: AntOS
|
||||||
Version: $TAG
|
Version: $TAG
|
||||||
Architecture: $archname
|
Architecture: $archname
|
||||||
Depends: libsqlite3-0,zlib1g,libreadline8,libssl3,libvncclient1,libjpeg-turbo8 | libturbojpeg0 | libjpeg62-turbo
|
Depends: libsqlite3-0,zlib1g,libreadline8,libssl3,libvncclient1,libjpeg-turbo8 | libturbojpeg0
|
||||||
Maintainer: Dany LE <dany@iohub.dev>
|
Maintainer: Dany LE <dany@iohub.dev>
|
||||||
Description: All-in-one AntOS web-based remote desktop environment
|
Description: All-in-one AntOS web-based remote desktop environment
|
||||||
EOF
|
EOF
|
||||||
cat DEBIAN/control
|
cat DEBIAN/control
|
||||||
cd ..
|
cd ..
|
||||||
dpkg-deb --build "$TMP"
|
dpkg-deb --build $TMP
|
||||||
mv "$FILE" "$DIR/"
|
mv "$FILE" "$DIR/"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user