summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Rostovtsev <dan@rostovtsev.org>2026-04-10 09:43:06 -0400
committerDan Rostovtsev <dan@rostovtsev.org>2026-04-10 09:43:06 -0400
commit3bf88ef19b2c51162886321a8557449a96c4f1c4 (patch)
tree9b5c6d9d8f2c47a1d247aef3709ef4f9d6a63448
parent1bfc951376ebb55830d7e7daba483c77fe8bee0c (diff)
gnu: Add rocq module.
Preparing the addition of packages for the renamed proof assistant. * gnu/packages/rocq.scm (rocq-arguments): A helper to specify shared dune build settings for the packages in the rocq repository. Change-Id: I666c909a1b1ce89bbc3bc324d5d05ece0cfbfc19
-rw-r--r--gnu/packages/rocq.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/rocq.scm b/gnu/packages/rocq.scm
new file mode 100644
index 00000000000..d5384902d12
--- /dev/null
+++ b/gnu/packages/rocq.scm
@@ -0,0 +1,44 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2026 Dan Rostovtsev <dan@rostovtsev.org>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages rocq)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages gawk)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages ocaml)
+ #:use-module (guix build-system dune)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix licenses)
+ #:use-module (guix packages))
+
+(define (rocq-arguments package-name)
+ ;; Dune parallel build is not reproducible (in rocq and camlp-streams,
+ ;; at least).
+ ;; First observed in Rocq in 2019 by bmwiedemann at OpenSUSE.
+ ;; - https://github.com/rocq-prover/rocq/issues/11229
+ ;; Was escalated to a specific package by Rocq team in 2023.
+ ;; - https://github.com/ocaml/camlp-streams/issues/9
+ ;; Was escalated to Dune by Xavier Leroy in 2023.
+ ;; - https://github.com/ocaml/dune/issues/9152
+ ;; AFAIK, no patches addressing this in any project circa 2026.
+ (list #:package package-name
+ #:build-flags ''("-j1")
+ ;; The tests must be serial as well for reproducible builds.
+ #:test-flags ''("-j1")))