[libvirt PATCH v2 56/56] gnulib: delete all gnulib integration

Daniel P. Berrangé berrange at redhat.com
Tue Jan 28 13:11:37 UTC 2020


This deletes all trace of gnulib from libvirt. We still
have the keycodemapdb submodule to deal with. The simple
solution taken was to update it when running autogen.sh.

Previously gnulib could auto-trigger refresh when running
'make' too. We could figure out a solution for this, but
with the pending meson rewrite it isn't worth worrying
about, given how infrequently keycodemapdb changes.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 .color_coded.in                 |    2 -
 .gitignore                      |    9 +-
 .gitmodules                     |    3 -
 .gnulib                         |    1 -
 .ycm_extra_conf.py.in           |    2 -
 Makefile.am                     |    2 +-
 README-hacking                  |    9 +-
 autogen.sh                      |  219 +------
 bootstrap                       | 1073 -------------------------------
 bootstrap.conf                  |  100 ---
 build-aux/syntax-check.mk       |  129 +---
 ci/build.sh                     |    4 +-
 config-post.h                   |    5 +-
 configure.ac                    |   11 +-
 docs/compiling.html.in          |   25 -
 docs/hacking.html.in            |    5 +-
 gnulib/lib/Makefile.am          |   30 -
 libvirt.spec.in                 |    2 -
 m4/virt-compile-warnings.m4     |   18 +-
 src/Makefile.am                 |    7 +-
 src/admin/Makefile.inc.am       |    1 -
 src/bhyve/Makefile.inc.am       |    1 -
 src/interface/Makefile.inc.am   |    1 -
 src/libxl/Makefile.inc.am       |    1 -
 src/locking/Makefile.inc.am     |    3 -
 src/logging/Makefile.inc.am     |    1 -
 src/lxc/Makefile.inc.am         |    2 -
 src/network/Makefile.inc.am     |    3 +-
 src/node_device/Makefile.inc.am |    2 -
 src/nwfilter/Makefile.inc.am    |    1 -
 src/qemu/Makefile.inc.am        |    1 -
 src/remote/Makefile.inc.am      |    1 -
 src/rpc/virnetsocket.c          |    6 -
 src/secret/Makefile.inc.am      |    1 -
 src/security/Makefile.inc.am    |    1 -
 src/storage/Makefile.inc.am     |   16 -
 src/util/viralloc.h             |    3 +-
 src/util/virbitmap.c            |    4 +-
 src/util/virfile.c              |    7 +-
 src/util/virsocket.h            |   15 -
 src/vbox/Makefile.inc.am        |    1 -
 src/vz/Makefile.inc.am          |    1 -
 tests/Makefile.am               |   21 +-
 tests/virstringtest.c           |    3 +-
 tools/Makefile.am               |    9 +-
 45 files changed, 62 insertions(+), 1700 deletions(-)
 delete mode 160000 .gnulib
 delete mode 100755 bootstrap
 delete mode 100644 bootstrap.conf
 delete mode 100644 gnulib/lib/Makefile.am

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 at abs_top_builddir@
 -I at abs_top_srcdir@
--I at abs_top_builddir@/gnulib/lib
--I at abs_top_srcdir@/gnulib/lib
 -I at abs_top_builddir@/include
 -I at abs_top_srcdir@/include
 -I at 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 at abs_top_builddir@',
   '-I at abs_top_srcdir@',
-  '-I at abs_top_builddir@/gnulib/lib',
-  '-I at abs_top_srcdir@/gnulib/lib',
   '-I at abs_top_builddir@/include',
   '-I at abs_top_srcdir@/include',
   '-I at 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
-    exit 1
-}
-
-starting_point=$(pwd)
-
-srcdir=$(dirname "$0")
-test "$srcdir" || srcdir=.
+olddir=$(pwd)
 
-cd "$srcdir" || {
-    die "Failed to cd into $srcdir"
-}
+cd "$srcdir"
 
-test -f src/libvirt.c || {
-    die "$0 must live in the top-level libvirt directory"
+(test -f src/libvirt.c) || {
+    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+    echo " top-level libvirt directory"
+    exit 1
 }
 
-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 }'
-}
+git submodule update --init || exit 1
 
-# Only look into git submodules if we're in a git checkout
-if test -d .git || test -f .git; then
+aclocal --install || exit 1
+autoreconf --verbose --force --install || exit 1
 
