Skip to content

borg on haiku #4117

Closed
Closed
@ThomasWaldmann

Description

@ThomasWaldmann

I was curious whether borg could work on haiku, so I tried borg 1.1.7 on Haiku OS R1/beta1 32bit:

borg seems to work.

I am not a haiku user, so I won't do the necessary changes to borg nor more extensive testing (nor packaging for haiku), but PRs are welcome.

Here are some notes about it for whoever wants to work on it:

I started with installing Haiku OS R1/beta1 from the ISO into VirtualBox - see their notes about installing into VirtualBox (esp. the hint about the Pro/1000 NIC card, to get a working network connection).

Then I installed some obviously needed stuff (see our docs): python3, pip3

Also installed zstd and lz4 (but guess this is not really needed as we bundle them).

I didn't install libacl nor libattr, haiku does not have them. Also no libb2 (blake2) in haiku, but borg bundles it, so no problem.

My first tries failed because it did not find the openssl headers (see code in our setup.py).

There are 2 problems:

  • the openssl header location on haiku is not in our default search list
  • even if it was, it would not work as it has headers/ instead of include/ in the path component after the prefix (which is hardcoded in current setup.py)

I hacked around them by creating a symbolic link in my home dir like include --> /boot/.../headers/ and then pointed BORG_OPENSSL_PREFIX to my home dir. :-)

After that, it stumbled over the too old default gcc 2.95. The setarch x86 command fixed that, then it compiled successfully with gcc 7.

I did some quick manual tests, borg init, create, list seemed to work ok.

TODO:

  • FIXED by use pkg-config / refactor setup code #4437? : fix setup.py to be more flexible finding header files
  • run the automated test suite of borg on haiku
  • do more practical testing
  • test on 32 and 64bit haiku
  • if there is platform specific stuff a backup program needs to support for haiku / BeFS, implement it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    os: othernot Linux and not an OS we have another label for

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions