mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2025-11-04 12:18:18 +00:00
This change patches the base-files.postinst script to fix this issue prior to calling dpkg --configure.
138 lines
3.6 KiB
Bash
Executable File
138 lines
3.6 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
install_local_dir() {
|
|
if [ ! -d $1 ]; then
|
|
mkdir -p $1
|
|
fi
|
|
if [ -f /etc/staff-group-for-usr-local ]; then
|
|
chown root:staff $1 2> /dev/null || true
|
|
chmod 2775 $1 2> /dev/null || true
|
|
fi
|
|
}
|
|
|
|
install_from_default() {
|
|
if [ ! -f $2 ]; then
|
|
cp -p $1 $2
|
|
fi
|
|
}
|
|
|
|
install_directory() {
|
|
if [ ! -d /$1 ]; then
|
|
mkdir /$1
|
|
chown root:$3 /$1
|
|
chmod $2 /$1
|
|
fi
|
|
}
|
|
|
|
migrate_directory() {
|
|
if [ ! -L $1 ]; then
|
|
if [ ! -z "`ls -A $1/`" ]; then
|
|
for x in $1/* $1/.[!.]* $1/..?*; do
|
|
if [ -e "$x" ]; then
|
|
mv -- "$x" $2/
|
|
fi
|
|
done
|
|
fi
|
|
rmdir $1
|
|
ln -s $2 $1
|
|
fi
|
|
}
|
|
|
|
update_to_current_default() {
|
|
if [ -f /etc/$1 ]; then
|
|
md5=`md5sum /etc/$1 | cut -f 1 -d " "`
|
|
if grep -q "$md5" /usr/share/base-files/$1.md5sums; then
|
|
if ! cmp -s /usr/share/base-files/$1 /etc/$1; then
|
|
cp -p /usr/share/base-files/$1 /etc/$1
|
|
echo Updating /etc/$1 to current default.
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
if [ ! -e /etc/dpkg/origins/default ]; then
|
|
if [ -e /etc/dpkg/origins/debian ]; then
|
|
ln -sf debian /etc/dpkg/origins/default
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" = "configure" ] && [ "$2" = "" ]; then
|
|
install_from_default /usr/share/base-files/staff-group-for-usr-local \
|
|
/etc/staff-group-for-usr-local
|
|
install_from_default /usr/share/base-files/nsswitch.conf /etc/nsswitch.conf
|
|
install_from_default /usr/share/base-files/dot.profile /root/.profile
|
|
install_from_default /usr/share/base-files/dot.bashrc /root/.bashrc
|
|
install_from_default /usr/share/base-files/profile /etc/profile
|
|
install_from_default /usr/share/base-files/motd /etc/motd
|
|
install_directory mnt 755 root
|
|
install_directory srv 755 root
|
|
install_directory opt 755 root
|
|
install_directory etc/opt 755 root
|
|
install_directory var/opt 755 root
|
|
install_directory media 755 root
|
|
install_directory var/mail 2775 mail
|
|
if [ ! -L /var/spool/mail ]; then
|
|
ln -s ../mail /var/spool/mail
|
|
fi
|
|
install_directory run/lock 1777 root
|
|
migrate_directory /var/run /run
|
|
migrate_directory /var/lock /run/lock
|
|
|
|
install_local_dir /usr/local
|
|
install_local_dir /usr/local/share
|
|
install_local_dir /usr/local/share/man
|
|
install_local_dir /usr/local/bin
|
|
install_local_dir /usr/local/games
|
|
install_local_dir /usr/local/lib
|
|
install_local_dir /usr/local/include
|
|
install_local_dir /usr/local/sbin
|
|
install_local_dir /usr/local/src
|
|
install_local_dir /usr/local/etc
|
|
ln -sf share/man /usr/local/man
|
|
|
|
if [ ! -f /var/log/wtmp ]; then
|
|
echo -n>/var/log/wtmp
|
|
fi
|
|
if [ ! -f /var/log/btmp ]; then
|
|
echo -n>/var/log/btmp
|
|
fi
|
|
if [ ! -f /var/log/lastlog ]; then
|
|
echo -n>/var/log/lastlog
|
|
fi
|
|
chown root:utmp /var/log/wtmp /var/log/btmp /var/log/lastlog
|
|
chmod 664 /var/log/wtmp /var/log/lastlog
|
|
chmod 660 /var/log/btmp
|
|
if [ ! -f /var/run/utmp ]; then
|
|
echo -n>/var/run/utmp
|
|
fi
|
|
chown root:utmp /var/run/utmp
|
|
chmod 664 /var/run/utmp
|
|
fi
|
|
|
|
if [ ! -d /var/lib/dpkg ]; then
|
|
mkdir -m 755 -p /var/lib/dpkg
|
|
fi
|
|
if [ ! -f /var/lib/dpkg/status ]; then
|
|
echo > /var/lib/dpkg/status
|
|
chmod 644 /var/lib/dpkg/status
|
|
fi
|
|
|
|
if [ ! -f /usr/info/dir ] && [ ! -f /usr/share/info/dir ]; then
|
|
install_from_default /usr/share/base-files/info.dir /usr/share/info/dir
|
|
chmod 644 /usr/share/info/dir
|
|
fi
|
|
|
|
if [ "$1" = "configure" ] && [ "$2" != "" ]; then
|
|
update_to_current_default profile
|
|
update_to_current_default nsswitch.conf
|
|
if dpkg --compare-versions "$2" lt-nl "7.7"; then
|
|
install_directory mnt 755 root
|
|
fi
|
|
fi
|
|
|
|
if dpkg --compare-versions "$2" lt-nl "6.10"; then
|
|
install_from_default /usr/share/base-files/staff-group-for-usr-local \
|
|
/etc/staff-group-for-usr-local
|
|
fi
|