blob: 4768f1d97240e523d7fd863252acd96e96c40e2f [file] [log] [blame]
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM registry.fedoraproject.org/fedora:36
WORKDIR /root
# Delete cruft fedora leaves in the homedir
RUN rm -rf /root/*
# Install dependencies, explicitly not enabling the updates repo so we are
# pinned at a particular fedora release.
RUN \
dnf -y --quiet --repo=fedora install \
clang \
git \
java-1.8.0-devel \
llvm \
mxml-devel \
npm \
pinentry \
rpm-build \
rpm-sign \
subversion \
unzip \
vim-minimal \
wine \
winetricks && \
dnf clean all
# Enable SBT pgp plugin
COPY src/plugins.sbt /root/.sbt/1.0/plugins/
# Install wix, including changes to allow WiX to run in wine on Linux. See
# src/wix_wine.sh for more details on why we need to do this and how it works
RUN \
curl -sS -L https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip -o wix311-binaries.zip && \
echo "6fd961c85e1e6adafb99ef50c9659e3eb83c84ecaf49f523e556788845b206e1857aba2c39409405d4cda1df9b30a552ce5aab808be5f8368a37a447d78d1a05 wix311-binaries.zip" | sha512sum --quiet -c - && \
mkdir /opt/wix311 && \
unzip -q wix311-binaries.zip -d /opt/wix311/ && \
rm wix311-binaries.zip
RUN mv /opt/wix311/{candle.exe,real-candle.exe}
RUN mv /opt/wix311/{light.exe,real-light.exe}
COPY src/wix_wine.sh /opt/wix311/candle.exe
COPY src/wix_wine.sh /opt/wix311/light.exe
# Install a pinned version of sbt, needed because the spt-rpm repository
# frequently adds new versions.
RUN \
dnf -y --quiet --repofrompath=sbt-rpm,https://repo.scala-sbt.org/scalasbt/rpm --repo=sbt-rpm --nogpgcheck install \
sbt-1.7.1 && \
dnf clean all
# Install a pinned version of yarn, needed because the npm repository
# frequently adds new versions.
RUN \
npm --no-update-notifier install --global yarn@1.22.19
# Install and set the entrypoint
COPY src/daffodil-release-candidate /usr/bin/
ENTRYPOINT ["/usr/bin/daffodil-release-candidate"]