debian/0000755000000000000000000000000012256131316007166 5ustar debian/copyright0000644000000000000000000010701512251053327011125 0ustar Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat Packaged-By: Mehdi Dogguy Packaged-Date: Mon, 11 May 2009 15:11:37 +0200 Original-Source-Location: http://frama-c.cea.fr/download.html Upstream-Author: Software Reliability Laboratory (LSL) and INRIA ProVal project Files: debian/* Copyright: © 2008-2011 Mehdi Dogguy License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: Makefile.in Files: configure.in Files: config.h.in Files: src/logic/*.ml* Files: cil/src/logic/*.ml* Files: src/pdg_types/*.ml* Files: src/pdg/*.ml* Files: src/report/* Files: src/slicing_types/*.ml* Files: src/slicing/*.ml* Files: src/scope/Scope.mli Files: src/scope/datascope.ml Files: src/scope/dpds_gui.ml Files: src/scope/zones.ml Files: src/scope/zones.mli Copyright: © 2007-2011 CEA (Commissariat à l'Énergie Atomique) © 2007-2011 INRIA (Institut National de Recherche en Informatique et Automatique) License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: src/lib/rangemap.ml Copyright: © 1996 Institut National de Recherche en Informatique et en Automatique © 2007-2010 CEA (Commissariat à l'Énergie Atomique) License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: src/aorai/* Copyright: © 2007-2011 INSA (Institut National des Sciences Appliquees) © 2007-2011 INRIA (Institut National de Recherche en Informatique et en Automatique) License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: tests/minix/* Copyright: © 1987, 1997, 2006, Vrije Universiteit, Amsterdam, The Netherlands License: BSD-3 Files: tests/spec/purse.c Copyright: © 2002-2006 Jean-François COUCHOT © 2002-2006 Mehdi DOGGUY © 2002-2006 Jean-Christophe FILLIÂTRE © 2002-2006 Thierry HUBERT © 2002-2006 Claude MARCHÉ © 2002-2006 Yannick MOY License: GPL-2 Files: share/acsl.el Copyright: © 2008 Pierre ROUX License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: share/Makefile.plugin Files: src/kernel/*.ml* Files: src/misc/*.ml* Files: src/misc/*.c Files: src/misc/*.h Files: src/ai/*.ml* Files: src/memory_state/*.ml* Files: src/toplevel/*.ml* Files: share/*.c Files: share/*.h Files: src/from/*.ml* Files: src/gui/*.ml* Files: src/inout/*.ml* Files: src/postdominators/*.ml* Files: src/project/*.ml* Files: src/users/*.ml* Files: src/value/*.ml* Files: src/constant_propagation/* Files: ptests/* Files: src/buckx/buckx.ml Files: src/buckx/buckx.mli Files: src/buckx/buckx_c.c Files: src/buckx/mybigarray.c Files: src/lib/* Files: src/metrics/* Files: src/occurrence/* Files: src/semantic_callgraph/* Files: src/syntactic_callgraph/* Files: tests/* Files: doc/* Files: doc/code/docgen.ml Files: doc/code/style.css Files: doc/code/intro_plugin.txt Files: share/Makefile.config.in Files: share/Makefile.dynamic Files: share/Makefile.dynamic_config.external Files: share/Makefile.dynamic_config.internal Files: src/ai/ival.ml Files: src/ai/ival.mli Files: src/dummy/* Files: src/impact/* Files: src/security_slicing/* Files: src/rte/* Files: src/type/* Copyright: © 2007-2011 CEA (Commissariat à l'Énergie Atomique) License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: tests/bugs/evoting.c Copyright: © 2004-2009 David MENTRE License: GPL-3 See `/usr/share/common-licenses/GPL-3'. Files: cil/src/logic/* Files: doc/code/* Files: man/frama-c.1 Files: src/sparecode/*.ml* Copyright: © 2007-2011 CEA (Commissariat à l'Énergie Atomique et aux énergies alternatives) © 2007-2011 INRIA (Institut National de Recherche en Informatique et en Automatique) License: LGPL-2.1 See `/usr/share/common-licenses/LGPL-2.1'. Files: cil/src/frontc/* Copyright: © 2001-2003 George C. Necula © 2001-2003 Scott McPeak © 2001-2003 Wes Weimer © 2001-2003 Ben Liblit License: BSD-3 Files: cil/* Copyright: © 2001-2005 George C. Necula © 2001-2005 Scott McPeak © 2001-2005 Wes Weimer © 2001-2005 Ben Liblit License: BSD-3 Files: tests/idct/* Copyright: © 2001 Renaud Pacalet License: GPL-2+ Files: external/unmarshal* Copyright: © 2009-2010 Institut National de Recherche en Informatique et en Automatique License: BSD-3 Files: external/hptmap.ml Files: external/hptmap.mli Copyright: © 2005 Institut National de Recherche en Informatique et en Automatique License: QPL modified See `./licenses/Q_MODIFIED_LICENSE`. In the following, "the Library" refers to the following file: standard.mly and "the Generator" refers to all files marked "Copyright INRIA" in the root directory. The Generator is distributed under the terms of the Q Public License version 1.0 with a change to choice of law (included below). The Library is distributed under the terms of the GNU Library General Public License version 2 (included below). As a special exception to the Q Public Licence, you may develop application programs, reusable components and other software items that link with the original or modified versions of the Generator and are not made available to the general public, without any of the additional requirements listed in clause 6c of the Q Public licence. As a special exception to the GNU Library General Public License, you may link, statically or dynamically, a "work that uses the Library" with a publicly distributed version of the Library to produce an executable file containing portions of the Library, and distribute that executable file under terms of your choice, without any of the additional requirements listed in clause 6 of the GNU Library General Public License. By "a publicly distributed version of the Library", we mean either the unmodified Library as distributed by INRIA, or a modified version of the Library that is distributed under the conditions defined in clause 3 of the GNU Library General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Library General Public License. ---------------------------------------------------------------------- THE Q PUBLIC LICENSE version 1.0 Copyright (C) 1999 Troll Tech AS, Norway. Everyone is permitted to copy and distribute this license document. The intent of this license is to establish freedom to share and change the software regulated by this license under the open source model. This license applies to any software containing a notice placed by the copyright holder saying that it may be distributed under the terms of the Q Public License version 1.0. Such software is herein referred to as the Software. This license covers modification and distribution of the Software, use of third-party application programs based on the Software, and development of free software which uses the Software. Granted Rights 1. You are granted the non-exclusive rights set forth in this license provided you agree to and comply with any and all conditions in this license. Whole or partial distribution of the Software, or software items that link with the Software, in any form signifies acceptance of this license. 2. You may copy and distribute the Software in unmodified form provided that the entire package, including - but not restricted to - copyright, trademark notices and disclaimers, as released by the initial developer of the Software, is distributed. 3. You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches. The following restrictions apply to modifications: a. Modifications must not alter or remove any copyright notices in the Software. b. When modifications to the Software are released under this license, a non-exclusive royalty-free right is granted to the initial developer of the Software to distribute your modification in future versions of the Software provided such versions remain available under these terms in addition to any other license(s) of the initial developer. 4. You may distribute machine-executable forms of the Software or machine-executable forms of modified versions of the Software, provided that you meet these restrictions: a. You must include this license document in the distribution. b. You must ensure that all recipients of the machine-executable forms are also able to receive the complete machine-readable source code to the distributed Software, including all modifications, without any charge beyond the costs of data transfer, and place prominent notices in the distribution explaining this. c. You must ensure that all modifications included in the machine-executable forms are available under the terms of this license. 5. You may use the original or modified versions of the Software to compile, link and run application programs legally developed by you or by others. 6. You may develop application programs, reusable components and other software items that link with the original or modified versions of the Software. These items, when distributed, are subject to the following requirements: a. You must ensure that all recipients of machine-executable forms of these items are also able to receive and use the complete machine-readable source code to the items without any charge beyond the costs of data transfer. b. You must explicitly license all recipients of your items to use and re-distribute original and modified versions of the items in both machine-executable and source code forms. The recipients must be able to do so without any charges whatsoever, and they must be able to re-distribute to anyone they choose. c. If the items are not available to the general public, and the initial developer of the Software requests a copy of the items, then you must supply one. Limitations of Liability In no event shall the initial developers or copyright holders be liable for any damages whatsoever, including - but not restricted to - lost revenue or profits or other direct, indirect, special, incidental or consequential damages, even if they have been advised of the possibility of such damages, except to the extent invariable law, if any, provides otherwise. No Warranty The Software and this license document are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Choice of Law This license is governed by the Laws of France. ---------------------------------------------------------------------- GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! debian/changelog0000644000000000000000000002474712256131316011056 0ustar frama-c (20130601+fluorine3+dfsg-2build1) trusty; urgency=medium * Rebuild for ocaml-4.01. -- Matthias Klose Mon, 23 Dec 2013 22:01:50 +0000 frama-c (20130601+fluorine3+dfsg-2) unstable; urgency=low * Team upload * debian/patches: + Fix compilation with OCaml 4.01.0 (Closes: #731637) -- Stéphane Glondu Sun, 08 Dec 2013 12:25:21 +0100 frama-c (20130601+fluorine3+dfsg-1) unstable; urgency=low * New upstream release (Closes: #714124) - Remove 0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch, fixed upstream - Remove 0002-Accept-ocamlgraph-1.8.patch, fixed upstream - Remove 0006-Patchlevel2-for-Nitrogen-20111001.patch, integrated - Add 0004-Fix-auto-detection-of-ocaml-zarith.patch - Require ocamlgraph (>= 1.8.3~) on build. * Add libzarith-ocaml-dev to Build-Depends. * Add autoconf to Build-Depends. * Call dh_ocaml with --nodefined-map=frama-c-base:Big_int_Z,Z,Q, modules already declared by ocaml-zarith. -- Mehdi Dogguy Mon, 25 Nov 2013 15:02:35 +0100 frama-c (20111001+nitrogen+dfsg-3) unstable; urgency=low * Include patchlevel2 for Nitrogen 20111001. - add debian/patches/0006-Patchlevel2-for-Nitrogen-20111001.patch -- Mehdi Dogguy Fri, 06 Jan 2012 09:30:44 +0100 frama-c (20111001+nitrogen+dfsg-2) unstable; urgency=low * add 0005-Disable-CHMOD_RO-invocations.patch. -- Mehdi Dogguy Tue, 03 Jan 2012 15:24:55 +0100 frama-c (20111001+nitrogen+dfsg-1) unstable; urgency=low * New upstream release (Closes: #652257). * Update patches: - remove 0001-Value-Analysis-Carbon-patchlevel-1.patch - remove 0002-Fix-for-issue-727.patch - rebase 0003-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch - update 0004-Accept-ocamlgraph-1.8.patch - add 0003-Fix-spelling-error-in-binary.patch - add 0004-Use-bin-cp-instead-of-usr-bin-install.patch * Bump minimum requirement for ocamlgraph to 1.8. * Bump Standards-Version to 3.9.2, no changes needed. -- Mehdi Dogguy Mon, 02 Jan 2012 17:29:13 +0100 frama-c (20110201+carbon+dfsg-2) unstable; urgency=low * Add "-I +ocamlgraph" to DYN_{O,B}LINKFLAGS, needed for plugins to link. - add 0003-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch - add libocamlgraph-ocaml-dev to frama-c-base's runtime dependencies. -- Mehdi Dogguy Mon, 25 Apr 2011 12:03:31 +0200 frama-c (20110201+carbon+dfsg-1) unstable; urgency=low * New upstream release: - Update copyright file. - Remove all patches, integrated by upstream. - Add patches: + 0001-Value-Analysis-Carbon-patchlevel-1.patch + 0002-Fix-for-issue-727.patch * Fix Categories field in frama-c.desktop (Closes: #610432) (LP: #613853). * No need to exclude custom bytecode binaries when running dh_strip. (thanks to patch applied in OCaml >= 3.12.0-5) -- Mehdi Dogguy Sat, 23 Apr 2011 18:47:13 +0200 frama-c (20100401+boron+dfsg-5) unstable; urgency=low [ Stéphane Glondu ] * Fix versioned build-deps to ensure smoother backports [ Mehdi Dogguy ] * Add 0011-Fix-some-minor-memory-leaks.patch -- Mehdi Dogguy Tue, 05 Oct 2010 18:49:13 +0200 frama-c (20100401+boron+dfsg-4) unstable; urgency=low * Add 0009-unrollType-in-handle_signed_overflow from upstream. * Add 0010-More-spelling-fixes.patch * Convert to 3.0 (quilt) source format. * Bump standards version to 3.9.0. -- Mehdi Dogguy Fri, 16 Jul 2010 13:53:55 +0200 frama-c (20100401+boron+dfsg-3) unstable; urgency=low * Add some patches - 0007-Fix-cpp-command-arguments.patch - 0008-Fix-ai-ival.ml-filter_ge.patch -- Mehdi Dogguy Mon, 14 Jun 2010 23:36:37 +0200 frama-c (20100401+boron+dfsg-2) unstable; urgency=low * Make the configure script accept OCamlgraph 1.5 (Closes: #580090) * Build-depend on ocaml (>= 3.11.1-3~) and dh-ocaml (>= 0.9~). * Add a debian/source/format file (keep the package in 1.0 format, for now). -- Mehdi Dogguy Tue, 01 Jun 2010 20:18:44 +0200 frama-c (20100401+boron+dfsg-1) unstable; urgency=low * New upstream release: - Remove some patches integrated by upstream: + 0001-Use-GSourceView2.patch + 0003-Do-not-install-native-Kernel-modules-on-bytecode-arc.patch + 0004-temp_file-changed-in-OCaml-3.11.2.patch - Add some patches: + 0002-.make-ocamlgraph-no-op-for-non-local-ocamlgraph + 0003-Fix-build-on-bytecode-only-architectures.patch + 0004-Fix-some-typos.patch + 0005-Don-t-modify-system-files.patch + 0006-Fix-build-on-bytecode-only-architectures.patch - Update: + 0001-Fix-hyphen-used-as-minus-sign-and-a-typo.patch - Bump ocamlgraph minimum version to 1.4 * Set Priority to optional * Set filter-pristine-tar in debian/gbp.conf * Fix watch file * Update 'Homepage' field * Bump Standards Version to 3.8.4, no changes needed. * Update copyright file -- Mehdi Dogguy Tue, 27 Apr 2010 16:04:49 +0200 frama-c (20090902+beryllium+dfsg-5) unstable; urgency=low * Build-Depend on libocamlgraph-viewer-ocaml-dev (Closes: #575371) -- Mehdi Dogguy Thu, 25 Mar 2010 11:14:43 +0100 frama-c (20090902+beryllium+dfsg-4) unstable; urgency=low * Make it compile with OCaml 3.11.2 (Closes: #569260) - Add 0004-temp_file-changed-in-OCaml-3.11.2.patch -- Mehdi Dogguy Thu, 11 Feb 2010 20:57:17 +0100 frama-c (20090902+beryllium+dfsg-3) unstable; urgency=low * Fix FTBFS on bytecode architectures - 0003-Do-not-install-native-Kernel-modules-on-bytecode-architectures * Add Graphviz to build-depends -- Mehdi Dogguy Fri, 22 Jan 2010 11:59:37 +0100 frama-c (20090902+beryllium+dfsg-2) unstable; urgency=low * Fix installability problem by installing frama-c-gui.1 only once. * Remove empty dirs * Fix hyphen-used-as-minus-sign * Fix short description of frama-c-base * Set section to « devel » -- Mehdi Dogguy Sun, 17 Jan 2010 19:33:00 +0100 frama-c (20090902+beryllium+dfsg-1) unstable; urgency=low * New upstream release + Remove 0001-Fix-weak-pattern-matching-in-dynlink_lower_311_byte..patch (fixed upstream) + Remove 0003-Add-dGraphView.cmo-when-linking.patch (fixed upstream) * Update copyright file * Remove libjessie-ocaml-dev from build-deps (Why is not needed anymore to build Frama-C). * Run dh using "--with ocaml" to trigger dh-ocaml sequence * Build-depend on ocamlgraph 1.3 * Add a new binary package: frama-c-base -- Mehdi Dogguy Sun, 10 Jan 2010 22:50:18 +0100 frama-c (20090901+beryllium+dfsg-2) unstable; urgency=low * Fix watch file * Build-depend on lablgtk2 (>= 2.14.0+dfsg-2) (Closes: #541963). - Add a patch: 0004-Use-GSourceView2.patch * Use new features of dh-ocaml * Build-dep on ocamlgraph (>> 1.2+debian) -- Mehdi Dogguy Wed, 02 Dec 2009 00:08:35 +0100 frama-c (20090901+beryllium+dfsg-1) unstable; urgency=low * Change the version number to reflect the codename in the version string * New Upstream Version + Fixes the issues related the static Jessie plugin. Thus, removing: 0004-Add-JCCM-O-X-to-BYTE-OPT-_LIBS-when-linking-statical.patch (Closes: #544404). + Provides toc_head.htm and toc_tail.htm + Fixes linking problem for the viewer. Thus, removing: 0002-Do-not-add-GRAPH_GUICMO-to-BYTE_GUI_LIBS.patch + Removing 0006-Do-not-install-non-existant-files.patch (now integrated upstream) * Add some patches: + Fix weak pattern-matching in dynlink_lower_311_byte.ml, fixes FTBFS on non-native architectures (Closes: #544833). 0001-Fix-weak-pattern-matching-in-dynlink_lower_311_byte..patch + Make the Jessie plugin compile with Jc 2.19: 0002-Make-Jessie-plugin-use-Jc-from-Why-2.19.patch + Fix linking problem for the viewer (add dGraphView.cmo): 0003-Add-dGraphView.cmo-when-linking.patch * Bump libocamlgraph-ocaml-dev version from 1.1 to 1.2+debian in build dependencies. * Don't strip bytecode binaries since they are compiled with -custom * Recommends alt-ergo and libwhy-coq * Remove useless runtime dependency libocamlgraph-ocaml-dev * Install data needed by frama-c in /usr/share/frama-c * Make some additional links to follow default upstream installation: + /usr/share/frama-c/why -> /usr/share/why/ + /usr/share/frama-c/caduceus -> /usr/share/caduceus -- Mehdi Dogguy Wed, 09 Sep 2009 17:30:41 +0200 frama-c (20090601~beta1+dfsg-1) unstable; urgency=low * New Upstream Version * Use Debian mail address, Remove DMUA * Remove patches integrated upstream: + 0001-Gui_includes-variable-should-include-ocamlgraph-too.patch + 0002-Make-the-jessie-plugin-compatible-with-why-2.18.patch + 0003-Correctly-detect-jessie-plugin.patch + 0004-Using-graph.cm-a-xa-instead-of-graph.cm-o-x.patch + 0007-Add-a-variable-for-ENABLE_GUI-in-Makefile.in.patch + 0005-Full-path-for-ocamlgraph-cmo-otherwise-Makefile-will.patch * Refresh patch: + 0006-Do-not-install-non-existant-files.patch * Remove debian/man: Manpage integrated upstream * Build-depend on jessie library 2.19 * Remove patch rule which is now implemented by dom-save-patches (now part of the package dh-ocaml). * Do not include uselessly the file /usr/share/quilt/quilt.make in debian/rules * Build-depend on debhelper 7.0.50 since we use overrides * Bump Standards-Version to 3.8.3 + Add a README.source * Build-depending on a particular revision of libocamlgraph-ocaml-dev is not needed * Install frama-c, frama-c.byte and frama-c-gui on native-architectures and frama-c and frama-c-gui on non-natives ones. * Update README.Debian * Update copyright file -- Mehdi Dogguy Fri, 28 Aug 2009 14:53:52 +0200 frama-c (20081201.dfsg-3) unstable; urgency=low * Fix long description (Closes: #533158) * Tighten build dependencies versions to ease OCaml 3.11.1 transition * Rebuild with OCaml 3.11.1 -- Mehdi Dogguy Fri, 10 Jul 2009 20:07:12 +0200 frama-c (20081201.dfsg-2) unstable; urgency=low * Do not install Journal_loader.cmxs on non-native archs, fixes FTBFS on non-native archs. -- Mehdi Dogguy Wed, 03 Jun 2009 08:19:25 +0200 frama-c (20081201.dfsg-1) unstable; urgency=low * Initial release (Closes: #484234) * Codename: Lithium -- Mehdi Dogguy Fri, 24 Apr 2009 23:47:35 +0200 debian/icons/0000755000000000000000000000000012251053327010301 5ustar debian/icons/frama-c.xpm0000644000000000000000000000726612251053327012350 0ustar /* XPM */ static char * frama_c_xpm[] = { "32 32 96 2", " c None", ". c #DB4620", "+ c #E04821", "@ c #E14921", "# c #E14821", "$ c #DF4720", "% c #D1431E", "& c #D6451E", "* c #EB4B22", "= c #F14D23", "- c #F24D23", "; c #F04D23", "> c #EF4C22", ", c #DE4720", "' c #EE4C22", ") c #EF4C21", "! c #EF481D", "~ c #EF461A", "{ c #EF4519", "] c #F1603B", "^ c #F7A48F", "/ c #FAD0C5", "( c #FCDCD5", "_ c #FDDED6", ": c #FBCBBE", "< c #F05027", "[ c #EF4B21", "} c #EF4D23", "| c #F37352", "1 c #FEF1EE", "2 c #FFFFFF", "3 c #FEFCFB", "4 c #FEF7F6", "5 c #FCE1D9", "6 c #F0532B", "7 c #FACBC0", "8 c #FCE2DB", "9 c #F6A08A", "0 c #F58A6F", "a c #F58A6E", "b c #F48264", "c c #F04E24", "d c #F04C22", "e c #F05932", "f c #F59076", "g c #EF4418", "h c #EF461B", "i c #EF471C", "j c #EF4A20", "k c #F1603A", "l c #FEF5F3", "m c #F48062", "n c #EF471B", "o c #F0552D", "p c #F15A33", "q c #F27150", "r c #F58B6F", "s c #F1572F", "t c #F05127", "u c #EF4317", "v c #F9B8A8", "w c #FEFAF8", "x c #FEFBFA", "y c #FEFEFE", "z c #FEFAF9", "A c #FEF8F6", "B c #F47E5F", "C c #EF481C", "D c #F9B3A2", "E c #FDF1EE", "F c #FEF4F1", "G c #FEF6F4", "H c #FDF2EF", "I c #FEF2EF", "J c #FDF0EC", "K c #F47B5C", "L c #F0471C", "M c #EF4518", "N c #F15E38", "O c #EF4114", "P c #F16540", "Q c #FEF4F2", "R c #F48063", "S c #EF491E", "T c #F26541", "U c #F48163", "V c #F1613C", "W c #FEEEEA", "X c #FCDAD1", "Y c #F37959", "Z c #EF4A1F", "` c #EF4B20", " . c #EE3F12", ".. c #EE4114", "+. c #E84A21", "@. c #EC4C22", " . + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # $ % ", " & * = = = = = = = = = = = = = = = = = = = = = = = = = = - $ ", " * ; > ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > - , ", ". = > ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ' ", "+ = ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > ; ", "@ = ; ; ; ; ; ; ; ; ; ; ; ; ; ) ! ~ { { ~ > ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; ; > ) ] ^ / ( _ : < [ ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; ; } | 1 2 3 4 4 5 < [ ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; ; 6 7 2 8 9 0 a b c > ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; d e 2 2 f g h h i > ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; [ j k 2 l m n j j > ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; > o p q 2 l r s p p t > ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; u v w x 2 y 3 z x A B C ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; u D E F 2 y G H I J K ! ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; L M N 2 F K O { { j ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; > > P 2 Q R S > > d ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > T 2 Q U S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "@ = ; ; ; ; ; ; ; ; ; ; > V W X Y Z ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "# = ; ; ; ; ; ; ; ; ; ; ; ` ...S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ", "$ = ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > ; ", "% - > ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > ; +.", " $ - ; > ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > ; @. ", " , ' ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; +. "}; debian/icons/frama-c.svg0000644000000000000000000000523212251053327012332 0ustar image/svg+xml f debian/purify_tarball0000755000000000000000000000077412251053327012143 0ustar #!/bin/sh set -e ORIG=$1 CURDIR=`pwd` WORKDIR=`dirname $ORIG` ORIGFILE=`basename $ORIG` DESTDIR=`basename $ORIG .tar.gz` cd $WORKDIR safe_remove () { rm -rf $1 || echo $1 not found } if test -d $DESTDIR; then echo "Directory $DESTDIR already exists" exit 1 fi tar xzf $ORIGFILE for i in why ocamlgraph ocamlgraph.tar.gz doc/manuals \ src/impact src/security cil/doc tests/test/adpcm.c; do safe_remove $DESTDIR/$i; done tar czf $DESTDIR.orig.tar.gz $DESTDIR/ safe_remove $DESTDIR/ cd $CURDIR debian/frama-c-base.manpages0000644000000000000000000000001612251053327013116 0ustar man/frama-c.1 debian/clean0000644000000000000000000000036612251053327010200 0ustar cil/ocamlutil/perfcount.c src/ltl_to_acsl/ltlparser.output src/ltl_to_acsl/promelaparser.output src/ltl_to_acsl/promelaparser_withexps.output config.log config.status config.sub config.guess .depend share/Makefile.config tests/wp/test_config_dev debian/links0000644000000000000000000000010412251053327010224 0ustar usr/share/man/man1/frama-c.1.gz usr/share/man/man1/frama-c-gui.1.gz debian/TODO0000644000000000000000000000405712251053327007664 0ustar - Make sure (when frama-c team will start to use alt-ergo) that they call 'alt-ergo' instead of 'ergo'. From: Mehdi Dogguy Date: Wed, 20 May 2009 16:17:47 +0200 Subject: [PATCH] Should call alt-ergo instead of ergo --- debian/patches/0007-Ergo-is-Alt-ergo.patch | 26 ++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 27 insertions(+), 0 deletions(-) create mode 100644 debian/patches/0007-Ergo-is-Alt-ergo.patch diff --git a/debian/patches/0007-Ergo-is-Alt-ergo.patch b/debian/patches/0007-Ergo-is-Alt-ergo.patch new file mode 100644 index 0000000..e1a3e81 --- /dev/null +++ b/debian/patches/0007-Ergo-is-Alt-ergo.patch @@ -0,0 +1,26 @@ +From: Mehdi Dogguy +Date: Wed, 20 May 2009 16:15:09 +0200 +Subject: [PATCH] Ergo is Alt-ergo + +--- + src/logic/why_output.ml | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/logic/why_output.ml b/src/logic/why_output.ml +index 92af1ad..18fa12d 100644 +--- a/src/logic/why_output.ml ++++ b/src/logic/why_output.ml +@@ -151,9 +151,9 @@ let prove basename prelude p = + else begin + let base = Filename.chop_extension why_file in + let ergo_file = (base^"_why.why") in +- Format.printf "[?] call 'ergo' on %s@." ergo_file; +- if Sys.command (sprintf "ergo %s" ergo_file) <> 0 then +- Format.printf "Could not run ergo.@." ++ Format.printf "[?] call 'alt-ergo' on %s@." ergo_file; ++ if Sys.command (sprintf "alt-ergo %s" ergo_file) <> 0 then ++ Format.printf "Could not run alt-ergo.@." + end + end + else +-- diff --git a/debian/patches/series b/debian/patches/series index cf75bc6..0ed39b0 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ 0004-Using-graph.cm-a-xa-instead-of-graph.cm-o-x.patch 0005-Full-path-for-ocamlgraph-cmo-otherwise-Makefile-will.patch 0006-Do-not-install-non-existant-files.patch +0007-Ergo-is-Alt-ergo.patch -- 1.6.2.4 debian/compat0000644000000000000000000000000212251053327010364 0ustar 7 debian/menu0000644000000000000000000000023412251053327010054 0ustar ?package(frama-c):needs="X11" section="Applications/Programming" \ title="Frama-C" command="/usr/bin/frama-c-gui" \ icon="/usr/share/pixmaps/frama-c.xpm" debian/patches/0000755000000000000000000000000012251053330010607 5ustar debian/patches/0005-Fix-compilation-with-OCaml-4.01.0.patch0000644000000000000000000001213712251053330017740 0ustar From: Stephane Glondu Date: Sun, 8 Dec 2013 12:17:33 +0100 Subject: Fix compilation with OCaml 4.01.0 Author: Virgile Prevosto Origin: https://github.com/vprevosto/opam-repository/blob/master/packages/frama-c.20130601/files/4.01-compat.patch Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731637 --- external/hptmap.ml | 15 +++++++++++++++ external/hptmap.mli | 3 +++ src/kernel/file.ml | 5 +---- src/lib/hptset.ml | 2 ++ src/lib/hptset.mli | 2 ++ src/lib/setWithNearest.ml | 8 ++++++++ src/memory_state/cvalue.mli | 4 ++-- src/wp/qed/src/idxset.ml | 4 ++++ 8 files changed, 37 insertions(+), 6 deletions(-) diff --git a/external/hptmap.ml b/external/hptmap.ml index 39bacc4..4737d96 100644 --- a/external/hptmap.ml +++ b/external/hptmap.ml @@ -357,6 +357,21 @@ struct find htr + let find_key key htr = + let id = Key.id key in + let rec find htr = + match htr with + | Empty -> + raise Not_found + | Leaf (key', _, _) -> + if Key.equal key key' then + key' + else + raise Not_found + | Branch (_, mask, tree0, tree1, _) -> + find (if (id land mask) = 0 then tree0 else tree1) + in + find htr let mem key htr = diff --git a/external/hptmap.mli b/external/hptmap.mli index 979e8e8..b3b5e8e 100644 --- a/external/hptmap.mli +++ b/external/hptmap.mli @@ -84,6 +84,9 @@ this function will be renamed "hash" in the future *) for [k], it is overridden. *) val find : key -> t -> V.t + + val find_key: key -> t -> key + val remove : key -> t -> t (** [remove k m] returns the map [m] deprived from any binding involving [k]. *) diff --git a/src/kernel/file.ml b/src/kernel/file.ml index 3258366..a34aee3 100644 --- a/src/kernel/file.ml +++ b/src/kernel/file.ml @@ -322,6 +322,7 @@ object(self) Printer.pp_logic_var lv Printer.pp_varinfo v method vlogic_info_decl li = + Logic_var.Hashtbl.add known_logic_info li.l_var_info li; List.iter (fun lv -> if lv.lv_kind <> LVFormal then @@ -769,10 +770,6 @@ object(self) DoChildren | _ -> DoChildren - method vlogic_info_decl li = - Logic_var.Hashtbl.add known_logic_info li.l_var_info li; - DoChildren - method vlogic_info_use li = let unknown () = check_abort "logic function %s has no information" li.l_var_info.lv_name diff --git a/src/lib/hptset.ml b/src/lib/hptset.ml index e5fe2db..5de7957 100644 --- a/src/lib/hptset.ml +++ b/src/lib/hptset.ml @@ -26,6 +26,7 @@ module type S = sig val empty: t val is_empty: t -> bool val mem: elt -> t -> bool + val find: elt -> t -> elt val add: elt -> t -> t val singleton: elt -> t val remove: elt -> t -> t @@ -71,6 +72,7 @@ module Make(X: Id_Datatype) type elt = X.t let add k = add k () + let find = find_key let iter f = iter (fun x () -> f x) let fold f = fold (fun x () -> f x) diff --git a/src/lib/hptset.mli b/src/lib/hptset.mli index e1ae83d..2f1ef49 100644 --- a/src/lib/hptset.mli +++ b/src/lib/hptset.mli @@ -50,6 +50,8 @@ module type S = sig val mem: elt -> t -> bool (** [mem x s] tests whether [x] belongs to the set [s]. *) + val find: elt -> t -> elt + val add: elt -> t -> t (** [add x s] returns a set containing all elements of [s], plus [x]. If [x] was already in [s], [s] is returned unchanged. *) diff --git a/src/lib/setWithNearest.ml b/src/lib/setWithNearest.ml index 0123bd7..1408fa4 100644 --- a/src/lib/setWithNearest.ml +++ b/src/lib/setWithNearest.ml @@ -165,6 +165,14 @@ module Make(Ord: Datatype.S) = struct let c = Ord.compare x v in c = 0 || mem x (if c < 0 then l else r) + let rec find x = function + | Empty -> raise Not_found + | Node(l, v, r, _) -> + match Ord.compare x v with + | c when c < 0 -> find x l + | 0 -> v + | _ -> find x r + let singleton x = Node(Empty, x, Empty, 1) let rec remove x = function diff --git a/src/memory_state/cvalue.mli b/src/memory_state/cvalue.mli index 602bc4a..ac60f7b 100644 --- a/src/memory_state/cvalue.mli +++ b/src/memory_state/cvalue.mli @@ -35,8 +35,8 @@ module V : sig include module type of Location_Bytes (* Too many aliases, and OCaml module system is not able to keep track of all of them. Use some shortcuts *) - with type z = Location_Bytes.z - and type M.t = Location_Bytes.M.t + with type M.t = Location_Bytes.M.t + and type z = Location_Bytes.z include Lattice_With_Isotropy.S with type t := t diff --git a/src/wp/qed/src/idxset.ml b/src/wp/qed/src/idxset.ml index 32dd645..7549515 100644 --- a/src/wp/qed/src/idxset.ml +++ b/src/wp/qed/src/idxset.ml @@ -59,6 +59,8 @@ struct let mem e s = mem_k (E.id e) s + let find e s = if mem e s then e else raise Not_found + let lowest_bit x = x land (-x) let branching_bit p0 p1 = lowest_bit (p0 lxor p1) @@ -360,6 +362,8 @@ struct let mem e s = mem_k (index e) s + let find e s = if mem e s then e else raise Not_found + let mask k m = (k lor (m-1)) land (lnot m) (* we first write a naive implementation of [highest_bit] -- debian/patches/0003-Disable-CHMOD_RO-invocations.patch0000644000000000000000000000102612251053330017334 0ustar From: Mehdi Dogguy Date: Tue, 3 Jan 2012 15:24:27 +0100 Subject: Disable CHMOD_RO invocations --- share/Makefile.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/Makefile.common b/share/Makefile.common index 4441720..16a6f61 100644 --- a/share/Makefile.common +++ b/share/Makefile.common @@ -152,7 +152,7 @@ external_make = \ CAT = cat CHMOD = chmod -CHMOD_RO= chmod a-w +CHMOD_RO= true CHMOD_RW= sh -c \ 'for f in "$$@"; do \ if test -e $$f; then chmod u+w $$f; fi \ -- debian/patches/0002-Use-bin-cp-instead-of-usr-bin-install.patch0000644000000000000000000000105012251053330021155 0ustar From: Mehdi Dogguy Date: Mon, 2 Jan 2012 17:28:56 +0100 Subject: Use /bin/cp instead of /usr/bin/install --- share/Makefile.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/Makefile.common b/share/Makefile.common index 90c877e..4441720 100644 --- a/share/Makefile.common +++ b/share/Makefile.common @@ -157,7 +157,7 @@ CHMOD_RW= sh -c \ 'for f in "$$@"; do \ if test -e $$f; then chmod u+w $$f; fi \ done' chmod_rw -CP = install +CP = cp ECHO = echo MKDIR = mkdir -p MV = mv -- debian/patches/0001-Fix-spelling-error-in-binary.patch0000644000000000000000000000561612251053330017574 0ustar From: Mehdi Dogguy Date: Mon, 2 Jan 2012 14:36:52 +0100 Subject: Fix spelling-error-in-binary --- Changelog | 4 ++-- cil/src/frontc/cabs2cil.ml | 4 ++-- man/frama-c.1 | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Changelog b/Changelog index aaae442..5f972ef 100644 --- a/Changelog +++ b/Changelog @@ -219,7 +219,7 @@ o! Kernel [2012/11/24] Various types whose names started by t_ in o Rte [2012/11/23] Export function "exp_annotations" to get RTEs of a C expression as annotations. o*!Kernel [2012/11/23] Added TLogic_coerce constructor to mark - explicitely a conversion from a C type to a logical one + explicitly a conversion from a C type to a logical one (in particular floating point -> real and integral -> integer). Fixes issue #1309. o! Kernel [2012/11/22] Remove unintuitive ?prj argument from Cil visitors, @@ -1237,7 +1237,7 @@ o* Cil [2010/12/20] Fixed bug #645. Ast_info.constant_expr, mkAddrOrStartOf,mkString,parseInt,sizeOf] no longer use an optional argument ?loc. It is now a non optional labeled argument. Previous default value of loc was - ~loc:Cil_datatype.Location.unkown which is most of the time + ~loc:Cil_datatype.Location.unknown which is most of the time not accurate. ################################### diff --git a/cil/src/frontc/cabs2cil.ml b/cil/src/frontc/cabs2cil.ml index 8351fc2..23d7769 100644 --- a/cil/src/frontc/cabs2cil.ml +++ b/cil/src/frontc/cabs2cil.ml @@ -2233,7 +2233,7 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool = * local. This can happen when we declare an extern variable with * global scope but we are in a local scope. *) - (* We lookup in the environement. If this is extern inline then the name + (* We lookup in the environment. If this is extern inline then the name * was already changed to foo__extinline. We lookup with the old name *) let lookupname = if vi.vstorage = Static then @@ -3427,7 +3427,7 @@ let default_argument_promotion idx exp = "implicit prototype cannot have variadic arguments" | TNamed _ -> assert false (* unrollType *) in - (* if we make a promotion, take it explicitely + (* if we make a promotion, take it explicitly into account in the argument itself *) let (_,e) = castTo arg_type typ exp in (name,typ,[]), e diff --git a/man/frama-c.1 b/man/frama-c.1 index 667f6a3..e2a1a70 100644 --- a/man/frama-c.1 +++ b/man/frama-c.1 @@ -395,7 +395,7 @@ removes break, continue and switch statement before analyses. Defaults to no. .TP .B -then -allows to compose analyzes: a first run of Frama-C will occur with the +allows one to compose analyzes: a first run of Frama-C will occur with the options before .B -then and a second run will be done with the options after -- debian/patches/0004-Fix-auto-detection-of-ocaml-zarith.patch0000644000000000000000000000154312251053330020656 0ustar From: Mehdi Dogguy Date: Mon, 25 Nov 2013 11:47:18 +0100 Subject: Fix auto-detection of ocaml-zarith The installation directory is the same using any upstream provided installation method (simple one or using ocamlfind). It is always: $(ocamlc -where)/zarith/* --- configure.in | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/configure.in b/configure.in index 7af9655..58c9bb6 100644 --- a/configure.in +++ b/configure.in @@ -364,10 +364,8 @@ AC_ARG_ENABLE( ZARITH_PATH=$enableval,) if test -z "$ZARITH_PATH"; then - # standard installation procedure of zarith diverges according to - # ocamlfind installation (see zarith's README) if test "$OCAMLFIND" = no ; then - ZARITH_PATH=$OCAMLLIB + ZARITH_PATH=$OCAMLLIB/zarith else ZARITH_PATH=`ocamlfind printconf destdir | tr -d '\\r\\n'`/zarith fi -- debian/patches/series0000644000000000000000000000033412251053330012024 0ustar 0001-Fix-spelling-error-in-binary.patch 0002-Use-bin-cp-instead-of-usr-bin-install.patch 0003-Disable-CHMOD_RO-invocations.patch 0004-Fix-auto-detection-of-ocaml-zarith.patch 0005-Fix-compilation-with-OCaml-4.01.0.patch debian/README.Debian0000644000000000000000000000122412251053327011226 0ustar frama-c for Debian ------------------ Several files and directories are deleted from upstream's tarball: - ocamlgraph.tar.gz: exists in a Debian package. - why/: exists in a Debian package and exports the jessie library - doc/manuals/: Documentation without sources. - cil/doc/: Documentation without sources. - src/impact and src/security : Proprietary code. - tests/test/adpcm.c: File without license nor copyright The shell script “purify_tarball” is used to make a dfsg-compliant tarball. configure.in and Makefile.in are patched to use what's installed by Debian packages. -- Mehdi Dogguy Tue, 12 May 2009 15:19:00 +0200 debian/control0000644000000000000000000000536212251053327010577 0ustar Source: frama-c Section: devel Priority: optional Maintainer: Debian OCaml Maintainers Uploaders: Mehdi Dogguy Build-Depends: debhelper (>= 7.0.50~), ocaml-nox (>= 3.12.0~), ocaml-best-compilers, dh-ocaml (>= 0.9~), graphviz, autoconf, libzarith-ocaml-dev, libocamlgraph-viewer-ocaml-dev (>> 1.8.3~), liblablgtk2-gnome-ocaml-dev (>= 2.14.0+dfsg-2~), liblablgtksourceview2-ocaml-dev (>= 2.14.0+dfsg-2~) Standards-Version: 3.9.2 Homepage: http://frama-c.com/ Vcs-Browser: http://git.debian.org/?p=pkg-ocaml-maint/packages/frama-c.git Vcs-Git: git://git.debian.org/git/pkg-ocaml-maint/packages/frama-c.git Package: frama-c Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, frama-c-base (= ${binary:Version}), graphviz, emacs | emacsen Recommends: why (>= 2.19+dfsg-2), Description: Framework for source code analysis of software written in C Frama-C is a framework dedicated to the analysis of the source code of software written in C. . Frama-C gathers several static analysis techniques in a single collaborative framework. The collaborative approach of Frama-C allows static analyzers to build upon the results already computed by other analyzers in the framework. Thanks to this approach, Frama-C provides sophisticated tools, such as a slicer and dependency analysis. . It can be used to: * Validate the source code formally * Look for potential runtime errors * Audit or review it * Reverse engineer it to understand its structure * Generate formal documentation . This package provides the graphical user interface of Frama-c and depends on frama-c-base. Package: frama-c-base Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, libocamlgraph-ocaml-dev, gcc, Recommends: alt-ergo, libwhy-coq Replaces: frama-c (<< 20090902+beryllium+dfsg-1) Breaks: frama-c (<< 20090902+beryllium+dfsg-1) Description: Framework for C source code analysis (without gui) Frama-C is a framework dedicated to the analysis of the source code of software written in C. . Frama-C gathers several static analysis techniques in a single collaborative framework. The collaborative approach of Frama-C allows static analyzers to build upon the results already computed by other analyzers in the framework. Thanks to this approach, Frama-C provides sophisticated tools, such as a slicer and dependency analysis. . It can be used to: * Validate the source code formally * Look for potential runtime errors * Audit or review it * Reverse engineer it to understand its structure * Generate formal documentation . This package provides the library of Frama-c which is useful to build plugins for Frama-c and the command-line tools. debian/dirs0000644000000000000000000000016012251053327010047 0ustar usr/bin usr/share/doc/frama-c usr/share/icons/hicolor/scalable/apps/ usr/share/pixmaps/ usr/share/applications/ debian/frama-c.install0000644000000000000000000000002412251053327012060 0ustar usr/bin/frama-c-gui debian/rules0000755000000000000000000000336512251053327010255 0ustar #!/usr/bin/make -f # -*- makefile -*- export DH_VERBOSE=1 include /usr/share/ocaml/ocamlvars.mk FRAMA_DIR=$(CURDIR)/debian/tmp override_dh_auto_configure: mkdir -p lib/plugins mkdir -p lib/gui touch .depend .make-clean .make-clean-stamp [ ! -f src/kernel/config.ml ] || cp src/kernel/config.ml src/kernel/config.ml.debian ./configure $(CROSS) --prefix=/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ --datarootdir=\$${prefix}/share \ --disable-impact \ --disable-security \ --enable-verbosemake \ CFLAGS="$(CFLAGS)" \ LDFLAGS="-Wl,-z,defs" override_dh_auto_install: $(MAKE) prefix=$(FRAMA_DIR)/usr FRAMAC_DATADIR=$(FRAMA_DIR)/usr/share/frama-c install # Fix permission of .c and .h files (they don't have to be executable) find debian/ -name "*.c" -or -name "*.h" -exec chmod a-x '{}' \; cp debian/icons/frama-c.svg $(CURDIR)/debian/frama-c/usr/share/icons/hicolor/scalable/apps/ cp debian/icons/frama-c.xpm $(CURDIR)/debian/frama-c/usr/share/pixmaps/ cp debian/frama-c.desktop $(CURDIR)/debian/frama-c/usr/share/applications/ $(RM) -f $(CURDIR)/debian/frama-c/usr/bin/frama-c-gui.byte $(RM) -f $(CURDIR)/debian/frama-c/usr/bin/ptests.byte # Same file as frama-c.1. We use a symlink instead of copying the file twice $(RM) -f $(FRAMA_DIR)/usr/share/man/man1/frama-c-gui.1 ifeq ($(OCAML_OPT_ARCH),) $(RM) -f $(CURDIR)/debian/frama-c/usr/bin/frama-c.byte endif override_dh_auto_clean: touch .depend [ ! -f src/kernel/config.ml.debian ] || mv src/kernel/config.ml.debian src/kernel/config.ml [ ! -f Makefile -o ! -f share/Makefile.config ] || $(MAKE) clean $(RM) -rf lib .depend override_dh_ocaml: dh_ocaml --nodefined-map=frama-c-base:Big_int_Z,Z,Q %: dh --with ocaml $@ debian/source/0000755000000000000000000000000012251053327010466 5ustar debian/source/format0000644000000000000000000000001412251053327011674 0ustar 3.0 (quilt) debian/README.source0000644000000000000000000000111212251053327011340 0ustar Frama-C Debian source package ============================= Patching upstream sources ------------------------- This source package uses quilt to apply and remove its patches. Please refer to `/usr/share/doc/quilt/README.source' for information about how to use quilt for source packages. The quilt series is generated from the Git repository, using dom-{apply,save}-patches, from the dh-ocaml (>= 0.5) package. Please refer to the appendix about Git in the Debian OCaml Packaging Policy (from the same package). -- Mehdi Dogguy , Fri, 28 Aug 2009 09:04:48 +0200 debian/gbp.conf0000644000000000000000000000026012251053327010603 0ustar [DEFAULT] pristine-tar = True filter-pristine-tar = True filter = [ "ocamlgraph", "ocamlgraph.tar.gz", "doc/manuals", "cil/doc", "tests/test/adpcm.c" ] debian/frama-c-base.install.in0000644000000000000000000000010012251053327013370 0ustar usr/lib usr/share usr/bin/frama-c OPT: usr/bin/frama-c.byte debian/watch0000644000000000000000000000016312251053327010217 0ustar version=3 opts="dversionmangle=s/\+.*$//" \ http://frama-c.com/download.html download/frama-c-.*-([0-9]+)\.tar\.gz debian/frama-c.desktop0000644000000000000000000000034612251053327012072 0ustar [Desktop Entry] Name=Frama-C Comment=Framework for source code analysis of software written in C Exec=frama-c-gui Type=Application Categories=Development;ComputerScience;IDE;GTK; OnlyShowIn=Development Terminal=false Icon=frama-c debian/frama-c-base.links.in0000644000000000000000000000011212251053327013045 0ustar OPT: usr/share/man/man1/frama-c.1.gz usr/share/man/man1/frama-c.byte.1.gz