mirror of
				https://gitlab.com/libvirt/libvirt.git
				synced 2025-11-03 08:24:18 +03:00 
			
		
		
		
	Compare commits
	
		
			17 Commits
		
	
	
		
			v8.6.0-rc1
			...
			v1.2.6-mai
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d933f68ee6 | ||
| 
						 | 
					6ae4339383 | ||
| 
						 | 
					aaf8c5dc14 | ||
| 
						 | 
					dd2b525161 | ||
| 
						 | 
					11b1dd70e4 | ||
| 
						 | 
					42e0a5bfd7 | ||
| 
						 | 
					b0f598e82e | ||
| 
						 | 
					b87f3f835a | ||
| 
						 | 
					9b056d8daf | ||
| 
						 | 
					6a3b2c09fe | ||
| 
						 | 
					3f874370d2 | ||
| 
						 | 
					bad50b7501 | ||
| 
						 | 
					16d1074306 | ||
| 
						 | 
					59fff7ff98 | ||
| 
						 | 
					7dcab231de | ||
| 
						 | 
					4e701c06c5 | ||
| 
						 | 
					87eac02988 | 
							
								
								
									
										1
									
								
								.ctags
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								.ctags
									
									
									
									
									
								
							@@ -3,4 +3,3 @@
 | 
			
		||||
--exclude=*.html
 | 
			
		||||
--exclude=*.html.in
 | 
			
		||||
--langmap=c:+.h.in
 | 
			
		||||
--c-kinds=+p
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
../.ctags
 | 
			
		||||
@@ -1,21 +0,0 @@
 | 
			
		||||
# EditorConfig is a file format and collection of text editor plugins
 | 
			
		||||
# for maintaining consistent coding styles between different editors
 | 
			
		||||
# and IDEs. Most popular editors support this either natively or via
 | 
			
		||||
# plugin.
 | 
			
		||||
#
 | 
			
		||||
# Check https://editorconfig.org for details.
 | 
			
		||||
 | 
			
		||||
root = true
 | 
			
		||||
 | 
			
		||||
[*]
 | 
			
		||||
end_of_line = lf
 | 
			
		||||
insert_final_newline = true
 | 
			
		||||
charset = utf-8
 | 
			
		||||
 | 
			
		||||
[*.c]
 | 
			
		||||
indent_style = space
 | 
			
		||||
indent_size = 4
 | 
			
		||||
 | 
			
		||||
[*.{rng,xml}]
 | 
			
		||||
indent_style = space
 | 
			
		||||
indent_size = 2
 | 
			
		||||
							
								
								
									
										22
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@@ -1,22 +0,0 @@
 | 
			
		||||
# Generic git stuff
 | 
			
		||||
**/.gitattributes export-ignore
 | 
			
		||||
**/.gitignore export-ignore
 | 
			
		||||
/.gitmodules export-ignore
 | 
			
		||||
/.mailmap export-ignore
 | 
			
		||||
 | 
			
		||||
# Project-specific git stuff
 | 
			
		||||
/.gitpublish export-ignore
 | 
			
		||||
/docs/gitdm export-ignore
 | 
			
		||||
/docs/gitdm/** export-ignore
 | 
			
		||||
/gitdm.config export-ignore
 | 
			
		||||
 | 
			
		||||
# Code hosting stuff
 | 
			
		||||
/.github export-ignore
 | 
			
		||||
/.github/** export-ignore
 | 
			
		||||
/.gitlab export-ignore
 | 
			
		||||
/.gitlab/** export-ignore
 | 
			
		||||
 | 
			
		||||
# CI stuff
 | 
			
		||||
/.gitlab-ci.yml export-ignore
 | 
			
		||||
/ci export-ignore
 | 
			
		||||
/ci/** export-ignore
 | 
			
		||||
							
								
								
									
										52
									
								
								.github/workflows/lockdown.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								.github/workflows/lockdown.yml
									
									
									
									
										vendored
									
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										207
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										207
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,26 +1,193 @@
 | 
			
		||||
# vim related ignores
 | 
			
		||||
*.swp
 | 
			
		||||
.lvimrc
 | 
			
		||||
 | 
			
		||||
# emacs related ignores
 | 
			
		||||
*#*#
 | 
			
		||||
*.#*#
 | 
			
		||||
.#*
 | 
			
		||||
*~
 | 
			
		||||
 | 
			
		||||
# git related ignores
 | 
			
		||||
*.rej
 | 
			
		||||
*.a
 | 
			
		||||
*.cov
 | 
			
		||||
*.exe
 | 
			
		||||
*.exe.manifest
 | 
			
		||||
*.gcda
 | 
			
		||||
*.gcno
 | 
			
		||||
*.gcov
 | 
			
		||||
*.html
 | 
			
		||||
*.i
 | 
			
		||||
*.la
 | 
			
		||||
*.lo
 | 
			
		||||
*.loT
 | 
			
		||||
*.o
 | 
			
		||||
*.orig
 | 
			
		||||
*.pem
 | 
			
		||||
*.pyc
 | 
			
		||||
*.rej
 | 
			
		||||
*.s
 | 
			
		||||
*~
 | 
			
		||||
.#*
 | 
			
		||||
.deps
 | 
			
		||||
.dirstamp
 | 
			
		||||
.gdb_history
 | 
			
		||||
.git
 | 
			
		||||
.git-module-status
 | 
			
		||||
 | 
			
		||||
# python related ignores
 | 
			
		||||
__pycache__/
 | 
			
		||||
 | 
			
		||||
# libvirt related ignores
 | 
			
		||||
.libs
 | 
			
		||||
.lvimrc
 | 
			
		||||
.memdump
 | 
			
		||||
.sc-start-sc_*
 | 
			
		||||
/ABOUT-NLS
 | 
			
		||||
/AUTHORS
 | 
			
		||||
/ChangeLog
 | 
			
		||||
/GNUmakefile
 | 
			
		||||
/INSTALL
 | 
			
		||||
/NEWS
 | 
			
		||||
/aclocal.m4
 | 
			
		||||
/autom4te.cache
 | 
			
		||||
/build-aux
 | 
			
		||||
/build-aux/
 | 
			
		||||
/build/
 | 
			
		||||
/ci/scratch/
 | 
			
		||||
/config.cache
 | 
			
		||||
/config.guess
 | 
			
		||||
/config.h
 | 
			
		||||
/config.h.in
 | 
			
		||||
/config.log
 | 
			
		||||
/config.rpath
 | 
			
		||||
/config.status
 | 
			
		||||
/config.sub
 | 
			
		||||
/configure
 | 
			
		||||
/configure.lineno
 | 
			
		||||
/daemon/*_dispatch.h
 | 
			
		||||
/daemon/libvirt_qemud
 | 
			
		||||
/daemon/libvirtd
 | 
			
		||||
/daemon/libvirtd*.logrotate
 | 
			
		||||
/daemon/libvirtd.8
 | 
			
		||||
/daemon/libvirtd.8.in
 | 
			
		||||
/daemon/libvirtd.init
 | 
			
		||||
/daemon/libvirtd.pod
 | 
			
		||||
/daemon/libvirtd.policy
 | 
			
		||||
/daemon/libvirtd.service
 | 
			
		||||
/daemon/test_libvirtd.aug
 | 
			
		||||
/docs/aclperms.htmlinc
 | 
			
		||||
/docs/apibuild.py.stamp
 | 
			
		||||
/docs/devhelp/libvirt.devhelp
 | 
			
		||||
/docs/hvsupport.html.in
 | 
			
		||||
/docs/libvirt-api.xml
 | 
			
		||||
/docs/libvirt-lxc-*.xml
 | 
			
		||||
/docs/libvirt-qemu-*.xml
 | 
			
		||||
/docs/libvirt-refs.xml
 | 
			
		||||
/docs/search.php
 | 
			
		||||
/docs/todo.html.in
 | 
			
		||||
/examples/object-events/event-test
 | 
			
		||||
/examples/dominfo/info1
 | 
			
		||||
/examples/domsuspend/suspend
 | 
			
		||||
/examples/dommigrate/dommigrate
 | 
			
		||||
/examples/hellolibvirt/hellolibvirt
 | 
			
		||||
/examples/openauth/openauth
 | 
			
		||||
/gnulib/lib/*
 | 
			
		||||
/gnulib/m4/*
 | 
			
		||||
/gnulib/tests/*
 | 
			
		||||
/include/libvirt/libvirt.h
 | 
			
		||||
/libtool
 | 
			
		||||
/libvirt-*.tar.gz
 | 
			
		||||
/libvirt-[0-9]*
 | 
			
		||||
/libvirt*.pc
 | 
			
		||||
/libvirt.spec
 | 
			
		||||
/ltconfig
 | 
			
		||||
/ltmain.sh
 | 
			
		||||
/m4/*
 | 
			
		||||
/maint.mk
 | 
			
		||||
/mingw-libvirt.spec
 | 
			
		||||
/mkinstalldirs
 | 
			
		||||
/po/*
 | 
			
		||||
/proxy/
 | 
			
		||||
/python/
 | 
			
		||||
/run
 | 
			
		||||
/sc_*
 | 
			
		||||
/src/.*.stamp
 | 
			
		||||
/src/*.pc
 | 
			
		||||
/src/access/org.libvirt.api.policy
 | 
			
		||||
/src/access/viraccessapicheck.c
 | 
			
		||||
/src/access/viraccessapicheck.h
 | 
			
		||||
/src/access/viraccessapichecklxc.c
 | 
			
		||||
/src/access/viraccessapichecklxc.h
 | 
			
		||||
/src/access/viraccessapicheckqemu.c
 | 
			
		||||
/src/access/viraccessapicheckqemu.h
 | 
			
		||||
/src/esx/*.generated.*
 | 
			
		||||
/src/hyperv/*.generated.*
 | 
			
		||||
/src/libvirt*.def
 | 
			
		||||
/src/libvirt.syms
 | 
			
		||||
/src/libvirt_access.syms
 | 
			
		||||
/src/libvirt_access.xml
 | 
			
		||||
/src/libvirt_access_lxc.syms
 | 
			
		||||
/src/libvirt_access_lxc.xml
 | 
			
		||||
/src/libvirt_access_qemu.syms
 | 
			
		||||
/src/libvirt_access_qemu.xml
 | 
			
		||||
/src/libvirt_*.stp
 | 
			
		||||
/src/libvirt_*helper
 | 
			
		||||
/src/libvirt_*probes.h
 | 
			
		||||
/src/libvirt_lxc
 | 
			
		||||
/src/locking/lock_daemon_dispatch_stubs.h
 | 
			
		||||
/src/locking/lock_protocol.[ch]
 | 
			
		||||
/src/locking/qemu-lockd.conf
 | 
			
		||||
/src/locking/qemu-sanlock.conf
 | 
			
		||||
/src/locking/test_libvirt_sanlock.aug
 | 
			
		||||
/src/lxc/lxc_controller_dispatch.h
 | 
			
		||||
/src/lxc/lxc_monitor_dispatch.h
 | 
			
		||||
/src/lxc/lxc_monitor_protocol.c
 | 
			
		||||
/src/lxc/lxc_monitor_protocol.h
 | 
			
		||||
/src/lxc/lxc_protocol.[ch]
 | 
			
		||||
/src/lxc/test_libvirtd_lxc.aug
 | 
			
		||||
/src/qemu/test_libvirtd_qemu.aug
 | 
			
		||||
/src/remote/*_client_bodies.h
 | 
			
		||||
/src/remote/*_protocol.[ch]
 | 
			
		||||
/src/rpc/virkeepaliveprotocol.[ch]
 | 
			
		||||
/src/rpc/virnetprotocol.[ch]
 | 
			
		||||
/src/test_libvirt*.aug
 | 
			
		||||
/src/test_virtlockd.aug
 | 
			
		||||
/src/util/virkeymaps.h
 | 
			
		||||
/src/virt-aa-helper
 | 
			
		||||
/src/virtlockd
 | 
			
		||||
/src/virtlockd.8
 | 
			
		||||
/src/virtlockd.8.in
 | 
			
		||||
/src/virtlockd.init
 | 
			
		||||
/tests/*.log
 | 
			
		||||
/tests/*.pid
 | 
			
		||||
/tests/*.trs
 | 
			
		||||
/tests/commandhelper
 | 
			
		||||
/tests/*test
 | 
			
		||||
!/tests/*schematest
 | 
			
		||||
!/tests/virt-aa-helper-test
 | 
			
		||||
/tests/objectlocking
 | 
			
		||||
/tests/objectlocking-files.txt
 | 
			
		||||
/tests/objectlocking.cm[ix]
 | 
			
		||||
/tests/reconnect
 | 
			
		||||
/tests/ssh
 | 
			
		||||
/tests/test_conf
 | 
			
		||||
/tools/*.[18]
 | 
			
		||||
/tools/libvirt-guests.init
 | 
			
		||||
/tools/libvirt-guests.service
 | 
			
		||||
/tools/libvirt-guests.sh
 | 
			
		||||
/tools/virt-login-shell
 | 
			
		||||
/tools/virsh
 | 
			
		||||
/tools/virsh-*-edit.c
 | 
			
		||||
/tools/virt-*-validate
 | 
			
		||||
/tools/virt-sanlock-cleanup
 | 
			
		||||
/tools/wireshark/src/plugin.c
 | 
			
		||||
/tools/wireshark/src/libvirt
 | 
			
		||||
/update.log
 | 
			
		||||
GPATH
 | 
			
		||||
GRTAGS
 | 
			
		||||
GTAGS
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
TAGS
 | 
			
		||||
coverage
 | 
			
		||||
cscope.files
 | 
			
		||||
cscope.in.out
 | 
			
		||||
cscope.out
 | 
			
		||||
cscope.po.out
 | 
			
		||||
results.log
 | 
			
		||||
stamp-h
 | 
			
		||||
stamp-h.in
 | 
			
		||||
stamp-h1
 | 
			
		||||
tags
 | 
			
		||||
 | 
			
		||||
# clangd related ignores
 | 
			
		||||
.clangd
 | 
			
		||||
compile_commands.json
 | 
			
		||||
!/gnulib/lib/Makefile.am
 | 
			
		||||
!/gnulib/tests/Makefile.am
 | 
			
		||||
!/m4/virt-*.m4
 | 
			
		||||
!/po/*.po
 | 
			
		||||
!/po/POTFILES.in
 | 
			
		||||
!/po/libvirt.pot
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										137
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							@@ -1,137 +0,0 @@
 | 
			
		||||
variables:
 | 
			
		||||
  GIT_DEPTH: 100
 | 
			
		||||
 | 
			
		||||
stages:
 | 
			
		||||
  - containers
 | 
			
		||||
  - builds
 | 
			
		||||
  - integration_tests
 | 
			
		||||
  - 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'
 | 
			
		||||
  - '/ci/integration.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 --clean --nodeps --define "_topdir $PWD/rpmbuild/" -ta build/meson-dist/libvirt-*.tar.xz;
 | 
			
		||||
        mv rpmbuild/RPMS/x86_64/ libvirt-rpms/;
 | 
			
		||||
      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:
 | 
			
		||||
    - job: x86_64-almalinux-8-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  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-153:latest
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-opensuse-leap-153-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  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:
 | 
			
		||||
    - job: x86_64-almalinux-8-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  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:
 | 
			
		||||
    - job: x86_64-almalinux-8-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  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,19 +0,0 @@
 | 
			
		||||
<!-- See https://libvirt.org/bugs.html#how-to-file-high-quality-bug-reports -->
 | 
			
		||||
 | 
			
		||||
## 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 -->
 | 
			
		||||
@@ -1,25 +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
 | 
			
		||||
							
								
								
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,3 @@
 | 
			
		||||
[submodule "keycodemapdb"]
 | 
			
		||||
	path = src/keycodemapdb
 | 
			
		||||
	url = https://gitlab.com/keycodemap/keycodemapdb.git
 | 
			
		||||
[submodule "gnulib"]
 | 
			
		||||
	path = .gnulib
 | 
			
		||||
	url = git://git.sv.gnu.org/gnulib.git
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
[gitpublishprofile "default"]
 | 
			
		||||
base = master
 | 
			
		||||
to = libvir-list@redhat.com
 | 
			
		||||
prefix = libvirt PATCH
 | 
			
		||||
							
								
								
									
										1
									
								
								.gnulib
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								.gnulib
									
									
									
									
									
										Submodule
									
								
							 Submodule .gnulib added at d55899fd2c
									
								
							
							
								
								
									
										28
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								.mailmap
									
									
									
									
									
								
							@@ -5,10 +5,7 @@
 | 
			
		||||
 | 
			
		||||
<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>
 | 
			
		||||
@@ -20,6 +17,7 @@
 | 
			
		||||
<jfehlig@suse.com> <jfehlig@novell.com>
 | 
			
		||||
<jfehlig@suse.com> <jfehlig@linux-ypgk.site>
 | 
			
		||||
<jclift@redhat.com> <justin@salasaga.org>
 | 
			
		||||
<berrange@redhat.com> <dan@berrange.com>
 | 
			
		||||
<soren@linux2go.dk> <soren@canonical.com>
 | 
			
		||||
<cfergeau@redhat.com> <teuf@gnome.org>
 | 
			
		||||
<wency@cn.fujitsu.com> <wency cn fujitsu com>
 | 
			
		||||
@@ -38,16 +36,6 @@
 | 
			
		||||
<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>
 | 
			
		||||
@@ -65,16 +53,6 @@ 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>
 | 
			
		||||
Marco Bozzolan <bozzolan@gmail.com>
 | 
			
		||||
Marco Bozzolan <redshift@gmx.com>
 | 
			
		||||
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>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										96
									
								
								AUTHORS.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								AUTHORS.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
   libvirt Authors
 | 
			
		||||
   ===============
 | 
			
		||||
 | 
			
		||||
The libvirt project was initiated by:
 | 
			
		||||
 | 
			
		||||
Daniel Veillard <veillard@redhat.com> or <daniel@veillard.com>
 | 
			
		||||
 | 
			
		||||
The primary maintainers and people with commit access rights:
 | 
			
		||||
 | 
			
		||||
Alex Jia <ajia@redhat.com>
 | 
			
		||||
Anthony Liguori <aliguori@us.ibm.com>
 | 
			
		||||
Chris Lalancette <clalance@redhat.com>
 | 
			
		||||
Christophe Fergeau <cfergeau@redhat.com>
 | 
			
		||||
Claudio Bley <cbley@av-test.de>
 | 
			
		||||
Cole Robinson <crobinso@redhat.com>
 | 
			
		||||
Daniel Berrange <berrange@redhat.com>
 | 
			
		||||
Daniel Veillard <veillard@redhat.com>
 | 
			
		||||
Dave Allan <dallan@redhat.com>
 | 
			
		||||
Doug Goldstein <cardoe@gentoo.org>
 | 
			
		||||
Eric Blake <eblake@redhat.com>
 | 
			
		||||
Gao Feng <gaofeng@cn.fujitsu.com>
 | 
			
		||||
Guannan Ren <gren@redhat.com>
 | 
			
		||||
Guido Günther <agx@sigxcpu.org>
 | 
			
		||||
Ján Tomko <jtomko@redhat.com>
 | 
			
		||||
Jim Fehlig <jfehlig@suse.com>
 | 
			
		||||
Jim Meyering <meyering@redhat.com>
 | 
			
		||||
Jiří Denemark <jdenemar@redhat.com>
 | 
			
		||||
John Ferlan <jferlan@redhat.com>
 | 
			
		||||
John Levon <john.levon@sun.com>
 | 
			
		||||
Laine Stump <laine@redhat.com>
 | 
			
		||||
Mark McLoughlin <markmc@redhat.com>
 | 
			
		||||
Martin Kletzander <mkletzan@redhat.com>
 | 
			
		||||
Matthias Bolte <matthias.bolte@googlemail.com>
 | 
			
		||||
Michal Prívozník <mprivozn@redhat.com>
 | 
			
		||||
Osier Yang <jyang@redhat.com>
 | 
			
		||||
Pavel Hrdina <phrdina@redhat.com>
 | 
			
		||||
Peter Krempa <pkrempa@redhat.com>
 | 
			
		||||
Richard W.M. Jones <rjones@redhat.com>
 | 
			
		||||
Roman Bogorodskiy <bogorodskiy@gmail.com>
 | 
			
		||||
Stefan Berger <stefanb@us.ibm.com>
 | 
			
		||||
Wen Congyang <wency@cn.fujitsu.com>
 | 
			
		||||
 | 
			
		||||
Previous maintainers:
 | 
			
		||||
 | 
			
		||||
Atsushi SAKAI <sakaia@jp.fujitsu.com>
 | 
			
		||||
Dan Smith <danms@us.ibm.com>
 | 
			
		||||
Dave Leskovec <dlesko@linux.vnet.ibm.com>
 | 
			
		||||
Justin Clift <jclift@redhat.com>
 | 
			
		||||
Karel Zak <kzak@redhat.com>
 | 
			
		||||
 | 
			
		||||
Patches have also been contributed by:
 | 
			
		||||
 | 
			
		||||
Abel Míguez Rodríguez <amiguezr@pdi.ucm.es>
 | 
			
		||||
Amit Shah <amit.shah@redhat.com>
 | 
			
		||||
Andrew Puch <apuch@redhat.com>
 | 
			
		||||
Anton Protopopov <aspsk2@gmail.com>
 | 
			
		||||
Ben Guthro <ben.guthro@gmail.com>
 | 
			
		||||
Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
 | 
			
		||||
Daniel Hokka Zakrisson <daniel@hozac.com>
 | 
			
		||||
Dan Wendlandt <dan@nicira.com>
 | 
			
		||||
David Lively <dlively@virtualiron.com>
 | 
			
		||||
David Lutterkort <dlutter@redhat.com>
 | 
			
		||||
Evgeniy Sokolov <evg@openvz.org>
 | 
			
		||||
Hugh Brock <hbrock@redhat.com>
 | 
			
		||||
Itamar Heim <iheim@redhat.com>
 | 
			
		||||
James Morris <jmorris@namei.org>
 | 
			
		||||
Javier Fontan <jfontan@gmail.com>
 | 
			
		||||
Jeremy Katz <katzj@redhat.com>
 | 
			
		||||
Kaitlin Rupert <kaitlin@linux.vnet.ibm.com>
 | 
			
		||||
Kazuki Mizushima <mizushima.kazuk@jp.fujitsu.com>
 | 
			
		||||
Mads Chr. Olesen <shiyee@shiyee.dk>
 | 
			
		||||
Mark Johnson <johnson.nh@gmail.com>
 | 
			
		||||
Markus Armbruster <armbru@redhat.com>
 | 
			
		||||
Masayuki Sunou <fj1826dm@aa.jp.fujitsu.com>
 | 
			
		||||
Matthias Witte <witte@netzquadrat.de>
 | 
			
		||||
Michel Ponceau <michel.ponceau@bull.net>
 | 
			
		||||
Nobuhiro Itou <fj0873gn@aa.jp.fujitsu.com>
 | 
			
		||||
Pete Vetere <pvetere@redhat.com>
 | 
			
		||||
Philippe Berthault <philippe.berthault@Bull.net>
 | 
			
		||||
Saori Fukuta <fukuta.saori@jp.fujitsu.com>
 | 
			
		||||
Shigeki Sakamoto <fj0588di@aa.jp.fujitsu.com>
 | 
			
		||||
Shuveb Hussain <shuveb@binarykarma.com>
 | 
			
		||||
Stefan de Konink <dekonink@kinkrsoftware.nl>
 | 
			
		||||
Takahashi Tomohiro <takatom@jp.fujitsu.com>
 | 
			
		||||
Tatsuro Enokura <fj7716hz@aa.jp.fujitsu.com>
 | 
			
		||||
 | 
			
		||||
#authorslist#
 | 
			
		||||
 | 
			
		||||
[....send patches to get your name here....]
 | 
			
		||||
 | 
			
		||||
The libvirt logo was designed by Diana Fong
 | 
			
		||||
 | 
			
		||||
-- End
 | 
			
		||||
;; Local Variables:
 | 
			
		||||
;; coding: utf-8
 | 
			
		||||
;; End:
 | 
			
		||||
							
								
								
									
										100
									
								
								AUTHORS.rst.in
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								AUTHORS.rst.in
									
									
									
									
									
								
							@@ -1,100 +0,0 @@
 | 
			
		||||
===============
 | 
			
		||||
libvirt Authors
 | 
			
		||||
===============
 | 
			
		||||
 | 
			
		||||
The libvirt project was initiated by:
 | 
			
		||||
 | 
			
		||||
* Daniel Veillard <veillard@redhat.com> or <daniel@veillard.com>
 | 
			
		||||
 | 
			
		||||
The primary maintainers and people with commit access rights:
 | 
			
		||||
 | 
			
		||||
* Andrea Bolognani <abologna@redhat.com>
 | 
			
		||||
* Cédric Bosdonnat <cbosdonnat@suse.com>
 | 
			
		||||
* Christian Ehrhardt <christian.ehrhardt@canonical.com>
 | 
			
		||||
* Christophe Fergeau <cfergeau@redhat.com>
 | 
			
		||||
* Cole Robinson <crobinso@redhat.com>
 | 
			
		||||
* Daniel P. Berrangé <berrange@redhat.com>
 | 
			
		||||
* Daniel Veillard <veillard@redhat.com>
 | 
			
		||||
* Eric Blake <eblake@redhat.com>
 | 
			
		||||
* Erik Skultety <eskultet@redhat.com>
 | 
			
		||||
* Fabiano Fidêncio <fidencio@redhat.com>
 | 
			
		||||
* Guido Günther <agx@sigxcpu.org>
 | 
			
		||||
* Ján Tomko <jtomko@redhat.com>
 | 
			
		||||
* Jim Fehlig <jfehlig@suse.com>
 | 
			
		||||
* Jiří Denemark <jdenemar@redhat.com>
 | 
			
		||||
* Laine Stump <laine@redhat.com>
 | 
			
		||||
* Martin Kletzander <mkletzan@redhat.com>
 | 
			
		||||
* Michal Prívozník <mprivozn@redhat.com>
 | 
			
		||||
* Nikolay Shirokovskiy <nshirokovskiy@openvz.org>
 | 
			
		||||
* Pavel Hrdina <phrdina@redhat.com>
 | 
			
		||||
* Peter Krempa <pkrempa@redhat.com>
 | 
			
		||||
* Pino Toscano <ptoscano@redhat.com>
 | 
			
		||||
* Richard W.M. Jones <rjones@redhat.com>
 | 
			
		||||
* Roman Bogorodskiy <bogorodskiy@gmail.com>
 | 
			
		||||
* Tim Wiederhake <twiederh@redhat.com>
 | 
			
		||||
 | 
			
		||||
Previous maintainers:
 | 
			
		||||
 | 
			
		||||
* Alex Jia <ajia@redhat.com>
 | 
			
		||||
* Anthony Liguori <aliguori@us.ibm.com>
 | 
			
		||||
* Atsushi SAKAI <sakaia@jp.fujitsu.com>
 | 
			
		||||
* Chris Lalancette <clalance@redhat.com>
 | 
			
		||||
* Claudio Bley <claudio.bley@gmail.com>
 | 
			
		||||
* Dan Smith <danms@us.ibm.com>
 | 
			
		||||
* Dave Allan <dallan@redhat.com>
 | 
			
		||||
* Dave Leskovec <dlesko@linux.vnet.ibm.com>
 | 
			
		||||
* Dmitry Guryanov <dguryanov@parallels.com>
 | 
			
		||||
* Doug Goldstein <cardoe@gentoo.org>
 | 
			
		||||
* Gao Feng <gaofeng@cn.fujitsu.com>
 | 
			
		||||
* Guannan Ren <gren@redhat.com>
 | 
			
		||||
* Jim Meyering <meyering@redhat.com>
 | 
			
		||||
* John Ferlan <jferlan@redhat.com>
 | 
			
		||||
* John Levon <john.levon@sun.com>
 | 
			
		||||
* Justin Clift <jclift@redhat.com>
 | 
			
		||||
* Karel Zak <kzak@redhat.com>
 | 
			
		||||
* Katerina Koukiou <kkoukiou@redhat.com>
 | 
			
		||||
* Mark McLoughlin <markmc@redhat.com>
 | 
			
		||||
* Matthias Bolte <matthias.bolte@googlemail.com>
 | 
			
		||||
* Maxim Nestratov <mnestratov@virtuozzo.com>
 | 
			
		||||
* Osier Yang <jyang@redhat.com>
 | 
			
		||||
* Stefan Berger <stefanb@us.ibm.com>
 | 
			
		||||
* Wen Congyang <wency@cn.fujitsu.com>
 | 
			
		||||
 | 
			
		||||
Patches have also been contributed by:
 | 
			
		||||
 | 
			
		||||
* Abel Míguez Rodríguez <amiguezr@pdi.ucm.es>
 | 
			
		||||
* Amit Shah <amit.shah@redhat.com>
 | 
			
		||||
* Andrew Puch <apuch@redhat.com>
 | 
			
		||||
* Anton Protopopov <aspsk2@gmail.com>
 | 
			
		||||
* Ben Guthro <ben.guthro@gmail.com>
 | 
			
		||||
* Daniel Hokka Zakrisson <daniel@hozac.com>
 | 
			
		||||
* Dan Wendlandt <dan@nicira.com>
 | 
			
		||||
* David Lively <dlively@virtualiron.com>
 | 
			
		||||
* David Lutterkort <dlutter@redhat.com>
 | 
			
		||||
* Evgeniy Sokolov <evg@openvz.org>
 | 
			
		||||
* Hugh Brock <hbrock@redhat.com>
 | 
			
		||||
* Itamar Heim <iheim@redhat.com>
 | 
			
		||||
* James Morris <jmorris@namei.org>
 | 
			
		||||
* Javier Fontan <jfontan@gmail.com>
 | 
			
		||||
* Jeremy Katz <katzj@redhat.com>
 | 
			
		||||
* Kaitlin Rupert <kaitlin@linux.vnet.ibm.com>
 | 
			
		||||
* Kazuki Mizushima <mizushima.kazuk@jp.fujitsu.com>
 | 
			
		||||
* Mads Chr. Olesen <shiyee@shiyee.dk>
 | 
			
		||||
* Mark Johnson <johnson.nh@gmail.com>
 | 
			
		||||
* Markus Armbruster <armbru@redhat.com>
 | 
			
		||||
* Masayuki Sunou <fj1826dm@aa.jp.fujitsu.com>
 | 
			
		||||
* Matthias Witte <witte@netzquadrat.de>
 | 
			
		||||
* Michel Ponceau <michel.ponceau@bull.net>
 | 
			
		||||
* Nobuhiro Itou <fj0873gn@aa.jp.fujitsu.com>
 | 
			
		||||
* Pete Vetere <pvetere@redhat.com>
 | 
			
		||||
* Philippe Berthault <philippe.berthault@Bull.net>
 | 
			
		||||
* Saori Fukuta <fukuta.saori@jp.fujitsu.com>
 | 
			
		||||
* Shigeki Sakamoto <fj0588di@aa.jp.fujitsu.com>
 | 
			
		||||
* Shuveb Hussain <shuveb@binarykarma.com>
 | 
			
		||||
* Stefan de Konink <dekonink@kinkrsoftware.nl>
 | 
			
		||||
* Takahashi Tomohiro <takatom@jp.fujitsu.com>
 | 
			
		||||
* Tatsuro Enokura <fj7716hz@aa.jp.fujitsu.com>
 | 
			
		||||
 | 
			
		||||
@contributorslist@
 | 
			
		||||
 | 
			
		||||
The libvirt logo was designed by Diana Fong
 | 
			
		||||
@@ -1,45 +0,0 @@
 | 
			
		||||
=======================
 | 
			
		||||
Contributing to libvirt
 | 
			
		||||
=======================
 | 
			
		||||
 | 
			
		||||
Full, up to date information on how to contribute to libvirt can be
 | 
			
		||||
found on the libvirt website:
 | 
			
		||||
 | 
			
		||||
https://libvirt.org/contribute.html
 | 
			
		||||
 | 
			
		||||
To build the same document locally, from the top level directory of
 | 
			
		||||
your git clone run:
 | 
			
		||||
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
   $ meson build
 | 
			
		||||
   $ ninja -C build
 | 
			
		||||
 | 
			
		||||
You'll find the freshly-built document in ``docs/contribute.html``.
 | 
			
		||||
 | 
			
		||||
If ``meson setup`` fails because of missing dependencies, you can set
 | 
			
		||||
up your system by calling
 | 
			
		||||
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
   $ sudo dnf builddep libvirt
 | 
			
		||||
 | 
			
		||||
if you're on a RHEL-based distribution or
 | 
			
		||||
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
   $ sudo apt-get build-dep libvirt
 | 
			
		||||
 | 
			
		||||
if you're on a Debian-based one.
 | 
			
		||||
 | 
			
		||||
Note that, for the RHEL-based case, if you're on a machine where you
 | 
			
		||||
haven't done any C development before, you will probably also need
 | 
			
		||||
to run
 | 
			
		||||
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
   $ sudo dnf install gcc make ninja-build rpm-build
 | 
			
		||||
 | 
			
		||||
You might still be missing some dependencies if your distribution is
 | 
			
		||||
shipping an old libvirt version, but that will get you much closer to
 | 
			
		||||
where you need to be to build successfully from source.
 | 
			
		||||
@@ -55,7 +55,7 @@ modified by someone else and passed on, the recipients should know
 | 
			
		||||
that what they have is not the original version, so that the original
 | 
			
		||||
author's reputation will not be affected by problems that might be
 | 
			
		||||
introduced by others.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Finally, software patents pose a constant threat to the existence of
 | 
			
		||||
any free program.  We wish to make sure that a company cannot
 | 
			
		||||
effectively restrict the users of a free program by obtaining a
 | 
			
		||||
@@ -111,7 +111,7 @@ modification follow.  Pay close attention to the difference between a
 | 
			
		||||
"work based on the library" and a "work that uses the library".  The
 | 
			
		||||
former contains code derived from the library, whereas the latter must
 | 
			
		||||
be combined with the library in order to run.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                  GNU LESSER GENERAL PUBLIC LICENSE
 | 
			
		||||
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 | 
			
		||||
 | 
			
		||||
@@ -158,7 +158,7 @@ Library.
 | 
			
		||||
  You may charge a fee for the physical act of transferring a copy,
 | 
			
		||||
and you may at your option offer warranty protection in exchange for a
 | 
			
		||||
fee.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  2. You may modify your copy or copies of the Library or any portion
 | 
			
		||||
of it, thus forming a work based on the Library, and copy and
 | 
			
		||||
distribute such modifications or work under the terms of Section 1
 | 
			
		||||
@@ -216,7 +216,7 @@ instead of to this License.  (If a newer version than version 2 of the
 | 
			
		||||
ordinary GNU General Public License has appeared, then you can specify
 | 
			
		||||
that version instead if you wish.)  Do not make any other change in
 | 
			
		||||
these notices.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Once this change is made in a given copy, it is irreversible for
 | 
			
		||||
that copy, so the ordinary GNU General Public License applies to all
 | 
			
		||||
subsequent copies and derivative works made from that copy.
 | 
			
		||||
@@ -267,7 +267,7 @@ Library will still fall under Section 6.)
 | 
			
		||||
distribute the object code for the work under the terms of Section 6.
 | 
			
		||||
Any executables containing that work also fall under Section 6,
 | 
			
		||||
whether or not they are linked directly with the Library itself.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  6. As an exception to the Sections above, you may also combine or
 | 
			
		||||
link a "work that uses the Library" with the Library to produce a
 | 
			
		||||
work containing portions of the Library, and distribute that work
 | 
			
		||||
@@ -329,7 +329,7 @@ restrictions of other proprietary libraries that do not normally
 | 
			
		||||
accompany the operating system.  Such a contradiction means you cannot
 | 
			
		||||
use both them and the Library together in an executable that you
 | 
			
		||||
distribute.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  7. You may place library facilities that are a work based on the
 | 
			
		||||
Library side-by-side in a single library together with other library
 | 
			
		||||
facilities not covered by this License, and distribute such a combined
 | 
			
		||||
@@ -370,7 +370,7 @@ subject to these terms and conditions.  You may not impose any further
 | 
			
		||||
restrictions on the recipients' exercise of the rights granted herein.
 | 
			
		||||
You are not responsible for enforcing compliance by third parties with
 | 
			
		||||
this License.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  11. If, as a consequence of a court judgment or allegation of patent
 | 
			
		||||
infringement or for any other reason (not limited to patent issues),
 | 
			
		||||
conditions are imposed on you (whether by court order, agreement or
 | 
			
		||||
@@ -422,7 +422,7 @@ conditions either of that version or of any later version published by
 | 
			
		||||
the Free Software Foundation.  If the Library does not specify a
 | 
			
		||||
license version number, you may choose any version ever published by
 | 
			
		||||
the Free Software Foundation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  14. If you wish to incorporate parts of the Library into other free
 | 
			
		||||
programs whose distribution conditions are incompatible with these,
 | 
			
		||||
write to the author to ask for permission.  For software which is
 | 
			
		||||
@@ -456,7 +456,7 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 | 
			
		||||
DAMAGES.
 | 
			
		||||
 | 
			
		||||
                     END OF TERMS AND CONDITIONS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
           How to Apply These Terms to Your New Libraries
 | 
			
		||||
 | 
			
		||||
  If you develop a new library, and you want it to be of the greatest
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16699
									
								
								ChangeLog-old
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16699
									
								
								ChangeLog-old
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										961
									
								
								HACKING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										961
									
								
								HACKING
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,961 @@
 | 
			
		||||
-*- buffer-read-only: t -*- vi: set ro:
 | 
			
		||||
DO NOT EDIT THIS FILE!  IT IS GENERATED AUTOMATICALLY
 | 
			
		||||
from docs/hacking.html.in!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                         Contributor guidelines
 | 
			
		||||
                         ======================
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
General tips for contributing patches
 | 
			
		||||
=====================================
 | 
			
		||||
(1) Discuss any large changes on the mailing list first. Post patches early and
 | 
			
		||||
listen to feedback.
 | 
			
		||||
 | 
			
		||||
(2) Post patches in unified diff format, with git rename detection enabled. You
 | 
			
		||||
need a one-time setup of:
 | 
			
		||||
 | 
			
		||||
  git config diff.renames true
 | 
			
		||||
 | 
			
		||||
After that, a command similar to this should work:
 | 
			
		||||
 | 
			
		||||
  diff -urp libvirt.orig/ libvirt.modified/ > libvirt-myfeature.patch
 | 
			
		||||
 | 
			
		||||
or:
 | 
			
		||||
 | 
			
		||||
  git diff > libvirt-myfeature.patch
 | 
			
		||||
 | 
			
		||||
Also, for code motion patches, you may find that "git diff --patience"
 | 
			
		||||
provides an easier-to-read patch. However, the usual workflow of libvirt
 | 
			
		||||
developer is:
 | 
			
		||||
 | 
			
		||||
  git checkout master
 | 
			
		||||
  git pull
 | 
			
		||||
  git checkout -t origin -b workbranch
 | 
			
		||||
  Hack, committing any changes along the way
 | 
			
		||||
 | 
			
		||||
More hints on compiling can be found here <compiling.html>. When you want to
 | 
			
		||||
post your patches:
 | 
			
		||||
 | 
			
		||||
  git pull --rebase
 | 
			
		||||
  (fix any conflicts)
 | 
			
		||||
  git send-email --cover-letter --no-chain-reply-to --annotate \
 | 
			
		||||
                 --to=libvir-list@redhat.com master
 | 
			
		||||
 | 
			
		||||
(Note that the "git send-email" subcommand may not be in the main git package
 | 
			
		||||
and using it may require installation of a separate package, for example the
 | 
			
		||||
"git-email" package in Fedora.) For a single patch you can omit
 | 
			
		||||
"--cover-letter", but a series of two or more patches needs a cover letter. If
 | 
			
		||||
you get tired of typing "--to=libvir-list@redhat.com" designation you can set
 | 
			
		||||
it in git config:
 | 
			
		||||
 | 
			
		||||
  git config sendemail.to libvir-list@redhat.com
 | 
			
		||||
 | 
			
		||||
Please follow this as close as you can, especially the rebase and git
 | 
			
		||||
send-email part, as it makes life easier for other developers to review your
 | 
			
		||||
patch set. One should avoid sending patches as attachments, but rather send
 | 
			
		||||
them in email body along with commit message. If a developer is sending
 | 
			
		||||
another version of the patch (e.g. to address review comments), he is advised
 | 
			
		||||
to note differences to previous versions after the "---" line in the patch so
 | 
			
		||||
that it helps reviewers but doesn't become part of git history. Moreover, such
 | 
			
		||||
patch needs to be prefixed correctly with "--subject-prefix=PATCHv2" appended
 | 
			
		||||
to "git send-email" (substitute "v2" with the correct version if needed
 | 
			
		||||
though).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(3) In your commit message, make the summary line reasonably short (60 characters
 | 
			
		||||
is typical), followed by a blank line, followed by any longer description of
 | 
			
		||||
why your patch makes sense. If the patch fixes a regression, and you know what
 | 
			
		||||
commit introduced the problem, mentioning that is useful. If the patch
 | 
			
		||||
resolves a bugzilla report, mentioning the URL of the bug number is useful;
 | 
			
		||||
but also summarize the issue rather than making all readers follow the link.
 | 
			
		||||
You can use 'git shortlog -30' to get an idea of typical summary lines.
 | 
			
		||||
Libvirt does not currently attach any meaning to Signed-off-by: lines, so it
 | 
			
		||||
is up to you if you want to include or omit them in the commit message.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(4) Split large changes into a series of smaller patches, self-contained if
 | 
			
		||||
possible, with an explanation of each patch and an explanation of how the
 | 
			
		||||
sequence of patches fits together. Moreover, please keep in mind that it's
 | 
			
		||||
required to be able to compile cleanly (*including* "make check" and "make
 | 
			
		||||
syntax-check") after each patch. A feature does not have to work until the end
 | 
			
		||||
of a series, but intermediate patches must compile and not cause test-suite
 | 
			
		||||
failures (this is to preserve the usefulness of "git bisect", among other
 | 
			
		||||
things).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(5) Make sure your patches apply against libvirt GIT. Developers only follow GIT
 | 
			
		||||
and don't care much about released versions.
 | 
			
		||||
 | 
			
		||||
(6) Run the automated tests on your code before submitting any changes. In
 | 
			
		||||
particular, configure with compile warnings set to -Werror. This is done
 | 
			
		||||
automatically for a git checkout; from a tarball, use:
 | 
			
		||||
 | 
			
		||||
  ./configure --enable-werror
 | 
			
		||||
 | 
			
		||||
and run the tests:
 | 
			
		||||
 | 
			
		||||
  make check
 | 
			
		||||
  make syntax-check
 | 
			
		||||
  make -C tests valgrind
 | 
			
		||||
 | 
			
		||||
Valgrind <http://valgrind.org/> is a test that checks for memory management
 | 
			
		||||
issues, such as leaks or use of uninitialized variables.
 | 
			
		||||
 | 
			
		||||
Some tests are skipped by default in a development environment, based on the
 | 
			
		||||
time they take in comparison to the likelihood that those tests will turn up
 | 
			
		||||
problems during incremental builds. These tests default to being run when
 | 
			
		||||
building from a tarball or with the configure option --enable-expensive-tests;
 | 
			
		||||
you can also force a one-time toggle of these tests by setting
 | 
			
		||||
VIR_TEST_EXPENSIVE to 0 or 1 at make time, as in:
 | 
			
		||||
 | 
			
		||||
  make check VIR_TEST_EXPENSIVE=1
 | 
			
		||||
 | 
			
		||||
If you encounter any failing tests, the VIR_TEST_DEBUG environment variable
 | 
			
		||||
may provide extra information to debug the failures. Larger values of
 | 
			
		||||
VIR_TEST_DEBUG may provide larger amounts of information:
 | 
			
		||||
 | 
			
		||||
  VIR_TEST_DEBUG=1 make check    (or)
 | 
			
		||||
  VIR_TEST_DEBUG=2 make check
 | 
			
		||||
 | 
			
		||||
When debugging failures during development, it is possible to focus in on just
 | 
			
		||||
the failing subtests by using TESTS and VIR_TEST_RANGE:
 | 
			
		||||
 | 
			
		||||
  make check VIR_TEST_DEBUG=1 VIR_TEST_RANGE=3-5 TESTS=qemuxml2argvtest
 | 
			
		||||
 | 
			
		||||
Also, individual tests can be run from inside the "tests/" directory, like:
 | 
			
		||||
 | 
			
		||||
  ./qemuxml2xmltest
 | 
			
		||||
 | 
			
		||||
There is also a "./run" script at the top level, to make it easier to run
 | 
			
		||||
programs that have not yet been installed, as well as to wrap invocations of
 | 
			
		||||
various tests under gdb or Valgrind.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(7) The Valgrind test should produce similar output to "make check". If the output
 | 
			
		||||
has traces within libvirt API's, then investigation is required in order to
 | 
			
		||||
determine the cause of the issue. Output such as the following indicates some
 | 
			
		||||
sort of leak:
 | 
			
		||||
 | 
			
		||||
==5414== 4 bytes in 1 blocks are definitely lost in loss record 3 of 89
 | 
			
		||||
==5414==    at 0x4A0881C: malloc (vg_replace_malloc.c:270)
 | 
			
		||||
==5414==    by 0x34DE0AAB85: xmlStrndup (in /usr/lib64/libxml2.so.2.7.8)
 | 
			
		||||
==5414==    by 0x4CC97A6: virDomainVideoDefParseXML (domain_conf.c:7410)
 | 
			
		||||
==5414==    by 0x4CD581D: virDomainDefParseXML (domain_conf.c:10188)
 | 
			
		||||
==5414==    by 0x4CD8C73: virDomainDefParseNode (domain_conf.c:10640)
 | 
			
		||||
==5414==    by 0x4CD8DDB: virDomainDefParse (domain_conf.c:10590)
 | 
			
		||||
==5414==    by 0x41CB1D: testCompareXMLToArgvHelper (qemuxml2argvtest.c:100)
 | 
			
		||||
==5414==    by 0x41E20F: virtTestRun (testutils.c:161)
 | 
			
		||||
==5414==    by 0x41C7CB: mymain (qemuxml2argvtest.c:866)
 | 
			
		||||
==5414==    by 0x41E84A: virtTestMain (testutils.c:723)
 | 
			
		||||
==5414==    by 0x34D9021734: (below main) (in /usr/lib64/libc-2.15.so)
 | 
			
		||||
 | 
			
		||||
In this example, the "virDomainDefParseXML()" had an error path where the
 | 
			
		||||
"virDomainVideoDefPtr video" pointer was not properly disposed. By simply
 | 
			
		||||
adding a "virDomainVideoDefFree(video);" in the error path, the issue was
 | 
			
		||||
resolved.
 | 
			
		||||
 | 
			
		||||
Another common mistake is calling a printing function, such as "VIR_DEBUG()"
 | 
			
		||||
without initializing a variable to be printed. The following example involved
 | 
			
		||||
a call which could return an error, but not set variables passed by reference
 | 
			
		||||
to the call. The solution was to initialize the variables prior to the call.
 | 
			
		||||
 | 
			
		||||
==4749== Use of uninitialised value of size 8
 | 
			
		||||
==4749==    at 0x34D904650B: _itoa_word (in /usr/lib64/libc-2.15.so)
 | 
			
		||||
==4749==    by 0x34D9049118: vfprintf (in /usr/lib64/libc-2.15.so)
 | 
			
		||||
==4749==    by 0x34D9108F60: __vasprintf_chk (in /usr/lib64/libc-2.15.so)
 | 
			
		||||
==4749==    by 0x4CAEEF7: virVasprintf (stdio2.h:199)
 | 
			
		||||
==4749==    by 0x4C8A55E: virLogVMessage (virlog.c:814)
 | 
			
		||||
==4749==    by 0x4C8AA96: virLogMessage (virlog.c:751)
 | 
			
		||||
==4749==    by 0x4DA0056: virNetTLSContextCheckCertKeyUsage (virnettlscontext.c:225)
 | 
			
		||||
==4749==    by 0x4DA06DB: virNetTLSContextCheckCert (virnettlscontext.c:439)
 | 
			
		||||
==4749==    by 0x4DA1620: virNetTLSContextNew (virnettlscontext.c:562)
 | 
			
		||||
==4749==    by 0x4DA26FC: virNetTLSContextNewServer (virnettlscontext.c:927)
 | 
			
		||||
==4749==    by 0x409C39: testTLSContextInit (virnettlscontexttest.c:467)
 | 
			
		||||
==4749==    by 0x40AB8F: virtTestRun (testutils.c:161)
 | 
			
		||||
 | 
			
		||||
Valgrind will also find some false positives or code paths which cannot be
 | 
			
		||||
resolved by making changes to the libvirt code. For these paths, it is
 | 
			
		||||
possible to add a filter to avoid the errors. For example:
 | 
			
		||||
 | 
			
		||||
==4643== 7 bytes in 1 blocks are possibly lost in loss record 4 of 20
 | 
			
		||||
==4643==    at 0x4A0881C: malloc (vg_replace_malloc.c:270)
 | 
			
		||||
==4643==    by 0x34D90853F1: strdup (in /usr/lib64/libc-2.15.so)
 | 
			
		||||
==4643==    by 0x34EEC2C08A: ??? (in /usr/lib64/libnl.so.1.1)
 | 
			
		||||
==4643==    by 0x34EEC15B81: ??? (in /usr/lib64/libnl.so.1.1)
 | 
			
		||||
==4643==    by 0x34D8C0EE15: call_init.part.0 (in /usr/lib64/ld-2.15.so)
 | 
			
		||||
==4643==    by 0x34D8C0EECF: _dl_init (in /usr/lib64/ld-2.15.so)
 | 
			
		||||
==4643==    by 0x34D8C01569: ??? (in /usr/lib64/ld-2.15.so)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
In this instance, it is acceptable to modify the "tests/.valgrind.supp" file
 | 
			
		||||
in order to add a suppression filter. The filter should be unique enough to
 | 
			
		||||
not suppress real leaks, but it should be generic enough to cover multiple
 | 
			
		||||
code paths. The format of the entry can be found in the documentation found at
 | 
			
		||||
the Valgrind home page <http://valgrind.org/>. The following trace was added
 | 
			
		||||
to "tests/.valgrind.supp" in order to suppress the warning:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    dlInitMemoryLeak1
 | 
			
		||||
    Memcheck:Leak
 | 
			
		||||
    fun:?alloc
 | 
			
		||||
    ...
 | 
			
		||||
    fun:call_init.part.0
 | 
			
		||||
    fun:_dl_init
 | 
			
		||||
    ...
 | 
			
		||||
    obj:*/lib*/ld-2.*so*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(8) Update tests and/or documentation, particularly if you are adding a new
 | 
			
		||||
feature or changing the output of a program.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
There is more on this subject, including lots of links to background reading
 | 
			
		||||
on the subject, on Richard Jones' guide to working with open source projects
 | 
			
		||||
<http://et.redhat.com/~rjones/how-to-supply-code-to-open-source-projects/>.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Code indentation
 | 
			
		||||
================
 | 
			
		||||
Libvirt's C source code generally adheres to some basic code-formatting
 | 
			
		||||
conventions. The existing code base is not totally consistent on this front,
 | 
			
		||||
but we do prefer that contributed code be formatted similarly. In short, use
 | 
			
		||||
spaces-not-TABs for indentation, use 4 spaces for each indentation level, and
 | 
			
		||||
other than that, follow the K&R style.
 | 
			
		||||
 | 
			
		||||
If you use Emacs, the project includes a file .dir-locals.el that sets up the
 | 
			
		||||
preferred indentation. If you use vim, append the following to your ~/.vimrc
 | 
			
		||||
file:
 | 
			
		||||
 | 
			
		||||
  set nocompatible
 | 
			
		||||
  filetype on
 | 
			
		||||
  set autoindent
 | 
			
		||||
  set smartindent
 | 
			
		||||
  set cindent
 | 
			
		||||
  set tabstop=8
 | 
			
		||||
  set shiftwidth=4
 | 
			
		||||
  set expandtab
 | 
			
		||||
  set cinoptions=(0,:0,l1,t0,L3
 | 
			
		||||
  filetype plugin indent on
 | 
			
		||||
  au FileType make setlocal noexpandtab
 | 
			
		||||
  au BufRead,BufNewFile *.am setlocal noexpandtab
 | 
			
		||||
  match ErrorMsg /\s\+$\| \+\ze\t/
 | 
			
		||||
 | 
			
		||||
Or if you don't want to mess your ~/.vimrc up, you can save the above into a
 | 
			
		||||
file called .lvimrc (not .vimrc) located at the root of libvirt source, then
 | 
			
		||||
install a vim script from
 | 
			
		||||
http://www.vim.org/scripts/script.php?script_id=1408, which will load the
 | 
			
		||||
.lvimrc only when you edit libvirt code.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Code formatting (especially for new code)
 | 
			
		||||
=========================================
 | 
			
		||||
With new code, we can be even more strict. Please apply the following function
 | 
			
		||||
(using GNU indent) to any new code. Note that this also gives you an idea of
 | 
			
		||||
the type of spacing we prefer around operators and keywords:
 | 
			
		||||
 | 
			
		||||
  indent-libvirt()
 | 
			
		||||
  {
 | 
			
		||||
    indent -bad -bap -bbb -bli4 -br -ce -brs -cs -i4 -l75 -lc75 \
 | 
			
		||||
      -sbi4 -psl -saf -sai -saw -sbi4 -ss -sc -cdw -cli4 -npcs -nbc \
 | 
			
		||||
      --no-tabs "$@"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
Note that sometimes you'll have to post-process that output further, by piping
 | 
			
		||||
it through "expand -i", since some leading TABs can get through. Usually
 | 
			
		||||
they're in macro definitions or strings, and should be converted anyhow.
 | 
			
		||||
 | 
			
		||||
Libvirt requires a C99 compiler for various reasons. However, most of the code
 | 
			
		||||
base prefers to stick to C89 syntax unless there is a compelling reason
 | 
			
		||||
otherwise. For example, it is preferable to use "/* */" comments rather than
 | 
			
		||||
"//". Also, when declaring local variables, the prevailing style has been to
 | 
			
		||||
declare them at the beginning of a scope, rather than immediately before use.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Bracket spacing
 | 
			
		||||
===============
 | 
			
		||||
The keywords "if", "for", "while", and "switch" must have a single space
 | 
			
		||||
following them before the opening bracket. E.g.
 | 
			
		||||
 | 
			
		||||
      if(foo)   // Bad
 | 
			
		||||
      if (foo)  // Good
 | 
			
		||||
 | 
			
		||||
Function implementations mustnothave any whitespace between the function name and the opening bracket. E.g.
 | 
			
		||||
 | 
			
		||||
      int foo (int wizz)  // Bad
 | 
			
		||||
      int foo(int wizz)   // Good
 | 
			
		||||
 | 
			
		||||
Function calls mustnothave any whitespace between the function name and the opening bracket. E.g.
 | 
			
		||||
 | 
			
		||||
      bar = foo (wizz);  // Bad
 | 
			
		||||
      bar = foo(wizz);   // Good
 | 
			
		||||
 | 
			
		||||
Function typedefs mustnothave any whitespace between the closing bracket of the function name and
 | 
			
		||||
opening bracket of the arg list. E.g.
 | 
			
		||||
 | 
			
		||||
      typedef int (*foo) (int wizz);  // Bad
 | 
			
		||||
      typedef int (*foo)(int wizz);   // Good
 | 
			
		||||
 | 
			
		||||
There must not be any whitespace immediately following any opening bracket, or
 | 
			
		||||
immediately prior to any closing bracket. E.g.
 | 
			
		||||
 | 
			
		||||
      int foo( int wizz );  // Bad
 | 
			
		||||
      int foo(int wizz);    // Good
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Commas
 | 
			
		||||
======
 | 
			
		||||
Commas should always be followed by a space or end of line, and never have
 | 
			
		||||
leading space; this is enforced during 'make syntax-check'.
 | 
			
		||||
 | 
			
		||||
      call(a,b ,c);// Bad
 | 
			
		||||
      call(a, b, c); // Good
 | 
			
		||||
 | 
			
		||||
When declaring an enum or using a struct initializer that occupies more than
 | 
			
		||||
one line, use a trailing comma. That way, future edits to extend the list only
 | 
			
		||||
have to add a line, rather than modify an existing line to add the
 | 
			
		||||
intermediate comma. Any sentinel enumerator value with a name ending in _LAST
 | 
			
		||||
is exempt, since you would extend such an enum before the _LAST element.
 | 
			
		||||
Another reason to favor trailing commas is that it requires less effort to
 | 
			
		||||
produce via code generators. Note that the syntax checker is unable to enforce
 | 
			
		||||
a style of trailing commas, so there are counterexamples in existing code
 | 
			
		||||
which do not use it; also, while C99 allows trailing commas, remember that
 | 
			
		||||
JSON and XDR do not.
 | 
			
		||||
 | 
			
		||||
      enum {
 | 
			
		||||
          VALUE_ONE,
 | 
			
		||||
          VALUE_TWO // Bad
 | 
			
		||||
      };
 | 
			
		||||
      enum {
 | 
			
		||||
          VALUE_THREE,
 | 
			
		||||
          VALUE_FOUR, // Good
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Semicolons
 | 
			
		||||
==========
 | 
			
		||||
Semicolons should never have a space beforehand. Inside the condition of a
 | 
			
		||||
"for" loop, there should always be a space or line break after each semicolon,
 | 
			
		||||
except for the special case of an infinite loop (although more infinite loops
 | 
			
		||||
use "while"). While not enforced, loop counters generally use post-increment.
 | 
			
		||||
 | 
			
		||||
      for (i = 0 ;i < limit ; ++i) { // Bad
 | 
			
		||||
      for (i = 0; i < limit; i++) { // Good
 | 
			
		||||
      for (;;) { // ok
 | 
			
		||||
      while (1) { // Better
 | 
			
		||||
 | 
			
		||||
Empty loop bodies are better represented with curly braces and a comment,
 | 
			
		||||
although use of a semicolon is not currently rejected.
 | 
			
		||||
 | 
			
		||||
      while ((rc = waitpid(pid, &st, 0) == -1) &&
 | 
			
		||||
             errno == EINTR); // ok
 | 
			
		||||
      while ((rc = waitpid(pid, &st, 0) == -1) &&
 | 
			
		||||
             errno == EINTR) { // Better
 | 
			
		||||
          /* nothing */
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Curly braces
 | 
			
		||||
============
 | 
			
		||||
Omit the curly braces around an "if", "while", "for" etc. body only when that
 | 
			
		||||
body occupies a single line. In every other case we require the braces. This
 | 
			
		||||
ensures that it is trivially easy to identify a single-'statement' loop: each
 | 
			
		||||
has only one 'line' in its body.
 | 
			
		||||
 | 
			
		||||
Omitting braces with a single-line body is fine:
 | 
			
		||||
 | 
			
		||||
  while (expr) // one-line body -> omitting curly braces is ok
 | 
			
		||||
      single_line_stmt();
 | 
			
		||||
 | 
			
		||||
However, the moment your loop/if/else body extends on to a second line, for
 | 
			
		||||
whatever reason (even if it's just an added comment), then you should add
 | 
			
		||||
braces. Otherwise, it would be too easy to insert a statement just before that
 | 
			
		||||
comment (without adding braces), thinking it is already a multi-statement loop:
 | 
			
		||||
 | 
			
		||||
  while (true) // BAD! multi-line body with no braces
 | 
			
		||||
      /* comment... */
 | 
			
		||||
      single_line_stmt();
 | 
			
		||||
 | 
			
		||||
Do this instead:
 | 
			
		||||
 | 
			
		||||
  while (true) { // Always put braces around a multi-line body.
 | 
			
		||||
      /* comment... */
 | 
			
		||||
      single_line_stmt();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
There is one exception: when the second body line is not at the same
 | 
			
		||||
indentation level as the first body line:
 | 
			
		||||
 | 
			
		||||
  if (expr)
 | 
			
		||||
      die("a diagnostic that would make this line"
 | 
			
		||||
          " extend past the 80-column limit"));
 | 
			
		||||
 | 
			
		||||
It is safe to omit the braces in the code above, since the further-indented
 | 
			
		||||
second body line makes it obvious that this is still a single-statement body.
 | 
			
		||||
 | 
			
		||||
To reiterate, don't do this:
 | 
			
		||||
 | 
			
		||||
  if (expr)            // BAD: no braces around...
 | 
			
		||||
      while (expr_2) { // ... a multi-line body
 | 
			
		||||
          ...
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
Do this, instead:
 | 
			
		||||
 | 
			
		||||
  if (expr) {
 | 
			
		||||
      while (expr_2) {
 | 
			
		||||
          ...
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
However, there is one exception in the other direction, when even a one-line
 | 
			
		||||
block should have braces. That occurs when that one-line, brace-less block is
 | 
			
		||||
an "if" or "else" block, and the counterpart block *does* use braces. In that
 | 
			
		||||
case, put braces around both blocks. Also, if the "else" block is much shorter
 | 
			
		||||
than the "if" block, consider negating the "if"-condition and swapping the
 | 
			
		||||
bodies, putting the short block first and making the longer, multi-line block
 | 
			
		||||
be the "else" block.
 | 
			
		||||
 | 
			
		||||
  if (expr) {
 | 
			
		||||
      ...
 | 
			
		||||
      ...
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
      x = y;    // BAD: braceless "else" with braced "then",
 | 
			
		||||
                // and short block last
 | 
			
		||||
 | 
			
		||||
  if (expr)
 | 
			
		||||
      x = y;    // BAD: braceless "if" with braced "else"
 | 
			
		||||
  else {
 | 
			
		||||
      ...
 | 
			
		||||
      ...
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
Keeping braces consistent and putting the short block first is preferred,
 | 
			
		||||
especially when the multi-line body is more than a few lines long, because it
 | 
			
		||||
is easier to read and grasp the semantics of an if-then-else block when the
 | 
			
		||||
simpler block occurs first, rather than after the more involved block:
 | 
			
		||||
 | 
			
		||||
  if (!expr) {
 | 
			
		||||
    x = y; // putting the smaller block first is more readable
 | 
			
		||||
  } else {
 | 
			
		||||
      ...
 | 
			
		||||
      ...
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
But if negating a complex condition is too ugly, then at least add braces:
 | 
			
		||||
 | 
			
		||||
  if (complex expr not worth negating) {
 | 
			
		||||
      ...
 | 
			
		||||
      ...
 | 
			
		||||
  } else {
 | 
			
		||||
      x = y;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Preprocessor
 | 
			
		||||
============
 | 
			
		||||
Macros defined with an ALL_CAPS name should generally be assumed to be unsafe
 | 
			
		||||
with regards to arguments with side-effects (that is, MAX(a++, b--) might
 | 
			
		||||
increment a or decrement b too many or too few times). Exceptions to this rule
 | 
			
		||||
are explicitly documented for macros in viralloc.h and virstring.h.
 | 
			
		||||
 | 
			
		||||
For variadic macros, stick with C99 syntax:
 | 
			
		||||
 | 
			
		||||
  #define vshPrint(_ctl, ...) fprintf(stdout, __VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
Use parenthesis when checking if a macro is defined, and use indentation to
 | 
			
		||||
track nesting:
 | 
			
		||||
 | 
			
		||||
  #if defined(HAVE_POSIX_FALLOCATE) && !defined(HAVE_FALLOCATE)
 | 
			
		||||
  # define fallocate(a,ignored,b,c) posix_fallocate(a,b,c)
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
C types
 | 
			
		||||
=======
 | 
			
		||||
Use the right type.
 | 
			
		||||
 | 
			
		||||
Scalars
 | 
			
		||||
-------
 | 
			
		||||
- If you're using "int" or "long", odds are good that there's a better type.
 | 
			
		||||
 | 
			
		||||
- If a variable is counting something, be sure to declare it with an unsigned
 | 
			
		||||
type.
 | 
			
		||||
 | 
			
		||||
- If it's memory-size-related, use "size_t" (use "ssize_t" only if required).
 | 
			
		||||
 | 
			
		||||
- If it's file-size related, use uintmax_t, or maybe "off_t".
 | 
			
		||||
 | 
			
		||||
- If it's file-offset related (i.e., signed), use "off_t".
 | 
			
		||||
 | 
			
		||||
- If it's just counting small numbers use "unsigned int"; (on all but oddball
 | 
			
		||||
embedded systems, you can assume that that type is at least four bytes wide).
 | 
			
		||||
 | 
			
		||||
- If a variable has boolean semantics, give it the "bool" type and use the
 | 
			
		||||
corresponding "true" and "false" macros. It's ok to include <stdbool.h>, since
 | 
			
		||||
libvirt's use of gnulib ensures that it exists and is usable.
 | 
			
		||||
 | 
			
		||||
- In the unusual event that you require a specific width, use a standard type
 | 
			
		||||
like "int32_t", "uint32_t", "uint64_t", etc.
 | 
			
		||||
 | 
			
		||||
- While using "bool" is good for readability, it comes with minor caveats:
 | 
			
		||||
 | 
			
		||||
-- Don't use "bool" in places where the type size must be constant across all
 | 
			
		||||
systems, like public interfaces and on-the-wire protocols. Note that it would
 | 
			
		||||
be possible (albeit wasteful) to use "bool" in libvirt's logical wire
 | 
			
		||||
protocol, since XDR maps that to its lower-level "bool_t" type, which *is*
 | 
			
		||||
fixed-size.
 | 
			
		||||
 | 
			
		||||
-- Don't compare a bool variable against the literal, "true", since a value with
 | 
			
		||||
a logical non-false value need not be "1". I.e., don't write "if (seen ==
 | 
			
		||||
true) ...". Rather, write "if (seen)...".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Of course, take all of the above with a grain of salt. If you're about to use
 | 
			
		||||
some system interface that requires a type like "size_t", "pid_t" or "off_t",
 | 
			
		||||
use matching types for any corresponding variables.
 | 
			
		||||
 | 
			
		||||
Also, if you try to use e.g., "unsigned int" as a type, and that conflicts
 | 
			
		||||
with the signedness of a related variable, sometimes it's best just to use the
 | 
			
		||||
*wrong* type, if 'pulling the thread' and fixing all related variables would
 | 
			
		||||
be too invasive.
 | 
			
		||||
 | 
			
		||||
Finally, while using descriptive types is important, be careful not to go
 | 
			
		||||
overboard. If whatever you're doing causes warnings, or requires casts, then
 | 
			
		||||
reconsider or ask for help.
 | 
			
		||||
 | 
			
		||||
Pointers
 | 
			
		||||
--------
 | 
			
		||||
Ensure that all of your pointers are 'const-correct'. Unless a pointer is used
 | 
			
		||||
to modify the pointed-to storage, give it the "const" attribute. That way, the
 | 
			
		||||
reader knows up-front that this is a read-only pointer. Perhaps more
 | 
			
		||||
importantly, if we're diligent about this, when you see a non-const pointer,
 | 
			
		||||
you're guaranteed that it is used to modify the storage it points to, or it is
 | 
			
		||||
aliased to another pointer that is.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Low level memory management
 | 
			
		||||
===========================
 | 
			
		||||
Use of the malloc/free/realloc/calloc APIs is deprecated in the libvirt
 | 
			
		||||
codebase, because they encourage a number of serious coding bugs and do not
 | 
			
		||||
enable compile time verification of checks for NULL. Instead of these
 | 
			
		||||
routines, use the macros from viralloc.h.
 | 
			
		||||
 | 
			
		||||
- To allocate a single object:
 | 
			
		||||
 | 
			
		||||
  virDomainPtr domain;
 | 
			
		||||
 | 
			
		||||
  if (VIR_ALLOC(domain) < 0)
 | 
			
		||||
      return NULL;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To allocate an array of objects:
 | 
			
		||||
 | 
			
		||||
  virDomainPtr domains;
 | 
			
		||||
  size_t ndomains = 10;
 | 
			
		||||
 | 
			
		||||
  if (VIR_ALLOC_N(domains, ndomains) < 0)
 | 
			
		||||
      return NULL;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To allocate an array of object pointers:
 | 
			
		||||
 | 
			
		||||
  virDomainPtr *domains;
 | 
			
		||||
  size_t ndomains = 10;
 | 
			
		||||
 | 
			
		||||
  if (VIR_ALLOC_N(domains, ndomains) < 0)
 | 
			
		||||
      return NULL;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To re-allocate the array of domains to be 1 element longer (however, note that
 | 
			
		||||
repeatedly expanding an array by 1 scales quadratically, so this is
 | 
			
		||||
recommended only for smaller arrays):
 | 
			
		||||
 | 
			
		||||
  virDomainPtr domains;
 | 
			
		||||
  size_t ndomains = 0;
 | 
			
		||||
 | 
			
		||||
  if (VIR_EXPAND_N(domains, ndomains, 1) < 0)
 | 
			
		||||
      return NULL;
 | 
			
		||||
  domains[ndomains - 1] = domain;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To ensure an array has room to hold at least one more element (this approach
 | 
			
		||||
scales better, but requires tracking allocation separately from usage)
 | 
			
		||||
 | 
			
		||||
  virDomainPtr domains;
 | 
			
		||||
  size_t ndomains = 0;
 | 
			
		||||
  size_t ndomains_max = 0;
 | 
			
		||||
 | 
			
		||||
  if (VIR_RESIZE_N(domains, ndomains_max, ndomains, 1) < 0)
 | 
			
		||||
      return NULL;
 | 
			
		||||
  domains[ndomains++] = domain;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To trim an array of domains from its allocated size down to the actual used
 | 
			
		||||
size:
 | 
			
		||||
 | 
			
		||||
  virDomainPtr domains;
 | 
			
		||||
  size_t ndomains = x;
 | 
			
		||||
  size_t ndomains_max = y;
 | 
			
		||||
 | 
			
		||||
  VIR_SHRINK_N(domains, ndomains_max, ndomains_max - ndomains);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To free an array of domains:
 | 
			
		||||
 | 
			
		||||
  virDomainPtr domains;
 | 
			
		||||
  size_t ndomains = x;
 | 
			
		||||
  size_t ndomains_max = y;
 | 
			
		||||
  size_t i;
 | 
			
		||||
 | 
			
		||||
  for (i = 0; i < ndomains; i++)
 | 
			
		||||
      VIR_FREE(domains[i]);
 | 
			
		||||
  VIR_FREE(domains);
 | 
			
		||||
  ndomains_max = ndomains = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
File handling
 | 
			
		||||
=============
 | 
			
		||||
Usage of the "fdopen()", "close()", "fclose()" APIs is deprecated in libvirt
 | 
			
		||||
code base to help avoiding double-closing of files or file descriptors, which
 | 
			
		||||
is particularly dangerous in a multi-threaded application. Instead of these
 | 
			
		||||
APIs, use the macros from virfile.h
 | 
			
		||||
 | 
			
		||||
- Open a file from a file descriptor:
 | 
			
		||||
 | 
			
		||||
  if ((file = VIR_FDOPEN(fd, "r")) == NULL) {
 | 
			
		||||
      virReportSystemError(errno, "%s",
 | 
			
		||||
                           _("failed to open file from file descriptor"));
 | 
			
		||||
      return -1;
 | 
			
		||||
  }
 | 
			
		||||
  /* fd is now invalid; only access the file using file variable */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- Close a file descriptor:
 | 
			
		||||
 | 
			
		||||
  if (VIR_CLOSE(fd) < 0) {
 | 
			
		||||
      virReportSystemError(errno, "%s", _("failed to close file"));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- Close a file:
 | 
			
		||||
 | 
			
		||||
  if (VIR_FCLOSE(file) < 0) {
 | 
			
		||||
      virReportSystemError(errno, "%s", _("failed to close file"));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- Close a file or file descriptor in an error path, without losing the previous
 | 
			
		||||
"errno" value:
 | 
			
		||||
 | 
			
		||||
  VIR_FORCE_CLOSE(fd);
 | 
			
		||||
  VIR_FORCE_FCLOSE(file);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
String comparisons
 | 
			
		||||
==================
 | 
			
		||||
Do not use the strcmp, strncmp, etc functions directly. Instead use one of the
 | 
			
		||||
following semantically named macros
 | 
			
		||||
 | 
			
		||||
- For strict equality:
 | 
			
		||||
 | 
			
		||||
  STREQ(a,b)
 | 
			
		||||
  STRNEQ(a,b)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- For case insensitive equality:
 | 
			
		||||
 | 
			
		||||
  STRCASEEQ(a,b)
 | 
			
		||||
  STRCASENEQ(a,b)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- For strict equality of a substring:
 | 
			
		||||
 | 
			
		||||
  STREQLEN(a,b,n)
 | 
			
		||||
  STRNEQLEN(a,b,n)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- For case insensitive equality of a substring:
 | 
			
		||||
 | 
			
		||||
  STRCASEEQLEN(a,b,n)
 | 
			
		||||
  STRCASENEQLEN(a,b,n)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- For strict equality of a prefix:
 | 
			
		||||
 | 
			
		||||
  STRPREFIX(a,b)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- To avoid having to check if a or b are NULL:
 | 
			
		||||
 | 
			
		||||
  STREQ_NULLABLE(a, b)
 | 
			
		||||
  STRNEQ_NULLABLE(a, b)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
String copying
 | 
			
		||||
==============
 | 
			
		||||
Do not use the strncpy function. According to the man page, it does *not*
 | 
			
		||||
guarantee a NULL-terminated buffer, which makes it extremely dangerous to use.
 | 
			
		||||
Instead, use one of the functionally equivalent functions:
 | 
			
		||||
 | 
			
		||||
  virStrncpy(char *dest, const char *src, size_t n, size_t destbytes)
 | 
			
		||||
 | 
			
		||||
The first three arguments have the same meaning as for strncpy; namely the
 | 
			
		||||
destination, source, and number of bytes to copy, respectively. The last
 | 
			
		||||
argument is the number of bytes available in the destination string; if a copy
 | 
			
		||||
of the source string (including a \0) will not fit into the destination, no
 | 
			
		||||
bytes are copied and the routine returns NULL. Otherwise, n bytes from the
 | 
			
		||||
source are copied into the destination and a trailing \0 is appended.
 | 
			
		||||
 | 
			
		||||
  virStrcpy(char *dest, const char *src, size_t destbytes)
 | 
			
		||||
 | 
			
		||||
Use this variant if you know you want to copy the entire src string into dest.
 | 
			
		||||
Note that this is a macro, so arguments could be evaluated more than once.
 | 
			
		||||
This is equivalent to virStrncpy(dest, src, strlen(src), destbytes)
 | 
			
		||||
 | 
			
		||||
  virStrcpyStatic(char *dest, const char *src)
 | 
			
		||||
 | 
			
		||||
Use this variant if you know you want to copy the entire src string into dest
 | 
			
		||||
*and* you know that your destination string is a static string (i.e. that
 | 
			
		||||
sizeof(dest) returns something meaningful). Note that this is a macro, so
 | 
			
		||||
arguments could be evaluated more than once. This is equivalent to
 | 
			
		||||
virStrncpy(dest, src, strlen(src), sizeof(dest)).
 | 
			
		||||
 | 
			
		||||
  VIR_STRDUP(char *dst, const char *src);
 | 
			
		||||
  VIR_STRNDUP(char *dst, const char *src, size_t n);
 | 
			
		||||
 | 
			
		||||
You should avoid using strdup or strndup directly as they do not report
 | 
			
		||||
out-of-memory error, and do not allow a NULL source. Use VIR_STRDUP or
 | 
			
		||||
VIR_STRNDUP macros instead, which return 0 for NULL source, 1 for successful
 | 
			
		||||
copy, and -1 for allocation failure with the error already reported. In very
 | 
			
		||||
specific cases, when you don't want to report the out-of-memory error, you can
 | 
			
		||||
use VIR_STRDUP_QUIET or VIR_STRNDUP_QUIET, but such usage is very rare and
 | 
			
		||||
usually considered a flaw.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Variable length string buffer
 | 
			
		||||
=============================
 | 
			
		||||
If there is a need for complex string concatenations, avoid using the usual
 | 
			
		||||
sequence of malloc/strcpy/strcat/snprintf functions and make use of the
 | 
			
		||||
virBuffer API described in buf.h
 | 
			
		||||
 | 
			
		||||
Typical usage is as follows:
 | 
			
		||||
 | 
			
		||||
  char *
 | 
			
		||||
  somefunction(...)
 | 
			
		||||
  {
 | 
			
		||||
     virBuffer buf = VIR_BUFFER_INITIALIZER;
 | 
			
		||||
 | 
			
		||||
     ...
 | 
			
		||||
 | 
			
		||||
     virBufferAddLit(&buf, "<domain>\n");
 | 
			
		||||
     virBufferAsprintf(&buf, "  <memory>%d</memory>\n", memory);
 | 
			
		||||
     ...
 | 
			
		||||
     virBufferAddLit(&buf, "</domain>\n");
 | 
			
		||||
 | 
			
		||||
     ...
 | 
			
		||||
 | 
			
		||||
     if (virBufferError(&buf)) {
 | 
			
		||||
         virBufferFreeAndReset(&buf);
 | 
			
		||||
         virReportOOMError();
 | 
			
		||||
         return NULL;
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
     return virBufferContentAndReset(&buf);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Include files
 | 
			
		||||
=============
 | 
			
		||||
There are now quite a large number of include files, both libvirt internal and
 | 
			
		||||
external, and system includes. To manage all this complexity it's best to
 | 
			
		||||
stick to the following general plan for all *.c source files:
 | 
			
		||||
 | 
			
		||||
  /*
 | 
			
		||||
   * Copyright notice
 | 
			
		||||
   * ....
 | 
			
		||||
   * ....
 | 
			
		||||
   * ....
 | 
			
		||||
   *
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  #include <config.h>             Must come first in every file.
 | 
			
		||||
 | 
			
		||||
  #include <stdio.h>              Any system includes you need.
 | 
			
		||||
  #include <string.h>
 | 
			
		||||
  #include <limits.h>
 | 
			
		||||
 | 
			
		||||
  #if WITH_NUMACTL                Some system includes aren't supported
 | 
			
		||||
  # include <numa.h>              everywhere so need these #if guards.
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #include "internal.h"           Include this first, after system includes.
 | 
			
		||||
 | 
			
		||||
  #include "util.h"               Any libvirt internal header files.
 | 
			
		||||
  #include "buf.h"
 | 
			
		||||
 | 
			
		||||
  static int
 | 
			
		||||
  myInternalFunc()                The actual code.
 | 
			
		||||
  {
 | 
			
		||||
      ...
 | 
			
		||||
 | 
			
		||||
Of particular note: *Do not* include libvirt/libvirt.h, libvirt/virterror.h,
 | 
			
		||||
libvirt/libvirt-qemu.h, or libvirt/libvirt-lxc.h. They are included by
 | 
			
		||||
"internal.h" already and there are some special reasons why you cannot include
 | 
			
		||||
these files explicitly. One of the special cases, "libvirt/libvirt.h" is
 | 
			
		||||
included prior to "internal.h" in "remote_protocol.x", to avoid exposing
 | 
			
		||||
*_LAST enum elements.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Printf-style functions
 | 
			
		||||
======================
 | 
			
		||||
Whenever you add a new printf-style function, i.e., one with a format string
 | 
			
		||||
argument and following "..." in its prototype, be sure to use gcc's printf
 | 
			
		||||
attribute directive in the prototype. For example, here's the one for
 | 
			
		||||
virAsprintf, in util.h:
 | 
			
		||||
 | 
			
		||||
  int virAsprintf(char **strp, const char *fmt, ...)
 | 
			
		||||
      ATTRIBUTE_FORMAT(printf, 2, 3);
 | 
			
		||||
 | 
			
		||||
This makes it so gcc's -Wformat and -Wformat-security options can do their
 | 
			
		||||
jobs and cross-check format strings with the number and types of arguments.
 | 
			
		||||
 | 
			
		||||
When printing to a string, consider using virBuffer for incremental
 | 
			
		||||
allocations, virAsprintf for a one-shot allocation, and snprintf for
 | 
			
		||||
fixed-width buffers. Do not use sprintf, even if you can prove the buffer
 | 
			
		||||
won't overflow, since gnulib does not provide the same portability guarantees
 | 
			
		||||
for sprintf as it does for snprintf.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Use of goto
 | 
			
		||||
===========
 | 
			
		||||
The use of goto is not forbidden, and goto is widely used throughout libvirt.
 | 
			
		||||
While the uncontrolled use of goto will quickly lead to unmaintainable code,
 | 
			
		||||
there is a place for it in well structured code where its use increases
 | 
			
		||||
readability and maintainability. In general, if goto is used for error
 | 
			
		||||
recovery, it's likely to be ok, otherwise, be cautious or avoid it all
 | 
			
		||||
together.
 | 
			
		||||
 | 
			
		||||
The typical use of goto is to jump to cleanup code in the case of a long list
 | 
			
		||||
of actions, any of which may fail and cause the entire operation to fail. In
 | 
			
		||||
this case, a function will have a single label at the end of the function.
 | 
			
		||||
It's almost always ok to use this style. In particular, if the cleanup code
 | 
			
		||||
only involves free'ing memory, then having multiple labels is overkill.
 | 
			
		||||
VIR_FREE() and every function named XXXFree() in libvirt is required to handle
 | 
			
		||||
NULL as its arg. Thus you can safely call free on all the variables even if
 | 
			
		||||
they were not yet allocated (yes they have to have been initialized to NULL).
 | 
			
		||||
This is much simpler and clearer than having multiple labels.
 | 
			
		||||
 | 
			
		||||
There are a couple of signs that a particular use of goto is not ok:
 | 
			
		||||
 | 
			
		||||
- You're using multiple labels. If you find yourself using multiple labels,
 | 
			
		||||
you're strongly encouraged to rework your code to eliminate all but one of
 | 
			
		||||
them.
 | 
			
		||||
 | 
			
		||||
- The goto jumps back up to a point above the current line of code being
 | 
			
		||||
executed. Please use some combination of looping constructs to re-execute code
 | 
			
		||||
instead; it's almost certainly going to be more understandable by others. One
 | 
			
		||||
well-known exception to this rule is restarting an i/o operation following
 | 
			
		||||
EINTR.
 | 
			
		||||
 | 
			
		||||
- The goto jumps down to an arbitrary place in the middle of a function followed
 | 
			
		||||
by further potentially failing calls. You should almost certainly be using a
 | 
			
		||||
conditional and a block instead of a goto. Perhaps some of your function's
 | 
			
		||||
logic would be better pulled out into a helper function.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Although libvirt does not encourage the Linux kernel wind/unwind style of
 | 
			
		||||
multiple labels, there's a good general discussion of the issue archived at
 | 
			
		||||
KernelTrap <http://kerneltrap.org/node/553/2131>
 | 
			
		||||
 | 
			
		||||
When using goto, please use one of these standard labels if it makes sense:
 | 
			
		||||
 | 
			
		||||
      error: A path only taken upon return with an error code
 | 
			
		||||
    cleanup: A path taken upon return with success code + optional error
 | 
			
		||||
  no_memory: A path only taken upon return with an OOM error code
 | 
			
		||||
      retry: If needing to jump upwards (e.g., retry on EINTR)
 | 
			
		||||
 | 
			
		||||
Top-level labels should be indented by one space (putting them on the
 | 
			
		||||
beginning of the line confuses function context detection in git):
 | 
			
		||||
 | 
			
		||||
int foo()
 | 
			
		||||
{
 | 
			
		||||
    /* ... do stuff ... */
 | 
			
		||||
 cleanup:
 | 
			
		||||
    /* ... do other stuff ... */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Libvirt committer guidelines
 | 
			
		||||
============================
 | 
			
		||||
The AUTHORS files indicates the list of people with commit access right who
 | 
			
		||||
can actually merge the patches.
 | 
			
		||||
 | 
			
		||||
The general rule for committing a patch is to make sure it has been reviewed
 | 
			
		||||
properly in the mailing-list first, usually if a couple of people gave an ACK
 | 
			
		||||
or +1 to a patch and nobody raised an objection on the list it should be good
 | 
			
		||||
to go. If the patch touches a part of the code where you're not the main
 | 
			
		||||
maintainer, or where you do not have a very clear idea of how things work,
 | 
			
		||||
it's better to wait for a more authoritative feedback though. Before
 | 
			
		||||
committing, please also rebuild locally, run 'make check syntax-check', and
 | 
			
		||||
make sure you don't raise errors. Try to look for warnings too; for example,
 | 
			
		||||
configure with
 | 
			
		||||
 | 
			
		||||
  --enable-compile-warnings=error
 | 
			
		||||
 | 
			
		||||
which adds -Werror to compile flags, so no warnings get missed
 | 
			
		||||
 | 
			
		||||
An exception to 'review and approval on the list first' is fixing failures to
 | 
			
		||||
build:
 | 
			
		||||
 | 
			
		||||
- if a recently committed patch breaks compilation on a platform or for a given
 | 
			
		||||
driver, then it's fine to commit a minimal fix directly without getting the
 | 
			
		||||
review feedback first
 | 
			
		||||
 | 
			
		||||
- if make check or make syntax-check breaks, if there is an obvious fix, it's
 | 
			
		||||
fine to commit immediately. The patch should still be sent to the list (or
 | 
			
		||||
tell what the fix was if trivial), and 'make check syntax-check' should pass
 | 
			
		||||
too, before committing anything
 | 
			
		||||
 | 
			
		||||
- fixes for documentation and code comments can be managed in the same way, but
 | 
			
		||||
still make sure they get reviewed if non-trivial.
 | 
			
		||||
							
								
								
									
										118
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,118 @@
 | 
			
		||||
## Process this file with automake to produce Makefile.in
 | 
			
		||||
 | 
			
		||||
## Copyright (C) 2005-2013 Red Hat, Inc.
 | 
			
		||||
##
 | 
			
		||||
## This library is free software; you can redistribute it and/or
 | 
			
		||||
## modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
## License as published by the Free Software Foundation; either
 | 
			
		||||
## version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
##
 | 
			
		||||
## This library is distributed in the hope that it will be useful,
 | 
			
		||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
## Lesser General Public License for more details.
 | 
			
		||||
##
 | 
			
		||||
## You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
## License along with this library.  If not, see
 | 
			
		||||
## <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
LCOV = lcov
 | 
			
		||||
GENHTML = genhtml
 | 
			
		||||
 | 
			
		||||
SUBDIRS = . gnulib/lib include src daemon tools docs gnulib/tests \
 | 
			
		||||
  tests po examples/object-events examples/hellolibvirt \
 | 
			
		||||
  examples/dominfo examples/domsuspend examples/apparmor \
 | 
			
		||||
  examples/xml/nwfilter examples/openauth examples/systemtap \
 | 
			
		||||
  tools/wireshark examples/dommigrate \
 | 
			
		||||
  examples/lxcconvert
 | 
			
		||||
 | 
			
		||||
ACLOCAL_AMFLAGS = -I m4
 | 
			
		||||
 | 
			
		||||
XML_EXAMPLES = \
 | 
			
		||||
  $(patsubst $(srcdir)/%,%,$(wildcard $(addprefix $(srcdir)/examples/xml/, \
 | 
			
		||||
					test/*.xml storage/*.xml)))
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = \
 | 
			
		||||
  config-post.h \
 | 
			
		||||
  ChangeLog-old \
 | 
			
		||||
  libvirt.spec libvirt.spec.in \
 | 
			
		||||
  mingw-libvirt.spec.in \
 | 
			
		||||
  libvirt.pc.in \
 | 
			
		||||
  libvirt-qemu.pc.in \
 | 
			
		||||
  libvirt-lxc.pc.in \
 | 
			
		||||
  autobuild.sh \
 | 
			
		||||
  Makefile.nonreentrant \
 | 
			
		||||
  autogen.sh \
 | 
			
		||||
  cfg.mk \
 | 
			
		||||
  run.in \
 | 
			
		||||
  AUTHORS.in \
 | 
			
		||||
  $(XML_EXAMPLES)
 | 
			
		||||
 | 
			
		||||
pkgconfigdir = $(libdir)/pkgconfig
 | 
			
		||||
pkgconfig_DATA = libvirt.pc libvirt-qemu.pc libvirt-lxc.pc
 | 
			
		||||
 | 
			
		||||
NEWS: $(top_srcdir)/docs/news.xsl $(top_srcdir)/docs/news.html.in
 | 
			
		||||
	$(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then			\
 | 
			
		||||
	  $(XSLTPROC) --nonet $(top_srcdir)/docs/news.xsl	\
 | 
			
		||||
	     $(top_srcdir)/docs/news.html.in			\
 | 
			
		||||
	   | perl -0777 -pe 's/\n\n+$$/\n/'			\
 | 
			
		||||
	   | perl -pe 's/[ \t]+$$//'				\
 | 
			
		||||
	   > $@-t && mv $@-t $@ ; fi
 | 
			
		||||
 | 
			
		||||
$(top_srcdir)/HACKING: $(top_srcdir)/docs/hacking1.xsl \
 | 
			
		||||
			$(top_srcdir)/docs/hacking2.xsl \
 | 
			
		||||
			$(top_srcdir)/docs/wrapstring.xsl \
 | 
			
		||||
			$(top_srcdir)/docs/hacking.html.in
 | 
			
		||||
	$(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then \
 | 
			
		||||
	   $(XSLTPROC) --nonet $(top_srcdir)/docs/hacking1.xsl \
 | 
			
		||||
		$(top_srcdir)/docs/hacking.html.in | \
 | 
			
		||||
	   $(XSLTPROC) --nonet $(top_srcdir)/docs/hacking2.xsl - \
 | 
			
		||||
	   | perl -0777 -pe 's/\n\n+$$/\n/' \
 | 
			
		||||
	   > $@-t && mv $@-t $@ ; fi;
 | 
			
		||||
 | 
			
		||||
rpm: clean
 | 
			
		||||
	@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
 | 
			
		||||
 | 
			
		||||
check-local: all tests
 | 
			
		||||
 | 
			
		||||
cov: clean-cov
 | 
			
		||||
	mkdir $(top_builddir)/coverage
 | 
			
		||||
	$(LCOV) -c -o $(top_builddir)/coverage/libvirt.info.tmp \
 | 
			
		||||
	  -d $(top_builddir)/src  -d $(top_builddir)/daemon \
 | 
			
		||||
	  -d $(top_builddir)/tests
 | 
			
		||||
	$(LCOV) -r $(top_builddir)/coverage/libvirt.info.tmp \
 | 
			
		||||
	  -o $(top_builddir)/coverage/libvirt.info
 | 
			
		||||
	rm $(top_builddir)/coverage/libvirt.info.tmp
 | 
			
		||||
	$(GENHTML) --show-details -t "libvirt" -o $(top_builddir)/coverage \
 | 
			
		||||
	  --legend $(top_builddir)/coverage/libvirt.info
 | 
			
		||||
 | 
			
		||||
clean-cov:
 | 
			
		||||
	rm -rf $(top_builddir)/coverage
 | 
			
		||||
 | 
			
		||||
MAINTAINERCLEANFILES = .git-module-status
 | 
			
		||||
 | 
			
		||||
# disable this check
 | 
			
		||||
distuninstallcheck:
 | 
			
		||||
 | 
			
		||||
dist-hook: gen-ChangeLog gen-AUTHORS
 | 
			
		||||
 | 
			
		||||
# Generate the ChangeLog file (with all entries since the switch to git)
 | 
			
		||||
# and insert it into the directory we're about to use to create a tarball.
 | 
			
		||||
gen_start_date = 2009-07-04
 | 
			
		||||
.PHONY: gen-ChangeLog
 | 
			
		||||
gen-ChangeLog:
 | 
			
		||||
	$(AM_V_GEN)if test -d .git; then			\
 | 
			
		||||
	  $(top_srcdir)/build-aux/gitlog-to-changelog		\
 | 
			
		||||
	    --since=$(gen_start_date) > $(distdir)/cl-t;	\
 | 
			
		||||
	  rm -f $(distdir)/ChangeLog;				\
 | 
			
		||||
	  mv $(distdir)/cl-t $(distdir)/ChangeLog;		\
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
.PHONY: gen-AUTHORS
 | 
			
		||||
gen-AUTHORS:
 | 
			
		||||
	$(AM_V_GEN)if test -d $(srcdir)/.git; then \
 | 
			
		||||
	    out="`cd $(srcdir) && git log --pretty=format:'%aN <%aE>' | sort -u`" && \
 | 
			
		||||
	    perl -p -e "s/#authorslist#// and print '$$out'" \
 | 
			
		||||
	      < $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \
 | 
			
		||||
	    mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS ; \
 | 
			
		||||
	fi
 | 
			
		||||
@@ -15,9 +15,9 @@
 | 
			
		||||
## <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Generated by running the following on Fedora 26:
 | 
			
		||||
# Generated by running the following on Fedora 9:
 | 
			
		||||
#
 | 
			
		||||
#  nm -D --defined-only /lib64/libc.so.6 \
 | 
			
		||||
#  nm -D --defined-only /lib/libc.so.6  \
 | 
			
		||||
#      | grep '_r$' \
 | 
			
		||||
#      | awk '{print $3}' \
 | 
			
		||||
#      | grep -v __ \
 | 
			
		||||
@@ -43,7 +43,6 @@ NON_REENTRANT += ether_ntoa
 | 
			
		||||
NON_REENTRANT += fcvt
 | 
			
		||||
NON_REENTRANT += fgetgrent
 | 
			
		||||
NON_REENTRANT += fgetpwent
 | 
			
		||||
NON_REENTRANT += fgetsgent
 | 
			
		||||
NON_REENTRANT += fgetspent
 | 
			
		||||
NON_REENTRANT += getaliasbyname
 | 
			
		||||
NON_REENTRANT += getaliasent
 | 
			
		||||
@@ -73,8 +72,6 @@ NON_REENTRANT += getrpcent
 | 
			
		||||
NON_REENTRANT += getservbyname
 | 
			
		||||
NON_REENTRANT += getservbyport
 | 
			
		||||
NON_REENTRANT += getservent
 | 
			
		||||
NON_REENTRANT += getsgent
 | 
			
		||||
NON_REENTRANT += getsgnam
 | 
			
		||||
NON_REENTRANT += getspent
 | 
			
		||||
NON_REENTRANT += getspnam
 | 
			
		||||
NON_REENTRANT += getutent
 | 
			
		||||
@@ -98,7 +95,6 @@ NON_REENTRANT += random
 | 
			
		||||
NON_REENTRANT += rand
 | 
			
		||||
NON_REENTRANT += seed48
 | 
			
		||||
NON_REENTRANT += setstate
 | 
			
		||||
NON_REENTRANT += sgetsgent
 | 
			
		||||
NON_REENTRANT += sgetspent
 | 
			
		||||
NON_REENTRANT += srand48
 | 
			
		||||
NON_REENTRANT += srandom
 | 
			
		||||
@@ -117,11 +113,3 @@ NON_REENTRANT += inet_nsap_ntoa
 | 
			
		||||
NON_REENTRANT += inet_ntoa
 | 
			
		||||
NON_REENTRANT += inet_ntop
 | 
			
		||||
NON_REENTRANT += inet_pton
 | 
			
		||||
 | 
			
		||||
# Separate two nothings by space to get one space in a variable
 | 
			
		||||
space =
 | 
			
		||||
space +=
 | 
			
		||||
# The space needs to be in a variable otherwise it would be ignored.
 | 
			
		||||
# And there must be no spaces around the commas because they would
 | 
			
		||||
# not be ignored, logically.
 | 
			
		||||
NON_REENTRANT_RE=$(subst $(space),|,$(NON_REENTRANT))
 | 
			
		||||
							
								
								
									
										13
									
								
								README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								README
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
 | 
			
		||||
         LibVirt : simple API for virtualization
 | 
			
		||||
 | 
			
		||||
  Libvirt is a C toolkit to interact with the virtualization capabilities
 | 
			
		||||
of recent versions of Linux (and other OSes). It is free software
 | 
			
		||||
available under the GNU Lesser General Public License. Virtualization of
 | 
			
		||||
the Linux Operating System means the ability to run multiple instances of
 | 
			
		||||
Operating Systems concurrently on a single hardware system where the basic
 | 
			
		||||
resources are driven by a Linux instance. The library aim at providing
 | 
			
		||||
long term stable C API initially for the Xen paravirtualization but
 | 
			
		||||
should be able to integrate other virtualization mechanisms if needed.
 | 
			
		||||
 | 
			
		||||
Daniel Veillard <veillard@redhat.com>
 | 
			
		||||
							
								
								
									
										57
									
								
								README-hacking
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								README-hacking
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
			
		||||
-*- outline -*-
 | 
			
		||||
 | 
			
		||||
These notes intend to help people working on the checked-out sources.
 | 
			
		||||
These requirements do not apply when building from a distribution tarball.
 | 
			
		||||
See also HACKING for more detailed libvirt contribution guidelines.
 | 
			
		||||
 | 
			
		||||
* Requirements
 | 
			
		||||
 | 
			
		||||
We've opted to keep only the highest-level sources in the GIT repository.
 | 
			
		||||
This eases our maintenance burden, (fewer merges etc.), but imposes more
 | 
			
		||||
requirements on anyone wishing to build from the just-checked-out sources.
 | 
			
		||||
Note the requirements to build the released archive are much less and
 | 
			
		||||
are just the requirements of the standard ./configure && make procedure.
 | 
			
		||||
Specific development tools and versions will be checked for and listed by
 | 
			
		||||
the bootstrap script.
 | 
			
		||||
 | 
			
		||||
Valgrind <http://valgrind.org/> is also highly recommended, if
 | 
			
		||||
Valgrind supports your architecture.
 | 
			
		||||
 | 
			
		||||
While building from a just-cloned source tree may require installing a
 | 
			
		||||
few prerequisites, later, a plain `git pull && make' should be sufficient.
 | 
			
		||||
 | 
			
		||||
* First GIT checkout
 | 
			
		||||
 | 
			
		||||
You can get a copy of the source repository like this:
 | 
			
		||||
 | 
			
		||||
        $ git clone git://libvirt.org/libvirt
 | 
			
		||||
        $ cd libvirt
 | 
			
		||||
 | 
			
		||||
As an optional step, if you already have a copy of the gnulib git
 | 
			
		||||
repository on your hard drive, then you can use it as a reference to
 | 
			
		||||
reduce download time and disk space requirements:
 | 
			
		||||
 | 
			
		||||
        $ export GNULIB_SRCDIR=/path/to/gnulib
 | 
			
		||||
 | 
			
		||||
The next step is to get all required pieces from gnulib,
 | 
			
		||||
to run autoreconf, and to invoke ./configure:
 | 
			
		||||
 | 
			
		||||
        $ ./autogen.sh
 | 
			
		||||
 | 
			
		||||
And there you are!  Just
 | 
			
		||||
 | 
			
		||||
        $ make
 | 
			
		||||
        $ make check
 | 
			
		||||
 | 
			
		||||
At this point, there should be no difference between your local copy,
 | 
			
		||||
and the GIT master copy:
 | 
			
		||||
 | 
			
		||||
        $ git diff
 | 
			
		||||
 | 
			
		||||
should output no difference.
 | 
			
		||||
 | 
			
		||||
Enjoy!
 | 
			
		||||
 | 
			
		||||
Local Variables:
 | 
			
		||||
indent-tabs-mode: nil
 | 
			
		||||
End:
 | 
			
		||||
							
								
								
									
										72
									
								
								README.rst
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								README.rst
									
									
									
									
									
								
							@@ -1,72 +0,0 @@
 | 
			
		||||
.. image:: https://gitlab.com/libvirt/libvirt/badges/master/pipeline.svg
 | 
			
		||||
     :target: https://gitlab.com/libvirt/libvirt/pipelines
 | 
			
		||||
     :alt: GitLab CI Build Status
 | 
			
		||||
.. image:: https://bestpractices.coreinfrastructure.org/projects/355/badge
 | 
			
		||||
     :target: https://bestpractices.coreinfrastructure.org/projects/355
 | 
			
		||||
     :alt: CII Best Practices
 | 
			
		||||
.. image:: https://translate.fedoraproject.org/widgets/libvirt/-/libvirt/svg-badge.svg
 | 
			
		||||
     :target: https://translate.fedoraproject.org/engage/libvirt/
 | 
			
		||||
     :alt: Translation status
 | 
			
		||||
 | 
			
		||||
==============================
 | 
			
		||||
Libvirt API for virtualization
 | 
			
		||||
==============================
 | 
			
		||||
 | 
			
		||||
Libvirt provides a portable, long term stable C API for managing the
 | 
			
		||||
virtualization technologies provided by many operating systems. It
 | 
			
		||||
includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware
 | 
			
		||||
vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER
 | 
			
		||||
Hypervisor.
 | 
			
		||||
 | 
			
		||||
For some of these hypervisors, it provides a stateful management
 | 
			
		||||
daemon which runs on the virtualization host allowing access to the
 | 
			
		||||
API both by non-privileged local users and remote users.
 | 
			
		||||
 | 
			
		||||
Layered packages provide bindings of the libvirt C API into other
 | 
			
		||||
languages including Python, Perl, PHP, Go, Java, OCaml, as well as
 | 
			
		||||
mappings into object systems such as GObject, CIM and SNMP.
 | 
			
		||||
 | 
			
		||||
Further information about the libvirt project can be found on the
 | 
			
		||||
website:
 | 
			
		||||
 | 
			
		||||
https://libvirt.org
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
License
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
The libvirt C API is distributed under the terms of GNU Lesser General
 | 
			
		||||
Public License, version 2.1 (or later). Some parts of the code that are
 | 
			
		||||
not part of the C library may have the more restrictive GNU General
 | 
			
		||||
Public License, version 2.0 (or later). See the files ``COPYING.LESSER``
 | 
			
		||||
and ``COPYING`` for full license terms & conditions.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Installation
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
Instructions on building and installing libvirt can be found on the website:
 | 
			
		||||
 | 
			
		||||
https://libvirt.org/compiling.html
 | 
			
		||||
 | 
			
		||||
Contributing
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
The libvirt project welcomes contributions in many ways. For most components
 | 
			
		||||
the best way to contribute is to send patches to the primary development
 | 
			
		||||
mailing list. Further guidance on this can be found on the website:
 | 
			
		||||
 | 
			
		||||
https://libvirt.org/contribute.html
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Contact
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
The libvirt project has two primary mailing lists:
 | 
			
		||||
 | 
			
		||||
* libvirt-users@redhat.com (**for user discussions**)
 | 
			
		||||
* libvir-list@redhat.com (**for development only**)
 | 
			
		||||
 | 
			
		||||
Further details on contacting the project are available on the website:
 | 
			
		||||
 | 
			
		||||
https://libvirt.org/contact.html
 | 
			
		||||
							
								
								
									
										22
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
         libvirt TODO list
 | 
			
		||||
         =================
 | 
			
		||||
 | 
			
		||||
The TODO list changes frequently, so is maintained online
 | 
			
		||||
in the libvirt bugzilla
 | 
			
		||||
 | 
			
		||||
  http://bugzilla.redhat.com/
 | 
			
		||||
 | 
			
		||||
Search against
 | 
			
		||||
 | 
			
		||||
    Product: Virtualization Tools
 | 
			
		||||
  Component: libvirt
 | 
			
		||||
    Subject: RFE
 | 
			
		||||
 | 
			
		||||
Or browse dependent bugs under
 | 
			
		||||
 | 
			
		||||
  https://bugzilla.redhat.com/show_bug.cgi?id=libvirtTodo
 | 
			
		||||
 | 
			
		||||
Summarized reports automatically generated from bugzilla
 | 
			
		||||
and provided online at
 | 
			
		||||
 | 
			
		||||
  http://libvirt.org/todo.html
 | 
			
		||||
							
								
								
									
										122
									
								
								autobuild.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										122
									
								
								autobuild.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,122 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
set -v
 | 
			
		||||
 | 
			
		||||
# Make things clean.
 | 
			
		||||
 | 
			
		||||
test -n "$1" && RESULTS=$1 || RESULTS=results.log
 | 
			
		||||
: ${AUTOBUILD_INSTALL_ROOT=$HOME/builder}
 | 
			
		||||
 | 
			
		||||
# If run under the autobuilder, we must use --nodeps with rpmbuild;
 | 
			
		||||
# but this can lead to odd error diagnosis for normal development.
 | 
			
		||||
nodeps=
 | 
			
		||||
if test "${AUTOBUILD_COUNTER+set}"; then
 | 
			
		||||
  nodeps=--nodeps
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
test -f Makefile && make -k distclean || :
 | 
			
		||||
rm -rf coverage
 | 
			
		||||
 | 
			
		||||
rm -rf build
 | 
			
		||||
mkdir build
 | 
			
		||||
cd build
 | 
			
		||||
 | 
			
		||||
# Run with options not normally exercised by the rpm build, for
 | 
			
		||||
# more complete code coverage.
 | 
			
		||||
../autogen.sh --prefix="$AUTOBUILD_INSTALL_ROOT" \
 | 
			
		||||
  --enable-expensive-tests \
 | 
			
		||||
  --enable-test-coverage \
 | 
			
		||||
  --disable-nls \
 | 
			
		||||
  --enable-werror \
 | 
			
		||||
  --enable-static
 | 
			
		||||
 | 
			
		||||
# If the MAKEFLAGS envvar does not yet include a -j option,
 | 
			
		||||
# add -jN where N depends on the number of processors.
 | 
			
		||||
case $MAKEFLAGS in
 | 
			
		||||
  *-j*) ;;
 | 
			
		||||
  *) n=$(getconf _NPROCESSORS_ONLN 2> /dev/null)
 | 
			
		||||
    test "$n" -gt 0 || n=1
 | 
			
		||||
    n=$(expr $n + 1)
 | 
			
		||||
    MAKEFLAGS="$MAKEFLAGS -j$n"
 | 
			
		||||
    export MAKEFLAGS
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
make
 | 
			
		||||
make install
 | 
			
		||||
 | 
			
		||||
# set -o pipefail is a bashism; this use of exec is the POSIX alternative
 | 
			
		||||
exec 3>&1
 | 
			
		||||
st=$(
 | 
			
		||||
  exec 4>&1 >&3
 | 
			
		||||
  { make check syntax-check 2>&1 3>&- 4>&-; echo $? >&4; } | tee "$RESULTS"
 | 
			
		||||
)
 | 
			
		||||
exec 3>&-
 | 
			
		||||
test "$st" = 0
 | 
			
		||||
test -x /usr/bin/lcov && make cov
 | 
			
		||||
 | 
			
		||||
rm -f *.tar.gz
 | 
			
		||||
make dist
 | 
			
		||||
 | 
			
		||||
if test -n "$AUTOBUILD_COUNTER" ; then
 | 
			
		||||
  EXTRA_RELEASE=".auto$AUTOBUILD_COUNTER"
 | 
			
		||||
else
 | 
			
		||||
  NOW=`date +"%s"`
 | 
			
		||||
  EXTRA_RELEASE=".$USER$NOW"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -f /usr/bin/rpmbuild ; then
 | 
			
		||||
  rpmbuild $nodeps \
 | 
			
		||||
     --define "extra_release $EXTRA_RELEASE" \
 | 
			
		||||
     --define "_sourcedir `pwd`" \
 | 
			
		||||
     -ba --clean libvirt.spec
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Test mingw32 cross-compile
 | 
			
		||||
if test -x /usr/bin/i686-w64-mingw32-gcc ; then
 | 
			
		||||
  make distclean
 | 
			
		||||
 | 
			
		||||
  PKG_CONFIG_LIBDIR="/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig" \
 | 
			
		||||
  PKG_CONFIG_PATH="$AUTOBUILD_INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig" \
 | 
			
		||||
  CC="i686-w64-mingw32-gcc" \
 | 
			
		||||
  ../configure \
 | 
			
		||||
    --build=$(uname -m)-w64-linux \
 | 
			
		||||
    --host=i686-w64-mingw32 \
 | 
			
		||||
    --prefix="$AUTOBUILD_INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" \
 | 
			
		||||
    --enable-expensive-tests \
 | 
			
		||||
    --enable-werror
 | 
			
		||||
 | 
			
		||||
  make
 | 
			
		||||
  make install
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Test mingw64 cross-compile
 | 
			
		||||
if test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
 | 
			
		||||
  make distclean
 | 
			
		||||
 | 
			
		||||
  PKG_CONFIG_LIBDIR="/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/x86_64-w64-mingw32/sys-root/mingw/share/pkgconfig" \
 | 
			
		||||
  PKG_CONFIG_PATH="$AUTOBUILD_INSTALL_ROOT/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig" \
 | 
			
		||||
  CC="x86_64-w64-mingw32-gcc" \
 | 
			
		||||
  ../configure \
 | 
			
		||||
    --build=$(uname -m)-w64-linux \
 | 
			
		||||
    --host=x86_64-w64-mingw32 \
 | 
			
		||||
    --prefix="$AUTOBUILD_INSTALL_ROOT/x86_64-w64-mingw32/sys-root/mingw" \
 | 
			
		||||
    --enable-expensive-tests \
 | 
			
		||||
    --enable-werror
 | 
			
		||||
 | 
			
		||||
  make
 | 
			
		||||
  make install
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if test -x /usr/bin/i686-w64-mingw32-gcc && test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
 | 
			
		||||
  if test -f /usr/bin/rpmbuild ; then
 | 
			
		||||
    rpmbuild $nodeps \
 | 
			
		||||
       --define "extra_release $EXTRA_RELEASE" \
 | 
			
		||||
       --define "_sourcedir `pwd`" \
 | 
			
		||||
       -ba --clean mingw-libvirt.spec
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										113
									
								
								autogen.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										113
									
								
								autogen.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# Run this to generate all the initial makefiles, etc.
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
srcdir=`dirname "$0"`
 | 
			
		||||
test -z "$srcdir" && srcdir=.
 | 
			
		||||
 | 
			
		||||
THEDIR=`pwd`
 | 
			
		||||
cd "$srcdir"
 | 
			
		||||
 | 
			
		||||
test -f src/libvirt.c || {
 | 
			
		||||
    echo "You must run this script in the top-level libvirt directory"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
EXTRA_ARGS=
 | 
			
		||||
no_git=
 | 
			
		||||
if test "x$1" = "x--no-git"; then
 | 
			
		||||
  no_git=" $1"
 | 
			
		||||
  shift
 | 
			
		||||
fi
 | 
			
		||||
if test -z "$NOCONFIGURE" ; then
 | 
			
		||||
  if test "x$1" = "x--system"; then
 | 
			
		||||
    shift
 | 
			
		||||
    prefix=/usr
 | 
			
		||||
    libdir=$prefix/lib
 | 
			
		||||
    sysconfdir=/etc
 | 
			
		||||
    localstatedir=/var
 | 
			
		||||
    if [ -d /usr/lib64 ]; then
 | 
			
		||||
      libdir=$prefix/lib64
 | 
			
		||||
    fi
 | 
			
		||||
    EXTRA_ARGS="--prefix=$prefix --sysconfdir=$sysconfdir --localstatedir=$localstatedir --libdir=$libdir"
 | 
			
		||||
    echo "Running ./configure with $EXTRA_ARGS $@"
 | 
			
		||||
  else
 | 
			
		||||
    if test -z "$*" && test ! -f "$THEDIR/config.status"; then
 | 
			
		||||
        echo "I am going to run ./configure with no arguments - if you wish"
 | 
			
		||||
        echo "to pass any to it, please specify them on the $0 command line."
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Compute the hash we'll use to determine whether rerunning bootstrap
 | 
			
		||||
# is required.  The first is just the SHA1 that selects a gnulib snapshot.
 | 
			
		||||
# The second ensures that whenever we change the set of gnulib modules used
 | 
			
		||||
# by this package, we rerun bootstrap to pull in the matching set of files.
 | 
			
		||||
# The third ensures that whenever we change the set of local gnulib diffs,
 | 
			
		||||
# we rerun bootstrap to pull in those diffs.
 | 
			
		||||
bootstrap_hash()
 | 
			
		||||
{
 | 
			
		||||
    if test "$no_git"; then
 | 
			
		||||
        echo no-git
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
    git submodule status | sed 's/^[ +-]//;s/ .*//'
 | 
			
		||||
    git hash-object bootstrap.conf
 | 
			
		||||
    git ls-tree -d HEAD gnulib/local | awk '{print $3}'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Ensure that whenever we pull in a gnulib update or otherwise change to a
 | 
			
		||||
# different version (i.e., when switching branches), we also rerun ./bootstrap.
 | 
			
		||||
# Also, running 'make rpm' tends to litter the po/ directory, and some people
 | 
			
		||||
# like to run 'git clean -x -f po' to fix it; but only ./bootstrap regenerates
 | 
			
		||||
# the required file po/Makevars.
 | 
			
		||||
# Only run bootstrap from a git checkout, never from a tarball.
 | 
			
		||||
if test -d .git || test -f .git; then
 | 
			
		||||
    curr_status=.git-module-status t=
 | 
			
		||||
    if test "$no_git"; then
 | 
			
		||||
        t=no-git
 | 
			
		||||
    elif test -d .gnulib; then
 | 
			
		||||
        t=$(bootstrap_hash; git diff .gnulib)
 | 
			
		||||
    fi
 | 
			
		||||
    case $t:${CLEAN_SUBMODULE+set} in
 | 
			
		||||
        *:set) ;;
 | 
			
		||||
        *-dirty*)
 | 
			
		||||
            echo "error: gnulib submodule is dirty, please investigate" 2>&1
 | 
			
		||||
            echo "set env-var CLEAN_SUBMODULE to discard gnulib changes" 2>&1
 | 
			
		||||
            exit 1 ;;
 | 
			
		||||
    esac
 | 
			
		||||
    # Keep this test in sync with cfg.mk:_update_required
 | 
			
		||||
    if test "$t" = "$(cat $curr_status 2>/dev/null)" \
 | 
			
		||||
        && test -f "po/Makevars" && test -f AUTHORS; then
 | 
			
		||||
        # good, it's up to date, all we need is autoreconf
 | 
			
		||||
        autoreconf -if
 | 
			
		||||
    else
 | 
			
		||||
        if test -z "$no_git" && test ${CLEAN_SUBMODULE+set}; then
 | 
			
		||||
            echo cleaning up submodules...
 | 
			
		||||
            git submodule foreach 'git clean -dfqx && git reset --hard'
 | 
			
		||||
        fi
 | 
			
		||||
        echo running bootstrap$no_git...
 | 
			
		||||
        ./bootstrap$no_git --bootstrap-sync && bootstrap_hash > $curr_status \
 | 
			
		||||
            || { echo "Failed to bootstrap, please investigate."; exit 1; }
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
test -n "$NOCONFIGURE" && exit 0
 | 
			
		||||
 | 
			
		||||
cd "$THEDIR"
 | 
			
		||||
 | 
			
		||||
if test "x$OBJ_DIR" != x; then
 | 
			
		||||
    mkdir -p "$OBJ_DIR"
 | 
			
		||||
    cd "$OBJ_DIR"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$*" && test -z "$EXTRA_ARGS" && test -f config.status; then
 | 
			
		||||
    ./config.status --recheck
 | 
			
		||||
else
 | 
			
		||||
    $srcdir/configure $EXTRA_ARGS "$@"
 | 
			
		||||
fi && {
 | 
			
		||||
    echo
 | 
			
		||||
    echo "Now type 'make' to compile libvirt."
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										999
									
								
								bootstrap
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										999
									
								
								bootstrap
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,999 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
# Print a version string.
 | 
			
		||||
scriptversion=2013-12-05.23; # UTC
 | 
			
		||||
 | 
			
		||||
# Bootstrap this package from checked-out sources.
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program is free software: you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
# This program is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
# GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
# You should have received a copy of the GNU General Public License
 | 
			
		||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
# Originally written by Paul Eggert.  The canonical version of this
 | 
			
		||||
# script is maintained as build-aux/bootstrap in gnulib, however, to
 | 
			
		||||
# be useful to your project, you should place a copy of it under
 | 
			
		||||
# version control in the top-level directory of your project.  The
 | 
			
		||||
# intent is that all customization can be done with a bootstrap.conf
 | 
			
		||||
# file also maintained in your version control; gnulib comes with a
 | 
			
		||||
# template build-aux/bootstrap.conf to get you started.
 | 
			
		||||
 | 
			
		||||
# Please report bugs or propose patches to bug-gnulib@gnu.org.
 | 
			
		||||
 | 
			
		||||
nl='
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
# Ensure file names are sorted consistently across platforms.
 | 
			
		||||
LC_ALL=C
 | 
			
		||||
export LC_ALL
 | 
			
		||||
 | 
			
		||||
# Ensure that CDPATH is not set.  Otherwise, the output from cd
 | 
			
		||||
# would cause trouble in at least one use below.
 | 
			
		||||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 | 
			
		||||
 | 
			
		||||
local_gl_dir=gl
 | 
			
		||||
 | 
			
		||||
me=$0
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
  cat <<EOF
 | 
			
		||||
Usage: $me [OPTION]...
 | 
			
		||||
Bootstrap this package from the checked-out sources.
 | 
			
		||||
 | 
			
		||||
Options:
 | 
			
		||||
 --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
 | 
			
		||||
                          sources reside.  Use this if you already
 | 
			
		||||
                          have gnulib sources on your machine, and
 | 
			
		||||
                          do not want to waste your bandwidth downloading
 | 
			
		||||
                          them again.  Defaults to \$GNULIB_SRCDIR
 | 
			
		||||
 --bootstrap-sync         if this bootstrap script is not identical to
 | 
			
		||||
                          the version in the local gnulib sources,
 | 
			
		||||
                          update this script, and then restart it with
 | 
			
		||||
                          /bin/sh or the shell \$CONFIG_SHELL
 | 
			
		||||
 --no-bootstrap-sync      do not check whether bootstrap is out of sync
 | 
			
		||||
 --copy                   copy files instead of creating symbolic links
 | 
			
		||||
 --force                  attempt to bootstrap even if the sources seem
 | 
			
		||||
                          not to have been checked out
 | 
			
		||||
 --no-git                 do not use git to update gnulib.  Requires that
 | 
			
		||||
                          --gnulib-srcdir point to a correct gnulib snapshot
 | 
			
		||||
 --skip-po                do not download po files
 | 
			
		||||
 | 
			
		||||
If the file $me.conf exists in the same directory as this script, its
 | 
			
		||||
contents are read as shell variables to configure the bootstrap.
 | 
			
		||||
 | 
			
		||||
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
 | 
			
		||||
are honored.
 | 
			
		||||
 | 
			
		||||
Running without arguments will suffice in most cases.
 | 
			
		||||
EOF
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# warnf_ FORMAT-STRING ARG1...
 | 
			
		||||
warnf_ ()
 | 
			
		||||
{
 | 
			
		||||
  warnf_format_=$1
 | 
			
		||||
  shift
 | 
			
		||||
  nl='
 | 
			
		||||
'
 | 
			
		||||
  case $* in
 | 
			
		||||
    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
 | 
			
		||||
       printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
 | 
			
		||||
    *) printf "$me: $warnf_format_" "$@" ;;
 | 
			
		||||
  esac >&2
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# warn_ WORD1...
 | 
			
		||||
warn_ ()
 | 
			
		||||
{
 | 
			
		||||
  # If IFS does not start with ' ', set it and emit the warning in a subshell.
 | 
			
		||||
  case $IFS in
 | 
			
		||||
    ' '*) warnf_ '%s\n' "$*";;
 | 
			
		||||
    *)    (IFS=' '; warn_ "$@");;
 | 
			
		||||
  esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# die WORD1...
 | 
			
		||||
die() { warn_ "$@"; exit 1; }
 | 
			
		||||
 | 
			
		||||
# Configuration.
 | 
			
		||||
 | 
			
		||||
# Name of the Makefile.am
 | 
			
		||||
gnulib_mk=gnulib.mk
 | 
			
		||||
 | 
			
		||||
# List of gnulib modules needed.
 | 
			
		||||
gnulib_modules=
 | 
			
		||||
 | 
			
		||||
# Any gnulib files needed that are not in modules.
 | 
			
		||||
gnulib_files=
 | 
			
		||||
 | 
			
		||||
: ${AUTOPOINT=autopoint}
 | 
			
		||||
: ${AUTORECONF=autoreconf}
 | 
			
		||||
 | 
			
		||||
# A function to be called right after gnulib-tool is run.
 | 
			
		||||
# Override it via your own definition in bootstrap.conf.
 | 
			
		||||
bootstrap_post_import_hook() { :; }
 | 
			
		||||
 | 
			
		||||
# A function to be called after everything else in this script.
 | 
			
		||||
# Override it via your own definition in bootstrap.conf.
 | 
			
		||||
bootstrap_epilogue() { :; }
 | 
			
		||||
 | 
			
		||||
# The command to download all .po files for a specified domain into
 | 
			
		||||
# a specified directory.  Fill in the first %s is the domain name, and
 | 
			
		||||
# the second with the destination directory.  Use rsync's -L and -r
 | 
			
		||||
# options because the latest/%s directory and the .po files within are
 | 
			
		||||
# all symlinks.
 | 
			
		||||
po_download_command_format=\
 | 
			
		||||
"rsync --delete --exclude '*.s1' -Lrtvz \
 | 
			
		||||
 'translationproject.org::tp/latest/%s/' '%s'"
 | 
			
		||||
 | 
			
		||||
# Fallback for downloading .po files (if rsync fails).
 | 
			
		||||
po_download_command_format2=\
 | 
			
		||||
"wget --mirror -nd -q -np -A.po -P '%s' \
 | 
			
		||||
 http://translationproject.org/latest/%s/"
 | 
			
		||||
 | 
			
		||||
# Prefer a non-empty tarname (4th argument of AC_INIT if given), else
 | 
			
		||||
# fall back to the package name (1st argument with munging)
 | 
			
		||||
extract_package_name='
 | 
			
		||||
  /^AC_INIT(\[*/{
 | 
			
		||||
     s///
 | 
			
		||||
     /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
 | 
			
		||||
       s//\1/
 | 
			
		||||
       s/[],)].*//
 | 
			
		||||
       p
 | 
			
		||||
       q
 | 
			
		||||
     }
 | 
			
		||||
     s/[],)].*//
 | 
			
		||||
     s/^GNU //
 | 
			
		||||
     y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
 | 
			
		||||
     s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
 | 
			
		||||
     p
 | 
			
		||||
  }
 | 
			
		||||
'
 | 
			
		||||
package=$(sed -n "$extract_package_name" configure.ac) \
 | 
			
		||||
  || die 'cannot find package name in configure.ac'
 | 
			
		||||
gnulib_name=lib$package
 | 
			
		||||
 | 
			
		||||
build_aux=build-aux
 | 
			
		||||
source_base=lib
 | 
			
		||||
m4_base=m4
 | 
			
		||||
doc_base=doc
 | 
			
		||||
tests_base=tests
 | 
			
		||||
gnulib_extra_files=''
 | 
			
		||||
 | 
			
		||||
# Additional gnulib-tool options to use.  Use "\newline" to break lines.
 | 
			
		||||
gnulib_tool_option_extras=
 | 
			
		||||
 | 
			
		||||
# Other locale categories that need message catalogs.
 | 
			
		||||
EXTRA_LOCALE_CATEGORIES=
 | 
			
		||||
 | 
			
		||||
# Additional xgettext options to use.  Use "\\\newline" to break lines.
 | 
			
		||||
XGETTEXT_OPTIONS='\\\
 | 
			
		||||
 --flag=_:1:pass-c-format\\\
 | 
			
		||||
 --flag=N_:1:pass-c-format\\\
 | 
			
		||||
 --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
# Package bug report address and copyright holder for gettext files
 | 
			
		||||
COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
 | 
			
		||||
MSGID_BUGS_ADDRESS=bug-$package@gnu.org
 | 
			
		||||
 | 
			
		||||
# Files we don't want to import.
 | 
			
		||||
excluded_files=
 | 
			
		||||
 | 
			
		||||
# File that should exist in the top directory of a checked out hierarchy,
 | 
			
		||||
# but not in a distribution tarball.
 | 
			
		||||
checkout_only_file=README-hacking
 | 
			
		||||
 | 
			
		||||
# Whether to use copies instead of symlinks.
 | 
			
		||||
copy=false
 | 
			
		||||
 | 
			
		||||
# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
 | 
			
		||||
# those files to be generated in directories like lib/, m4/, and po/.
 | 
			
		||||
# Or set it to 'auto' to make this script select which to use based
 | 
			
		||||
# on which version control system (if any) is used in the source directory.
 | 
			
		||||
vc_ignore=auto
 | 
			
		||||
 | 
			
		||||
# Set this to true in bootstrap.conf to enable --bootstrap-sync by
 | 
			
		||||
# default.
 | 
			
		||||
bootstrap_sync=false
 | 
			
		||||
 | 
			
		||||
# Use git to update gnulib sources
 | 
			
		||||
use_git=true
 | 
			
		||||
 | 
			
		||||
check_exists() {
 | 
			
		||||
  ($1 --version </dev/null) >/dev/null 2>&1
 | 
			
		||||
  test $? -lt 126
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# find_tool ENVVAR NAMES...
 | 
			
		||||
# -------------------------
 | 
			
		||||
# Search for a required program.  Use the value of ENVVAR, if set,
 | 
			
		||||
# otherwise find the first of the NAMES that can be run.
 | 
			
		||||
# If found, set ENVVAR to the program name, die otherwise.
 | 
			
		||||
#
 | 
			
		||||
# FIXME: code duplication, see also gnu-web-doc-update.
 | 
			
		||||
find_tool ()
 | 
			
		||||
{
 | 
			
		||||
  find_tool_envvar=$1
 | 
			
		||||
  shift
 | 
			
		||||
  find_tool_names=$@
 | 
			
		||||
  eval "find_tool_res=\$$find_tool_envvar"
 | 
			
		||||
  if test x"$find_tool_res" = x; then
 | 
			
		||||
    for i; do
 | 
			
		||||
      if check_exists $i; then
 | 
			
		||||
        find_tool_res=$i
 | 
			
		||||
        break
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  fi
 | 
			
		||||
  if test x"$find_tool_res" = x; then
 | 
			
		||||
    warn_ "one of these is required: $find_tool_names;"
 | 
			
		||||
    die   "alternatively set $find_tool_envvar to a compatible tool"
 | 
			
		||||
  fi
 | 
			
		||||
  eval "$find_tool_envvar=\$find_tool_res"
 | 
			
		||||
  eval "export $find_tool_envvar"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Override the default configuration, if necessary.
 | 
			
		||||
# Make sure that bootstrap.conf is sourced from the current directory
 | 
			
		||||
# if we were invoked as "sh bootstrap".
 | 
			
		||||
case "$0" in
 | 
			
		||||
  */*) test -r "$0.conf" && . "$0.conf" ;;
 | 
			
		||||
  *) test -r "$0.conf" && . ./"$0.conf" ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# Extra files from gnulib, which override files from other sources.
 | 
			
		||||
test -z "${gnulib_extra_files}" && \
 | 
			
		||||
  gnulib_extra_files="
 | 
			
		||||
        build-aux/install-sh
 | 
			
		||||
        build-aux/mdate-sh
 | 
			
		||||
        build-aux/texinfo.tex
 | 
			
		||||
        build-aux/depcomp
 | 
			
		||||
        build-aux/config.guess
 | 
			
		||||
        build-aux/config.sub
 | 
			
		||||
        doc/INSTALL
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
if test "$vc_ignore" = auto; then
 | 
			
		||||
  vc_ignore=
 | 
			
		||||
  test -d .git && vc_ignore=.gitignore
 | 
			
		||||
  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Translate configuration into internal form.
 | 
			
		||||
 | 
			
		||||
# Parse options.
 | 
			
		||||
 | 
			
		||||
for option
 | 
			
		||||
do
 | 
			
		||||
  case $option in
 | 
			
		||||
  --help)
 | 
			
		||||
    usage
 | 
			
		||||
    exit;;
 | 
			
		||||
  --gnulib-srcdir=*)
 | 
			
		||||
    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
 | 
			
		||||
  --skip-po)
 | 
			
		||||
    SKIP_PO=t;;
 | 
			
		||||
  --force)
 | 
			
		||||
    checkout_only_file=;;
 | 
			
		||||
  --copy)
 | 
			
		||||
    copy=true;;
 | 
			
		||||
  --bootstrap-sync)
 | 
			
		||||
    bootstrap_sync=true;;
 | 
			
		||||
  --no-bootstrap-sync)
 | 
			
		||||
    bootstrap_sync=false;;
 | 
			
		||||
  --no-git)
 | 
			
		||||
    use_git=false;;
 | 
			
		||||
  *)
 | 
			
		||||
    die "$option: unknown option";;
 | 
			
		||||
  esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
$use_git || test -d "$GNULIB_SRCDIR" \
 | 
			
		||||
  || die "Error: --no-git requires --gnulib-srcdir"
 | 
			
		||||
 | 
			
		||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
 | 
			
		||||
  die "Bootstrapping from a non-checked-out distribution is risky."
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Strip blank and comment lines to leave significant entries.
 | 
			
		||||
gitignore_entries() {
 | 
			
		||||
  sed '/^#/d; /^$/d' "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# If $STR is not already on a line by itself in $FILE, insert it at the start.
 | 
			
		||||
# Entries are inserted at the start of the ignore list to ensure existing
 | 
			
		||||
# entries starting with ! are not overridden.  Such entries support
 | 
			
		||||
# whitelisting exceptions after a more generic blacklist pattern.
 | 
			
		||||
insert_if_absent() {
 | 
			
		||||
  file=$1
 | 
			
		||||
  str=$2
 | 
			
		||||
  test -f $file || touch $file
 | 
			
		||||
  test -r $file || die "Error: failed to read ignore file: $file"
 | 
			
		||||
  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
 | 
			
		||||
  if [ "$duplicate_entries" ] ; then
 | 
			
		||||
    die "Error: Duplicate entries in $file: " $duplicate_entries
 | 
			
		||||
  fi
 | 
			
		||||
  linesold=$(gitignore_entries $file | wc -l)
 | 
			
		||||
  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
 | 
			
		||||
  if [ $linesold != $linesnew ] ; then
 | 
			
		||||
    { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
 | 
			
		||||
      || die "insert_if_absent $file $str: failed"
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
 | 
			
		||||
# insert_if_absent.
 | 
			
		||||
insert_vc_ignore() {
 | 
			
		||||
  vc_ignore_file="$1"
 | 
			
		||||
  pattern="$2"
 | 
			
		||||
  case $vc_ignore_file in
 | 
			
		||||
  *.gitignore)
 | 
			
		||||
    # A .gitignore entry that does not start with '/' applies
 | 
			
		||||
    # recursively to subdirectories, so prepend '/' to every
 | 
			
		||||
    # .gitignore entry.
 | 
			
		||||
    pattern=$(echo "$pattern" | sed s,^,/,);;
 | 
			
		||||
  esac
 | 
			
		||||
  insert_if_absent "$vc_ignore_file" "$pattern"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
 | 
			
		||||
found_aux_dir=no
 | 
			
		||||
grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
 | 
			
		||||
    >/dev/null && found_aux_dir=yes
 | 
			
		||||
grep '^[	 ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
 | 
			
		||||
    >/dev/null && found_aux_dir=yes
 | 
			
		||||
test $found_aux_dir = yes \
 | 
			
		||||
  || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
 | 
			
		||||
 | 
			
		||||
# If $build_aux doesn't exist, create it now, otherwise some bits
 | 
			
		||||
# below will malfunction.  If creating it, also mark it as ignored.
 | 
			
		||||
if test ! -d $build_aux; then
 | 
			
		||||
  mkdir $build_aux
 | 
			
		||||
  for dot_ig in x $vc_ignore; do
 | 
			
		||||
    test $dot_ig = x && continue
 | 
			
		||||
    insert_vc_ignore $dot_ig $build_aux
 | 
			
		||||
  done
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Note this deviates from the version comparison in automake
 | 
			
		||||
# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
 | 
			
		||||
# but this should suffice as we won't be specifying old
 | 
			
		||||
# version formats or redundant trailing .0 in bootstrap.conf.
 | 
			
		||||
# If we did want full compatibility then we should probably
 | 
			
		||||
# use m4_version_compare from autoconf.
 | 
			
		||||
sort_ver() { # sort -V is not generally available
 | 
			
		||||
  ver1="$1"
 | 
			
		||||
  ver2="$2"
 | 
			
		||||
 | 
			
		||||
  # split on '.' and compare each component
 | 
			
		||||
  i=1
 | 
			
		||||
  while : ; do
 | 
			
		||||
    p1=$(echo "$ver1" | cut -d. -f$i)
 | 
			
		||||
    p2=$(echo "$ver2" | cut -d. -f$i)
 | 
			
		||||
    if [ ! "$p1" ]; then
 | 
			
		||||
      echo "$1 $2"
 | 
			
		||||
      break
 | 
			
		||||
    elif [ ! "$p2" ]; then
 | 
			
		||||
      echo "$2 $1"
 | 
			
		||||
      break
 | 
			
		||||
    elif [ ! "$p1" = "$p2" ]; then
 | 
			
		||||
      if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
 | 
			
		||||
        echo "$2 $1"
 | 
			
		||||
      elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
 | 
			
		||||
        echo "$1 $2"
 | 
			
		||||
      else # numeric, then lexicographic comparison
 | 
			
		||||
        lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
 | 
			
		||||
        if [ "$lp" = "$p2" ]; then
 | 
			
		||||
          echo "$1 $2"
 | 
			
		||||
        else
 | 
			
		||||
          echo "$2 $1"
 | 
			
		||||
        fi
 | 
			
		||||
      fi
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
    i=$(($i+1))
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_version() {
 | 
			
		||||
  app=$1
 | 
			
		||||
 | 
			
		||||
  $app --version >/dev/null 2>&1 || return 1
 | 
			
		||||
 | 
			
		||||
  $app --version 2>&1 |
 | 
			
		||||
  sed -n '# Move version to start of line.
 | 
			
		||||
          s/.*[v ]\([0-9]\)/\1/
 | 
			
		||||
 | 
			
		||||
          # Skip lines that do not start with version.
 | 
			
		||||
          /^[0-9]/!d
 | 
			
		||||
 | 
			
		||||
          # Remove characters after the version.
 | 
			
		||||
          s/[^.a-z0-9-].*//
 | 
			
		||||
 | 
			
		||||
          # The first component must be digits only.
 | 
			
		||||
          s/^\([0-9]*\)[a-z-].*/\1/
 | 
			
		||||
 | 
			
		||||
          #the following essentially does s/5.005/5.5/
 | 
			
		||||
          s/\.0*\([1-9]\)/.\1/g
 | 
			
		||||
          p
 | 
			
		||||
          q'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
check_versions() {
 | 
			
		||||
  ret=0
 | 
			
		||||
 | 
			
		||||
  while read app req_ver; do
 | 
			
		||||
    # We only need libtoolize from the libtool package.
 | 
			
		||||
    if test "$app" = libtool; then
 | 
			
		||||
      app=libtoolize
 | 
			
		||||
    fi
 | 
			
		||||
    # Exempt git if --no-git is in effect.
 | 
			
		||||
    if test "$app" = git; then
 | 
			
		||||
      $use_git || continue
 | 
			
		||||
    fi
 | 
			
		||||
    # Honor $APP variables ($TAR, $AUTOCONF, etc.)
 | 
			
		||||
    appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
 | 
			
		||||
    test "$appvar" = TAR && appvar=AMTAR
 | 
			
		||||
    case $appvar in
 | 
			
		||||
        GZIP) ;; # Do not use $GZIP:  it contains gzip options.
 | 
			
		||||
        *) eval "app=\${$appvar-$app}" ;;
 | 
			
		||||
    esac
 | 
			
		||||
 | 
			
		||||
    # Handle the still-experimental Automake-NG programs specially.
 | 
			
		||||
    # They remain named as the mainstream Automake programs ("automake",
 | 
			
		||||
    # and "aclocal") to avoid gratuitous incompatibilities with
 | 
			
		||||
    # pre-existing usages (by, say, autoreconf, or custom autogen.sh
 | 
			
		||||
    # scripts), but correctly identify themselves (as being part of
 | 
			
		||||
    # "GNU automake-ng") when asked their version.
 | 
			
		||||
    case $app in
 | 
			
		||||
      automake-ng|aclocal-ng)
 | 
			
		||||
        app=${app%-ng}
 | 
			
		||||
        ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
 | 
			
		||||
          warn_ "Error: '$app' not found or not from Automake-NG"
 | 
			
		||||
          ret=1
 | 
			
		||||
          continue
 | 
			
		||||
        } ;;
 | 
			
		||||
    esac
 | 
			
		||||
    if [ "$req_ver" = "-" ]; then
 | 
			
		||||
      # Merely require app to exist; not all prereq apps are well-behaved
 | 
			
		||||
      # so we have to rely on $? rather than get_version.
 | 
			
		||||
      if ! check_exists $app; then
 | 
			
		||||
        warn_ "Error: '$app' not found"
 | 
			
		||||
        ret=1
 | 
			
		||||
      fi
 | 
			
		||||
    else
 | 
			
		||||
      # Require app to produce a new enough version string.
 | 
			
		||||
      inst_ver=$(get_version $app)
 | 
			
		||||
      if [ ! "$inst_ver" ]; then
 | 
			
		||||
        warn_ "Error: '$app' not found"
 | 
			
		||||
        ret=1
 | 
			
		||||
      else
 | 
			
		||||
        latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
 | 
			
		||||
        if [ ! "$latest_ver" = "$inst_ver" ]; then
 | 
			
		||||
          warnf_ '%s\n'                                        \
 | 
			
		||||
              "Error: '$app' version == $inst_ver is too old"  \
 | 
			
		||||
              "       '$app' version >= $req_ver is required"
 | 
			
		||||
          ret=1
 | 
			
		||||
        fi
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  return $ret
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print_versions() {
 | 
			
		||||
  echo "Program    Min_version"
 | 
			
		||||
  echo "----------------------"
 | 
			
		||||
  printf %s "$buildreq"
 | 
			
		||||
  echo "----------------------"
 | 
			
		||||
  # can't depend on column -t
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
 | 
			
		||||
# Also find the compatible sha1 utility on the BSDs
 | 
			
		||||
if test x"$SKIP_PO" = x; then
 | 
			
		||||
  find_tool SHA1SUM sha1sum gsha1sum shasum sha1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
use_libtool=0
 | 
			
		||||
# We'd like to use grep -E, to see if any of LT_INIT,
 | 
			
		||||
# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
 | 
			
		||||
# but that's not portable enough (e.g., for Solaris).
 | 
			
		||||
grep '^[	 ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
 | 
			
		||||
  && use_libtool=1
 | 
			
		||||
grep '^[	 ]*LT_INIT' configure.ac >/dev/null \
 | 
			
		||||
  && use_libtool=1
 | 
			
		||||
if test $use_libtool = 1; then
 | 
			
		||||
  find_tool LIBTOOLIZE glibtoolize libtoolize
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# gnulib-tool requires at least automake and autoconf.
 | 
			
		||||
# If either is not listed, add it (with minimum version) as a prerequisite.
 | 
			
		||||
case $buildreq in
 | 
			
		||||
  *automake*) ;;
 | 
			
		||||
  *) buildreq="automake 1.9
 | 
			
		||||
$buildreq" ;;
 | 
			
		||||
esac
 | 
			
		||||
case $buildreq in
 | 
			
		||||
  *autoconf*) ;;
 | 
			
		||||
  *) buildreq="autoconf 2.59
 | 
			
		||||
$buildreq" ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# When we can deduce that gnulib-tool will require patch,
 | 
			
		||||
# and when patch is not already listed as a prerequisite, add it, too.
 | 
			
		||||
if test -d "$local_gl_dir" \
 | 
			
		||||
    && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
 | 
			
		||||
  case $buildreq in
 | 
			
		||||
    *patch*) ;;
 | 
			
		||||
    *) buildreq="patch -
 | 
			
		||||
$buildreq" ;;
 | 
			
		||||
  esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if ! printf "$buildreq" | check_versions; then
 | 
			
		||||
  echo >&2
 | 
			
		||||
  if test -f README-prereq; then
 | 
			
		||||
    die "See README-prereq for how to get the prerequisite programs"
 | 
			
		||||
  else
 | 
			
		||||
    die "Please install the prerequisite programs"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Warn the user if autom4te appears to be broken; this causes known
 | 
			
		||||
# issues with at least gettext 0.18.3.
 | 
			
		||||
probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
 | 
			
		||||
if test "x$probe" != xhi; then
 | 
			
		||||
  warn_ "WARNING: your autom4te wrapper eats stdin;"
 | 
			
		||||
  warn_ "if bootstrap fails, consider upgrading your autotools"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "$0: Bootstrapping from checked-out $package sources..."
 | 
			
		||||
 | 
			
		||||
# See if we can use gnulib's git-merge-changelog merge driver.
 | 
			
		||||
if $use_git && test -d .git && check_exists git; then
 | 
			
		||||
  if git config merge.merge-changelog.driver >/dev/null ; then
 | 
			
		||||
    :
 | 
			
		||||
  elif check_exists git-merge-changelog; then
 | 
			
		||||
    echo "$0: initializing git-merge-changelog driver"
 | 
			
		||||
    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
 | 
			
		||||
    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
 | 
			
		||||
  else
 | 
			
		||||
    echo "$0: consider installing git-merge-changelog from gnulib"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
cleanup_gnulib() {
 | 
			
		||||
  status=$?
 | 
			
		||||
  rm -fr "$gnulib_path"
 | 
			
		||||
  exit $status
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
git_modules_config () {
 | 
			
		||||
  test -f .gitmodules && git config --file .gitmodules "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if $use_git; then
 | 
			
		||||
  gnulib_path=$(git_modules_config submodule.gnulib.path)
 | 
			
		||||
  test -z "$gnulib_path" && gnulib_path=gnulib
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Get gnulib files.  Populate $GNULIB_SRCDIR, possibly updating a
 | 
			
		||||
# submodule, for use in the rest of the script.
 | 
			
		||||
 | 
			
		||||
case ${GNULIB_SRCDIR--} in
 | 
			
		||||
-)
 | 
			
		||||
  # Note that $use_git is necessarily true in this case.
 | 
			
		||||
  if git_modules_config submodule.gnulib.url >/dev/null; then
 | 
			
		||||
    echo "$0: getting gnulib files..."
 | 
			
		||||
    git submodule init || exit $?
 | 
			
		||||
    git submodule update || exit $?
 | 
			
		||||
 | 
			
		||||
  elif [ ! -d "$gnulib_path" ]; then
 | 
			
		||||
    echo "$0: getting gnulib files..."
 | 
			
		||||
 | 
			
		||||
    trap cleanup_gnulib 1 2 13 15
 | 
			
		||||
 | 
			
		||||
    shallow=
 | 
			
		||||
    git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
 | 
			
		||||
    git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
 | 
			
		||||
      cleanup_gnulib
 | 
			
		||||
 | 
			
		||||
    trap - 1 2 13 15
 | 
			
		||||
  fi
 | 
			
		||||
  GNULIB_SRCDIR=$gnulib_path
 | 
			
		||||
  ;;
 | 
			
		||||
*)
 | 
			
		||||
  # Use GNULIB_SRCDIR directly or as a reference.
 | 
			
		||||
  if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
 | 
			
		||||
        git_modules_config submodule.gnulib.url >/dev/null; then
 | 
			
		||||
    echo "$0: getting gnulib files..."
 | 
			
		||||
    if git submodule -h|grep -- --reference > /dev/null; then
 | 
			
		||||
      # Prefer the one-liner available in git 1.6.4 or newer.
 | 
			
		||||
      git submodule update --init --reference "$GNULIB_SRCDIR" \
 | 
			
		||||
        "$gnulib_path" || exit $?
 | 
			
		||||
    else
 | 
			
		||||
      # This fallback allows at least git 1.5.5.
 | 
			
		||||
      if test -f "$gnulib_path"/gnulib-tool; then
 | 
			
		||||
        # Since file already exists, assume submodule init already complete.
 | 
			
		||||
        git submodule update || exit $?
 | 
			
		||||
      else
 | 
			
		||||
        # Older git can't clone into an empty directory.
 | 
			
		||||
        rmdir "$gnulib_path" 2>/dev/null
 | 
			
		||||
        git clone --reference "$GNULIB_SRCDIR" \
 | 
			
		||||
          "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
 | 
			
		||||
          && git submodule init && git submodule update \
 | 
			
		||||
          || exit $?
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
    GNULIB_SRCDIR=$gnulib_path
 | 
			
		||||
  fi
 | 
			
		||||
  ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# $GNULIB_SRCDIR now points to the version of gnulib to use, and
 | 
			
		||||
# we no longer need to use git or $gnulib_path below here.
 | 
			
		||||
 | 
			
		||||
if $bootstrap_sync; then
 | 
			
		||||
  cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
 | 
			
		||||
    echo "$0: updating bootstrap and restarting..."
 | 
			
		||||
    case $(sh -c 'echo "$1"' -- a) in
 | 
			
		||||
      a) ignored=--;;
 | 
			
		||||
      *) ignored=ignored;;
 | 
			
		||||
    esac
 | 
			
		||||
    exec sh -c \
 | 
			
		||||
      'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
 | 
			
		||||
      $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
 | 
			
		||||
      "$0" "$@" --no-bootstrap-sync
 | 
			
		||||
  }
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
 | 
			
		||||
<$gnulib_tool || exit $?
 | 
			
		||||
 | 
			
		||||
# Get translations.
 | 
			
		||||
 | 
			
		||||
download_po_files() {
 | 
			
		||||
  subdir=$1
 | 
			
		||||
  domain=$2
 | 
			
		||||
  echo "$me: getting translations into $subdir for $domain..."
 | 
			
		||||
  cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
 | 
			
		||||
  eval "$cmd" && return
 | 
			
		||||
  # Fallback to HTTP.
 | 
			
		||||
  cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
 | 
			
		||||
  eval "$cmd"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Mirror .po files to $po_dir/.reference and copy only the new
 | 
			
		||||
# or modified ones into $po_dir.  Also update $po_dir/LINGUAS.
 | 
			
		||||
# Note po files that exist locally only are left in $po_dir but will
 | 
			
		||||
# not be included in LINGUAS and hence will not be distributed.
 | 
			
		||||
update_po_files() {
 | 
			
		||||
  # Directory containing primary .po files.
 | 
			
		||||
  # Overwrite them only when we're sure a .po file is new.
 | 
			
		||||
  po_dir=$1
 | 
			
		||||
  domain=$2
 | 
			
		||||
 | 
			
		||||
  # Mirror *.po files into this dir.
 | 
			
		||||
  # Usually contains *.s1 checksum files.
 | 
			
		||||
  ref_po_dir="$po_dir/.reference"
 | 
			
		||||
 | 
			
		||||
  test -d $ref_po_dir || mkdir $ref_po_dir || return
 | 
			
		||||
  download_po_files $ref_po_dir $domain \
 | 
			
		||||
    && ls "$ref_po_dir"/*.po 2>/dev/null |
 | 
			
		||||
      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
 | 
			
		||||
 | 
			
		||||
  langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
 | 
			
		||||
  test "$langs" = '*' && langs=x
 | 
			
		||||
  for po in $langs; do
 | 
			
		||||
    case $po in x) continue;; esac
 | 
			
		||||
    new_po="$ref_po_dir/$po.po"
 | 
			
		||||
    cksum_file="$ref_po_dir/$po.s1"
 | 
			
		||||
    if ! test -f "$cksum_file" ||
 | 
			
		||||
        ! test -f "$po_dir/$po.po" ||
 | 
			
		||||
        ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then
 | 
			
		||||
      echo "$me: updated $po_dir/$po.po..."
 | 
			
		||||
      cp "$new_po" "$po_dir/$po.po" \
 | 
			
		||||
          && $SHA1SUM < "$new_po" > "$cksum_file" || return
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
case $SKIP_PO in
 | 
			
		||||
'')
 | 
			
		||||
  if test -d po; then
 | 
			
		||||
    update_po_files po $package || exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if test -d runtime-po; then
 | 
			
		||||
    update_po_files runtime-po $package-runtime || exit
 | 
			
		||||
  fi;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
symlink_to_dir()
 | 
			
		||||
{
 | 
			
		||||
  src=$1/$2
 | 
			
		||||
  dst=${3-$2}
 | 
			
		||||
 | 
			
		||||
  test -f "$src" && {
 | 
			
		||||
 | 
			
		||||
    # If the destination directory doesn't exist, create it.
 | 
			
		||||
    # This is required at least for "lib/uniwidth/cjk.h".
 | 
			
		||||
    dst_dir=$(dirname "$dst")
 | 
			
		||||
    if ! test -d "$dst_dir"; then
 | 
			
		||||
      mkdir -p "$dst_dir"
 | 
			
		||||
 | 
			
		||||
      # If we've just created a directory like lib/uniwidth,
 | 
			
		||||
      # tell version control system(s) it's ignorable.
 | 
			
		||||
      # FIXME: for now, this does only one level
 | 
			
		||||
      parent=$(dirname "$dst_dir")
 | 
			
		||||
      for dot_ig in x $vc_ignore; do
 | 
			
		||||
        test $dot_ig = x && continue
 | 
			
		||||
        ig=$parent/$dot_ig
 | 
			
		||||
        insert_vc_ignore $ig "${dst_dir##*/}"
 | 
			
		||||
      done
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if $copy; then
 | 
			
		||||
      {
 | 
			
		||||
        test ! -h "$dst" || {
 | 
			
		||||
          echo "$me: rm -f $dst" &&
 | 
			
		||||
          rm -f "$dst"
 | 
			
		||||
        }
 | 
			
		||||
      } &&
 | 
			
		||||
      test -f "$dst" &&
 | 
			
		||||
      cmp -s "$src" "$dst" || {
 | 
			
		||||
        echo "$me: cp -fp $src $dst" &&
 | 
			
		||||
        cp -fp "$src" "$dst"
 | 
			
		||||
      }
 | 
			
		||||
    else
 | 
			
		||||
      # Leave any existing symlink alone, if it already points to the source,
 | 
			
		||||
      # so that broken build tools that care about symlink times
 | 
			
		||||
      # aren't confused into doing unnecessary builds.  Conversely, if the
 | 
			
		||||
      # existing symlink's time stamp is older than the source, make it afresh,
 | 
			
		||||
      # so that broken tools aren't confused into skipping needed builds.  See
 | 
			
		||||
      # <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
 | 
			
		||||
      test -h "$dst" &&
 | 
			
		||||
      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
 | 
			
		||||
      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
 | 
			
		||||
      test "$src_i" = "$dst_i" &&
 | 
			
		||||
      both_ls=$(ls -dt "$src" "$dst") &&
 | 
			
		||||
      test "X$both_ls" = "X$dst$nl$src" || {
 | 
			
		||||
        dot_dots=
 | 
			
		||||
        case $src in
 | 
			
		||||
        /*) ;;
 | 
			
		||||
        *)
 | 
			
		||||
          case /$dst/ in
 | 
			
		||||
          *//* | */../* | */./* | /*/*/*/*/*/)
 | 
			
		||||
             die "invalid symlink calculation: $src -> $dst";;
 | 
			
		||||
          /*/*/*/*/)    dot_dots=../../../;;
 | 
			
		||||
          /*/*/*/)      dot_dots=../../;;
 | 
			
		||||
          /*/*/)        dot_dots=../;;
 | 
			
		||||
          esac;;
 | 
			
		||||
        esac
 | 
			
		||||
 | 
			
		||||
        echo "$me: ln -fs $dot_dots$src $dst" &&
 | 
			
		||||
        ln -fs "$dot_dots$src" "$dst"
 | 
			
		||||
      }
 | 
			
		||||
    fi
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
version_controlled_file() {
 | 
			
		||||
  parent=$1
 | 
			
		||||
  file=$2
 | 
			
		||||
  if test -d .git; then
 | 
			
		||||
    git rm -n "$file" > /dev/null 2>&1
 | 
			
		||||
  elif test -d .svn; then
 | 
			
		||||
    svn log -r HEAD "$file" > /dev/null 2>&1
 | 
			
		||||
  elif test -d CVS; then
 | 
			
		||||
    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
 | 
			
		||||
             grep '^/[^/]*/[0-9]' > /dev/null
 | 
			
		||||
  else
 | 
			
		||||
    warn_ "no version control for $file?"
 | 
			
		||||
    false
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# NOTE: we have to be careful to run both autopoint and libtoolize
 | 
			
		||||
# before gnulib-tool, since gnulib-tool is likely to provide newer
 | 
			
		||||
# versions of files "installed" by these two programs.
 | 
			
		||||
# Then, *after* gnulib-tool (see below), we have to be careful to
 | 
			
		||||
# run autoreconf in such a way that it does not run either of these
 | 
			
		||||
# two just-pre-run programs.
 | 
			
		||||
 | 
			
		||||
# Import from gettext.
 | 
			
		||||
with_gettext=yes
 | 
			
		||||
grep '^[	 ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
 | 
			
		||||
    with_gettext=no
 | 
			
		||||
 | 
			
		||||
if test $with_gettext = yes || test $use_libtool = 1; then
 | 
			
		||||
 | 
			
		||||
  tempbase=.bootstrap$$
 | 
			
		||||
  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
 | 
			
		||||
 | 
			
		||||
  > $tempbase.0 > $tempbase.1 &&
 | 
			
		||||
  find . ! -type d -print | sort > $tempbase.0 || exit
 | 
			
		||||
 | 
			
		||||
  if test $with_gettext = yes; then
 | 
			
		||||
    # Released autopoint has the tendency to install macros that have been
 | 
			
		||||
    # obsoleted in current gnulib, so run this before gnulib-tool.
 | 
			
		||||
    echo "$0: $AUTOPOINT --force"
 | 
			
		||||
    $AUTOPOINT --force || exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Autoreconf runs aclocal before libtoolize, which causes spurious
 | 
			
		||||
  # warnings if the initial aclocal is confused by the libtoolized
 | 
			
		||||
  # (or worse out-of-date) macro directory.
 | 
			
		||||
  # libtoolize 1.9b added the --install option; but we support back
 | 
			
		||||
  # to libtoolize 1.5.22, where the install action was default.
 | 
			
		||||
  if test $use_libtool = 1; then
 | 
			
		||||
    install=
 | 
			
		||||
    case $($LIBTOOLIZE --help) in
 | 
			
		||||
      *--install*) install=--install ;;
 | 
			
		||||
    esac
 | 
			
		||||
    echo "running: $LIBTOOLIZE $install --copy"
 | 
			
		||||
    $LIBTOOLIZE $install --copy
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  find . ! -type d -print | sort >$tempbase.1
 | 
			
		||||
  old_IFS=$IFS
 | 
			
		||||
  IFS=$nl
 | 
			
		||||
  for file in $(comm -13 $tempbase.0 $tempbase.1); do
 | 
			
		||||
    IFS=$old_IFS
 | 
			
		||||
    parent=${file%/*}
 | 
			
		||||
    version_controlled_file "$parent" "$file" || {
 | 
			
		||||
      for dot_ig in x $vc_ignore; do
 | 
			
		||||
        test $dot_ig = x && continue
 | 
			
		||||
        ig=$parent/$dot_ig
 | 
			
		||||
        insert_vc_ignore "$ig" "${file##*/}"
 | 
			
		||||
      done
 | 
			
		||||
    }
 | 
			
		||||
  done
 | 
			
		||||
  IFS=$old_IFS
 | 
			
		||||
 | 
			
		||||
  rm -f $tempbase.0 $tempbase.1
 | 
			
		||||
  trap - 1 2 13 15
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Import from gnulib.
 | 
			
		||||
 | 
			
		||||
gnulib_tool_options="\
 | 
			
		||||
 --import\
 | 
			
		||||
 --no-changelog\
 | 
			
		||||
 --aux-dir $build_aux\
 | 
			
		||||
 --doc-base $doc_base\
 | 
			
		||||
 --lib $gnulib_name\
 | 
			
		||||
 --m4-base $m4_base/\
 | 
			
		||||
 --source-base $source_base/\
 | 
			
		||||
 --tests-base $tests_base\
 | 
			
		||||
 --local-dir $local_gl_dir\
 | 
			
		||||
 $gnulib_tool_option_extras\
 | 
			
		||||
"
 | 
			
		||||
if test $use_libtool = 1; then
 | 
			
		||||
  case "$gnulib_tool_options " in
 | 
			
		||||
    *' --libtool '*) ;;
 | 
			
		||||
    *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
 | 
			
		||||
  esac
 | 
			
		||||
fi
 | 
			
		||||
echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
 | 
			
		||||
$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
 | 
			
		||||
 | 
			
		||||
for file in $gnulib_files; do
 | 
			
		||||
  symlink_to_dir "$GNULIB_SRCDIR" $file \
 | 
			
		||||
    || die "failed to symlink $file"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
bootstrap_post_import_hook \
 | 
			
		||||
  || die "bootstrap_post_import_hook failed"
 | 
			
		||||
 | 
			
		||||
# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
 | 
			
		||||
# gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
 | 
			
		||||
# The following requires GNU find 4.2.3 or newer.  Considering the usual
 | 
			
		||||
# portability constraints of this script, that may seem a very demanding
 | 
			
		||||
# requirement, but it should be ok.  Ignore any failure, which is fine,
 | 
			
		||||
# since this is only a convenience to help developers avoid the relatively
 | 
			
		||||
# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
 | 
			
		||||
# between successive runs of this script.
 | 
			
		||||
find "$m4_base" "$source_base" \
 | 
			
		||||
  -depth \( -name '*.m4' -o -name '*.[ch]' \) \
 | 
			
		||||
  -type l -xtype l -delete > /dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
# Invoke autoreconf with --force --install to ensure upgrades of tools
 | 
			
		||||
# such as ylwrap.
 | 
			
		||||
AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
 | 
			
		||||
 | 
			
		||||
# Some systems (RHEL 5) are using ancient autotools, for which the
 | 
			
		||||
# --no-recursive option had not been invented.  Detect that lack and
 | 
			
		||||
# omit the option when it's not supported.  FIXME in 2017: remove this
 | 
			
		||||
# hack when RHEL 5 autotools are updated, or when they become irrelevant.
 | 
			
		||||
case $($AUTORECONF --help) in
 | 
			
		||||
  *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
 | 
			
		||||
echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
 | 
			
		||||
AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
 | 
			
		||||
  || die "autoreconf failed"
 | 
			
		||||
 | 
			
		||||
# Get some extra files from gnulib, overriding existing files.
 | 
			
		||||
for file in $gnulib_extra_files; do
 | 
			
		||||
  case $file in
 | 
			
		||||
  */INSTALL) dst=INSTALL;;
 | 
			
		||||
  build-aux/*) dst=$build_aux/${file#build-aux/};;
 | 
			
		||||
  *) dst=$file;;
 | 
			
		||||
  esac
 | 
			
		||||
  symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
 | 
			
		||||
    || die "failed to symlink $file"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if test $with_gettext = yes; then
 | 
			
		||||
  # Create gettext configuration.
 | 
			
		||||
  echo "$0: Creating po/Makevars from po/Makevars.template ..."
 | 
			
		||||
  rm -f po/Makevars
 | 
			
		||||
  sed '
 | 
			
		||||
    /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
 | 
			
		||||
    /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
 | 
			
		||||
    /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
 | 
			
		||||
    /^XGETTEXT_OPTIONS *=/{
 | 
			
		||||
      s/$/ \\/
 | 
			
		||||
      a\
 | 
			
		||||
          '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
 | 
			
		||||
    }
 | 
			
		||||
  ' po/Makevars.template >po/Makevars \
 | 
			
		||||
    || die 'cannot generate po/Makevars'
 | 
			
		||||
 | 
			
		||||
  # If the 'gettext' module is in use, grab the latest Makefile.in.in.
 | 
			
		||||
  # If only the 'gettext-h' module is in use, assume autopoint already
 | 
			
		||||
  # put the correct version of this file into place.
 | 
			
		||||
  case $gnulib_modules in
 | 
			
		||||
  *gettext-h*) ;;
 | 
			
		||||
  *gettext*)
 | 
			
		||||
    cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
 | 
			
		||||
      || die "cannot create po/Makefile.in.in"
 | 
			
		||||
    ;;
 | 
			
		||||
  esac
 | 
			
		||||
 | 
			
		||||
  if test -d runtime-po; then
 | 
			
		||||
    # Similarly for runtime-po/Makevars, but not quite the same.
 | 
			
		||||
    rm -f runtime-po/Makevars
 | 
			
		||||
    sed '
 | 
			
		||||
      /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
 | 
			
		||||
      /^subdir *=.*/s/=.*/= runtime-po/
 | 
			
		||||
      /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
 | 
			
		||||
      /^XGETTEXT_OPTIONS *=/{
 | 
			
		||||
        s/$/ \\/
 | 
			
		||||
        a\
 | 
			
		||||
            '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
 | 
			
		||||
      }
 | 
			
		||||
    ' po/Makevars.template >runtime-po/Makevars \
 | 
			
		||||
    || die 'cannot generate runtime-po/Makevars'
 | 
			
		||||
 | 
			
		||||
    # Copy identical files from po to runtime-po.
 | 
			
		||||
    (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
bootstrap_epilogue
 | 
			
		||||
 | 
			
		||||
echo "$0: done.  Now you can run './configure'."
 | 
			
		||||
 | 
			
		||||
# Local variables:
 | 
			
		||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
 | 
			
		||||
# time-stamp-start: "scriptversion="
 | 
			
		||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
 | 
			
		||||
# time-stamp-time-zone: "UTC"
 | 
			
		||||
# time-stamp-end: "; # UTC"
 | 
			
		||||
# End:
 | 
			
		||||
							
								
								
									
										247
									
								
								bootstrap.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										247
									
								
								bootstrap.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,247 @@
 | 
			
		||||
# Bootstrap configuration.
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 2010-2013 Red Hat, Inc.
 | 
			
		||||
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
# This program is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
# GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library.  If not, see
 | 
			
		||||
# <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
# gnulib modules used by this package.
 | 
			
		||||
gnulib_modules='
 | 
			
		||||
accept
 | 
			
		||||
areadlink
 | 
			
		||||
autobuild
 | 
			
		||||
base64
 | 
			
		||||
bind
 | 
			
		||||
bitrotate
 | 
			
		||||
byteswap
 | 
			
		||||
c-ctype
 | 
			
		||||
c-strcase
 | 
			
		||||
c-strcasestr
 | 
			
		||||
calloc-posix
 | 
			
		||||
canonicalize-lgpl
 | 
			
		||||
chown
 | 
			
		||||
clock-time
 | 
			
		||||
close
 | 
			
		||||
connect
 | 
			
		||||
configmake
 | 
			
		||||
count-one-bits
 | 
			
		||||
crypto/md5
 | 
			
		||||
crypto/sha256
 | 
			
		||||
dirname-lgpl
 | 
			
		||||
environ
 | 
			
		||||
execinfo
 | 
			
		||||
fclose
 | 
			
		||||
fcntl
 | 
			
		||||
fcntl-h
 | 
			
		||||
fdatasync
 | 
			
		||||
ffs
 | 
			
		||||
ffsl
 | 
			
		||||
fnmatch
 | 
			
		||||
fsync
 | 
			
		||||
func
 | 
			
		||||
getaddrinfo
 | 
			
		||||
getcwd-lgpl
 | 
			
		||||
gethostname
 | 
			
		||||
getpass
 | 
			
		||||
getpeername
 | 
			
		||||
getsockname
 | 
			
		||||
gettext-h
 | 
			
		||||
gettimeofday
 | 
			
		||||
gitlog-to-changelog
 | 
			
		||||
gnumakefile
 | 
			
		||||
ignore-value
 | 
			
		||||
inet_pton
 | 
			
		||||
intprops
 | 
			
		||||
ioctl
 | 
			
		||||
isatty
 | 
			
		||||
largefile
 | 
			
		||||
ldexp
 | 
			
		||||
listen
 | 
			
		||||
localeconv
 | 
			
		||||
maintainer-makefile
 | 
			
		||||
manywarnings
 | 
			
		||||
mgetgroups
 | 
			
		||||
mkdtemp
 | 
			
		||||
mkostemp
 | 
			
		||||
mkostemps
 | 
			
		||||
mktempd
 | 
			
		||||
net_if
 | 
			
		||||
netdb
 | 
			
		||||
nonblocking
 | 
			
		||||
openpty
 | 
			
		||||
passfd
 | 
			
		||||
perror
 | 
			
		||||
physmem
 | 
			
		||||
pipe-posix
 | 
			
		||||
pipe2
 | 
			
		||||
poll
 | 
			
		||||
posix-shell
 | 
			
		||||
pthread
 | 
			
		||||
pthread_sigmask
 | 
			
		||||
recv
 | 
			
		||||
regex
 | 
			
		||||
random_r
 | 
			
		||||
sched
 | 
			
		||||
secure_getenv
 | 
			
		||||
send
 | 
			
		||||
setenv
 | 
			
		||||
setsockopt
 | 
			
		||||
sigaction
 | 
			
		||||
sigpipe
 | 
			
		||||
snprintf
 | 
			
		||||
socket
 | 
			
		||||
stat-time
 | 
			
		||||
stdarg
 | 
			
		||||
stpcpy
 | 
			
		||||
strchrnul
 | 
			
		||||
strdup-posix
 | 
			
		||||
strndup
 | 
			
		||||
strerror
 | 
			
		||||
strerror_r-posix
 | 
			
		||||
strptime
 | 
			
		||||
strsep
 | 
			
		||||
strtok_r
 | 
			
		||||
sys_stat
 | 
			
		||||
sys_wait
 | 
			
		||||
termios
 | 
			
		||||
time_r
 | 
			
		||||
timegm
 | 
			
		||||
ttyname_r
 | 
			
		||||
uname
 | 
			
		||||
useless-if-before-free
 | 
			
		||||
usleep
 | 
			
		||||
vasprintf
 | 
			
		||||
verify
 | 
			
		||||
vc-list-files
 | 
			
		||||
vsnprintf
 | 
			
		||||
waitpid
 | 
			
		||||
warnings
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
# Additional xgettext options to use.  Use "\\\newline" to break lines.
 | 
			
		||||
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
 | 
			
		||||
 --flag=virAsprintf:2:c-format\\\
 | 
			
		||||
 --from-code=UTF-8\\\
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
# This is not a GNU package, so the default bug address is invalid,
 | 
			
		||||
# and the translation project is not in use.
 | 
			
		||||
MSGID_BUGS_ADDRESS=libvir-list@redhat.com
 | 
			
		||||
COPYRIGHT_HOLDER='Red Hat, Inc.'
 | 
			
		||||
SKIP_PO=true
 | 
			
		||||
 | 
			
		||||
# Enable copy-mode for MSYS/MinGW. MSYS' ln doesn't work well in the way
 | 
			
		||||
# bootstrap uses it with relative paths.
 | 
			
		||||
if test -n "$MSYSTEM"; then
 | 
			
		||||
    copy=true
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
 | 
			
		||||
# appears in configure.ac, exclude some unnecessary files.
 | 
			
		||||
# Without grep's -E option (not portable enough, pre-configure),
 | 
			
		||||
# the following test is ugly.  Also, this depends on the existence
 | 
			
		||||
# of configure.ac, not the obsolescent-named configure.in.  But if
 | 
			
		||||
# you're using this infrastructure, you should care about such things.
 | 
			
		||||
 | 
			
		||||
gettext_external=0
 | 
			
		||||
grep '^[	 ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
 | 
			
		||||
  gettext_external=1
 | 
			
		||||
grep '^[	 ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
 | 
			
		||||
  gettext_external=1
 | 
			
		||||
 | 
			
		||||
if test $gettext_external = 1; then
 | 
			
		||||
  # Gettext supplies these files, but we don't need them since
 | 
			
		||||
  # we don't have an intl subdirectory.
 | 
			
		||||
  excluded_files='
 | 
			
		||||
      m4/glibc2.m4
 | 
			
		||||
      m4/intdiv0.m4
 | 
			
		||||
      m4/lcmessage.m4
 | 
			
		||||
      m4/uintmax_t.m4
 | 
			
		||||
      m4/ulonglong.m4
 | 
			
		||||
      m4/visibility.m4
 | 
			
		||||
  '
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Tell gnulib to:
 | 
			
		||||
#   require LGPLv2+
 | 
			
		||||
#   apply any local diffs in gnulib/local/ dir
 | 
			
		||||
#   put *.m4 files in m4/ dir
 | 
			
		||||
#   put *.[ch] files in new gnulib/lib/ dir
 | 
			
		||||
#   import gnulib tests in new gnulib/tests/ dir
 | 
			
		||||
gnulib_name=libgnu
 | 
			
		||||
m4_base=m4
 | 
			
		||||
source_base=gnulib/lib
 | 
			
		||||
tests_base=gnulib/tests
 | 
			
		||||
gnulib_tool_option_extras="\
 | 
			
		||||
 --lgpl=2\
 | 
			
		||||
 --with-tests\
 | 
			
		||||
 --makefile-name=gnulib.mk\
 | 
			
		||||
 --avoid=pt_chown\
 | 
			
		||||
 --avoid=lock-tests\
 | 
			
		||||
"
 | 
			
		||||
local_gl_dir=gnulib/local
 | 
			
		||||
 | 
			
		||||
# Build prerequisites
 | 
			
		||||
# Note that some of these programs are only required for 'make dist' to
 | 
			
		||||
# succeed from a fresh git checkout; not all of these programs are
 | 
			
		||||
# required to run 'make dist' on a tarball.  As a special case, we want
 | 
			
		||||
# to require the equivalent of the Fedora python-devel package, but
 | 
			
		||||
# RHEL 5 lacks the witness python-config package; we hack around that
 | 
			
		||||
# old environment below.
 | 
			
		||||
buildreq="\
 | 
			
		||||
autoconf   2.59
 | 
			
		||||
automake   1.9.6
 | 
			
		||||
autopoint  -
 | 
			
		||||
gettext    0.17
 | 
			
		||||
git        1.5.5
 | 
			
		||||
gzip       -
 | 
			
		||||
libtool    -
 | 
			
		||||
patch      -
 | 
			
		||||
perl       5.5
 | 
			
		||||
pkg-config -
 | 
			
		||||
python-config -
 | 
			
		||||
rpcgen     -
 | 
			
		||||
tar        -
 | 
			
		||||
xmllint	   -
 | 
			
		||||
xsltproc   -
 | 
			
		||||
"
 | 
			
		||||
# Use rpm as a fallback to bypass the bootstrap probe for python-config,
 | 
			
		||||
# for the sake of RHEL 5; without requiring it on newer systems that
 | 
			
		||||
# have python-config to begin with.
 | 
			
		||||
if `(${PYTHON_CONFIG-python-config} --version;
 | 
			
		||||
     test $? -lt 126 || rpm -q python-devel) >/dev/null 2>&1`; then
 | 
			
		||||
  PYTHON_CONFIG=true
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Automake requires that ChangeLog and AUTHORS exist.
 | 
			
		||||
touch AUTHORS ChangeLog || exit 1
 | 
			
		||||
 | 
			
		||||
# Override bootstrap's list - we don't use mdate-sh or texinfo.tex.
 | 
			
		||||
gnulib_extra_files="
 | 
			
		||||
        build-aux/install-sh
 | 
			
		||||
        build-aux/depcomp
 | 
			
		||||
        build-aux/config.guess
 | 
			
		||||
        build-aux/config.sub
 | 
			
		||||
        doc/INSTALL
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bootstrap_post_import_hook()
 | 
			
		||||
{
 | 
			
		||||
  # Change paths in gnulib/tests/gnulib.mk from "../../.." to "../..",
 | 
			
		||||
  # and make tests conditional by changing "TESTS" to "GNULIB_TESTS".
 | 
			
		||||
  m=gnulib/tests/gnulib.mk
 | 
			
		||||
  sed 's,\.\./\.\./\.\.,../..,g; s/^TESTS /GNULIB_TESTS /' $m > $m-t
 | 
			
		||||
  mv -f $m-t $m
 | 
			
		||||
}
 | 
			
		||||
@@ -1,13 +0,0 @@
 | 
			
		||||
# define variables
 | 
			
		||||
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
top_builddir = @top_builddir@
 | 
			
		||||
FLAKE8 = @flake8_path@
 | 
			
		||||
RUNUTF8 = @runutf8@
 | 
			
		||||
PYTHON = @PYTHON3@
 | 
			
		||||
GREP = @GREP@
 | 
			
		||||
SED = @SED@
 | 
			
		||||
AWK = @AWK@
 | 
			
		||||
 | 
			
		||||
# include syntax-check.mk file
 | 
			
		||||
include $(top_srcdir)/build-aux/syntax-check.mk
 | 
			
		||||
							
								
								
									
										71
									
								
								build-aux/augeas-gentest.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										71
									
								
								build-aux/augeas-gentest.pl
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
#
 | 
			
		||||
# augeas-gentest.pl: Generate an augeas test file, from an
 | 
			
		||||
#                    example config file + test file template
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# This library is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
# Lesser General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library.  If not, see
 | 
			
		||||
# <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#     Daniel P. Berrange <berrange@redhat.com>
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
 | 
			
		||||
die "syntax: $0 CONFIG TEMPLATE AUGTEST\n" unless @ARGV == 3;
 | 
			
		||||
 | 
			
		||||
my $config = shift @ARGV;
 | 
			
		||||
my $template = shift @ARGV;
 | 
			
		||||
my $augtest = shift @ARGV;
 | 
			
		||||
 | 
			
		||||
open AUGTEST, ">", $augtest or die "cannot create $augtest: $!";
 | 
			
		||||
 | 
			
		||||
$SIG{__DIE__} = sub {
 | 
			
		||||
    unlink $augtest;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
open CONFIG, "<", $config or die "cannot read $config: $!";
 | 
			
		||||
open TEMPLATE, "<", $template or die "cannot read $template: $!";
 | 
			
		||||
 | 
			
		||||
my $group = 0;
 | 
			
		||||
while (<TEMPLATE>) {
 | 
			
		||||
    if (/::CONFIG::/) {
 | 
			
		||||
        my $group = 0;
 | 
			
		||||
        print AUGTEST "  let conf = \"";
 | 
			
		||||
        while (<CONFIG>) {
 | 
			
		||||
            if (/^#\w/) {
 | 
			
		||||
                s/^#//;
 | 
			
		||||
                s/\"/\\\"/g;
 | 
			
		||||
                print AUGTEST $_;
 | 
			
		||||
                $group = /\[\s$/;
 | 
			
		||||
            } elsif ($group) {
 | 
			
		||||
                s/\"/\\\"/g;
 | 
			
		||||
                if (/#\s*\]/) {
 | 
			
		||||
                    $group = 0;
 | 
			
		||||
                }
 | 
			
		||||
                if (/^#/) {
 | 
			
		||||
                    s/^#//;
 | 
			
		||||
                    print AUGTEST $_;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        print AUGTEST "\"\n";
 | 
			
		||||
    } else {
 | 
			
		||||
        print AUGTEST $_;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
close TEMPLATE;
 | 
			
		||||
close CONFIG;
 | 
			
		||||
close AUGTEST or die "cannot save $augtest: $!";
 | 
			
		||||
							
								
								
									
										162
									
								
								build-aux/bracket-spacing.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										162
									
								
								build-aux/bracket-spacing.pl
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,162 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
#
 | 
			
		||||
# bracket-spacing.pl: Report any usage of 'function (..args..)'
 | 
			
		||||
# Also check for other syntax issues, such as correct use of ';'
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# This library is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
# Lesser General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library.  If not, see
 | 
			
		||||
# <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#     Daniel P. Berrange <berrange@redhat.com>
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
 | 
			
		||||
my $ret = 0;
 | 
			
		||||
my $incomment = 0;
 | 
			
		||||
 | 
			
		||||
foreach my $file (@ARGV) {
 | 
			
		||||
    open FILE, $file;
 | 
			
		||||
 | 
			
		||||
    while (defined (my $line = <FILE>)) {
 | 
			
		||||
        my $data = $line;
 | 
			
		||||
 | 
			
		||||
        # Kill any quoted , ; or "
 | 
			
		||||
        $data =~ s/'[";,]'/'X'/g;
 | 
			
		||||
 | 
			
		||||
        # Kill any quoted strings
 | 
			
		||||
        $data =~ s,"([^\\\"]|\\.)*","XXX",g;
 | 
			
		||||
 | 
			
		||||
        # Kill any C++ style comments
 | 
			
		||||
        $data =~ s,//.*$,//,;
 | 
			
		||||
 | 
			
		||||
        next if $data =~ /^#/;
 | 
			
		||||
 | 
			
		||||
        # Kill contents of multi-line comments
 | 
			
		||||
        # and detect end of multi-line comments
 | 
			
		||||
        if ($incomment) {
 | 
			
		||||
            if ($data =~ m,\*/,) {
 | 
			
		||||
                $incomment = 0;
 | 
			
		||||
                $data =~ s,^.*\*/,*/,;
 | 
			
		||||
            } else {
 | 
			
		||||
                $data = "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Kill single line comments, and detect
 | 
			
		||||
        # start of multi-line comments
 | 
			
		||||
        if ($data =~ m,/\*.*\*/,) {
 | 
			
		||||
            $data =~ s,/\*.*\*/,/* */,;
 | 
			
		||||
        } elsif ($data =~ m,/\*,) {
 | 
			
		||||
            $incomment = 1;
 | 
			
		||||
            $data =~ s,/\*.*,/*,;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # We need to match things like
 | 
			
		||||
        #
 | 
			
		||||
        #  int foo (int bar, bool wizz);
 | 
			
		||||
        #  foo (bar, wizz);
 | 
			
		||||
        #
 | 
			
		||||
        # but not match things like:
 | 
			
		||||
        #
 | 
			
		||||
        #  typedef int (*foo)(bar wizz)
 | 
			
		||||
        #
 | 
			
		||||
        # we can't do this (efficiently) without
 | 
			
		||||
        # missing things like
 | 
			
		||||
        #
 | 
			
		||||
        #  foo (*bar, wizz);
 | 
			
		||||
        #
 | 
			
		||||
        while ($data =~ /(\w+)\s\((?!\*)/) {
 | 
			
		||||
            my $kw = $1;
 | 
			
		||||
 | 
			
		||||
            # Allow space after keywords only
 | 
			
		||||
            if ($kw =~ /^(if|for|while|switch|return)$/) {
 | 
			
		||||
                $data =~ s/($kw\s\()/XXX(/;
 | 
			
		||||
            } else {
 | 
			
		||||
                print "$file:$.: $line";
 | 
			
		||||
                $ret = 1;
 | 
			
		||||
                last;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require whitespace immediately after keywords,
 | 
			
		||||
        # but none after the opening bracket
 | 
			
		||||
        while ($data =~ /\b(if|for|while|switch|return)\(/ ||
 | 
			
		||||
               $data =~ /\b(if|for|while|switch|return)\s+\(\s/) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Forbid whitespace between )( of a function typedef
 | 
			
		||||
        while ($data =~ /\(\*\w+\)\s+\(/) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Forbid whitespace following ( or prior to )
 | 
			
		||||
        while ($data =~ /\S\s+\)/ ||
 | 
			
		||||
               $data =~ /\(\s+\S/) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Forbid whitespace before ";" or ",". Things like below are allowed:
 | 
			
		||||
        #
 | 
			
		||||
        # 1) The expression is empty for "for" loop. E.g.
 | 
			
		||||
        #   for (i = 0; ; i++)
 | 
			
		||||
        #
 | 
			
		||||
        # 2) An empty statement. E.g.
 | 
			
		||||
        #   while (write(statuswrite, &status, 1) == -1 &&
 | 
			
		||||
        #          errno == EINTR)
 | 
			
		||||
        #       ;
 | 
			
		||||
        #
 | 
			
		||||
        while ($data =~ /[^;\s]\s+[;,]/) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require EOL, macro line continuation, or whitespace after ";".
 | 
			
		||||
        # Allow "for (;;)" as an exception.
 | 
			
		||||
        while ($data =~ /;[^	 \\\n;)]/) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require EOL, space, or enum/struct end after comma.
 | 
			
		||||
        while ($data =~ /,[^ \\\n)}]/) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require spaces around assignment '=', compounds and '=='
 | 
			
		||||
        # with the exception of virAssertCmpInt()
 | 
			
		||||
        while ($data =~ /[^!<>&|\-+*\/%\^'= ]=\+[^=]/ ||
 | 
			
		||||
               $data =~ /[^!<>&|\-+*\/%\^'=]=[^= \\\n]/ ||
 | 
			
		||||
               $data =~ /[\S]==/ ||
 | 
			
		||||
               ($data =~ /==[^\s,]/ && $data !~ /[\s]virAssertCmpInt\(/)) {
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
            last;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    close FILE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exit $ret;
 | 
			
		||||
@@ -1,162 +0,0 @@
 | 
			
		||||
#!/usr/bin/env perl
 | 
			
		||||
#
 | 
			
		||||
# check-spacing.pl: Report any usage of 'function (..args..)'
 | 
			
		||||
# Also check for other syntax issues, such as correct use of ';'
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# This library is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
# Lesser General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library.  If not, see
 | 
			
		||||
# <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
 | 
			
		||||
my $ret = 0;
 | 
			
		||||
my $incomment = 0;
 | 
			
		||||
 | 
			
		||||
foreach my $file (@ARGV) {
 | 
			
		||||
    open FILE, $file;
 | 
			
		||||
 | 
			
		||||
    while (defined (my $line = <FILE>)) {
 | 
			
		||||
        my $data = $line;
 | 
			
		||||
        # For temporary modifications
 | 
			
		||||
        my $tmpdata;
 | 
			
		||||
 | 
			
		||||
        # Kill any quoted , ; = or "
 | 
			
		||||
        $data =~ s/'[";,=]'/'X'/g;
 | 
			
		||||
 | 
			
		||||
        # Kill any quoted strings
 | 
			
		||||
        $data =~ s,"(?:[^\\\"]|\\.)*","XXX",g;
 | 
			
		||||
 | 
			
		||||
        next if $data =~ /^#/;
 | 
			
		||||
 | 
			
		||||
        # Kill contents of multi-line comments
 | 
			
		||||
        # and detect end of multi-line comments
 | 
			
		||||
        if ($incomment) {
 | 
			
		||||
            if ($data =~ m,\*/,) {
 | 
			
		||||
                $incomment = 0;
 | 
			
		||||
                $data =~ s,^.*\*/,*/,;
 | 
			
		||||
            } else {
 | 
			
		||||
                $data = "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Kill single line comments, and detect
 | 
			
		||||
        # start of multi-line comments
 | 
			
		||||
        if ($data =~ m,/\*.*\*/,) {
 | 
			
		||||
            $data =~ s,/\*.*\*/,/* */,;
 | 
			
		||||
        } elsif ($data =~ m,/\*,) {
 | 
			
		||||
            $incomment = 1;
 | 
			
		||||
            $data =~ s,/\*.*,/*,;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # We need to match things like
 | 
			
		||||
        #
 | 
			
		||||
        #  int foo (int bar, bool wizz);
 | 
			
		||||
        #  foo (bar, wizz);
 | 
			
		||||
        #
 | 
			
		||||
        # but not match things like:
 | 
			
		||||
        #
 | 
			
		||||
        #  typedef int (*foo)(bar wizz)
 | 
			
		||||
        #
 | 
			
		||||
        # we can't do this (efficiently) without
 | 
			
		||||
        # missing things like
 | 
			
		||||
        #
 | 
			
		||||
        #  foo (*bar, wizz);
 | 
			
		||||
        #
 | 
			
		||||
        # We also don't want to spoil the $data so it can be used
 | 
			
		||||
        # later on.
 | 
			
		||||
        $tmpdata = $data;
 | 
			
		||||
        while ($tmpdata =~ /(\w+)\s\((?!\*)/) {
 | 
			
		||||
            my $kw = $1;
 | 
			
		||||
 | 
			
		||||
            # Allow space after keywords only
 | 
			
		||||
            if ($kw =~ /^(?:if|for|while|switch|return)$/) {
 | 
			
		||||
                $tmpdata =~ s/(?:$kw\s\()/XXX(/;
 | 
			
		||||
            } else {
 | 
			
		||||
                print "Whitespace after non-keyword:\n";
 | 
			
		||||
                print "$file:$.: $line";
 | 
			
		||||
                $ret = 1;
 | 
			
		||||
                last;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require whitespace immediately after keywords
 | 
			
		||||
        if ($data =~ /\b(?:if|for|while|switch|return)\(/) {
 | 
			
		||||
            print "No whitespace after keyword:\n";
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Forbid whitespace between )( of a function typedef
 | 
			
		||||
        if ($data =~ /\(\*\w+\)\s+\(/) {
 | 
			
		||||
            print "Whitespace between ')' and '(':\n";
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Forbid whitespace following ( or prior to )
 | 
			
		||||
        # but allow whitespace before ) on a single line
 | 
			
		||||
        # (optionally followed by a semicolon)
 | 
			
		||||
        if (($data =~ /\s\)/ && not $data =~ /^\s+\);?$/) ||
 | 
			
		||||
            $data =~ /\((?!$)\s/) {
 | 
			
		||||
            print "Whitespace after '(' or before ')':\n";
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Forbid whitespace before ";" or ",". Things like below are allowed:
 | 
			
		||||
        #
 | 
			
		||||
        # 1) The expression is empty for "for" loop. E.g.
 | 
			
		||||
        #   for (i = 0; ; i++)
 | 
			
		||||
        #
 | 
			
		||||
        # 2) An empty statement. E.g.
 | 
			
		||||
        #   while (write(statuswrite, &status, 1) == -1 &&
 | 
			
		||||
        #          errno == EINTR)
 | 
			
		||||
        #       ;
 | 
			
		||||
        #
 | 
			
		||||
        if ($data =~ /\s[;,]/) {
 | 
			
		||||
            unless ($data =~ /\S; ; / ||
 | 
			
		||||
                    $data =~ /^\s+;/) {
 | 
			
		||||
                print "Whitespace before semicolon or comma:\n";
 | 
			
		||||
                print "$file:$.: $line";
 | 
			
		||||
                $ret = 1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require EOL, macro line continuation, or whitespace after ";".
 | 
			
		||||
        # Allow "for (;;)" as an exception.
 | 
			
		||||
        if ($data =~ /;[^	 \\\n;)]/) {
 | 
			
		||||
            print "Invalid character after semicolon:\n";
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require EOL, space, or enum/struct end after comma.
 | 
			
		||||
        if ($data =~ /,[^ \\\n)}]/) {
 | 
			
		||||
            print "Invalid character after comma:\n";
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # Require spaces around assignment '=', compounds and '=='
 | 
			
		||||
        if ($data =~ /[^ ]\b[!<>&|\-+*\/%\^=]?=/ ||
 | 
			
		||||
            $data =~ /=[^= \\\n]/) {
 | 
			
		||||
            print "Spacing around '=' or '==':\n";
 | 
			
		||||
            print "$file:$.: $line";
 | 
			
		||||
            $ret = 1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    close FILE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exit $ret;
 | 
			
		||||
@@ -1,72 +0,0 @@
 | 
			
		||||
flake8_path = ''
 | 
			
		||||
if flake8_prog.found()
 | 
			
		||||
  flake8_path = flake8_prog.path()
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if host_machine.system() == 'freebsd' or host_machine.system() == 'darwin'
 | 
			
		||||
  make_prog = find_program('gmake')
 | 
			
		||||
  sed_prog = find_program('gsed')
 | 
			
		||||
else
 | 
			
		||||
  make_prog = find_program('make')
 | 
			
		||||
  sed_prog = find_program('sed')
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if host_machine.system() == 'freebsd'
 | 
			
		||||
  grep_prog = find_program('grep')
 | 
			
		||||
  grep_cmd = run_command(grep_prog, '--version', check: true)
 | 
			
		||||
  if grep_cmd.stdout().startswith('grep (BSD grep')
 | 
			
		||||
    grep_prog = find_program('/usr/local/bin/grep', required: false)
 | 
			
		||||
    if not grep_prog.found()
 | 
			
		||||
      error('GNU grep not found')
 | 
			
		||||
    endif
 | 
			
		||||
  endif
 | 
			
		||||
elif host_machine.system() == 'darwin'
 | 
			
		||||
  grep_prog = find_program('ggrep')
 | 
			
		||||
else
 | 
			
		||||
  grep_prog = find_program('grep')
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
awk_prog = find_program('awk')
 | 
			
		||||
 | 
			
		||||
syntax_check_conf = configuration_data({
 | 
			
		||||
  'top_srcdir': meson.source_root(),
 | 
			
		||||
  'top_builddir': meson.build_root(),
 | 
			
		||||
  'flake8_path': flake8_path,
 | 
			
		||||
  'runutf8': ' '.join(runutf8),
 | 
			
		||||
  'PYTHON3': python3_prog.path(),
 | 
			
		||||
  'GREP': grep_prog.path(),
 | 
			
		||||
  'SED': sed_prog.path(),
 | 
			
		||||
  'AWK': awk_prog.path(),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
configure_file(
 | 
			
		||||
  input: 'Makefile.in',
 | 
			
		||||
  output: '@BASENAME@',
 | 
			
		||||
  configuration: syntax_check_conf,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rc = run_command(
 | 
			
		||||
  'sed', '-n',
 | 
			
		||||
  's/^sc_\\([a-zA-Z0-9_-]*\\):.*/\\1/p',
 | 
			
		||||
  meson.current_source_dir() / 'syntax-check.mk',
 | 
			
		||||
  check: true,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
sc_tests = rc.stdout().strip().split()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Skip syntax-check if not building from git because we get the list of files
 | 
			
		||||
# to check using git commands and it fails if we are not in git repository.
 | 
			
		||||
if git
 | 
			
		||||
  foreach target : sc_tests
 | 
			
		||||
    test(
 | 
			
		||||
      target,
 | 
			
		||||
      make_prog,
 | 
			
		||||
      args: [ '-C', meson.current_build_dir(), 'sc_@0@'.format(target) ],
 | 
			
		||||
      depends: [
 | 
			
		||||
        potfiles_dep,
 | 
			
		||||
      ],
 | 
			
		||||
      suite: 'syntax-check',
 | 
			
		||||
    )
 | 
			
		||||
  endforeach
 | 
			
		||||
endif
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										245
									
								
								ci/Makefile
									
									
									
									
									
								
							
							
						
						
									
										245
									
								
								ci/Makefile
									
									
									
									
									
								
							@@ -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-w64`_,
 | 
			
		||||
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-w64: https://www.mingw-w64.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
 | 
			
		||||
							
								
								
									
										23
									
								
								ci/build.sh
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								ci/build.sh
									
									
									
									
									
								
							@@ -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 --print-errorlogs || (cat ~/Library/Logs/DiagnosticReports/*.crash && exit 1)
 | 
			
		||||
@@ -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 fusefs-libs gettext git glib gmake gnugrep gnutls gsed libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 pkgconf polkit py39-docutils py39-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 fusefs-libs gettext git glib gmake gnugrep gnutls gsed libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 pkgconf polkit py39-docutils py39-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 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,99 +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 \
 | 
			
		||||
        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,80 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/alpine:3.15
 | 
			
		||||
 | 
			
		||||
RUN apk update && \
 | 
			
		||||
    apk upgrade && \
 | 
			
		||||
    apk add \
 | 
			
		||||
        acl-dev \
 | 
			
		||||
        attr-dev \
 | 
			
		||||
        audit-dev \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        ceph-dev \
 | 
			
		||||
        clang \
 | 
			
		||||
        curl-dev \
 | 
			
		||||
        cyrus-sasl-dev \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        eudev-dev \
 | 
			
		||||
        fuse-dev \
 | 
			
		||||
        gcc \
 | 
			
		||||
        gettext \
 | 
			
		||||
        git \
 | 
			
		||||
        glib-dev \
 | 
			
		||||
        gnutls-dev \
 | 
			
		||||
        grep \
 | 
			
		||||
        iproute2 \
 | 
			
		||||
        iptables \
 | 
			
		||||
        kmod \
 | 
			
		||||
        libcap-ng-dev \
 | 
			
		||||
        libnl3-dev \
 | 
			
		||||
        libpcap-dev \
 | 
			
		||||
        libpciaccess-dev \
 | 
			
		||||
        libselinux-dev \
 | 
			
		||||
        libssh-dev \
 | 
			
		||||
        libssh2-dev \
 | 
			
		||||
        libtirpc-dev \
 | 
			
		||||
        libxml2-dev \
 | 
			
		||||
        libxml2-utils \
 | 
			
		||||
        libxslt \
 | 
			
		||||
        lvm2 \
 | 
			
		||||
        lvm2-dev \
 | 
			
		||||
        make \
 | 
			
		||||
        meson \
 | 
			
		||||
        musl-dev \
 | 
			
		||||
        netcf-dev \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        numactl-dev \
 | 
			
		||||
        open-iscsi \
 | 
			
		||||
        parted-dev \
 | 
			
		||||
        perl \
 | 
			
		||||
        pkgconf \
 | 
			
		||||
        polkit \
 | 
			
		||||
        py3-docutils \
 | 
			
		||||
        py3-flake8 \
 | 
			
		||||
        python3 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        readline-dev \
 | 
			
		||||
        samurai \
 | 
			
		||||
        sed \
 | 
			
		||||
        util-linux-dev \
 | 
			
		||||
        wireshark-dev \
 | 
			
		||||
        xen-dev \
 | 
			
		||||
        yajl-dev && \
 | 
			
		||||
    apk list | 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,81 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/alpine:edge
 | 
			
		||||
 | 
			
		||||
RUN apk update && \
 | 
			
		||||
    apk upgrade && \
 | 
			
		||||
    apk add \
 | 
			
		||||
        acl-dev \
 | 
			
		||||
        attr-dev \
 | 
			
		||||
        audit-dev \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        ceph-dev \
 | 
			
		||||
        clang \
 | 
			
		||||
        curl-dev \
 | 
			
		||||
        cyrus-sasl-dev \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        eudev-dev \
 | 
			
		||||
        fuse-dev \
 | 
			
		||||
        gcc \
 | 
			
		||||
        gettext \
 | 
			
		||||
        git \
 | 
			
		||||
        glib-dev \
 | 
			
		||||
        gnutls-dev \
 | 
			
		||||
        grep \
 | 
			
		||||
        iproute2 \
 | 
			
		||||
        iptables \
 | 
			
		||||
        kmod \
 | 
			
		||||
        libcap-ng-dev \
 | 
			
		||||
        libnl3-dev \
 | 
			
		||||
        libpcap-dev \
 | 
			
		||||
        libpciaccess-dev \
 | 
			
		||||
        libselinux-dev \
 | 
			
		||||
        libssh-dev \
 | 
			
		||||
        libssh2-dev \
 | 
			
		||||
        libtirpc-dev \
 | 
			
		||||
        libxml2-dev \
 | 
			
		||||
        libxml2-utils \
 | 
			
		||||
        libxslt \
 | 
			
		||||
        lvm2 \
 | 
			
		||||
        lvm2-dev \
 | 
			
		||||
        make \
 | 
			
		||||
        meson \
 | 
			
		||||
        musl-dev \
 | 
			
		||||
        netcf-dev \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        numactl-dev \
 | 
			
		||||
        open-iscsi \
 | 
			
		||||
        parted-dev \
 | 
			
		||||
        perl \
 | 
			
		||||
        pkgconf \
 | 
			
		||||
        polkit \
 | 
			
		||||
        py3-docutils \
 | 
			
		||||
        py3-flake8 \
 | 
			
		||||
        python3 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        readline-dev \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        samurai \
 | 
			
		||||
        sed \
 | 
			
		||||
        util-linux-dev \
 | 
			
		||||
        wireshark-dev \
 | 
			
		||||
        xen-dev \
 | 
			
		||||
        yajl-dev && \
 | 
			
		||||
    apk list | 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 distro-sync -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 epel-next-release && \
 | 
			
		||||
    dnf install -y \
 | 
			
		||||
        audit-libs-devel \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        clang \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cyrus-sasl-devel \
 | 
			
		||||
        device-mapper-devel \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        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,95 +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 distro-sync -y && \
 | 
			
		||||
    dnf install 'dnf-command(config-manager)' -y && \
 | 
			
		||||
    dnf config-manager --set-enabled -y crb && \
 | 
			
		||||
    dnf install -y epel-release && \
 | 
			
		||||
    dnf install -y epel-next-release && \
 | 
			
		||||
    dnf install -y \
 | 
			
		||||
        audit-libs-devel \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        clang \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cyrus-sasl-devel \
 | 
			
		||||
        device-mapper-devel \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        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 \
 | 
			
		||||
        libssh2-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 && \
 | 
			
		||||
    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,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 \
 | 
			
		||||
            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,124 +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 \
 | 
			
		||||
            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,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 \
 | 
			
		||||
            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 armhf && \
 | 
			
		||||
    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-gnueabihf \
 | 
			
		||||
            libacl1-dev:armhf \
 | 
			
		||||
            libapparmor-dev:armhf \
 | 
			
		||||
            libattr1-dev:armhf \
 | 
			
		||||
            libaudit-dev:armhf \
 | 
			
		||||
            libblkid-dev:armhf \
 | 
			
		||||
            libc6-dev:armhf \
 | 
			
		||||
            libcap-ng-dev:armhf \
 | 
			
		||||
            libcurl4-gnutls-dev:armhf \
 | 
			
		||||
            libdevmapper-dev:armhf \
 | 
			
		||||
            libfuse-dev:armhf \
 | 
			
		||||
            libglib2.0-dev:armhf \
 | 
			
		||||
            libglusterfs-dev:armhf \
 | 
			
		||||
            libgnutls28-dev:armhf \
 | 
			
		||||
            libiscsi-dev:armhf \
 | 
			
		||||
            libnl-3-dev:armhf \
 | 
			
		||||
            libnl-route-3-dev:armhf \
 | 
			
		||||
            libnuma-dev:armhf \
 | 
			
		||||
            libparted-dev:armhf \
 | 
			
		||||
            libpcap0.8-dev:armhf \
 | 
			
		||||
            libpciaccess-dev:armhf \
 | 
			
		||||
            librbd-dev:armhf \
 | 
			
		||||
            libreadline-dev:armhf \
 | 
			
		||||
            libsanlock-dev:armhf \
 | 
			
		||||
            libsasl2-dev:armhf \
 | 
			
		||||
            libselinux1-dev:armhf \
 | 
			
		||||
            libssh-gcrypt-dev:armhf \
 | 
			
		||||
            libssh2-1-dev:armhf \
 | 
			
		||||
            libtirpc-dev:armhf \
 | 
			
		||||
            libudev-dev:armhf \
 | 
			
		||||
            libxen-dev:armhf \
 | 
			
		||||
            libxml2-dev:armhf \
 | 
			
		||||
            libyajl-dev:armhf \
 | 
			
		||||
            systemtap-sdt-dev:armhf && \
 | 
			
		||||
    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-gnueabihf-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'arm'\n\
 | 
			
		||||
cpu = 'armhf'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
 | 
			
		||||
    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-gnueabihf-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "arm-linux-gnueabihf"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
 | 
			
		||||
@@ -1,124 +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 \
 | 
			
		||||
            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 i386 && \
 | 
			
		||||
    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-i686-linux-gnu \
 | 
			
		||||
            libacl1-dev:i386 \
 | 
			
		||||
            libapparmor-dev:i386 \
 | 
			
		||||
            libattr1-dev:i386 \
 | 
			
		||||
            libaudit-dev:i386 \
 | 
			
		||||
            libblkid-dev:i386 \
 | 
			
		||||
            libc6-dev:i386 \
 | 
			
		||||
            libcap-ng-dev:i386 \
 | 
			
		||||
            libcurl4-gnutls-dev:i386 \
 | 
			
		||||
            libdevmapper-dev:i386 \
 | 
			
		||||
            libfuse-dev:i386 \
 | 
			
		||||
            libglib2.0-dev:i386 \
 | 
			
		||||
            libglusterfs-dev:i386 \
 | 
			
		||||
            libgnutls28-dev:i386 \
 | 
			
		||||
            libiscsi-dev:i386 \
 | 
			
		||||
            libnl-3-dev:i386 \
 | 
			
		||||
            libnl-route-3-dev:i386 \
 | 
			
		||||
            libnuma-dev:i386 \
 | 
			
		||||
            libparted-dev:i386 \
 | 
			
		||||
            libpcap0.8-dev:i386 \
 | 
			
		||||
            libpciaccess-dev:i386 \
 | 
			
		||||
            librbd-dev:i386 \
 | 
			
		||||
            libreadline-dev:i386 \
 | 
			
		||||
            libsanlock-dev:i386 \
 | 
			
		||||
            libsasl2-dev:i386 \
 | 
			
		||||
            libselinux1-dev:i386 \
 | 
			
		||||
            libssh-gcrypt-dev:i386 \
 | 
			
		||||
            libssh2-1-dev:i386 \
 | 
			
		||||
            libtirpc-dev:i386 \
 | 
			
		||||
            libudev-dev:i386 \
 | 
			
		||||
            libxml2-dev:i386 \
 | 
			
		||||
            libyajl-dev:i386 \
 | 
			
		||||
            systemtap-sdt-dev:i386 && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/i686-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/i686-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'x86'\n\
 | 
			
		||||
cpu = 'i686'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/i686-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/i686-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "i686-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
 | 
			
		||||
@@ -1,124 +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 \
 | 
			
		||||
            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 mips && \
 | 
			
		||||
    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-mips-linux-gnu \
 | 
			
		||||
            libacl1-dev:mips \
 | 
			
		||||
            libapparmor-dev:mips \
 | 
			
		||||
            libattr1-dev:mips \
 | 
			
		||||
            libaudit-dev:mips \
 | 
			
		||||
            libblkid-dev:mips \
 | 
			
		||||
            libc6-dev:mips \
 | 
			
		||||
            libcap-ng-dev:mips \
 | 
			
		||||
            libcurl4-gnutls-dev:mips \
 | 
			
		||||
            libdevmapper-dev:mips \
 | 
			
		||||
            libfuse-dev:mips \
 | 
			
		||||
            libglib2.0-dev:mips \
 | 
			
		||||
            libglusterfs-dev:mips \
 | 
			
		||||
            libgnutls28-dev:mips \
 | 
			
		||||
            libiscsi-dev:mips \
 | 
			
		||||
            libnl-3-dev:mips \
 | 
			
		||||
            libnl-route-3-dev:mips \
 | 
			
		||||
            libnuma-dev:mips \
 | 
			
		||||
            libparted-dev:mips \
 | 
			
		||||
            libpcap0.8-dev:mips \
 | 
			
		||||
            libpciaccess-dev:mips \
 | 
			
		||||
            librbd-dev:mips \
 | 
			
		||||
            libreadline-dev:mips \
 | 
			
		||||
            libsanlock-dev:mips \
 | 
			
		||||
            libsasl2-dev:mips \
 | 
			
		||||
            libselinux1-dev:mips \
 | 
			
		||||
            libssh-gcrypt-dev:mips \
 | 
			
		||||
            libssh2-1-dev:mips \
 | 
			
		||||
            libtirpc-dev:mips \
 | 
			
		||||
            libudev-dev:mips \
 | 
			
		||||
            libxml2-dev:mips \
 | 
			
		||||
            libyajl-dev:mips \
 | 
			
		||||
            systemtap-sdt-dev:mips && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mips-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mips-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mips-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mips-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips'\n\
 | 
			
		||||
cpu = 'mips'\n\
 | 
			
		||||
endian = 'big'" > /usr/local/share/meson/cross/mips-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/mips-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mips-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mips-linux-gnu"
 | 
			
		||||
@@ -1,124 +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 \
 | 
			
		||||
            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 mips64el && \
 | 
			
		||||
    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-mips64el-linux-gnuabi64 \
 | 
			
		||||
            libacl1-dev:mips64el \
 | 
			
		||||
            libapparmor-dev:mips64el \
 | 
			
		||||
            libattr1-dev:mips64el \
 | 
			
		||||
            libaudit-dev:mips64el \
 | 
			
		||||
            libblkid-dev:mips64el \
 | 
			
		||||
            libc6-dev:mips64el \
 | 
			
		||||
            libcap-ng-dev:mips64el \
 | 
			
		||||
            libcurl4-gnutls-dev:mips64el \
 | 
			
		||||
            libdevmapper-dev:mips64el \
 | 
			
		||||
            libfuse-dev:mips64el \
 | 
			
		||||
            libglib2.0-dev:mips64el \
 | 
			
		||||
            libglusterfs-dev:mips64el \
 | 
			
		||||
            libgnutls28-dev:mips64el \
 | 
			
		||||
            libiscsi-dev:mips64el \
 | 
			
		||||
            libnl-3-dev:mips64el \
 | 
			
		||||
            libnl-route-3-dev:mips64el \
 | 
			
		||||
            libnuma-dev:mips64el \
 | 
			
		||||
            libparted-dev:mips64el \
 | 
			
		||||
            libpcap0.8-dev:mips64el \
 | 
			
		||||
            libpciaccess-dev:mips64el \
 | 
			
		||||
            librbd-dev:mips64el \
 | 
			
		||||
            libreadline-dev:mips64el \
 | 
			
		||||
            libsanlock-dev:mips64el \
 | 
			
		||||
            libsasl2-dev:mips64el \
 | 
			
		||||
            libselinux1-dev:mips64el \
 | 
			
		||||
            libssh-gcrypt-dev:mips64el \
 | 
			
		||||
            libssh2-1-dev:mips64el \
 | 
			
		||||
            libtirpc-dev:mips64el \
 | 
			
		||||
            libudev-dev:mips64el \
 | 
			
		||||
            libxml2-dev:mips64el \
 | 
			
		||||
            libyajl-dev:mips64el \
 | 
			
		||||
            systemtap-sdt-dev:mips64el && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips64'\n\
 | 
			
		||||
cpu = 'mips64el'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
 | 
			
		||||
    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/mips64el-linux-gnuabi64-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mips64el-linux-gnuabi64"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
 | 
			
		||||
@@ -1,124 +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 \
 | 
			
		||||
            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 mipsel && \
 | 
			
		||||
    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-mipsel-linux-gnu \
 | 
			
		||||
            libacl1-dev:mipsel \
 | 
			
		||||
            libapparmor-dev:mipsel \
 | 
			
		||||
            libattr1-dev:mipsel \
 | 
			
		||||
            libaudit-dev:mipsel \
 | 
			
		||||
            libblkid-dev:mipsel \
 | 
			
		||||
            libc6-dev:mipsel \
 | 
			
		||||
            libcap-ng-dev:mipsel \
 | 
			
		||||
            libcurl4-gnutls-dev:mipsel \
 | 
			
		||||
            libdevmapper-dev:mipsel \
 | 
			
		||||
            libfuse-dev:mipsel \
 | 
			
		||||
            libglib2.0-dev:mipsel \
 | 
			
		||||
            libglusterfs-dev:mipsel \
 | 
			
		||||
            libgnutls28-dev:mipsel \
 | 
			
		||||
            libiscsi-dev:mipsel \
 | 
			
		||||
            libnl-3-dev:mipsel \
 | 
			
		||||
            libnl-route-3-dev:mipsel \
 | 
			
		||||
            libnuma-dev:mipsel \
 | 
			
		||||
            libparted-dev:mipsel \
 | 
			
		||||
            libpcap0.8-dev:mipsel \
 | 
			
		||||
            libpciaccess-dev:mipsel \
 | 
			
		||||
            librbd-dev:mipsel \
 | 
			
		||||
            libreadline-dev:mipsel \
 | 
			
		||||
            libsanlock-dev:mipsel \
 | 
			
		||||
            libsasl2-dev:mipsel \
 | 
			
		||||
            libselinux1-dev:mipsel \
 | 
			
		||||
            libssh-gcrypt-dev:mipsel \
 | 
			
		||||
            libssh2-1-dev:mipsel \
 | 
			
		||||
            libtirpc-dev:mipsel \
 | 
			
		||||
            libudev-dev:mipsel \
 | 
			
		||||
            libxml2-dev:mipsel \
 | 
			
		||||
            libyajl-dev:mipsel \
 | 
			
		||||
            systemtap-sdt-dev:mipsel && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips'\n\
 | 
			
		||||
cpu = 'mipsel'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/mipsel-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/mipsel-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mipsel-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
 | 
			
		||||
@@ -1,124 +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 \
 | 
			
		||||
            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 ppc64el && \
 | 
			
		||||
    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-powerpc64le-linux-gnu \
 | 
			
		||||
            libacl1-dev:ppc64el \
 | 
			
		||||
            libapparmor-dev:ppc64el \
 | 
			
		||||
            libattr1-dev:ppc64el \
 | 
			
		||||
            libaudit-dev:ppc64el \
 | 
			
		||||
            libblkid-dev:ppc64el \
 | 
			
		||||
            libc6-dev:ppc64el \
 | 
			
		||||
            libcap-ng-dev:ppc64el \
 | 
			
		||||
            libcurl4-gnutls-dev:ppc64el \
 | 
			
		||||
            libdevmapper-dev:ppc64el \
 | 
			
		||||
            libfuse-dev:ppc64el \
 | 
			
		||||
            libglib2.0-dev:ppc64el \
 | 
			
		||||
            libglusterfs-dev:ppc64el \
 | 
			
		||||
            libgnutls28-dev:ppc64el \
 | 
			
		||||
            libiscsi-dev:ppc64el \
 | 
			
		||||
            libnl-3-dev:ppc64el \
 | 
			
		||||
            libnl-route-3-dev:ppc64el \
 | 
			
		||||
            libnuma-dev:ppc64el \
 | 
			
		||||
            libparted-dev:ppc64el \
 | 
			
		||||
            libpcap0.8-dev:ppc64el \
 | 
			
		||||
            libpciaccess-dev:ppc64el \
 | 
			
		||||
            librbd-dev:ppc64el \
 | 
			
		||||
            libreadline-dev:ppc64el \
 | 
			
		||||
            libsanlock-dev:ppc64el \
 | 
			
		||||
            libsasl2-dev:ppc64el \
 | 
			
		||||
            libselinux1-dev:ppc64el \
 | 
			
		||||
            libssh-gcrypt-dev:ppc64el \
 | 
			
		||||
            libssh2-1-dev:ppc64el \
 | 
			
		||||
            libtirpc-dev:ppc64el \
 | 
			
		||||
            libudev-dev:ppc64el \
 | 
			
		||||
            libxml2-dev:ppc64el \
 | 
			
		||||
            libyajl-dev:ppc64el \
 | 
			
		||||
            systemtap-sdt-dev:ppc64el && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'ppc64'\n\
 | 
			
		||||
cpu = 'powerpc64le'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-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/powerpc64le-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "powerpc64le-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
 | 
			
		||||
@@ -1,124 +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 \
 | 
			
		||||
            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 s390x && \
 | 
			
		||||
    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-s390x-linux-gnu \
 | 
			
		||||
            libacl1-dev:s390x \
 | 
			
		||||
            libapparmor-dev:s390x \
 | 
			
		||||
            libattr1-dev:s390x \
 | 
			
		||||
            libaudit-dev:s390x \
 | 
			
		||||
            libblkid-dev:s390x \
 | 
			
		||||
            libc6-dev:s390x \
 | 
			
		||||
            libcap-ng-dev:s390x \
 | 
			
		||||
            libcurl4-gnutls-dev:s390x \
 | 
			
		||||
            libdevmapper-dev:s390x \
 | 
			
		||||
            libfuse-dev:s390x \
 | 
			
		||||
            libglib2.0-dev:s390x \
 | 
			
		||||
            libglusterfs-dev:s390x \
 | 
			
		||||
            libgnutls28-dev:s390x \
 | 
			
		||||
            libiscsi-dev:s390x \
 | 
			
		||||
            libnl-3-dev:s390x \
 | 
			
		||||
            libnl-route-3-dev:s390x \
 | 
			
		||||
            libnuma-dev:s390x \
 | 
			
		||||
            libparted-dev:s390x \
 | 
			
		||||
            libpcap0.8-dev:s390x \
 | 
			
		||||
            libpciaccess-dev:s390x \
 | 
			
		||||
            librbd-dev:s390x \
 | 
			
		||||
            libreadline-dev:s390x \
 | 
			
		||||
            libsanlock-dev:s390x \
 | 
			
		||||
            libsasl2-dev:s390x \
 | 
			
		||||
            libselinux1-dev:s390x \
 | 
			
		||||
            libssh-gcrypt-dev:s390x \
 | 
			
		||||
            libssh2-1-dev:s390x \
 | 
			
		||||
            libtirpc-dev:s390x \
 | 
			
		||||
            libudev-dev:s390x \
 | 
			
		||||
            libxml2-dev:s390x \
 | 
			
		||||
            libyajl-dev:s390x \
 | 
			
		||||
            systemtap-sdt-dev:s390x && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/s390x-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/s390x-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 's390x'\n\
 | 
			
		||||
cpu = 's390x'\n\
 | 
			
		||||
endian = 'big'" > /usr/local/share/meson/cross/s390x-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/s390x-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "s390x-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
 | 
			
		||||
@@ -1,105 +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 \
 | 
			
		||||
            clang \
 | 
			
		||||
            codespell \
 | 
			
		||||
            cpp \
 | 
			
		||||
            diffutils \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gcc \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libacl1-dev \
 | 
			
		||||
            libapparmor-dev \
 | 
			
		||||
            libattr1-dev \
 | 
			
		||||
            libaudit-dev \
 | 
			
		||||
            libblkid-dev \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libc6-dev \
 | 
			
		||||
            libcap-ng-dev \
 | 
			
		||||
            libcurl4-gnutls-dev \
 | 
			
		||||
            libdevmapper-dev \
 | 
			
		||||
            libfuse-dev \
 | 
			
		||||
            libglib2.0-dev \
 | 
			
		||||
            libglusterfs-dev \
 | 
			
		||||
            libgnutls28-dev \
 | 
			
		||||
            libiscsi-dev \
 | 
			
		||||
            libnetcf-dev \
 | 
			
		||||
            libnl-3-dev \
 | 
			
		||||
            libnl-route-3-dev \
 | 
			
		||||
            libnuma-dev \
 | 
			
		||||
            libparted-dev \
 | 
			
		||||
            libpcap0.8-dev \
 | 
			
		||||
            libpciaccess-dev \
 | 
			
		||||
            librbd-dev \
 | 
			
		||||
            libreadline-dev \
 | 
			
		||||
            libsanlock-dev \
 | 
			
		||||
            libsasl2-dev \
 | 
			
		||||
            libselinux1-dev \
 | 
			
		||||
            libssh-gcrypt-dev \
 | 
			
		||||
            libssh2-1-dev \
 | 
			
		||||
            libtirpc-dev \
 | 
			
		||||
            libudev-dev \
 | 
			
		||||
            libxen-dev \
 | 
			
		||||
            libxml2-dev \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            libyajl-dev \
 | 
			
		||||
            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 \
 | 
			
		||||
            systemtap-sdt-dev \
 | 
			
		||||
            wireshark-dev \
 | 
			
		||||
            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 && \
 | 
			
		||||
    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/cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
@@ -1,121 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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,121 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 armhf && \
 | 
			
		||||
    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-gnueabihf \
 | 
			
		||||
            libacl1-dev:armhf \
 | 
			
		||||
            libapparmor-dev:armhf \
 | 
			
		||||
            libattr1-dev:armhf \
 | 
			
		||||
            libaudit-dev:armhf \
 | 
			
		||||
            libblkid-dev:armhf \
 | 
			
		||||
            libc6-dev:armhf \
 | 
			
		||||
            libcap-ng-dev:armhf \
 | 
			
		||||
            libcurl4-gnutls-dev:armhf \
 | 
			
		||||
            libdevmapper-dev:armhf \
 | 
			
		||||
            libfuse-dev:armhf \
 | 
			
		||||
            libglib2.0-dev:armhf \
 | 
			
		||||
            libglusterfs-dev:armhf \
 | 
			
		||||
            libgnutls28-dev:armhf \
 | 
			
		||||
            libiscsi-dev:armhf \
 | 
			
		||||
            libnl-3-dev:armhf \
 | 
			
		||||
            libnl-route-3-dev:armhf \
 | 
			
		||||
            libnuma-dev:armhf \
 | 
			
		||||
            libparted-dev:armhf \
 | 
			
		||||
            libpcap0.8-dev:armhf \
 | 
			
		||||
            libpciaccess-dev:armhf \
 | 
			
		||||
            librbd-dev:armhf \
 | 
			
		||||
            libreadline-dev:armhf \
 | 
			
		||||
            libsanlock-dev:armhf \
 | 
			
		||||
            libsasl2-dev:armhf \
 | 
			
		||||
            libselinux1-dev:armhf \
 | 
			
		||||
            libssh-gcrypt-dev:armhf \
 | 
			
		||||
            libssh2-1-dev:armhf \
 | 
			
		||||
            libtirpc-dev:armhf \
 | 
			
		||||
            libudev-dev:armhf \
 | 
			
		||||
            libxen-dev:armhf \
 | 
			
		||||
            libxml2-dev:armhf \
 | 
			
		||||
            libyajl-dev:armhf \
 | 
			
		||||
            systemtap-sdt-dev:armhf && \
 | 
			
		||||
    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-gnueabihf-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'arm'\n\
 | 
			
		||||
cpu = 'armhf'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
 | 
			
		||||
    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-gnueabihf-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "arm-linux-gnueabihf"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 i386 && \
 | 
			
		||||
    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-i686-linux-gnu \
 | 
			
		||||
            libacl1-dev:i386 \
 | 
			
		||||
            libapparmor-dev:i386 \
 | 
			
		||||
            libattr1-dev:i386 \
 | 
			
		||||
            libaudit-dev:i386 \
 | 
			
		||||
            libblkid-dev:i386 \
 | 
			
		||||
            libc6-dev:i386 \
 | 
			
		||||
            libcap-ng-dev:i386 \
 | 
			
		||||
            libcurl4-gnutls-dev:i386 \
 | 
			
		||||
            libdevmapper-dev:i386 \
 | 
			
		||||
            libfuse-dev:i386 \
 | 
			
		||||
            libglib2.0-dev:i386 \
 | 
			
		||||
            libglusterfs-dev:i386 \
 | 
			
		||||
            libgnutls28-dev:i386 \
 | 
			
		||||
            libiscsi-dev:i386 \
 | 
			
		||||
            libnl-3-dev:i386 \
 | 
			
		||||
            libnl-route-3-dev:i386 \
 | 
			
		||||
            libnuma-dev:i386 \
 | 
			
		||||
            libparted-dev:i386 \
 | 
			
		||||
            libpcap0.8-dev:i386 \
 | 
			
		||||
            libpciaccess-dev:i386 \
 | 
			
		||||
            librbd-dev:i386 \
 | 
			
		||||
            libreadline-dev:i386 \
 | 
			
		||||
            libsanlock-dev:i386 \
 | 
			
		||||
            libsasl2-dev:i386 \
 | 
			
		||||
            libselinux1-dev:i386 \
 | 
			
		||||
            libssh-gcrypt-dev:i386 \
 | 
			
		||||
            libssh2-1-dev:i386 \
 | 
			
		||||
            libtirpc-dev:i386 \
 | 
			
		||||
            libudev-dev:i386 \
 | 
			
		||||
            libxml2-dev:i386 \
 | 
			
		||||
            libyajl-dev:i386 \
 | 
			
		||||
            systemtap-sdt-dev:i386 && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/i686-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/i686-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'x86'\n\
 | 
			
		||||
cpu = 'i686'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/i686-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/i686-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "i686-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 mips64el && \
 | 
			
		||||
    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-mips64el-linux-gnuabi64 \
 | 
			
		||||
            libacl1-dev:mips64el \
 | 
			
		||||
            libapparmor-dev:mips64el \
 | 
			
		||||
            libattr1-dev:mips64el \
 | 
			
		||||
            libaudit-dev:mips64el \
 | 
			
		||||
            libblkid-dev:mips64el \
 | 
			
		||||
            libc6-dev:mips64el \
 | 
			
		||||
            libcap-ng-dev:mips64el \
 | 
			
		||||
            libcurl4-gnutls-dev:mips64el \
 | 
			
		||||
            libdevmapper-dev:mips64el \
 | 
			
		||||
            libfuse-dev:mips64el \
 | 
			
		||||
            libglib2.0-dev:mips64el \
 | 
			
		||||
            libglusterfs-dev:mips64el \
 | 
			
		||||
            libgnutls28-dev:mips64el \
 | 
			
		||||
            libiscsi-dev:mips64el \
 | 
			
		||||
            libnl-3-dev:mips64el \
 | 
			
		||||
            libnl-route-3-dev:mips64el \
 | 
			
		||||
            libnuma-dev:mips64el \
 | 
			
		||||
            libparted-dev:mips64el \
 | 
			
		||||
            libpcap0.8-dev:mips64el \
 | 
			
		||||
            libpciaccess-dev:mips64el \
 | 
			
		||||
            librbd-dev:mips64el \
 | 
			
		||||
            libreadline-dev:mips64el \
 | 
			
		||||
            libsanlock-dev:mips64el \
 | 
			
		||||
            libsasl2-dev:mips64el \
 | 
			
		||||
            libselinux1-dev:mips64el \
 | 
			
		||||
            libssh-gcrypt-dev:mips64el \
 | 
			
		||||
            libssh2-1-dev:mips64el \
 | 
			
		||||
            libtirpc-dev:mips64el \
 | 
			
		||||
            libudev-dev:mips64el \
 | 
			
		||||
            libxml2-dev:mips64el \
 | 
			
		||||
            libyajl-dev:mips64el \
 | 
			
		||||
            systemtap-sdt-dev:mips64el && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips64'\n\
 | 
			
		||||
cpu = 'mips64el'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
 | 
			
		||||
    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/mips64el-linux-gnuabi64-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mips64el-linux-gnuabi64"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 mipsel && \
 | 
			
		||||
    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-mipsel-linux-gnu \
 | 
			
		||||
            libacl1-dev:mipsel \
 | 
			
		||||
            libapparmor-dev:mipsel \
 | 
			
		||||
            libattr1-dev:mipsel \
 | 
			
		||||
            libaudit-dev:mipsel \
 | 
			
		||||
            libblkid-dev:mipsel \
 | 
			
		||||
            libc6-dev:mipsel \
 | 
			
		||||
            libcap-ng-dev:mipsel \
 | 
			
		||||
            libcurl4-gnutls-dev:mipsel \
 | 
			
		||||
            libdevmapper-dev:mipsel \
 | 
			
		||||
            libfuse-dev:mipsel \
 | 
			
		||||
            libglib2.0-dev:mipsel \
 | 
			
		||||
            libglusterfs-dev:mipsel \
 | 
			
		||||
            libgnutls28-dev:mipsel \
 | 
			
		||||
            libiscsi-dev:mipsel \
 | 
			
		||||
            libnl-3-dev:mipsel \
 | 
			
		||||
            libnl-route-3-dev:mipsel \
 | 
			
		||||
            libnuma-dev:mipsel \
 | 
			
		||||
            libparted-dev:mipsel \
 | 
			
		||||
            libpcap0.8-dev:mipsel \
 | 
			
		||||
            libpciaccess-dev:mipsel \
 | 
			
		||||
            librbd-dev:mipsel \
 | 
			
		||||
            libreadline-dev:mipsel \
 | 
			
		||||
            libsanlock-dev:mipsel \
 | 
			
		||||
            libsasl2-dev:mipsel \
 | 
			
		||||
            libselinux1-dev:mipsel \
 | 
			
		||||
            libssh-gcrypt-dev:mipsel \
 | 
			
		||||
            libssh2-1-dev:mipsel \
 | 
			
		||||
            libtirpc-dev:mipsel \
 | 
			
		||||
            libudev-dev:mipsel \
 | 
			
		||||
            libxml2-dev:mipsel \
 | 
			
		||||
            libyajl-dev:mipsel \
 | 
			
		||||
            systemtap-sdt-dev:mipsel && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips'\n\
 | 
			
		||||
cpu = 'mipsel'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/mipsel-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/mipsel-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mipsel-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 ppc64el && \
 | 
			
		||||
    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-powerpc64le-linux-gnu \
 | 
			
		||||
            libacl1-dev:ppc64el \
 | 
			
		||||
            libapparmor-dev:ppc64el \
 | 
			
		||||
            libattr1-dev:ppc64el \
 | 
			
		||||
            libaudit-dev:ppc64el \
 | 
			
		||||
            libblkid-dev:ppc64el \
 | 
			
		||||
            libc6-dev:ppc64el \
 | 
			
		||||
            libcap-ng-dev:ppc64el \
 | 
			
		||||
            libcurl4-gnutls-dev:ppc64el \
 | 
			
		||||
            libdevmapper-dev:ppc64el \
 | 
			
		||||
            libfuse-dev:ppc64el \
 | 
			
		||||
            libglib2.0-dev:ppc64el \
 | 
			
		||||
            libglusterfs-dev:ppc64el \
 | 
			
		||||
            libgnutls28-dev:ppc64el \
 | 
			
		||||
            libiscsi-dev:ppc64el \
 | 
			
		||||
            libnl-3-dev:ppc64el \
 | 
			
		||||
            libnl-route-3-dev:ppc64el \
 | 
			
		||||
            libnuma-dev:ppc64el \
 | 
			
		||||
            libparted-dev:ppc64el \
 | 
			
		||||
            libpcap0.8-dev:ppc64el \
 | 
			
		||||
            libpciaccess-dev:ppc64el \
 | 
			
		||||
            librbd-dev:ppc64el \
 | 
			
		||||
            libreadline-dev:ppc64el \
 | 
			
		||||
            libsanlock-dev:ppc64el \
 | 
			
		||||
            libsasl2-dev:ppc64el \
 | 
			
		||||
            libselinux1-dev:ppc64el \
 | 
			
		||||
            libssh-gcrypt-dev:ppc64el \
 | 
			
		||||
            libssh2-1-dev:ppc64el \
 | 
			
		||||
            libtirpc-dev:ppc64el \
 | 
			
		||||
            libudev-dev:ppc64el \
 | 
			
		||||
            libxml2-dev:ppc64el \
 | 
			
		||||
            libyajl-dev:ppc64el \
 | 
			
		||||
            systemtap-sdt-dev:ppc64el && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'ppc64'\n\
 | 
			
		||||
cpu = 'powerpc64le'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-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/powerpc64le-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "powerpc64le-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 s390x && \
 | 
			
		||||
    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-s390x-linux-gnu \
 | 
			
		||||
            libacl1-dev:s390x \
 | 
			
		||||
            libapparmor-dev:s390x \
 | 
			
		||||
            libattr1-dev:s390x \
 | 
			
		||||
            libaudit-dev:s390x \
 | 
			
		||||
            libblkid-dev:s390x \
 | 
			
		||||
            libc6-dev:s390x \
 | 
			
		||||
            libcap-ng-dev:s390x \
 | 
			
		||||
            libcurl4-gnutls-dev:s390x \
 | 
			
		||||
            libdevmapper-dev:s390x \
 | 
			
		||||
            libfuse-dev:s390x \
 | 
			
		||||
            libglib2.0-dev:s390x \
 | 
			
		||||
            libglusterfs-dev:s390x \
 | 
			
		||||
            libgnutls28-dev:s390x \
 | 
			
		||||
            libiscsi-dev:s390x \
 | 
			
		||||
            libnl-3-dev:s390x \
 | 
			
		||||
            libnl-route-3-dev:s390x \
 | 
			
		||||
            libnuma-dev:s390x \
 | 
			
		||||
            libparted-dev:s390x \
 | 
			
		||||
            libpcap0.8-dev:s390x \
 | 
			
		||||
            libpciaccess-dev:s390x \
 | 
			
		||||
            librbd-dev:s390x \
 | 
			
		||||
            libreadline-dev:s390x \
 | 
			
		||||
            libsanlock-dev:s390x \
 | 
			
		||||
            libsasl2-dev:s390x \
 | 
			
		||||
            libselinux1-dev:s390x \
 | 
			
		||||
            libssh-gcrypt-dev:s390x \
 | 
			
		||||
            libssh2-1-dev:s390x \
 | 
			
		||||
            libtirpc-dev:s390x \
 | 
			
		||||
            libudev-dev:s390x \
 | 
			
		||||
            libxml2-dev:s390x \
 | 
			
		||||
            libyajl-dev:s390x \
 | 
			
		||||
            systemtap-sdt-dev:s390x && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/s390x-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/s390x-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 's390x'\n\
 | 
			
		||||
cpu = 's390x'\n\
 | 
			
		||||
endian = 'big'" > /usr/local/share/meson/cross/s390x-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/s390x-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "s390x-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
 | 
			
		||||
@@ -1,101 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:11-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 \
 | 
			
		||||
            clang \
 | 
			
		||||
            codespell \
 | 
			
		||||
            cpp \
 | 
			
		||||
            diffutils \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gcc \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libacl1-dev \
 | 
			
		||||
            libapparmor-dev \
 | 
			
		||||
            libattr1-dev \
 | 
			
		||||
            libaudit-dev \
 | 
			
		||||
            libblkid-dev \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libc6-dev \
 | 
			
		||||
            libcap-ng-dev \
 | 
			
		||||
            libcurl4-gnutls-dev \
 | 
			
		||||
            libdevmapper-dev \
 | 
			
		||||
            libfuse-dev \
 | 
			
		||||
            libglib2.0-dev \
 | 
			
		||||
            libglusterfs-dev \
 | 
			
		||||
            libgnutls28-dev \
 | 
			
		||||
            libiscsi-dev \
 | 
			
		||||
            libnetcf-dev \
 | 
			
		||||
            libnl-3-dev \
 | 
			
		||||
            libnl-route-3-dev \
 | 
			
		||||
            libnuma-dev \
 | 
			
		||||
            libparted-dev \
 | 
			
		||||
            libpcap0.8-dev \
 | 
			
		||||
            libpciaccess-dev \
 | 
			
		||||
            librbd-dev \
 | 
			
		||||
            libreadline-dev \
 | 
			
		||||
            libsanlock-dev \
 | 
			
		||||
            libsasl2-dev \
 | 
			
		||||
            libselinux1-dev \
 | 
			
		||||
            libssh-gcrypt-dev \
 | 
			
		||||
            libssh2-1-dev \
 | 
			
		||||
            libtirpc-dev \
 | 
			
		||||
            libudev-dev \
 | 
			
		||||
            libxen-dev \
 | 
			
		||||
            libxml2-dev \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            libyajl-dev \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            qemu-utils \
 | 
			
		||||
            scrub \
 | 
			
		||||
            sed \
 | 
			
		||||
            systemtap-sdt-dev \
 | 
			
		||||
            wireshark-dev \
 | 
			
		||||
            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 && \
 | 
			
		||||
    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/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,121 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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,121 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 armhf && \
 | 
			
		||||
    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-gnueabihf \
 | 
			
		||||
            libacl1-dev:armhf \
 | 
			
		||||
            libapparmor-dev:armhf \
 | 
			
		||||
            libattr1-dev:armhf \
 | 
			
		||||
            libaudit-dev:armhf \
 | 
			
		||||
            libblkid-dev:armhf \
 | 
			
		||||
            libc6-dev:armhf \
 | 
			
		||||
            libcap-ng-dev:armhf \
 | 
			
		||||
            libcurl4-gnutls-dev:armhf \
 | 
			
		||||
            libdevmapper-dev:armhf \
 | 
			
		||||
            libfuse-dev:armhf \
 | 
			
		||||
            libglib2.0-dev:armhf \
 | 
			
		||||
            libglusterfs-dev:armhf \
 | 
			
		||||
            libgnutls28-dev:armhf \
 | 
			
		||||
            libiscsi-dev:armhf \
 | 
			
		||||
            libnl-3-dev:armhf \
 | 
			
		||||
            libnl-route-3-dev:armhf \
 | 
			
		||||
            libnuma-dev:armhf \
 | 
			
		||||
            libparted-dev:armhf \
 | 
			
		||||
            libpcap0.8-dev:armhf \
 | 
			
		||||
            libpciaccess-dev:armhf \
 | 
			
		||||
            librbd-dev:armhf \
 | 
			
		||||
            libreadline-dev:armhf \
 | 
			
		||||
            libsanlock-dev:armhf \
 | 
			
		||||
            libsasl2-dev:armhf \
 | 
			
		||||
            libselinux1-dev:armhf \
 | 
			
		||||
            libssh-gcrypt-dev:armhf \
 | 
			
		||||
            libssh2-1-dev:armhf \
 | 
			
		||||
            libtirpc-dev:armhf \
 | 
			
		||||
            libudev-dev:armhf \
 | 
			
		||||
            libxen-dev:armhf \
 | 
			
		||||
            libxml2-dev:armhf \
 | 
			
		||||
            libyajl-dev:armhf \
 | 
			
		||||
            systemtap-sdt-dev:armhf && \
 | 
			
		||||
    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-gnueabihf-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'arm'\n\
 | 
			
		||||
cpu = 'armhf'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
 | 
			
		||||
    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-gnueabihf-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "arm-linux-gnueabihf"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 i386 && \
 | 
			
		||||
    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-i686-linux-gnu \
 | 
			
		||||
            libacl1-dev:i386 \
 | 
			
		||||
            libapparmor-dev:i386 \
 | 
			
		||||
            libattr1-dev:i386 \
 | 
			
		||||
            libaudit-dev:i386 \
 | 
			
		||||
            libblkid-dev:i386 \
 | 
			
		||||
            libc6-dev:i386 \
 | 
			
		||||
            libcap-ng-dev:i386 \
 | 
			
		||||
            libcurl4-gnutls-dev:i386 \
 | 
			
		||||
            libdevmapper-dev:i386 \
 | 
			
		||||
            libfuse-dev:i386 \
 | 
			
		||||
            libglib2.0-dev:i386 \
 | 
			
		||||
            libglusterfs-dev:i386 \
 | 
			
		||||
            libgnutls28-dev:i386 \
 | 
			
		||||
            libiscsi-dev:i386 \
 | 
			
		||||
            libnl-3-dev:i386 \
 | 
			
		||||
            libnl-route-3-dev:i386 \
 | 
			
		||||
            libnuma-dev:i386 \
 | 
			
		||||
            libparted-dev:i386 \
 | 
			
		||||
            libpcap0.8-dev:i386 \
 | 
			
		||||
            libpciaccess-dev:i386 \
 | 
			
		||||
            librbd-dev:i386 \
 | 
			
		||||
            libreadline-dev:i386 \
 | 
			
		||||
            libsanlock-dev:i386 \
 | 
			
		||||
            libsasl2-dev:i386 \
 | 
			
		||||
            libselinux1-dev:i386 \
 | 
			
		||||
            libssh-gcrypt-dev:i386 \
 | 
			
		||||
            libssh2-1-dev:i386 \
 | 
			
		||||
            libtirpc-dev:i386 \
 | 
			
		||||
            libudev-dev:i386 \
 | 
			
		||||
            libxml2-dev:i386 \
 | 
			
		||||
            libyajl-dev:i386 \
 | 
			
		||||
            systemtap-sdt-dev:i386 && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/i686-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/i686-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'x86'\n\
 | 
			
		||||
cpu = 'i686'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/i686-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/i686-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "i686-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 mips64el && \
 | 
			
		||||
    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-mips64el-linux-gnuabi64 \
 | 
			
		||||
            libacl1-dev:mips64el \
 | 
			
		||||
            libapparmor-dev:mips64el \
 | 
			
		||||
            libattr1-dev:mips64el \
 | 
			
		||||
            libaudit-dev:mips64el \
 | 
			
		||||
            libblkid-dev:mips64el \
 | 
			
		||||
            libc6-dev:mips64el \
 | 
			
		||||
            libcap-ng-dev:mips64el \
 | 
			
		||||
            libcurl4-gnutls-dev:mips64el \
 | 
			
		||||
            libdevmapper-dev:mips64el \
 | 
			
		||||
            libfuse-dev:mips64el \
 | 
			
		||||
            libglib2.0-dev:mips64el \
 | 
			
		||||
            libglusterfs-dev:mips64el \
 | 
			
		||||
            libgnutls28-dev:mips64el \
 | 
			
		||||
            libiscsi-dev:mips64el \
 | 
			
		||||
            libnl-3-dev:mips64el \
 | 
			
		||||
            libnl-route-3-dev:mips64el \
 | 
			
		||||
            libnuma-dev:mips64el \
 | 
			
		||||
            libparted-dev:mips64el \
 | 
			
		||||
            libpcap0.8-dev:mips64el \
 | 
			
		||||
            libpciaccess-dev:mips64el \
 | 
			
		||||
            librbd-dev:mips64el \
 | 
			
		||||
            libreadline-dev:mips64el \
 | 
			
		||||
            libsanlock-dev:mips64el \
 | 
			
		||||
            libsasl2-dev:mips64el \
 | 
			
		||||
            libselinux1-dev:mips64el \
 | 
			
		||||
            libssh-gcrypt-dev:mips64el \
 | 
			
		||||
            libssh2-1-dev:mips64el \
 | 
			
		||||
            libtirpc-dev:mips64el \
 | 
			
		||||
            libudev-dev:mips64el \
 | 
			
		||||
            libxml2-dev:mips64el \
 | 
			
		||||
            libyajl-dev:mips64el \
 | 
			
		||||
            systemtap-sdt-dev:mips64el && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips64'\n\
 | 
			
		||||
cpu = 'mips64el'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
 | 
			
		||||
    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/mips64el-linux-gnuabi64-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mips64el-linux-gnuabi64"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 mipsel && \
 | 
			
		||||
    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-mipsel-linux-gnu \
 | 
			
		||||
            libacl1-dev:mipsel \
 | 
			
		||||
            libapparmor-dev:mipsel \
 | 
			
		||||
            libattr1-dev:mipsel \
 | 
			
		||||
            libaudit-dev:mipsel \
 | 
			
		||||
            libblkid-dev:mipsel \
 | 
			
		||||
            libc6-dev:mipsel \
 | 
			
		||||
            libcap-ng-dev:mipsel \
 | 
			
		||||
            libcurl4-gnutls-dev:mipsel \
 | 
			
		||||
            libdevmapper-dev:mipsel \
 | 
			
		||||
            libfuse-dev:mipsel \
 | 
			
		||||
            libglib2.0-dev:mipsel \
 | 
			
		||||
            libglusterfs-dev:mipsel \
 | 
			
		||||
            libgnutls28-dev:mipsel \
 | 
			
		||||
            libiscsi-dev:mipsel \
 | 
			
		||||
            libnl-3-dev:mipsel \
 | 
			
		||||
            libnl-route-3-dev:mipsel \
 | 
			
		||||
            libnuma-dev:mipsel \
 | 
			
		||||
            libparted-dev:mipsel \
 | 
			
		||||
            libpcap0.8-dev:mipsel \
 | 
			
		||||
            libpciaccess-dev:mipsel \
 | 
			
		||||
            librbd-dev:mipsel \
 | 
			
		||||
            libreadline-dev:mipsel \
 | 
			
		||||
            libsanlock-dev:mipsel \
 | 
			
		||||
            libsasl2-dev:mipsel \
 | 
			
		||||
            libselinux1-dev:mipsel \
 | 
			
		||||
            libssh-gcrypt-dev:mipsel \
 | 
			
		||||
            libssh2-1-dev:mipsel \
 | 
			
		||||
            libtirpc-dev:mipsel \
 | 
			
		||||
            libudev-dev:mipsel \
 | 
			
		||||
            libxml2-dev:mipsel \
 | 
			
		||||
            libyajl-dev:mipsel \
 | 
			
		||||
            systemtap-sdt-dev:mipsel && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'mips'\n\
 | 
			
		||||
cpu = 'mipsel'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/mipsel-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/mipsel-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "mipsel-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 ppc64el && \
 | 
			
		||||
    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-powerpc64le-linux-gnu \
 | 
			
		||||
            libacl1-dev:ppc64el \
 | 
			
		||||
            libapparmor-dev:ppc64el \
 | 
			
		||||
            libattr1-dev:ppc64el \
 | 
			
		||||
            libaudit-dev:ppc64el \
 | 
			
		||||
            libblkid-dev:ppc64el \
 | 
			
		||||
            libc6-dev:ppc64el \
 | 
			
		||||
            libcap-ng-dev:ppc64el \
 | 
			
		||||
            libcurl4-gnutls-dev:ppc64el \
 | 
			
		||||
            libdevmapper-dev:ppc64el \
 | 
			
		||||
            libfuse-dev:ppc64el \
 | 
			
		||||
            libglib2.0-dev:ppc64el \
 | 
			
		||||
            libglusterfs-dev:ppc64el \
 | 
			
		||||
            libgnutls28-dev:ppc64el \
 | 
			
		||||
            libiscsi-dev:ppc64el \
 | 
			
		||||
            libnl-3-dev:ppc64el \
 | 
			
		||||
            libnl-route-3-dev:ppc64el \
 | 
			
		||||
            libnuma-dev:ppc64el \
 | 
			
		||||
            libparted-dev:ppc64el \
 | 
			
		||||
            libpcap0.8-dev:ppc64el \
 | 
			
		||||
            libpciaccess-dev:ppc64el \
 | 
			
		||||
            librbd-dev:ppc64el \
 | 
			
		||||
            libreadline-dev:ppc64el \
 | 
			
		||||
            libsanlock-dev:ppc64el \
 | 
			
		||||
            libsasl2-dev:ppc64el \
 | 
			
		||||
            libselinux1-dev:ppc64el \
 | 
			
		||||
            libssh-gcrypt-dev:ppc64el \
 | 
			
		||||
            libssh2-1-dev:ppc64el \
 | 
			
		||||
            libtirpc-dev:ppc64el \
 | 
			
		||||
            libudev-dev:ppc64el \
 | 
			
		||||
            libxml2-dev:ppc64el \
 | 
			
		||||
            libyajl-dev:ppc64el \
 | 
			
		||||
            systemtap-sdt-dev:ppc64el && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 'ppc64'\n\
 | 
			
		||||
cpu = 'powerpc64le'\n\
 | 
			
		||||
endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-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/powerpc64le-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "powerpc64le-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
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 s390x && \
 | 
			
		||||
    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-s390x-linux-gnu \
 | 
			
		||||
            libacl1-dev:s390x \
 | 
			
		||||
            libapparmor-dev:s390x \
 | 
			
		||||
            libattr1-dev:s390x \
 | 
			
		||||
            libaudit-dev:s390x \
 | 
			
		||||
            libblkid-dev:s390x \
 | 
			
		||||
            libc6-dev:s390x \
 | 
			
		||||
            libcap-ng-dev:s390x \
 | 
			
		||||
            libcurl4-gnutls-dev:s390x \
 | 
			
		||||
            libdevmapper-dev:s390x \
 | 
			
		||||
            libfuse-dev:s390x \
 | 
			
		||||
            libglib2.0-dev:s390x \
 | 
			
		||||
            libglusterfs-dev:s390x \
 | 
			
		||||
            libgnutls28-dev:s390x \
 | 
			
		||||
            libiscsi-dev:s390x \
 | 
			
		||||
            libnl-3-dev:s390x \
 | 
			
		||||
            libnl-route-3-dev:s390x \
 | 
			
		||||
            libnuma-dev:s390x \
 | 
			
		||||
            libparted-dev:s390x \
 | 
			
		||||
            libpcap0.8-dev:s390x \
 | 
			
		||||
            libpciaccess-dev:s390x \
 | 
			
		||||
            librbd-dev:s390x \
 | 
			
		||||
            libreadline-dev:s390x \
 | 
			
		||||
            libsanlock-dev:s390x \
 | 
			
		||||
            libsasl2-dev:s390x \
 | 
			
		||||
            libselinux1-dev:s390x \
 | 
			
		||||
            libssh-gcrypt-dev:s390x \
 | 
			
		||||
            libssh2-1-dev:s390x \
 | 
			
		||||
            libtirpc-dev:s390x \
 | 
			
		||||
            libudev-dev:s390x \
 | 
			
		||||
            libxml2-dev:s390x \
 | 
			
		||||
            libyajl-dev:s390x \
 | 
			
		||||
            systemtap-sdt-dev:s390x && \
 | 
			
		||||
    eatmydata apt-get autoremove -y && \
 | 
			
		||||
    eatmydata apt-get autoclean -y && \
 | 
			
		||||
    mkdir -p /usr/local/share/meson/cross && \
 | 
			
		||||
    echo "[binaries]\n\
 | 
			
		||||
c = '/usr/bin/s390x-linux-gnu-gcc'\n\
 | 
			
		||||
ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
 | 
			
		||||
strip = '/usr/bin/s390x-linux-gnu-strip'\n\
 | 
			
		||||
pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
 | 
			
		||||
\n\
 | 
			
		||||
[host_machine]\n\
 | 
			
		||||
system = 'linux'\n\
 | 
			
		||||
cpu_family = 's390x'\n\
 | 
			
		||||
cpu = 's390x'\n\
 | 
			
		||||
endian = 'big'" > /usr/local/share/meson/cross/s390x-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/s390x-linux-gnu-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "s390x-linux-gnu"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
 | 
			
		||||
@@ -1,100 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/debian:sid-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 \
 | 
			
		||||
            clang \
 | 
			
		||||
            codespell \
 | 
			
		||||
            cpp \
 | 
			
		||||
            diffutils \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gcc \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libacl1-dev \
 | 
			
		||||
            libapparmor-dev \
 | 
			
		||||
            libattr1-dev \
 | 
			
		||||
            libaudit-dev \
 | 
			
		||||
            libblkid-dev \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libc6-dev \
 | 
			
		||||
            libcap-ng-dev \
 | 
			
		||||
            libcurl4-gnutls-dev \
 | 
			
		||||
            libdevmapper-dev \
 | 
			
		||||
            libfuse-dev \
 | 
			
		||||
            libglib2.0-dev \
 | 
			
		||||
            libglusterfs-dev \
 | 
			
		||||
            libgnutls28-dev \
 | 
			
		||||
            libiscsi-dev \
 | 
			
		||||
            libnl-3-dev \
 | 
			
		||||
            libnl-route-3-dev \
 | 
			
		||||
            libnuma-dev \
 | 
			
		||||
            libparted-dev \
 | 
			
		||||
            libpcap0.8-dev \
 | 
			
		||||
            libpciaccess-dev \
 | 
			
		||||
            librbd-dev \
 | 
			
		||||
            libreadline-dev \
 | 
			
		||||
            libsanlock-dev \
 | 
			
		||||
            libsasl2-dev \
 | 
			
		||||
            libselinux1-dev \
 | 
			
		||||
            libssh-gcrypt-dev \
 | 
			
		||||
            libssh2-1-dev \
 | 
			
		||||
            libtirpc-dev \
 | 
			
		||||
            libudev-dev \
 | 
			
		||||
            libxen-dev \
 | 
			
		||||
            libxml2-dev \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            libyajl-dev \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            qemu-utils \
 | 
			
		||||
            scrub \
 | 
			
		||||
            sed \
 | 
			
		||||
            systemtap-sdt-dev \
 | 
			
		||||
            wireshark-dev \
 | 
			
		||||
            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 && \
 | 
			
		||||
    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/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,109 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:35
 | 
			
		||||
 | 
			
		||||
RUN dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf update -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        audit-libs-devel \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        clang \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        cyrus-sasl-devel \
 | 
			
		||||
        device-mapper-devel \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        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-base \
 | 
			
		||||
        pkgconfig \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        readline-devel \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        sanlock-devel \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog \
 | 
			
		||||
        systemd-devel \
 | 
			
		||||
        systemtap-sdt-devel \
 | 
			
		||||
        wireshark-devel \
 | 
			
		||||
        xen-devel \
 | 
			
		||||
        yajl-devel && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync 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,88 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:36
 | 
			
		||||
 | 
			
		||||
RUN dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf update -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        dwarves \
 | 
			
		||||
        ebtables \
 | 
			
		||||
        firewalld-filesystem \
 | 
			
		||||
        git \
 | 
			
		||||
        glibc-langpack-en \
 | 
			
		||||
        grep \
 | 
			
		||||
        iproute \
 | 
			
		||||
        iproute-tc \
 | 
			
		||||
        iptables \
 | 
			
		||||
        iscsi-initiator-utils \
 | 
			
		||||
        kmod \
 | 
			
		||||
        libxml2 \
 | 
			
		||||
        libxslt \
 | 
			
		||||
        lvm2 \
 | 
			
		||||
        make \
 | 
			
		||||
        meson \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
        numad \
 | 
			
		||||
        perl-base \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync dnf clean all -y
 | 
			
		||||
 | 
			
		||||
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 nosync dnf install -y \
 | 
			
		||||
        mingw32-curl \
 | 
			
		||||
        mingw32-dlfcn \
 | 
			
		||||
        mingw32-gcc \
 | 
			
		||||
        mingw32-gettext \
 | 
			
		||||
        mingw32-glib2 \
 | 
			
		||||
        mingw32-gnutls \
 | 
			
		||||
        mingw32-headers \
 | 
			
		||||
        mingw32-libssh2 \
 | 
			
		||||
        mingw32-libxml2 \
 | 
			
		||||
        mingw32-pkg-config \
 | 
			
		||||
        mingw32-portablexdr \
 | 
			
		||||
        mingw32-readline && \
 | 
			
		||||
    nosync dnf clean all -y && \
 | 
			
		||||
    rpm -qa | sort > /packages.txt && \
 | 
			
		||||
    mkdir -p /usr/libexec/ccache-wrappers && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "i686-w64-mingw32"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
 | 
			
		||||
@@ -1,88 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:36
 | 
			
		||||
 | 
			
		||||
RUN dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf update -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        dwarves \
 | 
			
		||||
        ebtables \
 | 
			
		||||
        firewalld-filesystem \
 | 
			
		||||
        git \
 | 
			
		||||
        glibc-langpack-en \
 | 
			
		||||
        grep \
 | 
			
		||||
        iproute \
 | 
			
		||||
        iproute-tc \
 | 
			
		||||
        iptables \
 | 
			
		||||
        iscsi-initiator-utils \
 | 
			
		||||
        kmod \
 | 
			
		||||
        libxml2 \
 | 
			
		||||
        libxslt \
 | 
			
		||||
        lvm2 \
 | 
			
		||||
        make \
 | 
			
		||||
        meson \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
        numad \
 | 
			
		||||
        perl-base \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync dnf clean all -y
 | 
			
		||||
 | 
			
		||||
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 nosync dnf install -y \
 | 
			
		||||
        mingw64-curl \
 | 
			
		||||
        mingw64-dlfcn \
 | 
			
		||||
        mingw64-gcc \
 | 
			
		||||
        mingw64-gettext \
 | 
			
		||||
        mingw64-glib2 \
 | 
			
		||||
        mingw64-gnutls \
 | 
			
		||||
        mingw64-headers \
 | 
			
		||||
        mingw64-libssh2 \
 | 
			
		||||
        mingw64-libxml2 \
 | 
			
		||||
        mingw64-pkg-config \
 | 
			
		||||
        mingw64-portablexdr \
 | 
			
		||||
        mingw64-readline && \
 | 
			
		||||
    nosync dnf clean all -y && \
 | 
			
		||||
    rpm -qa | sort > /packages.txt && \
 | 
			
		||||
    mkdir -p /usr/libexec/ccache-wrappers && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "x86_64-w64-mingw32"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
 | 
			
		||||
@@ -1,108 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:36
 | 
			
		||||
 | 
			
		||||
RUN dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf update -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        audit-libs-devel \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        clang \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        cyrus-sasl-devel \
 | 
			
		||||
        device-mapper-devel \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        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 \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
        numactl-devel \
 | 
			
		||||
        numad \
 | 
			
		||||
        parted-devel \
 | 
			
		||||
        perl-base \
 | 
			
		||||
        pkgconfig \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        readline-devel \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        sanlock-devel \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog \
 | 
			
		||||
        systemd-devel \
 | 
			
		||||
        systemtap-sdt-devel \
 | 
			
		||||
        wireshark-devel \
 | 
			
		||||
        xen-devel \
 | 
			
		||||
        yajl-devel && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync 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,89 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:rawhide
 | 
			
		||||
 | 
			
		||||
RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
 | 
			
		||||
    dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf distro-sync -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        dwarves \
 | 
			
		||||
        ebtables \
 | 
			
		||||
        firewalld-filesystem \
 | 
			
		||||
        git \
 | 
			
		||||
        glibc-langpack-en \
 | 
			
		||||
        grep \
 | 
			
		||||
        iproute \
 | 
			
		||||
        iproute-tc \
 | 
			
		||||
        iptables \
 | 
			
		||||
        iscsi-initiator-utils \
 | 
			
		||||
        kmod \
 | 
			
		||||
        libxml2 \
 | 
			
		||||
        libxslt \
 | 
			
		||||
        lvm2 \
 | 
			
		||||
        make \
 | 
			
		||||
        meson \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
        numad \
 | 
			
		||||
        perl-base \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync dnf clean all -y
 | 
			
		||||
 | 
			
		||||
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 nosync dnf install -y \
 | 
			
		||||
        mingw32-curl \
 | 
			
		||||
        mingw32-dlfcn \
 | 
			
		||||
        mingw32-gcc \
 | 
			
		||||
        mingw32-gettext \
 | 
			
		||||
        mingw32-glib2 \
 | 
			
		||||
        mingw32-gnutls \
 | 
			
		||||
        mingw32-headers \
 | 
			
		||||
        mingw32-libssh2 \
 | 
			
		||||
        mingw32-libxml2 \
 | 
			
		||||
        mingw32-pkg-config \
 | 
			
		||||
        mingw32-portablexdr \
 | 
			
		||||
        mingw32-readline && \
 | 
			
		||||
    nosync dnf clean all -y && \
 | 
			
		||||
    rpm -qa | sort > /packages.txt && \
 | 
			
		||||
    mkdir -p /usr/libexec/ccache-wrappers && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "i686-w64-mingw32"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
 | 
			
		||||
@@ -1,89 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:rawhide
 | 
			
		||||
 | 
			
		||||
RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
 | 
			
		||||
    dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf distro-sync -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        dwarves \
 | 
			
		||||
        ebtables \
 | 
			
		||||
        firewalld-filesystem \
 | 
			
		||||
        git \
 | 
			
		||||
        glibc-langpack-en \
 | 
			
		||||
        grep \
 | 
			
		||||
        iproute \
 | 
			
		||||
        iproute-tc \
 | 
			
		||||
        iptables \
 | 
			
		||||
        iscsi-initiator-utils \
 | 
			
		||||
        kmod \
 | 
			
		||||
        libxml2 \
 | 
			
		||||
        libxslt \
 | 
			
		||||
        lvm2 \
 | 
			
		||||
        make \
 | 
			
		||||
        meson \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
        numad \
 | 
			
		||||
        perl-base \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync dnf clean all -y
 | 
			
		||||
 | 
			
		||||
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 nosync dnf install -y \
 | 
			
		||||
        mingw64-curl \
 | 
			
		||||
        mingw64-dlfcn \
 | 
			
		||||
        mingw64-gcc \
 | 
			
		||||
        mingw64-gettext \
 | 
			
		||||
        mingw64-glib2 \
 | 
			
		||||
        mingw64-gnutls \
 | 
			
		||||
        mingw64-headers \
 | 
			
		||||
        mingw64-libssh2 \
 | 
			
		||||
        mingw64-libxml2 \
 | 
			
		||||
        mingw64-pkg-config \
 | 
			
		||||
        mingw64-portablexdr \
 | 
			
		||||
        mingw64-readline && \
 | 
			
		||||
    nosync dnf clean all -y && \
 | 
			
		||||
    rpm -qa | sort > /packages.txt && \
 | 
			
		||||
    mkdir -p /usr/libexec/ccache-wrappers && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
 | 
			
		||||
 | 
			
		||||
ENV ABI "x86_64-w64-mingw32"
 | 
			
		||||
ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
 | 
			
		||||
@@ -1,109 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.fedoraproject.org/fedora:rawhide
 | 
			
		||||
 | 
			
		||||
RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
 | 
			
		||||
    dnf install -y nosync && \
 | 
			
		||||
    echo -e '#!/bin/sh\n\
 | 
			
		||||
if test -d /usr/lib64\n\
 | 
			
		||||
then\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
 | 
			
		||||
else\n\
 | 
			
		||||
    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
 | 
			
		||||
fi\n\
 | 
			
		||||
exec "$@"' > /usr/bin/nosync && \
 | 
			
		||||
    chmod +x /usr/bin/nosync && \
 | 
			
		||||
    nosync dnf distro-sync -y && \
 | 
			
		||||
    nosync dnf install -y \
 | 
			
		||||
        audit-libs-devel \
 | 
			
		||||
        augeas \
 | 
			
		||||
        bash-completion \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        ccache \
 | 
			
		||||
        clang \
 | 
			
		||||
        codespell \
 | 
			
		||||
        cpp \
 | 
			
		||||
        cppi \
 | 
			
		||||
        cyrus-sasl-devel \
 | 
			
		||||
        device-mapper-devel \
 | 
			
		||||
        diffutils \
 | 
			
		||||
        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 \
 | 
			
		||||
        nfs-utils \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
        numactl-devel \
 | 
			
		||||
        numad \
 | 
			
		||||
        parted-devel \
 | 
			
		||||
        perl-base \
 | 
			
		||||
        pkgconfig \
 | 
			
		||||
        polkit \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-docutils \
 | 
			
		||||
        python3-flake8 \
 | 
			
		||||
        qemu-img \
 | 
			
		||||
        readline-devel \
 | 
			
		||||
        rpcgen \
 | 
			
		||||
        rpm-build \
 | 
			
		||||
        sanlock-devel \
 | 
			
		||||
        scrub \
 | 
			
		||||
        sed \
 | 
			
		||||
        sheepdog \
 | 
			
		||||
        systemd-devel \
 | 
			
		||||
        systemtap-sdt-devel \
 | 
			
		||||
        wireshark-devel \
 | 
			
		||||
        xen-devel \
 | 
			
		||||
        yajl-devel && \
 | 
			
		||||
    nosync dnf autoremove -y && \
 | 
			
		||||
    nosync 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 registry.opensuse.org/opensuse/leap:15.3
 | 
			
		||||
 | 
			
		||||
RUN zypper update -y && \
 | 
			
		||||
    zypper install -y \
 | 
			
		||||
           audit-devel \
 | 
			
		||||
           augeas \
 | 
			
		||||
           augeas-lenses \
 | 
			
		||||
           bash-completion \
 | 
			
		||||
           ca-certificates \
 | 
			
		||||
           ccache \
 | 
			
		||||
           clang \
 | 
			
		||||
           codespell \
 | 
			
		||||
           cpp \
 | 
			
		||||
           cppi \
 | 
			
		||||
           cyrus-sasl-devel \
 | 
			
		||||
           device-mapper-devel \
 | 
			
		||||
           diffutils \
 | 
			
		||||
           dwarves \
 | 
			
		||||
           ebtables \
 | 
			
		||||
           fuse-devel \
 | 
			
		||||
           gcc \
 | 
			
		||||
           gettext-runtime \
 | 
			
		||||
           git \
 | 
			
		||||
           glib2-devel \
 | 
			
		||||
           glibc-devel \
 | 
			
		||||
           glibc-locale \
 | 
			
		||||
           glusterfs-devel \
 | 
			
		||||
           grep \
 | 
			
		||||
           iproute2 \
 | 
			
		||||
           iptables \
 | 
			
		||||
           kmod \
 | 
			
		||||
           libacl-devel \
 | 
			
		||||
           libapparmor-devel \
 | 
			
		||||
           libattr-devel \
 | 
			
		||||
           libblkid-devel \
 | 
			
		||||
           libcap-ng-devel \
 | 
			
		||||
           libcurl-devel \
 | 
			
		||||
           libgnutls-devel \
 | 
			
		||||
           libiscsi-devel \
 | 
			
		||||
           libnl3-devel \
 | 
			
		||||
           libnuma-devel \
 | 
			
		||||
           libpcap-devel \
 | 
			
		||||
           libpciaccess-devel \
 | 
			
		||||
           librbd-devel \
 | 
			
		||||
           libselinux-devel \
 | 
			
		||||
           libssh-devel \
 | 
			
		||||
           libssh2-devel \
 | 
			
		||||
           libtirpc-devel \
 | 
			
		||||
           libudev-devel \
 | 
			
		||||
           libwsman-devel \
 | 
			
		||||
           libxml2 \
 | 
			
		||||
           libxml2-devel \
 | 
			
		||||
           libxslt \
 | 
			
		||||
           libyajl-devel \
 | 
			
		||||
           lvm2 \
 | 
			
		||||
           make \
 | 
			
		||||
           nfs-utils \
 | 
			
		||||
           ninja \
 | 
			
		||||
           numad \
 | 
			
		||||
           open-iscsi \
 | 
			
		||||
           parted-devel \
 | 
			
		||||
           perl-base \
 | 
			
		||||
           pkgconfig \
 | 
			
		||||
           polkit \
 | 
			
		||||
           python3-base \
 | 
			
		||||
           python3-docutils \
 | 
			
		||||
           python3-flake8 \
 | 
			
		||||
           python3-pip \
 | 
			
		||||
           python3-setuptools \
 | 
			
		||||
           python3-wheel \
 | 
			
		||||
           qemu-tools \
 | 
			
		||||
           readline-devel \
 | 
			
		||||
           rpcgen \
 | 
			
		||||
           rpm-build \
 | 
			
		||||
           sanlock-devel \
 | 
			
		||||
           scrub \
 | 
			
		||||
           sed \
 | 
			
		||||
           systemtap-sdt-devel \
 | 
			
		||||
           wireshark-devel \
 | 
			
		||||
           xen-devel && \
 | 
			
		||||
    zypper clean --all && \
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
@@ -1,96 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM registry.opensuse.org/opensuse/tumbleweed:latest
 | 
			
		||||
 | 
			
		||||
RUN zypper dist-upgrade -y && \
 | 
			
		||||
    zypper install -y \
 | 
			
		||||
           audit-devel \
 | 
			
		||||
           augeas \
 | 
			
		||||
           augeas-lenses \
 | 
			
		||||
           bash-completion \
 | 
			
		||||
           ca-certificates \
 | 
			
		||||
           ccache \
 | 
			
		||||
           clang \
 | 
			
		||||
           codespell \
 | 
			
		||||
           cpp \
 | 
			
		||||
           cppi \
 | 
			
		||||
           cyrus-sasl-devel \
 | 
			
		||||
           device-mapper-devel \
 | 
			
		||||
           diffutils \
 | 
			
		||||
           dwarves \
 | 
			
		||||
           ebtables \
 | 
			
		||||
           fuse-devel \
 | 
			
		||||
           gcc \
 | 
			
		||||
           gettext-runtime \
 | 
			
		||||
           git \
 | 
			
		||||
           glib2-devel \
 | 
			
		||||
           glibc-devel \
 | 
			
		||||
           glibc-locale \
 | 
			
		||||
           glusterfs-devel \
 | 
			
		||||
           grep \
 | 
			
		||||
           iproute2 \
 | 
			
		||||
           iptables \
 | 
			
		||||
           kmod \
 | 
			
		||||
           libacl-devel \
 | 
			
		||||
           libapparmor-devel \
 | 
			
		||||
           libattr-devel \
 | 
			
		||||
           libblkid-devel \
 | 
			
		||||
           libcap-ng-devel \
 | 
			
		||||
           libcurl-devel \
 | 
			
		||||
           libgnutls-devel \
 | 
			
		||||
           libiscsi-devel \
 | 
			
		||||
           libnl3-devel \
 | 
			
		||||
           libnuma-devel \
 | 
			
		||||
           libpcap-devel \
 | 
			
		||||
           libpciaccess-devel \
 | 
			
		||||
           librbd-devel \
 | 
			
		||||
           libselinux-devel \
 | 
			
		||||
           libssh-devel \
 | 
			
		||||
           libssh2-devel \
 | 
			
		||||
           libtirpc-devel \
 | 
			
		||||
           libudev-devel \
 | 
			
		||||
           libwsman-devel \
 | 
			
		||||
           libxml2 \
 | 
			
		||||
           libxml2-devel \
 | 
			
		||||
           libxslt \
 | 
			
		||||
           libyajl-devel \
 | 
			
		||||
           lvm2 \
 | 
			
		||||
           make \
 | 
			
		||||
           meson \
 | 
			
		||||
           nfs-utils \
 | 
			
		||||
           ninja \
 | 
			
		||||
           numad \
 | 
			
		||||
           open-iscsi \
 | 
			
		||||
           parted-devel \
 | 
			
		||||
           perl-base \
 | 
			
		||||
           pkgconfig \
 | 
			
		||||
           polkit \
 | 
			
		||||
           python3-base \
 | 
			
		||||
           python3-docutils \
 | 
			
		||||
           python3-flake8 \
 | 
			
		||||
           qemu-tools \
 | 
			
		||||
           readline-devel \
 | 
			
		||||
           rpcgen \
 | 
			
		||||
           rpm-build \
 | 
			
		||||
           sanlock-devel \
 | 
			
		||||
           scrub \
 | 
			
		||||
           sed \
 | 
			
		||||
           systemtap-sdt-devel \
 | 
			
		||||
           wireshark-devel \
 | 
			
		||||
           xen-devel && \
 | 
			
		||||
    zypper clean --all && \
 | 
			
		||||
    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,106 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/ubuntu:20.04
 | 
			
		||||
 | 
			
		||||
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 \
 | 
			
		||||
            clang \
 | 
			
		||||
            codespell \
 | 
			
		||||
            cpp \
 | 
			
		||||
            diffutils \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gcc \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libacl1-dev \
 | 
			
		||||
            libapparmor-dev \
 | 
			
		||||
            libattr1-dev \
 | 
			
		||||
            libaudit-dev \
 | 
			
		||||
            libblkid-dev \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libc6-dev \
 | 
			
		||||
            libcap-ng-dev \
 | 
			
		||||
            libcurl4-gnutls-dev \
 | 
			
		||||
            libdevmapper-dev \
 | 
			
		||||
            libfuse-dev \
 | 
			
		||||
            libglib2.0-dev \
 | 
			
		||||
            libglusterfs-dev \
 | 
			
		||||
            libgnutls28-dev \
 | 
			
		||||
            libiscsi-dev \
 | 
			
		||||
            libnetcf-dev \
 | 
			
		||||
            libnl-3-dev \
 | 
			
		||||
            libnl-route-3-dev \
 | 
			
		||||
            libnuma-dev \
 | 
			
		||||
            libopenwsman-dev \
 | 
			
		||||
            libparted-dev \
 | 
			
		||||
            libpcap0.8-dev \
 | 
			
		||||
            libpciaccess-dev \
 | 
			
		||||
            librbd-dev \
 | 
			
		||||
            libreadline-dev \
 | 
			
		||||
            libsanlock-dev \
 | 
			
		||||
            libsasl2-dev \
 | 
			
		||||
            libselinux1-dev \
 | 
			
		||||
            libssh-dev \
 | 
			
		||||
            libssh2-1-dev \
 | 
			
		||||
            libtirpc-dev \
 | 
			
		||||
            libudev-dev \
 | 
			
		||||
            libxen-dev \
 | 
			
		||||
            libxml2-dev \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            libyajl-dev \
 | 
			
		||||
            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 \
 | 
			
		||||
            systemtap-sdt-dev \
 | 
			
		||||
            wireshark-dev \
 | 
			
		||||
            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 && \
 | 
			
		||||
    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/cc && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
 | 
			
		||||
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
@@ -1,101 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
FROM docker.io/library/ubuntu:22.04
 | 
			
		||||
 | 
			
		||||
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 \
 | 
			
		||||
            clang \
 | 
			
		||||
            codespell \
 | 
			
		||||
            cpp \
 | 
			
		||||
            diffutils \
 | 
			
		||||
            dwarves \
 | 
			
		||||
            ebtables \
 | 
			
		||||
            flake8 \
 | 
			
		||||
            gcc \
 | 
			
		||||
            gettext \
 | 
			
		||||
            git \
 | 
			
		||||
            grep \
 | 
			
		||||
            iproute2 \
 | 
			
		||||
            iptables \
 | 
			
		||||
            kmod \
 | 
			
		||||
            libacl1-dev \
 | 
			
		||||
            libapparmor-dev \
 | 
			
		||||
            libattr1-dev \
 | 
			
		||||
            libaudit-dev \
 | 
			
		||||
            libblkid-dev \
 | 
			
		||||
            libc-dev-bin \
 | 
			
		||||
            libc6-dev \
 | 
			
		||||
            libcap-ng-dev \
 | 
			
		||||
            libcurl4-gnutls-dev \
 | 
			
		||||
            libdevmapper-dev \
 | 
			
		||||
            libfuse-dev \
 | 
			
		||||
            libglib2.0-dev \
 | 
			
		||||
            libglusterfs-dev \
 | 
			
		||||
            libgnutls28-dev \
 | 
			
		||||
            libiscsi-dev \
 | 
			
		||||
            libnl-3-dev \
 | 
			
		||||
            libnl-route-3-dev \
 | 
			
		||||
            libnuma-dev \
 | 
			
		||||
            libopenwsman-dev \
 | 
			
		||||
            libparted-dev \
 | 
			
		||||
            libpcap0.8-dev \
 | 
			
		||||
            libpciaccess-dev \
 | 
			
		||||
            librbd-dev \
 | 
			
		||||
            libreadline-dev \
 | 
			
		||||
            libsanlock-dev \
 | 
			
		||||
            libsasl2-dev \
 | 
			
		||||
            libselinux1-dev \
 | 
			
		||||
            libssh-dev \
 | 
			
		||||
            libssh2-1-dev \
 | 
			
		||||
            libtirpc-dev \
 | 
			
		||||
            libudev-dev \
 | 
			
		||||
            libxen-dev \
 | 
			
		||||
            libxml2-dev \
 | 
			
		||||
            libxml2-utils \
 | 
			
		||||
            libyajl-dev \
 | 
			
		||||
            locales \
 | 
			
		||||
            lvm2 \
 | 
			
		||||
            make \
 | 
			
		||||
            meson \
 | 
			
		||||
            nfs-common \
 | 
			
		||||
            ninja-build \
 | 
			
		||||
            numad \
 | 
			
		||||
            open-iscsi \
 | 
			
		||||
            perl-base \
 | 
			
		||||
            pkgconf \
 | 
			
		||||
            policykit-1 \
 | 
			
		||||
            python3 \
 | 
			
		||||
            python3-docutils \
 | 
			
		||||
            qemu-utils \
 | 
			
		||||
            scrub \
 | 
			
		||||
            sed \
 | 
			
		||||
            systemtap-sdt-dev \
 | 
			
		||||
            wireshark-dev \
 | 
			
		||||
            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 && \
 | 
			
		||||
    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/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,34 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Variables that can be set to control the behaviour of
 | 
			
		||||
# pipelines that are run
 | 
			
		||||
#
 | 
			
		||||
#  - RUN_ALL_CONTAINERS - build all containers
 | 
			
		||||
#    even if they don't have any changes detected
 | 
			
		||||
#
 | 
			
		||||
# These can be set as git push options
 | 
			
		||||
#
 | 
			
		||||
#  $ git push -o ci.variable=RUN_ALL_CONTAINERS=1
 | 
			
		||||
#
 | 
			
		||||
# Aliases can be set for common usage
 | 
			
		||||
#
 | 
			
		||||
#  $ git config --local alias.push-all-ctr "push -o ci.variable=RUN_ALL_CONTAINERS=1"
 | 
			
		||||
#
 | 
			
		||||
# Allowing the less verbose invocation
 | 
			
		||||
#
 | 
			
		||||
#  $ git push-all-ctr
 | 
			
		||||
#
 | 
			
		||||
# Pipeline variables can also be set in the repository
 | 
			
		||||
# pipeline config globally, or set against scheduled pipelines
 | 
			
		||||
 | 
			
		||||
include:
 | 
			
		||||
  - local: '/ci/gitlab/container-templates.yml'
 | 
			
		||||
  - local: '/ci/gitlab/build-templates.yml'
 | 
			
		||||
  - local: '/ci/gitlab/sanity-checks.yml'
 | 
			
		||||
  - local: '/ci/gitlab/containers.yml'
 | 
			
		||||
  - local: '/ci/gitlab/builds.yml'
 | 
			
		||||
@@ -1,64 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.gitlab_native_build_job:
 | 
			
		||||
  image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
 | 
			
		||||
  stage: builds
 | 
			
		||||
  rules:
 | 
			
		||||
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
 | 
			
		||||
      when: never
 | 
			
		||||
    - if: '$JOB_OPTIONAL'
 | 
			
		||||
      when: manual
 | 
			
		||||
      allow_failure: true
 | 
			
		||||
    - when: on_success
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.gitlab_cross_build_job:
 | 
			
		||||
  image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
 | 
			
		||||
  stage: builds
 | 
			
		||||
  rules:
 | 
			
		||||
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
 | 
			
		||||
      when: never
 | 
			
		||||
    - if: '$JOB_OPTIONAL'
 | 
			
		||||
      when: manual
 | 
			
		||||
      allow_failure: true
 | 
			
		||||
    - when: on_success
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.cirrus_build_job:
 | 
			
		||||
  stage: builds
 | 
			
		||||
  image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
 | 
			
		||||
  needs: []
 | 
			
		||||
  script:
 | 
			
		||||
    - source ci/cirrus/$NAME.vars
 | 
			
		||||
    - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
 | 
			
		||||
          -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
 | 
			
		||||
          -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
 | 
			
		||||
          -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
 | 
			
		||||
          -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
 | 
			
		||||
          -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
 | 
			
		||||
          -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
 | 
			
		||||
          -e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g"
 | 
			
		||||
          -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
 | 
			
		||||
          -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
 | 
			
		||||
          -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
 | 
			
		||||
          -e "s|[@]PKGS@|$PKGS|g"
 | 
			
		||||
          -e "s|[@]MAKE@|$MAKE|g"
 | 
			
		||||
          -e "s|[@]PYTHON@|$PYTHON|g"
 | 
			
		||||
          -e "s|[@]PIP3@|$PIP3|g"
 | 
			
		||||
          -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
 | 
			
		||||
          -e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g"
 | 
			
		||||
      <ci/cirrus/build.yml >ci/cirrus/$NAME.yml
 | 
			
		||||
    - cat ci/cirrus/$NAME.yml
 | 
			
		||||
    - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
 | 
			
		||||
  rules:
 | 
			
		||||
    - if: '$CIRRUS_GITHUB_REPO == null || $CIRRUS_API_TOKEN == null'
 | 
			
		||||
      when: never
 | 
			
		||||
    - if: '$JOB_OPTIONAL'
 | 
			
		||||
      when: manual
 | 
			
		||||
      allow_failure: true
 | 
			
		||||
    - when: on_success
 | 
			
		||||
@@ -1,623 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Native build jobs
 | 
			
		||||
 | 
			
		||||
x86_64-almalinux-8:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-almalinux-8-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: almalinux-8
 | 
			
		||||
    RPM: skip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-almalinux-8-clang:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-almalinux-8-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CC: clang
 | 
			
		||||
    NAME: almalinux-8
 | 
			
		||||
    RPM: skip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-alpine-315:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-alpine-315-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: alpine-315
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-alpine-edge:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-alpine-edge-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: alpine-edge
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-centos-stream-8:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-centos-stream-8-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: centos-stream-8
 | 
			
		||||
  artifacts:
 | 
			
		||||
    expire_in: 1 day
 | 
			
		||||
    paths:
 | 
			
		||||
      - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-centos-stream-9:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-centos-stream-9-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: centos-stream-9
 | 
			
		||||
  artifacts:
 | 
			
		||||
    expire_in: 1 day
 | 
			
		||||
    paths:
 | 
			
		||||
      - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-10:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-11:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-11-clang:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-sid:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-35:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-fedora-35-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-35
 | 
			
		||||
  artifacts:
 | 
			
		||||
    expire_in: 1 day
 | 
			
		||||
    paths:
 | 
			
		||||
      - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-36:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-fedora-36-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-36
 | 
			
		||||
  artifacts:
 | 
			
		||||
    expire_in: 1 day
 | 
			
		||||
    paths:
 | 
			
		||||
      - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-rawhide:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-fedora-rawhide-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-rawhide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-rawhide-clang:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-fedora-rawhide-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CC: clang
 | 
			
		||||
    NAME: fedora-rawhide
 | 
			
		||||
    RPM: skip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-opensuse-leap-153:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-opensuse-leap-153-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: opensuse-leap-153
 | 
			
		||||
    RPM: skip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-opensuse-tumbleweed:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-opensuse-tumbleweed-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: opensuse-tumbleweed
 | 
			
		||||
    RPM: skip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-ubuntu-2004:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-ubuntu-2004-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    ASAN_OPTIONS: verify_asan_link_order=0
 | 
			
		||||
    MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
 | 
			
		||||
    NAME: ubuntu-2004
 | 
			
		||||
    UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-ubuntu-2204:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-ubuntu-2204-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: ubuntu-2204
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-ubuntu-2204-clang:
 | 
			
		||||
  extends: .native_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: x86_64-ubuntu-2204-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CC: clang
 | 
			
		||||
    MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
 | 
			
		||||
    NAME: ubuntu-2204
 | 
			
		||||
    UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Cross build jobs
 | 
			
		||||
 | 
			
		||||
aarch64-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: aarch64-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: aarch64
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv6l-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: armv6l-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: armv6l
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv7l-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: armv7l-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: armv7l
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
i686-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: i686-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: i686
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mips-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mips
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips64el-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mips64el-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mips64el
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mipsel-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mipsel-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mipsel
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ppc64le-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: ppc64le-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: ppc64le
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
s390x-debian-10:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: s390x-debian-10-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: s390x
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
aarch64-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: aarch64-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: aarch64
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv6l-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: armv6l-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: armv6l
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv7l-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: armv7l-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: armv7l
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
i686-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: i686-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: i686
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips64el-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mips64el-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mips64el
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mipsel-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mipsel-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mipsel
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ppc64le-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: ppc64le-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: ppc64le
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
s390x-debian-11:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: s390x-debian-11-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: s390x
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
aarch64-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: aarch64-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: aarch64
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv6l-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: armv6l-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: armv6l
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv7l-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: armv7l-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: armv7l
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
i686-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: i686-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: i686
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips64el-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mips64el-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mips64el
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mipsel-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mipsel-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mipsel
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ppc64le-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: ppc64le-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: ppc64le
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
s390x-debian-sid:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: s390x-debian-sid-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: s390x
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw32-fedora-36:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mingw32-fedora-36-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mingw32
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: fedora-36
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw64-fedora-36:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mingw64-fedora-36-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mingw64
 | 
			
		||||
    NAME: fedora-36
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw32-fedora-rawhide:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mingw32-fedora-rawhide-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mingw32
 | 
			
		||||
    NAME: fedora-rawhide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw64-fedora-rawhide:
 | 
			
		||||
  extends: .cross_build_job
 | 
			
		||||
  needs:
 | 
			
		||||
    - job: mingw64-fedora-rawhide-container
 | 
			
		||||
      optional: true
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    CROSS: mingw64
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: fedora-rawhide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Native cirrus build jobs
 | 
			
		||||
 | 
			
		||||
x86_64-freebsd-12:
 | 
			
		||||
  extends: .cirrus_build_job
 | 
			
		||||
  needs: []
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CIRRUS_VM_IMAGE_NAME: freebsd-12-3
 | 
			
		||||
    CIRRUS_VM_IMAGE_SELECTOR: image_family
 | 
			
		||||
    CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
 | 
			
		||||
    INSTALL_COMMAND: pkg install -y
 | 
			
		||||
    NAME: freebsd-12
 | 
			
		||||
    UPDATE_COMMAND: pkg update
 | 
			
		||||
    UPGRADE_COMMAND: pkg upgrade -y
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-freebsd-13:
 | 
			
		||||
  extends: .cirrus_build_job
 | 
			
		||||
  needs: []
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CIRRUS_VM_IMAGE_NAME: freebsd-13-0
 | 
			
		||||
    CIRRUS_VM_IMAGE_SELECTOR: image_family
 | 
			
		||||
    CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
 | 
			
		||||
    INSTALL_COMMAND: pkg install -y
 | 
			
		||||
    NAME: freebsd-13
 | 
			
		||||
    UPDATE_COMMAND: pkg update
 | 
			
		||||
    UPGRADE_COMMAND: pkg upgrade -y
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-macos-11:
 | 
			
		||||
  extends: .cirrus_build_job
 | 
			
		||||
  needs: []
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    CIRRUS_VM_IMAGE_NAME: big-sur-base
 | 
			
		||||
    CIRRUS_VM_IMAGE_SELECTOR: image
 | 
			
		||||
    CIRRUS_VM_INSTANCE_TYPE: osx_instance
 | 
			
		||||
    INSTALL_COMMAND: brew install
 | 
			
		||||
    NAME: macos-11
 | 
			
		||||
    PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
 | 
			
		||||
    PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
 | 
			
		||||
    UPDATE_COMMAND: brew update
 | 
			
		||||
    UPGRADE_COMMAND: brew upgrade
 | 
			
		||||
@@ -1,57 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# For upstream
 | 
			
		||||
#
 | 
			
		||||
#   - Push to default branch:
 | 
			
		||||
#       -> rebuild if dockerfile changed, no cache
 | 
			
		||||
#   - Otherwise
 | 
			
		||||
#       -> rebuild if RUN_ALL_CONTAINERS=1, no cache,
 | 
			
		||||
#          to pick up new published distro packages or
 | 
			
		||||
#          recover from deleted tag
 | 
			
		||||
#
 | 
			
		||||
# For forks
 | 
			
		||||
#   - Always rebuild, with cache
 | 
			
		||||
#
 | 
			
		||||
.container_job:
 | 
			
		||||
  image: docker:stable
 | 
			
		||||
  stage: containers
 | 
			
		||||
  needs: []
 | 
			
		||||
  services:
 | 
			
		||||
    - docker:dind
 | 
			
		||||
  before_script:
 | 
			
		||||
    - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
 | 
			
		||||
    - export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt/ci-$NAME:latest"
 | 
			
		||||
    - docker info
 | 
			
		||||
    - docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
 | 
			
		||||
  script:
 | 
			
		||||
    - if test $CI_PROJECT_NAMESPACE = "libvirt";
 | 
			
		||||
      then
 | 
			
		||||
        docker build --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers ;
 | 
			
		||||
      else
 | 
			
		||||
        docker pull "$TAG" || docker pull "$COMMON_TAG" || true ;
 | 
			
		||||
        docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers ;
 | 
			
		||||
      fi
 | 
			
		||||
    - docker push "$TAG"
 | 
			
		||||
  after_script:
 | 
			
		||||
    - docker logout
 | 
			
		||||
  rules:
 | 
			
		||||
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
 | 
			
		||||
      when: never
 | 
			
		||||
    - if: '$CI_PROJECT_NAMESPACE == "libvirt" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
 | 
			
		||||
      when: on_success
 | 
			
		||||
      changes:
 | 
			
		||||
       - ci/gitlab/container-templates.yml
 | 
			
		||||
       - ci/containers/$NAME.Dockerfile
 | 
			
		||||
    - if: '$CI_PROJECT_NAMESPACE == "libvirt" && $RUN_ALL_CONTAINERS == "1"'
 | 
			
		||||
      when: on_success
 | 
			
		||||
    - if: '$CI_PROJECT_NAMESPACE == "libvirt"'
 | 
			
		||||
      when: never
 | 
			
		||||
    - if: '$JOB_OPTIONAL'
 | 
			
		||||
      when: manual
 | 
			
		||||
      allow_failure: true
 | 
			
		||||
    - when: on_success
 | 
			
		||||
@@ -1,344 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Native container jobs
 | 
			
		||||
 | 
			
		||||
x86_64-almalinux-8-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: almalinux-8
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-alpine-315-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: alpine-315
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-alpine-edge-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: alpine-edge
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-centos-stream-8-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: centos-stream-8
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-centos-stream-9-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: centos-stream-9
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-10
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-11
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-sid
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-35-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-35
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-36-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-36
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-fedora-rawhide-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-rawhide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-opensuse-leap-153-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: opensuse-leap-153
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-opensuse-tumbleweed-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: opensuse-tumbleweed
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-ubuntu-2004-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: ubuntu-2004
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
x86_64-ubuntu-2204-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: ubuntu-2204
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Cross container jobs
 | 
			
		||||
 | 
			
		||||
aarch64-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-aarch64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv6l-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-armv6l
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv7l-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: debian-10-cross-armv7l
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
i686-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-i686
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-mips
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips64el-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-mips64el
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mipsel-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-mipsel
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ppc64le-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-ppc64le
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
s390x-debian-10-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-10-cross-s390x
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
aarch64-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-aarch64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv6l-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-armv6l
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv7l-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-armv7l
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
i686-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-i686
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips64el-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-mips64el
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mipsel-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-mipsel
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ppc64le-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-ppc64le
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
s390x-debian-11-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-11-cross-s390x
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
aarch64-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-aarch64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv6l-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-armv6l
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
armv7l-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-armv7l
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
i686-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-i686
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mips64el-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-mips64el
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mipsel-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-mipsel
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ppc64le-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-ppc64le
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
s390x-debian-sid-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: debian-sid-cross-s390x
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw32-fedora-36-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: fedora-36-cross-mingw32
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw64-fedora-36-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: false
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-36-cross-mingw64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw32-fedora-rawhide-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    NAME: fedora-rawhide-cross-mingw32
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mingw64-fedora-rawhide-container:
 | 
			
		||||
  extends: .container_job
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
  variables:
 | 
			
		||||
    JOB_OPTIONAL: 1
 | 
			
		||||
    NAME: fedora-rawhide-cross-mingw64
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
# THIS FILE WAS AUTO-GENERATED
 | 
			
		||||
#
 | 
			
		||||
#  $ lcitool manifest ci/manifest.yml
 | 
			
		||||
#
 | 
			
		||||
# https://gitlab.com/libvirt/libvirt-ci
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
check-dco:
 | 
			
		||||
  stage: sanity_checks
 | 
			
		||||
  needs: []
 | 
			
		||||
  image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
 | 
			
		||||
  script:
 | 
			
		||||
    - /check-dco libvirt
 | 
			
		||||
  except:
 | 
			
		||||
    variables:
 | 
			
		||||
      - $CI_PROJECT_NAMESPACE == 'libvirt'
 | 
			
		||||
  variables:
 | 
			
		||||
    GIT_DEPTH: 1000
 | 
			
		||||
							
								
								
									
										240
									
								
								ci/helper
									
									
									
									
									
								
							
							
						
						
									
										240
									
								
								ci/helper
									
									
									
									
									
								
							@@ -1,240 +0,0 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2021 Red Hat, Inc.
 | 
			
		||||
# SPDX-License-Identifier: LGPL-2.1-or-later
 | 
			
		||||
 | 
			
		||||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
import pathlib
 | 
			
		||||
import pty
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import textwrap
 | 
			
		||||
 | 
			
		||||
import util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Parser:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        # Options that are common to all actions that use containers
 | 
			
		||||
        containerparser = argparse.ArgumentParser(add_help=False)
 | 
			
		||||
        containerparser.add_argument(
 | 
			
		||||
            "target",
 | 
			
		||||
            help="perform action on target OS",
 | 
			
		||||
        )
 | 
			
		||||
        containerparser.add_argument(
 | 
			
		||||
            "--engine",
 | 
			
		||||
            choices=["auto", "podman", "docker"],
 | 
			
		||||
            default="auto",
 | 
			
		||||
            help="container engine to use",
 | 
			
		||||
        )
 | 
			
		||||
        containerparser.add_argument(
 | 
			
		||||
            "--login",
 | 
			
		||||
            default=os.getlogin(),  # exempt from syntax-check
 | 
			
		||||
            help="login to use inside the container",
 | 
			
		||||
        )
 | 
			
		||||
        containerparser.add_argument(
 | 
			
		||||
            "--image-prefix",
 | 
			
		||||
            default="registry.gitlab.com/libvirt/libvirt/ci-",
 | 
			
		||||
            help="use container images from non-default location",
 | 
			
		||||
        )
 | 
			
		||||
        containerparser.add_argument(
 | 
			
		||||
            "--image-tag",
 | 
			
		||||
            default=":latest",
 | 
			
		||||
            help="use container images with non-default tags",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # Options that are common to all actions that call the
 | 
			
		||||
        # project's build system
 | 
			
		||||
        mesonparser = argparse.ArgumentParser(add_help=False)
 | 
			
		||||
        mesonparser.add_argument(
 | 
			
		||||
            "--meson-args",
 | 
			
		||||
            default="",
 | 
			
		||||
            help="additional arguments passed to meson "
 | 
			
		||||
                 "(eg --meson-args='-Dopt1=enabled -Dopt2=disabled')",
 | 
			
		||||
        )
 | 
			
		||||
        mesonparser.add_argument(
 | 
			
		||||
            "--ninja-args",
 | 
			
		||||
            default="",
 | 
			
		||||
            help="additional arguments passed to ninja",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # Options that are common to actions communicating with a GitLab
 | 
			
		||||
        # instance
 | 
			
		||||
        gitlabparser = argparse.ArgumentParser(add_help=False)
 | 
			
		||||
        gitlabparser.add_argument(
 | 
			
		||||
            "--namespace",
 | 
			
		||||
            default="libvirt/libvirt",
 | 
			
		||||
            help="GitLab project namespace"
 | 
			
		||||
        )
 | 
			
		||||
        gitlabparser.add_argument(
 | 
			
		||||
            "--gitlab-uri",
 | 
			
		||||
            default="https://gitlab.com",
 | 
			
		||||
            help="base GitLab URI"
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # Main parser
 | 
			
		||||
        self._parser = argparse.ArgumentParser()
 | 
			
		||||
        subparsers = self._parser.add_subparsers(
 | 
			
		||||
            dest="action",
 | 
			
		||||
            metavar="ACTION",
 | 
			
		||||
        )
 | 
			
		||||
        subparsers.required = True
 | 
			
		||||
 | 
			
		||||
        # build action
 | 
			
		||||
        buildparser = subparsers.add_parser(
 | 
			
		||||
            "build",
 | 
			
		||||
            help="run a build in a container",
 | 
			
		||||
            parents=[containerparser, mesonparser],
 | 
			
		||||
            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 | 
			
		||||
        )
 | 
			
		||||
        buildparser.set_defaults(func=Application._action_build)
 | 
			
		||||
 | 
			
		||||
        # test action
 | 
			
		||||
        testparser = subparsers.add_parser(
 | 
			
		||||
            "test",
 | 
			
		||||
            help="run a build in a container (including tests)",
 | 
			
		||||
            parents=[containerparser, mesonparser],
 | 
			
		||||
            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 | 
			
		||||
        )
 | 
			
		||||
        testparser.set_defaults(func=Application._action_test)
 | 
			
		||||
 | 
			
		||||
        # shell action
 | 
			
		||||
        shellparser = subparsers.add_parser(
 | 
			
		||||
            "shell",
 | 
			
		||||
            help="start a shell in a container",
 | 
			
		||||
            parents=[containerparser],
 | 
			
		||||
            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 | 
			
		||||
        )
 | 
			
		||||
        shellparser.set_defaults(func=Application._action_shell)
 | 
			
		||||
 | 
			
		||||
        # list-images action
 | 
			
		||||
        listimagesparser = subparsers.add_parser(
 | 
			
		||||
            "list-images",
 | 
			
		||||
            help="list known container images",
 | 
			
		||||
            parents=[gitlabparser],
 | 
			
		||||
            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 | 
			
		||||
        )
 | 
			
		||||
        listimagesparser.set_defaults(func=Application._action_list_images)
 | 
			
		||||
 | 
			
		||||
        # check_stale action
 | 
			
		||||
        check_staleparser = subparsers.add_parser(
 | 
			
		||||
            "check-stale",
 | 
			
		||||
            help="check for existence of stale images on the GitLab instance",
 | 
			
		||||
            parents=[gitlabparser],
 | 
			
		||||
            formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 | 
			
		||||
        )
 | 
			
		||||
        check_staleparser.set_defaults(func=Application._action_check_stale)
 | 
			
		||||
 | 
			
		||||
    def parse(self):
 | 
			
		||||
        return self._parser.parse_args()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Application:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        self._basedir = pathlib.Path(__file__).resolve().parent
 | 
			
		||||
        self._args = Parser().parse()
 | 
			
		||||
 | 
			
		||||
    def _make_run(self, target):
 | 
			
		||||
        args = [
 | 
			
		||||
            "-C",
 | 
			
		||||
            self._basedir,
 | 
			
		||||
            target,
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
        if self._args.action in ["build", "test", "shell"]:
 | 
			
		||||
            args.extend([
 | 
			
		||||
                f"CI_ENGINE={self._args.engine}",
 | 
			
		||||
                f"CI_USER_LOGIN={self._args.login}",
 | 
			
		||||
                f"CI_IMAGE_PREFIX={self._args.image_prefix}",
 | 
			
		||||
                f"CI_IMAGE_TAG={self._args.image_tag}",
 | 
			
		||||
            ])
 | 
			
		||||
 | 
			
		||||
        if self._args.action in ["build", "test"]:
 | 
			
		||||
            args.extend([
 | 
			
		||||
                f"CI_MESON_ARGS={self._args.meson_args}",
 | 
			
		||||
                f"CI_NINJA_ARGS={self._args.ninja_args}",
 | 
			
		||||
            ])
 | 
			
		||||
 | 
			
		||||
        if pty.spawn(["make"] + args) != 0:
 | 
			
		||||
            sys.exit("error: 'make' failed")
 | 
			
		||||
 | 
			
		||||
    def _lcitool_run(self, args):
 | 
			
		||||
        output = subprocess.check_output([self._args.lcitool] + args)
 | 
			
		||||
        return output.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
    def _lcitool_get_targets(self):
 | 
			
		||||
        output = self._lcitool_run(["targets"])
 | 
			
		||||
        return output.splitlines()
 | 
			
		||||
 | 
			
		||||
    def _check_stale_images(self):
 | 
			
		||||
        namespace = self._args.namespace
 | 
			
		||||
        gitlab_uri = self._args.gitlab_uri
 | 
			
		||||
        registry_uri = util.get_registry_uri(namespace, gitlab_uri)
 | 
			
		||||
 | 
			
		||||
        stale_images = util.get_registry_stale_images(registry_uri, self._basedir)
 | 
			
		||||
        if stale_images:
 | 
			
		||||
            spacing = "\n" + 4 * " "
 | 
			
		||||
            stale_fmt = [f"{k} (ID: {v})" for k, v in stale_images.items()]
 | 
			
		||||
            stale_details = spacing.join(stale_fmt)
 | 
			
		||||
            stale_ids = ' '.join([str(id) for id in stale_images.values()])
 | 
			
		||||
            registry_uri = util.get_registry_uri(namespace, gitlab_uri)
 | 
			
		||||
 | 
			
		||||
            msg = textwrap.dedent(f"""
 | 
			
		||||
                The following images are stale and can be purged from the registry:
 | 
			
		||||
 | 
			
		||||
                    STALE_DETAILS
 | 
			
		||||
 | 
			
		||||
                You can delete the images listed above using this shell snippet:
 | 
			
		||||
 | 
			
		||||
                    $ for image_id in {stale_ids}; do
 | 
			
		||||
                          curl --request DELETE --header "PRIVATE-TOKEN: <access_token>" \\
 | 
			
		||||
                               {registry_uri}/$image_id;
 | 
			
		||||
                      done
 | 
			
		||||
 | 
			
		||||
                You can generate a personal access token here:
 | 
			
		||||
 | 
			
		||||
                    {gitlab_uri}/-/profile/personal_access_tokens
 | 
			
		||||
            """)
 | 
			
		||||
            print(msg.replace("STALE_DETAILS", stale_details))
 | 
			
		||||
 | 
			
		||||
    def _action_build(self):
 | 
			
		||||
        self._make_run(f"ci-build@{self._args.target}")
 | 
			
		||||
 | 
			
		||||
    def _action_test(self):
 | 
			
		||||
        self._make_run(f"ci-test@{self._args.target}")
 | 
			
		||||
 | 
			
		||||
    def _action_shell(self):
 | 
			
		||||
        self._make_run(f"ci-shell@{self._args.target}")
 | 
			
		||||
 | 
			
		||||
    def _action_list_images(self):
 | 
			
		||||
        registry_uri = util.get_registry_uri(self._args.namespace,
 | 
			
		||||
                                             self._args.gitlab_uri)
 | 
			
		||||
        images = util.get_registry_images(registry_uri)
 | 
			
		||||
 | 
			
		||||
        # skip the "ci-" prefix each of our container images' name has
 | 
			
		||||
        name_prefix = "ci-"
 | 
			
		||||
        names = [i["name"][len(name_prefix):] for i in images]
 | 
			
		||||
        names.sort()
 | 
			
		||||
 | 
			
		||||
        native = [name for name in names if "-cross-" not in name]
 | 
			
		||||
        cross = [name for name in names if "-cross-" in name]
 | 
			
		||||
 | 
			
		||||
        spacing = 4 * " "
 | 
			
		||||
        print("Available x86 container images:\n")
 | 
			
		||||
        print(spacing + ("\n" + spacing).join(native))
 | 
			
		||||
 | 
			
		||||
        if cross:
 | 
			
		||||
            print()
 | 
			
		||||
            print("Available cross-compiler container images:\n")
 | 
			
		||||
            print(spacing + ("\n" + spacing).join(cross))
 | 
			
		||||
 | 
			
		||||
    def _action_check_stale(self):
 | 
			
		||||
        self._check_stale_images()
 | 
			
		||||
 | 
			
		||||
    def run(self):
 | 
			
		||||
        self._args.func(self)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    Application().run()
 | 
			
		||||
@@ -1,106 +0,0 @@
 | 
			
		||||
.qemu-build-template: &qemu-build-template
 | 
			
		||||
  - git clone --depth 1 https://gitlab.com/qemu-project/qemu.git
 | 
			
		||||
  - cd qemu
 | 
			
		||||
  #
 | 
			
		||||
  # inspired by upstream QEMU's buildtest-template.yml
 | 
			
		||||
  - export JOBS="$(expr $(nproc) + 1)"
 | 
			
		||||
  - mkdir build
 | 
			
		||||
  - cd build
 | 
			
		||||
  - ../configure --prefix=/usr
 | 
			
		||||
                 --enable-werror
 | 
			
		||||
                 --disable-tcg
 | 
			
		||||
                 --disable-docs
 | 
			
		||||
                 --target-list=x86_64-softmmu || (cat config.log meson-logs/meson-log.txt && exit 1)
 | 
			
		||||
  - make -j"$JOBS"
 | 
			
		||||
  - if test -n "$MAKE_CHECK_ARGS";
 | 
			
		||||
    then
 | 
			
		||||
      make -j"$JOBS" check-build;
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
  # we need the following since the fix for CVE-2022-24765 now causes a fatal
 | 
			
		||||
  # error if a user issues a git command from within a directory owned by some
 | 
			
		||||
  # other user
 | 
			
		||||
  - sudo git config --global --add safe.directory "$SCRATCH_DIR/qemu"
 | 
			
		||||
  - sudo make install
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.install-deps: &install-deps
 | 
			
		||||
  - sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
 | 
			
		||||
  - sudo pip3 install --prefix=/usr avocado-framework
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.enable-core-dumps: &enable-core-dumps
 | 
			
		||||
  - sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
 | 
			
		||||
  - sudo systemctl daemon-reexec # need to reexec systemd after changing config
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.enable-libvirt-debugging: &enable-libvirt-debugging
 | 
			
		||||
  - source /etc/os-release  # in order to query the vendor-provided variables
 | 
			
		||||
  - if test "$ID" = "centos" && test "$VERSION_ID" -lt 9 ||
 | 
			
		||||
       test "$ID" = "fedora" && test "$VERSION_ID" -lt 35;
 | 
			
		||||
    then
 | 
			
		||||
      DAEMONS="libvirtd virtlogd virtlockd";
 | 
			
		||||
    else
 | 
			
		||||
      DAEMONS="virtproxyd virtqemud virtinterfaced virtsecretd virtstoraged virtnwfilterd virtnodedevd virtlogd virtlockd";
 | 
			
		||||
    fi
 | 
			
		||||
  - for daemon in $DAEMONS;
 | 
			
		||||
    do
 | 
			
		||||
      LOG_OUTPUTS="1:file:/var/log/libvirt/${daemon}.log";
 | 
			
		||||
      LOG_FILTERS="3:remote 4:event 3:util.json 3:util.object 3:util.dbus 3:util.netlink 3:node_device 3:rpc 3:access 1:*";
 | 
			
		||||
      sudo augtool set /files/etc/libvirt/${daemon}.conf/log_filters "$LOG_FILTERS" &>/dev/null;
 | 
			
		||||
      sudo augtool set /files/etc/libvirt/${daemon}.conf/log_outputs "$LOG_OUTPUTS" &>/dev/null;
 | 
			
		||||
      sudo systemctl --quiet stop ${daemon}.service;
 | 
			
		||||
      sudo systemctl restart ${daemon}.socket;
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.collect-logs: &collect-logs
 | 
			
		||||
  - mkdir logs
 | 
			
		||||
  - test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
 | 
			
		||||
  - sudo coredumpctl info --no-pager > logs/coredumpctl.txt
 | 
			
		||||
  - sudo mv /var/log/libvirt logs/libvirt
 | 
			
		||||
  - sudo chown -R $(whoami):$(whoami) logs
 | 
			
		||||
    # rename all Avocado stderr/stdout logs to *.log so that GitLab's web UI doesn't mangle the MIME type
 | 
			
		||||
  - find logs/avocado/ -type f ! -name "*.log" -exec
 | 
			
		||||
      sh -c 'DIR=$(dirname {}); NAME=$(basename {}); mv $DIR/$NAME{,.log}' \;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.integration_tests:
 | 
			
		||||
  stage: integration_tests
 | 
			
		||||
  before_script:
 | 
			
		||||
    - mkdir "$SCRATCH_DIR"
 | 
			
		||||
    - *install-deps
 | 
			
		||||
    - *enable-core-dumps
 | 
			
		||||
    - *enable-libvirt-debugging
 | 
			
		||||
    - sudo virsh net-start default &>/dev/null || true;
 | 
			
		||||
  script:
 | 
			
		||||
    - cd "$SCRATCH_DIR"
 | 
			
		||||
    - git clone --depth 1 https://gitlab.com/libvirt/libvirt-tck.git
 | 
			
		||||
    - cd libvirt-tck
 | 
			
		||||
    - sudo avocado --config avocado.config run --job-results-dir "$SCRATCH_DIR"/avocado
 | 
			
		||||
  after_script:
 | 
			
		||||
    - test "$CI_JOB_STATUS" = "success" && exit 0;
 | 
			
		||||
    - *collect-logs
 | 
			
		||||
  variables:
 | 
			
		||||
    SCRATCH_DIR: "/tmp/scratch"
 | 
			
		||||
  artifacts:
 | 
			
		||||
    name: logs
 | 
			
		||||
    paths:
 | 
			
		||||
      - logs
 | 
			
		||||
    when: on_failure
 | 
			
		||||
  rules:
 | 
			
		||||
    - if: '$LIBVIRT_CI_INTEGRATION'
 | 
			
		||||
      when: on_success
 | 
			
		||||
    - when: never
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# YAML anchors don't work with Shell conditions so we can't use a variable
 | 
			
		||||
# to conditionally build+install QEMU from source.
 | 
			
		||||
# Instead, create a new test job template for this scenario.
 | 
			
		||||
.integration_tests_upstream_qemu:
 | 
			
		||||
  extends: .integration_tests
 | 
			
		||||
  before_script:
 | 
			
		||||
    - !reference [.integration_tests, before_script]
 | 
			
		||||
    - cd "$SCRATCH_DIR"
 | 
			
		||||
    - *qemu-build-template
 | 
			
		||||
    - sudo restorecon -R /usr
 | 
			
		||||
@@ -1,82 +0,0 @@
 | 
			
		||||
include:
 | 
			
		||||
  - 'ci/integration-template.yml'
 | 
			
		||||
 | 
			
		||||
centos-stream-8-tests:
 | 
			
		||||
  extends: .integration_tests
 | 
			
		||||
  needs:
 | 
			
		||||
    - x86_64-centos-stream-8
 | 
			
		||||
    - project: libvirt/libvirt-perl
 | 
			
		||||
      job: x86_64-centos-stream-8
 | 
			
		||||
      ref: master
 | 
			
		||||
      artifacts: true
 | 
			
		||||
  variables:
 | 
			
		||||
    # needed by libvirt-gitlab-executor
 | 
			
		||||
    DISTRO: centos-stream-8
 | 
			
		||||
    # can be overridden in forks to set a different runner tag
 | 
			
		||||
    LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
 | 
			
		||||
  tags:
 | 
			
		||||
    - $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
 | 
			
		||||
 | 
			
		||||
centos-stream-9-tests:
 | 
			
		||||
  extends: .integration_tests
 | 
			
		||||
  needs:
 | 
			
		||||
    - x86_64-centos-stream-9
 | 
			
		||||
    - project: libvirt/libvirt-perl
 | 
			
		||||
      job: x86_64-centos-stream-9
 | 
			
		||||
      ref: master
 | 
			
		||||
      artifacts: true
 | 
			
		||||
  variables:
 | 
			
		||||
    # needed by libvirt-gitlab-executor
 | 
			
		||||
    DISTRO: centos-stream-9
 | 
			
		||||
    # can be overridden in forks to set a different runner tag
 | 
			
		||||
    LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
 | 
			
		||||
  tags:
 | 
			
		||||
    - $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
 | 
			
		||||
 | 
			
		||||
fedora-35-tests:
 | 
			
		||||
  extends: .integration_tests
 | 
			
		||||
  needs:
 | 
			
		||||
    - x86_64-fedora-35
 | 
			
		||||
    - project: libvirt/libvirt-perl
 | 
			
		||||
      job: x86_64-fedora-35
 | 
			
		||||
      ref: master
 | 
			
		||||
      artifacts: true
 | 
			
		||||
  variables:
 | 
			
		||||
    # needed by libvirt-gitlab-executor
 | 
			
		||||
    DISTRO: fedora-35
 | 
			
		||||
    # can be overridden in forks to set a different runner tag
 | 
			
		||||
    LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
 | 
			
		||||
  tags:
 | 
			
		||||
    - $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
 | 
			
		||||
 | 
			
		||||
fedora-36-tests:
 | 
			
		||||
  extends: .integration_tests
 | 
			
		||||
  needs:
 | 
			
		||||
    - x86_64-fedora-36
 | 
			
		||||
    - project: libvirt/libvirt-perl
 | 
			
		||||
      job: x86_64-fedora-36
 | 
			
		||||
      ref: master
 | 
			
		||||
      artifacts: true
 | 
			
		||||
  variables:
 | 
			
		||||
    # needed by libvirt-gitlab-executor
 | 
			
		||||
    DISTRO: fedora-36
 | 
			
		||||
    # can be overridden in forks to set a different runner tag
 | 
			
		||||
    LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
 | 
			
		||||
  tags:
 | 
			
		||||
    - $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
 | 
			
		||||
 | 
			
		||||
fedora-36-upstream-qemu-tests:
 | 
			
		||||
  extends: .integration_tests_upstream_qemu
 | 
			
		||||
  needs:
 | 
			
		||||
    - x86_64-fedora-36
 | 
			
		||||
    - project: libvirt/libvirt-perl
 | 
			
		||||
      job: x86_64-fedora-36
 | 
			
		||||
      ref: master
 | 
			
		||||
      artifacts: true
 | 
			
		||||
  variables:
 | 
			
		||||
    # needed by libvirt-gitlab-executor
 | 
			
		||||
    DISTRO: fedora-36
 | 
			
		||||
    # can be overridden in forks to set a different runner tag
 | 
			
		||||
    LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
 | 
			
		||||
  tags:
 | 
			
		||||
    - $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
 | 
			
		||||
							
								
								
									
										242
									
								
								ci/manifest.yml
									
									
									
									
									
								
							
							
						
						
									
										242
									
								
								ci/manifest.yml
									
									
									
									
									
								
							@@ -1,242 +0,0 @@
 | 
			
		||||
projects:
 | 
			
		||||
  - libvirt
 | 
			
		||||
 | 
			
		||||
gitlab:
 | 
			
		||||
  namespace: libvirt
 | 
			
		||||
  project: libvirt
 | 
			
		||||
 | 
			
		||||
targets:
 | 
			
		||||
  almalinux-8:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        builds: false
 | 
			
		||||
        variables:
 | 
			
		||||
          RPM: skip
 | 
			
		||||
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        suffix: -clang
 | 
			
		||||
        variables:
 | 
			
		||||
          RPM: skip
 | 
			
		||||
          CC: clang
 | 
			
		||||
 | 
			
		||||
  alpine-315: x86_64
 | 
			
		||||
 | 
			
		||||
  alpine-edge:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
 | 
			
		||||
  centos-stream-8:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        artifacts:
 | 
			
		||||
          expire_in: 1 day
 | 
			
		||||
          paths:
 | 
			
		||||
            - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
  centos-stream-9:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        artifacts:
 | 
			
		||||
          expire_in: 1 day
 | 
			
		||||
          paths:
 | 
			
		||||
            - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
  debian-10:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
 | 
			
		||||
      - arch: aarch64
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: armv6l
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: armv7l
 | 
			
		||||
 | 
			
		||||
      - arch: i686
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mips
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mips64el
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mipsel
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: ppc64le
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: s390x
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
  debian-11:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        suffix: -clang
 | 
			
		||||
 | 
			
		||||
      - arch: aarch64
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: armv6l
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: armv7l
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: i686
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mips64el
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mipsel
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: ppc64le
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: s390x
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
  debian-sid:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
 | 
			
		||||
      - arch: aarch64
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: armv6l
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: armv7l
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: i686
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mips64el
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mipsel
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: ppc64le
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: s390x
 | 
			
		||||
        containers: false
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
  fedora-35:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        artifacts:
 | 
			
		||||
          expire_in: 1 day
 | 
			
		||||
          paths:
 | 
			
		||||
            - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
  fedora-36:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        artifacts:
 | 
			
		||||
          expire_in: 1 day
 | 
			
		||||
          paths:
 | 
			
		||||
            - libvirt-rpms
 | 
			
		||||
 | 
			
		||||
      - arch: mingw32
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: mingw64
 | 
			
		||||
 | 
			
		||||
  fedora-rawhide:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        suffix: -clang
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        variables:
 | 
			
		||||
          CC: clang
 | 
			
		||||
          RPM: skip
 | 
			
		||||
 | 
			
		||||
      - arch: mingw32
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
 | 
			
		||||
      - arch: mingw64
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
  freebsd-12: x86_64
 | 
			
		||||
 | 
			
		||||
  freebsd-13: x86_64
 | 
			
		||||
 | 
			
		||||
  opensuse-leap-153:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        variables:
 | 
			
		||||
          RPM: skip
 | 
			
		||||
 | 
			
		||||
  opensuse-tumbleweed:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        allow-failure: true
 | 
			
		||||
        variables:
 | 
			
		||||
          RPM: skip
 | 
			
		||||
 | 
			
		||||
  macos-11:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        variables:
 | 
			
		||||
          PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
 | 
			
		||||
          PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
 | 
			
		||||
 | 
			
		||||
  ubuntu-2004:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        variables:
 | 
			
		||||
          ASAN_OPTIONS: verify_asan_link_order=0
 | 
			
		||||
          MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
 | 
			
		||||
          UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
 | 
			
		||||
 | 
			
		||||
  ubuntu-2204:
 | 
			
		||||
    jobs:
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        builds: false
 | 
			
		||||
 | 
			
		||||
      - arch: x86_64
 | 
			
		||||
        suffix: -clang
 | 
			
		||||
        variables:
 | 
			
		||||
          CC: clang
 | 
			
		||||
          MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
 | 
			
		||||
          UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
 | 
			
		||||
							
								
								
									
										78
									
								
								ci/util.py
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								ci/util.py
									
									
									
									
									
								
							@@ -1,78 +0,0 @@
 | 
			
		||||
import json
 | 
			
		||||
import pathlib
 | 
			
		||||
import urllib.request
 | 
			
		||||
import urllib.parse
 | 
			
		||||
 | 
			
		||||
from typing import Dict, List
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_registry_uri(namespace: str,
 | 
			
		||||
                     gitlab_uri: str = "https://gitlab.com") -> str:
 | 
			
		||||
    """
 | 
			
		||||
    Construct a v4 API URI pointing the namespaced project's image registry.
 | 
			
		||||
 | 
			
		||||
    :param namespace: GitLab project namespace, e.g. "libvirt/libvirt"
 | 
			
		||||
    :param gitlab_uri: GitLab base URI, can be a private deployment
 | 
			
		||||
    :param api_version: GitLab REST API version number
 | 
			
		||||
    :return: URI pointing to a namespaced project's image registry
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    # this converts something like "libvirt/libvirt" to "libvirt%2Flibvirt"
 | 
			
		||||
    namespace_urlenc = urllib.parse.quote_plus(namespace)
 | 
			
		||||
 | 
			
		||||
    project_uri = f"{gitlab_uri}/api/v4/projects/{namespace_urlenc}"
 | 
			
		||||
 | 
			
		||||
    uri = project_uri + "/registry/repositories"
 | 
			
		||||
    return uri
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_registry_images(uri: str) -> List[Dict]:
 | 
			
		||||
    """
 | 
			
		||||
    List all container images that are currently available in the given GitLab
 | 
			
		||||
    project.
 | 
			
		||||
 | 
			
		||||
    :param uri: URI pointing to a GitLab instance's image registry
 | 
			
		||||
    :return: list of container image names
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    r = urllib.request.urlopen(uri + "?per_page=100")
 | 
			
		||||
 | 
			
		||||
    # read the HTTP response and load the JSON part of it
 | 
			
		||||
    return json.loads(r.read().decode())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_dockerfiles(base_dir) -> List:
 | 
			
		||||
    """
 | 
			
		||||
    List all container dockerfiles in the local directory.
 | 
			
		||||
 | 
			
		||||
    :return: list of dockerfile names
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    dkrs = []
 | 
			
		||||
    d = pathlib.Path(base_dir, "containers")
 | 
			
		||||
    for f in d.iterdir():
 | 
			
		||||
        if f.suffix == ".Dockerfile":
 | 
			
		||||
            dkrs.append(f.stem)
 | 
			
		||||
    return dkrs
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_registry_stale_images(registry_uri: str, base_dir: str) -> Dict[str, int]:
 | 
			
		||||
    """
 | 
			
		||||
    Check the GitLab image registry for images that we no longer support and
 | 
			
		||||
    which should be deleted.
 | 
			
		||||
 | 
			
		||||
    :param uri: URI pointing to a GitLab instance's image registry
 | 
			
		||||
    :param base_dir: local repository base directory
 | 
			
		||||
    :return: dictionary formatted as: {<gitlab_image_name>: <gitlab_image_id>}
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    dockerfiles = get_dockerfiles(base_dir)
 | 
			
		||||
    images = get_registry_images(registry_uri)
 | 
			
		||||
    name_prefix = "ci-"
 | 
			
		||||
 | 
			
		||||
    stale_images = {}
 | 
			
		||||
    for img in images:
 | 
			
		||||
        if img["name"][len(name_prefix):] not in dockerfiles:
 | 
			
		||||
            stale_images[img["name"]] = img["id"]
 | 
			
		||||
 | 
			
		||||
    return stale_images
 | 
			
		||||
							
								
								
									
										45
									
								
								config-post.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								config-post.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2013 Red Hat, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library.  If not, see
 | 
			
		||||
 * <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Since virt-login-shell will be setuid, we must do everything
 | 
			
		||||
 * we can to avoid linking to other libraries. Many of them do
 | 
			
		||||
 * unsafe things in functions marked __atttribute__((constructor)).
 | 
			
		||||
 * The only way avoid to avoid such deps is to re-compile the
 | 
			
		||||
 * functions with the code in question disabled, and for that we
 | 
			
		||||
 * must override the main config.h rules. Hence this file :-(
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef LIBVIRT_SETUID_RPC_CLIENT
 | 
			
		||||
# undef HAVE_LIBDEVMAPPER_H
 | 
			
		||||
# undef HAVE_LIBNL
 | 
			
		||||
# undef HAVE_LIBNL3
 | 
			
		||||
# undef HAVE_LIBSASL2
 | 
			
		||||
# undef WITH_CAPNG
 | 
			
		||||
# undef WITH_CURL
 | 
			
		||||
# undef WITH_DTRACE_PROBES
 | 
			
		||||
# undef WITH_GNUTLS
 | 
			
		||||
# undef WITH_GNUTLS_GCRYPT
 | 
			
		||||
# undef WITH_MACVTAP
 | 
			
		||||
# undef WITH_NUMACTL
 | 
			
		||||
# undef WITH_SASL
 | 
			
		||||
# undef WITH_SSH2
 | 
			
		||||
# undef WITH_VIRTUALPORT
 | 
			
		||||
# undef WITH_YAJL
 | 
			
		||||
# undef WITH_YAJL2
 | 
			
		||||
#endif
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user