Skip to content

Commit ee1f163

Browse files
authored
Merge pull request #28842 from Frama-C/frama-c.32.0-beta
Frama-C: new release (32.0~beta-Germanium)
2 parents b455970 + f34e112 commit ee1f163

File tree

1 file changed

+220
-0
lines changed
  • packages/frama-c/frama-c.32.0~beta

1 file changed

+220
-0
lines changed
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
opam-version: "2.0"
2+
available: opam-version >= "2.1.0"
3+
flags: avoid-version
4+
synopsis: "Platform dedicated to the analysis of source code written in C"
5+
description:"""
6+
Frama-C gathers several analysis techniques in a single collaborative
7+
framework, based on analyzers (called "plug-ins") that can build upon the
8+
results computed by other analyzers in the framework.
9+
Thanks to this approach, Frama-C provides sophisticated tools, including:
10+
- an analyzer based on abstract interpretation (Eva plug-in);
11+
- a program proof framework based on weakest precondition calculus (WP plug-in);
12+
- a program slicer (Slicing plug-in);
13+
- a tool for verification of automata-based properties (Aoraï plug-in);
14+
- a runtime verification tool (E-ACSL plug-in);
15+
- several tools for code base exploration and dependency analysis
16+
(plug-ins From, Impact, Metrics, Occurrence, Scope, etc.).
17+
These plug-ins communicate between each other via the Frama-C API
18+
and via ACSL (ANSI/ISO C Specification Language) properties.
19+
"""
20+
maintainer: "[email protected]"
21+
authors: [
22+
"Michele Alberti"
23+
"Thibaud Antignac"
24+
"Gergö Barany"
25+
"Patrick Baudin"
26+
"Nicolas Bellec"
27+
"Thibaut Benjamin"
28+
"Allan Blanchard"
29+
"Lionel Blatter"
30+
"François Bobot"
31+
"Richard Bonichon"
32+
"Vincent Botbol"
33+
"Quentin Bouillaguet"
34+
"David Bühler"
35+
"Zakaria Chihani"
36+
"Sylvain Chiron"
37+
"Loïc Correnson"
38+
"Julien Crétin"
39+
"Pascal Cuoq"
40+
"Zaynah Dargaye"
41+
"Basile Desloges"
42+
"Jean-Christophe Filliâtre"
43+
"Philippe Herrmann"
44+
"Maxime Jacquemin"
45+
"Benjamin Jorge"
46+
"Florent Kirchner"
47+
"Alexander Kogtenkov"
48+
"Remi Lazarini"
49+
"Tristan Le Gall"
50+
"Kilyan Le Gallic"
51+
"Jean-Christophe Léchenet"
52+
"Matthieu Lemerre"
53+
"Dara Ly"
54+
"David Maison"
55+
"Claude Marché"
56+
"André Maroneze"
57+
"Thibault Martin"
58+
"Fonenantsoa Maurica"
59+
"Melody Méaulle"
60+
"Benjamin Monate"
61+
"Yannick Moy"
62+
"Pierre Nigron"
63+
"Anne Pacalet"
64+
"Valentin Perrelle"
65+
"Guillaume Petiot"
66+
"Dario Pinto"
67+
"Virgile Prevosto"
68+
"Armand Puccetti"
69+
"Félix Ridoux"
70+
"Virgile Robles"
71+
"Jan Rochel"
72+
"Muriel Roger"
73+
"Cécile Ruet-Cros"
74+
"Julien Signoles"
75+
"Fabien Siron"
76+
"Nicolas Stouls"
77+
"Hugo Thievenaz"
78+
"Kostyantyn Vorobyov"
79+
"Boris Yakobowski"
80+
]
81+
homepage: "https://frama-c.com/"
82+
license: "LGPL-2.1-only"
83+
dev-repo: "git+https://git.frama-c.com/pub/frama-c.git"
84+
doc: "https://frama-c.com/download/user-manual-32.0-beta-Germanium.pdf"
85+
bug-reports: "https://git.frama-c.com/pub/frama-c/issues"
86+
tags: [
87+
"deductive verification"
88+
"program verification"
89+
"formal specification"
90+
"automated theorem prover"
91+
"interactive theorem prover"
92+
"C"
93+
"plugins"
94+
"abstract interpretation"
95+
"slicing"
96+
"weakest precondition"
97+
"ACSL"
98+
"dataflow analysis"
99+
"runtime verification"
100+
]
101+
102+
build: [
103+
["bash" "dev/disable-plugins.sh" "e-acsl"] { os-family = "windows" }
104+
["bash" "dev/disable-plugins.sh" "gui"] { os = "macos" }
105+
["dune" "build" "-j%{jobs}%" "--release" "--promote-install-files=false"
106+
"@install"
107+
"@doc" { with-doc }
108+
]
109+
]
110+
111+
install: [
112+
[make
113+
"RELEASE=yes" "PREFIX=%{prefix}%" "MANDIR=%{man}%"
114+
"DOCDIR=%{doc}%" { with-doc }
115+
"install"
116+
]
117+
]
118+
119+
remove: [
120+
[make "PREFIX=%{prefix}%" "-f" "ivette/Makefile.installation" "uninstall"]
121+
]
122+
123+
run-test: [
124+
["dune" "exec" "--release" "--" "frama-c-ptests" "tests" "src/plugins/*/tests"
125+
] { arch != "ppc64" & arch != "x86_32" & arch != "arm32" & os-distribution != "freebsd"}
126+
["dune" "build" "--release" "-j%{jobs}%" "@ptests_config"
127+
] { arch != "ppc64" & arch != "x86_32" & arch != "arm32" & os-distribution != "freebsd"}
128+
]
129+
130+
depends: [
131+
"dune" { > "3.13.0" }
132+
"dune-configurator"
133+
"dune-site" { > "3.13.0" }
134+
( "alt-ergo-free" | "alt-ergo" )
135+
"camlzip"
136+
"conf-graphviz" { post }
137+
"conf-time" { with-test }
138+
"menhir" { >= "20181006" & build }
139+
"ocaml" { >= "4.14.0" }
140+
"ocamlgraph" { >= "2.0.0" }
141+
"ocamlgraph" { with-test & >= "2.2.0" }
142+
"ocp-indent" { with-dev-setup & >= "1.8.1" }
143+
"odoc" { with-doc }
144+
"unionFind" { >= "20220109" }
145+
"why3" { >= "1.8.2" & < "1.9.0" }
146+
"yaml" { >= "3.0.0" }
147+
"yojson" {>= "1.6.0" & (>= "2.0.1" | !with-test)}
148+
"zarith" { >= "1.13" }
149+
150+
# PPXs
151+
"ppxlib" { >= "0.33.0" }
152+
"ppx_deriving"
153+
"ppx_deriving_yojson"
154+
"ppx_deriving_yaml" { >= "0.2.0" }
155+
"ppx_inline_test"
156+
157+
# GTK3 disabled on macOS (segfaults), and made optional on Windows
158+
# (due to complex situation with Cygwin + MinGW).
159+
"lablgtk3" { >= "3.1.0" & os!="macos" & os-family!="windows" }
160+
"lablgtk3-sourceview3" { os!="macos" & os-family!="windows" }
161+
"conf-gtksourceview3" { os!="macos" & os-family!="windows" }
162+
]
163+
164+
# Note: do not put particular versions here, if some version is *incompatible*,
165+
# use the field 'conflicts'.
166+
depopts: [
167+
"apron"
168+
"zmq"
169+
"lablgtk3" { os-family="windows" }
170+
"lablgtk3-sourceview3" { os-family="windows" }
171+
"conf-gtksourceview3" { os-family="windows" }
172+
]
173+
174+
conflicts: [
175+
"cairo2" { < "0.6.2" }
176+
"mlmpfr" { < "4.1.0-bugfix2" }
177+
"pilat" { <= "1.6" }
178+
"result" { < "1.5" }
179+
]
180+
181+
post-messages: [
182+
"The Frama-C/WP plug-in requires one or more external prover(s).
183+
Recommended provers are:
184+
- Alt-Ergo (https://alt-ergo.ocamlpro.com)
185+
- CVC4 (https://cvc4.github.io)
186+
- CVC5 (https://cvc5.github.io)
187+
- Z3 (https://github.com/Z3Prover/z3)
188+
Use 'why3 config detect' to configure new provers.
189+
 " { success }
190+
"Ivette is a new GUI for Frama-C, currently in development.
191+
Run 'ivette' once to finalize installation (requires an internet connection).
192+
Once finalized, 'ivette' will work offline.
193+
Finalization also requires Node v20 or v22 and Yarn:
194+
- install NVM (https://github.com/nvm-sh/nvm)
195+
- run 'nvm install 22'
196+
- run 'nvm use 22'
197+
- run 'npm install --global yarn'" { success }
198+
]
199+
200+
url {
201+
src: "https://www.frama-c.com/download/frama-c-32.0-beta-Germanium.tar.gz"
202+
checksum: "sha256=868d57ef8007fe6c0836cd151d8c294003af34aa678285eff9547662cad36aa3"
203+
}
204+
205+
x-maintenance-intent: [
206+
"(latest).(any)"
207+
"(latest-1).(latest)"
208+
"(latest-2).(latest)"
209+
"(latest-3).(latest)"
210+
"(latest-4).(latest)"
211+
]
212+
213+
x-ci-accept-failures: [ # the following either uses musl or has an incompatible gcc version
214+
"alpine-3.22"
215+
"centos-9"
216+
"debian-11"
217+
"debian-12"
218+
"opensuse-15.6"
219+
"ubuntu-22.04"
220+
]

0 commit comments

Comments
 (0)