diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 11:45:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 11:45:48 +0000 |
commit | 1a854dce33e52bf8bd863e9b0eb54e51c087191e (patch) | |
tree | 03c07421024bee0f8ebaaf341cf1b28c70296b6b /debian/postinst | |
parent | Merging upstream version 13.1. (diff) | |
download | base-files-1a854dce33e52bf8bd863e9b0eb54e51c087191e.tar.xz base-files-1a854dce33e52bf8bd863e9b0eb54e51c087191e.zip |
Merging debian version 13.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/postinst')
-rw-r--r-- | debian/postinst | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..d7bf2bc --- /dev/null +++ b/debian/postinst @@ -0,0 +1,149 @@ +#!/bin/sh +set -e + +ensure_file_owner_mode() { + if [ ! -f "$DPKG_ROOT$1" ]; then + : > "$DPKG_ROOT$1" + fi + chown "$2" "$DPKG_ROOT$1" + chmod "$3" "$DPKG_ROOT$1" +} + +install_local_dir() { + if [ ! -d "$DPKG_ROOT$1" ]; then + mkdir -p "$DPKG_ROOT$1" + fi + if [ -f "$DPKG_ROOT/etc/staff-group-for-usr-local" ]; then + chown root:staff "$DPKG_ROOT$1" 2>/dev/null || true + chmod 2775 "$DPKG_ROOT$1" 2> /dev/null || true + fi +} + +install_from_default() { + if [ ! -f "$DPKG_ROOT$2" ]; then + cp -p "$DPKG_ROOT/usr/share/base-files/$1" "$DPKG_ROOT$2" + fi +} + +install_directory() { + if [ ! -d "$DPKG_ROOT/$1" ]; then + mkdir "$DPKG_ROOT/$1" + chown "root:$3" "$DPKG_ROOT/$1" + chmod "$2" "$DPKG_ROOT/$1" + fi +} + +migrate_directory() { + if [ ! -L "$DPKG_ROOT$1" ]; then + rmdir "$DPKG_ROOT$1" + ln -s "$2" "$DPKG_ROOT$1" + fi +} + +update_to_current_default() { + if [ -f "$2" ]; then + md5=$(md5sum "$2" | cut -f 1 -d " ") + if grep -q "$md5" "/usr/share/base-files/$1.md5sums"; then + if ! cmp -s "/usr/share/base-files/$1" "$2"; then + cp -p "/usr/share/base-files/$1" "$2" + echo Updating $2 to current default. + fi + fi + fi +} + +# remove debian origin default symlink +if [ -h "$DPKG_ROOT/etc/dpkg/origins/default" ]; then + if [ "`readlink "$DPKG_ROOT/etc/dpkg/origins/default"`" = "debian" ]; then + rm -f "$DPKG_ROOT/etc/dpkg/origins/default" + fi +fi + +if [ ! -e "$DPKG_ROOT/etc/dpkg/origins/default" ]; then + if [ -e "$DPKG_ROOT/etc/dpkg/origins/#VENDORFILE#" ]; then + ln -sf #VENDORFILE# "$DPKG_ROOT/etc/dpkg/origins/default" + fi +fi + +if [ "$1" = "configure" ] && [ "$2" = "" ]; then + install_from_default dot.profile /root/.profile + install_from_default dot.bashrc /root/.bashrc + install_from_default profile /etc/profile + install_from_default 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 "$DPKG_ROOT/var/spool/mail" ]; then + ln -s ../mail "$DPKG_ROOT/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/libexec + 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 "$DPKG_ROOT/usr/local/man" + + ensure_file_owner_mode /var/log/wtmp root:utmp 664 + ensure_file_owner_mode /var/log/btmp root:utmp 660 + ensure_file_owner_mode /var/log/lastlog root:utmp 664 +fi + +if [ -d "$DPKG_ROOT/usr/share/info" ] && [ ! -f "$DPKG_ROOT/usr/info/dir" ] && [ ! -f "$DPKG_ROOT/usr/share/info/dir" ]; then + install_from_default info.dir /usr/share/info/dir + chmod 644 $DPKG_ROOT/usr/share/info/dir +fi + +if [ "$1" = "configure" ] && [ "$2" != "" ]; then + update_to_current_default profile /etc/profile + update_to_current_default dot.profile /root/.profile + update_to_current_default motd /etc/motd + if dpkg --compare-versions "$2" lt-nl "7.7"; then + install_directory mnt 755 root + fi +fi + +case "${1}" in + configure) + . /usr/share/debconf/confmodule + + db_get base-files/os-identification + OS_IDENTIFICATION="${RET}" # select (w/o empty) + + db_stop + + rm -f /etc/lsb-release + rm -f /usr/lib/os-release + rm -f /etc/dpkg/origins/default + rm -f /etc/dpkg/origins/progress-linux + rm -f /etc/progress-linux_version + + case "${OS_IDENTIFICATION}" in + debian) + cp /usr/share/base-files/debian/os-release /usr/lib/os-release + ln -s debian /etc/dpkg/origins/default + ;; + + progress-linux) + cp /usr/share/base-files/progress-linux/lsb-release /etc/lsb-release + cp /usr/share/base-files/progress-linux/os-release /usr/lib/os-release + cp /usr/share/base-files/progress-linux/progress-linux /etc/dpkg/origins/progress-linux + ln -s progress-linux /etc/dpkg/origins/default + cp /usr/share/base-files/progress-linux/progress-linux_version /etc/progress-linux_version + ;; + esac + ;; +esac |