patterns-base/patterns-base.spec
2018-08-21 14:05:27 +00:00

873 lines
26 KiB
RPMSpec

#
# spec file for package patterns-base
#
# 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 http://bugs.opensuse.org/
#
%bcond_with betatest
Name: patterns-base
Version: 20170410
Release: 0
Summary: Patterns for Installation (base patterns)
License: MIT
Group: Metapackages
Url: https://github.com/openSUSE/patterns
Source0: %{name}-rpmlintrc
BuildRequires: patterns-rpm-macros
%description
This is an internal package that is used to create the patterns as part
of the installation source setup. Installation of this package does
not make sense.
This particular package contains all the base / core patterns (and those that don't fit well anywhere else).
################################################################################
%package apparmor
%pattern_basetechnologies
Summary: AppArmor
Group: Metapackages
Provides: patterns-openSUSE-apparmor = %{version}
Provides: pattern() = apparmor
Provides: pattern-icon() = pattern-apparmor
Provides: pattern-order() = 1100
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-apparmor < %{version}
Requires: pattern() = minimal_base
%if 0%{?is_opensuse}
Recommends: pattern() = apparmor_opt
%endif
Requires: apparmor-abstractions
Requires: apparmor-parser
Requires: apparmor-profiles
Recommends: yast2-apparmor
Suggests: pam_apparmor
%if 0%{?is_opensuse}
Requires: audit
Recommends: apparmor-utils
%endif
%description apparmor
AppArmor is an application security framework that provides mandatory access control for programs. It protects from exploitation of software flaws and compromised systems. It offers an advanced tool set that automates the development of per-program application security without requiring additional knowledge.
%files apparmor
%dir %{_docdir}/patterns
%{_docdir}/patterns/apparmor.txt
################################################################################
%if 0%{?is_opensuse}
%package apparmor_opt
%pattern_basetechnologies
Summary: AppArmor
Group: Metapackages
Provides: patterns-openSUSE-apparmor_opt = %{version}
Provides: pattern() = apparmor_opt
Provides: pattern-extends() = apparmor
Provides: pattern-icon() = apparmor%2Fapp_armor.png
Provides: pattern-order() = 1080
Obsoletes: patterns-openSUSE-apparmor_opt < %{version}
Requires: pattern() = minimal_base
Requires: apparmor-docs
%description apparmor_opt
AppArmor is an application security framework that provides mandatory access control for programs. It protects from exploitation of software flaws and compromised systems. It offers an advanced tool set that automates the development of per-program application security without requiring additional knowledge.
%files apparmor_opt
%dir %{_docdir}/patterns
%{_docdir}/patterns/apparmor_opt.txt
%endif
################################################################################
%package basesystem
%pattern_basetechnologies
Summary: Base System (alias pattern for base)
Group: Metapackages
Requires: pattern() = minimal_base
Provides: pattern() = basesystem
Provides: pattern-icon() = pattern-basis
%description basesystem
This is the base runtime system. It contains only a minimal multiuser booting system. For running on real hardware, you need to add additional packages and pattern to make this pattern useful on its own.
%files basesystem
%dir %{_docdir}/patterns
%{_docdir}/patterns/basesystem.txt
################################################################################
%package base
%pattern_basetechnologies
Summary: Base System
Group: Metapackages
Provides: patterns-openSUSE-base = %{version}
Provides: pattern() = base
Provides: pattern-icon() = pattern-basis
Provides: pattern-order() = 1020
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-base < %{version}
Requires: pattern() = minimal_base
Requires: kbd
Requires: openssh
Requires: polkit
Requires: polkit-default-privs
Requires: rpm
Requires: shadow
Requires: util-linux
Requires: which
Recommends: bash-completion
Recommends: ca-certificates-mozilla
%ifarch ppc
Recommends: libbspe
# #739878 - install pdisk by default
Recommends: pdisk
Recommends: spu-tools
%endif
# Add some static base tool in case system explodes
Recommends: busybox-static
%if 0%{?is_opensuse}
# get it branded
Recommends: branding-openSUSE
%endif
%ifarch %ix86 x86_64
Recommends: grub2
%endif
%ifarch %ix86
Recommends: grub2-i386-efi
%endif
%ifarch x86_64
Recommends: grub2-x86_64-efi
Recommends: shim
%endif
%ifarch ppc ppc64 ppc64le
Recommends: grub2-powerpc-ieee1275
%endif
%ifarch aarch64
Recommends: grub2-arm64-efi
%endif
%description base
This is the base runtime system. It contains only a minimal multiuser booting system. For running on real hardware, you need to add additional packages and pattern to make this pattern useful on its own.
%files base
%dir %{_docdir}/patterns
%{_docdir}/patterns/base.txt
################################################################################
%package console
%pattern_basetechnologies
Summary: Console Tools
Group: Metapackages
Provides: patterns-openSUSE-console = %{version}
Provides: pattern() = console
Provides: pattern-icon() = yast-system
Provides: pattern-order() = 1120
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-console < %{version}
Requires: pattern() = enhanced_base
Recommends: pattern() = yast2_basis
Recommends: ed
Recommends: emacs-nox
Recommends: w3m
Suggests: lftp
Suggests: mlocate
Suggests: mutt
%if 0%{?is_opensuse}
Recommends: at
Recommends: bc
Recommends: libyui-ncurses
Recommends: libyui-ncurses-pkg
Recommends: mc
Recommends: mosh
Recommends: mtools
Recommends: chrony
Recommends: sensors
Recommends: susepaste
Recommends: susepaste-screenshot
Recommends: tmux
Suggests: alpine
Suggests: bsd-games
Suggests: cnetworkmanager
Suggests: convert
Suggests: dar
Suggests: ding
Suggests: gcal
Suggests: grepmail
Suggests: irssi
Suggests: links
Suggests: lynx
Suggests: minicom
Suggests: ncftp
Suggests: pico
Suggests: pinfo
Suggests: slrn
Suggests: units
Suggests: vlock
%endif
%description console
Applications useful for those using the console and no graphical desktop environment.
%files console
%dir %{_docdir}/patterns
%{_docdir}/patterns/console.txt
################################################################################
%package enhanced_base
%pattern_basetechnologies
Summary: Enhanced Base System
Group: Metapackages
Provides: patterns-openSUSE-enhanced_base = %{version}
Provides: pattern() = enhanced_base
Provides: pattern-icon() = pattern-basis
Provides: pattern-order() = 1060
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-enhanced_base < %{version}
Requires: pattern() = base
Recommends: pattern() = apparmor
Recommends: pattern() = enhanced_base_opt
Recommends: pattern() = sw_management
Recommends: pattern() = yast2_basis
# firewall by default
Recommends: firewalld
Recommends: aaa_base-extras
# getfacl and setfacl
Recommends: acl
# #302569
Recommends: alsa-plugins
# getattr and setattr
Recommends: attr
Recommends: autofs
Recommends: bind-utils
# compressor is interesting
Recommends: bzip2
# #375103
Recommends: cifs-utils
Recommends: command-not-found
# we rely on cron for daily/hourly
Recommends: cronie
Recommends: cryptsetup
# cups server for remote printing queues
Recommends: cups
# printing considered cool
Recommends: cups-client
Recommends: curl
Recommends: cyrus-sasl
Recommends: cyrus-sasl-crammd5
Recommends: cyrus-sasl-digestmd5
Recommends: cyrus-sasl-gssapi
Recommends: cyrus-sasl-plain
# bnc#430895
# cyrus-sasl-saslauthd
# delta rpms are considered cool for updates
Recommends: deltarpm
Recommends: diffutils
Recommends: dos2unix
Recommends: e2fsprogs
Recommends: file
Recommends: fillup
Recommends: findutils
Recommends: gawk
Recommends: genisoimage
Recommends: gettext-runtime
Recommends: glibc-locale
Recommends: gpart
Recommends: gpg2
Recommends: gpm
Recommends: hdparm
Recommends: hwinfo
Recommends: info
Recommends: initviocons
# /bin/ip considered useful
Recommends: iproute2
# ping is required for network tests
Recommends: iputils
Recommends: irqbalance
# #303857
Recommends: kpartx
# pager
Recommends: less
Recommends: lsscsi
Recommends: mailx
# man by default (#304687)
Recommends: man
# needed for detecting software raid - required by yast2-storage too
Recommends: mdadm
# split out of ncurses
Recommends: ncurses-utils
Recommends: netcat-openbsd
Recommends: netcfg
Recommends: nfs-client
Recommends: nfsidmap
Recommends: nscd
Recommends: openslp
# we want a ssh server to be available
Recommends: openssh
Recommends: parted
Recommends: pciutils
Recommends: perl-base
Recommends: postfix
Recommends: rsync
# Bug 424707 - Feature "Command not found" for openSUSE by default
Recommends: scout
Recommends: screen
Recommends: sg3_utils
Recommends: smartmontools
Recommends: sysconfig
Recommends: systemd-sysvinit
Recommends: tar
Recommends: time
Recommends: timezone
Recommends: udev
# autoconfig new printers - bnc#808014
Recommends: udev-configure-printer
# lsusb is good for debugging USB devices - #401593
Recommends: usbutils
# Our editor of choice
Recommends: vim
Recommends: wget
Recommends: xz
Recommends: zisofs-tools
# DELL computers mainly #403270, but #441079
Suggests: biosdevname
Suggests: cpupower
# #437252
Suggests: pam_ssh
Suggests: xfsprogs
Suggests: zip
%ifarch aarch64 %ix86 x86_64
Recommends: dmidecode
%endif
# Current systems suffer from entropy starvation
%ifarch aarch64 %ix86 x86_64 ppc64 ppc64le
Recommends: haveged
%endif
%ifarch ppc
Recommends: hfsutils
%endif
%ifarch ppc
# #303737
Recommends: mouseemu
Recommends: pdisk
Recommends: powerpc32
%endif
# openSUSE Branding packages first
%if 0%{?is_opensuse}
# we want a branded grub2 too #757683
Recommends: grub2-branding-openSUSE
Recommends: release-notes-openSUSE
%endif
# Other packages we have in openSUSE and not SLE-15
%if 0%{?is_opensuse}
Recommends: dmraid
Recommends: dosfstools
Recommends: ethtool
Recommends: ifplugd
Recommends: klogd
Recommends: lsof
Recommends: master-boot-code
# boo#1034493
Recommends: nano
# mount NTFS rw
Recommends: ntfs-3g
Recommends: ntfsprogs
Recommends: chrony
Recommends: openldap2-client
Recommends: prctl
# fuser (psmisc) by default (#304694)
Recommends: psmisc
Recommends: smp_utils
# useful for debugging
Recommends: strace
Recommends: sudo
Recommends: syslinux
# having a ftp command line client is good for moving log files
Recommends: tnftp
Recommends: tuned
Recommends: wireless-tools
Recommends: wol
%ifarch %ix86 x86_64
Recommends: acpica
%endif
%ifarch x86_64
Recommends: mcelog
%endif
%ifarch aarch64 x86_64
Recommends: numactl
%endif
%ifarch %ix86 x86_64
Recommends: ucode-amd
Recommends: ucode-intel
%endif
%endif
%description enhanced_base
This is the enhanced base runtime system with lots of convenience packages.
%files enhanced_base
%dir %{_docdir}/patterns
%{_docdir}/patterns/enhanced_base.txt
################################################################################
%package enhanced_base_opt
%pattern_basetechnologies
Summary: Enhanced Base System
Group: Metapackages
Provides: patterns-openSUSE-enhanced_base_opt = %{version}
Provides: pattern() = enhanced_base_opt
Provides: pattern-extends() = enhanced_base
Provides: pattern-icon() = yast-software
Provides: pattern-order() = 1040
Obsoletes: patterns-openSUSE-enhanced_base_opt < %{version}
Recommends: OpenPrintingPPDs
Recommends: cracklib-dict-full
Recommends: groff
Recommends: man-pages-posix
# needed as soon as you want to do kerberos authentication
Suggests: cyrus-sasl-gssapi
Suggests: hfsutils
Suggests: unzip
# #754959
%ifarch %ix86 x86_64
Suggests: hyper-v
%endif
%if 0%{?is_opensuse}
Recommends: joe
Recommends: ksymoops
Recommends: man-pages
Recommends: manufacturer-PPDs
Recommends: mpt-status
Recommends: perl-TermReadLine-Gnu
Recommends: prctl
Recommends: procinfo
Recommends: procmail
Recommends: providers
Recommends: setserial
Recommends: sharutils
Recommends: spax
Recommends: strace
Recommends: tcpdump
Recommends: telnet
Recommends: terminfo
Recommends: vlan
Recommends: wol
Suggests: acpid
Suggests: delayacct-utils
# bnc#388570
Suggests: kerneloops
Suggests: ocfs2-tools
Suggests: pwgen
Suggests: w3m-el
# delta apply
Suggests: xdelta
# tool for xfs
Suggests: xfsdump
%endif
%description enhanced_base_opt
This is the enhanced base runtime system with lots of convenience packages.
%files enhanced_base_opt
%dir %{_docdir}/patterns
%{_docdir}/patterns/enhanced_base_opt.txt
################################################################################
%package minimal_base
%pattern_basetechnologies
Summary: Base System
Group: Metapackages
Provides: patterns-openSUSE-minimal_base = %{version}
Provides: pattern() = minimal_base
Provides: pattern-icon() = yast-sw_single
Provides: pattern-order() = 5190
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-minimal_base < %{version}
Requires: aaa_base
Requires: bash
Requires: coreutils
Requires: device-mapper
Requires: dracut
Requires: e2fsprogs
Requires: filesystem
Requires: glibc
Requires: kbd
Requires: kmod
Requires: pam
Requires: procps
Requires: rpm
Requires: sysconfig
Requires: system-group-hardware
Requires: system-user-nobody
Requires: systemd
Requires: zypper
Recommends: btrfsmaintenance
Recommends: btrfsprogs
Recommends: elfutils
Recommends: grub2
Recommends: iproute2
Recommends: openssh
Recommends: pattern() = minimal_base_conflicts
%if 0%{?sle_version}
Recommends: rollback-helper
%endif
Recommends: snapper
Recommends: system-group-trusted
Recommends: system-group-wheel
Recommends: system-user-bin
Recommends: system-user-daemon
Recommends: systemd-coredump
Recommends: sysvinit-tools
Recommends: udev
Suggests: ed
%if 0%{?is_opensuse}
Requires: openSUSE-build-key
Requires: openSUSE-release
%else
Requires: sles-release
Recommends: SUSEConnect
Recommends: suse-build-key
%endif
%ifarch x86_64 %arm
Recommends: efibootmgr
%endif
%description minimal_base
This is the minimal openSUSE runtime system. It is really a minimal system, you can login and a shell will be started, that's all. It is intended as base for Appliances.
%files minimal_base
%dir %{_docdir}/patterns
%{_docdir}/patterns/minimal_base.txt
################################################################################
%package minimal_base_conflicts
%pattern_basetechnologies
Summary: Base System
Group: Metapackages
Provides: patterns-openSUSE-minimal_base-conflicts = %{version}
Provides: pattern() = minimal_base_conflicts
Provides: pattern-icon() = yast-sw_single
Provides: pattern-order() = 5191
Obsoletes: patterns-openSUSE-minimal_base-conflicts < %{version}
Requires: pattern() = minimal_base
Conflicts: cups-client
Conflicts: desktop-translations
Conflicts: glib-networking
# supplements into glib
Conflicts: gsettings-backend-dconf
Conflicts: gvfs
# systemd recommends dbus-1-python
Conflicts: python
# python-base ~ 20MB
Conflicts: python-base
# recommended by yast2-printer
Conflicts: samba-client
Conflicts: vim-data
# requires all kinds of perl modules
Conflicts: xdg-utils
# requires python
Conflicts: zypper-log
%if 0%{?is_opensuse}
# required by gio-branding
Conflicts: desktop-data-openSUSE
%endif
%if 0%{?is_opensuse}
Conflicts: bash-doc
Conflicts: bundle-lang-gnome-extras-en
# perl ~ 40MB ## - we can't conflict with that as perl-Bootloader-YAML needs it
#Conflicts: perl
# binutils ~ 30MB
#Conflicts: binutils
# pulls perl
#Conflicts: zypper-aptitude
# pulls perl
#Conflicts: perl-gettext
# gtk3
Conflicts: gtk3-branding
Conflicts: gtk3-immodule-amharic
Conflicts: gtk3-immodule-inuktitut
Conflicts: gtk3-immodule-thai
Conflicts: gtk3-immodule-tigrigna
Conflicts: gtk3-immodule-vietnamese
# supplements libgio and wget (TODO)
Conflicts: libproxy1-config-gnome3
Conflicts: netpbm
# requires X11
Conflicts: openssh-askpass
Conflicts: perl-doc
Conflicts: readline-doc
Conflicts: smtp_daemon
# supplements yast2, not needed for ncurses only
Conflicts: yast2-branding
%endif
%description minimal_base_conflicts
This is the base runtime system. It contains only a minimal multiuser booting system. For running on real hardware, you need to add additional packages and pattern to make this pattern useful on its own.
%files minimal_base_conflicts
%dir %{_docdir}/patterns
%{_docdir}/patterns/minimal_base_conflicts.txt
################################################################################
%package transactional_base
%pattern_basetechnologies
Summary: Transactional Base System
Group: Metapackages
Provides: pattern() = transactional_base
Provides: pattern-icon() = yast-system
Provides: pattern-order() = 1050
Obsoletes: pattern() = readonly_root_tools
Requires: pattern() = enhanced_base
Requires: libnss_usrfiles2
Requires: read-only-root-fs
Requires: systemd-presets-branding-transactional-server
Requires: transactional-update
Suggests: health-checker
Requires: rebootmgr
%description transactional_base
This is the base system for a host updated by Transactional Updates. Includes Tools for systems with a read-only root filesystem.
%files transactional_base
%dir %{_docdir}/patterns
%{_docdir}/patterns/transactional_base.txt
################################################################################
%package sw_management
%pattern_basetechnologies
Summary: Software Management
Group: Metapackages
Provides: patterns-openSUSE-sw_management = %{version}
Provides: pattern() = sw_management
Provides: pattern-icon() = yast-sw_single
Provides: pattern-order() = 1360
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-sw_management < %{version}
Recommends: pattern() = sw_management_x11
# Zypper is the basic sw_management stack for *SUSE
Requires: zypper
%if 0%{?sle_version}
Recommends: lifecycle-data
Recommends: zypper-lifecycle-plugin
%endif
%description sw_management
This pattern provides a graphical application and a command line tool for keeping your system up to date.
%files sw_management
%dir %{_docdir}/patterns
%{_docdir}/patterns/sw_management.txt
################################################################################
%package update_test
%pattern_basetechnologies
Summary: Tests for the Update Stack
Group: Metapackages
Provides: patterns-openSUSE-update_test = %{version}
Provides: pattern() = update_test
Provides: pattern-icon() = yast-update
Provides: pattern-order() = 1380
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-update_test < %{version}
Recommends: update-test-affects-package-manager
Recommends: update-test-interactive
Recommends: update-test-optional
Recommends: update-test-reboot-needed
Recommends: update-test-security
Recommends: update-test-trival
%if %{with betatest}
Recommends: aaa_base-malloccheck
Supplements: %{name}-base
%endif
%description update_test
Packages used for testing that the update stack works. These tiny packages do not have any functionality themselves.
%files update_test
%dir %{_docdir}/patterns
%{_docdir}/patterns/update_test.txt
################################################################################
%package x11
%pattern_graphicalenvironments
Summary: X Window System
Group: Metapackages
Provides: patterns-openSUSE-x11 = %{version}
Provides: pattern() = x11
Provides: pattern-icon() = yast-x11
Provides: pattern-order() = 1800
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-x11 < %{version}
Requires: pattern() = enhanced_base
Requires: pattern() = fonts
Recommends: pattern() = x11_yast
%if 0%{?is_opensuse}
Recommends: pattern() = x11_opt
%endif
Recommends: command-not-found
Recommends: ghostscript-x11
# chooce icewm-default if you have a choice
# icewm-lite is too lightweight in new release
Recommends: icewm-default
Recommends: tigervnc
# #353229 - drag in empty replacements
Recommends: translation-update
Recommends: xauth
Recommends: xkeyboard-config
Recommends: xorg-x11-driver-video
# provides e.g. xdm
Recommends: xorg-x11-essentials
Recommends: xorg-x11-server
Recommends: xterm-bin
Recommends: xtermset
Suggests: gvim
Suggests: hexchat
# required by others
Suggests: icewm
Suggests: tk
%if 0%{?is_opensuse}
# #394406
Suggests: desktop-data-openSUSE-extra
%endif
%if 0%{?is_opensuse}
# people love having numlock configurable
Recommends: numlockx
Recommends: openssh-askpass
Recommends: susepaste
Recommends: susepaste-screenshot
Suggests: wpa_supplicant-gui
# include boot splash for graphical environments
Recommends: plymouth
Recommends: plymouth-branding-openSUSE
%endif
%description x11
The X Window System provides the only standard platform-independent networked graphical window system bridging the heterogeneous platforms in today's enterprise: from network servers to desktops, thin clients, laptops, and handhelds, independent of operating system and hardware.
%files x11
%dir %{_docdir}/patterns
%{_docdir}/patterns/x11.txt
################################################################################
%if 0%{?is_opensuse}
%package x11_opt
%pattern_graphicalenvironments
Summary: X Window System
Group: Metapackages
Provides: patterns-openSUSE-x11_opt = %{version}
Provides: pattern() = x11_opt
Provides: pattern-extends() = x11
Provides: pattern-icon() = yast-x11
Provides: pattern-order() = 1680
Obsoletes: patterns-openSUSE-x11_opt < %{version}
Requires: pattern() = enhanced_base
Requires: pattern() = fonts
# needed e.g. for nvidia drivers
# #302566
Recommends: x11-tools
Recommends: xdmbgrd
Recommends: xorg-x11-libX11-ccache
Suggests: xorg-x11-driver-video-radeonhd
Suggests: xorg-x11-driver-video-unichrome
Suggests: MozillaThunderbird
Suggests: WindowMaker
Suggests: WindowMaker-applets
Suggests: WindowMaker-themes
Suggests: unclutter
Suggests: xlockmore
# #389816
Suggests: xorg-x11-server-sdk
%description x11_opt
The X Window System provides the only standard platform-independent networked graphical window system bridging the heterogeneous platforms in today's enterprise: from network servers to desktops, thin clients, laptops, and handhelds, independent of operating system and hardware.
%files x11_opt
%dir %{_docdir}/patterns
%{_docdir}/patterns/x11_opt.txt
%endif
################################################################################
%package x86
%pattern_basetechnologies
Summary: x86 Runtime Environment
Group: Metapackages
Provides: patterns-openSUSE-x86 = %{version}
Provides: pattern() = x86
Provides: pattern-icon() = yast-misc
Provides: pattern-order() = 1180
Provides: pattern-visible()
Obsoletes: patterns-openSUSE-x86 < %{version}
%ifarch x86_64
Recommends: glibc-32bit
Recommends: glibc-locale-32bit
%endif
%description x86
This will install the 32-bit variant of all selected patterns. This allows to execute 32-bit software.
%files x86
%dir %{_docdir}/patterns
%{_docdir}/patterns/x86.txt
################################################################################
%prep
%build
%install
mkdir -p %{buildroot}%{_docdir}/patterns
%if 0%{?is_opensuse}
for i in apparmor apparmor_opt base basesystem console enhanced_base \
enhanced_base_opt minimal_base minimal_base_conflicts transactional_base sw_management \
update_test x11 x11_opt x86; do
%else
for i in apparmor base basesystem console enhanced_base \
enhanced_base_opt minimal_base minimal_base_conflicts sw_management \
update_test x11 x86; do
%endif
echo "This file marks the pattern $i to be installed." \
>"%{buildroot}%{_docdir}/patterns/$i.txt"
done
%changelog