Hello Jeff, Thanks for including me, even though my contrib was really small :) I'm fine with dropping support though. Thanks, BR On March 19, 2021 21:10:35 Jeff Mahoney <jeffm@suse.com> wrote:
Hi Martin, Dirk, Paolo, (and Leituviu?) -
I wasn't thinking and didn't include recent committers to the testdisk and partclone packages in my initial post. Neither has a listed maintainer for the openSUSE packages. I'd like feedback on whether libreiserfs support can be dropped from these packages.
The TL;DR version of the below is that I inherited libreiserfs at some point. I haven't maintained it except for a small build fix years ago and will not maintain it. libreiserfs is only used as a direct dependency by these two packages. It was a transitive dependency via parted, but that dependency has been obsolete since 2011 and I've pushed an SR to fix that. Reiserfs support for the dozen or so other packages that require it is provided by the libreiserfscore0 library from the 'reiserfs' package that I do maintain. The libreiserfs package is an abandoned project that has no official location from which to download it and hasn't been updated since 2004 except when people notice the build has broken and fix it.
The alternatives to dropping support for libreiserfs is that someone else steps up to maintain it or someone steps up to port the reiserfs functionality to libreiserfscore0. The functionality in partclone is pretty trivial but the functionality in testdisk is more involved (and has to be buggy already, based on the interfaces).
Thanks,
-Jeff
On 3/19/21 12:25 PM, Jeff Mahoney wrote:
On 3/19/21 12:09 PM, Neal Gompa wrote:
On Fri, Mar 19, 2021 at 12:01 PM Jeff Mahoney <jeffm@suse.com> wrote:
Hi all -
I'm technically the maintainer for the libreiserfs package. Outside of a minor build fix years ago, I've had nothing to do with it. Best I can tell, it was originally brought in for parted in 2005 and then used by the 'testdisk' and 'partclone' pacakges in Factory (but never SLE). The official reiserfsprogs are maintained by me upstream (handwavy, they don't take much maintenance), and are available on kernel.org. Libreiserfs hasn't been touched by its author since 2004 and has no official location for download. We have a copy cached. Other distros have a copy cached. That's it.
Parted stopped using file system libraries for any file system in 2011 and the dependencies are obsolete. I've filed submit requests for SLE and the Base:System project to remove them.
Testdisk uses it to recover reiserfs file systems, but it's clear it hasn't seen real usage or even testing. The libreiserfs API to iterate over file contents is restricted to blocks, which means that any file tails would be skipped entirely. Digging through the code, it also shows that even if that functionality was to be used, it requires patches be applied to libreiserfs which we are not applying. It can't work.
Partclone uses the library to iterate over the block-in-use bitmap to copy only the parts of the file system in use. That's simple to switch over to libreiserfscore but I'm not volunteering to do it. Practically, as these would be old file systems and on relatively small devices compared to today's devices. Reiserfs has an official file system size limit of 16 TB but a practical limit of 8 TB. Outside of a very specific customer request a long time ago, I've never seen anyone trying to use it on devices that large. It's also pretty unlikely that anyone with file systems that old that they are using and don't want to migrate are using Tumbleweed or, really, any recent release. dd will work just fine.
Both of these packages reference that libreiserfs is optional and give no hint as to where to locate it. Outside of our own enabling that support, I doubt it's used anywhere.
So, we have a situation where we have a library that has been abandoned by its author and two relatively simple dependencies for a file system that may still be in use for very old file systems (which also means relatively small file systems compared to today's device sizes), and for very limited use cases. In some cases those are broken as well.
Someone else is welcome to step up to maintain this library and keep those packages working with reiserfs (and fix those bugs) and I'm happy to turn it over, but the real question is: do we really need to keep this functionality around?
So, my proposal is: - Remove libreiserfs as a dependency for parted (already submitted, not much to discuss here) - Remove libreiserfs as a dependency for partclone and testdisk. - Remove libreiserfs entirely.
Isn't this used by btrfs-progs to support reiserfs->btrfs conversions? Do we care that would be broken going forward?
No. libreiserfs was a separate implementation that was never officially adopted as part of the reiserfs project. btrfsprogs and a little over a dozen other package use libreiserfscore0 from reiserfsprogs (our 'reiserfs' package) for reiserfs support.
-Jeff
-- Jeff Mahoney Director, SUSE Labs Data & Performance