* [Buildroot] [PATCH 0/2] Add bcachefs-tools package
@ 2024-04-08 1:38 Matt Staveley-Taylor
2024-04-08 1:38 ` [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives Matt Staveley-Taylor
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Matt Staveley-Taylor @ 2024-04-08 1:38 UTC (permalink / raw)
To: buildroot; +Cc: Matt Staveley-Taylor, Thomas Petazzoni
This patch series adds a new bcachefs-tools package: the userspace tools
for the bcachefs filesystem [1].
The tarballs are only provided with zstd compression, so we first add
support for decompressing these in the package infrastructure.
Note that this does *not* teach buildroot how to format bcachefs
filesystems, as bcachefs-tools currently lacks the ability to do this
without root privileges (see [2]). I have local patches ready for when
this feature is implemented.
This package depends on host-clang to provide libclang, which is used to
generate C <-> Rust bindings. libudev is also required, which means
systemd is needed. Unfortunately these large dependencies seem to result
in utils/test-pkg -p bcachefs-tools -a reporting all toolchains SKIPPED.
(Apologies to Thomas -- re-sending because I wasn't subscribed to the
mailing list and my mail was rejected :)
[1]: https://bcachefs.org/
[2]: https://github.com/koverstreet/bcachefs-tools/issues/164
Matt Staveley-Taylor (2):
package: add support for extracting zstd archives
package/bcachefs-tools: new package
Config.in | 7 ++++++
DEVELOPERS | 3 +++
Makefile | 1 +
package/Config.in | 1 +
package/bcachefs-tools/Config.in | 26 ++++++++++++++++++++++
package/bcachefs-tools/bcachefs-tools.hash | 2 ++
package/bcachefs-tools/bcachefs-tools.mk | 23 +++++++++++++++++++
package/pkg-utils.mk | 2 ++
support/dependencies/check-host-zstd.mk | 4 ++++
support/dependencies/check-host-zstd.sh | 14 ++++++++++++
10 files changed, 83 insertions(+)
create mode 100644 package/bcachefs-tools/Config.in
create mode 100644 package/bcachefs-tools/bcachefs-tools.hash
create mode 100644 package/bcachefs-tools/bcachefs-tools.mk
create mode 100644 support/dependencies/check-host-zstd.mk
create mode 100755 support/dependencies/check-host-zstd.sh
--
2.44.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 11+ messages in thread* [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives 2024-04-08 1:38 [Buildroot] [PATCH 0/2] Add bcachefs-tools package Matt Staveley-Taylor @ 2024-04-08 1:38 ` Matt Staveley-Taylor 2024-07-14 20:48 ` Thomas Petazzoni via buildroot 2024-04-08 1:38 ` [Buildroot] [PATCH 2/2] package/bcachefs-tools: new package Matt Staveley-Taylor 2024-04-08 20:54 ` [Buildroot] [PATCH 0/2] Add bcachefs-tools package Thomas Petazzoni via buildroot 2 siblings, 1 reply; 11+ messages in thread From: Matt Staveley-Taylor @ 2024-04-08 1:38 UTC (permalink / raw) To: buildroot; +Cc: Matt Staveley-Taylor, Thomas Petazzoni Teach the generic package handling code how to extract zstd (.tar.zst) archives. When zstd is not installed on the host, host-zstd gets built automatically. Signed-off-by: Matt Staveley-Taylor <matt.stav.taylor@gmail.com> --- Config.in | 7 +++++++ Makefile | 1 + package/pkg-utils.mk | 2 ++ support/dependencies/check-host-zstd.mk | 4 ++++ support/dependencies/check-host-zstd.sh | 14 ++++++++++++++ 5 files changed, 28 insertions(+) create mode 100644 support/dependencies/check-host-zstd.mk create mode 100755 support/dependencies/check-host-zstd.sh diff --git a/Config.in b/Config.in index e4f58f3f66..13514b78c9 100644 --- a/Config.in +++ b/Config.in @@ -173,6 +173,13 @@ config BR2_LZCAT Command to be used to extract a lzip'ed file to stdout. Default is "lzip -d -c" +config BR2_ZSTDCAT + string "zstdcat command" + default "zstdcat" + help + Command to be used to extract a zstd'ed file to stdout. + Default is "zstdcat" + config BR2_TAR_OPTIONS string "Tar options" default "" diff --git a/Makefile b/Makefile index d1caec63b5..a9840abe95 100644 --- a/Makefile +++ b/Makefile @@ -444,6 +444,7 @@ ZCAT := $(call qstrip,$(BR2_ZCAT)) BZCAT := $(call qstrip,$(BR2_BZCAT)) XZCAT := $(call qstrip,$(BR2_XZCAT)) LZCAT := $(call qstrip,$(BR2_LZCAT)) +ZSTDCAT := $(call qstrip,$(BR2_ZSTDCAT)) TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk index 6181ae7a99..5cc44c8b5c 100644 --- a/package/pkg-utils.mk +++ b/package/pkg-utils.mk @@ -59,6 +59,7 @@ INFLATE.tbz = $(BZCAT) INFLATE.tbz2 = $(BZCAT) INFLATE.tgz = $(ZCAT) INFLATE.xz = $(XZCAT) +INFLATE.zst = $(ZSTDCAT) INFLATE.tar = cat # suitable-extractor(filename): returns extractor based on suffix suitable-extractor = $(INFLATE$(suffix $(1))) @@ -66,6 +67,7 @@ suitable-extractor = $(INFLATE$(suffix $(1))) EXTRACTOR_PKG_DEPENDENCY.lzma = $(BR2_XZCAT_HOST_DEPENDENCY) EXTRACTOR_PKG_DEPENDENCY.xz = $(BR2_XZCAT_HOST_DEPENDENCY) EXTRACTOR_PKG_DEPENDENCY.lz = $(BR2_LZIP_HOST_DEPENDENCY) +EXTRACTOR_PKG_DEPENDENCY.zst = $(BR2_ZSTD_HOST_DEPENDENCY) # extractor-pkg-dependency(filename): returns a Buildroot package # dependency needed to extract file based on suffix diff --git a/support/dependencies/check-host-zstd.mk b/support/dependencies/check-host-zstd.mk new file mode 100644 index 0000000000..fa595ef201 --- /dev/null +++ b/support/dependencies/check-host-zstd.mk @@ -0,0 +1,4 @@ +ifeq (,$(call suitable-host-package,zstd,$(ZSTDCAT))) +BR2_ZSTD_HOST_DEPENDENCY = host-zstd +ZSTDCAT = $(HOST_DIR)/bin/zstdcat +endif diff --git a/support/dependencies/check-host-zstd.sh b/support/dependencies/check-host-zstd.sh new file mode 100755 index 0000000000..81602497ff --- /dev/null +++ b/support/dependencies/check-host-zstd.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +candidate="$1" + +zstdcat=`which $candidate 2>/dev/null` +if [ ! -x "$zstdcat" ]; then + zstdcat=`which zstdcat 2>/dev/null` + if [ ! -x "$zstdcat" ]; then + # echo nothing: no suitable zstdcat found + exit 1 + fi +fi + +echo $zstdcat -- 2.44.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives 2024-04-08 1:38 ` [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives Matt Staveley-Taylor @ 2024-07-14 20:48 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 11+ messages in thread From: Thomas Petazzoni via buildroot @ 2024-07-14 20:48 UTC (permalink / raw) To: Matt Staveley-Taylor; +Cc: buildroot On Mon, 8 Apr 2024 02:38:44 +0100 Matt Staveley-Taylor <matt.stav.taylor@gmail.com> wrote: > Teach the generic package handling code how to extract zstd (.tar.zst) > archives. When zstd is not installed on the host, host-zstd gets built > automatically. > > Signed-off-by: Matt Staveley-Taylor <matt.stav.taylor@gmail.com> > --- > Config.in | 7 +++++++ > Makefile | 1 + > package/pkg-utils.mk | 2 ++ > support/dependencies/check-host-zstd.mk | 4 ++++ > support/dependencies/check-host-zstd.sh | 14 ++++++++++++++ > 5 files changed, 28 insertions(+) > create mode 100644 support/dependencies/check-host-zstd.mk > create mode 100755 support/dependencies/check-host-zstd.sh Sorry for the long delay in getting back to you. I have now applied this patch, after fixing the "shellcheck" issues reported on the shell script. Thanks! Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* [Buildroot] [PATCH 2/2] package/bcachefs-tools: new package 2024-04-08 1:38 [Buildroot] [PATCH 0/2] Add bcachefs-tools package Matt Staveley-Taylor 2024-04-08 1:38 ` [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives Matt Staveley-Taylor @ 2024-04-08 1:38 ` Matt Staveley-Taylor 2024-07-14 20:56 ` Thomas Petazzoni via buildroot 2024-04-08 20:54 ` [Buildroot] [PATCH 0/2] Add bcachefs-tools package Thomas Petazzoni via buildroot 2 siblings, 1 reply; 11+ messages in thread From: Matt Staveley-Taylor @ 2024-04-08 1:38 UTC (permalink / raw) To: buildroot; +Cc: Matt Staveley-Taylor, Thomas Petazzoni Add the bcachefs-tools package. Note that this does not teach buildroot how to create bcachefs filesystems. Signed-off-by: Matt Staveley-Taylor <matt.stav.taylor@gmail.com> --- DEVELOPERS | 3 +++ package/Config.in | 1 + package/bcachefs-tools/Config.in | 26 ++++++++++++++++++++++ package/bcachefs-tools/bcachefs-tools.hash | 2 ++ package/bcachefs-tools/bcachefs-tools.mk | 23 +++++++++++++++++++ 5 files changed, 55 insertions(+) create mode 100644 package/bcachefs-tools/Config.in create mode 100644 package/bcachefs-tools/bcachefs-tools.hash create mode 100644 package/bcachefs-tools/bcachefs-tools.mk diff --git a/DEVELOPERS b/DEVELOPERS index d78661cd60..d523b441ac 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2172,6 +2172,9 @@ F: package/ts4900-fpga/ N: Matt Silva <dev@matt-silva.com> F: package/rlwrap/ +N: Matt Staveley-Taylor <matt.stav.taylor@gmail.com> +F: package/bcachefs-tools/ + N: Mauro Condarelli <mc5686@mclink.it> F: package/mc/ F: package/python-autobahn/ diff --git a/package/Config.in b/package/Config.in index 0d31faf354..92de263349 100644 --- a/package/Config.in +++ b/package/Config.in @@ -213,6 +213,7 @@ menu "Filesystem and flash utilities" source "package/aufs/Config.in" source "package/aufs-util/Config.in" source "package/autofs/Config.in" + source "package/bcachefs-tools/Config.in" source "package/bmap-tools/Config.in" source "package/btrfs-progs/Config.in" source "package/cifs-utils/Config.in" diff --git a/package/bcachefs-tools/Config.in b/package/bcachefs-tools/Config.in new file mode 100644 index 0000000000..2c7cbcf406 --- /dev/null +++ b/package/bcachefs-tools/Config.in @@ -0,0 +1,26 @@ +config BR2_PACKAGE_BCACHEFS_TOOLS + bool "bcachefs-tools" + depends on BR2_USE_MMU # util-linux + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_HAS_UDEV + select BR2_PACKAGE_KEYUTILS + select BR2_PACKAGE_LIBAIO + select BR2_PACKAGE_LIBSODIUM + select BR2_PACKAGE_LIBURCU + select BR2_PACKAGE_LZ4 + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBBLKID + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_ZSTD + help + Bcachefs filesystem utilities + + https://bcachefs.org/ + +comment "bcachefs-tools needs udev" + depends on !BR2_PACKAGE_HAS_UDEV + +comment "bcachefs-tools needs a toolchain w/ threads" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/bcachefs-tools/bcachefs-tools.hash b/package/bcachefs-tools/bcachefs-tools.hash new file mode 100644 index 0000000000..def2762bea --- /dev/null +++ b/package/bcachefs-tools/bcachefs-tools.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 f2125c10494e484611e77a32c301e1cbd5cf6f247808cf1c2c7987c68c7ebd8c bcachefs-tools-vendored-1.6.4.tar.zst diff --git a/package/bcachefs-tools/bcachefs-tools.mk b/package/bcachefs-tools/bcachefs-tools.mk new file mode 100644 index 0000000000..1a4ca15e8d --- /dev/null +++ b/package/bcachefs-tools/bcachefs-tools.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# bcachefs-tools +# +################################################################################ + +BCACHEFS_TOOLS_VERSION = 1.6.4 +BCACHEFS_TOOLS_SOURCE = bcachefs-tools-vendored-$(BCACHEFS_TOOLS_VERSION).tar.zst +BCACHEFS_TOOLS_SITE = https://evilpiepirate.org/bcachefs-tools +BCACHEFS_TOOLS_LICENSE = GPL-2.0 +BCACHEFS_TOOLS_LICENSE_FILES = COPYING +BCACHEFS_TOOLS_DEPENDENCIES = host-rustc host-clang keyutils libaio libsodium liburcu lz4 udev util-linux zlib zstd + +define BCACHEFS_TOOLS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define BCACHEFS_TOOLS_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" PREFIX=/usr install +endef + +$(eval $(generic-package)) +$(eval $(host-generic-package)) -- 2.44.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 2/2] package/bcachefs-tools: new package 2024-04-08 1:38 ` [Buildroot] [PATCH 2/2] package/bcachefs-tools: new package Matt Staveley-Taylor @ 2024-07-14 20:56 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 11+ messages in thread From: Thomas Petazzoni via buildroot @ 2024-07-14 20:56 UTC (permalink / raw) To: Matt Staveley-Taylor; +Cc: buildroot Hello, On Mon, 8 Apr 2024 02:38:45 +0100 Matt Staveley-Taylor <matt.stav.taylor@gmail.com> wrote: > Add the bcachefs-tools package. Note that this does not teach buildroot > how to create bcachefs filesystems. > > Signed-off-by: Matt Staveley-Taylor <matt.stav.taylor@gmail.com> I wanted to apply this, but unfortunately, there is a major issue in your package: it doesn't actually cross-compile. Indeed, when you do: $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) nothing tells the build system that it should use the cross-compiler. And indeed it doesn't: it compiles everything with "cc". On my system, it fails because I don't have liburcu installed system-wide, so it couldn't include urcu/list.h. The canonical way to cross-compile Makefile-based packages is to do: $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) where TARGET_CONFIGURE_OPTS is provided by Buildroot, and contains CC, LD, CFLAGS, etc. which are correct for cross-compilation. Unfortunately, passing this makes the build of this package to fail horribly. I have made many more changes in your package, you will find my latest version at: https://github.com/tpetazzoni/buildroot/commit/1d1a29b7fedcb9287afd98c2d8a6618af2b6e2df I will comment below on the things that I have fixed. > diff --git a/package/bcachefs-tools/Config.in b/package/bcachefs-tools/Config.in > new file mode 100644 > index 0000000000..2c7cbcf406 > --- /dev/null > +++ b/package/bcachefs-tools/Config.in > @@ -0,0 +1,26 @@ > +config BR2_PACKAGE_BCACHEFS_TOOLS > + bool "bcachefs-tools" > + depends on BR2_USE_MMU # util-linux > + depends on BR2_TOOLCHAIN_HAS_THREADS > + depends on BR2_PACKAGE_HAS_UDEV You missed several dependencies of the packages you select. Basically for every package you select, you need to check if it has "depends on" and replicate them. The final code I had looks like this: depends on BR2_USE_MMU # util-linux, keyutils depends on BR2_TOOLCHAIN_HAS_THREADS # liburcu depends on !BR2_STATIC_LIBS # keyutils depends on BR2_PACKAGE_HAS_UDEV depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP # liburcu > + select BR2_PACKAGE_KEYUTILS > + select BR2_PACKAGE_LIBAIO > + select BR2_PACKAGE_LIBSODIUM > + select BR2_PACKAGE_LIBURCU > + select BR2_PACKAGE_LZ4 > + select BR2_PACKAGE_UTIL_LINUX > + select BR2_PACKAGE_UTIL_LINUX_LIBBLKID > + select BR2_PACKAGE_UTIL_LINUX_LIBUUID > + select BR2_PACKAGE_ZLIB > + select BR2_PACKAGE_ZSTD > + help > + Bcachefs filesystem utilities > + > + https://bcachefs.org/ > + > +comment "bcachefs-tools needs udev" > + depends on !BR2_PACKAGE_HAS_UDEV > + > +comment "bcachefs-tools needs a toolchain w/ threads" > + depends on BR2_USE_MMU > + depends on !BR2_TOOLCHAIN_HAS_THREADS So these need to be updated as well: comment "bcachefs-tools needs udev" depends on BR2_USE_MMU depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_PACKAGE_HAS_UDEV comment "bcachefs-tools needs a toolchain w/ threads, C++, dynamic library" depends on BR2_USE_MMU depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || \ BR2_STATIC_LIBS || \ !BR2_INSTALL_LIBSTDCPP > diff --git a/package/bcachefs-tools/bcachefs-tools.hash b/package/bcachefs-tools/bcachefs-tools.hash > new file mode 100644 > index 0000000000..def2762bea > --- /dev/null > +++ b/package/bcachefs-tools/bcachefs-tools.hash > @@ -0,0 +1,2 @@ > +# Locally computed > +sha256 f2125c10494e484611e77a32c301e1cbd5cf6f247808cf1c2c7987c68c7ebd8c bcachefs-tools-vendored-1.6.4.tar.zst You have forgotten the hash of the license file. But I had forgotten as well. > diff --git a/package/bcachefs-tools/bcachefs-tools.mk b/package/bcachefs-tools/bcachefs-tools.mk > new file mode 100644 > index 0000000000..1a4ca15e8d > --- /dev/null > +++ b/package/bcachefs-tools/bcachefs-tools.mk > @@ -0,0 +1,23 @@ > +################################################################################ > +# > +# bcachefs-tools > +# > +################################################################################ > + > +BCACHEFS_TOOLS_VERSION = 1.6.4 > +BCACHEFS_TOOLS_SOURCE = bcachefs-tools-vendored-$(BCACHEFS_TOOLS_VERSION).tar.zst > +BCACHEFS_TOOLS_SITE = https://evilpiepirate.org/bcachefs-tools > +BCACHEFS_TOOLS_LICENSE = GPL-2.0 > +BCACHEFS_TOOLS_LICENSE_FILES = COPYING > +BCACHEFS_TOOLS_DEPENDENCIES = host-rustc host-clang keyutils libaio libsodium liburcu lz4 udev util-linux zlib zstd That line was a bit too long, so I split it with one package per line. > + > +define BCACHEFS_TOOLS_BUILD_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) This probably needs $(TARGET_CONFIGURE_OPTS) as discussed above. > +endef > + > +define BCACHEFS_TOOLS_INSTALL_TARGET_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" PREFIX=/usr install Likewise. > +endef > + > +$(eval $(generic-package)) > +$(eval $(host-generic-package)) The host-generic-package is to create host packages (compiled natively), and it isn't used anywhere here, so I dropped this line. Only generic-package is needed to create a target package (cross-compiled for the target). Here is a Buildroot configuration that couldn't build your package: 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_BCACHEFS_TOOLS=y # BR2_TARGET_ROOTFS_TAR is not set In order to validate your package, make sure it builds with the following sequence: $ make clean $ cat > .config <<EOF 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_BCACHEFS_TOOLS=y # BR2_TARGET_ROOTFS_TAR is not set EOF $ ./utils/docker-run make olddefconfig $ ./utils/docker-run make Could you have a look and submit a v2 which fixes this problem? No need to resent your PATCH 1/2 as I applied it to master. Thanks! Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 0/2] Add bcachefs-tools package 2024-04-08 1:38 [Buildroot] [PATCH 0/2] Add bcachefs-tools package Matt Staveley-Taylor 2024-04-08 1:38 ` [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives Matt Staveley-Taylor 2024-04-08 1:38 ` [Buildroot] [PATCH 2/2] package/bcachefs-tools: new package Matt Staveley-Taylor @ 2024-04-08 20:54 ` Thomas Petazzoni via buildroot 2024-04-09 22:43 ` Matt Staveley-Taylor 2 siblings, 1 reply; 11+ messages in thread From: Thomas Petazzoni via buildroot @ 2024-04-08 20:54 UTC (permalink / raw) To: Matt Staveley-Taylor; +Cc: buildroot Hello Matt, On Mon, 8 Apr 2024 02:38:43 +0100 Matt Staveley-Taylor <matt.stav.taylor@gmail.com> wrote: > This patch series adds a new bcachefs-tools package: the userspace tools > for the bcachefs filesystem [1]. Thanks a lot for working on this! > This package depends on host-clang to provide libclang, which is used to > generate C <-> Rust bindings. But do we need to unconditionally compile the C <-> Rust bindings? Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 0/2] Add bcachefs-tools package 2024-04-08 20:54 ` [Buildroot] [PATCH 0/2] Add bcachefs-tools package Thomas Petazzoni via buildroot @ 2024-04-09 22:43 ` Matt Staveley-Taylor 2024-04-10 9:30 ` Thomas Petazzoni via buildroot 0 siblings, 1 reply; 11+ messages in thread From: Matt Staveley-Taylor @ 2024-04-09 22:43 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: buildroot On Mon Apr 8, 2024 at 9:54 PM BST, Thomas Petazzoni wrote: > On Mon, 8 Apr 2024 02:38:43 +0100 > Matt Staveley-Taylor <matt.stav.taylor@gmail.com> wrote: > > This package depends on host-clang to provide libclang, which is used to > > generate C <-> Rust bindings. > > But do we need to unconditionally compile the C <-> Rust bindings? The main binary and some of the subcommands are written in Rust, but most of them are written in C. The Rust main calls into the C subcommands using a tool called bindgen which generates Rust glue to interface with the C code. So unfortunately I don't see a good way to avoid building host-clang here. Matt _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 0/2] Add bcachefs-tools package 2024-04-09 22:43 ` Matt Staveley-Taylor @ 2024-04-10 9:30 ` Thomas Petazzoni via buildroot 2024-04-11 1:32 ` Matt Staveley-Taylor 0 siblings, 1 reply; 11+ messages in thread From: Thomas Petazzoni via buildroot @ 2024-04-10 9:30 UTC (permalink / raw) To: Matt Staveley-Taylor; +Cc: buildroot Hello Matt, On Tue, 09 Apr 2024 23:43:29 +0100 "Matt Staveley-Taylor" <matt.stav.taylor@gmail.com> wrote: > The main binary and some of the subcommands are written in Rust, but > most of them are written in C. The Rust main calls into the C > subcommands using a tool called bindgen which generates Rust glue to > interface with the C code. > > So unfortunately I don't see a good way to avoid building host-clang > here. Indeed, not much we can do then. Thing is that host-clang is extremely long to build, obviously... Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 0/2] Add bcachefs-tools package 2024-04-10 9:30 ` Thomas Petazzoni via buildroot @ 2024-04-11 1:32 ` Matt Staveley-Taylor 2024-04-11 12:48 ` Thomas Petazzoni via buildroot 0 siblings, 1 reply; 11+ messages in thread From: Matt Staveley-Taylor @ 2024-04-11 1:32 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: buildroot On Wed Apr 10, 2024 at 10:30 AM BST, Thomas Petazzoni wrote: > Indeed, not much we can do then. Thing is that host-clang is extremely > long to build, obviously... I noticed that host-rust downloads a pre-built binary from somewhere. Is there a possibility to do the same for host-clang? Or how do you want to proceed here? Matt _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 0/2] Add bcachefs-tools package 2024-04-11 1:32 ` Matt Staveley-Taylor @ 2024-04-11 12:48 ` Thomas Petazzoni via buildroot 2024-04-11 22:51 ` Matt Staveley-Taylor 0 siblings, 1 reply; 11+ messages in thread From: Thomas Petazzoni via buildroot @ 2024-04-11 12:48 UTC (permalink / raw) To: Matt Staveley-Taylor; +Cc: buildroot Hello Matt, On Thu, 11 Apr 2024 02:32:24 +0100 "Matt Staveley-Taylor" <matt.stav.taylor@gmail.com> wrote: > I noticed that host-rust downloads a pre-built binary from somewhere. Is > there a possibility to do the same for host-clang? Or how do you want to > proceed here? It seems that https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.1 has pre-built binaries, but not for the very common x86-64 linux host platform, which seems odd? Apparently, those binaries are made by volunteers. Not sure how much we want to use those binaries. Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Buildroot] [PATCH 0/2] Add bcachefs-tools package 2024-04-11 12:48 ` Thomas Petazzoni via buildroot @ 2024-04-11 22:51 ` Matt Staveley-Taylor 0 siblings, 0 replies; 11+ messages in thread From: Matt Staveley-Taylor @ 2024-04-11 22:51 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: buildroot On Thu Apr 11, 2024 at 1:48 PM BST, Thomas Petazzoni wrote: > It seems that > https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.1 has > pre-built binaries, but not for the very common x86-64 linux host > platform, which seems odd? Apparently, those binaries are made by > volunteers. Not sure how much we want to use those binaries. Yeah, agreed. Perhaps there is some Buildroot infrastructure we can leverage for building these ourselves? Failing that -- is there actually a problem with merging the patch as-is? I can see a couple of other packages that already depend on host-clang. Matt _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-07-14 20:56 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-08 1:38 [Buildroot] [PATCH 0/2] Add bcachefs-tools package Matt Staveley-Taylor 2024-04-08 1:38 ` [Buildroot] [PATCH 1/2] package: add support for extracting zstd archives Matt Staveley-Taylor 2024-07-14 20:48 ` Thomas Petazzoni via buildroot 2024-04-08 1:38 ` [Buildroot] [PATCH 2/2] package/bcachefs-tools: new package Matt Staveley-Taylor 2024-07-14 20:56 ` Thomas Petazzoni via buildroot 2024-04-08 20:54 ` [Buildroot] [PATCH 0/2] Add bcachefs-tools package Thomas Petazzoni via buildroot 2024-04-09 22:43 ` Matt Staveley-Taylor 2024-04-10 9:30 ` Thomas Petazzoni via buildroot 2024-04-11 1:32 ` Matt Staveley-Taylor 2024-04-11 12:48 ` Thomas Petazzoni via buildroot 2024-04-11 22:51 ` Matt Staveley-Taylor
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox