[libvirt PATCH v3 00/10] build system cleanup

This patch series is motivated by the effort to adopt Meson as our build system but all of it improves the current build system on its own. Changes in v3: - dropped a patches that stores bootstrap result in git and removes some options from autogen.sh, I'll repost once we get rid of gnulib - added a new patch that fixes threadlib dependency Pavel Hrdina (10): secret: move virSecretGetSecretString into virsecret configure.ac: add check for getegid function bootstrap.conf: add threadlib module bootstrap.conf: drop gnulib tests from libvirt bootstrap.conf: always copy files bootstrap.conf: declare bootstrap sync in configuration file bootstrap.conf: disable VC ignore files bootstrap.conf: stop creating AUTHORS file syntax-check: remove deleted daemon directory from space_indent_check autogen.sh: fix autoreconf step .gitignore | 7 +- Makefile.am | 2 +- autogen.sh | 6 +- bootstrap.conf | 29 ++---- build-aux/syntax-check.mk | 2 +- configure.ac | 2 +- gnulib/tests/Makefile.am | 32 ------- po/POTFILES.in | 1 - src/libvirt_private.syms | 5 +- src/libxl/libxl_conf.c | 2 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_process.c | 2 +- src/qemu/qemu_tpm.c | 2 +- src/secret/Makefile.inc.am | 11 --- src/secret/secret_util.c | 102 --------------------- src/secret/secret_util.h | 33 ------- src/storage/storage_backend_iscsi.c | 2 +- src/storage/storage_backend_iscsi_direct.c | 2 +- src/storage/storage_backend_rbd.c | 2 +- src/storage/storage_util.c | 2 +- src/util/virsecret.c | 69 ++++++++++++++ src/util/virsecret.h | 8 ++ 22 files changed, 104 insertions(+), 221 deletions(-) delete mode 100644 gnulib/tests/Makefile.am delete mode 100644 src/secret/secret_util.c delete mode 100644 src/secret/secret_util.h -- 2.23.0

