Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Collapse sidebar
home:wicked:qubes-build
Configuration
Project Config
Overview
Project Configuration of home:wicked:qubes-build
# Configure separate repo for debug packages Repotype: rpm-md:rsyncable splitdebug:_debug # Configure distro tags %if "%_repository" == "15.5" Release: <CI_CNT>.<B_CNT> spec:qubes.lp155.<CI_CNT>.<B_CNT> %elif "%_repository" == "15.6" Release: <CI_CNT>.<B_CNT> spec:qubes.lp156.<CI_CNT>.<B_CNT> %elif "%_repository" == "15.7" Release: <CI_CNT>.<B_CNT> spec:qubes.lp157.<CI_CNT>.<B_CNT> %elif "%_repository" == "16.0" Release: <CI_CNT>.<B_CNT> spec:qubes.lp160.<CI_CNT>.<B_CNT> %else Release: <CI_CNT>.<B_CNT> spec:qubes.<CI_CNT>.<B_CNT> %endif # 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 # Abort the build if the log file didn't move in 1 hour 15 mins (onednn is slow one) BuildFlags: logidlelimit:4500 # 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:20250524 # Global changes # # have choice for python311-urllib3 >= 1.21.1 needed by python311-requests: python311-urllib3 python311-urllib3_1 Prefer: -python311-urllib3_1 python312-urllib3_1 python313-urllib3_1 # python-tornado exists in multiple versions, the meta-package python-tornado defines the system default. Prefer: python3-tornado python311-tornado python312-tornado python313-tornado # have choice for python311-anyio needed by python311-httpx: python311-anyio python311-anyio3 # have choice for (python311-anyio >= 3 with python311-anyio < 5) needed by python311-httpcore: python311-anyio python311-anyio3 Prefer: -python311-anyio3 -python312-anyio3 -python313-anyio3 # have choice for python-sqlalchemy >= 1.4: python-SQLAlchemy python-SQLAlchemy1 Prefer: -python311-SQLAlchemy1 -python312-SQLAlchemy1 -python313-SQLAlchemy1 # have choice for python39-pytest-asyncio: python39-pytest-asyncio python39-pytest-asyncio0.21 Prefer: -python311-pytest-asyncio0.21 -python312-pytest-asyncio0.21 -python313-pytest-asyncio0.21 # have choice for uv needed by python313-hatch: python311-uv python313-uv uv, have choice for uv needed by python311-hatch: python311-uv python313-uv uv Prefer: python313-uv python311-uv -uv # have choice for python3-numpy-devel: python311-numpy-devel python311-numpy1-devel Prefer: -python311-numpy1-devel -python312-numpy1-devel -python313-numpy1-devel Prefer: -python311-numpy1 -python312-numpy1 -python313-numpy1 # krb5-devel conflicts with krb5-mini, krb5-mini conflicts with krb5-devel Prefer: -krb5-mini -krb5-mini-devel # have choice for libz.so.1()(64bit) needed by gcc14: libz-ng-compat1 libz1 # have choice for pkgconfig(zlib) >= 1.2.11: zlib-devel zlib-ng-compat-devel Prefer: libz-ng-compat1 Prefer: zlib-ng-compat-devel # have choice for libboost_headers-devel >= 1.66 needed by libpoppler-devel: libboost_headers-devel libboost_headers1_66_0-devel Prefer: -libboost_headers1_66_0-devel # have choice for jupyter-ipykernel needed by jupyter-nbconvert: jupyter-ipykernel python311-ipykernel Prefer: python313-ipykernel python311-ipykernel # have choice for libhdf5_hl.so.310()(64bit) needed by python311-h5py: libhdf5_hl310 libhdf5_hl310-openmpi5 Prefer: libhdf5_hl310 # Make sure latest cargo/rust is selected Prefer: cargo1.86 -cargo1.58 -cargo1.57 # # Tell OBS to match Python interpreters to correct packages FileProvides: /usr/bin/python python-base FileProvides: /usr/bin/python2 python-base FileProvides: /usr/bin/python2.7 python-base %if "%_repository" == "tw" || "%_repository" == "16.0" FileProvides: /usr/bin/python3 python313-base %else FileProvides: /usr/bin/python3 python311-base %endif FileProvides: /usr/bin/python3.8 python38-base FileProvides: /usr/bin/python3.9 python39-base FileProvides: /usr/bin/python3.10 python310-base FileProvides: /usr/bin/python3.11 python311-base FileProvides: /usr/bin/python3.12 python312-base FileProvides: /usr/bin/python3.13 python313-base FileProvides: /usr/bin/python3.13t python313-nogil-base FileProvides: /usr/bin/python3.14 python314-base FileProvides: /usr/bin/python3.14t python314-nogil-base # Some other required file/package matching %if "%_repository" == "tw" FileProvides: /usr/bin/who coreutils-systemd %elif "%_repository" == "16.0" FileProvides: /usr/bin/who coreutils-systemd %else FileProvides: /usr/bin/who coreutils %endif # Disabled everywhere BuildFlags: excludebuild:hdf5:mvapich2 # Update RPM to version 4.20, RUST to 1.86, GCC to 14 and LLVM to 20 but only for all 15.x targets %if "%_repository" == "16.0" || "%_repository" == "tw" BuildFlags: excludebuild:gcc BuildFlags: excludebuild:llvm BuildFlags: excludebuild:llvm20 BuildFlags: excludebuild:rust BuildFlags: excludebuild:rust1.88 BuildFlags: excludebuild:rust1.88:test BuildFlags: excludebuild:ninja BuildFlags: excludebuild:rpm BuildFlags: excludebuild:rpm:python-rpm BuildFlags: excludebuild:rpm-config-SUSE BuildFlags: excludebuild:debugedit # Already own /usr/libexec BuildFlags: excludebuild:filesystem # Other updates only for SLE15 BuildFlags: excludebuild:openmpi4:standard BuildFlags: excludebuild:openmpi4:testsuite BuildFlags: excludebuild:openmpi5:standard BuildFlags: excludebuild:openmpi5:testsuite BuildFlags: excludebuild:hdf5:openmpi4 BuildFlags: excludebuild:hdf5:openmpi5 BuildFlags: excludebuild:hdf5:serial BuildFlags: excludebuild:libalternatives BuildFlags: excludebuild:zstd BuildFlags: excludebuild:python3-pyside6:pyside6 BuildFlags: excludebuild:python3-pyside6:shiboken6 BuildFlags: excludebuild:python-pygit2 BuildFlags: excludebuild:python-PyQt6 BuildFlags: excludebuild:python-QtPy:test BuildFlags: excludebuild:python-qtcharts-qt5 # Update cmake for SLE15 only BuildFlags: excludebuild:cmake BuildFlags: excludebuild:cmake:full BuildFlags: excludebuild:cmake:mini BuildFlags: excludebuild:cmake:gui %else # Make sure new RPM requirements (libgomp1) are preinstalled ExpandFlags: preinstallexpand # Do not consider pre-4.20 RPM subpackage Ignore: rpm-ndb # Bootstrap #%if "%_repository" == "15.5" #Support: !rpmlint-Factory #%endif # define which llvm package builds the system libraries # specifically this is to enable updating clang-tools Macros: %product_libs_llvm_ver 20 :Macros %endif # Leap 15.7 specific changes %if "%_repository" == "15.7" # Backports fix Support: !rpmlint-Factory-strict !rpmlint-backports !rpmlint-backports-data # Already new enough BuildFlags: excludebuild:zstd %endif # Updates only for Leap 15.5 %if "%_repository" != "15.5" BuildFlags: excludebuild:gflags BuildFlags: excludebuild:gflags:static BuildFlags: excludebuild:local-npm-registry BuildFlags: excludebuild:tiff BuildFlags: excludebuild:tiff:man BuildFlags: excludebuild:openblas:gnu-hpc BuildFlags: excludebuild:openblas:gnu-hpc-pthreads BuildFlags: excludebuild:openblas:gnu12-hpc BuildFlags: excludebuild:openblas:gnu12-hpc-pthreads BuildFlags: excludebuild:openblas:openmp BuildFlags: excludebuild:openblas:pthreads BuildFlags: excludebuild:openblas:serial %endif # Updates only for Leap 16.0 %if "%_repository" != "16.0" BuildFlags: excludebuild:golang-org-x-sys %endif # Updates not wanted on Leap 16.0 %if "%_repository" == "16.0" BuildFlags: excludebuild:rpmlint-mini BuildFlags: excludebuild:rpmlint BuildFlags: excludebuild:rpmlint:strict BuildFlags: excludebuild:rpmlint:test %endif # Updates not wanted on tw %if "%_repository" == "tw" BuildFlags: excludebuild:gpgme BuildFlags: excludebuild:gpgme:qt BuildFlags: excludebuild:gpgme:qt6 BuildFlags: excludebuild:python-virtualenv BuildFlags: excludebuild:python-virtualenv:test BuildFlags: excludebuild:python-qt5-sip BuildFlags: excludebuild:python-poetry BuildFlags: excludebuild:python-poetry:test BuildFlags: excludebuild:python-poetry-core BuildFlags: excludebuild:python-tzlocal BuildFlags: excludebuild:python-zstandard %endif # Define Python build flavors # # NOTE: The "### PYTHON RPM MACROS BEGIN" and "### PYTHON RPM MACROS END" are important as they are used in python-rpm-macros # packages compile-macros.sh script to find macros to be included in the package # NOTE: Unmodified package looks for "## PYTHON MACROS BEGIN" and "## PYTHON MACROS END" but SLE15 SP4 GA has the beginning # part and that confuses the logic # NOTE: Stock 3.9/3.10 are not installable together on 15.4 and later as 3.10 obsoletes older one(s) # %define skip_python2 1 %define _without_python2 1 %if "%_repository" == "16.0" || "%_repository" == "tw" %define primary_python python313 %else %define primary_python python311 %endif # Common macros Macros: ### PYTHON RPM MACROS BEGIN %add_python() %{expand:%%define pythons %1 %pythons} %_without_python2 1 # This method for generating python_modules gets too deep to expand for rpm at about 5 python flavors. # Hence, python_module_iter is replaced by python_module_lua in macros.lua. # However, OBS cannot expand lua, but has a much higher expansion depth, so this works fine for the server side resolver. %python_module_iter(a:) %{expand:%%define python %{-a*}} ( %python-%args ) %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}%%{?python_module_iter_%1}} # pseudo-undefine for obs: reset for the next expansion within the next call of python_module %python_module_iter_STOP %global python %%%%python %python_module() %{?!python_module_lua:%{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}}%{?python_module_lua:%python_module_lua %{**}} ### PYTHON RPM MACROS END :Macros # Macros for factory flavour %if "%_repository" == "tw" Macros: ### PYTHON RPM 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_python311:python311} %{?!skip_python312:python312} %{?!skip_python313:python313}} # gh#openSUSE/python-rpm-macros#127 ... define our current primary Python interpreter %primary_python python313 ### PYTHON RPM MACROS END :Macros # Macros for 16.0 flavour %elif "%_repository" == "16.0" Macros: ### PYTHON RPM 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_python313:python313}} # gh#openSUSE/python-rpm-macros#127 ... define our current primary Python interpreter %primary_python python313 ### PYTHON RPM MACROS END :Macros # Macros for other flavours %else Macros: ### PYTHON RPM MACROS BEGIN %sle15_python_module_pythons() %global pythons python311 %sle15allpythons() %global pythons python3 python311 # 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_python311:python311}} # gh#openSUSE/python-rpm-macros#127 ... define our current primary Python interpreter %primary_python python311 ### PYTHON RPM MACROS END :Macros %endif # Set packager info Macros: %vendor Qubes OS %distribution Qubes OS R4.1.42 %packager obs://build.opensuse.org/home:wicked :Macros # Reproducible builds Macros: %source_date_epoch_from_changelog Y %use_source_date_epoch_as_buildtime Y %build_mtime_policy clamp_to_source_date_epoch %_buildhost reproducible :Macros
Locations
Projects
Search
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects