The "--with-xxx" options: suggestions
David Lee
T.D.Lee at durham.ac.uk
Thu Nov 16 11:17:14 GMT 2000
Samba has various "--with-xxx" options, which are extremely useful for
getting new, experimental options out to the user community, whilst
preserving the stability of the core Samba code. (That is, the average
user can rely on Samba "as-is" to be stable, and the more adventurous user
still has easy, but "opt in", access to the experimental features.)
But I wonder whether we do enough actively to follow through these options
into full service, and whether we give enough control?
Examples close to my own heart are "--with-quotas" and "--with-utmp", but
this message concerns the general principle, not just those two.
1. "--with-utmp" seems to have it right (although I egocentrically blow my
own trumpet and set myself up for a great fall...)
2. "-with-quotas" seems to have a flaw.
===
When I introduced "--with-utmp", I also introduced a boolean smb.conf
parameter "utmp" to switch the feature on or off (per share in this case).
There are two "opt in" risk aspects during the development months; note
the distinctions ande dependency:
1. "--with-utmp" at build: An "opt in" build-time risk.
2. "umtp" boolean in smb.conf: A dependent "opt in" run-time risk.
This principle attempts to be as safe as possible for the end user, and
also to separate out and control the build-time and run-time risks.
Once the code is basically stable and portable, the build/compile-time
risks are minimal, so we can drop the "--with-xxx" option (or default it
to "on"), and compile it by default. But the presence of the boolean
switch in "smb.conf", and its "off" default, still ensures that we
minimise the run-time risks to the average end user. This "opt in"
availability and control seems to be a good pattern.
===
The problem in "--with-quotas" is that it lacks the "smb.conf" boolean
flag. This has both retarded its development to full production use
and restricted its deployment.
1. This has been around for a long time, so we should be able to compile
it in by default.
2. We add a per-share parameter "quota" (or "df quota"), defaulting to
"off" (minimal surprise to non-quota sites). For the relatively few
sites who use it, it simply means that our explicit opt-in action of
"--with-quotas" is replaced by opt-in of the "quota" parameter.
===
Summary:
1. Each "--with--xxx" needs a "champion" to push it through to full
availability (i.e. default to be compiled in). (And if no champion is
forthcoming, the Samba Team can threaten to remove the facility!)
2. Each "--with-xxx" should have an appropriate "smb.conf" option,
defaulting to "off" (or equivalent) for opt-in per-site (or per-share
or whatever) deployment.
3. Given the above, "package" developers for various platforms (who by
definition are experienced and likely to be close to samba-technical)
should be encouraged to include the "--with-xxx" options, as they
themselves are debugging the code. Meanwhile the boolean smb.conf
switch is then available to the end-users: its off-default protects
most end-users at run-time.
4. In the particular case of "--with-quotas" we need a per-share parameter
called "quota" (or "df quota" or similar), defaulting to "off", with a
"README"/"CHANGELOG"/whatever note, indicating the change to the opt-in
mechanism (from compile-time to per-share run-time).
Thoughts?
--
: David Lee I.T. Service :
: Systems Programmer Computer Centre :
: University of Durham :
: http://www.dur.ac.uk/t.d.lee South Road :
: Durham :
: Phone: +44 191 374 2882 U.K. :
More information about the samba-technical
mailing list