@@ -23,15 +23,15 @@ RUN apt-get update && \ | |||
# more recent versions of boost that the system CMake doesn't now about. | |||
# I chose a bloody new boost, so I need to use the latest RC1 (at the time of writing) | |||
# EDIT: actually we can get rid of this block, Ubuntu 22.04 has a recent enough version already | |||
#RUN wget https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1.tar.gz && \ | |||
# tar -zxf cmake-3.24.1.tar.gz && \ | |||
# cd cmake-3.24.1 && \ | |||
#RUN wget https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7.tar.gz && \ | |||
# tar -zxf cmake-3.31.7.tar.gz && \ | |||
# cd cmake-3.31.7 && \ | |||
# ./bootstrap && \ | |||
# make -j $(nproc) && \ | |||
# make install && \ | |||
# cd .. && \ | |||
# rm -rf cmake-3.24.1 && \ | |||
# rm -rf cmake-3.24.1.tar.gz | |||
# rm -rf cmake-3.31.7 && \ | |||
# rm -rf cmake-3.31.7.tar.gz | |||
RUN sudo apt-get update && \ | |||
sudo apt-get install -y cmake |
@@ -34,7 +34,7 @@ build: ## build all packages | |||
make -C v8pp build | |||
make -C vivid build | |||
make -C starcry build | |||
make -C msxsaver | |||
make -C msxsaver build | |||
prepare: ## prepare and publish build container | |||
sudo chown trigen:trigen . -R | |||
@@ -44,6 +44,11 @@ prepare: ## prepare and publish build container | |||
publish: ## publish build deb packages | |||
. env.sh; make -C apt-publisher build | |||
ci_all: # run all CI | |||
make prepare | |||
make build | |||
make publish | |||
ubuntu1804: | |||
docker build . -f Dockerfile-ubuntu1804 -t rayburgemeestre/build-ubuntu:18.04 | |||
@@ -33,7 +33,7 @@ apt-ubuntu2204-pt2: | |||
apt-ubuntu2404: | |||
wget -c $$SECRET_URL 1>/dev/null 2>/dev/null | |||
tar -zxvf *secret.tar.gz | |||
tar -zxvf *secret.tar.gz || true | |||
make prepare-packages-ubuntu2404 | |||
make update-packages-ubuntu2404 | |||
@@ -186,7 +186,7 @@ update-packages-ubuntu2204-rsync: | |||
update-packages-ubuntu2404: | |||
docker pull rayburgemeestre/apt-ubuntu:22.04 | |||
docker run -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:24.04 /bin/sh -c "reprepro -b /repo includedeb noble packages/*.deb" | |||
docker run -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:24.04 /bin/sh -c "find packages -type f -name '*.deb' | xargs -n 1 reprepro -b /repo includedeb noble " | |||
docker run -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:24.04 /bin/sh -c "reprepro -b /repo list noble" | |||
# echo produce artifact for debugging | |||
tar -czf repo.tar.gz repo |
@@ -10,7 +10,9 @@ cppse-starcry_$(VERSION)_amd64.deb: | |||
ubuntu2404: | |||
git clone --recursive https://github.com/rayburgemeestre/starcry || true | |||
pushd starcry && \ | |||
git pull --rebase && \ | |||
git fetch --all && \ | |||
git rebase origin/master && \ | |||
git submodule update --init --recursive && \ | |||
make clean && \ | |||
make all && \ | |||
make build-image && \ |
@@ -1,7 +1,8 @@ | |||
SHELL:=/bin/bash | |||
VERSION:=10.0.139.9 | |||
#VERSION:=11.9.169.4 | |||
VERSION:=13.0.245.25 | |||
#VERSION:=13.0.245.25 | |||
build: cppse-v8_$(VERSION)_amd64.deb | |||
@@ -36,34 +37,38 @@ cppse-v8_$(VERSION)_amd64.deb: | |||
# # also packages v8pp for now | |||
# make fpm_package | |||
# bash ../ubuntu2004.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||
ubuntu2204: | |||
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true | |||
#git clone -b v1.8.1 https://github.com/pmed/v8pp || true , next version 1.8.2, will probably contain the fix for clang-14 as well. for now.. | |||
git clone -b master https://github.com/pmed/v8pp # ..we'll use master. | |||
bash ../ubuntu2204.sh make impl # prepares packaging as well | |||
make fpm_package | |||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||
# | |||
#ubuntu2204: | |||
# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true | |||
# #git clone -b v1.8.1 https://github.com/pmed/v8pp || true , next version 1.8.2, will probably contain the fix for clang-14 as well. for now.. | |||
# git clone -b master https://github.com/pmed/v8pp # ..we'll use master. | |||
# bash ../ubuntu2204.sh make impl # prepares packaging as well | |||
# make fpm_package | |||
# bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||
ubuntu2404: | |||
rm -rfv depot_tools | |||
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true | |||
#git clone -b v1.8.1 https://github.com/pmed/v8pp || true , next version 1.8.2, will probably contain the fix for clang-14 as well. for now.. | |||
git clone -b master https://github.com/pmed/v8pp || true # ..we'll use master. | |||
bash ../ubuntu2404.sh make impl # prepares packaging as well | |||
#git clone -b master https://github.com/pmed/v8pp || true # ..we'll use master. | |||
git clone -b v2.1.1 https://github.com/pmed/v8pp || true # ..we'll use master. | |||
make impl1 # v8 only, doesn't deal with docker rootless very well | |||
# no v8pp anymore: bash ../ubuntu2404.sh make impl2 # prepares packaging as well | |||
make fpm_package | |||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||
impl: | |||
impl1: | |||
# see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | |||
git config --global --add safe.directory '*' | |||
switch-to-latest-clang | |||
apt-get update | |||
#git config --global --add safe.directory '*' | |||
#switch-to-latest-clang | |||
#apt-get update | |||
#apt-get install pkg-config python2.7 -y | |||
#cp -prv /usr/bin/python2.7 /usr/bin/python # stupid depot tool scripts | |||
#cp -prv /usr/bin/python2.7 /usr/bin/python2 # stupid depot tool scripts | |||
./build-v8.sh | |||
make prepare-package-v8 | |||
impl2: | |||
./build-v8pp.sh # basically only produces the v8pp/config.hpp (from config.hpp.in) | |||
make prepare-package-v8pp | |||
@@ -88,18 +93,18 @@ impl: | |||
prepare-package-v8: | |||
rm -rf out | |||
rm -rf v8pp_*_amd64.deb | |||
mkdir -p out/opt/cppse/build/v8pp/lib | |||
mkdir -p out/opt/cppse/build/v8pp/include | |||
cp -prv v8/out/x64.release/obj/libv8_monolith.a out/opt/cppse/build/v8pp/lib | |||
cp -prv v8/include out/opt/cppse/build/v8pp/include/v8 | |||
mkdir -p out/opt/cppse/build/v8/lib | |||
mkdir -p out/opt/cppse/build/v8/include | |||
cp -prv v8/out/x64.release/obj/libv8_monolith.a out/opt/cppse/build/v8/lib | |||
cp -prv v8/include out/opt/cppse/build/v8/include/v8 | |||
prepare-package-v8pp: | |||
ls -alh v8pp/v8pp/config.hpp* || true | |||
cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/ | |||
# no v8pp anymore: ls -alh v8pp/v8pp/config.hpp* || true | |||
# no v8pp anymore: cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/ | |||
echo no-op | |||
fpm_package: | |||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v $(VERSION) -s dir -t deb -n cppse-v8 --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "v8pp - build dependency" --url "https://github.com/rayburgemeestre/v8pp" --deb-generate-changes -C /src/out | |||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v $(VERSION) -s dir -t deb -n cppse-v8 --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "v8 - build dependency" --url "https://github.com/rayburgemeestre/v8pp" --deb-generate-changes -C /src/out | |||
clean: | |||
rm -rf v8pp |
@@ -1,9 +1,7 @@ | |||
#!/bin/bash | |||
set -ex | |||
# I guess now we have to install ninja ourselves.. sigh.. | |||
git clone https://github.com/ninja-build/ninja.git | |||
git clone https://github.com/ninja-build/ninja.git || true | |||
pushd ninja | |||
git checkout v1.11.1 | |||
@@ -20,7 +18,9 @@ export PATH=`pwd`/depot_tools:"$PATH" # depot tools available now (used to incl | |||
apt-get install python3-pip -y | |||
pip3 install httplib2 --upgrade --break-system-packages | |||
fetch v8 | |||
fetch v8 # || gclient sync | |||
# fetch v8 || gclient sync | |||
cd v8 # if this fails, exit! hence the set -ex | |||
@@ -33,9 +33,29 @@ cd v8 # if this fails, exit! hence the set -ex | |||
#gclient sync -r 7.2.1 # stupid test | |||
#gclient sync -r 8.2.297.1 # https://github.com/pmed/v8-nuget/ | |||
#gclient sync -r 9.3.345.3 # https://github.com/pmed/v8-nuget/ | |||
#gclient sync -r 10.0.139.9 # https://github.com/pmed/v8-nuget/ | |||
gclient sync -r 10.0.139.9 # https://github.com/pmed/v8-nuget/ | |||
#gclient sync -r 11.9.169.4 # https://github.com/pmed/v8-nuget/ | |||
gclient sync -r 13.0.245.25 | |||
#gclient sync -r 13.0.245.25 | |||
# N/m couldn't get this to work, let's just not build inside docker for v8 | |||
# # patch for a bug w/r/t uids on files | |||
# # # see: https://superuser.com/a/1435438 | |||
# # | |||
# #e.g. | |||
# # | |||
# #tar: ./usr/lib: Cannot change ownership to uid 376730, gid 89939: Invalid argument | |||
# #tar: ./usr/bin: Cannot change ownership to uid 376730, gid 89939: Invalid argument | |||
# #... | |||
# # subprocess.CalledProcessError: Command '['tar', 'mxf', '/home/trigen/projects/build-config/v8pp/v8/build/linux/debian_bullseye_i386-sysroot/debian_bullseye_i386_sysroot.tar.xz', '-C', '/home/trigen/projects/build-config/v8pp/v8/build/linux/debian_bullseye_i386-sysroot']' returned non-zero exit status 2. | |||
# # | |||
# file="./v8/build/linux/sysroot_scripts/install-sysroot.py" | |||
# old_string="mxf" | |||
# new_string="mxf', '--no-same-owner" | |||
# sed -i "s/${old_string}/${new_string}/g" "$file" | |||
# echo $? | |||
# Looks like we have to use GN now: https://github.com/v8/v8/wiki/Building-with-GN | |||