Blob Blame History Raw

# Workaround https://bugzilla.opensuse.org/show_bug.cgi?id=1125775#c9 - until firewalld is fixed.
Ignore: firewall-macros:firewalld

%define gcc_version 10

# testing new cycle algorithm
BuildFlags: genmetaalgo:1

# The prjconf macros have a serial to help work around issues like https://github.com/openSUSE/open-build-service/issues/4088
# On macros having impact on dep chains, update the serial (mainly ruby, python)
# Using a date to indicate when we set the serial
ExpandFlags: macroserial:20210416

ExpandFlags: kiwi-nobasepackages
ExpandFlags: docker-nobasepackages

PublishFlags: ympdist:openSUSE%20Tumbleweed

# Use ext4 as FS in builder workers (instead of default ext3)
BuildFlags: vmfstype:ext4
# nodirindex enabled 2020-12-31 - https://github.com/openSUSE/obs-build/pull/634
BuildFlags: vmfsoptions:nodirindex

# Help with the switch to the gcc7 provided libs
#Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libitm1-gcc7
#Prefer: -liblsan0-gcc7 -libmpx2-gcc7

# Help with the switch to the gcc9 provided libs:
Prefer: libasan5 libasan5-32bit libasan6 libasan6-32bit libubsan1 libubsan1-32bit libgfortran5

Patterntype: rpm-md ymp
%if "%_repository" == "images"
Type: kiwi
Repotype: none
Patterntype: none
Prefer: openSUSE-release-ftp
Prefer: -postgresql13-devel-mini
Support: release-compare
BuildFlags: obsgendiff
%endif
%if "%_repository" == "containerfile"
Type: docker
BuildEngine: podman
# KUBEVIRTFROM is passed to container Dockerfiles using the --build-arg option, e.g.
# docker build --build-arg KUBEVIRTFROM=opensuse/tumbleweed ...
BuildFlags: dockerarg:KUBEVIRTFROM=opensuse/tumbleweed
%endif
%if "%_project" == "openSUSE:Factory" || "%_project" == "openSUSE:Factory:NonFree" || "%_project" == "openSUSE:Factory:PowerPC" || "%_project" == "openSUSE:Factory:Rebuild" || "%_project" == "openSUSE:Factory:zSystems"
Repotype: none
Macros:
%shim_enforce_ms_signature 1
:Macros
%endif

%if "%_repository" == "images" || "%_repository" == "container"
Prefer: openSUSE-release -dummy-release
# FTP tree takes forever
BuildFlags: logidlelimit:15400
%else
# Stuff that wants to have /etc/os-release available should require distribution-release, which we then offer dummy-release for (openSUSE-release changes daily for TW)
Prefer: dummy-release
# abort the build if the log file didn't move in 1.5h (seen in libreoffice builds)
BuildFlags: logidlelimit:5400
%endif

%if "%_project" == "openSUSE:Factory" || "%_project" == "openSUSE:Factory:NonFree" || "%_project" == "openSUSE:Factory:PowerPC" || "%_project" == "openSUSE:Factory:ARM" || "%_project" == "openSUSE:Factory:Live" || "%_project" == "openSUSE:Factory:Rebuild" || "%_project" == "openSUSE:Factory:Rings" || "%_project" == "openSUSE:Factory:Rings:0-Bootstrap" || "%_project" == "openSUSE:Factory:Rings:1-MinimalX" || "%_project" == "openSUSE:Factory:Rings:2-TestDVD" || "%_project" == "openSUSE:Factory:Containers"
Macros:
%vendor openSUSE
%distribution openSUSE Tumbleweed
%packager https://bugs.opensuse.org
:Macros
%endif

Substitute: kiwi-setup:image  python3-kiwi createrepo_c
Substitute: kiwi-image:tbz    python3-kiwi
Substitute: kiwi-image:docker python3-kiwi kiwi-systemdeps-containers
Substitute: kiwi-image:iso    kiwi-systemdeps-iso-media qemu-tools
Substitute: kiwi-image:oem    kiwi-systemdeps-disk-images xorriso
Prefer: kiwi-systemdeps-filesystems
Prefer: kiwi-systemdeps-disk-images
Prefer: kiwi-systemdeps-iso-media

Substitute: obs:cli_debug_packages gdb vim strace less rzsz

# Migration to product builder; using the Tumbleweed plugin since 2020-04-28
Substitute: kiwi-packagemanager:instsource product-builder-plugin-Tumbleweed
# use plugin-openSUSE
# Substitute: kiwi-packagemanager:instsource product-builder-plugin-openSUSE
Substitute: system-packages:kiwi-product product-builder

# allow builds using docker tool
Substitute: system-packages:docker kmod kernel-default docker createrepo_c
Substitute: build-packages:docker !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini

# Podman based image building
Substitute: system-packages:podman podman buildah createrepo_c release-compare

Substitute: build-packages:kiwi !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !libudev-mini1 !krb5-mini !gettext-tools-mini !cmake-mini !systemd-mini-sysvinit !dummy-release !libunbound-devel-mini !gio-branding-upstream !gettext-runtime-mini

# To build ISO images
Substitute: build-packages:iso !systemd-mini !udev-mini !krb5-mini !libsystemd0-mini !systemd-mini-sysvinit

# create conflicts for packages installed into the target image
Substitute: kiwi python3-kiwi

Prefer: installation-images-openSUSE installation-images-debuginfodeps-openSUSE

# Packages that need netcfg will also require libnss_usrfiles2, as a few files moved from /etc to /usr/etc
# Since not all packages care, we only add it where needed (instead of preinstall)
Substitute: netcfg netcfg libnss_usrfiles2

# Enable ccache for a selection of packages:
BuildFlags: useccache:NetworkManager
BuildFlags: useccache:bitcoin
BuildFlags: useccache:ceph
BuildFlags: useccache:chromium
BuildFlags: useccache:glib2
BuildFlags: useccache:gtk3
BuildFlags: useccache:gtk3:doc
BuildFlags: useccache:llvm9
# ccache 4.x breaks webkit2gtk3
#BuildFlags: useccache:webkit2gtk3

# switch to kiwi v8
Prefer: python3-kiwi
Conflict: python3-kiwi:libsystemd0-mini
Conflict: python3-kiwi:systemd-mini-sysvinit

# ghc-bootstrap should not provide it to start with - but it does. so let's kick it
Prefer: libffi7

# LUA namespace migration - slowly moving to the new names (keep ports in mind!)
# lua, lua51, lua52 and lua53 all provide 'lua'; version 5.3 is the 'target'; lua will be deleted in the future
Prefer: lua54 lua53 lua51
Prefer: liblua5_4-5 liblua5_3-5 liblua5_1-5
Prefer: lua54-devel lua53-devel lua51-devel
Prefer: libtolua++-5_4-devel libtolua++-5_3-devel libtolua++-5_1-devel
Prefer: -moonjit-devel

Preinstall: liblua5_4-5

FileProvides: /bin/bash bash
FileProvides: /bin/csh tcsh
FileProvides: /bin/hostname hostname busybox-hostname
FileProvides: /usr/bin/hostname hostname busybox-hostname
FileProvides: /bin/logger util-linux-systemd
FileProvides: /sbin/netconfig sysconfig-netconfig
FileProvides: /sbin/setcap libcap-progs
FileProvides: /sbin/startproc sysvinit-tools
FileProvides: /usr/bin/bc bc
FileProvides: /usr/bin/csh tcsh
FileProvides: /usr/bin/docbook2man docbook-utils
FileProvides: /usr/bin/eu-nm elfutils
FileProvides: /usr/bin/fipscheck fipscheck
FileProvides: /usr/bin/grep busybox-grep grep
FileProvides: /usr/bin/gzip busybox-gzip gzip
FileProvides: /usr/bin/killall psmisc
FileProvides: /usr/bin/mkdir coreutils busybox-coreutils
FileProvides: /usr/bin/mimencode metamail
# /sbin/mkinitrd is required by suse-module-tools; but this is pulled into systemd-mini, causing a cycle
# FileProvides: /sbin/mkinitrd dracut
FileProvides: /usr/bin/mkisofs mkisofs
FileProvides: /usr/bin/openssl openssl
FileProvides: /usr/bin/perl perl-base
FileProvides: /usr/bin/pkg-config pkgconf-pkg-config
Substitute: pkg-config pkgconf-pkg-config
FileProvides: /usr/bin/python python-base
FileProvides: /usr/bin/python2 python2-base
FileProvides: /usr/bin/python3 python38-base
FileProvides: /usr/bin/sed busybox-sed sed sed
FileProvides: /usr/bin/setfacl acl
FileProvides: /usr/bin/sg_inq sg3_utils
FileProvides: /usr/bin/touch coreutils busybox-coreutils
FileProvides: /usr/bin/tput ncurses-utils
FileProvides: /usr/bin/which which busybox-which
FileProvides: /usr/bin/xmllint libxml2-tools
FileProvides: /usr/bin/Xvfb xorg-x11-server
FileProvides: /usr/bin/xz busybox-xz xz
FileProvides: /usr/sbin/groupadd shadow
FileProvides: /usr/sbin/lockdev lockdev
FileProvides: /usr/sbin/useradd shadow
FileProvides: /usr/sbin/usermod shadow
FileProvides: /usr/bin/wish tk
FileProvides: /usr/bin/awk gawk
FileProvides: /usr/bin/host bind-utils
FileProvides: /sbin/start_daemon sysvinit-tools
FileProvides: /sbin/pidof sysvinit-tools
FileProvides: /sbin/ifup wicked-service

