mirror of
https://git.proxmox.com/git/systemd
synced 2026-01-04 04:52:10 +00:00
libnss-*.prerm: Remove possible [key=value] options from NSS modules as well
Parameterize remove_nss_entry() so that it is exactly the same in all postrms and thus easier to test and keep in sync. Move from the complicated Perl subroutine to a simpler sed. LP: #1625584
This commit is contained in:
parent
c80c55b22d
commit
1d744b97d4
26
debian/libnss-myhostname.postrm
vendored
26
debian/libnss-myhostname.postrm
vendored
@ -1,32 +1,28 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# This code was taken from libnss-myhostname
|
||||
remove_nss_entry() {
|
||||
local file=$1
|
||||
local pkg=$2
|
||||
local module=$3
|
||||
refcount=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' \
|
||||
-W libnss-myhostname | grep '^i' | wc -l)
|
||||
-W $pkg | grep '^i' | wc -l)
|
||||
if [ "$refcount" -gt 0 ] ; then
|
||||
# there are other instances, do nothing
|
||||
# package is installed for other architectures still, do nothing
|
||||
return
|
||||
fi
|
||||
echo "Checking NSS setup..."
|
||||
# abort if /etc/nsswitch.conf does not exist
|
||||
if ! [ -e /etc/nsswitch.conf ]; then
|
||||
echo "Could not find /etc/nsswitch.conf."
|
||||
# abort if file does not exist
|
||||
if ! [ -e $file ]; then
|
||||
echo "Could not find ${file}."
|
||||
return
|
||||
fi
|
||||
perl -i -pe '
|
||||
sub remove {
|
||||
my $s=shift;
|
||||
$s=~s/\s+\Qmyhostname\E//g;
|
||||
return $s;
|
||||
}
|
||||
s/^(hosts:)(.*)/$1.remove($2)/e;
|
||||
' /etc/nsswitch.conf
|
||||
# we must remove possible [foo=bar] options as well
|
||||
sed -i -r "/hosts:/ s/[[:space:]]+$module\b([[:space:]]*\[[^]]*\])*//" $file
|
||||
}
|
||||
|
||||
if [ "$1" = remove ]; then
|
||||
remove_nss_entry
|
||||
remove_nss_entry /etc/nsswitch.conf libnss-myhostname myhostname
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
26
debian/libnss-mymachines.postrm
vendored
26
debian/libnss-mymachines.postrm
vendored
@ -1,32 +1,28 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# This code was taken from libnss-myhostname
|
||||
remove_nss_entry() {
|
||||
local file=$1
|
||||
local pkg=$2
|
||||
local module=$3
|
||||
refcount=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' \
|
||||
-W libnss-mymachines | grep '^i' | wc -l)
|
||||
-W $pkg | grep '^i' | wc -l)
|
||||
if [ "$refcount" -gt 0 ] ; then
|
||||
# there are other instances, do nothing
|
||||
# package is installed for other architectures still, do nothing
|
||||
return
|
||||
fi
|
||||
echo "Checking NSS setup..."
|
||||
# abort if /etc/nsswitch.conf does not exist
|
||||
if ! [ -e /etc/nsswitch.conf ]; then
|
||||
echo "Could not find /etc/nsswitch.conf."
|
||||
# abort if file does not exist
|
||||
if ! [ -e $file ]; then
|
||||
echo "Could not find ${file}."
|
||||
return
|
||||
fi
|
||||
perl -i -pe '
|
||||
sub remove {
|
||||
my $s=shift;
|
||||
$s=~s/\s+\Qmymachines\E//g;
|
||||
return $s;
|
||||
}
|
||||
s/^(hosts:)(.*)/$1.remove($2)/e;
|
||||
' /etc/nsswitch.conf
|
||||
# we must remove possible [foo=bar] options as well
|
||||
sed -i -r "/hosts:/ s/[[:space:]]+$module\b([[:space:]]*\[[^]]*\])*//" $file
|
||||
}
|
||||
|
||||
if [ "$1" = remove ]; then
|
||||
remove_nss_entry
|
||||
remove_nss_entry /etc/nsswitch.conf libnss-mymachines mymachines
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
26
debian/libnss-resolve.postrm
vendored
26
debian/libnss-resolve.postrm
vendored
@ -1,32 +1,28 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# This code was taken from libnss-myhostname
|
||||
remove_nss_entry() {
|
||||
local file=$1
|
||||
local pkg=$2
|
||||
local module=$3
|
||||
refcount=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' \
|
||||
-W libnss-resolve | grep '^i' | wc -l)
|
||||
-W $pkg | grep '^i' | wc -l)
|
||||
if [ "$refcount" -gt 0 ] ; then
|
||||
# there are other instances, do nothing
|
||||
# package is installed for other architectures still, do nothing
|
||||
return
|
||||
fi
|
||||
echo "Checking NSS setup..."
|
||||
# abort if /etc/nsswitch.conf does not exist
|
||||
if ! [ -e /etc/nsswitch.conf ]; then
|
||||
echo "Could not find /etc/nsswitch.conf."
|
||||
# abort if file does not exist
|
||||
if ! [ -e $file ]; then
|
||||
echo "Could not find ${file}."
|
||||
return
|
||||
fi
|
||||
perl -i -pe '
|
||||
sub remove {
|
||||
my $s=shift;
|
||||
$s=~s/\s+resolve\b//g;
|
||||
return $s;
|
||||
}
|
||||
s/^(hosts:)(.*)/$1.remove($2)/e;
|
||||
' /etc/nsswitch.conf
|
||||
# we must remove possible [foo=bar] options as well
|
||||
sed -i -r "/hosts:/ s/[[:space:]]+$module\b([[:space:]]*\[[^]]*\])*//" $file
|
||||
}
|
||||
|
||||
if [ "$1" = remove ]; then
|
||||
remove_nss_entry
|
||||
remove_nss_entry /etc/nsswitch.conf libnss-resolve resolve
|
||||
systemctl disable systemd-resolved.service
|
||||
if [ -d /run/systemd/system ]; then
|
||||
deb-systemd-invoke stop systemd-resolved.service || true
|
||||
|
||||
Loading…
Reference in New Issue
Block a user