Blob Blame History Raw
Prefer: yast2-schema-default
%define gcc_version 12

# 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:20221005

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 gcc9 provided libs:
Prefer: libasan6 libasan6-32bit libubsan1 libubsan1-32bit libgfortran5

Patterntype: rpm-md ymp
%if "%_repository" == "images"
  Type: kiwi
  Repotype: none
  Patterntype: none
  Prefer: openSUSE-release-ftp
  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
  %ifarch aarch64
    BuildFlags: dockerarg:TARGETARCH=arm64
  %endif
  %ifarch x86_64
    BuildFlags: dockerarg:TARGETARCH=amd64
  %endif
%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:Containers" || "%_project" == "openSUSE:Factory:RISCV" || "%_project" == "openSUSE:Factory:zSystems"
BuildFlags: excludebuild:openh264
Macros:
%vendor openSUSE
%distribution openSUSE Tumbleweed
%packager https://bugs.opensuse.org
:Macros
%endif

%if "%_project" == "openSUSE:Factory" || "%_project" == "openSUSE:Factory:PowerPC" || "%_project" == "openSUSE:Factory:ARM" || "%_project" == "openSUSE:Factory:Rebuild" || "%_project" == "openSUSE:Factory:Live" || "%_project" == "openSUSE:Factory:NonFree"
Substitute: kiwi-image:docker python3-kiwi kiwi-systemdeps-containers container-build-checks-vendor-openSUSE container-build-checks-strict
Substitute: system-packages:docker kmod kernel-default docker createrepo_c container-build-checks-vendor-openSUSE container-build-checks-strict
Substitute: system-packages:podman podman buildah createrepo_c release-compare container-build-checks-vendor-openSUSE container-build-checks-strict
%else
# That ignore seems not to make sense - we only inject -strict based on specific projects already
Ignore: container-build-checks-strict
Substitute: kiwi-image:docker python3-kiwi kiwi-systemdeps-containers container-build-checks-vendor-openSUSE
Substitute: system-packages:docker kmod kernel-default docker createrepo_c container-build-checks-vendor-openSUSE
Substitute: system-packages:podman podman buildah createrepo_c release-compare container-build-checks-vendor-openSUSE
%endif

%if "%_project" == "openSUSE:Factory" || "%_project" == "openSUSE:Factory:PowerPC" || "%_project" == "openSUSE:Factory:ARM" || "%_project" == "openSUSE:Factory:zSystems"
BuildFlags: excludebuild:openh264
%endif

Substitute: kiwi-setup:image  python3-kiwi createrepo_c
Substitute: kiwi-image:tbz    python3-kiwi
Substitute: kiwi-image:iso    kiwi-systemdeps-iso-media qemu-tools
Substitute: kiwi-image:oem    kiwi-systemdeps-disk-images xorriso
Substitute: kiwi-image:appx   wsl-appx appx-util
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: build-packages:docker !cmake-mini !dummy-release !gettext-runtime-mini !gettext-tools-mini !ghostscript-mini !gio-branding-upstream !krb5-mini !krb5-mini-devel !libsystemd0-mini !systemd-mini-container !libudev-mini-devel !libudev-mini1 !libuna-mini-devel !libuna1-mini !libunbound-devel-mini !postgresql15-devel-mini !systemd-mini !systemd-mini-devel !systemd-mini-sysvinit !udev-mini patterns-base-fips

# Podman based image building
Substitute: build-packages:kiwi !cmake-mini !dummy-release !gettext-runtime-mini !gettext-tools-mini !ghostscript-mini !gio-branding-upstream !krb5-mini !krb5-mini-devel !libsystemd0-mini !systemd-mini-container !libudev-mini-devel !libudev-mini1 !libuna-mini-devel !libuna1-mini !libunbound-devel-mini !log4j12-mini !postgresql15-devel-mini !systemd-mini !systemd-mini-devel !systemd-mini-sysvinit !udev-mini patterns-base-fips

# To build ISO images
Substitute: build-packages:iso !cmake-mini !dummy-release !gettext-runtime-mini !gettext-tools-mini !ghostscript-mini !gio-branding-upstream !krb5-mini !krb5-mini-devel !libsystemd0-mini !systemd-mini-container !libudev-mini-devel !libudev-mini1 !libuna-mini-devel !libuna1-mini !libunbound-devel-mini !log4j12-mini !postgresql15-devel-mini !systemd-mini !systemd-mini-devel !systemd-mini-sysvinit !udev-mini

# 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

# fvogt 2022-10-11: Let's try this again.
#%ifnarch armv6l
# Not enabled for armv6l, due to https://bugzilla.opensuse.org/show_bug.cgi?id=1193317
# Enable ccache for a selection of packages:
  BuildFlags: useccache:NetworkManager
  BuildFlags: useccache:bitcoin
  BuildFlags: useccache:ceph
  BuildFlags: useccache:chromium
  BuildFlags: useccache:gtk3
  BuildFlags: useccache:llvm9
  BuildFlags: useccache:nodejs-electron
  BuildFlags: useccache:webkit2gtk3:gtk3
  BuildFlags: useccache:webkit2gtk3:gtk3-soup2
  BuildFlags: useccache:webkit2gtk3:gtk4
#%endif

# slsaprovenance - as described at https://slsa.dev/provenance/v0.2
# slsaprovenance diabled on Apr 28 2022
# 07:29 < adrianS> DimStar: the slsafiles get not correctly generated, please disable the prjconf setting for now
#BuildFlags: slsaprovenance

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

# 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

Preinstall: liblua5_4-5

FileProvides: /bin/bash bash
FileProvides: /usr/bin/bash bash
FileProvides: /bin/sh bash-sh busybox-sh
FileProvides: /usr/bin/sh bash-sh busybox-sh
Prefer: bash-sh
FileProvides: /bin/csh tcsh
FileProvides: /usr/bin/ed ed busybox-ed
Prefer: -busybox-ed
FileProvides: /bin/hostname hostname busybox-hostname
Prefer: -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/Xvfb xorg-x11-server
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/fusermount3 fuse3
FileProvides: /usr/bin/grep busybox-grep grep
FileProvides: /usr/bin/gzip busybox-gzip gzip zstd-gzip
Prefer: gzip
FileProvides: /usr/bin/bzip2 busybox-bzip2 bzip2
Prefer: bzip2
FileProvides: /usr/bin/lzop lzop
FileProvides: /usr/bin/killall psmisc
FileProvides: /usr/bin/mkdir coreutils busybox-coreutils
FileProvides: /usr/bin/mimencode metamail
FileProvides: /usr/bin/mkisofs mkisofs
# https://bugzilla.suse.com/show_bug.cgi?id=1199995
FileProvides: /usr/bin/node nodejs-default
FileProvides: /usr/bin/openssl openssl
FileProvides: /usr/bin/perl perl-base
FileProvides: /usr/bin/pkexec pkexec
FileProvides: /usr/bin/pkg-config pkgconf-pkg-config
Substitute: pkg-config pkgconf-pkg-config
FileProvides: /usr/bin/glxinfo Mesa-demo-x
FileProvides: /usr/bin/python python-base
FileProvides: /usr/bin/python2 python2-base
FileProvides: /usr/bin/python3 python310-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/vulkaninfo vulkan-tools
FileProvides: /usr/bin/wayland-info wayland-utils
FileProvides: /usr/bin/which which busybox-which
FileProvides: /usr/bin/xdpyinfo xdpyinfo
FileProvides: /usr/bin/xmllint libxml2-tools
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
%if "%_repository" != "standard" && "%_repository" != "ports"
FileProvides: /usr/bin/gdb-add-index gdb
%endif

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

#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

# Add hostname so that OBS/build will have a chance to identify the hostname (instead of localhost)
# build has alternative ways to inject hostname nowadays - removed 2022-03-23 - dimstar
#Support: hostname
#Prefer: -busybox-hostname

# 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
# new: use kernel-obs-build from aarch64 for aarch64 armv6 and armv7
ExportFilter: ^kernel-obs-build.*\.armv6hl\.rpm$
ExportFilter: ^kernel-obs-build.*\.armv7hl\.rpm$
ExportFilter: ^kernel-obs-build.*\.aarch64\.rpm$  . armv6l armv7l
# now make sure the jobs get a 64bit cpu, otherwise can not run the 64bit kernel
%ifarch armv6l armv7l
Constraint: hardware:cpu:flag cpuid
%endif

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