Preinstall: aaa_base attr bash coreutils diffutils
Preinstall: filesystem fillup glibc grep
Preinstall: libbz2-1 libgcc_s1 libncurses6 pam
Prefer: -pam_unix-nis
Preinstall: permissions rpm rpm-config-SUSE sed tar libz1 libselinux1
Preinstall: libgcrypt20 libgpg-error0
Preinstall: liblzma5 libcap2 libacl1 libattr1
Preinstall: libpopt0 libelf1
Preinstall: libpcre1 libzstd1 libpcre2-8-0
Preinstall: libreadline8

#Runscripts: aaa_base

Prefer: libdb-4_8-devel
VMinstall: util-linux libmount1 perl-base libdb-4_8 libblkid1 libuuid1 libsmartcols1 libcrypt1
VMinstall: kernel-obs-build
VMInstall: iproute2 libmnl0

# Use the x86_64 kernel on i586 builds - boo#1178762 - Slow down in OBS since kernel 5.6.0 on 32bit
ExportFilter: ^kernel-obs-build.*\.x86_64.rpm$ . i586

ExportFilter: \.x86_64\.rpm$ x86_64
ExportFilter: \.ia64\.rpm$ ia64
ExportFilter: \.s390x\.rpm$ s390x
ExportFilter: \.ppc64\.rpm$ ppc64
ExportFilter: \.ppc64le\.rpm$ ppc64le
ExportFilter: \.ppc\.rpm$ ppc
ExportFilter: -ia32-.*\.rpm$
ExportFilter: -32bit-.*\.sparc64\.rpm$
ExportFilter: -64bit-.*\.sparcv9\.rpm$
ExportFilter: -64bit-.*\.aarch64_ilp32\.rpm$
ExportFilter: \.armv7l\.rpm$ armv7l
ExportFilter: \.armv7hl\.rpm$ armv7l
ExportFilter: ^glibc(?:-devel)?-32bit-.*\.sparc64\.rpm$ sparc64
ExportFilter: ^glibc(?:-devel)?-64bit-.*\.sparcv9\.rpm$ sparcv9
# it would be a great idea to have, but sometimes installation-images wants to build debuginfos in
#ExportFilter: -debuginfo-.*\.rpm$
#ExportFilter: -debugsource-.*\.rpm$
#ExportFilter: ^master-boot-code.*\.i586.rpm$ . x86_64
ExportFilter: ^acroread.*\.i586.rpm$ . x86_64
ExportFilter: ^avmailgate.*\.i586.rpm$ . x86_64
ExportFilter: ^avmailgate.*\.ppc.rpm$ . ppc64
ExportFilter: ^avmailgate.*\.s390.rpm$ . s390x
ExportFilter: ^flash-player.*\.i586.rpm$ . x86_64
ExportFilter: ^novell-messenger-client.*\.i586.rpm$ . x86_64
ExportFilter: ^openCryptoki-32bit.*\.s390.rpm$ . s390x

Required: rpm-build
# Build all packages with -pie enabled
Required: gcc-PIE

# the basic stuff
Support: perl
Support: build-mkbaselibs
Prefer:  build-mkbaselibs
Support: brp-check-suse
Support: post-build-checks
Support: rpmlint-Factory
# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost)
Support: hostname
Prefer: -busybox-hostname
# remove build-compare support to disable "same result" package dropping
Support: build-compare

# In the actual Tumbleweed repos, we want to be stricter with rpmlint
%if "%_project" == "openSUSE:Factory" || "%_project" == "openSUSE:Factory:PowerPC" || "%_project" == "openSUSE:Factory:ARM" || "%_project" == "openSUSE:Factory:Rebuild" || "%_project" == "openSUSE:Factory:Live" || "%_project" == "openSUSE:Factory:NonFree"
Support: rpmlint-Factory-strict
%endif

%ifarch ia64
Support: libunwind libunwind-devel
Preinstall: libunwind
%endif

# Prefer coreutils over coreutils-single
Prefer: -coreutils-single

### Branding related preferences
Prefer: systemd-default-settings-branding-openSUSE
Prefer: distribution-logos-openSUSE-Tumbleweed
Prefer: awesome:awesome-branding-upstream
Prefer: cinnamon-gschemas:cinnamon-gschemas-branding-upstream
Prefer: enlightenment-theme-upstream
Prefer: fcitx:fcitx-branding-openSUSE
Prefer: gdm:gdm-branding-upstream
Prefer: gfxboot-branding-openSUSE
Prefer: icewm-theme-branding
Prefer: libcinnamon-desktop-data:libcinnamon-desktop-data-branding-upstream
Prefer: libgarcon-1-0:libgarcon-branding-upstream
Prefer: libgarcon-data:libgarcon-branding-upstream
Prefer: libgio-2_0-0:gio-branding-upstream
Prefer: libpurple-branding-upstream
Prefer: libreoffice:libreoffice-branding-upstream
Prefer: libxfce4ui:libxfce4ui-branding-upstream
Prefer: lightdm-gtk-greeter:lightdm-gtk-greeter-branding-upstream
Prefer: mate-desktop-gschemas:mate-desktop-gschemas-branding-upstream
Prefer: NetworkManager:NetworkManager-branding-openSUSE
Prefer: PackageKit:PackageKit-branding-upstream
Prefer: sddm:sddm-branding-upstream
Prefer: sway:sway-branding-upstream
Prefer: systemd-presets-branding-openSUSE
Prefer: wallpaper-branding-openSUSE
Prefer: waybar:waybar-branding-upstream
Prefer: xfce4-notifyd:xfce4-notifyd-branding-upstream
Prefer: xfce4-settings:xfce4-settings-branding-upstream
Prefer: xfdesktop:xfdesktop-branding-upstream
Prefer: yast2-qt:yast2-qt-branding-openSUSE
Prefer: branding-openSUSE
Prefer: chrony-pool-openSUSE
# pciutils-ids and hwdata both provides pciutils-ids
Prefer: hwdata
# have choice for xfce4-panel-plugin-whiskermenu needed by xfce4-panel-branding-openSUSE: xfce4-panel-plugin-whiskermenu xfce4-whiskermenu-plugin
Prefer: xfce4-panel-branding-openSUSE:xfce4-whiskermenu-plugin
Prefer: xfce4-statusnotifier-plugin
Prefer: patterns-xfce-xfce:mate-calc

# Build cycle handling - prefer -mini packages were possible, break deps as needed
Conflict: krb5-devel:krb5-mini
Conflict: krb5:krb5-mini-devel
Prefer: gettext-tools-mini gettext-runtime-mini
Prefer: ghostscript-mini
Prefer: krb5-mini-devel:krb5-mini
Prefer: krb5-mini krb5-mini-devel
Prefer: libudev-mini-devel libudev-mini1 udev-debuginfo libudev1-debuginfo
Prefer: libdebuginfod1 debuginfod-client
Prefer: libunbound-devel-mini
Prefer: log4j12-mini
Prefer: systemd-mini-devel:systemd-mini
Prefer: systemd-mini systemd-mini-devel libsystemd0-mini
Prefer: udev-mini

# break dependency of the -mini packages: they are valid for OBS, but not for end-user-installation
Ignore: cmake-mini:this-is-only-for-build-envs
Ignore: dummy-release:this-is-only-for-build-envs
Ignore: erlang-rebar-obs:this-is-only-for-build-envs
Ignore: ghc-bootstrap-helpers:this-is-only-for-build-envs
Ignore: ghc-bootstrap:this-is-only-for-build-envs
Ignore: ghostscript-mini:this-is-only-for-build-envs
Ignore: harfbuzz-bootstrap:this-is-only-for-build-envs
Ignore: jdk-bootstrap:this-is-only-for-build-envs
Ignore: libsystemd0-mini:this-is-only-for-build-envs
Ignore: libudev-mini1:this-is-only-for-build-envs
Ignore: libunbound-devel-mini:this-is-only-for-build-envs
Ignore: postgresql12-devel-mini:this-is-only-for-build-envs
Ignore: postgresql13-devel-mini:this-is-only-for-build-envs
Ignore: systemd-mini:this-is-only-for-build-envs
Ignore: udev-mini:this-is-only-for-build-envs

# Ring0 packages should not pull in 'info' - making the base VM smaller
Ignore: libtool:info
Ignore: autoconf:info
Ignore: automake:info
Ignore: binutils:info
Ignore: bison:info
Ignore: coreutils:info
Ignore: cpio:info
Ignore: diffutils:info
Ignore: findutils:info
Ignore: flex:info
Ignore: gawk:info
Ignore: gettext-runtime:info
Ignore: gettext-tools:info
Ignore: grep:info
Ignore: groff:info
Ignore: gzip:info
Ignore: help2man:info
Ignore: libgcrypt-devel:info
Ignore: m4:info
Ignore: make:info
Ignore: sed:info
Ignore: tar:info
Ignore: util-linux:info

# Let's speed up things: We don't need Mesa-dri and Mesa-gallium in the build system
Ignore: Mesa:Mesa-dri
Ignore: Mesa:Mesa-gallium

# man uses cron to update the DB normally, but we don't care for that in the build system
Ignore: man:cron

# udev: -full and -mini packages don't mingle well
Prefer: libudev1:udev
Conflict: libudev1:udev-mini
Conflict: udev:libudev-mini1

# systemd: -full and -mini packages don't mingle well
Conflict: systemd:libsystemd0-mini
Conflict: systemd-mini-devel:systemd

# Cmake exists as a -mini flavor, which is not linked against curl.
Prefer: cmake-mini