The function virSecretGetSecretString calls into secret driver and is used from other hypervisors drivers and as such makes more sense in util. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- po/POTFILES.in | 1 - src/libvirt_private.syms | 5 +- src/libxl/libxl_conf.c | 2 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_process.c | 2 +- src/qemu/qemu_tpm.c | 2 +- src/secret/Makefile.inc.am | 11 --- src/secret/secret_util.c | 102 --------------------- src/secret/secret_util.h | 33 ------- src/storage/storage_backend_iscsi.c | 2 +- src/storage/storage_backend_iscsi_direct.c | 2 +- src/storage/storage_backend_rbd.c | 2 +- src/storage/storage_util.c | 2 +- src/util/virsecret.c | 69 ++++++++++++++ src/util/virsecret.h | 8 ++ 15 files changed, 86 insertions(+), 159 deletions(-) delete mode 100644 src/secret/secret_util.c delete mode 100644 src/secret/secret_util.h diff --git a/po/POTFILES.in b/po/POTFILES.in index faf173584e..e266871907 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -190,7 +190,6 @@ @SRCDIR@/src/rpc/virnetsshsession.c @SRCDIR@/src/rpc/virnettlscontext.c @SRCDIR@/src/secret/secret_driver.c -@SRCDIR@/src/secret/secret_util.c @SRCDIR@/src/security/security_apparmor.c @SRCDIR@/src/security/security_dac.c @SRCDIR@/src/security/security_driver.c diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 89ce6b4278..b63feb4054 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1448,10 +1448,6 @@ virLogManagerFree; virLogManagerNew; -# secret/secret_util.h -virSecretGetSecretString; - - # security/security_driver.h virSecurityDriverLookup; @@ -3001,6 +2997,7 @@ virSecurityLabelDefNew; # util/virsecret.h +virSecretGetSecretString; virSecretLookupDefClear; virSecretLookupDefCopy; virSecretLookupFormatSecret; diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 2488bb9d32..e41e84e3e2 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -41,7 +41,7 @@ #include "libxl_conf.h" #include "libxl_utils.h" #include "virstoragefile.h" -#include "secret_util.h" +#include "virsecret.h" #include "cpu/cpu.h" #include "xen_common.h" #include "xen_xl.h" diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b1ac7c5aa2..ce0c5b78cd 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -56,7 +56,7 @@ #include "vircrypto.h" #include "virrandom.h" #include "virsystemd.h" -#include "secret_util.h" +#include "virsecret.h" #include "logging/log_manager.h" #include "locking/domain_lock.h" #include "virdomainsnapshotobjlist.h" diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 420d1c9c93..1cac0dc886 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -83,7 +83,7 @@ #include "virnuma.h" #include "virstring.h" #include "virhostdev.h" -#include "secret_util.h" +#include "virsecret.h" #include "configmake.h" #include "nwfilter_conf.h" #include "netdev_bandwidth_conf.h" diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index 28800a100c..262e6c4f07 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -42,7 +42,7 @@ #include "configmake.h" #include "qemu_tpm.h" #include "virtpm.h" -#include "secret_util.h" +#include "virsecret.h" #define VIR_FROM_THIS VIR_FROM_NONE diff --git a/src/secret/Makefile.inc.am b/src/secret/Makefile.inc.am index d332060e38..4f0956a7a4 100644 --- a/src/secret/Makefile.inc.am +++ b/src/secret/Makefile.inc.am @@ -5,11 +5,6 @@ SECRET_DRIVER_SOURCES = \ secret/secret_driver.c \ $(NULL) -SECRET_UTIL_SOURCES = \ - secret/secret_util.h \ - secret/secret_util.c \ - $(NULL) - DRIVER_SOURCE_FILES += $(addprefix $(srcdir)/,$(SECRET_DRIVER_SOURCES)) STATEFUL_DRIVER_SOURCE_FILES += \ @@ -17,14 +12,8 @@ STATEFUL_DRIVER_SOURCE_FILES += \ EXTRA_DIST += \ $(SECRET_DRIVER_SOURCES) \ - $(SECRET_UTIL_SOURCES) \ $(NULL) -noinst_LTLIBRARIES += libvirt_secret.la -libvirt_la_BUILT_LIBADD += libvirt_secret.la -libvirt_secret_la_CFLAGS = $(AM_CFLAGS) -libvirt_secret_la_LDFLAGS = $(AM_LDFLAGS) -libvirt_secret_la_SOURCES = $(SECRET_UTIL_SOURCES) if WITH_SECRETS mod_LTLIBRARIES += libvirt_driver_secret.la diff --git a/src/secret/secret_util.c b/src/secret/secret_util.c deleted file mode 100644 index 27e164a425..0000000000 --- a/src/secret/secret_util.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * secret_util.c: secret related utility functions - * - * Copyright (C) 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/>. - * - */ - -#include <config.h> - -#include "secret_util.h" -#include "viralloc.h" -#include "virerror.h" -#include "virlog.h" -#include "virobject.h" -#include "viruuid.h" -#include "datatypes.h" - -#define VIR_FROM_THIS VIR_FROM_SECRET - -VIR_LOG_INIT("secret.secret_util"); - - -/* virSecretGetSecretString: - * @conn: Pointer to the connection driver to make secret driver call - * @seclookupdef: Secret lookup def - * @secretUsageType: Type of secret usage for usage lookup - * @secret: returned secret as a sized stream of unsigned chars - * @secret_size: Return size of the secret - either raw text or base64 - * - * Lookup the secret for the usage type and return it as raw text. - * It is up to the caller to encode the secret further. - * - * Returns 0 on success, -1 on failure. On success the memory in secret - * needs to be cleared and free'd after usage. - */ -int -virSecretGetSecretString(virConnectPtr conn, - virSecretLookupTypeDefPtr seclookupdef, - virSecretUsageType secretUsageType, - uint8_t **secret, - size_t *secret_size) -{ - virSecretPtr sec = NULL; - int ret = -1; - - switch (seclookupdef->type) { - case VIR_SECRET_LOOKUP_TYPE_UUID: - sec = conn->secretDriver->secretLookupByUUID(conn, seclookupdef->u.uuid); - break; - - case VIR_SECRET_LOOKUP_TYPE_USAGE: - sec = conn->secretDriver->secretLookupByUsage(conn, secretUsageType, - seclookupdef->u.usage); - break; - } - - if (!sec) - goto cleanup; - - /* NB: NONE is a byproduct of the qemuxml2argvtest test mocking - * for UUID lookups. Normal secret XML processing would fail if - * the usage type was NONE and since we have no way to set the - * expected usage in that environment, let's just accept NONE */ - if (sec->usageType != VIR_SECRET_USAGE_TYPE_NONE && - sec->usageType != secretUsageType) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - - virUUIDFormat(seclookupdef->u.uuid, uuidstr); - virReportError(VIR_ERR_INVALID_ARG, - _("secret with uuid %s is of type '%s' not " - "expected '%s' type"), - uuidstr, virSecretUsageTypeToString(sec->usageType), - virSecretUsageTypeToString(secretUsageType)); - goto cleanup; - } - - *secret = conn->secretDriver->secretGetValue(sec, secret_size, 0, - VIR_SECRET_GET_VALUE_INTERNAL_CALL); - - if (!*secret) - goto cleanup; - - ret = 0; - - cleanup: - virObjectUnref(sec); - return ret; -} diff --git a/src/secret/secret_util.h b/src/secret/secret_util.h deleted file mode 100644 index ff23df63b7..0000000000 --- a/src/secret/secret_util.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * secret_util.h: secret related utility functions - * - * Copyright (C) 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/>. - * - */ - -#pragma once - -#include "internal.h" -#include "virsecret.h" - -int virSecretGetSecretString(virConnectPtr conn, - virSecretLookupTypeDefPtr seclookupdef, - virSecretUsageType secretUsageType, - uint8_t **ret_secret, - size_t *ret_secret_size) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4) - ATTRIBUTE_NONNULL(5) G_GNUC_WARN_UNUSED_RESULT; diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c index ee39cbf88d..c02fbb5eaa 100644 --- a/src/storage/storage_backend_iscsi.c +++ b/src/storage/storage_backend_iscsi.c @@ -39,7 +39,7 @@ #include "virobject.h" #include "virstring.h" #include "viruuid.h" -#include "secret_util.h" +#include "virsecret.h" #include "storage_util.h" #define VIR_FROM_THIS VIR_FROM_STORAGE diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c index 3a5e2bb9f0..c37c671db6 100644 --- a/src/storage/storage_backend_iscsi_direct.c +++ b/src/storage/storage_backend_iscsi_direct.c @@ -24,7 +24,7 @@ #include <iscsi/scsi-lowlevel.h> #include "datatypes.h" -#include "secret_util.h" +#include "virsecret.h" #include "storage_backend_iscsi_direct.h" #include "storage_util.h" #include "viralloc.h" diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index 88e7a4b236..f0b7653736 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -33,7 +33,7 @@ #include "virrandom.h" #include "rados/librados.h" #include "rbd/librbd.h" -#include "secret_util.h" +#include "virsecret.h" #include "storage_util.h" #define VIR_FROM_THIS VIR_FROM_STORAGE diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index ebc262278d..987d937b04 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -62,7 +62,7 @@ #include "viralloc.h" #include "internal.h" #include "secret_conf.h" -#include "secret_util.h" +#include "virsecret.h" #include "vircrypto.h" #include "viruuid.h" #include "virstoragefile.h" diff --git a/src/util/virsecret.c b/src/util/virsecret.c index 174ce544c0..f44d964198 100644 --- a/src/util/virsecret.c +++ b/src/util/virsecret.c @@ -21,6 +21,7 @@ #include <config.h> +#include "datatypes.h" #include "viralloc.h" #include "virerror.h" #include "virlog.h" @@ -125,3 +126,71 @@ virSecretLookupFormatSecret(virBufferPtr buf, virBufferAddLit(buf, "/>\n"); } } + + +/* virSecretGetSecretString: + * @conn: Pointer to the connection driver to make secret driver call + * @seclookupdef: Secret lookup def + * @secretUsageType: Type of secret usage for usage lookup + * @secret: returned secret as a sized stream of unsigned chars + * @secret_size: Return size of the secret - either raw text or base64 + * + * Lookup the secret for the usage type and return it as raw text. + * It is up to the caller to encode the secret further. + * + * Returns 0 on success, -1 on failure. On success the memory in secret + * needs to be cleared and free'd after usage. + */ +int +virSecretGetSecretString(virConnectPtr conn, + virSecretLookupTypeDefPtr seclookupdef, + virSecretUsageType secretUsageType, + uint8_t **secret, + size_t *secret_size) +{ + virSecretPtr sec = NULL; + int ret = -1; + + switch (seclookupdef->type) { + case VIR_SECRET_LOOKUP_TYPE_UUID: + sec = conn->secretDriver->secretLookupByUUID(conn, seclookupdef->u.uuid); + break; + + case VIR_SECRET_LOOKUP_TYPE_USAGE: + sec = conn->secretDriver->secretLookupByUsage(conn, secretUsageType, + seclookupdef->u.usage); + break; + } + + if (!sec) + goto cleanup; + + /* NB: NONE is a byproduct of the qemuxml2argvtest test mocking + * for UUID lookups. Normal secret XML processing would fail if + * the usage type was NONE and since we have no way to set the + * expected usage in that environment, let's just accept NONE */ + if (sec->usageType != VIR_SECRET_USAGE_TYPE_NONE && + sec->usageType != secretUsageType) { + char uuidstr[VIR_UUID_STRING_BUFLEN]; + + virUUIDFormat(seclookupdef->u.uuid, uuidstr); + virReportError(VIR_ERR_INVALID_ARG, + _("secret with uuid %s is of type '%s' not " + "expected '%s' type"), + uuidstr, virSecretUsageTypeToString(sec->usageType), + virSecretUsageTypeToString(secretUsageType)); + goto cleanup; + } + + *secret = conn->secretDriver->secretGetValue(sec, secret_size, 0, + VIR_SECRET_GET_VALUE_INTERNAL_CALL); + + if (!*secret) + goto cleanup; + + ret = 0; + + cleanup: + virObjectUnref(sec); + return ret; +} diff --git a/src/util/virsecret.h b/src/util/virsecret.h index 8bc8a24e0f..bf056cb3b2 100644 --- a/src/util/virsecret.h +++ b/src/util/virsecret.h @@ -56,3 +56,11 @@ int virSecretLookupParseSecret(xmlNodePtr secretnode, void virSecretLookupFormatSecret(virBufferPtr buf, const char *secrettype, virSecretLookupTypeDefPtr def); + +int virSecretGetSecretString(virConnectPtr conn, + virSecretLookupTypeDefPtr seclookupdef, + virSecretUsageType secretUsageType, + uint8_t **ret_secret, + size_t *ret_secret_size) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4) + ATTRIBUTE_NONNULL(5) G_GNUC_WARN_UNUSED_RESULT; -- 2.23.0

