Files
2026-09-17 19:50:31 +02:00

49 lines
1.3 KiB
Docker

# Dockerfile to build the ps5-payload-dev/sdk environment
# Pinned base; run `docker build --pull` periodically to refresh.
# SDK + libsmb2 are unpinned upstream (no tags): SDK_REF / LIBSMB2_REF
# below document the intended pin — set to a tested commit SHA.
ARG UBUNTU_TAG=24.04
ARG SDK_REF=master
ARG LIBSMB2_REF=master
FROM ubuntu:${UBUNTU_TAG}
# Install build tools and compiler (Clang 18 and LLD 18 required by the SDK)
RUN apt-get update && apt-get install -y \
git \
cmake \
ninja-build \
clang-18 \
lld-18 \
llvm-18 \
llvm-18-dev \
make \
python3 \
python3-pyelftools \
wget \
xz-utils \
pkg-config \
sudo \
unzip \
&& rm -rf /var/lib/apt/lists/*
# Set up Clang 18 as default
RUN ln -s /usr/bin/clang-18 /usr/bin/clang && \
ln -s /usr/bin/clang++-18 /usr/bin/clang++ && \
ln -s /usr/bin/ld.lld-18 /usr/bin/ld.lld
# Clone and build ps5-payload-dev SDK (shallow; set SDK_REF to a SHA to pin)
WORKDIR /opt
ARG SDK_REF=master
RUN git clone --depth 1 https://github.com/ps5-payload-dev/sdk.git ps5-payload-sdk-source
WORKDIR /opt/ps5-payload-sdk-source
RUN make DESTDIR=/opt/ps5-payload-sdk install
# Build dependencies (libmicrohttpd) using the SDK toolchain
WORKDIR /opt
COPY build_deps.sh /opt/build_deps.sh
RUN bash /opt/build_deps.sh
ENV PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk
WORKDIR /src