Prefer: -suse-build-key
# Set postfix as the 'default' smtp_daemon (virtual symbol provided by all MTAs)
Prefer: postfix

# cyrus-sasl and postfix both bring a -bdb flavor. De-prefer this flavor
Prefer: -cyrus-sasl-bdb-devel

# Spamassassin requires wget or curl - we prefer curl, as its build dep chain seems cheaper
Prefer: spamassassin:curl

# Python3 exists in multiple versions - we currently favor 3.8 (our default):
Prefer: -python36 -python39
Prefer: -python36-hotdoc -python39-hotdoc
Prefer: -python36-txt2tags -python39-txt2tags
Prefer: -python3-ipython715 -python38-ipython715 -python39-ipython715

# man and mandoc provide man; mandoc claims to be lightweight, but it was never discussed to be the new default
Prefer: man

# go exists in mutliple versions by now - we prefer the 'unversioned package'
Prefer: go -go1.13

# have choice for kubernetes-kubelet-common (de-prefer the old versions, ensuring to have a new unresolvable when a new version shows up)
Prefer: -kubernetes1.18-kubelet-common -kubernetes1.19-kubelet-common -kubernetes1.20-kubelet-common

# python-tornado exists in multiple versions, the meta-package python-tornado defines the system default
Prefer: python3-tornado -python3-tornado4
Prefer: python36-tornado -python36-tornado4 -python36-tornado5 
Prefer: python38-tornado -python38-tornado4 -python38-tornado5
Prefer: python39-tornado -python39-tornado4 -python39-tornado5

# There are multiple PK backends available. Favor the openSUSE own zypp backend
Prefer: PackageKit-backend-zypp

# have choice for pkgconfig(libftdi): libftdi-devel libftdi0-devel
Prefer: libftdi-devel

# have choice for tensorflow: tensorflow tensorflow2 tensorflow2_2_1_0-gnu-hpc tensorflow2_2_1_0-gnu-mvapich2-hpc tensorflow2_2_1_0-gnu-openmpi2-hpc
Prefer: tensorflow2

# have choice for python3-sip: python3-sip-devel python3-sip4
Prefer: -python3-sip4 -python3-sip4-devel
Prefer: -python36-sip4 -python36-sip4-devel
Prefer: -python38-sip4 -python38-sip4-devel
Prefer: -python39-sip4 -python39-sip4-devel

# There is python[23]-prompt_toolkit and also python3-prompt_toolkit1 for compat. Use the unversioned one by default
Prefer: python3-prompt_toolkit python39-prompt_toolkit python38-prompt_toolkit python36-prompt_toolkit

# When perl provides a module that is also in a different package, but the consumer specifies no version, we go with perl/perl-base
Prefer: perl-base perl

# Lightdm requires 'a greeter' - we prefer the default lightdm-gtk-greeter
Prefer: lightdm-gtk-greeter

# Apache requires a MPM - we pick prefork
Prefer: apache2:apache2-prefork

# PHP requires php-sapi, which can be provided by multiple packages. We prefer -cli, related to the specific PHP version
%define php_pref php7
Prefer: %{php_pref}
Prefer: %{php_pref}-cli
Prefer: %{php_pref}-devel
Prefer: %{php_pref}-pear
Prefer: %{php_pref}-tokenizer
Prefer: apache2-mod_%{php_pref}
Prefer: php7:php7-cli
Prefer: php8:php8-cli

# azure-cli reports: have choice for python3-vsts needed by python3-azure-functions-devops-build: python3-azure-devops python3-vsts
# Use the real package name
Prefer: python3-vsts python36-vsts python38-vsts python39-vsts

# for symbol syslog (syslogd is best as it has the least dependencies)
Prefer: syslogd

# A couple packares require a dbus daemon to show notifications - unless oterhwise specified, we prefer the 'standalong notification-daemon;
Prefer: notification-daemon

# We have multiple nodejs versions in the repo - prefer version -default (from meta package)
Prefer: nodejs-default nodejs-devel-default npm-default

# have choice for libpulse.so.0 needed by wine-32bit: apulse-32bit libpulse0-32bit - prefering the 'original'
Prefer: libpulse0-32bit libsane1-32bit -pipewire-pulseaudio

# Have choice for vtk-java/vtk-tcl/python3-vtk needed by vtk-devel
Prefer: vtk-java python3-vtk python36-vtk python38-vtk python39-vtk
Prefer: eclipse-swt

# wine comes in various flavors by now, we pick the unflavored ones
Prefer: wine-32bit wine-devel-32bit wine-devel

