coreos / fedora-coreos-config

Base configuration for Fedora CoreOS
Other
153 stars 158 forks source link

[s390x] s390utils-base requires initscripts #341

Closed viane closed 3 years ago

viane commented 4 years ago

Bug Report

Not sure this is a bug or the bug is not from assembler rather than fedora, the cosa build failed with Could not depsolve transaction; 1 problem detected: - package initscripts-10.02-2.fc31.s390x is filtered out by exclude filtering.

Environment

What operating system is being used to run coreos-assembler? RHEL 8.1 s390x + local build localhost/coreos-assembler based on clean Fedora 31 s390x

What operating system is being assembled? coreos

Is coreos-assembler running in Podman or Docker? Podman

If Podman, is coreos-assembler running privileged or unprivileged? Privileged

Actual Behavior

[xiaoyuz@zcx-gus fcos]$ cosa init https://github.com/coreos/fedora-coreos-config
COREOS_ASSEMBLER_CONTAINER=localhost/coreos-assembler
+ podman run --rm -ti --security-opt label=disable --privileged --uidmap=1000:0:1 --uidmap=0:1:1000 --uidmap 1001:1001:64536 -v /home/xiaoyuz/fcos:/srv/ --device /dev/kvm --device /dev/fuse --tmpfs /tmp -v /var/tmp:/var/tmp --name cosa localhost/coreos-assembler init https://github.com/coreos/fedora-coreos-config
+ mkdir -p src
+ cd src
+ test -e config
+ case "${source}" in
+ git clone --recurse-submodules https://github.com/coreos/fedora-coreos-config config
Cloning into 'config'...
remote: Enumerating objects: 2955, done.
remote: Total 2955 (delta 0), reused 0 (delta 0), pack-reused 2955
Receiving objects: 100% (2955/2955), 640.82 KiB | 16.43 MiB/s, done.
Resolving deltas: 100% (1532/1532), done.
+ '[' -n '' ']'
+ set +x
Config commit: d18bcd20d359ba03e5b47faba25810cb26a0fa32
+ manifest=config/manifest.yaml
+ '[' -f config/manifest.yaml ']'
+ mkdir -p cache
+ mkdir -p builds
+ mkdir -p tmp
+ mkdir -p overrides/rpm
+ mkdir -p overrides/rootfs
+ rc=0
+ set +x

[xiaoyuz@zcx-gus fcos]$ cosa fetch
COREOS_ASSEMBLER_CONTAINER=localhost/coreos-assembler
+ podman run --rm -ti --security-opt label=disable --privileged --uidmap=1000:0:1 --uidmap=0:1:1000 --uidmap 1001:1001:64536 -v /home/xiaoyuz/fcos:/srv/ --device /dev/kvm --device /dev/fuse --tmpfs /tmp -v /var/tmp:/var/tmp --name cosa localhost/coreos-assembler fetch
Config commit: d18bcd20d359ba03e5b47faba25810cb26a0fa32
Using manifest: /srv/src/config/manifest.yaml
Running: rpm-ostree compose tree --repo=/srv/tmp/repo --cachedir=/srv/cache --touch-if-changed /srv/tmp/build/tmp/treecompose.changed --unified-core /srv/src/config/manifest.yaml --download-only
RPM-OSTree Version: 2020.1
No previous commit for fedora/s390x/coreos/testing-devel
Enabled rpm-md repositories: fedora-coreos-pool fedora fedora-updates fedora-modular fedora-updates-modular
Updating metadata for 'fedora-coreos-pool'... done
rpm-md repo 'fedora-coreos-pool'; generated: 2020-04-09T02:11:45Z
Updating metadata for 'fedora'... done
rpm-md repo 'fedora'; generated: 2019-10-23T22:52:27Z
Updating metadata for 'fedora-updates'... done
rpm-md repo 'fedora-updates'; generated: 2020-04-11T21:34:34Z
Updating metadata for 'fedora-modular'... done
rpm-md repo 'fedora-modular'; generated: 2019-10-23T22:53:11Z
Updating metadata for 'fedora-updates-modular'... done
rpm-md repo 'fedora-updates-modular'; generated: 2020-04-09T20:25:33Z
Importing rpm-md... done
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
 Problem: package s390utils-base-2:2.10.0-1.fc31.s390x requires network-scripts, but none of the providers can be installed
  - package network-scripts-10.02-2.fc31.s390x requires initscripts(s390-64) = 10.02-2.fc31, but none of the providers can be installed
  - conflicting requests
  - package initscripts-10.02-2.fc31.s390x is filtered out by exclude filtering
