mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
The current usage of LIBEXEC is bogus. It describes the directory for private xen executables. Other places create their own, similar libexecdir path as $prefix/lib/xen/*. Additional two other variables are used to describe similar paths: PRIVATE_BINDIR and PRIVATE_PREFIX The autoconf documentation refers to libexec as a directory for executables and stuff which is called by other programs, not by the user. Adjust all places that want libexecdir as a target path. LIBEXEC refers now to the base directory. Three convenience variables are used to refer to paths to private binaries, libs and include files. In the systemd files LIBEXEC_BIN is substituted, so this variable has to be present in autoconf. All other variables are expanded in Paths.mk because they are only used in Makefiles. Most users of LIBEXEC are updated to use LIBEXEC_BIN because that is what they want. Users of PRIVATE_BINDIR are updated to use LIBEXEC_BIN because that is what they want. PRIVATE_BINDIR and PRIVATE_PREFIX usage is removed by this patch, in favour of LIBXEC_BIN and LIBEXEC An internal libxl function was removed. A single helper to retrieve LIBEXEC_BIN remains. As suggested by the autoconf documentation, configure appends the package name to LIBEXEC to make sure the provided directory really refers to xen. This makes sure "make uninstall" preserves the real libexecdir. Signed-off-by: Olaf Hering <olaf@aepfle.de> Acked-by: Ian Campbell <ian.campbell@citrix.com> Cc: George Dunlap <george.dunlap@eu.citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Samuel Thibault <samuel.thibault@ens-lyon.org> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> [ ijc -- ran autogen.sh as requested, updated QEMU_TRADITIONAL_REVISION to pickup version which uses LIBEXEC_BIN ]
121 lines
2.8 KiB
Bash
121 lines
2.8 KiB
Bash
#
|
|
# Copyright (c) 2005 XenSource Ltd.
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of version 2.1 of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation.
|
|
#
|
|
# 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, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
|
|
# Hack to prevent the execution of hotplug scripts from udev if the domain
|
|
# has been launched from libxl
|
|
if [ -n "${UDEV_CALL}" ] && \
|
|
xenstore-read "libxl/disable_udev" >/dev/null 2>&1; then
|
|
exit 0
|
|
fi
|
|
|
|
dir=$(dirname "$0")
|
|
. "$dir/hotplugpath.sh"
|
|
. "$dir/logging.sh"
|
|
. "$dir/xen-script-common.sh"
|
|
. "$dir/locking.sh"
|
|
|
|
exec 2>>/var/log/xen/xen-hotplug.log
|
|
|
|
export PATH="${BINDIR}:${SBINDIR}:${LIBEXEC_BIN}:/sbin:/bin:/usr/bin:/usr/sbin:$PATH"
|
|
export LD_LIBRARY_PATH="${LIBDIR}${LD_LIBRARY_PATH+:}$LD_LIBRARY_PATH"
|
|
export LANG="POSIX"
|
|
unset $(set | grep ^LC_ | cut -d= -f1)
|
|
|
|
fatal() {
|
|
_xenstore_write "$XENBUS_PATH/hotplug-error" "$*" \
|
|
"$XENBUS_PATH/hotplug-status" error
|
|
log err "$@"
|
|
exit 1
|
|
}
|
|
|
|
success() {
|
|
# Tell DevController that backend is "connected"
|
|
xenstore_write "$XENBUS_PATH/hotplug-status" connected
|
|
}
|
|
|
|
do_or_die() {
|
|
"$@" || fatal "$@ failed"
|
|
}
|
|
|
|
do_without_error() {
|
|
"$@" 2>/dev/null || log debug "$@ failed"
|
|
}
|
|
|
|
sigerr() {
|
|
fatal "$0 failed; error detected."
|
|
}
|
|
|
|
trap sigerr ERR
|
|
|
|
|
|
##
|
|
# xenstore_read <path>+
|
|
#
|
|
# Read each of the given paths, returning each result on a separate line, or
|
|
# exit this script if any of the paths is missing.
|
|
#
|
|
xenstore_read() {
|
|
local v=$(xenstore-read "$@" || true)
|
|
[ "$v" != "" ] || fatal "xenstore-read $@ failed."
|
|
echo "$v"
|
|
}
|
|
|
|
|
|
##
|
|
# xenstore_read_default <path> <default>
|
|
#
|
|
# Read the given path, returning the value there or the given default if the
|
|
# path is not present.
|
|
#
|
|
xenstore_read_default() {
|
|
xenstore-read "$1" 2>/dev/null || echo "$2"
|
|
}
|
|
|
|
|
|
##
|
|
# _xenstore_write (<path> <value>)+
|
|
#
|
|
# Write each of the key/value pairs to the store.
|
|
#
|
|
_xenstore_write() {
|
|
log debug "Writing $@ to xenstore."
|
|
xenstore-write "$@"
|
|
}
|
|
|
|
##
|
|
# xenstore_write (<path> <value>)+
|
|
#
|
|
# Write each of the key/value pairs to the store, and exit this script if any
|
|
# such writing fails.
|
|
#
|
|
xenstore_write() {
|
|
_xenstore_write "$@" || fatal "Writing $@ to xenstore failed."
|
|
}
|
|
|
|
##
|
|
# call_hooks <devtype> <hook>
|
|
#
|
|
# Execute each hook in the <hook> directory.
|
|
#
|
|
call_hooks() {
|
|
for f in @XEN_SCRIPT_DIR@/${1}-${2}.d/*.hook; do
|
|
if [ -x "$f" ]; then . "$f"; fi
|
|
done
|
|
}
|
|
|
|
log debug "$@" "XENBUS_PATH=$XENBUS_PATH"
|