Hi!
I'm preparing to replace src:fuse-umfuse-fat with
https://github.com/virtualsquare/fusefatfs,
which "has been developed as a replacement for fusefat"
(the previous upstream, same vendor, not really relevant),
and "is based on the FAT file system module for embedded systems
named fatfs by ChaN".
This is
http://elm-chan.org/fsw/ff/.
A DCS query for "FatFs - Generic FAT Filesystem Module" yields
* micropython
* swupdate
* tinyusb
* dolphin-emu
Actually, micropython's one is a fork:
/* This file is part of ooFatFs, a customised version of FatFs
* See
https://github.com/micropython/oofatfs for details
*/
leaving us with
swupdate R0.14a
dolphin-emu R0.14b
tinyusb R0.15 w/patch1
fusefatfs R0.15 w/patch1
Per changelog in
http://elm-chan.org/fsw/ff/updates.html,
R0.14[ab] are compatible, just bugfixes (as expected).
R0.15 is not, and needs a migration.
It's impossible to build a libfatfs.so,
because it's heavily build-time-configured (ffconf.h);
all surveyed programs deviate from the provided config.
The config header is strongly versioned against ff.h
(and ff.c) and errors out if it's mismatched.
The config changes a little bit between R0.14a and R0.14b
(but trivially, and to an extent that can be easily patched downstream
by diff -u ff14a/source/ffconf.h ffconf.h > d
cp ff14b/source/ffconf.h .
patch -p1 < d
and putting the result in d/patches).
The config changes significantly between R0.14* and R0.15
(as expected for a migration-needing version anyway).
dolphin-emu further patches its fatfs by:
s/TCHAR/FATFS_TCHAR/g
s/_T\(EXT\)?(/FATFS_&/ (these macros aren't actually used by dolphin,
but they are fatfs API)
applying
- if (((BYTE)c & 0xF1) == 0xF0) pb->ct = 3; /* 4-byte sequence? */
+ if (((BYTE)c & 0xF8) == 0xF0) pb->ct = 3; /* 4-byte sequence? */
which is a bugfix also included in fatfs 0.15
swupdate adds some licence comments, but nothing material.
I started writing this to propose some sort of hoisting,
but this no longer appears feasible. Ah well.
Best,
наб
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmcuouMACgkQvP0LAY0m WPHX6xAAlyfMBSiGaSV3xxxAfP44l7tCCNq9nXyxg1pbR52Z07w+rsam/2paDEBf /8BpC4FQqADZfwiN03WdgMs+s1MhUpXSS7+zjdCxRLntoEr5vD3N8N8+Pjx3eM0x VYykqvryOqmvwwEjyz5ruiTB1eVk3fQSp2w4UR7pCRnb8cAWmg6X3F1OBXRywokh mJEUyC4F1bnHs5EoMz7qr88BCKnHR0+skCl3yZ0RwjbiI68jPZLU4ynxkVi93Olr MEd5RG8vcfPtMXShH+ZIcq7CWsmc3MRcpydDqM5N8n0lXiNj3Z47i+WBrGXC/g0Y 9S48hsb+j4cEdZDjesmGyybXfI87xYNOkI6bJfvy68qNsjJO+Pwe2zONG+UJpEtX gDOOZSAns0E+NTTY+vH6GdueB2eqVfSwjAZnSoKFF9tc3MlrikLzHRkfmZNMpn1r xitFCHdwIc8oVNoc7iXLHRmKQoD4J2eTVJzX948WFpA2Lexb0XFyQHWXhCjkcPzW MNu4VJbZ+AeMXaZc0+13vdR4O+OXlo/H+O84aprLnNFVix4ZXFfwXf55tO7jvA3l zdDbA65f7Iv9ZP3sEB0bPz9M55XtzdOol/+KTaiLA9W1oCm5xlCY2M+YQLv3zPIL VTUeWAl3P1RbpqTFRFLgfyqJ0ysQWmm+aSz6c0vkOCYllpTMZF0=
=Pqda
-----END PGP SIGNATURE-----
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)