mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-09-19 01:44:56 +03:00
Compare commits
7 Commits
v6.10.0
...
v4.9-maint
Author | SHA1 | Date | |
---|---|---|---|
|
dd88b69a20 | ||
|
6452b9fdff | ||
|
0a744e1551 | ||
|
568c735d7b | ||
|
a474f18dce | ||
|
ea014c9fcf | ||
|
b0f788c2d3 |
@@ -1,5 +1,7 @@
|
||||
-I@abs_top_builddir@
|
||||
-I@abs_top_srcdir@
|
||||
-I@abs_top_builddir@/gnulib/lib
|
||||
-I@abs_top_srcdir@/gnulib/lib
|
||||
-I@abs_top_builddir@/include
|
||||
-I@abs_top_srcdir@/include
|
||||
-I@abs_top_builddir@/src
|
||||
|
@@ -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.
|
226
.gitignore
vendored
226
.gitignore
vendored
@@ -1,23 +1,215 @@
|
||||
# vim related ignores
|
||||
*.swp
|
||||
.lvimrc
|
||||
|
||||
# emacs related ignores
|
||||
*#*#
|
||||
*.#*#
|
||||
.#*
|
||||
*~
|
||||
|
||||
# git related ignores
|
||||
*.rej
|
||||
*.[187]
|
||||
*.[187].in
|
||||
*.a
|
||||
*.cov
|
||||
*.exe
|
||||
*.exe.manifest
|
||||
*.gcda
|
||||
*.gcno
|
||||
*.gcov
|
||||
*.html
|
||||
*.i
|
||||
*.init
|
||||
*.la
|
||||
*.lo
|
||||
*.loT
|
||||
*.o
|
||||
*.orig
|
||||
*.pem
|
||||
*.pyc
|
||||
*.rej
|
||||
*.s
|
||||
*.service
|
||||
*.socket
|
||||
*.swp
|
||||
*~
|
||||
.#*
|
||||
.color_coded
|
||||
.deps
|
||||
.dirstamp
|
||||
.gdb_history
|
||||
.git
|
||||
.git-module-status
|
||||
|
||||
# libvirt related ignores
|
||||
.libs
|
||||
.lvimrc
|
||||
.memdump
|
||||
.sc-start-sc_*
|
||||
.ycm_extra_conf.py
|
||||
/AUTHORS
|
||||
/ChangeLog
|
||||
/GNUmakefile
|
||||
/INSTALL
|
||||
/NEWS
|
||||
/aclocal.m4
|
||||
/autom4te.cache
|
||||
/build-aux/*
|
||||
/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.*
|
||||
/docs/aclperms.htmlinc
|
||||
/docs/apibuild.py.stamp
|
||||
/docs/devhelp/libvirt.devhelp
|
||||
/docs/hvsupport.html.in
|
||||
/docs/libvirt-admin-*.xml
|
||||
/docs/libvirt-api.xml
|
||||
/docs/libvirt-lxc-*.xml
|
||||
/docs/libvirt-qemu-*.xml
|
||||
/docs/libvirt-refs.xml
|
||||
/docs/news.html.in
|
||||
/docs/search.php
|
||||
/docs/todo.html.in
|
||||
/examples/admin/client_close
|
||||
/examples/admin/client_info
|
||||
/examples/admin/client_limits
|
||||
/examples/admin/list_clients
|
||||
/examples/admin/list_servers
|
||||
/examples/admin/logging
|
||||
/examples/admin/threadpool_params
|
||||
/examples/object-events/event-test
|
||||
/examples/dominfo/info1
|
||||
/examples/domsuspend/suspend
|
||||
/examples/dommigrate/dommigrate
|
||||
/examples/domtop/domtop
|
||||
/examples/hellolibvirt/hellolibvirt
|
||||
/examples/openauth/openauth
|
||||
/examples/rename/rename
|
||||
/gnulib/lib/*
|
||||
/gnulib/m4/*
|
||||
/gnulib/tests/*
|
||||
/include/libvirt/libvirt-common.h
|
||||
/libtool
|
||||
/libvirt-*.tar.xz
|
||||
/libvirt-[0-9]*
|
||||
/libvirt*.pc
|
||||
/libvirt.spec
|
||||
/ltconfig
|
||||
/ltmain.sh
|
||||
/m4/*
|
||||
/maint.mk
|
||||
/mingw-libvirt.spec
|
||||
/mkinstalldirs
|
||||
/po/*gmo
|
||||
/po/*po
|
||||
!/po/*.mini.po
|
||||
/po/*pot
|
||||
/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/admin/admin_client.h
|
||||
/src/admin/admin_protocol.[ch]
|
||||
/src/admin/admin_server_dispatch_stubs.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_admin.syms
|
||||
/src/libvirt_*.stp
|
||||
/src/libvirt_*helper
|
||||
/src/libvirt_*probes.h
|
||||
/src/libvirt_lxc
|
||||
/src/libvirtd
|
||||
/src/libvirtd*.logrotate
|
||||
/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/logging/log_daemon_dispatch_stubs.h
|
||||
/src/logging/log_protocol.[ch]
|
||||
/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/remote/*_stubs.h
|
||||
/src/rpc/virkeepaliveprotocol.[ch]
|
||||
/src/rpc/virnetprotocol.[ch]
|
||||
/src/test_libvirt*.aug
|
||||
/src/test_virtlockd.aug
|
||||
/src/test_virtlogd.aug
|
||||
/src/util/virkeycodetable*.h
|
||||
/src/util/virkeynametable*.h
|
||||
/src/virt-aa-helper
|
||||
/src/virtlockd
|
||||
/src/virtlogd
|
||||
/src/virt-guest-shutdown.target
|
||||
/tests/*.log
|
||||
/tests/*.pid
|
||||
/tests/*.trs
|
||||
/tests/*test
|
||||
/tests/commandhelper
|
||||
/tests/qemucapsprobe
|
||||
!/tests/virsh-self-test
|
||||
!/tests/virt-aa-helper-test
|
||||
!/tests/virt-admin-self-test
|
||||
/tests/objectlocking
|
||||
/tests/objectlocking-files.txt
|
||||
/tests/objectlocking.cm[ix]
|
||||
/tests/reconnect
|
||||
/tests/ssh
|
||||
/tests/test_file_access.txt
|
||||
/tests/test_conf
|
||||
/tools/libvirt-guests.sh
|
||||
/tools/virt-login-shell
|
||||
/tools/virsh
|
||||
/tools/virsh-*-edit.c
|
||||
/tools/virt-admin
|
||||
/tools/virt-*-validate
|
||||
/tools/virt-sanlock-cleanup
|
||||
/tools/wireshark/src/plugin.c
|
||||
/tools/wireshark/src/libvirt
|
||||
/update.log
|
||||
GPATH
|
||||
GRTAGS
|
||||
GTAGS
|
||||
Makefile
|
||||
Makefile.in
|
||||
TAGS
|
||||
coverage
|
||||
cscope.files
|
||||
cscope.in.out
|
||||
cscope.out
|
||||
cscope.po.out
|
||||
results.log
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
stamp-h1
|
||||
tags
|
||||
|
||||
# clangd related ignores
|
||||
.clangd
|
||||
compile_commands.json
|
||||
!/build-aux/*.pl
|
||||
!/gnulib/lib/Makefile.am
|
||||
!/gnulib/tests/Makefile.am
|
||||
!/m4/virt-*.m4
|
||||
|
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
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
||||
[submodule "gnulib"]
|
||||
path = .gnulib
|
||||
url = https://git.savannah.gnu.org/git/gnulib.git/
|
||||
[submodule "keycodemapdb"]
|
||||
path = src/keycodemapdb
|
||||
url = https://gitlab.com/keycodemap/keycodemapdb.git
|
||||
|
@@ -1,4 +1,3 @@
|
||||
[gitpublishprofile "default"]
|
||||
base = master
|
||||
to = libvir-list@redhat.com
|
||||
prefix = libvirt PATCH
|
||||
|
1
.gnulib
Submodule
1
.gnulib
Submodule
Submodule .gnulib added at 68df637b5f
5
.mailmap
5
.mailmap
@@ -43,11 +43,6 @@
|
||||
<nshirokovskiy@virtuozzo.com> <nshirokovskiy@parallels.com>
|
||||
<jyang@redhat.com> <osier@yunify.com>
|
||||
<kkoukiou@redhat.com> <k.koukiou@googlemail.com>
|
||||
<intrigeri@boum.org> <intrigeri+libvirt@boum.org>
|
||||
<fidencio@redhat.com> <fabiano@fidencio.org>
|
||||
<shi_lei@massclouds.com> <shilei.massclouds@gmx.com>
|
||||
<adrian.brzezinski@eo.pl> <redhat@adrb.pl>
|
||||
<matt@datto.com> <mcoleman@datto.com>
|
||||
|
||||
# Name consolidation:
|
||||
# Preferred author spelling <preferred email>
|
||||
|
111
.travis.yml
Normal file
111
.travis.yml
Normal file
@@ -0,0 +1,111 @@
|
||||
sudo: required
|
||||
language: generic
|
||||
|
||||
branches:
|
||||
except:
|
||||
- /^.*-maint$/
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- services:
|
||||
- docker
|
||||
env:
|
||||
- IMAGE="ubuntu-18"
|
||||
- DISTCHECK_CONFIGURE_FLAGS="--with-init-script=systemd"
|
||||
- DOCKER_CMD="$LINUX_CMD"
|
||||
- services:
|
||||
- docker
|
||||
env:
|
||||
- IMAGE="centos-7"
|
||||
- DISTCHECK_CONFIGURE_FLAGS="--with-init-script=upstart"
|
||||
- DOCKER_CMD="$LINUX_CMD"
|
||||
- services:
|
||||
- docker
|
||||
env:
|
||||
- IMAGE="fedora-rawhide"
|
||||
- MINGW="mingw32"
|
||||
- DOCKER_CMD="$MINGW_CMD"
|
||||
- services:
|
||||
- docker
|
||||
env:
|
||||
- IMAGE="fedora-rawhide"
|
||||
- MINGW="mingw64"
|
||||
- DOCKER_CMD="$MINGW_CMD"
|
||||
- compiler: clang
|
||||
language: c
|
||||
os: osx
|
||||
env:
|
||||
- PATH="/usr/local/opt/gettext/bin:/usr/local/opt/ccache/libexec:/usr/local/opt/rpcgen/bin:$PATH"
|
||||
script:
|
||||
/bin/sh -xc "$MACOS_CMD"
|
||||
|
||||
script:
|
||||
- docker run
|
||||
-v $(pwd):/build
|
||||
-w /build
|
||||
-e VIR_TEST_DEBUG="$VIR_TEST_DEBUG"
|
||||
-e MINGW="$MINGW"
|
||||
-e DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS"
|
||||
"libvirt/buildenv-$IMAGE"
|
||||
/bin/sh -xc "$DOCKER_CMD"
|
||||
|
||||
git:
|
||||
submodules: true
|
||||
|
||||
env:
|
||||
global:
|
||||
- VIR_TEST_DEBUG=1
|
||||
- LINUX_CMD="
|
||||
./autogen.sh &&
|
||||
make -j3 syntax-check &&
|
||||
make -j3 distcheck DISTCHECK_CONFIGURE_FLAGS=\"\$DISTCHECK_CONFIGURE_FLAGS\" ||
|
||||
(
|
||||
echo '=== LOG FILE(S) START ===';
|
||||
find -name test-suite.log | xargs cat;
|
||||
echo '=== LOG FILE(S) END ===';
|
||||
exit 1
|
||||
)
|
||||
"
|
||||
- MINGW_CMD="
|
||||
NOCONFIGURE=1 ./autogen.sh &&
|
||||
\$MINGW-configure &&
|
||||
make -j3 ||
|
||||
(
|
||||
echo '=== LOG FILE(S) START ===';
|
||||
find -name test-suite.log | xargs cat;
|
||||
echo '=== LOG FILE(S) END ===';
|
||||
exit 1
|
||||
)
|
||||
"
|
||||
# We can't run 'distcheck' or 'syntax-check' because they fail on
|
||||
# macOS, but doing 'install' and 'dist' gives us some useful coverage
|
||||
- MACOS_CMD="
|
||||
brew update &&
|
||||
brew install ccache rpcgen xz yajl &&
|
||||
./autogen.sh --prefix=\$(pwd)/install-root &&
|
||||
make -j3 &&
|
||||
make -j3 install &&
|
||||
make -j3 dist ||
|
||||
(
|
||||
echo '=== LOG FILE(S) START ===';
|
||||
find -name test-suite.log | xargs cat;
|
||||
echo '=== LOG FILE(S) END ===';
|
||||
exit 1
|
||||
)
|
||||
"
|
||||
|
||||
notifications:
|
||||
irc:
|
||||
# The channel name "irc.oftc.net#virt" is encrypted against libvirt/libvirt
|
||||
# to prevent IRC notifications from github forks. This was created using:
|
||||
# $ travis encrypt -r "libvirt/libvirt" "irc.oftc.net#virt"
|
||||
channels:
|
||||
- secure: "hUPdkLxX7nh75+clpnk4U0XLExLfV9DFKSvQSAUtf5JtDNMslj7AeOCf2wcbkNsEhkiF557odTAnov1s5m1w/yaa56zbjFAh5agzqRKya3QjqsrvlBKw/WuN+l82iMNLLeebTgCPAXrbAbGWH8YmYssp/7+eMsnKaVh84EQQNbMCHlLg6ovE26Fs18mZ6J5RC3OPa1vbv+xkdCHvGg/Oyp4K8bpU7RYyimA56jdxI/OfdTH9HxntHYSzykR7hDbyzZhdIlAUyRKReQVjcV5+R8fdDL/1imyGA/88KTztMeKXpZ5Rf+Ss3vYLZb6qsLLegCZ4AU/q0vvbWxjpZGJZoeyrVpfBTZdYGIzmLTMl9GYXXa/gDwFlbvRDiPDG4TIy6GlMUROinj7KRKEHu1fWRYu012ife5OjidxcwrTnz21vYaCv3AKWPpMPxwIzQPkY1hex9uLLX6z+TrAxxDLF+7UzRT9w2RLFBkLYlj2aDVrLAVb/ynRsxDz5CGzC61FSQVft2e308SkGjdn8YxvguCuXv+N70Fu1cvFyh5XYeHb4fbBRo0Ctzaec78leHlQvRGWKJxXDXRkE2lvvBc7YbBNSAYh7Fs8Y+zY7l7rMxvXdrt3nuaNQhe74V3yhxPDAld66qmAn9TYMmaZW2f5/KKKILLbCa0t2MxiAc6L2OI8="
|
||||
on_success: change
|
||||
on_failure: always
|
||||
email:
|
||||
# The list name 'libvirt-ci@redhat.com" is encrypted against libvirt/libvirt
|
||||
# to prevent IRC notifications from github forks. This was created using:
|
||||
# $ travis encrypt -r "libvirt/libvirt" "libvirt-ci@redhat.com"
|
||||
recipients:
|
||||
- secure: "QcU9eP96P0RlDNzVRZl/4sxyydPStGzECrpgJhr2IPB/7pHk23yaBrmUsq9S830tB+jwLGma1IscNB8uf7Sf7WY+cYIpfR8v030OffWnaipo/Gcs0dpnlfURWHjOFQI3RJzGEihsqvbwUFOwsM+3IDyO3qdWaiT6cN2Tj9ROlwYCySSX5YWzLyX7arBZ4lp8ESs7ohQaEwp2cegnMP2oGPJJe4SebvlCDjHZbjkU5aEradwUWnRQDJZWTKknpNLArVFxN2/ixp6f/MGY4DmkHoDweio6mHIPN5zTs5Jt32aiX6wDBa+bBa4v8TCRqzhYkQ63ZZhNV8bY5Uf9ufTdyvt96yIANyakd85b1QpMdAX76IyJi1l0/Uub6DTQZAcq3vK7iPjGeTVSpyoXrqTfGy4JxMjqDoocpWvv8ALX1wrYI/HfN2R2Aepw9jModTimOsebYhJ1yMhSt8qnh5AQNftGKL2JBKoA1LWdU2YJ5fO1bGjKNiVEkGFQTPYFWrYCUY5JcT+s5WCzNeMNm8s9na8liYhGl3WtS3rPr5M8bof+BMsBhG2hQ0loduc94x2GkvyhQZUgRbqrwNR+y4hn+rWFC3hBzzyiAULs43vY/PJ+eBdKEf3VAc0MkhQ8GgXGSA61fR6aXYonroI/WnBVItwDmUnnMfSziZXxk09GLl4="
|
@@ -1,6 +1,8 @@
|
||||
flags = [
|
||||
'-I@abs_top_builddir@',
|
||||
'-I@abs_top_srcdir@',
|
||||
'-I@abs_top_builddir@/gnulib/lib',
|
||||
'-I@abs_top_srcdir@/gnulib/lib',
|
||||
'-I@abs_top_builddir@/include',
|
||||
'-I@abs_top_srcdir@/include',
|
||||
'-I@abs_top_builddir@/src',
|
||||
|
101
AUTHORS.in
Normal file
101
AUTHORS.in
Normal file
@@ -0,0 +1,101 @@
|
||||
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>
|
||||
Andrea Bolognani <abologna@redhat.com>
|
||||
Cédric Bosdonnat <cbosdonnat@suse.com>
|
||||
Christian Ehrhardt <christian.ehrhardt@canonical.com>
|
||||
Christophe Fergeau <cfergeau@redhat.com>
|
||||
Claudio Bley <claudio.bley@gmail.com>
|
||||
Cole Robinson <crobinso@redhat.com>
|
||||
Daniel P. Berrangé <berrange@redhat.com>
|
||||
Daniel Veillard <veillard@redhat.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>
|
||||
Katerina Koukiou <kkoukiou@redhat.com>
|
||||
Laine Stump <laine@redhat.com>
|
||||
Mark McLoughlin <markmc@redhat.com>
|
||||
Martin Kletzander <mkletzan@redhat.com>
|
||||
Matthias Bolte <matthias.bolte@googlemail.com>
|
||||
Maxim Nestratov <mnestratov@virtuozzo.com>
|
||||
Michal Prívozník <mprivozn@redhat.com>
|
||||
Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.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>
|
||||
Dmitry Guryanov <dguryanov@parallels.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>
|
||||
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
|
||||
|
||||
-- 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.
|
16699
ChangeLog-old
Normal file
16699
ChangeLog-old
Normal file
File diff suppressed because it is too large
Load Diff
125
Makefile.am
Normal file
125
Makefile.am
Normal file
@@ -0,0 +1,125 @@
|
||||
## 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/libvirt src tools docs gnulib/tests \
|
||||
tests po examples
|
||||
|
||||
XZ_OPT ?= -v -T0
|
||||
export XZ_OPT
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
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 \
|
||||
libvirt-admin.pc.in \
|
||||
Makefile.nonreentrant \
|
||||
autogen.sh \
|
||||
cfg.mk \
|
||||
run.in \
|
||||
README.md \
|
||||
AUTHORS.in
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libvirt.pc libvirt-qemu.pc libvirt-lxc.pc libvirt-admin.pc
|
||||
|
||||
NEWS: \
|
||||
$(srcdir)/docs/news.xml \
|
||||
$(srcdir)/docs/news-ascii.xsl \
|
||||
$(srcdir)/docs/reformat-news.py
|
||||
$(AM_V_GEN) \
|
||||
if [ -x $(XSLTPROC) ]; then \
|
||||
$(XSLTPROC) --nonet \
|
||||
$(srcdir)/docs/news-ascii.xsl \
|
||||
$(srcdir)/docs/news.xml \
|
||||
>$@-tmp \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
$(PYTHON) $(srcdir)/docs/reformat-news.py $@-tmp >$@ \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
rm -f $@-tmp; \
|
||||
fi
|
||||
EXTRA_DIST += \
|
||||
$(srcdir)/docs/news.xml \
|
||||
$(srcdir)/docs/news-ascii.xsl \
|
||||
$(srcdir)/docs/reformat-news.py
|
||||
|
||||
rpm: clean
|
||||
@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.xz)
|
||||
|
||||
srpm: clean
|
||||
@(unset CDPATH ; $(MAKE) dist && rpmbuild -ts $(distdir).tar.xz)
|
||||
|
||||
check-local: all tests
|
||||
|
||||
check-access:
|
||||
@($(MAKE) $(AM_MAKEFLAGS) -C tests check-access)
|
||||
|
||||
cov: clean-cov
|
||||
$(MKDIR_P) $(top_builddir)/coverage
|
||||
$(LCOV) -c -o $(top_builddir)/coverage/libvirt.info.tmp \
|
||||
-d $(top_builddir)/src \
|
||||
-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
|
||||
|
||||
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 \
|
||||
( \
|
||||
cd $(srcdir) && \
|
||||
git log --pretty=format:'%aN <%aE>' | sort -u \
|
||||
) > all.list && \
|
||||
sort -u $(srcdir)/AUTHORS.in > maint.list && \
|
||||
comm -23 all.list maint.list > contrib.list && \
|
||||
contrib="`cat contrib.list`" && \
|
||||
perl -p -e "s/#contributorslist#// and print '$$contrib'" \
|
||||
< $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \
|
||||
mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS && \
|
||||
rm -f all.list maint.list contrib.list; \
|
||||
fi
|
58
README-hacking
Normal file
58
README-hacking
Normal file
@@ -0,0 +1,58 @@
|
||||
-*- 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 docs/hacking.html (after building libvirt using the information
|
||||
included in this file) for more detailed 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 https://libvirt.org/git/libvirt.git
|
||||
$ 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:
|
83
README.md
Normal file
83
README.md
Normal file
@@ -0,0 +1,83 @@
|
||||
[](https://travis-ci.org/libvirt/libvirt)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/355)
|
||||
|
||||
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](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.1 (or later). See the files `COPYING.LESSER`
|
||||
and `COPYING` for full license terms & conditions.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Libvirt uses the GNU Autotools build system, so in general can be built
|
||||
and installed with the usual commands. For example, to build in a manner
|
||||
that is suitable for installing as root, use:
|
||||
|
||||
```
|
||||
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
While to build & install as an unprivileged user
|
||||
|
||||
```
|
||||
$ ./configure --prefix=$HOME/usr
|
||||
$ make
|
||||
$ make install
|
||||
```
|
||||
|
||||
The libvirt code relies on a large number of 3rd party libraries. These will
|
||||
be detected during execution of the `configure` script and a summary printed
|
||||
which lists any missing (optional) dependencies.
|
||||
|
||||
|
||||
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](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](https://libvirt.org/contact.html)
|
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
|
208
autogen.sh
Executable file
208
autogen.sh
Executable file
@@ -0,0 +1,208 @@
|
||||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
die()
|
||||
{
|
||||
echo "error: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
starting_point=$(pwd)
|
||||
|
||||
srcdir=$(dirname "$0")
|
||||
test "$srcdir" || srcdir=.
|
||||
|
||||
cd "$srcdir" || {
|
||||
die "Failed to cd into $srcdir"
|
||||
}
|
||||
|
||||
test -f src/libvirt.c || {
|
||||
die "$0 must live in the top-level libvirt directory"
|
||||
}
|
||||
|
||||
dry_run=
|
||||
no_git=
|
||||
gnulib_srcdir=
|
||||
extra_args=
|
||||
while test "$#" -gt 0; do
|
||||
case "$1" in
|
||||
--dry-run)
|
||||
# This variable will serve both as an indicator of the fact that
|
||||
# a dry run has been requested, and to store the result of the
|
||||
# dry run. It will be ultimately used as return code for the
|
||||
# script: 0 means no action is necessary, 2 means that autogen.sh
|
||||
# needs to be executed, and 1 is reserved for failures
|
||||
dry_run=0
|
||||
shift
|
||||
;;
|
||||
--no-git)
|
||||
no_git=" $1"
|
||||
shift
|
||||
;;
|
||||
--gnulib-srcdir=*)
|
||||
gnulib_srcdir=" $1"
|
||||
shift
|
||||
;;
|
||||
--gnulib-srcdir)
|
||||
gnulib_srcdir=" $1=$2"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
--system)
|
||||
prefix=/usr
|
||||
sysconfdir=/etc
|
||||
localstatedir=/var
|
||||
if test -d $prefix/lib64; then
|
||||
libdir=$prefix/lib64
|
||||
else
|
||||
libdir=$prefix/lib
|
||||
fi
|
||||
extra_args="--prefix=$prefix --localstatedir=$localstatedir"
|
||||
extra_args="$extra_args --sysconfdir=$sysconfdir --libdir=$libdir"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
# All remaining arguments will be passed to configure verbatim
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
no_git="$no_git$gnulib_srcdir"
|
||||
|
||||
gnulib_hash()
|
||||
{
|
||||
local no_git=$1
|
||||
|
||||
if test "$no_git"; then
|
||||
echo "no-git"
|
||||
return
|
||||
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.
|
||||
git submodule status .gnulib | awk '{ print $1 }'
|
||||
git hash-object bootstrap.conf
|
||||
git ls-tree -d HEAD gnulib/local | awk '{ print $3 }'
|
||||
}
|
||||
|
||||
# Only look into git submodules if we're in a git checkout
|
||||
if test -d .git || test -f .git; then
|
||||
|
||||
# Check for dirty submodules
|
||||
if test -z "$CLEAN_SUBMODULE"; then
|
||||
for path in $(git submodule status | awk '{ print $2 }'); do
|
||||
case "$(git diff "$path")" in
|
||||
*-dirty*)
|
||||
echo "error: $path is dirty, please investigate" >&2
|
||||
echo "set CLEAN_SUBMODULE to discard submodule changes" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
if test "$CLEAN_SUBMODULE" && test -z "$no_git"; then
|
||||
if test -z "$dry_run"; then
|
||||
echo "Cleaning up submodules..."
|
||||
git submodule foreach 'git clean -dfqx && git reset --hard' || {
|
||||
die "Cleaning up submodules failed"
|
||||
}
|
||||
fi
|
||||
fi
|
||||
|
||||
# Update all submodules. If any of the submodules has not been
|
||||
# initialized yet, it will be initialized now; moreover, any submodule
|
||||
# with uncommitted changes will be returned to the expected state
|
||||
echo "Updating submodules..."
|
||||
git submodule update --init || {
|
||||
die "Updating submodules failed"
|
||||
}
|
||||
|
||||
# The expected hash, eg. the one computed after the last
|
||||
# successful bootstrap run, is stored on disk
|
||||
state_file=.git-module-status
|
||||
expected_hash=$(cat "$state_file" 2>/dev/null)
|
||||
actual_hash=$(gnulib_hash "$no_git")
|
||||
|
||||
if test "$actual_hash" = "$expected_hash" && test -f AUTHORS; then
|
||||
# The gnulib hash matches our expectations, and all the files
|
||||
# that can only be generated through bootstrap are present:
|
||||
# we just need to run autoreconf. Unless we're performing a
|
||||
# dry run, of course...
|
||||
if test -z "$dry_run"; then
|
||||
echo "Running autoreconf..."
|
||||
autoreconf -if || {
|
||||
die "autoreconf failed"
|
||||
}
|
||||
fi
|
||||
else
|
||||
# Whenever the gnulib submodule or any of the related bits
|
||||
# has been changed in some way (see gnulib_hash) we need to
|
||||
# run bootstrap again. If we're performing a dry run, we
|
||||
# change the return code instead to signal our caller
|
||||
if test "$dry_run"; then
|
||||
dry_run=2
|
||||
else
|
||||
echo "Running bootstrap..."
|
||||
./bootstrap$no_git --bootstrap-sync || {
|
||||
die "bootstrap failed"
|
||||
}
|
||||
gnulib_hash >"$state_file"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# When performing a dry run, we can stop here
|
||||
test "$dry_run" && exit "$dry_run"
|
||||
|
||||
# If asked not to run configure, we can stop here
|
||||
test "$NOCONFIGURE" && exit 0
|
||||
|
||||
cd "$starting_point" || {
|
||||
die "Failed to cd into $starting_point"
|
||||
}
|
||||
|
||||
if test "$OBJ_DIR"; then
|
||||
mkdir -p "$OBJ_DIR" || {
|
||||
die "Failed to create $OBJ_DIR"
|
||||
}
|
||||
cd "$OBJ_DIR" || {
|
||||
die "Failed to cd into $OBJ_DIR"
|
||||
}
|
||||
fi
|
||||
|
||||
# Make sure we can find GNU make and tell the user
|
||||
# the right command to run
|
||||
MAKE=
|
||||
for cmd in make gmake; do
|
||||
if $cmd -v 2>&1 | grep -q "GNU Make"; then
|
||||
MAKE=$cmd
|
||||
break
|
||||
fi
|
||||
done
|
||||
test "$MAKE" || {
|
||||
die "GNU make is required to build libvirt"
|
||||
}
|
||||
|
||||
if test -z "$*" && test -z "$extra_args" && test -f config.status; then
|
||||
echo "Running config.status..."
|
||||
./config.status --recheck || {
|
||||
die "config.status failed"
|
||||
}
|
||||
else
|
||||
if test -z "$*" && test -z "$extra_args"; 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."
|
||||
else
|
||||
echo "Running configure with $extra_args $@"
|
||||
fi
|
||||
"$srcdir/configure" $extra_args "$@" || {
|
||||
die "configure failed"
|
||||
}
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Now type '$MAKE' to compile libvirt."
|
199
bootstrap.conf
Normal file
199
bootstrap.conf
Normal file
@@ -0,0 +1,199 @@
|
||||
# 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
|
||||
dirname-lgpl
|
||||
environ
|
||||
execinfo
|
||||
fclose
|
||||
fcntl
|
||||
fcntl-h
|
||||
fdatasync
|
||||
ffs
|
||||
ffsl
|
||||
fnmatch
|
||||
fsync
|
||||
func
|
||||
getaddrinfo
|
||||
getcwd-lgpl
|
||||
gethostname
|
||||
getopt-posix
|
||||
getpass
|
||||
getpeername
|
||||
getsockname
|
||||
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
|
||||
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
|
||||
unsetenv
|
||||
useless-if-before-free
|
||||
usleep
|
||||
vasprintf
|
||||
verify
|
||||
vc-list-files
|
||||
vsnprintf
|
||||
waitpid
|
||||
warnings
|
||||
wcwidth
|
||||
'
|
||||
|
||||
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
|
||||
|
||||
|
||||
# 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.
|
||||
buildreq="\
|
||||
autoconf 2.59
|
||||
automake 1.9.6
|
||||
git 1.5.5
|
||||
gzip -
|
||||
libtool -
|
||||
patch -
|
||||
perl 5.5
|
||||
pkg-config -
|
||||
rpcgen -
|
||||
tar -
|
||||
xmllint -
|
||||
xsltproc -
|
||||
"
|
||||
|
||||
# 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/env 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: $!";
|
@@ -16,145 +16,363 @@
|
||||
# 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;
|
||||
#
|
||||
# CheckFunctionBody:
|
||||
# $_[0]: $data(in)
|
||||
# $_[1]: $location(in), which format is file-path:line-num:line-code
|
||||
# $_[2]: $fn_linenum(inout), maintains start line-num of function body
|
||||
# Returns 0 in case of success or 1 on failure
|
||||
#
|
||||
# Check incorrect indentation and blank first line in function body.
|
||||
# For efficiency, it only checks the first line of function body.
|
||||
# But it's enough for most cases.
|
||||
# (It could be better that we use *state* to declare @fn_linenum and
|
||||
# move it into this subroutine. But *state* requires version >= v5.10.)
|
||||
#
|
||||
sub CheckFunctionBody {
|
||||
my $ret = 0;
|
||||
my ($data, $location, $fn_linenum) = @_;
|
||||
|
||||
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 = "";
|
||||
# Check first line of function block
|
||||
if ($$fn_linenum) {
|
||||
if ($$data =~ /^\s*$/) {
|
||||
print "Blank line before content in function body:\n$$location";
|
||||
$ret = 1;
|
||||
} elsif ($$data !~ /^[ ]{4}\S/) {
|
||||
unless ($$data =~ /^[ ]\w+:$/ || $$data =~ /^}/) {
|
||||
print "Incorrect indentation in function body:\n$$location";
|
||||
$ret = 1;
|
||||
}
|
||||
}
|
||||
$$fn_linenum = 0;
|
||||
}
|
||||
|
||||
# Kill single line comments, and detect
|
||||
# start of multi-line comments
|
||||
if ($data =~ m,/\*.*\*/,) {
|
||||
$data =~ s,/\*.*\*/,/* */,;
|
||||
} elsif ($data =~ m,/\*,) {
|
||||
$incomment = 1;
|
||||
$data =~ s,/\*.*,/*,;
|
||||
# Detect start of function block
|
||||
if ($$data =~ /^{$/) {
|
||||
$$fn_linenum = $.;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
#
|
||||
# KillComments:
|
||||
# $_[0]: $data(inout)
|
||||
# $_[1]: $incomment(inout)
|
||||
#
|
||||
# Remove all content of comments
|
||||
# (Also, the @incomment could be declared with *state* and move it in.)
|
||||
#
|
||||
sub KillComments {
|
||||
my ($data, $incomment) = @_;
|
||||
|
||||
# Kill contents of multi-line comments
|
||||
# and detect end of multi-line comments
|
||||
if ($$incomment) {
|
||||
if ($$data =~ m,\*/,) {
|
||||
$$incomment = 0;
|
||||
$$data =~ s,^.*\*/,*/,;
|
||||
} else {
|
||||
$$data = "";
|
||||
}
|
||||
}
|
||||
|
||||
# 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;
|
||||
# Kill single line comments, and detect
|
||||
# start of multi-line comments
|
||||
if ($$data =~ m,/\*.*\*/,) {
|
||||
$$data =~ s,/\*.*\*/,/* */,;
|
||||
} elsif ($$data =~ m,/\*,) {
|
||||
$$incomment = 1;
|
||||
$$data =~ s,/\*.*,/*,;
|
||||
}
|
||||
|
||||
# Allow space after keywords only
|
||||
if ($kw =~ /^(?:if|for|while|switch|return)$/) {
|
||||
$tmpdata =~ s/(?:$kw\s\()/XXX(/;
|
||||
return;
|
||||
}
|
||||
|
||||
#
|
||||
# CheckWhiteSpaces:
|
||||
# $_[0]: $data(in)
|
||||
# $_[1]: $location(in), which format is file-path:line-num:line-code
|
||||
# Returns 0 in case of success or 1 on failure
|
||||
#
|
||||
# Check whitespaces according to code spec of libvirt.
|
||||
#
|
||||
sub CheckWhiteSpaces {
|
||||
my $ret = 0;
|
||||
my ($data, $location) = @_;
|
||||
|
||||
# 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.
|
||||
|
||||
# For temporary modifications
|
||||
my $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$$location";
|
||||
$ret = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
# Require whitespace immediately after keywords
|
||||
if ($$data =~ /\b(?:if|for|while|switch|return)\(/) {
|
||||
print "No whitespace after keyword:\n$$location";
|
||||
$ret = 1;
|
||||
}
|
||||
|
||||
# Forbid whitespace between )( of a function typedef
|
||||
if ($$data =~ /\(\*\w+\)\s+\(/) {
|
||||
print "Whitespace between ')' and '(':\n$$location";
|
||||
$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$$location";
|
||||
$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$$location";
|
||||
$ret = 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Require EOL, macro line continuation, or whitespace after ";".
|
||||
# Allow "for (;;)" as an exception.
|
||||
if ($$data =~ /;[^ \\\n;)]/) {
|
||||
print "Invalid character after semicolon:\n$$location";
|
||||
$ret = 1;
|
||||
}
|
||||
|
||||
# Require EOL, space, or enum/struct end after comma.
|
||||
if ($$data =~ /,[^ \\\n)}]/) {
|
||||
print "Invalid character after comma:\n$$location";
|
||||
$ret = 1;
|
||||
}
|
||||
|
||||
# Require spaces around assignment '=', compounds and '=='
|
||||
if ($$data =~ /[^ ]\b[!<>&|\-+*\/%\^=]?=/ ||
|
||||
$$data =~ /=[^= \\\n]/) {
|
||||
print "Spacing around '=' or '==':\n$$location";
|
||||
$ret = 1;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
#
|
||||
# CheckCurlyBrackets:
|
||||
# $_[0]: $data(in)
|
||||
# $_[1]: $file(in)
|
||||
# $_[2]: $line(in)
|
||||
# $_[3]: $cb_linenum(inout)
|
||||
# $_[4]: $cb_code(inout)
|
||||
# $_[5]: $cb_scolon(inout)
|
||||
# Returns 0 in case of success or 1 on failure
|
||||
#
|
||||
# Check whitespaces according to code spec of libvirt.
|
||||
#
|
||||
sub CheckCurlyBrackets {
|
||||
my $ret = 0;
|
||||
my ($data, $file, $line, $cb_linenum, $cb_code, $cb_scolon) = @_;
|
||||
|
||||
# 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 = "";
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
#
|
||||
# CheckMisalignment:
|
||||
# $_[0]: $data(in)
|
||||
# $_[1]: $file(in)
|
||||
# $_[2]: $line(in)
|
||||
# $_[3]: @paren_stack(inout), which maintains information
|
||||
# of the parenthesis
|
||||
# Returns 0 in case of success or 1 on failure
|
||||
#
|
||||
# Check misaligned stuff in parenthesis:
|
||||
# 1. For misaligned arguments of function
|
||||
# 2. For misaligned conditions of [if|while|switch|...]
|
||||
#
|
||||
sub CheckMisalignment {
|
||||
my $ret = 0;
|
||||
my ($data, $file, $line, $paren_stack) = @_;
|
||||
|
||||
# Check alignment based on @paren_stack
|
||||
if (@$paren_stack) {
|
||||
if ($$data =~ /(\S+.*$)/) {
|
||||
my $pos = $$paren_stack[-1][0];
|
||||
my $linenum = $$paren_stack[-1][1];
|
||||
my $code = $$paren_stack[-1][2];
|
||||
if ($pos + 1 != length($`)) {
|
||||
my $pad = "";
|
||||
if ($. > $linenum + 1) {
|
||||
$pad = " " x $pos . " ...\n";
|
||||
}
|
||||
print "Misaligned line in parenthesis:\n";
|
||||
print "$$file:$linenum-$.:\n$code$pad$$line\n";
|
||||
$ret = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Maintain @paren_stack
|
||||
if ($$data =~ /.*[()]/) {
|
||||
my $pos = 0;
|
||||
my $temp = $$data;
|
||||
|
||||
# Kill the content between matched parenthesis and themselves
|
||||
# within the current line.
|
||||
$temp =~ s,(\((?:[^()]++|(?R))*+\)),"X" x (length $&),ge;
|
||||
|
||||
# Pop a item for the open-paren when finding close-paren
|
||||
while (($pos = index($temp, "\)", $pos)) >= 0) {
|
||||
if (@$paren_stack) {
|
||||
pop(@$paren_stack);
|
||||
$pos++;
|
||||
} else {
|
||||
print "Whitespace after non-keyword:\n";
|
||||
print "$file:$.: $line";
|
||||
print "Warning: found unbalanced parenthesis:\n";
|
||||
print "$$file:$.:\n$$line\n";
|
||||
$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;
|
||||
# Push the item for open-paren on @paren_stack
|
||||
# @item = [ position of the open-paren, linenum, code-line ]
|
||||
while (($pos = index($temp, "\(", $pos)) >= 0) {
|
||||
push @$paren_stack, [$pos, $., $$line];
|
||||
$pos++;
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
my $ret = 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;
|
||||
my $fn_linenum = 0;
|
||||
my $incomment = 0;
|
||||
my @paren_stack;
|
||||
|
||||
open FILE, $file;
|
||||
|
||||
while (defined (my $line = <FILE>)) {
|
||||
my $has_define = 0;
|
||||
my $data = $line;
|
||||
my $location = "$file:$.:\n$line";
|
||||
|
||||
# Kill any quoted , ; = or "
|
||||
$data =~ s/'[";,=]'/'X'/g;
|
||||
|
||||
# Kill any quoted strings. Replace with equal-length "XXXX..."
|
||||
$data =~ s,"(([^\\\"]|\\.)*)","\"".'X'x(length $1)."\"",ge;
|
||||
$data =~ s,'(([^\\\']|\\.)*)',"\'".'X'x(length $1)."\'",ge;
|
||||
|
||||
# Kill any C++ style comments
|
||||
$data =~ s,//.*$,//,;
|
||||
|
||||
$has_define = 1 if $data =~ /(?:^#\s*define\b)/;
|
||||
if (not $has_define) {
|
||||
# Ignore all macros except for #define
|
||||
next if $data =~ /^#/;
|
||||
|
||||
$ret = 1 if CheckFunctionBody(\$data, \$location, \$fn_linenum);
|
||||
|
||||
KillComments(\$data, \$incomment);
|
||||
|
||||
$ret = 1 if CheckWhiteSpaces(\$data, \$location);
|
||||
|
||||
$ret = 1 if CheckCurlyBrackets(\$data, \$file, \$line,
|
||||
\$cb_linenum, \$cb_code, \$cb_scolon);
|
||||
}
|
||||
|
||||
# Forbid whitespace between )( of a function typedef
|
||||
if ($data =~ /\(\*\w+\)\s+\(/) {
|
||||
print "Whitespace between ')' and '(':\n";
|
||||
print "$file:$.: $line";
|
||||
$ret = 1;
|
||||
}
|
||||
#####################################################################
|
||||
# Temporary Filter for CheckMisalignment:
|
||||
# Here we introduce a white-list of path, since there're
|
||||
# too much misalignment.
|
||||
# We _need_ fix these misalignment in batches.
|
||||
# We _should_ remove it as soon as fixing all.
|
||||
#####################################################################
|
||||
next unless $file =~ /^src\/util\//;
|
||||
|
||||
# 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;
|
||||
}
|
||||
$ret = 1 if CheckMisalignment(\$data, \$file, \$line, \@paren_stack);
|
||||
}
|
||||
close FILE;
|
||||
}
|
||||
|
@@ -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
|
37
build-aux/minimize-po.pl
Executable file
37
build-aux/minimize-po.pl
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
my @block;
|
||||
my $msgstr = 0;
|
||||
my $empty = 0;
|
||||
my $unused = 0;
|
||||
my $fuzzy = 0;
|
||||
while (<>) {
|
||||
if (/^$/) {
|
||||
if (!$empty && !$unused && !$fuzzy) {
|
||||
print @block;
|
||||
}
|
||||
@block = ();
|
||||
$msgstr = 0;
|
||||
$fuzzy = 0;
|
||||
push @block, $_;
|
||||
} else {
|
||||
if (/^msgstr/) {
|
||||
$msgstr = 1;
|
||||
$empty = 1;
|
||||
}
|
||||
if (/^#.*fuzzy/) {
|
||||
$fuzzy = 1;
|
||||
}
|
||||
if (/^#~ msgstr/) {
|
||||
$unused = 1;
|
||||
}
|
||||
if ($msgstr && /".+"/) {
|
||||
$empty = 0;
|
||||
}
|
||||
push @block, $_;
|
||||
}
|
||||
}
|
||||
|
||||
if (@block && !$empty && !$unused) {
|
||||
print @block;
|
||||
}
|
72
build-aux/mock-noinline.pl
Normal file
72
build-aux/mock-noinline.pl
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
my %noninlined;
|
||||
my %mocked;
|
||||
|
||||
# Functions in public header don't get the noinline annotation
|
||||
# so whitelist them here
|
||||
$noninlined{"virEventAddTimeout"} = 1;
|
||||
|
||||
foreach my $arg (@ARGV) {
|
||||
if ($arg =~ /\.h$/) {
|
||||
#print "Scan header $arg\n";
|
||||
&scan_annotations($arg);
|
||||
} elsif ($arg =~ /mock\.c$/) {
|
||||
#print "Scan mock $arg\n";
|
||||
&scan_overrides($arg);
|
||||
}
|
||||
}
|
||||
|
||||
my $warned = 0;
|
||||
foreach my $func (keys %mocked) {
|
||||
next if exists $noninlined{$func};
|
||||
|
||||
$warned++;
|
||||
print STDERR "$func is mocked at $mocked{$func} but missing noinline annotation\n";
|
||||
}
|
||||
|
||||
exit $warned ? 1 : 0;
|
||||
|
||||
|
||||
sub scan_annotations {
|
||||
my $file = shift;
|
||||
|
||||
open FH, $file or die "cannot read $file: $!";
|
||||
|
||||
my $func;
|
||||
while (<FH>) {
|
||||
if (/^\s*(\w+)\(/ || /^(?:\w+\*?\s+)+(?:\*\s*)?(\w+)\(/) {
|
||||
my $name = $1;
|
||||
if ($name !~ /ATTRIBUTE/) {
|
||||
$func = $name;
|
||||
}
|
||||
} elsif (/^\s*$/) {
|
||||
$func = undef;
|
||||
}
|
||||
if (/ATTRIBUTE_NOINLINE/) {
|
||||
if (defined $func) {
|
||||
$noninlined{$func} = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close FH
|
||||
}
|
||||
|
||||
sub scan_overrides {
|
||||
my $file = shift;
|
||||
|
||||
open FH, $file or die "cannot read $file: $!";
|
||||
|
||||
my $func;
|
||||
while (<FH>) {
|
||||
if (/^(\w+)\(/ || /^\w+\s*(?:\*\s*)?(\w+)\(/) {
|
||||
my $name = $1;
|
||||
if ($name =~ /^vir/) {
|
||||
$mocked{$name} = "$file:$.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close FH
|
||||
}
|
26
build-aux/prohibit-duplicate-header.pl
Normal file
26
build-aux/prohibit-duplicate-header.pl
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
|
||||
my $file = " ";
|
||||
my $ret = 0;
|
||||
my %includes = ( );
|
||||
my $lineno = 0;
|
||||
|
||||
while (<>) {
|
||||
if (not $file eq $ARGV) {
|
||||
%includes = ( );
|
||||
$file = $ARGV;
|
||||
$lineno = 0;
|
||||
}
|
||||
$lineno++;
|
||||
if (/^# *include *[<"]([^>"]*\.h)[">]/) {
|
||||
$includes{$1}++;
|
||||
if ($includes{$1} == 2) {
|
||||
$ret = 1;
|
||||
print STDERR "$ARGV:$lineno: $_";
|
||||
print STDERR "Do not include a header more than once per file\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
exit $ret;
|
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.
|
93
config-post.h
Normal file
93
config-post.h
Normal file
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* 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 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_LIBNL
|
||||
# undef HAVE_LIBNL3
|
||||
# undef HAVE_LIBSASL2
|
||||
# undef HAVE_SYS_ACL_H
|
||||
# undef WITH_CAPNG
|
||||
# undef WITH_CURL
|
||||
# undef WITH_DBUS
|
||||
# undef WITH_DEVMAPPER
|
||||
# undef WITH_DTRACE_PROBES
|
||||
# undef WITH_GNUTLS
|
||||
# undef WITH_LIBSSH
|
||||
# undef WITH_MACVTAP
|
||||
# undef WITH_NUMACTL
|
||||
# undef WITH_SASL
|
||||
# undef WITH_SSH2
|
||||
# undef WITH_SYSTEMD_DAEMON
|
||||
# undef WITH_VIRTUALPORT
|
||||
# undef WITH_YAJL
|
||||
# undef WITH_YAJL2
|
||||
#endif
|
||||
|
||||
/*
|
||||
* With the NSS module it's the same story as virt-login-shell. See the
|
||||
* explanation above.
|
||||
*/
|
||||
#ifdef LIBVIRT_NSS
|
||||
# undef HAVE_LIBNL
|
||||
# undef HAVE_LIBNL3
|
||||
# undef HAVE_LIBSASL2
|
||||
# undef HAVE_SYS_ACL_H
|
||||
# undef WITH_CAPNG
|
||||
# undef WITH_CURL
|
||||
# undef WITH_DEVMAPPER
|
||||
# undef WITH_DTRACE_PROBES
|
||||
# undef WITH_GNUTLS
|
||||
# undef WITH_LIBSSH
|
||||
# undef WITH_MACVTAP
|
||||
# undef WITH_NUMACTL
|
||||
# undef WITH_SASL
|
||||
# undef WITH_SSH2
|
||||
# undef WITH_VIRTUALPORT
|
||||
# undef WITH_SECDRIVER_SELINUX
|
||||
# undef WITH_SECDRIVER_APPARMOR
|
||||
# undef WITH_CAPNG
|
||||
#endif /* LIBVIRT_NSS */
|
||||
|
||||
#ifndef __GNUC__
|
||||
# error "Libvirt requires GCC >= 4.4, 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; gnulib relies
|
||||
* on this to be defined in features.h, which should be included from ctype.h.
|
||||
* This doesn't happen on many non-glibc systems.
|
||||
* When __GNUC_PREREQ is not defined, gnulib defines it to 0, which breaks things.
|
||||
*/
|
||||
#ifndef __GNUC_PREREQ
|
||||
# define __GNUC_PREREQ(maj, min) \
|
||||
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
||||
#endif
|
||||
|
||||
#if !(__GNUC_PREREQ(4, 4) || defined(__clang__))
|
||||
# error "Libvirt requires GCC >= 4.4, or CLang"
|
||||
#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
|
1070
configure.ac
Normal file
1070
configure.ac
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/32favicon.png
Normal file
BIN
docs/32favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 783 B |
408
docs/Makefile.am
Normal file
408
docs/Makefile.am
Normal file
@@ -0,0 +1,408 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
## Copyright (C) 2005-2016 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/>.
|
||||
|
||||
DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt
|
||||
|
||||
apihtml = \
|
||||
html/index.html \
|
||||
$(apihtml_generated)
|
||||
|
||||
apihtml_generated = \
|
||||
html/libvirt-libvirt-common.html \
|
||||
html/libvirt-libvirt-domain.html \
|
||||
html/libvirt-libvirt-domain-snapshot.html \
|
||||
html/libvirt-libvirt-event.html \
|
||||
html/libvirt-libvirt-host.html \
|
||||
html/libvirt-libvirt-interface.html \
|
||||
html/libvirt-libvirt-network.html \
|
||||
html/libvirt-libvirt-nodedev.html \
|
||||
html/libvirt-libvirt-nwfilter.html \
|
||||
html/libvirt-libvirt-secret.html \
|
||||
html/libvirt-libvirt-storage.html \
|
||||
html/libvirt-libvirt-stream.html \
|
||||
html/libvirt-virterror.html
|
||||
|
||||
apipng = \
|
||||
html/left.png \
|
||||
html/up.png \
|
||||
html/home.png \
|
||||
html/right.png
|
||||
|
||||
devhelphtml = \
|
||||
devhelp/libvirt.devhelp \
|
||||
devhelp/index.html \
|
||||
devhelp/general.html \
|
||||
devhelp/libvirt-virterror.html
|
||||
|
||||
css = \
|
||||
generic.css \
|
||||
libvirt.css \
|
||||
mobile.css \
|
||||
main.css
|
||||
|
||||
fonts = \
|
||||
fonts/LICENSE.md \
|
||||
fonts/stylesheet.css \
|
||||
fonts/overpass-bold-italic.woff \
|
||||
fonts/overpass-bold.woff \
|
||||
fonts/overpass-italic.woff \
|
||||
fonts/overpass-light-italic.woff \
|
||||
fonts/overpass-light.woff \
|
||||
fonts/overpass-mono-bold.woff \
|
||||
fonts/overpass-mono-light.woff \
|
||||
fonts/overpass-mono-regular.woff \
|
||||
fonts/overpass-mono-semibold.woff \
|
||||
fonts/overpass-regular.woff
|
||||
|
||||
devhelppng = \
|
||||
devhelp/home.png \
|
||||
devhelp/left.png \
|
||||
devhelp/right.png \
|
||||
devhelp/up.png
|
||||
|
||||
devhelpcss = devhelp/style.css
|
||||
|
||||
devhelpxsl = devhelp/devhelp.xsl devhelp/html.xsl
|
||||
|
||||
logofiles = \
|
||||
logos/logo-base.svg \
|
||||
logos/logo-square.svg \
|
||||
logos/logo-square-powered.svg \
|
||||
logos/logo-banner-dark.svg \
|
||||
logos/logo-banner-light.svg \
|
||||
logos/logo-square-96.png \
|
||||
logos/logo-square-128.png \
|
||||
logos/logo-square-192.png \
|
||||
logos/logo-square-256.png \
|
||||
logos/logo-square-powered-96.png \
|
||||
logos/logo-square-powered-128.png \
|
||||
logos/logo-square-powered-192.png \
|
||||
logos/logo-square-powered-256.png \
|
||||
logos/logo-banner-dark-256.png \
|
||||
logos/logo-banner-dark-800.png \
|
||||
logos/logo-banner-light-256.png \
|
||||
logos/logo-banner-light-800.png
|
||||
|
||||
png = \
|
||||
32favicon.png \
|
||||
libvirt-daemon-arch.png \
|
||||
libvirt-driver-arch.png \
|
||||
libvirt-object-model.png \
|
||||
migration-managed-direct.png \
|
||||
migration-managed-p2p.png \
|
||||
migration-native.png \
|
||||
migration-tunnel.png \
|
||||
migration-unmanaged-direct.png
|
||||
|
||||
gif = \
|
||||
architecture.gif \
|
||||
node.gif
|
||||
|
||||
|
||||
internals_html_in = \
|
||||
$(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/internals/*.html.in))
|
||||
internals_html = $(internals_html_in:%.html.in=%.html)
|
||||
|
||||
# Since we ship pre-built html in the tarball, we must also
|
||||
# ship the sources, even when those sources are themselves
|
||||
# generated.
|
||||
# Generate hvsupport.html and news.html first, since they take one extra step.
|
||||
dot_html_in = \
|
||||
hvsupport.html.in \
|
||||
news.html.in \
|
||||
$(notdir $(wildcard $(srcdir)/*.html.in))
|
||||
dot_html = $(dot_html_in:%.html.in=%.html)
|
||||
|
||||
dot_php_in = $(notdir $(wildcard $(srcdir)/*.php.in))
|
||||
dot_php_code_in = $(dot_php_in:%.php.in=%.php.code.in)
|
||||
dot_php = $(dot_php_in:%.php.in=%.php)
|
||||
|
||||
xml = \
|
||||
libvirt-api.xml \
|
||||
libvirt-refs.xml
|
||||
|
||||
qemu_xml = \
|
||||
libvirt-qemu-api.xml \
|
||||
libvirt-qemu-refs.xml
|
||||
|
||||
lxc_xml = \
|
||||
libvirt-lxc-api.xml \
|
||||
libvirt-lxc-refs.xml
|
||||
|
||||
admin_xml = \
|
||||
libvirt-admin-api.xml \
|
||||
libvirt-admin-refs.xml
|
||||
|
||||
apidir = $(pkgdatadir)/api
|
||||
api_DATA = \
|
||||
libvirt-api.xml \
|
||||
libvirt-qemu-api.xml \
|
||||
libvirt-lxc-api.xml \
|
||||
libvirt-admin-api.xml
|
||||
|
||||
fig = \
|
||||
libvirt-daemon-arch.fig \
|
||||
libvirt-driver-arch.fig \
|
||||
libvirt-object-model.fig \
|
||||
migration-managed-direct.fig \
|
||||
migration-managed-p2p.fig \
|
||||
migration-native.fig \
|
||||
migration-tunnel.fig \
|
||||
migration-unmanaged-direct.fig
|
||||
|
||||
schemadir = $(pkgdatadir)/schemas
|
||||
schema_DATA = $(wildcard $(srcdir)/schemas/*.rng)
|
||||
|
||||
EXTRA_DIST= \
|
||||
apibuild.py genaclperms.pl \
|
||||
site.xsl subsite.xsl newapi.xsl page.xsl \
|
||||
wrapstring.xsl \
|
||||
$(dot_html) $(dot_html_in) $(gif) $(apihtml) $(apipng) \
|
||||
$(devhelphtml) $(devhelppng) $(devhelpcss) $(devhelpxsl) \
|
||||
$(xml) $(qemu_xml) $(lxc_xml) $(admin_xml) $(fig) $(png) $(css) \
|
||||
$(logofiles) $(dot_php_in) $(dot_php_code_in) $(dot_php)\
|
||||
$(internals_html_in) $(internals_html) $(fonts) \
|
||||
aclperms.htmlinc \
|
||||
hvsupport.pl \
|
||||
$(schema_DATA)
|
||||
|
||||
acl_generated = aclperms.htmlinc
|
||||
|
||||
$(srcdir)/aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
|
||||
$(srcdir)/genaclperms.pl Makefile.am
|
||||
$(AM_V_GEN)$(PERL) $(srcdir)/genaclperms.pl $< > $@
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
$(addprefix $(srcdir)/,$(dot_html)) \
|
||||
$(addprefix $(srcdir)/,$(apihtml)) \
|
||||
$(addprefix $(srcdir)/,$(devhelphtml)) \
|
||||
$(addprefix $(srcdir)/,$(internals_html)) \
|
||||
$(addprefix $(srcdir)/,$(dot_php)) \
|
||||
$(srcdir)/hvsupport.html.in $(srcdir)/aclperms.htmlinc
|
||||
|
||||
timestamp="$(shell if test -n "$$SOURCE_DATE_EPOCH"; \
|
||||
then \
|
||||
date -u --date="@$$SOURCE_DATE_EPOCH"; \
|
||||
else \
|
||||
date -u; \
|
||||
fi)"
|
||||
|
||||
all-am: web
|
||||
|
||||
api: $(srcdir)/libvirt-api.xml $(srcdir)/libvirt-refs.xml
|
||||
qemu_api: $(srcdir)/libvirt-qemu-api.xml $(srcdir)/libvirt-qemu-refs.xml
|
||||
lxc_api: $(srcdir)/libvirt-lxc-api.xml $(srcdir)/libvirt-lxc-refs.xml
|
||||
admin_api: $(srcdir)/libvirt-admin-api.xml $(srcdir)/libvirt-admin-refs.xml
|
||||
|
||||
web: $(dot_html) $(internals_html) html/index.html devhelp/index.html \
|
||||
$(dot_php)
|
||||
|
||||
hvsupport.html: $(srcdir)/hvsupport.html.in
|
||||
|
||||
$(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
|
||||
$(top_srcdir)/src/libvirt_public.syms \
|
||||
$(top_srcdir)/src/libvirt_qemu.syms $(top_srcdir)/src/libvirt_lxc.syms \
|
||||
$(top_srcdir)/src/driver.h
|
||||
$(AM_V_GEN)$(PERL) $(srcdir)/hvsupport.pl $(top_srcdir)/src > $@ \
|
||||
|| { rm $@ && exit 1; }
|
||||
|
||||
# xsltproc seems to add the xmlns="" attribute to random output elements:
|
||||
# use sed to strip it out, as leaving it there triggers XML errors during
|
||||
# further transformation steps
|
||||
news.html.in: \
|
||||
$(srcdir)/news.xml \
|
||||
$(srcdir)/news-html.xsl
|
||||
$(AM_V_GEN)$(XSLTPROC) --nonet \
|
||||
$(srcdir)/news-html.xsl \
|
||||
$(srcdir)/news.xml \
|
||||
>$@-tmp \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
sed 's/ xmlns=""//g' $@-tmp >$@ \
|
||||
|| { rm -f $@-tmp; exit 1; }; \
|
||||
rm -f $@-tmp
|
||||
EXTRA_DIST += \
|
||||
$(srcdir)/news.xml \
|
||||
$(srcdir)/news.rng \
|
||||
$(srcdir)/news-html.xsl
|
||||
MAINTAINERCLEANFILES += \
|
||||
$(srcdir)/news.html.in
|
||||
|
||||
%.png: %.fig
|
||||
convert -rotate 90 $< $@
|
||||
|
||||
%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
|
||||
$(acl_generated)
|
||||
$(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
|
||||
dir=`dirname $@` ; \
|
||||
if test "$$dir" = "."; \
|
||||
then \
|
||||
style=site.xsl; \
|
||||
else \
|
||||
$(MKDIR_P) $$dir; \
|
||||
style=subsite.xsl; \
|
||||
fi; \
|
||||
$(XSLTPROC) --stringparam pagename $$name \
|
||||
--stringparam timestamp $(timestamp) --nonet \
|
||||
$(top_srcdir)/docs/$$style $< > $@ \
|
||||
|| { rm $@ && exit 1; }
|
||||
|
||||
%.html: %.html.tmp
|
||||
$(AM_V_GEN)$(XMLLINT) --nonet --format $< > $(srcdir)/$@ \
|
||||
|| { rm $(srcdir)/$@ && exit 1; }
|
||||
|
||||
%.php.tmp: %.php.in site.xsl page.xsl
|
||||
$(AM_V_GEN)$(XSLTPROC) --stringparam pagename $(@:.tmp=) \
|
||||
--stringparam timestamp $(timestamp) --nonet \
|
||||
$(top_srcdir)/docs/site.xsl $< > $@ \
|
||||
|| { rm $@ && exit 1; }
|
||||
|
||||
%.php: %.php.tmp %.php.code.in
|
||||
$(AM_V_GEN)sed \
|
||||
-e '/<span id="php_placeholder"><\/span>/r '"$(srcdir)/$@.code.in" \
|
||||
-e /php_placeholder/d < $@.tmp > $(srcdir)/$@ \
|
||||
|| { rm $(srcdir)/$@ && exit 1; }
|
||||
|
||||
$(apihtml_generated): html/index.html
|
||||
|
||||
html/index.html: libvirt-api.xml newapi.xsl page.xsl $(APIBUILD_STAMP)
|
||||
$(AM_V_GEN)$(XSLTPROC) --nonet -o $(srcdir)/ \
|
||||
--stringparam builddir '$(abs_top_builddir)' \
|
||||
--stringparam timestamp $(timestamp) \
|
||||
$(srcdir)/newapi.xsl $(srcdir)/libvirt-api.xml && \
|
||||
$(XMLLINT) --nonet --noout $(srcdir)/html/*.html
|
||||
|
||||
$(addprefix $(srcdir)/,$(devhelphtml)): $(srcdir)/libvirt-api.xml $(devhelpxsl)
|
||||
$(AM_V_GEN)$(XSLTPROC) --stringparam timestamp $(timestamp) \
|
||||
--nonet -o $(srcdir)/devhelp/ \
|
||||
$(top_srcdir)/docs/devhelp/devhelp.xsl $(srcdir)/libvirt-api.xml
|
||||
|
||||
|
||||
python_generated_files = \
|
||||
$(srcdir)/html/libvirt-libvirt-lxc.html \
|
||||
$(srcdir)/html/libvirt-libvirt-qemu.html \
|
||||
$(srcdir)/html/libvirt-libvirt-admin.html \
|
||||
$(srcdir)/html/libvirt-virterror.html \
|
||||
$(srcdir)/libvirt-api.xml \
|
||||
$(srcdir)/libvirt-refs.xml \
|
||||
$(srcdir)/libvirt-lxc-api.xml \
|
||||
$(srcdir)/libvirt-lxc-refs.xml \
|
||||
$(srcdir)/libvirt-qemu-api.xml \
|
||||
$(srcdir)/libvirt-qemu-refs.xml \
|
||||
$(srcdir)/libvirt-admin-api.xml \
|
||||
$(srcdir)/libvirt-admin-refs.xml \
|
||||
$(NULL)
|
||||
|
||||
APIBUILD=$(srcdir)/apibuild.py
|
||||
APIBUILD_STAMP=$(APIBUILD).stamp
|
||||
EXTRA_DIST += $(APIBUILD_STAMP)
|
||||
|
||||
$(python_generated_files): $(APIBUILD_STAMP)
|
||||
|
||||
$(APIBUILD_STAMP): $(srcdir)/apibuild.py \
|
||||
$(top_srcdir)/include/libvirt/libvirt.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-common.h.in \
|
||||
$(top_srcdir)/include/libvirt/libvirt-domain-snapshot.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-domain.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-event.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-host.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-interface.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-network.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-nodedev.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-nwfilter.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-secret.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-storage.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-stream.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-lxc.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-qemu.h \
|
||||
$(top_srcdir)/include/libvirt/libvirt-admin.h \
|
||||
$(top_srcdir)/include/libvirt/virterror.h \
|
||||
$(top_srcdir)/src/libvirt.c \
|
||||
$(top_srcdir)/src/libvirt-domain-snapshot.c \
|
||||
$(top_srcdir)/src/libvirt-domain.c \
|
||||
$(top_srcdir)/src/libvirt-host.c \
|
||||
$(top_srcdir)/src/libvirt-interface.c \
|
||||
$(top_srcdir)/src/libvirt-network.c \
|
||||
$(top_srcdir)/src/libvirt-nodedev.c \
|
||||
$(top_srcdir)/src/libvirt-nwfilter.c \
|
||||
$(top_srcdir)/src/libvirt-secret.c \
|
||||
$(top_srcdir)/src/libvirt-storage.c \
|
||||
$(top_srcdir)/src/libvirt-stream.c \
|
||||
$(top_srcdir)/src/libvirt-lxc.c \
|
||||
$(top_srcdir)/src/libvirt-qemu.c \
|
||||
$(top_srcdir)/src/libvirt-admin.c \
|
||||
$(top_srcdir)/src/util/virerror.c \
|
||||
$(top_srcdir)/src/util/virevent.c \
|
||||
$(top_srcdir)/src/util/virtypedparam.c
|
||||
$(AM_V_GEN)srcdir=$(srcdir) builddir=$(builddir) $(PYTHON) $(APIBUILD)
|
||||
touch $@
|
||||
|
||||
|
||||
check-local: all
|
||||
dist-local: all
|
||||
|
||||
clean-local:
|
||||
rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.html html/*.html
|
||||
|
||||
maintainer-clean-local: clean-local
|
||||
rm -rf $(srcdir)/libvirt-api.xml $(srcdir)/libvirt-refs.xml
|
||||
rm -rf $(srcdir)/libvirt-qemu-api.xml $(srcdir)/libvirt-qemu-refs.xml
|
||||
rm -rf $(srcdir)/libvirt-lxc-api.xml $(srcdir)/libvirt-lxc-refs.xml
|
||||
rm -rf $(srcdir)/libvirt-admin-api.xml $(srcdir)/libvirt-admin-refs.xml
|
||||
rm -rf $(APIBUILD_STAMP)
|
||||
|
||||
rebuild: api qemu_api lxc_api admin_api all
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
|
||||
for f in $(css) $(dot_html) $(gif) $(png); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR); done
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/logos
|
||||
for f in $(logofiles); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/logos; done
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/html
|
||||
for h in $(apihtml); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$h $(DESTDIR)$(HTML_DIR)/html; done
|
||||
for p in $(apipng); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$p $(DESTDIR)$(HTML_DIR)/html; done
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/internals
|
||||
for f in $(internals_html); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/internals; done
|
||||
$(mkinstalldirs) $(DESTDIR)$(DEVHELP_DIR)
|
||||
for file in $(devhelphtml) $(devhelppng) $(devhelpcss); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$${file} $(DESTDIR)$(DEVHELP_DIR) ; \
|
||||
done
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/fonts
|
||||
for f in $(fonts); do \
|
||||
$(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/fonts; \
|
||||
done
|
||||
|
||||
uninstall-local:
|
||||
for f in $(css) $(dot_html) $(gif) $(png) $(fonts); do \
|
||||
rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
|
||||
done
|
||||
for f in $(logofiles); do \
|
||||
rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
|
||||
done
|
||||
for h in $(apihtml); do rm -f $(DESTDIR)$(HTML_DIR)/$$h; done
|
||||
for p in $(apipng); do rm -f $(DESTDIR)$(HTML_DIR)/$$p; done
|
||||
for f in $(internals_html); do \
|
||||
rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
|
||||
done
|
||||
for f in $(devhelphtml) $(devhelppng) $(devhelpcss); do \
|
||||
rm -f $(DESTDIR)$(DEVHELP_DIR)/$$(basename $$f); \
|
||||
done
|
@@ -50,7 +50,7 @@
|
||||
control technologies. By default, the <code>none</code>
|
||||
driver is used, which does no access control checks at
|
||||
all. At this time, libvirt ships with support for using
|
||||
<a href="https://www.freedesktop.org/wiki/Software/polkit/">polkit</a> as a real access
|
||||
<a href="http://www.freedesktop.org/wiki/Software/polkit/">polkit</a> as a real access
|
||||
control driver. To learn how to use the polkit access
|
||||
driver consult <a href="aclpolkit.html">the configuration
|
||||
docs</a>.
|
||||
|
@@ -18,7 +18,7 @@
|
||||
|
||||
<p>
|
||||
A default install of libvirt will typically use
|
||||
<a href="https://www.freedesktop.org/wiki/Software/polkit/">polkit</a>
|
||||
<a href="http://www.freedesktop.org/wiki/Software/polkit/">polkit</a>
|
||||
to authenticate the initial user connection to libvirtd. This is a
|
||||
very coarse grained check though, either allowing full read-write
|
||||
access to all APIs, or just read-only access. The polkit access
|
||||
@@ -64,7 +64,7 @@
|
||||
</p>
|
||||
|
||||
<h3><a id="object_connect">virConnectPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -80,7 +80,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_domain">virDomainPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -104,7 +104,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_interface">virInterfacePtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -128,7 +128,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_network">virNetworkPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -152,7 +152,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_node_device">virNodeDevicePtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -172,7 +172,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_nwfilter">virNWFilterPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -196,7 +196,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_secret">virSecretPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -232,7 +232,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_storage_pool">virStoragePoolPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -256,7 +256,7 @@
|
||||
</table>
|
||||
|
||||
<h3><a id="object_storage_vol">virStorageVolPtr</a></h3>
|
||||
<table>
|
||||
<table class="acl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -287,111 +287,6 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2><a id="connect_driver">Hypervisor Driver connect_driver</a></h2>
|
||||
<p>
|
||||
The <code>connect_driver</code> parameter describes the
|
||||
client's <a href="remote.html">remote Connection Driver</a>
|
||||
name based on the <a href="uri.html">URI</a> used for the
|
||||
connection.
|
||||
</p>
|
||||
<p>
|
||||
<span class="since">Since 4.1.0</span>, when calling an API
|
||||
outside the scope of the primary connection driver, the
|
||||
primary driver will attempt to open a secondary connection
|
||||
to the specific API driver in order to process the API. For
|
||||
example, when hypervisor domain processing needs to make an
|
||||
API call within the storage driver or the network filter driver
|
||||
an attempt to open a connection to the "storage" or "nwfilter"
|
||||
driver will be made. Similarly, a "storage" primary connection
|
||||
may need to create a connection to the "secret" driver in order
|
||||
to process secrets for the API. If successful, then calls to
|
||||
those API's will occur in the <code>connect_driver</code> context
|
||||
of the secondary connection driver rather than in the context of
|
||||
the primary driver. This affects the <code>connect_driver</code>
|
||||
returned from rule generation from the <code>action.loookup</code>
|
||||
function. The following table provides a list of the various
|
||||
connection drivers and the <code>connect_driver</code> name
|
||||
used by each regardless of primary or secondary connection.
|
||||
The access denied error message from libvirt will list the
|
||||
connection driver by name that denied the access.
|
||||
</p>
|
||||
|
||||
<h3><a id="object_connect_driver">Connection Driver Name</a></h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Connection Driver</th>
|
||||
<th><code>connect_driver</code> name</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>bhyve</td>
|
||||
<td>bhyve</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>esx</td>
|
||||
<td>ESX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>hyperv</td>
|
||||
<td>Hyper-V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>interface</td>
|
||||
<td>interface</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>xen</td>
|
||||
<td>Xen</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>lxc</td>
|
||||
<td>LXC</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>network</td>
|
||||
<td>network</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>nodedev</td>
|
||||
<td>nodedev</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>nwfilter</td>
|
||||
<td>NWFilter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>openvz</td>
|
||||
<td>OPENVZ</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>qemu</td>
|
||||
<td>QEMU</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>secret</td>
|
||||
<td>secret</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>storage</td>
|
||||
<td>storage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>vbox</td>
|
||||
<td>VBOX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>vmware</td>
|
||||
<td>VMWARE</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>vz</td>
|
||||
<td>vz</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<h2><a id="user">User identity attributes</a></h2>
|
||||
|
||||
@@ -459,7 +354,7 @@ polkit.addRule(function(action, subject) {
|
||||
|
||||
<p>
|
||||
See
|
||||
<a href="https://gitlab.com/libvirt/libvirt/-/tree/master/examples/polkit">source code</a>
|
||||
<a href="https://libvirt.org/git/?p=libvirt.git;a=tree;f=examples/polkit;hb=HEAD">source code</a>
|
||||
for a more complex example.
|
||||
</p>
|
||||
|
||||
|
@@ -1,171 +0,0 @@
|
||||
=========================
|
||||
Advanced test suite usage
|
||||
=========================
|
||||
|
||||
The basic requirement before submitting changes to libvirt is that
|
||||
|
||||
::
|
||||
|
||||
$ ninja test
|
||||
|
||||
succeed after each commit.
|
||||
|
||||
The libvirt test suite, however, support additional features: for
|
||||
example, it's possible to look for memory leaks and similar issues
|
||||
by running
|
||||
|
||||
::
|
||||
|
||||
$ meson test --setup valgrind
|
||||
|
||||
`Valgrind <https://valgrind.org/>`__ is a test that checks for
|
||||
memory management issues, such as leaks or use of uninitialized
|
||||
variables.
|
||||
|
||||
Some tests are skipped by default in a development environment,
|
||||
based on the time they take in comparison to the likelihood
|
||||
that those tests will turn up problems during incremental
|
||||
builds. These tests default to being run when building from a
|
||||
tarball or with the configure option -Dexpensive_tests=enabled.
|
||||
|
||||
If you encounter any failing tests, the VIR_TEST_DEBUG
|
||||
environment variable may provide extra information to debug the
|
||||
failures. Larger values of VIR_TEST_DEBUG may provide larger
|
||||
amounts of information:
|
||||
|
||||
::
|
||||
|
||||
$ VIR_TEST_DEBUG=1 ninja test (or)
|
||||
$ VIR_TEST_DEBUG=2 ninja test
|
||||
|
||||
When debugging failures during development, it is possible to
|
||||
focus in on just the failing subtests by using VIR_TEST_RANGE.
|
||||
I.e. to run all tests from 3 to 20 with the exception of tests
|
||||
6 and 16, use:
|
||||
|
||||
::
|
||||
|
||||
$ VIR_TEST_DEBUG=1 VIR_TEST_RANGE=3-5,7-20,^16 ./run tests/qemuxml2argvtest
|
||||
|
||||
Also, individual tests can be run from inside the ``tests/``
|
||||
directory, like:
|
||||
|
||||
::
|
||||
|
||||
$ ./qemuxml2xmltest
|
||||
|
||||
If you are adding new test cases, or making changes that alter
|
||||
existing test output, you can use the environment variable
|
||||
VIR_TEST_REGENERATE_OUTPUT to quickly update the saved test
|
||||
data. Of course you still need to review the changes VERY
|
||||
CAREFULLY to ensure they are correct.
|
||||
|
||||
::
|
||||
|
||||
$ VIR_TEST_REGENERATE_OUTPUT=1 ./qemuxml2argvtest
|
||||
|
||||
There is also a ``./run`` script at the top level, to make it
|
||||
easier to run programs that have not yet been installed, as
|
||||
well as to wrap invocations of various tests under gdb or
|
||||
Valgrind.
|
||||
|
||||
When running our test suite it may happen that the test result
|
||||
is nondeterministic because of the test suite relying on a
|
||||
particular file in the system being accessible or having some
|
||||
specific value. To catch this kind of errors, the test suite
|
||||
has a module for that prints any path touched that fulfils
|
||||
constraints described above into a file. To enable it just set
|
||||
``VIR_TEST_FILE_ACCESS`` environment variable. Then
|
||||
``VIR_TEST_FILE_ACCESS_OUTPUT`` environment variable can alter
|
||||
location where the file is stored.
|
||||
|
||||
::
|
||||
|
||||
$ VIR_TEST_FILE_ACCESS=1 VIR_TEST_FILE_ACCESS_OUTPUT="/tmp/file_access.txt" ./qemuxml2argvtest
|
||||
|
||||
#. The Valgrind test should produce similar output to
|
||||
``ninja test``. If the output has traces within libvirt API's,
|
||||
then investigation is required in order to determine the cause
|
||||
of the issue. Output such as the following indicates some sort
|
||||
of leak:
|
||||
|
||||
::
|
||||
|
||||
==5414== 4 bytes in 1 blocks are definitely lost in loss record 3 of 89
|
||||
==5414== at 0x4A0881C: malloc (vg_replace_malloc.c:270)
|
||||
==5414== by 0x34DE0AAB85: xmlStrndup (in /usr/lib64/libxml2.so.2.7.8)
|
||||
==5414== by 0x4CC97A6: virDomainVideoDefParseXML (domain_conf.c:7410)
|
||||
==5414== by 0x4CD581D: virDomainDefParseXML (domain_conf.c:10188)
|
||||
==5414== by 0x4CD8C73: virDomainDefParseNode (domain_conf.c:10640)
|
||||
==5414== by 0x4CD8DDB: virDomainDefParse (domain_conf.c:10590)
|
||||
==5414== by 0x41CB1D: testCompareXMLToArgvHelper (qemuxml2argvtest.c:100)
|
||||
==5414== by 0x41E20F: virtTestRun (testutils.c:161)
|
||||
==5414== by 0x41C7CB: mymain (qemuxml2argvtest.c:866)
|
||||
==5414== by 0x41E84A: virtTestMain (testutils.c:723)
|
||||
==5414== by 0x34D9021734: (below main) (in /usr/lib64/libc-2.15.so)
|
||||
|
||||
In this example, the ``virDomainDefParseXML()`` had an error
|
||||
path where the ``virDomainVideoDefPtr video`` pointer was not
|
||||
properly disposed. By simply adding a
|
||||
``virDomainVideoDefFree(video);`` in the error path, the issue
|
||||
was resolved.
|
||||
|
||||
Another common mistake is calling a printing function, such as
|
||||
``VIR_DEBUG()`` without initializing a variable to be printed.
|
||||
The following example involved a call which could return an
|
||||
error, but not set variables passed by reference to the call.
|
||||
The solution was to initialize the variables prior to the call.
|
||||
|
||||
::
|
||||
|
||||
==4749== Use of uninitialised value of size 8
|
||||
==4749== at 0x34D904650B: _itoa_word (in /usr/lib64/libc-2.15.so)
|
||||
==4749== by 0x34D9049118: vfprintf (in /usr/lib64/libc-2.15.so)
|
||||
==4749== by 0x34D9108F60: __vasprintf_chk (in /usr/lib64/libc-2.15.so)
|
||||
==4749== by 0x4CAEEF7: virVasprintf (stdio2.h:199)
|
||||
==4749== by 0x4C8A55E: virLogVMessage (virlog.c:814)
|
||||
==4749== by 0x4C8AA96: virLogMessage (virlog.c:751)
|
||||
==4749== by 0x4DA0056: virNetTLSContextCheckCertKeyUsage (virnettlscontext.c:225)
|
||||
==4749== by 0x4DA06DB: virNetTLSContextCheckCert (virnettlscontext.c:439)
|
||||
==4749== by 0x4DA1620: virNetTLSContextNew (virnettlscontext.c:562)
|
||||
==4749== by 0x4DA26FC: virNetTLSContextNewServer (virnettlscontext.c:927)
|
||||
==4749== by 0x409C39: testTLSContextInit (virnettlscontexttest.c:467)
|
||||
==4749== by 0x40AB8F: virtTestRun (testutils.c:161)
|
||||
|
||||
Valgrind will also find some false positives or code paths
|
||||
which cannot be resolved by making changes to the libvirt code.
|
||||
For these paths, it is possible to add a filter to avoid the
|
||||
errors. For example:
|
||||
|
||||
::
|
||||
|
||||
==4643== 7 bytes in 1 blocks are possibly lost in loss record 4 of 20
|
||||
==4643== at 0x4A0881C: malloc (vg_replace_malloc.c:270)
|
||||
==4643== by 0x34D90853F1: strdup (in /usr/lib64/libc-2.15.so)
|
||||
==4643== by 0x34EEC2C08A: ??? (in /usr/lib64/libnl.so.1.1)
|
||||
==4643== by 0x34EEC15B81: ??? (in /usr/lib64/libnl.so.1.1)
|
||||
==4643== by 0x34D8C0EE15: call_init.part.0 (in /usr/lib64/ld-2.15.so)
|
||||
==4643== by 0x34D8C0EECF: _dl_init (in /usr/lib64/ld-2.15.so)
|
||||
==4643== by 0x34D8C01569: ??? (in /usr/lib64/ld-2.15.so)
|
||||
|
||||
In this instance, it is acceptable to modify the
|
||||
``tests/.valgrind.supp`` file in order to add a suppression
|
||||
filter. The filter should be unique enough to not suppress real
|
||||
leaks, but it should be generic enough to cover multiple code
|
||||
paths. The format of the entry can be found in the
|
||||
documentation found at the `Valgrind home
|
||||
page <https://valgrind.org/>`__. The following trace was added
|
||||
to ``tests/.valgrind.supp`` in order to suppress the warning:
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
dlInitMemoryLeak1
|
||||
Memcheck:Leak
|
||||
fun:?alloc
|
||||
...
|
||||
fun:call_init.part.0
|
||||
fun:_dl_init
|
||||
...
|
||||
obj:*/lib*/ld-2.*so*
|
||||
}
|
@@ -116,7 +116,7 @@
|
||||
however, it becomes invalid once the resource is deactivated.</p></li >
|
||||
<li><code>UUID</code>
|
||||
<p> A 16 byte unique identifier
|
||||
as defined in <a href="https://www.ietf.org/rfc/rfc4122.txt">RFC 4122</a>,
|
||||
as defined in <a href="http://www.ietf.org/rfc/rfc4122.txt">RFC 4122</a>,
|
||||
which is guaranteed to be unique for long term usage and across a
|
||||
set of nodes.</p></li>
|
||||
</ul>
|
||||
@@ -330,7 +330,7 @@
|
||||
daemon through the <a href="remote.html">remote</a> driver via an
|
||||
<a href="internals/rpc.html">RPC</a>. Some hypervisors do support
|
||||
client-side connections and responses, such as Test, OpenVZ, VMware,
|
||||
VirtualBox (vbox), ESX, Hyper-V, Xen, and Virtuozzo.
|
||||
Power VM (phyp), VirtualBox (vbox), ESX, Hyper-V, Xen, and Virtuozzo.
|
||||
The libvirtd daemon service is started on the host at system boot
|
||||
time and can also be restarted at any time by a properly privileged
|
||||
user, such as root. The libvirtd daemon uses the same libvirt API
|
||||
@@ -369,7 +369,7 @@
|
||||
for processing.
|
||||
</p>
|
||||
<p>If you are interested in contributing to libvirt, read the
|
||||
<a href="https://wiki.libvirt.org/page/FAQ">FAQ</a> and
|
||||
<a href="http://wiki.libvirt.org/page/FAQ">FAQ</a> and
|
||||
<a href="hacking.html">hacking</a> guidelines to gain an understanding
|
||||
of basic rules and guidelines. In order to add new API functionality
|
||||
follow the instructions regarding
|
||||
|
@@ -89,7 +89,7 @@
|
||||
separately.
|
||||
</p>
|
||||
|
||||
<h2><a id='publicapi'>Defining the public API</a></h2>
|
||||
<h2><a name='publicapi'>Defining the public API</a></h2>
|
||||
|
||||
<p>The first task is to define the public API. If the new API
|
||||
involves an XML extension, you have to enhance the RelaxNG
|
||||
@@ -110,12 +110,6 @@
|
||||
src/libvirt_public.syms
|
||||
</code></p>
|
||||
|
||||
<p>
|
||||
Please consult our
|
||||
<a href="coding-style.html#xml-element-and-attribute-naming">coding style</a>
|
||||
guide on elements and attribute names.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This task is in many ways the most important to get right, since once
|
||||
the API has been committed to the repository, it's libvirt's policy
|
||||
@@ -125,7 +119,7 @@
|
||||
rework it as you go through the process of implementing it.
|
||||
</p>
|
||||
|
||||
<h2><a id='internalapi'>Defining the internal API</a></h2>
|
||||
<h2><a name='internalapi'>Defining the internal API</a></h2>
|
||||
|
||||
<p>
|
||||
Each public API call is associated with a driver, such as a host
|
||||
@@ -152,7 +146,7 @@
|
||||
provide a <code>NULL</code> stub for the new function.
|
||||
</p>
|
||||
|
||||
<h2><a id='implpublic'>Implementing the public API</a></h2>
|
||||
<h2><a name='implpublic'>Implementing the public API</a></h2>
|
||||
|
||||
<p>
|
||||
Implementing the public API is largely a formality in which we wire up
|
||||
@@ -185,7 +179,7 @@
|
||||
|
||||
<p><code>src/libvirt-$MODULE.c</code></p>
|
||||
|
||||
<h2><a id='remoteproto'>Implementing the remote protocol</a></h2>
|
||||
<h2><a name='remoteproto'>Implementing the remote protocol</a></h2>
|
||||
|
||||
<p>
|
||||
Implementing the remote protocol is essentially a
|
||||
@@ -193,7 +187,7 @@
|
||||
understood by referring to the existing code.
|
||||
</p>
|
||||
|
||||
<h3><a id='wireproto'>Defining the wire protocol format</a></h3>
|
||||
<h3><a name='wireproto'>Defining the wire protocol format</a></h3>
|
||||
|
||||
<p>
|
||||
Defining the wire protocol involves making additions to:
|
||||
@@ -232,11 +226,11 @@
|
||||
src/remote/remote_protocol.h
|
||||
</code></p>
|
||||
|
||||
<h3><a id='rpcclient'>Implement the RPC client</a></h3>
|
||||
<h3><a name='rpcclient'>Implement the RPC client</a></h3>
|
||||
|
||||
<p>
|
||||
Implementing the RPC client uses the rpcgen generated .h files.
|
||||
The remote method calls go in:
|
||||
Implementing the uses the rpcgen generated .h files. The remote
|
||||
method calls go in:
|
||||
</p>
|
||||
|
||||
<p><code>src/remote/remote_driver.c</code></p>
|
||||
@@ -262,7 +256,7 @@
|
||||
The server side dispatchers are implemented in:
|
||||
</p>
|
||||
|
||||
<p><code>src/remote/remote_daemon_dispatch.c</code></p>
|
||||
<p><code>src/remote/daemon_dispatch.c</code></p>
|
||||
|
||||
<p>Again, this step uses the .h files generated by make rpcgen.</p>
|
||||
|
||||
@@ -367,10 +361,11 @@
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once you have working functionality, run ninja test on each patch
|
||||
of the series before submitting patches. It may also be worth
|
||||
writing tests for the libvirt-TCK testsuite to exercise your new API,
|
||||
although those patches are not kept in the libvirt repository.
|
||||
Once you have working functionality, run make check and make
|
||||
syntax-check on each patch of the series before submitting
|
||||
patches. It may also be worth writing tests for the libvirt-TCK
|
||||
testsuite to exercise your new API, although those patches are
|
||||
not kept in the libvirt repository.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -30,10 +30,30 @@
|
||||
<img src="logos/logo-square-powered-256.png" alt="libvirt powered"/>
|
||||
</p>
|
||||
|
||||
<h2><a id="clientserver">Client/Server applications</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="http://archipelproject.org">Archipel</a></dt>
|
||||
<dd>
|
||||
Archipel is a libvirt-based solution to manage and supervise virtual
|
||||
machines. It uses XMPP for all communication. There is no web
|
||||
service or custom protocol. You just need at least one XMPP server,
|
||||
like eJabberd, to start playing with it. This allows Archipel to
|
||||
work completely real time. You never have to refresh the user
|
||||
interface, you'll be notified as soon as something happens. You can
|
||||
even use your favorite chat clients to command your infrastructure.
|
||||
</dd>
|
||||
<dd>
|
||||
Isn't it great to be able to open a chat conversation with your
|
||||
virtual machine and say things like "How are you today?" or "Hey,
|
||||
please reboot"?
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a id="command">Command line tools</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://libguestfs.org">guestfish</a></dt>
|
||||
<dt><a href="http://libguestfs.org">guestfish</a></dt>
|
||||
<dd>
|
||||
Guestfish is an interactive shell and command-line tool for examining
|
||||
and modifying virtual machine filesystems. It uses libvirt to find
|
||||
@@ -99,12 +119,6 @@
|
||||
machines. It is a command line tool for developers that makes it very
|
||||
fast and easy to deploy and re-deploy an environment of vm's.
|
||||
</dd>
|
||||
<dt><a href="https://github.com/virt-lightning/virt-lightning">virt-lightning</a></dt>
|
||||
<dd>
|
||||
Virt-Lightning uses libvirt, cloud-init and libguestfs to allow anyone
|
||||
to quickly start a new VM. Very much like a container CLI, but with a
|
||||
virtual machine.
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a id="configmgmt">Configuration Management</a></h2>
|
||||
@@ -128,7 +142,7 @@
|
||||
<h2><a id="continuousintegration">Continuous Integration</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://docs.buildbot.net/latest/manual/configuration/workers-libvirt.html">BuildBot</a></dt>
|
||||
<dt><a href="https://buildbot.net/buildbot/docs/current/Libvirt.html">BuildBot</a></dt>
|
||||
<dd>
|
||||
BuildBot is a system to automate the compile/test cycle required
|
||||
by most software projects. CVS commits trigger new builds, run on
|
||||
@@ -138,12 +152,12 @@
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://plugins.jenkins.io/libvirt-slave/">Jenkins</a></dt>
|
||||
<dt><a href="https://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin">Jenkins</a></dt>
|
||||
<dd>
|
||||
This plugin for Jenkins adds a way to control guest domains hosted
|
||||
on Xen or QEMU/KVM. You configure a Jenkins Agent,
|
||||
on Xen or QEMU/KVM. You configure a Jenkins Slave,
|
||||
selecting the guest domain and hypervisor. When you need to build a
|
||||
job on a specific Agent, its guest domain is started, then the job is
|
||||
job on a specific Slave, its guest domain is started, then the job is
|
||||
run. When the build process is finished, the guest domain is shut
|
||||
down, ready to be used again as required.
|
||||
</dd>
|
||||
@@ -152,7 +166,7 @@
|
||||
<h2><a id="conversion">Conversion</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt>
|
||||
<dt><a href="http://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt>
|
||||
<dd>
|
||||
Convert a physical machine to run on KVM. It is a LiveCD
|
||||
which is booted on the machine to be converted. It collects a
|
||||
@@ -160,7 +174,7 @@
|
||||
to a remote machine and defines the XML for a domain to run
|
||||
the guest. (Note this tool is included with libguestfs)
|
||||
</dd>
|
||||
<dt><a href="https://libguestfs.org/virt-v2v.1.html">virt-v2v</a></dt>
|
||||
<dt><a href="http://libguestfs.org/virt-v2v.1.html">virt-v2v</a></dt>
|
||||
<dd>
|
||||
virt-v2v converts guests from a foreign hypervisor to run on
|
||||
KVM, managed by libvirt. It can convert guests from VMware or
|
||||
@@ -224,7 +238,7 @@
|
||||
<dd>
|
||||
Eucalyptus is an on-premise Infrastructure as a Service cloud
|
||||
software platform that is open source and
|
||||
AWS-compatible. Eucalyptus uses libvirt virtualization API to
|
||||
AWS-compatible. Eucalyptus uses libivrt virtualization API to
|
||||
directly interact with Xen and KVM hypervisors.
|
||||
</dd>
|
||||
|
||||
@@ -263,7 +277,7 @@
|
||||
cloud where you want the most bang for the bucks.
|
||||
</dd>
|
||||
|
||||
<dt><a href="https://en.zstack.io/">ZStack</a></dt>
|
||||
<dt><a href="http://en.zstack.io/">ZStack</a></dt>
|
||||
<dd>
|
||||
ZStack is an open source IaaS software that aims to automate the
|
||||
management of all resources (compute, storage, networking, etc.) in a
|
||||
@@ -277,7 +291,7 @@
|
||||
<h2><a id="libraries">Libraries</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://libguestfs.org">libguestfs</a></dt>
|
||||
<dt><a href="http://libguestfs.org">libguestfs</a></dt>
|
||||
<dd>
|
||||
A library and set of tools for accessing and modifying virtual
|
||||
machine disk images. It can be linked with C and C++ management
|
||||
@@ -310,7 +324,7 @@
|
||||
<h2><a id="livecd">LiveCD / Appliances</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://libguestfs.org/virt-v2v/">virt-p2v</a></dt>
|
||||
<dt><a href="http://libguestfs.org/virt-v2v/">virt-p2v</a></dt>
|
||||
<dd>
|
||||
An older tool for converting a physical machine into a virtual
|
||||
machine. It is a LiveCD which is booted on the machine to be
|
||||
@@ -324,14 +338,14 @@
|
||||
<dl>
|
||||
<dt><a href="https://collectd.org/plugins/libvirt.shtml">collectd</a></dt>
|
||||
<dd>
|
||||
The libvirt-plugin is part of <a href="https://collectd.org/">collectd</a>
|
||||
The libvirt-plugin is part of <a href="http://collectd.org/">collectd</a>
|
||||
and gathers statistics about virtualized guests on a system. This
|
||||
way, you can collect CPU, network interface and block device usage
|
||||
for each guest without installing collectd on the guest systems.
|
||||
For a full description, please refer to the libvirt section in the
|
||||
collectd.conf(5) manual page.
|
||||
</dd>
|
||||
<dt><a href="https://www.sflow.net/">Host sFlow</a></dt>
|
||||
<dt><a href="http://www.sflow.net/">Host sFlow</a></dt>
|
||||
<dd>
|
||||
Host sFlow is a lightweight agent running on KVM hypervisors that
|
||||
links to libvirt library and exports standardized cpu, memory, network
|
||||
@@ -343,22 +357,28 @@
|
||||
like network and block I/O with
|
||||
<a href="http://munin.projects.linpro.no/">Munin</a>.
|
||||
</dd>
|
||||
<dt><a href="https://people.redhat.com/rjones/nagios-virt/">Nagios-virt</a></dt>
|
||||
<dt><a href="http://people.redhat.com/rjones/nagios-virt/">Nagios-virt</a></dt>
|
||||
<dd>
|
||||
Nagios-virt is a configuration tool to add monitoring of your
|
||||
virtualised domains to <a href="https://www.nagios.org/">Nagios</a>.
|
||||
virtualised domains to <a href="http://www.nagios.org/">Nagios</a>.
|
||||
You can use this tool to either set up a new Nagios installation for
|
||||
your Xen or QEMU/KVM guests, or to integrate with your existing Nagios
|
||||
installation.
|
||||
</dd>
|
||||
<dt><a href="https://pcp.io/man/man1/pmdalibvirt.1.html">PCP</a></dt>
|
||||
<dt><a href="http://www.pcp.io/man/man1/pmdalibvirt.1.html">PCP</a></dt>
|
||||
<dd>
|
||||
The PCP libvirt PMDA (plugin) is part of the
|
||||
<a href="https://pcp.io/">PCP</a> toolkit and provides
|
||||
<a href="http://pcp.io/">PCP</a> toolkit and provides
|
||||
hypervisor and guest information and complete set of guest performance
|
||||
metrics. It supports pCPU, vCPU, memory, block device, network interface,
|
||||
and performance event metrics for each virtual guest.
|
||||
</dd>
|
||||
<dt><a href="https://community.zenoss.org/docs/DOC-4687">Zenoss</a></dt>
|
||||
<dd>
|
||||
The Zenoss libvirt Zenpack adds support for monitoring virtualization
|
||||
servers. It has been tested with KVM, QEMU, VMware ESX, and VMware
|
||||
GSX.
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a id="provisioning">Provisioning</a></h2>
|
||||
@@ -398,7 +418,7 @@
|
||||
<h2><a id="web">Web applications</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://www.abiquo.com/">AbiCloud</a></dt>
|
||||
<dt><a href="http://www.abiquo.com/">AbiCloud</a></dt>
|
||||
<dd>
|
||||
AbiCloud is an open source cloud platform manager which allows to
|
||||
easily deploy a private cloud in your datacenter. One of the key
|
||||
@@ -463,6 +483,17 @@
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a id="mobile">Mobile applications</a></h2>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://market.android.com/details?id=vm.manager">VM Manager</a></dt>
|
||||
<dd>
|
||||
VM Manager is VM (libvirt) manager (over SSH) application. VM Manager
|
||||
is an application for libvirt VM / Domain management over SSH.
|
||||
Please keep in mind that this software is under heavy development.
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a id="other">Other</a></h2>
|
||||
|
||||
<dl>
|
||||
|
87
docs/architecture.fig
Normal file
87
docs/architecture.fig
Normal file
@@ -0,0 +1,87 @@
|
||||
#FIG 3.2
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
Letter
|
||||
100.00
|
||||
Single
|
||||
-2
|
||||
1200 2
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1050 7500 9375 7500 9375 8700 1050 8700 1050 7500
|
||||
2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
|
||||
3525 7275 3525 4125 1050 4125 1050 7275 3525 7275
|
||||
2 1 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 2
|
||||
1050 6540 3540 6525
|
||||
2 4 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
|
||||
1590 6900 1590 6645 1140 6645 1140 6900 1590 6900
|
||||
2 4 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
|
||||
1590 7185 1590 6930 1140 6930 1140 7185 1590 7185
|
||||
2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
|
||||
1 1 2.00 120.00 240.00
|
||||
1 1 2.00 120.00 240.00
|
||||
1875 7725 8625 7725
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1650 5625 3000 5625 3000 6375 1650 6375 1650 5625
|
||||
2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
2850 7725 2850 6375
|
||||
2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
|
||||
6450 7275 6450 4125 3975 4125 3975 7275 6450 7275
|
||||
2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
|
||||
9300 7275 9300 4125 6825 4125 6825 7275 9300 7275
|
||||
2 1 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 2
|
||||
3975 6540 6465 6525
|
||||
2 1 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 2
|
||||
6825 6540 9315 6525
|
||||
2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
5400 7725 5400 7050
|
||||
2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
8025 7725 8025 7050
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
1050 8925 9375 8925 9375 9900 1050 9900 1050 8925
|
||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
||||
2100 4575 3450 4575 3450 5325 2100 5325 2100 4575
|
||||
2 1 1 3 0 7 50 -1 -1 2.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
3225 5325 3225 8325
|
||||
2 1 1 3 0 7 50 -1 -1 2.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
6225 6900 6225 8250
|
||||
2 1 1 3 0 7 50 -1 -1 2.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
8925 6900 8925 8250
|
||||
2 1 1 3 0 7 50 -1 -1 2.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
1725 7125 1725 8325
|
||||
2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
|
||||
1 1 2.00 120.00 240.00
|
||||
1 1 2.00 120.00 240.00
|
||||
2850 5850 2850 5025
|
||||
2 1 1 3 0 7 50 -1 -1 2.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
5175 8475 5175 9375
|
||||
2 1 1 3 0 7 50 -1 -1 2.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
1350 7125 1350 9450
|
||||
2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 2.00 120.00 240.00
|
||||
2325 7725 2325 7200
|
||||
2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 1
|
||||
900 3975
|
||||
2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 1
|
||||
9525 9975
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 870 4350 7980 XenBus\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 780 1680 6870 drivers\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 1050 1800 6075 XenStore\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 900 1875 7125 Kernel0\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 960 4875 6975 KernelU\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 960 7650 6975 KernelU\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 255 1740 4050 8400 Xen Hypervisor\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 585 2325 4950 Xend\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 690 1200 4725 Dom0\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 750 4875 5325 DomU\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 750 7650 5325 DomU\001
|
||||
4 0 0 50 -1 0 18 0.0000 4 195 1080 3750 9450 Hardware\001
|
@@ -1,239 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Creator: fig2dev Version 3.2.7b-dev -->
|
||||
<!-- CreationDate: 2020-07-10 10:23:50 -->
|
||||
<!-- Magnification: 1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="519pt" height="362pt"
|
||||
viewBox="888 3963 8649 6024">
|
||||
<g fill="none">
|
||||
<!-- Line -->
|
||||
<rect x="1050" y="7500" width="8325" height="1200"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="1050" y="4125" width="2475" height="3150" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 1050,6540 3540,6525"
|
||||
stroke="#000000" stroke-width="15px" stroke-dasharray="60 60"/>
|
||||
<!-- Line -->
|
||||
<rect x="1140" y="6645" width="450" height="255" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="1140" y="6930" width="450" height="255" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp0">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 8353,7665 8353,7785 8651,7751 8651,7700z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 1875,7725 8625,7725" clip-path="url(#cp0)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 8625,7725 -->
|
||||
<polygon points=" 8353,7785 8593,7725 8353,7665 8353,7785"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Backward arrow to point 1875,7725 -->
|
||||
<polygon points=" 2147,7665 1907,7725 2147,7785 2147,7665"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<rect x="1650" y="5625" width="1350" height="750"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp1">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 2790,6647 2910,6647 2876,6350 2825,6350z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 2850,7725 2850,6375" clip-path="url(#cp1)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 2850,6375 -->
|
||||
<polygon points=" 2910,6647 2850,6407 2790,6647 2910,6647"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<rect x="3975" y="4125" width="2475" height="3150" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="6825" y="4125" width="2475" height="3150" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 3975,6540 6465,6525"
|
||||
stroke="#000000" stroke-width="15px" stroke-dasharray="60 60"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 6825,6540 9315,6525"
|
||||
stroke="#000000" stroke-width="15px" stroke-dasharray="60 60"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp2">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 5340,7322 5460,7322 5426,7025 5375,7025z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 5400,7725 5400,7050" clip-path="url(#cp2)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 5400,7050 -->
|
||||
<polygon points=" 5460,7322 5400,7082 5340,7322 5460,7322"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp3">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 7965,7322 8085,7322 8051,7025 8000,7025z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 8025,7725 8025,7050" clip-path="url(#cp3)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 8025,7050 -->
|
||||
<polygon points=" 8085,7322 8025,7082 7965,7322 8085,7322"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<rect x="1050" y="8925" width="8325" height="975"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="2100" y="4575" width="1350" height="750"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp4">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 3285,8053 3165,8053 3207,8343 3243,8343z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 3225,5325 3225,8325" clip-path="url(#cp4)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 3225,8325 -->
|
||||
<polygon points=" 3165,8053 3225,8293 3285,8053 3165,8053"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp5">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 6285,7978 6165,7978 6207,8268 6243,8268z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 6225,6900 6225,8250" clip-path="url(#cp5)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 6225,8250 -->
|
||||
<polygon points=" 6165,7978 6225,8218 6285,7978 6165,7978"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp6">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 8985,7978 8865,7978 8907,8268 8943,8268z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 8925,6900 8925,8250" clip-path="url(#cp6)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 8925,8250 -->
|
||||
<polygon points=" 8865,7978 8925,8218 8985,7978 8865,7978"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp7">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 1785,8053 1665,8053 1707,8343 1743,8343z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 1725,7125 1725,8325" clip-path="url(#cp7)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 1725,8325 -->
|
||||
<polygon points=" 1665,8053 1725,8293 1785,8053 1665,8053"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp8">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 2790,5297 2910,5297 2876,5000 2825,5000z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 2850,5850 2850,5025" clip-path="url(#cp8)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 2850,5025 -->
|
||||
<polygon points=" 2910,5297 2850,5057 2790,5297 2910,5297"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Backward arrow to point 2850,5850 -->
|
||||
<polygon points=" 2790,5578 2850,5818 2910,5578 2790,5578"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp9">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 5235,9103 5115,9103 5157,9393 5193,9393z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 5175,8475 5175,9375" clip-path="url(#cp9)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 5175,9375 -->
|
||||
<polygon points=" 5115,9103 5175,9343 5235,9103 5115,9103"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp10">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 1410,9178 1290,9178 1332,9468 1368,9468z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 1350,7125 1350,9450" clip-path="url(#cp10)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 1350,9450 -->
|
||||
<polygon points=" 1290,9178 1350,9418 1410,9178 1290,9178"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp11">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 2265,7472 2385,7472 2351,7175 2300,7175z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 2325,7725 2325,7200" clip-path="url(#cp11)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 2325,7200 -->
|
||||
<polygon points=" 2385,7472 2325,7232 2265,7472 2385,7472"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 900,3975"
|
||||
stroke="#000000" stroke-width="8px" stroke-dasharray="40 40"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 9525,9975"
|
||||
stroke="#000000" stroke-width="8px" stroke-dasharray="40 40"/>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4350" y="7980" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">XenBus</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1680" y="6870" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">drivers</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1800" y="6075" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">XenStore</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1875" y="7125" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Kernel0</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4875" y="6975" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">KernelU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="7650" y="6975" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">KernelU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4050" y="8400" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Xen Hypervisor</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="2325" y="4950" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Xend</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1200" y="4725" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Dom0</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4875" y="5325" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">DomU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="7650" y="5325" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">DomU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="3750" y="9450" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Hardware</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 10 KiB |
@@ -42,7 +42,7 @@
|
||||
In addition to have formal messages sent to the audit subsystem it is
|
||||
possible to tell libvirt to inject messages into its own logging
|
||||
layer. This will result in messages ending up in the systemd journal
|
||||
or <code>/var/log/libvirt/libvirtd.log</code> on non-systemd hosts.
|
||||
or <code>/var/log/libvirt/libivrtd.log</code> on non-systemd hosts.
|
||||
This is disabled by default, but can be requested by setting the
|
||||
<code>audit_logging=1</code> configuration parameter in the same file
|
||||
mentioned above.
|
||||
|
@@ -122,19 +122,19 @@ credentials=defgrp</pre>
|
||||
|
||||
|
||||
<p>
|
||||
The following service types are known to libvirt:
|
||||
The following service types are known to libvirt
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><code>esx</code> - used for connections to an ESX or
|
||||
VirtualCenter server</li>
|
||||
<li><code>hyperv</code> - used for connections to an HyperV
|
||||
server</li>
|
||||
<ol>
|
||||
<li><code>libvirt</code> - used for connections to a libvirtd
|
||||
server, which is configured with SASL auth</li>
|
||||
<li><code>ssh</code> - used for connections to a remote QEMU driver
|
||||
<li><code>ssh</code> - used for connections to a Phyp server
|
||||
over SSH</li>
|
||||
</ul>
|
||||
<li><code>esx</code> - used for connections to an ESX or
|
||||
VirtualCenter server</li>
|
||||
<li><code>xen</code> - used for connections to a Xen Enterprise
|
||||
sever using XenAPI</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Applications using libvirt are free to use this same configuration
|
||||
@@ -184,29 +184,15 @@ Default policy will still allow any application to connect to the RO socket.
|
||||
</p>
|
||||
<p>
|
||||
The default policy can be overridden by creating a new policy file in the
|
||||
<code>/etc/polkit-1/rules.d</code> directory. Information on the options
|
||||
available can be found by reading the <code>polkit(8)</code> man page. The
|
||||
two libvirt actions are named <code>org.libvirt.unix.manage</code> for full
|
||||
management access, and <code>org.libvirt.unix.monitor</code> for read-only
|
||||
access.
|
||||
</p>
|
||||
<p>
|
||||
As an example, creating <code>/etc/polkit-1/rules.d/80-libvirt-manage.rules</code>
|
||||
with the following gives the user <code>fred</code> full management access
|
||||
when accessing from an active local session:
|
||||
</p>
|
||||
<pre>polkit.addRule(function(action, subject) {
|
||||
if (action.id == "org.libvirt.unix.manage" &&
|
||||
subject.local && subject.active && subject.user == "fred") {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});</pre>
|
||||
<p>
|
||||
Older versions of PolicyKit used policy files ending with .pkla in the
|
||||
local override directory <code>/etc/polkit-1/localauthority/50-local.d/</code>.
|
||||
Compatibility with this older format is provided by <a
|
||||
href="https://pagure.io/polkit-pkla-compat">polkit-pkla-compat</a>. As an
|
||||
example, this gives the user <code>fred</code> full management access:
|
||||
Policy files should have a unique name ending with .pkla. Using reverse DNS
|
||||
naming works well. Information on the options available can be found by
|
||||
reading the pklocalauthority man page. The two libvirt daemon actions
|
||||
available are named <code>org.libvirt.unix.manage</code> for full management
|
||||
access, and <code>org.libvirt.unix.monitor</code> for read-only access.
|
||||
</p>
|
||||
<p>
|
||||
As an example, this gives the user <code>fred</code> full management access:
|
||||
</p>
|
||||
<pre>[Allow fred libvirt management permissions]
|
||||
Identity=unix-user:fred
|
||||
@@ -214,6 +200,10 @@ Action=org.libvirt.unix.manage
|
||||
ResultAny=yes
|
||||
ResultInactive=yes
|
||||
ResultActive=yes</pre>
|
||||
<p>
|
||||
Further examples of PolicyKit setup can be found on the
|
||||
<a href="http://wiki.libvirt.org/page/SSHPolicyKitSetup">wiki page</a>.
|
||||
</p>
|
||||
<h2><a id="ACL_server_sasl">SASL pluggable authentication</a></h2>
|
||||
|
||||
<p>
|
||||
@@ -276,8 +266,8 @@ to turn on SASL auth in these listeners.
|
||||
</p>
|
||||
<p>
|
||||
Since the libvirt SASL config file defaults to using GSSAPI (Kerberos), a
|
||||
config change is required to enable plain password auth. This is done by
|
||||
editing <code>/etc/sasl2/libvirt.conf</code> to set the <code>mech_list</code>
|
||||
config change is rquired to enable plain password auth. This is done by
|
||||
editting <code>/etc/sasl2/libvirt.conf</code> to set the <code>mech_list</code>
|
||||
parameter to <code>scram-sha-1</code>.
|
||||
</p>
|
||||
<p>
|
||||
@@ -319,7 +309,7 @@ in these scenarios - only the plain TCP listener needs encryption
|
||||
Some operating systems do not install the SASL kerberos plugin by default. It
|
||||
may be necessary to install a sub-package such as <code>cyrus-sasl-gssapi</code>.
|
||||
To check whether the Kerberos plugin is installed run the <code>pluginviewer</code>
|
||||
program and verify that <code>gssapi</code> is listed, e.g.:
|
||||
program and verify that <code>gssapi</code> is listed,eg:
|
||||
</p>
|
||||
<pre>
|
||||
# pluginviewer
|
||||
@@ -361,7 +351,7 @@ kadmin.local: quit
|
||||
<p>
|
||||
Any client application wishing to connect to a Kerberos enabled libvirt server
|
||||
merely needs to run <code>kinit</code> to gain a user principal. This may well
|
||||
be done automatically when a user logs into a desktop session, if PAM is set up
|
||||
be done automatically when a user logs into a desktop session, if PAM is setup
|
||||
to authenticate against Kerberos.
|
||||
</p>
|
||||
</body>
|
||||
|
@@ -1,37 +0,0 @@
|
||||
==============
|
||||
Best practices
|
||||
==============
|
||||
|
||||
These are a few guidelines to keep in mind when submitting patches
|
||||
to libvirt: following them will maximise the chance of your patches
|
||||
being reviewed in a timely manner and being accepted into libvirt
|
||||
with minimal back-and-forth.
|
||||
|
||||
- Discuss any large changes on the mailing list first. Post
|
||||
patches early and listen to feedback.
|
||||
|
||||
- In your commit message, make the summary line reasonably short
|
||||
(60 characters is typical), followed by a blank line, followed
|
||||
by any longer description of why your patch makes sense. If the
|
||||
patch fixes a regression, and you know what commit introduced
|
||||
the problem, mentioning that is useful. If the patch resolves a
|
||||
upstream bug reported in GitLab, put "Fixes: #NNN" in the commit
|
||||
message. For a downstream bug, mention the URL of the bug instead.
|
||||
In both cases also summarize the issue rather than making all
|
||||
readers follow the link. You can use 'git shortlog -30' to get
|
||||
an idea of typical summary lines.
|
||||
|
||||
- Split large changes into a series of smaller patches,
|
||||
self-contained if possible, with an explanation of each patch
|
||||
and an explanation of how the sequence of patches fits
|
||||
together. Moreover, please keep in mind that it's required to
|
||||
be able to compile cleanly (**including** ``ninja test``) after
|
||||
each patch. A feature does not have to work until the end of a
|
||||
series, but intermediate patches must compile and not cause
|
||||
test-suite failures (this is to preserve the usefulness of
|
||||
``git bisect``, among other things).
|
||||
|
||||
There is more on this subject, including lots of links to
|
||||
background reading on the subject, on `Richard Jones' guide to
|
||||
working with open source
|
||||
projects <https://people.redhat.com/rjones/how-to-supply-code-to-open-source-projects/>`__.
|
@@ -16,7 +16,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<strong>Go</strong>: Daniel Berrange develops
|
||||
<a href="https://pkg.go.dev/libvirt.org/libvirt-go">Go bindings</a>.
|
||||
<a href="https://godoc.org/github.com/libvirt/libvirt-go">Go bindings</a>.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Java</strong>: Daniel Veillard develops
|
||||
@@ -28,7 +28,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<strong>Perl</strong>: Daniel Berrange develops
|
||||
<a href="https://search.cpan.org/dist/Sys-Virt/">Perl bindings</a>.
|
||||
<a href="http://search.cpan.org/dist/Sys-Virt/">Perl bindings</a>.
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
@@ -49,7 +49,7 @@
|
||||
<li>
|
||||
<p>
|
||||
<strong>Python</strong>: Libvirt's python bindings are split to a
|
||||
separate <a href="https://gitlab.com/libvirt/libvirt-python">package</a>
|
||||
separate <a href="https://libvirt.org/git/?p=libvirt-python.git">package</a>
|
||||
since version 1.2.0, older versions came with direct support for the
|
||||
Python language.
|
||||
</p>
|
||||
@@ -60,7 +60,7 @@
|
||||
</p>
|
||||
<p>
|
||||
This is named <b>libvirt-python</b> on RHEL/Fedora,
|
||||
<a href="https://packages.ubuntu.com/search?keywords=python-libvirt"><b>python-libvirt</b></a>
|
||||
<a href="http://packages.ubuntu.com/search?keywords=python-libvirt"><b>python-libvirt</b></a>
|
||||
on Ubuntu, and may be named differently on others.
|
||||
</p>
|
||||
<p>
|
||||
|
@@ -19,7 +19,7 @@
|
||||
<a href="securityprocess.html">security process</a> instead.
|
||||
</p>
|
||||
|
||||
<h2><a id="bugtracking">Bug Tracking</a></h2>
|
||||
<h2><a id="bugzilla">Bug Tracking</a></h2>
|
||||
|
||||
<p>
|
||||
If you are using libvirt binaries from a Linux distribution
|
||||
@@ -30,17 +30,22 @@
|
||||
<h2><a id="general">General libvirt bug reports</a></h2>
|
||||
|
||||
<p>
|
||||
Bugs in upstream libvirt code should be reported as issues in the
|
||||
appropriate <a href="https://gitlab.com/libvirt">project on GitLab.</a>
|
||||
The <a href="http://bugzilla.redhat.com">Red Hat Bugzilla Server</a>
|
||||
should be used to report bugs and request features in libvirt.
|
||||
Before submitting a ticket, check the existing tickets to see if
|
||||
the bug/feature is already tracked.
|
||||
|
||||
For general libvirt bug reports, from self-built releases, GIT snapshots
|
||||
and any other non-distribution supported builds, enter tickets under
|
||||
the <code>Virtualization Tools</code> product and the <code>libvirt</code>
|
||||
component.
|
||||
</p>
|
||||
<p>
|
||||
It's always a good idea to file bug reports, as the process of
|
||||
filing the report always makes it easier to describe the
|
||||
problem, and the bug number provides a quick way of referring to
|
||||
the problem. However, not everybody in the community pays frequent
|
||||
attention to issues, so after you file a bug, asking questions
|
||||
the problem. However, not everybody in the community pays
|
||||
attention to bugzilla, so after you file a bug, asking questions
|
||||
and submitting patches on <a href="contact.html">the libvirt
|
||||
mailing lists</a> will increase your bug's visibility and
|
||||
encourage people to think about your problem. Don't hesitate to
|
||||
@@ -60,16 +65,10 @@
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://gitlab.com/libvirt/libvirt/-/issues">View libvirt.git tickets</a></li>
|
||||
<li><a href="https://gitlab.com/libvirt/libvirt/-/issues/new">New libvirt.git ticket</a></li>
|
||||
<li><a href="http://bugzilla.redhat.com/buglist.cgi?component=libvirt&product=Virtualization%20Tools">View libvirt tickets</a></li>
|
||||
<li><a href="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Virtualization%20Tools&component=libvirt">New libvirt ticket</a></li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Note bugs in language bindings and other sub-projects should be
|
||||
reported to their corresponding git repository rather than the
|
||||
main libvirt.git linked above.
|
||||
</p>
|
||||
|
||||
<h2><a id="distribution">Linux Distribution specific bug reports</a></h2>
|
||||
<ul>
|
||||
<li>
|
||||
@@ -77,8 +76,8 @@
|
||||
tickets against the <code>Fedora</code> product and
|
||||
the <code>libvirt</code> component.
|
||||
<ul>
|
||||
<li><a href="https://bugzilla.redhat.com/buglist.cgi?component=libvirt&product=Fedora">View Fedora libvirt tickets</a></li>
|
||||
<li><a href="https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&component=libvirt">New Fedora libvirt ticket</a></li>
|
||||
<li><a href="http://bugzilla.redhat.com/buglist.cgi?component=libvirt&product=Fedora">View Fedora libvirt tickets</a></li>
|
||||
<li><a href="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&component=libvirt">New Fedora libvirt ticket</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
@@ -87,7 +86,7 @@
|
||||
Linux</strong>, enter tickets against the Red Hat Enterprise
|
||||
Linux product that you're using (e.g., Red Hat Enterprise
|
||||
Linux 6) and the <code>libvirt</code> component. Red Hat
|
||||
bugzilla has <a href="https://bugzilla.redhat.com">additional guidance</a> about getting support if
|
||||
bugzilla has <a href="http://bugzilla.redhat.com">additional guidance</a> about getting support if
|
||||
you are a Red Hat customer.
|
||||
</p>
|
||||
</li>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user