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:- Install HTTPS transport for APT:
# apt-get install apt-transport-https - Download the repository signing key:
https://epicsdeb.bnl.gov/debian/repo-key.pub - Add the key to the APT keyring with the following command.
# apt-key add repo-key.pub - 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 - Fetch the list of packages.
# apt-get update - Install packages.
# apt-get install [see list below...]
Useful groups of packages to install
- Basic EPICS Development Environment
- epics-dev build-essential
- Linux IOC Dev. Environment (additional)
- asyn autosave cothread deviocstats epics-calc epics-stream recsync sysv-rc-softioc
- Operator console
- edm
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 |
Clients | |
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 IOCs | |
rtems-gesys-mvme3100 | RTEMS Generic System Application (for Emerson MVME3100) |
rtems-epics-mvme3100 | EPICS for RTEMS on MVME3100 |
RTEMS
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
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.
Originally created by: Michael Davidsaver
Currently maintained by: Anton Derbenev, Leon Flaks