We already use this function and so far we've been lucky that the same check is done by gnulib. This will change once we will drop gnulib and also make it obvious that we have to do the same check in Meson as well. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 7d69b8bcb4..58c4454707 100644 --- a/configure.ac +++ b/configure.ac @@ -354,6 +354,7 @@ dnl Availability of various common functions (non-fatal if missing), dnl and various less common threadsafe functions AC_CHECK_FUNCS_ONCE([\ fallocate \ + getegid \ geteuid \ getgid \ getifaddrs \ -- 2.23.0

It is pulled in by tests and used by our build system as well. Make an explicit dependency on threadlib. This can be later removed by using GLib GThread. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- bootstrap.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bootstrap.conf b/bootstrap.conf index 87c23c7d89..d7701ad578 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -58,6 +58,8 @@ gnulib_modules="$gnulib_modules sigaction" gnulib_modules="$gnulib_modules sigpipe" # -> open code conditional or use GIO GFileInfo gnulib_modules="$gnulib_modules stat-time" +# -> GThread +gnulib_modules="$gnulib_modules threadlib" # -> remove use or open-code it. possibly add to glib gnulib_modules="$gnulib_modules strchrnul" # -> g_strsplit -- 2.23.0

On Fri, Jan 17, 2020 at 04:00:10PM +0100, Pavel Hrdina wrote:
It is pulled in by tests and used by our build system as well. Make an explicit dependency on threadlib. This can be later removed by using GLib GThread.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

