NSLS-II Controls Package Repository

This repository contains installable software packages in the Debian Linux format (.deb) built from sources which can be found in epicsdeb project on GitHub. The software packaged includes the EPICS distributed control framework, the RTEMS real-time operating system, and related packages. Our goal is to provide a fully functional and consistent EPICS environment for users and developers.

Packages in this repository were developed by EPICS community members and are used by the NSLS-II Controls Group. When populating the repository, we rely on community efforts to develop, test, and package for epicsdeb project on GitHub. In published packages, no NSLS-II specific modification have been made except if directly present in software source.

There are two repositories available: Legacy and Current. In Current, most built packages are available for Debian jessie (8) on i386 and amd64 for EPICS Base 3.15. However, packages can be used with most Debian derived distributions (ie. Ubuntu).

Package listings by release point

Debian Release NSLS-II Release
Jessie (8.x) jessie stable
Stretch (9.x) stretch
Buster (10.x) buster

Legacy repository can be found here.

Getting Started

Below are instructions for setting up a Debian 8 (jessie) system to use the NSLS-II repository. In early 2018, all NSLS-II public websites were moved to use HTTPS protocol, so additional set-up steps are required:
  1. Install HTTPS transport for APT:
    # apt-get install apt-transport-https
  2. Download the repository signing key:
  3. Add the key to the APT keyring with the following command.
    # apt-key add repo-key.pub
  4. Add the following lines to: /etc/apt/sources.list
    deb https://epicsdeb.bnl.gov/debian/ jessie main contrib
    deb-src https://epicsdeb.bnl.gov/debian/ jessie main contrib
    - Remember the space between debian/ and jessie.
    - Ensure that you include the 'contrib' on 'non-free' sections of the main repository for Open Motif id using EDM
  5. Fetch the list of packages.
    # apt-get update
  6. Install packages.
    # apt-get install [see list below...]

Useful groups of packages to install

As an example

# apt-get install asyn

This has installed the asyn module files in default system location (/usr/lib/epics). For a full list of installable packages refer to the package listing above.

Partial List of Packaged Software

Some package which will probably be of interest.

Name Description
edm The Extensible Display Manager
python-cothread Simple and powerful Python language bindings for EPICS Channel Access clients
epics-catools Command Line tools (caget, caput, camonitor, ...)
Linux softIOCs
epics-dev EPICS Base headers and utilities.
procserv Process Server. For running softIoc as daemons.
sysv-rc-softioc SysV style script to start softIocs automatically at boot.
rtems-gesys-mvme3100 RTEMS Generic System Application (for Emerson MVME3100)
rtems-epics-mvme3100 EPICS for RTEMS on MVME3100


In the new repository setup, RTEMS build profiles are disabled since Debian Stretch (9) and further. Currently only the following architectures and Board Support Packages are included.

Architecture BSP name
i386 pc386
powerpc mvme2100
powerpc mvme2307
powerpc mvme3100
powerpc mvme5500


Releases are made by making a copy of the current (stable) repository and giving it a name. Ideally, once a release is made it should receive only bug-fixes. Following snapshots are available:

Name Date Debian Release EPICS Base
jessie/main Beginning of 2018 Jessie (8.0) 3.15.3

Building Packages from Source

All source code used to produce the precompiled binary packages in this repository is also present as source packages. These can be obtained and built in two ways.

All binary packages in this repository are built in a clean snapshot of a virtual machine (QEmu or VirualBox). This is done to verify build dependecies and to guard against unintended dependecies.

Release Source

Simply request the source package from the repository.

$ mkdir dpack
$ cd dpack
$ sudo apt-get build-dep epics-base
$ apt-get source epics-base
$ cd epics-base-3.14.10
$ debuild -us -uc
$ cd ..
$ sudo dpkg -i *.deb

Versioned Source

The source and patches of all packages are tracked with the Git version control system. These Git repositories use Pristine-tar to store the tarball. Allowing them to be entirely self contained. The git-buildpackage tool can be used to control the build process.

$ mkdir dpack
$ cd dpack
$ mkdir tmp
$ git clone https://github.com/epicsdeb/epics-base.git
$ cd epics-base
$ git-buildpackage --git-pristine-tar --git-export-dir=$PWD/../tmp

All Git repositories are available on GitHub in epicsdeb project for anonymous read-only access.

© 2018 Brookhaven National Lab
Originally created by: Michael Davidsaver
Currently maintained by: Anton Derbenev, Leon Flaks