summaryrefslogtreecommitdiffstats
path: root/debian/postinst
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 11:45:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 11:45:48 +0000
commit1a854dce33e52bf8bd863e9b0eb54e51c087191e (patch)
tree03c07421024bee0f8ebaaf341cf1b28c70296b6b /debian/postinst
parentMerging upstream version 13.1. (diff)
downloadbase-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/postinst149
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