-    # 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
+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
 
-    # 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"
-    }
+cd "$olddir"
 
-    # 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 [ "$NOCONFIGURE" = "" ]; then
+        $srcdir/configure $EXTRA_ARGS "$@" || exit 1
 
-    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
+        if [ "$1" = "--help" ]; then
+                exit 0
         else
-            echo "Running bootstrap..."
-            ./bootstrap$no_git || {
-                die "bootstrap failed"
-            }
-            gnulib_hash >"$state_file"
+                echo "Now type 'make' to compile libvirt" || exit 1
         fi
-    fi
-fi
-
-# When performing a dry run, we can stop here
-test "$dry_run" && exit "$dry_run"
-
-# If asked not to run configure, we can stop here
-test "$NOCONFIGURE" && exit 0
-
-cd "$starting_point" || {
-    die "Failed to cd into $starting_point"
-}
-
-if test "$OBJ_DIR"; then
-    mkdir -p "$OBJ_DIR" || {
-        die "Failed to create $OBJ_DIR"
-    }
-    cd "$OBJ_DIR" || {
-        die "Failed to cd into $OBJ_DIR"
-    }
-fi
-
-# Make sure we can find GNU make and tell the user
-# the right command to run
-MAKE=
-for cmd in make gmake; do
-    if $cmd -v 2>&1 | grep -q "GNU Make"; then
-        MAKE=$cmd
-        break
-    fi
-done
-test "$MAKE" || {
-    die "GNU make is required to build libvirt"
-}
-
-if test -z "$*" && test -z "$extra_args" && test -f config.status; then
-    echo "Running config.status..."
-    ./config.status --recheck || {
-        die "config.status failed"
-    }
 else
