@@ -0,0 +1,71 @@ | |||
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" |
@@ -26,6 +26,15 @@ ubuntu2204nocache: | |||
ubuntu2204publish: | |||
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: | |||
docker run -it -v $$PWD:$$PWD --workdir $$PWD rayburgemeestre/build-ubuntu:18.04 /bin/bash | |||
@@ -33,9 +42,12 @@ clean: | |||
make -C allegro5 clean | |||
#make -C apt-publisher clean | |||
make -C benchmarklib clean | |||
make -C opentelemetry-cpp clean | |||
make -C boost clean | |||
make -C redis-plus-plus clean | |||
make -C caf clean | |||
make -C crtmpserver clean | |||
make -C openexr clean | |||
make -C fastpfor clean | |||
make -C ffmpeg clean | |||
make -C mesa clean |
@@ -26,6 +26,15 @@ ubuntu2204: | |||
make package_sdl-ubuntu2204 | |||
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: | |||
apt-get update | |||
apt-get install -y freeglut3-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \ | |||
@@ -112,6 +121,19 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf out | |||
mkdir -p out/opt/cppse/build/allegro5sdl/ | |||
@@ -132,6 +154,15 @@ package_sdl-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf allegro5 |
@@ -0,0 +1,16 @@ | |||
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" |
@@ -25,6 +25,16 @@ apt-ubuntu2204-pt2: | |||
make update-packages-ubuntu2204-rsync | |||
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: | |||
mkdir -p packages | |||
cp -prv ffmpeg/pkg/*.deb \ | |||
@@ -87,6 +97,26 @@ prepare-packages-ubuntu2204: | |||
redis-plus-plus/pkg/*.deb \ | |||
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 build . -t rayburgemeestre/apt-ubuntu:18.04 -f Dockerfile-ubuntu1804 | |||
@@ -96,6 +126,9 @@ docker-ubuntu2004: | |||
docker-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: | |||
echo Please refer to README. Initial steps were done once manually and tar of artifacts was zipped. | |||
# mkdir -p repo gnupg keys | |||
@@ -145,6 +178,23 @@ update-packages-ubuntu2204-rsync: | |||
# 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 | |||
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: | |||
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 | |||
@@ -157,5 +207,9 @@ shell-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf repo gnupg keys |
@@ -20,6 +20,12 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
switch-to-latest-clang | |||
pushd boost && \ | |||
@@ -91,6 +97,14 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf boost | |||
rm -rf out |
@@ -37,11 +37,11 @@ package: | |||
# 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/ | |||
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: | |||
rm -rf actor-framework | |||
rm -rf out | |||
shell: | |||
FLAGS="-i --privileged" bash ../ubuntu1804.sh /bin/bash | |||
FLAGS="-i --privileged" bash ../ubuntu2404.sh /bin/bash |
@@ -30,7 +30,7 @@ package: | |||
./crtmpserver/builders/cmake/lua/liblua.a \ | |||
out/opt/cppse/build/crtmpserver/lib/ # last is DEST | |||
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: | |||
rm -rf crtmpserver |
@@ -21,6 +21,13 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
patch FastPFor/CMakeLists.txt libcpp.patch | |||
switch-to-latest-clang | |||
@@ -55,6 +62,15 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf FastPFor | |||
rm -rf out |
@@ -34,6 +34,17 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
# see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | |||
git config --global --add safe.directory '*' | |||
@@ -95,6 +106,15 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf x264 | |||
rm -rf ffmpeg |
@@ -14,6 +14,13 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
switch-to-latest-clang | |||
apt-get update && apt-get install libz-dev -y && \ | |||
@@ -48,6 +55,14 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf fmt | |||
rm -rf out |
@@ -0,0 +1,22 @@ | |||
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 |
@@ -12,6 +12,10 @@ ubuntu2204fpm: | |||
docker pull rayburgemeestre/fpm-ubuntu:22.04 || true | |||
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: | |||
docker push rayburgemeestre/fpm-ubuntu:18.04 | |||
@@ -12,6 +12,12 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
switch-to-latest-clang | |||
apt-get update && apt-get install libz-dev autoconf -y && \ | |||
@@ -37,6 +43,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf ImageMagick | |||
rm -rf out |
@@ -18,6 +18,15 @@ ubuntu2204: | |||
bash ../ubuntu2204.sh make impl | |||
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: | |||
dpkg -i boost/pkg/*.deb | |||
pushd inotify-cpp && \ | |||
@@ -39,6 +48,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
sudo rm -rf inotify-cpp* | |||
sudo rm -rf out |
@@ -12,6 +12,12 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
switch-to-latest-clang | |||
apt-get update && apt-get install libz-dev -y && \ | |||
@@ -42,6 +48,14 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf openexr | |||
rm -rf out |
@@ -8,6 +8,14 @@ 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 | |||
opentelem: | |||
pushd opentelemetry-cpp && \ | |||
@@ -39,6 +47,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
sudo rm -rf opentelemetry-cpp | |||
sudo rm -rf out |
@@ -15,6 +15,11 @@ ubuntu2204: | |||
tar -zxvf png++-0.2.10.tar.gz | |||
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: | |||
rm -rf out | |||
mkdir -p out/opt/cppse/build/png++ | |||
@@ -29,6 +34,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf png++* | |||
rm -rf png*.tar.gz |
@@ -12,6 +12,18 @@ 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 | |||
hiredis: | |||
pushd hiredis && \ | |||
@@ -37,6 +49,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
sudo rm -rf hiredis | |||
sudo rm -rf redis-plus-plus |
@@ -18,6 +18,13 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
switch-to-latest-clang | |||
apt-get update && apt-get install libz-dev -y && \ | |||
@@ -48,6 +55,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf seasocks | |||
rm -rf out |
@@ -20,6 +20,13 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
# copy & paste from allegro5 | |||
apt-get update | |||
@@ -58,6 +65,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf SFML | |||
rm -rf out |
@@ -18,6 +18,15 @@ ubuntu2204: | |||
bash ../ubuntu2204.sh make impl | |||
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: | |||
pushd tvision && \ | |||
cmake . -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$$PWD/../tvision_out && \ | |||
@@ -40,6 +49,13 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
sudo rm -rf tvision* | |||
sudo rm -rf out |
@@ -0,0 +1,4 @@ | |||
#!/bin/bash | |||
docker run $FLAGS --pull always -t -v $PWD:$PWD --workdir $PWD rayburgemeestre/build-ubuntu:24.04 sh -c "$*" | |||
@@ -37,6 +37,14 @@ ubuntu2204: | |||
make fpm_package | |||
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: | |||
# see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ | |||
git config --global --add safe.directory '*' | |||
@@ -82,7 +90,7 @@ prepare-package-v8pp: | |||
cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/ | |||
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: | |||
rm -rf v8pp | |||
@@ -93,4 +101,4 @@ clean: | |||
rm -rf .gclient_entries | |||
shell: | |||
FLAGS="-i --privileged" bash ../ubuntu2204.sh /bin/bash | |||
FLAGS="-i --privileged" bash ../ubuntu2404.sh /bin/bash |
@@ -7,6 +7,13 @@ ubuntu2204: | |||
make package-ubuntu2204 | |||
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: | |||
git config --global --add safe.directory '*' | |||
switch-to-latest-clang | |||
@@ -47,6 +54,16 @@ package-ubuntu2204: | |||
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 | |||
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: | |||
rm -rf vivid | |||
rm -rf out |