All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] build: support building static library
@ 2024-05-23  7:31 ComixHe
  2024-05-23  8:05 ` Gao Xiang
  2024-06-06  4:18 ` [PATCH] build: support building static library liberofsfuse ComixHe
  0 siblings, 2 replies; 16+ messages in thread
From: ComixHe @ 2024-05-23  7:31 UTC (permalink / raw)
  To: hsiangkao; +Cc: ComixHe, linux-erofs

In some cases, developer may need to integrate erofs-utils into their
proejct as a static library to reduce package dependencies and
have more finer control over the feature used by the project.

For exapmle, squashfuse provides a static library `libsquashfuse.a` and
exposes some useful functions, Appimage uses this static library to build
image. It could ensure that the executable image can be executed directly
on most linux platforms and the user doesn't need to install squashfuse
in order to execute the image.

Signed-off-by: ComixHe <heyuming@deepin.org>
---
 configure.ac     | 28 ++++++++++++++++++++++++++++
 dump/Makefile.am | 10 ++++++++++
 fsck/Makefile.am | 10 ++++++++++
 fuse/Makefile.am | 10 ++++++++++
 mkfs/Makefile.am | 10 ++++++++++
 5 files changed, 68 insertions(+)

diff --git a/configure.ac b/configure.ac
index 1989bca..16ddb7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
    [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
    [enable_fuse="$enableval"], [enable_fuse="no"])
 
+AC_ARG_ENABLE([static-fuse],
+    [AS_HELP_STRING([--enable-static-fuse],
+                    [build erofsfuse as a static library @<:@default=no@:>@])],
+    [enable_static_fuse="$enableval"],
+    [enable_static_fuse="no"])
+
+AC_ARG_ENABLE([static-dump],
+    [AS_HELP_STRING([--enable-static-dump],
+                    [build dump.erofs as a static library @<:@default=no@:>@])],
+    [enable_static_dump="$enableval"],
+    [enable_static_dump="no"])
+
+AC_ARG_ENABLE([static-mkfs],
+    [AS_HELP_STRING([--enable-static-mkfs],
+                    [build mkfs.erofs as a static library @<:@default=no@:>@])],
+    [enable_static_mkfs="$enableval"],
+    [enable_static_mkfs="no"])
+
+AC_ARG_ENABLE([static-fsck],
+    [AS_HELP_STRING([--enable-static-fsck],
+                    [build fsck.erofs as a static library @<:@default=no@:>@])],
+    [enable_static_fsck="$enableval"],
+    [enable_static_fsck="no"])
+
 AC_ARG_WITH(uuid,
    [AS_HELP_STRING([--without-uuid],
       [Ignore presence of libuuid and disable uuid support @<:@default=enabled@:>@])])
@@ -525,6 +549,10 @@ AM_CONDITIONAL([ENABLE_FUSE], [test "x${have_fuse}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBLZMA], [test "x${have_liblzma}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBDEFLATE], [test "x${have_libdeflate}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBZSTD], [test "x${have_libzstd}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_MKFS], [test "x${enable_static_mkfs}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_DUMP], [test "x${enable_static_dump}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_FSCK], [test "x${enable_static_fsck}" = "xyes"])
 
 if test "x$have_uuid" = "xyes"; then
   AC_DEFINE([HAVE_LIBUUID], 1, [Define to 1 if libuuid is found])
diff --git a/dump/Makefile.am b/dump/Makefile.am
index 09c483e..da0df51 100644
--- a/dump/Makefile.am
+++ b/dump/Makefile.am
@@ -9,3 +9,13 @@ dump_erofs_CFLAGS = -Wall -I$(top_srcdir)/include
 dump_erofs_LDADD = $(top_builddir)/lib/liberofs.la ${libselinux_LIBS} \
 	${liblz4_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} \
 	${libzstd_LIBS}
+
+if ENABLE_STATIC_DUMP
+lib_LTLIBRARIES     = libdumperofs.la
+libdumperofs_la_SOURCES = main.c
+libdumperofs_la_CFLAGS = -Wall -I$(top_srcdir)/include
+libdumperofs_la_CFLAGS += -Dmain=dumperofs_main -static
+libdumperofs_la_LIBADD = $(top_builddir)/lib/liberofs.la ${libselinux_LIBS} \
+	${liblz4_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} \
+	${libzstd_LIBS}
+endif
diff --git a/fsck/Makefile.am b/fsck/Makefile.am
index 70eacc0..0916320 100644
--- a/fsck/Makefile.am
+++ b/fsck/Makefile.am
@@ -10,6 +10,16 @@ fsck_erofs_LDADD = $(top_builddir)/lib/liberofs.la ${libselinux_LIBS} \
 	${liblz4_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} \
 	${libzstd_LIBS}
 
+if ENABLE_STATIC_FSCK
+lib_LTLIBRARIES    = libfsckerofs.la
+libfsckerofs_la_SOURCES = main.c
+libfsckerofs_la_CFLAGS = -Wall -I$(top_srcdir)/include
+libfsckerofs_la_CFLAGS += -Dmain=fsckerofs_main -static
+libfsckerofs_la_LIBADD = $(top_builddir)/lib/liberofs.la ${libselinux_LIBS} \
+	${liblz4_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} \
+	${libzstd_LIBS}
+endif
+
 if ENABLE_FUZZING
 noinst_PROGRAMS   = fuzz_erofsfsck
 fuzz_erofsfsck_SOURCES = main.c
diff --git a/fuse/Makefile.am b/fuse/Makefile.am
index 7eae5f6..120d3e1 100644
--- a/fuse/Makefile.am
+++ b/fuse/Makefile.am
@@ -8,3 +8,13 @@ erofsfuse_CFLAGS = -Wall -I$(top_srcdir)/include
 erofsfuse_CFLAGS += ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
 erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
 	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
+
+
+if ENABLE_STATIC_FUSE
+lib_LTLIBRARIES = liberofsfuse.la
+liberofsfuse_la_SOURCES = main.c
+liberofsfuse_la_CFLAGS  = -Wall -I$(top_srcdir)/include
+liberofsfuse_la_CFLAGS += -Dmain=erofsfuse_main -static ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
+liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
+	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
+endif
diff --git a/mkfs/Makefile.am b/mkfs/Makefile.am
index af97e39..6edcdda 100644
--- a/mkfs/Makefile.am
+++ b/mkfs/Makefile.am
@@ -8,3 +8,13 @@ mkfs_erofs_CFLAGS = -Wall -I$(top_srcdir)/include
 mkfs_erofs_LDADD = $(top_builddir)/lib/liberofs.la ${libselinux_LIBS} \
 	${libuuid_LIBS} ${liblz4_LIBS} ${liblzma_LIBS} ${zlib_LIBS} \
 	${libdeflate_LIBS} ${libzstd_LIBS}
