Commit 98b4a19a authored by Beniamino Galvani's avatar Beniamino Galvani

build: meson: support $DESTDIR in installation script

Adapt the meson post-installation script to handle the $DESTDIR
variable supplied by user to specify the installation target
directory. While at it, convert the script to shell because it seems
simpler to me.
parent e732789b
......@@ -5040,7 +5040,6 @@ EXTRA_DIST += \
valgrind.suppressions \
meson.build \
meson_options.txt \
meson_post_install.py \
config.h.meson \
config-extra.h.meson \
docs/meson.build \
......@@ -5081,6 +5080,7 @@ EXTRA_DIST += \
tools/check-exports.sh \
tools/create-exports-NetworkManager.sh \
tools/debug-helper.py \
tools/meson-post-install.sh \
tools/run-nm-test.sh \
tools/test-networkmanager-service.py \
tools/test-sudo-wrapper.sh \
......
......@@ -895,7 +895,7 @@ configure_file(
)
meson.add_install_script(
'meson_post_install.py',
join_paths('tools', 'meson-post-install.sh'),
nm_datadir,
nm_bindir,
nm_pkgconfdir,
......
#!/usr/bin/env python3
import os
import sys
if not os.environ.get('DESTDIR'):
datadir = sys.argv[1]
bindir = sys.argv[2]
pkgconfdir = sys.argv[3]
pkglibdir = sys.argv[4]
localstatedir = sys.argv[5]
completions_dir = os.path.join(datadir, 'bash-completion', 'completions')
os.rename(os.path.join(completions_dir, 'nmcli-completion'), os.path.join(completions_dir, 'nmcli'))
nmtui_alias = ['nmtui-connect', 'nmtui-edit', 'nmtui-hostname']
src = os.path.join(bindir, 'nmtui')
[os.symlink(src, os.path.join(bindir, dst))
for dst in nmtui_alias]
dst_dirs = [
os.path.join(pkgconfdir, 'conf.d'),
os.path.join(pkgconfdir, 'system-connections'),
os.path.join(pkgconfdir, 'dispatcher.d', 'no-wait.d'),
os.path.join(pkgconfdir, 'dispatcher.d', 'pre-down.d'),
os.path.join(pkgconfdir, 'dispatcher.d', 'pre-up.d'),
os.path.join(pkgconfdir, 'dnsmasq.d'),
os.path.join(pkgconfdir, 'dnsmasq-shared.d'),
os.path.join(pkglibdir, 'conf.d'),
os.path.join(pkglibdir, 'VPN'),
os.path.join(localstatedir, 'lib', 'NetworkManager')
]
[os.makedirs(dst_dir)
for dst_dir in dst_dirs
if not os.path.exists(dst_dir)]
if sys.argv[6] == 'install_docs':
mandir = sys.argv[7]
src = os.path.join(mandir, 'man1', 'nmtui.1')
[os.symlink(src, os.path.join(mandir, 'man1', dst + '.1'))
for dst in nmtui_alias]
src = os.path.join(mandir, 'man5', 'NetworkManager.conf.5')
dst = os.path.join(mandir, 'man5', 'nm-system-settings.conf.5')
os.symlink(src, dst)
#!/bin/sh
datadir=$1
bindir=$2
pkgconfdir=$3
pkglibdir=$4
localstatedir=$5
[ -n "$DESTDIR" ] && DESTDIR=${DESTDIR%%/}/
if [ -f "${DESTDIR}${datadir}/bash-completion/completions/nmcli-completion" ]; then
mv "${DESTDIR}${datadir}/bash-completion/completions/nmcli-completion" \
"${DESTDIR}${datadir}/bash-completion/completions/nmcli"
fi
if [ -x "${DESTDIR}${bindir}/nmtui" ]; then
for alias in nmtui-connect nmtui-edit nmtui-hostname; do
ln -sf nmtui "${DESTDIR}${bindir}/$alias"
done
fi
for dir in "${pkgconfdir}/conf.d" \
"${pkgconfdir}/system-connections" \
"${pkgconfdir}/dispatcher.d/no-wait.d" \
"${pkgconfdir}/dispatcher.d/pre-down.d" \
"${pkgconfdir}/dispatcher.d/pre-up.d" \
"${pkgconfdir}/dnsmasq.d" \
"${pkgconfdir}/dnsmasq-shared.d" \
"${pkgconfdir}/conf.d" \
"${pkgconfdir}/VPN" \
"${localstatedir}/lib/NetworkManager"; do
mkdir -p "${DESTDIR}${dir}"
done
if [ "$6" = install_docs ]; then
mandir=$7
for alias in nmtui-connect nmtui-edit nmtui-hostname; do
ln -f "${DESTDIR}${mandir}/man1/nmtui.1" "${DESTDIR}${mandir}/man1/${alias}.1"
done
ln -f "${DESTDIR}${mandir}/man5/NetworkManager.conf.5" "${DESTDIR}${mandir}/man5/nm-system-settings.conf"
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment