Fathi Boudra <[email protected]> escreveu (terça, 9/04/2024 à(s)
08:54):

> Tools to handle creating and mounting composefs images
>
> Flexible mechanism to support read-only mountable filesystem trees,
> stacking on top of Linux filesystem.
>
> It will allow to enable filesystem integrity by leveraging the stack:
> ostree -> composefs -> fs-verity
>
> For reference:
>
> https://github.com/containers/composefs?tab=readme-ov-file#filesystem-integrity
> https://ostreedev.github.io/ostree/composefs/#using-composefs-with-ostree
>
> Signed-off-by: Fathi Boudra <[email protected]>
> ---
>
> Changes since v1:
>  * move the recipe to meta-filesystem due to fuse3 dependency.
>  * add a patch to support latest musl due to the basename function
>
> https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
>
>  .../composefs/composefs_1.0.3.bb              | 23 ++++++
>  ...e-portable-implementation-for-basena.patch | 75 +++++++++++++++++++
>  2 files changed, 98 insertions(+)
>  create mode 100644 meta-filesystems/recipes-support/composefs/
> composefs_1.0.3.bb
>  create mode 100644
> meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch
>
> diff --git a/meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb
> b/meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb
> new file mode 100644
> index 0000000000..7607b0a12c
> --- /dev/null
> +++ b/meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb
> @@ -0,0 +1,23 @@
> +SUMMARY = "Tools to handle creating and mounting composefs images"
> +HOMEPAGE = "https://github.com/containers/composefs";
> +LICENSE = "GPL-3.0-or-later & LGPL-2.0-or-later & Apache-2.0"
> +LIC_FILES_CHKSUM = "\
> +    file://BSD-2-Clause.txt;md5=121c8a0a8fa5961a26b7863034ebcce8 \
> +    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
> +    file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \
> +    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
> +    file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
> +    file://LICENSE.Apache-2.0;md5=3b83ef96387f14655fc854ddc3c6bd57 \
> +"
> +DEPENDS = "fuse3 openssl"
> +SRCREV = "2d5cdcb9176cfe4ccf1761ef6d78e1c48de35649"
> +PV = "1.0.3"
> +
> +SRC_URI = "\
> +    git://github.com/containers/composefs.git;protocol=https;branch=main
> \
> +
> file://0001-musl-basename-use-portable-implementation-for-basena.patch \
> +"
> +
> +S = "${WORKDIR}/git"
> +
> +inherit autotools pkgconfig
> diff --git
> a/meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch
> b/meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch
> new file mode 100644
> index 0000000000..49a0b21c6e
> --- /dev/null
> +++
> b/meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch
> @@ -0,0 +1,75 @@
> +From b21a9d4f10a066cac76bb345d31fdd24afcf3e6f Mon Sep 17 00:00:00 2001
> +From: Fathi Boudra <[email protected]>
> +Date: Tue, 9 Apr 2024 08:47:37 +0200
> +Subject: [PATCH] musl: basename: use portable implementation for basename
> API
> +
> +musl has removed the non-prototype declaration of basename from string.h
> which
> +now results in build errors with newer clang compilers.
> +
> +Implement GNU basename behavior using strchr which is portable across
> libcs.
> +
> +Fixes:
> +| ../../git/tools/mountcomposefs.c:43:20:
> +| error: call to undeclared function 'basename'; ISO C99 and later do not
> +| support implicit function declarations [-Wimplicit-function-declaration]
> +|    43 |         const char *bin = basename(argv0);
> +|       |                           ^
> +| ../../git/tools/mountcomposefs.c:43:14:
> +| error: incompatible integer to pointer conversion initializing 'const
> char *'
> +| with an expression of type 'int' [-Wint-conversion]
> +|    43 |         const char *bin = basename(argv0);
> +|       |                     ^     ~~~~~~~~~~~~~~~
> +
> +For reference:
> +
> https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
> +
> +Closes: https://github.com/containers/composefs/issues/272
> +
> +Signed-off-by: Fathi Boudra <[email protected]>
> +
> +Upstream-Status: Submitted [
> https://github.com/containers/composefs/pull/273]
> +---
> + libcomposefs/lcfs-utils.h |    6 ++++++
> + tools/mkcomposefs.c       |    2 +-
> + tools/mountcomposefs.c    |    3 ++-
> + 3 files changed, 9 insertions(+), 2 deletions(-)
> +
> +--- a/tools/mountcomposefs.c
> ++++ b/tools/mountcomposefs.c
> +@@ -37,10 +37,11 @@
> + #include <linux/fsverity.h>
> +
> + #include "libcomposefs/lcfs-mount.h"
> ++#include "libcomposefs/lcfs-utils.h"
>

Hi Fathi,

Maybe just the #include <libgen.h> can do the job.

It includes the posix implementation of the basename
https://man7.org/linux/man-pages/man0/libgen.h.0p.html

Added the same comment on the github PR.

Jose

+
> + static void usage(const char *argv0)
> + {
> +-      const char *bin = basename(argv0);
> ++      const char *bin = gnu_basename(argv0);
> +       fprintf(stderr,
> +               "usage: %s [-t type] [-o opt[,opts..]] IMAGE MOUNTPOINT\n"
> +               "Example:\n"
> +--- a/libcomposefs/lcfs-utils.h
> ++++ b/libcomposefs/lcfs-utils.h
> +@@ -161,4 +161,10 @@ static inline void *steal_pointer(void *
> + /* type safety */
> + #define steal_pointer(pp) (0 ? (*(pp)) : (steal_pointer)(pp))
> +
> ++static inline const char *gnu_basename(const char *filename)
> ++{
> ++      const char *p = strrchr(filename, '/');
> ++      return p ? p+1 : filename;
> ++}
> ++
> + #endif
> +--- a/tools/mkcomposefs.c
> ++++ b/tools/mkcomposefs.c
> +@@ -315,7 +315,7 @@ static int fill_store(struct lcfs_node_s
> +
> + static void usage(const char *argv0)
> + {
> +-      const char *bin = basename(argv0);
> ++      const char *bin = gnu_basename(argv0);
> +       fprintf(stderr,
> +               "Usage: %s [OPTIONS] SOURCE IMAGE\n"
> +               "Options:\n"
> --
> 2.43.0
>
>
> 
>
>

-- 
Best regards,

José Quaresma
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#109877): 
https://lists.openembedded.org/g/openembedded-devel/message/109877
Mute This Topic: https://lists.openembedded.org/mt/105417917/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to