############
# For QEMU #
############
#
# Firmwares are built (if possible) once per "port". This reduces build time, e.g., as compared
# to cross-compiling everything on everything, and improve consistency, while keeping things self
# contained, within ports, which is especially important for openSUSE:Factory
#
# ### x86 firmwares
# They are built on: x86_64 and aarch64. The x86_64 build can then be imported in i586, and the
# aarch64 one in armv7l. We're not yet able to build them on any PPC arch (but are working on it)
# so, for this devel project, we're exporting them there too (and for Factory, we have an aggregate).
# We're also not able to build them on zsystem and riscv, so export them there as well, here in the
# devel project (for Factory, we just miss them in s390, while riscv is special in its own way).
ExportFilter: ^qemu-ipxe.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64
ExportFilter: ^qemu-seabios.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64
ExportFilter: ^qemu-vgabios.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64
ExportFilter: ^qemu-sgabios.*\.noarch\.rpm$ . i586 armv7l ppc ppc64 ppc64le s390x riscv64
# ### PPC firmwares
# They are built on: x86_64, aarch64 and ppc64le. The x86_build can then by imported in i586, the
# aarch64 one in armv7l and the ppc64le one in ppc and ppc64. As for the x86 firmwares, here in the
# devel project, we export them directly to all the arch-es that can't build them, just for convenience.
ExportFilter: ^qemu-skiboot.*\.noarch\.rpm$ . i586 armv7l ppc s390x riscv64
ExportFilter: ^qemu-SLOF.*\.noarch\.rpm$ . i586 armv7l ppc s390x riscv64
# TODO: does the 'qemu-edk2' package still exist?
ExportFilter: ^qemu-edk2.*\.noarch\.rpm$ .    i586 armv7l aarch64 ppc ppc64 ppc64le s390x riscv64
ExportFilter: ^qemu-microvm.*\.noarch\.rpm$ . i586 armv7l aarch64 ppc ppc64 ppc64le s390x riscv64

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

# the basic stuff
Support: perl
Support: build-mkbaselibs compat-usrmerge-build
Prefer:  build-mkbaselibs
Support: brp-check-suse
Support: post-build-checks

# remove build-compare support to disable "same result" package dropping
Support: build-compare

Support: rpmlint-mini
# 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-strict
%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: 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 krb5-mini-devel
Prefer: krb5-mini-devel:krb5-mini
Prefer: libdebuginfod1 debuginfod-client
Prefer: libudev-mini1 udev-debuginfo libudev1-debuginfo
Prefer: libuna-mini-devel libuna1-mini
Prefer: libunbound-devel-mini
Prefer: systemd-mini systemd-mini-devel libsystemd0-mini systemd-mini-container
Prefer: systemd-mini-devel:systemd-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: postgresql14-devel-mini:this-is-only-for-build-envs
Ignore: postgresql15-devel-mini:this-is-only-for-build-envs
Ignore: systemd-mini:this-is-only-for-build-envs
Ignore: systemd-mini-container: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

Ignore: polkit-default-privs:polkit

# tcl requires sqlite3-tcl to uphold the promise from upstream to be complete
# but as we decide to build sqlite3-tcl as part of sqlite, not tcl (to get more up-to-date version)
# we need to ignore the tcl -> sqlite dep
Ignore: tcl:sqlite3-tcl

# 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

# 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

# pythin-pip inside OBS never connects to the net, so we don't use certs
Ignore: python38-pip:ca-certificates
Ignore: python39-pip:ca-certificates
Ignore: python310-pip:ca-certificates

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

# have choice for pkgconfig(catch2): Catch2-2-devel Catch2-devel
Prefer: -Catch2-2-devel

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

# have choice for python3-magic: python38-magic python38-python-magic
Prefer: -python38-magic -python39-magic -python310-magic

# have choice for gcr-ssh-agent needed by libgcr-3-1: gcr-ssh-agent gcr3-ssh-agent
Prefer: -gcr3-ssh-agent -gcr3-viewer

# have choice for (python36-qt5 or python36-PyQt6) needed by python36-pytest-qt
Prefer: -python310-PyQt6 -python39-PyQt6 -python38-PyQt6 -python3-pyside2
# 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 kernel >= 4.1.0 needed by libbcc0: kernel-debug kernel-default kernel-default-base kernel-kvmsmall kernel-vanilla
Prefer: kernel-default-base

# 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.20-kubelet-common -kubernetes1.21-kubelet-common -kubernetes1.22-kubelet-common -kubernetes1.23-client-common

# have choice for html2text
Prefer: -python38-html2text -python39-html2text -python310-html2text

# have choice for (gnome-session or budgie-desktop) needed by gnome-shell: budgie-desktop gnome-session
Prefer: -budgie-desktop

# python-tornado exists in multiple versions, the meta-package python-tornado defines the system default
Prefer: python38-tornado
Prefer: python39-tornado
Prefer: python310-tornado


Prefer: -gnome-bluetooth-1
# 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 python3-sip: python3-sip-devel python3-sip4
Prefer: python38-sip-devel python39-sip-devel python310-sip-devel
Prefer: -python38-sip4 -python38-sip4-devel
Prefer: -python39-sip4 -python39-sip4-devel
Prefer: -python310-sip4 -python310-sip4-devel

Prefer: python310-Shapely:geos

# pipewire has a jack compatible implementation - but for now we prefer the real jack
Prefer: -pipewire-libjack-0_3-devel libjack0

# have choice for python3-zeep >= 3.2.0: python310-softlayer-zeep python310-zeep
Prefer: -python310-softlayer-zeep

# There is python[23]-prompt_toolkit and also python3-prompt_toolkit1 for compat. Use the unversioned one by default
Prefer: python39-prompt_toolkit python38-prompt_toolkit python310-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 php8
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: python38-vsts python39-vsts

# have choice for (sysvinit(network) or service(network)) needed by sysconfig: NetworkManager wicked-service
Prefer: -NetworkManager

# 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

# unresolvable: have choice for libhs.so.5()(64bit) needed by rspamd: libhs5 libhs5-vectorscan5
Prefer: -libhs5-vectorscan5

# 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
Prefer: eclipse-swt

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

# have choice for pkgconfig(nunit): nunit-devel nunit3-devel; as usual, unversioned one wins
Prefer: -nunit3-devel

# have choice for libz.so.1()(64bit) needed by gcc11: libz-ng-compat1 libz1
# Pick the regular libz.so.1
Prefer: -libz-ng-compat1 -zlib-ng-compat-devel -libz-ng-compat1-32bit

# have choice for (distrobox if patterns-microos-desktop-common else toolbox) needed by patterns-containers-container_runtime: patterns-microos-desktop-common toolbox
Prefer: -patterns-microos-desktop-common

#  unresolvable: have choice for libomp.so()(64bit) needed by libispcrt_1: libomp11-devel libomp12-devel libomp13-devel libomp14-devel libomp15-devel, have choice for libomp.so(VERSION)(64bit) needed by libispcrt_1: libomp11-devel libomp12-devel libomp13-devel libomp14-devel libomp15-devel 
Prefer: -libomp11-devel -libomp12-devel -libomp13-devel -libomp14-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-libEGL-devel-32bit
Prefer: -Mesa-libGL-devel-32bit
Prefer: -Mesa-libGLESv1_CM-devel-32bit
Prefer: -Mesa-libGLESv2-devel-32bit
Prefer: -Mesa-libd3d-devel-32bit
Prefer: -Mesa-libglapi-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: -atkmm-devel-32bit
Prefer: -atkmm1_6-devel-32bit
Prefer: -audiofile-devel-32bit
Prefer: -audit-devel-32bit
Prefer: -augeas-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: -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: -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: -keyutils-devel-32bit
Prefer: -krb5-devel-32bit
Prefer: -lapack-devel-32bit
Prefer: -lapacke-devel-32bit
Prefer: -libFS-devel-32bit
Prefer: -libHX-devel-32bit
Prefer: -libICE-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: -libQt5Widgets-devel-32bit
Prefer: -libQt5Xml-devel-32bit
Prefer: -SDL2-devel-32bit
Prefer: -libSDL2_gfx-devel-32bit
Prefer: -libSDL_gfx-devel-32bit
Prefer: -libSDL_image-devel-32bit
Prefer: -libSDL_mixer-devel-32bit
Prefer: -libSDL_mixer-devel-64bit
Prefer: -libSDL_net-devel-32bit
Prefer: -libSDL_ttf-devel-32bit
Prefer: -libSDL_ttf-devel-64bit
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: -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: -liblbxutil-devel-32bit
Prefer: -liblcms2-devel-32bit
Prefer: -libmount-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: -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: -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: -libsoup2-devel-32bit
Prefer: -libstatgrab-devel-32bit
Prefer: -libstdc++-devel-32bit
Prefer: -libtasn1-devel-32bit
Prefer: -libtiff-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: -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: -libzstd-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: -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: -pipewire-libjack-0_3-32bit
Prefer: -popt-devel-32bit
Prefer: -rdma-core-devel-32bit
Prefer: -readline-devel-32bit
Prefer: -readline5-devel-32bit
Prefer: -readline6-devel-32bit
Prefer: -samba-devel-32bit
Prefer: -sane-backends-devel-32bit
Prefer: -spirv-tools-devel-32bit
Prefer: -telepathy-qt5-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

