File Leap-release.spec.in of Package 000package-groups

#
# spec file for package openSUSE-release.spec
#
# Copyright (c) 2019 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 ___PRODUCT_NAME___
%define betaversion ___BETA_VERSION___%{nil}
%define codename Leap
Name:           ___PACKAGE_NAME___
Version:        ___VERSION___
Release:        0
# ___RELEASE___ is the product release, not the build release of this package 
Provides:       aaa_version
Provides:       distribution-release
Provides:       suse-release = %{version}-%{release}
Provides:       suse-release-oss = %{version}-%{release}
%if 0%{?beta_version}
# 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
Obsoletes:      product_flavor(openSUSE) < ___VERSION___
Obsoletes:      product_flavor(%{product}) < ___VERSION___
Conflicts:      sles-release <= 10 sled-release <= 10 core-release <= 10
Conflicts:      otherproviders(distribution-release)
# 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
# boo#1029075
Provides:       weakremover(gpg-pubkey-3d25d3d9-36e12d04)
# 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-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 hints for the solver
Suggests:       java-11-openjdk
# preferred MTA
Suggests:       postfix
# preferred ntp daemon
Suggests:       chrony
# 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-control-openSUSE
BuildRequires:  skelcd-openSUSE

Source100:      weakremovers.inc
%include %{SOURCE100}
___PRODUCT_PROVIDES___

Summary:        ___SUMMARY___
License:        BSD-3-Clause
Group:          System/Fhs
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
#PreReq:         coreutils
# the post scriptlets uses awk, boo#976913
Requires(post):  awk

%description
___DESCRIPTION___

___FLAVOR_PACKAGES___

%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} %{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

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 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 ..%{_libexecdir}/os-release %{buildroot}%{_sysconfdir}/os-release

# Install missing repositories to user's system, bsc#1186593 bsc#1186795
mkdir -p %{buildroot}%{_sysconfdir}/zypp/repos.d
cat > %{buildroot}%{_sysconfdir}/zypp/repos.d/repo-sle-update.repo << EOF
[repo-sle-update]
name=Update repository with updates from SUSE Linux Enterprise 15
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/update/leap/\$releasever/sle/
path=/
type=rpm-md
keeppackages=0
EOF

cat > %{buildroot}%{_sysconfdir}/zypp/repos.d/repo-sle-debug-update.repo << EOF
[repo-sle-debug-update]
name=Update repository with debuginfo for updates from SUSE Linux Enterprise 15
enabled=0
autorefresh=1
baseurl=http://download.opensuse.org/debug/update/leap/\$releasever/sle/
path=/
type=rpm-md
keeppackages=0
EOF

cat > %{buildroot}%{_sysconfdir}/zypp/repos.d/repo-backports-update.repo << EOF
[repo-backports-update]
name=Update repository of openSUSE Backports
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/update/leap/\$releasever/backports/
path=/
type=rpm-md
keeppackages=0
EOF

cat > %{buildroot}%{_sysconfdir}/zypp/repos.d/repo-backports-debug-update.repo << EOF
[repo-backports-debug-update]
name=Update repository with updates for openSUSE Leap debuginfo packages from openSUSE Backports
enabled=0
autorefresh=1
baseurl=http://download.opensuse.org/update/leap/\$releasever/backports_debug/
type=NONE
keeppackages=0
EOF

# 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

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

# 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

# fate#319341, make openSUSE-release own YaST license files
# see also jsc#SLE-3067 for mess caused by SLE
install -D -d -m 755 "%{buildroot}%{_datadir}/licenses/product/base"
install -D -d -m 755 "%{buildroot}%{_defaultlicensedir}"
cp -a license "%{buildroot}%{_defaultlicensedir}/%{name}"
pushd license
# SLE compat
for i in *; do
	ln -s "%{_defaultlicensedir}/%{name}/$i" %{buildroot}%{_datadir}/licenses/product/base/$i
done

___CREATE_PRODUCT_FILES___
# 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 %{_datadir}/licenses/product
%{_datadir}/licenses/product/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 %{_sysconfdir}/rpm/macros.leap
%config %{_sysconfdir}/zypp/vendors.d/00-openSUSE.conf
%config(noreplace) %{_sysconfdir}/motd
%config(noreplace) %{_sysconfdir}/zypp/repos.d/*
%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
openSUSE Build Service is sponsored by