NTFS-3G and lwext4 portlibs.
Posted: Fri Dec 08, 2023 11:17 am
Following WinterMute's suggestion, I'd like to continue the discussion from this PR here in the forums. If you're not familiar with what was discussed, please go read the comments on the PR first.
Basically, WinterMute and I were discussing the possibility of pitching both NTFS-3G and lwext4 portlibs (currently available in libusbhsfs' repository) to the pacman-packages repository, in order to make it easier for everyone else to install and use those libraries with any Switch homebrew application.
In this particular case, though, TSRBerry (the creator of that PR) and I are very interested in streamlining the building process for libusbhsfs. It is a statically linked library that acts as a userland USB Mass Storage device driver + filesystem mounter for the Switch, which I created from scratch a couple of years ago.
It is clear to me and others that providing a system-wide solution using a background process (e.g. custom sysmodule, custom FS mitm, etc.) is not feasible. As I already explained in that PR, XorTroll and I forked Atmosphère around Q3 - Q4 2019 to create a custom sysmodule for this exact purpose, which we ended up calling fsp-usb. The idea was to eventually pitch this driver to Atmosphère, so every single user could benefit from it.
While it did work, the limited amount of resources inherent to each background system process on the Switch made it too difficult to implement all the features we wanted to provide, like support for multiple partitions (using MBR/EBR/GPT/SFD partition layouts) and multiple UMS devices at once, as well as NTFS and EXT support. Running into memory issues in this kind of projects is not uncommon -- it is normal for users themselves to run into problems if they use more than two custom sysmodules at once. Atmosphère itself also has to steal memory from other processes while dealing with certain official games.
After the discussing the topic with SciresM via Discord, we decided to scrap the project altogether. I went onto writing the UMS driver from scratch as a static library and got excellent results, which brings us back to the topic at hand.
Would you please reconsider adding these two portlibs to the pacman-packages repository? I'm willing to make any modifications to the current PKGBUILD scripts I'm using if deemed necessary.
Thanks for reading.
Basically, WinterMute and I were discussing the possibility of pitching both NTFS-3G and lwext4 portlibs (currently available in libusbhsfs' repository) to the pacman-packages repository, in order to make it easier for everyone else to install and use those libraries with any Switch homebrew application.
In this particular case, though, TSRBerry (the creator of that PR) and I are very interested in streamlining the building process for libusbhsfs. It is a statically linked library that acts as a userland USB Mass Storage device driver + filesystem mounter for the Switch, which I created from scratch a couple of years ago.
It is clear to me and others that providing a system-wide solution using a background process (e.g. custom sysmodule, custom FS mitm, etc.) is not feasible. As I already explained in that PR, XorTroll and I forked Atmosphère around Q3 - Q4 2019 to create a custom sysmodule for this exact purpose, which we ended up calling fsp-usb. The idea was to eventually pitch this driver to Atmosphère, so every single user could benefit from it.
While it did work, the limited amount of resources inherent to each background system process on the Switch made it too difficult to implement all the features we wanted to provide, like support for multiple partitions (using MBR/EBR/GPT/SFD partition layouts) and multiple UMS devices at once, as well as NTFS and EXT support. Running into memory issues in this kind of projects is not uncommon -- it is normal for users themselves to run into problems if they use more than two custom sysmodules at once. Atmosphère itself also has to steal memory from other processes while dealing with certain official games.
After the discussing the topic with SciresM via Discord, we decided to scrap the project altogether. I went onto writing the UMS driver from scratch as a static library and got excellent results, which brings us back to the topic at hand.
Would you please reconsider adding these two portlibs to the pacman-packages repository? I'm willing to make any modifications to the current PKGBUILD scripts I'm using if deemed necessary.
Thanks for reading.