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