Looking more into it, here are more observations: - crun upstream has a git submodule on 'libocispec' (the repo you asked me to backport). The release tarballs contain a copy of the submodule contents at the time of the release - the 'libocispec' submodule contains two additional submodules 'image-spec' and 'runtime-spec' - the debian package replaces only the two "inner" submodules 'image-spec' and 'runtime-spec' with sources found in Debian packages, but not the outer 'libocispec', which isn't found in debian - the Debian packages of 'image-spec' and 'runtime-spec' have been updated last August, and contain specification for the "zos" platform - the 'libocispec' repository contains a generator that reads those specifications and generates code. It seems to me that this is the code generator that lacks some zos related definition and thus causes the linker failure - the 'libocispec' repository has last synced with 'image-spec' and 'runtime-spec' last January, and thus is missing the zos related changes
This is very messy. I can totally understand upstream's stance to just vendor the specs so that the generator is only used with versions of the specifications that have actually been tested. I don't think it is a good use of Debian's developers' time to play this game of catching up. On Wed, Nov 10, 2021 at 7:27 AM Reinhard Tartler <siret...@gmail.com> wrote: > That's not sufficient. > > the commit you point out does two things: > > - update the submodules for 'image-spec' and 'runtime-spec' (which the > Debian package currently overrides with the distro-provided copies) > - zos-related changes to the rust bindings (which the Debian package > doesn't have at all at this point) > > The missing definitions that the linker stumbles over are generated from > the json files. But I haven't found where that generation exactly happens > and what change is missing to it. > > Thanks for your swift reply! > > On Tue, Nov 9, 2021 at 8:47 PM Shengjing Zhu <z...@debian.org> wrote: > >> Cloud you backport following commit? >> >> https://github.com/containers/libocispec/commit/8489d9b60105e487564c9966b5748e2a6ea2855b >> >> >> (Sent on my mobile phone) >> >> Reinhard Tartler <siret...@gmail.com> 于 2021年11月10日周三 07:05写道: >> >>> I took a look at the issue and here are my thoughts: >>> >>> - the build error is a failure to link some test binaries. excluding >>> them from the build might be possible with some patching. >>> - I've upgraded the package to the latest upstream 1.3, and was seeing >>> exactly the same build failure >>> - the build failure goes away when not stripping the bundled copies of >>> runtime-spec and image-spec >>> - Dimtry had a conversation about this with upstream at >>> https://github.com/containers/crun/issues/240. It seems to be that >>> upstream strongly recommends to just use the vendored copies of image-spc >>> and runtime-spec >>> - I've pushed my work to >>> https://salsa.debian.org/debian/crun/-/merge_requests/1 >>> - I believe the issue was introduced by Shengjing's update in >>> https://tracker.debian.org/news/1249177/accepted-golang-github-opencontainers-specs-10266g20a2d97-1-source-into-unstable/ >>> -- but that was already months ago. So that may not be true >>> >>> With this, I'd like to suggest to move ahead with my merge request and >>> don't strip image-spec and runtime-spec from the package. >>> >>> Any thoughts? >>> >>> -- >>> regards, >>> Reinhard >>> >> > > -- > regards, > Reinhard > -- regards, Reinhard