Child pages
  • SFE with enhanced pkgbuild
Skip to end of metadata
Go to start of metadata

saitensThere is an experimental SFE repository at GitHub which uses an experimental enhanced pkgbuild. This pkgbuild automatically installs IPS packages to satisfy dependencies and makes use of a centralized database in an easily maintained file to track how dependencies specified in spec files map into packages provided by supported distributions. Both of these refinements allow SFE to be more tightly integrated with OpenIndiana (hipster).

The Sun Studio compiler is not required to use this experimental branch of SFE. The build system uses gcc by default. Thus, a given package will be built with gcc on hipster even if it is built with Studio on Solaris.

 A Wiki at GitHub describes the enhanced pkgbuild from a developer's point of view:

 Two enhancements to pkgbuild

The enhanced pkgbuild, along with a script for creating an appropriate build environment, is available in an IPS package archive:


Here are the steps for getting started with the enhanced pkgbuild.

1. Install the packages required for building

$ wget
$ sudo pkg set-publisher -g file:///path/to/repo/oisfe-build.p5p buildh
$ sudo pkg install pkg://buildh/*

2. Create an IPS repository for the packages you build

$ sudo zfs create rpool/export/sfeoi
$ sudo chown <userid>:staff /export/sfeoi
$ pkgrepo create -s /export/sfeoi
$ pkgrepo add-publisher -s /export/sfeoi sfe
$ pkgrepo rebuild -s /export/sfeoi
$ sudo zfs snapshot rpool/export/sfeoi@empty
$ sudo pkg set-publisher -g file:///export/sfeoi/ sfe

3. Make yourself a Primary Adiministrator if you aren't one. (pkgtool uses pfexec to install packages.) You can use the User Manager GUI for this.

4. Clone the experimental hipster branch of SFE

$ git clone
$ cd spec-files-extra
$ git checkout -b hipster origin/hipster

7. Set the environment

$ /opt/dtbld/bin/
$ export PKGBUILD_IPS_SERVER=file:///export/sfeoi/

8. Build packages

$ pkgtool build --download --autodeps <spec_name>

NOTE: If, the first time you run pkgtool, you get an error like

%if: invalid boolean expression: %oihipster

run pkgtool again. That error occurred because pkgbuild started parsing a spec before pkgtool had copied a file pkgbuild needed to where pkgbuild can find it.

The experimental hipster branch of SFE uses system packages instead of SFE packages when possible to avoid needless duplication. This goes for gcc, Qt, and Boost. Two exceptions are ffmpeg and x264. Thus, if you want to try out the movie player mpv, you need to uninstall hipster's ffmpeg and x264 if you have them installed.

Here is a list of packages that have been built:

audio/mpd (sfeoi)                                 0.19.15-2013.0.0.0         i--
audio/mpd/gmpc (sfeoi)                            11.8.16-2013.0.0.0         i--
audio/mpd/mpc (sfeoi)                             0.27-2013.0.0.0            i--
audio/mpd/mpdscribble (sfeoi)                     0.22-2013.0.0.0            i--
audio/mpd/ncmpcpp (sfeoi)                         0.5.10-2013.0.0.0          ---
audio/mpd/qmpdclient (sfeoi)                      1.2.2-2013.0.0.0           i--
audio/mpg123 (sfeoi)                              1.23.4-2013.0.0.0          i--
desktop/irc/quassel (sfeoi)                       0.12.4-2013.0.0.0          i--
desktop/kchmviewer (sfeoi)                        7.5-2013.0.0.0             i--
desktop/note-taking/xournal (sfeoi)               0.4.8-2013.0.0.0           i--
desktop/publishing/lyx (sfeoi)                    2.2.1-2013.0.0.0           i--
desktop/spreadsheet/gnumeric (sfeoi)              1.10.14-2013.0.0.0         i--
desktop/word-processor/abiword (sfeoi)            2.9.4-2013.0.0.0           i--
developer/versioning/qgit (sfeoi)                 2.3-2013.0.0.0             i--
library/audio/libao (sfeoi)                       1.2.0-2013.0.0.0           i--
library/audio/libshout (sfeoi)                    2.2.2-2013.0.0.0           i--
library/audio/mpd/libmpd (sfeoi)                  11.8.17-2013.0.0.0         i--
library/audio/mpd/libmpdclient (sfeoi)            2.10-2013.0.0.0            i--
library/audio/wavpack (sfeoi)                     4.70.0-2013.0.0.0          i--
library/libzip (sfeoi)                            1.0.1-2013.0.0.0           i--
library/video/x264 (sfeoi)               i--
media/mpv (sfeoi)                                 0.18.1-2013.0.0.0          i--
media/wildmidi (sfeoi)                           i--
service/network/imap/dovecot (sfeoi)              2.2.21-2013.0.0.0          ---
sfe/developer/versioning/git (sfeoi)              2.9.1-2013.0.0.0           i--
text/kdiff3 (sfeoi)                               0.9.98-2013.0.0.0          i--
text/texlive (sfeoi)                              2016-2013.0.0.0            ---
text/texlive/texmf (sfeoi)                        2016-2013.0.0.0            ---
video/ffmpeg (sfeoi)                              3.1.2-2013.0.0.0           i--
video/youtube-dl (sfeoi)                          2016.8.10-2013.0.0.0       i--

The system packages that were installed from the encumbered repository to satisfy dependencies are the following:

audio/faac (hipster-encumbered)                   1.28-2015.0.1.0            i--
audio/faad2 (hipster-encumbered)                  2.7-2015.0.1.1             i--
audio/lame (hipster-encumbered)                   3.99.5-2015.0.2.1          i--
audio/twolame (hipster-encumbered)                0.3.13-2015.0.1.0          i--
codec/opencore-amr (hipster-encumbered)           0.1.3-2015.0.1.0           i--
library/audio/liba52 (hipster-encumbered)         0.7.4-2015.0.1.0           i--
library/audio/libgsm (hipster-encumbered)         1.0.14-2015.0.1.0          i--
library/audio/libmpcdec (hipster-encumbered)      1.2.6-2015.0.1.0           i--
library/video/libdvdread (hipster-encumbered)     5.0.3-2015.0.1.0           i--
library/video/libmms (hipster-encumbered)         0.6.4-2015.0.1.0           i--
library/video/xvid (hipster-encumbered)           1.3.4-2015.0.1.0           i--
video/rtmpdump (hipster-encumbered)               2.4-2015.0.1.0             i--
  • No labels