FROM ubuntu:24.04 AS build1 | |||||
MAINTAINER Ray Burgemeestre | |||||
ARG DEBIAN_FRONTEND=noninteractive | |||||
# This is a workaround for https://stackoverflow.com/questions/71941032/why-i-cannot-run-apt-update-inside-a-fresh-ubuntu22-04 | |||||
RUN sed -i -e 's/^APT/# APT/' -e 's/^DPkg/# DPkg/' \ | |||||
/etc/apt/apt.conf.d/docker-clean | |||||
RUN apt-get update && \ | |||||
apt-get -y install g++12 git sudo wget gnupg2 && \ | |||||
apt-get -y install libssl-dev build-essential && \ | |||||
apt-get -y install vim gdb strace patch && \ | |||||
\ | |||||
apt update -y && \ | |||||
apt-get install -y clang-15 clang-tidy-15 libclang-15-dev clangd-15 lldb-15 lld-15 clangd-15 && \ | |||||
apt-get install -y libc++-15-dev libc++-15-dev clang-format-15 clang-tidy-15 && \ | |||||
\ | |||||
rm -rf /var/lib/apt/lists/* | |||||
# Install newer CMake to avoid some warnings the "FindBoost" script throws on | |||||
# 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 && \ | |||||
# ./bootstrap && \ | |||||
# make -j $(nproc) && \ | |||||
# make install && \ | |||||
# cd .. && \ | |||||
# rm -rf cmake-3.24.1 && \ | |||||
# rm -rf cmake-3.24.1.tar.gz | |||||
RUN sudo apt-get update && \ | |||||
sudo apt-get install -y cmake | |||||
# Install emscripten deps | |||||
RUN sudo apt-get install -y libsdl2-dev && \ | |||||
(git clone https://github.com/emscripten-core/emsdk.git || true) && \ | |||||
cd emsdk && \ | |||||
./emsdk install latest && \ | |||||
./emsdk activate latest && \ | |||||
sudo cp -prv ./emsdk_env.sh /etc/profile.d/ | |||||
# Warmup emscripten (this will pre-fetch SDL2, and cache it) | |||||
RUN /emsdk/upstream/emscripten/em++ -s WASM=1 -s USE_SDL=2 -s USE_SDL_TTF=2 -O3 /dev/null || true | |||||
# Fix some weird linker issue CAF build runs into. (fails to link -lc++abi) | |||||
RUN cp -prv /usr/lib/llvm-15/lib/libc++abi.so.1.0 /usr/lib/llvm-15/lib/libc++abi.so | |||||
# EDIT: no longer needed! | |||||
# RUN cp -prv /usr/lib/llvm-14/lib/libunwind.so.1.0 /usr/lib/llvm-14/lib/libunwind.so | |||||
# Install mold (even faster than gold) (linker) | |||||
RUN apt install -y mold | |||||
COPY switch-to-latest-clang /usr/local/bin/switch-to-latest-clang | |||||
COPY switch-to-latest-gcc /usr/local/bin/switch-to-latest-gcc | |||||
RUN chmod +x /usr/local/bin/switch-to-latest-clang | |||||
RUN chmod +x /usr/local/bin/switch-to-latest-gcc | |||||
RUN apt clean | |||||
FROM scratch | |||||
COPY --from=build1 / / | |||||
CMD "/bin/bash" |
ubuntu2204publish: | ubuntu2204publish: | ||||
docker push rayburgemeestre/build-ubuntu:22.04 | docker push rayburgemeestre/build-ubuntu:22.04 | ||||
ubuntu2404: | |||||
docker build . -f Dockerfile-ubuntu2404 -t rayburgemeestre/build-ubuntu:24.04 | |||||
ubuntu2404nocache: | |||||
docker build . -f Dockerfile-ubuntu2404 -t rayburgemeestre/build-ubuntu:24.04 --no-cache | |||||
ubuntu2404publish: | |||||
docker push rayburgemeestre/build-ubuntu:24.04 | |||||
shell: | shell: | ||||
docker run -it -v $$PWD:$$PWD --workdir $$PWD rayburgemeestre/build-ubuntu:18.04 /bin/bash | docker run -it -v $$PWD:$$PWD --workdir $$PWD rayburgemeestre/build-ubuntu:18.04 /bin/bash | ||||
make -C allegro5 clean | make -C allegro5 clean | ||||
#make -C apt-publisher clean | #make -C apt-publisher clean | ||||
make -C benchmarklib clean | make -C benchmarklib clean | ||||
make -C opentelemetry-cpp clean | |||||
make -C boost clean | make -C boost clean | ||||
make -C redis-plus-plus clean | |||||
make -C caf clean | make -C caf clean | ||||
make -C crtmpserver clean | make -C crtmpserver clean | ||||
make -C openexr clean | |||||
make -C fastpfor clean | make -C fastpfor clean | ||||
make -C ffmpeg clean | make -C ffmpeg clean | ||||
make -C mesa clean | make -C mesa clean |
make package_sdl-ubuntu2204 | make package_sdl-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone https://github.com/liballeg/allegro5.git | |||||
pushd allegro5 && git checkout 5.2.5.0 | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh make impl_sdl | |||||
make package_sdl-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
prep: | prep: | ||||
apt-get update | apt-get update | ||||
apt-get install -y freeglut3-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \ | apt-get install -y freeglut3-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \ | ||||
rm -rf allegro5_*_amd64.deb | rm -rf allegro5_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n allegro5 --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "allegro5 - build dependency" --url "https://github.com/liballeg/allegro5.git" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n allegro5 --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "allegro5 - build dependency" --url "https://github.com/liballeg/allegro5.git" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/allegro5/ | |||||
cp -prv allegro5/allegro5_static/* out/opt/cppse/build/allegro5/ | |||||
# with one exception I'm relying on internals of allegro5 for one file.. | |||||
cp -prv allegro5/include/allegro5/internal/aintern_bitmap.h out/opt/cppse/build/allegro5/include/allegro5/internal/aintern_bitmap.h | |||||
# since above file also includes others, let's just sync the entire internal dir | |||||
cp -prv allegro5/include/allegro5/internal/* out/opt/cppse/build/allegro5/include/allegro5/internal/ | |||||
# somewhere also platform became needed, let's pull those in as well | |||||
cp -prv allegro5/include/allegro5/platform/* out/opt/cppse/build/allegro5/include/allegro5/platform/ | |||||
rm -rf allegro5_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n allegro5 --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "allegro5 - build dependency" --url "https://github.com/liballeg/allegro5.git" --deb-generate-changes -C /src/out | |||||
package_sdl-ubuntu2004: | package_sdl-ubuntu2004: | ||||
rm -rf out | rm -rf out | ||||
mkdir -p out/opt/cppse/build/allegro5sdl/ | mkdir -p out/opt/cppse/build/allegro5sdl/ | ||||
rm -rf allegro5sdl_*_amd64.deb | rm -rf allegro5sdl_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n allegro5sdl --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "allegro5 - SDL version - build dependency" --url "https://github.com/liballeg/allegro5.git" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n allegro5sdl --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "allegro5 - SDL version - build dependency" --url "https://github.com/liballeg/allegro5.git" --deb-generate-changes -C /src/out | ||||
package_sdl-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/allegro5sdl/ | |||||
cp -prv allegro5/allegro5_static/* out/opt/cppse/build/allegro5sdl/ | |||||
cp -prv allegro5/include/allegro5/internal/aintern_bitmap.h out/opt/cppse/build/allegro5sdl/include/allegro5/internal/aintern_bitmap.h | |||||
cp -prv allegro5/include/allegro5/internal/* out/opt/cppse/build/allegro5sdl/include/allegro5/internal/ | |||||
cp -prv allegro5/include/allegro5/platform/* out/opt/cppse/build/allegro5sdl/include/allegro5/platform/ | |||||
rm -rf allegro5sdl_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n allegro5sdl --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "allegro5 - SDL version - build dependency" --url "https://github.com/liballeg/allegro5.git" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf allegro5 | rm -rf allegro5 |
FROM ubuntu:24.04 | |||||
MAINTAINER Ray Burgemeestre | |||||
ARG DEBIAN_FRONTEND=noninteractive | |||||
RUN apt-get update && \ | |||||
apt install -y rng-tools gnupg2 \ | |||||
apache2 dpkg-dev dpkg-sig \ | |||||
apt-utils reprepro && \ | |||||
\ | |||||
mkdir -p /repo && \ | |||||
mkdir -p ~/.gnupg && \ | |||||
rm -rf /var/lib/apt/lists/* | |||||
CMD "/bin/bash" |
make update-packages-ubuntu2204-rsync | make update-packages-ubuntu2204-rsync | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
apt-ubuntu2404: | |||||
wget $$SECRET_URL 1>/dev/null 2>/dev/null | |||||
tar -zxvf *secret.tar.gz | |||||
make prepare-packages-ubuntu2404 | |||||
make update-packages-ubuntu2404 | |||||
apt-ubuntu2404-pt2: | |||||
make update-packages-ubuntu2404-rsync | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
prepare-packages-ubuntu1804: | prepare-packages-ubuntu1804: | ||||
mkdir -p packages | mkdir -p packages | ||||
cp -prv ffmpeg/pkg/*.deb \ | cp -prv ffmpeg/pkg/*.deb \ | ||||
redis-plus-plus/pkg/*.deb \ | redis-plus-plus/pkg/*.deb \ | ||||
packages/ | packages/ | ||||
prepare-packages-ubuntu2404: | |||||
mkdir -p packages | |||||
cp -prv ffmpeg/pkg/*.deb \ | |||||
v8pp/pkg/*.deb \ | |||||
allegro5/pkg/*.deb \ | |||||
sfml/pkg/*.deb \ | |||||
boost/pkg/*.deb \ | |||||
fastpfor/pkg/*.deb \ | |||||
seasocks/pkg/*.deb \ | |||||
fmt/pkg/*.deb \ | |||||
openexr/pkg/*.deb \ | |||||
imagemagick/pkg/*.deb \ | |||||
pngpp/pkg/*.deb \ | |||||
tvision/pkg/*.deb \ | |||||
vivid/pkg/*.deb \ | |||||
inotify-cpp/pkg/*.deb \ | |||||
msxsaver/pkg/*.deb \ | |||||
redis-plus-plus/pkg/*.deb \ | |||||
packages/ | |||||
docker-ubuntu1804: | docker-ubuntu1804: | ||||
docker build . -t rayburgemeestre/apt-ubuntu:18.04 -f Dockerfile-ubuntu1804 | docker build . -t rayburgemeestre/apt-ubuntu:18.04 -f Dockerfile-ubuntu1804 | ||||
docker-ubuntu2204: | docker-ubuntu2204: | ||||
docker build . -t rayburgemeestre/apt-ubuntu:22.04 -f Dockerfile-ubuntu2204 | docker build . -t rayburgemeestre/apt-ubuntu:22.04 -f Dockerfile-ubuntu2204 | ||||
docker-ubuntu2404: | |||||
docker build . -t rayburgemeestre/apt-ubuntu:22.04 -f Dockerfile-ubuntu2404 | |||||
run-initialize-once: | run-initialize-once: | ||||
echo Please refer to README. Initial steps were done once manually and tar of artifacts was zipped. | echo Please refer to README. Initial steps were done once manually and tar of artifacts was zipped. | ||||
# mkdir -p repo gnupg keys | # mkdir -p repo gnupg keys | ||||
# NOTE: troubles with this shizzle? remove /mnt2/NAS/kube/cppse.nl/cppse.nl/repo | # NOTE: troubles with this shizzle? remove /mnt2/NAS/kube/cppse.nl/cppse.nl/repo | ||||
# and also remove work dir in go-agent: rm -rf /var/lib/go-agent/pipelines/apt-publisher-ubuntu2204 | # and also remove work dir in go-agent: rm -rf /var/lib/go-agent/pipelines/apt-publisher-ubuntu2204 | ||||
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 jammy 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 "reprepro -b /repo list jammy" | |||||
# echo produce artifact for debugging | |||||
tar -czf repo.tar.gz repo | |||||
# rsync to host | |||||
echo if the rsync fails, then double check if the ssh key is accepted in authorized_hosts | |||||
echo check https://ci.cppse.nl/go/admin/pipelines/apt-publisher-ubuntu2404/stages/publisher/job/make/environment_variables | |||||
echo then probably you need to rm -rf /mnt2/NAS/kube/cppse.nl/cppse.nl/repo | |||||
echo then probably you need to rm -rf /var/lib/go-agent/pipelines/apt-publisher-ubuntu2404 | |||||
update-packages-ubuntu2404-rsync: | |||||
rsync --delete -raPv -e "$$SYNC_CMD_SSH" repo $$SYNC_CMD_DEST | |||||
# NOTE: troubles with this shizzle? remove /mnt2/NAS/kube/cppse.nl/cppse.nl/repo | |||||
# and also remove work dir in go-agent: rm -rf /var/lib/go-agent/pipelines/apt-publisher-ubuntu2404 | |||||
shell-ubuntu1804: | shell-ubuntu1804: | ||||
docker pull rayburgemeestre/apt-ubuntu:18.04 | docker pull rayburgemeestre/apt-ubuntu:18.04 | ||||
docker run -i -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:18.04 /bin/bash | docker run -i -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:18.04 /bin/bash | ||||
docker pull rayburgemeestre/apt-ubuntu:22.04 | docker pull rayburgemeestre/apt-ubuntu:22.04 | ||||
docker run -i -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:22.04 /bin/bash | docker run -i -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:22.04 /bin/bash | ||||
shell-ubuntu2404: | |||||
docker pull rayburgemeestre/apt-ubuntu:22.04 | |||||
docker run -i -t -v $$PWD:$$PWD -v $$PWD/gnupg:/root/.gnupg -v $$PWD/repo:/repo --workdir $$PWD rayburgemeestre/apt-ubuntu:24.04 /bin/bash | |||||
clean-all: | clean-all: | ||||
rm -rf repo gnupg keys | rm -rf repo gnupg keys |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R | ||||
ubuntu2404: | |||||
git clone --branch boost-1.80.0 --recursive https://github.com/boostorg/boost | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R | |||||
impl: | impl: | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
pushd boost && \ | pushd boost && \ | ||||
rm -rf boost_*_amd64.deb | rm -rf boost_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n boost --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "boost - build dependency" --url "https://github.com/liballeg/boost.git" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n boost --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "boost - build dependency" --url "https://github.com/liballeg/boost.git" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/boost/include/ | |||||
cp -L -prv boost/stage/lib out/opt/cppse/build/boost/ | |||||
cp -L -prv boost/boost out/opt/cppse/build/boost/include/ | |||||
rm -rf boost_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n boost --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "boost - build dependency" --url "https://github.com/liballeg/boost.git" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf boost | rm -rf boost | ||||
rm -rf out | rm -rf out |
# workaround for https://groups.google.com/forum/#!topic/actor-framework/xOmdVFRD7lc | # workaround for https://groups.google.com/forum/#!topic/actor-framework/xOmdVFRD7lc | ||||
cp -prv actor-framework/build/caf/detail/build_config.hpp out/opt/cppse/build/caf/include/caf/detail/ | cp -prv actor-framework/build/caf/detail/build_config.hpp out/opt/cppse/build/caf/include/caf/detail/ | ||||
rm -rf caf_*_amd64.deb | rm -rf caf_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n caf --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "caf - build dependency" --url "https://github.com/liballeg/caf.git" --deb-generate-changes -C /src/out | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n caf --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "caf - build dependency" --url "https://github.com/liballeg/caf.git" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf actor-framework | rm -rf actor-framework | ||||
rm -rf out | rm -rf out | ||||
shell: | shell: | ||||
FLAGS="-i --privileged" bash ../ubuntu1804.sh /bin/bash | |||||
FLAGS="-i --privileged" bash ../ubuntu2404.sh /bin/bash |
./crtmpserver/builders/cmake/lua/liblua.a \ | ./crtmpserver/builders/cmake/lua/liblua.a \ | ||||
out/opt/cppse/build/crtmpserver/lib/ # last is DEST | out/opt/cppse/build/crtmpserver/lib/ # last is DEST | ||||
rm -rf crtmpserver_*_amd64.deb | rm -rf crtmpserver_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n crtmpserver --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "crtmpserver - build dependency" --url "https://github.com/rayburgemeestre/crtmpserver" --deb-generate-changes -C /src/out | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n crtmpserver --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "crtmpserver - build dependency" --url "https://github.com/rayburgemeestre/crtmpserver" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf crtmpserver | rm -rf crtmpserver |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone https://github.com/rayburgemeestre/FastPFor | |||||
pushd FastPFor && git checkout change-google-test-branch # master at the time of writing | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
patch FastPFor/CMakeLists.txt libcpp.patch | patch FastPFor/CMakeLists.txt libcpp.patch | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
rm -rf fastpfor_*_amd64.deb | rm -rf fastpfor_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n fastpfor --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "fastpfor - build dependency" --url "https://github.com/rayburgemeestre/FastPFor" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n fastpfor --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "fastpfor - build dependency" --url "https://github.com/rayburgemeestre/FastPFor" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/fastpfor/lib | |||||
mkdir -p out/opt/cppse/build/fastpfor/include | |||||
cp -prv ./FastPFor/libFastPFOR.a out/opt/cppse/build/fastpfor/lib/ | |||||
cp -prv ./FastPFor/headers out/opt/cppse/build/fastpfor/include/ | |||||
rm -rf fastpfor_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n fastpfor --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "fastpfor - build dependency" --url "https://github.com/rayburgemeestre/FastPFor" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf FastPFor | rm -rf FastPFor | ||||
rm -rf out | rm -rf out |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
# sometimes got 404 on videolan/x264 | |||||
#git clone https://code.videolan.org/videolan/x264 | |||||
#git clone git://source.ffmpeg.org/ffmpeg.git | |||||
git clone https://github.com/rayburgemeestre/x264 | |||||
git clone https://github.com/rayburgemeestre/ffmpeg | |||||
bash ../ubuntu2404.sh make ffmpeg_impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
ffmpeg_impl: | ffmpeg_impl: | ||||
# see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | # see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | ||||
git config --global --add safe.directory '*' | git config --global --add safe.directory '*' | ||||
rm -rf cppseffmpeg_*_amd64.deb | rm -rf cppseffmpeg_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppseffmpeg --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "ffmpeg - build dependency" --url "https://gitea.cppse.nl/rayburgemeestre/build-config/src/branch/master/ffmpeg" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppseffmpeg --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "ffmpeg - build dependency" --url "https://gitea.cppse.nl/rayburgemeestre/build-config/src/branch/master/ffmpeg" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/x264 | |||||
mkdir -p out/opt/cppse/build/ffmpeg | |||||
cp -prv ./x264_out/* out/opt/cppse/build/x264/ | |||||
cp -prv ./ffmpeg_out/* out/opt/cppse/build/ffmpeg/ | |||||
rm -rf cppseffmpeg_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n cppseffmpeg --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "ffmpeg - build dependency" --url "https://gitea.cppse.nl/rayburgemeestre/build-config/src/branch/master/ffmpeg" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf x264 | rm -rf x264 | ||||
rm -rf ffmpeg | rm -rf ffmpeg |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone https://github.com/rayburgemeestre/fmt --branch 7.1.3 | |||||
bash ../ubuntu2404.sh make impl | |||||
bash ../ubuntu2404.sh make impl-emscripten | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
apt-get update && apt-get install libz-dev -y && \ | apt-get update && apt-get install libz-dev -y && \ | ||||
rm -rf fmt_*_amd64.deb | rm -rf fmt_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n fmt --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "fmt - build dependency" --url "https://github.com/mattgodbolt/fmt" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n fmt --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "fmt - build dependency" --url "https://github.com/mattgodbolt/fmt" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/fmt | |||||
cp -prv fmt/build/fmt_out/* out/opt/cppse/build/fmt/ | |||||
cp -prv fmt/build2/fmt_out/lib/libfmt.a out/opt/cppse/build/fmt/lib/libfmt-em.a | |||||
rm -rf fmt_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n fmt --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "fmt - build dependency" --url "https://github.com/mattgodbolt/fmt" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf fmt | rm -rf fmt | ||||
rm -rf out | rm -rf out |
FROM ubuntu:24.04 | |||||
ENV DEBIAN_FRONTEND noninteractive | |||||
RUN set -x \ | |||||
&& apt-get update && apt-get install -y --no-install-recommends \ | |||||
ruby \ | |||||
ruby-dev \ | |||||
gcc \ | |||||
g++ \ | |||||
make \ | |||||
ca-certificates \ | |||||
libffi-dev \ | |||||
ruby-ffi \ | |||||
rpm \ | |||||
vim \ | |||||
&& gem install fpm \ | |||||
&& mkdir /src/ | |||||
WORKDIR /src/ | |||||
CMD /usr/local/bin/fpm |
docker pull rayburgemeestre/fpm-ubuntu:22.04 || true | docker pull rayburgemeestre/fpm-ubuntu:22.04 || true | ||||
docker build . -f Dockerfile-ubuntu2204 -t rayburgemeestre/fpm-ubuntu:22.04 | docker build . -f Dockerfile-ubuntu2204 -t rayburgemeestre/fpm-ubuntu:22.04 | ||||
ubuntu2404fpm: | |||||
docker pull rayburgemeestre/fpm-ubuntu:22.04 || true | |||||
docker build . -f Dockerfile-ubuntu2404 -t rayburgemeestre/fpm-ubuntu:24.04 | |||||
publish1804: | publish1804: | ||||
docker push rayburgemeestre/fpm-ubuntu:18.04 | docker push rayburgemeestre/fpm-ubuntu:18.04 | ||||
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone --branch 7.0.10-53 https://github.com/ImageMagick/ImageMagick || true | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
apt-get update && apt-get install libz-dev autoconf -y && \ | apt-get update && apt-get install libz-dev autoconf -y && \ | ||||
rm -rf cppseimagemagick_*_amd64.deb | rm -rf cppseimagemagick_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppseimagemagick --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "imagemagick - build dependency" --url "https://github.com/ImageMagick/ImageMagick" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppseimagemagick --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "imagemagick - build dependency" --url "https://github.com/ImageMagick/ImageMagick" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/imagemagick | |||||
cp -prv ImageMagick/imagemagick_out/* out/opt/cppse/build/imagemagick/ | |||||
rm -rf cppseimagemagick_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n cppseimagemagick --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "imagemagick - build dependency" --url "https://github.com/ImageMagick/ImageMagick" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf ImageMagick | rm -rf ImageMagick | ||||
rm -rf out | rm -rf out |
bash ../ubuntu2204.sh make impl | bash ../ubuntu2204.sh make impl | ||||
make package-ubuntu2204 | make package-ubuntu2204 | ||||
ubuntu2404: | |||||
# check out revision that is master at the time of writing | |||||
git clone https://github.com/erikzenker/inotify-cpp || true | |||||
pushd inotify-cpp && \ | |||||
git checkout 1a4413637a08f6303526a2be140806f5abaaffd5 && \ | |||||
popd && \ | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
impl: | impl: | ||||
dpkg -i boost/pkg/*.deb | dpkg -i boost/pkg/*.deb | ||||
pushd inotify-cpp && \ | pushd inotify-cpp && \ | ||||
rm -rf cppse_inotify-cpp_*_amd64.deb | rm -rf cppse_inotify-cpp_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n inotify-cpp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "inotify-cpp - build dependency" --url "https://github.com/erikzenker/inotify-cpp" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n inotify-cpp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "inotify-cpp - build dependency" --url "https://github.com/erikzenker/inotify-cpp" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/inotify-cpp | |||||
cp -prv inotify-cpp_out/* out/opt/cppse/build/inotify-cpp/ | |||||
rm -rf cppse_inotify-cpp_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n inotify-cpp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "inotify-cpp - build dependency" --url "https://github.com/erikzenker/inotify-cpp" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
sudo rm -rf inotify-cpp* | sudo rm -rf inotify-cpp* | ||||
sudo rm -rf out | sudo rm -rf out |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone --branch v3.1.5 https://github.com/AcademySoftwareFoundation/openexr || true | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
apt-get update && apt-get install libz-dev -y && \ | apt-get update && apt-get install libz-dev -y && \ | ||||
rm -rf cppseopenexr_*_amd64.deb | rm -rf cppseopenexr_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppseopenexr --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "openexr - build dependency" --url "https://github.com/AcademySoftwareFoundation/openexr" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppseopenexr --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "openexr - build dependency" --url "https://github.com/AcademySoftwareFoundation/openexr" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/openexr | |||||
cp -prv openexr/build/openexr_out/* out/opt/cppse/build/openexr/ | |||||
cp -prv openexr/build2/openexr_out/lib/* out/opt/cppse/build/openexr/lib/ | |||||
rm -rf cppseopenexr_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n cppseopenexr --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "openexr - build dependency" --url "https://github.com/AcademySoftwareFoundation/openexr" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf openexr | rm -rf openexr | ||||
rm -rf out | rm -rf out |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
ubuntu2404: | |||||
git clone --recurse-submodules https://github.com/open-telemetry/opentelemetry-cpp || true | |||||
mkdir -p out | |||||
bash ../ubuntu2404.sh make opentelem | |||||
make package-ubuntu2404 | |||||
.PHONY : opentelem | .PHONY : opentelem | ||||
opentelem: | opentelem: | ||||
pushd opentelemetry-cpp && \ | pushd opentelemetry-cpp && \ | ||||
rm -rf redis-plus-plus*amd64.deb | rm -rf redis-plus-plus*amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1 -s dir -t deb -n redis-plus-plus --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "redis-plus-plus - build dependency" --url "https://github.com/sewenew/redis-plus-plus" --deb-generate-changes -C /src/pkg_out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1 -s dir -t deb -n redis-plus-plus --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "redis-plus-plus - build dependency" --url "https://github.com/sewenew/redis-plus-plus" --deb-generate-changes -C /src/pkg_out | ||||
package-ubuntu2404: | |||||
rm -rf pkg_out | |||||
mkdir -p pkg_out/opt/cppse/build/ | |||||
rsync -raPv out/ pkg_out/opt/cppse/build/ | |||||
rm -rf redis-plus-plus*amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1 -s dir -t deb -n redis-plus-plus --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "redis-plus-plus - build dependency" --url "https://github.com/sewenew/redis-plus-plus" --deb-generate-changes -C /src/pkg_out | |||||
clean: | clean: | ||||
sudo rm -rf opentelemetry-cpp | sudo rm -rf opentelemetry-cpp | ||||
sudo rm -rf out | sudo rm -rf out |
tar -zxvf png++-0.2.10.tar.gz | tar -zxvf png++-0.2.10.tar.gz | ||||
make package-ubuntu2204 | make package-ubuntu2204 | ||||
ubuntu2404: | |||||
wget http://download.savannah.nongnu.org/releases/pngpp/png++-0.2.10.tar.gz | |||||
tar -zxvf png++-0.2.10.tar.gz | |||||
make package-ubuntu2404 | |||||
package-ubuntu1804: | package-ubuntu1804: | ||||
rm -rf out | rm -rf out | ||||
mkdir -p out/opt/cppse/build/png++ | mkdir -p out/opt/cppse/build/png++ | ||||
rm -rf pngpp_*_amd64.deb | rm -rf pngpp_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n pngpp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "png++ - build dependency" --url "https://www.nongnu.org/pngpp/" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n pngpp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "png++ - build dependency" --url "https://www.nongnu.org/pngpp/" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/png++ | |||||
cp -prv png++-0.2.10/* out/opt/cppse/build/png++/ | |||||
rm -rf pngpp_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n pngpp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "png++ - build dependency" --url "https://www.nongnu.org/pngpp/" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf png++* | rm -rf png++* | ||||
rm -rf png*.tar.gz | rm -rf png*.tar.gz |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
ubuntu2404: | |||||
mkdir -p $$PWD/../out | |||||
# check out revision that is master at the time of writing | |||||
git clone -b v1.1.0 https://github.com/redis/hiredis || true | |||||
bash ../ubuntu2404.sh make hiredis | |||||
git clone -b 1.3.6 https://github.com/sewenew/redis-plus-plus || true | |||||
bash ../ubuntu2404.sh make redis-plus-plus | |||||
make package-ubuntu2404 | |||||
.PHONY : hiredis | .PHONY : hiredis | ||||
hiredis: | hiredis: | ||||
pushd hiredis && \ | pushd hiredis && \ | ||||
rm -rf redis-plus-plus*amd64.deb | rm -rf redis-plus-plus*amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1 -s dir -t deb -n redis-plus-plus --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "redis-plus-plus - build dependency" --url "https://github.com/sewenew/redis-plus-plus" --deb-generate-changes -C /src/pkg_out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1 -s dir -t deb -n redis-plus-plus --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "redis-plus-plus - build dependency" --url "https://github.com/sewenew/redis-plus-plus" --deb-generate-changes -C /src/pkg_out | ||||
package-ubuntu2404: | |||||
rm -rf pkg_out | |||||
mkdir -p pkg_out/opt/cppse/build/ | |||||
rsync -raPv out/ pkg_out/opt/cppse/build/ | |||||
rm -rf redis-plus-plus*amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1 -s dir -t deb -n redis-plus-plus --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "redis-plus-plus - build dependency" --url "https://github.com/sewenew/redis-plus-plus" --deb-generate-changes -C /src/pkg_out | |||||
clean: | clean: | ||||
sudo rm -rf hiredis | sudo rm -rf hiredis | ||||
sudo rm -rf redis-plus-plus | sudo rm -rf redis-plus-plus |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
# git clone https://github.com/rayburgemeestre/seasocks --branch v1.4.4 | |||||
git clone https://github.com/rayburgemeestre/seasocks --branch master | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
apt-get update && apt-get install libz-dev -y && \ | apt-get update && apt-get install libz-dev -y && \ | ||||
rm -rf seasocks_*_amd64.deb | rm -rf seasocks_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n seasocks --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "seasocks - build dependency" --url "https://github.com/mattgodbolt/seasocks" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n seasocks --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "seasocks - build dependency" --url "https://github.com/mattgodbolt/seasocks" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/seasocks | |||||
cp -prv seasocks/build/seasocks_out/* out/opt/cppse/build/seasocks/ | |||||
rm -rf seasocks_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n seasocks --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "seasocks - build dependency" --url "https://github.com/mattgodbolt/seasocks" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf seasocks | rm -rf seasocks | ||||
rm -rf out | rm -rf out |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone https://github.com/SFML/SFML.git | |||||
pushd SFML && git checkout 2.5.x # && patch -p1 < ../patch.txt | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
# copy & paste from allegro5 | # copy & paste from allegro5 | ||||
apt-get update | apt-get update | ||||
rm -rf sfml_*_amd64.deb | rm -rf sfml_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n sfml --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "SFML - build dependency" --url "https://github.com/SFML/SFML.git" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n sfml --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "SFML - build dependency" --url "https://github.com/SFML/SFML.git" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/sfml/ | |||||
cp -prv SFML/sfml_static/* out/opt/cppse/build/sfml/ | |||||
rm -rf sfml_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n sfml --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "SFML - build dependency" --url "https://github.com/SFML/SFML.git" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf SFML | rm -rf SFML | ||||
rm -rf out | rm -rf out |
bash ../ubuntu2204.sh make impl | bash ../ubuntu2204.sh make impl | ||||
make package-ubuntu2204 | make package-ubuntu2204 | ||||
ubuntu2404: | |||||
# check out revision that is master at the time of writing | |||||
git clone https://github.com/magiblot/tvision || true | |||||
pushd tvision && \ | |||||
git checkout 638f963fe4f6c84854f60f1e9c5772bf6603e4b2 && \ | |||||
popd && \ | |||||
bash ../ubuntu2404.sh make impl | |||||
make package-ubuntu2404 | |||||
impl: | impl: | ||||
pushd tvision && \ | pushd tvision && \ | ||||
cmake . -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$$PWD/../tvision_out && \ | cmake . -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$$PWD/../tvision_out && \ | ||||
rm -rf cppse_tvision_*_amd64.deb | rm -rf cppse_tvision_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppse-tvision --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "tvision - build dependency" --url "https://github.com/magiblot/tvision" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n cppse-tvision --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "tvision - build dependency" --url "https://github.com/magiblot/tvision" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/tvision | |||||
cp -prv tvision_out/* out/opt/cppse/build/tvision/ | |||||
rm -rf cppse_tvision_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n cppse-tvision --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "tvision - build dependency" --url "https://github.com/magiblot/tvision" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
sudo rm -rf tvision* | sudo rm -rf tvision* | ||||
sudo rm -rf out | sudo rm -rf out |
#!/bin/bash | |||||
docker run $FLAGS --pull always -t -v $PWD:$PWD --workdir $PWD rayburgemeestre/build-ubuntu:24.04 sh -c "$*" | |||||
make fpm_package | make fpm_package | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
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 ../ubuntu2404.sh make build # prepares packaging as well | |||||
make fpm_package | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
build: | build: | ||||
# see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | # see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | ||||
git config --global --add safe.directory '*' | git config --global --add safe.directory '*' | ||||
cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/ | cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/ | ||||
fpm_package: | fpm_package: | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n v8pp --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 1.1.1 -s dir -t deb -n v8pp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "v8pp - build dependency" --url "https://github.com/rayburgemeestre/v8pp" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf v8pp | rm -rf v8pp | ||||
rm -rf .gclient_entries | rm -rf .gclient_entries | ||||
shell: | shell: | ||||
FLAGS="-i --privileged" bash ../ubuntu2204.sh /bin/bash | |||||
FLAGS="-i --privileged" bash ../ubuntu2404.sh /bin/bash |
make package-ubuntu2204 | make package-ubuntu2204 | ||||
bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions | ||||
ubuntu2404: | |||||
git clone -b v3.0.1 https://github.com/gurki/vivid | |||||
bash ../ubuntu2404.sh make impl | |||||
bash ../ubuntu2404.sh make impl-emscripten | |||||
make package-ubuntu2404 | |||||
bash ../ubuntu2404.sh chown $$(id -u):$$(id -g) . -R # fix permissions | |||||
impl: | impl: | ||||
git config --global --add safe.directory '*' | git config --global --add safe.directory '*' | ||||
switch-to-latest-clang | switch-to-latest-clang | ||||
rm -rf vivid_*_amd64.deb | rm -rf vivid_*_amd64.deb | ||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n vivid --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "vivid - build dependency" --url "https://github.com/gurki/vivid.git" --deb-generate-changes -C /src/out | docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n vivid --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "vivid - build dependency" --url "https://github.com/gurki/vivid.git" --deb-generate-changes -C /src/out | ||||
package-ubuntu2404: | |||||
rm -rf out | |||||
mkdir -p out/opt/cppse/build/vivid/ | |||||
cp -prv vivid/vivid_out/* out/opt/cppse/build/vivid/ | |||||
# emscripten version | |||||
cp -prv vivid/vivid_out2/lib/libvivid.a out/opt/cppse/build/vivid/lib/libvivid-em.a | |||||
cp -prv vivid/build/_deps/glm-src/glm out/opt/cppse/build/vivid/include/ | |||||
rm -rf vivid_*_amd64.deb | |||||
docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -v 1.1.1 -s dir -t deb -n vivid --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "vivid - build dependency" --url "https://github.com/gurki/vivid.git" --deb-generate-changes -C /src/out | |||||
clean: | clean: | ||||
rm -rf vivid | rm -rf vivid | ||||
rm -rf out | rm -rf out |