BuildFlags: setvcs Prefer: -yast2-schema-micro %define gcc_version 13 # 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:20230428 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 gcc provided libs: # Do not use the -gcc11 variants if different providers exist Prefer: -libgfortran5-gcc11 Prefer: -libubsan1-gcc11 Prefer: -libubsan1-gcc11-32bit # Do not use the -gcc12 variants if different providers exist Prefer: -libasan8-gcc12 Prefer: -libasan8-gcc12-32bit Prefer: -libgfortran5-gcc12 Prefer: -libtsan2-gcc12 Prefer: -libubsan1-gcc12 Prefer: -libubsan1-gcc12-32bit Patterntype: rpm-md ymp RepoType: rpm-md:sha512:filelists-ext %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 # SUSE ALP specific change %if "%_project" == "SUSE:ALP" || "%_project" == "SUSE:ALP:Workbench"|| "%_project" == "SUSE:ALP:Workbench:1.0"|| "%_project" == "SUSE:ALP:RISCV" || "%_project" == "SUSE:ALP:zSystems" || "%_project" == "SUSE:ALP:PowerPC" Prefer: ALP-release -dummy-release BuildFlags: excludebuild:openh264 # missing packages just for multibuild tests BuildFlags: excludebuild:apache2:test_event BuildFlags: excludebuild:apache2:test_prefork BuildFlags: excludebuild:apache2:test_worker BuildFlags: excludebuild:asciidoc:latextest BuildFlags: excludebuild:autoconf:el BuildFlags: excludebuild:automake:testsuite BuildFlags: excludebuild:boost:gnu-hpc BuildFlags: excludebuild:boost:gnu-mpich-hpc BuildFlags: excludebuild:boost:gnu-mvapich2-hpc BuildFlags: excludebuild:boost:gnu-openmpi2-hpc BuildFlags: excludebuild:boost:gnu-openmpi3-hpc BuildFlags: excludebuild:boost:gnu-openmpi4-hpc BuildFlags: excludebuild:fftw3:gnu-hpc BuildFlags: excludebuild:fftw3:gnu-mpich-hpc BuildFlags: excludebuild:fftw3:gnu-mvapich2-hpc BuildFlags: excludebuild:fftw3:gnu-openmpi-hpc BuildFlags: excludebuild:fftw3:gnu-openmpi2-hpc BuildFlags: excludebuild:fftw3:gnu-openmpi3-hpc BuildFlags: excludebuild:fftw3:gnu-openmpi4-hpc BuildFlags: excludebuild:gcc12:cross-avr-gcc12 BuildFlags: excludebuild:gcc12:cross-nvptx-gcc12 BuildFlags: excludebuild:gcc12:gcc12-testresults BuildFlags: excludebuild:gdb:testsuite BuildFlags: excludebuild:gsl:gnu-hpc BuildFlags: excludebuild:libdbi:devel-doc BuildFlags: excludebuild:libproxy:plugins BuildFlags: excludebuild:libssh:test BuildFlags: excludebuild:meson:test BuildFlags: excludebuild:metis:gnu-hpc BuildFlags: excludebuild:ocr:gnu-hpc BuildFlags: excludebuild:ocr:gnu-mpich-hpc BuildFlags: excludebuild:ocr:gnu-mvapich2-hpc BuildFlags: excludebuild:ocr:gnu-openmpi-hpc BuildFlags: excludebuild:ocr:gnu-openmpi2-hpc BuildFlags: excludebuild:ocr:gnu-openmpi3-hpc BuildFlags: excludebuild:ocr:gnu-openmpi4-hpc BuildFlags: excludebuild:openblas:gnu-hpc-pthreads BuildFlags: excludebuild:openblas:gnu-hpc BuildFlags: excludebuild:openmpi4:gnu-hpc BuildFlags: excludebuild:openmpi4:gnu-hpc-testsuite BuildFlags: excludebuild:parboiled:scala BuildFlags: excludebuild:php7:test BuildFlags: excludebuild:php8:test BuildFlags: excludebuild:python-FontTools:test BuildFlags: excludebuild:python-arrow:test BuildFlags: excludebuild:python-attrs:test BuildFlags: excludebuild:python-construct:test BuildFlags: excludebuild:python-cryptography:test BuildFlags: excludebuild:python-docutils:test BuildFlags: excludebuild:python-flaky:test BuildFlags: excludebuild:python-flasgger:test BuildFlags: excludebuild:python-httpcore:test BuildFlags: excludebuild:python-httpx:test BuildFlags: excludebuild:python-hypothesis:test BuildFlags: excludebuild:python-hypothesmith:test BuildFlags: excludebuild:python-isort:test BuildFlags: excludebuild:python-jsonschema:test BuildFlags: excludebuild:python-libcst:test BuildFlags: excludebuild:python-matplotlib:test BuildFlags: excludebuild:python-mocket:test BuildFlags: excludebuild:python-numpy:gnu-hpc BuildFlags: excludebuild:python-pandas:test-py310 BuildFlags: excludebuild:python-pandas:test-py38 BuildFlags: excludebuild:python-pandas:test-py39 BuildFlags: excludebuild:python-passlib:test BuildFlags: excludebuild:python-pbr:test BuildFlags: excludebuild:python-pip:test BuildFlags: excludebuild:python-pyparsing:test BuildFlags: excludebuild:python-pyquery:test BuildFlags: excludebuild:python-pytest-asyncio:test BuildFlags: excludebuild:python-pytest:test BuildFlags: excludebuild:python-pytest-cov:test BuildFlags: excludebuild:python-pythran:test-py310 BuildFlags: excludebuild:python-pythran:test-py38 BuildFlags: excludebuild:python-pythran:test-py39 BuildFlags: excludebuild:python-requests:test BuildFlags: excludebuild:python-scipy:gnu-hpc BuildFlags: excludebuild:python-scipy:test BuildFlags: excludebuild:python-setuptools:test BuildFlags: excludebuild:python-setuptools_scm:test BuildFlags: excludebuild:python-sphinx-autodoc-typehints:test BuildFlags: excludebuild:python-sphinx_rtd_theme:test BuildFlags: excludebuild:python-sphinxcontrib-websupport:test BuildFlags: excludebuild:python-urllib3:test BuildFlags: excludebuild:python-virtualenv:test BuildFlags: excludebuild:python-waitress:doc BuildFlags: excludebuild:python-zipp:test BuildFlags: excludebuild:python-zope.component:test BuildFlags: excludebuild:python-zope.hookable:test BuildFlags: excludebuild:python-zope.interface:test BuildFlags: excludebuild:superlu:gnu-hpc BuildFlags: excludebuild:sysprof:UI BuildFlags: excludebuild:systemtap-docs BuildFlags: excludebuild:translate-toolkit:test BuildFlags: excludebuild:virt-manager:test BuildFlags: excludebuild:python-dnspython:test BuildFlags: excludebuild:python-semantic_version:test BuildFlags: excludebuild:python-toml:test BuildFlags: excludebuild:python-Werkzeug:test BuildFlags: excludebuild:python-gunicorn:test BuildFlags: excludebuild:python-build:test BuildFlags: excludebuild:lvm2:lockd BuildFlags: excludebuild:gettext-csharp BuildFlags: excludebuild:rust1.68:test BuildFlags: excludebuild:python-flit-core:test BuildFlags: excludebuild:python-packaging:test BuildFlags: excludebuild:python-pyparsing:test BuildFlags: excludebuild:python-Sphinx:test BuildFlags: excludebuild:libvorbis-doc BuildFlags: excludebuild:qt6-base:docs BuildFlags: excludebuild:qt6-declarative:docs BuildFlags: excludebuild:qt6-shadertools:docs BuildFlags: excludebuild:python-Sphinx:test BuildFlags: excludebuild:libdbus-c++:docs BuildFlags: excludebuild:eigen:docs BuildFlags: excludebuild:taglib:tests BuildFlags: excludebuild:ibus:gtk4 BuildFlags: excludebuild:kernel-docs BuildFlags: excludebuild:eigen3:docs BuildFlags: excludebuild:systemd BuildFlags: excludebuild:coreutils:testsuite BuildFlags: excludebuild:dwz:testsuite BuildFlags: excludebuild:ffado-mixer BuildFlags: excludebuild:gcc13:gcc13-testresults BuildFlags: excludebuild:glibc:testsuite BuildFlags: excludebuild:graphviz:addons BuildFlags: excludebuild:qemu BuildFlags: excludebuild:gettext-runtime:gettext-csharp BuildFlags: excludebuild:systemtap:systemtap-docs # rbrown - 29 sept 2022 - excluding new unzip:unzip-rcc flavour to remove librcc/libguess/libmowgli2/librcd from ring1 BuildFlags: excludebuild:unzip:unzip-rcc # specific addition to handle shim in ALP 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" BuildFlags: excludebuild:openh264 Macros: %vendor openSUSE %distribution openSUSE Tumbleweed %packager https://bugs.opensuse.org :Macros %endif %ifarch %arm ppc riscv64 aarch64 # required by u-boot (SR#205959) in order to build the full multiboot set plus eventual additional packages: Macros: %prjconf_multibuild_selection patch :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" || "%_project" == "openSUSE:Factory:LegacyX86" 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 skopeo umoci Substitute: system-packages:podman podman buildah createrepo_c release-compare container-build-checks-vendor-openSUSE container-build-checks-strict skopeo umoci %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 skopeo umoci Substitute: system-packages:podman podman buildah createrepo_c release-compare container-build-checks-vendor-openSUSE skopeo umoci %endif %if "%_project" == "openSUSE:Factory" || "%_project" == "openSUSE:Factory:PowerPC" || "%_project" == "openSUSE:Factory:ARM" || "%_project" == "openSUSE:Factory:zSystems" || "%_project" == "openSUSE:Factory:LegacyX86" 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 # Using SLE_15 plug-in until ALP-specific one is created Substitute: kiwi-packagemanager:instsource product-builder-plugin-SLE_15 # 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 !ffmpeg-5-mini-libs !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 # FIXME re-add the pattern laterpatterns-base-fips # Podman based image building Substitute: build-packages:kiwi !cmake-mini !dummy-release !gettext-runtime-mini !gettext-tools-mini !ghostscript-mini !ffmpeg-5-mini-libs !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 # FIXME re-add the pattern laterpatterns-base-fips # To build ISO images Substitute: build-packages:iso !cmake-mini !dummy-release !gettext-runtime-mini !gettext-tools-mini !ghostscript-mini !ffmpeg-5-mini-libs !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 # 2023-01-19 - x86-64-vN hwcaps libraries can be built and will require proper HW support %ifarch x86_64 Macros: %suse_build_hwcaps_libs \ #!BuildTarget: x86_64_v3-linux,x86_64-linux \ #!BuildConstraint: hardware:cpu:flag x86-64-v3 \ %{nil} :Macros %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 # Likely nobody really consumes the information - but as we can provide it: why not? BuildFlags: sbom:spdx BuildFlags: sbom:cyclonedx # 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, lua53 and lua54 all provide 'lua'; version 5.4 is the 'target'; lua will be deleted in the future %define lua_pref lua54 Prefer: %{lua_pref} lua53 lua51 Prefer: liblua5_4-5 liblua5_3-5 liblua5_1-5 Prefer: %{lua_pref}-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 # Make grub2-i386-efi available on x86_64 / support x86_64 CPU on 32bit UEFI - boo#1208057 ExportFilter: ^grub2-i386-efi.*\.noarch\.rpm$ . x86_64 ############ # 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 # %ifarch x86_64 # ### 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 %endif 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: ffmpeg-5-mini-devel:this-is-only-for-build-envs Ignore: ffmpeg-5-mini-libs: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-container: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: autoconf:info Ignore: automake:info Ignore: binutils:info Ignore: bison:info Ignore: coreutils:info Ignore: cpio:info Ignore: dejagnu: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: libtool:info Ignore: m4:info Ignore: make:info Ignore: sed:info Ignore: tar:info Ignore: util-linux:info Ignore: polkit-default-privs:polkit # syslog-service only starts with network enabled, but inside OBS we have no network anyway Ignore: syslog-service:sysvinit(network) Ignore: syslog-service:service(network) # 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 Ignore: python311-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: -python38-txt2tags -python39-txt2tags -python311-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 python3-Cython: python310-Cython python310-Cython3 Prefer: -python310-Cython3 python39-Cython3 -python38-Cython3 -python311-Cython3 # have choice for ntp-daemon: chrony ntp ntpsec Prefer: chrony Prefer: -procps4 # have choice for python39-sqlalchemy >= 1.4: python39-SQLAlchemy python39-SQLAlchemy1 Prefer: -python39-SQLAlchemy1 -python310-SQLAlchemy1 -python311-SQLAlchemy1 # have choice for (python36-qt5 or python36-PyQt6) needed by python36-pytest-qt Prefer: -python310-PyQt6 -python39-PyQt6 -python38-PyQt6 -python3-pyside2 Prefer: -python311-PyQt6 # 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 Prefer: -kubernetes1.24-client-common -kubernetes1.25-client-common # have choice for html2text Prefer: -python38-html2text -python39-html2text -python310-html2text -python311-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: python311-tornado # have choice for libopenblas.so.0()(64bit) needed by libopencv407: libopenblas_openmp0 libopenblas_pthreads0 libopenblas_serial0 Prefer: -libopenblas_openmp0 -libopenblas_pthreads0 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_toolkit1 -python38-prompt_toolkit1 -python310-prompt_toolkit1 Prefer: -python311-prompt_toolkit1 # 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 Prefer: perl-JSON-XS # 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: php8:php8-cli # have choice for libomp.so()(64bit) needed by libispcrt1: libomp15-devel libomp16-devel Prefer: -libomp15-devel # have choice for python3dist(jupyterlab) = 3.6.2 needed by jupyter-jupyterlab: python310-jupyterlab python311-jupyterlab python38-jupyterlab python39-jupyterlab Prefer: -python311-jupyterlab -python38-jupyterlab -python39-jupyterlab # have choice for python3dist(jupyterlab) = 3.6.2 needed by jupyter-jupyterlab: python310-jupyterlab python311-jupyterlab python38-jupyterlab python39-jupyterlab Prefer: -python311-jupyterlab -python38-jupyterlab -python39-jupyterlab Prefer: -python310-jupyter-client7 -python311-jupyter-client7 -python39-jupyter-client7 # 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 pkgconfig(wlroots): wlroots-devel wlroots10-devel Prefer: -wlroots10-devel # 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 # have choice for pkgconfig(libindi): indi-devel libindi-devel Prefer: -indi-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: -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: -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: -libattr-devel-32bit Prefer: -libavc1394-devel-32bit Prefer: -libbasicobjects-devel-32bit Prefer: -libblkid-devel-32bit Prefer: -libbotan-devel-32bit Prefer: -libbrotli-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: -libdecor-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: -pcsc-lite-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.2-rubygem-fast_gettext Prefer: -ruby3.1-rubygem-public_suffix-3.1 Prefer: -ruby3.2-rubygem-public_suffix-3.1 Prefer: -ruby3.1-rubygem-kramdown # We have opencv and opencv3 - as usual, the unversioned one should win Prefer: opencv-devel # python3-pytest should win over the other python3-pytest 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: openssl #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: -libjpeg62-devel 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 ffmpeg5, followd by 4, followed by 3 %define ffmpeg_pref ffmpeg-5 Prefer: %{ffmpeg_pref}-mini-libs Prefer: %{ffmpeg_pref}-mini-devel 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 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%*}} ### And now Ruby 3.2 %rubygemsruby32() rubygem(ruby:3.2.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}} %rubygemsxruby32() %{expand:%%{rubygemsx%*}} %rubyruby32() ruby3.2 %{expand:%%rubyx%*} %{expand:%%{ruby%*}} %rubyxruby32() %{expand:%%{rubyx%*}} %rubydevelruby32() ruby3.2-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}} %rubydevelxruby32() %{expand:%%{rubydevelx%*}} ### Things to define default ruby stuff for the distro %rb_default_ruby ruby32 %rb_default_ruby_suffix ruby3.2 %rb_default_ruby_abi ruby:3.2.0 %rb_build_ruby_abis ruby:3.2.0 %rb_build_versions ruby32 :Macros Macros: %_with_ruby32 1 :Macros %define _with_ruby32 1 %define rb_default_ruby ruby32 %define rb_default_ruby_suffix ruby3.2 %define rb_default_ruby_abi ruby:3.2.0 %define rb_build_ruby_abis ruby:3.2.0 %define rb_build_versions ruby32 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 %define skip_python38 1 %define skip_python39 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_python311:python311} %{?!skip_python310:python310}} %add_python() %{expand:%%define pythons %1 %pythons} %_without_python2 1 %skip_python38 1 %skip_python39 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 # BEGIN MULTIMEDIA STUFF Macros: %_with_bs2b 1 :Macros %define _with_bs2b 1 # END MULTIMEDIA 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-19-openjdk-devel java-19-openjdk java-19-openjdk-headless java-19-openjdk-javadoc Prefer: java-18-openjdk-devel java-18-openjdk java-18-openjdk-headless java-18-openjdk-javadoc Prefer: java-16-openjdk-devel java-16-openjdk java-16-openjdk-headless java-16-openjdk-javadoc Prefer: java-15-openjdk-devel java-15-openjdk java-15-openjdk-headless java-15-openjdk-javadoc Prefer: java-13-openjdk-devel java-13-openjdk java-13-openjdk-headless java-13-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: x86_64_v2 -march=x86-64-v2 Optflags: x86_64_v3 -march=x86-64-v3 Optflags: x86_64_v4 -march=x86-64-v4 Optflags: ppc Optflags: ppc64 Optflags: ia64 Optflags: s390 Optflags: s390x 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 1600 %define workbench_version 0100 %define is_opensuse 0 %define skelcd_compat 0 %define _without_aom 1 %define _without_avif 1 Macros: %suse_version 1600 %workbench_version 0100 %is_opensuse 0 %skelcd_compat 0 %_without_aom 1 %_without_avif 1 %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_build_shell_package bash-sh %kernel_module_package_buildreqs modutils kernel-syms kmod-compat suse-kernel-rpm-scriptlets %kernel_build_shell_package %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 16 # define which gcc package builds the system libraries %product_libs_gcc_ver 13 # 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 # The following shlibs have the latest version build from GCC 12 sources %product_libs_gcc_ver_libgo21 12 %product_libs_gcc_ver_libgphobos3 12 %product_libs_gcc_ver_libgdruntime3 12 %gcc_version 13 %ext_info .gz %ext_man .gz :Macros # UsrMerge - 2021-05-25 %define usrmerged 1 Macros: %usrmerged 1 :Macros # temporary to workaround boot strap problem: # should probably work by now # Support: !rpmlint-Factory # Support: !rpmlint-Factory-strict # copy-paste from openSUSE:Factory:zSystems %ifarch s390x %define disable_32bit 1 %define tuneflag zEC12 %define archflag zEC12 Macros: %disable_32bit 1 %tuneflag zEC12 %archflag zEC12 :Macros Substitute: glibc-devel-32bit Substitute: glibc-devel-static-32bit Substitute: gcc-32bit Substitute: gcc5-32bit Substitute: gcc6-32bit Substitute: gcc-ada-32bit Substitute: gcc5-c++-32bit Substitute: gcc6-c++-32bit Substitute: gcc-c++-32bit %endif Substitute: mail %if 1 %if "%_project" == "SUSE:ALP:Workbench:1.0" %if "%_repository" == "standard" %ifarch riscv64 %define qemu_user_space_build 1 %endif %endif ExportFilter: ^kernel-obs-build.*\.x86_64\.rpm$ . riscv64 ExportFilter: ^qemu-linux-user.*\.x86_64\.rpm$ . riscv64 #ExportFilter: ^qemu-.*\.noarch\.rpm$ . riscv64 %if "%qemu_user_space_build" == "1" Target: riscv64-suse-linux Hostarch: x86_64 Preinstall: qemu-linux-user Macros: %qemu_user_space_build 1 :Macros ExportFilter: ^(kernel-obs-build|qemu-linux-user).*\.riscv64\.rpm$ ExportFilter: ^qemu-linux-user-riscv.*\.riscv64\.rpm$ . %endif # %qemu_user_space_build %endif # SUSE:ALP %endif # 1