+
+if ENABLE_STATIC_MKFS
+lib_LTLIBRARIES     = libmkerofs.la
+libmkerofs_la_SOURCES = main.c
+libmkerofs_la_CFLAGS = -Wall -I$(top_srcdir)/include
+libmkerofs_la_CFLAGS += -Dmain=mkerofs_main -static
+libmkerofs_la_LIBADD = $(top_builddir)/lib/liberofs.la ${libselinux_LIBS} \
+	${libuuid_LIBS} ${liblz4_LIBS} ${liblzma_LIBS} ${zlib_LIBS} \
+	${libdeflate_LIBS} ${libzstd_LIBS}
+endif
-- 
2.45.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-05-23  7:31 [PATCH] build: support building static library ComixHe
@ 2024-05-23  8:05 ` Gao Xiang
  2024-06-06  2:13   ` Chen Linxuan
  2024-06-06  4:18 ` [PATCH] build: support building static library liberofsfuse ComixHe
  1 sibling, 1 reply; 16+ messages in thread
From: Gao Xiang @ 2024-05-23  8:05 UTC (permalink / raw)
  To: ComixHe; +Cc: linux-erofs

Hi Comix!

On 2024/5/23 15:31, ComixHe wrote:
> In some cases, developer may need to integrate erofs-utils into their
> proejct as a static library to reduce package dependencies and
> have more finer control over the feature used by the project.

Thanks for sharing this.

> 
> For exapmle, squashfuse provides a static library `libsquashfuse.a` and
> exposes some useful functions, Appimage uses this static library to build
> image. It could ensure that the executable image can be executed directly
> on most linux platforms and the user doesn't need to install squashfuse
> in order to execute the image.
> 
> Signed-off-by: ComixHe <heyuming@deepin.org>
> ---
>   configure.ac     | 28 ++++++++++++++++++++++++++++
>   dump/Makefile.am | 10 ++++++++++
>   fsck/Makefile.am | 10 ++++++++++
>   fuse/Makefile.am | 10 ++++++++++
>   mkfs/Makefile.am | 10 ++++++++++
>   5 files changed, 68 insertions(+)
> 
> diff --git a/configure.ac b/configure.ac
> index 1989bca..16ddb7c 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
>      [enable_fuse="$enableval"], [enable_fuse="no"])
>   
> +AC_ARG_ENABLE([static-fuse],
> +    [AS_HELP_STRING([--enable-static-fuse],
> +                    [build erofsfuse as a static library @<:@default=no@:>@])],
> +    [enable_static_fuse="$enableval"],
> +    [enable_static_fuse="no"])
> +
> +AC_ARG_ENABLE([static-dump],
> +    [AS_HELP_STRING([--enable-static-dump],
> +                    [build dump.erofs as a static library @<:@default=no@:>@])],
> +    [enable_static_dump="$enableval"],
> +    [enable_static_dump="no"])
> +
> +AC_ARG_ENABLE([static-mkfs],
> +    [AS_HELP_STRING([--enable-static-mkfs],
> +                    [build mkfs.erofs as a static library @<:@default=no@:>@])],
> +    [enable_static_mkfs="$enableval"],
> +    [enable_static_mkfs="no"])
> +
> +AC_ARG_ENABLE([static-fsck],
> +    [AS_HELP_STRING([--enable-static-fsck],
> +                    [build fsck.erofs as a static library @<:@default=no@:>@])],
> +    [enable_static_fsck="$enableval"],
> +    [enable_static_fsck="no"])

But how could we support static libraries from binaries?

I guess you need static liberofs instead?

Thanks,
Gao Xiang

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-05-23  8:05 ` Gao Xiang
@ 2024-06-06  2:13   ` Chen Linxuan
  2024-06-06  2:22     ` Gao Xiang
  0 siblings, 1 reply; 16+ messages in thread
From: Chen Linxuan @ 2024-06-06  2:13 UTC (permalink / raw)
  To: linux-erofs

Hi Xiang!

On 2024/5/23 16:05, Gao Xiang wrote:
> Hi Comix!
> 
> On 2024/5/23 15:31, ComixHe wrote:
>> In some cases, developer may need to integrate erofs-utils into their
>> proejct as a static library to reduce package dependencies and
>> have more finer control over the feature used by the project.
> 
> Thanks for sharing this.
> 
>>
>> For exapmle, squashfuse provides a static library `libsquashfuse.a` and

We want a static library for running fuse-erofs, maybe liberofsfuse or 
something like that, to make a appimage like bundle with erofs.

For quite a long time, Appimage guys patch the fuse program of squashfs 
to get such a static library, and this patch is accepted by Debian.

https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch

https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96

The patch just make a binary to be a static library by changing `main` 
to `fusefs_main`.

We just want to do the same thing appimage guys do to squashfs.

>> exposes some useful functions, Appimage uses this static library to build
>> image. It could ensure that the executable image can be executed directly
>> on most linux platforms and the user doesn't need to install squashfuse
>> in order to execute the image.
>>
>> Signed-off-by: ComixHe <heyuming@deepin.org>
>> ---
>>   configure.ac     | 28 ++++++++++++++++++++++++++++
>>   dump/Makefile.am | 10 ++++++++++
>>   fsck/Makefile.am | 10 ++++++++++
>>   fuse/Makefile.am | 10 ++++++++++
>>   mkfs/Makefile.am | 10 ++++++++++
>>   5 files changed, 68 insertions(+)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 1989bca..16ddb7c 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
>>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse 
>> @<:@default=no@:>@])],
>>      [enable_fuse="$enableval"], [enable_fuse="no"])
>> +AC_ARG_ENABLE([static-fuse],
>> +    [AS_HELP_STRING([--enable-static-fuse],
>> +                    [build erofsfuse as a static library 
>> @<:@default=no@:>@])],
>> +    [enable_static_fuse="$enableval"],
>> +    [enable_static_fuse="no"])
>> +
>> +AC_ARG_ENABLE([static-dump],
>> +    [AS_HELP_STRING([--enable-static-dump],
>> +                    [build dump.erofs as a static library 
>> @<:@default=no@:>@])],
>> +    [enable_static_dump="$enableval"],
>> +    [enable_static_dump="no"])
>> +
>> +AC_ARG_ENABLE([static-mkfs],
>> +    [AS_HELP_STRING([--enable-static-mkfs],
>> +                    [build mkfs.erofs as a static library 
>> @<:@default=no@:>@])],
>> +    [enable_static_mkfs="$enableval"],
>> +    [enable_static_mkfs="no"])
>> +
>> +AC_ARG_ENABLE([static-fsck],
>> +    [AS_HELP_STRING([--enable-static-fsck],
>> +                    [build fsck.erofs as a static library 
>> @<:@default=no@:>@])],
>> +    [enable_static_fsck="$enableval"],
>> +    [enable_static_fsck="no"])
> 
> But how could we support static libraries from binaries?
> 
> I guess you need static liberofs instead?
> 
> Thanks,
> Gao Xiang
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  2:13   ` Chen Linxuan
@ 2024-06-06  2:22     ` Gao Xiang
  2024-06-06  2:25       ` Chen Linxuan
  0 siblings, 1 reply; 16+ messages in thread
From: Gao Xiang @ 2024-06-06  2:22 UTC (permalink / raw)
  To: Chen Linxuan, linux-erofs

Hi,

On 2024/6/6 10:13, Chen Linxuan wrote:
> Hi Xiang!
> 
> On 2024/5/23 16:05, Gao Xiang wrote:
>> Hi Comix!
>>
>> On 2024/5/23 15:31, ComixHe wrote:
>>> In some cases, developer may need to integrate erofs-utils into their
>>> proejct as a static library to reduce package dependencies and
>>> have more finer control over the feature used by the project.
>>
>> Thanks for sharing this.
>>
>>>
>>> For exapmle, squashfuse provides a static library `libsquashfuse.a` and
> 
> We want a static library for running fuse-erofs, maybe liberofsfuse or something like that, to make a appimage like bundle with erofs.
> 
> For quite a long time, Appimage guys patch the fuse program of squashfs to get such a static library, and this patch is accepted by Debian.
> 
> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
> 
> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
> 
> The patch just make a binary to be a static library by changing `main` to `fusefs_main`.
> 

Since squashfs don't have any offical libsquashfs, so I guess they tried
export the squashfuse project as a library.

But erofs-utils is quite another story since we already have an offical
`liberofs` concept.   If you'd like to export some FUSE interface, would
you mind moving some logic in fuse/ to lib/?  Does this way also work
for you?

Thanks,
Gao Xiang


> We just want to do the same thing appimage guys do to squashfs.
> 
>>> exposes some useful functions, Appimage uses this static library to build
>>> image. It could ensure that the executable image can be executed directly
>>> on most linux platforms and the user doesn't need to install squashfuse
>>> in order to execute the image.
>>>
>>> Signed-off-by: ComixHe <heyuming@deepin.org>
>>> ---
>>>   configure.ac     | 28 ++++++++++++++++++++++++++++
>>>   dump/Makefile.am | 10 ++++++++++
>>>   fsck/Makefile.am | 10 ++++++++++
>>>   fuse/Makefile.am | 10 ++++++++++
>>>   mkfs/Makefile.am | 10 ++++++++++
>>>   5 files changed, 68 insertions(+)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index 1989bca..16ddb7c 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
>>>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
>>>      [enable_fuse="$enableval"], [enable_fuse="no"])
>>> +AC_ARG_ENABLE([static-fuse],
>>> +    [AS_HELP_STRING([--enable-static-fuse],
>>> +                    [build erofsfuse as a static library @<:@default=no@:>@])],
>>> +    [enable_static_fuse="$enableval"],
>>> +    [enable_static_fuse="no"])
>>> +
>>> +AC_ARG_ENABLE([static-dump],
>>> +    [AS_HELP_STRING([--enable-static-dump],
>>> +                    [build dump.erofs as a static library @<:@default=no@:>@])],
>>> +    [enable_static_dump="$enableval"],
>>> +    [enable_static_dump="no"])
>>> +
>>> +AC_ARG_ENABLE([static-mkfs],
>>> +    [AS_HELP_STRING([--enable-static-mkfs],
>>> +                    [build mkfs.erofs as a static library @<:@default=no@:>@])],
>>> +    [enable_static_mkfs="$enableval"],
>>> +    [enable_static_mkfs="no"])
>>> +
>>> +AC_ARG_ENABLE([static-fsck],
>>> +    [AS_HELP_STRING([--enable-static-fsck],
>>> +                    [build fsck.erofs as a static library @<:@default=no@:>@])],
>>> +    [enable_static_fsck="$enableval"],
>>> +    [enable_static_fsck="no"])
>>
>> But how could we support static libraries from binaries?
>>
>> I guess you need static liberofs instead?
>>
>> Thanks,
>> Gao Xiang
>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  2:22     ` Gao Xiang
@ 2024-06-06  2:25       ` Chen Linxuan
  2024-06-06  2:45         ` Gao Xiang
  0 siblings, 1 reply; 16+ messages in thread
From: Chen Linxuan @ 2024-06-06  2:25 UTC (permalink / raw)
  To: Gao Xiang, linux-erofs

Hi,

On 2024/6/6 10:22, Gao Xiang wrote:
> Hi,
> 
> On 2024/6/6 10:13, Chen Linxuan wrote:
>> Hi Xiang!
>>
>> On 2024/5/23 16:05, Gao Xiang wrote:
>>> Hi Comix!
>>>
>>> On 2024/5/23 15:31, ComixHe wrote:
>>>> In some cases, developer may need to integrate erofs-utils into their
>>>> proejct as a static library to reduce package dependencies and
>>>> have more finer control over the feature used by the project.
>>>
>>> Thanks for sharing this.
>>>
>>>>
>>>> For exapmle, squashfuse provides a static library `libsquashfuse.a` and
>>
>> We want a static library for running fuse-erofs, maybe liberofsfuse or 
>> something like that, to make a appimage like bundle with erofs.
>>
>> For quite a long time, Appimage guys patch the fuse program of 
>> squashfs to get such a static library, and this patch is accepted by 
>> Debian.
>>
>> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
>>
>> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
>>
>> The patch just make a binary to be a static library by changing `main` 
>> to `fusefs_main`.
>>
> 
> Since squashfs don't have any offical libsquashfs, so I guess they tried
> export the squashfuse project as a library.
> 
> But erofs-utils is quite another story since we already have an offical
> `liberofs` concept.   If you'd like to export some FUSE interface, would
> you mind moving some logic in fuse/ to lib/?  Does this way also work
> for you?

Sure.

We will send other patches later.

Thanks,
Chen Linxuan

> 
> Thanks,
> Gao Xiang
> 
> 
>> We just want to do the same thing appimage guys do to squashfs.
>>
>>>> exposes some useful functions, Appimage uses this static library to 
>>>> build
>>>> image. It could ensure that the executable image can be executed 
>>>> directly
>>>> on most linux platforms and the user doesn't need to install squashfuse
>>>> in order to execute the image.
>>>>
>>>> Signed-off-by: ComixHe <heyuming@deepin.org>
>>>> ---
>>>>   configure.ac     | 28 ++++++++++++++++++++++++++++
>>>>   dump/Makefile.am | 10 ++++++++++
>>>>   fsck/Makefile.am | 10 ++++++++++
>>>>   fuse/Makefile.am | 10 ++++++++++
>>>>   mkfs/Makefile.am | 10 ++++++++++
>>>>   5 files changed, 68 insertions(+)
>>>>
>>>> diff --git a/configure.ac b/configure.ac
>>>> index 1989bca..16ddb7c 100644
>>>> --- a/configure.ac
>>>> +++ b/configure.ac
>>>> @@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
>>>>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse 
>>>> @<:@default=no@:>@])],
>>>>      [enable_fuse="$enableval"], [enable_fuse="no"])
>>>> +AC_ARG_ENABLE([static-fuse],
>>>> +    [AS_HELP_STRING([--enable-static-fuse],
>>>> +                    [build erofsfuse as a static library 
>>>> @<:@default=no@:>@])],
>>>> +    [enable_static_fuse="$enableval"],
>>>> +    [enable_static_fuse="no"])
>>>> +
>>>> +AC_ARG_ENABLE([static-dump],
>>>> +    [AS_HELP_STRING([--enable-static-dump],
>>>> +                    [build dump.erofs as a static library 
>>>> @<:@default=no@:>@])],
>>>> +    [enable_static_dump="$enableval"],
>>>> +    [enable_static_dump="no"])
>>>> +
>>>> +AC_ARG_ENABLE([static-mkfs],
>>>> +    [AS_HELP_STRING([--enable-static-mkfs],
>>>> +                    [build mkfs.erofs as a static library 
>>>> @<:@default=no@:>@])],
>>>> +    [enable_static_mkfs="$enableval"],
>>>> +    [enable_static_mkfs="no"])
>>>> +
>>>> +AC_ARG_ENABLE([static-fsck],
>>>> +    [AS_HELP_STRING([--enable-static-fsck],
>>>> +                    [build fsck.erofs as a static library 
>>>> @<:@default=no@:>@])],
>>>> +    [enable_static_fsck="$enableval"],
>>>> +    [enable_static_fsck="no"])
>>>
>>> But how could we support static libraries from binaries?
>>>
>>> I guess you need static liberofs instead?
>>>
>>> Thanks,
>>> Gao Xiang
>>>
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  2:25       ` Chen Linxuan
@ 2024-06-06  2:45         ` Gao Xiang
  2024-06-06  3:06           ` Chen Linxuan
  0 siblings, 1 reply; 16+ messages in thread
From: Gao Xiang @ 2024-06-06  2:45 UTC (permalink / raw)
  To: Chen Linxuan, linux-erofs



On 2024/6/6 10:25, Chen Linxuan wrote:
> Hi,
> 
> On 2024/6/6 10:22, Gao Xiang wrote:
>> Hi,
>>
>> On 2024/6/6 10:13, Chen Linxuan wrote:
>>> Hi Xiang!
>>>
>>> On 2024/5/23 16:05, Gao Xiang wrote:
>>>> Hi Comix!
>>>>
>>>> On 2024/5/23 15:31, ComixHe wrote:
>>>>> In some cases, developer may need to integrate erofs-utils into their
>>>>> proejct as a static library to reduce package dependencies and
>>>>> have more finer control over the feature used by the project.
>>>>
>>>> Thanks for sharing this.
>>>>
>>>>>
>>>>> For exapmle, squashfuse provides a static library `libsquashfuse.a` and
>>>
>>> We want a static library for running fuse-erofs, maybe liberofsfuse or something like that, to make a appimage like bundle with erofs.
>>>
>>> For quite a long time, Appimage guys patch the fuse program of squashfs to get such a static library, and this patch is accepted by Debian.
>>>
>>> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
>>>
>>> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
>>>
>>> The patch just make a binary to be a static library by changing `main` to `fusefs_main`.
>>>
>>
>> Since squashfs don't have any offical libsquashfs, so I guess they tried
>> export the squashfuse project as a library.
>>
>> But erofs-utils is quite another story since we already have an offical
>> `liberofs` concept.   If you'd like to export some FUSE interface, would
>> you mind moving some logic in fuse/ to lib/?  Does this way also work
>> for you?
> 
> Sure.
> 
> We will send other patches later.

Err, sorry, a second thought.. If you just would like
to move all code from fuse/main.c to lib/,  I also think
it's somewhat strange.

So just address your requirement (erofsfuse_main), would
you mind just export liberofsfuse static library instead?
Since it's a bit tangled with libfuse version, so I'm now
hesitated to move into lib/...

For mkfs, I guess we will have offical API interfaces for
users to build images later, so libmkerofs is not worthwhile.

I'm not sure dump.erofs is useful too since low-level APIs
are provided. As for fsck, it's similar to mkfs in the future.


Thanks,
Gao Xiang

> 
> Thanks,
> Chen Linxuan
> 
>>
>> Thanks,
>> Gao Xiang
>>
>>
>>> We just want to do the same thing appimage guys do to squashfs.
>>>
>>>>> exposes some useful functions, Appimage uses this static library to build
>>>>> image. It could ensure that the executable image can be executed directly
>>>>> on most linux platforms and the user doesn't need to install squashfuse
>>>>> in order to execute the image.
>>>>>
>>>>> Signed-off-by: ComixHe <heyuming@deepin.org>
>>>>> ---
>>>>>   configure.ac     | 28 ++++++++++++++++++++++++++++
>>>>>   dump/Makefile.am | 10 ++++++++++
>>>>>   fsck/Makefile.am | 10 ++++++++++
>>>>>   fuse/Makefile.am | 10 ++++++++++
>>>>>   mkfs/Makefile.am | 10 ++++++++++
>>>>>   5 files changed, 68 insertions(+)
>>>>>
>>>>> diff --git a/configure.ac b/configure.ac
>>>>> index 1989bca..16ddb7c 100644
>>>>> --- a/configure.ac
>>>>> +++ b/configure.ac
>>>>> @@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
>>>>>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
>>>>>      [enable_fuse="$enableval"], [enable_fuse="no"])
>>>>> +AC_ARG_ENABLE([static-fuse],
>>>>> +    [AS_HELP_STRING([--enable-static-fuse],
>>>>> +                    [build erofsfuse as a static library @<:@default=no@:>@])],
>>>>> +    [enable_static_fuse="$enableval"],
>>>>> +    [enable_static_fuse="no"])
>>>>> +
>>>>> +AC_ARG_ENABLE([static-dump],
>>>>> +    [AS_HELP_STRING([--enable-static-dump],
>>>>> +                    [build dump.erofs as a static library @<:@default=no@:>@])],
>>>>> +    [enable_static_dump="$enableval"],
>>>>> +    [enable_static_dump="no"])
>>>>> +
>>>>> +AC_ARG_ENABLE([static-mkfs],
>>>>> +    [AS_HELP_STRING([--enable-static-mkfs],
>>>>> +                    [build mkfs.erofs as a static library @<:@default=no@:>@])],
>>>>> +    [enable_static_mkfs="$enableval"],
>>>>> +    [enable_static_mkfs="no"])
>>>>> +
>>>>> +AC_ARG_ENABLE([static-fsck],
>>>>> +    [AS_HELP_STRING([--enable-static-fsck],
>>>>> +                    [build fsck.erofs as a static library @<:@default=no@:>@])],
>>>>> +    [enable_static_fsck="$enableval"],
>>>>> +    [enable_static_fsck="no"])
>>>>
>>>> But how could we support static libraries from binaries?
>>>>
>>>> I guess you need static liberofs instead?
>>>>
>>>> Thanks,
>>>> Gao Xiang
>>>>
>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  2:45         ` Gao Xiang
@ 2024-06-06  3:06           ` Chen Linxuan
  2024-06-06  3:13             ` Gao Xiang
  0 siblings, 1 reply; 16+ messages in thread
