Welcome! This repository contains package recipes and extensions of the GNU Guix package manager tailored for medical image computing. It offers a collection of packages developed at Oslo University Hospital, NTNU, and other institutions.
The primary aim is to contribute most packages upstream. This repository serves as a staging area for work in progress or packages that are not yet ready for public use.
For inquiries or further information, please feel free to reach out directly via email to our contributors.
To utilize this repository, you must have Guix installed on your system. Refer to the installation instructions.
The package definitions in this repository extend the default packages provided by Guix. To integrate them with the guix
command-line tools, create the ~/.config/guix/channels.scm
file using the following snippet to include the systole
channel:
(cons (channel
(name 'systole)
(url "https://github.com/SystoleOS/guix-systole.git")
(branch "main"))
%default-channels)
This configuration ensures that guix pull
will fetch both Guix and the Systole channel.
As this repository does not currently provide pre-built substitutes or binaries, users are encouraged to build packages from source. You can clone the Systole repository and compile the packages you need:
cd src
git clone https://github.com/SystoleOS/guix-systole.git
After cloning, you may build packages using:
guix build -L ~/src/systole <package-name>
When you are satisfied with your changes to the packages, you can push them to the repository for others to access.
New modules defining packages should be stored in systole/packages
, belonging to the Guile (systole packages)
namespace. When adding new packages, please place them in the relevant module or create a new module if necessary.
New modules defining services should be stored in systole/services
, belonging to the Guile (systole services)
namespace. When adding new services, please place them in the appropriate module or create a new module if needed.
Note that we are in the process of migrating older modules to this new namespace, so some packages may not adhere to these guidelines yet.
The Guix manual provides valuable resources, including:
- Information on getting started,
- Details on the channels mechanism that allows integration of Systole packages with Guix,
- Guidance on the GUIX_PACKAGE_PATH environment variable, which enables you to extend the visible package set in Guix.