Sync with Tumblewed #2

Merged
lkocman merged 1 commits from :leap-16.0 into leap-16.0 2025-08-18 14:30:16 +02:00
4 changed files with 87 additions and 48 deletions

View File

@@ -1,3 +1,4 @@
<multibuild>
<flavor>docker</flavor>
<flavor>lxc</flavor>
</multibuild>

View File

@@ -29,6 +29,7 @@
<label name="org.opencontainers.image.vendor" value="openSUSE Project"/>
<label name="org.opencontainers.image.url" value="https://www.opensuse.org/"/>
<label name="org.opencontainers.image.source" value="%SOURCEURL%"/>
<label name="org.opensuse.lifecycle-url" value="https://en.opensuse.org/Lifetime"/>
<label name="org.opensuse.reference" value="registry.opensuse.org/opensuse/leap:%OS_VERSION_ID%.%RELEASE%"/>
<label name="org.openbuildservice.disturl" value="%DISTURL%"/>
</suse_label_helper:add_prefix>
@@ -37,33 +38,68 @@
</type>
<version>16.0.0</version>
<packagemanager>zypper</packagemanager>
<rpm-excludedocs>true</rpm-excludedocs>
</preferences>
<preferences profiles="lxc">
<type image="tbz"/>
<version>1.0.0</version>
<packagemanager>zypper</packagemanager>
<rpm-check-signatures>false</rpm-check-signatures>
<rpm-excludedocs>true</rpm-excludedocs>
</preferences>
<preferences profiles="networkd">
<type image="tbz"/>
<version>1.0.0</version>
<packagemanager>zypper</packagemanager>
<rpm-check-signatures>false</rpm-check-signatures>
<rpm-excludedocs>true</rpm-excludedocs>
</preferences>
<repository>
<source path="obsrepositories:/"/>
</repository>
<packages type="image">
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>
<package name="coreutils"/>
<package name="curl"/>
<package name="openSUSE-build-key"/>
<packages type="image" profiles="networkd">
<package name="systemd"/>
<package name="systemd-networkd"/>
<package name="systemd-resolved"/>
<package name="systemd-sysvinit"/>
<package name="iproute2"/>
<package name="openSUSE-repos"/>
</packages>
<packages type="image" profiles="lxc">
<package name="systemd"/>
<package name="systemd-sysvinit"/>
<package name="wicked"/>
<package name="iproute2"/>
<package name="openSUSE-repos"/>
<package name="timezone"/>
<package name="netcfg"/>
<package name="procps"/>
</packages>
<packages type="bootstrap">
<package name="aaa_base"/>
<package name="bash"/>
<package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/>
<package name="coreutils"/>
<package name="cracklib-dict-small"/>
<package name="libcurl-mini4"/>
<package name="curl"/>
<package name="filesystem"/>
<package name="kubic-locale-archive"/>
<package name="glibc-locale-base"/>
<package name="gzip"/>
<package name="lsb-release"/>
<package name="netcfg"/>
<package name="openssl"/>
<package name="patterns-base-fips"/>
<package name="rpm-ndb" replaces="rpm"/>
<package name="openSUSE-build-key"/>
<package name="openSUSE-release"/>
<!-- <package name="openSUSE-release-appliance-docker"/> -->
<package name="patterns-base-minimal_base"/>
<package name="patterns-base-fips"/>
<package name="procps"/>
<package name="shadow"/>
<package name="tar"/>
<package name="timezone"/>
<package name="user(nobody)"/> <!-- Needed for Podman, see bsc#1212118 -->
<package name="zypper"/>
<!-- Only used in config.sh and then removed again -->
<package name="jdupes"/>
</packages>
</image>

View File

@@ -1,36 +1,26 @@
#!/bin/bash
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
set -euo pipefail
set -euxo pipefail
echo "Configure image: [$kiwi_iname]..."
#======================================
# Setup baseproduct link
#--------------------------------------
suseSetupProduct
#======================================
# Import repositories' keys
#--------------------------------------
suseImportBuildKey
# don't have multiple licenses of the same type
jdupes -1 -L -r /usr/share/licenses
#======================================
# openSUSE-repos-* now provide repos
#--------------------------------------
zypper --non-interactive rm -u jdupes
# Not needed, but neither rpm nor libzypp handle rpmlib(X-CheckUnifiedSystemdir) yet
# which would avoid it being installed by the filesystem package
rpm -e compat-usrmerge-tools
#======================================
# Disable recommends
@@ -38,23 +28,19 @@ suseImportBuildKey
sed -i 's/.*solver.onlyRequires.*/solver.onlyRequires = true/g' /etc/zypp/zypp.conf
#======================================
# Exclude docs intallation
# Exclude docs installation
#--------------------------------------
sed -i 's/.*rpm.install.excludedocs.*/# rpm.install.excludedocs = yes/g' /etc/zypp/zypp.conf
sed -i 's/.*rpm.install.excludedocs.*/rpm.install.excludedocs = yes/g' /etc/zypp/zypp.conf
#======================================
# Remove locale files
#--------------------------------------
find /usr/share/locale -name '*.mo' -delete
shopt -s globstar
rm -f /usr/share/locale/**/*.mo
#======================================
# Remove zypp uuid (bsc#1098535)
#--------------------------------------
rm -f /var/lib/zypp/AnonymousUniqueId
#==========================================
# Clean up log files
#------------------------------------------
# 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.
@@ -67,22 +53,28 @@ 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/*
#==========================================
# Hack! The go container management tools can't handle sparse files:
# https://github.com/golang/go/issues/13548
# If lastlog doesn't exist, useradd doesn't attempt to reserve space,
# also in derived containers.
#------------------------------------------
# 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
if [[ "$kiwi_profiles" == *"docker"* ]]; then
# Hack! The go container management tools can't handle sparse files:
# https://github.com/golang/go/issues/13548
# When lastlog doesn't exist, useradd doesn't attempt to reserve space.
rm /var/log/lastlog
rm -f /var/log/lastlog
fi
#======================================
# Remove locale files
#--------------------------------------
find /usr/share/locale -name '*.mo' -delete
if [[ "$kiwi_profiles" == *"networkd"* ]]; then
systemctl enable systemd-networkd
systemctl enable systemd-resolved
# FIXME: kiwi deletes /etc/resolv.conf so we have to use tmpfiles here.
# Should come via some preset package anyways I guess.
echo "L /etc/resolv.conf - - - - /run/systemd/resolve/stub-resolv.conf" > /etc/tmpfiles.d/stub-resolv.conf
fi
exit 0

View File

@@ -1,3 +1,13 @@
-------------------------------------------------------------------
Mon Aug 18 12:28:57 UTC 2025 - Lubos Kocman <lubos.kocman@suse.com>
- Sync config.sh and package list with Tumbleweed
-------------------------------------------------------------------
Mon Aug 18 12:22:11 UTC 2025 - Lubos Kocman <lubos.kocman@suse.com>
- Use glibc-locale-base instead of kubic-locale-archive
-------------------------------------------------------------------
Mon Aug 18 12:09:34 UTC 2025 - Lubos Kocman <lubos.kocman@suse.com>