# 32bit -devel packages contain .pc files and cause a 'have choice' for OBS. unfavor the -32bit variants
Prefer: -ColPack-devel-32bit                          
Prefer: -FAudio-devel-32bit                           
Prefer: -ImageMagick-devel-32bit                      
Prefer: -Mesa-libd3d-devel-32bit                      
Prefer: -Mesa-libglapi-devel-32bit                    
Prefer: -Mesa-libEGL-devel-32bit
Prefer: -Mesa-libGL-devel-32bit
Prefer: -Mesa-libGLESv2-devel-32bit
Prefer: -Mesa-libGLESv1_CM-devel-32bit
Prefer: -NetworkManager-devel-32bit                   
Prefer: -aalib-devel-32bit                            
Prefer: -adolc-devel-32bit                            
Prefer: -alsa-devel-32bit                             
Prefer: -alsa-topology-devel-32bit                    
Prefer: -armadillo-devel-32bit                        
Prefer: -arpack-ng-devel-32bit                        
Prefer: -at-spi2-core-devel-32bit                     
Prefer: -atk-devel-32bit                              
Prefer: -atkmm-devel-32bit                            
Prefer: -atkmm1_6-devel-32bit                         
Prefer: -attica-qt5-devel-32bit                       
Prefer: -audiofile-devel-32bit                        
Prefer: -audit-devel-32bit                            
Prefer: -augeas-devel-32bit                           
Prefer: -bind-devel-32bit                             
Prefer: -binutils-devel-32bit                         
Prefer: -blas-devel-32bit                             
Prefer: -bluez-devel-32bit                            
Prefer: -cairo-devel-32bit                            
Prefer: -cairomm-devel-32bit                          
Prefer: -cairomm1_0-devel-32bit                       
Prefer: -cblas-devel-32bit                            
Prefer: -chmlib-devel-32bit                           
Prefer: -clang10-devel-32bit                          
Prefer: -clang7-devel-32bit                           
Prefer: -clang8-devel-32bit                           
Prefer: -clang9-devel-32bit                           
Prefer: -cppunit-devel-32bit                          
Prefer: -cracklib-devel-32bit                         
Prefer: -cups-devel-32bit                             
Prefer: -cyrus-sasl-devel-32bit                       
Prefer: -dante-devel-32bit                            
Prefer: -dapl-devel-32bit                             
Prefer: -dbus-1-devel-32bit                           
Prefer: -dbus-1-glib-devel-32bit                      
Prefer: -device-mapper-devel-32bit                    
Prefer: -dirac-devel-32bit                            
Prefer: -ecryptfs-utils-devel-32bit                   
Prefer: -file-devel-32bit                             
Prefer: -flac-devel-32bit                             
Prefer: -fltk-devel-32bit                             
Prefer: -fontconfig-devel-32bit                       
Prefer: -frameworkintegration-devel-32bit             
Prefer: -freeglut-devel-32bit                         
Prefer: -freetype2-devel-32bit                        
Prefer: -gd-devel-32bit                               
Prefer: -gdbm-devel-32bit                             
Prefer: -gdk-pixbuf-devel-32bit                       
Prefer: -giflib-devel-32bit                           
Prefer: -glib2-devel-32bit                            
Prefer: -glibc-devel-32bit                            
Prefer: -glu-devel-32bit                              
Prefer: -gmp-devel-32bit                              
Prefer: -grantlee5-devel-32bit                        
Prefer: -gstreamer-devel-32bit                        
Prefer: -gstreamer-plugins-base-devel-32bit           
Prefer: -gtk2-devel-32bit                             
Prefer: -gtk3-devel-32bit                             
Prefer: -gtk4-devel-32bit                             
Prefer: -hdf5-devel-32bit                             
Prefer: -hdf5-mvapich2-devel-32bit                    
Prefer: -hdf5-openmpi1-devel-32bit                    
Prefer: -hdf5-openmpi2-devel-32bit                    
Prefer: -hdf5-openmpi3-devel-32bit                    
Prefer: -hdf5-openmpi4-devel-32bit                    
Prefer: -hunspell-devel-32bit                         
Prefer: -isl-devel-32bit                              
Prefer: -jbig2dec-devel-32bit                         
Prefer: -kaccounts-integration-devel-32bit            
Prefer: -kactivities-stats-devel-32bit                
Prefer: -kactivities5-devel-32bit                     
Prefer: -karchive-devel-32bit                         
Prefer: -kauth-devel-32bit                            
Prefer: -kbookmarks-devel-32bit                       
Prefer: -kcmutils-devel-32bit                         
Prefer: -kcodecs-devel-32bit                          
Prefer: -kcompletion-devel-32bit                      
Prefer: -kconfig-devel-32bit                          
Prefer: -kconfigwidgets-devel-32bit                   
Prefer: -kcontacts-devel-32bit                        
Prefer: -kcoreaddons-devel-32bit                      
Prefer: -kcrash-devel-32bit                           
Prefer: -kdbusaddons-devel-32bit                      
Prefer: -kdeclarative-devel-32bit                     
Prefer: -kdelibs4support-devel-32bit                  
Prefer: -kdesu-devel-32bit                            
Prefer: -kdewebkit-devel-32bit                        
Prefer: -kdnssd-framework-devel-32bit                 
Prefer: -kdoctools-devel-32bit                        
Prefer: -kemoticons-devel-32bit                       
Prefer: -keyutils-devel-32bit                         
Prefer: -kglobalaccel-devel-32bit                     
Prefer: -kguiaddons-devel-32bit                       
Prefer: -khtml-devel-32bit                            
Prefer: -ki18n-devel-32bit                            
Prefer: -kiconthemes-devel-32bit                      
Prefer: -kidletime-devel-32bit                        
Prefer: -kio-devel-32bit                              
Prefer: -kitemmodels-devel-32bit                      
Prefer: -kitemviews-devel-32bit                       
Prefer: -kjobwidgets-devel-32bit                      
Prefer: -kjs-devel-32bit                              
Prefer: -kjsembed-devel-32bit                         
Prefer: -kmediaplayer-devel-32bit                     
Prefer: -knewstuff-devel-32bit                        
Prefer: -knotifications-devel-32bit                   
Prefer: -knotifyconfig-devel-32bit                    
Prefer: -kpackage-devel-32bit                         
Prefer: -kparts-devel-32bit                           
Prefer: -kpeople5-devel-32bit                         
Prefer: -kplotting-devel-32bit                        
Prefer: -kpty-devel-32bit                             
Prefer: -krb5-devel-32bit                             
Prefer: -kross-devel-32bit                            
Prefer: -krunner-devel-32bit                          
Prefer: -kservice-devel-32bit                         
Prefer: -ktexteditor-devel-32bit                      
Prefer: -ktextwidgets-devel-32bit                     
Prefer: -kunitconversion-devel-32bit                  
Prefer: -kwallet-devel-32bit                          
Prefer: -kwayland-devel-32bit                         
Prefer: -kwidgetsaddons-devel-32bit                   
Prefer: -kwindowsystem-devel-32bit                    
Prefer: -kxmlgui-devel-32bit                          
Prefer: -kxmlrpcclient5-devel-32bit                   
Prefer: -lapack-devel-32bit                           
Prefer: -lapacke-devel-32bit                          
Prefer: -libBox2D-devel-32bit                         
Prefer: -libFS-devel-32bit                            
Prefer: -libGLw-devel-32bit
Prefer: -libHX-devel-32bit                            
Prefer: -libICE-devel-32bit                           
Prefer: -libKF5NetworkManagerQt-devel-32bit           
Prefer: -libMagick++-devel-32bit                      
Prefer: -libOSMesa-devel-32bit                        
Prefer: -libQt5Concurrent-devel-32bit                 
Prefer: -libQt5Core-devel-32bit                       
Prefer: -libQt5DBus-devel-32bit                       
Prefer: -libQt5Gui-devel-32bit                        
Prefer: -libQt5Network-devel-32bit                    
Prefer: -libQt5OpenGL-devel-32bit                     
Prefer: -libQt5OpenGLExtensions-devel-static-32bit
Prefer: -libQt5PrintSupport-devel-32bit               
Prefer: -libQt5Sql-devel-32bit                        
Prefer: -libQt5Test-devel-32bit                       
Prefer: -libQt5WebKit5-devel-32bit                    
Prefer: -libQt5WebKitWidgets-devel-32bit              
Prefer: -libQt5Widgets-devel-32bit                    
Prefer: -libQt5Xml-devel-32bit                        
Prefer: -libSDL-devel-32bit                           
Prefer: -libSDL2-devel-32bit                          
Prefer: -libSDL2_gfx-devel-32bit                      
Prefer: -libSDL2_image-devel-32bit                    
Prefer: -libSDL2_mixer-devel-32bit                    
Prefer: -libSDL2_net-devel-32bit                      
Prefer: -libSDL2_ttf-devel-32bit                      
Prefer: -libSDL_Pango-devel-32bit                     
Prefer: -libSDL_gfx-devel-32bit                       
Prefer: -libSDL_image-devel-32bit                     
Prefer: -libSDL_mixer-devel-32bit -libSDL_mixer-devel-64bit
Prefer: -libSDL_net-devel-32bit                       
Prefer: -libSDL_sound-devel-32bit                     
Prefer: -libSDL_ttf-devel-32bit   -libSDL_ttf-devel-64bit
Prefer: -libSDLmm-devel-32bit                         
Prefer: -libSM-devel-32bit                            
Prefer: -libX11-devel-32bit                           
Prefer: -libXau-devel-32bit                           
Prefer: -libXaw-devel-32bit                           
Prefer: -libXaw3d-devel-32bit                         
Prefer: -libXcomposite-devel-32bit                    
Prefer: -libXcursor-devel-32bit                       
Prefer: -libXdamage-devel-32bit                       
Prefer: -libXdmcp-devel-32bit                         
Prefer: -libXevie-devel-32bit                         
Prefer: -libXext-devel-32bit                          
Prefer: -libXfixes-devel-32bit                        
Prefer: -libXfont-devel-32bit                         
Prefer: -libXfont2-devel-32bit                        
Prefer: -libXfontcache-devel-32bit                    
Prefer: -libXft-devel-32bit                           
Prefer: -libXi-devel-32bit                            
Prefer: -libXinerama-devel-32bit                      
Prefer: -libXmu-devel-32bit                           
Prefer: -libXp-devel-32bit                            
Prefer: -libXpm-devel-32bit                           
Prefer: -libXprintAppUtil-devel-32bit                 
Prefer: -libXprintUtil-devel-32bit                    
Prefer: -libXrandr-devel-32bit                        
Prefer: -libXrender-devel-32bit                       
Prefer: -libXres-devel-32bit                          
Prefer: -libXss-devel-32bit                           
Prefer: -libXt-devel-32bit                            
Prefer: -libXtst-devel-32bit                          
Prefer: -libXv-devel-32bit                            
Prefer: -libXvMC-devel-32bit                          
Prefer: -libXxf86dga-devel-32bit                      
Prefer: -libXxf86vm-devel-32bit                       
Prefer: -libacl-devel-32bit                           
Prefer: -libadns-devel-32bit                          
Prefer: -libaio-devel-32bit                           
Prefer: -libart_lgpl-devel-32bit                      
Prefer: -libattr-devel-32bit                          
Prefer: -libavc1394-devel-32bit                       
Prefer: -libbasicobjects-devel-32bit                  
Prefer: -libblkid-devel-32bit                         
Prefer: -libbotan-devel-32bit                         
Prefer: -libbz2-devel-32bit                           
Prefer: -libcelt-devel-32bit                          
Prefer: -libcmocka-devel-32bit                        
Prefer: -libcollection-devel-32bit                    
Prefer: -libcom_err-devel-32bit                       
Prefer: -libcrystalhd-devel-32bit                     
Prefer: -libcurl-devel-32bit                          
Prefer: -libdb-4_8-devel-32bit                        
Prefer: -libdbi-devel-32bit                           
Prefer: -libdbusmenu-qt5-devel-32bit                  
Prefer: -libdhash-devel-32bit                         
Prefer: -libdmx-devel-32bit                           
Prefer: -libdrm-devel-32bit                           
Prefer: -libdwarves-devel-32bit                       
Prefer: -libeditorconfig-devel-32bit                  
Prefer: -libelf-devel-32bit                           
Prefer: -libexif-devel-32bit                          
Prefer: -libexpat-devel-32bit                         
Prefer: -libext2fs-devel-32bit                        
Prefer: -libfabric-devel-32bit                        
Prefer: -libfdisk-devel-32bit
Prefer: -libfdt-devel-32bit                           
Prefer: -libffi-devel-32bit                           
Prefer: -libfl-devel-32bit                            
Prefer: -libfontenc-devel-32bit                       
Prefer: -libgbm-devel-32bit                           
Prefer: -libgck-devel-32bit                           
Prefer: -libgcr-devel-32bit                           
Prefer: -libgcrypt-devel-32bit                        
Prefer: -libglue-devel-32bit                          
Prefer: -libglvnd-devel-32bit                         
Prefer: -libgnutls-devel-32bit                        
Prefer: -libgpg-error-devel-32bit                     
Prefer: -libgphoto2-devel-32bit                       
Prefer: -libgsm-devel-32bit                           
Prefer: -libhts-devel-32bit                           
Prefer: -libicu-devel-32bit                           
Prefer: -libini_config-devel-32bit                    
Prefer: -libjack-devel-32bit                          
Prefer: -libjbig-devel-32bit                          
Prefer: -libjpeg62-devel-32bit                        
Prefer: -libjpeg8-devel-32bit                         
Prefer: -libkdecoration2-devel-32bit                  
Prefer: -libkms-devel-32bit                           
Prefer: -libkscreen2-devel-32bit                      
Prefer: -liblbxutil-devel-32bit                       
Prefer: -liblcms2-devel-32bit                         
Prefer: -libmount-devel-32bit                         
Prefer: -libnetapi-devel-32bit                        
Prefer: -libnettle-devel-32bit                        
Prefer: -libnl3-devel-32bit                           
Prefer: -libnotify-devel-32bit                        
Prefer: -liboldX-devel-32bit                          
Prefer: -libopenssl-1_0_0-devel-32bit                 
Prefer: -libopenssl-1_1-devel-32bit                   
Prefer: -liboping-devel-32bit                         
Prefer: -libotf-devel-32bit                           
Prefer: -libpackagekit-glib2-devel-32bit              
Prefer: -libpath_utils-devel-32bit                    
Prefer: -libpcap-devel-32bit                          
Prefer: -libpng12-compat-devel-32bit                  
Prefer: -libpng12-devel-32bit                         
Prefer: -libpng16-compat-devel-32bit                  
Prefer: -libpng16-devel-32bit                         
Prefer: -libpolkit-qt5-1-devel-32bit                  
Prefer: -libpulse-devel-32bit                         
Prefer: -libqb-devel-32bit                            
Prefer: -libqt5-qtconnectivity-devel-32bit            
Prefer: -libqt5-qtdeclarative-devel-32bit             
Prefer: -libqt5-qtgamepad-devel-32bit                 
Prefer: -libqt5-qtlocation-devel-32bit                
Prefer: -libqt5-qtmultimedia-devel-32bit              
Prefer: -libqt5-qtnetworkauth-devel-32bit             
Prefer: -libqt5-qtremoteobjects-devel-32bit           
Prefer: -libqt5-qtscript-devel-32bit                  
Prefer: -libqt5-qtscxml-devel-32bit                   
Prefer: -libqt5-qtsensors-devel-32bit                 
Prefer: -libqt5-qtserialbus-devel-32bit               
Prefer: -libqt5-qtserialport-devel-32bit              
Prefer: -libqt5-qtspeech-devel-32bit                  
Prefer: -libqt5-qtsvg-devel-32bit                     
Prefer: -libqt5-qttools-devel-32bit                   
Prefer: -libqt5-qtwayland-devel-32bit                 
Prefer: -libqt5-qtwebchannel-devel-32bit              
Prefer: -libqt5-qtwebsockets-devel-32bit              
Prefer: -libqt5-qtx11extras-devel-32bit               
Prefer: -libqt5-qtxmlpatterns-devel-32bit             
Prefer: -libraw1394-devel-32bit                       
Prefer: -libref_array-devel-32bit                     
Prefer: -libreiserfs-devel-32bit                      
Prefer: -libressl-devel-32bit                         
Prefer: -libscalapack2-mvapich2-devel-32bit           
Prefer: -libscalapack2-openmpi1-devel-32bit           
Prefer: -libscalapack2-openmpi2-devel-32bit           
Prefer: -libscalapack2-openmpi3-devel-32bit           
Prefer: -libscalapack2-openmpi4-devel-32bit           
Prefer: -libsmartcols-devel-32bit
Prefer: -libsoup-devel-32bit                          
Prefer: -libstatgrab-devel-32bit                      
Prefer: -libstdc++-devel-32bit                        
Prefer: -libtasn1-devel-32bit                         
Prefer: -libtiff-devel-32bit                          
Prefer: -libudev-devel-32bit                          
Prefer: -libunistring-devel-32bit                     
Prefer: -libusb-1_0-devel-32bit                       
Prefer: -libuuid-devel-32bit                          
Prefer: -libv4l-devel-32bit                           
Prefer: -libva-devel-32bit                            
Prefer: -libva-gl-devel-32bit                         
Prefer: -libvdpau-devel-32bit                         
Prefer: -libverto-devel-32bit                         
Prefer: -libvirt-devel-32bit                          
Prefer: -libvorbis-devel-32bit                        
Prefer: -libvpd2-devel-32bit                          
Prefer: -libwebp-devel-32bit                          
Prefer: -libxcb-devel-32bit                           
Prefer: -libxcrypt-devel-32bit                        
Prefer: -libxkbcommon-devel-32bit                     
Prefer: -libxkbcommon-x11-devel-32bit                 
Prefer: -libxkbfile-devel-32bit                       
Prefer: -libxkbui-devel-32bit                         
Prefer: -libxml2-devel-32bit                          
Prefer: -libxslt-devel-32bit                          
Prefer: -libyajl-devel-32bit                          
Prefer: -libyaz-devel-32bit                           
Prefer: -libzstd-devel-32bit
Prefer: -llvm10-LTO-devel-32bit                       
Prefer: -llvm10-devel-32bit                           
Prefer: -llvm7-LTO-devel-32bit                        
Prefer: -llvm7-devel-32bit                            
Prefer: -llvm8-LTO-devel-32bit                        
Prefer: -llvm8-devel-32bit                            
Prefer: -llvm9-LTO-devel-32bit                        
Prefer: -llvm9-devel-32bit                            
Prefer: -lzo-devel-32bit                              
Prefer: -motif-devel-32bit                            
Prefer: -mpc-devel-32bit                              
Prefer: -mpfr-devel-32bit                             
Prefer: -mpg123-devel-32bit                           
Prefer: -munge-devel-32bit                            
Prefer: -muparser-devel-32bit                         
Prefer: -ncurses-devel-32bit                          
Prefer: -ncurses5-devel-32bit                         
Prefer: -net-snmp-devel-32bit                         
Prefer: -ocl-icd-devel-32bit                          
Prefer: -openal-soft-devel-32bit                      
Prefer: -openjpeg-devel-32bit                         
Prefer: -openldap2-devel-32bit                        
Prefer: -opensm-devel-32bit                           
Prefer: -pam-devel-32bit                              
Prefer: -pango-devel-32bit                            
Prefer: -papi-devel-32bit                             
Prefer: -parpack-openmpi1-devel-32bit                 
Prefer: -parpack-openmpi2-devel-32bit                 
Prefer: -parpack-openmpi3-devel-32bit                 
Prefer: -pciutils-devel-32bit                         
Prefer: -phonon4qt5-devel-32bit                       
Prefer: -pipewire-libjack-0_3-32bit
Prefer: -plasma-framework-devel-32bit                 
Prefer: -popt-devel-32bit                             
Prefer: -prison-qt5-devel-32bit                       
Prefer: -purpose-devel-32bit                          
Prefer: -rdma-core-devel-32bit                        
Prefer: -readline-devel-32bit                         
Prefer: -readline5-devel-32bit                        
Prefer: -readline6-devel-32bit                        
Prefer: -sane-backends-devel-32bit                    
Prefer: -solid-devel-32bit                            
Prefer: -sonnet-devel-32bit                           
Prefer: -spirv-tools-devel-32bit                      
Prefer: -syntax-highlighting-devel-32bit              
Prefer: -telepathy-qt5-devel-32bit                    
Prefer: -threadweaver-devel-32bit                     
Prefer: -tslib-devel-32bit                            
Prefer: -unixODBC-devel-32bit
Prefer: -utempter-devel-32bit                         
Prefer: -vkd3d-devel-32bit                            
Prefer: -vulkan-devel-32bit                           
Prefer: -wayland-devel-32bit                          
Prefer: -wine-devel-32bit                             
Prefer: -wine-staging-devel-32bit                     
Prefer: -wxWidgets-3_0-devel-32bit                    
Prefer: -xcb-util-cursor-devel-32bit                  
Prefer: -xcb-util-devel-32bit                         
Prefer: -xcb-util-image-devel-32bit                   
Prefer: -xcb-util-keysyms-devel-32bit                 
Prefer: -xcb-util-renderutil-devel-32bit              
Prefer: -xcb-util-wm-devel-32bit                      
Prefer: -xz-devel-32bit                               
Prefer: -zlib-devel-32bit                             
Prefer: -zvbi-devel-32bit                             
Prefer: -zziplib-devel-32bit                          

