diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1d41e397a8..f10d2f7159 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,6 +33,7 @@ variables: value: "" FEDORA_AMD64_SUFFIX: 'amd64/fedora' + DEBIAN_AMD64_SUFFIX: 'amd64/debian' INDENT_AMD64_SUFFIX: 'amd64/gst-indent' COMMITLINT_AMD64_SUFFIX: 'amd64/commitlint' WINDOWS_AMD64_SUFFIX: 'amd64/windows' @@ -124,6 +125,7 @@ trigger: .fedora image: variables: + CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache/' FDO_BASE_IMAGE: 'registry.fedoraproject.org/fedora-toolbox:34' FDO_DISTRIBUTION_VERSION: '34' FDO_REPO_SUFFIX: "$FEDORA_AMD64_SUFFIX" @@ -140,6 +142,25 @@ fedora amd64 docker: # (which has faster network connectivity to the registry). tags: [ 'placeholder-job' ] +.debian image: + variables: + CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache_debian/' + FDO_BASE_IMAGE: "quay.io/toolbx-images/debian-toolbox:12" + FDO_DISTRIBUTION_VERSION: '12' + FDO_REPO_SUFFIX: "$DEBIAN_AMD64_SUFFIX" + FDO_DISTRIBUTION_TAG: "$DEBIAN_TAG-$GST_UPSTREAM_BRANCH" + FDO_DISTRIBUTION_EXEC: 'GIT_BRANCH=$CI_COMMIT_REF_NAME GIT_URL=$CI_REPOSITORY_URL bash ci/docker/debian/prepare.sh' + +debian amd64 docker: + extends: + - '.debian image' + - '.fdo.container-build@debian' + stage: 'preparation' + needs: [] + # Note: assumption is that placeholder jobs run on a packet runner + # (which has faster network connectivity to the registry). + tags: [ 'placeholder-job' ] + .gst-indent image: tags: [ 'placeholder-job' ] variables: @@ -264,7 +285,6 @@ commitlint: CCACHE_COMPILERCHECK: 'content' CCACHE_COMPRESS: 'true' CCACHE_BASEDIR: '/cache/gstreamer/gstreamer' - CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache/' # shared across everything really CCACHE_MAXSIZE: '10G' @@ -329,15 +349,10 @@ commitlint: - changes: - subprojects/gstreamer-vaapi/**/* -.build fedora x86_64: +.build simple: extends: - - '.fedora image' - - '.fdo.suffixed-image@fedora' - '.build' - '.build_ccache_vars' - needs: - - "trigger" - - "fedora amd64 docker" variables: GST_WERROR: "true" MESON_ARGS: "${SIMPLE_BUILD}" @@ -350,6 +365,15 @@ commitlint: - meson install --destdir $CI_PROJECT_DIR/destdir -C build - rm -rf $CI_PROJECT_DIR/destdir +.build fedora x86_64: + extends: + - '.fedora image' + - '.fdo.suffixed-image@fedora' + - '.build simple' + needs: + - "trigger" + - "fedora amd64 docker" + build fedora gcc: extends: '.build fedora x86_64' variables: @@ -405,6 +429,18 @@ build fedora clang: -Dgstreamer-sharp:tests=disabled --force-fallback-for=glib +build debian x86_64: + extends: + - '.debian image' + - '.fdo.suffixed-image@debian' + - '.build simple' + needs: + - "trigger" + - "debian amd64 docker" + variables: + BUILD_TYPE: "--default-library=shared" + BUILD_GST_DEBUG: "-Dgstreamer:gst_debug=true" + .build windows: image: $WINDOWS_IMAGE stage: 'build' diff --git a/.gitlab-image-tags.yml b/.gitlab-image-tags.yml index c0e92542a8..9609fd1870 100644 --- a/.gitlab-image-tags.yml +++ b/.gitlab-image-tags.yml @@ -5,7 +5,9 @@ variables: # If you are hacking on them or need a them to rebuild, its enough # to change any part of the string of the image you want. ### - FEDORA_TAG: '2024-04-10.0' + FEDORA_TAG: '2024-04-16.0' + + DEBIAN_TAG: '2024-04-22.0' INDENT_TAG: '2023-08-24.3' diff --git a/ci/docker/debian/deps.txt b/ci/docker/debian/deps.txt new file mode 100644 index 0000000000..73a91cea86 --- /dev/null +++ b/ci/docker/debian/deps.txt @@ -0,0 +1,283 @@ +apertium-regtest +appstream-util +autopoint +bash-completion +bat +bison +bubblewrap +busybox +ccache +clang +clang-tools +cmake +coinor-libcgl-dev +curl +desktop-file-utils +docutils-common +doxygen +dwz +elfutils +emscripten +ffmpeg +flex +flite1-dev +g++ +gcc +gdb +gettext +git +git-lfs +glslc +googletest +graphviz +gtk-doc-tools +guile-cairo-dev +iproute2 +iso-codes +itstool +ladspa-sdk +liba52-0.7.4-dev +libaa1-dev +liballeggl4-dev +libaom-dev +libasound2-dev +libass-dev +libatk1.0-dev +libavahi-client-dev +libavahi-common-dev +libavc1394-dev +libavcodec-dev +libavdevice-dev +libavfilter-dev +libavformat-dev +libavif-dev +libavutil-dev +libbluetooth-dev +libboost-system-dev +libbs2b-dev +libcaca-dev +libcairo2-dev +libcamera-dev +libcanberra-dev +libcap-dev +libcdio-dev +libcdparanoia-dev +libchromaprint-dev +libclang-dev +libcoap3-dev +libcurl4-openssl-dev +libdbus-glib2.0-cil-dev +libdca-dev +libde265-dev +libdirectfb-dev +libdrm-dev +libdrumstick-dev +libdv4-dev +libdvdnav-dev +libdvdread-dev +libdw-dev +libebur128-dev +libegl-dev +libespeak-ng-dev +libespeak-ng-libespeak-dev +libevdev-dev +libevent-dev +libexempi-dev +libexif-dev +libfaad-dev +libfftw3-bin +libfftw3-dev +libflac-dev +libfluidsynth-dev +libframe-dev +libfreeaptx-dev +libftgl-dev +libgbm-dev +libgdk-pixbuf-2.0-dev +libgeocode-glib-dev +libgirepository1.0-dev +libgl-dev +libgl1-mesa-dev +libgles-dev +libglib2.0-dev +libglib2.0-doc +libglx-dev +libgme-dev +libgnutls28-dev +libgraphene-1.0-dev +libgridsite-dev +libgsl-dev +libgsm1-dev +libgssdp-1.6-dev +libgtest-dev +libgtk-3-dev +libgtk-4-dev +libgtkmm-3.0-dev +libgudev-1.0-dev +libgupnp-igd-1.0-dev +libiec61883-dev +libinput-dev +libiptcdata0-dev +libjack-jackd2-dev +libjpeg62-turbo-dev +libjson-glib-dev +libjwt-gnutls-dev +libkate-dev +liblc3-dev +liblcms2-dev +libldacbt-abr-dev +libldacbt-enc-dev +liblilv-dev +liblogg4-dev +libltc-dev +liblttng-ust-dev +liblxi-dev +libmfx-dev +libmjpegtools-dev +libmodplug-dev +libmono-cil-dev +libmp3lame-dev +libmpcdec-dev +libmpeg2-4-dev +libmpeg3-dev +libmpg123-dev +libneon27-dev +libngtcp2-crypto-gnutls-dev +libnice-dev +libnx-x11-dev +libogg-dev +libopenal-dev +libopencore-amrnb-dev +libopencore-amrwb-dev +libopencv-dev +libopenexr-dev +libopengl-dev +libopenh264-dev +libopenjp2-7-dev +libopenmpt-dev +libopenni2-dev +libopus-dev +libpango1.0-dev +libpng-dev +libpolkit-gobject-1-dev +libpulse-dev +libpython3-all-dev +libqrencode-dev +libqt5waylandclient5-dev +libqt5x11extras5-dev +libraw1394-dev +librsvg2-dev +librtmp-dev +librust-wayland-protocols-dev +libsbc-dev +libsdl2-dev +libshaderc1 +libshout-dev +libsidplay1-dev +libsigc++-2.0-dev +libsndfile1-dev +libsndifsdl2-dev +libsoundtouch-dev +libsoup-3.0-dev +libsoup2.4-dev +libspandsp-dev +libspeex-dev +libsphinxbase-dev +libspice-client-glib-2.0-dev +libsrt-openssl-dev +libsrtp2-dev +libssh2-1-dev +libssl-dev +libsvtav1-dev +libsvtav1dec-dev +libsvtav1enc-dev +libsysprof-4-dev +libtag1-dev +libtaoframework-openal-cil-dev +libtaoframework-opengl-cil-dev +libtheora-dev +libtwolame-dev +libudev-dev +libunwind-dev +liburcu-dev +libusb-1.0-0-dev +libv4l-dev +libva-dev +libvisual-0.4-dev +libvo-aacenc-dev +libvo-amrwbenc-dev +libvorbis-dev +libvpx-dev +libvulkan-dev +libwacom-dev +libwavpack-dev +libwayland-dev +libwebp-dev +libwebrtc-audio-processing-dev +libwildmidi-dev +libwpe-1.0-dev +libwpebackend-fdo-1.0-dev +libwpewebkit-1.1-dev +libx11-dev +libx11-xcb-dev +libx264-dev +libx265-dev +libxcb-dri3-dev +libxcb-glx0-dev +libxcb-xfixes0-dev +libxcb-xv0-dev +libxcb1-dev +libxdamage-dev +libxext-dev +libxfixes-dev +libxi-dev +libxkbcommon-dev +libxkbcommon-x11-dev +libxml2-dev +libxmlsec1-dev +libxrandr-dev +libxslt1-dev +libxtst-dev +libxv-dev +libxvidcore-dev +libyajl-dev +libyaml-dev +libz-mingw-w64-dev +libzbar-dev +libzita-convolver-dev +libzvbi-dev +libzxing-dev +libzxingcore-dev +llvm-dev +lua-zlib-dev +make +modemmanager-dev +mono-complete +mono-devel +nasm +nettle-dev +ninja-build +patch +python-gi-dev +python3-all-dev +python3-cairo-dev +python3-dev +python3-pip +qconf +qt5-qmake +qtbase5-dev +qtbase5-private-dev +qtdeclarative5-dev +qtdeclarative5-dev-tools +qttools5-dev-tools +sudo +svt-av1 +valgrind +wayland-protocols +x11-xserver-utils +xdg-utils +xfonts-jmk +xfonts-kaname +xvfb +yasm +zlib1g-dev diff --git a/ci/docker/debian/install-deps.sh b/ci/docker/debian/install-deps.sh new file mode 100644 index 0000000000..de5c728a51 --- /dev/null +++ b/ci/docker/debian/install-deps.sh @@ -0,0 +1,10 @@ +#! /bin/bash + +set -eux + +apt update -y && apt full-upgrade -y +apt install -y $(<./ci/docker/debian/deps.txt) + +pip3 install --break-system-packages meson==1.2.3 hotdoc==0.16 python-gitlab tomli junitparser + +apt clean all diff --git a/ci/docker/debian/prepare.sh b/ci/docker/debian/prepare.sh new file mode 100644 index 0000000000..c364fb980f --- /dev/null +++ b/ci/docker/debian/prepare.sh @@ -0,0 +1,13 @@ +#! /bin/bash + +set -eux + +bash ./ci/docker/debian/install-deps.sh + +bash ./ci/scripts/install-rust.sh + +# Configure git for various usage +git config --global user.email "gstreamer@gstreamer.net" +git config --global user.name "Gstbuild Runner" + +bash ./ci/scripts/create-subprojects-cache.sh diff --git a/ci/docker/fedora/prepare.sh b/ci/docker/fedora/prepare.sh index 8fa3fa6799..cdb5c91b04 100644 --- a/ci/docker/fedora/prepare.sh +++ b/ci/docker/fedora/prepare.sh @@ -12,8 +12,8 @@ bash ./ci/docker/fedora/install-gdk-pixbuf.sh bash ./ci/docker/fedora/install-wayland-protocols.sh -bash ./ci/docker/fedora/install-rust.sh +bash ./ci/scripts/install-rust.sh bash ./ci/docker/fedora/virtme-fluster-setup.sh -bash ./ci/docker/fedora/create-subprojects-cache.sh +bash ./ci/scripts/create-subprojects-cache.sh diff --git a/ci/docker/fedora/create-subprojects-cache.sh b/ci/scripts/create-subprojects-cache.sh similarity index 100% rename from ci/docker/fedora/create-subprojects-cache.sh rename to ci/scripts/create-subprojects-cache.sh diff --git a/ci/docker/fedora/install-rust.sh b/ci/scripts/install-rust.sh similarity index 100% rename from ci/docker/fedora/install-rust.sh rename to ci/scripts/install-rust.sh