mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-30 12:31:16 +00:00
Care must be taken accessing env variables when running setuid. Introduce a virGetEnvAllowSUID for env vars which are safe to use in a setuid environment, and another virGetEnvBlockSUID for vars which are not safe. Also add a virIsSUID helper method for any other non-env var code to use. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
248 lines
5.1 KiB
Plaintext
248 lines
5.1 KiB
Plaintext
# Bootstrap configuration.
|
|
|
|
# Copyright (C) 2010-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 program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library. If not, see
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
# gnulib modules used by this package.
|
|
gnulib_modules='
|
|
accept
|
|
areadlink
|
|
autobuild
|
|
base64
|
|
bind
|
|
bitrotate
|
|
byteswap
|
|
c-ctype
|
|
c-strcase
|
|
c-strcasestr
|
|
calloc-posix
|
|
canonicalize-lgpl
|
|
chown
|
|
clock-time
|
|
close
|
|
connect
|
|
configmake
|
|
count-one-bits
|
|
crypto/md5
|
|
crypto/sha256
|
|
dirname-lgpl
|
|
environ
|
|
execinfo
|
|
fclose
|
|
fcntl
|
|
fcntl-h
|
|
fdatasync
|
|
ffs
|
|
ffsl
|
|
fnmatch
|
|
fsync
|
|
func
|
|
getaddrinfo
|
|
getcwd-lgpl
|
|
gethostname
|
|
getpass
|
|
getpeername
|
|
getsockname
|
|
gettext-h
|
|
gettimeofday
|
|
gitlog-to-changelog
|
|
gnumakefile
|
|
ignore-value
|
|
inet_pton
|
|
intprops
|
|
ioctl
|
|
isatty
|
|
largefile
|
|
ldexp
|
|
listen
|
|
localeconv
|
|
maintainer-makefile
|
|
manywarnings
|
|
mgetgroups
|
|
mkdtemp
|
|
mkostemp
|
|
mkostemps
|
|
mktempd
|
|
net_if
|
|
netdb
|
|
nonblocking
|
|
openpty
|
|
passfd
|
|
perror
|
|
physmem
|
|
pipe-posix
|
|
pipe2
|
|
poll
|
|
posix-shell
|
|
pthread
|
|
pthread_sigmask
|
|
recv
|
|
regex
|
|
random_r
|
|
sched
|
|
secure_getenv
|
|
send
|
|
setenv
|
|
setsockopt
|
|
sigaction
|
|
sigpipe
|
|
snprintf
|
|
socket
|
|
stat-time
|
|
stdarg
|
|
stpcpy
|
|
strchrnul
|
|
strdup-posix
|
|
strndup
|
|
strerror
|
|
strerror_r-posix
|
|
strptime
|
|
strsep
|
|
strtok_r
|
|
sys_stat
|
|
sys_wait
|
|
termios
|
|
time_r
|
|
timegm
|
|
ttyname_r
|
|
uname
|
|
useless-if-before-free
|
|
usleep
|
|
vasprintf
|
|
verify
|
|
vc-list-files
|
|
vsnprintf
|
|
waitpid
|
|
warnings
|
|
'
|
|
|
|
# Additional xgettext options to use. Use "\\\newline" to break lines.
|
|
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
|
|
--flag=virAsprintf:2:c-format\\\
|
|
--from-code=UTF-8\\\
|
|
'
|
|
|
|
# This is not a GNU package, so the default bug address is invalid,
|
|
# and the translation project is not in use.
|
|
MSGID_BUGS_ADDRESS=libvir-list@redhat.com
|
|
COPYRIGHT_HOLDER='Red Hat, Inc.'
|
|
SKIP_PO=true
|
|
|
|
# Enable copy-mode for MSYS/MinGW. MSYS' ln doesn't work well in the way
|
|
# bootstrap uses it with relative paths.
|
|
if test -n "$MSYSTEM"; then
|
|
copy=true
|
|
fi
|
|
|
|
# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
|
|
# appears in configure.ac, exclude some unnecessary files.
|
|
# Without grep's -E option (not portable enough, pre-configure),
|
|
# the following test is ugly. Also, this depends on the existence
|
|
# of configure.ac, not the obsolescent-named configure.in. But if
|
|
# you're using this infrastructure, you should care about such things.
|
|
|
|
gettext_external=0
|
|
grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
|
|
gettext_external=1
|
|
grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
|
|
gettext_external=1
|
|
|
|
if test $gettext_external = 1; then
|
|
# Gettext supplies these files, but we don't need them since
|
|
# we don't have an intl subdirectory.
|
|
excluded_files='
|
|
m4/glibc2.m4
|
|
m4/intdiv0.m4
|
|
m4/lcmessage.m4
|
|
m4/uintmax_t.m4
|
|
m4/ulonglong.m4
|
|
m4/visibility.m4
|
|
'
|
|
fi
|
|
|
|
# Tell gnulib to:
|
|
# require LGPLv2+
|
|
# apply any local diffs in gnulib/local/ dir
|
|
# put *.m4 files in m4/ dir
|
|
# put *.[ch] files in new gnulib/lib/ dir
|
|
# import gnulib tests in new gnulib/tests/ dir
|
|
gnulib_name=libgnu
|
|
m4_base=m4
|
|
source_base=gnulib/lib
|
|
tests_base=gnulib/tests
|
|
gnulib_tool_option_extras="\
|
|
--lgpl=2\
|
|
--with-tests\
|
|
--makefile-name=gnulib.mk\
|
|
--avoid=pt_chown\
|
|
--avoid=lock-tests\
|
|
"
|
|
local_gl_dir=gnulib/local
|
|
|
|
# Build prerequisites
|
|
# Note that some of these programs are only required for 'make dist' to
|
|
# succeed from a fresh git checkout; not all of these programs are
|
|
# required to run 'make dist' on a tarball. As a special case, we want
|
|
# to require the equivalent of the Fedora python-devel package, but
|
|
# RHEL 5 lacks the witness python-config package; we hack around that
|
|
# old environment below.
|
|
buildreq="\
|
|
autoconf 2.59
|
|
automake 1.9.6
|
|
autopoint -
|
|
gettext 0.17
|
|
git 1.5.5
|
|
gzip -
|
|
libtool -
|
|
patch -
|
|
perl 5.5
|
|
pkg-config -
|
|
python-config -
|
|
rpcgen -
|
|
tar -
|
|
xmllint -
|
|
xsltproc -
|
|
"
|
|
# Use rpm as a fallback to bypass the bootstrap probe for python-config,
|
|
# for the sake of RHEL 5; without requiring it on newer systems that
|
|
# have python-config to begin with.
|
|
if `(${PYTHON_CONFIG-python-config} --version;
|
|
test $? -lt 126 || rpm -q python-devel) >/dev/null 2>&1`; then
|
|
PYTHON_CONFIG=true
|
|
fi
|
|
|
|
# Automake requires that ChangeLog and AUTHORS exist.
|
|
touch AUTHORS ChangeLog || exit 1
|
|
|
|
# Override bootstrap's list - we don't use mdate-sh or texinfo.tex.
|
|
gnulib_extra_files="
|
|
build-aux/install-sh
|
|
build-aux/depcomp
|
|
build-aux/config.guess
|
|
build-aux/config.sub
|
|
doc/INSTALL
|
|
"
|
|
|
|
|
|
bootstrap_post_import_hook()
|
|
{
|
|
# Change paths in gnulib/tests/gnulib.mk from "../../.." to "../..",
|
|
# and make tests conditional by changing "TESTS" to "GNULIB_TESTS".
|
|
m=gnulib/tests/gnulib.mk
|
|
sed 's,\.\./\.\./\.\.,../..,g; s/^TESTS /GNULIB_TESTS /' $m > $m-t
|
|
mv -f $m-t $m
|
|
}
|