-    if test -z "$*" && test -z "$extra_args"; then
-        echo "I am going to run configure with no arguments - if you wish"
-        echo "to pass any to it, please specify them on the $0 command line."
-    else
-        echo "Running configure with $extra_args $@"
-    fi
-    "$srcdir/configure" $extra_args "$@" || {
-        die "configure failed"
-    }
+        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 <https://www.gnu.org/licenses/>.
-
-# Originally written by Paul Eggert.  The canonical version of this
-# script is maintained as build-aux/bootstrap in gnulib, however, to
-# be useful to your project, you should place a copy of it under
-# version control in the top-level directory of your project.  The
-# intent is that all customization can be done with a bootstrap.conf
-# file also maintained in your version control; gnulib comes with a
-# template build-aux/bootstrap.conf to get you started.
-
-# Please report bugs or propose patches to bug-gnulib at 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 <<EOF
-Usage: $me [OPTION]...
-Bootstrap this package from the checked-out sources.
-
-Options:
- --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
-                          sources reside.  Use this if you already
-                          have gnulib sources on your machine, and
-                          do not want to waste your bandwidth downloading
-                          them again.  Defaults to \$GNULIB_SRCDIR
- --bootstrap-sync         if this bootstrap script is not identical to
-                          the version in the local gnulib sources,
-                          update this script, and then restart it with
-                          /bin/sh or the shell \$CONFIG_SHELL
- --no-bootstrap-sync      do not check whether bootstrap is out of sync
- --copy                   copy files instead of creating symbolic links
- --force                  attempt to bootstrap even if the sources seem
-                          not to have been checked out
- --no-git                 do not use git to update gnulib.  Requires that
-                          --gnulib-srcdir point to a correct gnulib snapshot
- --skip-po                do not download po files
-
-If the file $me.conf exists in the same directory as this script, its
-contents are read as shell variables to configure the bootstrap.
-
-For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
-are honored.
-
-Gnulib sources can be fetched in various ways:
-
- * If this package is in a git repository with a 'gnulib' submodule
-   configured, then that submodule is initialized and updated and sources
-   are fetched from there.  If \$GNULIB_SRCDIR is set (directly or via
-   --gnulib-srcdir) and is a git repository, then it is used as a reference.
-
- * Otherwise, if \$GNULIB_SRCDIR is set (directly or via --gnulib-srcdir),
-   then sources are fetched from that local directory.  If it is a git
-   repository and \$GNULIB_REVISION is set, then that revision is checked
-   out.
-
- * Otherwise, if this package is in a git repository with a 'gnulib'
-   submodule configured, then that submodule is initialized and updated and
-   sources are fetched from there.
-
- * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources are
-   cloned into that directory using git from \$GNULIB_URL, defaulting to
-   $default_gnulib_url.
-   If \$GNULIB_REVISION is set, then that revision is checked out.
-
- * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
-   used.  If it is a git repository and \$GNULIB_REVISION is set, then that
-   revision is checked out.
-
-If you maintain a package and want to pin a particular revision of the
-Gnulib sources that has been tested with your package, then there are two
-possible approaches: either configure a 'gnulib' submodule with the
-appropriate revision, or set \$GNULIB_REVISION (and if necessary
-\$GNULIB_URL) in $me.conf.
-
-Running without arguments will suffice in most cases.
-EOF
-}
-
-# warnf_ FORMAT-STRING ARG1...
-warnf_ ()
-{
-  warnf_format_=$1
-  shift
-  nl='
-'
-  case $* in
-    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
-       printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
-    *) printf "$me: $warnf_format_" "$@" ;;
-  esac >&2
-}
-
-# warn_ WORD1...
-warn_ ()
-{
-  # If IFS does not start with ' ', set it and emit the warning in a subshell.
-  case $IFS in
-    ' '*) warnf_ '%s\n' "$*";;
-    *)    (IFS=' '; warn_ "$@");;
-  esac
-}
-
-# die WORD1...
-die() { warn_ "$@"; exit 1; }
-
-# Configuration.
-
-# Name of the Makefile.am
-gnulib_mk=gnulib.mk
-
-# List of gnulib modules needed.
-gnulib_modules=
-
-# Any gnulib files needed that are not in modules.
-gnulib_files=
-
-: ${AUTOPOINT=autopoint}
-: ${AUTORECONF=autoreconf}
-
-# A function to be called right after gnulib-tool is run.
-# Override it via your own definition in bootstrap.conf.
-bootstrap_post_import_hook() { :; }
-
-# A function to be called after everything else in this script.
-# Override it via your own definition in bootstrap.conf.
-bootstrap_epilogue() { :; }
-
-# The command to download all .po files for a specified domain into a
-# specified directory.  Fill in the first %s 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 at 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) >/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)
-    fi
-  else
-    ($1 --version </dev/null) >/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
-      # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
-      test -h "$dst" &&
-      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
-      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
-      test "$src_i" = "$dst_i" &&
-      both_ls=$(ls -dt "$src" "$dst") &&
-      test "X$both_ls" = "X$dst$nl$src" || {
-        dot_dots=
-        case $src in
-        /*) ;;
-        *)
-          case /$dst/ in
-          *//* | */../* | */./* | /*/*/*/*/*/)
-             die "invalid symlink calculation: $src -> $dst";;
-          /*/*/*/*/)    dot_dots=../../../;;
-          /*/*/*/)      dot_dots=../../;;
-          /*/*/)        dot_dots=../;;
-          esac;;
-        esac
-
-        echo "$me: ln -fs $dot_dots$src $dst" &&
-        ln -fs "$dot_dots$src" "$dst"
-      }
-    fi
-  }
-}
-
-version_controlled_file() {
-  parent=$1
-  file=$2
-  if test -d .git; then
-    git rm -n "$file" > /dev/null 2>&1
-  elif test -d .svn; then
-    svn log -r HEAD "$file" > /dev/null 2>&1
-  elif test -d CVS; then
-    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
-             grep '^/[^/]*/[0-9]' > /dev/null
-  else
-    warn_ "no version control for $file?"
-    false
-  fi
-}
-
-# NOTE: we have to be careful to run both autopoint and libtoolize
-# before gnulib-tool, since gnulib-tool is likely to provide newer
-# versions of files "installed" by these two programs.
-# Then, *after* gnulib-tool (see below), we have to be careful to
-# run autoreconf in such a way that it does not run either of these
-# two just-pre-run programs.
-
-# Import from gettext.
-with_gettext=yes
-grep '^[	 ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
-    with_gettext=no
-
-if test $with_gettext = yes || test $use_libtool = 1; then
-
-  tempbase=.bootstrap$$
-  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
-
-  > $tempbase.0 > $tempbase.1 &&
-  find . ! -type d -print | sort > $tempbase.0 || exit
-
-  if test $with_gettext = yes; then
-    # Released autopoint has the tendency to install macros that have been
-    # obsoleted in current gnulib, so run this before gnulib-tool.
-    echo "$0: $AUTOPOINT --force"
-    $AUTOPOINT --force || exit
-  fi
-
-  # Autoreconf runs aclocal before libtoolize, which causes spurious
-  # warnings if the initial aclocal is confused by the libtoolized
-  # (or worse out-of-date) macro directory.
-  # libtoolize 1.9b added the --install option; but we support back
-  # to libtoolize 1.5.22, where the install action was default.
-  if test $use_libtool = 1; then
-    install=
-    case $($LIBTOOLIZE --help) in
-      *--install*) install=--install ;;
-    esac
-    echo "running: $LIBTOOLIZE $install --copy"
-    $LIBTOOLIZE $install --copy
-  fi
-
-  find . ! -type d -print | sort >$tempbase.1
-  old_IFS=$IFS
-  IFS=$nl
-  for file in $(comm -13 $tempbase.0 $tempbase.1); do
-    IFS=$old_IFS
-    parent=${file%/*}
-    version_controlled_file "$parent" "$file" || {
-      for dot_ig in x $vc_ignore; do
-        test $dot_ig = x && continue
-        ig=$parent/$dot_ig
-        insert_vc_ignore "$ig" "${file##*/}"
-      done
-    }
-  done
-  IFS=$old_IFS
-
-  rm -f $tempbase.0 $tempbase.1
-  trap - 1 2 13 15
-fi
-
-# Import from gnulib.
-
-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
-# <http://www.gnu.org/licenses/>.
-
-# 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 4394866963..6406b1c4d3 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 = \<test-lib\.sh\>
 
 # 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:
