build-environments/linux-fresh/Dockerfile

104 lines
3.8 KiB
Docker
Raw Normal View History

linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
FROM ubuntu:18.04
LABEL maintainer="yuzu"
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
ENV CLANG_VER=12
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
ENV CMAKE_VER=3.16.3
ENV DEBIAN_FRONTEND=noninteractive
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
ENV GCC_VER=10
ENV QT_PKG_VER=515
ENV QT_VER=5.15.2
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
ENV UBUNTU_VER=bionic
# Create a user account yuzu (UID 1027) that the container will run as
RUN useradd -m -u 1027 -s /bin/bash yuzu && \
apt-get update && apt-get -y full-upgrade && \
apt-get install --no-install-recommends -y \
autoconf \
automake \
build-essential \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
ccache \
file \
gpg-agent \
liblz4-dev \
libopus-dev \
libssl-dev \
libtool \
libusb-1.0-0-dev \
libzip-dev \
libzstd-dev \
nasm \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
ninja-build \
python3-pip \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
python3-setuptools \
software-properties-common \
unzip \
wget \
zlib1g-dev \
zsync && \
pip3 install conan && \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
# Install updated versions of FFmpeg, GCC, Qt, and SDL2 from launchpad repositories
add-apt-repository -y ppa:beineri/opt-qt-${QT_VER}-${UBUNTU_VER} && \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
add-apt-repository -y ppa:cybermax-dexter/sdl2-backport && \
add-apt-repository -y ppa:jonathonf/ffmpeg-4 && \
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
2021-12-23 07:54:09 +00:00
add-apt-repository -y ppa:git-core/ppa && \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
apt-get update -y && \
apt-get install --no-install-recommends -y \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
g++-${GCC_VER} \
gcc-${GCC_VER} \
2021-12-23 07:54:09 +00:00
git \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
libavcodec-dev \
libavutil-dev \
libsdl2-dev \
libswscale-dev \
qt${QT_PKG_VER}base \
qt${QT_PKG_VER}tools \
qt${QT_PKG_VER}wayland \
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
qt${QT_PKG_VER}webengine && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_VER} ${GCC_VER} && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${GCC_VER} ${GCC_VER} && \
# Install clang from apt.llvm.org
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
echo "deb http://apt.llvm.org/${UBUNTU_VER}/ llvm-toolchain-${UBUNTU_VER}-${CLANG_VER} main" >> /etc/apt/sources.list && \
apt-get update -y && \
apt-get install --no-install-recommends -y \
clang-${CLANG_VER} && \
ln -s $(which clang-${CLANG_VER}) /usr/bin/clang && \
ln -s $(which clang++-${CLANG_VER}) /usr/bin/clang++ && \
dpkg-reconfigure ccache && \
apt-get clean autoclean && \
apt-get autoremove --yes && \
rm -rf /var/lib/apt /var/lib/dpkg /var/lib/cache /var/lib/log
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
# Install glslangValidator from upstream
# glslangValidator is not available from Ubuntu's Bionic repositories.
RUN cd /tmp && \
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip && \
unzip glslang-master-linux-Release.zip -d /usr && \
rm -v glslang-master-linux-Release.zip
# Install CMake from upstream
# yuzu requires CMake version 3.15, however Ubuntu only provides 3.10 to Bionic.
RUN cd /tmp && \
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-Linux-x86_64.tar.gz && \
tar xvf cmake-${CMAKE_VER}-Linux-x86_64.tar.gz && \
cp -rv cmake-${CMAKE_VER}-Linux-x86_64/* /usr && \
rm -rf cmake-*
# Install Boost 1.75.0 from yuzu-emu/ext-linux-bin
RUN cd /tmp && \
wget https://github.com/yuzu-emu/ext-linux-bin/raw/main/boost/boost_1_75_0.tar.xz &&\
tar xvf boost_1_75_0.tar.xz && \
chown -R root:root boost_1_75_0/ && \
cp -rv boost_1_75_0/include boost_1_75_0/lib /usr && \
rm -rf boost*
# Install hidapi 0.10.1 from yuzu-emu/ext-linux-bin
RUN cd /tmp && \
wget https://github.com/yuzu-emu/ext-linux-bin/raw/main/hidapi/hidapi_0_10_1.tar.xz &&\
tar xvf hidapi_0_10_1.tar.xz && \
chown -R root:root hidapi/ && \
cp -rv hidapi/include hidapi/lib hidapi/share /usr && \
rm -rf hidapi*
linux-fresh: Downgrade to Bionic Beaver This is in preparation to have a legal AppImage when Ubuntu 16.04 is deprecated in April 2021. As stated in [AppImage's documentation](https://docs.appimage.org/packaging-guide/distribution.html#appimagehub), to distribute yuzu on AppImageHub, an AppImage needs to compatible with the oldest still supported release of Ubuntu, which will be 18.04 in April. Beyond making AppImages, this brings a number of other changes: - The needed CMake, GCC, and Qt versions are now variables at the top of the Dockerfile. - The dependencies list is sorted lexicographically. - Added package `file`, required for the Qt linuxdeploy plugin, thus superseding #23. - Added package `software-properties-common`, required to use `add-apt-repository`. - Added package `python3-setuptools`, a dependency of `python3-pip` that somehow isn't installed with it by default. - Removed package `python` as yuzu no longer uses Unicorn, thus Python 2 was no longer required. - Moved installing GCC, Qt, FFmpeg, and SDL2 from the main Ubuntu repositories to updated launchpad repositories. - Removed packages `cmake` and `glslang-tools`, instead opting to download and install them from their upstream repositories. - In the case of `glslang-tools`, Ubuntu does not have any equivalent package for Bionic. This does not upgrade any package versions. This only brings Ubuntu 18.04 roughly to parity with the current 20.04 container. Once an AppImage is in action, we can upgrade the GCC and Qt versions to our heart's content (up to GCC 11 and Qt 5.15.2). Until then, it should be said **Mainline builds are not compatible with Ubuntu versions below 20.04 despite using 18.04 to build yuzu**. We need an AppImage to make yuzu compatible with older distro releases, and we need an AppImage to make yuzu compatible with current releases if we upgrade Qt and/or GCC. Another note is that the Qt version here is being downgraded from 5.12.8 to 5.12.6. The Qt launchpad PPA used here did not release usable `qt512webengine` packages for 5.12.8 nor 5.12.7, and since upgrading to 5.12.10 would break compatibility with wild Ubuntu 20.04 installs, a downgrade is necessary. Hopefully this is a temporary change during our transition to 5.15.2. Massive thank you to @AniLeo from RPCS3 for telling me about updated GCC and Qt launchpad PPAs.
2020-12-27 08:29:09 +00:00
# Setup paths for Qt binaries
ENV LD_LIBRARY_PATH=/opt/qt${QT_PKG_VER}/lib:${LD_LIBRARY_PATH}
ENV PATH=/opt/qt${QT_PKG_VER}/bin:${PATH}
USER 1027
COPY --chown=yuzu:yuzu settings.yml /home/yuzu/.conan/settings.yml