From: Chen Linxuan @ 2024-06-06  3:06 UTC (permalink / raw)
  To: Gao Xiang, linux-erofs

On 2024/6/6 10:45, Gao Xiang wrote:
> 
> 
> On 2024/6/6 10:25, Chen Linxuan wrote:
>> Hi,
>>
>> On 2024/6/6 10:22, Gao Xiang wrote:
>>> Hi,
>>>
>>> On 2024/6/6 10:13, Chen Linxuan wrote:
>>>> Hi Xiang!
>>>>
>>>> On 2024/5/23 16:05, Gao Xiang wrote:
>>>>> Hi Comix!
>>>>>
>>>>> On 2024/5/23 15:31, ComixHe wrote:
>>>>>> In some cases, developer may need to integrate erofs-utils into their
>>>>>> proejct as a static library to reduce package dependencies and
>>>>>> have more finer control over the feature used by the project.
>>>>>
>>>>> Thanks for sharing this.
>>>>>
>>>>>>
>>>>>> For exapmle, squashfuse provides a static library 
>>>>>> `libsquashfuse.a` and
>>>>
>>>> We want a static library for running fuse-erofs, maybe liberofsfuse 
>>>> or something like that, to make a appimage like bundle with erofs.
>>>>
>>>> For quite a long time, Appimage guys patch the fuse program of 
>>>> squashfs to get such a static library, and this patch is accepted by 
>>>> Debian.
>>>>
>>>> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
>>>>
>>>> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
>>>>
>>>> The patch just make a binary to be a static library by changing 
>>>> `main` to `fusefs_main`.
>>>>
>>>
>>> Since squashfs don't have any offical libsquashfs, so I guess they tried
>>> export the squashfuse project as a library.
>>>
>>> But erofs-utils is quite another story since we already have an offical
>>> `liberofs` concept.   If you'd like to export some FUSE interface, would
>>> you mind moving some logic in fuse/ to lib/?  Does this way also work
>>> for you?
>>
>> Sure.
>>
>> We will send other patches later.
> 
> Err, sorry, a second thought.. If you just would like
> to move all code from fuse/main.c to lib/,  I also think
> it's somewhat strange.
> 
> So just address your requirement (erofsfuse_main), would
> you mind just export liberofsfuse static library instead?
> Since it's a bit tangled with libfuse version, so I'm now
> hesitated to move into lib/...

So you mean that I should export a static library call "liberofsfuse".
And the only function it has is erofsfuse_main. Am I right?

But where should I place the source code of this new library? 
"liberofsfuse/", "lib/fuse" or somewhere else?

Thanks,
Chen Linxuan

