000product/_service:product_converter:openSUSE-release.spec

452 lines
15 KiB
RPMSpec
Raw Normal View History

#
# spec file for package openSUSE-release
#
# 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.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define product openSUSE
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
Version: 20181214
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
License: BSD-3-Clause
Group: System/Fhs
BuildRequires: skelcd-control-openSUSE
BuildRequires: skelcd-openSUSE
# /etc/issue is no longer a default file, but is auto-generated at bootup
Requires: issue-generator
#PreReq: coreutils
# the post scriptlets uses awk, boo#976913
Requires(post): awk
Requires(post): issue-generator
Recommends: branding-openSUSE
Suggests: java-11-openjdk
Suggests: mariadb
Suggests: mariadb-client
Conflicts: core-release <= 10
Conflicts: distribution-release
Conflicts: sled-release <= 10
Conflicts: sles-release <= 10
Provides: aaa_version
Provides: distribution-release
Provides: suse-release = %{version}-%{release}
Provides: suse-release-oss = %{version}-%{release}
# Give zypp a hint that this product must be kept up-to-date using zypper dup, not up (boo#1061384)
Provides: product-update() = dup
# Since we have more than one product in the FTP tree, we need to give yast a hint
Provides: system-installation() = openSUSE
Obsoletes: aaa_version
Obsoletes: openSUSE-Promo-release <= 11.1
Obsoletes: openSUSE-release-live <= 11.0
Obsoletes: product_flavor(%{product}) < 20181214
# bnc#826592
Provides: weakremover(kernel-default) < 3.11
Provides: weakremover(kernel-desktop) < 4.2
Provides: weakremover(kernel-ec2) < 3.11
Provides: weakremover(kernel-pae) < 3.11
Provides: weakremover(kernel-vanilla) < 3.11
Provides: weakremover(kernel-xen) < 3.11
Provides: %name-%version
Provides: product() = openSUSE
Provides: product(openSUSE) = 20181214-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
%ifarch s390x
Provides: product-register-target() = openSUSE%2DTumbleweed%2Ds390x
%endif
%ifarch ppc64le
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dppc64le
%endif
%ifarch aarch64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20181214
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
Requires: product_flavor(openSUSE)
%description
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%package ftp
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description ftp
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files ftp
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-ftp
%package mini
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description mini
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files mini
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-mini
%package dvd
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description dvd
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files dvd
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-dvd
%package livecd-kde
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description livecd-kde
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files livecd-kde
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-livecd-kde
%package livecd-x11
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description livecd-x11
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files livecd-x11
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-livecd-x11
%package livecd-gnome
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description livecd-gnome
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files livecd-gnome
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-livecd-gnome
%package usb-kde
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description usb-kde
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files usb-kde
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-usb-kde
%package usb-gnome
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description usb-gnome
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files usb-gnome
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-usb-gnome
%package usb-x11
License: BSD-3-Clause
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
Provides: product_flavor(openSUSE) = 20181214-0
Summary: openSUSE Tumbleweed
%description usb-x11
openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.
%files usb-x11
%defattr(-,root,root)
%doc %{_defaultdocdir}/openSUSE-release-usb-x11
%prep
%setup -qcT
mkdir license
if [ -f /CD1/license.tar.gz ]; then
tar -C license -xzf /CD1/license.tar.gz
elif [ -f %{_libexecdir}/skelcd/CD1/license.tar.gz ]; then
tar -C license -xzf %{_libexecdir}/skelcd/CD1/license.tar.gz
fi
%build
%install
mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_libexecdir}/issue.d %{buildroot}/run
echo -e 'Welcome to %{product} %{codename} %{version}%{?betaversion: %{betaversion}} - Kernel \\r (\\l).\n' > %{buildroot}%{_libexecdir}/issue.d/10-openSUSE.conf
echo -e "\n" > %{buildroot}%{_libexecdir}/issue.d/90-openSUSE.conf
echo 'Welcome to %{product} %{codename} %{version}%{?betaversion: %{betaversion}} - Kernel %%r (%%t).' > %{buildroot}%{_sysconfdir}/issue.net
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}%{_libexecdir}/os-release <<EOF
NAME="openSUSE Tumbleweed"
# VERSION="%{version}%{?betaversion: %{betaversion}}"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="$VERSION_ID"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:%{version}"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
EOF
ln -s ..%{_libexecdir}/os-release %{buildroot}%{_sysconfdir}/os-release
echo "Have a lot of fun..." > %{buildroot}%{_sysconfdir}/motd
# Bug 404141 - /etc/YaST/control.xml should be owned by some package
mkdir -p %{buildroot}%{_sysconfdir}/YaST2/
echo %{buildroot}
if [ -f /CD1/control.xml ]; then
install -m 644 /CD1/control.xml %{buildroot}%{_sysconfdir}/YaST2/
elif [ -f %{_libexecdir}/skelcd/CD1/control.xml ]; then
install -m 644 %{_libexecdir}/skelcd/CD1/control.xml %{buildroot}%{_sysconfdir}/YaST2/
fi
# fate#319341, make openSUSE-release own YaST license files. TODO:
# get rid of /etc/YaST2/licenses
install -D -d -m 755 "%{buildroot}%{_sysconfdir}/YaST2/licenses/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}%{_sysconfdir}/YaST2/licenses/base/$i
done
mkdir -p $RPM_BUILD_ROOT/etc/products.d
cat >$RPM_BUILD_ROOT/etc/products.d/openSUSE.prod << EOF
<?xml version="1.0" encoding="UTF-8"?>
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
<version>20181214</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
<cpeid>cpe:/o:opensuse:opensuse:20181214</cpeid>
<productline>openSUSE</productline>
<register>
<pool>
</pool>
<updates>
<distrotarget arch="x86_64">openSUSE-Tumbleweed-x86_64</distrotarget>
<distrotarget arch="s390x">openSUSE-Tumbleweed-s390x</distrotarget>
<distrotarget arch="ppc64le">openSUSE-Tumbleweed-ppc64le</distrotarget>
<distrotarget arch="aarch64">openSUSE-Tumbleweed-aarch64</distrotarget>
</updates>
</register>
<repositories>
</repositories>
<updaterepokey>000000000</updaterepokey>
<summary>openSUSE Tumbleweed</summary>
<shortsummary>openSUSE</shortsummary>
<description>openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.</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>
</linguas>
<urls>
<url name="releasenotes">http://doc.opensuse.org/release-notes/x86_64/openSUSE/Tumbleweed/release-notes-openSUSE.rpm</url>
<url name="repository">http://download.opensuse.org/tumbleweed/repo/oss/</url>
</urls>
<buildconfig>
<producttheme>openSUSE</producttheme>
<create_flavors>true</create_flavors>
</buildconfig>
<installconfig>
<defaultlang>en_US</defaultlang>
<releasepackage name="openSUSE-release" flag="EQ" version="%{version}" release="%{release}"/>
<distribution>openSUSE</distribution>
</installconfig>
<runtimeconfig/>
</product>
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-ftp
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-ftp/README << EOF
This package only exists for providing the product flavor 'ftp'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-mini
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-mini/README << EOF
This package only exists for providing the product flavor 'mini'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-dvd
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-dvd/README << EOF
This package only exists for providing the product flavor 'dvd'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-livecd-kde
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-livecd-kde/README << EOF
This package only exists for providing the product flavor 'livecd-kde'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-livecd-x11
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-livecd-x11/README << EOF
This package only exists for providing the product flavor 'livecd-x11'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-livecd-gnome
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-livecd-gnome/README << EOF
This package only exists for providing the product flavor 'livecd-gnome'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-usb-kde
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-usb-kde/README << EOF
This package only exists for providing the product flavor 'usb-kde'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-usb-gnome
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-usb-gnome/README << EOF
This package only exists for providing the product flavor 'usb-gnome'.
EOF
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-usb-x11
cat >$RPM_BUILD_ROOT/%{_defaultdocdir}/openSUSE-release-usb-x11/README << EOF
This package only exists for providing the product flavor 'usb-x11'.
EOF
# this is a base product, create symlink
ln -s openSUSE.prod %{buildroot}%{_sysconfdir}/products.d/baseproduct
%post
# Upgrade path - if /etc/default/grub contains any of the DISTRIBUTOR= tags
# we ever put, replace it with "", which means grub will use /etc/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
%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 %{_sysconfdir}/YaST2/licenses
%{_sysconfdir}/YaST2/licenses/base
%license license/*
%{_sysconfdir}/os-release
%{_libexecdir}/os-release
# Bug 404141 - /etc/YaST/control.xml should be owned by some package
%dir %{_sysconfdir}/YaST2/
%config %{_sysconfdir}/YaST2/control.xml
%config(noreplace) %{_sysconfdir}/motd
%dir %{_libexecdir}/issue.d/
%{_libexecdir}/issue.d/10-openSUSE.conf
%{_libexecdir}/issue.d/90-openSUSE.conf
%config(noreplace) %{_sysconfdir}/issue.net
%{_sysconfdir}/products.d
%changelog