containerd / nydus-snapshotter

A containerd snapshotter with data deduplication and lazy loading in P2P fashion
https://nydus.dev/
Apache License 2.0
168 stars 96 forks source link

Release nydus-snapshotter packages with different architectures #553

Closed sctb512 closed 9 months ago

sctb512 commented 11 months ago

Related to https://github.com/containerd/nydus-snapshotter/issues/548

Expected packages: https://github.com/sctb512/nydus-snapshotter/releases/tag/v0.9.2

codecov[bot] commented 11 months ago

Codecov Report

Merging #553 (3d08e19) into main (2f20ea7) will increase coverage by 0.05%. Report is 13 commits behind head on main. The diff coverage is n/a.

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/containerd/nydus-snapshotter/pull/553/graphs/tree.svg?width=650&height=150&src=pr&token=R3RX5WX6R1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=containerd)](https://app.codecov.io/gh/containerd/nydus-snapshotter/pull/553?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=containerd) ```diff @@ Coverage Diff @@ ## main #553 +/- ## ========================================== + Coverage 33.56% 33.61% +0.05% ========================================== Files 65 65 Lines 8176 8259 +83 ========================================== + Hits 2744 2776 +32 - Misses 5117 5167 +50 - Partials 315 316 +1 ``` [see 6 files with indirect coverage changes](https://app.codecov.io/gh/containerd/nydus-snapshotter/pull/553/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=containerd)
fidencio commented 11 months ago

@sctb512, I'm closing #552 in favour of this one, as this one is way more complete. :-)

fidencio commented 11 months ago

@stevenhorsman, as Choi is on vacation, would you mind to give it a try on the binaries released for s390x and make sure those are working as expected?

stevenhorsman commented 11 months ago

@stevenhorsman, as Choi is on vacation, would you mind to give it a try on the binaries released for s390x and make sure those are working as expected?

I think @BbolroC is back now. Choi, do you have a chance to try this out, or do you need me to? Thanks.

BbolroC commented 11 months ago

Hi, I've tested the binaries. All looks good, but optimizer-server as follows:

$ file optimizer-server
optimizer-server: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=21ade306589fc7f613b58e8f5bcfea0b6f8c7150, for GNU/Linux 3.2.0, with debug_info, not stripped
sctb512 commented 11 months ago

Hi, I've tested the binaries. All looks good, but optimizer-server as follows:

$ file optimizer-server
optimizer-server: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=21ade306589fc7f613b58e8f5bcfea0b6f8c7150, for GNU/Linux 3.2.0, with debug_info, not stripped

Thanks for testing. Need to add EXTRA_RUSTFLAGS to build the optimizer-server and strip it. I will update it soon.

sctb512 commented 11 months ago

Updated, strip is not supported for the result of cross compilation, so I skip it. PTAL @BbolroC https://github.com/sctb512/nydus-snapshotter/actions/runs/6734057338

BbolroC commented 11 months ago

Hi, the test results are as follows:

~/bin$ ls
containerd-nydus-grpc  nydus-overlayfs  optimizer-nri-plugin  optimizer-server
~/bin$ ls -1 | xargs -i{} file {}
containerd-nydus-grpc: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=D9FMM2zeoLZRudY9jmk3/w2Ubn4ekE7PDXkW8KUwC/hj2l8NJJPWnLMuVNvUO6/CCeUYXb37ebI3TvRpL7k, stripped
nydus-overlayfs: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=NJHuJic9uc6alIavAiRK/KiGolH9qCL_OQVxPxzfi/KM9yYXMKgWR3MSc5Nr-i/o7iFDb_RRuAgtRVaF_2a, stripped
optimizer-nri-plugin: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=pLWwkeK1wDheG0Lr94z7/E0s98LRkYKZ00rvJ3G3z/WdRYAJ_wHeV0vejegCFS/hNz8MRM1B7gDz0xsL3TZ, stripped
optimizer-server: ELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=42f7921d6175f7c1c5c881690126d85301feeac2, for GNU/Linux 3.2.0, with debug_info, not stripped
~/bin$ ./optimizer-server --help
./optimizer-server: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./optimizer-server)
./optimizer-server: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./optimizer-server)
./optimizer-server: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./optimizer-server)

Only the binary optimizer-server is built as dynamically linked and not stripped. Is this what you expected? Thanks.

sctb512 commented 11 months ago

Hi, the test results are as follows:

~/bin$ ls
containerd-nydus-grpc  nydus-overlayfs  optimizer-nri-plugin  optimizer-server
~/bin$ ls -1 | xargs -i{} file {}
containerd-nydus-grpc: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=D9FMM2zeoLZRudY9jmk3/w2Ubn4ekE7PDXkW8KUwC/hj2l8NJJPWnLMuVNvUO6/CCeUYXb37ebI3TvRpL7k, stripped
nydus-overlayfs: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=NJHuJic9uc6alIavAiRK/KiGolH9qCL_OQVxPxzfi/KM9yYXMKgWR3MSc5Nr-i/o7iFDb_RRuAgtRVaF_2a, stripped
optimizer-nri-plugin: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=pLWwkeK1wDheG0Lr94z7/E0s98LRkYKZ00rvJ3G3z/WdRYAJ_wHeV0vejegCFS/hNz8MRM1B7gDz0xsL3TZ, stripped
optimizer-server: ELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=42f7921d6175f7c1c5c881690126d85301feeac2, for GNU/Linux 3.2.0, with debug_info, not stripped
~/bin$ ./optimizer-server --help
./optimizer-server: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./optimizer-server)
./optimizer-server: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./optimizer-server)
./optimizer-server: /lib/s390x-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./optimizer-server)

Only the binary optimizer-server is built as dynamically linked and not stripped. Is this what you expected? Thanks.

Updated. It works as expected now.

BbolroC commented 11 months ago

@sctb512 I've verified the binaries at https://github.com/sctb512/nydus-snapshotter/actions/runs/6744462860 work on s390x. Thanks a lot! 😉