What is the Spec Files Extra repository?
The SFE package repository is an "extras" package repository, supplementing the core OI distribution with additional software from the Spec Files Extra project.
It contains a wide variety of software, including:
- Various languages and compilers (gcc 4.6.2, Steel Bank Common Lisp, the Glasgow Haskell Compiler, Python 3)
- Various daemons and database programs (PostgreSQL, dovecot, postfix)
- Qt 4.7 and some applications which use it (the Scribus desktop publishing system, the LyX LaTeX front end, the Arora Web browser)
- Multimedia applications (Music Player Daemon and several clients, FFmpeg, mplayer2, vlc, MKVToolnix)
Using the SFE repos
Spec Files Extra has two repos, "sfe", and "sfe-encumbered". The sfe repository does not knowingly violate any software patents, and is safe to use.
However the sfe-encumbered repo does contain software known to infringe upon software patents. If you are in the United States, please be advised you may be violating the law if you use this repository. If you are in a country that does not uphold pure software patents, such as many European countries (e.g. the UK), you may ignore this warning.
To install packages from sfe, simply run:
To install packages from sfe-encumbered, simply run:
You can browse the contents of the repository with a Web browser by visiting the above URLs. However it is easier to navigate through the contents of the repository by viewing it inside Package Manager (System -> Administration -> Package Manager or, from the command line:
packagemanager). To show only the contents of this repository, choose "sfe" or "sfe-encumbered" in the "Publisher" menu.
|Required OpenIndiana Build|
To use this repository, you must be using oi_151a. You can upgrade from OI 147 or 148 by following our Upgrading OpenIndiana instructions
gcc-4 runtime from opensolaris.org
If you have the legacy gcc-4 runtime from the opensolaris.org publisher installed, you will run into trouble. We would strongly recommend uninstalling it by running:
You do not need them anyway, since the SFE IPS repository provides a much newer gcc. Also, the gcc-4 builds were non-functional.
gcc-46 is not able to compile .c/c++ files
If you are getting something like this:
then probably you don't have some packages installed. At the moment these packages should be installed to correctly setup the build environment:
You can check the packages list in the SFE bootstrap script here: http://tinyurl.com/bootstrap-sfe-latest-os20nn.
VirtualBox and GCC 4.6 libgcc_s.so.1
SFE delivers symlinks for libgcc_s.so.1 and libstdc++.so.6 into /usr/lib as the OpenIndiana project intends to transition to gcc 4.6 as its default compiler. At the present time, this is known to break VirtualBox. You can fix this by invoking the VirtualBox binary as follows:
Or the following if you are on a 32 bit system:
If that does not work (as it does not seem to with recent versions of VirtualBox), this should:
Another workaround, which does not require you to set an environment variable each time you run VirtualBox, is given at the vbox bugtracker. It is the first workaround at that link, the one that involves replacing the file VBoxSVC with a small script (while renaming the original file).
If you run into any bugs, please report them at https://www.illumos.org/projects/oi-sfe/issues stating the name of the package. Also, maintainers of SFE specs hang out at the IRC channel
#pkgbuild, so you might be able to expedite matters by mentioning any problems there first.
Notes on the packages
At present, there are two main multimedia applications at the repository: MPD (Music Player Daemon) for playing music, and mplayer2 for playing videos. The repository also has VLC, but the port of that to OpenIndiana is a work in progress, and playing actual physical DVDs directly is not yet supported. If you don't like playing videos from the command line, it is recommended that you use smplayer, a nice GUI front end to mplayer, unless you have a good reason to use VLC.
MPD is a music player that, this being Unix, follows the client/server model. MPD runs as a server, and there are numerous clients available for it. The SFE IPS repository presently has three GUI clients—gmpc, Sonata, and qmpdclient—and two command line clients, ncmpcpp and mpc. (mpc is a very basic client intended mostly for being used in scripts.)
mplayer2 is a fork of MPlayer. The main reason we chose mplayer2 over the unforked, original mplayer1 is that mplayer2 can link to external libraries supplied by FFmpeg, which do the actual decoding. (mplayer1 uses its own FFmpeg.) This makes it easier to maintain mplayer2 than mplayer1, since packagers can concentrate on maintaining FFmpeg, which changes more quickly than mplayer, as opposed to needing to update mplayer1 each time FFmpeg changes.
A notable difference between mplayer2 and mplayer1 is that mplayer2 does not provide mencoder, which even the mplayer1 developers now consider to be deprecated. Recent versions of mencoder have been observed to produce serious audio sync problems with x264. Therefore, if you want to encode videos, it is recommended that you use ffmpeg, which comes with the SFE OI package
Since OpenIndiana comes with the Gnome desktop environment, its native widget toolkit is GTK+. However, there are many useful applications which use GTK's arch rival, Qt. For example, the only usable browser other than Firefox presently available for OpenIndiana appears to be Arora, which descends from a demo app for the Qt WebKit port. (WebKit is the html rendering engine used by Google Chrome, among others.)
it is possible to make Qt applications harmonize fairly well with the native OpenIndiana Gnome desktop. To do so, after you have installed a Qt application such as
/usr/g++/bin/qtconfig and select GTK+ as the GUI Style.
To make Qt use anti-aliased fonts, create
.fonts.conf in your home directory containing the following:
This is necessary because Qt applications do not respect Gnome setting unless KDE is installed.
The easiest way to use Xfce is to just install all the packages by doing (as root)
pkg install xfce/*. To boot into Xfce, simply log out, type in your user name at the login prompt and hit return, and select Xfce from the session menu that appears in the bar at the bottom.
The above install command will not install xfce-terminal, since its prefix is
xfce. So if you want it, you need to install it separately.
NOTE. An obsolete package, xfce-loginmanager, was inadvertently added to the repository. It can keep Xfce from starting and has since been removed. If you installed it, do the following:
pkg uninstall xfce-loginmanager
pkg verify xfce-utils
If the latter shows that there is a problem (if there is no problem, it will not print anything), run
pfexec pkg fix xfce-utils
That will restore a file provided by xfce-utils that xfce-loginmanager overwrote.