6 export DEBIAN_FRONTEND
=noninteractive
8 # Ephemeral packages (installed for this script and removed again at the end)
24 apt-get
install -y --no-remove \
28 . .gitlab-ci
/container
/container_pre_build.sh
31 # Debian's pkg-config wrapers for mingw are broken, and there's no sign that
32 # they're going to be fixed, so we'll just have to fix it ourselves
33 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
34 cat >/usr
/local
/bin
/x86_64-w64-mingw32-pkg-config
<<EOF
37 PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
39 chmod +x
/usr
/local
/bin
/x86_64-w64-mingw32-pkg-config
42 # dependencies where we want a specific version
43 export XORG_RELEASES
=https
://xorg.freedesktop.org
/releases
/individual
44 export XCB_RELEASES
=https
://xcb.freedesktop.org
/dist
45 export WAYLAND_RELEASES
=https
://wayland.freedesktop.org
/releases
47 export XORGMACROS_VERSION
=util-macros-1.19
.0
48 export LIBDRM_VERSION
=libdrm-2.4
.100
49 export XCBPROTO_VERSION
=xcb-proto-1.13
50 export LIBXCB_VERSION
=libxcb-1.13
51 export LIBWAYLAND_VERSION
=wayland-1.15
.0
52 export WAYLAND_PROTOCOLS_VERSION
=wayland-protocols-1.12
54 wget
$XORG_RELEASES/util
/$XORGMACROS_VERSION.
tar.bz2
55 tar -xvf $XORGMACROS_VERSION.
tar.bz2
&& rm $XORGMACROS_VERSION.
tar.bz2
56 cd $XORGMACROS_VERSION; .
/configure
; make install; cd ..
57 rm -rf $XORGMACROS_VERSION
59 wget
$XCB_RELEASES/$XCBPROTO_VERSION.
tar.bz2
60 tar -xvf $XCBPROTO_VERSION.
tar.bz2
&& rm $XCBPROTO_VERSION.
tar.bz2
61 cd $XCBPROTO_VERSION; .
/configure
; make install; cd ..
62 rm -rf $XCBPROTO_VERSION
64 wget
$XCB_RELEASES/$LIBXCB_VERSION.
tar.bz2
65 tar -xvf $LIBXCB_VERSION.
tar.bz2
&& rm $LIBXCB_VERSION.
tar.bz2
66 cd $LIBXCB_VERSION; .
/configure
; make install; cd ..
67 rm -rf $LIBXCB_VERSION
69 wget https
://dri.freedesktop.org
/libdrm
/$LIBDRM_VERSION.
tar.bz2
70 tar -xvf $LIBDRM_VERSION.
tar.bz2
&& rm $LIBDRM_VERSION.
tar.bz2
72 meson build
-D vc4
=true
-D freedreno
=true
-D etnaviv
=true
-D libdir
=lib
/x86_64-linux-gnu
; ninja
-C build
install
73 rm -rf build
; meson
--cross-file=/cross_file-ppc64el.txt build
-D libdir
=lib
/powerpc64le-linux-gnu
; ninja
-C build
install
74 rm -rf build
; meson
--cross-file=/cross_file-i386.txt build
-D libdir
=lib
/i386-linux-gnu
; ninja
-C build
install
76 rm -rf $LIBDRM_VERSION
78 wget
$WAYLAND_RELEASES/$LIBWAYLAND_VERSION.
tar.xz
79 tar -xvf $LIBWAYLAND_VERSION.
tar.xz
&& rm $LIBWAYLAND_VERSION.
tar.xz
80 cd $LIBWAYLAND_VERSION; .
/configure
--enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
81 rm -rf $LIBWAYLAND_VERSION
83 wget
$WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.
tar.xz
84 tar -xvf $WAYLAND_PROTOCOLS_VERSION.
tar.xz
&& rm $WAYLAND_PROTOCOLS_VERSION.
tar.xz
85 cd $WAYLAND_PROTOCOLS_VERSION; .
/configure
; make install; cd ..
86 rm -rf $WAYLAND_PROTOCOLS_VERSION
89 # The version of libglvnd-dev in debian is too old
90 # Check this page to see when this local compilation can be dropped in favour of the package:
91 # https://packages.debian.org/libglvnd-dev
93 wget https
://gitlab.freedesktop.org
/glvnd
/libglvnd
/-/archive
/v
$GLVND_VERSION/libglvnd-v
$GLVND_VERSION.
tar.gz
94 tar -xvf libglvnd-v
$GLVND_VERSION.
tar.gz
&& rm libglvnd-v
$GLVND_VERSION.
tar.gz
95 pushd libglvnd-v
$GLVND_VERSION; .
/autogen.sh
; .
/configure
; make install; popd
96 rm -rf libglvnd-v
$GLVND_VERSION
100 git clone https
://gitlab.freedesktop.org
/mesa
/shader-db.git
--depth 1
101 rm -rf shader-db
/.git
107 ############### Uninstall the build software
112 . .gitlab-ci
/container
/container_post_build.sh