75 lines
2.4 KiB
Bash
75 lines
2.4 KiB
Bash
#!/bin/bash
|
|
# SPDX-License-Identifier: MIT
|
|
# SPDX-FileCopyrightText: (c) 2022-2023 SUSE LLC
|
|
|
|
set -euo pipefail
|
|
|
|
test -f /.kconfig && . /.kconfig
|
|
test -f /.profile && . /.profile
|
|
|
|
echo "Configure image: [$kiwi_iname]..."
|
|
|
|
#============================================
|
|
# Import repositories' keys if rpm is present
|
|
#--------------------------------------------
|
|
if command -v rpm > /dev/null; then
|
|
suseImportBuildKey
|
|
fi
|
|
|
|
echo "Configure image: [$kiwi_iname]..."
|
|
|
|
# FIXME: stop hardcoding the url, use some external mechanism once available
|
|
zypper ar 'https://updates.suse.com/SUSE/Products/ALP-Micro/1.0/$basearch/product/' alp-micro
|
|
|
|
#======================================
|
|
# Disable recommends
|
|
#--------------------------------------
|
|
sed -i 's/.*solver.onlyRequires.*/solver.onlyRequires = true/g' /etc/zypp/zypp.conf
|
|
|
|
#======================================
|
|
# Exclude docs intallation
|
|
#--------------------------------------
|
|
sed -i 's/.*rpm.install.excludedocs.*/rpm.install.excludedocs = yes/g' /etc/zypp/zypp.conf
|
|
|
|
#======================================
|
|
# Remove locale files
|
|
#--------------------------------------
|
|
shopt -s globstar
|
|
rm -f /usr/share/locale/**/*.mo
|
|
|
|
# Remove zypp uuid (bsc#1098535)
|
|
rm -f /var/lib/zypp/AnonymousUniqueId
|
|
|
|
# Remove various log files. While it's possible to just rm -rf /var/log/*, that
|
|
# would also remove some package owned directories (not %ghost) and some files
|
|
# are actually wanted, like lastlog in the !docker case.
|
|
# For those wondering about YaST2 here: Kiwi writes /etc/hosts, so the version
|
|
# from the netcfg package ends up as /etc/hosts.rpmnew, which zypper writes a
|
|
# letter about to /var/log/YaST2/config_diff_2022_03_06.log. Kiwi fixes this,
|
|
# but the log file remains.
|
|
rm -rf /var/log/{zypper.log,zypp/history,YaST2}
|
|
|
|
# Remove the entire zypper cache content (not the dir itself, owned by libzypp)
|
|
rm -rf /var/cache/zypp/*
|
|
|
|
# Assign a fixed architecture in zypp.conf, to use the container's arch even if
|
|
# the host arch differs (e.g. docker with --platform doesn't affect uname)
|
|
arch=$(rpm -q --qf %{arch} glibc)
|
|
if [ "$arch" = "i586" ] || [ "$arch" = "i686" ]; then
|
|
sed -i "s/^# arch =.*\$/arch = i686/" /etc/zypp/zypp.conf
|
|
# Verify that it's applied
|
|
grep -q '^arch =' /etc/zypp/zypp.conf
|
|
fi
|
|
|
|
|
|
#=======================================
|
|
# Clean up after zypper if it is present
|
|
#---------------------------------------
|
|
if command -v zypper > /dev/null; then
|
|
zypper -n clean
|
|
fi
|
|
|
|
rm -rf /var/log/zypp
|
|
|
|
exit 0
|