Files
build-containers/Dockerfile.ubuntu-32
Rémi Verschelde 1aec8652d3 mono: Update msbuild to 16.3, support for git branches
To get WebAssembly templates to actually work, we need to use
Mono 6.6 (currently in preview), which doesn't have tags yet
but is in the `2019-08` branch. So I dehardcoded the `mono-`
prefix for the git tree-ish to allow using `./build.sh 2019-08`.

6.6 doesn't build with msbuild 16.0, so I'm upgrading to its
matching version 16.3. There are no DEB files for 16.3 on the
EOL'ed Ubuntu 14.04, but it seems that the 16.04 packages install
cleanly.

We also backport a patch from mono's master branch to fix wasm
support further, and enable parallel build jobs for make.
2019-11-21 09:47:48 +01:00

44 lines
2.4 KiB
Docker

FROM i386/ubuntu:trusty
ARG mono_version
RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \
apt-get update && \
apt-get -y install wget && \
cd /root && \
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F' | apt-key add - && \
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8E51A6D660CD88D67D65221D90BD7EACED8E640A' | apt-key add - && \
echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' >> /etc/apt/sources.list && \
echo 'deb http://ppa.launchpad.net/mc3man/trusty-media/ubuntu trusty main' >> /etc/apt/sources.list && \
apt-get -y update && \
apt-get -y install --no-install-recommends \
autoconf automake bzip2 cmake curl gettext git libtool make perl scons xz-utils \
gcc-8 g++-8 libudev-dev libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev \
libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxinerama-dev yasm && \
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
ln -sf /usr/bin/gcc-8 /usr/bin/gcc && \
ln -sf /usr/bin/g++-8 /usr/bin/g++
RUN git clone https://github.com/mono/mono --branch ${mono_version} --single-branch && \
cd mono && git submodule update --init && \
NOCONFIGURE=1 ./autogen.sh && \
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=i386-linux-gnu && \
make -j && \
make install && \
cd .. && \
cert-sync /etc/ssl/certs/ca-certificates.crt && \
rm -rf /root/mono && \
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild_16.3+xamarinxplat.2019.08.08.00.55-0xamarin2+ubuntu1604b1_all.deb && \
wget https://download.mono-project.com/repo/ubuntu/pool/main/c/core-setup/msbuild-libhostfxr_3.0.0.2019.04.16.02.13-0xamarin3+ubuntu1604b1_i386.deb && \
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild-sdkresolver_16.3+xamarinxplat.2019.08.08.00.55-0xamarin2+ubuntu1604b1_all.deb && \
wget https://download.mono-project.com/repo/ubuntu/pool/main/n/nuget/nuget_5.2.0.6090.bin-0xamarin1+ubuntu1604b1_all.deb && \
dpkg -i --force-all *.deb && \
sed -i '/Depends.*mono/d' /var/lib/dpkg/status && \
ln -s /usr/bin/mono /usr/bin/cli && \
apt-get clean && \
rm -rf /var/lib/apt/lists/ && \
rm *.deb
CMD /bin/bash