@@ -567,8 +561,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 +1653,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_<header>_H symbol(s);'		\
-	'  with the corresponding gnulib module, they are always true')	\
-	  $(_sc_search_regexp)
 
 sc_prohibit_defined_have_decl_tests:
 	@prohibit='(#[	 ]*ifn?def|\<defined)\>[	 (]+HAVE_DECL_'	\
@@ -1690,50 +1660,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:
@@ -2078,51 +2004,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 \
@@ -2319,9 +2200,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 +2215,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 8692c40e86..e3658b4a13 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
 
@@ -747,7 +739,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
@@ -926,7 +918,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 @@ $ <b>sudo</b> <i>make install</i></pre>
       will turn on -Werror for builds. This can be disabled with
       --disable-werror, but this is not recommended.
     </p>
-    <p>
-      Libvirt takes advantage of
-      the <a href="http://www.gnu.org/software/gnulib/">gnulib</a>
-      project to provide portability to a number of platforms.  This
-      is normally done dynamically via a git submodule in
-      the <code>.gnulib</code> subdirectory, which is auto-updated as
-      needed when you do incremental builds.  Setting the environment
-      variable <code>GNULIB_SRCDIR</code> 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.
-    </p>
-    <p>
-      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:</p>
-    <pre>
-$ GNULIB_SRCDIR=/path/to/gnulib ./autogen.sh --no-git
-    </pre>
 
     <p>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).</li>
       <li>If a variable has boolean semantics, give it the <code>bool</code> type
         and use the corresponding <code>true</code> and <code>false</code> macros.
-         It's ok to include <stdbool.h>, since libvirt's use of gnulib ensures
-          that it exists and is usable.</li>
+      </li>
       <li>In the unusual event that you require a specific width, use a
         standard type like <code>int32_t</code>, <code>uint32_t</code>,
         <code>uint64_t</code>, etc.</li>
@@ -1549,7 +1548,7 @@ int foo()
         in the same way, but still make sure they get reviewed if non-trivial.
       </li>
       <li>(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
       </li>
     </ul>
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
-## <http://www.gnu.org/licenses/>.
-
-# 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 bbf9748582..de1ad4293d 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 87322521c8..d3bf44f8b8 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 \
@@ -445,7 +443,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)
@@ -668,7 +665,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 6fe9d50f29..bd8df677f7 100644
--- a/src/security/Makefile.inc.am
+++ b/src/security/Makefile.inc.am
@@ -74,7 +74,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 0633a1fa8d..5afc1f0251 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 54b128833b..704f692907 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 = \
@@ -946,8 +940,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
@@ -1021,15 +1014,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
 
@@ -1070,16 +1062,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 = \
@@ -1146,7 +1138,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 426a6ba661..377f342beb 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) \
-- 
2.24.1




More information about the libvir-list mailing list