#6 Drop the runc dependency's lower version limit
Closed 2 months ago by dm0. Opened 2 months ago by dm0.
https://src.fedoraproject.org/forks/dm0/rpms/buildah.git master  into  master

Drop the runc dependency's lower version limit
David Michael • 2 months ago  
buildah.spec
file modified
+1 -1

@@ -42,7 +42,7 @@

  BuildRequires: btrfs-progs-devel

  BuildRequires: libassuan-devel

  BuildRequires: make

- Requires: runc >= 1.0.0-17

+ Requires: runc

  Requires: containers-common

  %if 0%{?fedora}

  Recommends: container-selinux

no initial comment

This allows installing buildah and moby-engine at the same time, since Docker 18.09 conflicts with runc. The declared version is too old to be shipped with supported Fedora versions, so this should have no effect. The moby-engine package can provide its bundled runc version, but that won't match this minimum required version since it is a release candidate.

Buildah requires an up2date version of runc. If Docker 18.09 requires an older version, then it could cause issues.

[dwalsh@localhost buildah]$ rpm -q --requires buildah | grep runc
runc >= 1.0.0-17
[dwalsh@localhost buildah]$ rpm -q --requires podman | grep runc
runc >= 2:1.0.0-57

This allows installing buildah and moby-engine at the same time, since Docker 18.09 conflicts with runc. The declared version is too old to be shipped with supported Fedora versions, so this should have no effect. The moby-engine package can provide its bundled runc version, but that won't match this minimum required version since it is a release candidate.

I'm not sure I follow. I see moby-engine has Conflicts: runc. So, won't moby-engine conflict with buildah even after this change? Or is there an accompanying change to moby-engine as well?

Also, I notice a symlink /usr/bin/runc to /usr/bin/docker-runc . Is it possible to remove the symlink and have docker directly use /usr/bin/docker-runc instead? That can remove the conflict I guess.

@dwalsh Docker 18.09.7 uses the latest tag, 1.0.0 RC8. If that's too old, then I guess we can just leave them unusable together. My reason for needing this change is that moby-engine can provide runc-1.0.0-0.rc8.1 for its bundled version, which is seen as older than 1.0.0-17 (which looks incorrect since there is no 1.0.0 release).

@lsm5 The Conflicts exists now, but I was going to push the Provides: runc with the 18.09.7 update (which was scheduled to be released today but apparently didn't happen). I added the docker-runc symlink for compatibility with 18.06 and earlier in case users had something external calling the program directly. Docker 18.09 dropped the docker- prefixes from commands and requires just /usr/bin/runc and /usr/bin/containerd.

Moby should not provide runc, Runc is an independant package from Moby so why should it provide it? If it wants its own version of runc then it should be in the /usr/libexec directory not in /usr/bin/runc.

podman and friends are taking advantage of the latest versions of runc, and use it, if moby engine works with it, then it should also use it.

I have orphaned moby-engine, so I'll close this.

Pull-Request has been closed by dm0

2 months ago