summaryrefslogtreecommitdiff
path: root/.gitlab-ci/Dockerfile
blob: 1a7359770760f03eaf5bb8f638d23d2084a56591 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
FROM fedora:34

RUN dnf update -y \
    && dnf install -y \
                      autoconf-archive \
                      brotli-devel \
                      clang-analyzer \
                      'dnf-command(builddep)' \
                      git \
                      glib2-doc \
                      gnutls-devel \
                      gobject-introspection-devel \
                      gtk-doc \
                      httpd \
                      krb5-devel \
                      lcov \
                      libasan \
                      libpsl-devel \
                      libnghttp2-devel \
                      lsof \
                      make \
                      meson \
                      mod_ssl \
                      python2.7 \
                      redhat-rpm-config \
                      samba-winbind-clients \
                      sqlite-devel \
                      sysprof-devel \
                      vala \
                      valgrind \
                      which \
    && dnf builddep -y glib2 nghttp2 vala \
    && dnf clean all \
    && python2.7 -m ensurepip \
    && pip2.7 install virtualenv autobahntestsuite \
    && pip3 install gi-docgen

# We need glib 2.70
RUN git clone https://gitlab.gnome.org/GNOME/glib.git \
    && pushd glib \
    && git checkout 2.69.1 \
    && meson _build --prefix=/usr -Dgtk_doc=true \
    && ninja -C _build install \
    && popd \
    && rm -rf glib

RUN git clone https://gitlab.gnome.org/GNOME/glib-networking.git \
    && pushd glib-networking \
    && git checkout f7b3250d3e3fce4ea02b00610d9f2148ade4a6ce \
    && meson _build --prefix=/usr \
    && ninja -C _build install \
    && popd \
    && rm -rf glib-networking

# Fedora 34 has a really outdated vala
RUN git clone https://gitlab.gnome.org/GNOME/vala.git \
    && pushd vala \
    && git checkout 0.50.10 \
    && ./autogen.sh --prefix=/usr \
    && make install \
    && popd \
    && rm -rf vala

# We install the docs for libsoup2 to host (idk why libsoup-docs package doesn't work)
RUN git clone https://gitlab.gnome.org/GNOME/libsoup.git \
    && pushd libsoup \
    && git checkout libsoup-2-74 \
    && meson _build --prefix=/usr -Dgtk_doc=true \
    && ninja -C _build libsoup-2.4-doc \
    && cp -R _build/docs/reference/html /usr/share/gtk-doc/html/libsoup-2.4 \
    && popd \
    && rm -rf libsoup

# Update libnghttp2 for do_invalid_header_rfc9113_received_test()
RUN git clone https://github.com/nghttp2/nghttp2.git \
    && pushd nghttp2 \
    && git checkout v1.50.0 \
    && autoreconf --install --symlink \
    && ./configure --prefix=/usr --disable-static --disable-examples \
    && make -j $(nproc) install \
    && popd \
    && rm -rf nghttp2

ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}
RUN useradd -u $HOST_USER_ID -ms /bin/bash user

USER user
WORKDIR /home/user

ENV LANG C.UTF-8