mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-10-05 07:33:51 +03:00
Compare commits
8 Commits
v6.10.0-rc
...
v1.2.15-ma
Author | SHA1 | Date | |
---|---|---|---|
|
9e181d7f6c | ||
|
01cbfeb7d8 | ||
|
93f51ac244 | ||
|
3c41b3ea5e | ||
|
fe2cf73800 | ||
|
1743e20ef4 | ||
|
ab1dc5d9e5 | ||
|
e7d4224472 |
@@ -1,38 +0,0 @@
|
|||||||
-I@abs_top_builddir@
|
|
||||||
-I@abs_top_srcdir@
|
|
||||||
-I@abs_top_builddir@/include
|
|
||||||
-I@abs_top_srcdir@/include
|
|
||||||
-I@abs_top_builddir@/src
|
|
||||||
-I@abs_top_srcdir@/src
|
|
||||||
-I@abs_top_builddir@/src/access
|
|
||||||
-I@abs_top_srcdir@/src/access
|
|
||||||
-I@abs_top_builddir@/src/admin
|
|
||||||
-I@abs_top_srcdir@/src/admin
|
|
||||||
-I@abs_top_builddir@/src/bhyve
|
|
||||||
-I@abs_top_srcdir@/src/bhyve
|
|
||||||
-I@abs_top_builddir@/src/conf
|
|
||||||
-I@abs_top_srcdir@/src/conf
|
|
||||||
-I@abs_top_builddir@/src/libxl
|
|
||||||
-I@abs_top_srcdir@/src/libxl
|
|
||||||
-I@abs_top_builddir@/src/locking
|
|
||||||
-I@abs_top_srcdir@/src/locking
|
|
||||||
-I@abs_top_builddir@/src/logging
|
|
||||||
-I@abs_top_srcdir@/src/logging
|
|
||||||
-I@abs_top_builddir@/src/lxc
|
|
||||||
-I@abs_top_srcdir@/src/lxc
|
|
||||||
-I@abs_top_builddir@/src/qemu
|
|
||||||
-I@abs_top_srcdir@/src/qemu
|
|
||||||
-I@abs_top_builddir@/src/remote
|
|
||||||
-I@abs_top_srcdir@/src/remote
|
|
||||||
-I@abs_top_builddir@/src/rpc
|
|
||||||
-I@abs_top_srcdir@/src/rpc
|
|
||||||
-I@abs_top_builddir@/src/secret
|
|
||||||
-I@abs_top_srcdir@/src/secret
|
|
||||||
-I@abs_top_builddir@/src/security
|
|
||||||
-I@abs_top_srcdir@/src/security
|
|
||||||
-I@abs_top_builddir@/src/util
|
|
||||||
-I@abs_top_srcdir@/src/util
|
|
||||||
-I@abs_top_builddir@/src/vmx
|
|
||||||
-I@abs_top_srcdir@/src/vmx
|
|
||||||
-I@abs_top_builddir@/src/xenconfig
|
|
||||||
-I@abs_top_srcdir@/src/xenconfig
|
|
1
.ctags
1
.ctags
@@ -3,4 +3,3 @@
|
|||||||
--exclude=*.html
|
--exclude=*.html
|
||||||
--exclude=*.html.in
|
--exclude=*.html.in
|
||||||
--langmap=c:+.h.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
|
|
38
.github/lockdown.yml
vendored
38
.github/lockdown.yml
vendored
@@ -1,38 +0,0 @@
|
|||||||
# Configuration for Repo Lockdown - https://github.com/dessant/repo-lockdown
|
|
||||||
|
|
||||||
skipCreatedBefore: 2020-01-01
|
|
||||||
|
|
||||||
# Close issues and pull requests
|
|
||||||
close: true
|
|
||||||
|
|
||||||
# Lock issues and pull requests
|
|
||||||
lock: true
|
|
||||||
|
|
||||||
# Optionally, specify configuration settings just for `issues` or `pulls`
|
|
||||||
issues:
|
|
||||||
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.
|
|
||||||
|
|
||||||
pulls:
|
|
||||||
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.
|
|
210
.gitignore
vendored
210
.gitignore
vendored
@@ -1,23 +1,199 @@
|
|||||||
# vim related ignores
|
|
||||||
*.swp
|
|
||||||
.lvimrc
|
|
||||||
|
|
||||||
# emacs related ignores
|
|
||||||
*#*#
|
*#*#
|
||||||
*.#*#
|
*.#*#
|
||||||
.#*
|
*.a
|
||||||
*~
|
*.cov
|
||||||
|
*.exe
|
||||||
# git related ignores
|
*.exe.manifest
|
||||||
*.rej
|
*.gcda
|
||||||
|
*.gcno
|
||||||
|
*.gcov
|
||||||
|
*.html
|
||||||
|
*.i
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.loT
|
||||||
|
*.o
|
||||||
*.orig
|
*.orig
|
||||||
|
*.pem
|
||||||
|
*.pyc
|
||||||
|
*.rej
|
||||||
|
*.s
|
||||||
|
*~
|
||||||
|
.#*
|
||||||
|
.deps
|
||||||
|
.dirstamp
|
||||||
|
.gdb_history
|
||||||
|
.git
|
||||||
.git-module-status
|
.git-module-status
|
||||||
|
.libs
|
||||||
# libvirt related ignores
|
.lvimrc
|
||||||
|
.memdump
|
||||||
|
.sc-start-sc_*
|
||||||
|
/ABOUT-NLS
|
||||||
|
/AUTHORS
|
||||||
|
/ChangeLog
|
||||||
|
/GNUmakefile
|
||||||
|
/INSTALL
|
||||||
|
/NEWS
|
||||||
|
/aclocal.m4
|
||||||
|
/autom4te.cache
|
||||||
|
/build-aux
|
||||||
|
/build-aux/
|
||||||
/build/
|
/build/
|
||||||
/ci/scratch/
|
/confdefs.h
|
||||||
|
/config.cache
|
||||||
|
/config.guess
|
||||||
|
/config.h
|
||||||
|
/config.h.in
|
||||||
|
/config.log
|
||||||
|
/config.rpath
|
||||||
|
/config.status
|
||||||
|
/config.sub
|
||||||
|
/configure
|
||||||
|
/configure.lineno
|
||||||
|
/conftest.*
|
||||||
|
/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/libvirtd.socket
|
||||||
|
/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/domtop/domtop
|
||||||
|
/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/libxl-lockd.conf
|
||||||
|
/src/locking/libxl-sanlock.conf
|
||||||
|
/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
|
tags
|
||||||
|
!/gnulib/lib/Makefile.am
|
||||||
# clangd related ignores
|
!/gnulib/tests/Makefile.am
|
||||||
.clangd
|
!/m4/virt-*.m4
|
||||||
compile_commands.json
|
!/po/*.po
|
||||||
|
!/po/POTFILES.in
|
||||||
|
!/po/libvirt.pot
|
||||||
|
607
.gitlab-ci.yml
607
.gitlab-ci.yml
@@ -1,607 +0,0 @@
|
|||||||
variables:
|
|
||||||
GIT_DEPTH: 100
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- containers
|
|
||||||
- builds
|
|
||||||
- sanity_checks
|
|
||||||
|
|
||||||
.script_variables: &script_variables |
|
|
||||||
export CCACHE_BASEDIR="$(pwd)"
|
|
||||||
export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
||||||
export CCACHE_MAXSIZE="500M"
|
|
||||||
export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
|
||||||
|
|
||||||
# Common templates
|
|
||||||
|
|
||||||
.container_job_template: &container_job_definition
|
|
||||||
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 registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
|
|
||||||
script:
|
|
||||||
- docker pull "$TAG" || docker pull "$COMMON_TAG" || true
|
|
||||||
- docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/libvirt-$NAME.Dockerfile" ci/containers
|
|
||||||
- docker push "$TAG"
|
|
||||||
after_script:
|
|
||||||
- docker logout
|
|
||||||
|
|
||||||
# We build many containers which can be useful to debug problems but are not
|
|
||||||
# needed for the pipeline itself to complete: those sometimes fail, and when
|
|
||||||
# that happens it's mostly because of temporary issues with Debian sid. We
|
|
||||||
# don't want those failures to affect the overall pipeline status
|
|
||||||
.container_optional_job_template: &container_optional_job_definition
|
|
||||||
<<: *container_job_definition
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
.native_build_job_template: &native_build_job_definition
|
|
||||||
stage: builds
|
|
||||||
image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- ccache/
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
before_script:
|
|
||||||
- *script_variables
|
|
||||||
script:
|
|
||||||
- meson build --werror || (cat build/meson-logs/meson-log.txt && exit 1)
|
|
||||||
- if test "$DIST" != "skip";
|
|
||||||
then
|
|
||||||
ninja -C build dist;
|
|
||||||
else
|
|
||||||
ninja -C build;
|
|
||||||
ninja -C build test;
|
|
||||||
fi
|
|
||||||
- if test -x /usr/bin/rpmbuild && test "$RPM" != "skip";
|
|
||||||
then
|
|
||||||
rpmbuild --nodeps -ta build/meson-dist/libvirt-*.tar.xz;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Jobs that we delegate to Cirrus CI because they require an operating
|
|
||||||
# system other than Linux. These jobs will only run if the required
|
|
||||||
# setup has been performed on the GitLab account (see ci/README.rst).
|
|
||||||
#
|
|
||||||
# The Cirrus CI configuration is generated by replacing target-specific
|
|
||||||
# variables in a generic template: some of these variables are provided
|
|
||||||
# when the GitLab CI job is defined, others are taken from a shell
|
|
||||||
# snippet generated using lcitool.
|
|
||||||
#
|
|
||||||
# Note that the $PATH environment variable has to be treated with
|
|
||||||
# special care, because we can't just override it at the GitLab CI job
|
|
||||||
# definition level or we risk breaking it completely.
|
|
||||||
.cirrus_build_job_template: &cirrus_build_job_definition
|
|
||||||
stage: builds
|
|
||||||
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
|
|
||||||
needs: []
|
|
||||||
script:
|
|
||||||
- source ci/cirrus/libvirt-$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|[@]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|[@]PIP@|$PIP|g"
|
|
||||||
-e "s|[@]PYPI_PKGS@|$PYPI_PKGS|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
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $CIRRUS_GITHUB_REPO
|
|
||||||
- $CIRRUS_API_TOKEN
|
|
||||||
|
|
||||||
.cross_build_default_job_template: &cross_build_job_definition
|
|
||||||
stage: builds
|
|
||||||
image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- ccache/
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
before_script:
|
|
||||||
- *script_variables
|
|
||||||
script:
|
|
||||||
- meson build --werror $MESON_OPTS || (cat build/meson-logs/meson-log.txt && exit 1)
|
|
||||||
- ninja -C build
|
|
||||||
- if test "$CROSS" = "i686" ; then ninja -C build test ; fi
|
|
||||||
|
|
||||||
|
|
||||||
# Native container build jobs
|
|
||||||
|
|
||||||
x64-centos-7-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: centos-7
|
|
||||||
|
|
||||||
x64-centos-8-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: centos-8
|
|
||||||
|
|
||||||
x64-centos-stream-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: centos-stream
|
|
||||||
|
|
||||||
x64-debian-10-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
|
|
||||||
x64-debian-sid-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid
|
|
||||||
|
|
||||||
x64-fedora-31-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: fedora-31
|
|
||||||
|
|
||||||
x64-fedora-32-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: fedora-32
|
|
||||||
|
|
||||||
x64-fedora-rawhide-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide
|
|
||||||
|
|
||||||
x64-opensuse-151-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: opensuse-151
|
|
||||||
|
|
||||||
x64-ubuntu-1804-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: ubuntu-1804
|
|
||||||
|
|
||||||
x64-ubuntu-2004-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: ubuntu-2004
|
|
||||||
|
|
||||||
|
|
||||||
# Cross-build containers build jobs
|
|
||||||
|
|
||||||
aarch64-debian-10-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-aarch64
|
|
||||||
|
|
||||||
armv6l-debian-10-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-armv6l
|
|
||||||
|
|
||||||
armv7l-debian-10-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-armv7l
|
|
||||||
|
|
||||||
i686-debian-10-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-i686
|
|
||||||
|
|
||||||
mips-debian-10-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-mips
|
|
||||||
|
|
||||||
mips64el-debian-10-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-mips64el
|
|
||||||
|
|
||||||
mipsel-debian-10-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-mipsel
|
|
||||||
|
|
||||||
ppc64le-debian-10-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-ppc64le
|
|
||||||
|
|
||||||
s390x-debian-10-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-10-cross-s390x
|
|
||||||
|
|
||||||
aarch64-debian-sid-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-aarch64
|
|
||||||
|
|
||||||
armv6l-debian-sid-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-armv6l
|
|
||||||
|
|
||||||
armv7l-debian-sid-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-armv7l
|
|
||||||
|
|
||||||
i686-debian-sid-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-i686
|
|
||||||
|
|
||||||
mips64el-debian-sid-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-mips64el
|
|
||||||
|
|
||||||
mipsel-debian-sid-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-mipsel
|
|
||||||
|
|
||||||
ppc64le-debian-sid-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-ppc64le
|
|
||||||
|
|
||||||
s390x-debian-sid-container:
|
|
||||||
<<: *container_optional_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid-cross-s390x
|
|
||||||
|
|
||||||
mingw32-fedora-rawhide-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide-cross-mingw32
|
|
||||||
|
|
||||||
mingw64-fedora-rawhide-container:
|
|
||||||
<<: *container_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide-cross-mingw64
|
|
||||||
|
|
||||||
|
|
||||||
# Native architecture build + test jobs
|
|
||||||
|
|
||||||
x64-debian-10:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
|
|
||||||
x64-debian-10-clang:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CC: clang
|
|
||||||
|
|
||||||
x64-debian-sid:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-debian-sid-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid
|
|
||||||
|
|
||||||
x64-centos-7:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-centos-7-container
|
|
||||||
variables:
|
|
||||||
NAME: centos-7
|
|
||||||
# meson dist fails on CentOS 7 because of old git that fails to clone
|
|
||||||
# from shallow git repository which is done when running meson dist
|
|
||||||
DIST: skip
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-centos-8:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-centos-8-container
|
|
||||||
variables:
|
|
||||||
NAME: centos-8
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-centos-8-clang:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-centos-8-container
|
|
||||||
variables:
|
|
||||||
NAME: centos-8
|
|
||||||
CC: clang
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-centos-stream:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-centos-stream-container
|
|
||||||
variables:
|
|
||||||
NAME: centos-stream
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-fedora-31:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-fedora-31-container
|
|
||||||
variables:
|
|
||||||
NAME: fedora-31
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-fedora-32:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-fedora-32-container
|
|
||||||
variables:
|
|
||||||
NAME: fedora-32
|
|
||||||
|
|
||||||
x64-fedora-rawhide:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-fedora-rawhide-container
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide
|
|
||||||
|
|
||||||
x64-fedora-rawhide-clang:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-fedora-rawhide-container
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide
|
|
||||||
CC: clang
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-opensuse-151:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-opensuse-151-container
|
|
||||||
variables:
|
|
||||||
NAME: opensuse-151
|
|
||||||
RPM: skip
|
|
||||||
|
|
||||||
x64-ubuntu-1804:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-ubuntu-1804-container
|
|
||||||
variables:
|
|
||||||
NAME: ubuntu-1804
|
|
||||||
|
|
||||||
x64-ubuntu-2004:
|
|
||||||
<<: *native_build_job_definition
|
|
||||||
needs:
|
|
||||||
- x64-ubuntu-2004-container
|
|
||||||
variables:
|
|
||||||
NAME: ubuntu-2004
|
|
||||||
|
|
||||||
x64-freebsd-11-build:
|
|
||||||
<<: *cirrus_build_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: freebsd-11
|
|
||||||
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
|
|
||||||
CIRRUS_VM_IMAGE_SELECTOR: image_family
|
|
||||||
CIRRUS_VM_IMAGE_NAME: freebsd-11-4
|
|
||||||
INSTALL_COMMAND: pkg install -y
|
|
||||||
|
|
||||||
x64-freebsd-12-build:
|
|
||||||
<<: *cirrus_build_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: freebsd-12
|
|
||||||
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
|
|
||||||
CIRRUS_VM_IMAGE_SELECTOR: image_family
|
|
||||||
CIRRUS_VM_IMAGE_NAME: freebsd-12-1
|
|
||||||
INSTALL_COMMAND: pkg install -y
|
|
||||||
|
|
||||||
x64-macos-1015-build:
|
|
||||||
<<: *cirrus_build_job_definition
|
|
||||||
variables:
|
|
||||||
NAME: macos-1015
|
|
||||||
CIRRUS_VM_INSTANCE_TYPE: osx_instance
|
|
||||||
CIRRUS_VM_IMAGE_SELECTOR: image
|
|
||||||
CIRRUS_VM_IMAGE_NAME: catalina-base
|
|
||||||
INSTALL_COMMAND: brew install
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Cross compiled build jobs
|
|
||||||
|
|
||||||
armv6l-debian-10:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- armv6l-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CROSS: armv6l
|
|
||||||
|
|
||||||
armv7l-debian-10:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- armv7l-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CROSS: armv7l
|
|
||||||
|
|
||||||
mips64el-debian-10:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- mips64el-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CROSS: mips64el
|
|
||||||
|
|
||||||
mips-debian-10:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- mips-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CROSS: mips
|
|
||||||
|
|
||||||
aarch64-debian-10:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- aarch64-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CROSS: aarch64
|
|
||||||
|
|
||||||
mipsel-debian-10:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- mipsel-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-10
|
|
||||||
CROSS: mipsel
|
|
||||||
|
|
||||||
s390x-debian-sid:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- s390x-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid
|
|
||||||
CROSS: s390x
|
|
||||||
|
|
||||||
i686-debian-sid:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- i686-debian-sid-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid
|
|
||||||
CROSS: i686
|
|
||||||
|
|
||||||
ppc64le-debian-sid:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- ppc64le-debian-10-container
|
|
||||||
variables:
|
|
||||||
NAME: debian-sid
|
|
||||||
CROSS: ppc64le
|
|
||||||
|
|
||||||
mingw32-fedora-rawhide:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- mingw32-fedora-rawhide-container
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide
|
|
||||||
CROSS: mingw32
|
|
||||||
|
|
||||||
mingw64-fedora-rawhide:
|
|
||||||
<<: *cross_build_job_definition
|
|
||||||
needs:
|
|
||||||
- mingw64-fedora-rawhide-container
|
|
||||||
variables:
|
|
||||||
NAME: fedora-rawhide
|
|
||||||
CROSS: mingw64
|
|
||||||
|
|
||||||
|
|
||||||
# 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-centos-8:latest
|
|
||||||
needs:
|
|
||||||
- x64-centos-8-container
|
|
||||||
before_script:
|
|
||||||
- *script_variables
|
|
||||||
script:
|
|
||||||
- meson build --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: builds
|
|
||||||
image: $CI_REGISTRY_IMAGE/ci-opensuse-151:latest
|
|
||||||
needs:
|
|
||||||
- x64-opensuse-151-container
|
|
||||||
before_script:
|
|
||||||
- *script_variables
|
|
||||||
script:
|
|
||||||
- meson build || (cat build/meson-logs/meson-log.txt && exit 1)
|
|
||||||
- ninja -C build libvirt-pot-dep
|
|
||||||
- meson test -C build --suite syntax-check --no-rebuild || (cat build/meson-logs/testlog.txt && exit 1)
|
|
||||||
|
|
||||||
|
|
||||||
# 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-centos-8:latest
|
|
||||||
needs:
|
|
||||||
- x64-centos-8-container
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
before_script:
|
|
||||||
- *script_variables
|
|
||||||
script:
|
|
||||||
- meson build || (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
|
|
||||||
|
|
||||||
|
|
||||||
# Check that all commits are signed-off for the DCO.
|
|
||||||
# Skip on "libvirt" namespace, since we only need to run
|
|
||||||
# this test on developer's personal forks from which
|
|
||||||
# merge requests are submitted
|
|
||||||
check-dco:
|
|
||||||
stage: sanity_checks
|
|
||||||
needs: []
|
|
||||||
image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
|
|
||||||
script:
|
|
||||||
- /check-dco
|
|
||||||
except:
|
|
||||||
variables:
|
|
||||||
- $CI_PROJECT_NAMESPACE == 'libvirt'
|
|
||||||
variables:
|
|
||||||
GIT_DEPTH: 1000
|
|
||||||
|
|
||||||
|
|
||||||
# Coverity job that is run only by schedules
|
|
||||||
coverity:
|
|
||||||
image: $CI_REGISTRY_IMAGE/ci-centos-8:latest
|
|
||||||
needs:
|
|
||||||
- x64-centos-8-container
|
|
||||||
stage: builds
|
|
||||||
script:
|
|
||||||
- curl https://scan.coverity.com/download/linux64 --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN -o /tmp/cov-analysis-linux64.tgz
|
|
||||||
- tar xfz /tmp/cov-analysis-linux64.tgz
|
|
||||||
- meson build
|
|
||||||
- cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja -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"
|
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- schedules
|
|
||||||
variables:
|
|
||||||
- $COVERITY_SCAN_PROJECT_NAME && $COVERITY_SCAN_TOKEN
|
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
|||||||
[submodule "keycodemapdb"]
|
[submodule "gnulib"]
|
||||||
path = src/keycodemapdb
|
path = .gnulib
|
||||||
url = https://gitlab.com/keycodemap/keycodemapdb.git
|
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 106a3866d0
23
.mailmap
23
.mailmap
@@ -20,6 +20,7 @@
|
|||||||
<jfehlig@suse.com> <jfehlig@novell.com>
|
<jfehlig@suse.com> <jfehlig@novell.com>
|
||||||
<jfehlig@suse.com> <jfehlig@linux-ypgk.site>
|
<jfehlig@suse.com> <jfehlig@linux-ypgk.site>
|
||||||
<jclift@redhat.com> <justin@salasaga.org>
|
<jclift@redhat.com> <justin@salasaga.org>
|
||||||
|
<berrange@redhat.com> <dan@berrange.com>
|
||||||
<soren@linux2go.dk> <soren@canonical.com>
|
<soren@linux2go.dk> <soren@canonical.com>
|
||||||
<cfergeau@redhat.com> <teuf@gnome.org>
|
<cfergeau@redhat.com> <teuf@gnome.org>
|
||||||
<wency@cn.fujitsu.com> <wency cn fujitsu com>
|
<wency@cn.fujitsu.com> <wency cn fujitsu com>
|
||||||
@@ -38,16 +39,6 @@
|
|||||||
<zhlcindy@linux.vnet.ibm.com> <zhlcindy@gmail.com>
|
<zhlcindy@linux.vnet.ibm.com> <zhlcindy@gmail.com>
|
||||||
<serge.hallyn@canonical.com> <serue@us.ibm.com>
|
<serge.hallyn@canonical.com> <serue@us.ibm.com>
|
||||||
<pritesh.kothari@sun.com> <Pritesh.Kothari@Sun.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:
|
# Name consolidation:
|
||||||
# Preferred author spelling <preferred email>
|
# Preferred author spelling <preferred email>
|
||||||
@@ -65,16 +56,8 @@ Aurelien Rougemont <beorn@binaries.fr>
|
|||||||
Serge E. Hallyn <serge.hallyn@canonical.com>
|
Serge E. Hallyn <serge.hallyn@canonical.com>
|
||||||
Henrik Persson E <henrik.e.persson@ericsson.com>
|
Henrik Persson E <henrik.e.persson@ericsson.com>
|
||||||
Philipp Hahn <hahn@univention.de>
|
Philipp Hahn <hahn@univention.de>
|
||||||
|
Marco Bozzolan <bozzolan@gmail.com>
|
||||||
|
Marco Bozzolan <redshift@gmx.com>
|
||||||
Pritesh Kothari <pritesh.kothari@sun.com>
|
Pritesh Kothari <pritesh.kothari@sun.com>
|
||||||
Wang Yufei (James) <james.wangyufei@huawei.com>
|
Wang Yufei (James) <james.wangyufei@huawei.com>
|
||||||
Deepak C Shetty <dpkshetty@gmail.com>
|
Deepak C Shetty <dpkshetty@gmail.com>
|
||||||
Dave Allan <dallan@redhat.com>
|
|
||||||
Richard W.M. Jones <rjones@redhat.com>
|
|
||||||
|
|
||||||
# Non-trivial consolidation:
|
|
||||||
# see git documentation for information about the format
|
|
||||||
Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Daniel P. Berrangé <berrange@redhat.com> <dan@berrange.com>
|
|
||||||
Michal Prívozník <mprivozn@redhat.com>
|
|
||||||
Michal Prívozník <mprivozn@redhat.com> <miso.privoznik@gmail.com>
|
|
||||||
Marco Bozzolan <bozzolan@gmail.com> <redshift@gmx.com>
|
|
||||||
|
@@ -1,43 +0,0 @@
|
|||||||
flags = [
|
|
||||||
'-I@abs_top_builddir@',
|
|
||||||
'-I@abs_top_srcdir@',
|
|
||||||
'-I@abs_top_builddir@/include',
|
|
||||||
'-I@abs_top_srcdir@/include',
|
|
||||||
'-I@abs_top_builddir@/src',
|
|
||||||
'-I@abs_top_srcdir@/src',
|
|
||||||
'-I@abs_top_builddir@/src/access',
|
|
||||||
'-I@abs_top_srcdir@/src/access',
|
|
||||||
'-I@abs_top_builddir@/src/admin',
|
|
||||||
'-I@abs_top_srcdir@/src/admin',
|
|
||||||
'-I@abs_top_builddir@/src/bhyve',
|
|
||||||
'-I@abs_top_srcdir@/src/bhyve',
|
|
||||||
'-I@abs_top_builddir@/src/conf',
|
|
||||||
'-I@abs_top_srcdir@/src/conf',
|
|
||||||
'-I@abs_top_builddir@/src/libxl',
|
|
||||||
'-I@abs_top_srcdir@/src/libxl',
|
|
||||||
'-I@abs_top_builddir@/src/locking',
|
|
||||||
'-I@abs_top_srcdir@/src/locking',
|
|
||||||
'-I@abs_top_builddir@/src/logging',
|
|
||||||
'-I@abs_top_srcdir@/src/logging',
|
|
||||||
'-I@abs_top_builddir@/src/lxc',
|
|
||||||
'-I@abs_top_srcdir@/src/lxc',
|
|
||||||
'-I@abs_top_builddir@/src/qemu',
|
|
||||||
'-I@abs_top_srcdir@/src/qemu',
|
|
||||||
'-I@abs_top_builddir@/src/remote',
|
|
||||||
'-I@abs_top_srcdir@/src/remote',
|
|
||||||
'-I@abs_top_builddir@/src/rpc',
|
|
||||||
'-I@abs_top_srcdir@/src/rpc',
|
|
||||||
'-I@abs_top_builddir@/src/secret',
|
|
||||||
'-I@abs_top_srcdir@/src/secret',
|
|
||||||
'-I@abs_top_builddir@/src/security',
|
|
||||||
'-I@abs_top_srcdir@/src/security',
|
|
||||||
'-I@abs_top_builddir@/src/util',
|
|
||||||
'-I@abs_top_srcdir@/src/util',
|
|
||||||
'-I@abs_top_builddir@/src/vmx',
|
|
||||||
'-I@abs_top_srcdir@/src/vmx',
|
|
||||||
'-I@abs_top_builddir@/src/xenconfig',
|
|
||||||
'-I@abs_top_srcdir@/src/xenconfig',
|
|
||||||
]
|
|
||||||
|
|
||||||
def FlagsForFile(filename, **kwargs):
|
|
||||||
return { 'flags': flags, 'do_cache': True }
|
|
99
AUTHORS.in
Normal file
99
AUTHORS.in
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
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>
|
||||||
|
Cédric Bosdonnat <cbosdonnat@suse.com>
|
||||||
|
Christophe Fergeau <cfergeau@redhat.com>
|
||||||
|
Claudio Bley <claudio.bley@gmail.com>
|
||||||
|
Cole Robinson <crobinso@redhat.com>
|
||||||
|
Daniel Berrange <berrange@redhat.com>
|
||||||
|
Daniel Veillard <veillard@redhat.com>
|
||||||
|
Dmitry Guryanov <dguryanov@parallels.com>
|
||||||
|
Doug Goldstein <cardoe@gentoo.org>
|
||||||
|
Eric Blake <eblake@redhat.com>
|
||||||
|
Erik Skultety <eskultet@redhat.com>
|
||||||
|
Gao Feng <gaofeng@cn.fujitsu.com>
|
||||||
|
Guido Günther <agx@sigxcpu.org>
|
||||||
|
Ján Tomko <jtomko@redhat.com>
|
||||||
|
Jim Fehlig <jfehlig@suse.com>
|
||||||
|
Jiří Denemark <jdenemar@redhat.com>
|
||||||
|
John Ferlan <jferlan@redhat.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>
|
||||||
|
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:
|
||||||
|
|
||||||
|
Anthony Liguori <aliguori@us.ibm.com>
|
||||||
|
Atsushi SAKAI <sakaia@jp.fujitsu.com>
|
||||||
|
Chris Lalancette <clalance@redhat.com>
|
||||||
|
Dan Smith <danms@us.ibm.com>
|
||||||
|
Dave Allan <dallan@redhat.com>
|
||||||
|
Dave Leskovec <dlesko@linux.vnet.ibm.com>
|
||||||
|
Guannan Ren <gren@redhat.com>
|
||||||
|
Jim Meyering <meyering@redhat.com>
|
||||||
|
John Levon <john.levon@sun.com>
|
||||||
|
Justin Clift <jclift@redhat.com>
|
||||||
|
Karel Zak <kzak@redhat.com>
|
||||||
|
Osier Yang <jyang@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:
|
@@ -1,99 +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@virtuozzo.com>
|
|
||||||
* 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>
|
|
||||||
|
|
||||||
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
|
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
|
author's reputation will not be affected by problems that might be
|
||||||
introduced by others.
|
introduced by others.
|
||||||
|
|
||||||
Finally, software patents pose a constant threat to the existence of
|
Finally, software patents pose a constant threat to the existence of
|
||||||
any free program. We wish to make sure that a company cannot
|
any free program. We wish to make sure that a company cannot
|
||||||
effectively restrict the users of a free program by obtaining a
|
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
|
"work based on the library" and a "work that uses the library". The
|
||||||
former contains code derived from the library, whereas the latter must
|
former contains code derived from the library, whereas the latter must
|
||||||
be combined with the library in order to run.
|
be combined with the library in order to run.
|
||||||
|
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
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,
|
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
|
and you may at your option offer warranty protection in exchange for a
|
||||||
fee.
|
fee.
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Library or any portion
|
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
|
of it, thus forming a work based on the Library, and copy and
|
||||||
distribute such modifications or work under the terms of Section 1
|
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
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
that version instead if you wish.) Do not make any other change in
|
that version instead if you wish.) Do not make any other change in
|
||||||
these notices.
|
these notices.
|
||||||
|
|
||||||
Once this change is made in a given copy, it is irreversible for
|
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
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
subsequent copies and derivative works made from that copy.
|
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.
|
distribute the object code for the work under the terms of Section 6.
|
||||||
Any executables containing that work also fall under Section 6,
|
Any executables containing that work also fall under Section 6,
|
||||||
whether or not they are linked directly with the Library itself.
|
whether or not they are linked directly with the Library itself.
|
||||||
|
|
||||||
6. As an exception to the Sections above, you may also combine or
|
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
|
link a "work that uses the Library" with the Library to produce a
|
||||||
work containing portions of the Library, and distribute that work
|
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
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
use both them and the Library together in an executable that you
|
use both them and the Library together in an executable that you
|
||||||
distribute.
|
distribute.
|
||||||
|
|
||||||
7. You may place library facilities that are a work based on the
|
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
|
Library side-by-side in a single library together with other library
|
||||||
facilities not covered by this License, and distribute such a combined
|
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.
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
You are not responsible for enforcing compliance by third parties with
|
You are not responsible for enforcing compliance by third parties with
|
||||||
this License.
|
this License.
|
||||||
|
|
||||||
11. If, as a consequence of a court judgment or allegation of patent
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
infringement or for any other reason (not limited to patent issues),
|
infringement or for any other reason (not limited to patent issues),
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
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
|
the Free Software Foundation. If the Library does not specify a
|
||||||
license version number, you may choose any version ever published by
|
license version number, you may choose any version ever published by
|
||||||
the Free Software Foundation.
|
the Free Software Foundation.
|
||||||
|
|
||||||
14. If you wish to incorporate parts of the Library into other free
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
programs whose distribution conditions are incompatible with these,
|
programs whose distribution conditions are incompatible with these,
|
||||||
write to the author to ask for permission. For software which is
|
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.
|
DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Libraries
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
If you develop a new library, and you want it to be of the greatest
|
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
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 examples/domtop
|
||||||
|
|
||||||
|
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/>.
|
## <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$' \
|
# | grep '_r$' \
|
||||||
# | awk '{print $3}' \
|
# | awk '{print $3}' \
|
||||||
# | grep -v __ \
|
# | grep -v __ \
|
||||||
@@ -43,7 +43,6 @@ NON_REENTRANT += ether_ntoa
|
|||||||
NON_REENTRANT += fcvt
|
NON_REENTRANT += fcvt
|
||||||
NON_REENTRANT += fgetgrent
|
NON_REENTRANT += fgetgrent
|
||||||
NON_REENTRANT += fgetpwent
|
NON_REENTRANT += fgetpwent
|
||||||
NON_REENTRANT += fgetsgent
|
|
||||||
NON_REENTRANT += fgetspent
|
NON_REENTRANT += fgetspent
|
||||||
NON_REENTRANT += getaliasbyname
|
NON_REENTRANT += getaliasbyname
|
||||||
NON_REENTRANT += getaliasent
|
NON_REENTRANT += getaliasent
|
||||||
@@ -73,8 +72,6 @@ NON_REENTRANT += getrpcent
|
|||||||
NON_REENTRANT += getservbyname
|
NON_REENTRANT += getservbyname
|
||||||
NON_REENTRANT += getservbyport
|
NON_REENTRANT += getservbyport
|
||||||
NON_REENTRANT += getservent
|
NON_REENTRANT += getservent
|
||||||
NON_REENTRANT += getsgent
|
|
||||||
NON_REENTRANT += getsgnam
|
|
||||||
NON_REENTRANT += getspent
|
NON_REENTRANT += getspent
|
||||||
NON_REENTRANT += getspnam
|
NON_REENTRANT += getspnam
|
||||||
NON_REENTRANT += getutent
|
NON_REENTRANT += getutent
|
||||||
@@ -98,7 +95,6 @@ NON_REENTRANT += random
|
|||||||
NON_REENTRANT += rand
|
NON_REENTRANT += rand
|
||||||
NON_REENTRANT += seed48
|
NON_REENTRANT += seed48
|
||||||
NON_REENTRANT += setstate
|
NON_REENTRANT += setstate
|
||||||
NON_REENTRANT += sgetsgent
|
|
||||||
NON_REENTRANT += sgetspent
|
NON_REENTRANT += sgetspent
|
||||||
NON_REENTRANT += srand48
|
NON_REENTRANT += srand48
|
||||||
NON_REENTRANT += srandom
|
NON_REENTRANT += srandom
|
||||||
@@ -117,11 +113,3 @@ NON_REENTRANT += inet_nsap_ntoa
|
|||||||
NON_REENTRANT += inet_ntoa
|
NON_REENTRANT += inet_ntoa
|
||||||
NON_REENTRANT += inet_ntop
|
NON_REENTRANT += inet_ntop
|
||||||
NON_REENTRANT += inet_pton
|
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
|
117
autogen.sh
Executable file
117
autogen.sh
Executable file
@@ -0,0 +1,117 @@
|
|||||||
|
#!/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
|
||||||
|
case "$1 $2" in
|
||||||
|
--gnulib-srcdir=*) no_git="$no_git $1"; shift ;;
|
||||||
|
--gnulib-srcdir\ *) no_git="$no_git $1=$2"; shift; shift;;
|
||||||
|
esac
|
||||||
|
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."
|
||||||
|
}
|
249
bootstrap.conf
Normal file
249
bootstrap.conf
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
# Bootstrap configuration.
|
||||||
|
|
||||||
|
# Copyright (C) 2010-2014 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-leading-zeros
|
||||||
|
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
|
||||||
|
perl::XML::XPath -
|
||||||
|
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,10 +0,0 @@
|
|||||||
# define variables
|
|
||||||
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
top_builddir = @top_builddir@
|
|
||||||
FLAKE8 = @flake8_path@
|
|
||||||
RUNUTF8 = @runutf8@
|
|
||||||
PYTHON = @PYTHON3@
|
|
||||||
|
|
||||||
# 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: $!";
|
204
build-aux/bracket-spacing.pl
Executable file
204
build-aux/bracket-spacing.pl
Executable file
@@ -0,0 +1,204 @@
|
|||||||
|
#!/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) {
|
||||||
|
# Per-file variables for multiline Curly Bracket (cb_) check
|
||||||
|
my $cb_linenum = 0;
|
||||||
|
my $cb_code = "";
|
||||||
|
my $cb_scolon = 0;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
# 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);
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# but none after the opening bracket
|
||||||
|
if ($data =~ /\b(if|for|while|switch|return)\(/ ||
|
||||||
|
$data =~ /\b(if|for|while|switch|return)\s+\(\s/) {
|
||||||
|
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 )
|
||||||
|
if ($data =~ /\S\s+\)/ ||
|
||||||
|
$data =~ /\(\s+\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]\s+[;,]/) {
|
||||||
|
print "Whitespace before (semi)colon:\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 '=='
|
||||||
|
# with the exception of virAssertCmpInt()
|
||||||
|
$tmpdata = $data;
|
||||||
|
$tmpdata =~ s/(virAssertCmpInt\(.* ).?=,/$1op,/;
|
||||||
|
if ($tmpdata =~ /[^ ]\b[!<>&|\-+*\/%\^=]?=[^=]/ ||
|
||||||
|
$tmpdata =~ /=[^= \\\n]/) {
|
||||||
|
print "Spacing around '=' or '==':\n";
|
||||||
|
print "$file:$.: $line";
|
||||||
|
$ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# One line conditional statements with one line bodies should
|
||||||
|
# not use curly brackets.
|
||||||
|
if ($data =~ /^\s*(if|while|for)\b.*\{$/) {
|
||||||
|
$cb_linenum = $.;
|
||||||
|
$cb_code = $line;
|
||||||
|
$cb_scolon = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
# We need to check for exactly one semicolon inside the body,
|
||||||
|
# because empty statements (e.g. with comment only) are
|
||||||
|
# allowed
|
||||||
|
if ($cb_linenum == $. - 1 && $data =~ /^[^;]*;[^;]*$/) {
|
||||||
|
$cb_code .= $line;
|
||||||
|
$cb_scolon = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($data =~ /^\s*}\s*$/ &&
|
||||||
|
$cb_linenum == $. - 2 &&
|
||||||
|
$cb_scolon) {
|
||||||
|
|
||||||
|
print "Curly brackets around single-line body:\n";
|
||||||
|
print "$file:$cb_linenum-$.:\n$cb_code$line";
|
||||||
|
$ret = 1;
|
||||||
|
|
||||||
|
# There _should_ be no need to reset the values; but to
|
||||||
|
# keep my inner peace...
|
||||||
|
$cb_linenum = 0;
|
||||||
|
$cb_scolon = 0;
|
||||||
|
$cb_code = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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,49 +0,0 @@
|
|||||||
syntax_check_conf = configuration_data()
|
|
||||||
syntax_check_conf.set('top_srcdir', meson.source_root())
|
|
||||||
syntax_check_conf.set('top_builddir', meson.build_root())
|
|
||||||
|
|
||||||
flake8_path = ''
|
|
||||||
if flake8_prog.found()
|
|
||||||
flake8_path = flake8_prog.path()
|
|
||||||
endif
|
|
||||||
syntax_check_conf.set('flake8_path', flake8_path)
|
|
||||||
syntax_check_conf.set('runutf8', ' '.join(runutf8))
|
|
||||||
syntax_check_conf.set('PYTHON3', python3_prog.path())
|
|
||||||
|
|
||||||
configure_file(
|
|
||||||
input: 'Makefile.in',
|
|
||||||
output: '@BASENAME@',
|
|
||||||
configuration: syntax_check_conf,
|
|
||||||
)
|
|
||||||
|
|
||||||
if host_machine.system() == 'freebsd'
|
|
||||||
make_prog = find_program('gmake')
|
|
||||||
else
|
|
||||||
make_prog = find_program('make')
|
|
||||||
endif
|
|
||||||
|
|
||||||
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(), target ],
|
|
||||||
depends: [
|
|
||||||
potfiles_dep,
|
|
||||||
],
|
|
||||||
suite: 'syntax-check',
|
|
||||||
)
|
|
||||||
endforeach
|
|
||||||
endif
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,226 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#! -*-perl-*-
|
|
||||||
|
|
||||||
# Detect instances of "if (p) free (p);".
|
|
||||||
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
|
|
||||||
|
|
||||||
# Copyright (C) 2008-2019 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 <https://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Written by Jim Meyering
|
|
||||||
|
|
||||||
# This is a prologue that allows to run a perl script as an executable
|
|
||||||
# on systems that are compliant to a POSIX version before POSIX:2017.
|
|
||||||
# On such systems, the usual invocation of an executable through execlp()
|
|
||||||
# or execvp() fails with ENOEXEC if it is a script that does not start
|
|
||||||
# with a #! line. The script interpreter mentioned in the #! line has
|
|
||||||
# to be /bin/sh, because on GuixSD systems that is the only program that
|
|
||||||
# has a fixed file name. The second line is essential for perl and is
|
|
||||||
# also useful for editing this file in Emacs. The next two lines below
|
|
||||||
# are valid code in both sh and perl. When executed by sh, they re-execute
|
|
||||||
# the script through the perl program found in $PATH. The '-x' option
|
|
||||||
# is essential as well; without it, perl would re-execute the script
|
|
||||||
# through /bin/sh. When executed by perl, the next two lines are a no-op.
|
|
||||||
eval 'exec perl -wSx "$0" "$@"'
|
|
||||||
if 0;
|
|
||||||
|
|
||||||
my $VERSION = '2018-03-07 03:47'; # UTC
|
|
||||||
# The definition above must lie within the first 8 lines in order
|
|
||||||
# for the Emacs time-stamp write hook (at end) to update it.
|
|
||||||
# If you change this file with Emacs, please let the write hook
|
|
||||||
# do its job. Otherwise, update this string manually.
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
use Getopt::Long;
|
|
||||||
|
|
||||||
(my $ME = $0) =~ s|.*/||;
|
|
||||||
|
|
||||||
# use File::Coda; # https://meyering.net/code/Coda/
|
|
||||||
END {
|
|
||||||
defined fileno STDOUT or return;
|
|
||||||
close STDOUT and return;
|
|
||||||
warn "$ME: failed to close standard output: $!\n";
|
|
||||||
$? ||= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub usage ($)
|
|
||||||
{
|
|
||||||
my ($exit_code) = @_;
|
|
||||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
|
||||||
if ($exit_code != 0)
|
|
||||||
{
|
|
||||||
print $STREAM "Try '$ME --help' for more information.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $STREAM <<EOF;
|
|
||||||
Usage: $ME [OPTIONS] FILE...
|
|
||||||
|
|
||||||
Detect any instance in FILE of a useless "if" test before a free call, e.g.,
|
|
||||||
"if (p) free (p);". Any such test may be safely removed without affecting
|
|
||||||
the semantics of the C code in FILE. Use --name=FOO --name=BAR to also
|
|
||||||
detect free-like functions named FOO and BAR.
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
|
|
||||||
--list print only the name of each matching FILE (\\0-terminated)
|
|
||||||
--name=N add name N to the list of \'free\'-like functions to detect;
|
|
||||||
may be repeated
|
|
||||||
|
|
||||||
--help display this help and exit
|
|
||||||
--version output version information and exit
|
|
||||||
|
|
||||||
Exit status:
|
|
||||||
|
|
||||||
0 one or more matches
|
|
||||||
1 no match
|
|
||||||
2 an error
|
|
||||||
|
|
||||||
EXAMPLE:
|
|
||||||
|
|
||||||
For example, this command prints all removable "if" tests before "free"
|
|
||||||
and "kfree" calls in the linux kernel sources:
|
|
||||||
|
|
||||||
git ls-files -z |xargs -0 $ME --name=kfree
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
exit $exit_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub is_NULL ($)
|
|
||||||
{
|
|
||||||
my ($expr) = @_;
|
|
||||||
return ($expr eq 'NULL' || $expr eq '0');
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
sub EXIT_MATCH {0}
|
|
||||||
sub EXIT_NO_MATCH {1}
|
|
||||||
sub EXIT_ERROR {2}
|
|
||||||
my $err = EXIT_NO_MATCH;
|
|
||||||
|
|
||||||
my $list;
|
|
||||||
my @name = qw(free);
|
|
||||||
GetOptions
|
|
||||||
(
|
|
||||||
help => sub { usage 0 },
|
|
||||||
version => sub { print "$ME version $VERSION\n"; exit },
|
|
||||||
list => \$list,
|
|
||||||
'name=s@' => \@name,
|
|
||||||
) or usage 1;
|
|
||||||
|
|
||||||
# Make sure we have the right number of non-option arguments.
|
|
||||||
# Always tell the user why we fail.
|
|
||||||
@ARGV < 1
|
|
||||||
and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR;
|
|
||||||
|
|
||||||
my $or = join '|', @name;
|
|
||||||
my $regexp = qr/(?:$or)/;
|
|
||||||
|
|
||||||
# Set the input record separator.
|
|
||||||
# Note: this makes it impractical to print line numbers.
|
|
||||||
$/ = '"';
|
|
||||||
|
|
||||||
my $found_match = 0;
|
|
||||||
FILE:
|
|
||||||
foreach my $file (@ARGV)
|
|
||||||
{
|
|
||||||
open FH, '<', $file
|
|
||||||
or (warn "$ME: can't open '$file' for reading: $!\n"),
|
|
||||||
$err = EXIT_ERROR, next;
|
|
||||||
while (defined (my $line = <FH>))
|
|
||||||
{
|
|
||||||
# Skip non-matching lines early to save time
|
|
||||||
$line =~ /\bif\b/
|
|
||||||
or next;
|
|
||||||
while ($line =~
|
|
||||||
/\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\)
|
|
||||||
# 1 2 3
|
|
||||||
(?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;|
|
|
||||||
\s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg)
|
|
||||||
{
|
|
||||||
my $all = $1;
|
|
||||||
my ($lhs, $rhs) = ($2, $3);
|
|
||||||
my ($free_opnd, $braced_free_opnd) = ($4, $5);
|
|
||||||
my $non_NULL;
|
|
||||||
if (!defined $rhs) { $non_NULL = $lhs }
|
|
||||||
elsif (is_NULL $rhs) { $non_NULL = $lhs }
|
|
||||||
elsif (is_NULL $lhs) { $non_NULL = $rhs }
|
|
||||||
else { next }
|
|
||||||
|
|
||||||
# Compare the non-NULL part of the "if" expression and the
|
|
||||||
# free'd expression, without regard to white space.
|
|
||||||
$non_NULL =~ tr/ \t//d;
|
|
||||||
my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd;
|
|
||||||
$e2 =~ tr/ \t//d;
|
|
||||||
if ($non_NULL eq $e2)
|
|
||||||
{
|
|
||||||
$found_match = 1;
|
|
||||||
$list
|
|
||||||
and (print "$file\0"), next FILE;
|
|
||||||
print "$file: $all\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
{
|
|
||||||
close FH;
|
|
||||||
}
|
|
||||||
|
|
||||||
$found_match && $err == EXIT_NO_MATCH
|
|
||||||
and $err = EXIT_MATCH;
|
|
||||||
|
|
||||||
exit $err;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $foo = <<'EOF';
|
|
||||||
# The above is to *find* them.
|
|
||||||
# This adjusts them, removing the unnecessary "if (p)" part.
|
|
||||||
|
|
||||||
# FIXME: do something like this as an option (doesn't do braces):
|
|
||||||
free=xfree
|
|
||||||
git grep -l -z "$free *(" \
|
|
||||||
| xargs -0 useless-if-before-free -l --name="$free" \
|
|
||||||
| xargs -0 perl -0x3b -pi -e \
|
|
||||||
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s'
|
|
||||||
|
|
||||||
# Use the following to remove redundant uses of kfree inside braces.
|
|
||||||
# Note that -0777 puts perl in slurp-whole-file mode;
|
|
||||||
# but we have plenty of memory, these days...
|
|
||||||
free=kfree
|
|
||||||
git grep -l -z "$free *(" \
|
|
||||||
| xargs -0 useless-if-before-free -l --name="$free" \
|
|
||||||
| xargs -0 perl -0777 -pi -e \
|
|
||||||
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms'
|
|
||||||
|
|
||||||
Be careful that the result of the above transformation is valid.
|
|
||||||
If the matched string is followed by "else", then obviously, it won't be.
|
|
||||||
|
|
||||||
When modifying files, refuse to process anything other than a regular file.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
## Local Variables:
|
|
||||||
## mode: perl
|
|
||||||
## indent-tabs-mode: nil
|
|
||||||
## eval: (add-hook 'before-save-hook 'time-stamp)
|
|
||||||
## time-stamp-line-limit: 50
|
|
||||||
## time-stamp-start: "my $VERSION = '"
|
|
||||||
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
|
||||||
## time-stamp-time-zone: "UTC0"
|
|
||||||
## time-stamp-end: "'; # UTC"
|
|
||||||
## End:
|
|
@@ -1,113 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# List version-controlled file names.
|
|
||||||
|
|
||||||
# Print a version string.
|
|
||||||
scriptversion=2018-03-07.03; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 2006-2019 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 <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
|
|
||||||
# List the specified version-controlled files.
|
|
||||||
# With no argument, list them all. With a single DIRECTORY argument,
|
|
||||||
# list the version-controlled files in that directory.
|
|
||||||
|
|
||||||
# If there's an argument, it must be a single, "."-relative directory name.
|
|
||||||
# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
|
|
||||||
|
|
||||||
postprocess=
|
|
||||||
case $1 in
|
|
||||||
--help) cat <<EOF
|
|
||||||
Usage: $0 [-C SRCDIR] [DIR...]
|
|
||||||
|
|
||||||
Output a list of version-controlled files in DIR (default .), relative to
|
|
||||||
SRCDIR (default .). SRCDIR must be the top directory of a checkout.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--help print this help, then exit
|
|
||||||
--version print version number, then exit
|
|
||||||
-C SRCDIR change directory to SRCDIR before generating list
|
|
||||||
|
|
||||||
Report bugs and patches to <bug-gnulib@gnu.org>.
|
|
||||||
EOF
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
--version)
|
|
||||||
year=`echo "$scriptversion" | sed 's/[^0-9].*//'`
|
|
||||||
cat <<EOF
|
|
||||||
vc-list-files $scriptversion
|
|
||||||
Copyright (C) $year Free Software Foundation, Inc,
|
|
||||||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
|
||||||
This is free software: you are free to change and redistribute it.
|
|
||||||
There is NO WARRANTY, to the extent permitted by law.
|
|
||||||
EOF
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
-C)
|
|
||||||
test "$2" = . || postprocess="| sed 's|^|$2/|'"
|
|
||||||
cd "$2" || exit 1
|
|
||||||
shift; shift ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
test $# = 0 && set .
|
|
||||||
|
|
||||||
for dir
|
|
||||||
do
|
|
||||||
if test -d .git || test -f .git; then
|
|
||||||
test "x$dir" = x. \
|
|
||||||
&& dir= sed_esc= \
|
|
||||||
|| { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
|
|
||||||
# Ignore git symlinks - either they point into the tree, in which case
|
|
||||||
# we don't need to visit the target twice, or they point somewhere
|
|
||||||
# else (often into a submodule), in which case the content does not
|
|
||||||
# belong to this package.
|
|
||||||
eval exec git ls-tree -r 'HEAD:"$dir"' \
|
|
||||||
\| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess
|
|
||||||
elif test -d .hg; then
|
|
||||||
eval exec hg locate '"$dir/*"' $postprocess
|
|
||||||
elif test -d .bzr; then
|
|
||||||
test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
|
|
||||||
eval exec bzr ls -R --versioned '"$dir"' $postprocess
|
|
||||||
elif test -d CVS; then
|
|
||||||
test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
|
|
||||||
if test -x build-aux/cvsu; then
|
|
||||||
eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess
|
|
||||||
elif (cvsu --help) >/dev/null 2>&1; then
|
|
||||||
eval cvsu --find --types=AFGM '"$dir"' $postprocess
|
|
||||||
else
|
|
||||||
eval awk -F/ \''{ \
|
|
||||||
if (!$1 && $3 !~ /^-/) { \
|
|
||||||
f=FILENAME; \
|
|
||||||
if (f ~ /CVS\/Entries$/) \
|
|
||||||
f = substr(f, 1, length(f)-11); \
|
|
||||||
print f $2; \
|
|
||||||
}}'\'' \
|
|
||||||
`find "$dir" -name Entries -print` /dev/null' $postprocess
|
|
||||||
fi
|
|
||||||
elif test -d .svn; then
|
|
||||||
eval exec svn list -R '"$dir"' $postprocess
|
|
||||||
else
|
|
||||||
echo "$0: Failed to determine type of version control used in `pwd`" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC0"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
247
ci/Makefile
247
ci/Makefile
@@ -1,247 +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 environment preparation steps
|
|
||||||
CI_PREPARE_SCRIPT = $(CI_ROOTDIR)/prepare.sh
|
|
||||||
|
|
||||||
# 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 container process to run with current host IDs
|
|
||||||
# so that it can access the passed in build directory
|
|
||||||
CI_UID = $(shell id -u)
|
|
||||||
CI_GID = $(shell id -g)
|
|
||||||
|
|
||||||
# We also need the user's login and home directory to prepare the
|
|
||||||
# environment the way some programs expect it
|
|
||||||
CI_USER_LOGIN = $(shell echo "$$USER")
|
|
||||||
CI_USER_HOME = $(shell echo "$$HOME")
|
|
||||||
|
|
||||||
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)/prepare:$(CI_USER_HOME)/prepare:z \
|
|
||||||
--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))))
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
# --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 \
|
|
||||||
$(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_PREPARE_SCRIPT)" $(CI_SCRATCHDIR)/prepare; \
|
|
||||||
cp "$(CI_BUILD_SCRIPT)" $(CI_SCRATCHDIR)/build; \
|
|
||||||
chmod +x "$(CI_SCRATCHDIR)/prepare" "$(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) \
|
|
||||||
/bin/bash -c ' \
|
|
||||||
$(CI_USER_HOME)/prepare || exit 1; \
|
|
||||||
sudo \
|
|
||||||
--login \
|
|
||||||
--user="#$(CI_UID)" \
|
|
||||||
--group="#$(CI_GID)" \
|
|
||||||
MESON_OPTS="$$MESON_OPTS" \
|
|
||||||
CI_CONT_SRCDIR="$(CI_CONT_SRCDIR)" \
|
|
||||||
CI_MESON_ARGS="$(CI_MESON_ARGS)" \
|
|
||||||
CI_NINJA_ARGS="$(CI_NINJA_ARGS)" \
|
|
||||||
$(CI_COMMAND) || exit 1'
|
|
||||||
@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-list-images:
|
|
||||||
@echo
|
|
||||||
@echo "Available x86 container images:"
|
|
||||||
@echo
|
|
||||||
@sh list-images.sh "$(CI_IMAGE_PREFIX)" | grep -v cross
|
|
||||||
@echo
|
|
||||||
@echo "Available cross-compiler container images:"
|
|
||||||
@echo
|
|
||||||
@sh list-images.sh "$(CI_IMAGE_PREFIX)" | grep cross
|
|
||||||
@echo
|
|
||||||
|
|
||||||
ci-help:
|
|
||||||
@echo "Build libvirt inside containers used for CI"
|
|
||||||
@echo
|
|
||||||
@echo "Available targets:"
|
|
||||||
@echo
|
|
||||||
@echo " ci-build@\$$IMAGE - run a default 'ninja' build"
|
|
||||||
@echo " ci-check@\$$IMAGE - run a 'ninja test'"
|
|
||||||
@echo " ci-shell@\$$IMAGE - run an interactive shell"
|
|
||||||
@echo " ci-list-images - list available images"
|
|
||||||
@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_MESON_ARGS= - extra arguments passed to meson"
|
|
||||||
@echo " CI_NINJA_ARGS= - extra arguments passed to ninja"
|
|
||||||
@echo
|
|
@@ -1,59 +0,0 @@
|
|||||||
==============
|
|
||||||
CI for libvirt
|
|
||||||
==============
|
|
||||||
|
|
||||||
This document provides some information related to the CI capabilities for the
|
|
||||||
libvirt project.
|
|
||||||
|
|
||||||
|
|
||||||
Cirrus CI integration
|
|
||||||
=====================
|
|
||||||
|
|
||||||
libvirt currently supports three non-Linux operating systems: Windows, FreeBSD
|
|
||||||
and macOS. Windows cross-builds can be prepared on Linux by using `MinGW`_, but
|
|
||||||
for both FreeBSD and macOS we need to use the actual operating system, and
|
|
||||||
unfortunately GitLab shared runners are currently not available for either.
|
|
||||||
|
|
||||||
To work around this limitation, we take advantage of `Cirrus CI`_'s free
|
|
||||||
offering: more specifically, we use the `cirrus-run`_ script to trigger Cirrus
|
|
||||||
CI jobs from GitLab CI jobs so that the workaround is almost entirely
|
|
||||||
transparent to users and there's no need to constantly check two separate CI
|
|
||||||
dashboards.
|
|
||||||
|
|
||||||
There is, however, some one-time setup required. If you want FreeBSD and macOS
|
|
||||||
builds to happen when you push to your GitLab repository, you need to
|
|
||||||
|
|
||||||
* set up a GitHub repository for the project, eg. ``yourusername/libvirt``.
|
|
||||||
This repository needs to exist for cirrus-run to work, but it doesn't need to
|
|
||||||
be kept up to date, so you can create it and then forget about it;
|
|
||||||
|
|
||||||
* enable the `Cirrus CI GitHub app`_ for your GitHub account;
|
|
||||||
|
|
||||||
* sign up for Cirrus CI. It's enough to log into the website using your GitHub
|
|
||||||
account;
|
|
||||||
|
|
||||||
* grab an API token from the `Cirrus CI settings`_ page;
|
|
||||||
|
|
||||||
* in the *CI/CD / Variables* section of the settings page for your GitLab
|
|
||||||
repository, create two new variables:
|
|
||||||
|
|
||||||
* ``CIRRUS_GITHUB_REPO``, containing the name of the GitHub repository
|
|
||||||
created earlier, eg. ``yourusername/libvirt``;
|
|
||||||
|
|
||||||
* ``CIRRUS_API_TOKEN``, containing the Cirrus CI API token generated earlier.
|
|
||||||
This variable **must** be marked as *Masked*, because anyone with knowledge
|
|
||||||
of it can impersonate you as far as Cirrus CI is concerned.
|
|
||||||
|
|
||||||
Neither of these variables should be marked as *Protected*, because in
|
|
||||||
general you'll want to be able to trigger Cirrus CI builds from non-protected
|
|
||||||
branches.
|
|
||||||
|
|
||||||
Once this one-time setup is complete, you can just keep pushing to your GitLab
|
|
||||||
repository as usual and you'll automatically get the additional CI coverage.
|
|
||||||
|
|
||||||
|
|
||||||
.. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci
|
|
||||||
.. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/
|
|
||||||
.. _Cirrus CI: https://cirrus-ci.com/
|
|
||||||
.. _MinGW: http://mingw.org/
|
|
||||||
.. _cirrus-run: https://github.com/sio/cirrus-run/
|
|
21
ci/build.sh
21
ci/build.sh
@@ -1,21 +0,0 @@
|
|||||||
# 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,23 +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@"
|
|
||||||
|
|
||||||
build_task:
|
|
||||||
install_script:
|
|
||||||
- @INSTALL_COMMAND@ @PKGS@
|
|
||||||
- @PIP@ install @PYPI_PKGS@
|
|
||||||
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 build --prefix=$(pwd)/install-root
|
|
||||||
- ninja -C build dist
|
|
@@ -1,9 +0,0 @@
|
|||||||
PACKAGING_COMMAND='pkg'
|
|
||||||
CC='/usr/bin/clang'
|
|
||||||
CCACHE='/usr/local/bin/ccache'
|
|
||||||
MAKE='/usr/local/bin/gmake'
|
|
||||||
NINJA='/usr/local/bin/ninja'
|
|
||||||
PYTHON='/usr/local/bin/python3'
|
|
||||||
PIP='/usr/local/bin/pip-3.7'
|
|
||||||
PKGS='augeas autoconf automake avahi bash bash-completion ca_root_nss ccache chrony cppi curl cyrus-sasl dbus diskscrub dnsmasq fusefs-libs gdb gettext gettext-tools git glib gmake gnutls hal libpcap libpciaccess libssh libssh2 libtool libxml2 libxslt lsof ncurses ninja p5-App-cpanminus patch perl5 pkgconf polkit py37-docutils py37-flake8 py37-pip py37-setuptools py37-wheel python3 qemu-utils radvd readline screen sudo vim yajl'
|
|
||||||
PYPI_PKGS='meson==0.54.0'
|
|
@@ -1,9 +0,0 @@
|
|||||||
PACKAGING_COMMAND='pkg'
|
|
||||||
CC='/usr/bin/clang'
|
|
||||||
CCACHE='/usr/local/bin/ccache'
|
|
||||||
MAKE='/usr/local/bin/gmake'
|
|
||||||
NINJA='/usr/local/bin/ninja'
|
|
||||||
PYTHON='/usr/local/bin/python3'
|
|
||||||
PIP='/usr/local/bin/pip-3.7'
|
|
||||||
PKGS='augeas autoconf automake avahi bash bash-completion ca_root_nss ccache chrony cppi curl cyrus-sasl dbus diskscrub dnsmasq fusefs-libs gdb gettext gettext-tools git glib gmake gnutls hal libpcap libpciaccess libssh libssh2 libtool libxml2 libxslt lsof ncurses ninja p5-App-cpanminus patch perl5 pkgconf polkit py37-docutils py37-flake8 py37-pip py37-setuptools py37-wheel python3 qemu-utils radvd readline screen sudo vim yajl'
|
|
||||||
PYPI_PKGS='meson==0.54.0'
|
|
@@ -1,9 +0,0 @@
|
|||||||
PACKAGING_COMMAND='brew'
|
|
||||||
CC='/usr/bin/clang'
|
|
||||||
CCACHE='/usr/local/bin/ccache'
|
|
||||||
MAKE='/usr/local/bin/gmake'
|
|
||||||
NINJA='/usr/local/bin/ninja'
|
|
||||||
PYTHON='/usr/local/bin/python3'
|
|
||||||
PIP='/usr/local/bin/pip3'
|
|
||||||
PKGS='augeas autoconf automake bash bash-completion ccache cpanminus cppi curl dbus dnsmasq docutils flake8 gdb gettext git glib gnutls gpatch libiscsi libpcap libssh libssh2 libtool libxml2 libxslt lsof make ncurses ninja perl pkg-config python3 qemu readline rpcgen screen scrub vim xz yajl'
|
|
||||||
PYPI_PKGS='meson==0.54.0'
|
|
@@ -1,22 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test -z "$1"
|
|
||||||
then
|
|
||||||
echo "syntax: $0 PATH-TO-LCITOOL"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
LCITOOL=$1
|
|
||||||
|
|
||||||
if ! test -x "$LCITOOL"
|
|
||||||
then
|
|
||||||
echo "$LCITOOL is not executable"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
HOSTS=$($LCITOOL hosts | grep -E 'freebsd-12|macos')
|
|
||||||
|
|
||||||
for host in $HOSTS
|
|
||||||
do
|
|
||||||
$LCITOOL variables "$host" libvirt >"$host.vars"
|
|
||||||
done
|
|
@@ -1,36 +0,0 @@
|
|||||||
CI job assets
|
|
||||||
=============
|
|
||||||
|
|
||||||
This directory contains assets used in the automated CI jobs, most
|
|
||||||
notably the Dockerfiles used to build container images in which the
|
|
||||||
CI jobs then run.
|
|
||||||
|
|
||||||
The ``refresh`` script is used to re-create the Dockerfiles using the
|
|
||||||
``lcitool`` command that is provided by repo
|
|
||||||
https://gitlab.com/libvirt/libvirt-ci
|
|
||||||
|
|
||||||
The containers are built during the CI process and cached in the GitLab
|
|
||||||
container registry of the project doing the build. The cached containers
|
|
||||||
can be deleted at any time and will be correctly rebuilt.
|
|
||||||
|
|
||||||
|
|
||||||
Coverity scan integration
|
|
||||||
=========================
|
|
||||||
|
|
||||||
This will be used only by the main repository for master branch by running
|
|
||||||
scheduled pipeline in GitLab.
|
|
||||||
|
|
||||||
The service is proved by `Coverity Scan`_ and requires that the project is
|
|
||||||
registered there to get free coverity analysis which we already have for
|
|
||||||
`libvirt project`_.
|
|
||||||
|
|
||||||
To run the coverity job it requires two new variables:
|
|
||||||
|
|
||||||
* ``COVERITY_SCAN_PROJECT_NAME``, containing the `libvirt project`_
|
|
||||||
name.
|
|
||||||
|
|
||||||
* ``COVERITY_SCAN_TOKEN``, token visible to admins of `libvirt project`_
|
|
||||||
|
|
||||||
|
|
||||||
.. _Coverity Scan: https://scan.coverity.com/
|
|
||||||
.. _libvirt project: https://scan.coverity.com/projects/libvirt
|
|
@@ -1,140 +0,0 @@
|
|||||||
FROM centos:7
|
|
||||||
|
|
||||||
RUN echo -e '[openvz]\n\
|
|
||||||
name=OpenVZ addons\n\
|
|
||||||
baseurl=https://download.openvz.org/virtuozzo/releases/openvz-7.0.11-235/x86_64/os/\n\
|
|
||||||
enabled=1\n\
|
|
||||||
gpgcheck=1\n\
|
|
||||||
skip_if_unavailable=0\n\
|
|
||||||
metadata_expire=6h\n\
|
|
||||||
priority=90\n\
|
|
||||||
includepkgs=libprl*' > /etc/yum.repos.d/openvz.repo && \
|
|
||||||
echo -e '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\
|
|
||||||
Version: GnuPG v2.0.22 (GNU/Linux)\n\
|
|
||||||
\n\
|
|
||||||
mI0EVl80nQEEAKrEeyeTCwrzS9kYedZ/sAc/GUqlb81C7pA9SaR3fyck5mVw1Ogk\n\
|
|
||||||
YdmNBPM2kY7QDxR9F0EpSpnxSCAXZXugsQ8KzZ0DRLVeBDQyGs9IGK5hI0zzxIil\n\
|
|
||||||
BzfvIexLiQQhLy7YlIi8Jt/uUqKkW0pIMNMGcduY97VATtczpncpkmSzABEBAAG0\n\
|
|
||||||
SFZpcnR1b3p6byBUZWFtIChHUEcga2V5IHNpZ25hdHVyZSBmb3IgcGFja2FnZXMp\n\
|
|
||||||
IDxzZWN1cml0eUB2aXJ0dW96em8uY29tPoi5BBMBAgAjBQJWXzSdAhsDBwsJCAcD\n\
|
|
||||||
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQygt9GUTNrSruIgP/er70Eyo73A1gfrjv\n\
|
|
||||||
oPUkyo4rslVRZu3qqCwoMFtJc/Z/UxWgEka1buorlcGLa6eO/EZ49c0n+KGa4Kvt\n\
|
|
||||||
EUboIq0yEu5i0FyAj92ifm+hNhoAbGfm0cZ4/fD0oGr3l8OsQo4+iHX4xAPwFe7Y\n\
|
|
||||||
zABuB8I1ZDZ4OIp5tDfTTuF2LT24jQRWXzSdAQQAog2Aqb+Ptl68O7cQhWLjVGkj\n\
|
|
||||||
yyigZrdeReLx3HloKJPBeQ/kA6uvMJc/IYS3uppMWXv9v+QenS6uhP1TUJ2k9FvM\n\
|
|
||||||
t94MQZfALN7Vpf8AF+UeWu4Ru+y4BNzcFhrPhIFNFChOR2QqW6FkgE57D9I177NC\n\
|
|
||||||
oJMyrlNe8wcGa178An8AEQEAAYifBBgBAgAJBQJWXzSdAhsMAAoJEMoLfRlEza0q\n\
|
|
||||||
bKwD/3+OFVIEXnIv5XgdGRNX5fHggsUN1bb8gva7HANRlKdd4LD8foDM3F/yv/3V\n\
|
|
||||||
igG14D5EjKz56SaBDNgiI4++hOzb2M8jhAsR86jxkXFrrP1U3ZNRKg6av9DPFAPS\n\
|
|
||||||
WEiJKtQrZDJloqtyi/mmRa1VsV7RYR0VPJjhK/R8EQ7Ysshy\n\
|
|
||||||
=fRMg\n\
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----' > /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \
|
|
||||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \
|
|
||||||
yum install -y epel-release && \
|
|
||||||
yum update -y && \
|
|
||||||
yum install -y \
|
|
||||||
audit-libs-devel \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-common \
|
|
||||||
glibc-devel \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
iproute \
|
|
||||||
iscsi-initiator-utils \
|
|
||||||
kmod \
|
|
||||||
libacl-devel \
|
|
||||||
libattr-devel \
|
|
||||||
libblkid-devel \
|
|
||||||
libcap-ng-devel \
|
|
||||||
libcurl-devel \
|
|
||||||
libiscsi-devel \
|
|
||||||
libnl3-devel \
|
|
||||||
libpcap-devel \
|
|
||||||
libpciaccess-devel \
|
|
||||||
libprlsdk-devel \
|
|
||||||
librbd1-devel \
|
|
||||||
libselinux-devel \
|
|
||||||
libssh-devel \
|
|
||||||
libssh2-devel \
|
|
||||||
libtirpc-devel \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
netcf-devel \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numactl-devel \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
python36-docutils \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz \
|
|
||||||
yajl-devel && \
|
|
||||||
yum autoremove -y && \
|
|
||||||
yum clean all -y && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.0
|
|
||||||
|
|
||||||
ENV LANG "en_US.UTF-8"
|
|
||||||
|
|
||||||
ENV MAKE "/usr/bin/make"
|
|
||||||
ENV NINJA "/usr/bin/ninja-build"
|
|
||||||
ENV PYTHON "/usr/bin/python3"
|
|
||||||
|
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
@@ -1,114 +0,0 @@
|
|||||||
FROM centos:8
|
|
||||||
|
|
||||||
RUN dnf install 'dnf-command(config-manager)' -y && \
|
|
||||||
dnf config-manager --set-enabled -y PowerTools && \
|
|
||||||
dnf install -y epel-release && \
|
|
||||||
dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
audit-libs-devel \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
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 \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
netcf-devel \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numactl-devel \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz \
|
|
||||||
yajl-devel && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,115 +0,0 @@
|
|||||||
FROM centos:8
|
|
||||||
|
|
||||||
RUN dnf install -y centos-release-stream && \
|
|
||||||
dnf install 'dnf-command(config-manager)' -y && \
|
|
||||||
dnf config-manager --set-enabled -y Stream-PowerTools && \
|
|
||||||
dnf install -y epel-release && \
|
|
||||||
dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
audit-libs-devel \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
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 \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
netcf-devel \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numactl-devel \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz \
|
|
||||||
yajl-devel && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,140 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture arm64 && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-aarch64-linux-gnu \
|
|
||||||
libacl1-dev:arm64 \
|
|
||||||
libapparmor-dev:arm64 \
|
|
||||||
libattr1-dev:arm64 \
|
|
||||||
libaudit-dev:arm64 \
|
|
||||||
libavahi-client-dev:arm64 \
|
|
||||||
libblkid-dev:arm64 \
|
|
||||||
libc6-dev:arm64 \
|
|
||||||
libcap-ng-dev:arm64 \
|
|
||||||
libcurl4-gnutls-dev:arm64 \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:arm64 && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "aarch64-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture armel && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-arm-linux-gnueabi \
|
|
||||||
libacl1-dev:armel \
|
|
||||||
libapparmor-dev:armel \
|
|
||||||
libattr1-dev:armel \
|
|
||||||
libaudit-dev:armel \
|
|
||||||
libavahi-client-dev:armel \
|
|
||||||
libblkid-dev:armel \
|
|
||||||
libc6-dev:armel \
|
|
||||||
libcap-ng-dev:armel \
|
|
||||||
libcurl4-gnutls-dev:armel \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:armel && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "arm-linux-gnueabi"
|
|
||||||
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi"
|
|
||||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
|
|
@@ -1,140 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture armhf && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-arm-linux-gnueabihf \
|
|
||||||
libacl1-dev:armhf \
|
|
||||||
libapparmor-dev:armhf \
|
|
||||||
libattr1-dev:armhf \
|
|
||||||
libaudit-dev:armhf \
|
|
||||||
libavahi-client-dev:armhf \
|
|
||||||
libblkid-dev:armhf \
|
|
||||||
libc6-dev:armhf \
|
|
||||||
libcap-ng-dev:armhf \
|
|
||||||
libcurl4-gnutls-dev:armhf \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:armhf && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "arm-linux-gnueabihf"
|
|
||||||
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf"
|
|
||||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture i386 && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-i686-linux-gnu \
|
|
||||||
libacl1-dev:i386 \
|
|
||||||
libapparmor-dev:i386 \
|
|
||||||
libattr1-dev:i386 \
|
|
||||||
libaudit-dev:i386 \
|
|
||||||
libavahi-client-dev:i386 \
|
|
||||||
libblkid-dev:i386 \
|
|
||||||
libc6-dev:i386 \
|
|
||||||
libcap-ng-dev:i386 \
|
|
||||||
libcurl4-gnutls-dev:i386 \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:i386 && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "i686-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=i686-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture mips && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-mips-linux-gnu \
|
|
||||||
libacl1-dev:mips \
|
|
||||||
libapparmor-dev:mips \
|
|
||||||
libattr1-dev:mips \
|
|
||||||
libaudit-dev:mips \
|
|
||||||
libavahi-client-dev:mips \
|
|
||||||
libblkid-dev:mips \
|
|
||||||
libc6-dev:mips \
|
|
||||||
libcap-ng-dev:mips \
|
|
||||||
libcurl4-gnutls-dev:mips \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:mips && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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 = 'little'" > /usr/local/share/meson/cross/mips-linux-gnu
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "mips-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=mips-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=mips-linux-gnu"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture mips64el && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-mips64el-linux-gnuabi64 \
|
|
||||||
libacl1-dev:mips64el \
|
|
||||||
libapparmor-dev:mips64el \
|
|
||||||
libattr1-dev:mips64el \
|
|
||||||
libaudit-dev:mips64el \
|
|
||||||
libavahi-client-dev:mips64el \
|
|
||||||
libblkid-dev:mips64el \
|
|
||||||
libc6-dev:mips64el \
|
|
||||||
libcap-ng-dev:mips64el \
|
|
||||||
libcurl4-gnutls-dev:mips64el \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:mips64el && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "mips64el-linux-gnuabi64"
|
|
||||||
ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64"
|
|
||||||
ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture mipsel && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-mipsel-linux-gnu \
|
|
||||||
libacl1-dev:mipsel \
|
|
||||||
libapparmor-dev:mipsel \
|
|
||||||
libattr1-dev:mipsel \
|
|
||||||
libaudit-dev:mipsel \
|
|
||||||
libavahi-client-dev:mipsel \
|
|
||||||
libblkid-dev:mipsel \
|
|
||||||
libc6-dev:mipsel \
|
|
||||||
libcap-ng-dev:mipsel \
|
|
||||||
libcurl4-gnutls-dev:mipsel \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:mipsel && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "mipsel-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture ppc64el && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-powerpc64le-linux-gnu \
|
|
||||||
libacl1-dev:ppc64el \
|
|
||||||
libapparmor-dev:ppc64el \
|
|
||||||
libattr1-dev:ppc64el \
|
|
||||||
libaudit-dev:ppc64el \
|
|
||||||
libavahi-client-dev:ppc64el \
|
|
||||||
libblkid-dev:ppc64el \
|
|
||||||
libc6-dev:ppc64el \
|
|
||||||
libcap-ng-dev:ppc64el \
|
|
||||||
libcurl4-gnutls-dev:ppc64el \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:ppc64el && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "powerpc64le-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
|
|
@@ -1,139 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture s390x && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-s390x-linux-gnu \
|
|
||||||
libacl1-dev:s390x \
|
|
||||||
libapparmor-dev:s390x \
|
|
||||||
libattr1-dev:s390x \
|
|
||||||
libaudit-dev:s390x \
|
|
||||||
libavahi-client-dev:s390x \
|
|
||||||
libblkid-dev:s390x \
|
|
||||||
libc6-dev:s390x \
|
|
||||||
libcap-ng-dev:s390x \
|
|
||||||
libcurl4-gnutls-dev:s390x \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:s390x && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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 = 'little'" > /usr/local/share/meson/cross/s390x-linux-gnu
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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"
|
|
||||||
|
|
||||||
ENV ABI "s390x-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=s390x-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
|
|
@@ -1,117 +0,0 @@
|
|||||||
FROM debian:10
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libacl1-dev \
|
|
||||||
libapparmor-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libaudit-dev \
|
|
||||||
libavahi-client-dev \
|
|
||||||
libblkid-dev \
|
|
||||||
libc-dev-bin \
|
|
||||||
libc6-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdbus-1-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 \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libudev-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxml2-utils \
|
|
||||||
libyajl-dev \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-dev \
|
|
||||||
vim \
|
|
||||||
wireshark-dev \
|
|
||||||
xfslibs-dev \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,138 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture arm64 && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-aarch64-linux-gnu \
|
|
||||||
libacl1-dev:arm64 \
|
|
||||||
libapparmor-dev:arm64 \
|
|
||||||
libattr1-dev:arm64 \
|
|
||||||
libaudit-dev:arm64 \
|
|
||||||
libavahi-client-dev:arm64 \
|
|
||||||
libblkid-dev:arm64 \
|
|
||||||
libc6-dev:arm64 \
|
|
||||||
libcap-ng-dev:arm64 \
|
|
||||||
libcurl4-gnutls-dev:arm64 \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:arm64 && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "aarch64-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
|
|
@@ -1,137 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture armel && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-arm-linux-gnueabi \
|
|
||||||
libacl1-dev:armel \
|
|
||||||
libapparmor-dev:armel \
|
|
||||||
libattr1-dev:armel \
|
|
||||||
libaudit-dev:armel \
|
|
||||||
libavahi-client-dev:armel \
|
|
||||||
libblkid-dev:armel \
|
|
||||||
libc6-dev:armel \
|
|
||||||
libcap-ng-dev:armel \
|
|
||||||
libcurl4-gnutls-dev:armel \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:armel && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "arm-linux-gnueabi"
|
|
||||||
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi"
|
|
||||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
|
|
@@ -1,138 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture armhf && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-arm-linux-gnueabihf \
|
|
||||||
libacl1-dev:armhf \
|
|
||||||
libapparmor-dev:armhf \
|
|
||||||
libattr1-dev:armhf \
|
|
||||||
libaudit-dev:armhf \
|
|
||||||
libavahi-client-dev:armhf \
|
|
||||||
libblkid-dev:armhf \
|
|
||||||
libc6-dev:armhf \
|
|
||||||
libcap-ng-dev:armhf \
|
|
||||||
libcurl4-gnutls-dev:armhf \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:armhf && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "arm-linux-gnueabihf"
|
|
||||||
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf"
|
|
||||||
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
|
|
@@ -1,137 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture i386 && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-i686-linux-gnu \
|
|
||||||
libacl1-dev:i386 \
|
|
||||||
libapparmor-dev:i386 \
|
|
||||||
libattr1-dev:i386 \
|
|
||||||
libaudit-dev:i386 \
|
|
||||||
libavahi-client-dev:i386 \
|
|
||||||
libblkid-dev:i386 \
|
|
||||||
libc6-dev:i386 \
|
|
||||||
libcap-ng-dev:i386 \
|
|
||||||
libcurl4-gnutls-dev:i386 \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:i386 && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "i686-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=i686-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
|
|
@@ -1,137 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture mips64el && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-mips64el-linux-gnuabi64 \
|
|
||||||
libacl1-dev:mips64el \
|
|
||||||
libapparmor-dev:mips64el \
|
|
||||||
libattr1-dev:mips64el \
|
|
||||||
libaudit-dev:mips64el \
|
|
||||||
libavahi-client-dev:mips64el \
|
|
||||||
libblkid-dev:mips64el \
|
|
||||||
libc6-dev:mips64el \
|
|
||||||
libcap-ng-dev:mips64el \
|
|
||||||
libcurl4-gnutls-dev:mips64el \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:mips64el && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "mips64el-linux-gnuabi64"
|
|
||||||
ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64"
|
|
||||||
ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
|
|
@@ -1,137 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture mipsel && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-mipsel-linux-gnu \
|
|
||||||
libacl1-dev:mipsel \
|
|
||||||
libapparmor-dev:mipsel \
|
|
||||||
libattr1-dev:mipsel \
|
|
||||||
libaudit-dev:mipsel \
|
|
||||||
libavahi-client-dev:mipsel \
|
|
||||||
libblkid-dev:mipsel \
|
|
||||||
libc6-dev:mipsel \
|
|
||||||
libcap-ng-dev:mipsel \
|
|
||||||
libcurl4-gnutls-dev:mipsel \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:mipsel && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "mipsel-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
|
|
@@ -1,137 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture ppc64el && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-powerpc64le-linux-gnu \
|
|
||||||
libacl1-dev:ppc64el \
|
|
||||||
libapparmor-dev:ppc64el \
|
|
||||||
libattr1-dev:ppc64el \
|
|
||||||
libaudit-dev:ppc64el \
|
|
||||||
libavahi-client-dev:ppc64el \
|
|
||||||
libblkid-dev:ppc64el \
|
|
||||||
libc6-dev:ppc64el \
|
|
||||||
libcap-ng-dev:ppc64el \
|
|
||||||
libcurl4-gnutls-dev:ppc64el \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:ppc64el && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "powerpc64le-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
|
|
@@ -1,137 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libc-dev-bin \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libxml2-utils \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
dpkg --add-architecture s390x && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y dpkg-dev && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
gcc-s390x-linux-gnu \
|
|
||||||
libacl1-dev:s390x \
|
|
||||||
libapparmor-dev:s390x \
|
|
||||||
libattr1-dev:s390x \
|
|
||||||
libaudit-dev:s390x \
|
|
||||||
libavahi-client-dev:s390x \
|
|
||||||
libblkid-dev:s390x \
|
|
||||||
libc6-dev:s390x \
|
|
||||||
libcap-ng-dev:s390x \
|
|
||||||
libcurl4-gnutls-dev:s390x \
|
|
||||||
libdbus-1-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 \
|
|
||||||
xfslibs-dev:s390x && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
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 = 'little'" > /usr/local/share/meson/cross/s390x-linux-gnu
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "s390x-linux-gnu"
|
|
||||||
ENV CONFIGURE_OPTS "--host=s390x-linux-gnu"
|
|
||||||
ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
|
|
@@ -1,115 +0,0 @@
|
|||||||
FROM debian:sid
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libacl1-dev \
|
|
||||||
libapparmor-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libaudit-dev \
|
|
||||||
libavahi-client-dev \
|
|
||||||
libblkid-dev \
|
|
||||||
libc-dev-bin \
|
|
||||||
libc6-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdbus-1-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 \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libudev-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxml2-utils \
|
|
||||||
libyajl-dev \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-dev \
|
|
||||||
vim \
|
|
||||||
wireshark-dev \
|
|
||||||
xfslibs-dev \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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/$(basename /usr/bin/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,115 +0,0 @@
|
|||||||
FROM fedora:31
|
|
||||||
|
|
||||||
RUN dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
audit-libs-devel \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cppi \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
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 \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
netcf-devel \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numactl-devel \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
sheepdog \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xen-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz \
|
|
||||||
yajl-devel \
|
|
||||||
zfs-fuse && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,113 +0,0 @@
|
|||||||
FROM fedora:32
|
|
||||||
|
|
||||||
RUN dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
audit-libs-devel \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cppi \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
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 \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
netcf-devel \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numactl-devel \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
sheepdog \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xen-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz \
|
|
||||||
yajl-devel \
|
|
||||||
zfs-fuse && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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/$(basename /usr/bin/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,96 +0,0 @@
|
|||||||
FROM fedora:rawhide
|
|
||||||
|
|
||||||
RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
|
|
||||||
dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cppi \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glibc-langpack-en \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
iscsi-initiator-utils \
|
|
||||||
kmod \
|
|
||||||
libtool \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
sheepdog \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xz \
|
|
||||||
zfs-fuse && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN dnf install -y \
|
|
||||||
mingw32-curl \
|
|
||||||
mingw32-dbus \
|
|
||||||
mingw32-dlfcn \
|
|
||||||
mingw32-gcc \
|
|
||||||
mingw32-gettext \
|
|
||||||
mingw32-glib2 \
|
|
||||||
mingw32-gnutls \
|
|
||||||
mingw32-headers \
|
|
||||||
mingw32-libssh2 \
|
|
||||||
mingw32-libxml2 \
|
|
||||||
mingw32-pkg-config \
|
|
||||||
mingw32-portablexdr \
|
|
||||||
mingw32-readline && \
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "i686-w64-mingw32"
|
|
||||||
ENV CONFIGURE_OPTS "--host=i686-w64-mingw32"
|
|
||||||
ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
|
|
@@ -1,96 +0,0 @@
|
|||||||
FROM fedora:rawhide
|
|
||||||
|
|
||||||
RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
|
|
||||||
dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cppi \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glibc-langpack-en \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
iscsi-initiator-utils \
|
|
||||||
kmod \
|
|
||||||
libtool \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
sheepdog \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
vim \
|
|
||||||
xz \
|
|
||||||
zfs-fuse && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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-$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN dnf install -y \
|
|
||||||
mingw64-curl \
|
|
||||||
mingw64-dbus \
|
|
||||||
mingw64-dlfcn \
|
|
||||||
mingw64-gcc \
|
|
||||||
mingw64-gettext \
|
|
||||||
mingw64-glib2 \
|
|
||||||
mingw64-gnutls \
|
|
||||||
mingw64-headers \
|
|
||||||
mingw64-libssh2 \
|
|
||||||
mingw64-libxml2 \
|
|
||||||
mingw64-pkg-config \
|
|
||||||
mingw64-portablexdr \
|
|
||||||
mingw64-readline && \
|
|
||||||
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"
|
|
||||||
|
|
||||||
ENV ABI "x86_64-w64-mingw32"
|
|
||||||
ENV CONFIGURE_OPTS "--host=x86_64-w64-mingw32"
|
|
||||||
ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
|
|
@@ -1,114 +0,0 @@
|
|||||||
FROM fedora:rawhide
|
|
||||||
|
|
||||||
RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
|
|
||||||
dnf update -y && \
|
|
||||||
dnf install -y \
|
|
||||||
audit-libs-devel \
|
|
||||||
augeas \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cppi \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
firewalld-filesystem \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
iproute \
|
|
||||||
iproute-tc \
|
|
||||||
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 \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
meson \
|
|
||||||
net-tools \
|
|
||||||
netcf-devel \
|
|
||||||
nfs-utils \
|
|
||||||
ninja-build \
|
|
||||||
numactl-devel \
|
|
||||||
numad \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-img \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
sheepdog \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xen-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz \
|
|
||||||
yajl-devel \
|
|
||||||
zfs-fuse && \
|
|
||||||
dnf autoremove -y && \
|
|
||||||
dnf clean all -y && \
|
|
||||||
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/$(basename /usr/bin/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,111 +0,0 @@
|
|||||||
FROM opensuse/leap:15.1
|
|
||||||
|
|
||||||
RUN zypper update -y && \
|
|
||||||
zypper install -y \
|
|
||||||
audit-devel \
|
|
||||||
augeas \
|
|
||||||
augeas-lenses \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
avahi-devel \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cppi \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
dbus-1-devel \
|
|
||||||
device-mapper-devel \
|
|
||||||
dnsmasq \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
fuse-devel \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
gettext-devel \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-devel \
|
|
||||||
glibc-locale \
|
|
||||||
glusterfs-devel \
|
|
||||||
iproute2 \
|
|
||||||
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 \
|
|
||||||
libtool \
|
|
||||||
libudev-devel \
|
|
||||||
libwsman-devel \
|
|
||||||
libxml2 \
|
|
||||||
libxml2-devel \
|
|
||||||
libxslt \
|
|
||||||
libyajl-devel \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-utils \
|
|
||||||
ninja \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
parted-devel \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
perl-App-cpanminus \
|
|
||||||
pkgconfig \
|
|
||||||
polkit \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-flake8 \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-tools \
|
|
||||||
radvd \
|
|
||||||
readline-devel \
|
|
||||||
rpcgen \
|
|
||||||
rpm-build \
|
|
||||||
sanlock-devel \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
vim \
|
|
||||||
wireshark-devel \
|
|
||||||
xen-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
xz && \
|
|
||||||
zypper clean --all && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,119 +0,0 @@
|
|||||||
FROM ubuntu:18.04
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
glusterfs-common \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libacl1-dev \
|
|
||||||
libapparmor-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libaudit-dev \
|
|
||||||
libavahi-client-dev \
|
|
||||||
libblkid-dev \
|
|
||||||
libc-dev-bin \
|
|
||||||
libc6-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdbus-1-dev \
|
|
||||||
libdevmapper-dev \
|
|
||||||
libfuse-dev \
|
|
||||||
libglib2.0-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 \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libudev-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxml2-utils \
|
|
||||||
libyajl-dev \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
sheepdog \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-dev \
|
|
||||||
vim \
|
|
||||||
wireshark-dev \
|
|
||||||
xfslibs-dev \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,118 +0,0 @@
|
|||||||
FROM ubuntu:20.04
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get dist-upgrade -y && \
|
|
||||||
apt-get install --no-install-recommends -y \
|
|
||||||
augeas-lenses \
|
|
||||||
augeas-tools \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
autopoint \
|
|
||||||
bash \
|
|
||||||
bash-completion \
|
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
chrony \
|
|
||||||
clang \
|
|
||||||
cpanminus \
|
|
||||||
dnsmasq-base \
|
|
||||||
dwarves \
|
|
||||||
ebtables \
|
|
||||||
flake8 \
|
|
||||||
gcc \
|
|
||||||
gdb \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
iproute2 \
|
|
||||||
kmod \
|
|
||||||
libacl1-dev \
|
|
||||||
libapparmor-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libaudit-dev \
|
|
||||||
libavahi-client-dev \
|
|
||||||
libblkid-dev \
|
|
||||||
libc-dev-bin \
|
|
||||||
libc6-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdbus-1-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 \
|
|
||||||
libtool \
|
|
||||||
libtool-bin \
|
|
||||||
libudev-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxml2-utils \
|
|
||||||
libyajl-dev \
|
|
||||||
locales \
|
|
||||||
lsof \
|
|
||||||
lvm2 \
|
|
||||||
make \
|
|
||||||
net-tools \
|
|
||||||
nfs-common \
|
|
||||||
ninja-build \
|
|
||||||
numad \
|
|
||||||
open-iscsi \
|
|
||||||
parted \
|
|
||||||
patch \
|
|
||||||
perl \
|
|
||||||
pkgconf \
|
|
||||||
policykit-1 \
|
|
||||||
python3 \
|
|
||||||
python3-docutils \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-wheel \
|
|
||||||
qemu-utils \
|
|
||||||
radvd \
|
|
||||||
screen \
|
|
||||||
scrub \
|
|
||||||
strace \
|
|
||||||
sudo \
|
|
||||||
systemtap-sdt-dev \
|
|
||||||
vim \
|
|
||||||
wireshark-dev \
|
|
||||||
xfslibs-dev \
|
|
||||||
xsltproc \
|
|
||||||
xz-utils \
|
|
||||||
zfs-fuse && \
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get autoclean -y && \
|
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure locales && \
|
|
||||||
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/$(basename /usr/bin/gcc)
|
|
||||||
|
|
||||||
RUN pip3 install \
|
|
||||||
meson==0.54.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,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if test -z "$1"
|
|
||||||
then
|
|
||||||
echo "syntax: $0 PATH-TO-LCITOOL"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
LCITOOL=$1
|
|
||||||
|
|
||||||
if ! test -x "$LCITOOL"
|
|
||||||
then
|
|
||||||
echo "$LCITOOL is not executable"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
HOSTS=$($LCITOOL hosts | grep -Ev 'freebsd|macos')
|
|
||||||
|
|
||||||
for host in $HOSTS
|
|
||||||
do
|
|
||||||
case "$host" in
|
|
||||||
libvirt-fedora-rawhide)
|
|
||||||
for cross in mingw32 mingw64
|
|
||||||
do
|
|
||||||
$LCITOOL dockerfile $host libvirt --cross $cross >$host-cross-$cross.Dockerfile
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
libvirt-debian-*)
|
|
||||||
for cross in aarch64 armv6l armv7l i686 mips mips64el mipsel ppc64le s390x
|
|
||||||
do
|
|
||||||
if test "$host-cross-$cross" = "libvirt-debian-9-cross-i686" ||
|
|
||||||
test "$host-cross-$cross" = "libvirt-debian-sid-cross-mips"
|
|
||||||
then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
$LCITOOL dockerfile $host libvirt --cross $cross >$host-cross-$cross.Dockerfile
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
$LCITOOL dockerfile $host libvirt >$host.Dockerfile
|
|
||||||
done
|
|
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
prefix="${1##registry.gitlab.com/}"
|
|
||||||
|
|
||||||
PROJECT_ID=192693
|
|
||||||
|
|
||||||
all_repos() {
|
|
||||||
curl -s "https://gitlab.com/api/v4/projects/$PROJECT_ID/registry/repositories?per_page=100" \
|
|
||||||
| tr , '\n' | grep '"path":' | sed 's,"path":",,g;s,"$,,g'
|
|
||||||
}
|
|
||||||
|
|
||||||
all_repos | grep "^$prefix" | sed "s,^$prefix,,g" | while read repo; do
|
|
||||||
echo " $repo"
|
|
||||||
done | sort -u
|
|
@@ -1,13 +0,0 @@
|
|||||||
# This script is used to prepare the environment that will be used
|
|
||||||
# to build libvirt inside the container.
|
|
||||||
#
|
|
||||||
# You can customize it to your liking, or alternatively use a
|
|
||||||
# completely different script by passing
|
|
||||||
#
|
|
||||||
# CI_PREPARE_SCRIPT=/path/to/your/prepare/script
|
|
||||||
#
|
|
||||||
# to make.
|
|
||||||
#
|
|
||||||
# Note that this script will have root privileges inside the
|
|
||||||
# container, so it can be used for things like installing additional
|
|
||||||
# packages.
|
|
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
|
67
config.h
67
config.h
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <meson-config.h>
|
|
||||||
|
|
||||||
/* Enable compile-time and run-time bounds-checking, and some warnings,
|
|
||||||
* without upsetting newer glibc. */
|
|
||||||
|
|
||||||
#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
|
|
||||||
# define _FORTIFY_SOURCE 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __GNUC__
|
|
||||||
# error "Libvirt requires GCC >= 4.8, or Clang"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define __GNUC_PREREQ to a sane default if it isn't yet defined.
|
|
||||||
* This is done here so that it's included as early as possible;
|
|
||||||
*/
|
|
||||||
#ifndef __GNUC_PREREQ
|
|
||||||
# define __GNUC_PREREQ(maj, min) \
|
|
||||||
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__clang_major__) && defined(__clang_minor__)
|
|
||||||
# ifdef __apple_build_version__
|
|
||||||
# if __clang_major__ < 5 || (__clang_major__ == 5 && __clang_minor__ < 1)
|
|
||||||
# error You need at least XCode Clang v5.1 to compile QEMU
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
|
|
||||||
# error You need at least Clang v3.4 to compile QEMU
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
|
|
||||||
# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
|
|
||||||
# error You need at least GCC v4.8 to compile QEMU
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# error You either need at least GCC 4.8 or Clang 3.4 or XCode Clang 5.1 to compile libvirt
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Ask for warnings for anything that was marked deprecated in
|
|
||||||
* the defined version, or before. It is a candidate for rewrite.
|
|
||||||
*/
|
|
||||||
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_48
|
|
||||||
|
|
||||||
/* Ask for warnings if code tries to use function that did not
|
|
||||||
* exist in the defined version. These risk breaking builds
|
|
||||||
*/
|
|
||||||
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_48
|
|
@@ -1,16 +0,0 @@
|
|||||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
|
||||||
#if WIN32
|
|
||||||
# include <winsock2.h> /* avoid mingw pollution on DATADIR */
|
|
||||||
#endif
|
|
||||||
#mesondefine BINDIR
|
|
||||||
#mesondefine DATADIR
|
|
||||||
#mesondefine LIBDIR
|
|
||||||
#mesondefine LIBEXECDIR
|
|
||||||
#mesondefine LOCALEDIR
|
|
||||||
#mesondefine LOCALSTATEDIR
|
|
||||||
#mesondefine MANDIR
|
|
||||||
#mesondefine PKGDATADIR
|
|
||||||
#mesondefine PREFIX
|
|
||||||
#mesondefine RUNSTATEDIR
|
|
||||||
#mesondefine SBINDIR
|
|
||||||
#mesondefine SYSCONFDIR
|
|
2992
configure.ac
Normal file
2992
configure.ac
Normal file
File diff suppressed because it is too large
Load Diff
481
daemon/Makefile.am
Normal file
481
daemon/Makefile.am
Normal file
@@ -0,0 +1,481 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
## Copyright (C) 2005-2014 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/>.
|
||||||
|
|
||||||
|
INCLUDES = \
|
||||||
|
-I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-I$(top_builddir)/include -I$(top_srcdir)/include \
|
||||||
|
-I$(top_builddir)/src -I$(top_srcdir)/src \
|
||||||
|
-I$(top_srcdir)/src/util \
|
||||||
|
-I$(top_srcdir)/src/conf \
|
||||||
|
-I$(top_srcdir)/src/rpc \
|
||||||
|
-I$(top_srcdir)/src/remote \
|
||||||
|
-I$(top_srcdir)/src/access \
|
||||||
|
$(GETTEXT_CPPFLAGS)
|
||||||
|
|
||||||
|
CLEANFILES =
|
||||||
|
|
||||||
|
DAEMON_GENERATED = \
|
||||||
|
remote_dispatch.h \
|
||||||
|
lxc_dispatch.h \
|
||||||
|
qemu_dispatch.h \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
DAEMON_SOURCES = \
|
||||||
|
libvirtd.c libvirtd.h \
|
||||||
|
remote.c remote.h \
|
||||||
|
stream.c stream.h \
|
||||||
|
$(DAEMON_GENERATED)
|
||||||
|
|
||||||
|
LIBVIRTD_CONF_SOURCES = libvirtd-config.c libvirtd-config.h
|
||||||
|
|
||||||
|
DISTCLEANFILES =
|
||||||
|
EXTRA_DIST = \
|
||||||
|
remote_dispatch.h \
|
||||||
|
lxc_dispatch.h \
|
||||||
|
qemu_dispatch.h \
|
||||||
|
libvirtd.conf \
|
||||||
|
libvirtd.init.in \
|
||||||
|
libvirtd.upstart \
|
||||||
|
libvirtd.policy.in \
|
||||||
|
libvirtd.sasl \
|
||||||
|
libvirtd.service.in \
|
||||||
|
libvirtd.socket.in \
|
||||||
|
libvirtd.sysconf \
|
||||||
|
libvirtd.sysctl \
|
||||||
|
libvirtd.aug \
|
||||||
|
libvirtd.logrotate.in \
|
||||||
|
libvirtd.qemu.logrotate.in \
|
||||||
|
libvirtd.lxc.logrotate.in \
|
||||||
|
libvirtd.uml.logrotate.in \
|
||||||
|
test_libvirtd.aug.in \
|
||||||
|
THREADS.txt \
|
||||||
|
libvirtd.pod.in \
|
||||||
|
libvirtd.8.in \
|
||||||
|
$(DAEMON_SOURCES) \
|
||||||
|
$(LIBVIRTD_CONF_SOURCES) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
BUILT_SOURCES =
|
||||||
|
|
||||||
|
REMOTE_PROTOCOL = $(top_srcdir)/src/remote/remote_protocol.x
|
||||||
|
LXC_PROTOCOL = $(top_srcdir)/src/remote/lxc_protocol.x
|
||||||
|
QEMU_PROTOCOL = $(top_srcdir)/src/remote/qemu_protocol.x
|
||||||
|
|
||||||
|
remote_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
|
||||||
|
$(REMOTE_PROTOCOL)
|
||||||
|
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
|
||||||
|
--mode=server remote REMOTE $(REMOTE_PROTOCOL) \
|
||||||
|
> $(srcdir)/remote_dispatch.h
|
||||||
|
|
||||||
|
lxc_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
|
||||||
|
$(LXC_PROTOCOL)
|
||||||
|
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
|
||||||
|
--mode=server lxc LXC $(LXC_PROTOCOL) \
|
||||||
|
> $(srcdir)/lxc_dispatch.h
|
||||||
|
|
||||||
|
qemu_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
|
||||||
|
$(QEMU_PROTOCOL)
|
||||||
|
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
|
||||||
|
--mode=server qemu QEMU $(QEMU_PROTOCOL) \
|
||||||
|
> $(srcdir)/qemu_dispatch.h
|
||||||
|
|
||||||
|
if WITH_LIBVIRTD
|
||||||
|
|
||||||
|
# Build a convenience library, for reuse in tests/libvirtdconftest
|
||||||
|
noinst_LTLIBRARIES = libvirtd_conf.la
|
||||||
|
libvirtd_conf_la_SOURCES = $(LIBVIRTD_CONF_SOURCES)
|
||||||
|
libvirtd_conf_la_CFLAGS = \
|
||||||
|
$(LIBXML_CFLAGS) \
|
||||||
|
$(XDR_CFLAGS) \
|
||||||
|
$(WARN_CFLAGS) $(PIE_CFLAGS) \
|
||||||
|
$(COVERAGE_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
libvirtd_conf_la_LDFLAGS = \
|
||||||
|
$(RELRO_LDFLAGS) \
|
||||||
|
$(PIE_LDFLAGS) \
|
||||||
|
$(COVERAGE_LDFLAGS) \
|
||||||
|
$(NO_INDIRECT_LDFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
libvirtd_conf_la_LIBADD = $(LIBXML_LIBS)
|
||||||
|
|
||||||
|
man8_MANS = libvirtd.8
|
||||||
|
|
||||||
|
sbin_PROGRAMS = libvirtd
|
||||||
|
|
||||||
|
confdir = $(sysconfdir)/libvirt/
|
||||||
|
conf_DATA = libvirtd.conf
|
||||||
|
|
||||||
|
augeasdir = $(datadir)/augeas/lenses
|
||||||
|
augeas_DATA = libvirtd.aug
|
||||||
|
|
||||||
|
augeastestsdir = $(datadir)/augeas/lenses/tests
|
||||||
|
augeastests_DATA = test_libvirtd.aug
|
||||||
|
|
||||||
|
CLEANFILES += test_libvirtd.aug
|
||||||
|
|
||||||
|
libvirtd.8: $(srcdir)/libvirtd.8.in
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd_SOURCES = $(DAEMON_SOURCES)
|
||||||
|
|
||||||
|
#-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_C_SOURCE=199506L
|
||||||
|
libvirtd_CFLAGS = \
|
||||||
|
$(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \
|
||||||
|
$(XDR_CFLAGS) $(DBUS_CFLAGS) $(LIBNL_CFLAGS) \
|
||||||
|
$(WARN_CFLAGS) $(PIE_CFLAGS) \
|
||||||
|
$(COVERAGE_CFLAGS) \
|
||||||
|
-DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""
|
||||||
|
|
||||||
|
libvirtd_LDFLAGS = \
|
||||||
|
$(RELRO_LDFLAGS) \
|
||||||
|
$(PIE_LDFLAGS) \
|
||||||
|
$(COVERAGE_LDFLAGS) \
|
||||||
|
$(NO_INDIRECT_LDFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
libvirtd_LDADD = \
|
||||||
|
$(LIBXML_LIBS) \
|
||||||
|
$(GNUTLS_LIBS) \
|
||||||
|
$(SASL_LIBS) \
|
||||||
|
$(DBUS_LIBS) \
|
||||||
|
$(LIBNL_LIBS)
|
||||||
|
|
||||||
|
if WITH_DTRACE_PROBES
|
||||||
|
libvirtd_LDADD += ../src/libvirt_probes.lo
|
||||||
|
endif WITH_DTRACE_PROBES
|
||||||
|
|
||||||
|
libvirtd_LDADD += \
|
||||||
|
libvirtd_conf.la \
|
||||||
|
../src/libvirt-lxc.la \
|
||||||
|
../src/libvirt-qemu.la \
|
||||||
|
../src/libvirt_driver_remote.la \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
if ! WITH_DRIVER_MODULES
|
||||||
|
if WITH_QEMU
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_qemu.la
|
||||||
|
if WITH_DTRACE_PROBES
|
||||||
|
libvirtd_LDADD += ../src/libvirt_qemu_probes.lo
|
||||||
|
endif WITH_DTRACE_PROBES
|
||||||
|
endif WITH_QEMU
|
||||||
|
|
||||||
|
if WITH_LXC
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_lxc.la
|
||||||
|
endif WITH_LXC
|
||||||
|
|
||||||
|
if WITH_XEN
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_xen.la
|
||||||
|
endif WITH_XEN
|
||||||
|
|
||||||
|
if WITH_LIBXL
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_libxl.la
|
||||||
|
endif WITH_LIBXL
|
||||||
|
|
||||||
|
if WITH_UML
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_uml.la
|
||||||
|
endif WITH_UML
|
||||||
|
|
||||||
|
if WITH_VBOX
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_vbox.la
|
||||||
|
endif WITH_VBOX
|
||||||
|
|
||||||
|
if WITH_STORAGE
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_storage.la
|
||||||
|
endif WITH_STORAGE
|
||||||
|
|
||||||
|
if WITH_NETWORK
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_network.la
|
||||||
|
endif WITH_NETWORK
|
||||||
|
|
||||||
|
if WITH_INTERFACE
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_interface.la
|
||||||
|
endif WITH_INTERFACE
|
||||||
|
|
||||||
|
if WITH_NODE_DEVICES
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_nodedev.la
|
||||||
|
endif WITH_NODE_DEVICES
|
||||||
|
|
||||||
|
if WITH_SECRETS
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_secret.la
|
||||||
|
endif WITH_SECRETS
|
||||||
|
|
||||||
|
if WITH_NWFILTER
|
||||||
|
libvirtd_LDADD += ../src/libvirt_driver_nwfilter.la
|
||||||
|
endif WITH_NWFILTER
|
||||||
|
endif ! WITH_DRIVER_MODULES
|
||||||
|
|
||||||
|
libvirtd_LDADD += ../src/libvirt.la
|
||||||
|
|
||||||
|
if WITH_POLKIT
|
||||||
|
if WITH_POLKIT0
|
||||||
|
policydir = $(datadir)/PolicyKit/policy
|
||||||
|
policyauth = auth_admin_keep_session
|
||||||
|
else ! WITH_POLKIT0
|
||||||
|
policydir = $(datadir)/polkit-1/actions
|
||||||
|
policyauth = auth_admin_keep
|
||||||
|
endif ! WITH_POLKIT0
|
||||||
|
endif WITH_POLKIT
|
||||||
|
|
||||||
|
libvirtd.policy: libvirtd.policy.in $(top_builddir)/config.status
|
||||||
|
$(AM_V_GEN) sed \
|
||||||
|
-e 's|[@]authaction[@]|$(policyauth)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
BUILT_SOURCES += libvirtd.policy
|
||||||
|
|
||||||
|
install-data-local: install-init-redhat install-init-systemd \
|
||||||
|
install-init-upstart \
|
||||||
|
install-data-sasl install-data-polkit \
|
||||||
|
install-logrotate install-sysctl
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt \
|
||||||
|
$(DESTDIR)$(localstatedir)/run/libvirt \
|
||||||
|
$(DESTDIR)$(localstatedir)/lib/libvirt
|
||||||
|
|
||||||
|
uninstall-local:: uninstall-init-redhat uninstall-init-systemd \
|
||||||
|
uninstall-init-upstart \
|
||||||
|
uninstall-data-sasl uninstall-data-polkit \
|
||||||
|
uninstall-logrotate uninstall-sysctl
|
||||||
|
rmdir $(DESTDIR)$(localstatedir)/log/libvirt || :
|
||||||
|
rmdir $(DESTDIR)$(localstatedir)/run/libvirt || :
|
||||||
|
rmdir $(DESTDIR)$(localstatedir)/lib/libvirt || :
|
||||||
|
|
||||||
|
if WITH_POLKIT
|
||||||
|
install-data-polkit::
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(policydir)
|
||||||
|
$(INSTALL_DATA) libvirtd.policy $(DESTDIR)$(policydir)/org.libvirt.unix.policy
|
||||||
|
uninstall-data-polkit::
|
||||||
|
rm -f $(DESTDIR)$(policydir)/org.libvirt.unix.policy
|
||||||
|
rmdir $(DESTDIR)$(policydir) || :
|
||||||
|
else ! WITH_POLKIT
|
||||||
|
install-data-polkit::
|
||||||
|
uninstall-data-polkit::
|
||||||
|
endif ! WITH_POLKIT
|
||||||
|
|
||||||
|
remote.c: $(DAEMON_GENERATED)
|
||||||
|
remote.h: $(DAEMON_GENERATED)
|
||||||
|
|
||||||
|
LOGROTATE_CONFS = libvirtd.qemu.logrotate libvirtd.lxc.logrotate \
|
||||||
|
libvirtd.uml.logrotate libvirtd.logrotate
|
||||||
|
|
||||||
|
BUILT_SOURCES += $(LOGROTATE_CONFS)
|
||||||
|
|
||||||
|
libvirtd.logrotate: libvirtd.logrotate.in
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd.qemu.logrotate: libvirtd.qemu.logrotate.in
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd.lxc.logrotate: libvirtd.lxc.logrotate.in
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd.uml.logrotate: libvirtd.uml.logrotate.in
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
install-logrotate: $(LOGROTATE_CONFS)
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt/qemu/ \
|
||||||
|
$(DESTDIR)$(localstatedir)/log/libvirt/lxc/ \
|
||||||
|
$(DESTDIR)$(localstatedir)/log/libvirt/uml/ \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/
|
||||||
|
$(INSTALL_DATA) libvirtd.logrotate \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd
|
||||||
|
$(INSTALL_DATA) libvirtd.qemu.logrotate \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu
|
||||||
|
$(INSTALL_DATA) libvirtd.lxc.logrotate \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc
|
||||||
|
$(INSTALL_DATA) libvirtd.uml.logrotate \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml
|
||||||
|
|
||||||
|
uninstall-logrotate:
|
||||||
|
rm -f $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc \
|
||||||
|
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml
|
||||||
|
rmdir $(DESTDIR)$(localstatedir)/log/libvirt/qemu || :
|
||||||
|
rmdir $(DESTDIR)$(localstatedir)/log/libvirt/lxc || :
|
||||||
|
rmdir $(DESTDIR)$(localstatedir)/log/libvirt/uml || :
|
||||||
|
rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || :
|
||||||
|
|
||||||
|
install-sysconfig:
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
|
||||||
|
$(INSTALL_DATA) $(srcdir)/libvirtd.sysconf \
|
||||||
|
$(DESTDIR)$(sysconfdir)/sysconfig/libvirtd
|
||||||
|
uninstall-sysconfig:
|
||||||
|
rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd
|
||||||
|
rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
|
||||||
|
|
||||||
|
if WITH_SYSCTL
|
||||||
|
# Use $(prefix)/lib rather than $(libdir), since man sysctl.d insists on
|
||||||
|
# /usr/lib/sysctl.d/ even when libdir is /usr/lib64
|
||||||
|
install-sysctl:
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(prefix)/lib/sysctl.d
|
||||||
|
$(INSTALL_DATA) $(srcdir)/libvirtd.sysctl \
|
||||||
|
$(DESTDIR)$(prefix)/lib/sysctl.d/60-libvirtd.conf
|
||||||
|
|
||||||
|
uninstall-sysctl:
|
||||||
|
rm -f $(DESTDIR)$(prefix)/lib/sysctl.d/60-libvirtd.conf
|
||||||
|
rmdir $(DESTDIR)$(prefix)/lib/sysctl.d || :
|
||||||
|
else ! WITH_SYSCTL
|
||||||
|
install-sysctl:
|
||||||
|
uninstall-sysctl:
|
||||||
|
endif ! WITH_SYSCTL
|
||||||
|
|
||||||
|
if LIBVIRT_INIT_SCRIPT_RED_HAT
|
||||||
|
|
||||||
|
BUILT_SOURCES += libvirtd.init
|
||||||
|
|
||||||
|
install-init-redhat: install-sysconfig libvirtd.init
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
|
||||||
|
$(INSTALL_SCRIPT) libvirtd.init \
|
||||||
|
$(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd
|
||||||
|
|
||||||
|
uninstall-init-redhat: uninstall-sysconfig
|
||||||
|
rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd
|
||||||
|
rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || :
|
||||||
|
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
|
||||||
|
install-init-redhat:
|
||||||
|
uninstall-init-redhat:
|
||||||
|
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
|
||||||
|
|
||||||
|
|
||||||
|
if LIBVIRT_INIT_SCRIPT_UPSTART
|
||||||
|
|
||||||
|
install-init-upstart: install-sysconfig
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/event.d
|
||||||
|
$(INSTALL_SCRIPT) libvirtd.upstart \
|
||||||
|
$(DESTDIR)$(sysconfdir)/event.d/libvirtd
|
||||||
|
|
||||||
|
uninstall-init-upstart: uninstall-sysconfig
|
||||||
|
rm -f $(DESTDIR)$(sysconfdir)/event.d/libvirtd
|
||||||
|
rmdir $(DESTDIR)$(sysconfdir)/event.d || :
|
||||||
|
else ! LIBVIRT_INIT_SCRIPT_UPSTART
|
||||||
|
install-init-upstart:
|
||||||
|
uninstall-init-upstart:
|
||||||
|
endif ! LIBVIRT_INIT_SCRIPT_UPSTART
|
||||||
|
|
||||||
|
|
||||||
|
if LIBVIRT_INIT_SCRIPT_SYSTEMD
|
||||||
|
|
||||||
|
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
|
||||||
|
BUILT_SOURCES += libvirtd.service libvirtd.socket
|
||||||
|
|
||||||
|
install-init-systemd: install-sysconfig libvirtd.service libvirtd.socket
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
|
||||||
|
$(INSTALL_DATA) libvirtd.service \
|
||||||
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
||||||
|
$(INSTALL_DATA) libvirtd.socket \
|
||||||
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.socket
|
||||||
|
|
||||||
|
uninstall-init-systemd: uninstall-sysconfig
|
||||||
|
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
||||||
|
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.socket
|
||||||
|
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
|
||||||
|
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
||||||
|
install-init-systemd:
|
||||||
|
uninstall-init-systemd:
|
||||||
|
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
||||||
|
|
||||||
|
libvirtd.init: libvirtd.init.in $(top_builddir)/config.status
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
-e 's|[@]sbindir[@]|$(sbindir)|g' \
|
||||||
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
chmod a+x $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd.service: libvirtd.service.in $(top_builddir)/config.status
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
||||||
|
-e 's|[@]sbindir[@]|$(sbindir)|g' \
|
||||||
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd.socket: libvirtd.socket.in $(top_builddir)/config.status
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]runstatedir[@]|$(runstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
|
||||||
|
check-local: check-augeas
|
||||||
|
|
||||||
|
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
|
||||||
|
|
||||||
|
test_libvirtd.aug: test_libvirtd.aug.in $(srcdir)/libvirtd.conf
|
||||||
|
$(AM_V_GEN)$(AUG_GENTEST) $(srcdir)/libvirtd.conf $< $@
|
||||||
|
|
||||||
|
check-augeas: test_libvirtd.aug
|
||||||
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
||||||
|
'$(AUGPARSE)' -I $(srcdir) test_libvirtd.aug; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# This must be added last, since functions it provides/replaces
|
||||||
|
# are used by nearly every other library.
|
||||||
|
libvirtd_LDADD += ../gnulib/lib/libgnu.la $(LIBSOCKET)
|
||||||
|
|
||||||
|
else ! WITH_LIBVIRTD
|
||||||
|
install-data-local: install-data-sasl
|
||||||
|
uninstall-local:: uninstall-data-sasl
|
||||||
|
endif ! WITH_LIBVIRTD
|
||||||
|
|
||||||
|
POD2MAN = pod2man -c "Virtualization Support" \
|
||||||
|
-r "$(PACKAGE)-$(VERSION)" -s 8
|
||||||
|
|
||||||
|
$(srcdir)/libvirtd.8.in: libvirtd.pod.in $(top_srcdir)/configure.ac
|
||||||
|
$(AM_V_GEN)$(POD2MAN) --name LIBVIRTD $< $@ \
|
||||||
|
&& if grep 'POD ERROR' $@ ; then rm $@; exit 1; fi
|
||||||
|
|
||||||
|
# This is needed for clients too, so can't wrap in
|
||||||
|
# the WITH_LIBVIRTD conditional
|
||||||
|
if WITH_SASL
|
||||||
|
install-data-sasl:
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sasl2/
|
||||||
|
$(INSTALL_DATA) $(srcdir)/libvirtd.sasl \
|
||||||
|
$(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf
|
||||||
|
|
||||||
|
uninstall-data-sasl:
|
||||||
|
rm -f $(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf
|
||||||
|
rmdir $(DESTDIR)$(sysconfdir)/sasl2/ || :
|
||||||
|
else ! WITH_SASL
|
||||||
|
install-data-sasl:
|
||||||
|
uninstall-data-sasl:
|
||||||
|
endif ! WITH_SASL
|
||||||
|
|
||||||
|
|
||||||
|
CLEANFILES += $(BUILT_SOURCES) $(man8_MANS)
|
||||||
|
CLEANFILES += *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
|
||||||
|
MAINTAINERCLEANFILES = $(srcdir)/libvirtd.8.in $(DAEMON_GENERATED)
|
52
daemon/THREADS.txt
Normal file
52
daemon/THREADS.txt
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
Threading in the libvirtd daemon
|
||||||
|
================================
|
||||||
|
|
||||||
|
To allow efficient processing of RPC requests, the libvirtd daemon
|
||||||
|
makes use of threads.
|
||||||
|
|
||||||
|
- The process leader. This is the initial thread of control
|
||||||
|
when the daemon starts running. It is responsible for
|
||||||
|
initializing all the state, and starting the event loop.
|
||||||
|
Once that's all done, this thread does nothing except
|
||||||
|
wait for the event loop to quit, thus indicating an orderly
|
||||||
|
shutdown is required.
|
||||||
|
|
||||||
|
- The event loop. This thread runs the event loop, sitting
|
||||||
|
in poll() on all monitored file handles, and calculating
|
||||||
|
and dispatching any timers that may be registered. When
|
||||||
|
this thread quits, the entire daemon will shutdown.
|
||||||
|
|
||||||
|
- The workers. These 'n' threads all sit around waiting to
|
||||||
|
process incoming RPC requests. Since RPC requests may take
|
||||||
|
a long time to complete, with long idle periods, there will
|
||||||
|
be quite a few workers running.
|
||||||
|
|
||||||
|
The use of threads obviously requires locking to ensure safety when
|
||||||
|
accessing/changing data structures.
|
||||||
|
|
||||||
|
- the top level lock is on 'struct qemud_server'. This must be
|
||||||
|
held before acquiring any other lock
|
||||||
|
|
||||||
|
- Each 'struct qemud_client' object has a lock. The server lock
|
||||||
|
must be held before acquiring it. Once the client lock is acquired
|
||||||
|
the server lock can (optionally) be dropped.
|
||||||
|
|
||||||
|
- The event loop has its own self-contained lock. You can ignore
|
||||||
|
this as a caller of virEvent APIs.
|
||||||
|
|
||||||
|
|
||||||
|
The server lock is used in conjunction with a condition variable
|
||||||
|
to pass jobs from the event loop thread to the workers. The main
|
||||||
|
event loop thread handles I/O from the client socket, and once a
|
||||||
|
complete RPC message has been read off the wire (and optionally
|
||||||
|
decrypted), it will be placed on the 'dx' job queue for the
|
||||||
|
associated client object. The job condition will be signalled and
|
||||||
|
a worker will wakup and process it.
|
||||||
|
|
||||||
|
The worker thread must quickly drop its locks on the server and
|
||||||
|
client to allow the main event loop thread to continue running
|
||||||
|
with its other work. Critically important, is that now libvirt
|
||||||
|
API call will ever be made with the server or client locks held.
|
||||||
|
|
||||||
|
-- End
|
503
daemon/libvirtd-config.c
Normal file
503
daemon/libvirtd-config.c
Normal file
@@ -0,0 +1,503 @@
|
|||||||
|
/*
|
||||||
|
* libvirtd-config.c: daemon start of day, guest process & i/o management
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2012, 2014 Red Hat, Inc.
|
||||||
|
* Copyright (C) 2006 Daniel P. Berrange
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
* Author: Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include "libvirtd-config.h"
|
||||||
|
#include "virconf.h"
|
||||||
|
#include "viralloc.h"
|
||||||
|
#include "virerror.h"
|
||||||
|
#include "virlog.h"
|
||||||
|
#include "rpc/virnetserver.h"
|
||||||
|
#include "configmake.h"
|
||||||
|
#include "remote/remote_protocol.h"
|
||||||
|
#include "remote/remote_driver.h"
|
||||||
|
#include "virstring.h"
|
||||||
|
#include "virutil.h"
|
||||||
|
|
||||||
|
#define VIR_FROM_THIS VIR_FROM_CONF
|
||||||
|
|
||||||
|
VIR_LOG_INIT("daemon.libvirtd-config");
|
||||||
|
|
||||||
|
/* Allocate an array of malloc'd strings from the config file, filename
|
||||||
|
* (used only in diagnostics), using handle "conf". Upon error, return -1
|
||||||
|
* and free any allocated memory. Otherwise, save the array in *list_arg
|
||||||
|
* and return 0.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
remoteConfigGetStringList(virConfPtr conf, const char *key, char ***list_arg,
|
||||||
|
const char *filename)
|
||||||
|
{
|
||||||
|
char **list;
|
||||||
|
virConfValuePtr p = virConfGetValue(conf, key);
|
||||||
|
if (!p)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
switch (p->type) {
|
||||||
|
case VIR_CONF_STRING:
|
||||||
|
if (VIR_ALLOC_N(list, 2) < 0) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("failed to allocate memory for %s config list"),
|
||||||
|
key);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (VIR_STRDUP(list[0], p->str) < 0) {
|
||||||
|
VIR_FREE(list);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
list[1] = NULL;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIR_CONF_LIST: {
|
||||||
|
int len = 0;
|
||||||
|
size_t i;
|
||||||
|
virConfValuePtr pp;
|
||||||
|
for (pp = p->list; pp; pp = pp->next)
|
||||||
|
len++;
|
||||||
|
if (VIR_ALLOC_N(list, 1+len) < 0) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("failed to allocate memory for %s config list"),
|
||||||
|
key);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
for (i = 0, pp = p->list; pp; ++i, pp = pp->next) {
|
||||||
|
if (pp->type != VIR_CONF_STRING) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("remoteReadConfigFile: %s: %s:"
|
||||||
|
" must be a string or list of strings"),
|
||||||
|
filename, key);
|
||||||
|
VIR_FREE(list);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (VIR_STRDUP(list[i], pp->str) < 0) {
|
||||||
|
size_t j;
|
||||||
|
for (j = 0; j < i; j++)
|
||||||
|
VIR_FREE(list[j]);
|
||||||
|
VIR_FREE(list);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
list[i] = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("remoteReadConfigFile: %s: %s:"
|
||||||
|
" must be a string or list of strings"),
|
||||||
|
filename, key);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*list_arg = list;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* A helper function used by each of the following macros. */
|
||||||
|
static int
|
||||||
|
checkType(virConfValuePtr p, const char *filename,
|
||||||
|
const char *key, virConfType required_type)
|
||||||
|
{
|
||||||
|
if (p->type != required_type) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("remoteReadConfigFile: %s: %s: invalid type:"
|
||||||
|
" got %s; expected %s"), filename, key,
|
||||||
|
virConfTypeToString(p->type),
|
||||||
|
virConfTypeToString(required_type));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If there is no config data for the key, #var_name, then do nothing.
|
||||||
|
If there is valid data of type VIR_CONF_STRING, and VIR_STRDUP succeeds,
|
||||||
|
store the result in var_name. Otherwise, (i.e. invalid type, or VIR_STRDUP
|
||||||
|
failure), give a diagnostic and "goto" the cleanup-and-fail label. */
|
||||||
|
#define GET_CONF_STR(conf, filename, var_name) \
|
||||||
|
do { \
|
||||||
|
virConfValuePtr p = virConfGetValue(conf, #var_name); \
|
||||||
|
if (p) { \
|
||||||
|
if (checkType(p, filename, #var_name, VIR_CONF_STRING) < 0) \
|
||||||
|
goto error; \
|
||||||
|
VIR_FREE(data->var_name); \
|
||||||
|
if (VIR_STRDUP(data->var_name, p->str) < 0) \
|
||||||
|
goto error; \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
/* Like GET_CONF_STR, but for signed integral values. */
|
||||||
|
#define GET_CONF_INT(conf, filename, var_name) \
|
||||||
|
do { \
|
||||||
|
virConfValuePtr p = virConfGetValue(conf, #var_name); \
|
||||||
|
if (p) { \
|
||||||
|
if (p->type != VIR_CONF_ULONG && \
|
||||||
|
checkType(p, filename, #var_name, VIR_CONF_LONG) < 0) \
|
||||||
|
goto error; \
|
||||||
|
data->var_name = p->l; \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
/* Like GET_CONF_STR, but for unsigned integral values. */
|
||||||
|
#define GET_CONF_UINT(conf, filename, var_name) \
|
||||||
|
do { \
|
||||||
|
virConfValuePtr p = virConfGetValue(conf, #var_name); \
|
||||||
|
if (p) { \
|
||||||
|
if (checkType(p, filename, #var_name, VIR_CONF_ULONG) < 0) \
|
||||||
|
goto error; \
|
||||||
|
data->var_name = p->l; \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
remoteConfigGetAuth(virConfPtr conf,
|
||||||
|
const char *key,
|
||||||
|
int *auth,
|
||||||
|
const char *filename)
|
||||||
|
{
|
||||||
|
virConfValuePtr p;
|
||||||
|
|
||||||
|
p = virConfGetValue(conf, key);
|
||||||
|
if (!p)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (checkType(p, filename, key, VIR_CONF_STRING) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (!p->str)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (STREQ(p->str, "none")) {
|
||||||
|
*auth = VIR_NET_SERVER_SERVICE_AUTH_NONE;
|
||||||
|
#if WITH_SASL
|
||||||
|
} else if (STREQ(p->str, "sasl")) {
|
||||||
|
*auth = VIR_NET_SERVER_SERVICE_AUTH_SASL;
|
||||||
|
#endif
|
||||||
|
} else if (STREQ(p->str, "polkit")) {
|
||||||
|
*auth = VIR_NET_SERVER_SERVICE_AUTH_POLKIT;
|
||||||
|
} else {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("remoteReadConfigFile: %s: %s: unsupported auth %s"),
|
||||||
|
filename, key, p->str);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
daemonConfigFilePath(bool privileged, char **configfile)
|
||||||
|
{
|
||||||
|
if (privileged) {
|
||||||
|
if (VIR_STRDUP(*configfile, SYSCONFDIR "/libvirt/libvirtd.conf") < 0)
|
||||||
|
goto error;
|
||||||
|
} else {
|
||||||
|
char *configdir = NULL;
|
||||||
|
|
||||||
|
if (!(configdir = virGetUserConfigDirectory()))
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (virAsprintf(configfile, "%s/libvirtd.conf", configdir) < 0) {
|
||||||
|
VIR_FREE(configdir);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
VIR_FREE(configdir);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct daemonConfig*
|
||||||
|
daemonConfigNew(bool privileged ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
struct daemonConfig *data;
|
||||||
|
char *localhost;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (VIR_ALLOC(data) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
data->listen_tls = 1;
|
||||||
|
data->listen_tcp = 0;
|
||||||
|
|
||||||
|
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
|
||||||
|
VIR_STRDUP(data->tcp_port, LIBVIRTD_TCP_PORT) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
/* Only default to PolicyKit if running as root */
|
||||||
|
#if WITH_POLKIT
|
||||||
|
if (privileged) {
|
||||||
|
data->auth_unix_rw = REMOTE_AUTH_POLKIT;
|
||||||
|
data->auth_unix_ro = REMOTE_AUTH_POLKIT;
|
||||||
|
} else {
|
||||||
|
#endif
|
||||||
|
data->auth_unix_rw = REMOTE_AUTH_NONE;
|
||||||
|
data->auth_unix_ro = REMOTE_AUTH_NONE;
|
||||||
|
#if WITH_POLKIT
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (VIR_STRDUP(data->unix_sock_rw_perms,
|
||||||
|
data->auth_unix_rw == REMOTE_AUTH_POLKIT ? "0777" : "0700") < 0 ||
|
||||||
|
VIR_STRDUP(data->unix_sock_ro_perms, "0777") < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
#if WITH_SASL
|
||||||
|
data->auth_tcp = REMOTE_AUTH_SASL;
|
||||||
|
#else
|
||||||
|
data->auth_tcp = REMOTE_AUTH_NONE;
|
||||||
|
#endif
|
||||||
|
data->auth_tls = REMOTE_AUTH_NONE;
|
||||||
|
|
||||||
|
data->mdns_adv = 0;
|
||||||
|
|
||||||
|
data->min_workers = 5;
|
||||||
|
data->max_workers = 20;
|
||||||
|
data->max_clients = 5000;
|
||||||
|
data->max_anonymous_clients = 20;
|
||||||
|
|
||||||
|
data->prio_workers = 5;
|
||||||
|
|
||||||
|
data->max_requests = 20;
|
||||||
|
data->max_client_requests = 5;
|
||||||
|
|
||||||
|
data->audit_level = 1;
|
||||||
|
data->audit_logging = 0;
|
||||||
|
|
||||||
|
data->keepalive_interval = 5;
|
||||||
|
data->keepalive_count = 5;
|
||||||
|
data->keepalive_required = 0;
|
||||||
|
|
||||||
|
localhost = virGetHostname();
|
||||||
|
if (localhost == NULL) {
|
||||||
|
/* we couldn't resolve the hostname; assume that we are
|
||||||
|
* running in disconnected operation, and report a less
|
||||||
|
* useful Avahi string
|
||||||
|
*/
|
||||||
|
ret = VIR_STRDUP(data->mdns_name, "Virtualization Host");
|
||||||
|
} else {
|
||||||
|
char *tmp;
|
||||||
|
/* Extract the host part of the potentially FQDN */
|
||||||
|
if ((tmp = strchr(localhost, '.')))
|
||||||
|
*tmp = '\0';
|
||||||
|
ret = virAsprintf(&data->mdns_name, "Virtualization Host %s",
|
||||||
|
localhost);
|
||||||
|
}
|
||||||
|
VIR_FREE(localhost);
|
||||||
|
if (ret < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
return data;
|
||||||
|
|
||||||
|
error:
|
||||||
|
daemonConfigFree(data);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
daemonConfigFree(struct daemonConfig *data)
|
||||||
|
{
|
||||||
|
char **tmp;
|
||||||
|
|
||||||
|
if (!data)
|
||||||
|
return;
|
||||||
|
|
||||||
|
VIR_FREE(data->listen_addr);
|
||||||
|
VIR_FREE(data->tls_port);
|
||||||
|
VIR_FREE(data->tcp_port);
|
||||||
|
tmp = data->access_drivers;
|
||||||
|
while (tmp && *tmp) {
|
||||||
|
VIR_FREE(*tmp);
|
||||||
|
tmp++;
|
||||||
|
}
|
||||||
|
VIR_FREE(data->access_drivers);
|
||||||
|
|
||||||
|
VIR_FREE(data->unix_sock_ro_perms);
|
||||||
|
VIR_FREE(data->unix_sock_rw_perms);
|
||||||
|
VIR_FREE(data->unix_sock_group);
|
||||||
|
VIR_FREE(data->unix_sock_dir);
|
||||||
|
VIR_FREE(data->mdns_name);
|
||||||
|
|
||||||
|
tmp = data->tls_allowed_dn_list;
|
||||||
|
while (tmp && *tmp) {
|
||||||
|
VIR_FREE(*tmp);
|
||||||
|
tmp++;
|
||||||
|
}
|
||||||
|
VIR_FREE(data->tls_allowed_dn_list);
|
||||||
|
|
||||||
|
tmp = data->sasl_allowed_username_list;
|
||||||
|
while (tmp && *tmp) {
|
||||||
|
VIR_FREE(*tmp);
|
||||||
|
tmp++;
|
||||||
|
}
|
||||||
|
VIR_FREE(data->sasl_allowed_username_list);
|
||||||
|
|
||||||
|
VIR_FREE(data->key_file);
|
||||||
|
VIR_FREE(data->ca_file);
|
||||||
|
VIR_FREE(data->cert_file);
|
||||||
|
VIR_FREE(data->crl_file);
|
||||||
|
|
||||||
|
VIR_FREE(data->host_uuid);
|
||||||
|
VIR_FREE(data->log_filters);
|
||||||
|
VIR_FREE(data->log_outputs);
|
||||||
|
|
||||||
|
VIR_FREE(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
daemonConfigLoadOptions(struct daemonConfig *data,
|
||||||
|
const char *filename,
|
||||||
|
virConfPtr conf)
|
||||||
|
{
|
||||||
|
GET_CONF_UINT(conf, filename, listen_tcp);
|
||||||
|
GET_CONF_UINT(conf, filename, listen_tls);
|
||||||
|
GET_CONF_STR(conf, filename, tls_port);
|
||||||
|
GET_CONF_STR(conf, filename, tcp_port);
|
||||||
|
GET_CONF_STR(conf, filename, listen_addr);
|
||||||
|
|
||||||
|
if (remoteConfigGetAuth(conf, "auth_unix_rw", &data->auth_unix_rw, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
#if WITH_POLKIT
|
||||||
|
/* Change default perms to be wide-open if PolicyKit is enabled.
|
||||||
|
* Admin can always override in config file
|
||||||
|
*/
|
||||||
|
if (data->auth_unix_rw == REMOTE_AUTH_POLKIT) {
|
||||||
|
VIR_FREE(data->unix_sock_rw_perms);
|
||||||
|
if (VIR_STRDUP(data->unix_sock_rw_perms, "0777") < 0)
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (remoteConfigGetAuth(conf, "auth_unix_ro", &data->auth_unix_ro, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
if (remoteConfigGetAuth(conf, "auth_tcp", &data->auth_tcp, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
if (remoteConfigGetAuth(conf, "auth_tls", &data->auth_tls, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (remoteConfigGetStringList(conf, "access_drivers",
|
||||||
|
&data->access_drivers, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
GET_CONF_STR(conf, filename, unix_sock_group);
|
||||||
|
GET_CONF_STR(conf, filename, unix_sock_ro_perms);
|
||||||
|
GET_CONF_STR(conf, filename, unix_sock_rw_perms);
|
||||||
|
|
||||||
|
GET_CONF_STR(conf, filename, unix_sock_dir);
|
||||||
|
|
||||||
|
GET_CONF_UINT(conf, filename, mdns_adv);
|
||||||
|
GET_CONF_STR(conf, filename, mdns_name);
|
||||||
|
|
||||||
|
GET_CONF_UINT(conf, filename, tls_no_sanity_certificate);
|
||||||
|
GET_CONF_UINT(conf, filename, tls_no_verify_certificate);
|
||||||
|
|
||||||
|
GET_CONF_STR(conf, filename, key_file);
|
||||||
|
GET_CONF_STR(conf, filename, cert_file);
|
||||||
|
GET_CONF_STR(conf, filename, ca_file);
|
||||||
|
GET_CONF_STR(conf, filename, crl_file);
|
||||||
|
|
||||||
|
if (remoteConfigGetStringList(conf, "tls_allowed_dn_list",
|
||||||
|
&data->tls_allowed_dn_list, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
|
||||||
|
if (remoteConfigGetStringList(conf, "sasl_allowed_username_list",
|
||||||
|
&data->sasl_allowed_username_list, filename) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
|
||||||
|
GET_CONF_UINT(conf, filename, min_workers);
|
||||||
|
GET_CONF_UINT(conf, filename, max_workers);
|
||||||
|
GET_CONF_UINT(conf, filename, max_clients);
|
||||||
|
GET_CONF_UINT(conf, filename, max_queued_clients);
|
||||||
|
GET_CONF_UINT(conf, filename, max_anonymous_clients);
|
||||||
|
|
||||||
|
GET_CONF_UINT(conf, filename, prio_workers);
|
||||||
|
|
||||||
|
GET_CONF_INT(conf, filename, max_requests);
|
||||||
|
GET_CONF_UINT(conf, filename, max_client_requests);
|
||||||
|
|
||||||
|
GET_CONF_UINT(conf, filename, audit_level);
|
||||||
|
GET_CONF_UINT(conf, filename, audit_logging);
|
||||||
|
|
||||||
|
GET_CONF_STR(conf, filename, host_uuid);
|
||||||
|
|
||||||
|
GET_CONF_UINT(conf, filename, log_level);
|
||||||
|
GET_CONF_STR(conf, filename, log_filters);
|
||||||
|
GET_CONF_STR(conf, filename, log_outputs);
|
||||||
|
|
||||||
|
GET_CONF_INT(conf, filename, keepalive_interval);
|
||||||
|
GET_CONF_UINT(conf, filename, keepalive_count);
|
||||||
|
GET_CONF_UINT(conf, filename, keepalive_required);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Read the config file if it exists.
|
||||||
|
* Only used in the remote case, hence the name.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
daemonConfigLoadFile(struct daemonConfig *data,
|
||||||
|
const char *filename,
|
||||||
|
bool allow_missing)
|
||||||
|
{
|
||||||
|
virConfPtr conf;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (allow_missing &&
|
||||||
|
access(filename, R_OK) == -1 &&
|
||||||
|
errno == ENOENT)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
conf = virConfReadFile(filename, 0);
|
||||||
|
if (!conf)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
ret = daemonConfigLoadOptions(data, filename, conf);
|
||||||
|
virConfFree(conf);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int daemonConfigLoadData(struct daemonConfig *data,
|
||||||
|
const char *filename,
|
||||||
|
const char *filedata)
|
||||||
|
{
|
||||||
|
virConfPtr conf;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
conf = virConfReadMem(filedata, strlen(filedata), 0);
|
||||||
|
if (!conf)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
ret = daemonConfigLoadOptions(data, filename, conf);
|
||||||
|
virConfFree(conf);
|
||||||
|
return ret;
|
||||||
|
}
|
97
daemon/libvirtd-config.h
Normal file
97
daemon/libvirtd-config.h
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* libvirtd-config.h: daemon start of day, guest process & i/o management
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2012 Red Hat, Inc.
|
||||||
|
* Copyright (C) 2006 Daniel P. Berrange
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
* Author: Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __LIBVIRTD_CONFIG_H__
|
||||||
|
# define __LIBVIRTD_CONFIG_H__
|
||||||
|
|
||||||
|
# include "internal.h"
|
||||||
|
|
||||||
|
struct daemonConfig {
|
||||||
|
char *host_uuid;
|
||||||
|
|
||||||
|
int listen_tls;
|
||||||
|
int listen_tcp;
|
||||||
|
char *listen_addr;
|
||||||
|
char *tls_port;
|
||||||
|
char *tcp_port;
|
||||||
|
|
||||||
|
char *unix_sock_ro_perms;
|
||||||
|
char *unix_sock_rw_perms;
|
||||||
|
char *unix_sock_group;
|
||||||
|
char *unix_sock_dir;
|
||||||
|
|
||||||
|
int auth_unix_rw;
|
||||||
|
int auth_unix_ro;
|
||||||
|
int auth_tcp;
|
||||||
|
int auth_tls;
|
||||||
|
|
||||||
|
char **access_drivers;
|
||||||
|
|
||||||
|
int mdns_adv;
|
||||||
|
char *mdns_name;
|
||||||
|
|
||||||
|
int tls_no_verify_certificate;
|
||||||
|
int tls_no_sanity_certificate;
|
||||||
|
char **tls_allowed_dn_list;
|
||||||
|
char **sasl_allowed_username_list;
|
||||||
|
|
||||||
|
char *key_file;
|
||||||
|
char *cert_file;
|
||||||
|
char *ca_file;
|
||||||
|
char *crl_file;
|
||||||
|
|
||||||
|
int min_workers;
|
||||||
|
int max_workers;
|
||||||
|
int max_clients;
|
||||||
|
int max_queued_clients;
|
||||||
|
int max_anonymous_clients;
|
||||||
|
|
||||||
|
int prio_workers;
|
||||||
|
|
||||||
|
int max_requests;
|
||||||
|
int max_client_requests;
|
||||||
|
|
||||||
|
int log_level;
|
||||||
|
char *log_filters;
|
||||||
|
char *log_outputs;
|
||||||
|
|
||||||
|
int audit_level;
|
||||||
|
int audit_logging;
|
||||||
|
|
||||||
|
int keepalive_interval;
|
||||||
|
unsigned int keepalive_count;
|
||||||
|
int keepalive_required;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int daemonConfigFilePath(bool privileged, char **configfile);
|
||||||
|
struct daemonConfig* daemonConfigNew(bool privileged);
|
||||||
|
void daemonConfigFree(struct daemonConfig *data);
|
||||||
|
int daemonConfigLoadFile(struct daemonConfig *data,
|
||||||
|
const char *filename,
|
||||||
|
bool allow_missing);
|
||||||
|
int daemonConfigLoadData(struct daemonConfig *data,
|
||||||
|
const char *filename,
|
||||||
|
const char *filedata);
|
||||||
|
|
||||||
|
#endif /* __LIBVIRTD_CONFIG_H__ */
|
100
daemon/libvirtd.aug
Normal file
100
daemon/libvirtd.aug
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
(* /etc/libvirt/libvirtd.conf *)
|
||||||
|
|
||||||
|
module Libvirtd =
|
||||||
|
autoload xfm
|
||||||
|
|
||||||
|
let eol = del /[ \t]*\n/ "\n"
|
||||||
|
let value_sep = del /[ \t]*=[ \t]*/ " = "
|
||||||
|
let indent = del /[ \t]*/ ""
|
||||||
|
|
||||||
|
let array_sep = del /,[ \t\n]*/ ", "
|
||||||
|
let array_start = del /\[[ \t\n]*/ "[ "
|
||||||
|
let array_end = del /\]/ "]"
|
||||||
|
|
||||||
|
let str_val = del /\"/ "\"" . store /[^\"]*/ . del /\"/ "\""
|
||||||
|
let bool_val = store /0|1/
|
||||||
|
let int_val = store /[0-9]+/
|
||||||
|
let str_array_element = [ seq "el" . str_val ] . del /[ \t\n]*/ ""
|
||||||
|
let str_array_val = counter "el" . array_start . ( str_array_element . ( array_sep . str_array_element ) * ) ? . array_end
|
||||||
|
|
||||||
|
let str_entry (kw:string) = [ key kw . value_sep . str_val ]
|
||||||
|
let bool_entry (kw:string) = [ key kw . value_sep . bool_val ]
|
||||||
|
let int_entry (kw:string) = [ key kw . value_sep . int_val ]
|
||||||
|
let str_array_entry (kw:string) = [ key kw . value_sep . str_array_val ]
|
||||||
|
|
||||||
|
|
||||||
|
(* Config entry grouped by function - same order as example config *)
|
||||||
|
let network_entry = bool_entry "listen_tls"
|
||||||
|
| bool_entry "listen_tcp"
|
||||||
|
| str_entry "tls_port"
|
||||||
|
| str_entry "tcp_port"
|
||||||
|
| str_entry "listen_addr"
|
||||||
|
| bool_entry "mdns_adv"
|
||||||
|
| str_entry "mdns_name"
|
||||||
|
|
||||||
|
let sock_acl_entry = str_entry "unix_sock_group"
|
||||||
|
| str_entry "unix_sock_ro_perms"
|
||||||
|
| str_entry "unix_sock_rw_perms"
|
||||||
|
| str_entry "unix_sock_dir"
|
||||||
|
|
||||||
|
let authentication_entry = str_entry "auth_unix_ro"
|
||||||
|
| str_entry "auth_unix_rw"
|
||||||
|
| str_entry "auth_tcp"
|
||||||
|
| str_entry "auth_tls"
|
||||||
|
|
||||||
|
let certificate_entry = str_entry "key_file"
|
||||||
|
| str_entry "cert_file"
|
||||||
|
| str_entry "ca_file"
|
||||||
|
| str_entry "crl_file"
|
||||||
|
|
||||||
|
let authorization_entry = bool_entry "tls_no_verify_certificate"
|
||||||
|
| bool_entry "tls_no_sanity_certificate"
|
||||||
|
| str_array_entry "tls_allowed_dn_list"
|
||||||
|
| str_array_entry "sasl_allowed_username_list"
|
||||||
|
| str_array_entry "access_drivers"
|
||||||
|
|
||||||
|
let processing_entry = int_entry "min_workers"
|
||||||
|
| int_entry "max_workers"
|
||||||
|
| int_entry "max_clients"
|
||||||
|
| int_entry "max_queued_clients"
|
||||||
|
| int_entry "max_anonymous_clients"
|
||||||
|
| int_entry "max_requests"
|
||||||
|
| int_entry "max_client_requests"
|
||||||
|
| int_entry "prio_workers"
|
||||||
|
|
||||||
|
let logging_entry = int_entry "log_level"
|
||||||
|
| str_entry "log_filters"
|
||||||
|
| str_entry "log_outputs"
|
||||||
|
| int_entry "log_buffer_size"
|
||||||
|
|
||||||
|
let auditing_entry = int_entry "audit_level"
|
||||||
|
| bool_entry "audit_logging"
|
||||||
|
|
||||||
|
let keepalive_entry = int_entry "keepalive_interval"
|
||||||
|
| int_entry "keepalive_count"
|
||||||
|
| bool_entry "keepalive_required"
|
||||||
|
|
||||||
|
let misc_entry = str_entry "host_uuid"
|
||||||
|
|
||||||
|
(* Each enty in the config is one of the following three ... *)
|
||||||
|
let entry = network_entry
|
||||||
|
| sock_acl_entry
|
||||||
|
| authentication_entry
|
||||||
|
| certificate_entry
|
||||||
|
| authorization_entry
|
||||||
|
| processing_entry
|
||||||
|
| logging_entry
|
||||||
|
| auditing_entry
|
||||||
|
| keepalive_entry
|
||||||
|
| misc_entry
|
||||||
|
let comment = [ label "#comment" . del /#[ \t]*/ "# " . store /([^ \t\n][^\n]*)?/ . del /\n/ "\n" ]
|
||||||
|
let empty = [ label "#empty" . eol ]
|
||||||
|
|
||||||
|
let record = indent . entry . eol
|
||||||
|
|
||||||
|
let lns = ( record | comment | empty ) *
|
||||||
|
|
||||||
|
let filter = incl "/etc/libvirt/libvirtd.conf"
|
||||||
|
. Util.stdexcl
|
||||||
|
|
||||||
|
let xfm = transform lns filter
|
1531
daemon/libvirtd.c
Normal file
1531
daemon/libvirtd.c
Normal file
File diff suppressed because it is too large
Load Diff
429
daemon/libvirtd.conf
Normal file
429
daemon/libvirtd.conf
Normal file
@@ -0,0 +1,429 @@
|
|||||||
|
# Master libvirt daemon configuration file
|
||||||
|
#
|
||||||
|
# For further information consult http://libvirt.org/format.html
|
||||||
|
#
|
||||||
|
# NOTE: the tests/daemon-conf regression test script requires
|
||||||
|
# that each "PARAMETER = VALUE" line in this file have the parameter
|
||||||
|
# name just after a leading "#".
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# Network connectivity controls
|
||||||
|
#
|
||||||
|
|
||||||
|
# Flag listening for secure TLS connections on the public TCP/IP port.
|
||||||
|
# NB, must pass the --listen flag to the libvirtd process for this to
|
||||||
|
# have any effect.
|
||||||
|
#
|
||||||
|
# It is necessary to setup a CA and issue server certificates before
|
||||||
|
# using this capability.
|
||||||
|
#
|
||||||
|
# This is enabled by default, uncomment this to disable it
|
||||||
|
#listen_tls = 0
|
||||||
|
|
||||||
|
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
||||||
|
# NB, must pass the --listen flag to the libvirtd process for this to
|
||||||
|
# have any effect.
|
||||||
|
#
|
||||||
|
# Using the TCP socket requires SASL authentication by default. Only
|
||||||
|
# SASL mechanisms which support data encryption are allowed. This is
|
||||||
|
# DIGEST_MD5 and GSSAPI (Kerberos5)
|
||||||
|
#
|
||||||
|
# This is disabled by default, uncomment this to enable it.
|
||||||
|
#listen_tcp = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Override the port for accepting secure TLS connections
|
||||||
|
# This can be a port number, or service name
|
||||||
|
#
|
||||||
|
#tls_port = "16514"
|
||||||
|
|
||||||
|
# Override the port for accepting insecure TCP connections
|
||||||
|
# This can be a port number, or service name
|
||||||
|
#
|
||||||
|
#tcp_port = "16509"
|
||||||
|
|
||||||
|
|
||||||
|
# Override the default configuration which binds to all network
|
||||||
|
# interfaces. This can be a numeric IPv4/6 address, or hostname
|
||||||
|
#
|
||||||
|
# If the libvirtd service is started in parallel with network
|
||||||
|
# startup (e.g. with systemd), binding to addresses other than
|
||||||
|
# the wildcards (0.0.0.0/::) might not be available yet.
|
||||||
|
#
|
||||||
|
#listen_addr = "192.168.0.1"
|
||||||
|
|
||||||
|
|
||||||
|
# Flag toggling mDNS advertizement of the libvirt service.
|
||||||
|
#
|
||||||
|
# Alternatively can disable for all services on a host by
|
||||||
|
# stopping the Avahi daemon
|
||||||
|
#
|
||||||
|
# This is disabled by default, uncomment this to enable it
|
||||||
|
#mdns_adv = 1
|
||||||
|
|
||||||
|
# Override the default mDNS advertizement name. This must be
|
||||||
|
# unique on the immediate broadcast network.
|
||||||
|
#
|
||||||
|
# The default is "Virtualization Host HOSTNAME", where HOSTNAME
|
||||||
|
# is substituted for the short hostname of the machine (without domain)
|
||||||
|
#
|
||||||
|
#mdns_name = "Virtualization Host Joe Demo"
|
||||||
|
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# UNIX socket access controls
|
||||||
|
#
|
||||||
|
|
||||||
|
# Beware that if you are changing *any* of these options, and you use
|
||||||
|
# socket activation with systemd, you need to adjust the settings in
|
||||||
|
# the libvirtd.socket file as well since it could impose a security
|
||||||
|
# risk if you rely on file permission checking only.
|
||||||
|
|
||||||
|
# Set the UNIX domain socket group ownership. This can be used to
|
||||||
|
# allow a 'trusted' set of users access to management capabilities
|
||||||
|
# without becoming root.
|
||||||
|
#
|
||||||
|
# This is restricted to 'root' by default.
|
||||||
|
#unix_sock_group = "libvirt"
|
||||||
|
|
||||||
|
# Set the UNIX socket permissions for the R/O socket. This is used
|
||||||
|
# for monitoring VM status only
|
||||||
|
#
|
||||||
|
# Default allows any user. If setting group ownership, you may want to
|
||||||
|
# restrict this too.
|
||||||
|
#unix_sock_ro_perms = "0777"
|
||||||
|
|
||||||
|
# Set the UNIX socket permissions for the R/W socket. This is used
|
||||||
|
# for full management of VMs
|
||||||
|
#
|
||||||
|
# Default allows only root. If PolicyKit is enabled on the socket,
|
||||||
|
# the default will change to allow everyone (eg, 0777)
|
||||||
|
#
|
||||||
|
# If not using PolicyKit and setting group ownership for access
|
||||||
|
# control, then you may want to relax this too.
|
||||||
|
#unix_sock_rw_perms = "0770"
|
||||||
|
|
||||||
|
# Set the name of the directory in which sockets will be found/created.
|
||||||
|
#unix_sock_dir = "/var/run/libvirt"
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# Authentication.
|
||||||
|
#
|
||||||
|
# - none: do not perform auth checks. If you can connect to the
|
||||||
|
# socket you are allowed. This is suitable if there are
|
||||||
|
# restrictions on connecting to the socket (eg, UNIX
|
||||||
|
# socket permissions), or if there is a lower layer in
|
||||||
|
# the network providing auth (eg, TLS/x509 certificates)
|
||||||
|
#
|
||||||
|
# - sasl: use SASL infrastructure. The actual auth scheme is then
|
||||||
|
# controlled from /etc/sasl2/libvirt.conf. For the TCP
|
||||||
|
# socket only GSSAPI & DIGEST-MD5 mechanisms will be used.
|
||||||
|
# For non-TCP or TLS sockets, any scheme is allowed.
|
||||||
|
#
|
||||||
|
# - polkit: use PolicyKit to authenticate. This is only suitable
|
||||||
|
# for use on the UNIX sockets. The default policy will
|
||||||
|
# require a user to supply their own password to gain
|
||||||
|
# full read/write access (aka sudo like), while anyone
|
||||||
|
# is allowed read/only access.
|
||||||
|
#
|
||||||
|
# Set an authentication scheme for UNIX read-only sockets
|
||||||
|
# By default socket permissions allow anyone to connect
|
||||||
|
#
|
||||||
|
# To restrict monitoring of domains you may wish to enable
|
||||||
|
# an authentication mechanism here
|
||||||
|
#auth_unix_ro = "none"
|
||||||
|
|
||||||
|
# Set an authentication scheme for UNIX read-write sockets
|
||||||
|
# By default socket permissions only allow root. If PolicyKit
|
||||||
|
# support was compiled into libvirt, the default will be to
|
||||||
|
# use 'polkit' auth.
|
||||||
|
#
|
||||||
|
# If the unix_sock_rw_perms are changed you may wish to enable
|
||||||
|
# an authentication mechanism here
|
||||||
|
#auth_unix_rw = "none"
|
||||||
|
|
||||||
|
# Change the authentication scheme for TCP sockets.
|
||||||
|
#
|
||||||
|
# If you don't enable SASL, then all TCP traffic is cleartext.
|
||||||
|
# Don't do this outside of a dev/test scenario. For real world
|
||||||
|
# use, always enable SASL and use the GSSAPI or DIGEST-MD5
|
||||||
|
# mechanism in /etc/sasl2/libvirt.conf
|
||||||
|
#auth_tcp = "sasl"
|
||||||
|
|
||||||
|
# Change the authentication scheme for TLS sockets.
|
||||||
|
#
|
||||||
|
# TLS sockets already have encryption provided by the TLS
|
||||||
|
# layer, and limited authentication is done by certificates
|
||||||
|
#
|
||||||
|
# It is possible to make use of any SASL authentication
|
||||||
|
# mechanism as well, by using 'sasl' for this option
|
||||||
|
#auth_tls = "none"
|
||||||
|
|
||||||
|
|
||||||
|
# Change the API access control scheme
|
||||||
|
#
|
||||||
|
# By default an authenticated user is allowed access
|
||||||
|
# to all APIs. Access drivers can place restrictions
|
||||||
|
# on this. By default the 'nop' driver is enabled,
|
||||||
|
# meaning no access control checks are done once a
|
||||||
|
# client has authenticated with libvirtd
|
||||||
|
#
|
||||||
|
#access_drivers = [ "polkit" ]
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# TLS x509 certificate configuration
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Override the default server key file path
|
||||||
|
#
|
||||||
|
#key_file = "/etc/pki/libvirt/private/serverkey.pem"
|
||||||
|
|
||||||
|
# Override the default server certificate file path
|
||||||
|
#
|
||||||
|
#cert_file = "/etc/pki/libvirt/servercert.pem"
|
||||||
|
|
||||||
|
# Override the default CA certificate path
|
||||||
|
#
|
||||||
|
#ca_file = "/etc/pki/CA/cacert.pem"
|
||||||
|
|
||||||
|
# Specify a certificate revocation list.
|
||||||
|
#
|
||||||
|
# Defaults to not using a CRL, uncomment to enable it
|
||||||
|
#crl_file = "/etc/pki/CA/crl.pem"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# Authorization controls
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Flag to disable verification of our own server certificates
|
||||||
|
#
|
||||||
|
# When libvirtd starts it performs some sanity checks against
|
||||||
|
# its own certificates.
|
||||||
|
#
|
||||||
|
# Default is to always run sanity checks. Uncommenting this
|
||||||
|
# will disable sanity checks which is not a good idea
|
||||||
|
#tls_no_sanity_certificate = 1
|
||||||
|
|
||||||
|
# Flag to disable verification of client certificates
|
||||||
|
#
|
||||||
|
# Client certificate verification is the primary authentication mechanism.
|
||||||
|
# Any client which does not present a certificate signed by the CA
|
||||||
|
# will be rejected.
|
||||||
|
#
|
||||||
|
# Default is to always verify. Uncommenting this will disable
|
||||||
|
# verification - make sure an IP whitelist is set
|
||||||
|
#tls_no_verify_certificate = 1
|
||||||
|
|
||||||
|
|
||||||
|
# A whitelist of allowed x509 Distinguished Names
|
||||||
|
# This list may contain wildcards such as
|
||||||
|
#
|
||||||
|
# "C=GB,ST=London,L=London,O=Red Hat,CN=*"
|
||||||
|
#
|
||||||
|
# See the POSIX fnmatch function for the format of the wildcards.
|
||||||
|
#
|
||||||
|
# NB If this is an empty list, no client can connect, so comment out
|
||||||
|
# entirely rather than using empty list to disable these checks
|
||||||
|
#
|
||||||
|
# By default, no DN's are checked
|
||||||
|
#tls_allowed_dn_list = ["DN1", "DN2"]
|
||||||
|
|
||||||
|
|
||||||
|
# A whitelist of allowed SASL usernames. The format for usernames
|
||||||
|
# depends on the SASL authentication mechanism. Kerberos usernames
|
||||||
|
# look like username@REALM
|
||||||
|
#
|
||||||
|
# This list may contain wildcards such as
|
||||||
|
#
|
||||||
|
# "*@EXAMPLE.COM"
|
||||||
|
#
|
||||||
|
# See the POSIX fnmatch function for the format of the wildcards.
|
||||||
|
#
|
||||||
|
# NB If this is an empty list, no client can connect, so comment out
|
||||||
|
# entirely rather than using empty list to disable these checks
|
||||||
|
#
|
||||||
|
# By default, no Username's are checked
|
||||||
|
#sasl_allowed_username_list = ["joe@EXAMPLE.COM", "fred@EXAMPLE.COM" ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# Processing controls
|
||||||
|
#
|
||||||
|
|
||||||
|
# The maximum number of concurrent client connections to allow
|
||||||
|
# over all sockets combined.
|
||||||
|
#max_clients = 5000
|
||||||
|
|
||||||
|
# The maximum length of queue of connections waiting to be
|
||||||
|
# accepted by the daemon. Note, that some protocols supporting
|
||||||
|
# retransmission may obey this so that a later reattempt at
|
||||||
|
# connection succeeds.
|
||||||
|
#max_queued_clients = 1000
|
||||||
|
|
||||||
|
# The maximum length of queue of accepted but not yet
|
||||||
|
# authenticated clients. The default value is zero, meaning
|
||||||
|
# the feature is disabled.
|
||||||
|
#max_anonymous_clients = 20
|
||||||
|
|
||||||
|
# The minimum limit sets the number of workers to start up
|
||||||
|
# initially. If the number of active clients exceeds this,
|
||||||
|
# then more threads are spawned, up to max_workers limit.
|
||||||
|
# Typically you'd want max_workers to equal maximum number
|
||||||
|
# of clients allowed
|
||||||
|
#min_workers = 5
|
||||||
|
#max_workers = 20
|
||||||
|
|
||||||
|
|
||||||
|
# The number of priority workers. If all workers from above
|
||||||
|
# pool are stuck, some calls marked as high priority
|
||||||
|
# (notably domainDestroy) can be executed in this pool.
|
||||||
|
#prio_workers = 5
|
||||||
|
|
||||||
|
# Total global limit on concurrent RPC calls. Should be
|
||||||
|
# at least as large as max_workers. Beyond this, RPC requests
|
||||||
|
# will be read into memory and queued. This directly impacts
|
||||||
|
# memory usage, currently each request requires 256 KB of
|
||||||
|
# memory. So by default up to 5 MB of memory is used
|
||||||
|
#
|
||||||
|
# XXX this isn't actually enforced yet, only the per-client
|
||||||
|
# limit is used so far
|
||||||
|
#max_requests = 20
|
||||||
|
|
||||||
|
# Limit on concurrent requests from a single client
|
||||||
|
# connection. To avoid one client monopolizing the server
|
||||||
|
# this should be a small fraction of the global max_requests
|
||||||
|
# and max_workers parameter
|
||||||
|
#max_client_requests = 5
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
#
|
||||||
|
# Logging controls
|
||||||
|
#
|
||||||
|
|
||||||
|
# Logging level: 4 errors, 3 warnings, 2 information, 1 debug
|
||||||
|
# basically 1 will log everything possible
|
||||||
|
# Note: Journald may employ rate limiting of the messages logged
|
||||||
|
# and thus lock up the libvirt daemon. To use the debug level with
|
||||||
|
# journald you have to specify it explicitly in 'log_outputs', otherwise
|
||||||
|
# only information level messages will be logged.
|
||||||
|
#log_level = 3
|
||||||
|
|
||||||
|
# Logging filters:
|
||||||
|
# A filter allows to select a different logging level for a given category
|
||||||
|
# of logs
|
||||||
|
# The format for a filter is one of:
|
||||||
|
# x:name
|
||||||
|
# x:+name
|
||||||
|
# where name is a string which is matched against source file name,
|
||||||
|
# e.g., "remote", "qemu", or "util/json", the optional "+" prefix
|
||||||
|
# tells libvirt to log stack trace for each message matching name,
|
||||||
|
# and x is the minimal level where matching messages should be logged:
|
||||||
|
# 1: DEBUG
|
||||||
|
# 2: INFO
|
||||||
|
# 3: WARNING
|
||||||
|
# 4: ERROR
|
||||||
|
#
|
||||||
|
# Multiple filters can be defined in a single @filters, they just need to be
|
||||||
|
# separated by spaces.
|
||||||
|
#
|
||||||
|
# e.g. to only get warning or errors from the remote layer and only errors
|
||||||
|
# from the event layer:
|
||||||
|
#log_filters="3:remote 4:event"
|
||||||
|
|
||||||
|
# Logging outputs:
|
||||||
|
# An output is one of the places to save logging information
|
||||||
|
# The format for an output can be:
|
||||||
|
# x:stderr
|
||||||
|
# output goes to stderr
|
||||||
|
# x:syslog:name
|
||||||
|
# use syslog for the output and use the given name as the ident
|
||||||
|
# x:file:file_path
|
||||||
|
# output to a file, with the given filepath
|
||||||
|
# x:journald
|
||||||
|
# output to journald logging system
|
||||||
|
# In all case the x prefix is the minimal level, acting as a filter
|
||||||
|
# 1: DEBUG
|
||||||
|
# 2: INFO
|
||||||
|
# 3: WARNING
|
||||||
|
# 4: ERROR
|
||||||
|
#
|
||||||
|
# Multiple outputs can be defined, they just need to be separated by spaces.
|
||||||
|
# e.g. to log all warnings and errors to syslog under the libvirtd ident:
|
||||||
|
#log_outputs="3:syslog:libvirtd"
|
||||||
|
#
|
||||||
|
|
||||||
|
# Log debug buffer size:
|
||||||
|
#
|
||||||
|
# This configuration option is no longer used, since the global
|
||||||
|
# log buffer functionality has been removed. Please configure
|
||||||
|
# suitable log_outputs/log_filters settings to obtain logs.
|
||||||
|
#log_buffer_size = 64
|
||||||
|
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
#
|
||||||
|
# Auditing
|
||||||
|
#
|
||||||
|
# This setting allows usage of the auditing subsystem to be altered:
|
||||||
|
#
|
||||||
|
# audit_level == 0 -> disable all auditing
|
||||||
|
# audit_level == 1 -> enable auditing, only if enabled on host (default)
|
||||||
|
# audit_level == 2 -> enable auditing, and exit if disabled on host
|
||||||
|
#
|
||||||
|
#audit_level = 2
|
||||||
|
#
|
||||||
|
# If set to 1, then audit messages will also be sent
|
||||||
|
# via libvirt logging infrastructure. Defaults to 0
|
||||||
|
#
|
||||||
|
#audit_logging = 1
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
# UUID of the host:
|
||||||
|
# Provide the UUID of the host here in case the command
|
||||||
|
# 'dmidecode -s system-uuid' does not provide a valid uuid. In case
|
||||||
|
# 'dmidecode' does not provide a valid UUID and none is provided here, a
|
||||||
|
# temporary UUID will be generated.
|
||||||
|
# Keep the format of the example UUID below. UUID must not have all digits
|
||||||
|
# be the same.
|
||||||
|
|
||||||
|
# NB This default all-zeros UUID will not work. Replace
|
||||||
|
# it with the output of the 'uuidgen' command and then
|
||||||
|
# uncomment this entry
|
||||||
|
#host_uuid = "00000000-0000-0000-0000-000000000000"
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
# Keepalive protocol:
|
||||||
|
# This allows libvirtd to detect broken client connections or even
|
||||||
|
# dead clients. A keepalive message is sent to a client after
|
||||||
|
# keepalive_interval seconds of inactivity to check if the client is
|
||||||
|
# still responding; keepalive_count is a maximum number of keepalive
|
||||||
|
# messages that are allowed to be sent to the client without getting
|
||||||
|
# any response before the connection is considered broken. In other
|
||||||
|
# words, the connection is automatically closed approximately after
|
||||||
|
# keepalive_interval * (keepalive_count + 1) seconds since the last
|
||||||
|
# message received from the client. If keepalive_interval is set to
|
||||||
|
# -1, libvirtd will never send keepalive requests; however clients
|
||||||
|
# can still send them and the daemon will send responses. When
|
||||||
|
# keepalive_count is set to 0, connections will be automatically
|
||||||
|
# closed after keepalive_interval seconds of inactivity without
|
||||||
|
# sending any keepalive messages.
|
||||||
|
#
|
||||||
|
#keepalive_interval = 5
|
||||||
|
#keepalive_count = 5
|
||||||
|
#
|
||||||
|
# If set to 1, libvirtd will refuse to talk to clients that do not
|
||||||
|
# support keepalive protocol. Defaults to 0.
|
||||||
|
#
|
||||||
|
#keepalive_required = 1
|
80
daemon/libvirtd.h
Normal file
80
daemon/libvirtd.h
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* libvirtd.h: daemon data structure definitions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 Red Hat, Inc.
|
||||||
|
* Copyright (C) 2006 Daniel P. Berrange
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
* Author: Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LIBVIRTD_H__
|
||||||
|
# define LIBVIRTD_H__
|
||||||
|
|
||||||
|
# define VIR_ENUM_SENTINELS
|
||||||
|
|
||||||
|
# include <rpc/types.h>
|
||||||
|
# include <rpc/xdr.h>
|
||||||
|
# include "remote_protocol.h"
|
||||||
|
# include "lxc_protocol.h"
|
||||||
|
# include "qemu_protocol.h"
|
||||||
|
# include "virthread.h"
|
||||||
|
# if WITH_SASL
|
||||||
|
# include "virnetsaslcontext.h"
|
||||||
|
# endif
|
||||||
|
# include "virnetserverprogram.h"
|
||||||
|
|
||||||
|
typedef struct daemonClientStream daemonClientStream;
|
||||||
|
typedef daemonClientStream *daemonClientStreamPtr;
|
||||||
|
typedef struct daemonClientPrivate daemonClientPrivate;
|
||||||
|
typedef daemonClientPrivate *daemonClientPrivatePtr;
|
||||||
|
typedef struct daemonClientEventCallback daemonClientEventCallback;
|
||||||
|
typedef daemonClientEventCallback *daemonClientEventCallbackPtr;
|
||||||
|
|
||||||
|
/* Stores the per-client connection state */
|
||||||
|
struct daemonClientPrivate {
|
||||||
|
/* Hold while accessing any data except conn */
|
||||||
|
virMutex lock;
|
||||||
|
|
||||||
|
daemonClientEventCallbackPtr *domainEventCallbacks;
|
||||||
|
size_t ndomainEventCallbacks;
|
||||||
|
daemonClientEventCallbackPtr *networkEventCallbacks;
|
||||||
|
size_t nnetworkEventCallbacks;
|
||||||
|
daemonClientEventCallbackPtr *qemuEventCallbacks;
|
||||||
|
size_t nqemuEventCallbacks;
|
||||||
|
|
||||||
|
# if WITH_SASL
|
||||||
|
virNetSASLSessionPtr sasl;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* This is only valid if a remote open call has been made on this
|
||||||
|
* connection, otherwise it will be NULL. Also if remote close is
|
||||||
|
* called, it will be set back to NULL if that succeeds.
|
||||||
|
*/
|
||||||
|
virConnectPtr conn;
|
||||||
|
|
||||||
|
daemonClientStreamPtr streams;
|
||||||
|
bool keepalive_supported;
|
||||||
|
};
|
||||||
|
|
||||||
|
# if WITH_SASL
|
||||||
|
extern virNetSASLContextPtr saslCtxt;
|
||||||
|
# endif
|
||||||
|
extern virNetServerProgramPtr remoteProgram;
|
||||||
|
extern virNetServerProgramPtr qemuProgram;
|
||||||
|
|
||||||
|
#endif
|
125
daemon/libvirtd.init.in
Normal file
125
daemon/libvirtd.init.in
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# the following is the LSB init header see
|
||||||
|
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: libvirtd
|
||||||
|
# Required-Start: $network messagebus
|
||||||
|
# Should-Start: $named
|
||||||
|
# Should-Start: xend
|
||||||
|
# Should-Start: avahi-daemon
|
||||||
|
# Should-Start: virtlockd
|
||||||
|
# Required-Stop: $network messagebus
|
||||||
|
# Should-Stop: $named
|
||||||
|
# Default-Start: 3 4 5
|
||||||
|
# Default-Stop: 0 1 2 6
|
||||||
|
# Short-Description: daemon for libvirt virtualization API
|
||||||
|
# Description: This is a daemon for managing guest instances
|
||||||
|
# and libvirt virtual networks
|
||||||
|
# See http://libvirt.org
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# the following is chkconfig init header
|
||||||
|
#
|
||||||
|
# libvirtd: guest and virtual network management daemon
|
||||||
|
#
|
||||||
|
# chkconfig: 345 97 03
|
||||||
|
# description: This is a daemon for managing guest instances \
|
||||||
|
# and libvirt virtual networks \
|
||||||
|
# See http://libvirt.org
|
||||||
|
#
|
||||||
|
# processname: libvirtd
|
||||||
|
# pidfile: @localstatedir@/run/libvirtd.pid
|
||||||
|
#
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. @sysconfdir@/rc.d/init.d/functions
|
||||||
|
|
||||||
|
SERVICE=libvirtd
|
||||||
|
PROCESS=libvirtd
|
||||||
|
PIDFILE=@localstatedir@/run/$SERVICE.pid
|
||||||
|
|
||||||
|
LIBVIRTD_CONFIG=
|
||||||
|
LIBVIRTD_ARGS=
|
||||||
|
KRB5_KTNAME=/etc/libvirt/krb5.tab
|
||||||
|
|
||||||
|
test -f @sysconfdir@/sysconfig/libvirtd && . @sysconfdir@/sysconfig/libvirtd
|
||||||
|
|
||||||
|
export QEMU_AUDIO_DRV
|
||||||
|
export SDL_AUDIODRIVER
|
||||||
|
|
||||||
|
LIBVIRTD_CONFIG_ARGS=
|
||||||
|
if [ -n "$LIBVIRTD_CONFIG" ]
|
||||||
|
then
|
||||||
|
LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RETVAL=0
|
||||||
|
|
||||||
|
start() {
|
||||||
|
echo -n $"Starting $SERVICE daemon: "
|
||||||
|
mkdir -p @localstatedir@/cache/libvirt
|
||||||
|
rm -rf @localstatedir@/cache/libvirt/*
|
||||||
|
|
||||||
|
# LIBVIRTD_NOFILES_LIMIT from /etc/sysconfig/libvirtd is not handled
|
||||||
|
# automatically
|
||||||
|
if [ -n "$LIBVIRTD_NOFILES_LIMIT" ]; then
|
||||||
|
ulimit -n "$LIBVIRTD_NOFILES_LIMIT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
KRB5_KTNAME=$KRB5_KTNAME daemon --pidfile $PIDFILE --check $SERVICE $PROCESS --daemon $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$SERVICE
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo -n $"Stopping $SERVICE daemon: "
|
||||||
|
|
||||||
|
killproc -p $PIDFILE $PROCESS
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
if [ $RETVAL -eq 0 ]; then
|
||||||
|
rm -f @localstatedir@/lock/subsys/$SERVICE
|
||||||
|
rm -rf @localstatedir@/cache/libvirt/*
|
||||||
|
else
|
||||||
|
exit $RETVAL
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
echo -n $"Reloading $SERVICE configuration: "
|
||||||
|
|
||||||
|
killproc -p $PIDFILE $PROCESS -HUP
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start|stop|restart|reload)
|
||||||
|
$1
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status -p $PIDFILE $PROCESS
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
force-reload)
|
||||||
|
reload
|
||||||
|
;;
|
||||||
|
condrestart|try-restart)
|
||||||
|
[ -f @localstatedir@/lock/subsys/$SERVICE ] && restart || :
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload|try-restart}"
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $RETVAL
|
@@ -1,8 +1,9 @@
|
|||||||
@localstatedir@/log/libvirt/lxc/*.log {
|
@localstatedir@/log/libvirt/lxc/*.log {
|
||||||
size 2097153
|
weekly
|
||||||
missingok
|
missingok
|
||||||
rotate 4
|
rotate 4
|
||||||
compress
|
compress
|
||||||
delaycompress
|
delaycompress
|
||||||
copytruncate
|
copytruncate
|
||||||
|
minsize 100k
|
||||||
}
|
}
|
208
daemon/libvirtd.pod.in
Normal file
208
daemon/libvirtd.pod.in
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
libvirtd - libvirtd management daemon
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<libvirtd> [ -dlv ] [ -f config_file ] [ -p pid_file ] [ -t timeout_seconds ]
|
||||||
|
|
||||||
|
B<libvirtd> --version
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
The B<libvirtd> program is the server side daemon component of the libvirt
|
||||||
|
virtualization management system.
|
||||||
|
|
||||||
|
This daemon runs on host servers and performs required management tasks for
|
||||||
|
virtualized guests. This includes activities such as starting, stopping
|
||||||
|
and migrating guests between host servers, configuring and manipulating
|
||||||
|
networking, and managing storage for use by guests.
|
||||||
|
|
||||||
|
The libvirt client libraries and utilities connect to this daemon to issue
|
||||||
|
tasks and collect information about the configuration and resources of the host
|
||||||
|
system and guests.
|
||||||
|
|
||||||
|
By default, the libvirtd daemon listens for requests on a local Unix domain
|
||||||
|
socket. Using the B<-l>|B<--listen> command line option, the libvirtd daemon
|
||||||
|
can be instructed to additionally listen on a TCP/IP socket. The TCP/IP socket
|
||||||
|
to use is defined in the libvirtd configuration file.
|
||||||
|
|
||||||
|
Restarting libvirtd does not impact running guests. Guests continue to operate
|
||||||
|
and will be picked up automatically if their XML configuration has been
|
||||||
|
defined. Any guests whose XML configuration has not been defined will be lost
|
||||||
|
from the configuration.
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item B<-h, --help>
|
||||||
|
|
||||||
|
Display command line help usage then exit.
|
||||||
|
|
||||||
|
=item B<-d, --daemon>
|
||||||
|
|
||||||
|
Run as a daemon & write PID file.
|
||||||
|
|
||||||
|
=item B<-f, --config> I<FILE>
|
||||||
|
|
||||||
|
Use this configuration file, overriding the default value.
|
||||||
|
|
||||||
|
=item B<-l, --listen>
|
||||||
|
|
||||||
|
Listen for TCP/IP connections.
|
||||||
|
|
||||||
|
=item B<-p, --pid-file> I<FILE>
|
||||||
|
|
||||||
|
Use this name for the PID file, overriding the default value.
|
||||||
|
|
||||||
|
=item B<-t, --timeout> I<SECONDS>
|
||||||
|
|
||||||
|
Exit after timeout period (in seconds) elapse with no client connections
|
||||||
|
or registered resources. Be aware that resources such as autostart
|
||||||
|
networks will result in never reaching the timeout, even when there are
|
||||||
|
no client connections.
|
||||||
|
|
||||||
|
=item B<-v, --verbose>
|
||||||
|
|
||||||
|
Enable output of verbose messages.
|
||||||
|
|
||||||
|
=item B< --version>
|
||||||
|
|
||||||
|
Display version information then exit.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 SIGNALS
|
||||||
|
|
||||||
|
On receipt of B<SIGHUP> libvirtd will reload its configuration.
|
||||||
|
|
||||||
|
=head1 FILES
|
||||||
|
|
||||||
|
=head2 When run as B<root>.
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item F<SYSCONFDIR/libvirtd.conf>
|
||||||
|
|
||||||
|
The default configuration file used by libvirtd, unless overridden on the
|
||||||
|
command line using the B<-f>|B<--config> option.
|
||||||
|
|
||||||
|
=item F<LOCALSTATEDIR/run/libvirt/libvirt-sock>
|
||||||
|
|
||||||
|
=item F<LOCALSTATEDIR/run/libvirt/libvirt-sock-ro>
|
||||||
|
|
||||||
|
The sockets libvirtd will use.
|
||||||
|
|
||||||
|
=item F<SYSCONFDIR/pki/CA/cacert.pem>
|
||||||
|
|
||||||
|
The TLS B<Certificate Authority> certificate libvirtd will use.
|
||||||
|
|
||||||
|
=item F<SYSCONFDIR/pki/libvirt/servercert.pem>
|
||||||
|
|
||||||
|
The TLS B<Server> certificate libvirtd will use.
|
||||||
|
|
||||||
|
=item F<SYSCONFDIR/pki/libvirt/private/serverkey.pem>
|
||||||
|
|
||||||
|
The TLS B<Server> private key libvirtd will use.
|
||||||
|
|
||||||
|
=item F<LOCALSTATEDIR/run/libvirtd.pid>
|
||||||
|
|
||||||
|
The PID file to use, unless overridden by the B<-p>|B<--pid-file> option.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head2 When run as B<non-root>.
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item F<$XDG_CONFIG_HOME/libvirtd.conf>
|
||||||
|
|
||||||
|
The default configuration file used by libvirtd, unless overridden on the
|
||||||
|
command line using the B<-f>|B<--config> option.
|
||||||
|
|
||||||
|
=item F<$XDG_RUNTIME_DIR/libvirt/libvirt-sock>
|
||||||
|
|
||||||
|
The socket libvirtd will use.
|
||||||
|
|
||||||
|
=item F<$HOME/.pki/libvirt/cacert.pem>
|
||||||
|
|
||||||
|
The TLS B<Certificate Authority> certificate libvirtd will use.
|
||||||
|
|
||||||
|
=item F<$HOME/.pki/libvirt/servercert.pem>
|
||||||
|
|
||||||
|
The TLS B<Server> certificate libvirtd will use.
|
||||||
|
|
||||||
|
=item F<$HOME/.pki/libvirt/serverkey.pem>
|
||||||
|
|
||||||
|
The TLS B<Server> private key libvirtd will use.
|
||||||
|
|
||||||
|
=item F<$XDG_RUNTIME_DIR/libvirt/libvirtd.pid>
|
||||||
|
|
||||||
|
The PID file to use, unless overridden by the B<-p>|B<--pid-file> option.
|
||||||
|
|
||||||
|
=item If $XDG_CONFIG_HOME is not set in your environment, libvirtd will use F<$HOME/.config>
|
||||||
|
|
||||||
|
=item If $XDG_RUNTIME_DIR is not set in your environment, libvirtd will use F<$HOME/.cache>
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 EXAMPLES
|
||||||
|
|
||||||
|
To retrieve the version of libvirtd:
|
||||||
|
|
||||||
|
# libvirtd --version
|
||||||
|
libvirtd (libvirt) 0.8.2
|
||||||
|
#
|
||||||
|
|
||||||
|
To start libvirtd, instructing it to daemonize and create a PID file:
|
||||||
|
|
||||||
|
# libvirtd -d
|
||||||
|
# ls -la LOCALSTATEDIR/run/libvirtd.pid
|
||||||
|
-rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/libvirtd.pid
|
||||||
|
#
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
Please report all bugs you discover. This should be done via either:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item a) the mailing list
|
||||||
|
|
||||||
|
L<http://libvirt.org/contact.html>
|
||||||
|
|
||||||
|
=item or,
|
||||||
|
|
||||||
|
B<>
|
||||||
|
|
||||||
|
=item b) the bug tracker
|
||||||
|
|
||||||
|
L<http://libvirt.org/bugs.html>
|
||||||
|
|
||||||
|
=item Alternatively, you may report bugs to your software distributor / vendor.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
Please refer to the AUTHORS file distributed with libvirt.
|
||||||
|
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright (C) 2006-2012 Red Hat, Inc., and the authors listed in the
|
||||||
|
libvirt AUTHORS file.
|
||||||
|
|
||||||
|
=head1 LICENSE
|
||||||
|
|
||||||
|
libvirtd is distributed under the terms of the GNU LGPL v2.1+.
|
||||||
|
This is free software; see the source for copying conditions. There
|
||||||
|
is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
L<virsh(1)>, L<virt-install(1)>, L<virt-xml-validate(1)>, L<virt-top(1)>,
|
||||||
|
L<virt-df(1)>, L<http://www.libvirt.org/>
|
||||||
|
|
||||||
|
=cut
|
51
daemon/libvirtd.policy.in
Normal file
51
daemon/libvirtd.policy.in
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE policyconfig PUBLIC
|
||||||
|
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Policy definitions for libvirt daemon
|
||||||
|
|
||||||
|
Copyright (C) 2012 Red Hat, Inc.
|
||||||
|
Copyright (C) 2007 Daniel P. Berrange <berrange redhat com>
|
||||||
|
|
||||||
|
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/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<policyconfig>
|
||||||
|
<action id="org.libvirt.unix.monitor">
|
||||||
|
<description>Monitor local virtualized systems</description>
|
||||||
|
<message>System policy prevents monitoring of local virtualized systems</message>
|
||||||
|
<defaults>
|
||||||
|
<!-- Any program can use libvirt in read-only mode for monitoring,
|
||||||
|
even if not part of a session -->
|
||||||
|
<allow_any>yes</allow_any>
|
||||||
|
<allow_inactive>yes</allow_inactive>
|
||||||
|
<allow_active>yes</allow_active>
|
||||||
|
</defaults>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="org.libvirt.unix.manage">
|
||||||
|
<description>Manage local virtualized systems</description>
|
||||||
|
<message>System policy prevents management of local virtualized systems</message>
|
||||||
|
<defaults>
|
||||||
|
<!-- Any program can use libvirt in read/write mode if they
|
||||||
|
provide the root password -->
|
||||||
|
<allow_any>@authaction@</allow_any>
|
||||||
|
<allow_inactive>@authaction@</allow_inactive>
|
||||||
|
<allow_active>@authaction@</allow_active>
|
||||||
|
</defaults>
|
||||||
|
</action>
|
||||||
|
</policyconfig>
|
9
daemon/libvirtd.qemu.logrotate.in
Normal file
9
daemon/libvirtd.qemu.logrotate.in
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
@localstatedir@/log/libvirt/qemu/*.log {
|
||||||
|
weekly
|
||||||
|
missingok
|
||||||
|
rotate 4
|
||||||
|
compress
|
||||||
|
delaycompress
|
||||||
|
copytruncate
|
||||||
|
minsize 100k
|
||||||
|
}
|
31
daemon/libvirtd.sasl
Normal file
31
daemon/libvirtd.sasl
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# If you want to use the non-TLS socket, then you *must* include
|
||||||
|
# the GSSAPI or DIGEST-MD5 mechanisms, because they are the only
|
||||||
|
# ones that can offer session encryption as well as authentication.
|
||||||
|
#
|
||||||
|
# If you're only using TLS, then you can turn on any mechanisms
|
||||||
|
# you like for authentication, because TLS provides the encryption
|
||||||
|
#
|
||||||
|
# Default to a simple username+password mechanism
|
||||||
|
mech_list: digest-md5
|
||||||
|
|
||||||
|
# Before you can use GSSAPI, you need a service principle on the
|
||||||
|
# KDC server for libvirt, and that to be exported to the keytab
|
||||||
|
# file listed below
|
||||||
|
#mech_list: gssapi
|
||||||
|
#
|
||||||
|
# You can also list many mechanisms at once, then the user can choose
|
||||||
|
# by adding '?auth=sasl.gssapi' to their libvirt URI, eg
|
||||||
|
# qemu+tcp://hostname/system?auth=sasl.gssapi
|
||||||
|
#mech_list: digest-md5 gssapi
|
||||||
|
|
||||||
|
# Some older builds of MIT kerberos on Linux ignore this option &
|
||||||
|
# instead need KRB5_KTNAME env var.
|
||||||
|
# For modern Linux, and other OS, this should be sufficient
|
||||||
|
#
|
||||||
|
# There is no default value here, uncomment if you need this
|
||||||
|
#keytab: /etc/libvirt/krb5.tab
|
||||||
|
|
||||||
|
# If using digest-md5 for username/passwds, then this is the file
|
||||||
|
# containing the passwds. Use 'saslpasswd2 -a libvirt [username]'
|
||||||
|
# to add entries, and 'sasldblistusers2 -f [sasldb_path]' to browse it
|
||||||
|
sasldb_path: /etc/libvirt/passwd.db
|
22
daemon/libvirtd.service.in
Normal file
22
daemon/libvirtd.service.in
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Virtualization daemon
|
||||||
|
Before=libvirt-guests.service
|
||||||
|
After=network.target
|
||||||
|
After=dbus.service
|
||||||
|
After=iscsid.service
|
||||||
|
After=apparmor.service
|
||||||
|
Documentation=man:libvirtd(8)
|
||||||
|
Documentation=http://libvirt.org
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=notify
|
||||||
|
EnvironmentFile=-/etc/sysconfig/libvirtd
|
||||||
|
ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
|
||||||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
|
KillMode=process
|
||||||
|
Restart=on-failure
|
||||||
|
# Override the maximum number of opened files
|
||||||
|
#LimitNOFILE=2048
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user