File patterns-yuga.spec of Package patterns-yuga

%bcond_with betatest

Name:           patterns-yuga
Version:        1.0
Release:        0
Summary:        Patterns for Yuga Linux
License:        MIT
Group:          Metapackages
URL:            http://en.opensuse.org/Patterns
Source0:        %name.rpmlintrc
ExclusiveArch:  x86_64

%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.

%package base
Summary:        Yuga Linux
Group:          Metapackages
Provides:       pattern() = yuga_base
Provides:       pattern-category() = Yuga
Provides:       pattern-icon() = pattern-kubic
Provides:       pattern-order() = 9200
%if %{with betatest}
# need to require it as recommends are off
Requires:       pattern() = update_test
%endif

### Packages formerly provided by minimal_base
Requires:       branding
Requires:       build-key
Requires:       distribution-release
Requires:       filesystem

### Packages formerly provided by base/basesystem
Requires:       /usr/bin/hostname
Requires:       aaa_base
Requires:       bash
Requires:       branding-openSUSE
Requires:       btrfsprogs
Requires:       ca-certificates
Requires:       ca-certificates-mozilla
Requires:       coreutils
Requires:       coreutils-systemd
Requires:       glibc
Suggests:       busybox-hostname
Requires:       NetworkManager
Requires:       NetworkManager-bluetooth
Requires:       NetworkManager-wifi
Requires:       iproute2
Requires:       lastlog2
Requires:       libnss_usrfiles2
Requires:       openSUSE-build-key
Requires:       pam
Requires:       pam-config
Requires:       procps
Requires:       rpm
Requires:       shadow
Requires:       systemd
Requires:       util-linux
Requires:       group(nobody)
Requires:       user(nobody)

####
Requires:       btrfsmaintenance
Requires:       busybox
Requires:       chrony
# curl indirectly needed by ignition via dracut's url-lib
Requires:       curl
# probably needed for fsck.fat on efi partitions
Requires:       /usr/bin/gzip
Requires:       Yuga-release
Requires:       dosfstools
Requires:       glibc-locale-base
Suggests:       busybox-gzip
Requires:       health-checker
Requires:       health-checker-plugins-MicroOS
Requires:       iputils
%ifnarch %{arm}
Requires:       kdump
%endif
Requires:       less
Requires:       microos-tools
Requires:       snapper
Requires:       vim-small
Requires:       wtmpdb
# people are addicted to sudo
Requires:       sudo
# let users authorize with their own password
Requires:       sudo-policy-wheel-auth-self
Requires:       systemd-presets-branding-Yuga
Requires:       terminfo-base
Requires:       timezone
Conflicts:      gettext-runtime-mini
Conflicts:      krb5-mini
Obsoletes:      suse-build-key < 12.1
Requires:       yast2-logs
Requires:       exfatprogs
Requires:       distribution-logos-Yuga

### Packages formerly provided by base_zypper
Requires:       transactional-update
Requires:       transactional-update-zypp-config
Requires:       zypper
# zypper ps is useless in transactional mode. It also checks for
# /run/reboot-needed though which is created by transactional-update
Requires:       zypper-needs-restarting

### Packages formerly provided by defaults
Requires:       audit
Requires:       systemd-coredump

### Packages formerly provided by hardware
Requires:       ethtool
%ifnarch s390x
Requires:       irqbalance
%endif
Requires:       fcoe-utils
Requires:       hwinfo

### Packages formerly provided by selinux
Requires:       container-selinux
Requires:       policycoreutils
Requires:       selinux-policy-targeted
Requires:       selinux-tools

### Packages formerly provided by x11
Requires:       xf86-input-libinput
Requires:       xorg-x11-fonts-core
Requires:       xorg-x11-server
Requires:       lightdm
Requires:       lightdm-kde-greeter
Requires:       lightdm-kde-greeter-branding-upstream

