diff --git a/_multibuild b/_multibuild index c3ce42a7..f429c4a1 100644 --- a/_multibuild +++ b/_multibuild @@ -2,5 +2,4 @@ openSUSE-Addon-NonOss-release openSUSE-Tumbleweed-Kubic-release openSUSE-release - stub diff --git a/openSUSE-Tumbleweed-Kubic-release.spec b/openSUSE-Tumbleweed-Kubic-release.spec index 56dc18dc..e67957ce 100644 --- a/openSUSE-Tumbleweed-Kubic-release.spec +++ b/openSUSE-Tumbleweed-Kubic-release.spec @@ -1,7 +1,7 @@ # -# spec file for package openSUSE-Tumbleweed-Kubic-release (Version 20190121) +# spec file for package openSUSE-Tumbleweed-Kubic-release.spec # -# Copyright (c) 2019 openSUSE. +# 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 @@ -12,15 +12,30 @@ # 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/ +# + Name: openSUSE-Tumbleweed-Kubic-release -%define product openSUSE-Tumbleweed-Kubic -Summary: openSUSE Tumbleweed Kubic Version: 20190121 Release: 0 -License: BSD-3-Clause +Summary: openSUSE Tumbleweed Kubic +License: GPL-2.0-or-later Group: System/Fhs - +BuildRequires: skelcd-openSUSE +Requires: issue-generator +# Make sure we are at SLES12 SP2 level +PreReq: glibc >= 2.19 +# in rare cases, 'ln' is not found... +Requires(post): coreutils +Recommends: branding +Conflicts: distribution-release +Conflicts: kernel < 4.4 +Provides: distribution-release +# Needed to not break installation-images in short turn; this needs to fixed there of course +Provides: openSUSE-Kubic-release +# this package should only be available for the "basearchs" of a product +ExclusiveArch: %ix86 x86_64 ppc64le s390x aarch64 Provides: %name-%version Provides: product() = openSUSE-Tumbleweed-Kubic Provides: product(openSUSE-Tumbleweed-Kubic) = 20190121-0 @@ -31,14 +46,11 @@ Provides: product-endoflife() Requires: product_flavor(openSUSE-Tumbleweed-Kubic) -AutoReqProv: on -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description openSUSE Tumbleweed Kubic combines the benefits of a rolling OS with a container orchestration platform. It is a modern Linux Operating System, designed for containers and optimized for large, clustered deployments. It inherits the benefits of openSUSE Tumbleweed while redefining the operating system into a small, efficient and reliable distribution. - %package dvd License: BSD-3-Clause Group: System/Fhs @@ -61,8 +73,40 @@ openSUSE Tumbleweed Kubic combines the benefits of a rolling OS with a container %build - %install +mkdir -p %{buildroot}%{_sysconfdir} +mkdir -p %{buildroot}%{_libexecdir}/issue.d +echo -e "\nWelcome to openSUSE Tumbleweed Kubic (%{_target_cpu}) - Kernel \\\r (\\\l).\n" > %{buildroot}%{_libexecdir}/issue.d/10-OS +echo -e "\n" > %{buildroot}%{_libexecdir}/issue.d/90-OS + +touch %{buildroot}%{_sysconfdir}/motd + +# Put EULA into correct place +mkdir -p %{buildroot}/%{_sysconfdir}/YaST2/licenses/base +cd %{buildroot}/%{_sysconfdir}/YaST2/licenses/base +if [ -f /CD1/license.tar.gz ]; then + tar -xzf /CD1/license.tar.gz +elif [ -f %{_libexecdir}/skelcd/CD1/license.tar.gz ]; then + tar -xzf %{_libexecdir}/skelcd/CD1/license.tar.gz +fi + +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 <$RPM_BUILD_ROOT/etc/products.d/openSUSE-Tumbleweed-Kubic.prod << EOF @@ -117,12 +161,20 @@ EOF -%clean -rm -rf %buildroot - %files %defattr(644,root,root,755) -%dir /etc/products.d -/etc/products.d/*.prod +%{_sysconfdir}/os-release +%{_libexecdir}/os-release +%dir %{_sysconfdir}/products.d +%{_sysconfdir}/products.d/* +%dir %{_sysconfdir}/YaST2/ +%config(noreplace) %{_sysconfdir}/motd +%dir %{_sysconfdir}/YaST2/licenses/ +%dir %{_sysconfdir}/YaST2/licenses/base/ +# no %doc here, or we will not install them +%{_sysconfdir}/YaST2/licenses/base/license*txt +%{_sysconfdir}/YaST2/licenses/base/no-acceptance-needed +%dir %{_libexecdir}/issue.d +%{_libexecdir}/issue.d/*-OS %changelog diff --git a/openSUSE-release.spec b/openSUSE-release.spec index 90010081..04b2c8c5 100644 --- a/openSUSE-release.spec +++ b/openSUSE-release.spec @@ -1,7 +1,7 @@ # -# spec file for package openSUSE-release (Version 20190121) +# spec file for package openSUSE-release # -# Copyright (c) 2019 openSUSE. +# 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 @@ -12,15 +12,174 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +%define product openSUSE +#define betaversion %{nil} +%define codename Tumbleweed Name: openSUSE-release -%define product openSUSE -Summary: openSUSE Tumbleweed Version: 20190121 Release: 0 +# 0 is the product release, not the build release of this package +Summary: openSUSE Tumbleweed License: BSD-3-Clause Group: System/Fhs - +Source100: weakremovers.inc +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}) < 20190121 +# 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 +# migrated from MANUAL_OBSOLETES/packages +Provides: weakremover(boost-license1_56_0) +Provides: weakremover(boost-license1_59_0) +Provides: weakremover(gpg-pubkey-3d25d3d9-36e12d04) +Provides: weakremover(lib++dfb-1_7-6) +Provides: weakremover(libastro-qt5-1) +Provides: weakremover(libboost_atomic1_59_0) +Provides: weakremover(libboost_atomic1_60_0) +Provides: weakremover(libboost_atomic1_62_0) +Provides: weakremover(libboost_atomic1_63_0) +Provides: weakremover(libboost_chrono1_59_0) +Provides: weakremover(libboost_chrono1_60_0) +Provides: weakremover(libboost_chrono1_62_0) +Provides: weakremover(libboost_chrono1_63_0) +Provides: weakremover(libboost_container1_59_0) +Provides: weakremover(libboost_container1_60_0) +Provides: weakremover(libboost_container1_62_0) +Provides: weakremover(libboost_container1_63_0) +Provides: weakremover(libboost_context1_59_0) +Provides: weakremover(libboost_context1_60_0) +Provides: weakremover(libboost_context1_62_0) +Provides: weakremover(libboost_context1_63_0) +Provides: weakremover(libboost_coroutine1_59_0) +Provides: weakremover(libboost_coroutine1_60_0) +Provides: weakremover(libboost_coroutine1_62_0) +Provides: weakremover(libboost_coroutine1_63_0) +Provides: weakremover(libboost_date_time1_59_0) +Provides: weakremover(libboost_date_time1_60_0) +Provides: weakremover(libboost_date_time1_62_0) +Provides: weakremover(libboost_date_time1_63_0) +Provides: weakremover(libboost_filesystem1_59_0) +Provides: weakremover(libboost_filesystem1_60_0) +Provides: weakremover(libboost_filesystem1_62_0) +Provides: weakremover(libboost_filesystem1_63_0) +Provides: weakremover(libboost_graph1_59_0) +Provides: weakremover(libboost_graph1_60_0) +Provides: weakremover(libboost_graph1_62_0) +Provides: weakremover(libboost_graph1_63_0) +Provides: weakremover(libboost_iostreams1_59_0) +Provides: weakremover(libboost_locale1_59_0) +Provides: weakremover(libboost_log1_59_0) +Provides: weakremover(libboost_log1_60_0) +Provides: weakremover(libboost_log1_62_0) +Provides: weakremover(libboost_log1_63_0) +Provides: weakremover(libboost_math1_59_0) +Provides: weakremover(libboost_program_options1_59_0) +Provides: weakremover(libboost_python1_59_0) +Provides: weakremover(libboost_random1_59_0) +Provides: weakremover(libboost_regex1_59_0) +Provides: weakremover(libboost_regex1_60_0) +Provides: weakremover(libboost_regex1_62_0) +Provides: weakremover(libboost_regex1_63_0) +Provides: weakremover(libboost_serialization1_59_0) +Provides: weakremover(libboost_signals1_59_0) +Provides: weakremover(libboost_system1_56_0) +Provides: weakremover(libboost_system1_59_0) +Provides: weakremover(libboost_test1_59_0) +Provides: weakremover(libboost_thread1_56_0) +Provides: weakremover(libboost_thread1_59_0) +Provides: weakremover(libboost_timer1_59_0) +Provides: weakremover(libboost_wave1_59_0) +Provides: weakremover(libcamel-1_2-54) +Provides: weakremover(libdialog12) +Provides: weakremover(libdirectfb-1_7-6) +Provides: weakremover(libdns146) +Provides: weakremover(libdns160) +Provides: weakremover(libdns161) +Provides: weakremover(libgdict-1_0-9) +Provides: weakremover(libgit2-23) +Provides: weakremover(libgpaste4) +Provides: weakremover(libhdf5-11) +Provides: weakremover(libhdf5_hl11) +Provides: weakremover(libicu54_1) +Provides: weakremover(libicu54_1-ledata) +Provides: weakremover(libicu55_1) +Provides: weakremover(libicu55_1-ledata) +Provides: weakremover(libicu56_1) +Provides: weakremover(libicu56_1-ledata) +Provides: weakremover(libimobiledevice5) +Provides: weakremover(libisc142) +Provides: weakremover(libisc148) +Provides: weakremover(libisl13) +Provides: weakremover(libixion-0_10-0) +Provides: weakremover(liblmdb-0_9_16) +Provides: weakremover(libmicrohttpd11) +Provides: weakremover(libminiupnpc15) +Provides: weakremover(libnis1) +Provides: weakremover(libntfs-3g86) +Provides: weakremover(liborcus-0_10-0) +Provides: weakremover(libpoppler47) +Provides: weakremover(libpoppler48) +Provides: weakremover(libpoppler49) +Provides: weakremover(libpoppler50) +Provides: weakremover(libpoppler51) +Provides: weakremover(libpoppler52) +Provides: weakremover(libpoppler53) +Provides: weakremover(libpoppler54) +Provides: weakremover(libpoppler55) +Provides: weakremover(libpoppler56) +Provides: weakremover(libpoppler57) +Provides: weakremover(libpoppler58) +Provides: weakremover(libpoppler59) +Provides: weakremover(libpoppler61) +Provides: weakremover(libpoppler62) +Provides: weakremover(libpoppler63) +Provides: weakremover(libpoppler64) +Provides: weakremover(libpoppler65) +Provides: weakremover(libprocps4) +Provides: weakremover(libprocps5) +Provides: weakremover(libpsl0) +Provides: weakremover(libsgutils2-1_40-2) +Provides: weakremover(libsgutils2-1_41-2) +Provides: weakremover(libvpx2) +Provides: weakremover(libxtables11) +Provides: weakremover(libzip4) +Provides: weakremover(mt_st) +Provides: weakremover(openssl-debuginfo) +%include %{SOURCE100} Provides: %name-%version Provides: product() = openSUSE Provides: product(openSUSE) = 20190121-0 @@ -43,13 +202,9 @@ Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ft Requires: product_flavor(openSUSE) -AutoReqProv: on -BuildRoot: %{_tmppath}/%{name}-%{version}-build - %description openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project. - %package ftp License: BSD-3-Clause Group: System/Fhs @@ -188,11 +343,60 @@ openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project. %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 < %{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 @@ -314,13 +518,48 @@ 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 -%clean -rm -rf %buildroot +%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 /etc/products.d -/etc/products.d/*.prod +%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