> 
> For mkfs, I guess we will have offical API interfaces for
> users to build images later, so libmkerofs is not worthwhile.
> 
> I'm not sure dump.erofs is useful too since low-level APIs
> are provided. As for fsck, it's similar to mkfs in the future.
> 
> 
> Thanks,
> Gao Xiang
> 
>>
>> Thanks,
>> Chen Linxuan
>>
>>>
>>> Thanks,
>>> Gao Xiang
>>>
>>>
>>>> We just want to do the same thing appimage guys do to squashfs.
>>>>
>>>>>> exposes some useful functions, Appimage uses this static library 
>>>>>> to build
>>>>>> image. It could ensure that the executable image can be executed 
>>>>>> directly
>>>>>> on most linux platforms and the user doesn't need to install 
>>>>>> squashfuse
>>>>>> in order to execute the image.
>>>>>>
>>>>>> Signed-off-by: ComixHe <heyuming@deepin.org>
>>>>>> ---
>>>>>>   configure.ac     | 28 ++++++++++++++++++++++++++++
>>>>>>   dump/Makefile.am | 10 ++++++++++
>>>>>>   fsck/Makefile.am | 10 ++++++++++
>>>>>>   fuse/Makefile.am | 10 ++++++++++
>>>>>>   mkfs/Makefile.am | 10 ++++++++++
>>>>>>   5 files changed, 68 insertions(+)
>>>>>>
>>>>>> diff --git a/configure.ac b/configure.ac
>>>>>> index 1989bca..16ddb7c 100644
>>>>>> --- a/configure.ac
>>>>>> +++ b/configure.ac
>>>>>> @@ -147,6 +147,30 @@ AC_ARG_ENABLE(fuse,
>>>>>>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse 
>>>>>> @<:@default=no@:>@])],
>>>>>>      [enable_fuse="$enableval"], [enable_fuse="no"])
>>>>>> +AC_ARG_ENABLE([static-fuse],
>>>>>> +    [AS_HELP_STRING([--enable-static-fuse],
>>>>>> +                    [build erofsfuse as a static library 
>>>>>> @<:@default=no@:>@])],
>>>>>> +    [enable_static_fuse="$enableval"],
>>>>>> +    [enable_static_fuse="no"])
>>>>>> +
>>>>>> +AC_ARG_ENABLE([static-dump],
>>>>>> +    [AS_HELP_STRING([--enable-static-dump],
>>>>>> +                    [build dump.erofs as a static library 
>>>>>> @<:@default=no@:>@])],
>>>>>> +    [enable_static_dump="$enableval"],
>>>>>> +    [enable_static_dump="no"])
>>>>>> +
>>>>>> +AC_ARG_ENABLE([static-mkfs],
>>>>>> +    [AS_HELP_STRING([--enable-static-mkfs],
>>>>>> +                    [build mkfs.erofs as a static library 
>>>>>> @<:@default=no@:>@])],
>>>>>> +    [enable_static_mkfs="$enableval"],
>>>>>> +    [enable_static_mkfs="no"])
>>>>>> +
>>>>>> +AC_ARG_ENABLE([static-fsck],
>>>>>> +    [AS_HELP_STRING([--enable-static-fsck],
>>>>>> +                    [build fsck.erofs as a static library 
>>>>>> @<:@default=no@:>@])],
>>>>>> +    [enable_static_fsck="$enableval"],
>>>>>> +    [enable_static_fsck="no"])
>>>>>
>>>>> But how could we support static libraries from binaries?
>>>>>
>>>>> I guess you need static liberofs instead?
>>>>>
>>>>> Thanks,
>>>>> Gao Xiang
>>>>>
>>>
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  3:06           ` Chen Linxuan
@ 2024-06-06  3:13             ` Gao Xiang
  2024-06-06  3:17               ` Chen Linxuan
  0 siblings, 1 reply; 16+ messages in thread
From: Gao Xiang @ 2024-06-06  3:13 UTC (permalink / raw)
  To: Chen Linxuan, linux-erofs



On 2024/6/6 11:06, Chen Linxuan wrote:
> On 2024/6/6 10:45, Gao Xiang wrote:
>>
>>
>> On 2024/6/6 10:25, Chen Linxuan wrote:
>>> Hi,
>>>
>>> On 2024/6/6 10:22, Gao Xiang wrote:
>>>> Hi,
>>>>
>>>> On 2024/6/6 10:13, Chen Linxuan wrote:
>>>>> Hi Xiang!
>>>>>
>>>>> On 2024/5/23 16:05, Gao Xiang wrote:
>>>>>> Hi Comix!
>>>>>>
>>>>>> On 2024/5/23 15:31, ComixHe wrote:
>>>>>>> In some cases, developer may need to integrate erofs-utils into their
>>>>>>> proejct as a static library to reduce package dependencies and
>>>>>>> have more finer control over the feature used by the project.
>>>>>>
>>>>>> Thanks for sharing this.
>>>>>>
>>>>>>>
>>>>>>> For exapmle, squashfuse provides a static library `libsquashfuse.a` and
>>>>>
>>>>> We want a static library for running fuse-erofs, maybe liberofsfuse or something like that, to make a appimage like bundle with erofs.
>>>>>
>>>>> For quite a long time, Appimage guys patch the fuse program of squashfs to get such a static library, and this patch is accepted by Debian.
>>>>>
>>>>> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
>>>>>
>>>>> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
>>>>>
>>>>> The patch just make a binary to be a static library by changing `main` to `fusefs_main`.
>>>>>
>>>>
>>>> Since squashfs don't have any offical libsquashfs, so I guess they tried
>>>> export the squashfuse project as a library.
>>>>
>>>> But erofs-utils is quite another story since we already have an offical
>>>> `liberofs` concept.   If you'd like to export some FUSE interface, would
>>>> you mind moving some logic in fuse/ to lib/?  Does this way also work
>>>> for you?
>>>
>>> Sure.
>>>
>>> We will send other patches later.
>>
>> Err, sorry, a second thought.. If you just would like
>> to move all code from fuse/main.c to lib/,  I also think
>> it's somewhat strange.
>>
>> So just address your requirement (erofsfuse_main), would
>> you mind just export liberofsfuse static library instead?
>> Since it's a bit tangled with libfuse version, so I'm now
>> hesitated to move into lib/...
> 
> So you mean that I should export a static library call "liberofsfuse".
> And the only function it has is erofsfuse_main. Am I right?

You could export any function in the fuse/main.c, also you
could rename main() as erofsfuse_main() for the liberofsfuse
library.

> 
> But where should I place the source code of this new library? "liberofsfuse/", "lib/fuse" or somewhere else?

Just like the current patch, fuse/main.c is okay for me (since
it's tangled with libfuse internals), but I guess we'd better
to avoid self-contained libmkerofs and more.  `liberofs` is
much better to be directy used for mkfs, fsck usage.

Thanks,
Gao Xiang


> 
> Thanks,
> Chen Linxuan
> 
>>
>> For mkfs, I guess we will have offical API interfaces for
>> users to build images later, so libmkerofs is not worthwhile.
>>
>> I'm not sure dump.erofs is useful too since low-level APIs
>> are provided. As for fsck, it's similar to mkfs in the future.
>>
>>
>> Thanks,
>> Gao Xiang
>>
>>>
>>> Thanks,
>>> Chen Linxuan
>>>
>>>>
>>>> Thanks,
>>>> Gao Xiang
>>>>
>>>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  3:13             ` Gao Xiang
@ 2024-06-06  3:17               ` Chen Linxuan
  2024-06-06  3:22                 ` Gao Xiang
  0 siblings, 1 reply; 16+ messages in thread
From: Chen Linxuan @ 2024-06-06  3:17 UTC (permalink / raw)
  To: Gao Xiang, linux-erofs

