diff --git a/.color_coded.in b/.color_coded.in index 15e1c7cb2e..f39c6860ab 100644 --- a/.color_coded.in +++ b/.color_coded.in @@ -1,7 +1,5 @@ -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 diff --git a/.gitignore b/.gitignore index 949bd3bc5a..6c167e423b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *#*# *.#*# .#* +*~ # autotools related ignores !/m4/virt-*.m4 @@ -28,14 +29,8 @@ /m4/* Makefile.in -# gnulib related ignores -!/gnulib/lib/Makefile.am -*.rej -*~ -/gnulib/lib/* -/gnulib/m4/* - # git related ignores +*.rej *.orig .git-module-status diff --git a/.gitmodules b/.gitmodules index 0fda887528..79b7e19485 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[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 diff --git a/.gnulib b/.gnulib deleted file mode 160000 index 611869be9f..0000000000 --- a/.gnulib +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 611869be9f1083e53305446d90a2909fc89914ef diff --git a/.ycm_extra_conf.py.in b/.ycm_extra_conf.py.in index 96c8a4724e..2e24334079 100644 --- a/.ycm_extra_conf.py.in +++ b/.ycm_extra_conf.py.in @@ -1,8 +1,6 @@ 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', diff --git a/Makefile.am b/Makefile.am index 29501ab40c..5590c88e4d 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 \ +SUBDIRS = . include/libvirt src tools docs \ tests po examples XZ_OPT ?= -v -T0 diff --git a/README-hacking b/README-hacking index 7da940eb13..89fa86be30 100644 --- a/README-hacking +++ b/README-hacking @@ -28,18 +28,11 @@ 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 - We require to have the build directory different than the source directory: $ mkdir build && cd build -The next step is to get all required pieces from gnulib, -to run autoreconf, and to invoke ../autogen.sh: +The next step is to invoke ../autogen.sh: $ ../autogen.sh diff --git a/autogen.sh b/autogen.sh index 47446dc785..671dd63eb6 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,208 +1,45 @@ #!/bin/sh # Run this to generate all the initial makefiles, etc. +test -n "$srcdir" || srcdir=$(dirname "$0") +test -n "$srcdir" || srcdir=. -die() -{ - echo "error: $1" >&2 +olddir=$(pwd) + +cd "$srcdir" + +(test -f src/libvirt.c) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level libvirt directory" exit 1 } -starting_point=$(pwd) +git submodule update --init || exit 1 -srcdir=$(dirname "$0") -test "$srcdir" || srcdir=. +aclocal --install || exit 1 +autoreconf --verbose --force --install || exit 1 -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"; 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 -v || { - 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 || { - die "bootstrap failed" - } - gnulib_hash >"$state_file" - fi +if test "x$1" = "x--system"; then + shift + prefix=/usr + libdir=$prefix/lib + sysconfdir=/etc + localstatedir=/var + if [ -d /usr/lib64 ]; then + libdir=$prefix/lib64 fi + EXTRA_ARGS="--prefix=$prefix --sysconfdir=$sysconfdir --localstatedir=$localstatedir --libdir=$libdir" fi -# When performing a dry run, we can stop here -test "$dry_run" && exit "$dry_run" +cd "$olddir" -# If asked not to run configure, we can stop here -test "$NOCONFIGURE" && exit 0 +if [ "$NOCONFIGURE" = "" ]; then + $srcdir/configure $EXTRA_ARGS "$@" || exit 1 -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" - } + if [ "$1" = "--help" ]; then + exit 0 + else + echo "Now type 'make' to compile libvirt" || exit 1 + fi 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" - } + echo "Skipping configure process." fi - -echo -echo "Now type '$MAKE' to compile libvirt." diff --git a/bootstrap b/bootstrap deleted file mode 100755 index 70fd73cc74..0000000000 --- a/bootstrap +++ /dev/null @@ -1,1073 +0,0 @@ -#! /bin/sh -# Print a version string. -scriptversion=2019-01-04.17; # UTC - -# Bootstrap this package from checked-out sources. - -# Copyright (C) 2003-2020 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 . - -# Originally written by Paul Eggert. The canonical version of this -# script is maintained as build-aux/bootstrap in gnulib, however, to -# be useful to your project, you should place a copy of it under -# version control in the top-level directory of your project. The -# intent is that all customization can be done with a bootstrap.conf -# file also maintained in your version control; gnulib comes with a -# template build-aux/bootstrap.conf to get you started. - -# Please report bugs or propose patches to bug-gnulib@gnu.org. - -nl=' -' - -# Ensure file names are sorted consistently across platforms. -LC_ALL=C -export LC_ALL - -# Ensure that CDPATH is not set. Otherwise, the output from cd -# would cause trouble in at least one use below. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -local_gl_dir=gl - -# Honor $PERL, but work even if there is none. -PERL="${PERL-perl}" - -me=$0 - -default_gnulib_url=git://git.sv.gnu.org/gnulib - -usage() { - cat <&2 -} - -# warn_ WORD1... -warn_ () -{ - # If IFS does not start with ' ', set it and emit the warning in a subshell. - case $IFS in - ' '*) warnf_ '%s\n' "$*";; - *) (IFS=' '; warn_ "$@");; - esac -} - -# die WORD1... -die() { warn_ "$@"; exit 1; } - -# Configuration. - -# Name of the Makefile.am -gnulib_mk=gnulib.mk - -# List of gnulib modules needed. -gnulib_modules= - -# Any gnulib files needed that are not in modules. -gnulib_files= - -: ${AUTOPOINT=autopoint} -: ${AUTORECONF=autoreconf} - -# A function to be called right after gnulib-tool is run. -# Override it via your own definition in bootstrap.conf. -bootstrap_post_import_hook() { :; } - -# A function to be called after everything else in this script. -# Override it via your own definition in bootstrap.conf. -bootstrap_epilogue() { :; } - -# The command to download all .po files for a specified domain into a -# specified directory. Fill in the first %s with the destination -# directory and the second with the domain name. -po_download_command_format=\ -"wget --mirror --level=1 -nd -nv -A.po -P '%s' \ - https://translationproject.org/latest/%s/" - -# Prefer a non-empty tarname (4th argument of AC_INIT if given), else -# fall back to the package name (1st argument with munging) -extract_package_name=' - /^AC_INIT(\[*/{ - s/// - /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{ - s//\1/ - s/[],)].*// - p - q - } - s/[],)].*// - s/^GNU // - y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g - p - } -' -package=$(sed -n "$extract_package_name" configure.ac) \ - || die 'cannot find package name in configure.ac' -gnulib_name=lib$package - -build_aux=build-aux -source_base=lib -m4_base=m4 -doc_base=doc -tests_base=tests -gnulib_extra_files=" - build-aux/install-sh - build-aux/mdate-sh - build-aux/texinfo.tex - build-aux/depcomp - build-aux/config.guess - build-aux/config.sub - doc/INSTALL -" - -# Additional gnulib-tool options to use. Use "\newline" to break lines. -gnulib_tool_option_extras= - -# Other locale categories that need message catalogs. -EXTRA_LOCALE_CATEGORIES= - -# Additional xgettext options to use. Use "\\\newline" to break lines. -XGETTEXT_OPTIONS='\\\ - --flag=_:1:pass-c-format\\\ - --flag=N_:1:pass-c-format\\\ - --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ -' - -# Package bug report address and copyright holder for gettext files -COPYRIGHT_HOLDER='Free Software Foundation, Inc.' -MSGID_BUGS_ADDRESS=bug-$package@gnu.org - -# Files we don't want to import. -excluded_files= - -# File that should exist in the top directory of a checked out hierarchy, -# but not in a distribution tarball. -checkout_only_file=README-hacking - -# Whether to use copies instead of symlinks. -copy=false - -# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want -# those files to be generated in directories like lib/, m4/, and po/. -# Or set it to 'auto' to make this script select which to use based -# on which version control system (if any) is used in the source directory. -vc_ignore=auto - -# Set this to true in bootstrap.conf to enable --bootstrap-sync by -# default. -bootstrap_sync=false - -# Use git to update gnulib sources -use_git=true - -check_exists() { - if test "$1" = "--verbose"; then - ($2 --version /dev/null 2>&1 - if test $? -ge 126; then - # If not found, run with diagnostics as one may be - # presented with env variables to set to find the right version - ($2 --version /dev/null 2>&1 - fi - - test $? -lt 126 -} - -# find_tool ENVVAR NAMES... -# ------------------------- -# Search for a required program. Use the value of ENVVAR, if set, -# otherwise find the first of the NAMES that can be run. -# If found, set ENVVAR to the program name, die otherwise. -# -# FIXME: code duplication, see also gnu-web-doc-update. -find_tool () -{ - find_tool_envvar=$1 - shift - find_tool_names=$@ - eval "find_tool_res=\$$find_tool_envvar" - if test x"$find_tool_res" = x; then - for i; do - if check_exists $i; then - find_tool_res=$i - break - fi - done - fi - if test x"$find_tool_res" = x; then - warn_ "one of these is required: $find_tool_names;" - die "alternatively set $find_tool_envvar to a compatible tool" - fi - eval "$find_tool_envvar=\$find_tool_res" - eval "export $find_tool_envvar" -} - -# Override the default configuration, if necessary. -# Make sure that bootstrap.conf is sourced from the current directory -# if we were invoked as "sh bootstrap". -case "$0" in - */*) test -r "$0.conf" && . "$0.conf" ;; - *) test -r "$0.conf" && . ./"$0.conf" ;; -esac - -if test "$vc_ignore" = auto; then - vc_ignore= - test -d .git && vc_ignore=.gitignore - test -d CVS && vc_ignore="$vc_ignore .cvsignore" -fi - -if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then - use_gnulib=false -else - use_gnulib=true -fi - -# Translate configuration into internal form. - -# Parse options. - -for option -do - case $option in - --help) - usage - exit;; - --gnulib-srcdir=*) - GNULIB_SRCDIR=${option#--gnulib-srcdir=};; - --skip-po) - SKIP_PO=t;; - --force) - checkout_only_file=;; - --copy) - copy=true;; - --bootstrap-sync) - bootstrap_sync=true;; - --no-bootstrap-sync) - bootstrap_sync=false;; - --no-git) - use_git=false;; - *) - die "$option: unknown option";; - esac -done - -$use_git || test -d "$GNULIB_SRCDIR" \ - || die "Error: --no-git requires --gnulib-srcdir" - -if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then - die "Bootstrapping from a non-checked-out distribution is risky." -fi - -# Strip blank and comment lines to leave significant entries. -gitignore_entries() { - sed '/^#/d; /^$/d' "$@" -} - -# If $STR is not already on a line by itself in $FILE, insert it at the start. -# Entries are inserted at the start of the ignore list to ensure existing -# entries starting with ! are not overridden. Such entries support -# whitelisting exceptions after a more generic blacklist pattern. -insert_if_absent() { - file=$1 - str=$2 - test -f $file || touch $file - test -r $file || die "Error: failed to read ignore file: $file" - duplicate_entries=$(gitignore_entries $file | sort | uniq -d) - if [ "$duplicate_entries" ] ; then - die "Error: Duplicate entries in $file: " $duplicate_entries - fi - linesold=$(gitignore_entries $file | wc -l) - linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l) - if [ $linesold != $linesnew ] ; then - { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \ - || die "insert_if_absent $file $str: failed" - fi -} - -# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with -# insert_if_absent. -insert_vc_ignore() { - vc_ignore_file="$1" - pattern="$2" - case $vc_ignore_file in - *.gitignore) - # A .gitignore entry that does not start with '/' applies - # recursively to subdirectories, so prepend '/' to every - # .gitignore entry. - pattern=$(echo "$pattern" | sed s,^,/,);; - esac - insert_if_absent "$vc_ignore_file" "$pattern" -} - -# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. -found_aux_dir=no -grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ - >/dev/null && found_aux_dir=yes -grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ - >/dev/null && found_aux_dir=yes -test $found_aux_dir = yes \ - || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" - -# If $build_aux doesn't exist, create it now, otherwise some bits -# below will malfunction. If creating it, also mark it as ignored. -if test ! -d $build_aux; then - mkdir $build_aux - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - insert_vc_ignore $dot_ig $build_aux - done -fi - -# Note this deviates from the version comparison in automake -# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a -# but this should suffice as we won't be specifying old -# version formats or redundant trailing .0 in bootstrap.conf. -# If we did want full compatibility then we should probably -# use m4_version_compare from autoconf. -sort_ver() { # sort -V is not generally available - ver1="$1" - ver2="$2" - - # split on '.' and compare each component - i=1 - while : ; do - p1=$(echo "$ver1" | cut -d. -f$i) - p2=$(echo "$ver2" | cut -d. -f$i) - if [ ! "$p1" ]; then - echo "$1 $2" - break - elif [ ! "$p2" ]; then - echo "$2 $1" - break - elif [ ! "$p1" = "$p2" ]; then - if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison - echo "$2 $1" - elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison - echo "$1 $2" - else # numeric, then lexicographic comparison - lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) - if [ "$lp" = "$p2" ]; then - echo "$1 $2" - else - echo "$2 $1" - fi - fi - break - fi - i=$(($i+1)) - done -} - -get_version_sed=' -# Move version to start of line. -s/.*[v ]\([0-9]\)/\1/ - -# Skip lines that do not start with version. -/^[0-9]/!d - -# Remove characters after the version. -s/[^.a-z0-9-].*// - -# The first component must be digits only. -s/^\([0-9]*\)[a-z-].*/\1/ - -#the following essentially does s/5.005/5.5/ -s/\.0*\([1-9]\)/.\1/g -p -q' - -get_version() { - app=$1 - - $app --version >/dev/null 2>&1 || { $app --version; return 1; } - - $app --version 2>&1 | sed -n "$get_version_sed" -} - -check_versions() { - ret=0 - - while read app req_ver; do - # We only need libtoolize from the libtool package. - if test "$app" = libtool; then - app=libtoolize - fi - # Exempt git if --no-git is in effect. - if test "$app" = git; then - $use_git || continue - fi - # Honor $APP variables ($TAR, $AUTOCONF, etc.) - appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_') - test "$appvar" = TAR && appvar=AMTAR - case $appvar in - GZIP) ;; # Do not use $GZIP: it contains gzip options. - PERL::*) ;; # Keep perl modules as-is - *) eval "app=\${$appvar-$app}" ;; - esac - - # Handle the still-experimental Automake-NG programs specially. - # They remain named as the mainstream Automake programs ("automake", - # and "aclocal") to avoid gratuitous incompatibilities with - # pre-existing usages (by, say, autoreconf, or custom autogen.sh - # scripts), but correctly identify themselves (as being part of - # "GNU automake-ng") when asked their version. - case $app in - automake-ng|aclocal-ng) - app=${app%-ng} - ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { - warn_ "Error: '$app' not found or not from Automake-NG" - ret=1 - continue - } ;; - # Another check is for perl modules. These can be written as - # e.g. perl::XML::XPath in case of XML::XPath module, etc. - perl::*) - # Extract module name - app="${app#perl::}" - if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then - warn_ "Error: perl module '$app' not found" - ret=1 - fi - continue - ;; - esac - if [ "$req_ver" = "-" ]; then - # Merely require app to exist; not all prereq apps are well-behaved - # so we have to rely on $? rather than get_version. - if ! check_exists --verbose $app; then - warn_ "Error: '$app' not found" - ret=1 - fi - else - # Require app to produce a new enough version string. - inst_ver=$(get_version $app) - if [ ! "$inst_ver" ]; then - warn_ "Error: '$app' not found" - ret=1 - else - latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) - if [ ! "$latest_ver" = "$inst_ver" ]; then - warnf_ '%s\n' \ - "Error: '$app' version == $inst_ver is too old" \ - " '$app' version >= $req_ver is required" - ret=1 - fi - fi - fi - done - - return $ret -} - -print_versions() { - echo "Program Min_version" - echo "----------------------" - printf %s "$buildreq" - echo "----------------------" - # can't depend on column -t -} - -# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. -# Also find the compatible sha1 utility on the BSDs -if test x"$SKIP_PO" = x; then - find_tool SHA1SUM sha1sum gsha1sum shasum sha1 -fi - -use_libtool=0 -# We'd like to use grep -E, to see if any of LT_INIT, -# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, -# but that's not portable enough (e.g., for Solaris). -grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ - && use_libtool=1 -grep '^[ ]*LT_INIT' configure.ac >/dev/null \ - && use_libtool=1 -if test $use_libtool = 1; then - find_tool LIBTOOLIZE glibtoolize libtoolize -fi - -# gnulib-tool requires at least automake and autoconf. -# If either is not listed, add it (with minimum version) as a prerequisite. -case $buildreq in - *automake*) ;; - *) buildreq="automake 1.9 -$buildreq" ;; -esac -case $buildreq in - *autoconf*) ;; - *) buildreq="autoconf 2.59 -$buildreq" ;; -esac - -# When we can deduce that gnulib-tool will require patch, -# and when patch is not already listed as a prerequisite, add it, too. -if test -d "$local_gl_dir" \ - && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then - case $buildreq in - *patch*) ;; - *) buildreq="patch - -$buildreq" ;; - esac -fi - -if ! printf "$buildreq" | check_versions; then - echo >&2 - if test -f README-prereq; then - die "See README-prereq for how to get the prerequisite programs" - else - die "Please install the prerequisite programs" - fi -fi - -# Warn the user if autom4te appears to be broken; this causes known -# issues with at least gettext 0.18.3. -probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -) -if test "x$probe" != xhi; then - warn_ "WARNING: your autom4te wrapper eats stdin;" - warn_ "if bootstrap fails, consider upgrading your autotools" -fi - -echo "$0: Bootstrapping from checked-out $package sources..." - -# See if we can use gnulib's git-merge-changelog merge driver. -if $use_git && test -d .git && check_exists git; then - if git config merge.merge-changelog.driver >/dev/null ; then - : - elif check_exists git-merge-changelog; then - echo "$0: initializing git-merge-changelog driver" - git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' - git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' - else - echo "$0: consider installing git-merge-changelog from gnulib" - fi -fi - - -cleanup_gnulib() { - status=$? - rm -fr "$gnulib_path" - exit $status -} - -git_modules_config () { - test -f .gitmodules && git config --file .gitmodules "$@" -} - -if $use_gnulib; then - if $use_git; then - gnulib_path=$(git_modules_config submodule.gnulib.path) - test -z "$gnulib_path" && gnulib_path=gnulib - fi - - # Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a - # submodule, for use in the rest of the script. - - case ${GNULIB_SRCDIR--} in - -) - # Note that $use_git is necessarily true in this case. - if git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - git submodule init -- "$gnulib_path" || exit $? - git submodule update -- "$gnulib_path" || exit $? - - elif [ ! -d "$gnulib_path" ]; then - echo "$0: getting gnulib files..." - - trap cleanup_gnulib 1 2 13 15 - - shallow= - if test -z "$GNULIB_REVISION"; then - git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' - fi - git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \ - || cleanup_gnulib - - trap - 1 2 13 15 - fi - GNULIB_SRCDIR=$gnulib_path - ;; - *) - # Use GNULIB_SRCDIR directly or as a reference. - if $use_git && test -d "$GNULIB_SRCDIR"/.git && \ - git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - if git submodule -h|grep -- --reference > /dev/null; then - # Prefer the one-liner available in git 1.6.4 or newer. - git submodule update --init --reference "$GNULIB_SRCDIR" \ - "$gnulib_path" || exit $? - else - # This fallback allows at least git 1.5.5. - if test -f "$gnulib_path"/gnulib-tool; then - # Since file already exists, assume submodule init already complete. - git submodule update -- "$gnulib_path" || exit $? - else - # Older git can't clone into an empty directory. - rmdir "$gnulib_path" 2>/dev/null - git clone --reference "$GNULIB_SRCDIR" \ - "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ - && git submodule init -- "$gnulib_path" \ - && git submodule update -- "$gnulib_path" \ - || exit $? - fi - fi - GNULIB_SRCDIR=$gnulib_path - fi - ;; - esac - - if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \ - && ! git_modules_config submodule.gnulib.url >/dev/null; then - (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib - fi - - # $GNULIB_SRCDIR now points to the version of gnulib to use, and - # we no longer need to use git or $gnulib_path below here. - - if $bootstrap_sync; then - cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { - echo "$0: updating bootstrap and restarting..." - case $(sh -c 'echo "$1"' -- a) in - a) ignored=--;; - *) ignored=ignored;; - esac - exec sh -c \ - 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ - $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \ - "$0" "$@" --no-bootstrap-sync - } - fi - - gnulib_tool=$GNULIB_SRCDIR/gnulib-tool - <$gnulib_tool || exit $? -fi - -# Get translations. - -download_po_files() { - subdir=$1 - domain=$2 - echo "$me: getting translations into $subdir for $domain..." - cmd=$(printf "$po_download_command_format" "$subdir" "$domain") - eval "$cmd" -} - -# Mirror .po files to $po_dir/.reference and copy only the new -# or modified ones into $po_dir. Also update $po_dir/LINGUAS. -# Note po files that exist locally only are left in $po_dir but will -# not be included in LINGUAS and hence will not be distributed. -update_po_files() { - # Directory containing primary .po files. - # Overwrite them only when we're sure a .po file is new. - po_dir=$1 - domain=$2 - - # Mirror *.po files into this dir. - # Usually contains *.s1 checksum files. - ref_po_dir="$po_dir/.reference" - - test -d $ref_po_dir || mkdir $ref_po_dir || return - download_po_files $ref_po_dir $domain \ - && ls "$ref_po_dir"/*.po 2>/dev/null | - sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return - - langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') - test "$langs" = '*' && langs=x - for po in $langs; do - case $po in x) continue;; esac - new_po="$ref_po_dir/$po.po" - cksum_file="$ref_po_dir/$po.s1" - if ! test -f "$cksum_file" || - ! test -f "$po_dir/$po.po" || - ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then - echo "$me: updated $po_dir/$po.po..." - cp "$new_po" "$po_dir/$po.po" \ - && $SHA1SUM < "$new_po" > "$cksum_file" || return - fi - done -} - -case $SKIP_PO in -'') - if test -d po; then - update_po_files po $package || exit - fi - - if test -d runtime-po; then - update_po_files runtime-po $package-runtime || exit - fi;; -esac - -symlink_to_dir() -{ - src=$1/$2 - dst=${3-$2} - - test -f "$src" && { - - # If the destination directory doesn't exist, create it. - # This is required at least for "lib/uniwidth/cjk.h". - dst_dir=$(dirname "$dst") - if ! test -d "$dst_dir"; then - mkdir -p "$dst_dir" - - # If we've just created a directory like lib/uniwidth, - # tell version control system(s) it's ignorable. - # FIXME: for now, this does only one level - parent=$(dirname "$dst_dir") - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$parent/$dot_ig - insert_vc_ignore $ig "${dst_dir##*/}" - done - fi - - if $copy; then - { - test ! -h "$dst" || { - echo "$me: rm -f $dst" && - rm -f "$dst" - } - } && - test -f "$dst" && - cmp -s "$src" "$dst" || { - echo "$me: cp -fp $src $dst" && - cp -fp "$src" "$dst" - } - else - # Leave any existing symlink alone, if it already points to the source, - # so that broken build tools that care about symlink times - # aren't confused into doing unnecessary builds. Conversely, if the - # existing symlink's timestamp is older than the source, make it afresh, - # so that broken tools aren't confused into skipping needed builds. See - # . - test -h "$dst" && - src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && - dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && - test "$src_i" = "$dst_i" && - both_ls=$(ls -dt "$src" "$dst") && - test "X$both_ls" = "X$dst$nl$src" || { - dot_dots= - case $src in - /*) ;; - *) - case /$dst/ in - *//* | */../* | */./* | /*/*/*/*/*/) - die "invalid symlink calculation: $src -> $dst";; - /*/*/*/*/) dot_dots=../../../;; - /*/*/*/) dot_dots=../../;; - /*/*/) dot_dots=../;; - esac;; - esac - - echo "$me: ln -fs $dot_dots$src $dst" && - ln -fs "$dot_dots$src" "$dst" - } - fi - } -} - -version_controlled_file() { - parent=$1 - file=$2 - if test -d .git; then - git rm -n "$file" > /dev/null 2>&1 - elif test -d .svn; then - svn log -r HEAD "$file" > /dev/null 2>&1 - elif test -d CVS; then - grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | - grep '^/[^/]*/[0-9]' > /dev/null - else - warn_ "no version control for $file?" - false - fi -} - -# NOTE: we have to be careful to run both autopoint and libtoolize -# before gnulib-tool, since gnulib-tool is likely to provide newer -# versions of files "installed" by these two programs. -# Then, *after* gnulib-tool (see below), we have to be careful to -# run autoreconf in such a way that it does not run either of these -# two just-pre-run programs. - -# Import from gettext. -with_gettext=yes -grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ - with_gettext=no - -if test $with_gettext = yes || test $use_libtool = 1; then - - tempbase=.bootstrap$$ - trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15 - - > $tempbase.0 > $tempbase.1 && - find . ! -type d -print | sort > $tempbase.0 || exit - - if test $with_gettext = yes; then - # Released autopoint has the tendency to install macros that have been - # obsoleted in current gnulib, so run this before gnulib-tool. - echo "$0: $AUTOPOINT --force" - $AUTOPOINT --force || exit - fi - - # Autoreconf runs aclocal before libtoolize, which causes spurious - # warnings if the initial aclocal is confused by the libtoolized - # (or worse out-of-date) macro directory. - # libtoolize 1.9b added the --install option; but we support back - # to libtoolize 1.5.22, where the install action was default. - if test $use_libtool = 1; then - install= - case $($LIBTOOLIZE --help) in - *--install*) install=--install ;; - esac - echo "running: $LIBTOOLIZE $install --copy" - $LIBTOOLIZE $install --copy - fi - - find . ! -type d -print | sort >$tempbase.1 - old_IFS=$IFS - IFS=$nl - for file in $(comm -13 $tempbase.0 $tempbase.1); do - IFS=$old_IFS - parent=${file%/*} - version_controlled_file "$parent" "$file" || { - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$parent/$dot_ig - insert_vc_ignore "$ig" "${file##*/}" - done - } - done - IFS=$old_IFS - - rm -f $tempbase.0 $tempbase.1 - trap - 1 2 13 15 -fi - -# Import from gnulib. - -if $use_gnulib; then - gnulib_tool_options="\ - --no-changelog\ - --aux-dir=$build_aux\ - --doc-base=$doc_base\ - --lib=$gnulib_name\ - --m4-base=$m4_base/\ - --source-base=$source_base/\ - --tests-base=$tests_base\ - --local-dir=$local_gl_dir\ - $gnulib_tool_option_extras\ - " - if test $use_libtool = 1; then - case "$gnulib_tool_options " in - *' --libtool '*) ;; - *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; - esac - fi - echo "$0: $gnulib_tool $gnulib_tool_options --import ..." - $gnulib_tool $gnulib_tool_options --import $gnulib_modules \ - || die "gnulib-tool failed" - - for file in $gnulib_files; do - symlink_to_dir "$GNULIB_SRCDIR" $file \ - || die "failed to symlink $file" - done -fi - -bootstrap_post_import_hook \ - || die "bootstrap_post_import_hook failed" - -# Don't proceed if there are uninitialized submodules. In particular, -# the next step will remove dangling links, which might be links into -# uninitialized submodules. -# -# Uninitialized submodules are listed with an initial dash. -if $use_git && git submodule | grep '^-' >/dev/null; then - die "some git submodules are not initialized. " \ - "Run 'git submodule init' and bootstrap again." -fi - -# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some -# gnulib-populated directories. Such .m4 files would cause aclocal to fail. -# The following requires GNU find 4.2.3 or newer. Considering the usual -# portability constraints of this script, that may seem a very demanding -# requirement, but it should be ok. Ignore any failure, which is fine, -# since this is only a convenience to help developers avoid the relatively -# unusual case in which a symlinked-to .m4 file is git-removed from gnulib -# between successive runs of this script. -find "$m4_base" "$source_base" \ - -depth \( -name '*.m4' -o -name '*.[ch]' \) \ - -type l -xtype l -delete > /dev/null 2>&1 - -# Invoke autoreconf with --force --install to ensure upgrades of tools -# such as ylwrap. -AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS" - -# Some systems (RHEL 5) are using ancient autotools, for which the -# --no-recursive option had not been invented. Detect that lack and -# omit the option when it's not supported. FIXME in 2017: remove this -# hack when RHEL 5 autotools are updated, or when they become irrelevant. -case $($AUTORECONF --help) in - *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";; -esac - -# Tell autoreconf not to invoke autopoint or libtoolize; they were run above. -echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS" -AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \ - || die "autoreconf failed" - -# Get some extra files from gnulib, overriding existing files. -for file in $gnulib_extra_files; do - case $file in - */INSTALL) dst=INSTALL;; - build-aux/*) dst=$build_aux/${file#build-aux/};; - *) dst=$file;; - esac - symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ - || die "failed to symlink $file" -done - -if test $with_gettext = yes; then - # Create gettext configuration. - echo "$0: Creating po/Makevars from po/Makevars.template ..." - rm -f po/Makevars - sed ' - /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ - /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ - /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >po/Makevars \ - || die 'cannot generate po/Makevars' - - # If the 'gettext' module is in use, grab the latest Makefile.in.in. - # If only the 'gettext-h' module is in use, assume autopoint already - # put the correct version of this file into place. - case $gnulib_modules in - *gettext-h*) ;; - *gettext*) - cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ - || die "cannot create po/Makefile.in.in" - ;; - esac - - if test -d runtime-po; then - # Similarly for runtime-po/Makevars, but not quite the same. - rm -f runtime-po/Makevars - sed ' - /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ - /^subdir *=.*/s/=.*/= runtime-po/ - /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >runtime-po/Makevars \ - || die 'cannot generate runtime-po/Makevars' - - # Copy identical files from po to runtime-po. - (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) - fi -fi - -bootstrap_epilogue - -echo "$0: done. Now you can run './configure'." - -# Local variables: -# eval: (add-hook '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: diff --git a/bootstrap.conf b/bootstrap.conf deleted file mode 100644 index 7e1412093f..0000000000 --- a/bootstrap.conf +++ /dev/null @@ -1,100 +0,0 @@ -# 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 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 -# . - -# gnulib modules used by this package. - -# NB the GSocket conversion is non-trivial due to the -# different FD vs HANDLE usage in gnulib vs glib. Need -# to find a way to duplicate a socket HANDLE before -# turning it into a FD, since closing an FD also closes -# the original HANDLE. - -# -> Meson -gnulib_modules="$gnulib_modules largefile" -# -> custom configure check -gnulib_modules="$gnulib_modules localeconv" -# -> open code / conditional comp -gnulib_modules="$gnulib_modules pipe-posix" -# -> open code / conditional comp -gnulib_modules="$gnulib_modules pipe2" -# -> GMainLoop -gnulib_modules="$gnulib_modules poll" -# -> GThread -gnulib_modules="$gnulib_modules threadlib" -# -> remove sys/wait.h include from any win32 code paths -gnulib_modules="$gnulib_modules sys_wait" - -SKIP_PO=true - -copy=true - -bootstrap_sync=true - -vc_ignore= - - -# 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 -gnulib_tool_option_extras="\ - --lgpl=2\ - --makefile-name=gnulib.mk\ - --avoid=pt_chown\ - --no-vc-files\ -" -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 - -" - -# 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_epilogue() -{ - echo "$0: done. Now you can run 'mkdir build && cd build && ../configure'." - exit 0 -} diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index 3a36c3bece..5886b82003 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -44,10 +44,6 @@ VC = $(GIT) VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) -# You can override this variable in syntax-check.mk if your gnulib submodule lives -# in a different location. -gnulib_dir ?= $(srcdir)/gnulib - # You can override this variable in syntax-check.mk to set your own regexp # matching files to ignore. VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ @@ -132,8 +128,7 @@ local-check := \ syntax-check: $(local-check) -# We haven't converted all scripts to using gnulib's init.sh yet. -_test_script_regex = \<\(init\|test-lib\)\.sh\> +_test_script_regex = \ # Most developers don't run 'make distcheck'. We want the official # dist to be secure, but don't want to penalize other developers @@ -420,7 +415,6 @@ sc_prohibit_access_xok: halt='use virFileIsExecutable instead of access(,X_OK)' \ $(_sc_search_regexp) -# Similar to the gnulib syntax-check.mk rule for sc_prohibit_strcmp # Use STREQLEN or STRPREFIX rather than comparing strncmp == 0, or != 0. snp_ = strncmp *\(.+\) sc_prohibit_strncmp: @@ -473,8 +467,6 @@ sc_prohibit_risky_id_promotion: halt='cast -1 to ([ug]id_t) before comparing against id' \ $(_sc_search_regexp) -# Use g_snprintf rather than s'printf, even if buffer is provably large enough, -# since gnulib has more guarantees for snprintf portability sc_prohibit_sprintf: @prohibit='\<[s]printf\>' \ in_vc_files='\.[ch]$$' \ @@ -567,8 +559,7 @@ sc_size_of_brackets: $(_sc_search_regexp) # 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. +# indentation. Also match *.h.in files, to get libvirt.h.in. space_indent_files=(\.(aug(\.in)?|rng|s?[ch](\.in)?|html.in|py|pl|syms)|tools/.*\.in) sc_TAB_in_indentation: @prohibit='^ * ' \ @@ -1660,29 +1651,6 @@ sc_unmarked_diagnostics: halt='found unmarked diagnostic(s)' \ $(_sc_search_regexp) -# List headers for which HAVE_HEADER_H is always true, assuming you are -# using the appropriate gnulib module. CAUTION: for each "unnecessary" -# #if HAVE_HEADER_H that you remove, be sure that your project explicitly -# requires the gnulib module that guarantees the usability of that header. -gl_assured_headers_ = \ - cd $(gnulib_dir)/lib && echo *.in.h|$(SED) 's/\.in\.h//g' - -# Convert the list of names to upper case, and replace each space with "|". -az_ = abcdefghijklmnopqrstuvwxyz -AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ -gl_header_upper_case_or_ = \ - $$($(gl_assured_headers_) \ - | tr $(az_)/.- $(AZ_)___ \ - | tr -s ' ' '|' \ - ) -sc_prohibit_always_true_header_tests: - @or=$(gl_header_upper_case_or_); \ - re="HAVE_($$or)_H"; \ - prohibit='\<'"$$re"'\>' \ - halt=$$(printf '%s\n' \ - 'do not test the above HAVE_
_H symbol(s);' \ - ' with the corresponding gnulib module, they are always true') \ - $(_sc_search_regexp) sc_prohibit_defined_have_decl_tests: @prohibit='(#[ ]*ifn?def|\[ (]+HAVE_DECL_' \ @@ -1690,50 +1658,6 @@ sc_prohibit_defined_have_decl_tests: $(_sc_search_regexp) # ================================================================== -gl_other_headers_ ?= \ - openat.h \ - stat-macros.h - -# Perl -lne code to extract "significant" cpp-defined symbols from a -# gnulib header file, eliminating a few common false-positives. -# The exempted names below are defined only conditionally in gnulib, -# and hence sometimes must/may be defined in application code. -gl_extract_significant_defines_ = \ - /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ - && $$2 !~ /(?:rpl_|_used_without_)/\ - && $$1 !~ /^(?:NSIG|ENODATA)$$/\ - && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ - and print $$1 - -# Create a list of regular expressions matching the names -# of macros that are guaranteed to be defined by parts of gnulib. -define def_sym_regex - gen_h=$(gl_generated_headers_); \ - (cd $(gnulib_dir)/lib; \ - for f in *.in.h $(gl_other_headers_); do \ - test -f $$f \ - && perl -lne '$(gl_extract_significant_defines_)' $$f; \ - done; \ - ) | sort -u \ - | $(SED) 's/^/^ *# *(define|undef) */;s/$$/\\>/' -endef - -# Don't define macros that we already get from gnulib header files. -sc_prohibit_always-defined_macros: - @if test -d $(gnulib_dir); then \ - case $$(echo all: | $(GREP) -l -f - $(abs_top_builddir)/Makefile) in $(abs_top_builddir)/Makefile);; *) \ - echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ - esac; \ - regex=$$($(def_sym_regex)); export regex; \ - $(VC_LIST_EXCEPT) \ - | xargs sh -c 'echo $$regex | $(GREP) -E -f - "$$@"' \ - dummy /dev/null \ - && { printf '$(ME): define the above' \ - ' via some gnulib .h file\n' 1>&2; \ - exit 1; } \ - || :; \ - fi -# ================================================================== # Prohibit checked in backup files. sc_prohibit_backup_files: @@ -1972,11 +1896,10 @@ perl_translatable_files_list_ = \ po_file ?= $(srcdir)/po/POTFILES.in # List of additional files that we want to pick up in our POTFILES.in -# This is all gnulib files, as well as generated files for RPC code. +# This is all generated files for RPC code. generated_files = \ $(builddir)/src/*.[ch] \ - $(builddir)/src/*/*.[ch] \ - $(srcdir)/gnulib/lib/*.[ch] + $(builddir)/src/*/*.[ch] _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) @@ -2012,25 +1935,6 @@ writable-files: else :; \ fi -v_etc_file = $(gnulib_dir)/lib/version-etc.c -sample-test = tests/sample-test -texi = doc/$(PACKAGE).texi -# Make sure that the copyright date in $(v_etc_file) is up to date. -# Do the same for the $(sample-test) and the main doc/.texi file. -sc_copyright_check: - @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ - in_files=$(v_etc_file) \ - halt='out of date copyright in $(v_etc_file); update it' \ - $(_sc_search_regexp) - @require='# Copyright \(C\) '$$(date +%Y)' Free' \ - in_vc_files=$(sample-test) \ - halt='out of date copyright in $(sample-test); update it' \ - $(_sc_search_regexp) - @require='Copyright @copyright\{\} .*'$$(date +%Y) \ - in_vc_files=$(texi) \ - halt='out of date copyright in $(texi); update it' \ - $(_sc_search_regexp) - # BRE regex of file contents to identify a test script. _test_script_regex ?= \ @@ -2078,51 +1982,6 @@ sc_vulnerable_makefile_CVE-2012-3386: ' see https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-3386 for details') \ $(_sc_search_regexp) -# We don't use this feature of syntax-check.mk. -prev_version_file = /dev/null - -ifneq ($(_gl-Makefile),) -ifeq (0,$(MAKELEVEL)) - _dry_run_result := $(shell \ - cd '$(srcdir)'; \ - test -d .git || test -f .git || { echo 0; exit; }; \ - $(srcdir)/autogen.sh --dry-run >/dev/null 2>&1; \ - echo $$?; \ - ) - _clean_requested = $(filter %clean,$(MAKECMDGOALS)) - - # A return value of 0 means no action is required - - # A return value of 1 means a genuine error has occurred while - # performing the dry run, and it should be reported so it can - # be investigated - ifeq (1,$(_dry_run_result)) - $(info INFO: autogen.sh error, running again to show details) -syntax-check.mk Makefile: _autogen_error - endif - - # A return value of 2 means that autogen.sh needs to be executed - # in earnest before building, probably because of gnulib updates. - # We don't run autogen.sh if the clean target has been invoked, - # though, as it would be quite pointless - ifeq (2,$(_dry_run_result)$(_clean_requested)) - $(info INFO: running autogen.sh is required, running it now...) - $(shell touch $(srcdir)/AUTHORS) -syntax-check.mk Makefile: _autogen - endif -endif -endif - -# It is necessary to call autogen any time gnulib changes. Autogen -# reruns configure, then we regenerate all Makefiles at once. -.PHONY: _autogen -_autogen: - $(srcdir)/autogen.sh - ./config.status - -.PHONY: _autogen_error -_autogen_error: - $(srcdir)/autogen.sh --dry-run ifneq ($(_gl-Makefile),) syntax-check: spacing-check test-wrap-argv \ @@ -2271,7 +2130,7 @@ exclude_file_name_regexp--sc_require_config_h_first = \ ^(examples/|tools/virsh-edit\.c$$|tests/virmockstathelpers.c) exclude_file_name_regexp--sc_trailing_blank = \ - /sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo|^gnulib/local/.*/.*diff$$ + /sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo$$ exclude_file_name_regexp--sc_unmarked_diagnostics = \ ^(scripts/apibuild.py|tests/virt-aa-helper-test|docs/js/.*\.js)$$ @@ -2319,9 +2178,6 @@ exclude_file_name_regexp--sc_prohibit_sysconf_pagesize = \ exclude_file_name_regexp--sc_prohibit_pthread_create = \ ^(build-aux/syntax-check\.mk|src/util/virthread\.c|tests/.*)$$ -exclude_file_name_regexp--sc_prohibit_always-defined_macros = \ - ^tests/virtestmock.c$$ - exclude_file_name_regexp--sc_prohibit_readdir = \ ^(tests/(.*mock|virfilewrapper)\.c|tools/nss/libvirt_nss\.c)$$ @@ -2337,8 +2193,5 @@ exclude_file_name_regexp--sc_prohibit_strcmp = \ exclude_file_name_regexp--sc_prohibit_backslash_alignment = \ ^build-aux/syntax-check\.mk$$ -exclude_file_name_regexp--sc_prohibit_always_true_header_tests = \ - ^src/util/(virfile|virnetdev|virnetdevip)\.[c,h]|$$ - exclude_file_name_regexp--sc_prohibit_select = \ ^build-aux/syntax-check\.mk|src/util/vireventglibwatch\.c$$ diff --git a/ci/build.sh b/ci/build.sh index 0874c2d1d9..2da84c080a 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -25,9 +25,7 @@ if test $? != 0; then fi find -name test-suite.log -delete -# gl_public_submodule_commit= to disable gnulib's submodule check -# which breaks due to way we clone the submodules -make -j"$CI_SMP" gl_public_submodule_commit= $CI_MAKE_ARGS +make -j"$CI_SMP" $CI_MAKE_ARGS if test $? != 0; then \ LOGS=$(find -name test-suite.log) diff --git a/config-post.h b/config-post.h index de007393da..4a49cd4194 100644 --- a/config-post.h +++ b/config-post.h @@ -22,10 +22,7 @@ /* * 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. + * This is done here so that it's included as early as possible; */ #ifndef __GNUC_PREREQ # define __GNUC_PREREQ(maj, min) \ diff --git a/configure.ac b/configure.ac index 9fc2421173..ac4052afb6 100644 --- a/configure.ac +++ b/configure.ac @@ -42,11 +42,6 @@ dnl we don't really need the 'u' even in older toolchains. Then there is dnl older libtool, which spelled it AR_FLAGS m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"]) -# Maintainer note - comment this line out if you plan to rerun -# GNULIB_POSIXCHECK testing to see if libvirt should be using more modules. -# Leave it uncommented for normal releases, for faster ./configure. -gl_ASSERT_NO_GNULIB_POSIXCHECK - # Default to using the silent-rules feature when possible. Formatting # chosen to bypass 'grep' checks that cause older automake to warn. # Users (include rpm) can still change the default at configure time. @@ -152,9 +147,6 @@ then fi -gl_EARLY -gl_INIT - dnl get 64-int interfaces on 32-bit platforms AC_SYS_LARGEFILE @@ -746,7 +738,7 @@ AM_CONDITIONAL([WITH_TESTS], [test "$with_test_suite" = "yes"]) LIBVIRT_ARG_ENABLE([EXPENSIVE_TESTS], [set the default for enabling expensive tests ] - [(gnulib and long timeouts), use VIR_TEST_EXPENSIVE to ] + [(long timeouts), use VIR_TEST_EXPENSIVE to ] [override during make], [check]) case "$enable_expensive_tests" in @@ -925,7 +917,6 @@ AC_CONFIG_FILES([run], [chmod +x,-w run]) AC_CONFIG_FILES([\ Makefile src/Makefile include/libvirt/Makefile docs/Makefile \ - gnulib/lib/Makefile \ .color_coded \ .ycm_extra_conf.py \ libvirt.pc \ diff --git a/docs/compiling.html.in b/docs/compiling.html.in index 5869ebb90f..0e12a9218e 100644 --- a/docs/compiling.html.in +++ b/docs/compiling.html.in @@ -70,31 +70,6 @@ $ sudo make install will turn on -Werror for builds. This can be disabled with --disable-werror, but this is not recommended.

-

- Libvirt takes advantage of - the gnulib - project to provide portability to a number of platforms. This - is normally done dynamically via a git submodule in - the .gnulib subdirectory, which is auto-updated as - needed when you do incremental builds. Setting the environment - variable GNULIB_SRCDIR to a local directory - containing a git checkout of gnulib will let you reduce local - disk space requirements and network download time, regardless of - which actual commit you have in that reference directory. -

-

- However, if you are developing on a platform where git is not - available, or are behind a firewall that does not allow for git - to easily obtain the gnulib submodule, it is possible to instead - use a static mode of operation where you are then responsible - for updating the git submodule yourself. In this mode, you must - track the exact gnulib commit needed by libvirt (usually not the - latest gnulib.git) via alternative means, such as a shared NFS - drive or manual download, and run this any time libvirt.git - updates the commit stored in the .gnulib submodule:

-
-$ GNULIB_SRCDIR=/path/to/gnulib ./autogen.sh --no-git
-    

To build & install libvirt to your home directory the following commands can be run: diff --git a/docs/hacking.html.in b/docs/hacking.html.in index 74aba5d46b..94c74863b9 100644 --- a/docs/hacking.html.in +++ b/docs/hacking.html.in @@ -932,8 +932,7 @@ BAD: type is at least four bytes wide).

  • If a variable has boolean semantics, give it the bool type and use the corresponding true and false macros. - It's ok to include <stdbool.h>, since libvirt's use of gnulib ensures - that it exists and is usable.
  • +
  • In the unusual event that you require a specific width, use a standard type like int32_t, uint32_t, uint64_t, etc.
  • @@ -1549,7 +1548,7 @@ int foo() in the same way, but still make sure they get reviewed if non-trivial.
  • (ir)regular pulls from other repositories or automated updates, such - as the .gnulib submodule updates, pulling in new translations or updating + as the keycodemap submodule updates, pulling in new translations or updating the container images for the CI system
  • diff --git a/gnulib/lib/Makefile.am b/gnulib/lib/Makefile.am deleted file mode 100644 index 5669551afb..0000000000 --- a/gnulib/lib/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -## Makefile for gnulib/lib -*-Makefile-*- - -## 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 -## . - -# Initialize variables, so gnulib.mk can append to them -BUILT_SOURCES = -CLEANFILES = -EXTRA_DIST = -MOSTLYCLEANDIRS = -MOSTLYCLEANFILES = -SUFFIXES = -noinst_LTLIBRARIES = - -include gnulib.mk - -AM_CPPFLAGS = -I$(top_srcdir) diff --git a/libvirt.spec.in b/libvirt.spec.in index b349d1bc7e..efeeac31b9 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -414,8 +414,6 @@ BuildRequires: libtirpc-devel BuildRequires: firewalld-filesystem %endif -Provides: bundled(gnulib) - %description Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4 index fc0b9bfa55..d3538d59f8 100644 --- a/m4/virt-compile-warnings.m4 +++ b/m4/virt-compile-warnings.m4 @@ -37,10 +37,6 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[ dontwarn="$dontwarn -Wconversion" # Too many to deal with dontwarn="$dontwarn -Wsign-conversion" - # GNULIB gettext.h violates - dontwarn="$dontwarn -Wvla" - # Many GNULIB header violations - dontwarn="$dontwarn -Wundef" # Need to allow bad cast for execve() dontwarn="$dontwarn -Wcast-qual" # We need to use long long in many places @@ -51,8 +47,6 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[ dontwarn="$dontwarn -Wstrict-overflow" # Not a problem since we don't use -funsafe-loop-optimizations dontwarn="$dontwarn -Wunsafe-loop-optimizations" - # Gnulib's stat-time.h violates this - dontwarn="$dontwarn -Waggregate-return" # gcc 4.4.6 complains this is C++ only; gcc 4.7.0 implies this from -Wall dontwarn="$dontwarn -Wenum-compare" # gcc 5.1 -Wformat-signedness mishandles enums, not ready for prime time @@ -139,7 +133,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[ wantwarn="$wantwarn -Wno-unused-function" fi - # GNULIB uses '-W' (aka -Wextra) which includes a bunch of stuff. + # manywarnings uses '-W' (aka -Wextra) which includes a bunch of stuff. # Unfortunately, this means you can't simply use '-Wsign-compare' # with gl_MANYWARN_COMPLEMENT # So we have -W enabled, and then have to explicitly turn off... @@ -151,16 +145,16 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[ # so use this CLang-specific arg to keep it quiet wantwarn="$wantwarn -Wno-typedef-redefinition" - # GNULIB expects this to be part of -Wc++-compat, but we turn + # manywarnings expects this to be part of -Wc++-compat, but we turn # that one off, so we need to manually enable this again wantwarn="$wantwarn -Wjump-misses-init" - # GNULIB explicitly filters it out, preferring -Wswitch + # manywarnings explicitly filters it out, preferring -Wswitch # but that doesn't report missing enums if a default: # is present. wantwarn="$wantwarn -Wswitch-enum" - # GNULIB turns on -Wformat=2 which implies -Wformat-nonliteral, + # manywarnings turns on -Wformat=2 which implies -Wformat-nonliteral, # so we need to manually re-exclude it. wantwarn="$wantwarn -Wno-format-nonliteral" @@ -244,9 +238,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[ ;; esac - # Silence certain warnings in gnulib, and use improved glibc headers - AC_DEFINE([lint], [1], - [Define to 1 if the compiler is checking for lint.]) + # Use security checked glibc headers AH_VERBATIM([FORTIFY_SOURCE], [/* Enable compile-time and run-time bounds-checking, and some warnings, without upsetting newer glibc. */ diff --git a/src/Makefile.am b/src/Makefile.am index 2e1814ccff..952dfdbb5f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,9 +19,7 @@ # No libraries with the exception of LIBXML should be listed # here. List them against the individual XXX_la_CFLAGS targets # that actually use them. -AM_CPPFLAGS = -I../gnulib/lib \ - -I$(top_srcdir)/gnulib/lib \ - -I$(top_srcdir) \ +AM_CPPFLAGS = -I$(top_srcdir) \ -I../include \ -I$(top_srcdir)/include \ -I$(srcdir)/util \ @@ -439,7 +437,6 @@ if WITH_MACOS libvirt_la_LDFLAGS += -Wl,-flat_namespace endif WITH_MACOS libvirt_la_LDFLAGS += $(NULL) -libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la libvirt_la_LIBADD += \ $(DRIVER_MODULES_LIBS) libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS) @@ -662,7 +659,7 @@ libvirt_iohelper_LDFLAGS = \ libvirt_iohelper_LDADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la + $(NULL) if WITH_DTRACE_PROBES libvirt_iohelper_LDADD += libvirt_probes.lo endif WITH_DTRACE_PROBES diff --git a/src/admin/Makefile.inc.am b/src/admin/Makefile.inc.am index b4e2f1f2d3..0a9717adec 100644 --- a/src/admin/Makefile.inc.am +++ b/src/admin/Makefile.inc.am @@ -32,7 +32,6 @@ libvirt_driver_admin_la_CFLAGS = \ -I$(top_srcdir)/src/util \ -I$(top_builddir)/src/rpc \ $(NULL) -libvirt_driver_admin_la_LIBADD = ../gnulib/lib/libgnu.la libvirt_driver_admin_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS) if WITH_SASL diff --git a/src/bhyve/Makefile.inc.am b/src/bhyve/Makefile.inc.am index 2a01a0e5a5..6be2437f23 100644 --- a/src/bhyve/Makefile.inc.am +++ b/src/bhyve/Makefile.inc.am @@ -35,7 +35,6 @@ libvirt_driver_bhyve_la_LIBADD = \ libvirt_driver_bhyve_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_bhyve.la libvirt_driver_bhyve_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) diff --git a/src/interface/Makefile.inc.am b/src/interface/Makefile.inc.am index 3df1d106a7..39157c0770 100644 --- a/src/interface/Makefile.inc.am +++ b/src/interface/Makefile.inc.am @@ -43,7 +43,6 @@ libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS) libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS) libvirt_driver_interface_la_SOURCES += $(INTERFACE_DRIVER_UDEV_SOURCES) endif WITH_UDEV -libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la sbin_PROGRAMS += virtinterfaced diff --git a/src/libxl/Makefile.inc.am b/src/libxl/Makefile.inc.am index 5d40724c3b..4dc1b9d039 100644 --- a/src/libxl/Makefile.inc.am +++ b/src/libxl/Makefile.inc.am @@ -35,7 +35,6 @@ libvirt_driver_libxl_la_LIBADD = \ libvirt_driver_libxl_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_libxl.la libvirt_driver_libxl_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) diff --git a/src/locking/Makefile.inc.am b/src/locking/Makefile.inc.am index 9fd2b7f282..e663d7146b 100644 --- a/src/locking/Makefile.inc.am +++ b/src/locking/Makefile.inc.am @@ -113,7 +113,6 @@ lockd_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) lockd_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) augeas_DATA += locking/libvirt_lockd.aug if WITH_DTRACE_PROBES @@ -161,7 +160,6 @@ virtlockd_LDADD = \ libvirt.la \ libvirt_driver_admin.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) if WITH_DTRACE_PROBES virtlockd_LDADD += libvirt_probes.lo @@ -182,7 +180,6 @@ sanlock_la_LIBADD = \ -lsanlock_client \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) augeas_DATA += locking/libvirt_sanlock.aug diff --git a/src/logging/Makefile.inc.am b/src/logging/Makefile.inc.am index e8240fa5c4..c4fa49106e 100644 --- a/src/logging/Makefile.inc.am +++ b/src/logging/Makefile.inc.am @@ -98,7 +98,6 @@ virtlogd_LDADD = \ libvirt_driver_admin.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) if WITH_DTRACE_PROBES virtlogd_LDADD += libvirt_probes.lo diff --git a/src/lxc/Makefile.inc.am b/src/lxc/Makefile.inc.am index 26b20e2e03..f69c1acff5 100644 --- a/src/lxc/Makefile.inc.am +++ b/src/lxc/Makefile.inc.am @@ -84,7 +84,6 @@ libvirt_driver_lxc_la_LIBADD = \ libvirt_driver_lxc_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_lxc.la libvirt_driver_lxc_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) @@ -213,7 +212,6 @@ libvirt_lxc_LDADD = \ libvirt.la \ $(FUSE_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) if WITH_DTRACE_PROBES libvirt_lxc_LDADD += libvirt_probes.lo diff --git a/src/network/Makefile.inc.am b/src/network/Makefile.inc.am index 3eeab74260..bc05b01987 100644 --- a/src/network/Makefile.inc.am +++ b/src/network/Makefile.inc.am @@ -35,7 +35,6 @@ libvirt_driver_network_la_LIBADD = \ libvirt_driver_network_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(LIBNL_LIBS) \ $(DBUS_LIBS) \ $(NULL) @@ -137,7 +136,7 @@ libvirt_leaseshelper_LDFLAGS = \ libvirt_leaseshelper_LDADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la + $(NULL) if WITH_DTRACE_PROBES libvirt_leaseshelper_LDADD += libvirt_probes.lo endif WITH_DTRACE_PROBES diff --git a/src/node_device/Makefile.inc.am b/src/node_device/Makefile.inc.am index c29397464b..0b287189bc 100644 --- a/src/node_device/Makefile.inc.am +++ b/src/node_device/Makefile.inc.am @@ -67,8 +67,6 @@ libvirt_driver_nodedev_la_LIBADD += \ $(NULL) endif WITH_UDEV -libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la - sbin_PROGRAMS += virtnodedevd nodist_conf_DATA += node_device/virtnodedevd.conf diff --git a/src/nwfilter/Makefile.inc.am b/src/nwfilter/Makefile.inc.am index d571d5c713..9a68fd80b6 100644 --- a/src/nwfilter/Makefile.inc.am +++ b/src/nwfilter/Makefile.inc.am @@ -50,7 +50,6 @@ libvirt_driver_nwfilter_impl_la_LIBADD = \ $(LIBNL_LIBS) \ $(DBUS_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_driver_nwfilter_impl_la_SOURCES = $(NWFILTER_DRIVER_SOURCES) diff --git a/src/qemu/Makefile.inc.am b/src/qemu/Makefile.inc.am index d04a87e659..b9c0c6ea9c 100644 --- a/src/qemu/Makefile.inc.am +++ b/src/qemu/Makefile.inc.am @@ -85,7 +85,6 @@ libvirt_driver_qemu_la_LIBADD = \ libvirt_driver_qemu_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_qemu.la libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) diff --git a/src/remote/Makefile.inc.am b/src/remote/Makefile.inc.am index b706e5f92f..958bd18f86 100644 --- a/src/remote/Makefile.inc.am +++ b/src/remote/Makefile.inc.am @@ -79,7 +79,6 @@ endif WITH_DTRACE_PROBES REMOTE_DAEMON_LD_ADD += \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) LOGROTATE_FILES_IN += \ diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index 494b548948..a217404fa6 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -1384,12 +1384,6 @@ int virNetSocketGetFD(virNetSocketPtr sock) return fd; } -/* Temp hack - we're still pulling in gnulib - * fcntl-h indirectly, but not fcntl */ -#ifdef WIN32 -# undef F_DUPFD_CLOEXEC -#endif - int virNetSocketDupFD(virNetSocketPtr sock, bool cloexec) { int fd; diff --git a/src/secret/Makefile.inc.am b/src/secret/Makefile.inc.am index 4f0956a7a4..63c8bc6dba 100644 --- a/src/secret/Makefile.inc.am +++ b/src/secret/Makefile.inc.am @@ -26,7 +26,6 @@ libvirt_driver_secret_la_CFLAGS = \ libvirt_driver_secret_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_driver_secret_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES) diff --git a/src/security/Makefile.inc.am b/src/security/Makefile.inc.am index 3d669275d4..823d80c5dd 100644 --- a/src/security/Makefile.inc.am +++ b/src/security/Makefile.inc.am @@ -94,7 +94,6 @@ virt_aa_helper_LDADD = \ libvirt.la \ libvirt_driver_storage_impl.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) if WITH_DTRACE_PROBES virt_aa_helper_LDADD += libvirt_probes.lo diff --git a/src/storage/Makefile.inc.am b/src/storage/Makefile.inc.am index 3808079fde..3655b8a53c 100644 --- a/src/storage/Makefile.inc.am +++ b/src/storage/Makefile.inc.am @@ -140,7 +140,6 @@ libvirt_driver_storage_la_LIBADD = \ libvirt_driver_storage_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_storage.la libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) @@ -233,7 +232,6 @@ libvirt_storage_backend_fs_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_fs_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_storage_file_fs_la_SOURCES = $(STORAGE_FILE_FS_SOURCES) @@ -247,7 +245,6 @@ libvirt_storage_file_fs_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_file_fs_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE @@ -263,7 +260,6 @@ libvirt_storage_backend_logical_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_logical_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_LVM @@ -280,7 +276,6 @@ libvirt_storage_backend_iscsi_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_iscsi_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_ISCSI @@ -299,7 +294,6 @@ libvirt_storage_backend_iscsi_direct_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_iscsi_direct_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(LIBISCSI_LIBS) \ $(NULL) endif WITH_STORAGE_ISCSI_DIRECT @@ -316,7 +310,6 @@ libvirt_storage_backend_scsi_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_scsi_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_SCSI @@ -326,7 +319,6 @@ libvirt_storage_backend_mpath_la_LIBADD = \ libvirt.la \ $(DEVMAPPER_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_storage_backend_mpath_la_CFLAGS = \ -I$(srcdir)/conf \ @@ -350,7 +342,6 @@ libvirt_storage_backend_disk_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_disk_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_DISK @@ -360,7 +351,6 @@ libvirt_storage_backend_rbd_la_LIBADD = \ libvirt.la \ $(LIBRBD_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_storage_backend_rbd_la_CFLAGS = \ -I$(srcdir)/conf \ @@ -393,7 +383,6 @@ libvirt_storage_backend_sheepdog_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_sheepdog_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_SHEEPDOG @@ -404,7 +393,6 @@ libvirt_storage_backend_gluster_la_LIBADD = \ libvirt.la \ $(GLUSTERFS_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_storage_backend_gluster_la_CFLAGS = \ -I$(srcdir)/conf \ @@ -422,7 +410,6 @@ libvirt_storage_file_gluster_la_LIBADD = \ libvirt.la \ $(GLUSTERFS_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_storage_file_gluster_la_CFLAGS = \ -I$(srcdir)/conf \ @@ -447,7 +434,6 @@ libvirt_storage_backend_zfs_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_zfs_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_ZFS @@ -464,7 +450,6 @@ libvirt_storage_backend_vstorage_la_LDFLAGS = $(AM_LDFLAGS_MOD) libvirt_storage_backend_vstorage_la_LIBADD = \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) endif WITH_STORAGE_VSTORAGE @@ -480,7 +465,6 @@ libvirt_parthelper_LDADD = \ $(LIBPARTED_LIBS) \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) if WITH_DTRACE_PROBES libvirt_parthelper_LDADD += libvirt_probes.lo diff --git a/src/util/viralloc.h b/src/util/viralloc.h index e6ad9984b7..1d42aeead1 100644 --- a/src/util/viralloc.h +++ b/src/util/viralloc.h @@ -382,8 +382,7 @@ void virDisposeString(char **strptr) * @S: size of trailing array elements * * Check to make sure that the requested allocation will not cause - * arithmetic overflow in the allocation size. The check is - * essentially the same as that in gnulib's xalloc_oversized. + * arithmetic overflow in the allocation size. */ #define VIR_ALLOC_VAR_OVERSIZED(M, N, S) ((((size_t)-1) - (M)) / (S) < (N)) diff --git a/src/util/virbitmap.c b/src/util/virbitmap.c index 15addee2e9..0679915f70 100644 --- a/src/util/virbitmap.c +++ b/src/util/virbitmap.c @@ -754,7 +754,7 @@ virBitmapNewData(const void *data, if (!bitmap) return NULL; - /* le64toh is not provided by gnulib, so we do the conversion by hand */ + /* le64toh is not available, so we do the conversion by hand */ p = bitmap->map; for (i = j = 0; i < len; i++, j++) { if (j == sizeof(*p)) { @@ -825,7 +825,7 @@ virBitmapToDataBuf(virBitmapPtr bitmap, /* If bitmap and buffer differ in size, only fill to the smaller length */ len = MIN(len, nbytes); - /* htole64 is not provided by gnulib, so we do the conversion by hand */ + /* htole64 is not available, so we do the conversion by hand */ l = bitmap->map; for (i = j = 0; i < len; i++, j++) { if (j == sizeof(*l)) { diff --git a/src/util/virfile.c b/src/util/virfile.c index 4c9e8fa979..589f7ce850 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -1327,9 +1327,7 @@ virBuildPathInternal(char **path, ...) return ret; } -/* Like gnulib's fread_file, but read no more than the specified maximum - number of bytes. If the length of the input is <= max_len, and - upon error while reading that data, it works just like fread_file. */ +/* Read no more than the specified maximum number of bytes. */ static char * saferead_lim(int fd, size_t max_len, size_t *length) { @@ -3214,8 +3212,7 @@ virFileOpenTty(int *ttymaster G_GNUC_UNUSED, char **ttyName G_GNUC_UNUSED, int rawmode G_GNUC_UNUSED) { - /* mingw completely lacks pseudo-terminals, and the gnulib - * replacements are not (yet) license compatible. */ + /* mingw completely lacks pseudo-terminals */ errno = ENOSYS; return -1; } diff --git a/src/util/virsocket.h b/src/util/virsocket.h index 6d323e0a12..419da8b3ae 100644 --- a/src/util/virsocket.h +++ b/src/util/virsocket.h @@ -46,21 +46,6 @@ int vir_setsockopt(int fd, int level, int optname, int vir_socket(int domain, int type, int protocol); -/* Get rid of GNULIB's replacements */ -# undef accept -# undef bind -# undef closesocket -# undef connect -# undef dup -# undef dup2 -# undef getpeername -# undef getsockname -# undef getsockopt -# undef ioctlsocket -# undef listen -# undef setsockopt -# undef socket - /* Provide our own replacements */ # define accept vir_accept # define bind vir_bind diff --git a/src/vbox/Makefile.inc.am b/src/vbox/Makefile.inc.am index 57f7987dc8..72a15c6468 100644 --- a/src/vbox/Makefile.inc.am +++ b/src/vbox/Makefile.inc.am @@ -47,7 +47,6 @@ libvirt_driver_vbox_la_LIBADD = \ libvirt_driver_vbox_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_vbox.la libvirt_driver_vbox_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) diff --git a/src/vz/Makefile.inc.am b/src/vz/Makefile.inc.am index e21eab6c92..cabe18a9a1 100644 --- a/src/vz/Makefile.inc.am +++ b/src/vz/Makefile.inc.am @@ -22,7 +22,6 @@ libvirt_driver_vz_la_LIBADD = \ libvirt_driver_vz_impl.la \ libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) mod_LTLIBRARIES += libvirt_driver_vz.la libvirt_driver_vz_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF) diff --git a/tests/Makefile.am b/tests/Makefile.am index 12f6bf6814..ed5255b62d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -18,7 +18,6 @@ AM_CPPFLAGS = \ -I$(top_builddir) -I$(top_srcdir) \ - -I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \ -I$(top_builddir)/include -I$(top_srcdir)/include \ -I$(top_builddir)/src -I$(top_srcdir)/src \ -I$(top_srcdir)/src/util \ @@ -65,19 +64,14 @@ if WITH_DTRACE_PROBES PROBES_O += ../src/libvirt_probes.lo endif WITH_DTRACE_PROBES -GNULIB_LIBS = \ - ../gnulib/lib/libgnu.la - LDADDS = \ $(NO_INDIRECT_LDFLAGS) \ $(PROBES_O) \ - $(GNULIB_LIBS) \ ../src/libvirt.la \ $(GLIB_LIBS) \ $(NULL) MOCKLIBS_LIBS = \ - $(GNULIB_LIBS) \ ../src/libvirt.la EXTRA_DIST = \ @@ -945,8 +939,7 @@ storagepoolxml2xmltest_SOURCES = \ storagepoolxml2xmltest.c \ testutils.c testutils.h storagepoolxml2xmltest_LDADD = $(LDADDS) \ - ../src/libvirt_driver_storage_impl.la \ - $(GNULIB_LIBS) + ../src/libvirt_driver_storage_impl.la storagepoolcapstest_SOURCES = \ storagepoolcapstest.c testutils.h testutils.c @@ -1020,15 +1013,14 @@ commandtest_SOURCES = \ commandtest.c testutils.h testutils.c commandtest_LDADD = $(LDADDS) -# Must not link to any libvirt modules - libc / gnulib only +# Must not link to any libvirt modules - libc only # otherwise external libraries might unexpectedly leak # file descriptors into commandhelper invalidating the # test logic assumptions commandhelper_SOURCES = \ commandhelper.c commandhelper_LDADD = \ - $(NO_INDIRECT_LDFLAGS) \ - $(GNULIB_LIBS) + $(NO_INDIRECT_LDFLAGS) commandhelper_LDFLAGS = -static @@ -1069,16 +1061,16 @@ domaincapstest_LDADD = $(LDADDS) if WITH_QEMU domaincapstest_SOURCES += testutilsqemu.c testutilsqemu.h -domaincapstest_LDADD += libqemutestdriver.la $(GNULIB_LIBS) +domaincapstest_LDADD += libqemutestdriver.la endif WITH_QEMU if WITH_LIBXL domaincapstest_SOURCES += testutilsxen.c testutilsxen.h -domaincapstest_LDADD += libxltestdriver.la $(GNULIB_LIBS) +domaincapstest_LDADD += libxltestdriver.la endif WITH_LIBXL if WITH_BHYVE -domaincapstest_LDADD += ../src/libvirt_driver_bhyve_impl.la $(GNULIB_LIBS) +domaincapstest_LDADD += ../src/libvirt_driver_bhyve_impl.la endif WITH_BHYVE virnetmessagetest_SOURCES = \ @@ -1145,7 +1137,6 @@ virstoragetest_SOURCES = \ virstoragetest_LDADD = $(LDADDS) \ ../src/libvirt.la \ ../src/libvirt_driver_storage_impl.la \ - ../gnulib/lib/libgnu.la \ $(NULL) viridentitytest_SOURCES = \ diff --git a/tests/virstringtest.c b/tests/virstringtest.c index c87e1b9bec..bee49e6cb6 100644 --- a/tests/virstringtest.c +++ b/tests/virstringtest.c @@ -417,8 +417,7 @@ struct stringToLongData { /* This test makes assumptions about our compilation platform that are * not guaranteed by POSIX. Good luck to you if you are crazy enough - * to try and port libvirt to a platform with 16-bit int. Gnulib - * already assumes that signed integers are two's complement. */ + * to try and port libvirt to a platform with 16-bit int. */ G_STATIC_ASSERT(sizeof(int) == 4); G_STATIC_ASSERT(sizeof(long) == sizeof(int) || sizeof(long) == sizeof(long long)); G_STATIC_ASSERT(sizeof(long long) == 8); diff --git a/tools/Makefile.am b/tools/Makefile.am index d9d1a2f43f..53df930e0a 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -17,14 +17,13 @@ AM_CPPFLAGS = \ -I$(top_builddir)/include -I$(top_srcdir)/include \ - -I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \ -I$(top_builddir)/src -I$(top_srcdir)/src \ -I$(top_srcdir)/src/util \ -I$(top_srcdir) \ $(NULL) -# We do not want to accidentally include stuff from gnulib -# or the main src/ dir or public API dir. Specific files can +# We do not want to accidentally include stuff from src/ +# dir or public API dir. Specific files can # still be included via their path relative to the root if # needed STANDALONE_CPPFLAGS = -I$(top_srcdir) @@ -120,7 +119,6 @@ libvirt_shell_la_LIBADD = \ $(LIBXML_LIBS) \ $(READLINE_LIBS) \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) libvirt_shell_la_SOURCES = \ vsh.c vsh.h \ @@ -166,7 +164,6 @@ virt_host_validate_LDFLAGS = \ virt_host_validate_LDADD = \ ../src/libvirt.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la \ $(NULL) virt_host_validate_CFLAGS = \ @@ -193,7 +190,7 @@ virt_login_shell_helper_LDADD = \ ../src/libvirt.la \ ../src/libvirt-lxc.la \ $(GLIB_LIBS) \ - ../gnulib/lib/libgnu.la + $(NULL) virt_login_shell_helper_CFLAGS = \ $(AM_CFLAGS) \