Don't edit files in make install. Instead, just use all plug-ins in the plugin directory
ID0000606: This issue was created automatically from Mantis Issue 606. Further discussion may take place here.
|ID0000606||Frama-C||Kernel > Makefile||public||2010-10-13||2010-12-09|
|Reporter||dwheeler||Assigned To||signoles||Resolution||no change required|
|Product Version||Frama-C Boron-20100401||Target Version||-||Fixed in Version||-|
The current Frama-C architecture makes packaging Frama-C (and anything using it) unnecessarily difficult. Mark Rader and I managed to package "Frama-C" and "Why" for Fedora, but a few minor changes to Frama-C would make it MUCH easier to package and install (and thus update in the future).
In particular, please change Frama-C so that adding or removing a plug-in does NOT require any file contents to be changed. Instead, Frama-C should just look at the plug-in directory, and presume that all files in that directory (with the proper extensions) are to be used. That way, to add a plug-in, an installer only needs to add a file to that directory; to remove the plug-in, the installer only needs to remove the files in that directory.
This would also require changing the Frama-C "Makefile.dynamic" file so that installation would never modify the file "$(FRAMAC_SHARE)/known_plugins.ac" or any other file during "make install".
The reason is that modern packaging systems (e.g. rpm of Red Hat/Fedora/Novell/SuSE and deb for Debian/Ubuntu) separate the install step into TWO stages. The first one, which does NOT have root privileges, is done by the distributor to create a package; this normally runs "make install DESTDIR=tempdir". The contents of tempdir are then stored in the package. When the user installs the package, that is the second stage, but normally that just copies files and that's it.
Additional Information :
For more about how to make source releases easy to install, please see: "Releasing Free/Libre/Open Source Software (FLOSS) for Source Installation" http://www.dwheeler.com/essays/releasing-floss-software.html