What's New in pkgsrc-2013Q1

April 15, 2013 - by Jonathan Perkin

This is a guest post from Jonathan Perkin. Jonathan was the systems administrator for the BBC UK for six years and the release engineer/manager of MySQL for five years. Throughout his time at both companies, he was committed to improving pkgsrc on Solaris and has finally landed at Joyent, where he hacks on pkgsrc and SmartOS.

The latest branch of pkgsrc was released at the beginning of April, and binary packages for SmartOS/illumos and OSX are now available.

Instructions for installing, as well as a list of the major new features in pkgsrc-2013Q1 are below.


The instructions are similar to previous branches.


SmartOS users are encouraged to use our pre-built machine images, and installing your choice of base/standard image with version 13.1.x (available very soon) will get you a pkgsrc-2013Q1 based image.

For general illumos users or SmartOS users who want access to a full package set, the instructions are below:

# curl http://pkgsrc.smartos.org/packages/illumos/bootstrap/bootstrap-2013Q1-illumos.tar.gz | gtar -zxpf - -C /
# PATH=/opt/pkg/sbin:/opt/pkg/bin:$PATH
# pkgin -y update
# pkgin avail | wc -l
# pkgin search <package>
# pkgin -y install <package> <package...>


Beginning with pkgsrc-2013Q1 I will now be providing regular builds for OSX. Again, the instructions are similar to those previously provided.

These packages are built on OSX Leopard (10.5) but use the PREFER_PKGSRC mechanism to ensure that they are portable across OSX releases, and have been successfully tested on OSX Lion (10.7).

$ curl http://pkgsrc.smartos.org/packages/Darwin/bootstrap/bootstrap-2013Q1-Darwin.tar.gz | sudo gnutar -zxpf - -C /
$ PATH=/usr/pkg/sbin:/usr/pkg/bin:$PATH
$ sudo pkgin -y update
$ pkgin avail | wc -l
$ pkgin search <package>
$ sudo pkgin -y install <package> <package...>

What’s New

As usual there were many hundreds of changes which went into this quarterly release of pkgsrc. Here are some of the more interesting and useful changes.

OpenSSL 1.0.1 with AES-NI support

OpenSSL has been upgraded from the 0.9.8 series to the 1.0.1 series. The driving reason to pursue this upgrade was to take advantage of AES-NI support which significantly improves crypto performance on Intel CPUs which provide that feature.

On my OSX 10.7 Core i7 laptop the numbers below speak for themselves:

: /usr/bin/openssl 'OpenSSL 0.9.8r 8 Feb 2011'
$ openssl speed -evp aes-128-cbc
  type             16 bytes     64 bytes     256 bytes     1024 bytes    8192 bytes
  aes-128-cbc      157297.05k   173874.73k   176805.45k    177719.17k    179441.78k

: pkgsrc openssl 'OpenSSL 1.0.1e 11 Feb 2013'
$ openssl speed -evp aes-128-cbc
  type             16 bytes     64 bytes     256 bytes     1024  bytes   8192 bytes
  aes-128-cbc      643315.29k   685811.37k   696899.67k    699977.39k    693968.90k

A pretty significant 4x improvement for many hundreds of applications which use OpenSSL for crypto.

GCC Go support for SmartOS/illumos

Go is a reasonably new programming language from Google that a number of our users have asked us to support, so we are pleased to announce that beginning with pkgsrc-2013Q1 you will be able to use the gccgo front-end to compile and run Go applications on SmartOS.

You simply compile the go source code as you would for any other language that GCC supports, for example:

 # pkgin -y install gcc47

 : /opt/pkg for the illumos package set, /opt/local for SmartOS datasets..
 # PATH=/opt/pkg/gcc47/bin:$PATH

 # gccgo app.go -o app
 # ./app

Networking utilities on SmartOS

Thanks to initial work by @postwait there is now proper Zone support in libpcap, which has opened up the possibility to run a number of networking utilities in Joyent SmartMachines.

Yes, this means you can finally run tcpdump instead of snoop.

One of my favourites is trafshow which is a top-like interface for network, and looks like this:

Alternatively you can try nicstat for a more {io,mp,vm}stat style display.

Major package versions

As usual there was also a slew of version updates, and the most notable package versions are listed below. These of course are not exhaustive lists.


  • Clang 3.2
  • GCC 4.7.2
  • Git
  • Mercurial 2.5.2
  • Subversion 1.6.20, 1.7.8


  • Lua 5.1.15
  • Node.js 0.8.23, 0.10.2
  • Ocaml 4.00.1
  • Oracle JRE/JDK 6.0.37, 7.0.15
  • Perl 5.16.2
  • PHP 5.3.23, 5.4.13
  • Python 2.6.8, 2.7.3, 3.1.5, 3.2.3, 3.3.0
  • R 2.15.1
  • Ruby, 1.9.3p392

Web Stack:

  • Apache 1.3.42, 2.0.64, 2.2.24, 2.4.4
  • CouchDB 1.2.1
  • MongoDB 2.2.2
  • MySQL 5.0.96, 5.1.67, 5.5.30, 5.6.10
  • Nginx 1.2.7, 1.3.14
  • PostgreSQL 8.3.23, 8.4.17, 9.0.13, 9.1.9, 9.2.4
  • Riak 1.2.1


  • evilwm 1.1.0
  • GNOME 2.32.1, 3.6.2
  • KDE 3.5.10, 4.8.4
  • XFCE 4.6.1