Home | History | Annotate | Line # | Download | only in ci
      1 FROM debian:testing
      2 
      3 ENV DEBIAN_FRONTEND=noninteractive
      4 
      5 RUN echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
      6 RUN echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
      7 RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d
      8 RUN echo 'exit 101' >> /usr/sbin/policy-rc.d
      9 RUN chmod +x /usr/sbin/policy-rc.d
     10 
     11 RUN dpkg --add-architecture arm64
     12 RUN echo deb-src http://deb.debian.org/debian testing main >> /etc/apt/sources.list
     13 RUN apt-get update && \
     14     apt-get -y install ca-certificates && \
     15     apt-get -y install --no-install-recommends \
     16       crossbuild-essential-arm64 \
     17       meson \
     18       g++ \
     19       git \
     20       ccache \
     21       pkg-config \
     22       python3-mako \
     23       python-numpy \
     24       python-six \
     25       python-mako \
     26       python3-pip \
     27       python3-setuptools \
     28       python3-six \
     29       python3-wheel \
     30       python3-jinja2 \
     31       bison \
     32       flex \
     33       libwayland-dev \
     34       gettext \
     35       cmake \
     36       bc \
     37       libssl-dev \
     38       lavacli \
     39       csvkit \
     40       curl \
     41       unzip \
     42       wget \
     43       debootstrap \
     44       procps \
     45       qemu-user-static \
     46       cpio \
     47       \
     48       libdrm-dev:arm64 \
     49       libx11-dev:arm64 \
     50       libxxf86vm-dev:arm64 \
     51       libexpat1-dev:arm64 \
     52       libsensors-dev:arm64 \
     53       libxfixes-dev:arm64 \
     54       libxdamage-dev:arm64 \
     55       libxext-dev:arm64 \
     56       x11proto-dev:arm64 \
     57       libx11-xcb-dev:arm64 \
     58       libxcb-dri2-0-dev:arm64 \
     59       libxcb-glx0-dev:arm64 \
     60       libxcb-xfixes0-dev:arm64 \
     61       libxcb-dri3-dev:arm64 \
     62       libxcb-present-dev:arm64 \
     63       libxcb-randr0-dev:arm64 \
     64       libxcb-sync-dev:arm64 \
     65       libxrandr-dev:arm64 \
     66       libxshmfence-dev:arm64 \
     67       libelf-dev:arm64 \
     68       libwayland-dev:arm64 \
     69       libwayland-egl-backend-dev:arm64 \
     70       libclang-7-dev:arm64 \
     71       zlib1g-dev:arm64 \
     72       libglvnd-core-dev:arm64 \
     73       wayland-protocols:arm64 \
     74       libpng-dev:arm64 && \
     75     rm -rf /var/lib/apt/lists
     76 
     77 RUN mkdir -p /artifacts/rootfs/deqp                                             && \
     78   wget https://github.com/KhronosGroup/VK-GL-CTS/archive/opengl-es-cts-3.2.5.0.zip && \
     79   unzip opengl-es-cts-3.2.5.0.zip -d /                                          && \
     80   rm opengl-es-cts-3.2.5.0.zip                                                  && \
     81   cd /VK-GL-CTS-opengl-es-cts-3.2.5.0                                           && \
     82   python3 external/fetch_sources.py                                             && \
     83   cd /artifacts/rootfs/deqp                                                     && \
     84   cmake -DDEQP_TARGET=wayland                                                      \
     85     -DCMAKE_BUILD_TYPE=Release                                                     \
     86     -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc                                       \
     87     -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++                                     \
     88     /VK-GL-CTS-opengl-es-cts-3.2.5.0                                            && \
     89   make -j$(nproc)                                                               && \
     90   rm -rf /artifacts/rootfs/deqp/external                                        && \
     91   rm -rf /artifacts/rootfs/deqp/modules/gles3                                   && \
     92   rm -rf /artifacts/rootfs/deqp/modules/gles31                                  && \
     93   rm -rf /artifacts/rootfs/deqp/modules/internal                                && \
     94   rm -rf /artifacts/rootfs/deqp/executor                                        && \
     95   rm -rf /artifacts/rootfs/deqp/execserver                                      && \
     96   rm -rf /artifacts/rootfs/deqp/modules/egl                                     && \
     97   rm -rf /artifacts/rootfs/deqp/framework                                       && \
     98   find . -name CMakeFiles | xargs rm -rf                                        && \
     99   find . -name lib\*.a | xargs rm -rf                                           && \
    100   du -sh *                                                                      && \
    101   rm -rf /VK-GL-CTS-opengl-es-cts-3.2.5.0
    102 
    103 # TODO: Switch to 5.2-rc* when the time comes
    104 COPY arm64.config /panfrost-ci/
    105 RUN mkdir -p /kernel                                                                   && \
    106   wget https://github.com/freedesktop/drm-misc/archive/drm-misc-next-2019-04-18.tar.gz && \
    107   tar xvfz drm-misc-next-2019-04-18.tar.gz -C /kernel --strip-components=1             && \
    108   rm drm-misc-next-2019-04-18.tar.gz                                                   && \
    109   cd /kernel                                                                           && \
    110   ARCH=arm64 CROSS_COMPILE="aarch64-linux-gnu-" ./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig /panfrost-ci/arm64.config && \
    111   ARCH=arm64 CROSS_COMPILE="aarch64-linux-gnu-" make -j12 Image dtbs                   && \
    112   cp arch/arm64/boot/Image /artifacts/.                                                && \
    113   cp arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb /artifacts/.                    && \
    114   rm -rf /kernel
    115 
    116 COPY create-rootfs.sh /artifacts/rootfs/
    117 RUN debootstrap --variant=minbase --arch=arm64 testing /artifacts/rootfs/ http://deb.debian.org/debian && \
    118     chroot /artifacts/rootfs sh /create-rootfs.sh                                                      && \
    119     rm /artifacts/rootfs/create-rootfs.sh
    120 
    121 ENTRYPOINT [""]