# have choice for python3-Sphinx needed by trytond: python3-Sphinx python3-Sphinx2
Prefer: python3-Sphinx -python36-Sphinx2 -python38-Sphinx2 -python38-Sphinx2-latex -python39-Sphinx2 -python39-Sphinx2-latex

# Ruby stuff - quite a few packages exist in multiple versions in the distro; in each case, the Preference is on the 'unversioned' package
Prefer: ruby2.7-rubygem-fast_gettext
Prefer: ruby2.7-rubygem-i18n
Prefer: ruby2.7-rubygem-rack
Prefer: ruby2.7-rubygem-sass-rails
Prefer: ruby2.7-rubygem-sassc
Prefer: ruby2.7-rubygem-thor
Prefer: ruby2.7-rubygem-listen ruby2.7-rubygem-mime-types ruby2.7-rubygem-builder

# We have opencv and opencv3 - as usual, the unversioned one should win
Prefer: opencv-devel

# python3-pytest should win over the other python3-pytest<n> variants
Prefer: python3-pytest python38-pytest python36-pytest python39-pytest

# There is python3-Django and python3-Django1 - as usual, we favor the unversioned one
Prefer: -python3-Django1 -python36-Django1 -python38-Django1 -python39-Django1

# Help OBS over the openssl-1_1_0 -> openssl-1_1 rename; OBS keeps the -32bit lingering around
# https://github.com/openSUSE/open-build-service/issues/4373
# We prefer the new name
Prefer: libopenssl1_1-32bit openssl-1_1

# Enchant has multiple backends to chose from, make a decision for OBS
Prefer: enchant-1-backends
Prefer: enchant-2-backend-hunspell

# OpenSceneGraph exists as 'latest' and a 3.4 compat package. If nothing is specified, we want latest
Prefer: libOpenSceneGraph-devel libOpenThreads-devel

# Java, especially Maven related bootstrap packages are never preferred:
Prefer: -scala-bootstrap -scala-bootstrap-swing
Prefer: -maven-compiler-plugin-bootstrap -maven-resources-plugin-bootstrap -maven-jar-plugin-bootstrap
Prefer: -maven-javadoc-plugin-bootstrap -maven-plugin-plugin-bootstrap -maven-failsafe-plugin-bootstrap
Prefer: -maven-surefire-plugin-bootstrap -maven-surefire-report-plugin-bootstrap -stringtemplate4-bootstrap

