;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Vincent Legoll ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages sel4) #:use-module (gnu packages) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages python-web) #:use-module (gnu packages ninja) #:use-module (gnu packages xml) #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix git-download)) (define-public sel4 (package (name "sel4") (version "12.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/seL4/seL4") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1zkx6x5jly8f75ph9jxd2jrp1kg5l001zkfqpmjf8ancsi1b43y7")))) (build-system cmake-build-system) (arguments '(#:tests? #f ;; No need for tests when you have formal proof of correctness #:configure-flags (list "-G" "Ninja" "-DKernelArch=x86" "-DCROSS_COMPILER_PREFIX=" "-DCMAKE_TOOLCHAIN_FILE=../source/gcc.cmake" "-C" "../source/configs/X64_verified.cmake") #:phases (modify-phases %standard-phases (replace 'build (lambda _ (invoke "ninja" "kernel.elf"))) (replace 'install (lambda _ (mkdir-p %output) (copy-file "kernel.elf" (string-append %output "/kernel.elf"))))))) (native-inputs `(("libxml2" ,libxml2) ("ninja" ,ninja) ("python" ,python-3) ("python-future" ,python-future) ("python-jinja2" ,python-jinja2) ("python-paste" ,python-paste) ("python-ply" ,python-ply) ("python-six" ,python-six) )) (synopsis "Operating System microkernel") (description "Formally verified member of the L4 microkernel family.") (home-page "https://sel4.systems") (license (list license:asl2.0 ; And also a variant in LICENSES/SHL-0.51.txt license:bsd-2 license:bsd-3 license:cc-by-sa4.0 license:gpl2 license:gpl2+ license:lppl1.3c license:x11))))