Skip to content

Commit e48e2c2

Browse files
authored
Merge pull request #3250 from SUSE/drop_sp3
Remove SP3 LTSS
2 parents b8c7e97 + 62d7f7d commit e48e2c2

9 files changed

Lines changed: 37 additions & 95 deletions

File tree

src/bci_build/os_version.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ class OsVersion(enum.Enum):
1616
SP5 = 5
1717
#: SLE 15 Service Pack 4
1818
SP4 = 4
19-
#: SLE 15 Service Pack 3
20-
SP3 = 3
2119
#: SUSE Linux 16.0
2220
SL16_0 = "16.0"
2321
#: SUSE Linux 16.1
@@ -128,7 +126,6 @@ def common_devel_packages(self) -> list[str]:
128126
@property
129127
def is_sle15(self) -> bool:
130128
return self.value in (
131-
OsVersion.SP3.value,
132129
OsVersion.SP4.value,
133130
OsVersion.SP5.value,
134131
OsVersion.SP6.value,
@@ -199,7 +196,6 @@ def libexecdir(self) -> str:
199196
#: Operating system versions that have the label ``com.suse.release-stage`` set
200197
#: to ``released``.
201198
RELEASED_OS_VERSIONS: list[OsVersion] = [
202-
OsVersion.SP3,
203199
OsVersion.SP4,
204200
OsVersion.SP5,
205201
OsVersion.SP6,
@@ -225,7 +221,7 @@ def libexecdir(self) -> str:
225221
]
226222

227223
# List of SPs that are already under LTSS
228-
ALL_OS_LTSS_VERSIONS: list[OsVersion] = [OsVersion.SP3, OsVersion.SP4, OsVersion.SP5]
224+
ALL_OS_LTSS_VERSIONS: list[OsVersion] = [OsVersion.SP4, OsVersion.SP5]
229225

230226
# joint set of BASE and NON_BASE versions
231227
ALL_OS_VERSIONS: set[OsVersion] = {

src/bci_build/package/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,9 +311,7 @@ def __post_init__(self) -> None:
311311
)
312312

313313
if self.build_recipe_type is None:
314-
self.build_recipe_type = (
315-
BuildType.KIWI if self.os_version == OsVersion.SP3 else BuildType.DOCKER
316-
)
314+
self.build_recipe_type = BuildType.DOCKER
317315

318316
if not self._publish_registry:
319317
self._publish_registry = publish_registry(self.os_version)

src/bci_build/package/base-fips/README.md.j2

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
{% if image.build_version == '15.3' %}
2-
# The SUSE Linux Enterprise 15 SP3 LTSS FIPS-140-2 container image
3-
{% elif image.build_version == '15.4' %}
1+
{% if image.build_version == '15.4' %}
42
# The SUSE Linux Enterprise 15 SP4 LTSS FIPS-140-3 container image
53
{% else %}
64
# The SUSE Linux Enterprise FIPS-140-3 container image
@@ -9,28 +7,7 @@
97

108
## Description
119

12-
{% if image.build_version | string == '15.3' %}
13-
This SUSE Linux Enterprise 15 SP3 LTSS-based container image includes the
14-
SLES 15 FIPS-140-2 certified OpenSSL and libgcrypt modules. The image is
15-
designed to run on a FIPS-140-2 compliant SUSE Linux Enterprise Server 15 SP3
16-
host environment. Although it is configured to enforce FIPS mode, the FIPS
17-
certification requires a host kernel in FIPS mode to be fully compliant.
18-
19-
The [FIPS-140-2 certified OpenSSL module](https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp3991.pdf)
20-
is a cryptographic module that provides a FIPS-140-2 compliant
21-
cryptographic library. The module is certified by the National
22-
Institute of Standards and Technology (NIST).
23-
24-
The FIPS-140-2 certified OpenSSL module is a drop-in replacement for the
25-
standard OpenSSL library. It provides the same functionality as the standard
26-
OpenSSL library, with additional security features to meet the FIPS-140-2
27-
requirements.
28-
29-
Similarly, the [FIPS-140-2 certified libgcrypt module](https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp3848.pdf)
30-
is a drop-in replacement for the standard libgcrypt library. It provides the
31-
same functionality as the standard libgcrypt library, with the additional
32-
security features enforced to meet FIPS-140-2 requirements.
33-
{% elif image.build_version | string == "15.4" %}
10+
{% if image.build_version | string == "15.4" %}
3411
This SUSE Linux Enterprise 15 SP4 LTSS-based container image includes the
3512
OpenSSL and libgcrypt modules that have been interim validated to FIPS 140-3.
3613

src/bci_build/package/base.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,6 @@ def eula(self) -> str:
174174
@property
175175
def registry_prefix(self) -> str:
176176
if self.os_version.is_ltss:
177-
if self.os_version == OsVersion.SP3:
178-
return "suse/ltss/sle15.3"
179177
if self.os_version == OsVersion.SP4:
180178
return "suse/ltss/sle15.4"
181179
if self.os_version == OsVersion.SP5:
@@ -233,7 +231,7 @@ def _get_base_kwargs(os_version: OsVersion) -> dict:
233231
+ (["user(nobody)"] if not os_version.is_ltss else [])
234232
+ (
235233
["openssl-3", "patterns-base-minimal_base"]
236-
if os_version not in (OsVersion.SP3, OsVersion.SP4)
234+
if os_version != OsVersion.SP4
237235
else []
238236
)
239237
+ (
@@ -250,11 +248,7 @@ def _get_base_kwargs(os_version: OsVersion) -> dict:
250248
if os_version.is_tumbleweed
251249
else ["suse-build-key"]
252250
)
253-
+ (
254-
["procps"]
255-
if os_version in (OsVersion.SP3, OsVersion.SP4, OsVersion.SP5)
256-
else []
257-
)
251+
+ (["procps"] if os_version in (OsVersion.SP4, OsVersion.SP5) else [])
258252
)
259253
]
260254
+ [
@@ -264,10 +258,10 @@ def _get_base_kwargs(os_version: OsVersion) -> dict:
264258
"aaa_base",
265259
"cracklib-dict-small",
266260
"filesystem",
261+
"jdupes",
267262
"shadow",
268263
"zypper",
269264
]
270-
+ (["jdupes"] if os_version not in (OsVersion.SP3,) else [])
271265
+ (
272266
["libcurl-mini4", "libopenssl-3-fips-provider"]
273267
if os_version.is_sl16
@@ -298,7 +292,6 @@ def _get_base_kwargs(os_version: OsVersion) -> dict:
298292
BASE_CONTAINERS = [
299293
Sles15Image(**_get_base_kwargs(os_ver))
300294
for os_ver in (
301-
OsVersion.SP3,
302295
OsVersion.SP4,
303296
OsVersion.SP5,
304297
OsVersion.SP6,

src/bci_build/package/basecontainers.py

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,6 @@ def _get_micro_package_list(os_version: OsVersion) -> list[Package]:
134134

135135
_FIPS_ASSET_BASEURL = "https://api.opensuse.org/public/build/"
136136

137-
# https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp3991.pdf
138-
# Chapter 9.1 Crypto Officer Guidance
139-
_FIPS_15_SP2_BINARIES: list[str] = [
140-
f"SUSE:SLE-15-SP2:Update/pool/x86_64/openssl-1_1.18804/{name}-1.1.1d-11.20.1.x86_64.rpm"
141-
for name in ("openssl-1_1", "libopenssl1_1", "libopenssl1_1-hmac")
142-
] + [
143-
f"SUSE:SLE-15-SP1:Update/pool/x86_64/libgcrypt.15117/{name}-1.8.2-8.36.1.x86_64.rpm"
144-
for name in ("libgcrypt20", "libgcrypt20-hmac")
145-
]
146-
147137
# submitted, not yet certified
148138
_FIPS_15_SP4_BINARIES: list[str] = [
149139
f"SUSE:SLE-15-SP4:Update/pool/x86_64/openssl-1_1.28168/{name}-1.1.1l-150400.7.28.1.x86_64.rpm"
@@ -167,8 +157,6 @@ def _get_fips_base_custom_end(os_version: OsVersion) -> str:
167157
f"{DOCKERFILE_RUN} update-crypto-policies --no-reload --set FIPS\n"
168158
)
169159
match os_version:
170-
case OsVersion.SP3:
171-
bins = _FIPS_15_SP2_BINARIES
172160
case OsVersion.SP4:
173161
bins = _FIPS_15_SP4_BINARIES
174162

@@ -187,8 +175,8 @@ def _get_fips_base_custom_end(os_version: OsVersion) -> str:
187175

188176
return (
189177
_get_asset_script(_FIPS_ASSET_BASEURL, bins)
178+
+ custom_set_fips_mode
190179
+ (custom_install_bins if bins else "")
191-
+ (custom_set_fips_mode if os_version not in (OsVersion.SP3,) else "")
192180
)
193181

194182

@@ -209,9 +197,7 @@ def _get_fips_pretty_name(os_version: OsVersion) -> str:
209197
"""Return a pretty name for FIPS enforcing containers."""
210198

211199
if os_version.is_ltss:
212-
if os_version == OsVersion.SP3:
213-
return f"{os_version.pretty_os_version_no_dash} FIPS-140-2"
214-
elif os_version == OsVersion.SP4:
200+
if os_version == OsVersion.SP4:
215201
return f"{os_version.pretty_os_version_no_dash} FIPS-140-3"
216202

217203
if os_version.is_sle15 or os_version.is_sl16 or os_version.is_tumbleweed:
@@ -223,8 +209,6 @@ def _get_fips_pretty_name(os_version: OsVersion) -> str:
223209
def _get_supported_until_fips(os_version: OsVersion) -> datetime.date | None:
224210
"""Returns the end of LTSS for images under LTSS, otherwise end of general support if known"""
225211
match os_version:
226-
case OsVersion.SP3:
227-
return datetime.date(2025, 12, 31)
228212
case OsVersion.SP4:
229213
return datetime.date(2026, 12, 31)
230214
case _:
@@ -242,7 +226,6 @@ def _get_fips_base_kwargs(os_version: OsVersion) -> dict:
242226
# preserve backwards compatibility on already released distributions
243227
os_version
244228
not in (
245-
OsVersion.SP3,
246229
OsVersion.SP4,
247230
OsVersion.SP5,
248231
OsVersion.SP6,
@@ -256,12 +239,7 @@ def _get_fips_base_kwargs(os_version: OsVersion) -> dict:
256239
),
257240
"pretty_name": _get_fips_pretty_name(os_version),
258241
"package_list": (
259-
[*os_version.release_package_names, "coreutils"]
260-
+ (
261-
["fipscheck"]
262-
if os_version == OsVersion.SP3
263-
else ["crypto-policies-scripts"]
264-
)
242+
[*os_version.release_package_names, "coreutils", "crypto-policies-scripts"]
265243
+ (["patterns-base-fips"] if os_version.is_sl16 else [])
266244
),
267245
"extra_labels": {

src/bci_build/package/versions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def get_pkg_version(pkg_name: str, os_version: OsVersion) -> str:
127127
OsVersion.SL16_0: "SUSE:SLFO:1.2",
128128
OsVersion.SL16_1: "SUSE:SLFO:Main:Build",
129129
OsVersion.TUMBLEWEED: "openSUSE:Factory",
130-
} | {OsVersion(ver): f"SUSE:SLE-15-SP{ver}:Update" for ver in range(3, 8)}
130+
} | {OsVersion(ver): f"SUSE:SLE-15-SP{ver}:Update" for ver in range(4, 8)}
131131

132132

133133
@overload

tests/test_build_results.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
def test_from_resultlist():
1212
obs_api_reply = """<resultlist state="10c966b3d96474d1d59d0ba6d4d5b61a">
13-
<result project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL" repository="images" arch="x86_64" code="building" state="building" dirty="true">
13+
<result project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL" repository="images" arch="x86_64" code="building" state="building" dirty="true">
1414
<status package="golang-1.18" code="building">
1515
<details>building on old-cirrus2:14</details>
1616
</status>
@@ -25,26 +25,26 @@ def test_from_resultlist():
2525
</status>
2626
<status package="micro" code="scheduled"/>
2727
</result>
28-
<result project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL" repository="images" arch="aarch64" code="building" state="building">
28+
<result project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL" repository="images" arch="aarch64" code="building" state="building">
2929
<status package="openjdk-11" code="succeeded"/>
3030
<status package="openjdk-11-devel" code="building">
3131
<details>building on obs-arm-10:29</details>
3232
</status>
3333
<status package="python-3.6" code="succeeded"/>
3434
<status package="python-3.9" code="signing"/>
3535
</result>
36-
<result project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL" repository="containerfile" arch="x86_64" code="published" state="published" dirty="true">
36+
<result project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL" repository="containerfile" arch="x86_64" code="published" state="published" dirty="true">
3737
<status package="openjdk-11" code="excluded"/>
3838
<status package="openjdk-11-devel" code="excluded"/>
3939
</result>
40-
<result project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL" repository="containerfile" arch="aarch64" code="published" state="published">
40+
<result project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL" repository="containerfile" arch="aarch64" code="published" state="published">
4141
</result>
4242
</resultlist>
4343
4444
"""
4545
assert RepositoryBuildResult.from_resultlist(obs_api_reply) == [
4646
RepositoryBuildResult(
47-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
47+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
4848
repository="images",
4949
arch=Arch.X86_64,
5050
code="building",
@@ -75,7 +75,7 @@ def test_from_resultlist():
7575
],
7676
),
7777
RepositoryBuildResult(
78-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
78+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
7979
repository="images",
8080
arch=Arch.AARCH64,
8181
code="building",
@@ -98,7 +98,7 @@ def test_from_resultlist():
9898
],
9999
),
100100
RepositoryBuildResult(
101-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
101+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
102102
repository="containerfile",
103103
arch=Arch.X86_64,
104104
code="published",
@@ -113,7 +113,7 @@ def test_from_resultlist():
113113
],
114114
),
115115
RepositoryBuildResult(
116-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
116+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
117117
repository="containerfile",
118118
arch=Arch.AARCH64,
119119
code="published",
@@ -127,7 +127,7 @@ def test_is_build_failed_dirty_repo():
127127
is_build_failed(
128128
[
129129
RepositoryBuildResult(
130-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
130+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
131131
repository="containerfile",
132132
arch=Arch.AARCH64,
133133
code="published",
@@ -146,7 +146,7 @@ def test_is_build_failed_dirty_repo():
146146
(
147147
[
148148
RepositoryBuildResult(
149-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
149+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
150150
repository="containerfile",
151151
arch=Arch.AARCH64,
152152
code="published",
@@ -163,7 +163,7 @@ def test_is_build_failed_dirty_repo():
163163
(
164164
[
165165
RepositoryBuildResult(
166-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
166+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
167167
repository="containerfile",
168168
arch=Arch.AARCH64,
169169
code="published",
@@ -178,7 +178,7 @@ def test_is_build_failed_dirty_repo():
178178
(
179179
[
180180
RepositoryBuildResult(
181-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
181+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
182182
repository="containerfile",
183183
arch=Arch.AARCH64,
184184
code="published",
@@ -207,7 +207,7 @@ def test_is_build_failed(build_res: list[RepositoryBuildResult], is_failed: bool
207207
(
208208
[
209209
RepositoryBuildResult(
210-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
210+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
211211
repository="containerfile",
212212
arch=Arch.AARCH64,
213213
code="published",
@@ -227,12 +227,12 @@ def test_is_build_failed(build_res: list[RepositoryBuildResult], is_failed: bool
227227
<details>
228228
<summary>Build Results</summary>
229229
230-
Repository `containerfile` in [home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL](https://build.opensuse.org/project/show/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL) for `aarch64`: current state: published
230+
Repository `containerfile` in [home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL](https://build.opensuse.org/project/show/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL) for `aarch64`: current state: published
231231
Build results:
232232
package name | status | build log
233233
-------------|--------|----------
234-
init | ✅ succeeded | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL/init/containerfile/aarch64)
235-
micro | ⛔ excluded | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL/micro/containerfile/aarch64)
234+
init | ✅ succeeded | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL/init/containerfile/aarch64)
235+
micro | ⛔ excluded | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL/micro/containerfile/aarch64)
236236
237237
238238
</details>
@@ -243,7 +243,7 @@ def test_is_build_failed(build_res: list[RepositoryBuildResult], is_failed: bool
243243
(
244244
[
245245
RepositoryBuildResult(
246-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
246+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
247247
repository="containerfile",
248248
arch=Arch.AARCH64,
249249
code="published",
@@ -264,12 +264,12 @@ def test_is_build_failed(build_res: list[RepositoryBuildResult], is_failed: bool
264264
<details>
265265
<summary>Build Results</summary>
266266
267-
Repository `containerfile` in [home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL](https://build.opensuse.org/project/show/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL) for `aarch64`: current state: building (repository is **dirty**)
267+
Repository `containerfile` in [home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL](https://build.opensuse.org/project/show/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL) for `aarch64`: current state: building (repository is **dirty**)
268268
Build results:
269269
package name | status | detail | build log
270270
-------------|--------|--------|----------
271-
init | ❌ failed | | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL/init/containerfile/aarch64)
272-
micro | 🚫 unresolvable | Nothing provides gcc | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL/micro/containerfile/aarch64)
271+
init | ❌ failed | | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL/init/containerfile/aarch64)
272+
micro | 🚫 unresolvable | Nothing provides gcc | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL/micro/containerfile/aarch64)
273273
274274
275275
</details>
@@ -280,7 +280,7 @@ def test_is_build_failed(build_res: list[RepositoryBuildResult], is_failed: bool
280280
(
281281
[
282282
RepositoryBuildResult(
283-
project="home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL",
283+
project="home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL",
284284
repository="containerfile",
285285
arch=Arch.AARCH64,
286286
code="published",
@@ -300,12 +300,12 @@ def test_is_build_failed(build_res: list[RepositoryBuildResult], is_failed: bool
300300
<details>
301301
<summary>Build Results</summary>
302302
303-
Repository `containerfile` in [home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL](https://build.opensuse.org/project/show/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL) for `aarch64`: current state: published
303+
Repository `containerfile` in [home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL](https://build.opensuse.org/project/show/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL) for `aarch64`: current state: published
304304
Build results:
305305
package name | status | detail | build log
306306
-------------|--------|--------|----------
307-
init | ❌ failed | | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL/init/containerfile/aarch64)
308-
micro | 🚫 unresolvable | Nothing provides rust | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP3:sle15-sp3-NBdNL/micro/containerfile/aarch64)
307+
init | ❌ failed | | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL/init/containerfile/aarch64)
308+
micro | 🚫 unresolvable | Nothing provides rust | [live log](https://build.opensuse.org/package/live_build_log/home:testuser:BCI:Staging:SLE-15-SP7:sle15-sp7-NBdNL/micro/containerfile/aarch64)
309309
310310
311311
</details>

0 commit comments

Comments
 (0)