# have choice for mingw32-unistd-pthread-devel needed by mingw32-headers: mingw32-headers-dummy-pthread mingw32-winpthreads-devel
Prefer: -mingw64-headers-dummy-pthread -mingw32-headers-dummy-pthread

# Below list still needs to be reviewed

Prefer: xorg-x11-Xvnc:icewm xorg-x11-server-wayland
Prefer: cracklib-dict-small
Prefer: libstdc++6 libgcc_s1 libquadmath0
Prefer: libstdc++6-32bit libstdc++6-64bit
Prefer: syslog-service
Prefer: poppler-tools
Prefer: libjpeg8-devel libjpeg-turbo
Prefer: microcode_ctl:kernel-default
Prefer: gnu-jaf yast2-control-center-qt
Prefer: wine
Prefer: ndesk-dbus ndesk-dbus-glib tomcat-jsp-2_3-api
Prefer: -servletapi4 -servletapi5
Prefer: icewm-lite
Prefer: monodevelop: mono-addins
Prefer: texlive-xmltex texlive-tools texlive-jadetex
Prefer: librest-0_7-0


Prefer: -geronimo-jta-1_0_1B-api -geronimo-jms-1_1-api -geronimo-el-1_0-api -geronimo-jta-1_1-api javamail
Prefer: rhino:xmlbeans-mini
Prefer: mx4j:log4j12-mini
Prefer: maven-doxia-module-fo:log4j12-mini

Prefer: rpcbind
Prefer: boo tog-pegasus
Prefer: sysvinit(network) wicked-service
Prefer: ant:xerces-j2
Prefer: dhcp-client:dhcp
Prefer: libGLw1
# provides typelib(St)
Prefer: -cinnamon
Prefer: -libreoffice -busybox-links -busybox -busybox-coreutils -busybox-grep -busybox-sed -busybox-xz -busybox-gzip -busybox-which
Prefer: -icc-profiles
Prefer: vala
# in doubt, take higher versions
Prefer: geronimo-servlet-2_4-api
Prefer: libhdf5_hl100 -libhdf5-103-openmpi1 -libhdf5-103-mvapich2 -libhdf5_cpp103-openmpi1 -libhdf5_cpp103-mvapich2 -libhdf5-103-openmpi2 -libhdf5-103-openmpi3 -libhdf5-103-openmpi4 -libhdf5_cpp103-openmpi2 -libhdf5_cpp103-openmpi3 -libhdf5_cpp103-openmpi4
Prefer: libvtk1-openmpi2
Prefer: -vtk-openmpi1-qt -vtk-openmpi2-qt -vtk-openmpi3-qt
Prefer: -openmpi3-libs -openmpi4-libs
Prefer: fftw3-devel ImageMagick-config-7-SUSE
# prefer the small systemd for building
Prefer: star
Prefer: xmlgraphics-commons:apache-commons-io
# the -32bit stuff provides things it shouldn't (hopefully temporary)
Prefer: -glib2-devel-32bit -typelib-1_0-Gst-1_0-32bit
Prefer: postgresql postgresql-server postgresql-devel postgresql-server-devel
Prefer: postgresql13-devel-mini
# only needed to bootstrap 11, but leave it - 12 will come at some point :)
Prefer: -postgresql95 -postgresql95-server
Prefer: -unzip-rcc
Prefer: -primus -primus-32bit
Prefer: -staging-build-key
Prefer: -clutter-gst-devel
# We have multiple versions of ffmpeg available, the preferred one is ffmpeg4, followd by 3, followed by 2
Prefer: ffmpeg-4-libavcodec-devel ffmpeg-4-libavformat-devel ffmpeg-4-libavutil-devel ffmpeg-4-libswscale-devel ffmpeg-4-libavdevice-devel
# oxygen5-icon-theme osboletes oxygen-icon-theme
Prefer: oxygen5-icon-theme

# kernel bug (coolo)
Prefer: kernel-default-devel

Prefer: -wxWidgets-3_0-devel wxWidgets-3_2-devel
Prefer: -libwx_baseu-suse-nostl4_0_0 -libwx_baseu-suse-nostl3_0_5 -libwx_baseu-suse3_0_5
Prefer: libopenssl-devel

Prefer: -xaw3dd -amanda
Prefer: libgcc_s1 libgcc_s1-32bit libgcc_s1-64bit
Prefer: libffi-devel
Prefer: libatomic1 libitm1 liblsan0 libtsan0 libubsan0
Prefer: libatomic1-32bit libcilkrts5-32bit libitm1-32bit libubsan0-32bit
Prefer: libgomp1 libgomp1-32bit libgomp1-64bit
Prefer: libobjc4 libquadmath0
Prefer: gnu-crypto libusb-compat-devel
Prefer: libusb-0_1-4
Prefer: libreoffice:xerces-j2
Prefer: glibc-devel
Prefer: netcdf-devel
Prefer: libnetcdf18
Prefer: NetworkManager:dhcp-client
Prefer: pcre-tools
Prefer: libpopt0 makeinfo
Prefer: -apache2-mod_perl -otrs
Prefer: libgnome-keyring-devel
Prefer: gnome-keyring-32bit
Prefer: linux-glibc-devel
Prefer: squid sysvinit
Prefer: libpng16-compat-devel
Prefer: -python -python3-gobject-devel -python3-gobject2-devel -libpng12-0
Prefer: python3-docutils
Prefer: perl-Mail-SPF:perl-Error
Prefer: -xml-commons-apis-bootstrap -xml-commons-resolver-bootstrap
Prefer: xmlgraphics-fop:xerces-j2
Prefer: cogl-devel
Prefer: -perl-XML-SAX perl-Test-YAML -perl-Pod-Usage
Prefer: libpsm2-compat
# choice p11-kit-nss-trust
Prefer: mozilla-nss-certs
# replacing mkinitrd
Prefer: dracut
# Temporary
Prefer: oxygen5-cursors
# Temporary
Prefer: -perl-App-cpanminus
# libmediaart is prepared for a larger update; for now favor mediaart-1.0
Prefer: -typelib-1_0-MediaArt-2_0
Prefer: -typelib-1_0-Gtk-2_0 -typelib-1_0-Gtk-4_0 -typelib-1_0-GooCanvas-2_0
Prefer: gettext-its-gtk3 gtk3-schema
# for pkgconfig(ijs) and no one actually rely on ghostscript-mini-devel in Factory
Prefer: ghostscript-devel
# for pkgconfig(libotf) libotf-devel and libotf-devel-32bit both provides it
Prefer: libotf-devel
# Prefer libsane1 over utsushi
Prefer: libsane1
# libglfw3 over libglfw3-wayland
Prefer: libglfw3

Ignore: installation-images-openSUSE:cracklib-dict-full
Ignore: systemd-sysvinit:systemd
Ignore: openSUSE-release:openSUSE-release-ftp,openSUSE-release-dvd5,openSUSE-release-biarch,openSUSE-release-livecdkde,openSUSE-release-livecdgnome
Ignore: openSUSE-MicroOS-release:openSUSE-MicroOS-release-dvd,openSUSE-MicroOS-release-kubic-dvd
Ignore: MicroOS-release:openSUSE-MicroOS-release-dvd,openSUSE-MicroOS-release-kubic-dvd
Ignore: MicroOS-release:MicroOS-release-ftp,MicroOS-release-dvd
Ignore: cracklib:cracklib-dict
Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,distribution-release,udev
Ignore: sysvinit:mingetty
Ignore: gettext-tools:libgcj,libstdc++-devel,libgcj41,libstdc++41-devel,libgcj42,libstdc++42-devel
Ignore: libgcj43,libstdc++43-devel
Ignore: libgcj44,libstdc++44-devel
Ignore: libgcj45,libstdc++45-devel
Ignore: libgcj46,libstdc++46-devel
Ignore: libgcj47,libstdc++47-devel
Ignore: librtas:util-linux
Ignore: pwdutils:openslp
Ignore: rpm:suse-build-key,build-key
Ignore: cloud-init:cloud-init-config
# python-pyudev requires libudev1 in normal situations
Ignore: python-pyudev:libudev1
Ignore: python2-pyudev:libudev1
Ignore: python3-pyudev:libudev1
Ignore: python-SPARQLWrapper:python-rdflib
Ignore: python3-SPARQLWrapper:python3-rdflib
Ignore: bind-utils:bind-libs
Ignore: portmap:syslogd
Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
Ignore: xorg-x11-server:xorg-x11-driver-input,xorg-x11-driver-video
Ignore: apache2:logrotate
Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
Ignore: kdelibs3:alsa,arts,OpenEXR,aspell,cups-libs,mDNSResponder-lib,krb5,libjasper
Ignore: kdelibs3-devel:libvorbis-devel
Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
Ignore: kdebase3-SuSE:release-notes
Ignore: jack:alsa,libsndfile
Ignore: libxml2-devel:readline-devel
Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,hal,libsmbclient,fam,file_alteration
Ignore: libgda:file_alteration
Ignore: gnutls:lzo,libopencdk
Ignore: gnutls-devel:lzo-devel,libopencdk-devel
Ignore: pango:cairo,glitz,libpixman,libpng
# Disabled on 2019-05-13 by dimstar: pango.pc newly also requires cairo.pc
#Ignore: pango-devel:cairo-devel
Ignore: cairo-devel:libpixman-devel
Ignore: libgnomeprint:libgnomecups
Ignore: libgnomeprintui:libgnomecups
Ignore: orbit2-devel:indent
Ignore: qt3:libmng
Ignore: qt-sql:qt_database_plugin
Ignore: libgnomecanvas-devel:glib-devel
Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
Ignore: scrollkeeper:docbook_4
Ignore: gnome-desktop:libgnomesu,startup-notification
Ignore: python-devel:python-tk
Ignore: libgtk-3-0:adwaita-icon-theme
Ignore: libgtk-3-0:gdk-pixbuf-loader-rsvg
Ignore: samba-libs:krb5
Ignore: libbonoboui:gnome-desktop
Ignore: libxfce4ui-1-0:exo-tools
Ignore: docbook_4:iso_ent,xmlcharent
Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
Ignore: docbook-xsl-stylesheets:xmlcharent
Ignore: liby2util-devel:libstdc++-devel,openssl-devel
Ignore: yast2:yast2-ncurses,yast2_theme,perl-Config-Crontab,yast2-xml,SuSEfirewall2
Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
Ignore: yast2-devtools:libxslt
Ignore: yast2-iscsi-lio-server:lio-utils
Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
Ignore: yast2-bootloader:bootloader-theme
Ignore: yast2-packager:yast2-x11,libyui_pkg
Ignore: autoyast2:yast2-schema
# not during build
Ignore: yui_backend
Ignore: yast2-x11:sax2-libsax-perl
Ignore: yast2-network:yast2-inetd
Ignore: openslp-devel:openssl-devel
Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog,ed
Ignore: texlive-bin:ghostscript-x11
Ignore: texlive-bin-omega:ghostscript-x11
Ignore: yast2-country:yast2-trans-stats
Ignore: tpb:tpctl-kmp
Ignore: tpctl:tpctl-kmp
Ignore: zaptel:zaptel-kmp
Ignore: mkinitrd:pciutils
Ignore: pciutils:pciutils-ids
Ignore: postfix:iproute2
Ignore: aaa_base:systemd
Ignore: gpm:systemd
Ignore: openssh:systemd
Ignore: cronie:systemd
Ignore: systemd:kbd
Ignore: systemd:kmod
Ignore: systemd:systemd-presets-branding
Ignore: systemd:dbus-1
Ignore: systemd:pam-config
Ignore: systemd:udev
Ignore: pesign:systemd
Ignore: logrotate:cron
Ignore: texlive-filesystem:cron
Ignore: xinit:xterm
Ignore: xdm:xterm
Ignore: gnome-control-center:gnome-themes-accessibility
Ignore: libgio-2_0-0:dbus-launch

Ignore: man:groff-full
Ignore: git-core:rsync
Ignore: apache2:systemd
Ignore: icewm-lite:icewm
Ignore: cluster-glue:sudo
Ignore: libgcc:glibc-32bit
Ignore: libgcc41:glibc-32bit
Ignore: libgcc42:glibc-32bit
Ignore: libgcc43:glibc-32bit
Ignore: libgcc44:glibc-32bit
Ignore: libgcc45:glibc-32bit
Ignore: libgcc46:glibc-32bit
Ignore: libgcc47:glibc-32bit
Ignore: libstdc++:glibc-32bit
Ignore: libstdc41++:glibc-32bit
Ignore: libstdc42++:glibc-32bit
Ignore: libstdc43++:glibc-32bit
Ignore: libstdc44++:glibc-32bit
Ignore: libstdc45++:glibc-32bit
Ignore: libstdc46++:glibc-32bit
Ignore: libstdc47++:glibc-32bit
Ignore: ncurses-32bit

Ignore: susehelp:susehelp_lang,suse_help_viewer
Ignore: mailx:smtp_daemon
Ignore: cron:smtp_daemon
Ignore: hotplug:syslog
Ignore: pcmcia:syslog
Ignore: openct:syslog
Ignore: postfix:sysvinit(syslog)
Ignore: cups:sysvinit(syslog)
Ignore: jython:servlet
Ignore: ispell:ispell_dictionary,ispell_english_dictionary
Ignore: aspell:aspel_dictionary,aspell_dictionary
Ignore: smartlink-softmodem:kernel,kernel-nongpl
Ignore: libreoffice-de:myspell-german-dictionary
Ignore: libreoffice:libreoffice-i18n
Ignore: libreoffice:libreoffice-icon-themes
Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl
Ignore: perl-Log-Log4perl:rrdtool

Ignore: simias:mono(log4net)
Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php

Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
Ignore: xdg-menu:desktop-data
Ignore: nessus-libraries:nessus-core
Ignore: evolution:yelp
Ignore: e17:e17-branding e17:e17-theme

Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)

Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
Ignore: libcdio:libcddb.so.2

Ignore: coreutils:coreutils-lang
Ignore: cpio:cpio-lang
Ignore: glib2:glib2-lang
Ignore: gtk2:gtk2-lang
Ignore: gtk:gtk-lang
Ignore: atk:atk-lang
Ignore: MozillaThunderbird:pinentry-dialog
Ignore: seamonkey:pinentry-dialog
Ignore: pinentry:pinentry-dialog
Ignore: gpg2:gpg2-lang
Ignore: util-linux:util-linux-lang
Ignore: suseRegister:distribution-release
Ignore: compiz:compiz-decorator
Ignore: icecream:gcc-c++
Ignore: no
Ignore: package
Ignore: provides
Ignore: j9vm/libjvm.so()(64bit)
Ignore: kdepim3:suse_help_viewer
Ignore: kdebase3-SuSE:kdebase3-SuSE-branding
Ignore: kio_sysinfo:kdebase3-SuSE-branding
Ignore: gnome-menus:gnome-menus-branding
Ignore: epiphany:epiphany-branding
Ignore: gnome-control-center:gnome-control-center-branding
Ignore: phonon:phonon-backend
Ignore: openwbem-devel
Ignore: MozillaFirefox:MozillaFirefox-branding
Ignore: yast2:yast2-branding
Ignore: plymouth:plymouth-branding 
Ignore: plymouth:suspend
Ignore: yast2-qt:yast2-branding
Ignore: yast2-theme-SLE:yast2-branding
Ignore: yast2-registration:yast2-registration-branding
Ignore: compiz:compiz-branding
Ignore: texlive:perl-Tk texlive-bin:perl-Tk
Ignore: xfce4-desktop:xfce4-desktop-branding
Ignore: xfce4-panel:xfce4-panel-branding
Ignore: xfce4-session:xfce4-session-branding
Ignore: kdebase4-runtime:kdebase4-runtime-branding
Ignore: transmission-common:transmission-ui
Ignore: sysvinit-tools:mkinitrd cifs-utils:mkinitrd
Ignore: mkinitrd:sbin_init
Ignore: opensc:pinentry
Ignore: gpg2:pinentry
Ignore: NetworkManager:dhcp
Ignore: NetworkManager:iproute2
# sysconfig requires it at runtime, not buildtime
Ignore: sysconfig:dbus-1
Ignore: sysconfig:procps
Ignore: sysconfig:iproute2
Ignore: sysconfig-network:iproute2
Ignore: sysconfig:tunctl
Ignore: sysconfig:sysvinit(network)
# no build dependencies
Ignore: libksuseinstall1:yast2-packager
Ignore: libksuseinstall1:zypper
Ignore: syslog-service:logrotate
Ignore: libglue-devel:cluster-glue
Ignore: libqca2:gpg2
Ignore: NetworkManager:wpa_supplicant
Ignore: NetworkManager:dhcp-client
Ignore: libgio-2_0-0:dbus-1-x11
Ignore: libgio-2_0-0:dbus-1
Prefer: libgio-2_0-0:dbus-1
Ignore: weather-wallpaper:inkscape
Ignore: libgamin-1-0:gamin-server
Ignore: libfam0-gamin:gamin-server
Ignore: python3:python3-pip
Ignore: avahi:sysvinit(network)
Ignore: cluster-glue:sysvinit(network)
Ignore: dracut:systemd-sysvinit

%ifarch ppc64le
#Constraint: hostlabel PPC64LE_HOST
Constraint: hardware:cpu:flag power8
%endif

Macros:
# RUBY - UNVERSIONED STUFF
#
# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
#
#  if you change any macros here you have to update the copy in the
#  prjconf aswell.
#
# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
#
%rubygem() %{expand:%%{rubygems%rb_build_versions STOP %*}}
%rubygemsSTOP() %nil
%rubygemsxSTOP() %{expand:%%rubygemsxxSTOP -a %*}
%rubygemsxxSTOP(a:) %{-a*}) %*

%rubySTOP() %nil
%rubyxSTOP() %*

%ruby() %{expand:%%{ruby%rb_build_versions STOP %*}}

%rubydevel() %{expand:%%{rubydevel%rb_build_versions STOP %*}}

%rubydevelSTOP() %nil
%rubydevelxSTOP() %*
#
 
#
# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
#
#  if you change any macros here you have to update the copy in
#  ruby<X.X> aswell.
#
# IMPORTANT IMPORTANT IMPORTANT IMPORTANT  IMPORTANT IMPORTANT
#

### And now Ruby 2.7

