blob: b29d8f9f7179bfc3c5ecb472d1b6a211faecb614 [file] [log] [blame]
ARG DISTRO_FROM
FROM ${DISTRO_FROM}
ARG DISTRO
ARG FEED
ARG UID
COPY Release.key /tmp/Release.key
RUN useradd --uid=${UID} -m user
# Only install build-essential here, and what's needed to add the Osmocom
# repository. Everything else must be defined as dependency in the package
# build recipe. For rpm-based distributions, there is no build-essential or
# similar package. Instead add relevant packages from prjconf, e.g.:
# https://build.opensuse.org/projects/CentOS:CentOS-8/prjconf
# For debian, make sure we don't have man pages as otherwise it takes some time
# to regenerate the manuals database when installing build dependencies.
# SYS#5818: using almalinux:8 instead of centos:8
RUN case "$DISTRO" in \
debian*|ubuntu*) \
echo "path-exclude=/usr/share/man/*" \
> /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
rm -rf /usr/share/man/ && \
apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
fakeroot \
git \
gnupg2 \
iproute2 \
&& \
apt-get clean \
;; \
almalinux*) \
dnf -y install \
autoconf \
automake \
binutils \
dnf-utils \
gcc \
gcc-c++ \
glibc-devel \
iproute \
libtool \
make \
redhat-rpm-config \
rpm-build \
rpmdevtools \
wget && \
yum config-manager --set-enabled powertools && \
su user -c rpmdev-setuptree \
;; \
centos:7) \
yum -y install \
autoconf \
automake \
binutils \
dnf-utils \
gcc \
gcc-c++ \
glibc-devel \
iproute \
libtool \
make \
redhat-rpm-config \
rpm-build \
rpmdevtools \
wget && \
su user -c rpmdev-setuptree \
;; \
esac
# Add master repository, where packages immediately get updated after merging
# patches to master.
# sed: first letter uppercase (testing -> Testing)
RUN set -x; \
VERSION="$(echo "$DISTRO" | cut -d : -f 2 | sed 's/./\u&/')"; \
case "$DISTRO" in \
debian:*) \
apt-key add /tmp/Release.key && \
rm /tmp/Release.key && \
echo "deb https://downloads.osmocom.org/packages/osmocom:/$FEED/Debian_$VERSION/ ./" \
> /etc/apt/sources.list.d/osmocom-$FEED.list \
;; \
ubuntu:*) \
apt-key add /tmp/Release.key && \
rm /tmp/Release.key && \
echo "deb https://downloads.osmocom.org/packages/osmocom:/$FEED/xUbuntu_$VERSION/ ./" \
> /etc/apt/sources.list.d/osmocom-$FEED.list \
;; \
almalinux:*|centos:*) \
{ echo "[network_osmocom_$FEED]"; \
echo "name=osmocom:$FEED"; \
echo "type=rpm-md"; \
echo "baseurl=https://downloads.osmocom.org/packages/osmocom:/$FEED/CentOS_$VERSION/"; \
echo "gpgcheck=1"; \
echo "gpgkey=https://downloads.osmocom.org/packages/osmocom:/$FEED/CentOS_$VERSION/repodata/repomd.xml.key"; \
echo "enabled=1"; \
} > /etc/yum.repos.d/network:osmocom:$FEED.repo \
;; \
*) \
echo "can't install repo for $DISTRO" && \
exit 1 \
;; \
esac
WORKDIR /obs/