File Leap-release.spec of Package 000release-packages
#
# spec file for package Leap-release.spec
#
# Copyright (c) 2025 openSUSE
#
# 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.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# old location was /etc/YaST2/licenses/, see jsc#SLE-3067
%define product_license_dir /usr/share/licenses/product/
%define product Leap
%define betaversion %{nil}
%define codename Leap
%define obsoleted_codename openSUSE
Name: Leap-release
Version: 16.0
Release: 0
Provides: aaa_version
Provides: distribution-release
Provides: suse-release = %{version}-%{release}
Provides: suse-release-oss = %{version}-%{release}
Provides: suse-release = %{obsoleted_codename}-%{release}
Provides: suse-release-oss = %{obsoleted_codename}-%{release}
%if 0%{?betaversion}
# Give zypp a hint that this product must be kept up-to-date using zypper dup, not up (boo#1061384)
Provides: product-update() = dup
%endif
# relaxes openSUSE/SUSE vendor change in zypper dup bsc#1182629
Provides: dup-vendor-relax(suse)
# In case we have more than one product in the FTP tree, we need to give yast a hint
Provides: system-installation() = Leap
Provides: system-installation() = openSUSE
Obsoletes: aaa_version
Obsoletes: openSUSE-Promo-release <= 11.1
Obsoletes: openSUSE-release-live <= 11.0
Provides: product_flavor(openSUSE) = %{version}
Provides: product_flavor(%{product}) = %{version}
Conflicts: sles-release <= 10 sled-release <= 10 core-release <= 10
Conflicts: otherproviders(distribution-release)
Obsoletes: openSUSE-release < %{version}
# bnc#826592
Provides: weakremover(kernel-default) < 6.12
Provides: weakremover(kernel-default-base) < 6.12
Provides: weakremover(kernel-default-extra) < 6.12
Provides: weakremover(kernel-default-optional) < 6.12
Provides: weakremover(kernel-debug) < 6.12
Provides: weakremover(kernel-desktop) < 6.12
Provides: weakremover(kernel-devel) < 6.12
Provides: weakremover(kernel-ec2) < 6.12
Provides: weakremover(kernel-pae) < 6.12
Provides: weakremover(kernel-vanilla) < 6.12
Provides: weakremover(kernel-xen) < 6.12
Provides: weakremover(kernel-azure) < 6.12
Provides: weakremover(kernel-rt) < 6.12
# boo#1029075
Provides: weakremover(gpg-pubkey-3d25d3d9-36e12d04)
# a workaround try
# rpm 4.20 throws an error against the expired Backports key
Provides: weakremover(gpg-pubkey-65176565-55684b75)
# to obsolete old NM libs
Provides: weakremover(libnm-glib-vpn1)
Provides: weakremover(libnm-glib-vpn1-32bit)
Provides: weakremover(libnm-glib4)
Provides: weakremover(libnm-glib4-32bit)
Provides: weakremover(libnm-gtk-devel)
Provides: weakremover(libnm-gtk0)
Provides: weakremover(libnm-util2)
Provides: weakremover(libnm-util2-32bit)
Provides: weakremover(typelib-1_0-NMClient-1_0)
Provides: weakremover(typelib-1_0-NMGtk-1_0)
Provides: weakremover(typelib-1_0-NetworkManager-1_0)
# to obsolete old samba packages
Provides: weakremover(libsamba-policy-python-devel)
Provides: weakremover(libsamba-policy0)
Provides: weakremover(libsamba-policy0-32bit)
Provides: weakremover(samba-ad-dc)
Provides: weakremover(samba-ad-dc-32bit)
Provides: weakremover(samba-ad-dc-64bit)
Provides: weakremover(samba-ad-dc-libs)
Provides: weakremover(samba-ad-dc-libs-32bit)
Provides: weakremover(samba-ad-dc-libs-64bit)
Provides: weakremover(samba-dsdb-modules)
Provides: weakremover(samba-libs-python)
Provides: weakremover(samba-libs-python-32bit)
Provides: weakremover(samba-python)
Provides: weakremover(libndr0)
Provides: weakremover(libndr0-32bit)
Provides: weakremover(python-tdb)
Provides: weakremover(python-tdb-32bit)
Provides: weakremover(python-tevent)
Provides: weakremover(python-tevent-32bit)
Provides: weakremover(python-ldb)
Provides: weakremover(python-ldb-devel)
Provides: weakremover(python-ldb-32bit)
Provides: weakremover(python-talloc)
Provides: weakremover(python-talloc-devel)
Provides: weakremover(python-talloc-32bit)
# f2py file conflicting
Provides: weakremover(python-numpy)
Provides: weakremover(python-numpy-devel)
Provides: weakremover(python-gtk)
Provides: weakremover(gimp-plugins-python)
# some findings from openqa test as orphaned packages
Provides: weakremover(libabsl2308_0_0)
Provides: weakremover(libpoppler132)
Provides: weakremover(phonon4qt5-backend-gstreamer)
Provides: weakremover(phonon4qt5-backend-gstreamer-lang)
# pulseaudio hook
Provides: weakremover(pulseaudio)
Provides: weakremover(pulseaudio-lang)
Provides: weakremover(pulseaudio-module-bluetooth)
Provides: weakremover(pulseaudio-module-gsettings)
Provides: weakremover(pulseaudio-module-jack)
Provides: weakremover(pulseaudio-module-lirc)
Provides: weakremover(pulseaudio-module-x11)
Provides: weakremover(pulseaudio-module-zeroconf)
Provides: weakremover(pulseaudio-system-wide)
Provides: weakremover(wireplumber-video-only-profile)
Suggests: pipewire-pulseaudio
# bsc#1249096 libldap2 was existing from the openldap2 package,
# however it got removed and openldap2_6 package is in during
# the development period, this leads a file confliciting between
# libldap2 and libldap-2
Provides: weakremover(libldap2)
# some hints for the solver
Suggests: java-11-openjdk
# preferred MTA
Suggests: postfix
# preferred ntp daemon
Suggests: chrony
# since no longer injecting official repos via skelcd-control
# openSUSE-repos-Leap is rather important
Recommends: openSUSE-repos-Leap
# pulling openSUSE signkey for openSUSE built KMPs bsc#1182641
%ifnarch s390x
Suggests: openSUSE-signkey-cert
%endif
Recommends: branding-openSUSE
Recommends: distribution-logos-openSUSE-Leap
Recommends: issue-generator
BuildRequires: skelcd-openSUSE
# owning /etc/zypp/vendors.d
BuildRequires: libzypp
Source100: weakremovers.inc
%include %{SOURCE100}
Provides: %name-%version
Provides: %obsoleted_codename-%version
Provides: product() = Leap
Provides: product(Leap) = 16.0-1
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DLeap%2D16.0%2Dx86_64
%endif
%ifarch aarch64
Provides: product-register-target() = openSUSE%2DLeap%2D16.0%2Daarch64
%endif
%ifarch ppc64le
Provides: product-register-target() = openSUSE%2DLeap%2D16.0%2Dppc64le
%endif
%ifarch s390x
Provides: product-register-target() = openSUSE%2DLeap%2D16.0%2Ds390x
%endif
Provides: product-label() = Leap
Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aleap%3A16.0
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FLeap%2F16.0%2Frelease%2Dnotes%2D
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Fdistribution%2Fleap%2F16.0%2Frepo%2Foss%2F
Provides: product-updates-repoid() = obsrepository%3A%2F%2Fbuild.opensuse.org%2FopenSUSE%3ALeap%3A16.0%3AUpdate%2Fstandard
Provides: product-updates-repoid() = obsrepository%3A%2F%2Fbuild.opensuse.org%2FopenSUSE%3ALeap%3A16.0%3ANonFree%3AUpdate%2Fstandard
Provides: product-endoflife() = 2026%2D10%2D31
Requires: product_flavor(Leap)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# this package should only be available for the "basearchs" of a product
# i586 added as installation-images-SLES reequires it.
ExclusiveArch: x86_64 ppc64le s390x aarch64
Summary: openSUSE Leap 16.0%{?betaversion:%{betaversion}}
License: MIT
Group: System/Fhs
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#PreReq: coreutils
# the post scriptlets uses awk, boo#976913
Requires(post): awk
# the post scriptlets uses ln, boo#1202546
Requires(post): coreutils
%description
openSUSE Leap 16.0.
%package -n Leap-release-ftp
License: MIT
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
Provides: product_flavor(Leap) = 16.0-1
Obsoletes: openSUSE-release-ftp < %{version}
Summary: openSUSE Leap 16.0%{?betaversion:%{betaversion}}
%description ftp
openSUSE Leap 16.0.
%files ftp
%defattr(-,root,root)
%doc %{_defaultdocdir}/Leap-release-ftp
%prep
%setup -qcT
mkdir license
if [ -f /CD1/license.tar.gz ]; then
tar -C license -xzf /CD1/license.tar.gz
elif [ -f %{_prefix}/lib/skelcd/CD1/license.tar.gz ]; then
tar -C license -xzf %{_prefix}/lib/skelcd/CD1/license.tar.gz
fi
%build
%install
mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_prefix}/lib %{buildroot}/run %{buildroot}%{_prefix}/lib/issue.d
echo -e 'Welcome to \\S - Kernel \\r (\\l).\n' > %{buildroot}%{_prefix}/lib/issue.d/10-openSUSE.conf
echo -e "\n" > %{buildroot}%{_prefix}/lib/issue.d/90-openSUSE.conf
mkdir -p %{buildroot}%{_prefix}/lib/motd.d/
echo "Have a lot of fun..." > %{buildroot}%{_prefix}/lib/motd.d/welcome
# fate#319341, make openSUSE-release own YaST license files. TODO:
# get rid of /etc/YaST2/licenses
install -D -d -m 755 "%{buildroot}%_defaultlicensedir/product/base"
install -D -d -m 755 "%{buildroot}%_defaultlicensedir"
cp -a license "%{buildroot}%_defaultlicensedir/%name"
pushd license
for i in *; do
ln -s "%_defaultlicensedir/%name/$i" %{buildroot}%_defaultlicensedir/product/base/$i
done
mkdir -p %{buildroot}%{_sysconfdir}/products.d
cat >%{buildroot}%{_sysconfdir}/products.d/Leap.prod << EOF
<?xml version="1.0" encoding="UTF-8"?>
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>Leap</name>
<version>16.0</version>
<release>1</release>
<endoflife>2026-12-31</endoflife>
<arch>%{_target_cpu}</arch>
<cpeid>cpe:/o:opensuse:leap:16.0</cpeid>
<productline>Leap</productline>
<codestream>
<name>Leap 16</name>
<endoflife>2026-12-31</endoflife>
</codestream>
<register>
<pool>
<repository url="http://cdn.opensuse.org/distribution/leap/16.0/repo/oss">
<zypp name="openSUSE-Leap-16.0-Pool" alias="openSUSE-Leap-16.0-Pool"/>
</repository>
<repository url="http://cdn.opensuse.org/distribution/leap/16.0/repo/non-oss/">
<zypp name="openSUSE-Leap-16.0-NonOss-Pool" alias="openSUSE-Leap-16.0-NonOss-Pool"/>
</repository>
</pool>
<updates>
<distrotarget arch="x86_64">Leap-16.0-x86_64</distrotarget>
<distrotarget arch="aarch64">Leap-16.0-aarch64</distrotarget>
<distrotarget arch="ppc64le">Leap-16.0-ppc64le</distrotarget>
<distrotarget arch="s390x">Leap-16.0-s390x</distrotarget>
<!--Use main project as updates just like in Micro 6.0-->
<repository project="openSUSE:Leap:16.0" name="standard">
<zypp name="openSUSE-Leap-16.0-Updates" alias="openSUSE-Leap-16.0-Updates"/>
</repository>
<repository project="openSUSE:Leap:16.0:NonFree" name="standard">
<zypp name="openSUSE-Leap-16.0-NonOss-Updates" alias="openSUSE-Leap-16.0-NonOss-Updates"/>
</repository>
</updates>
</register>
<repositories>
<repository type="update" repoid="obsrepository://build.opensuse.org/openSUSE:Leap:16.0/product"/>
</repositories>
<updaterepokey>000000000</updaterepokey>
<summary>openSUSE Leap 16.0</summary>
<shortsummary>Leap</shortsummary>
<description>openSUSE Leap 16.0.</description>
<linguas>
<language>cs</language>
<language>da</language>
<language>de</language>
<language>en</language>
<language>en_GB</language>
<language>en_US</language>
<language>es</language>
<language>fi</language>
<language>fr</language>
<language>hu</language>
<language>it</language>
<language>ja</language>
<language>nb</language>
<language>nl</language>
<language>pl</language>
<language>pt</language>
<language>pt_BR</language>
<language>ru</language>
<language>sv</language>
<language>zh</language>
<language>zh_CN</language>
<language>zh_TW</language>
<language>ar</language>
<language>bg</language>
<language>bs</language>
<language>ca</language>
<language>el</language>
<language>eo</language>
<language>et</language>
<language>fa</language>
<language>id</language>
<language>ko</language>
<language>lt</language>
<language>sk</language>
<language>sl</language>
<language>uk</language>
</linguas>
<urls>
<url name="releasenotes">http://doc.opensuse.org/release-notes/x86_64/openSUSE/Leap/16.0/release-notes-openSUSE.rpm</url>
<url name="repository">http://cdn.opensuse.org</url>
</urls>
<buildconfig>
<producttheme>openSUSE</producttheme>
<create_flavors>true</create_flavors>
</buildconfig>
<installconfig>
<defaultlang>en_US</defaultlang>
<releasepackage name="Leap-release" flag="EQ" version="%{version}" release="%{release}"/>
<distribution>openSUSE</distribution>
</installconfig>
<runtimeconfig/>
</product>
EOF
mkdir -p %{buildroot}%{_defaultdocdir}/Leap-release-ftp
cat >%{buildroot}%{_defaultdocdir}/Leap-release-ftp/README << EOF
This package only exists for providing the product flavor 'ftp'.
EOF
VERSION_ID=`echo %{version}|tr '[:upper:]' '[:lower:]'|sed -e 's/ //g;'`
# note: VERSION is an optional field and has no meaning other than informative on a rolling distro
# We do thus not add it to the os-release file
cat > %{buildroot}%{_prefix}/lib/os-release <<EOF
NAME="openSUSE Leap"
VERSION="%{version}%{?betaversion:%{betaversion}}"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="$VERSION_ID"
PRETTY_NAME="openSUSE Leap %{version}%{?betaversion:%{betaversion}}"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:%{version}"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"
EOF
ln -s ..%{_prefix}/lib/os-release %{buildroot}%{_sysconfdir}/os-release
# bsc#949046 bsc#1187214
mkdir -p $RPM_BUILD_ROOT/etc/rpm/
echo "#" > $RPM_BUILD_ROOT/etc/rpm/macros.leap
echo "# RPM macros to identify Leap distribution" >> $RPM_BUILD_ROOT/etc/rpm/macros.leap
echo "#" >> $RPM_BUILD_ROOT/etc/rpm/macros.leap
echo "#==================================================" >> $RPM_BUILD_ROOT/etc/rpm/macros.leap
echo "" >> $RPM_BUILD_ROOT/etc/rpm/macros.leap
echo "%%sle_version %sle_version" >> $RPM_BUILD_ROOT/etc/rpm/macros.leap
# enable vendor change openSUSE,SUSE
mkdir -p %{buildroot}%{_sysconfdir}/zypp/vendors.d
echo -e "[main]\nvendors=openSUSE,SUSE,SUSE LLC <https://www.suse.com/>\n" > %{buildroot}%{_sysconfdir}/zypp/vendors.d/00-openSUSE.conf
# fix cpe id to have leap in it
# product converter puts name there but we can't change name as that would
# change other things too
# sed -i -e '/cpeid/s/opensuse:15/leap:15/' %{buildroot}%{_sysconfdir}/products.d/Leap.prod
%post
# this is a base product, create symlink bsc#1091952, openSUSE.prod -> Leap.prod bsc#1183430
if [ ! -L %{_sysconfdir}/products.d/baseproduct ] || [ -e %{_sysconfdir}/products.d/openSUSE.prod ]; then
ln -sf Leap.prod %{_sysconfdir}/products.d/baseproduct
fi
# Upgrade path - if %{_sysconfdir}/default/grub contains any of the DISTRIBUTOR= tags
# we ever put, replace it with "", which means grub will use %{_sysconfdir}/os-release to make something up
if [ -f %{_sysconfdir}/default/grub ]; then
DISTRIBUTOR=$(awk -F= '/^GRUB_DISTRIBUTOR/ {print $2}' %{_sysconfdir}/default/grub | tr -d '"')
case "$DISTRIBUTOR" in
"openSUSE" | \
"openSUSE 13.1" | \
"openSUSE 13.2")
# replace GRUB_DISTRIBUTOR in %{_sysconfdir}/default/grub with ""
sed -i "s/^GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR=/" %{_sysconfdir}/default/grub
;;
esac
fi
%postun
# workaround for boo#1181829#c34
if [ -L /etc/products.d/baseproduct ] ; then
PRODLINK=`readlink -f /etc/products.d/baseproduct`
PRODLINK=`basename $PRODLINK`
if [ $PRODLINK == "Leap.prod" ] && [ ! -f /etc/products.d/$PRODLINK ]; then
if [ -e /etc/products.d/SLES.prod ]; then
ln -sf SLES.prod /etc/products.d/baseproduct
elif [ -e /etc/products.d/SLED.prod ]; then
ln -sf SLED.prod /etc/products.d/baseproduct
fi
fi
fi
%posttrans
# Launch the issue-generator: we have a new config file in /usr/lib/issue.d that needs to be represented
if [ -x %{_sbindir}/issue-generator ]; then
if [ -x %{_bindir}/systemd-tmpfiles ]; then
%{_bindir}/systemd-tmpfiles --create issue-generator.conf || :
fi
%{_sbindir}/issue-generator || :
fi
%files
%defattr(644,root,root,755)
%dir %_defaultlicensedir/product
%{_defaultlicensedir}/product/base
%license license/*
%{_sysconfdir}/os-release
%{_prefix}/lib/os-release
%dir %{_prefix}/lib/motd.d
%{_prefix}/lib/motd.d/welcome
%config %{_sysconfdir}/rpm/macros.leap
%config %{_sysconfdir}/zypp/vendors.d/00-openSUSE.conf
%dir %{_prefix}/lib/issue.d/
%{_prefix}/lib/issue.d/10-openSUSE.conf
%{_prefix}/lib/issue.d/90-openSUSE.conf
%{_sysconfdir}/products.d
%ghost %{_sysconfdir}/products.d/baseproduct
%changelog