Skip to content

Building binaries on FreeBSD

Marcin Cieślak edited this page Apr 22, 2015 · 27 revisions

FreeBSD binaries are built using Poudriere, a FreeBSD-specific tool to build binary packages using a clean-room environment. Poudriere:

  • Creates and manages lightweight virtual environments (jails) for i386 and amd64
  • Keeps virtual environments up to date
  • Manages the building process, logging and packaging. It can expose results via the HTTP interface.

Another tools being used is portshaker which helps to merge different FreeBSD port trees and keep them up to date. A FreeBSD port tree describes how applications should be built into binary packages and installed. This is the standard way of building third-party software on FreeBSD.

#Custom ports tree

Since node-sass and many npm packages are not yet part of the official FreeBSD ports tree, we maintain a custom ports tree which contains the necessary elements. That's why we need portshaker to combine the official tree (containing python, compilers, node) and the custom tree.

We currently have the following custom ports:

Port name Description
misc/node-gyp-headers Development headers for various node and iojs versions
www/iojs42 Old version of io.js 1.0.4 to build binaries for NODE_MODULE_VERSION == 42
www/npm npm port modified to support io.js 1.0.4 as well as to workaround segfault in i386 environment
textproc/libsass updated libsass FreeBSD port
textproc/sassc sassc to match the updated libsass
textproc/node-sass Instructions how to build node-sass (depends on the libsass port)
Clone this wiki locally