On 2024/6/6 11:13, Gao Xiang wrote:
> 
> 
> On 2024/6/6 11:06, Chen Linxuan wrote:
>> On 2024/6/6 10:45, Gao Xiang wrote:
>>>
>>>
>>> On 2024/6/6 10:25, Chen Linxuan wrote:
>>>> Hi,
>>>>
>>>> On 2024/6/6 10:22, Gao Xiang wrote:
>>>>> Hi,
>>>>>
>>>>> On 2024/6/6 10:13, Chen Linxuan wrote:
>>>>>> Hi Xiang!
>>>>>>
>>>>>> On 2024/5/23 16:05, Gao Xiang wrote:
>>>>>>> Hi Comix!
>>>>>>>
>>>>>>> On 2024/5/23 15:31, ComixHe wrote:
>>>>>>>> In some cases, developer may need to integrate erofs-utils into 
>>>>>>>> their
>>>>>>>> proejct as a static library to reduce package dependencies and
>>>>>>>> have more finer control over the feature used by the project.
>>>>>>>
>>>>>>> Thanks for sharing this.
>>>>>>>
>>>>>>>>
>>>>>>>> For exapmle, squashfuse provides a static library 
>>>>>>>> `libsquashfuse.a` and
>>>>>>
>>>>>> We want a static library for running fuse-erofs, maybe 
>>>>>> liberofsfuse or something like that, to make a appimage like 
>>>>>> bundle with erofs.
>>>>>>
>>>>>> For quite a long time, Appimage guys patch the fuse program of 
>>>>>> squashfs to get such a static library, and this patch is accepted 
>>>>>> by Debian.
>>>>>>
>>>>>> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
>>>>>>
>>>>>> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
>>>>>>
>>>>>> The patch just make a binary to be a static library by changing 
>>>>>> `main` to `fusefs_main`.
>>>>>>
>>>>>
>>>>> Since squashfs don't have any offical libsquashfs, so I guess they 
>>>>> tried
>>>>> export the squashfuse project as a library.
>>>>>
>>>>> But erofs-utils is quite another story since we already have an 
>>>>> offical
>>>>> `liberofs` concept.   If you'd like to export some FUSE interface, 
>>>>> would
>>>>> you mind moving some logic in fuse/ to lib/?  Does this way also work
>>>>> for you?
>>>>
>>>> Sure.
>>>>
>>>> We will send other patches later.
>>>
>>> Err, sorry, a second thought.. If you just would like
>>> to move all code from fuse/main.c to lib/,  I also think
>>> it's somewhat strange.
>>>
>>> So just address your requirement (erofsfuse_main), would
>>> you mind just export liberofsfuse static library instead?
>>> Since it's a bit tangled with libfuse version, so I'm now
>>> hesitated to move into lib/...
>>
>> So you mean that I should export a static library call "liberofsfuse".
>> And the only function it has is erofsfuse_main. Am I right?
> 
> You could export any function in the fuse/main.c, also you
> could rename main() as erofsfuse_main() for the liberofsfuse
> library.
> 
>>
>> But where should I place the source code of this new library? 
>> "liberofsfuse/", "lib/fuse" or somewhere else?
> 
> Just like the current patch, fuse/main.c is okay for me (since

Maybe you want to check the original patch again?

We build liberofsfuse with -Dmain=erofsfuse_main at that patch, which 
sounds like what you suggest here.

Thanks,
Chen Linxuan

> it's tangled with libfuse internals), but I guess we'd better
> to avoid self-contained libmkerofs and more.  `liberofs` is
> much better to be directy used for mkfs, fsck usage.
> 
> Thanks,
> Gao Xiang
> 
> 
>>
>> Thanks,
>> Chen Linxuan
>>
>>>
>>> For mkfs, I guess we will have offical API interfaces for
>>> users to build images later, so libmkerofs is not worthwhile.
>>>
>>> I'm not sure dump.erofs is useful too since low-level APIs
>>> are provided. As for fsck, it's similar to mkfs in the future.
>>>
>>>
>>> Thanks,
>>> Gao Xiang
>>>
>>>>
>>>> Thanks,
>>>> Chen Linxuan
>>>>
>>>>>
>>>>> Thanks,
>>>>> Gao Xiang
>>>>>
>>>>>
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
  2024-06-06  3:17               ` Chen Linxuan
@ 2024-06-06  3:22                 ` Gao Xiang
  0 siblings, 0 replies; 16+ messages in thread
From: Gao Xiang @ 2024-06-06  3:22 UTC (permalink / raw)
  To: Chen Linxuan, linux-erofs



On 2024/6/6 11:17, Chen Linxuan wrote:
> On 2024/6/6 11:13, Gao Xiang wrote:
>>
>>
>> On 2024/6/6 11:06, Chen Linxuan wrote:
>>> On 2024/6/6 10:45, Gao Xiang wrote:
>>>>
>>>>
>>>> On 2024/6/6 10:25, Chen Linxuan wrote:
>>>>> Hi,
>>>>>
>>>>> On 2024/6/6 10:22, Gao Xiang wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 2024/6/6 10:13, Chen Linxuan wrote:
>>>>>>> Hi Xiang!
>>>>>>>
>>>>>>> On 2024/5/23 16:05, Gao Xiang wrote:
>>>>>>>> Hi Comix!
>>>>>>>>
>>>>>>>> On 2024/5/23 15:31, ComixHe wrote:
>>>>>>>>> In some cases, developer may need to integrate erofs-utils into their
>>>>>>>>> proejct as a static library to reduce package dependencies and
>>>>>>>>> have more finer control over the feature used by the project.
>>>>>>>>
>>>>>>>> Thanks for sharing this.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> For exapmle, squashfuse provides a static library `libsquashfuse.a` and
>>>>>>>
>>>>>>> We want a static library for running fuse-erofs, maybe liberofsfuse or something like that, to make a appimage like bundle with erofs.
>>>>>>>
>>>>>>> For quite a long time, Appimage guys patch the fuse program of squashfs to get such a static library, and this patch is accepted by Debian.
>>>>>>>
>>>>>>> https://github.com/AppImageCommunity/libappimage/blob/master/src/patches/squashfuse.patch
>>>>>>>
>>>>>>> https://salsa.debian.org/sgmoore/squashfuse/-/commit/489b04eb7f5e45478f2ba5cd8d7173bb96
>>>>>>>
>>>>>>> The patch just make a binary to be a static library by changing `main` to `fusefs_main`.
>>>>>>>
>>>>>>
>>>>>> Since squashfs don't have any offical libsquashfs, so I guess they tried
>>>>>> export the squashfuse project as a library.
>>>>>>
>>>>>> But erofs-utils is quite another story since we already have an offical
>>>>>> `liberofs` concept.   If you'd like to export some FUSE interface, would
>>>>>> you mind moving some logic in fuse/ to lib/?  Does this way also work
>>>>>> for you?
>>>>>
>>>>> Sure.
>>>>>
>>>>> We will send other patches later.
>>>>
>>>> Err, sorry, a second thought.. If you just would like
>>>> to move all code from fuse/main.c to lib/,  I also think
>>>> it's somewhat strange.
>>>>
>>>> So just address your requirement (erofsfuse_main), would
>>>> you mind just export liberofsfuse static library instead?
>>>> Since it's a bit tangled with libfuse version, so I'm now
>>>> hesitated to move into lib/...
>>>
>>> So you mean that I should export a static library call "liberofsfuse".
>>> And the only function it has is erofsfuse_main. Am I right?
>>
>> You could export any function in the fuse/main.c, also you
>> could rename main() as erofsfuse_main() for the liberofsfuse
>> library.
>>
>>>
>>> But where should I place the source code of this new library? "liberofsfuse/", "lib/fuse" or somewhere else?
>>
>> Just like the current patch, fuse/main.c is okay for me (since
> 
> Maybe you want to check the original patch again?
> 
> We build liberofsfuse with -Dmain=erofsfuse_main at that patch, which sounds like what you suggest here.

That is also fine with me, anyway, liberofsfuse is a very special
case for us, I'd like to just build a static library for
erofsfuse only (because liberofs will be exported as a dynamic
library in later versions, I don't want to rely on random libfuse
interface).

For other usage, I'd suggest form some formal APIs in liberofs
instead.

Thanks,
Gao Xiang

> 
> Thanks,
> Chen Linxuan
> 
>> it's tangled with libfuse internals), but I guess we'd better
>> to avoid self-contained libmkerofs and more.  `liberofs` is
>> much better to be directy used for mkfs, fsck usage.
>>
>> Thanks,
>> Gao Xiang
>>
>>
>>>
>>> Thanks,
>>> Chen Linxuan
>>>
>>>>
>>>> For mkfs, I guess we will have offical API interfaces for
>>>> users to build images later, so libmkerofs is not worthwhile.
>>>>
>>>> I'm not sure dump.erofs is useful too since low-level APIs
>>>> are provided. As for fsck, it's similar to mkfs in the future.
>>>>
>>>>
>>>> Thanks,
>>>> Gao Xiang
>>>>
>>>>>
>>>>> Thanks,
>>>>> Chen Linxuan
>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Gao Xiang
>>>>>>
>>>>>>
>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] build: support building static library liberofsfuse
  2024-05-23  7:31 [PATCH] build: support building static library ComixHe
  2024-05-23  8:05 ` Gao Xiang
@ 2024-06-06  4:18 ` ComixHe
  2024-06-06  6:31   ` Gao Xiang
  2024-06-06  7:39   ` [PATCH v2] " ComixHe
  1 sibling, 2 replies; 16+ messages in thread
From: ComixHe @ 2024-06-06  4:18 UTC (permalink / raw)
  To: linux-erofs; +Cc: ComixHe

Signed-off-by: ComixHe <heyuming@deepin.org>
---
 configure.ac     | 10 ++++++++++
 fuse/Makefile.am | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/configure.ac b/configure.ac
index 1989bca..3efbb70 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,12 @@ AC_ARG_ENABLE(fuse,
    [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
    [enable_fuse="$enableval"], [enable_fuse="no"])
 
+AC_ARG_ENABLE([static-fuse],
+    [AS_HELP_STRING([--enable-static-fuse],
+                    [build erofsfuse as a static library @<:@default=no@:>@])],
+    [enable_static_fuse="$enableval"],
+    [enable_static_fuse="no"])
+
 AC_ARG_WITH(uuid,
    [AS_HELP_STRING([--without-uuid],
       [Ignore presence of libuuid and disable uuid support @<:@default=enabled@:>@])])
@@ -525,6 +531,10 @@ AM_CONDITIONAL([ENABLE_FUSE], [test "x${have_fuse}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBLZMA], [test "x${have_liblzma}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBDEFLATE], [test "x${have_libdeflate}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBZSTD], [test "x${have_libzstd}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_MKFS], [test "x${enable_static_mkfs}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_DUMP], [test "x${enable_static_dump}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_FSCK], [test "x${enable_static_fsck}" = "xyes"])
 
 if test "x$have_uuid" = "xyes"; then
   AC_DEFINE([HAVE_LIBUUID], 1, [Define to 1 if libuuid is found])
diff --git a/fuse/Makefile.am b/fuse/Makefile.am
index 7eae5f6..120d3e1 100644
--- a/fuse/Makefile.am
+++ b/fuse/Makefile.am
@@ -8,3 +8,13 @@ erofsfuse_CFLAGS = -Wall -I$(top_srcdir)/include
 erofsfuse_CFLAGS += ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
 erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
 	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
+
+
+if ENABLE_STATIC_FUSE
+lib_LTLIBRARIES = liberofsfuse.la
+liberofsfuse_la_SOURCES = main.c
+liberofsfuse_la_CFLAGS  = -Wall -I$(top_srcdir)/include
+liberofsfuse_la_CFLAGS += -Dmain=erofsfuse_main -static ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
+liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
+	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
+endif
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library
@ 2024-06-06  4:55 ComixHe
  0 siblings, 0 replies; 16+ messages in thread
From: ComixHe @ 2024-06-06  4:55 UTC (permalink / raw)
  To: hsiangkao; +Cc: linux-erofs

According to your suggestions:

 > That is also fine with me, anyway, liberofsfuse is a very special
 > case for us, I'd like to just build a static library for
 > erofsfuse only (because liberofs will be exported as a dynamic
 > library in later versions, I don't want to rely on random libfuse
 > interface).
 >
 > For other usage, I'd suggest form some formal APIs in liberofs
 > instead.

I create a new patch which only for exporting 'liberofsfuse.a'.

Thanks,

He YuMing


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] build: support building static library liberofsfuse
  2024-06-06  4:18 ` [PATCH] build: support building static library liberofsfuse ComixHe
@ 2024-06-06  6:31   ` Gao Xiang
  2024-06-06  7:39   ` [PATCH v2] " ComixHe
  1 sibling, 0 replies; 16+ messages in thread
From: Gao Xiang @ 2024-06-06  6:31 UTC (permalink / raw)
  To: ComixHe, linux-erofs

Hi,

On 2024/6/6 12:18, ComixHe wrote:

I guess we may leave a commit message like:

In order to directly import erofsfuse with a new static library.

> Signed-off-by: ComixHe <heyuming@deepin.org>
> ---
>   configure.ac     | 10 ++++++++++
>   fuse/Makefile.am | 10 ++++++++++
>   2 files changed, 20 insertions(+)
> 
> diff --git a/configure.ac b/configure.ac
> index 1989bca..3efbb70 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -147,6 +147,12 @@ AC_ARG_ENABLE(fuse,
>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
>      [enable_fuse="$enableval"], [enable_fuse="no"])
>   
> +AC_ARG_ENABLE([static-fuse],
> +    [AS_HELP_STRING([--enable-static-fuse],
> +                    [build erofsfuse as a static library @<:@default=no@:>@])],
> +    [enable_static_fuse="$enableval"],
> +    [enable_static_fuse="no"])
> +
>   AC_ARG_WITH(uuid,
>      [AS_HELP_STRING([--without-uuid],
>         [Ignore presence of libuuid and disable uuid support @<:@default=enabled@:>@])])
> @@ -525,6 +531,10 @@ AM_CONDITIONAL([ENABLE_FUSE], [test "x${have_fuse}" = "xyes"])
>   AM_CONDITIONAL([ENABLE_LIBLZMA], [test "x${have_liblzma}" = "xyes"])
>   AM_CONDITIONAL([ENABLE_LIBDEFLATE], [test "x${have_libdeflate}" = "xyes"])
>   AM_CONDITIONAL([ENABLE_LIBZSTD], [test "x${have_libzstd}" = "xyes"])
> +AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"])
> +AM_CONDITIONAL([ENABLE_STATIC_MKFS], [test "x${enable_static_mkfs}" = "xyes"])
> +AM_CONDITIONAL([ENABLE_STATIC_DUMP], [test "x${enable_static_dump}" = "xyes"])
> +AM_CONDITIONAL([ENABLE_STATIC_FSCK], [test "x${enable_static_fsck}" = "xyes"])

Maybe only leave this line here?
AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"])


>   
>   if test "x$have_uuid" = "xyes"; then
>     AC_DEFINE([HAVE_LIBUUID], 1, [Define to 1 if libuuid is found])
> diff --git a/fuse/Makefile.am b/fuse/Makefile.am
> index 7eae5f6..120d3e1 100644
> --- a/fuse/Makefile.am
> +++ b/fuse/Makefile.am
> @@ -8,3 +8,13 @@ erofsfuse_CFLAGS = -Wall -I$(top_srcdir)/include
>   erofsfuse_CFLAGS += ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
>   erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
>   	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
> +
> +
> +if ENABLE_STATIC_FUSE
> +lib_LTLIBRARIES = liberofsfuse.la
> +liberofsfuse_la_SOURCES = main.c
> +liberofsfuse_la_CFLAGS  = -Wall -I$(top_srcdir)/include
> +liberofsfuse_la_CFLAGS += -Dmain=erofsfuse_main -static ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
> +liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
> +	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}

Maybe the following way also works?

lib_LIBRARIES = liberofsfuse.a
liberofsfuse_a_CFLAGS = ...
liberofsfuse_a_CFLAGS += -Dmain=erofsfuse_main ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
liberofsfuse_la_LIBADD =

I guess we don't need -static + la IMHO...

Thanks,
Gao Xiang

> +endif

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2] build: support building static library liberofsfuse
  2024-06-06  4:18 ` [PATCH] build: support building static library liberofsfuse ComixHe
  2024-06-06  6:31   ` Gao Xiang
@ 2024-06-06  7:39   ` ComixHe
  2024-06-06  7:53     ` Gao Xiang
  2024-06-11  9:23     ` Gao Xiang
  1 sibling, 2 replies; 16+ messages in thread
From: ComixHe @ 2024-06-06  7:39 UTC (permalink / raw)
  To: hsiangkao; +Cc: ComixHe, linux-erofs

add new option '--enable-static-fuse' so that we
could import erofsfuse as a static library directly
into other projects

Signed-off-by: ComixHe <heyuming@deepin.org>
---
 configure.ac     | 7 +++++++
 fuse/Makefile.am | 9 +++++++++
 2 files changed, 16 insertions(+)

diff --git a/configure.ac b/configure.ac
index 1989bca..f756139 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,12 @@ AC_ARG_ENABLE(fuse,
    [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
    [enable_fuse="$enableval"], [enable_fuse="no"])
 
+AC_ARG_ENABLE([static-fuse],
+    [AS_HELP_STRING([--enable-static-fuse],
+                    [build erofsfuse as a static library @<:@default=no@:>@])],
+    [enable_static_fuse="$enableval"],
+    [enable_static_fuse="no"])
+
 AC_ARG_WITH(uuid,
    [AS_HELP_STRING([--without-uuid],
       [Ignore presence of libuuid and disable uuid support @<:@default=enabled@:>@])])
@@ -525,6 +531,7 @@ AM_CONDITIONAL([ENABLE_FUSE], [test "x${have_fuse}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBLZMA], [test "x${have_liblzma}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBDEFLATE], [test "x${have_libdeflate}" = "xyes"])
 AM_CONDITIONAL([ENABLE_LIBZSTD], [test "x${have_libzstd}" = "xyes"])
+AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"])
 
 if test "x$have_uuid" = "xyes"; then
   AC_DEFINE([HAVE_LIBUUID], 1, [Define to 1 if libuuid is found])
diff --git a/fuse/Makefile.am b/fuse/Makefile.am
index 7eae5f6..c5c5696 100644
--- a/fuse/Makefile.am
+++ b/fuse/Makefile.am
@@ -8,3 +8,12 @@ erofsfuse_CFLAGS = -Wall -I$(top_srcdir)/include
 erofsfuse_CFLAGS += ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
 erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
 	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
+
+if ENABLE_STATIC_FUSE
+lib_LIBRARIES = liberofsfuse.a
+liberofsfuse_a_SOURCES = main.c
+liberofsfuse_a_CFLAGS  = -Wall -I$(top_srcdir)/include
+liberofsfuse_a_CFLAGS += -Dmain=erofsfuse_main ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
+liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
+	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
+endif
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH v2] build: support building static library liberofsfuse
  2024-06-06  7:39   ` [PATCH v2] " ComixHe
@ 2024-06-06  7:53     ` Gao Xiang
  2024-06-11  9:23     ` Gao Xiang
  1 sibling, 0 replies; 16+ messages in thread
From: Gao Xiang @ 2024-06-06  7:53 UTC (permalink / raw)
  To: ComixHe; +Cc: linux-erofs



On 2024/6/6 15:39, ComixHe wrote:
> add new option '--enable-static-fuse' so that we
> could import erofsfuse as a static library directly
> into other projects
> 
> Signed-off-by: ComixHe <heyuming@deepin.org>

Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>

Thanks,
Gao Xiang

> ---
>   configure.ac     | 7 +++++++
>   fuse/Makefile.am | 9 +++++++++
>   2 files changed, 16 insertions(+)
> 
> diff --git a/configure.ac b/configure.ac
> index 1989bca..f756139 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -147,6 +147,12 @@ AC_ARG_ENABLE(fuse,
>      [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])],
>      [enable_fuse="$enableval"], [enable_fuse="no"])
>   
> +AC_ARG_ENABLE([static-fuse],
> +    [AS_HELP_STRING([--enable-static-fuse],
> +                    [build erofsfuse as a static library @<:@default=no@:>@])],
> +    [enable_static_fuse="$enableval"],
> +    [enable_static_fuse="no"])
> +
>   AC_ARG_WITH(uuid,
>      [AS_HELP_STRING([--without-uuid],
>         [Ignore presence of libuuid and disable uuid support @<:@default=enabled@:>@])])
> @@ -525,6 +531,7 @@ AM_CONDITIONAL([ENABLE_FUSE], [test "x${have_fuse}" = "xyes"])
>   AM_CONDITIONAL([ENABLE_LIBLZMA], [test "x${have_liblzma}" = "xyes"])
>   AM_CONDITIONAL([ENABLE_LIBDEFLATE], [test "x${have_libdeflate}" = "xyes"])
>   AM_CONDITIONAL([ENABLE_LIBZSTD], [test "x${have_libzstd}" = "xyes"])
> +AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"])
>   
>   if test "x$have_uuid" = "xyes"; then
>     AC_DEFINE([HAVE_LIBUUID], 1, [Define to 1 if libuuid is found])
> diff --git a/fuse/Makefile.am b/fuse/Makefile.am
> index 7eae5f6..c5c5696 100644
> --- a/fuse/Makefile.am
> +++ b/fuse/Makefile.am
> @@ -8,3 +8,12 @@ erofsfuse_CFLAGS = -Wall -I$(top_srcdir)/include
>   erofsfuse_CFLAGS += ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
>   erofsfuse_LDADD = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
>   	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
> +
> +if ENABLE_STATIC_FUSE
> +lib_LIBRARIES = liberofsfuse.a
> +liberofsfuse_a_SOURCES = main.c
> +liberofsfuse_a_CFLAGS  = -Wall -I$(top_srcdir)/include
> +liberofsfuse_a_CFLAGS += -Dmain=erofsfuse_main ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
> +liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
> +	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}
> +endif

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2] build: support building static library liberofsfuse
  2024-06-06  7:39   ` [PATCH v2] " ComixHe
  2024-06-06  7:53     ` Gao Xiang
@ 2024-06-11  9:23     ` Gao Xiang
  1 sibling, 0 replies; 16+ messages in thread
From: Gao Xiang @ 2024-06-11  9:23 UTC (permalink / raw)
  To: ComixHe; +Cc: linux-erofs

Hi,

On 2024/6/6 15:39, ComixHe wrote:
> add new option '--enable-static-fuse' so that we
> could import erofsfuse as a static library directly
> into other projects
> 
> Signed-off-by: ComixHe <heyuming@deepin.org>

...

> +
> +if ENABLE_STATIC_FUSE
> +lib_LIBRARIES = liberofsfuse.a
> +liberofsfuse_a_SOURCES = main.c
> +liberofsfuse_a_CFLAGS  = -Wall -I$(top_srcdir)/include
> +liberofsfuse_a_CFLAGS += -Dmain=erofsfuse_main ${libfuse2_CFLAGS} ${libfuse3_CFLAGS} ${libselinux_CFLAGS}
> +liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
> +	${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS}

I guess this line should be the following:

-liberofsfuse_la_LIBADD  = $(top_builddir)/lib/liberofs.la ${libfuse2_LIBS} ${libfuse3_LIBS} ${liblz4_LIBS} \
-       ${libselinux_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libdeflate_LIBS} ${libzstd_LIBS} ${libqpl_LIBS}
+liberofsfuse_a_LIBADD  = $(top_builddir)/lib/liberofs.la

Since we may not have all dependent libraries, so it's up to users to use liberofsfuse.a and
link static (or dynamic) dependencies themselves.

I will update this patch manually.

Thanks,
Gao Xiang

> +endif

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2024-06-11  9:23 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-23  7:31 [PATCH] build: support building static library ComixHe
2024-05-23  8:05 ` Gao Xiang
2024-06-06  2:13   ` Chen Linxuan
2024-06-06  2:22     ` Gao Xiang
2024-06-06  2:25       ` Chen Linxuan
2024-06-06  2:45         ` Gao Xiang
2024-06-06  3:06           ` Chen Linxuan
2024-06-06  3:13             ` Gao Xiang
2024-06-06  3:17               ` Chen Linxuan
2024-06-06  3:22                 ` Gao Xiang
2024-06-06  4:18 ` [PATCH] build: support building static library liberofsfuse ComixHe
2024-06-06  6:31   ` Gao Xiang
2024-06-06  7:39   ` [PATCH v2] " ComixHe
2024-06-06  7:53     ` Gao Xiang
2024-06-11  9:23     ` Gao Xiang
  -- strict thread matches above, loose matches on Subject: below --
2024-06-06  4:55 [PATCH] build: support building static library ComixHe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.