@Pawlicker I did not say there were "directories are jank on BSD" and I was able to get it running on OpenBSD just fine, except some problems with running GNU Social on PHP 8.1
@gnusocialjp The problem is that GNU social has a sort of custom database abstraction built atop the PEAR package "MDB2" that hasn't been updated for over a decade now, which was primarily targeting PHP 4 and 5 support at the time. The problem is there may be some breaking changes in PHP 7 or 8, while that package (MDB2) is unmaintained. There's also some temporary architectural workarounds in GNU social that were put there, and never refactored for over a decade and counting (e.g. instantiate an instance of User, and use the getDatabaseConnection() method, just to grab the current instance of the database connection; in lib/database/schema.php). Nonetheless, if you try installing GNU social on PHP 8+, the installer breaks upon registering the first user and is left in an inconsistent state, requiring the database and config to be wiped before retrying the install.
I'd be willing to assist with any improvements to GNU social as well, I just don't know where the active project is. The repo referenced on the gnusocial.network website seems fairly inactive, and the last most active contributor hasn't made their own contributions in over a year, and their fedi instance is "currently offline". I don't know if there's a third-party effort elsewhere that has more activity.
I think it may solve this issue by appending following code on head of lib/util/framework.php.
// Avoid conflicting with standard PEAR.
set_include_path(__DIR__ . PATH_SEPARATOR . get_include_path());
I will try it on this weekend. Please wait. If you want to fix soon, I recommend use PHPv7.4.
If you want to join discussion, please join chat or mailing list (https://www.gnusocial.rocks/, this is current official site.). I check every day.
@gnusocialjp I didn't have any issue with it conflicting with separately installed PEAR packages, it was more to do with issues internal to MDB2 itself. It was this issue that I was running into: https://notabug.org/diogo/gnu-social/issues/248 Meanwhile it was possible to getting around it using this very hackish workaround: https://notabug.org/diogo/gnu-social/pulls/252/files (I'm assuming something returned false in error, and that's just sidestepping it). Either way, it may be appropriate to just gut out MDB2 and work with PHP PDO directly as part of some DB code refactoring, but I understand that could be a monumental task. If there's interest in such an effort, I could try jumping into working on something like that perhaps. I think the inclusion of MDB2 was probably for an unfinished idea back in StatusNet days to have an ORM-like interface with the database, but never really finished, but that's just my assumptions in a cursory review of the code when I was trying to pin down the installer issue.