[csw-maintainers] GAR RFE: Variable(s) to tag files for classes instead of PROTOTYPE_FILTER

Sebastian Kayser skayser at opencsw.org
Wed Jul 1 22:08:56 CEST 2009


Hi,

while working on postfix 2.6 i have noticed again that it is not quite
straight-forward to assign files to classes. Instead of exposing the inner
workings of the prototype stuff to the Makefile, could we maybe get some
variables to assign files to classes (functions)?

So instead of having:

CONFIG_BASE = \/etc\/opt\/csw\/postfix\/
CONFIG_FILES = access aliases canonical generic header_checks
CONFIG_FILES += main.cf master.cf
CONFIG_FILES += relocated transport virtual

PROTOTYPE_FILTER  = awk '\
	$(foreach C,$(prefix $(CONFIG_BASE),$(CONFIG_FILES)), \
		$$$$3 ~ /^$(C)$$$$/ { $$$$2 = "cswcpsampleconf" }) \
        ....

just have something like:

CONFIG_FILES = /etc/default/cswpostgrey
CONFIG_FILES += /etc/opt/csw/postfix/access
CONFIG_FILES += /etc/opt/csw/postfix/aliases
CONFIG_FILES += /etc/opt/csw/postfix/canonical
CONFIG_FILES += /etc/opt/csw/postfix/generic
CONFIG_FILES += /etc/opt/csw/postfix/header_checks
CONFIG_FILES += /etc/opt/csw/postfix/main.cf
CONFIG_FILES += /etc/opt/csw/postfix/master.cf
CONFIG_FILES += /etc/opt/csw/postfix/relocated
CONFIG_FILES += /etc/opt/csw/postfix/transport
CONFIG_FILES += /etc/opt/csw/postfix/virtual

To me this would feel more declarative instead of the procedural way we do
it with PROTOTYE_FILTER right now (note, it can be shortened with
$(foreach and $(prefix, just like above). It would not only tag the class,
but also wrap the other housekeeping, like moving the config files to .CSW
during the build process.

(Side note: Thinking ahead, it could also be an conceptual abstraction
level WRT to IPS: Do IPS packages still have a prototype file?)

This is only an example for config files, which i encounter most often.
Other classes could be "wrapped" as well. One would just have to come up
with the requirements, a proper naming scheme for the variables, and ....
actually implement it in GAR.

Sebastian




More information about the maintainers mailing list