= !HaikuPorter = == Introduction == !HaikuPorter is a command line Python application that, using the information contained in a !HaikuPort's BepFile: * fetches the original source code archive * extracts this archive * patches the sources for compilation on Haiku * builds the software * installs the software Currently !HaikuPorter can not automatically resolve any dependencies. The !HaikuPorts project's main objective is the porting of software to Haiku, and not to create a package management system as powerful as Gentoo Portage or the FreeBSD ports system. Automatic dependency handling is therefor not high on the to-do list. !HaikuPorter depends on two files: * [HaikuPortsConf /etc/HaikuPorts.conf] - contains global !HaikuPorts options (perhaps this should be moved to B_COMMON_SETTINGS_DIRECTORY?) * a BepFile - contains specific information about a !HaikuPort == Requirements == !HaikuPorter is implemented in Python ([wiki:dev-lang/python]) which is included with the Haiku R1/Alpha1 release. One of the goals of !HaikuPorter is to be as simple as possible. This includes minimizing dependence on external programs. Currently !HaikuPorter requires the following: * rm (included with Haiku) * tar (included with Haiku) * unzip (included with Haiku) * patch (included with Haiku) * any programs used for building and installing !HaikuPorts. These should be limited to: * GNU make (included with Haiku) * gcc-2.95.3 (included with Haiku) * CMake * others? Other dependencies should be listed in the port's BepFile. == Usage == '''WARNING''' - !HaikuPorter is currently in alpha stage. No one should be actually using it! Usage information can be obtained by invoking !HaikuPorter with the {{{-h}}} option: {{{ $ haikuporter -h usage: haikuporter [options] portname[-portversion] options: --version show program's version number and exit -h, --help show this help message and exit -p, --nopatch don't patch the sources, just download and unpack -b, --nobuild don't build the port, just download, unpack and patch -i, --install also install the port (the default is to only build) -c, --clean clean the working directory of the specified port }}} Note that this information may become obsolete as new versions of !HaikuPorter might add or remove command line options. When passing only a port name to !HaikuPorter, it will return the port versions available, if any. To fetch, patch and build a port, both the port name and the port version need to be specified, separated with a hyphen. By default, !HaikuPorter will not install the port. You need to specify the {{{--install}}} (or {{{-i}}}) option for that.