mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-07-23 08:55:26 +02:00

This patch moves already existing packaging scripts from jami-project into client-qt. Introduced changes are: + WITH_SUBMODULE must search in system lib too because for packaging client-qt (for rpm) will be built separately, and will depend on jami-daemon. + Fix appdata.xml (replace old wiki with docs.jami.net) + path changes (because we build in client-qt not jami-project). GitLab: #853 Change-Id: I1313830d85c8094fcbcc52e22033a2add7b1e89f
84 lines
3.7 KiB
Text
84 lines
3.7 KiB
Text
ARG RISK=edge
|
|
ARG UBUNTU=focal
|
|
|
|
FROM ubuntu:$UBUNTU as builder
|
|
ARG RISK
|
|
ARG UBUNTU
|
|
RUN echo "Building snapcraft:$RISK in ubuntu:$UBUNTU"
|
|
|
|
# Grab dependencies
|
|
RUN apt-get update
|
|
RUN apt-get dist-upgrade --yes
|
|
RUN apt-get install --yes \
|
|
curl \
|
|
jq \
|
|
squashfs-tools
|
|
|
|
# Grab the core snap (for backwards compatibility) from the stable channel and
|
|
# unpack it in the proper place.
|
|
RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core' | jq '.download_url' -r) --output core.snap
|
|
RUN mkdir -p /snap/core
|
|
RUN unsquashfs -d /snap/core/current core.snap
|
|
|
|
# Grab the core22 snap (which snapcraft uses as a base) from the stable channel
|
|
# and unpack it in the proper place.
|
|
RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core22?channel='$RISK | jq '.download_url' -r) --output core22.snap
|
|
RUN mkdir -p /snap/core22
|
|
RUN unsquashfs -d /snap/core22/current core22.snap
|
|
|
|
# Grab the core20 snap (which snapcraft uses as a base) from the stable channel
|
|
# and unpack it in the proper place.
|
|
RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core20' | jq '.download_url' -r) --output core20.snap
|
|
RUN mkdir -p /snap/core20
|
|
RUN unsquashfs -d /snap/core20/current core20.snap
|
|
|
|
# Grab the core20 snap (which snapcraft uses as a base) from the stable channel
|
|
# and unpack it in the proper place.
|
|
RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/lxd' | jq '.download_url' -r) --output lxd.snap
|
|
RUN mkdir -p /snap/lxd
|
|
RUN unsquashfs -d /snap/lxd/current lxd.snap
|
|
|
|
# Grab the snapcraft snap from the $RISK channel and unpack it in the proper
|
|
# place.
|
|
RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/snapcraft?channel='$RISK | jq '.download_url' -r) --output snapcraft.snap
|
|
RUN mkdir -p /snap/snapcraft
|
|
RUN unsquashfs -d /snap/snapcraft/current snapcraft.snap
|
|
|
|
# Fix Python3 installation: Make sure we use the interpreter from
|
|
# the snapcraft snap:
|
|
RUN unlink /snap/snapcraft/current/usr/bin/python3
|
|
RUN ln -s /snap/snapcraft/current/usr/bin/python3.* /snap/snapcraft/current/usr/bin/python3
|
|
RUN echo /snap/snapcraft/current/lib/python3.*/site-packages >> /snap/snapcraft/current/usr/lib/python3/dist-packages/site-packages.pth
|
|
|
|
# Create a snapcraft runner (TODO: move version detection to the core of
|
|
# snapcraft).
|
|
RUN mkdir -p /snap/bin
|
|
RUN echo "#!/bin/sh" > /snap/bin/snapcraft
|
|
RUN snap_version="$(awk '/^version:/{print $2}' /snap/snapcraft/current/meta/snap.yaml | tr -d \')" && echo "export SNAP_VERSION=\"$snap_version\"" >> /snap/bin/snapcraft
|
|
RUN echo 'exec "$SNAP/usr/bin/python3" "$SNAP/bin/snapcraft" "$@"' >> /snap/bin/snapcraft
|
|
RUN chmod +x /snap/bin/snapcraft
|
|
|
|
# Multi-stage build, only need the snaps from the builder. Copy them one at a
|
|
# time so they can be cached.
|
|
FROM ubuntu:$UBUNTU
|
|
COPY --from=builder /snap/core /snap/core
|
|
COPY --from=builder /snap/core22 /snap/core22
|
|
COPY --from=builder /snap/core20 /snap/core20
|
|
COPY --from=builder /snap/lxd /snap/lxd
|
|
COPY --from=builder /snap/snapcraft /snap/snapcraft
|
|
COPY --from=builder /snap/bin/snapcraft /snap/bin/snapcraft
|
|
|
|
# Generate locale and install dependencies.
|
|
RUN apt-get update && apt-get dist-upgrade --yes && apt-get install --yes snapd sudo apt-transport-https locales && locale-gen en_US.UTF-8
|
|
|
|
# Set the proper environment.
|
|
ENV LANG="en_US.UTF-8"
|
|
ENV LANGUAGE="en_US:en"
|
|
ENV LC_ALL="en_US.UTF-8"
|
|
ENV PATH="/snap/bin:/snap/snapcraft/current/usr/bin:/snap/snapcraft/current/libexec/snapcraft/:$PATH"
|
|
ENV SNAP="/snap/snapcraft/current"
|
|
ENV SNAP_NAME="snapcraft"
|
|
ENV SNAP_ARCH="amd64"
|
|
|
|
ADD extras/packaging/gnu-linux/scripts/build-package-snap.sh /opt/build-package-snap.sh
|
|
CMD ["/opt/build-package-snap.sh"]
|