### Packages formerly provided by desktop-common
# PipeWire is the default sound server
Requires:       gstreamer-plugin-pipewire
Requires:       pipewire-alsa
Requires:       pipewire-pulseaudio
Requires:       alsa-ucm-conf
# Allow users to print (and add some common printer drivers)
Requires:       OpenPrintingPPDs
Requires:       bluez-cups
Requires:       cups
Requires:       cups-filters
Requires:       cups-pk-helper
Requires:       epson-inkjet-printer-escpr
Requires:       ghostscript
Requires:       hplip-hpijs
Requires:       system-config-printer-common
Requires:       system-config-printer-dbus-service
Requires:       udev-configure-printer
Requires:       sane-backends
# Add thunderbolt device management (boo#1208150)
Requires:       bolt
# Common tools
Requires:       bash-completion
Requires:       bluez-firmware
Requires:       glibc-locale
Requires:       hicolor-icon-theme-branding-openSUSE
Requires:       policycoreutils-python-utils
Requires:       polkit-default-privs
Requires:       systemd-icon-branding-openSUSE
Requires:       udisks2
Requires:       unzip
Requires:       upower
Requires:       wget
Requires:       xdg-utils
# Support ntfs drives
Requires:       ntfs-3g
Requires:       ntfsprogs
# More "comfortable" base package versions
Requires:       gzip
Requires:       hostname
%if 0%{is_opensuse}
Requires:       avahi
%endif
# Desktop notifications about transactional update succeeding/failing
# for the masses
Requires:       transactional-update-notifier
# Needed by both GNOME and KDE for theming of GTK-based flatpak apps properly
Requires:       xdg-desktop-portal-gtk
# Needed to ensure MicroOS Desktop systems are be able to handle varied hardware out
# of the box, and not only during the system installation.
Requires:       kernel-firmware-all
Requires:       sof-firmware

Requires:       system-group-wheel

# from data/COMMON-DESKTOP
Requires:       desktop-file-utils

Requires:       flatpak

# Some fonts
Requires:       adobe-sourcecodepro-fonts
Requires:       adobe-sourcesanspro-fonts
Requires:       adobe-sourceserifpro-fonts
Requires:       dejavu-fonts
Requires:       ghostscript-fonts-other
Requires:       ghostscript-fonts-std
Requires:       google-carlito-fonts
Requires:       google-droid-fonts
Requires:       google-opensans-fonts
Requires:       google-roboto-fonts
Requires:       noto-coloremoji-fonts
Requires:       noto-emoji-fonts
Requires:       noto-sans-fonts
Requires:       noto-sans-math-fonts
Requires:       google-noto-sans-cjk-fonts
Requires:       google-noto-coloremoji-fonts

# We need this for accessability and the lack of it causes big performance issues (boo#1204564)
Requires:       at-spi2-core

# So that GNOME prompt for ssh password works
Requires:       openssh-askpass-gnome
Requires:       samba
# #509829
Requires:       xdg-user-dirs-gtk
Requires:       power-profiles-daemon

### Packages formerly provided by kiwi file
Requires:       kernel-yuga
### systemd-zram stuff
Requires:       systemd-zram-service
### Virtualisation support
Requires:       spice-vdagent
Requires:       qemu-guest-agent
Requires:       distrobox
Requires:       podman

Requires:       tpm2-0-tss
Requires:       tpm2.0-abrmd
Requires:       tpm2.0-tools

Requires:       pkexec

Requires:       systemd-experimental
Requires:       systemd-repart-branding-Yuga
### Firstboot Configuration
Requires:       ignition-dracut
Requires:       combustion
Requires:       dracut-pcr-signature
Requires:       systemd-boot
Requires:       efibootmgr
Requires:       sdbootutil
Requires:       sdbootutil-snapper
Requires:       sdbootutil-tukit
Requires:       sdbootutil-bash-completion

Requires:       shim
Requires:       uefi_mbr
Requires:       iio-sensor-proxy

Requires:       jupiter-fan-control
Requires:       jupiter-hw-support
Requires:       jupiter-dock-updater-bin
Requires:       gamescope-plus
Requires:       gamescope-session
Requires:       gamescope-session-steam
Requires:       gamescope-shaders
Requires:       sdgyrodsu
Requires:       steam
Requires:       steam-devices
Requires:       mangoapp
Requires:       plymouth
Requires:       plymouth-dracut
Requires:       plymouth-branding-Yuga
Requires:       deckifier
Requires:       extest-32bit
Requires:       steamdeck-firmware
Requires:       steamdeck-dsp
Requires:       galileo-mura
Requires:       handygccs
Requires:       steam-powerbuttond
#Vulkan
Requires:       kernel-firmware-amdgpu
Requires:       libdrm_amdgpu1
Requires:       libdrm_amdgpu1-32bit
Requires:       libdrm_radeon1
Requires:       libdrm_radeon1-32bit
Requires:       libvulkan_radeon
Requires:       libvulkan_radeon-32bit
Requires:       libvulkan1
Requires:       libvulkan1-32bit
Requires:       libvulkan_intel
#sdcard checking
Requires:       f3

Requires:       fprintd
Requires:       fprintd-pam

