
464 changed files with 19605 additions and 23802 deletions
@ -1,38 +0,0 @@ |
|||
-I@abs_top_builddir@ |
|||
-I@abs_top_srcdir@ |
|||
-I@abs_top_builddir@/include |
|||
-I@abs_top_srcdir@/include |
|||
-I@abs_top_builddir@/src |
|||
-I@abs_top_srcdir@/src |
|||
-I@abs_top_builddir@/src/access |
|||
-I@abs_top_srcdir@/src/access |
|||
-I@abs_top_builddir@/src/admin |
|||
-I@abs_top_srcdir@/src/admin |
|||
-I@abs_top_builddir@/src/bhyve |
|||
-I@abs_top_srcdir@/src/bhyve |
|||
-I@abs_top_builddir@/src/conf |
|||
-I@abs_top_srcdir@/src/conf |
|||
-I@abs_top_builddir@/src/libxl |
|||
-I@abs_top_srcdir@/src/libxl |
|||
-I@abs_top_builddir@/src/locking |
|||
-I@abs_top_srcdir@/src/locking |
|||
-I@abs_top_builddir@/src/logging |
|||
-I@abs_top_srcdir@/src/logging |
|||
-I@abs_top_builddir@/src/lxc |
|||
-I@abs_top_srcdir@/src/lxc |
|||
-I@abs_top_builddir@/src/qemu |
|||
-I@abs_top_srcdir@/src/qemu |
|||
-I@abs_top_builddir@/src/remote |
|||
-I@abs_top_srcdir@/src/remote |
|||
-I@abs_top_builddir@/src/rpc |
|||
-I@abs_top_srcdir@/src/rpc |
|||
-I@abs_top_builddir@/src/secret |
|||
-I@abs_top_srcdir@/src/secret |
|||
-I@abs_top_builddir@/src/security |
|||
-I@abs_top_srcdir@/src/security |
|||
-I@abs_top_builddir@/src/util |
|||
-I@abs_top_srcdir@/src/util |
|||
-I@abs_top_builddir@/src/vmx |
|||
-I@abs_top_srcdir@/src/vmx |
|||
-I@abs_top_builddir@/src/xenconfig |
|||
-I@abs_top_srcdir@/src/xenconfig |
@ -1,52 +0,0 @@ |
|||
--- |
|||
# Configuration for Repo Lockdown - https://github.com/dessant/repo-lockdown |
|||
|
|||
name: 'Repo Lockdown' |
|||
|
|||
on: |
|||
issues: |
|||
types: opened |
|||
pull_request_target: |
|||
types: opened |
|||
|
|||
permissions: |
|||
pull-requests: write |
|||
issues: write |
|||
|
|||
jobs: |
|||
action: |
|||
runs-on: ubuntu-latest |
|||
steps: |
|||
- uses: dessant/repo-lockdown@v2 |
|||
with: |
|||
issue-comment: | |
|||
Thank you for your interest in the libvirt project. |
|||
|
|||
Since this repository is a read-only mirror of the project's master |
|||
repostory hosted on GitLab, issues opened here are not processed. |
|||
|
|||
We kindly request that new issues are reported to |
|||
|
|||
https://gitlab.com/libvirt/libvirt/-/issues/new |
|||
|
|||
Thank you for your time and understanding. |
|||
lock-issue: true |
|||
close-issue: true |
|||
pr-comment: | |
|||
Thank you for your interest in the libvirt project. |
|||
|
|||
Since this repository is a read-only mirror of the project's master |
|||
repostory hosted on GitLab, merge requests opened here are not |
|||
processed. |
|||
|
|||
We kindly request that contributors fork the project at |
|||
|
|||
https://gitlab.com/libvirt/libvirt/ |
|||
|
|||
push changes to the fork, and then open a new merge request at |
|||
|
|||
https://gitlab.com/libvirt/libvirt/-/merge_requests/new |
|||
|
|||
Thank you for your time and understanding. |
|||
lock-pr: true |
|||
close-pr: true |
@ -1,26 +0,0 @@ |
|||
# vim related ignores |
|||
*.swp |
|||
.lvimrc |
|||
|
|||
# emacs related ignores |
|||
*#*# |
|||
*.#*# |
|||
.#* |
|||
*~ |
|||
|
|||
# git related ignores |
|||
*.rej |
|||
*.orig |
|||
.git-module-status |
|||
|
|||
# python related ignores |
|||
__pycache__/ |
|||
|
|||
# libvirt related ignores |
|||
/build/ |
|||
/ci/scratch/ |
|||
tags |
|||
|
|||
# clangd related ignores |
|||
.clangd |
|||
compile_commands.json |
@ -1,129 +0,0 @@ |
|||
variables: |
|||
GIT_DEPTH: 100 |
|||
|
|||
stages: |
|||
- containers |
|||
- builds |
|||
- sanity_checks |
|||
|
|||
.script_variables: &script_variables | |
|||
export CCACHE_BASEDIR="$(pwd)" |
|||
export CCACHE_DIR="$CCACHE_BASEDIR/ccache" |
|||
export CCACHE_MAXSIZE="500M" |
|||
export PATH="$CCACHE_WRAPPERSDIR:$PATH" |
|||
export VIR_TEST_VERBOSE="1" |
|||
export VIR_TEST_DEBUG="1" |
|||
|
|||
include: '/ci/gitlab.yml' |
|||
|
|||
.native_build_job: |
|||
extends: .gitlab_native_build_job |
|||
cache: |
|||
paths: |
|||
- ccache/ |
|||
key: "$CI_JOB_NAME" |
|||
before_script: |
|||
- *script_variables |
|||
- cat /packages.txt |
|||
script: |
|||
- meson setup build --werror $MESON_ARGS || (cat build/meson-logs/meson-log.txt && exit 1) |
|||
- meson dist -C build --no-tests |
|||
- if test -x /usr/bin/rpmbuild && test "$RPM" != "skip"; |
|||
then |
|||
rpmbuild --nodeps -ta build/meson-dist/libvirt-*.tar.xz; |
|||
else |
|||
meson compile -C build; |
|||
meson test -C build --no-suite syntax-check --print-errorlogs; |
|||
fi |
|||
|
|||
.cross_build_job: |
|||
extends: .gitlab_cross_build_job |
|||
cache: |
|||
paths: |
|||
- ccache/ |
|||
key: "$CI_JOB_NAME" |
|||
before_script: |
|||
- *script_variables |
|||
- cat /packages.txt |
|||
script: |
|||
- meson setup build --werror $MESON_OPTS || (cat build/meson-logs/meson-log.txt && exit 1) |
|||
- meson compile -C build |
|||
- if test "$CROSS" = "i686" ; then meson test -C build --no-suite syntax-check --print-errorlogs ; fi |
|||
|
|||
|
|||
# This artifact published by this job is downloaded by libvirt.org to |
|||
# be deployed to the web root: |
|||
# https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=website |
|||
website: |
|||
stage: builds |
|||
image: $CI_REGISTRY_IMAGE/ci-almalinux-8:latest |
|||
needs: |
|||
- x86_64-almalinux-8-container |
|||
before_script: |
|||
- *script_variables |
|||
script: |
|||
- meson setup build --werror --prefix=$(pwd)/vroot || (cat build/meson-logs/meson-log.txt && exit 1) |
|||
- ninja -C build install-web |
|||
- mv vroot/share/doc/libvirt/html/ website |
|||
artifacts: |
|||
expose_as: 'Website' |
|||
name: 'website' |
|||
when: on_success |
|||
expire_in: 30 days |
|||
paths: |
|||
- website |
|||
|
|||
|
|||
codestyle: |
|||
stage: sanity_checks |
|||
image: $CI_REGISTRY_IMAGE/ci-opensuse-leap-152:latest |
|||
needs: |
|||
- x86_64-opensuse-leap-152-container |
|||
before_script: |
|||
- *script_variables |
|||
script: |
|||
- meson setup build --werror || (cat build/meson-logs/meson-log.txt && exit 1) |
|||
- ninja -C build libvirt-pot-dep |
|||
- meson test -C build --suite syntax-check --no-rebuild --print-errorlogs |
|||
|
|||
|
|||
# This artifact published by this job is downloaded to push to Weblate |
|||
# for translation usage: |
|||
# https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=potfile |
|||
potfile: |
|||
stage: builds |
|||
image: $CI_REGISTRY_IMAGE/ci-almalinux-8:latest |
|||
needs: |
|||
- x86_64-almalinux-8-container |
|||
rules: |
|||
- if: "$CI_COMMIT_BRANCH == 'master'" |
|||
before_script: |
|||
- *script_variables |
|||
script: |
|||
- meson setup build --werror || (cat build/meson-logs/meson-log.txt && exit 1) |
|||
- ninja -C build libvirt-pot-dep |
|||
- ninja -C build libvirt-pot |
|||
- cp po/libvirt.pot libvirt.pot |
|||
artifacts: |
|||
expose_as: 'Potfile' |
|||
name: 'potfile' |
|||
when: on_success |
|||
expire_in: 30 days |
|||
paths: |
|||
- libvirt.pot |
|||
|
|||
# Coverity job that is run only by schedules |
|||
coverity: |
|||
image: $CI_REGISTRY_IMAGE/ci-almalinux-8:latest |
|||
needs: |
|||
- x86_64-almalinux-8-container |
|||
stage: builds |
|||
script: |
|||
- curl https://scan.coverity.com/download/linux64 --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN -o /tmp/cov-analysis-linux64.tgz |
|||
- tar xfz /tmp/cov-analysis-linux64.tgz |
|||
- meson setup build --werror || (cat build/meson-logs/meson-log.txt && exit 1) |
|||
- cov-analysis-linux64-*/bin/cov-build --dir cov-int meson compile -C build |
|||
- tar cfz cov-int.tar.gz cov-int |
|||
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL --form file=@cov-int.tar.gz --form version="$(git describe --tags)" --form description="$(git describe --tags) / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" |
|||
rules: |
|||
- if: "$CI_PIPELINE_SOURCE == 'schedule' && $COVERITY_SCAN_PROJECT_NAME && $COVERITY_SCAN_TOKEN" |
@ -1,24 +0,0 @@ |
|||
<!-- See https://libvirt.org/bugs.html#quality for guidance --> |
|||
|
|||
## Software environment |
|||
- Operating system: |
|||
- Architecture: |
|||
- kernel version: |
|||
- libvirt version: |
|||
- Hypervisor and version: |
|||
|
|||
## Description of problem |
|||
|
|||
## Steps to reproduce |
|||
1. |
|||
2. |
|||
3. |
|||
|
|||
## Additional information |
|||
<!-- Attach XML configs, logs, stack traces, etc. Compress the files if necessary --> |
|||
<!-- See https://libvirt.org/kbase/debuglogs.html on how to configure logging --> |
|||
|
|||
|
|||
|
|||
<!-- The line below ensures that proper tags are added to the issue. -- > |
|||
/label ~bug |
@ -1,30 +0,0 @@ |
|||
<!-- |
|||
This is the upstream libvirt issue tracker. |
|||
|
|||
Please note that libvirt, like most open source projects, relies on |
|||
contributors who have motivation, skills and available time to work on |
|||
implementing particular features. |
|||
|
|||
Feature requests can be helpful for determining demand and interest, but |
|||
they are not a guarantee that a contributor will volunteer to implement |
|||
it. We welcome and encourage even draft patches to implement a feature |
|||
be sent to the mailing list where it can be discussed and developed |
|||
further by the community. |
|||
|
|||
Thank you for your interest in helping us to make libvirt better! |
|||
--> |
|||
|
|||
## Goal |
|||
<!-- Describe the final result you want to achieve. Avoid design specifics. --> |
|||
|
|||
|
|||
## Technical details |
|||
<!-- Describe technical details, design specifics, suggestions, versions, etc. --> |
|||
|
|||
|
|||
## Additional information |
|||
|
|||
|
|||
|
|||
<!-- The line below ensures that proper tags are added to the issue. -- > |
|||
/label ~enhancement |
@ -1,3 +0,0 @@ |
|||
[submodule "keycodemapdb"] |
|||
path = src/keycodemapdb |
|||
url = https://gitlab.com/keycodemap/keycodemapdb.git |
@ -1,4 +0,0 @@ |
|||
[gitpublishprofile "default"] |
|||
base = master |
|||
to = libvir-list@redhat.com |
|||
prefix = libvirt PATCH |
@ -1,80 +0,0 @@ |
|||
# 'git shortlog --help' and look for mailmap for the format of each line |
|||
|
|||
# Email consolidation: |
|||
# <Preferred address in AUTHORS> <other alias used by same author> |
|||
|
|||
<bozzolan@gmail.com> <redshift@gmx.com> |
|||
<charles_duffy@messageone.com> <charles@dyfis.net> |
|||
<claudio.bley@gmail.com> <cbley@av-test.de> |
|||
<dfj@redhat.com> <dfj@dfj.bne.redhat.com> |
|||
<dpkshetty@gmail.com> <deepakcs@linux.vnet.ibm.com> |
|||
<dpkshetty@gmail.com> <deepakcs@redhat.com> |
|||
<eblake@redhat.com> <ebb9@byu.net> |
|||
<gdolley@arpnetworks.com> <gdolley@ucla.edu> |
|||
<gerhard.stenzel@de.ibm.com> <gstenzel@linux.vnet.ibm.com> |
|||
<jamie@canonical.com> <jamie@ubuntu.com> |
|||
<laine@redhat.com> <laine@laine.org> |
|||
<meyering@redhat.com> <jim@meyering.net> |
|||
<socketpair@gmail.com> <socketpair gmail com> |
|||
<soren@linux2go.dk> <soren@ubuntu.com> |
|||
<jfehlig@suse.com> <jfehlig@novell.com> |
|||
<jfehlig@suse.com> <jfehlig@linux-ypgk.site> |
|||
<jclift@redhat.com> <justin@salasaga.org> |
|||
<soren@linux2go.dk> <soren@canonical.com> |
|||
<cfergeau@redhat.com> <teuf@gnome.org> |
|||
<wency@cn.fujitsu.com> <wency cn fujitsu com> |
|||
<cardoe@cardoe.com> <cardoe@gentoo.org> |
|||
<fsimonce@redhat.com> <federico.simoncelli@gmail.com> |
|||
<marcandre.lureau@redhat.com> <marcandre.lureau@gmail.com> |
|||
<supriyak@linux.vnet.ibm.com> <supriyak@in.ibm.com> |
|||
<neil@aldur.co.uk> <neil@brightbox.co.uk> |
|||
<stefanb@us.ibm.com> <stefanb@linux.vnet.ibm.com> |
|||
<stefanb@us.ibm.com> <stefannb@linux.vnet.ibm.com> |
|||
<josh.durgin@inktank.com> <joshd@hq.newdream.net> |
|||
<josh.durgin@inktank.com> <josh.durgin@dreamhost.com> |
|||
<gerd@egidy.de> <lists@egidy.de> |
|||
<gerd@egidy.de> <gerd.von.egidy@intra2net.com> |
|||
<benoar@dolka.fr> <benjamin.cama@telecom-bretagne.eu> |
|||
<zhlcindy@linux.vnet.ibm.com> <zhlcindy@gmail.com> |
|||
<serge.hallyn@canonical.com> <serue@us.ibm.com> |
|||
<pritesh.kothari@sun.com> <Pritesh.Kothari@Sun.COM> |
|||
<cbosdonnat@suse.com> <cedric.bosdonnat@free.fr> |
|||
<mnestratov@virtuozzo.com> <mnestratov@parallels.com> |
|||
<nshirokovskiy@virtuozzo.com> <nshirokovskiy@parallels.com> |
|||
<jyang@redhat.com> <osier@yunify.com> |
|||
<kkoukiou@redhat.com> <k.koukiou@googlemail.com> |
|||
<intrigeri@boum.org> <intrigeri+libvirt@boum.org> |
|||
<fidencio@redhat.com> <fabiano@fidencio.org> |
|||
<shi_lei@massclouds.com> <shilei.massclouds@gmx.com> |
|||
<adrian.brzezinski@eo.pl> <redhat@adrb.pl> |
|||
<matt@datto.com> <mcoleman@datto.com> |
|||
|
|||
# Name consolidation: |
|||
# Preferred author spelling <preferred email> |
|||
Alex Jia <ajia@redhat.com> |
|||
Royce Lv <lvroyce@linux.vnet.ibm.com> |
|||
Daniel J Walsh <dwalsh@redhat.com> |
|||
Jรกn Tomko <jtomko@redhat.com> |
|||
Gerd von Egidy <gerd@egidy.de> |
|||
MATSUDA Daiki <matsudadik@intellilink.co.jp> |
|||
Tang Chen <tangchen@cn.fujitsu.com> |
|||
Peng Zhou <ailvpeng25@gmail.com> |
|||
Dirk Herrendoerfer <d.herrendoerfer@herrendoerfer.name> |
|||
Thibault VINCENT <thibault.vincent@smartjog.com> |
|||
Aurelien Rougemont <beorn@binaries.fr> |
|||
Serge E. Hallyn <serge.hallyn@canonical.com> |
|||
Henrik Persson E <henrik.e.persson@ericsson.com> |
|||
Philipp Hahn <hahn@univention.de> |
|||
Pritesh Kothari <pritesh.kothari@sun.com> |
|||
Wang Yufei (James) <james.wangyufei@huawei.com> |
|||
Deepak C Shetty <dpkshetty@gmail.com> |
|||
Dave Allan <dallan@redhat.com> |
|||
Richard W.M. Jones <rjones@redhat.com> |
|||
|
|||
# Non-trivial consolidation: |
|||
# see git documentation for information about the format |
|||
Daniel P. Berrangรฉ <berrange@redhat.com> |
|||
Daniel P. Berrangรฉ <berrange@redhat.com> <dan@berrange.com> |
|||
Michal Prรญvoznรญk <mprivozn@redhat.com> |
|||
Michal Prรญvoznรญk <mprivozn@redhat.com> <miso.privoznik@gmail.com> |
|||
Marco Bozzolan <bozzolan@gmail.com> <redshift@gmx.com> |
@ -1,43 +0,0 @@ |
|||
flags = [ |
|||
'-I@abs_top_builddir@', |
|||
'-I@abs_top_srcdir@', |
|||
'-I@abs_top_builddir@/include', |
|||
'-I@abs_top_srcdir@/include', |
|||
'-I@abs_top_builddir@/src', |
|||
'-I@abs_top_srcdir@/src', |
|||
'-I@abs_top_builddir@/src/access', |
|||
'-I@abs_top_srcdir@/src/access', |
|||
'-I@abs_top_builddir@/src/admin', |
|||
'-I@abs_top_srcdir@/src/admin', |
|||
'-I@abs_top_builddir@/src/bhyve', |
|||
'-I@abs_top_srcdir@/src/bhyve', |
|||
'-I@abs_top_builddir@/src/conf', |
|||
'-I@abs_top_srcdir@/src/conf', |
|||
'-I@abs_top_builddir@/src/libxl', |
|||
'-I@abs_top_srcdir@/src/libxl', |
|||
'-I@abs_top_builddir@/src/locking', |
|||
'-I@abs_top_srcdir@/src/locking', |
|||
'-I@abs_top_builddir@/src/logging', |
|||
'-I@abs_top_srcdir@/src/logging', |
|||
'-I@abs_top_builddir@/src/lxc', |
|||
'-I@abs_top_srcdir@/src/lxc', |
|||
'-I@abs_top_builddir@/src/qemu', |
|||
'-I@abs_top_srcdir@/src/qemu', |
|||
'-I@abs_top_builddir@/src/remote', |
|||
'-I@abs_top_srcdir@/src/remote', |
|||
'-I@abs_top_builddir@/src/rpc', |
|||
'-I@abs_top_srcdir@/src/rpc', |
|||
'-I@abs_top_builddir@/src/secret', |
|||
'-I@abs_top_srcdir@/src/secret', |
|||
'-I@abs_top_builddir@/src/security', |
|||
'-I@abs_top_srcdir@/src/security', |
|||
'-I@abs_top_builddir@/src/util', |
|||
'-I@abs_top_srcdir@/src/util', |
|||
'-I@abs_top_builddir@/src/vmx', |
|||
'-I@abs_top_srcdir@/src/vmx', |
|||
'-I@abs_top_builddir@/src/xenconfig', |
|||
'-I@abs_top_srcdir@/src/xenconfig', |
|||
] |
|||
|
|||
def FlagsForFile(filename, **kwargs): |
|||
return { 'flags': flags, 'do_cache': True } |
@ -1,245 +0,0 @@ |
|||
# -*- makefile -*-
|
|||
# vim: filetype=make
|
|||
|
|||
# The root directory of the libvirt.git checkout
|
|||
CI_GIT_ROOT = $(shell git rev-parse --show-toplevel) |
|||
|
|||
# The root directory for all CI-related contents
|
|||
CI_ROOTDIR = $(CI_GIT_ROOT)/ci |
|||
|
|||
# The directory holding content on the host that we will
|
|||
# expose to the container.
|
|||
CI_SCRATCHDIR = $(CI_ROOTDIR)/scratch |
|||
|
|||
# The directory holding the clone of the git repo that
|
|||
# we will expose to the container
|
|||
CI_HOST_SRCDIR = $(CI_SCRATCHDIR)/src |
|||
|
|||
# The directory holding the source inside the
|
|||
# container, i.e. where we want to expose
|
|||
# the $(CI_HOST_SRCDIR) directory from the host
|
|||
CI_CONT_SRCDIR = $(CI_USER_HOME)/libvirt |
|||
|
|||
# Script containing build instructions
|
|||
CI_BUILD_SCRIPT = $(CI_ROOTDIR)/build.sh |
|||
|
|||
# Location of the container images we're going to pull
|
|||
# Can be useful to override to use a locally built
|
|||
# image instead
|
|||
CI_IMAGE_PREFIX = registry.gitlab.com/libvirt/libvirt/ci- |
|||
|
|||
# The default tag is ':latest' but if the container
|
|||
# repo above uses different conventions this can override it
|
|||
CI_IMAGE_TAG = :latest |
|||
|
|||
# We delete the virtual root after completion, set
|
|||
# to 0 if you need to keep it around for debugging
|
|||
CI_CLEAN = 1 |
|||
|
|||
# We'll always freshly clone the virtual root each
|
|||
# time in case it was not cleaned up before. Set
|
|||
# to 1 if you want to try restarting a previously
|
|||
# preserved env
|
|||
CI_REUSE = 0 |
|||
|
|||
# We need the user's login and home directory to prepare the
|
|||
# environment the way some programs expect it
|
|||
CI_USER_LOGIN = $(shell whoami) |
|||
CI_USER_HOME = $(shell eval echo "~$(CI_USER_LOGIN)") |
|||
|
|||
# We also need the container process to run with current host IDs
|
|||
# so that it can access the passed in build directory
|
|||
CI_UID = $(shell id -u "$(CI_USER_LOGIN)") |
|||
CI_GID = $(shell id -g "$(CI_USER_LOGIN)") |
|||
|
|||
CI_ENGINE = auto |
|||
# Container engine we are going to use, can be overridden per make
|
|||
# invocation, if it is not we try podman and then default to docker.
|
|||
ifeq ($(CI_ENGINE),auto) |
|||
override CI_ENGINE = $(shell podman version >/dev/null 2>&1 && echo podman || echo docker) |
|||
endif |
|||
|
|||
# IDs you run as do not need to exist in
|
|||
# the container's /etc/passwd & /etc/group files, but
|
|||
# if they do not, then libvirt's 'ninja test' will fail
|
|||
# many tests.
|
|||
|
|||
# We do not directly mount /etc/{passwd,group} as Docker
|
|||
# is liable to mess with SELinux labelling which will
|
|||
# then prevent the host accessing them. And podman cannot
|
|||
# relabel the files due to it running rootless. So
|
|||
# copying them first is safer and less error-prone.
|
|||
CI_PWDB_MOUNTS = \
|
|||
--volume $(CI_SCRATCHDIR)/group:/etc/group:ro,z \
|
|||
--volume $(CI_SCRATCHDIR)/passwd:/etc/passwd:ro,z \
|
|||
$(NULL) |
|||
|
|||
CI_HOME_MOUNTS = \
|
|||
--volume $(CI_SCRATCHDIR)/home:$(CI_USER_HOME):z \
|
|||
$(NULL) |
|||
|
|||
CI_SCRIPT_MOUNTS = \
|
|||
--volume $(CI_SCRATCHDIR)/build:$(CI_USER_HOME)/build:z \
|
|||
$(NULL) |
|||
|
|||
# Docker containers can have very large ulimits
|
|||
# for nofiles - as much as 1048576. This makes
|
|||
# libvirt very slow at exec'ing programs.
|
|||
CI_ULIMIT_FILES = 1024 |
|||
|
|||
ifeq ($(CI_ENGINE),podman) |
|||
# Podman cannot reuse host namespace when running non-root |
|||
# containers. Until support for --keep-uid is added we can |
|||
# just create another mapping that will do that for us. |
|||
# Beware, that in {uid,git}map=container_id:host_id:range, the |
|||
# host_id does actually refer to the uid in the first mapping |
|||
# where 0 (root) is mapped to the current user and rest is |
|||
# offset. |
|||
# |
|||
# In order to set up this mapping, we need to keep all the |
|||
# user IDs to prevent possible errors as some images might |
|||
# expect UIDs up to 90000 (looking at you fedora), so we don't |
|||
# want the overflowuid to be used for them. For mapping all |
|||
# the other users properly, some math needs to be done. |
|||
# Don't worry, it's just addition and subtraction. |
|||
# |
|||
# 65536 ought to be enough (tm), but for really rare cases the |
|||
# maximums might need to be higher, but that only happens when |
|||
# your /etc/sub{u,g}id allow users to have more IDs. Unless |
|||
# --keep-uid is supported, let's do this in a way that should |
|||
# work for everyone. |
|||
CI_MAX_UID = $(shell sed -n "s/^$(CI_USER_LOGIN):[^:]\+://p" /etc/subuid) |
|||
CI_MAX_GID = $(shell sed -n "s/^$(CI_USER_LOGIN):[^:]\+://p" /etc/subgid) |
|||
ifeq ($(CI_MAX_UID),) |
|||
CI_MAX_UID = 65536 |
|||
endif |
|||
ifeq ($(CI_MAX_GID),) |
|||
CI_MAX_GID = 65536 |
|||
endif |
|||
CI_UID_OTHER = $(shell echo $$(($(CI_UID)+1))) |
|||
CI_GID_OTHER = $(shell echo $$(($(CI_GID)+1))) |
|||
CI_UID_OTHER_RANGE = $(shell echo $$(($(CI_MAX_UID)-$(CI_UID)))) |
|||
CI_GID_OTHER_RANGE = $(shell echo $$(($(CI_MAX_GID)-$(CI_GID)))) |
|||
|
|||
ifneq ($(CI_UID), 0) |
|||
CI_PODMAN_ARGS = \
|
|||
--uidmap 0:1:$(CI_UID) \
|
|||
--uidmap $(CI_UID):0:1 \
|
|||
--uidmap $(CI_UID_OTHER):$(CI_UID_OTHER):$(CI_UID_OTHER_RANGE) \
|
|||
--gidmap 0:1:$(CI_GID) \
|
|||
--gidmap $(CI_GID):0:1 \
|
|||
--gidmap $(CI_GID_OTHER):$(CI_GID_OTHER):$(CI_GID_OTHER_RANGE) \
|
|||
$(NULL) |
|||
endif |
|||
endif |
|||
|
|||
# Args to use when cloning a git repo.
|
|||
# -c stop it complaining about checking out a random hash
|
|||
# -q stop it displaying progress info for local clone
|
|||
# --local ensure we don't actually copy files
|
|||
CI_GIT_ARGS = \
|
|||
-c advice.detachedHead=false \
|
|||
-q \
|
|||
--local \
|
|||
$(NULL) |
|||
|
|||
# Args to use when running the container
|
|||
# --rm stop inactive containers getting left behind
|
|||
# --user we execute as the same user & group account
|
|||
# as dev so that file ownership matches host
|
|||
# instead of root:root
|
|||
# --workdir we change to user's home dir in the container
|
|||
# before running the workload
|
|||
# --volume to pass in the cloned git repo & config
|
|||
# --ulimit lower files limit for performance reasons
|
|||
# --interactive
|
|||
# --tty Ensure we have ability to Ctrl-C the build
|
|||
CI_ENGINE_ARGS = \
|
|||
--rm \
|
|||
--interactive \
|
|||
--tty \
|
|||
--user "$(CI_UID)":"$(CI_GID)" \
|
|||
--workdir "$(CI_USER_HOME)" \
|
|||
--env CI_CONT_SRCDIR="$(CI_CONT_SRCDIR)" \
|
|||
--env CI_MESON_ARGS="$(CI_MESON_ARGS)" \
|
|||
--env CI_NINJA_ARGS="$(CI_NINJA_ARGS)" \
|
|||
$(CI_PODMAN_ARGS) \
|
|||
$(CI_PWDB_MOUNTS) \
|
|||
$(CI_HOME_MOUNTS) \
|
|||
$(CI_SCRIPT_MOUNTS) \
|
|||
--volume $(CI_HOST_SRCDIR):$(CI_CONT_SRCDIR):z \
|
|||
--ulimit nofile=$(CI_ULIMIT_FILES):$(CI_ULIMIT_FILES) \
|
|||
--cap-add=SYS_PTRACE \
|
|||
$(NULL) |
|||
|
|||
ci-check-engine: |
|||
@echo -n "Checking if $(CI_ENGINE) is available..." && \
|
|||
$(CI_ENGINE) version 1>/dev/null && echo "yes" |
|||
|
|||
ci-prepare-tree: ci-check-engine |
|||
@test "$(CI_REUSE)" != "1" && rm -rf $(CI_SCRATCHDIR) || : |
|||
@if ! test -d $(CI_SCRATCHDIR) ; then \
|
|||
mkdir -p $(CI_SCRATCHDIR); \
|
|||
cp /etc/passwd $(CI_SCRATCHDIR); \
|
|||
cp /etc/group $(CI_SCRATCHDIR); \
|
|||
mkdir -p $(CI_SCRATCHDIR)/home; \
|
|||
cp "$(CI_BUILD_SCRIPT)" $(CI_SCRATCHDIR)/build; \
|
|||
chmod +x "$(CI_SCRATCHDIR)/build"; \
|
|||
echo "Cloning $(CI_GIT_ROOT) to $(CI_HOST_SRCDIR)"; \
|
|||
git clone $(CI_GIT_ARGS) $(CI_GIT_ROOT) $(CI_HOST_SRCDIR) || exit 1; \
|
|||
for mod in $$(git submodule | awk '{ print $$2 }' | sed -E 's,^../,,g') ; \
|
|||
do \
|
|||
test -f $(CI_GIT_ROOT)/$$mod/.git || continue ; \
|
|||
echo "Cloning $(CI_GIT_ROOT)/$$mod to $(CI_HOST_SRCDIR)/$$mod"; \
|
|||
git clone $(CI_GIT_ARGS) $(CI_GIT_ROOT)/$$mod $(CI_HOST_SRCDIR)/$$mod || exit 1; \
|
|||
done ; \
|
|||
fi |
|||
|
|||
ci-run-command@%: ci-prepare-tree |
|||
$(CI_ENGINE) run \
|
|||
$(CI_ENGINE_ARGS) \
|
|||
$(CI_IMAGE_PREFIX)$*$(CI_IMAGE_TAG) \
|
|||
$(CI_COMMAND) |
|||
@test "$(CI_CLEAN)" = "1" && rm -rf $(CI_SCRATCHDIR) || : |
|||
|
|||
ci-shell@%: |
|||
$(MAKE) -C $(CI_ROOTDIR) ci-run-command@$* CI_COMMAND="/bin/bash" |
|||
|
|||
ci-build@%: |
|||
$(MAKE) -C $(CI_ROOTDIR) ci-run-command@$* CI_COMMAND="$(CI_USER_HOME)/build" |
|||
|
|||
ci-test@%: |
|||
$(MAKE) -C $(CI_ROOTDIR) ci-build@$* CI_NINJA_ARGS=test |
|||
|
|||
ci-help: |
|||
@echo |
|||
@echo |
|||
@echo |
|||
@echo " !!! PLEASE DON'T USE THIS DIRECTLY !!!" |
|||
@echo |
|||
@echo " Use the ci/helper script instead" |
|||
@echo |
|||
@echo " !!! PLEASE DON'T USE THIS DIRECTLY !!!" |
|||
@echo |
|||
@echo |
|||
@echo |
|||
@echo "Build libvirt inside containers used for CI" |
|||
@echo |
|||
@echo "Available targets:" |
|||
@echo |
|||
@echo " ci-build@\$$IMAGE - run a default 'ninja' build" |
|||
@echo " ci-test@\$$IMAGE - run a 'ninja test'" |
|||
@echo " ci-shell@\$$IMAGE - run an interactive shell" |
|||
@echo " ci-help - show this help message" |
|||
@echo |
|||
@echo "Available make variables:" |
|||
@echo |
|||
@echo " CI_CLEAN=0 - do not delete '$(CI_SCRATCHDIR)' after completion" |
|||
@echo " CI_REUSE=1 - re-use existing '$(CI_SCRATCHDIR)' content" |
|||
@echo " CI_ENGINE=auto - container engine to use (podman, docker)" |
|||
@echo " CI_USER_LOGIN= - which user should run in the container (default is $$USER)" |
|||
@echo " CI_IMAGE_PREFIX= - override to prefer a locally built image, (default is $(CI_IMAGE_PREFIX))" |
|||
@echo " CI_IMAGE_TAG=:latest - optionally use in conjunction with 'CI_IMAGE_PREFIX'" |
|||
@echo " CI_MESON_ARGS= - extra arguments passed to meson" |
|||
@echo " CI_NINJA_ARGS= - extra arguments passed to ninja" |
|||
@echo |
@ -1,87 +0,0 @@ |
|||
============== |
|||
CI for libvirt |
|||
============== |
|||
|
|||
This document provides some information related to the CI capabilities for the |
|||
libvirt project. |
|||
|
|||
|
|||
Cirrus CI integration |
|||
===================== |
|||
|
|||
libvirt currently supports three non-Linux operating systems: Windows, FreeBSD |
|||
and macOS. Windows cross-builds can be prepared on Linux by using `MinGW`_, but |
|||
for both FreeBSD and macOS we need to use the actual operating system, and |
|||
unfortunately GitLab shared runners are currently not available for either. |
|||
|
|||
To work around this limitation, we take advantage of `Cirrus CI`_'s free |
|||
offering: more specifically, we use the `cirrus-run`_ script to trigger Cirrus |
|||
CI jobs from GitLab CI jobs so that the workaround is almost entirely |
|||
transparent to users and there's no need to constantly check two separate CI |
|||
dashboards. |
|||
|
|||
There is, however, some one-time setup required. If you want FreeBSD and macOS |
|||
builds to happen when you push to your GitLab repository, you need to |
|||
|
|||
* set up a GitHub repository for the project, eg. ``yourusername/libvirt``. |
|||
This repository needs to exist for cirrus-run to work, but it doesn't need to |
|||
be kept up to date, so you can create it and then forget about it; |
|||
|
|||
* enable the `Cirrus CI GitHub app`_ for your GitHub account; |
|||
|
|||
* sign up for Cirrus CI. It's enough to log into the website using your GitHub |
|||
account; |
|||
|
|||
* grab an API token from the `Cirrus CI settings`_ page; |
|||
|
|||
* it may be necessary to push an empty ``.cirrus.yml`` file to your github fork |
|||
for Cirrus CI to properly recognize the project. You can check whether |
|||
Cirrus CI knows about your project by navigating to: |
|||
|
|||
``https://cirrus-ci.com/yourusername/libvirt`` |
|||
|
|||
* in the *CI/CD / Variables* section of the settings page for your GitLab |
|||
repository, create two new variables: |
|||
|
|||
* ``CIRRUS_GITHUB_REPO``, containing the name of the GitHub repository |
|||
created earlier, eg. ``yourusername/libvirt``; |
|||
|
|||
* ``CIRRUS_API_TOKEN``, containing the Cirrus CI API token generated earlier. |
|||
This variable **must** be marked as *Masked*, because anyone with knowledge |
|||
of it can impersonate you as far as Cirrus CI is concerned. |
|||
|
|||
Neither of these variables should be marked as *Protected*, because in |
|||
general you'll want to be able to trigger Cirrus CI builds from non-protected |
|||
branches. |
|||
|
|||
Once this one-time setup is complete, you can just keep pushing to your GitLab |
|||
repository as usual and you'll automatically get the additional CI coverage. |
|||
|
|||
|
|||
.. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci |
|||
.. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/ |
|||
.. _Cirrus CI: https://cirrus-ci.com/ |
|||
.. _MinGW: http://mingw.org/ |
|||
.. _cirrus-run: https://github.com/sio/cirrus-run/ |
|||
|
|||
|
|||
Coverity scan integration |
|||
========================= |
|||
|
|||
This will be used only by the main repository for master branch by running |
|||
scheduled pipeline in GitLab. |
|||
|
|||
The service is proved by `Coverity Scan`_ and requires that the project is |
|||
registered there to get free coverity analysis which we already have for |
|||
`libvirt project`_. |
|||
|
|||
To run the coverity job it requires two new variables: |
|||
|
|||
* ``COVERITY_SCAN_PROJECT_NAME``, containing the `libvirt project`_ |
|||
name. |
|||
|
|||
* ``COVERITY_SCAN_TOKEN``, token visible to admins of `libvirt project`_ |
|||
|
|||
|
|||
.. _Coverity Scan: https://scan.coverity.com/ |
|||
.. _libvirt project: https://scan.coverity.com/projects/libvirt |
@ -1,23 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
# This script is used to build libvirt inside the container. |
|||
# |
|||
# You can customize it to your liking, or alternatively use a |
|||
# completely different script by passing |
|||
# |
|||
# CI_BUILD_SCRIPT=/path/to/your/build/script |
|||
# |
|||
# to make. |
|||
|
|||
cd "$CI_CONT_SRCDIR" |
|||
|
|||
export VIR_TEST_DEBUG=1 |
|||
|
|||
# $MESON_OPTS is an env that can optionally be set in the container, |
|||
# populated at build time from the Dockerfile. A typical use case would |
|||
# be to pass options to trigger cross-compilation |
|||
|
|||
meson build --werror $MESON_OPTS $CI_MESON_ARGS || \ |
|||
(cat build/meson-logs/meson-log.txt && exit 1) |
|||
|
|||
ninja -C build $CI_NINJA_ARGS |
@ -1,29 +0,0 @@ |
|||
@CIRRUS_VM_INSTANCE_TYPE@: |
|||
@CIRRUS_VM_IMAGE_SELECTOR@: @CIRRUS_VM_IMAGE_NAME@ |
|||
|
|||
env: |
|||
CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@" |
|||
CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@" |
|||
CI_COMMIT_SHA: "@CI_COMMIT_SHA@" |
|||
PATH: "@PATH@" |
|||
PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@" |
|||
PYTHON: "@PYTHON@" |
|||
MAKE: "@MAKE@" |
|||
VIR_TEST_VERBOSE: "1" |
|||
VIR_TEST_DEBUG: "1" |
|||
|
|||
build_task: |
|||
install_script: |
|||
- @UPDATE_COMMAND@ |
|||
- @UPGRADE_COMMAND@ |
|||
- @INSTALL_COMMAND@ @PKGS@ |
|||
- if test -n "@PYPI_PKGS@" ; then @PIP3@ install @PYPI_PKGS@ ; fi |
|||
clone_script: |
|||
- git clone --depth 100 "$CI_REPOSITORY_URL" . |
|||
- git fetch origin "$CI_COMMIT_REF_NAME" |
|||
- git reset --hard "$CI_COMMIT_SHA" |
|||
build_script: |
|||
- meson setup build |
|||
- meson dist -C build --no-tests |
|||
- meson compile -C build |
|||
- meson test -C build --no-suite syntax-check |
@ -1,16 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
CCACHE='/usr/local/bin/ccache' |
|||
CPAN_PKGS='' |
|||
CROSS_PKGS='' |
|||
MAKE='/usr/local/bin/gmake' |
|||
NINJA='/usr/local/bin/ninja' |
|||
PACKAGING_COMMAND='pkg' |
|||
PIP3='/usr/local/bin/pip-3.8' |
|||
PKGS='augeas bash-completion ca_root_nss ccache codespell cppi curl cyrus-sasl diffutils diskscrub dnsmasq fusefs-libs gettext git glib gmake gnugrep gnutls gsed libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 pkgconf polkit py38-docutils py38-flake8 python3 qemu readline yajl' |
|||
PYPI_PKGS='' |
|||
PYTHON='/usr/local/bin/python3' |
@ -1,16 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
CCACHE='/usr/local/bin/ccache' |
|||
CPAN_PKGS='' |
|||
CROSS_PKGS='' |
|||
MAKE='/usr/local/bin/gmake' |
|||
NINJA='/usr/local/bin/ninja' |
|||
PACKAGING_COMMAND='pkg' |
|||
PIP3='/usr/local/bin/pip-3.8' |
|||
PKGS='augeas bash-completion ca_root_nss ccache codespell cppi curl cyrus-sasl diffutils diskscrub dnsmasq fusefs-libs gettext git glib gmake gnugrep gnutls gsed libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 pkgconf polkit py38-docutils py38-flake8 python3 qemu readline yajl' |
|||
PYPI_PKGS='' |
|||
PYTHON='/usr/local/bin/python3' |
@ -1,16 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
CCACHE='/usr/local/bin/ccache' |
|||
CPAN_PKGS='' |
|||
CROSS_PKGS='' |
|||
MAKE='/usr/local/bin/gmake' |
|||
NINJA='/usr/local/bin/ninja' |
|||
PACKAGING_COMMAND='pkg' |
|||
PIP3='/usr/local/bin/pip-3.8' |
|||
PKGS='augeas bash-completion ca_root_nss ccache codespell cppi curl cyrus-sasl diffutils diskscrub dnsmasq fusefs-libs gettext git glib gmake gnugrep gnutls gsed libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 pkgconf polkit py38-docutils py38-flake8 python3 qemu readline yajl' |
|||
PYPI_PKGS='' |
|||
PYTHON='/usr/local/bin/python3' |
@ -1,16 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
CCACHE='/usr/local/bin/ccache' |
|||
CPAN_PKGS='' |
|||
CROSS_PKGS='' |
|||
MAKE='/usr/local/bin/gmake' |
|||
NINJA='/usr/local/bin/ninja' |
|||
PACKAGING_COMMAND='brew' |
|||
PIP3='/usr/local/bin/pip3' |
|||
PKGS='augeas bash-completion ccache codespell cppi curl diffutils dnsmasq docutils flake8 gettext git glib gnu-sed gnutls grep libiscsi libpcap libssh libssh2 libxml2 libxslt make meson ninja perl pkg-config python3 qemu readline rpcgen scrub yajl' |
|||
PYPI_PKGS='' |
|||
PYTHON='/usr/local/bin/python3' |
@ -1,100 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
FROM docker.io/library/almalinux:8 |
|||
|
|||
RUN dnf update -y && \ |
|||
dnf install 'dnf-command(config-manager)' -y && \ |
|||
dnf config-manager --set-enabled -y powertools && \ |
|||
dnf install -y centos-release-advanced-virtualization && \ |
|||
dnf install -y epel-release && \ |
|||
dnf install -y \ |
|||
audit-libs-devel \ |
|||
augeas \ |
|||
bash-completion \ |
|||
ca-certificates \ |
|||
ccache \ |
|||
clang \ |
|||
cpp \ |
|||
cyrus-sasl-devel \ |
|||
device-mapper-devel \ |
|||
diffutils \ |
|||
dnsmasq \ |
|||
dwarves \ |
|||
ebtables \ |
|||
firewalld-filesystem \ |
|||
fuse-devel \ |
|||
gcc \ |
|||
gettext \ |
|||
git \ |
|||
glib2-devel \ |
|||
glibc-devel \ |
|||
glibc-langpack-en \ |
|||
glusterfs-api-devel \ |
|||
gnutls-devel \ |
|||
grep \ |
|||
iproute \ |
|||
iproute-tc \ |
|||
iptables \ |
|||
iscsi-initiator-utils \ |
|||
kmod \ |
|||
libacl-devel \ |
|||
libattr-devel \ |
|||
libblkid-devel \ |
|||
libcap-ng-devel \ |
|||
libcurl-devel \ |
|||
libiscsi-devel \ |
|||
libnl3-devel \ |
|||
libpcap-devel \ |
|||
libpciaccess-devel \ |
|||
librbd-devel \ |
|||
libselinux-devel \ |
|||
libssh-devel \ |
|||
libssh2-devel \ |
|||
libtirpc-devel \ |
|||
libwsman-devel \ |
|||
libxml2 \ |
|||
libxml2-devel \ |
|||
libxslt \ |
|||
lvm2 \ |
|||
make \ |
|||
meson \ |
|||
netcf-devel \ |
|||
nfs-utils \ |
|||
ninja-build \ |
|||
numactl-devel \ |
|||
numad \ |
|||
parted-devel \ |
|||
perl \ |
|||
pkgconfig \ |
|||
polkit \ |
|||
python3 \ |
|||
python3-docutils \ |
|||
python3-flake8 \ |
|||
qemu-img \ |
|||
readline-devel \ |
|||
rpcgen \ |
|||
rpm-build \ |
|||
sanlock-devel \ |
|||
scrub \ |
|||
sed \ |
|||
systemd-devel \ |
|||
systemtap-sdt-devel \ |
|||
wireshark-devel \ |
|||
yajl-devel && \ |
|||
dnf autoremove -y && \ |
|||
dnf clean all -y && \ |
|||
rpm -qa | sort > /packages.txt && \ |
|||
mkdir -p /usr/libexec/ccache-wrappers && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc |
|||
|
|||
ENV LANG "en_US.UTF-8" |
|||
ENV MAKE "/usr/bin/make" |
|||
ENV NINJA "/usr/bin/ninja" |
|||
ENV PYTHON "/usr/bin/python3" |
|||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" |
@ -1,100 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
FROM quay.io/centos/centos:stream8 |
|||
|
|||
RUN dnf update -y && \ |
|||
dnf install 'dnf-command(config-manager)' -y && \ |
|||
dnf config-manager --set-enabled -y powertools && \ |
|||
dnf install -y centos-release-advanced-virtualization && \ |
|||
dnf install -y epel-release && \ |
|||
dnf install -y \ |
|||
audit-libs-devel \ |
|||
augeas \ |
|||
bash-completion \ |
|||
ca-certificates \ |
|||
ccache \ |
|||
clang \ |
|||
cpp \ |
|||
cyrus-sasl-devel \ |
|||
device-mapper-devel \ |
|||
diffutils \ |
|||
dnsmasq \ |
|||
dwarves \ |
|||
ebtables \ |
|||
firewalld-filesystem \ |
|||
fuse-devel \ |
|||
gcc \ |
|||
gettext \ |
|||
git \ |
|||
glib2-devel \ |
|||
glibc-devel \ |
|||
glibc-langpack-en \ |
|||
glusterfs-api-devel \ |
|||
gnutls-devel \ |
|||
grep \ |
|||
iproute \ |
|||
iproute-tc \ |
|||
iptables \ |
|||
iscsi-initiator-utils \ |
|||
kmod \ |
|||
libacl-devel \ |
|||
libattr-devel \ |
|||
libblkid-devel \ |
|||
libcap-ng-devel \ |
|||
libcurl-devel \ |
|||
libiscsi-devel \ |
|||
libnl3-devel \ |
|||
libpcap-devel \ |
|||
libpciaccess-devel \ |
|||
librbd-devel \ |
|||
libselinux-devel \ |
|||
libssh-devel \ |
|||
libssh2-devel \ |
|||
libtirpc-devel \ |
|||
libwsman-devel \ |
|||
libxml2 \ |
|||
libxml2-devel \ |
|||
libxslt \ |
|||
lvm2 \ |
|||
make \ |
|||
meson \ |
|||
netcf-devel \ |
|||
nfs-utils \ |
|||
ninja-build \ |
|||
numactl-devel \ |
|||
numad \ |
|||
parted-devel \ |
|||
perl \ |
|||
pkgconfig \ |
|||
polkit \ |
|||
python3 \ |
|||
python3-docutils \ |
|||
python3-flake8 \ |
|||
qemu-img \ |
|||
readline-devel \ |
|||
rpcgen \ |
|||
rpm-build \ |
|||
sanlock-devel \ |
|||
scrub \ |
|||
sed \ |
|||
systemd-devel \ |
|||
systemtap-sdt-devel \ |
|||
wireshark-devel \ |
|||
yajl-devel && \ |
|||
dnf autoremove -y && \ |
|||
dnf clean all -y && \ |
|||
rpm -qa | sort > /packages.txt && \ |
|||
mkdir -p /usr/libexec/ccache-wrappers && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc |
|||
|
|||
ENV LANG "en_US.UTF-8" |
|||
ENV MAKE "/usr/bin/make" |
|||
ENV NINJA "/usr/bin/ninja" |
|||
ENV PYTHON "/usr/bin/python3" |
|||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" |
@ -1,90 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
FROM quay.io/centos/centos:stream9 |
|||
|
|||
RUN dnf update -y && \ |
|||
dnf install 'dnf-command(config-manager)' -y && \ |
|||
dnf config-manager --set-enabled -y crb && \ |
|||
dnf install -y \ |
|||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \ |
|||
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm && \ |
|||
dnf install -y \ |
|||
audit-libs-devel \ |
|||
augeas \ |
|||
bash-completion \ |
|||
ca-certificates \ |
|||
clang \ |
|||
cpp \ |
|||
cyrus-sasl-devel \ |
|||
device-mapper-devel \ |
|||
diffutils \ |
|||
dnsmasq \ |
|||
dwarves \ |
|||
ebtables \ |
|||
firewalld-filesystem \ |
|||
fuse-devel \ |
|||
gcc \ |
|||
gettext \ |
|||
git \ |
|||
glib2-devel \ |
|||
glibc-devel \ |
|||
glibc-langpack-en \ |
|||
gnutls-devel \ |
|||
grep \ |
|||
iproute \ |
|||
iproute-tc \ |
|||
iptables \ |
|||
iscsi-initiator-utils \ |
|||
kmod \ |
|||
libacl-devel \ |
|||
libattr-devel \ |
|||
libblkid-devel \ |
|||
libcap-ng-devel \ |
|||
libcurl-devel \ |
|||
libnl3-devel \ |
|||
libpcap-devel \ |
|||
libpciaccess-devel \ |
|||
librbd-devel \ |
|||
libselinux-devel \ |
|||
libssh-devel \ |
|||
libtirpc-devel \ |
|||
libwsman-devel \ |
|||
libxml2 \ |
|||
libxml2-devel \ |
|||
libxslt \ |
|||
lvm2 \ |
|||
make \ |
|||
meson \ |
|||
nfs-utils \ |
|||
ninja-build \ |
|||
numactl-devel \ |
|||
numad \ |
|||
parted-devel \ |
|||
perl-base \ |
|||
pkgconfig \ |
|||
polkit \ |
|||
python3 \ |
|||
python3-docutils \ |
|||
qemu-img \ |
|||
readline-devel \ |
|||
rpcgen \ |
|||
rpm-build \ |
|||
sanlock-devel \ |
|||
scrub \ |
|||
sed \ |
|||
systemd-devel \ |
|||
systemtap-sdt-devel \ |
|||
wireshark-devel \ |
|||
yajl-devel && \ |
|||
dnf autoremove -y && \ |
|||
dnf clean all -y && \ |
|||
rpm -qa | sort > /packages.txt |
|||
|
|||
ENV LANG "en_US.UTF-8" |
|||
ENV MAKE "/usr/bin/make" |
|||
ENV NINJA "/usr/bin/ninja" |
|||
ENV PYTHON "/usr/bin/python3" |
@ -1,126 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
FROM docker.io/library/debian:10-slim |
|||
|
|||
RUN export DEBIAN_FRONTEND=noninteractive && \ |
|||
apt-get update && \ |
|||
apt-get install -y eatmydata && \ |
|||
eatmydata apt-get dist-upgrade -y && \ |
|||
eatmydata apt-get install --no-install-recommends -y \ |
|||
augeas-lenses \ |
|||
augeas-tools \ |
|||
bash-completion \ |
|||
ca-certificates \ |
|||
ccache \ |
|||
codespell \ |
|||
cpp \ |
|||
diffutils \ |
|||
dnsmasq-base \ |
|||
dwarves \ |
|||
ebtables \ |
|||
flake8 \ |
|||
gettext \ |
|||
git \ |
|||
grep \ |
|||
iproute2 \ |
|||
iptables \ |
|||
kmod \ |
|||
libc-dev-bin \ |
|||
libxml2-utils \ |
|||
locales \ |
|||
lvm2 \ |
|||
make \ |
|||
nfs-common \ |
|||
ninja-build \ |
|||
numad \ |
|||
open-iscsi \ |
|||
perl-base \ |
|||
pkgconf \ |
|||
policykit-1 \ |
|||
python3 \ |
|||
python3-docutils \ |
|||
python3-pip \ |
|||
python3-setuptools \ |
|||
python3-wheel \ |
|||
qemu-utils \ |
|||
scrub \ |
|||
sed \ |
|||
xsltproc && \ |
|||
eatmydata apt-get autoremove -y && \ |
|||
eatmydata apt-get autoclean -y && \ |
|||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ |
|||
dpkg-reconfigure locales |
|||
|
|||
RUN pip3 install meson==0.56.0 |
|||
|
|||
ENV LANG "en_US.UTF-8" |
|||
ENV MAKE "/usr/bin/make" |
|||
ENV NINJA "/usr/bin/ninja" |
|||
ENV PYTHON "/usr/bin/python3" |
|||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" |
|||
|
|||
RUN export DEBIAN_FRONTEND=noninteractive && \ |
|||
dpkg --add-architecture arm64 && \ |
|||
eatmydata apt-get update && \ |
|||
eatmydata apt-get dist-upgrade -y && \ |
|||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ |
|||
eatmydata apt-get install --no-install-recommends -y \ |
|||
gcc-aarch64-linux-gnu \ |
|||
libacl1-dev:arm64 \ |
|||
libapparmor-dev:arm64 \ |
|||
libattr1-dev:arm64 \ |
|||
libaudit-dev:arm64 \ |
|||
libblkid-dev:arm64 \ |
|||
libc6-dev:arm64 \ |
|||
libcap-ng-dev:arm64 \ |
|||
libcurl4-gnutls-dev:arm64 \ |
|||
libdevmapper-dev:arm64 \ |
|||
libfuse-dev:arm64 \ |
|||
libglib2.0-dev:arm64 \ |
|||
libglusterfs-dev:arm64 \ |
|||
libgnutls28-dev:arm64 \ |
|||
libiscsi-dev:arm64 \ |
|||
libnl-3-dev:arm64 \ |
|||
libnl-route-3-dev:arm64 \ |
|||
libnuma-dev:arm64 \ |
|||
libparted-dev:arm64 \ |
|||
libpcap0.8-dev:arm64 \ |
|||
libpciaccess-dev:arm64 \ |
|||
librbd-dev:arm64 \ |
|||
libreadline-dev:arm64 \ |
|||
libsanlock-dev:arm64 \ |
|||
libsasl2-dev:arm64 \ |
|||
libselinux1-dev:arm64 \ |
|||
libssh-gcrypt-dev:arm64 \ |
|||
libssh2-1-dev:arm64 \ |
|||
libtirpc-dev:arm64 \ |
|||
libudev-dev:arm64 \ |
|||
libxen-dev:arm64 \ |
|||
libxml2-dev:arm64 \ |
|||
libyajl-dev:arm64 \ |
|||
systemtap-sdt-dev:arm64 && \ |
|||
eatmydata apt-get autoremove -y && \ |
|||
eatmydata apt-get autoclean -y && \ |
|||
mkdir -p /usr/local/share/meson/cross && \ |
|||
echo "[binaries]\n\ |
|||
c = '/usr/bin/aarch64-linux-gnu-gcc'\n\ |
|||
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\ |
|||
strip = '/usr/bin/aarch64-linux-gnu-strip'\n\ |
|||
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\ |
|||
\n\ |
|||
[host_machine]\n\ |
|||
system = 'linux'\n\ |
|||
cpu_family = 'aarch64'\n\ |
|||
cpu = 'aarch64'\n\ |
|||
endian = 'little'" > /usr/local/share/meson/cross/aarch64-linux-gnu && \ |
|||
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ |
|||
mkdir -p /usr/libexec/ccache-wrappers && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc |
|||
|
|||
ENV ABI "aarch64-linux-gnu" |
|||
ENV MESON_OPTS "--cross-file=aarch64-linux-gnu" |
@ -1,125 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
FROM docker.io/library/debian:10-slim |
|||
|
|||
RUN export DEBIAN_FRONTEND=noninteractive && \ |
|||
apt-get update && \ |
|||
apt-get install -y eatmydata && \ |
|||
eatmydata apt-get dist-upgrade -y && \ |
|||
eatmydata apt-get install --no-install-recommends -y \ |
|||
augeas-lenses \ |
|||
augeas-tools \ |
|||
bash-completion \ |
|||
ca-certificates \ |
|||
ccache \ |
|||
codespell \ |
|||
cpp \ |
|||
diffutils \ |
|||
dnsmasq-base \ |
|||
dwarves \ |
|||
ebtables \ |
|||
flake8 \ |
|||
gettext \ |
|||
git \ |
|||
grep \ |
|||
iproute2 \ |
|||
iptables \ |
|||
kmod \ |
|||
libc-dev-bin \ |
|||
libxml2-utils \ |
|||
locales \ |
|||
lvm2 \ |
|||
make \ |
|||
nfs-common \ |
|||
ninja-build \ |
|||
numad \ |
|||
open-iscsi \ |
|||
perl-base \ |
|||
pkgconf \ |
|||
policykit-1 \ |
|||
python3 \ |
|||
python3-docutils \ |
|||
python3-pip \ |
|||
python3-setuptools \ |
|||
python3-wheel \ |
|||
qemu-utils \ |
|||
scrub \ |
|||
sed \ |
|||
xsltproc && \ |
|||
eatmydata apt-get autoremove -y && \ |
|||
eatmydata apt-get autoclean -y && \ |
|||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ |
|||
dpkg-reconfigure locales |
|||
|
|||
RUN pip3 install meson==0.56.0 |
|||
|
|||
ENV LANG "en_US.UTF-8" |
|||
ENV MAKE "/usr/bin/make" |
|||
ENV NINJA "/usr/bin/ninja" |
|||
ENV PYTHON "/usr/bin/python3" |
|||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" |
|||
|
|||
RUN export DEBIAN_FRONTEND=noninteractive && \ |
|||
dpkg --add-architecture armel && \ |
|||
eatmydata apt-get update && \ |
|||
eatmydata apt-get dist-upgrade -y && \ |
|||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ |
|||
eatmydata apt-get install --no-install-recommends -y \ |
|||
gcc-arm-linux-gnueabi \ |
|||
libacl1-dev:armel \ |
|||
libapparmor-dev:armel \ |
|||
libattr1-dev:armel \ |
|||
libaudit-dev:armel \ |
|||
libblkid-dev:armel \ |
|||
libc6-dev:armel \ |
|||
libcap-ng-dev:armel \ |
|||
libcurl4-gnutls-dev:armel \ |
|||
libdevmapper-dev:armel \ |
|||
libfuse-dev:armel \ |
|||
libglib2.0-dev:armel \ |
|||
libglusterfs-dev:armel \ |
|||
libgnutls28-dev:armel \ |
|||
libiscsi-dev:armel \ |
|||
libnl-3-dev:armel \ |
|||
libnl-route-3-dev:armel \ |
|||
libnuma-dev:armel \ |
|||
libparted-dev:armel \ |
|||
libpcap0.8-dev:armel \ |
|||
libpciaccess-dev:armel \ |
|||
librbd-dev:armel \ |
|||
libreadline-dev:armel \ |
|||
libsanlock-dev:armel \ |
|||
libsasl2-dev:armel \ |
|||
libselinux1-dev:armel \ |
|||
libssh-gcrypt-dev:armel \ |
|||
libssh2-1-dev:armel \ |
|||
libtirpc-dev:armel \ |
|||
libudev-dev:armel \ |
|||
libxml2-dev:armel \ |
|||
libyajl-dev:armel \ |
|||
systemtap-sdt-dev:armel && \ |
|||
eatmydata apt-get autoremove -y && \ |
|||
eatmydata apt-get autoclean -y && \ |
|||
mkdir -p /usr/local/share/meson/cross && \ |
|||
echo "[binaries]\n\ |
|||
c = '/usr/bin/arm-linux-gnueabi-gcc'\n\ |
|||
ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\ |
|||
strip = '/usr/bin/arm-linux-gnueabi-strip'\n\ |
|||
pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\ |
|||
\n\ |
|||
[host_machine]\n\ |
|||
system = 'linux'\n\ |
|||
cpu_family = 'arm'\n\ |
|||
cpu = 'arm'\n\ |
|||
endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabi && \ |
|||
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ |
|||
mkdir -p /usr/libexec/ccache-wrappers && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \ |
|||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc |
|||
|
|||
ENV ABI "arm-linux-gnueabi" |
|||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabi" |
@ -1,126 +0,0 @@ |
|||
# THIS FILE WAS AUTO-GENERATED |
|||
# |
|||
# $ lcitool manifest ci/manifest.yml |
|||
# |
|||
# https://gitlab.com/libvirt/libvirt-ci |
|||
|
|||
FROM docker.io/library/debian:10-slim |
|||
|
|||
RUN export DEBIAN_FRONTEND=noninteractive && \ |
|||
apt-get update && \ |
|||
apt-get install -y eatmydata && \ |
|||
eatmydata apt-get dist-upgrade -y && \ |
|||
eatmydata apt-get install --no-install-recommends -y \ |
|||
augeas-lenses \ |
|||
augeas-tools \ |
|||
bash-completion \ |
|||
ca-certificates \ |
|||
ccache \ |
|||
codespell \ |
|||
cpp \ |
|||
diffutils \ |
|||
dnsmasq-base \ |
|||
dwarves \ |
|||
ebtables \ |
|||
flake8 \ |
|||
gettext \ |
|||
git \ |
|||
grep \ |
|||
iproute2 \ |
|||
iptables \ |
|||
kmod \ |
|||
libc-dev-bin \ |
|||
libxml2-utils \ |
|||
locales \ |
|||
lvm2 \ |
|||
make \ |
|||
nfs-common \ |
|||
ninja-build \ |
|||
numad \ |
|||
open-iscsi \ |
|||
perl-base \ |
|||
pkgconf \ |
|||
policykit-1 \ |
|||
python3 \ |
|||
python3-docutils \ |
|||
python3-pip \ |
|||
python3-setuptools \ |
|||
python3-wheel \ |
|||
qemu-utils \ |
|||
scrub \ |
|||
sed \ |
|||
xsltproc && \ |
|||
eatmydata apt-get autoremove -y && \ |
|||
eatmydata apt-get autoclean -y && \ |
|||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ |
|||
dpkg-reconfigure locales |
|||
|
|||
RUN pip3 install meson==0.56.0 |
|||
|
|||
ENV LANG "en_US.UTF-8" |
|||
ENV MAKE "/usr/bin/make" |
|||