Ready-made packages of software for running on the Rumprun unikernel
C++ Makefile C Shell Python JavaScript Other
Latest commit 35edc5e Mar 22, 2017 @thehajime thehajime committed on GitHub Merge pull request #136 from libos-nuse/fix-test-errors
Two fixes for rumprun-package test on travis-ci.

- update URL for apache2 related tarballs.
- install genisoimage package
Permalink
Failed to load latest commit information.
apache2 apache2: fix tarball location Mar 13, 2017
erlang the default strategy taken by the Erlang build system is to Sep 4, 2016
haproxy upgrade haproxy to v1.6.4 Mar 20, 2016
hiawatha rumpbake -> rumprun-bake Feb 15, 2016
leveldb rumpbake -> rumprun-bake Feb 15, 2016
libcurl Initial packaging of libcurl Jan 12, 2016
libevent Add the libevent package Jan 28, 2016
libffi Add OpenJDK8 package and libffi for zero build Aug 17, 2016
libressl libressl: update to latest stable (2.4.2) Aug 25, 2016
libxml2 [libxml2] Upgrades to v2.9.3 Dec 12, 2015
mathopd rumpbake -> rumprun-bake Feb 15, 2016
memcached Update memcached version Jul 6, 2016
mpg123 mpg123: use new-style maintainer info Nov 29, 2015
mysql Update mysql to 5.6.29 Feb 24, 2016
nanomsg Nanomsg description Jan 28, 2016
nginx update nginx rumprun README Dec 22, 2016
ngircd ngircd: use pkg ssl May 11, 2016
nodejs Update Ghost to 0.7.8 and Node to 4.3.0 and 5.6.0 Feb 18, 2016
openjdk8 openjdk8: make sure jar directory exists Aug 19, 2016
openmp Fixed some typos Jan 22, 2016
openssl Erlang R-19.0-rc2 requires additional ciphers and while others might … Jun 14, 2016
ovs Add Open vswitch unikernel Dec 31, 2016
pcre pcre: update to version 8.40. Feb 20, 2017
php5 php5: use pkg ssl May 11, 2016
php7 Merge pull request #88 from rumpkernel/Mato-php7 Mar 3, 2016
pkgs libxml now builds to a /pkgs directory. Jul 20, 2015
python3 Add greenlet support Nov 8, 2016
redis Fixed typo in README Apr 4, 2016
roundcube roundcube: use "stubetc" files from rumprun destdir. Feb 16, 2016
ruby Ruby: fix build Aug 16, 2016
rust rust: Add instructions for pre-built cross-std binaries Mar 9, 2016
scripts Fix apply-patches.sh Oct 6, 2015
servus Patch Feb 20, 2017
sqlite Add the sqlite database package Nov 12, 2015
tor use Makefile.deps for existing libssl depends May 11, 2016
zerobuf Patch Feb 20, 2017
zeromq ZeroBuf Feb 19, 2017
.gitignore Adds downloads and build artifacts to gitignore. Dec 12, 2015
.travis-install.sh apt-get update before installing dependencies Aug 19, 2016
.travis-script.sh Add OpenJDK8 package and libffi for zero build Aug 17, 2016
.travis-trigger.sh Travis: Add trigger script FTR Mar 4, 2016
.travis.yml add add genisoimage apt package Mar 21, 2017
LICENSE add license, CC0 unless otherwise specified Jul 2, 2015
Makefile Add top-level Makefile with simple 'make world' Jul 8, 2015
Makefile.deps introduce Makefile.deps to try to avoid copypasteware May 11, 2016
Makefile.inc add RUMPRUN_SSL variable to control ssl implementation May 11, 2016
README.md Update README Dec 7, 2016
config.mk.dist openssl is another alternative Jun 12, 2016

README.md

Rumprun-packages Build Status

Rumprun-packages is a work-in-progress repository for software running on the Rumprun unikernel.

Packaging is done in a BSD ports-like fashion, with individual packages as subdirectories of this repository.

NOTE to users: check the license of each individual package to make sure it suits your deployment needs. Unlike everything else provided by the rump kernel project, we do not guarantee a BSD, ISC or CC0 style license for every piece of 3rd party software linked from here.

We are working towards choosing a real packaging system, with support for versions and dependencies. Until we reach that point, this repo is meant to assemble the build scripts and patches for running various applications on Rumprun unikernels.

Building packages

To get started:

  1. Build a Rumprun toolchain (with build-rr.sh in the rumprun repo).
  2. Add destdir/bin from Step 1 to your $PATH by . "$(pwd)/obj-amd64-<arch>/config-PATH.sh".
  3. Copy the config.mk.dist file to config.mk and set RUMPRUN_TOOLCHAIN_TUPLE to specify the compiler toolchain to use for building, for example, x86_64-rumprun-netbsd or i486-rumprun-netbsdelf.
  4. Refer to the package-specific README file for build instructions.

Tutorials you may want to complete for more in-depth knowledge:

Contributing new packages

New packages are contributed by creating the package and, after sufficient testing, opening a pull request. If you are a contributor with push access to rumprun-packages, you may also push directly into the repository instead of going the pull request route. If you push directly, make sure you push only the commit(s) you meant to push. Opening a pull request and merging it from the GitHub web interface gives you an extra review step, so it is safer in that regard.

When creating new packages, include the following sections in the package-specific README:

  • Overview: name of the package, version number, and a sentence or two on how the package can be used
    • Maintainer: maintainer of the package (you!). Required: github account. Optional: name, email address, irc nick.
  • Instructions [if an application and not e.g. library]: free-form description of how to bake the packaged software
  • Examples [optional but highly recommended]: a few examples on how to run/use the resulting package

We require that new packages have a maintainer. A maintainer should generally be interested in the welfare of a package by answering potential user questions, addressing problem reports, and updating the package especially when security vulnerabilities are discovered. All maintainers are given push access to the repository. In case you created a package but do not want to maintain it, submit a pull request anyway; we will mark the pull request as maintainer wanted, and if someone who needs the software comes along and is willing to be maintainer, they potentially do not have to start from scratch.

When creating new packages, renaming or removing existing packages, please update .travis.yml to reflect your changes, and .travis-install.sh if your package has any build dependencies not installed in the Travis CI environment we use (dist: trusty).

If something is unclear, see existing packages for examples or ask on the mailing list or on irc.

Travis CI integration

Due to the time taken for a complete build of all packages (3+ hours as of this writing) we do not use the traditional model of triggering a build on each commit. Instead, full builds of all packages are triggered twice a day, currently at 6am and 6pm CET.

Pull requests are not currently built as there is no straightforward way to get Travis to build only the subset of packages affected by a pull request.