e3f447eee8
The stable FreeRDP 2.x branch has been released, so let's rely on that maintained version and drop all the hacks for older versions. That makes the code and build cleaner. Signed-off-by: David Fort <contact@hardening-consulting.com>
166 lines
3.9 KiB
Bash
166 lines
3.9 KiB
Bash
#!/bin/bash
|
|
|
|
set -o xtrace -o errexit
|
|
|
|
# These get temporary installed for building Linux and then force-removed.
|
|
LINUX_DEV_PKGS="
|
|
bc
|
|
bison
|
|
flex
|
|
libelf-dev
|
|
"
|
|
|
|
# These get temporary installed for building Mesa and then force-removed.
|
|
MESA_DEV_PKGS="
|
|
bison
|
|
flex
|
|
gettext
|
|
libwayland-egl-backend-dev
|
|
libxrandr-dev
|
|
llvm-8-dev
|
|
python-mako
|
|
python3-mako
|
|
wayland-protocols
|
|
"
|
|
|
|
# Needed for running the custom-built mesa
|
|
MESA_RUNTIME_PKGS="
|
|
libllvm8
|
|
"
|
|
|
|
echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list
|
|
apt-get update
|
|
apt-get -y --no-install-recommends install \
|
|
autoconf \
|
|
automake \
|
|
build-essential \
|
|
curl \
|
|
doxygen \
|
|
git \
|
|
libasound2-dev \
|
|
libbluetooth-dev \
|
|
libcairo2-dev \
|
|
libcolord-dev \
|
|
libdbus-1-dev \
|
|
libegl1-mesa-dev \
|
|
libevdev-dev \
|
|
libexpat1-dev \
|
|
libffi-dev \
|
|
libgbm-dev \
|
|
libgdk-pixbuf2.0-dev \
|
|
libgles2-mesa-dev \
|
|
libglu1-mesa-dev \
|
|
libgstreamer1.0-dev \
|
|
libgstreamer-plugins-base1.0-dev \
|
|
libinput-dev \
|
|
libjack-jackd2-dev \
|
|
libjpeg-dev \
|
|
libjpeg-dev \
|
|
liblcms2-dev \
|
|
libmtdev-dev \
|
|
libpam0g-dev \
|
|
libpango1.0-dev \
|
|
libpixman-1-dev \
|
|
libpng-dev \
|
|
libpulse-dev \
|
|
libsbc-dev \
|
|
libsystemd-dev \
|
|
libtool \
|
|
libudev-dev \
|
|
libva-dev \
|
|
libvpx-dev \
|
|
libvulkan-dev \
|
|
libwayland-dev \
|
|
libwebp-dev \
|
|
libx11-dev \
|
|
libx11-xcb-dev \
|
|
libxcb1-dev \
|
|
libxcb-composite0-dev \
|
|
libxcb-xfixes0-dev \
|
|
libxcb-xkb-dev \
|
|
libxcursor-dev \
|
|
libxkbcommon-dev \
|
|
libxml2-dev \
|
|
mesa-common-dev \
|
|
ninja-build \
|
|
pkg-config \
|
|
python3-pip \
|
|
python3-setuptools \
|
|
qemu-system \
|
|
sysvinit-core \
|
|
xwayland \
|
|
$MESA_RUNTIME_PKGS
|
|
|
|
apt-get -y --no-install-recommends -t buster-backports install \
|
|
freerdp2-dev
|
|
|
|
pip3 install --user git+https://github.com/mesonbuild/meson.git@0.49
|
|
export PATH=$HOME/.local/bin:$PATH
|
|
# for documentation
|
|
pip3 install sphinx==2.1.0 --user
|
|
pip3 install breathe==4.13.0.post0 --user
|
|
pip3 install sphinx_rtd_theme==0.4.3 --user
|
|
|
|
apt-get -y --no-install-recommends install $LINUX_DEV_PKGS
|
|
git clone --depth=1 --branch=drm-next-2020-06-11-1 https://anongit.freedesktop.org/git/drm/drm.git linux
|
|
cd linux
|
|
make x86_64_defconfig
|
|
make kvmconfig
|
|
./scripts/config --enable CONFIG_DRM_VKMS
|
|
make oldconfig
|
|
make -j8
|
|
cd ..
|
|
mkdir /weston-virtme
|
|
mv linux/arch/x86/boot/bzImage /weston-virtme/bzImage
|
|
mv linux/.config /weston-virtme/.config
|
|
rm -rf linux
|
|
|
|
# Link to upstream virtme: https://github.com/amluto/virtme
|
|
#
|
|
# The reason why we are using a fork here is that it adds a patch to have the
|
|
# --script-dir command line option. With that we can run scripts that are in a
|
|
# certain folder when virtme starts, which is necessary in our use case.
|
|
#
|
|
# The upstream also has some commands that could help us to reach the same
|
|
# results: --script-sh and --script-exec. Unfornutately they are not completely
|
|
# implemented yet, so we had some trouble to use them and it was becoming
|
|
# hackery.
|
|
#
|
|
git clone https://github.com/ezequielgarcia/virtme
|
|
cd virtme
|
|
git checkout -b snapshot 69e3cb83b3405edc99fcf9611f50012a4f210f78
|
|
./setup.py install
|
|
cd ..
|
|
|
|
git clone --branch 1.17.0 --depth=1 https://gitlab.freedesktop.org/wayland/wayland
|
|
export MAKEFLAGS="-j4"
|
|
cd wayland
|
|
git show -s HEAD
|
|
mkdir build
|
|
cd build
|
|
../autogen.sh --disable-documentation
|
|
make install
|
|
cd ../../
|
|
|
|
apt-get -y --no-install-recommends install $MESA_DEV_PKGS
|
|
git clone --single-branch --branch master --shallow-since='2020-02-15' https://gitlab.freedesktop.org/mesa/mesa.git mesa
|
|
cd mesa
|
|
git checkout -b snapshot c7617d8908a970124321ce731b43d5996c3c5775
|
|
meson build -Dauto_features=disabled \
|
|
-Dgallium-drivers=swrast -Dvulkan-drivers= -Ddri-drivers=
|
|
ninja -C build install
|
|
cd ..
|
|
rm -rf mesa
|
|
|
|
rm -rf pipewire
|
|
git clone --single-branch --branch master https://gitlab.freedesktop.org/pipewire/pipewire.git pipewire
|
|
cd pipewire
|
|
git checkout -b snapshot db12f47505ddccb257acdc0fa2bb884aceb1b593
|
|
meson build
|
|
ninja -C build install
|
|
cd ..
|
|
rm -rf pipewire
|
|
|
|
apt-get -y --autoremove purge $LINUX_DEV_PKGS
|
|
apt-get -y --autoremove purge $MESA_DEV_PKGS
|