+ rc=1
+ set +x

Reproduction Steps

cosa() ✓ cosa init ✓ cosa fetch X

Other Information

[xiaoyuz@zcx-gus fcos]$ podman run -it 0027939a6dd7 shell
[coreos-assembler]$ sudo dnf install initscripts
Repository 'f31-coreos-continuous' is missing name in configuration, using id.
Repository 'f32-coreos-continuous' is missing name in configuration, using id.
f31-coreos-continuous                                                   70 kB/s |  46 kB     00:00
f32-coreos-continuous                                                   42 kB/s |  24 kB     00:00
Fedora Modular 31 - s390x                                              4.7 MB/s | 5.1 MB     00:01
Fedora Modular 31 - s390x - Updates                                    1.6 MB/s | 4.0 MB     00:02
Fedora 31 - s390x - Updates                                             20 MB/s |  20 MB     00:00
Fedora 31 - s390x                                                       11 MB/s |  65 MB     00:06
Package initscripts-10.02-2.fc31.s390x is already installed.

Looking for advice that why is the build excluding the package with specific version and which side issue it belongs to?

cgwalters commented 4 years ago

This is fallout from https://github.com/coreos/fedora-coreos-config/pull/340 - need to fix s390utils-base-2:2.10.0-1.fc31.s390x to not depend on initscripts.

cgwalters commented 4 years ago

Transferred this to fedora-coreos-config.

cgwalters commented 4 years ago

In the short term...it'd be ugly but we could rework https://github.com/coreos/fedora-coreos-config/pull/340 to be architecture-dependent via arch-include.

dustymabe commented 4 years ago

Another option may be to just remove all files provided by initscripts package (assuming they aren't actually needed). If we did include auditd we'd probably have to go with that option anyway because we can't actually change the dependency.

cgwalters commented 4 years ago

Oh we can change the dependency, but it'd require some new rpm-ostree work. Clearly though the dependency is just totally broken upstream.

dustymabe commented 4 years ago

Oh we can change the dependency, but it'd require some new rpm-ostree work. Clearly though the dependency is just totally broken upstream.

At a previous employer we had a concept of "dep whiteout". As you suggest, maybe adding support for something like that to rpm-ostree would make our life easer in the long term.

jlebon commented 4 years ago

Another option may be to just remove all files provided by initscripts package (assuming they aren't actually needed).

Yeah, RHCOS today does exactly that. I think I'd rather do that than fake out the deps. Though would be nice if we could just resolve the underlying issues.

For this one, it looks like it uses at least the network-scripts function get_config_by_subchannel which relies on ifcfg files, which FCOS doesn't even support at all anyway.

jcajka commented 4 years ago

I have opened PR(https://src.fedoraproject.org/rpms/s390utils/pull-request/4) workarounding the issue of perl dependency and dropping the need for the initscripts/network-scripts. It will probably need more testing on the perl side, to see if that has any ill effects(I can't really tell from top of my head), but it seems to be working for FCOS in VM on s390x just fine.

I guess the ultimate fix would be to finish rewrite of the perl scripts in something compiled(I guess C). There is already oldish issue opened upstream(https://github.com/ibm-s390-tools/s390-tools/issues/5).