# Ruby stuff - quite a few packages exist in multiple versions in the distro; in each case, the Preference is on the 'unversioned' package
Prefer: ruby3.1-rubygem-fast_gettext
Prefer: -ruby3.1-rubygem-public_suffix-3.1

# 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: python38-pytest python39-pytest python310-pytest

# 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
Prefer: cracklib-dict-small
Prefer: libstdc++6 libgcc_s1 libquadmath0 libhwasan0 libgccjit0
Prefer: libstdc++6-32bit libstdc++6-64bit
Prefer: syslog-service
Prefer: poppler-tools
Prefer: libjpeg8-devel libjpeg-turbo
Prefer: microcode_ctl:kernel-default
Prefer: 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: rpcbind
Prefer: 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: libhdf5_hl200 -libhdf5-200-openmpi1 -libhdf5-200-mvapich2 -libhdf5_cpp200-openmpi1 -libhdf5_cpp200-mvapich2 -libhdf5-200-openmpi2 -libhdf5-200-openmpi3 -libhdf5-200-openmpi4 -libhdf5_cpp200-openmpi2 -libhdf5_cpp200-openmpi3 -libhdf5_cpp200-openmpi4
Prefer: libvtk1-openmpi2
Prefer: -vtk-openmpi2-qt -vtk-openmpi3-qt
Prefer: -openmpi3-libs
Prefer: -openmpi3-config -openmpi2-config -openmpi1-config
Prefer: -openmpi5-config
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: postgresql15-devel-mini
# only needed to bootstrap 11, but leave it - 12 will come at some point :)
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
%define ffmpeg_pref ffmpeg-4
Prefer: %{ffmpeg_pref} %{ffmpeg_pref}-libavcodec-devel %{ffmpeg_pref}-libavformat-devel %{ffmpeg_pref}-libavutil-devel %{ffmpeg_pref}-libswscale-devel %{ffmpeg_pref}-libavdevice-devel %{ffmpeg_pref}-libavfilter-devel
# oxygen5-icon-theme osboletes oxygen-icon-theme
Prefer: oxygen5-icon-theme

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

# llvm exists in multiple versions
Prefer: libclang13 libc++1 libc++abi1 libc++-devel libc++abi-devel

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

Prefer: libqca-qt5-2 qca-qt5-plugins
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: libnetcdf19
Prefer: NetworkManager:dhcp-client
Prefer: pcre-tools
Prefer: libpopt0 makeinfo
Prefer: -apache2-mod_perl
Prefer: libgnome-keyring-devel
Prefer: gnome-keyring-32bit
Prefer: linux-glibc-devel
Prefer: squid
Prefer: libpng16-compat-devel
Prefer: -python -libpng12-0
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
# have choice for (xclip or wl-clipboard) needed by password-store: wl-clipboard xclip
Prefer: -wl-clipboard
# have choice for pkgconfig(libhs): hyperscan-devel vectorscan-devel. hyperscan is for x86 only, prefer that where possible (for now).
Prefer: hyperscan-devel

Ignore: installation-images-openSUSE:cracklib-dict-full
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: rpm:suse-build-key,build-key
Ignore: cloud-init:cloud-init-config
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: libxml2-devel:readline-devel
Ignore: gnutls:lzo,libopencdk
Ignore: gnutls-devel:lzo-devel,libopencdk-devel
Ignore: pango:cairo,glitz,libpixman,libpng
Ignore: cairo-devel:libpixman-devel
Ignore: scrollkeeper:docbook_4
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: libxfce4ui-1-0:exo-tools
Ignore: docbook_4:iso_ent,xmlcharent
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: yast2-x11:sax2-libsax-perl
Ignore: openslp-devel:openssl-devel
Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,ghostscript-x11,xaw3d,gd,dialog
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: 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: ncurses-32bit