%rubygemsruby27() rubygem(ruby:2.7.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
%rubygemsxruby27() %{expand:%%{rubygemsx%*}}

%rubyruby27() ruby2.7 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
%rubyxruby27() %{expand:%%{rubyx%*}}

%rubydevelruby27() ruby2.7-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
%rubydevelxruby27() %{expand:%%{rubydevelx%*}}

### And now Ruby 3.0

%rubygemsruby30() rubygem(ruby:3.0.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
%rubygemsxruby30() %{expand:%%{rubygemsx%*}}

%rubyruby30() ruby3.0 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
%rubyxruby30() %{expand:%%{rubyx%*}}

%rubydevelruby30() ruby3.0-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
%rubydevelxruby30() %{expand:%%{rubydevelx%*}}

### Things to define default ruby stuff for the distro

%rb_default_ruby        ruby27
%rb_default_ruby_suffix ruby2.7
%rb_default_ruby_abi    ruby:2.7.0

%rb_build_ruby_abis     ruby:2.7.0 ruby:3.0.0
%rb_build_versions      ruby27 ruby30
:Macros

Macros:
%_with_ruby27               1
%_with_ruby30               1
:Macros

%define _with_ruby27         1
%define _with_ruby30         1

%define rb_default_ruby        ruby27
%define rb_default_ruby_suffix ruby2.7
%define rb_default_ruby_abi    ruby:2.7.0

%define rb_build_ruby_abis     ruby:2.7.0 ruby:3.0.0
%define rb_build_versions      ruby27 ruby30

Prefer: %{rb_default_ruby_suffix}-rubygem-asciidoctor
Prefer: %{rb_default_ruby_suffix}-rubygem-bundler
Prefer: %{rb_default_ruby_suffix}-rubygem-cfa
Prefer: %{rb_default_ruby_suffix}-rubygem-cheetah
Prefer: %{rb_default_ruby_suffix}-rubygem-gem2rpm
Prefer: %{rb_default_ruby_suffix}-rubygem-inifile
Prefer: %{rb_default_ruby_suffix}-rubygem-mini_portile2
Prefer: %{rb_default_ruby_suffix}-rubygem-ronn
Prefer: %{rb_default_ruby_suffix}-rubygem-rspec
Prefer: -ruby3.0-rubygem-rspec-3_5
Prefer: %{rb_default_ruby_suffix}-rubygem-ruby-dbus
Prefer: %{rb_default_ruby_suffix}-rubygem-sass
Prefer: %{rb_default_ruby_suffix}-rubygem-sass-rails
Prefer: %{rb_default_ruby_suffix}-rubygem-yard
Prefer: %{rb_default_ruby_suffix}-rubygem-yast-rake

# END RUBY STUFF

# PYTHON STUFF

%define skip_python2 1
%define _without_python2 1

Macros:
## PYTHON MACROS BEGIN
# order of %pythons is important: The last flavor overrides any operation on conflicting files and definitions during expansions,
# making it the "default" in many cases --> keep the primary python3 provider at the end.
%pythons %{?!skip_python3:%{?!skip_python36:python36} %{?!skip_python39:python39} %{?!skip_python38:python38}}
%add_python() %{expand:%%define pythons %1 %pythons}

%_without_python2 1

# prjconf definitions for python-rpm-macros
# This method for generating python_modules gets too deep to expand for rpm at about 5 python flavors.
# Hence, python_module_iter is replaced by python_module_lua in macros.lua.
# However, OBS cannot expand lua, but has a much higher expansion depth, so this works fine for the server side resolver.
%python_module_iter(a:) %{expand:%%define python %{-a*}} ( %python-%args ) %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}%%{?python_module_iter_%1}}
# pseudo-undefine for obs: reset for the next expansion within the next call of python_module
%python_module_iter_STOP %global python %%%%python
%python_module() %{?!python_module_lua:%{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}}%{?python_module_lua:%python_module_lua %{**}}
## PYTHON MACROS END
:Macros

# END PYTHON STUFF

# BEGIN RUST STUFF 

# Define the architectures in which Rust (and Rust crates) are available
# NOTE: Keep this in sync with rust-srpm-macros!
%define rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x

Macros:
%rust_arches x86_64 i586 i686 armv6hl armv7hl aarch64 ppc64 powerpc64 ppc64le powerpc64le s390x
:Macros

# END RUST STUFF

# Default to Java 11
Prefer: java-11-openjdk-devel java-11-openjdk java-11-openjdk-headless java-11-openjdk-javadoc
%ifarch s390x
Prefer: java-1_8_0-openj9-devel java-1_8_0-openj9 java-1_8_0-openj9-headless
%endif
Prefer: java-1_8_0-openjdk-devel java-1_8_0-openjdk java-1_8_0-openjdk-headless java-1_8_0-openjdk-javadoc
Prefer: java-15-openjdk-devel java-15-openjdk java-15-openjdk-headless java-15-openjdk-javadoc
Prefer: java-14-openjdk-devel java-14-openjdk java-14-openjdk-headless java-14-openjdk-javadoc
Prefer: java-1_7_0-bootstrap-devel java-1_7_0-bootstrap java-1_7_0-bootstrap-headless

%ifarch x86_64 ppc64 s390x sparc64
Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
%else
 %ifarch ppc sparc sparcv9
Substitute: glibc-devel-32bit glibc-devel-64bit
 %else
Substitute: glibc-devel-32bit
 %endif
%endif

%ifarch %ix86
Substitute: kernel-binary-packages kernel-default kernel-smp kernel-bigsmp kernel-debug kernel-xen
%endif
%ifarch ia64
Substitute: kernel-binary-packages kernel-default kernel-debug
%endif
%ifarch x86_64
Substitute: kernel-binary-packages kernel-default kernel-smp kernel-xen
%endif
%ifarch ppc
Substitute: kernel-binary-packages kernel-default kernel-ppc64 kernel-ps3
%endif
%ifarch ppc64
Substitute: kernel-binary-packages kernel-default kernel-ppc64
%endif
%ifarch s390
Substitute: kernel-binary-packages kernel-s390
%endif
%ifarch s390x
Substitute: kernel-binary-packages kernel-default
%endif

# until the builds of the packages are fixed...
Substitute: yast2-theme-SLED
Substitute: yast2-theme-SLE

Optflags: i586 -fomit-frame-pointer
Optflags: i686 -march=i686 -mtune=generic -fomit-frame-pointer
Optflags: x86_64
Optflags: ppc
Optflags: ppc64
Optflags: ia64
Optflags: s390
Optflags: s390
Optflags: armv7l
Optflags: armv7hl
Optflags: armv6l
Optflags: armv6hl
Optflags: aarch64 -mbranch-protection=standard
Optflags: ppc64le
# need mcpu=ultrasparc to complete sparcv8plus to sparcv9 (adds, for example, atomic ops)
Optflags: sparcv9 -mcpu=ultrasparc
Optflags: sparc64 -mcpu=ultrasparc
%ifarch sparcv9
Target: sparcv9
%endif
%ifarch armv6l armv6hl
Target: armv6hl-suse-linux
%endif
%ifarch armv7l armv7hl
Target: armv7hl-suse-linux
%endif

%ifnarch ppc64
Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type %%{?_lto_cflags}
%else
Optflags: * -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type
%endif

# 15.5 does not exist !
%define suse_version 1550
%define is_opensuse 1
%define skelcd_compat 0

Macros:
%suse_version 1550
%is_opensuse 1
%skelcd_compat 0

# trim binary changelogs back to Jan 01 2018
# maxnum,cuttime,minnum
# 2018/01/01
%_binarychangelogtrim 0,1514764800,10
#  %_changelog_trimtime 1514764800

%build_ldflags %{?_lto_cflags}

%insserv_prereq insserv sed
%fillup_prereq fillup /usr/bin/mkdir /usr/bin/touch
%suseconfig_fonts_prereq perl aaa_base
# I can't just not define it, as otherwise all specs using it break: [   25s] error: line 27: Empty tag: Requires(post):
%install_info_prereq /bin/sh
%kernel_module_package_buildreq kmod-compat kernel-syms
%kernel_module_package_buildreqs kmod-compat kernel-syms

%sles_version 0
%ul_version 0
%do_profiling 1
%opensuse_bs 1
%_vendor suse

# Reproducible builds
%source_date_epoch_from_changelog Y
# clamp_mtime_to_source_date_epoch Y

# define which gcc package builds the system libraries
%product_libs_gcc_ver 11
# The following shlibs have latest versions built from GCC 6 sources
%product_libs_gcc_ver_libasan3 6
%product_libs_gcc_ver_libgo9 6
%product_libs_gcc_ver_libgfortran3 6
# reminded by richi 2017 4/3
%product_libs_gcc_ver_libgcj_bc1 6
# The following shlibs have the latest version built from GCC 7 sources
%product_libs_gcc_ver_libgfortran4 7
%product_libs_gcc_ver_libasan4 7
%product_libs_gcc_ver_libubsan0 7
%product_libs_gcc_ver_libcilkrts5 7
%product_libs_gcc_ver_libgo11 7
# The following shlibs have the latest version  built from GCC 8
%product_libs_gcc_ver_libmpx2 8
%product_libs_gcc_ver_libmpxwrappers2 8
%product_libs_gcc_ver_libgo13 8
# The following shlibs have the latest version built from GCC 9 sources
%product_libs_gcc_ver_libasan5 9
%product_libs_gcc_ver_libgo14 9
# The following shlibs have the latest version built from GCC 10 sources
%product_libs_gcc_ver_libgphobos1 10
%product_libs_gcc_ver_libgdruntime1 10
%product_libs_gcc_ver_libgo16 10
%gcc_version 10

%ext_info .gz
%ext_man .gz

# %info_add(:-:) test -x /sbin/install-info -a -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
# %{nil}

# %info_del(:-:) test -x /sbin/install-info -a ! -f %{?2}%{?!2:%{_infodir}}/%{1}%ext_info && /sbin/install-info --quiet --delete --info-dir=%{?2}%{?!2:%{_infodir}} %{?2}%{?!2:%{_infodir}}/%{1}%ext_info \
# %{nil}
:Macros