We are in process of removing gnulib and adopting meson as our build system. In order to help with the transition let's drop gnulib tests. This will also help with the fact that before we will be able to drop gnulib completely we will store output of bootstrap in git. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitignore | 2 -- Makefile.am | 2 +- bootstrap.conf | 13 ------------- configure.ac | 1 - gnulib/tests/Makefile.am | 32 -------------------------------- 5 files changed, 1 insertion(+), 49 deletions(-) delete mode 100644 gnulib/tests/Makefile.am diff --git a/.gitignore b/.gitignore index 2d6e3e3194..2139d176da 100644 --- a/.gitignore +++ b/.gitignore @@ -27,12 +27,10 @@ Makefile.in # gnulib related ignores !/gnulib/lib/Makefile.am -!/gnulib/tests/Makefile.am *.rej *~ /gnulib/lib/* /gnulib/m4/* -/gnulib/tests/* # git related ignores *.orig diff --git a/Makefile.am b/Makefile.am index 0d7ccc74db..8a8eecb697 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,7 @@ GENHTML = genhtml # so force it explicitly DISTCHECK_CONFIGURE_FLAGS = --enable-werror -SUBDIRS = . gnulib/lib include/libvirt src tools docs gnulib/tests \ +SUBDIRS = . gnulib/lib include/libvirt src tools docs \ tests po examples XZ_OPT ?= -v -T0 diff --git a/bootstrap.conf b/bootstrap.conf index d7701ad578..58d1b8e676 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -93,13 +93,10 @@ fi 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 @@ -134,16 +131,6 @@ gnulib_extra_files=" 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 -} - bootstrap_epilogue() { echo "$0: done. Now you can run 'mkdir build && cd build && ../configure'." diff --git a/configure.ac b/configure.ac index 58c4454707..4bdf38ec15 100644 --- a/configure.ac +++ b/configure.ac @@ -925,7 +925,6 @@ AC_CONFIG_FILES([run], AC_CONFIG_FILES([\ Makefile src/Makefile include/libvirt/Makefile docs/Makefile \ gnulib/lib/Makefile \ - gnulib/tests/Makefile \ .color_coded \ .ycm_extra_conf.py \ libvirt.pc \ diff --git a/gnulib/tests/Makefile.am b/gnulib/tests/Makefile.am deleted file mode 100644 index 7062cbaf87..0000000000 --- a/gnulib/tests/Makefile.am +++ /dev/null @@ -1,32 +0,0 @@ -## Makefile for gnulib/lib - -## Copyright (C) 2011, 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/>. - -include gnulib.mk - -GNULIB_TESTS0 = -GNULIB_TESTS1 = $(GNULIB_TESTS) -if WITH_EXPENSIVE_TESTS -## Automake requires that at least one conditional call out all tests to -## be run, for those tests to be shipped in the tarball -TESTS = $(GNULIB_TESTS) -endif WITH_EXPENSIVE_TESTS -## However, we want to change the set of tests based on the make environment, -## where the default was set at configure time. Use GNU make constructs to -## hide our actions from Automake, so we don't get it too confused. -VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT) -$(eval TESTS=$(GNULIB_TESTS$(VIR_TEST_EXPENSIVE))) -- 2.23.0

