HaikuPorts
  • Login
  • Preferences
  • Help/Guide
  • Wiki
  • Timeline
  • Roadmap
  • View Tickets
  • Search
  • Port Log
  • Blog
wiki:HaikuPorter

Context Navigation

  • Start Page
  • Index
  • History

Last modified 12 years ago

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
  • zips up the resulting binary for distribution

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:

  • /etc/HaikuPorts.conf - contains global HaikuPorts options (this should be moved to B_COMMON_SETTINGS_DIRECTORY)
  • a BepFile - contains specific information about a HaikuPort

Requirements

HaikuPorter is implemented in Python (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
    • XZ-utils (if using the -z option)
    • others?

Other dependencies should be listed in the port's BepFile.

Usage

WARNING - HaikuPorter is currently in development. Be sure to check over the resulting builds for any issues prior to posting them publicly. If you find broken .bep files be sure to post a trac ticket (and attach a fixed .bep if you fix it).

Usage information can be obtained by invoking HaikuPorter with the -h option:

$ haikuporter -h
usage: haikuporter [options] portname[-portversion]

options:
  -h, --help     show this help message and exit
  -v, --version  show program's version number and exit

  -a, --about    show description of the specified port
  -b, --nobuild  don't build the port, just download, unpack and patch
  -c, --clean    clean the working directory of the specified port
  -d, --distro   make distribution package of the specified port (include download, unpack, patch, build)
  -f, --force    force to perform the steps (unpack, patch, build)
  -g, --get      get ports tree
  -i, --install  also install the port (the default is to only build)
  -l, --list     list available ports
  -p, --nopatch  don't patch the sources, just download and unpack
  -s, --search   search for a port (regex)
  -t, --tree     print out the location of the haikuports source tree
  -z, --archive  create a patched source archive as <package>_haiku.tar.xz
  --test         run tests on resulting binaries
  --lint         scan the ports tree for problems

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.

Download in other formats:

  • Plain Text

Trac Powered

Powered by Trac 0.13dev-r10686
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/