summaryrefslogtreecommitdiffstats
path: root/mkosi.postinst
blob: 756077e4f39b939ac8887a77742cf41435622683 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh
# SPDX-License-Identifier: LGPL-2.1-or-later

if [ "$1" = "final" ]; then
    if command -v bootctl > /dev/null && [ -d "/efi" ]; then
        bootctl install
    fi

    cat >> /root/.gdbinit <<EOF
set debuginfod enabled off
set build-id-verbose 0
EOF

    if [ -n "$SANITIZERS" ]; then
        # ASAN and syscall filters aren't compatible with each other.
        find / -name '*.service' -type f -exec sed -i 's/^\(MemoryDeny\|SystemCall\)/# \1/' {} +

        # `systemd-hwdb update` takes > 50s when built with sanitizers so let's not run it by default.
        systemctl mask systemd-hwdb-update.service
    fi

    # Make sure dnsmasq.service doesn't start on boot on Debian/Ubuntu.
    rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service

    # This unit comes from packages newer than this repository, and is left around as wejust rely on
    # overwriting from the local build, so disable it manually, as it will fail the CI run
    systemctl mask systemd-tmpfiles-setup-dev-early.service
fi

# Temporary workaround until https://github.com/openSUSE/suse-module-tools/commit/158643414ddb8d8208016a5f03a4484d58944d7a
# gets into OpenSUSE repos
if [ "$1" = "final" ] && grep -q openSUSE /etc/os-release; then
    if [ -e "/usr/lib/systemd/system/boot-sysctl.service" ] && \
       ! grep -F -q 'ConditionPathExists=/boot/sysctl.conf' "/usr/lib/systemd/system/boot-sysctl.service"; then
        mkdir -p "/etc/systemd/system/boot-sysctl.service.d/"
        printf '[Unit]\nConditionPathExists=/boot/sysctl.conf-%%v' >"/etc/systemd/system/boot-sysctl.service.d/99-temporary-workaround.conf"
    fi
fi