Browse Source

Add Ubuntu 24.04 targets

master
Ray Burgemeestre 5 months ago
parent
commit
d8a4186743
25 changed files with 442 additions and 5 deletions
  1. +71
    -0
      Dockerfile-ubuntu2404
  2. +12
    -0
      Makefile
  3. +31
    -0
      allegro5/Makefile
  4. +16
    -0
      apt-publisher/Dockerfile-ubuntu2404
  5. +54
    -0
      apt-publisher/Makefile
  6. +14
    -0
      boost/Makefile
  7. +2
    -2
      caf/Makefile
  8. +1
    -1
      crtmpserver/Makefile
  9. +16
    -0
      fastpfor/Makefile
  10. +20
    -0
      ffmpeg/Makefile
  11. +15
    -0
      fmt/Makefile
  12. +22
    -0
      fpm/Dockerfile-ubuntu2404
  13. +4
    -0
      fpm/Makefile
  14. +13
    -0
      imagemagick/Makefile
  15. +16
    -0
      inotify-cpp/Makefile
  16. +14
    -0
      openexr/Makefile
  17. +15
    -0
      opentelemetry-cpp/Makefile
  18. +12
    -0
      png++/Makefile
  19. +19
    -0
      redis-plus-plus/Makefile
  20. +14
    -0
      seasocks/Makefile
  21. +14
    -0
      sfml/Makefile
  22. +16
    -0
      tvision/Makefile
  23. +4
    -0
      ubuntu2404.sh
  24. +10
    -2
      v8pp/Makefile
  25. +17
    -0
      vivid/Makefile

+ 71
- 0
Dockerfile-ubuntu2404 View File

@@ -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"

+ 12
- 0
Makefile View File

@@ -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

+ 31
- 0
allegro5/Makefile View File

@@ -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

+ 16
- 0
apt-publisher/Dockerfile-ubuntu2404 View File

@@ -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"

+ 54
- 0
apt-publisher/Makefile View File

@@ -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

+ 14
- 0
boost/Makefile View File

@@ -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

+ 2
- 2
caf/Makefile View File

@@ -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

+ 1
- 1
crtmpserver/Makefile View File

@@ -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

+ 16
- 0
fastpfor/Makefile View File

@@ -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

+ 20
- 0
ffmpeg/Makefile View File

@@ -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

+ 15
- 0
fmt/Makefile View File

@@ -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

+ 22
- 0
fpm/Dockerfile-ubuntu2404 View File

@@ -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

+ 4
- 0
fpm/Makefile View File

@@ -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


+ 13
- 0
imagemagick/Makefile View File

@@ -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

+ 16
- 0
inotify-cpp/Makefile View File

@@ -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

+ 14
- 0
openexr/Makefile View File

@@ -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

+ 15
- 0
opentelemetry-cpp/Makefile View File

@@ -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

+ 12
- 0
png++/Makefile View File

@@ -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

+ 19
- 0
redis-plus-plus/Makefile View File

@@ -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

+ 14
- 0
seasocks/Makefile View File

@@ -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

+ 14
- 0
sfml/Makefile View File

@@ -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

+ 16
- 0
tvision/Makefile View File

@@ -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

+ 4
- 0
ubuntu2404.sh View File

@@ -0,0 +1,4 @@
#!/bin/bash

docker run $FLAGS --pull always -t -v $PWD:$PWD --workdir $PWD rayburgemeestre/build-ubuntu:24.04 sh -c "$*"


+ 10
- 2
v8pp/Makefile View File

@@ -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

+ 17
- 0
vivid/Makefile View File

@@ -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

Loading…
Cancel
Save