Skip to content
humdinger edited this page Feb 10, 2020 · 41 revisions

Welcome to HaikuPorts!

HaikuPorts is a centralized collection of software ported to the Haiku platform. Haiku has many API advantages over BeOS and Zeta, including but not limited to better POSIX compatibility. The main goal of this site is to facilitate cooperation towards porting efforts.

HaikuPorter

The HaikuPorter tool is provided to ease the fetching, patching and building of source code. It can be compared to a slim version of Gentoo Portage. Each port contains the Haiku-specific patches to the original source code. It fetches the original source code, applies the Haiku-specific patches, builds the software, and packages it.

Setting Up HaikuPorts

HaikuPorts installation can be done via the following command sequence:

git clone https://github.com/haikuports/haikuporter.git --depth=50
git clone https://github.com/haikuports/haikuports.git --depth=50
cd haikuporter
cp haikuports-sample.conf /boot/home/config/settings/haikuports.conf # Copy the config file
lpe ~/config/settings/haikuports.conf # and edit it

In the haikuports.conf file you need to set the PACKAGER variable to your name/email and the TREE_PATH to where you've cloned the haikuports repo. More information on the variables in the haikuports.conf file can be found here.

If you ran the above steps in /boot/home/ (aka. ~), you can then symlink haikuporter so that you can run it from anywhere:

ln -s /boot/home/haikuporter/haikuporter /boot/home/config/non-packaged/bin/

Tips:

Put this into your ~/config/settings/profile to search for a string in all patches/recipes with "inpatch {searchstring}" or "inrecipe {searchstring}" and build a package with hp {packagename} (adjust your /path/to/your/haikuports/; the -j8 is the number of cores used for compiling. You may have to create the file "profile" if it doesn't exist already.):

function inpatches() { grep -rni $1 /path/to/haikuports/*/*/patches/*; }
function inrecipe { find /path/to/haikuports -maxdepth 3 -name "*.recipe" \
| xargs grep -ni --col $1; }


alias hp="haikuporter -S -j8 --no-source-packages --get-dependencies"

You can use this page to check packages which need an update to a newer version:

https://repology.org/metapackages/outdated-in-repo/haikuports_master/q/

Get Involved

Documentation

Haiku has moved to Package Management and HaikuPorter has changed to support that move: HaikuPorterForPM

Beginners should read through "A Gentle Introduction to HaikuPorter" Part 1 and Part 2.

More advanced users should be aware of the Policies HaikuPorts abides by.