mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 13:45:10 +00:00
68 lines
3 KiB
YAML
68 lines
3 KiB
YAML
name: Builds static Parsee for a release.
|
|
on: [release, workflow_dispatch]
|
|
jobs:
|
|
compile:
|
|
runs-on: amd64-debian
|
|
container:
|
|
image: debian:12
|
|
steps:
|
|
- name: Install LMDB+OpenSSL tools
|
|
run: |
|
|
echo $(uname -a) $(env | grep container)
|
|
apt update -y
|
|
apt install -y build-essential liblmdb-dev nodejs libssl-dev git wget
|
|
- name: Clone everything
|
|
run: |
|
|
mkdir -p repos
|
|
git clone --depth=1 https://git.musl-libc.org/git/musl repos/musl
|
|
git clone --depth=1 https://github.com/openssl/openssl repos/openssl
|
|
git clone --depth=1 https://github.com/LMDB/lmdb repos/lmdb
|
|
git clone --depth=1 https://git.kappach.at/KappaChat/Cytoplasm repos/cyto
|
|
echo "PREFIX=$GITHUB_WORKSPACE/usr" >> $GITHUB_ENV
|
|
echo "PATH=$GITHUB_WORKSPACE/usr/bin:$PATH" >> $GITHUB_ENV
|
|
echo "INCLUDE_PATH=$GITHUB_WORKSPACE/usr/include" >> $GITHUB_ENV
|
|
echo "LIBRARY_PATH=$GITHUB_WORKSPACE/usr/lib" >> $GITHUB_ENV
|
|
- name: Build musl
|
|
run: |
|
|
cd repos/musl
|
|
./configure --prefix=${PREFIX}
|
|
make -j$(nproc)
|
|
make install -j$(nproc)
|
|
alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib"
|
|
- name: Build OpenSSL
|
|
run: |
|
|
alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib"
|
|
cd repos/openssl
|
|
CC=musl-gcc ./Configure -static --static --prefix=${PREFIX} no-async no-engine -DOPENSSL_NO_SECURE_MEMORY
|
|
make -j$(nproc)
|
|
make install -j$(nproc)
|
|
cp libcrypto.a ${PREFIX}/lib
|
|
cp libssl.a ${PREFIX}/lib
|
|
- name: Build LMDB
|
|
run: |
|
|
alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib"
|
|
cd repos/lmdb/libraries/liblmdb
|
|
make CC=musl-gcc
|
|
make install prefix=${PREFIX}
|
|
- name: Build Cytoplasm
|
|
run: |
|
|
alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib"
|
|
cd repos/cyto
|
|
rm configure
|
|
wget https://kappach.at/configure
|
|
chmod +x configure
|
|
./configure --cc=musl-gcc --prefix=${PREFIX} --with-lmdb
|
|
make -j$(nproc)
|
|
make install
|
|
- name: Clone/Build Parsee
|
|
run: |
|
|
git clone https://git.kappach.at/${{ github.repository}} parsee
|
|
cd parsee
|
|
alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib"
|
|
echo "all: adminify aya b64 config noavatars" > tools/Makefile
|
|
echo "%: %.c" >> tools/Makefile
|
|
echo "$(printf '\\t')musl-gcc -I ../usr/include -static -o ../$@.$(shell uname -m) $< -lm -lpthread -lssl -lCytoplasm -lssl -lcrypto -llmdb -flto -fdata-sections -ffunction-sections -s -Wl,-gc-sections -lCytoplasm" >> tools/Makefile
|
|
make CC=musl-gcc CYTO_INC=${PREFIX}/include CYTO_LIB=${PREFIX}/lib 2> /dev/null || true
|
|
musl-gcc -static -o "${PREFIX}/parsee.$(uname -m)" $(find build/ -name '*.o') -lm -lpthread -lssl -lCytoplasm -lssl -lcrypto -llmdb -flto -fdata-sections -ffunction-sections -s -Wl,-gc-sections -lCytoplasm
|
|
ls $PREFIX
|
|
|