Preparation for having bootstrap result in git. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- bootstrap.conf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bootstrap.conf b/bootstrap.conf index 58d1b8e676..b4020ab8ad 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -77,11 +77,7 @@ gnulib_modules="$gnulib_modules 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 +copy=true # Tell gnulib to: -- 2.23.0

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- autogen.sh | 2 +- bootstrap.conf | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh index 9afad8f9d5..a119b099cb 100755 --- a/autogen.sh +++ b/autogen.sh @@ -147,7 +147,7 @@ if test -d .git || test -f .git; then dry_run=2 else echo "Running bootstrap..." - ./bootstrap$no_git --bootstrap-sync || { + ./bootstrap$no_git || { die "bootstrap failed" } gnulib_hash >"$state_file" diff --git a/bootstrap.conf b/bootstrap.conf index b4020ab8ad..13dd239fd1 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -79,6 +79,8 @@ SKIP_PO=true copy=true +bootstrap_sync=true + # Tell gnulib to: # require LGPLv2+ -- 2.23.0

We already ignore most of these files and the .gitignore files as well. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitignore | 5 ++++- bootstrap.conf | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2139d176da..949bd3bc5a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,9 +14,12 @@ /INSTALL /aclocal.m4 /autom4te.cache -/build-aux/.gitignore /build-aux/compile +/build-aux/config.guess +/build-aux/config.sub /build-aux/depcomp +/build-aux/install-sh +/build-aux/ltmain.sh /build-aux/missing /build-aux/test-driver /config.h.in diff --git a/bootstrap.conf b/bootstrap.conf index 13dd239fd1..5ff3374ded 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -81,6 +81,8 @@ copy=true bootstrap_sync=true +vc_ignore= + # Tell gnulib to: # require LGPLv2+ @@ -95,6 +97,7 @@ gnulib_tool_option_extras="\ --lgpl=2\ --makefile-name=gnulib.mk\ --avoid=pt_chown\ + --no-vc-files\ " local_gl_dir=gnulib/local -- 2.23.0

The existence of AUTHORS file is required for GNU projects but since commit <8bfb36db40f38e92823b657b5a342652064b5adc> we do not require these files to exist. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- autogen.sh | 2 +- bootstrap.conf | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/autogen.sh b/autogen.sh index a119b099cb..a1f1943adb 100755 --- a/autogen.sh +++ b/autogen.sh @@ -127,7 +127,7 @@ if test -d .git || test -f .git; then expected_hash=$(cat "$state_file" 2>/dev/null) actual_hash=$(gnulib_hash "$no_git") - if test "$actual_hash" = "$expected_hash" && test -f AUTHORS; then + if test "$actual_hash" = "$expected_hash"; 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 diff --git a/bootstrap.conf b/bootstrap.conf index 5ff3374ded..4159199d08 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -120,9 +120,6 @@ xmllint - xsltproc - " -# Automake requires that AUTHORS exist. -touch AUTHORS || exit 1 - # Override bootstrap's list - we don't use mdate-sh or texinfo.tex. gnulib_extra_files=" build-aux/install-sh -- 2.23.0

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- build-aux/syntax-check.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index b0a977201e..e5623606dd 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -569,7 +569,7 @@ sc_size_of_brackets: # Ensure that no C source file, docs, or rng schema uses TABs for # indentation. Also match *.h.in files, to get libvirt.h.in. Exclude # files in gnulib, since they're imported. -space_indent_files=(\.(aug(\.in)?|rng|s?[ch](\.in)?|html.in|py|pl|syms)|(daemon|tools)/.*\.in) +space_indent_files=(\.(aug(\.in)?|rng|s?[ch](\.in)?|html.in|py|pl|syms)|tools/.*\.in) sc_TAB_in_indentation: @prohibit='^ * ' \ in_vc_files='$(space_indent_files)$$' \ -- 2.23.0

Running bootstrap and autoreconf from autogen.sh produced different files in build-aux directory. The reason is that gnulib usually have newer version of these files and overwrites them after the autoreconf step. In order to fix it remove the --install and --force options, in addition introduce --verbose option in order to reflect what bootstrap is doing. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> --- autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh index a1f1943adb..47446dc785 100755 --- a/autogen.sh +++ b/autogen.sh @@ -134,7 +134,7 @@ if test -d .git || test -f .git; then # dry run, of course... if test -z "$dry_run"; then echo "Running autoreconf..." - autoreconf -if || { + autoreconf -v || { die "autoreconf failed" } fi -- 2.23.0
participants (2)
-
Daniel P. Berrangé
-
Pavel Hrdina