Message ID | 20230806140241.4155773-1-bernd@kuhls.net |
---|---|
Headers | show |
Series | Introduce libudev (branch yem/libudev-6) | expand |
Hello, On Sun, 6 Aug 2023 16:02:29 +0200 Bernd Kuhls <bernd@kuhls.net> wrote: > Bernd Kuhls (4): > package/kodi: only needs libudev, not udev daemon > package/libv4l: optionally use libudev > package/libcec: optionally use libudev > package/usbutils: only needs libudev, not udev daemon > > Yann E. MORIN (8): > package/eudev: add option to enable the udev daemon > package/eudev: allow building only the library > package/libudev: new virtual package > package/eudev: provides libudev > package/systemd: provides libudev > package/libudev: make it selectable > package/qt5base: optionally use libudev > package/libinput: only needs libudev, not udev daemon Thanks Bernd for working on this. I didn't look carefully at the patches in this iteration, but I remember looking at previous iterations, and it was good. I just wanted to question the relevance of this, so I did a quick experiment. I applied just patches 1 and 2 of this patch series, which allow to build eudev with and without the daemon. Then I built two defconfigs: BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_INIT_NONE=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set # BR2_PACKAGE_EUDEV_ENABLE_HWDB is not set # BR2_TARGET_ROOTFS_TAR is not set which enables the full eudev (daemon included) And: BR2_arm=y BR2_cortex_a9=y BR2_ARM_ENABLE_VFP=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set BR2_PACKAGE_EUDEV=y # BR2_PACKAGE_EUDEV_ENABLE_HWDB is not set # BR2_TARGET_ROOTFS_TAR is not set which enables only libudev. The first defconfig generates an output/target/ of 7.4 MB, the second defconfig generates an output/target/ of 5.4 MB. In the first defconfig, the eudev package takes 1.69 MB, and the util-linux-libs package takes 330 KB. In the second defconfig, the eudev package takes 133 KB, and util-linux-libs is not needed. So in this "extreme" example, it saves 2 MB. I say "extreme" because a realistic rootfs will have something that uses libudev and is going to be bigger. util-linux-libs is used by a *lot* of system-level packages, so it's relatively likely that it's going to be pulled in by some other packages in most typical configurations. The size of eudev could be reduced locally via post-build script. I want to see if we really want to add this additional complexity of a virtual package "just" to save 2 MB. I don't have a very strong opinion on this so I could be convinced either way, but I find the extra complexity quite high compared to the usefulness for most typical use-cases. Arnout, Peter, could you give your opinion here so that we can take a decision, and either merge this patch series or reject it? Thanks! Thomas
Am Tue, 22 Aug 2023 22:59:49 +0200 schrieb Thomas Petazzoni via buildroot: > I just wanted to question the relevance of this > The first defconfig generates an output/target/ of 7.4 MB, the second > defconfig generates an output/target/ of 5.4 MB. > I don't have a very strong opinion on this so I could be convinced > either way, but I find the extra complexity quite high compared to > the usefulness for most typical use-cases. Hi Thomas, the reason I am carrying this patch in my personal tree is maintenance of a buildroot-based system which uses BR2_ROOTFS_DEVICE_CREATION_STATIC=y Without the libudev series I can not use packages like Kodi, and no, I can not change the rootfs setting for this system, sorry. Regards, Bernd
Hello Bernd, On Fri, 25 Aug 2023 18:24:41 +0200 Bernd Kuhls <bernd@kuhls.net> wrote: > the reason I am carrying this patch in my personal tree is maintenance of > a buildroot-based system which uses > > BR2_ROOTFS_DEVICE_CREATION_STATIC=y > > Without the libudev series I can not use packages like Kodi, and no, I can > not change the rootfs setting for this system, sorry. So you can apply complicated patches/changes, but you cannot adjust the configuration of your system to use eudev? This does not really sound like a very good/solid argument in favor of this patch series :-/ Especially when you have Kodi, the size difference between "just libudev" and "libudev + eudev" is insignificant compared to the size of Kodi. Thomas
Am Fri, 25 Aug 2023 19:05:32 +0200 schrieb Thomas Petazzoni via buildroot: > So you can apply complicated patches/changes, but you cannot adjust the > configuration of your system to use eudev? Hi, the init scripts of this system were created outside of buildroot and need a statically-populated /dev. As I said, changing the configuration is not possible, sorry. Due to upstream now supporting a daemon-less build I thought I try again to get this series into buildroot. One of your arguments from 2016 was the lack of upstream support for this feature: https://lists.buildroot.org/pipermail/buildroot/2016-July/470285.html We do not need to trick-around with the build system anymore, we just add an option to build the package in a way which is supported by upstream now. Regards, Bernd