diff options
author | Thomas Heijligen <src@posteo.de> | 2024-02-19 20:03:13 +0000 |
---|---|---|
committer | sternenseemann <sternenseemann@systemli.org> | 2024-02-25 18:19:50 +0100 |
commit | d22ba0a2a71cb6136115ca91999409d6498c9936 (patch) | |
tree | 861bcd7b8cee04f52cd38b8509461f3b075cbe5d /pkgs | |
parent | c1b5933e79e45dd7f75075075f6248af8362da08 (diff) |
gnatprove: Make src dependend on gcc version
Gnatprove is tightly bound to a specific gcc version. Use the gcc input version to determin which gnatprove/spark2014 sources should be used. For now gcc 12 is the only working option. gcc 13 will work as soon as all ada buildInputs can be provided as gcc 13 build.
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/libraries/ada/gnatprove/default.nix | 47 |
1 files changed, 35 insertions, 12 deletions
diff --git a/pkgs/development/libraries/ada/gnatprove/default.nix b/pkgs/development/libraries/ada/gnatprove/default.nix index ce0f3cc432c1c..4e7c4d964af60 100644 --- a/pkgs/development/libraries/ada/gnatprove/default.nix +++ b/pkgs/development/libraries/ada/gnatprove/default.nix @@ -1,29 +1,52 @@ { stdenv , lib , fetchFromGitHub -, gnat12 +, gnat , gnatcoll-core , gprbuild , python3 , ocamlPackages , makeWrapper }: +let + gnat_version = lib.versions.major gnat.version; -stdenv.mkDerivation rec { - pname = "gnatprove"; - version = "unstable-2022-05-25"; - - src = fetchFromGitHub { + fetchSpark2014 = { rev, sha256 } : fetchFromGitHub { owner = "AdaCore"; repo = "spark2014"; - # commit on fsf-12 branch - rev = "ab34e07080a769b63beacc141707b5885c49d375"; - sha256 = "sha256-7pe3eWitpxmqzjW6qEIEuN0qr2IR+kJ7Ssc9pTBcCD8="; fetchSubmodules = true; + inherit rev sha256; + }; + + spark2014 = { + "12" = { + src = fetchSpark2014 { + rev = "ab34e07080a769b63beacc141707b5885c49d375"; # branch fsf-12 + sha256 = "sha256-7pe3eWitpxmqzjW6qEIEuN0qr2IR+kJ7Ssc9pTBcCD8="; + }; + commit_date = "2022-05-25"; + }; + "13" = { + src = fetchSpark2014 { + rev = "12db22e854defa9d1c993ef904af1e72330a68ca"; # branch fsf-13 + sha256 = "sha256-mZWP9yF1O4knCiXx8CqolnS+93bM+hTQy40cd0HZmwI="; + }; + commit_date = "2023-01-05"; + }; }; + thisSpark = spark2014.${gnat_version} or + (builtins.throw "GNATprove depend on a specific GNAT version and can't be built using GNAT ${gnat_version}."); + +in +stdenv.mkDerivation rec { + pname = "gnatprove"; + version = "fsf-${gnat_version}_${thisSpark.commit_date}"; + + src = thisSpark.src; + nativeBuildInputs = [ - gnat12 + gnat gprbuild python3 ocamlPackages.ocaml @@ -43,8 +66,8 @@ stdenv.mkDerivation rec { postPatch = '' # gnat2why/gnat_src points to the GNAT sources - tar xf ${gnat12.cc.src} gcc-${gnat12.cc.version}/gcc/ada - mv gcc-${gnat12.cc.version}/gcc/ada gnat2why/gnat_src + tar xf ${gnat.cc.src} gcc-${gnat.cc.version}/gcc/ada + mv gcc-${gnat.cc.version}/gcc/ada gnat2why/gnat_src ''; configurePhase = '' |