Requires:       bluez-obexd
Requires:       cifs-utils
#extra
Requires:       ryzenadj

#more gamepads
Requires:       xpad-noone-kmp-yuga

#Encryption with controllers
Requires:       deckrypt

#configure wireless devices
Requires:       wireless-regdb

%description base
This is the openSUSE Yuga base system. It contains only fully working immutable desktop system.

%package kde
Summary:        Yuga KDE Package
Group:          Metapackages
Provides:       pattern() = yuga_kde
Provides:       pattern-category() = Yuga
Provides:       pattern-icon() = pattern-kubic
Provides:       pattern-order() = 9200
Provides:       pattern-visible()



Requires:       plasma-branding-Yuga
Requires:       polkit-kde-agent-6

# Some basic system tools
Requires:       featherpad
Requires:       konsole
# Add KDE Partition Manager (boo#1212925)
Requires:       partitionmanager

# Add ksshaskpass5 (boo#1215407)
Requires:       ksshaskpass6

# Recommended by kde_plasma
Requires:       bluedevil6
Requires:       breeze6-wallpapers
Requires:       dolphin
Requires:       kde-print-manager
Requires:       plasma6-print-manager
Requires:       kgamma6
Requires:       phonon-vlc-qt6
Requires:       plasma6-nm
Requires:       plasma6-workspace-wallpapers

# Manually pull in baloo5-file to better support desktip search functions/desktop integration
Requires:       kf6-baloo-file

# For NetworkManager support of openVPN Connections
Requires:       NetworkManager-openvpn
Requires:       openvpn-auth-pam-plugin
Requires:       plasma6-nm-openconnect
Requires:       plasma6-nm-openvpn

Requires:       kio-extras
Requires:       kwalletmanager
Suggests:       kwalletmanager
Requires:       pinentry-qt5
#Requires:	plasma6-addons
Requires:       plasma6-pa
Requires:       plasma6-session
Requires:       plasma6-session-x11
Requires:       sddm-qt6

# Recommends and Supplements won't work so pull in manually
Requires:       discover6-backend-flatpak
Requires:       discover6-backend-fwupd
Requires:       kde-gtk-config6
Requires:       kde-gtk-config6-gtk3
Requires:       plasma-browser-integration
Requires:       kf6-purpose
Requires:       kf6-qqc2-desktop-style
Requires:       sddm-qt6-branding-openSUSE
Requires:       xdg-desktop-portal-kde6

# Doesnt depend on PackageKit, but also works for other backends
Requires:       discover6-notifier

# Spectacle to be able to take screenshots out of the box
Requires:       spectacle

# KAccounts to be installed by default (boo#1216397)
Requires:       kaccounts-integration
Requires:       kaccounts-providers
Requires:       kio-gdrive

# Default Plasma app to quickly use emojis
Requires:       plasma6-desktop-emojier

# Breeze GTK2, GTK3, and GTK4
Requires:       (gtk4-metatheme-breeze6 if gtk4)
Requires:       (gtk2-metatheme-breeze6 if gtk2)
Requires:       (gtk3-metatheme-breeze6 if gtk3)

# Default Plasma/Oxygen sounds for applications
Requires:       oxygen5-sounds

# Plasma system monitor
Requires:       plasma6-systemmonitor

# For seeing thumbnails in Dolphin
Requires:       qt6-imageformats
Requires:       ffmpegthumbs
Requires:       kdegraphics-thumbnailers
Requires:       kf6-kimageformats

# For being able to change SDDM Settings
Requires:       sddm-kcm6

# Add for mounting network shares in userspace (boo#1210125)
Requires:       kio-fuse
Requires:       kdenetwork-filesharing

# Add kcm_flatpak for managing flatpak permissions (boo#1208256)
Requires:       flatpak-kcm6

# Add pam_kwallet to unlock the password store automatically
Requires:       pam_kwallet6

# KDE Connect to communicate to phone devices
Requires:       kdeconnect-kde

# Warn when apps are using all inotify watches and prompts the user to raise it
Requires:       kde-inotify-survey

# For crisp status notifier systray icons
Requires:       libappindicator-gtk3

Requires:       steamdeck-kde-presets
Requires:       deckifier-session-kde

%description kde
This package provides the packages for the KDE Desktop environment

%package gnome
Summary:        Yuga GNOME Package
Group:          Metapackages
Provides:       pattern() = yuga_gnome
Provides:       pattern-category() = Yuga
Provides:       pattern-icon() = pattern-kubic
Provides:       pattern-order() = 9200
Provides:       pattern-visible()



