debian-install.sh (4288B)
1 #!/bin/bash 2 3 set -e 4 set -o xtrace 5 6 # Packages which are needed by this script, but not for the xserver build 7 EPHEMERAL=" 8 libcairo2-dev 9 libevdev-dev 10 libexpat-dev 11 libgles2-mesa-dev 12 libinput-dev 13 libxkbcommon-dev 14 x11-utils 15 x11-xserver-utils 16 xauth 17 xvfb 18 " 19 20 apt-get install -y \ 21 $EPHEMERAL \ 22 autoconf \ 23 automake \ 24 bison \ 25 build-essential \ 26 ca-certificates \ 27 ccache \ 28 dpkg-dev \ 29 flex \ 30 gcc-mingw-w64-i686 \ 31 git \ 32 libaudit-dev \ 33 libbsd-dev \ 34 libcairo2 \ 35 libdbus-1-dev \ 36 libdmx-dev \ 37 libdrm-dev \ 38 libegl1-mesa-dev \ 39 libepoxy-dev \ 40 libevdev2 \ 41 libexpat1 \ 42 libffi-dev \ 43 libgbm-dev \ 44 libgcrypt-dev \ 45 libgl1-mesa-dev \ 46 libgles2 \ 47 libglx-mesa0 \ 48 libinput10 \ 49 libnvidia-egl-wayland-dev \ 50 libpciaccess-dev \ 51 libpixman-1-dev \ 52 libselinux1-dev \ 53 libsystemd-dev \ 54 libtool \ 55 libudev-dev \ 56 libunwind-dev \ 57 libx11-dev \ 58 libx11-xcb-dev \ 59 libxau-dev \ 60 libxaw7-dev \ 61 libxcb-glx0-dev \ 62 libxcb-icccm4-dev \ 63 libxcb-image0-dev \ 64 libxcb-keysyms1-dev \ 65 libxcb-randr0-dev \ 66 libxcb-render-util0-dev \ 67 libxcb-render0-dev \ 68 libxcb-shape0-dev \ 69 libxcb-shm0-dev \ 70 libxcb-util0-dev \ 71 libxcb-xf86dri0-dev \ 72 libxcb-xkb-dev \ 73 libxcb-xv0-dev \ 74 libxcb1-dev \ 75 libxdmcp-dev \ 76 libxext-dev \ 77 libxfixes-dev \ 78 libxfont-dev \ 79 libxi-dev \ 80 libxinerama-dev \ 81 libxkbcommon0 \ 82 libxkbfile-dev \ 83 libxmu-dev \ 84 libxmuu-dev \ 85 libxpm-dev \ 86 libxrender-dev \ 87 libxres-dev \ 88 libxshmfence-dev \ 89 libxt-dev \ 90 libxtst-dev \ 91 libxv-dev \ 92 libz-mingw-w64-dev \ 93 mesa-common-dev \ 94 meson \ 95 mingw-w64-tools \ 96 nettle-dev \ 97 pkg-config \ 98 python3-mako \ 99 python3-numpy \ 100 python3-six \ 101 xfonts-utils \ 102 xkb-data \ 103 xtrans-dev \ 104 xutils-dev 105 106 .gitlab-ci/cross-prereqs-build.sh i686-w64-mingw32 107 108 cd /root 109 110 # xserver requires libxcvt 111 git clone https://gitlab.freedesktop.org/xorg/lib//libxcvt.git --depth 1 --branch=libxcvt-0.1.0 112 cd libxcvt 113 meson _build 114 ninja -C _build -j${FDO_CI_CONCURRENT:-4} install 115 cd .. 116 rm -rf libxcvt 117 118 # xserver requires xorgproto >= 2021.4.99.2 for XI 2.3.99.1 119 git clone https://gitlab.freedesktop.org/xorg/proto/xorgproto.git --depth 1 --branch=xorgproto-2021.4.99.2 120 pushd xorgproto 121 ./autogen.sh 122 make -j${FDO_CI_CONCURRENT:-4} install 123 popd 124 rm -rf xorgproto 125 126 # weston 9.0 requires libwayland >= 1.18 127 git clone https://gitlab.freedesktop.org/wayland/wayland.git --depth 1 --branch=1.18.0 128 cd wayland 129 meson _build -D{documentation,dtd_validation}=false 130 ninja -C _build -j${FDO_CI_CONCURRENT:-4} install 131 cd .. 132 rm -rf wayland 133 134 # Xwayland requires wayland-protocols >= 1.18, but Debian buster has 1.17 only 135 git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git --depth 1 --branch=1.18 136 cd wayland-protocols 137 ./autogen.sh 138 make -j${FDO_CI_CONCURRENT:-4} install 139 cd .. 140 rm -rf wayland-protocols 141 142 # Xwayland requires weston > 5.0, but Debian buster has 5.0 only 143 git clone https://gitlab.freedesktop.org/wayland/weston.git --depth 1 --branch=9.0 144 cd weston 145 meson _build -Dbackend-{drm,drm-screencast-vaapi,fbdev,rdp,wayland,x11}=false \ 146 -Dbackend-default=headless -Dcolor-management-{colord,lcms}=false \ 147 -Ddemo-clients=false -Dimage-{jpeg,webp}=false \ 148 -D{pipewire,remoting,screenshare,test-junit-xml,wcap-decode,weston-launch,xwayland}=false \ 149 -Dshell-{fullscreen,ivi,kiosk}=false -Dsimple-clients= 150 ninja -C _build -j${FDO_CI_CONCURRENT:-4} install 151 cd .. 152 rm -rf weston 153 154 git clone https://gitlab.freedesktop.org/mesa/piglit.git --depth 1 155 156 git clone https://gitlab.freedesktop.org/xorg/test/xts --depth 1 157 cd xts 158 ./autogen.sh 159 xvfb-run make -j${FDO_CI_CONCURRENT:-4} 160 cd .. 161 162 git clone https://gitlab.freedesktop.org/xorg/test/rendercheck --depth 1 163 cd rendercheck 164 meson build 165 ninja -j${FDO_CI_CONCURRENT:-4} -C build install 166 cd .. 167 168 rm -rf piglit/.git xts/.git piglit/tests/spec/ rendercheck/ 169 170 echo '[xts]' > piglit/piglit.conf 171 echo 'path=/root/xts' >> piglit/piglit.conf 172 173 find -name \*.a -o -name \*.o -o -name \*.c -o -name \*.h -o -name \*.la\* | xargs rm 174 strip xts/xts5/*/.libs/* 175 176 # Running meson dist requires xkbcomp 1.4.1 or newer, but Debian buster has 1.4.0 only 177 git clone https://gitlab.freedesktop.org/xorg/app/xkbcomp.git --depth 1 --branch=xkbcomp-1.4.1 178 cd xkbcomp 179 ./autogen.sh --datarootdir=/usr/share 180 make -j${FDO_CI_CONCURRENT:-4} install 181 cd .. 182 rm -rf xkbcomp 183 184 apt-get purge -y \ 185 $EPHEMERAL 186 187 apt-get autoremove -y --purge