[Buildroot] [PATCH v1 1/1] package/crio: new package

Julien Olivain ju.o at free.fr
Fri Aug 4 21:30:07 UTC 2023


Hi Thomas, Christian, All,

On 01/08/2023 00:38, Thomas Petazzoni wrote:
> Hello Christian,
> 
> Thanks for the patch. See below some review.
> 
> On Thu, 11 May 2023 18:40:56 -0700
> Christian Stewart via buildroot <buildroot at buildroot.org> wrote:
> 
>>  package/Config.in      |  1 +
>>  package/crio/Config.in | 54 ++++++++++++++++++++++++++++
>>  package/crio/crio.hash |  3 ++
>>  package/crio/crio.mk   | 82 
>> ++++++++++++++++++++++++++++++++++++++++++
>>  4 files changed, 140 insertions(+)
> 
> Entry in DEVELOPERS file missing.
> 
>> diff --git a/package/crio/Config.in b/package/crio/Config.in
>> new file mode 100644
>> index 0000000000..35a38c587e
>> --- /dev/null
>> +++ b/package/crio/Config.in
>> @@ -0,0 +1,54 @@
>> +config BR2_PACKAGE_CRIO
>> +	bool "crio"
>> +	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
>> +	depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
>> +	depends on BR2_TOOLCHAIN_HAS_THREADS
>> +	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # iproute2, 
>> __kernel_{u,}long_t
>> +	depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve
> 
> uClibc has fexecve() now
> 
>> +	depends on BR2_USE_MMU # libgpgme, iproute2, fork()
> 
> 	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpgme
> 
> is missing
> 
>> +	select BR2_PACKAGE_IPROUTE2
>> +	select BR2_PACKAGE_IPTABLES
> 
> Neither of these are referenced in the .mk file. Are these runtime
> dependencies? If so, please indicate this via a comment.
> 
> For this kind of package, a runtime test in support/testing/ would be
> very good. You can ask Julien Olivain for help here :-)

I will be glad to help! For a good runtime test, we need:

1. a simple reference Buildroot configuration that compiles the
package, and

2. a simple reference "known working" sequence that is sufficiently
stable in time (to require minimum maintenance after package updates).

I was thinking about this CRI-O tutorial:
https://github.com/cri-o/cri-o/blob/main/tutorials/crictl.md

But it requires crictl, from the cri-tools package:
https://github.com/kubernetes-sigs/cri-tools/tree/master

Christian:
Are you planning to add this package later?  Or do you know a
better/simpler way to start a small container?

Moreover, when I quickly tried this patch, starting from
qemu_aarch64_virt_defconfig. (without systemd) I observed
the following:

I had a build failure due to a missing libseccomp. Maybe a build
dependency is missing?

Once built, the service failed to start (by running "crio" manually),
due to missing runtime dependencies to: conmon, runc, nsenter (from
util-linux). Could you check those are mandatory (and add those as
runtime dependency), or if they can be disabled by configuration?

Once installed, I finally got an error due to the missing
/var/lib/crio directory on the target filesystem. Maybe it is missing
in CRIO_INSTALL_TARGET_CMDS?  Please also check if specific
permissions are needed, and define a CRIO_PERMISSIONS if needed. See:
https://nightly.buildroot.org/manual.html#generic-package-reference

Best regards,

Julien.



More information about the buildroot mailing list