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]] -=-=-=-=-=-=-=-=-=-=-=-
