Bugzilla – Bug 1211226
Eliminate the need for 'OBS source links': convert to _multibuild
Last modified: 2024-06-25 17:39:00 UTC
In order to prepare for 'git based source management', we need to fix up a few technical issues. One such issue is 'source links' not being supported in git (i.e in OBS we have openSUSE:Factory/kernel-source as the main package plus a bunch of 'linked packages', each with the name of the additional spec files) The solution is, technically seem, rather simple: using _multibuild multibuild support on OBS is known in two variants, one using a single spec file and conditionals inside the spec file based on @BUILD_FLAVOR@ (probably the more known way) but OBS also supports 'just' listing the additional spec files as 'flavors' the _multibuild to be added to the kernel-source (main package) can be generated like this: <!-----------------------> #!/bin/sh echo "<multibuild>" > _multibuild for pkg in *.spec; do test "{$pkg}" == "kernel-source.spec" && continue echo " <package>${pkg/.spec/}</package>" >> _multibuild; done echo "</multibuild>" >> _multibuild <!-----------------------> the spec files do not need to be changed in anyway with this method
I suppose Michal will give some input.
AFAICT it's not possible to specify separate build repositories for multibuild subpackages. The kernel relies on building different subpackages in different repositories.
(In reply to Michal Suchanek from comment #2) > AFAICT it's not possible to specify separate build repositories for > multibuild subpackages. > > The kernel relies on building different subpackages in different > repositories. That must be a special case for the devel project? As in openSUSE:Factory (and any other product project) everything is built in /standard... If this is about a special case for the devel project(s), the right thing can be achieved by some projconf magic, e.g. %if "%{sub %_repository 1 2}" == "QA" BuildFlags: onlybuild:kernel-source:kernel-obs-build BuildFlags: onlybuild:kernel-source:kernel-qa %else BuildFlags: excludebuild:kernel-source:kernel-obs-build BuildFlags: excludebuild:kernel-source:kernel-qa %endif things to consider: 'onlybuild' excludes ALL packages (irrespective of name/flavor) in the repository QA - everything you expect to be built needs t be mentioned. 'excludebuild' builds everything which is not specifically mentioned.
This sounds workable, thanks
Or adding ExcludeArch tag with corresponding archs to each spec file works? The spec file is generated dynamically, so we can mimic there, too.
That's already done and works for selecting the arch-specific repos. The standard and QA repos exist for all architectures, though. The other option is to split of kernel-ob-build and kernel-obs-qa, and instead of sharing sources depend on kernel-macros for the macro file.
(In reply to Takashi Iwai from comment #5) > Or adding ExcludeArch tag with corresponding archs to each spec file works? > The spec file is generated dynamically, so we can mimic there, too. ExcludeArchs would be going with the spec file wherever it's branched/submitted and I don't think it's the solution to Michal's raised concerns. e.g. kernel-obs-build is used in product builds and has ExclusiveArch: aarch64 armv6hl armv7hl ppc64 ppc64le riscv64 s390x x86_64 but in Kernel:stable, it shall only be built in the QA(_.*)? repositories, not the default repos ExcludeArch / ExclusiveArch are to be seen on the spec level and treated as a 'global attribute' to the package, whereas the onlybuild/excludebuild are project/repo specific (unlike with the linked builds, we don't have the ability to enable/disable builds on repos/packages - something that was possibly in devel projects so far; but only in devel, as in product repos this was not supported, mainly due to project inheritance)
kernel-macros is not build for kernel-rt so that's not possible to use.
Does not seem to work https://build.opensuse.org/project/monitor/home:michals:kernel-test
There is the additional thing that with source links packages can be dropped in release project by simply not creating the link. With multibuild the kernel-obs-qa package will be added.
(In reply to Michal Suchanek from comment #10) > There is the additional thing that with source links packages can be dropped > in release project by simply not creating the link. > > With multibuild the kernel-obs-qa package will be added. > osc r openSUSE:Factory kernel-obs-qa standard x86_64 succeeded* no change there... the staging tooling auto-creates all links for additional spec files upon accept same is true on SLE: https://build.suse.de/package/show/SUSE:SLE-15-SP5:GA/kernel-obs-qa
(In reply to Michal Suchanek from comment #9) > Does not seem to work > https://build.opensuse.org/project/monitor/home:michals:kernel-test I don't see any prjconf settings there https://build.opensuse.org/projects/home:michals:kernel-test/prjconf
Moved the logic into the spec files for testing, and that seems to work. I will revert to the logic in the project file.
(In reply to Michal Suchanek from comment #10) > There is the additional thing that with source links packages can be dropped > in release project by simply not creating the link. one more thing: instead of not adding the link (which the tooling does automatically), release projects can declare an excludebuild: in prjconf for the relevant flavors they do not want.
that might turn out tricky "osc buildconfig home:michals:kernel-test QA" shows ### from home:michals:kernel-test %_repository standard %if "%{sub %_repository 1 2}" == "QA" BuildFlags: onlybuild:kernel-source:kernel-obs-build BuildFlags: onlybuild:kernel-source:kernel-qa %else BuildFlags: excludebuild:kernel-source:kernel-obs-build BuildFlags: excludebuild:kernel-source:kernel-qa %endif ### from home:michals:kernel-test %define _repository QA ### from home:michals:kernel-test %_repository QA %if "%{sub %_repository 1 2}" == "QA" BuildFlags: onlybuild:kernel-source:kernel-obs-build BuildFlags: onlybuild:kernel-source:kernel-qa %else BuildFlags: excludebuild:kernel-source:kernel-obs-build BuildFlags: excludebuild:kernel-source:kernel-qa %endif i.e QA building against home:michals:kernel-test/standard ends up with prjconf being included twice - once for /standard and once for /qa the first one happens to exclude the kernel already, which does not change anymore in the 2nd run @mls: any trick to get out of this?
I could probably list all packages, there is missing feature of disabling package build for some packages anyway. It is not clear how the onlybuild and excludebuild interacts, though.
That sort of works but would break building extra support packages in the kernel repository.
The situation is that using multibuild and package links is more or less equivalent except for one thing: Using package links gives fine control over which package builds in which repository, using multibuild does not (see comment 15) There is a workaround for this but it requires a gross hack in the spec files https://kerncvs.suse.de/gitweb/?p=kernel-source.git;a=commitdiff;h=89c3dd098c775f281d7264d9e0a995500b398478
(In reply to Michal Suchanek from comment #18) > The situation is that using multibuild and package links is more or less > equivalent except for one thing: more or less - just that the move to git as source backend does not permit linked packages and only multibuild is going to be a supported method
(In reply to Michal Suchanek from comment #18) > The situation is that using multibuild and package links is more or less > equivalent except for one thing: > > Using package links gives fine control over which package builds in which > repository, using multibuild does not (see comment 15) > > There is a workaround for this but it requires a gross hack in the spec files > > https://kerncvs.suse.de/gitweb/?p=kernel-source.git;a=commitdiff; > h=89c3dd098c775f281d7264d9e0a995500b398478 So what's the status of this, please? Michal, is his feasible or what is missing?
Still waiting for the answer about building subpackages in different repositories.
> %if "%{sub %_repository 1 2}" == "QA" And this construct in a spec file causes build error in one of the repositories.
SUSE-SU-2024:0129-1: An update that solves 10 vulnerabilities, contains three features and has 31 security fixes can now be installed. Category: security (important) Bug References: 1179610, 1183045, 1193285, 1211162, 1211226, 1212584, 1214747, 1214823, 1215237, 1215696, 1215885, 1216057, 1216559, 1216776, 1217036, 1217217, 1217250, 1217602, 1217692, 1217790, 1217801, 1217933, 1217938, 1217946, 1217947, 1217980, 1217981, 1217982, 1218056, 1218139, 1218184, 1218234, 1218253, 1218258, 1218335, 1218357, 1218447, 1218515, 1218559, 1218569, 1218659 CVE References: CVE-2020-26555, CVE-2023-51779, CVE-2023-6121, CVE-2023-6531, CVE-2023-6546, CVE-2023-6606, CVE-2023-6610, CVE-2023-6622, CVE-2023-6931, CVE-2023-6932 Jira References: PED-3459, PED-5021, PED-7322 Sources used: SUSE Real Time Module 15-SP4 (src): kernel-syms-rt-5.14.21-150400.15.65.1, kernel-source-rt-5.14.21-150400.15.65.1 SUSE Linux Enterprise Live Patching 15-SP4 (src): kernel-livepatch-SLE15-SP4-RT_Update_17-1-150400.1.3.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0117-1: An update that solves eight vulnerabilities, contains two features and has 13 security fixes can now be installed. Category: security (important) Bug References: 1109837, 1179610, 1202095, 1211226, 1211439, 1214158, 1214479, 1215237, 1217036, 1217250, 1217801, 1217936, 1217946, 1217947, 1218057, 1218184, 1218253, 1218258, 1218362, 1218559, 1218622 CVE References: CVE-2020-26555, CVE-2022-2586, CVE-2023-51779, CVE-2023-6121, CVE-2023-6606, CVE-2023-6610, CVE-2023-6931, CVE-2023-6932 Jira References: PED-5021, PED-5023 Sources used: SUSE Linux Enterprise Live Patching 12-SP5 (src): kgraft-patch-SLE12-SP5_Update_52-1-8.3.1 SUSE Linux Enterprise Software Development Kit 12 SP5 (src): kernel-obs-build-4.12.14-122.189.1 SUSE Linux Enterprise High Performance Computing 12 SP5 (src): kernel-source-4.12.14-122.189.1, kernel-syms-4.12.14-122.189.1 SUSE Linux Enterprise Server 12 SP5 (src): kernel-source-4.12.14-122.189.1, kernel-syms-4.12.14-122.189.1 SUSE Linux Enterprise Server for SAP Applications 12 SP5 (src): kernel-source-4.12.14-122.189.1, kernel-syms-4.12.14-122.189.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0115-1: An update that solves 10 vulnerabilities, contains three features and has 40 security fixes can now be installed. Category: security (important) Bug References: 1179610, 1183045, 1211162, 1211226, 1212139, 1212584, 1214117, 1214747, 1214823, 1215237, 1215696, 1215885, 1215952, 1216032, 1216057, 1216559, 1216776, 1217036, 1217217, 1217250, 1217602, 1217692, 1217790, 1217801, 1217822, 1217927, 1217933, 1217938, 1217946, 1217947, 1217980, 1217981, 1217982, 1218056, 1218092, 1218139, 1218184, 1218229, 1218234, 1218253, 1218258, 1218335, 1218357, 1218397, 1218447, 1218461, 1218515, 1218559, 1218569, 1218643 CVE References: CVE-2020-26555, CVE-2023-51779, CVE-2023-6121, CVE-2023-6531, CVE-2023-6546, CVE-2023-6606, CVE-2023-6610, CVE-2023-6622, CVE-2023-6931, CVE-2023-6932 Jira References: PED-3459, PED-5021, PED-7167 Sources used: openSUSE Leap 15.5 (src): kernel-source-rt-5.14.21-150500.13.30.1, kernel-livepatch-SLE15-SP5-RT_Update_9-1-150500.11.3.1, kernel-syms-rt-5.14.21-150500.13.30.1 SUSE Linux Enterprise Live Patching 15-SP5 (src): kernel-livepatch-SLE15-SP5-RT_Update_9-1-150500.11.3.1 SUSE Real Time Module 15-SP5 (src): kernel-source-rt-5.14.21-150500.13.30.1, kernel-syms-rt-5.14.21-150500.13.30.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0118-1: An update that solves eight vulnerabilities, contains two features and has 12 security fixes can now be installed. Category: security (important) Bug References: 1109837, 1179610, 1202095, 1211226, 1211439, 1214479, 1215237, 1217036, 1217250, 1217801, 1217936, 1217946, 1217947, 1218057, 1218184, 1218253, 1218258, 1218362, 1218559, 1218622 CVE References: CVE-2020-26555, CVE-2022-2586, CVE-2023-51779, CVE-2023-6121, CVE-2023-6606, CVE-2023-6610, CVE-2023-6931, CVE-2023-6932 Jira References: PED-5021, PED-5023 Sources used: SUSE Linux Enterprise Real Time 12 SP5 (src): kernel-source-rt-4.12.14-10.157.1, kernel-syms-rt-4.12.14-10.157.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0113-1: An update that solves eight vulnerabilities, contains two features and has 13 security fixes can now be installed. Category: security (important) Bug References: 1108281, 1109837, 1179610, 1202095, 1211226, 1211439, 1214479, 1215237, 1217036, 1217250, 1217801, 1217936, 1217946, 1217947, 1218057, 1218184, 1218253, 1218258, 1218362, 1218559, 1218622 CVE References: CVE-2020-26555, CVE-2022-2586, CVE-2023-51779, CVE-2023-6121, CVE-2023-6606, CVE-2023-6610, CVE-2023-6931, CVE-2023-6932 Jira References: PED-5021, PED-5023 Sources used: SUSE Linux Enterprise Server for SAP Applications 12 SP5 (src): kernel-source-azure-4.12.14-16.163.1, kernel-syms-azure-4.12.14-16.163.1 SUSE Linux Enterprise High Performance Computing 12 SP5 (src): kernel-source-azure-4.12.14-16.163.1, kernel-syms-azure-4.12.14-16.163.1 SUSE Linux Enterprise Server 12 SP5 (src): kernel-source-azure-4.12.14-16.163.1, kernel-syms-azure-4.12.14-16.163.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0110-1: An update that solves seven vulnerabilities, contains one feature and has six security fixes can now be installed. Category: security (important) Bug References: 1179610, 1211226, 1215237, 1215375, 1217250, 1217709, 1217946, 1217947, 1218105, 1218184, 1218253, 1218258, 1218559 CVE References: CVE-2020-26555, CVE-2023-51779, CVE-2023-6121, CVE-2023-6606, CVE-2023-6610, CVE-2023-6931, CVE-2023-6932 Jira References: PED-5021 Sources used: NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0141-1: An update that solves 10 vulnerabilities, contains three features and has 41 security fixes can now be installed. Category: security (important) Bug References: 1108281, 1179610, 1183045, 1211162, 1211226, 1212139, 1212584, 1214117, 1214747, 1214823, 1215237, 1215696, 1215885, 1215952, 1216032, 1216057, 1216559, 1216776, 1217036, 1217217, 1217250, 1217602, 1217692, 1217790, 1217801, 1217822, 1217927, 1217933, 1217938, 1217946, 1217947, 1217980, 1217981, 1217982, 1218056, 1218092, 1218139, 1218184, 1218229, 1218234, 1218253, 1218258, 1218335, 1218357, 1218397, 1218447, 1218461, 1218515, 1218559, 1218569, 1218643 CVE References: CVE-2020-26555, CVE-2023-51779, CVE-2023-6121, CVE-2023-6531, CVE-2023-6546, CVE-2023-6606, CVE-2023-6610, CVE-2023-6622, CVE-2023-6931, CVE-2023-6932 Jira References: PED-3459, PED-5021, PED-7167 Sources used: openSUSE Leap 15.5 (src): kernel-syms-azure-5.14.21-150500.33.29.1, kernel-source-azure-5.14.21-150500.33.29.1 Public Cloud Module 15-SP5 (src): kernel-syms-azure-5.14.21-150500.33.29.1, kernel-source-azure-5.14.21-150500.33.29.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0160-1: An update that solves 10 vulnerabilities, contains three features and has 42 security fixes can now be installed. Category: security (important) Bug References: 1179610, 1183045, 1211162, 1211226, 1212139, 1212584, 1214117, 1214158, 1214747, 1214823, 1215237, 1215696, 1215885, 1215952, 1216032, 1216057, 1216559, 1216776, 1217036, 1217217, 1217250, 1217602, 1217692, 1217790, 1217801, 1217822, 1217927, 1217933, 1217938, 1217946, 1217947, 1217980, 1217981, 1217982, 1218056, 1218092, 1218139, 1218184, 1218229, 1218234, 1218253, 1218258, 1218335, 1218357, 1218397, 1218447, 1218461, 1218515, 1218559, 1218569, 1218643, 1218738 CVE References: CVE-2020-26555, CVE-2023-51779, CVE-2023-6121, CVE-2023-6531, CVE-2023-6546, CVE-2023-6606, CVE-2023-6610, CVE-2023-6622, CVE-2023-6931, CVE-2023-6932 Jira References: PED-3459, PED-5021, PED-7167 Sources used: openSUSE Leap 15.5 (src): kernel-obs-build-5.14.21-150500.55.44.1, kernel-livepatch-SLE15-SP5_Update_9-1-150500.11.5.1, kernel-syms-5.14.21-150500.55.44.1, kernel-source-5.14.21-150500.55.44.1, kernel-default-base-5.14.21-150500.55.44.1.150500.6.19.2, kernel-obs-qa-5.14.21-150500.55.44.1 SUSE Linux Enterprise Micro 5.5 (src): kernel-default-base-5.14.21-150500.55.44.1.150500.6.19.2 Basesystem Module 15-SP5 (src): kernel-default-base-5.14.21-150500.55.44.1.150500.6.19.2, kernel-source-5.14.21-150500.55.44.1 Development Tools Module 15-SP5 (src): kernel-source-5.14.21-150500.55.44.1, kernel-obs-build-5.14.21-150500.55.44.1, kernel-syms-5.14.21-150500.55.44.1 SUSE Linux Enterprise Live Patching 15-SP5 (src): kernel-livepatch-SLE15-SP5_Update_9-1-150500.11.5.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
SUSE-SU-2024:0156-1: An update that solves 10 vulnerabilities, contains three features and has 31 security fixes can now be installed. Category: security (important) Bug References: 1179610, 1183045, 1193285, 1211162, 1211226, 1212584, 1214747, 1214823, 1215237, 1215696, 1215885, 1216057, 1216559, 1216776, 1217036, 1217217, 1217250, 1217602, 1217692, 1217790, 1217801, 1217933, 1217938, 1217946, 1217947, 1217980, 1217981, 1217982, 1218056, 1218139, 1218184, 1218234, 1218253, 1218258, 1218335, 1218357, 1218447, 1218515, 1218559, 1218569, 1218659 CVE References: CVE-2020-26555, CVE-2023-51779, CVE-2023-6121, CVE-2023-6531, CVE-2023-6546, CVE-2023-6606, CVE-2023-6610, CVE-2023-6622, CVE-2023-6931, CVE-2023-6932 Jira References: PED-3459, PED-5021, PED-7322 Sources used: SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (src): kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1, kernel-syms-5.14.21-150400.24.103.1 SUSE Linux Enterprise Real Time 15 SP4 (src): kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1, kernel-syms-5.14.21-150400.24.103.1 SUSE Linux Enterprise Desktop 15 SP4 LTSS 15-SP4 (src): kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1, kernel-syms-5.14.21-150400.24.103.1 SUSE Linux Enterprise Server 15 SP4 LTSS 15-SP4 (src): kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1, kernel-syms-5.14.21-150400.24.103.1 SUSE Linux Enterprise Server for SAP Applications 15 SP4 (src): kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1, kernel-syms-5.14.21-150400.24.103.1 SUSE Manager Proxy 4.3 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1 SUSE Manager Retail Branch Server 4.3 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1 SUSE Manager Server 4.3 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1 openSUSE Leap 15.4 (src): kernel-obs-qa-5.14.21-150400.24.103.1, kernel-source-5.14.21-150400.24.103.1, kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-livepatch-SLE15-SP4_Update_22-1-150400.9.3.1, kernel-syms-5.14.21-150400.24.103.1 openSUSE Leap Micro 5.3 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1 openSUSE Leap Micro 5.4 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1 SUSE Linux Enterprise Micro for Rancher 5.3 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1 SUSE Linux Enterprise Micro 5.3 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1 SUSE Linux Enterprise Micro for Rancher 5.4 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1 SUSE Linux Enterprise Micro 5.4 (src): kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1 SUSE Linux Enterprise Live Patching 15-SP4 (src): kernel-livepatch-SLE15-SP4_Update_22-1-150400.9.3.1 SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (src): kernel-obs-build-5.14.21-150400.24.103.1, kernel-default-base-5.14.21-150400.24.103.1.150400.24.48.1, kernel-source-5.14.21-150400.24.103.1, kernel-syms-5.14.21-150400.24.103.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.