On Mon, Mar 16 2009, Raphael Hertzog wrote: > On Sun, 15 Mar 2009, Bill Allombert wrote: >> There is no documented semantic for CFLAGS et. al. in Debian policy. While >> some Makefile handle it in a certain way, this is not mandatory in >> any way. For example some configure scripts append options to CFLAGS while >> other will not change it if it is defined. > > This is precisely what I want to change. We should provide a reasonable > way for the user/admin to give default flags and for the packager to > override/extend the default set of flags.
So here are what I think we need, based on the most common use cases: A) Provide a way to specify project wide defaults for env variables B) Allow a site admin to selectively override these, and provide site wide defaults C) Allow a package to set some flags that would otherwise break the package, overriding site and/or project defaults as needed D) Allow the user to specify and override any of the above. In the non-snippet method proposed, there is no way for the package maintainer to override project defaults yet cater user set variable settings, since the information is lost. Also, I think that just CFLAGS is probably too broad, I might want to override only some of the categories of flags (optimization, machine related, warning, debugging, etc) and not others; pulling warning and optimization out as separate subflags might be a good compromise. All of this can be done with Makefile snippets, and do not allow you to mandate any set of tools, without which the environment set would be different. You can use dpkg-vuildpackage, $MAKE) -f deban/rules, write a wrapper Makefile that include ./debian/rules -- it all would just work. I do not see any reason to limit ourselves to one tool to set the env variables, especially since it prevents the package maintainer from distinguishing between the project wide defaults anduser set values, and has no easy way for a site to set site wide values. Hey, I might like hardening flags the project does not cater to when I rebuild the archive on my buildd -- and the snippet approach allows for it. manoj -- s = (char*)(long)retval; /* ouch */ Larry Wall in doio.c from the perl source code Manoj Srivastava <sriva...@debian.org> <http://www.debian.org/~srivasta/> 1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org