# gnome-initial-setup requirements
Requires:       gnome-initial-setup
Requires:       gjs

Requires:       gnome-keyring-pam

Requires:       gnome-disk-utility
Requires:       gnome-shell
Requires:       gnome-settings-daemon

Requires:       gnome-session-default-session
# ensure we have wayland session available (and used by default)
Requires:       gnome-session-wayland
# boo#1090117
Requires:       gnome-branding-Yuga
Requires:       gnome-color-manager
Requires:       gnome-software
Requires:       gnome-system-monitor
Requires:       gnome-terminal
Requires:       gnome-tweak-tool
Requires:       gnome-user-docs
# bnc#879466
Requires:       gpgme
# for online accounts and calendar integration
Requires:       gnome-bluetooth
# for display color profile support
Requires:       gnome-control-center-color
Requires:       gnome-remote-desktop
Requires:       openssh
# needed to ensure bluetooth is enabled at startup (glgo#GNOME/gnome-bluetooth#110)
Requires:       bluez-auto-enable-devices
Requires:       gnome-control-center-goa
Requires:       gnome-online-accounts
Requires:       gnome-shell-calendar
# For seeing thumbnails in Nautilus
Requires:       jxl-thumbnailer
Requires:       gdk-pixbuf-thumbnailer
Requires:       gsf-office-thumbnailer
Requires:       rsvg-thumbnailer
# So that GNOME shell extensions can be installed
Requires:       chrome-gnome-shell

Requires:       gnome-control-center-users
Requires:       gnome-control-center-user-faces
# we need something for xdg-su
Requires:       gnome-shell-search-provider-nautilus
Requires:       libgnomesu
Requires:       nautilus
Requires:       nautilus-extension-terminal
# Some extensions add context menus to nautilus using python scripts (example GSConnect)
# For this to work we need nautilus-python bindings
Requires:       python3-nautilus
Requires:       nautilus-share
# For encrypting and decrypting files to work in Nautilus
Requires:       nautilus-extension-seahorse
Requires:       seahorse-daemon
# So Trash and mounting USB sticks work in Nautilus
Requires:       gvfs-backends
Requires:       gvfs-backend-afc
Requires:       gvfs-backend-goa
Requires:       gvfs-fuse
# We need the icons to work
Requires:       adwaita-icon-theme
# So that GNOME keyring works
Requires:       gcr-ssh-askpass
Requires:       gcr3-ssh-askpass
# So that GNOME pinentry works
Requires:       pinentry-gnome3
Requires:       gvfs-backend-samba
Requires:       samba
# So that GNOME builtin screen recorder works
Requires:       gstreamer-plugins-bad
Requires:       gstreamer-plugins-good

Requires:       yelp
# Polkit integration with GNOME
Requires:       polkit-gnome
# https://build.opensuse.org/request/show/921373
Requires:       xdg-desktop-portal-gnome
#
# Low-level parts that we need
#
%if 0%{is_opensuse}
# bnc#430161
Requires:       NetworkManager-openconnect-gnome
Requires:       NetworkManager-openvpn-gnome
Requires:       canberra-gtk-play
#
# Branding
#
# #591535
Requires:       gtk2-branding-openSUSE
Requires:       gtk3-branding-openSUSE
Requires:       gtk4-branding-openSUSE
%endif

Requires:       gnome-menus-branding-openSUSE
Requires:       gsettings-backend-dconf

Requires:       gnome-backgrounds
Requires:       gnome-shell-extension-gtk4-ding
Requires:       gnome-shell-extension-dash-to-dock
Requires:       gnome-shell-extension-appindicator
Requires:       deckifier-session-gnome
Requires:       steamdeck-kde-themes

%description gnome
This package provides the packages for the GNOME Desktop environment

%prep
# empty on purpose

%build
# empty on purpose

%install
mkdir -p %{buildroot}%{_docdir}/patterns-yuga/
PATTERNS='
    base
    kde
    gnome
'
for i in $PATTERNS; do
    echo "This file marks the pattern $i to be installed." \
        > %{buildroot}%{_docdir}/patterns-yuga/${i}.txt
done

%files base
%dir %{_docdir}/patterns-yuga
%{_docdir}/patterns-yuga/base.txt

%files kde
%dir %{_docdir}/patterns-yuga
%{_docdir}/patterns-yuga/kde.txt

%files gnome
%dir %{_docdir}/patterns-yuga
%{_docdir}/patterns-yuga/gnome.txt

%changelog
openSUSE Build Service is sponsored by