[why] Omit "-z now" when building with relro (bz 1105265). Resolve a conflict between Frama-C and why modu

Jerry James jjames at fedoraproject.org
Thu Jun 26 21:44:35 UTC 2014


commit 8ce80ce993f190eedee3088fd54a4318d68e5ac0
Author: Jerry James <jamesjer at betterlinux.com>
Date:   Thu Jun 26 15:44:21 2014 -0600

    Omit "-z now" when building with relro (bz 1105265).
    Resolve a conflict between Frama-C and why modules both named "Project".

 why-project.patch |  124 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 why.spec          |   21 +++++++--
 2 files changed, 141 insertions(+), 4 deletions(-)
---
diff --git a/why-project.patch b/why-project.patch
new file mode 100644
index 0000000..a280c81
--- /dev/null
+++ b/why-project.patch
@@ -0,0 +1,124 @@
+--- ./Makefile.in.orig	2014-03-17 16:01:46.000000000 -0600
++++ ./Makefile.in	2014-06-26 12:30:00.000000000 -0600
+@@ -222,7 +222,7 @@ CMO_EXPORT =  src/lib.cmo src/rc.cmo src
+ 	   src/effect.cmo src/pp.cmo src/option_misc.cmo \
+ 	   src/parser.cmo src/lexer.cmo src/report.cmo \
+            src/explain.cmo 	\
+-	   src/xml.cmo src/project.cmo
++	   src/xml.cmo src/whyproject.cmo
+ 
+ CMO = src/lib.cmo src/rc.cmo tools/dpConfig.cmo \
+       src/version.cmo src/options.cmo src/linenum.cmo src/loc.cmo \
+@@ -239,7 +239,7 @@ CMO = src/lib.cmo src/rc.cmo tools/dpCon
+ 	   src/holl.cmo src/harvey.cmo src/simplify.cmo  \
+            src/regen.cmo src/mizar.cmo src/smtlib.cmo src/coq.cmo \
+ 	   src/zenon.cmo src/z3.cmo src/cvcl.cmo tools/calldp.cmo \
+-	   src/xml.cmo src/project.cmo \
++	   src/xml.cmo src/whyproject.cmo \
+ 	   src/why3_kw.cmo src/why3.cmo src/pretty.cmo  \
+            src/unionfind.cmo src/theoryreducer.cmo \
+            src/theory_filtering.cmo src/hypotheses_filtering.cmo \
+--- ./src/options.mli.orig	2014-03-17 16:01:46.000000000 -0600
++++ ./src/options.mli	2014-06-26 12:30:00.000000000 -0600
+@@ -185,7 +185,7 @@ val files : string list
+ (*s GUI? *)
+ 
+ val gui : bool ref
+-val gui_project : Project.t option ref
++val gui_project : Whyproject.t option ref
+ val lib_files_to_load : string list
+ 
+ (*
+--- ./src/pretty.ml.orig	2014-03-17 16:01:46.000000000 -0600
++++ ./src/pretty.ml	2014-06-26 12:30:00.000000000 -0600
+@@ -415,12 +415,12 @@ let output_project f =
+        with Not_found ->
+ 	 functions := SMap.add fn SMap.empty !functions)
+     Util.program_locs ;
+-  let p = Project.create (Filename.basename f) in
+-  Project.set_project_context_file p (f ^ "_ctx.why");
++  let p = Whyproject.create (Filename.basename f) in
++  Whyproject.set_project_context_file p (f ^ "_ctx.why");
+   List.iter
+     (fun (expl,fpo) ->
+        let n = expl.lemma_or_fun_name in
+-       let _ = Project.add_lemma p n expl fpo in ())
++       let _ = Whyproject.add_lemma p n expl fpo in ())
+     !lemmas;
+   SMap.iter
+     (fun fname behs ->
+@@ -430,15 +430,15 @@ let output_project f =
+ 	   floc
+ 	 with Not_found -> Loc.dummy_floc
+        in
+-       let f = Project.add_function p fname floc in
++       let f = Whyproject.add_function p fname floc in
+        SMap.iter
+ 	 (fun beh vcs ->
+-	    let be = Project.add_behavior f beh floc in
++	    let be = Whyproject.add_behavior f beh floc in
+ 	    List.iter
+ 	      (fun (expl,fpo) ->
+-		 let _ = Project.add_goal be expl fpo in ())
++		 let _ = Whyproject.add_goal be expl fpo in ())
+ 	      vcs)
+ 	 behs)
+     !functions;
+-  Project.save p f;
++  Whyproject.save p f;
+   p
+--- ./src/pretty.mli.orig	2014-03-17 16:01:46.000000000 -0600
++++ ./src/pretty.mli	2014-06-26 12:30:00.000000000 -0600
+@@ -51,4 +51,4 @@ val output_files : string -> unit
+ (* [output_project f] produces a whole project description, in a file
+ [f.wpr], together with other needed files [f_ctx.why], [f_lemmas.why],
+ and each goal in a separate file [f_po<i>.why] for i=1,2,... *)
+-val output_project : string -> Project.t
++val output_project : string -> Whyproject.t
+--- ./src/whyweb.ml.orig	2014-03-17 16:01:46.000000000 -0600
++++ ./src/whyweb.ml	2014-06-26 12:30:00.000000000 -0600
+@@ -30,7 +30,7 @@
+ (**************************************************************************)
+ 
+ open Format
+-open Project
++open Whyproject
+ 
+ (*prover*)
+ let provers = [Ergo ; Simplify ; Z3 ; Yices ; Cvc3]
+@@ -169,7 +169,7 @@ let file = match !file with
+   | None -> ()
+   | Some f -> Arg.usage spec usage; exit 1
+ 
+-let proj = ref (Project.create "")
++let proj = ref (Whyproject.create "")
+ 
+ let proj_file = ref ""
+ 
+@@ -261,7 +261,7 @@ let interp_com c =
+ 	  let _ =  Thread.create (launch_behavior Cvc3)  b in ()
+       | `LaunchCvc3Function f -> 
+ 	  let _ =  Thread.create (launch_function Cvc3) f  in ()
+-      | `Save -> Project.save !proj !proj.project_name
++      | `Save -> Whyroject.save !proj !proj.project_name
+     end;
+     loc
+   with Not_found -> ("",0,0,0)
+@@ -344,7 +344,7 @@ let main_page msg =
+ let load_prj file =
+   eprintf "Reading file %s at ." file;
+   try
+-    proj := Project.load file;
++    proj := Whyproject.load file;
+     proj_file := file;
+   with
+       Sys_error _ -> 
+@@ -527,7 +527,7 @@ wprint "<center><a href=\"%s\">Save Proj
+ <table border=\"1\"  cellpadding=\"0\" cellspacing=\"0\">" ns;
+ 	 wprint "<tr><th></th>";
+ 	 List.iter (fun prover -> 
+-		      wprint "<th>%s</th>" (Project.provers_name prover)) 
++		      wprint "<th>%s</th>" (Whyproject.provers_name prover)) 
+ 	   provers;
+ 	 wprint "</tr>
+ ";
diff --git a/why.spec b/why.spec
index 2c1b8bc..8ca5b82 100644
--- a/why.spec
+++ b/why.spec
@@ -10,7 +10,7 @@
 
 Name:           why
 Version:        2.34
-Release:        6%{?dist}
+Release:        7%{?dist}
 Summary:        Software verification platform
 
 License:        LGPLv2 with exceptions
@@ -50,6 +50,10 @@ Patch1:         %{name}-2.34-Makefile.in.patch
 # Adapt to flocq 2.3.0
 Patch2:         %{name}-flocq23.patch
 
+# Avoid a clash between Frama-C and why modules both named "Project".
+# Sent upstream 26 Jun 2014.
+Patch3:         %{name}-project.patch
+
 BuildRequires:  auto-destdir
 BuildRequires:  cvc3
 BuildRequires:  desktop-file-utils
@@ -204,12 +208,17 @@ based on Why, including various automated and interactive provers.
 %patch0
 %patch1
 %patch2
+%patch3
+
+# The other part of avoiding the "Project" module name clash
+mv src/project.ml src/whyproject.ml
+mv src/project.mli src/whyproject.mli
 
 cp -p %SOURCE1 %SOURCE2 %SOURCE6 %SOURCE7 ./
 
-# Harden the build for network-using binaries
-sed -e '\%^bin/jessie\.opt%,\%^bin/jessie\.byte%s/-o/-ccopt -Wl,-z,relro,-z,now &/' \
-    -e '/gtkThread\.cmx/s/-o/-ccopt -Wl,-z,relro,-z,now &/' \
+# Link with Fedora LDFLAGS
+sed -e "\%^bin/jessie\.opt%,\%^bin/jessie\.byte%s/-o/-ccopt $RPM_LD_FLAGS &/" \
+    -e "/gtkThread\.cmx/s/-o/-ccopt $RPM_LD_FLAGS &/" \
     -i Makefile.in
 
 %define fix_encoding() \
@@ -423,6 +432,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 
 %changelog
+* Tue Jun 24 2014 Jerry James <loganjerry at gmail.com> - 2.34-7
+- Omit "-z now" when building with relro (bz 1105265)
+- Resolve a conflict between Frama-C and why modules both named "Project"
+
 * Sun Jun 08 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.34-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
 


More information about the scm-commits mailing list