bouquin-sqlcipher4/Dockerfile.rpmbuild
Miguel Jacq 44839b73e2
All checks were successful
CI / test (push) Successful in 2m31s
Trivy / test (push) Successful in 27s
Package for Fedora 43
2026-01-01 17:01:58 +11:00

66 lines
2 KiB
Text

# syntax=docker/dockerfile:1
ARG BASE_IMAGE=fedora:42
FROM ${BASE_IMAGE}
# Minimal toolchain + rpm build tools + python build deps.
# NOTE: rpmbuild does NOT auto-install BuildRequires. Since we're building
# directly in a container (not via mock), we install the macro packages too.
RUN set -eux; dnf -y update; dnf -y install rpm-build rpmdevtools redhat-rpm-config gcc make findutils tar gzip rsync python3 python3-devel python3-setuptools python3-wheel pyproject-rpm-macros python3-rpm-macros openssl-devel ; dnf -y clean all
# Build runner script (copies repo, tars, runs rpmbuild)
RUN set -eux; cat > /usr/local/bin/build-rpm <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
SRC="${SRC:-/src}"
WORKROOT="${WORKROOT:-/work}"
OUT="${OUT:-/out}"
mkdir -p "${WORKROOT}" "${OUT}"
WORK="${WORKROOT}/src"
rm -rf "${WORK}"
mkdir -p "${WORK}"
rsync -a --delete \
--exclude '.git' \
--exclude '.venv' \
--exclude 'dist' \
--exclude 'build' \
--exclude '__pycache__' \
--exclude '.pytest_cache' \
--exclude '.mypy_cache' \
"${SRC}/" "${WORK}/"
cd "${WORK}"
# Determine version from pyproject.toml unless provided
if [ -n "${VERSION:-}" ]; then
ver="${VERSION}"
else
ver="$(grep -m1 '^version = ' pyproject.toml | sed -E 's/version = "([^"]+)".*/\1/')"
fi
TOPDIR="${WORKROOT}/rpmbuild"
mkdir -p "${TOPDIR}"/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
tarball="${TOPDIR}/SOURCES/bouquin-sqlcipher4-${ver}.tar.gz"
tar -czf "${tarball}" --transform "s#^#bouquin-sqlcipher4/#" .
spec_src="rpm/bouquin-sqlcipher4.spec"
cp -v "${spec_src}" "${TOPDIR}/SPECS/bouquin-sqlcipher4.spec"
rpmbuild -ba "${TOPDIR}/SPECS/bouquin-sqlcipher4.spec" \
--define "_topdir ${TOPDIR}" \
--define "upstream_version ${ver}"
shopt -s nullglob
cp -v "${TOPDIR}"/RPMS/*/*.rpm "${OUT}/" || true
cp -v "${TOPDIR}"/SRPMS/*.src.rpm "${OUT}/" || true
echo "Artifacts copied to ${OUT}"
EOF
RUN chmod +x /usr/local/bin/build-rpm
WORKDIR /work
ENTRYPOINT ["/usr/local/bin/build-rpm"]