For several months I am developing GnuSocialShell, a free and simple GnuSocial client write in C. Now I have compiled it for Haiku and I will make Haiku packages too. It only needs libc and libcurl (pkgman install curl_devel) to get it work.
You can read a our install guide for Haiku in our webpage or visit our repo on GitHub
Suggestions are allowed
Thanks for working on this!
Creating a haikuports recipe for packaging should be quite easy. One thing to keep in mind, however, is that Haiku doesn’t save settings in ~/.config/ but in the user’s settings folder. You find that without hardcoding a path with “finddir B_USER_SETTINGS_DIRECTORY” or in code using FindDirectory.
My idea is to create a code “standard by default” to work on a lot of Operating Systems. It uses the XDG standard to save the config. Also I will check FindDirectory and maybe I will add it to a Haiku source-code.
Whatever, you can use another configuration file using the “-c” flag, like “./gnusocialshell -c config”
Still, would be nice if the default config path could be used.
With hardcoded paths I meant the line:
sprintf(config_path, "%s/.config/gnusocialshell/gnusocialshell.conf", home_directory);
Sure, you can create .config and .config/gnusocialshell using mkdir. Then you can copy config to gnusocialshell.conf.
Also I can include something on the install recipe that if $HOME/.config not exists, will create it.
$HOME/.config is not the right place for configuration files in Haiku. B_USER_SETTINGS_DIRECTORY is, which currently resolves to $HOME/config/settings.
There are quite a few ports around that don’t care and put dot-files and folders directly in $HOME. But if you aspire to provide a perfect Haiku citizen, you may want to go the extra mile and use some #ifdef__HAIKU in the code to find B_USER_SETTINGS_DIRECTORY.
Well, I will use B_USER_SETTINGS_DIRECTORY, but now GnuSocialShell is using the XDG standard so I will change it only for Haiku.
Cool! There are a few patches for apps doing that in haikuports. If you’d like a peek, Plee-the-bear is such an example.