Ignore: mailx:smtp_daemon
Ignore: cron:smtp_daemon
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: 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: 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: 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: compiz:compiz-decorator
Ignore: icecream:gcc-c++
#Ignore: no
#Ignore: package
#Ignore: provides
#Ignore: j9vm/libjvm.so()(64bit)
Ignore: gnome-menus:gnome-menus-branding
Ignore: epiphany:epiphany-branding
Ignore: gnome-control-center:gnome-control-center-branding
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: 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: gpg2:pinentry
# sysconfig requires it at runtime, not buildtime
Ignore: sysconfig:sysvinit(network)
# no build dependencies
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: libgamin-1-0:gamin-server
Ignore: libfam0-gamin:gamin-server
Ignore: avahi:sysvinit(network)
Ignore: cluster-glue:sysvinit(network)
Ignore: dracut:systemd-sysvinit
Ignore: yui_backend

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

### And now Ruby 3.1

%rubygemsruby31() rubygem(ruby:3.1.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
%rubygemsxruby31() %{expand:%%{rubygemsx%*}}

%rubyruby31() ruby3.1 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
%rubyxruby31() %{expand:%%{rubyx%*}}

%rubydevelruby31() ruby3.1-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
%rubydevelxruby31() %{expand:%%{rubydevelx%*}}

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

%rb_default_ruby        ruby31
%rb_default_ruby_suffix ruby3.1
%rb_default_ruby_abi    ruby:3.1.0

%rb_build_ruby_abis     ruby:3.1.0
%rb_build_versions      ruby31
:Macros

Macros:
%_with_ruby31               1
:Macros

%define _with_ruby31         1

%define rb_default_ruby        ruby31
%define rb_default_ruby_suffix ruby3.1
%define rb_default_ruby_abi    ruby:3.1.0

%define rb_build_ruby_abis     ruby:3.1.0
%define rb_build_versions      ruby31

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.1-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 primary_python python310
%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_python38:python38} %{?!skip_python39:python39} %{?!skip_python310:python310}}
%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 %{**}}
# gh#openSUSE/python-rpm-macros#127 ... define our current primary Python interpreter
%primary_python python310
## PYTHON MACROS END
:Macros

# END PYTHON STUFF

# BEGIN RUST STUFF
Prefer: cargo

# 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 riscv64 s390x
%define rust_tier1_arches x86_64 aarch64

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

# END RUST STUFF

# Default to Java 17
Prefer: java-17-openjdk-devel java-17-openjdk java-17-openjdk-headless java-17-openjdk-javadoc
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

%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
Support: cputype-armv6
Runscripts: cputype-armv6
%endif
%ifarch armv7l armv7hl
Target: armv7hl-suse-linux
Support: cputype-armv7
Runscripts: cputype-armv7
%endif

Optflags: * -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type %%{?_lto_cflags}

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

%ifarch i586 i686 x86_64
RepoURL: https://download.opensuse.org/tumbleweed/repo/oss
%endif
%ifarch aarch64
RepoURL: https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss
%endif
%ifarch armv6hl
RepoURL: https://download.opensuse.org/ports/armv6hl/tumbleweed/repo/oss
%endif
%ifarch armv7hl
RepoURL: https://download.opensuse.org/ports/armv7hl/tumbleweed/repo/oss
%endif
%ifarch ppc ppc64 ppc64le
RepoURL: https://download.opensuse.org/ports/ppc/tumbleweed/repo/oss
%endif
%ifarch riscv64
RepoURL: https://download.opensuse.org/ports/riscv/tumbleweed/repo/oss
%endif
%ifarch s390 s390x
RepoURL: https://download.opensuse.org/ports/zsystems/tumbleweed/repo/oss
%endif
RegistryURL: https://registry.opensuse.org

Macros:
%suse_version 1599
%is_opensuse 1
%skelcd_compat 0
%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 postgres is default
%postgresql_default_ver 15

# define which llvm package builds the system libraries
%product_libs_llvm_ver 15

# define which gcc package builds the system libraries
%product_libs_gcc_ver 12
# 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
# The following shlibs have the latest version built from GCC 11 sources
%product_libs_gcc_ver_libasan6 11
%product_libs_gcc_ver_libtsan0 11
%product_libs_gcc_ver_libgo19 11
%product_libs_gcc_ver_libgphobos2 11
%product_libs_gcc_ver_libgdruntime2 11
%gcc_version 12

%ext_info .gz
%ext_man .gz

:Macros

# UsrMerge - 2021-05-25
%define usrmerged 1
Macros:
%usrmerged 1
:Macros