diff --git a/.gitignore b/.gitignore index d3edd8a..3899eac 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,13 @@ /value-analysis-Sodium-20150201.pdf /wp-manual-Sodium-20150201.pdf /frama-c-icons.tar.xz +/frama-c-Magnesium-20151002.tar.gz +/frama-c-Magnesium-20151002_api.tar.gz +/acsl-implementation-Magnesium-20151002.pdf +/aorai-manual-Magnesium-20151002.pdf +/metrics-manual-Magnesium-20151002.pdf +/plugin-development-guide-Magnesium-20151002.pdf +/rte-manual-Magnesium-20151002.pdf +/user-manual-Magnesium-20151002.pdf +/value-analysis-Magnesium-20151002.pdf +/wp-manual-Magnesium-20151002.pdf diff --git a/frama-c-why.patch b/frama-c-why.patch deleted file mode 100644 index 7e39c4f..0000000 --- a/frama-c-why.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- ./cil/src/cil.ml.orig 2015-03-06 08:28:27.000000000 -0700 -+++ ./cil/src/cil.ml 2015-03-18 17:45:00.000000000 -0600 -@@ -5933,6 +5933,13 @@ let need_cast ?(force=false) oldt newt = - vi.vdescrpure <- descrpure; - vi - -+ let makePseudoVar = -+ let counter = ref 0 in -+ function ty -> -+ incr counter; -+ let name = "@" ^ (string_of_int !counter) in -+ makeVarinfo ~temp:true (* global= *)false (* formal= *)false name ty -+ - (* Set the types of arguments and results as given by the function type - * passed as the second argument *) - let setFunctionType (f: fundec) (t: typ) = ---- ./cil/src/cil.mli.orig 2015-03-06 08:28:27.000000000 -0700 -+++ ./cil/src/cil.mli 2015-03-18 17:45:00.000000000 -0600 -@@ -707,6 +707,10 @@ val makeLocalVar: - fundec -> ?scope:block -> ?temp:bool -> ?insert:bool - -> string -> typ -> varinfo - -+(** Make a pseudo-variable to use as placeholder in term to expression -+- conversions. Its logic field is set. They are always generated. *) -+val makePseudoVar: typ -> varinfo -+ - (** Make a temporary variable and add it to a function's slocals. The name of - the temporary variable will be generated based on the given name hint so - that to avoid conflicts with other locals. diff --git a/frama-c.spec b/frama-c.spec index fb077dc..c06e5da 100644 --- a/frama-c.spec +++ b/frama-c.spec @@ -1,22 +1,17 @@ -# Some ideas for this spec file taken from a prior attempt by Richard -# W. M. Jones - -# General Information -# This program has its own version of cil, there is an ocaml-cil upon which this -# based, however the version contained in this package has custom mods that -# are not availible with the ocaml-cil because the upstream has -# forked their own version of cil. +# Frama-C contains a forked version of ocaml-cil. We cannot use the Fedora +# ocaml-cil package as a replacement, because Frama-C upstream has modified +# their version in incompatible ways. %global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) %if ! %opt %global debug_package %{nil} %endif -%global pkgversion Sodium-20150201 +%global pkgversion Magnesium-20151002 Name: frama-c -Version: 1.11 -Release: 10%{?dist} +Version: 1.12 +Release: 1%{?dist} Summary: Framework for source code analysis of C software # Licensing breakdown in source file frama-c-1.6-licensing @@ -38,8 +33,6 @@ Source12: http://frama-c.com/download/value-analysis-%{pkgversion}.pdf Source13: http://frama-c.com/download/wp-manual-%{pkgversion}.pdf # Icons created with gimp from the official upstream icon Source14: %{name}-icons.tar.xz -# Add back a Neon function removed in Sodium that why still needs -Patch0: %{name}-why.patch BuildRequires: alt-ergo BuildRequires: coq @@ -50,20 +43,25 @@ BuildRequires: gtksourceview2-devel BuildRequires: libgnomecanvas-devel BuildRequires: ltl2ba BuildRequires: ocaml -BuildRequires: ocaml-findlib +BuildRequires: ocaml-findlib-devel BuildRequires: ocaml-lablgtk-devel BuildRequires: ocaml-ocamldoc BuildRequires: ocaml-ocamlgraph-devel BuildRequires: ocaml-zarith-devel BuildRequires: why3 +BuildRequires: z3 Requires: cpp Requires: graphviz Requires: hicolor-icon-theme Requires: ltl2ba +Suggests: alt-ergo +Suggests: coq +Suggests: z3 + # Filter out bogus requires -%global __requires_exclude ocaml\\\((CfgTypes|GtkSourceView2_types|Ltlast|Marks|Mcfg|Memory|Promelaast)\\\) +%global __requires_exclude ocaml\\\((Callgraph_api|Cg|GtkSourceView2_types|Marks|Services|Sig|Uses)\\\) %description Frama-C is a suite of tools dedicated to the analysis of the source @@ -120,7 +118,6 @@ files marked up with ACSL. %setup -q -n %{name}-%{pkgversion} %setup -q -T -D -a 1 -n %{name}-%{pkgversion} %setup -q -T -D -a 14 -n %{name}-%{pkgversion} -%patch0 # Copy in the manuals mkdir doc/manuals @@ -131,7 +128,7 @@ cp -p %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} %{SOURCE10} %{SOURCE11} \ rm -f ocamlgraph.tar.gz # Enable debuginfo -sed -i 's/ -pack/ -g&/;s/^OPT.*=/& -g/' src/wp/qed/src/Makefile +sed -i 's/ -pack/ -g&/;s/^OPT.*=/& -g/' src/plugins/wp/qed/src/Makefile # Link with the Fedora LDFLAGS for flag in $RPM_LD_FLAGS; do @@ -141,9 +138,6 @@ done # Preserve timestamps when installing sed -ri 's/^CP[[:blank:]]+=.*/& -p/' share/Makefile.common -# Remove spurious executable bits -find -O3 . -perm /0111 \( -name \*.ml -o -name \*.mli \) | xargs chmod 0644 - # Build buckx with the right flags sed -i "s|-O3 -Wall|%{optflags} -fPIC|" Makefile @@ -157,8 +151,8 @@ make # Prevent rebuilds containing the buildroot when installing sed -i.orig 's/^headers::/headers:/' Makefile touch -r Makefile.orig Makefile -sed -i.orig '/^headers::/,/^$/d' src/aorai/Makefile -touch -r src/aorai/Makefile.orig src/aorai/Makefile +sed -i.orig '/^headers::/,/^$/d' src/plugins/aorai/Makefile +touch -r src/plugins/aorai/Makefile.orig src/plugins/aorai/Makefile make install DESTDIR=%{buildroot} @@ -203,11 +197,15 @@ popd rm -f %{buildroot}%{_libdir}/frama-c/*.{cmo,cmx,o} # The install step adds lots of spurious executable bits -find %{buildroot}%{_datadir}/frama-c -type f -perm /0111 | \ -xargs chmod a-x %{buildroot}%{_mandir}/man1/* +chmod a-x %{buildroot}%{_libdir}/frama-c/*.cmi \ + %{buildroot}%{_libdir}/frama-c/plugins/META* \ + %{buildroot}%{_libdir}/frama-c/plugins/*.cm{a,i,o,x,xa} \ + %{buildroot}%{_libdir}/frama-c/plugins/gui/*.cm{a,i,o} \ + %{buildroot}%{_mandir}/man1/* +find %{buildroot}%{_datadir}/frama-c -type f -perm /0111 -exec chmod a-x {} + # Remove spurious executable bits on generated files -chmod 0644 src/lib/dynlink_common_interface.ml src/lib/integer.ml +chmod 0644 src/libraries/stdlib/integer.ml %post update-desktop-database &> /dev/null || : @@ -226,17 +224,17 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %if %opt %exclude %{_bindir}/frama-c.byte %exclude %{_bindir}/frama-c-gui.byte -%exclude %{_bindir}/ptests.byte %endif %{_libdir}/frama-c/ %{_datadir}/frama-c/ %{_datadir}/appdata/%{name}-gui.appdata.xml -%{_datadir}/applications/*.desktop +%{_datadir}/applications/%{name}-gui.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_mandir}/man1/* %files doc %doc doc/code/*.{css,htm,txt} +%doc doc/code/print_api %doc doc/manuals/acsl-implementation-%{pkgversion}.pdf %doc doc/manuals/aorai-manual-%{pkgversion}.pdf %doc doc/manuals/metrics-manual-%{pkgversion}.pdf @@ -256,6 +254,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_xemacs_sitestartdir}/acsl.el %changelog +* Fri Feb 12 2016 Jerry James - 1.12-1 +- Update to Magnesium version +- Drop unneeded -why patch + * Wed Feb 03 2016 Fedora Release Engineering - 1.11-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/sources b/sources index 3a84a29..1582136 100644 --- a/sources +++ b/sources @@ -1,11 +1,11 @@ -0cd1077492a58cadb6544c35129ee32c frama-c-Sodium-20150201.tar.gz -aff021d5b137cb3a3d165fe71d0cae5c frama-c-Sodium-20150201_api.tar.gz -e8c8e079d24bc53d7a314cbd9d1ed3e6 acsl-implementation-Sodium-20150201.pdf -0a312832de0fd83184c7f2dcaad7006d aorai-manual-Sodium-20150201.pdf -87aa43b9614f15c86064dbcf6f4171be metrics-manual-Sodium-20150201.pdf -6359766c6d1ad615eadec295b5f38276 plugin-development-guide-Sodium-20150201.pdf -262017d7f5ceaa7c82368752ad480c5b rte-manual-Sodium-20150201.pdf -2f765dcee115eac077dbbc523e3b2916 user-manual-Sodium-20150201.pdf -2bf7d19d8b94433cc89fd298d0e06aa9 value-analysis-Sodium-20150201.pdf -79a424b1e42afbff3aab42b971ff4b68 wp-manual-Sodium-20150201.pdf +b7d761bdf0a58f3f8ec4242a3b67d50a frama-c-Magnesium-20151002.tar.gz +3d19e9c192617a9d513a5e3e0e8e15c2 frama-c-Magnesium-20151002_api.tar.gz +f98677a3218305da8895000b1a0293ef acsl-implementation-Magnesium-20151002.pdf +e6f66dedfee05636593c76c0048740c5 aorai-manual-Magnesium-20151002.pdf +110fb90abf0fb6fdd5a8a575458e2017 metrics-manual-Magnesium-20151002.pdf +9f107fe6d3e03365707766d54a02a999 plugin-development-guide-Magnesium-20151002.pdf +96d9790d61531087dda11ee37622b00a rte-manual-Magnesium-20151002.pdf +57e02df9161fb70831886474a6dcf844 user-manual-Magnesium-20151002.pdf +86b8d08d3a8869e6001691848fae8c6c value-analysis-Magnesium-20151002.pdf +1c1051d6aa5b9b11c2ebcfe8e047fa66 wp-manual-Magnesium-20151002.pdf 458583247a2a66134de7feadb533c94b frama-c-icons.tar.xz