2019-03-18 17:51:07 +03:00
|
|
|
#!/bin/bash
|
2023-04-28 14:18:07 +03:00
|
|
|
#
|
2021-06-21 23:34:43 +03:00
|
|
|
# Constructs the base container image used to build Weston within CI. Per the
|
|
|
|
# comment at the top of .gitlab-ci.yml, any changes in this file must bump the
|
|
|
|
# $FDO_DISTRIBUTION_TAG variable so we know the container has to be rebuilt.
|
2019-03-18 17:51:07 +03:00
|
|
|
|
2019-11-21 16:03:03 +03:00
|
|
|
set -o xtrace -o errexit
|
2019-03-18 17:51:07 +03:00
|
|
|
|
2020-06-03 16:02:34 +03:00
|
|
|
# These get temporary installed for building Linux and then force-removed.
|
|
|
|
LINUX_DEV_PKGS="
|
|
|
|
bc
|
|
|
|
bison
|
|
|
|
flex
|
|
|
|
"
|
|
|
|
|
2020-02-17 16:32:18 +03:00
|
|
|
# These get temporary installed for building Mesa and then force-removed.
|
|
|
|
MESA_DEV_PKGS="
|
|
|
|
bison
|
|
|
|
flex
|
|
|
|
gettext
|
|
|
|
libwayland-egl-backend-dev
|
|
|
|
libxrandr-dev
|
2021-08-16 18:49:52 +03:00
|
|
|
libxshmfence-dev
|
|
|
|
libxrandr-dev
|
2023-05-17 14:22:26 +03:00
|
|
|
llvm-${LLVM_VERSION}-dev
|
2020-02-17 16:32:18 +03:00
|
|
|
python3-mako
|
|
|
|
"
|
|
|
|
|
|
|
|
# Needed for running the custom-built mesa
|
|
|
|
MESA_RUNTIME_PKGS="
|
2023-05-17 14:22:26 +03:00
|
|
|
libllvm${LLVM_VERSION}
|
2020-02-17 16:32:18 +03:00
|
|
|
"
|
|
|
|
|
Add support for FreeRDP 3.x
With this, Weston can build against either FreeRDP 3.x or 2.x depending
on what has been detected by meson (3.x takes priority).
The main source of changes is the settings are now opaque and require the
use of accessors. That was pretty mechanical and seems to work on 2.x as
well.
There are a few changes around constants getting a WINPR_ prefix, the UTF
conversion functions we used are obsolete, so use the proper "new" ones,
and other fairly minor things.
The key & cert management changed rather completely, libfreerdp won't load
files for us, we have to use the helpers to do so, and I *think* the RDP RSA
key and SSL key use the same setting location. Seems to work with SSL at
least.
There was also a minor glitch with keyboard input, KBD_FLAGS_DOWN is basically
never set. It appears to be an upstream FreeRDP change in 3.x, it was being
set incorrectly (always on any key down) while it should only be set on
repeats. However the fastpath input code has no way to set it from what I
can tell, so it's just loss. We instead ignore it.
Note that the screen size is odd (and different between freerdp client and
remmina), it also won't adjust dynamically when the window is resized. I
don't think this relates to my port though, I observe the same behaviour
with the packaged FreeRDP 2 based Weston, but I can try to look into it
later
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2024-08-02 08:45:33 +03:00
|
|
|
if [ x"$USE_BOOKWORM_BACKPORTS" = "xy" ] ; then
|
|
|
|
echo 'deb http://deb.debian.org/debian bookworm-backports main' >> /etc/apt/sources.list
|
|
|
|
fi
|
2019-03-18 17:51:07 +03:00
|
|
|
apt-get update
|
2019-11-21 16:04:28 +03:00
|
|
|
apt-get -y --no-install-recommends install \
|
|
|
|
autoconf \
|
|
|
|
automake \
|
|
|
|
build-essential \
|
2023-05-17 14:22:26 +03:00
|
|
|
clang-${LLVM_VERSION} \
|
2019-11-21 16:04:28 +03:00
|
|
|
curl \
|
|
|
|
doxygen \
|
2022-06-28 11:47:18 +03:00
|
|
|
graphviz \
|
2019-11-21 16:06:30 +03:00
|
|
|
gcovr \
|
2019-11-21 16:04:28 +03:00
|
|
|
git \
|
2023-04-28 14:18:07 +03:00
|
|
|
hwdata \
|
2019-11-21 16:06:30 +03:00
|
|
|
lcov \
|
2020-07-06 09:58:02 +03:00
|
|
|
libasound2-dev \
|
|
|
|
libbluetooth-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libcairo2-dev \
|
|
|
|
libcolord-dev \
|
|
|
|
libdbus-1-dev \
|
2021-08-16 18:49:52 +03:00
|
|
|
libdrm-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libegl1-mesa-dev \
|
2021-08-16 18:49:52 +03:00
|
|
|
libelf-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
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 \
|
2020-07-06 09:58:02 +03:00
|
|
|
libjack-jackd2-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libjpeg-dev \
|
|
|
|
libjpeg-dev \
|
|
|
|
libmtdev-dev \
|
|
|
|
libpam0g-dev \
|
|
|
|
libpango1.0-dev \
|
2022-06-02 03:32:15 +03:00
|
|
|
libpciaccess-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libpixman-1-dev \
|
|
|
|
libpng-dev \
|
2020-07-06 09:58:02 +03:00
|
|
|
libpulse-dev \
|
|
|
|
libsbc-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libsystemd-dev \
|
|
|
|
libtool \
|
|
|
|
libudev-dev \
|
|
|
|
libva-dev \
|
|
|
|
libvpx-dev \
|
2020-07-06 09:58:02 +03:00
|
|
|
libvulkan-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libwebp-dev \
|
|
|
|
libx11-dev \
|
|
|
|
libx11-xcb-dev \
|
|
|
|
libxcb1-dev \
|
|
|
|
libxcb-composite0-dev \
|
2021-08-16 18:49:52 +03:00
|
|
|
libxcb-dri2-0-dev \
|
|
|
|
libxcb-dri3-dev \
|
|
|
|
libxcb-glx0-dev \
|
|
|
|
libxcb-present-dev \
|
|
|
|
libxcb-randr0-dev \
|
|
|
|
libxcb-shm0-dev \
|
|
|
|
libxcb-sync-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libxcb-xfixes0-dev \
|
|
|
|
libxcb-xkb-dev \
|
|
|
|
libxcursor-dev \
|
2022-07-05 14:35:38 +03:00
|
|
|
libxcb-cursor-dev \
|
2021-08-16 18:49:52 +03:00
|
|
|
libxdamage-dev \
|
|
|
|
libxext-dev \
|
|
|
|
libxfixes-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
libxkbcommon-dev \
|
|
|
|
libxml2-dev \
|
2021-08-16 18:49:52 +03:00
|
|
|
libxxf86vm-dev \
|
2023-05-17 14:22:26 +03:00
|
|
|
lld-${LLVM_VERSION} \
|
|
|
|
llvm-${LLVM_VERSION} \
|
|
|
|
llvm-${LLVM_VERSION}-dev \
|
2019-11-21 16:04:28 +03:00
|
|
|
mesa-common-dev \
|
|
|
|
ninja-build \
|
|
|
|
pkg-config \
|
|
|
|
python3-pip \
|
2021-08-16 18:49:52 +03:00
|
|
|
python3-pygments \
|
2019-11-21 16:04:28 +03:00
|
|
|
python3-setuptools \
|
2020-06-03 16:02:34 +03:00
|
|
|
qemu-system \
|
|
|
|
sysvinit-core \
|
2021-08-16 18:49:52 +03:00
|
|
|
x11proto-dev \
|
2019-12-11 14:12:52 +03:00
|
|
|
xwayland \
|
gitlab-ci: Use virtme-ng for running our tests
virtme-ng is the an update version of virtme, and this patch uses
that instead of the one we had partially modified.
Besides that this partially reverts ad039cdfd2b47, 'backend-drm: Enable
atomic async flip support' and makes our CI happier. Specifically
ad039cdfd2b47 updated our kernel version from 6.3 to 6.9 but did not do
a FDO bum,p and with that, no container images were rebuilt. Effectively
we were still using 6.3.
Now, with the FDO bump, in this patch, we noticed that the drm-writeback
test is failing with linux kernel version 6.9.
So far, only 6.3 and 6.4 kernel versions seems to be working, that is,
without that drm writeback test timing out. The safest bet for the
time being, would be to keep our CI just use 6.3 kernel, until we
have proper version to update to.
Signed-off-by: Daniel Stone <daniel.stone@collabora.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2024-07-24 19:35:20 +03:00
|
|
|
python3-argcomplete \
|
|
|
|
flake8 pylint \
|
|
|
|
cargo rustc \
|
|
|
|
iproute2 udev \
|
2021-06-22 01:53:51 +03:00
|
|
|
$MESA_DEV_PKGS \
|
2021-06-22 01:49:32 +03:00
|
|
|
$MESA_RUNTIME_PKGS \
|
|
|
|
$LINUX_DEV_PKGS \
|
2019-11-21 16:04:28 +03:00
|
|
|
|
Add support for FreeRDP 3.x
With this, Weston can build against either FreeRDP 3.x or 2.x depending
on what has been detected by meson (3.x takes priority).
The main source of changes is the settings are now opaque and require the
use of accessors. That was pretty mechanical and seems to work on 2.x as
well.
There are a few changes around constants getting a WINPR_ prefix, the UTF
conversion functions we used are obsolete, so use the proper "new" ones,
and other fairly minor things.
The key & cert management changed rather completely, libfreerdp won't load
files for us, we have to use the helpers to do so, and I *think* the RDP RSA
key and SSL key use the same setting location. Seems to work with SSL at
least.
There was also a minor glitch with keyboard input, KBD_FLAGS_DOWN is basically
never set. It appears to be an upstream FreeRDP change in 3.x, it was being
set incorrectly (always on any key down) while it should only be set on
repeats. However the fastpath input code has no way to set it from what I
can tell, so it's just loss. We instead ignore it.
Note that the screen size is odd (and different between freerdp client and
remmina), it also won't adjust dynamically when the window is resized. I
don't think this relates to my port though, I observe the same behaviour
with the packaged FreeRDP 2 based Weston, but I can try to look into it
later
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2024-08-02 08:45:33 +03:00
|
|
|
if [ "$FREERDP_VERSION" -ne 0 ] ; then
|
|
|
|
apt-get -y --no-install-recommends install freerdp${FREERDP_VERSION}-dev
|
|
|
|
fi
|
2020-02-17 16:32:18 +03:00
|
|
|
|
2021-06-22 01:53:51 +03:00
|
|
|
# Actually build our dependencies ...
|
|
|
|
./.gitlab-ci/build-deps.sh
|
2020-07-06 09:58:02 +03:00
|
|
|
|
2021-04-14 23:37:36 +03:00
|
|
|
|
2021-06-22 01:53:51 +03:00
|
|
|
# And remove packages which are only required for our build dependencies,
|
|
|
|
# which we don't need bloating the image whilst we build and run Weston.
|
2021-06-22 01:49:32 +03:00
|
|
|
apt-get -y --autoremove purge $LINUX_DEV_PKGS $MESA_DEV_PKGS
|