diff --git a/.gitignore b/.gitignore
index 73745a48f..155a9b5e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -82,4 +82,3 @@ GTAGS
*.dsc
*.gcov
spot.spec
-default.nix
diff --git a/Makefile.am b/Makefile.am
index a5d842b4c..e198a977c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -65,8 +65,7 @@ EXTRA_DIST = HACKING ChangeLog.1 tools/gitlog-to-changelog \
tools/help2man tools/man2html.pl \
tools/test-driver-teamcity $(UTF8) $(DEBIAN) \
m4/gnulib-cache.m4 .dir-locals.el \
- spot.spec spot.spec.in README.ltsmin \
- default.nix default.nix.in
+ spot.spec spot.spec.in README.ltsmin
dist-hook: gen-ChangeLog
@@ -112,6 +111,3 @@ deb: dist
spot.spec: configure.ac spot.spec.in
sed 's/[@]VERSION[@]/$(VERSION)/;s/[@]GITPATCH[@]/@@@$(GITPATCH)/;s/@@@\.//' spot.spec.in > $@.tmp && mv $@.tmp $@
-
-default.nix: configure.ac default.nix.in
- sed 's/[@]VERSION[@]/$(VERSION)/' default.nix.in > $@.tmp && mv $@.tmp $@
diff --git a/default.nix.in b/default.nix.in
deleted file mode 100644
index 8101e4f74..000000000
--- a/default.nix.in
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- mode: nix; coding: utf-8 -*-
-# Copyright (C) 2022 Laboratoire de Recherche et Développement de l'Epita
-# (LRDE).
-#
-# This file is part of Spot, a model checking library.
-#
-# Spot 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.
-#
-# Spot 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 this program. If not, see .
-
-{ pkgs ? import {} }:
-let
- version = "@VERSION@";
-in
-pkgs.stdenv.mkDerivation {
- inherit version;
- pname = "spot";
-
- buildInputs = [
- pkgs.python3
- ];
-
- src = ./.;
-
- enableParallelBuilding = true;
-}
diff --git a/flake.lock b/flake.lock
deleted file mode 100644
index dd215f1c6..000000000
--- a/flake.lock
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "nodes": {
- "flake-utils": {
- "inputs": {
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1741196730,
- "narHash": "sha256-0Sj6ZKjCpQMfWnN0NURqRCQn2ob7YtXTAOTwCuz7fkA=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-24.11",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/flake.nix b/flake.nix
deleted file mode 100644
index f0f3f95b5..000000000
--- a/flake.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-{
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
- flake-utils.url = "github:numtide/flake-utils";
- };
- outputs = { self, nixpkgs, flake-utils, ... }:
- flake-utils.lib.eachSystem
- [
- "x86_64-linux"
- ]
-
- (system:
- let
- pkgs = import nixpkgs { inherit system; };
- lib = pkgs.lib;
-
- mkSpotApps = appNames:
- pkgs.lib.genAttrs appNames
- (name: flake-utils.lib.mkApp {
- drv = self.packages.${system}.spot;
- name = name;
- });
-
- spotPackage =
- let
- inherit (builtins)
- filter
- head
- isString
- match
- readFile
- split
- ;
-
- # NOTE: Maintaining the version separately would be a pain, and we
- # can't have a flake.nix.in with a @VERSION@ because it would make
- # the flake unusable without running autoconf first, defeating some
- # of its purpose.
- #
- # So let's get it the hard way instead :)
- extractVersionRegex = ''^AC_INIT\(\[spot], \[([^]]+)], \[spot@lrde\.epita\.fr]\)$'';
- getLines = (fileContent:
- filter isString (split "\n" fileContent)
- );
- findVersionLine = (lines:
- lib.lists.findFirst
- (l: lib.strings.hasPrefix "AC_INIT(" l)
- null
- lines
- );
- getVersion = (file:
- let
- lines = getLines (readFile file);
- versionLine = findVersionLine lines;
- version = head (match extractVersionRegex versionLine);
- in
- version
- );
- in
- {
- lib,
- pkgs,
- stdenv,
- # FIXME: do we want this flag?
- buildOrgDoc ? false,
- # Whether to enable Spot's Python 3 bindings
- enablePython ? false
- }:
- stdenv.mkDerivation {
- pname = "spot";
- version = getVersion ./configure.ac;
-
- src = self;
-
- enableParallelBuilding = true;
-
- # NOTE: Nix enables a lot of hardening flags by default, some of
- # these probably harm performance so I've disabled everything
- # (haven't benchmarked with vs without these, though).
- hardeningDisable = [ "all" ];
-
- # NOTE: mktexpk fails without a HOME set
- preBuild = ''
- export HOME=$TMPDIR
- patchShebangs tools
- '' + (if buildOrgDoc then ''
- ln -s ${pkgs.plantuml}/lib/plantuml.jar doc/org/plantuml.jar
- '' else ''
- touch doc/org-stamp
- '');
-
- configureFlags = [
- "--disable-devel"
- "--enable-optimizations"
- ] ++ lib.optional (!enablePython) [
- "--disable-python"
- ];
-
- nativeBuildInputs = with pkgs; [
- autoreconfHook
-
- autoconf
- automake
- bison
- flex
- libtool
- perl
- ] ++ lib.optional buildOrgDoc [
- graphviz
- groff
- plantuml
- pdf2svg
- R
- ] ++ lib.optional enablePython [
- python3
- swig4
- ];
-
- buildInputs = with pkgs; [
- # should provide the minimum amount of packages necessary for
- # building tl.pdf
- (texlive.combine {
- inherit (texlive)
- scheme-basic
- latexmk
-
- booktabs
- cm-super
- doi
- doublestroke
- etoolbox
- koma-script
- mathabx-type1
- mathpazo
- metafont
- microtype
- nag
- pgf
- standalone
- stmaryrd
- tabulary
- todonotes
- wasy-type1
- wasysym
- ;
- })
- ];
- };
- in
- {
- defaultPackage = self.packages.${system}.spot;
-
- packages = {
- # binaries + library only
- spot = pkgs.callPackage spotPackage {};
-
- # NOTE: clang build is broken on Nix when linking to stdlib++, using
- # libcxx instead. See:
- # https://github.com/NixOS/nixpkgs/issues/91285
- spotClang = pkgs.callPackage spotPackage {
- stdenv = pkgs.llvmPackages.libcxxStdenv;
- };
-
- spotWithOrgDoc = pkgs.callPackage spotPackage {
- buildOrgDoc = true;
- };
-
- spotWithPython = pkgs.python3Packages.toPythonModule (
- pkgs.callPackage spotPackage {
- enablePython = true;
- }
- );
-
- spotFull = pkgs.python3Packages.toPythonModule (
- pkgs.callPackage spotPackage {
- buildOrgDoc = true; enablePython = true;
- }
- );
- };
-
- apps = mkSpotApps [
- "autcross"
- "autfilt"
- "dstar2tgba"
- "genaut"
- "genltl"
- "ltl2tgba"
- "ltl2tgta"
- "ltlcross"
- "ltldo"
- "ltlfilt"
- "ltlgrind"
- "ltlmix"
- "ltlsynt"
- "randaut"
- "randltl"
- ];
-
- devShell = pkgs.mkShell {
- name = "spot-dev";
- inputsFrom = [ self.packages.${system}.spotFull ];
- buildInputs = [
- pkgs.gdb
- pkgs.clang-tools # for clangd
- pkgs.bear
-
- (pkgs.python3.withPackages (p: [
- p.jupyter
- p.ipython # otherwise ipython module isn't found when running ipynb tests
- ]))
- ];
- };
- });
-}