#311188 debian-edu-config: Messes "programmatically" with conffiles of other packages

Package:
debian-edu-config
Source:
debian-edu-config
Submitter:
Date:
2022-03-24 23:12:05 UTC
Severity:
important
Tags:
Blocked By:
Bug Title
370332

  0

keep server list separate from other ntp.conf settings

wishlist stable unstable about 18 years ago

370337

  0

Please remove bogus change of etc/default/slapd

wishlist stable testing unstable over 9 years ago

370343

  16

make /etc/default/slapd automatically configurable

wishlist stable testing unstable almost 16 years ago

370346

  0

Make etc/security/group.conf automatically configurable

wishlist stable testing unstable about 6 years ago

#311188#5
Date:
2005-05-29 17:30:05 UTC
From:
To:
The (only?) purpose of debian-edu-config is to "tweak" the default
install of other Debian packages. Extensions are added to the
base-config package that messes with a bunch of conffiles based on
debconf values.

It is a violation of Debian Policy to mess with conffiles of other
packages, and http://release.debian.org/sarge_rc_policy.txt section 3
adds this:

I interpret the above as a clarification that Debian Policy 10.7.4
relates also to code inactive by default (like debconf preseeding).


Thus I consider the current behaviour of debian-edu-config an RC bug!


 - Jonas


P.S.

Thanks to Peter Palfrader for clarifying in bug#309871.

#311188#10
Date:
2005-05-29 19:43:13 UTC
From:
To:
[Jonas Smedegaard]

Debian policy section 10.7.4 (Sharing configuration files) reads:

  The maintainer scripts must not alter a conffile of any package,
  including the one the scripts belong to.

The base-config scripts are not maintainer scripts, so the behaviour
of debian-edu-config do not break the written policy.  So the sarge RC
policy "clarification" is clearly a more extended rule than the one in
the current policy.

The new "clarification" seem to forbid all scripts that can edit
conffiles.  Is this the correct interpretation?

(And yes, I believe we need to find a better way to handle
configuration in debian-edu, but while we wait, I see no better way to
do it than the current mechanism.  And I believe it is not breaking
policy as it is written in the Debian Policy Manual today.

It would be interesting to know which packages conffiles we affect, to
have a work list of packages we need to make more configurable.

#311188#15
Date:
2005-05-30 08:17:05 UTC
From:
To:
It's my understanding that policy's prohibition on editing conffiles from
maintainer scripts is intended to extend to any programs that are called
from maintainer scripts, and the sarge RC policy clarifies this: you are not
allowed to cause any package's conffiles to be edited in the process of
installing or removing a package.

The sarge RC policy says that the only correct way to modify a conffile is
"the user running an editor specifically".  This doesn't say that it must be
a *text* editor; other specialized editors also exist, and I don't have a
problem with such tools as long as they're not called on the user's behalf
by the package.  OTOH, base-config isn't as clear-cut because nothing is
done in the maintainer scripts, but base-config itself is invoked for the
user at install time.

I realize that debian-edu-config is something of a special case, because of
its narrow application.  I don't think that Debian-Edu should get a free
pass for violating policy, but I also don't think that there's much risk of
this issue affecting people who aren't installing debian-edu explicitly, so
it doesn't seem to make much difference to their net experience whether
deiban-edu-config is allowed in sarge or not.  So unless someone else on the
release team objects, I think I'm going to tag this bug sarge-ignore.

#311188#20
Date:
2005-05-30 09:28:54 UTC
From:
To:
extended rules, but clarifications of chosen interpretation at places
that can be (and is, like in this case) interpreted in several different
ways.

Section 3 of sarge RC policy shows that "maintainer scripts" are
interpreted as "everything invoked directly _and_ _indirectly_ by
package maintainance scripts".

You are correct in saying that Debian Policy can also be interpreted as
talking only about direct alteration.

It sure breaks packages' maintainance that their conffiles are altered
by other packages (which I believe is the intend of D-P 10.7.4): It is
expected to be able to remove functionality of a package by removing a
package - that is not the case with debian-edu-config.

The following was extractedx manually from looking at "links" and
"editfiles" entries of cf/*.cf in the source of debian-edu-config:

amanda
apache
apt
bind8
bind9
cupsys
devfsd
dhcpserver
exim(4?)
nfs-common
autofs
courier-ldap
courier-authdaemon
inetutils-inetd
kdm
xfree86-common
cron
kdebase-bin
login
libpam-runtime
samba
ssh
su
base-files
libnss-ldap
libpam-ldap
slapd
dhcp3-server
procps
xfs
mime-support
munin-node
nagios
shorewall
slbackup
squid
sysklogd
webmin



Some of the editing seems to be replacing files with symlinks to other
files. I believe that is problematic even if allowed by policy, due to
bugs in dpkg (but no, I can't proove it).


Also, config files seemingly not owned by a specific package (like
/etc/hosts.allow ) is edited as well. Don't know if that is fine to mess
with programmatically.

#311188#25
Date:
2005-05-30 10:56:22 UTC
From:
To:
So for the upgrade path from sarge to etch you want maybe 30+ quite
popular packages to weed out bugreports caused by chain-reactions of
installing this package?

I agree that debian-edu is a special case, but don't see your point in
that being a good excuse for ignoring policy: Debian-edu-* packages are
expected only to be useful in the Skolelinux Debian-derived
distribution. It is a goal of debian-edu to be able to create Skolelinux
solely from officially released Debian packages but that goal is not yet
reached so a few more packages having to be added unofficially shouldn't
be a big deal.

What is on the other hand problematic IMHO is that their goal of getting
adopted into Debian will be distorted if their packages violates policy:
They can truthfully argue that "it is good enough for Debian" while in
fact it isn't.


I recommend sarge RC policy is respected also for packages not expected
to be used in a broader audience.


 - Jonas

#311188#28
Date:
2005-05-30 11:11:50 UTC
From:
To:
[Jonas Smedegaard]

Installing this package isn't enough to activate it.  You have to run
the base-config fragments as well.

Do you have any proposals for fixing this issue?

#311188#33
Date:
2005-05-30 11:33:13 UTC
From:
To:
So do you also mean that it breaks packages' maintainance that their
conffiles are altered by the sysadmins too? Package maintainer script
shall perfectly handle that conffiles are changed by the sysadmin.

An extreme solution to this bug could have been to rewrite
debian-edu-config as a HUGE installation-manual, and tell the
sysadmins (I expect that there wouldn't be many left) to manually do
all the configuring. In the same way as it is now after a Debian-edu
installation, the maintainer scripts of the packages that will have a
altered configuration shall handle this during upgrade.

I'm not sure I see the difference. If I know the debian-edu-config
package right, one will have to run a script to change any conffiles
after manually installing the pacakge?


- Werner

#311188#38
Date:
2005-05-30 12:03:58 UTC
From:
To:
Could someone comment on this?  Its not clear to me what the policy is
on thos configuration files which are not conffiles.  It seems that
there is meant to be an established mechanism for editting such files,
(/usr/bin/update-foo) and therefore that an update such as:

	echo ALL: foo.bar.com >>/etc/hosts.allow

would be disallowed by policy, but a (hypothetical) update such as:

	/usr/bin/update-hosts.allow ALLOW ALL FROM foo.bar.com

would be acceptible (if allowing such connections was justified).

Justin

#311188#43
Date:
2005-05-30 21:54:33 UTC
From:
To:
Could we not come to a working compromise for sarge no the basis that a
propper solution is found for etch... something along the lines of this.

debian-edu-config could use debconf to ask the admin somthing like:
 "Do you wish to apply the debian-edu configuation?
  Doing so will alter the configuration of several independent packages
  installed on your system"

This could be preseeded by debian-edu fokes (right?) but give sutable
warning to others!

This is going to be a common problem for all CDD's (custom debian
distroes). Perhaps each cdd is allowed one package like this... each of
the spercial packages would have to conflict with eacho other (or
something) so only one can be installed.


Hmm... this may not be all that usefull but it might start someone else of
on the road to a better solution.

Alex Owen

#311188#48
Date:
2005-05-30 22:20:05 UTC
From:
To:
Well, this list is overbroad, at least; samba doesn't provide any conffiles.
(samba-common provides /etc/samba/gdbcommands as a conffile, but I doubt
that's the one that's being replaced here.)

#311188#53
Date:
2005-05-30 22:43:21 UTC
From:
To:
How does including the package in sarge make any difference to the number of
bugs (mis-)reported against these other packages?  The Skolelinux users are
still going to be installing it and modifying these conffiles; people who
are not Skolelinux users are still not going to.

What other packages does Skolelinux depend on for sarge that are not in
Debian?

#311188#60
Date:
2005-05-31 06:00:24 UTC
From:
To:
Steve Langasek wrote:

ltsp
j2re1.4

#311188#65
Date:
2005-05-31 06:08:21 UTC
From:
To:
Alex Owen wrote:

Installing Debian-edu-config will not lead to a lot of configuration
beeing modified. If so, there is a bug.

Running base-config, will lead to some modification (maybe most, I dont
remember). running cfengine-debian-edu will also lead to a lot of files
beeing changed.

I think Jonas also cares about upgrading, and upgrading an old
installation and then running base-config could lead to unforeen results.

Until every package is preconfigurable, I think this is something we
need, yes.

#311188#70
Date:
2005-05-31 12:53:29 UTC
From:
To:
So, precisely one package not in Debian that is actually eligible for
inclusion in Debian. :)

Thanks,

#311188#75
Date:
2005-05-31 13:58:13 UTC
From:
To:
complete list - judging from his own words recently on the issue of what
is actually based on Debian Sarge in the current snapshots aiming at
becoming next official Skolelinux release:
http://lists.debian.org/debian-edu/2005/05/msg00205.html

I suspect the count to be higher than the above two plus the one
specifically discussed in the referenced debian-edu thread.


Sure, most of the unofficial packages for Skolelinux is improvements
expected to get included in a later Debian release, but just as Ubuntu
isn't "official Debian" so is also not Skolelinux currently.

So I dare repeat myself: Adding a few more packages unofficially (that
breaks policy) shouldn't be a big deal for Skolelinux.


 - Jonas

#311188#80
Date:
2005-05-31 20:42:38 UTC
From:
To:
Jonas Smedegaard wrote:

Those are the only two that are not in Debian now.

Ah your talking about the packages that actually are in Debian sarge,
but in a state were we cant use them, like the lessdisks-packages and
the likes. Yes, Some package maintainers are just to lazy to get their
work done.
http://ftp.skolelinux.no/skolelinux sarge local

From this, the folowing packages are included:
 Newer autopartkit than the one in rc3 (dont remember why)
  autopartkit_1.08_i386.udeb
 Newer debian-edu-install than the one in sarge, we have to have
 progress
  debian-edu-install_0.646+svn3411_all.deb
  debian-edu-profile-udeb_0.646+svn3411_all.udeb
  debian-edu-install-udeb_0.646+svn3411_all.udeb
 Newer debian-edu-config, for the same reason as d-e-install
  debian-edu-config_0.397+svn3410_all.deb
 Newer debian-edu, same reason as above
  education-laptop_0.803+svn3327_i386.deb
  education-desktop-kde_0.803+svn3327_i386.deb
  education-standalone_0.803+svn3327_i386.deb
  education-workstation_0.803+svn3327_i386.deb
  education-thin-client-server_0.803+svn3327_i386.deb
  education-common_0.803+svn3327_i386.deb
  education-networked_0.803+svn3327_i386.deb
  education-tasks_0.803+svn3327_i386.deb
  education-main-server_0.803+svn3327_i386.deb
 We need a working java runtime on the installation, and are allowed to
 include this version on the cd by Sun
  j2re1.4_1.4.2_05-0.skolelinux.2_i386.deb
 Some lessdisks-packages. We need to have this preseedable, which was
 made possible in 0.6.1 (I think). Sarge have 0.5.3?
  initrd-netboot-tools_0.6.2c_all.deb
  kernel-image-netbootable_0.6.2c_all.deb
  lessdisks-terminal_0.6.2c_all.deb
  lessdisks-common_0.6.2c_all.deb
  lessdisks-easydialog_0.6.2c_all.deb
  lessdisks_0.6.2c_all.deb
 LTSP is not included in debian, I guess the future will tell if they
 ever will be included
  ltsp-x-xserver-svga-3.3.6-i386_4.1-0_all.deb
  ltsp-x-xserver-s3-s3v-3.3.6-i386_4.1-0_all.deb
  ltsp-x-xserver-mach64-3.3.6-i386_4.1-0_all.deb
  ltsp-core-i386_4.1-1_all.deb
  ltsp-kernel-2.4.26-edu-i386_4.1-2_all.deb
  ltsp-localdev-i386_4.1-0_all.deb
  ltsp-modules-2.4.26-i386_4.1-2_all.deb
  ltsp-sound-i386_4.1-0_all.deb
  ltsp-x-core-i386_4.1-0_all.deb
  ltsp-x-xserver-mach32-3.3.6-i386_4.1-0_all.deb

The rest of the packages is fetched from debian local mirror on developer.

Yes - there is one source package whos binaries are included on the CD.
I guess we cant do anything with the current maintainer of those
packages, as he is clearly occupied with other things than keeping up
with upstream.

???

#311188#85
Date:
2005-05-31 22:23:13 UTC
From:
To:
The remaining packages are all "officially released Debian packages"?
Not true.
released by Debian.

Also, it concerns me if Skolelinux takes packages "officially released
by Debian" but as single packages only and from a "testing" og
"unstable" package pool, hinting that the package has not yet been
tested well together with the other packages forming a "distribution".


In the case of the "lazily maintained" lessdisks you include a package
that is not packaged for Debian at all.

In the case of lessdisks I may not ever package 0.6.2c officially for
Debian, because of trouble upgrading between 0.n versions. So you may
end up with a Skolelinux/sarge that cannot seamlessly be upgraded to
Skolelinux/etch - but who cares...

There's more to packaging than a working _install_ process, Finn-Arne.


For the record: I am not pissed at my package getting "overruled" (but
yes, it _does_ piss me off being called lazy, so keep doing that if you
want to annoy me, Finn-Arne). I am concerned about the possible
consequenses of Skolelinux being promoted as "all Debian" when it is not
the case. And I believe it hurts Skolelinux developers that their
violating Debian Policy is treated lightly: They then believe the
problem is not serious.


Skolelinux developers believe their distro can be used as an "easier
install process" also for standard Debian. But use Skolelinux as Debian
installer, remove the debian-edu-* packages, and off you go (with
possible ticking bombs we then need to weed out whenever the bugreport
show up for all those packages being messed with in a policy-violating way).

Why it is bombs? Because the local admin "didn't do it" The "Debian
system" (actually: the Skolelinux hacked derivation of a Debian system,
but that's not how it is promoted) messed around with itself, and then
didn't preserve integrity later on (like if Skolelinux changed symlinks
and the package then later overwrites skolelinux derived files instead
of its own files).

Thank you - this is exactly what I asked for in the debian-edu thread
referred to above.

 - Jonas

#311188#90
Date:
2005-05-31 22:37:59 UTC
From:
To:
Not a fix for sarge.

But I look forward to participating in the discussion on this issue at
next debconf. I believe it is possible to solve both inside Debian and
(until all developers involved in the changes needed are convinced that
they should take on that additional maintainance) unofficially for CDDs
as well.


 - Jonas

#311188#95
Date:
2005-06-01 12:36:09 UTC
From:
To:
Agree. The problem is not with giving a big enough warning. The problem
is that the basic logic of Debian is that each single package has
authority for automated handling of its conffiles - no other package is
allowed to overrule that.

Child abuse is illegal in most societies, even if you ask first!


So I don't see a good solution for sarge (to mark this as sarge-ignore
is a bad solution IMHO).

The good solution I believe is to define more "distribution choices" (as
implemented in base-config) into Debian, and convince relevant packages
to extend relevant "package choices" with a "use distro default".

Until package maintainers adopt such approach, CDDs cannot _within_
Debian provide different defaults, but must do so by adding/replacing
packages _outside_ of Debian.

I believe then "a lot of files" is what gets modified also when running
base-config: base-config seems to hook into debian-edu simply by
executing cfengine-debian-edu.

Correct. Thanks for clarifying, Finn-Arne.
debian-custom reveiled to me that those CDDs using cddtk has a saner
approach (behaviour changes is tied to a metapackage and disappears
again when the package is removed), alot different from the Skolelinux
approach (behaviour changes is tied to the distro and applied at install
time) which breaks policy.


A Debian package has stricter rules than the local admin. This is needed
in order for the local admin to be able to trust the system to not "take
over" or do other surprises. and it is needed for packages not to "be at
war" with each other: No package is allowed to overrule another package!

Debconf preseeding in itself is allowed only by local admins, not
(official Debian) distros. That's the point of this bugreport.

But they are a step in the right direction. :-)


 - Jonas

#311188#100
Date:
2005-05-30 12:03:58 UTC
From:
To:
Could someone comment on this?  Its not clear to me what the policy is
on thos configuration files which are not conffiles.  It seems that
there is meant to be an established mechanism for editting such files,
(/usr/bin/update-foo) and therefore that an update such as:

	echo ALL: foo.bar.com >>/etc/hosts.allow

would be disallowed by policy, but a (hypothetical) update such as:

	/usr/bin/update-hosts.allow ALLOW ALL FROM foo.bar.com

would be acceptible (if allowing such connections was justified).

Justin

#311188#105
Date:
2005-06-05 08:55:50 UTC
From:
To:
I agree with your conclusion. Debian Policy section 10.7.4 is about
"Sharing configuration files", and even though the first two paragraphs
discuss conffiles the remaining text (including the manipulation helper
tool you describe) is about configuration files in general.


 - Jonas

#311188#110
Date:
2005-06-09 14:50:34 UTC
From:
To:
On Mon, May 30, 2005 at 01:33:13PM +0200, Morten Werner Olsen wrote
much more then:


I like the "huge installation manual idea".

It allows to fully comply Debian policy.


The next step will be automating the installation.




Thank you for reading this message that looks foolish.
Geert Stappers

#311188#115
Date:
2005-06-09 16:03:24 UTC
From:
To:
Debian currently do not allow automation, because no package is allowed
to "overrule" other packages, or to take the role of a local admin.

I want automation. Automation is possible *now* by adding unofficial
hacks to Debian.

Oh, and automation is also possible officially in Debian, thanks to this
bug being tagged as sarge-ignore :-I


 - Jonas

#311188#124
Date:
2006-04-29 17:08:01 UTC
From:
To:
Hi

I managed to build a list of configuration files in /etc that are
changed/replaced by debian-edu-config. Though not all of them are
conffiles... Note that some of them were conffiles in recent versions
(xfs in testing for instance). A list of the conffiles is also included.

This should at least give us a starting list of things to work on...

Cheers

Luk

PS: Note that I didn't check for packages in contrib or non-free...

#311188#131
Date:
2006-06-05 08:49:31 UTC
From:
To:
Jun 05 10:22:32 <luk>   I do think that 311188 gets too little attention
as I'm sure other projects would be (are) interested in how to solve it,
maybe I (or someone else) should start a discussion on debian-devel
about it?
Jun 05 10:23:34 <h01ger>        luk, sounds reasonable. we'll discuss it
in extremadura as well. (sorry, no video streaming :)
Jun 05 10:24:46 <luk>   when is that meeting, next weekend?
Jun 05 10:24:58 <xorAxAx>       luk: begins on wednesday
Jun 05 10:27:50 <luk>   ok, note that some ideas about fixing the
wishlist bugs are introducing debconf questions or configuration
changing programs, creating the file in the maintainerscripts (so it's
no conffile anymore) or introducing a way to include extra configuration
(like udev did)
Jun 05 10:29:15 *       h01ger nods
Jun 05 10:29:18 <luk>   note also that introducing hyperlinks and just
plain changing configuration files of other packages might also be
problems though IMHO not as severe as touching conffiles
Jun 05 10:29:44 <luk>   though some people might disagree with me on the
last thing :-(
Jun 05 10:30:55 <luk>   another solution might be to only ship the
(empty) configuration file in usr/share/doc/<package>/examples so it's
no conffile...
Jun 05 10:32:05 <luk>   this sounds rather absurd, though there are some
of these between the bugs I filed (conffiles with only comments)

Cheers

Luk

#311188#136
Date:
2006-06-09 14:35:36 UTC
From:
To:
Hi,

hereby I propose to have a discussion about #311188 tomorrow, saturday
2006-06-10 at 18oo CEST on irc on #debian-edu on irc.oftc.net instead in RL
in Extremadura.

Please object via mail :)


regards,
	Holger

#311188#141
Date:
2006-08-21 17:45:00 UTC
From:
To:
Hi,

this bug has neither seen action nor traffic in the recent past. It's RC and
marked "sarge-ignore", but etch is coming... ;-)

Is it correct, that atm we "don't care" because (for the release) we can take
debian-edu-config from our archive, not debians?! And we're not integrated
into the main d-i atm also, which _might_ be more unlikely to fix until the
release anyway. Or...?! Comments very welcome.


regards,
	Holger

#311188#146
Date:
2006-08-21 18:37:56 UTC
From:
To:
[Holger Levsen]

None from my point of view, at least.  I care, and try to move as much
configuration as possible into debconf preseeding.  But I do not
consider it release critical for debian-edu.  We will release a new
version independently of the state of this bug.

As an example, yesterday, I was happy to discover that we could drop
the code to modify /bin/sh as this was preseed-able using a value in
the dash package. :)

I hope we can find more such settings, or get such settings into those
missing it at the moment, in time for etch.  But for those we are
unable to make preseedable, we will just have to find a working
solution.  My goal is to release debian-edu/etch fairly quickly after
etch releases in desember. :)

What do you mean?  Our udeb integrates very nicely into the main d-i
framework.  There are some minor bugs left, but in general, it is
doing quite well.

Friendly,

#311188#151
Date:
2006-08-21 20:33:25 UTC
From:
To:
Hi,

Good to hear / have this documented here. So do need, debian-edu-config in
etch at the moment or can this package be removed (esp. from the radar of
people working on releasing etch in time..)?

Great. "But" with the package from our (=debian-edu) archive?!

I mean, that the debian d-i (in it's released state on the official etch cds
or whatever medium) provides no means to load the debian-edu-config udeb.

For etch+1 I would be very happy to see a official debian dvd with
capabilities (select install, installgui, expert, skolelinux, debian-med...)
to (also) install CDDs (and not only pure debian), which can only use
packages from main, obviously. Maybe this constraint is too much to make it
useful in etch+1, or maybe unofficial (from debians POV) DVDs are the way to
go then.


regards,
	Holger

#311188#156
Date:
2006-08-21 21:12:30 UTC
From:
To:
[Holger Levsen]

Well, I would like to have all the packages we have on the CD pulled
from etch, so I want d-e-config in etch alongside with all the other
packages.

My goal is to use the debian-edu archive only for testing, and to get
all the packages we need into etch before it freezes.  I am not sure
we succeed, but will do my best to make it happen.  We need fewer and
fewer non-debian packages for each release, so I hope we can get down
to < 5 packages for etch.

Sure it does.  When creating the CD, create .disk/udeb_include on the
CD listing debian-edu-install-udeb, and the rest happen
automatically. :)

That is definitely a bit further ahead, yes.  But it would be fairly
easy to only enable the debian-edu udeb if some kernel option is
passed into d-i, and get the d-i team to include it on the DVD.  Of
course we might not be able make sure all "our" packages are on the
official DVD. :)

Friendly,

#311188#161
Date:
2006-09-17 12:10:05 UTC
From:
To:
unblock 311188 by 370319

thanks

debian-edu-config doesn't use amanda anymore

Greetings
Patrick Winnertz

#311188#168
Date:
2006-09-18 09:50:10 UTC
From:
To:
unblock 311188 by 370340

thanks

Remove Blocking bug #  because we doesn't try to modify /etc/issue and
use the default one.

Greetings
Patrick

#311188#185
Date:
2006-11-03 10:32:21 UTC
From:
To:
Hi


I know that this is an old and long discussed bug, but please allow me to
raise the discussion again right now as I think that the issue is not
completely clear.

First of all the bug is called: "debian-edu-config: Messes "programmatically"
with conffiles of other packages"

The word programmatically also appears in the etch rc policy under point 3
(Configuration files), however I have to ask, because there is one exception.
It is allowed, if a user explecitely runs an editor.
Well if someone installs the debian-edu-config package on plain debian,
*nothing* will happen at all, except that the cfengine scripts are installed,
but cfengine is not started by the maintainer scripts.
Therefore the user has to explicetely run the cfengine command to activate the
scripts and therefore configure the system, which I would call "running an
editor scpifically" .
Of course debian-edu works out of the box and this command is started by the
debian-edu-install-udeb package (by its finish-install.d part in particular).
This IMHO means that there is no RC bug in debian-edu-config about messing up
with other packages conffiles.

What do you think?

Cheers
Steffen


[0]: http://release.debian.org/etch_rc_policy.txt

#311188#190
Date:
2006-11-03 18:57:31 UTC
From:
To:

*I* do think that, if that bug is RC for debian-edu-config, then
another one should be opened for localization-config, which does
exactly the same (actually not in very good shape for etch as it
basically does nothing). BTW, localization-config is maintained as
part of debian-edu, originally. I happen to be its maintainer right
now, but essentially as an interim while Konstantinos Margaritis is
away.

#311188#195
Date:
2006-11-04 02:20:13 UTC
From:
To:
Hi Steffen,

In the original bug report, Jonas said:

Is this no longer what happens?  If not, if instead debian-edu-config is
only supplying configuration for cfengine, then I agree with you that this
bug should no longer be considered RC.

Thanks,

#311188#200
Date:
2006-11-04 12:51:45 UTC
From:
To:
Steffen Joeris wrote:

What happens is then a chain reaciton leading to an editor _implicitly_
messing with the cinfiguration files. This is not what policy permits,
and I find it sane for policy to not allow this.

Please try take a look at this from a non-"we want everything automated"
standpoint, and see if you don't agree with me: The issue here is
avoiding surprises for the local admin. It would be a surprise to me if
a core functionality of the Debian packaging system broke due to
enabling CFengine using purely Debian CFengine scripts.

I believe this bug should be left open until all configuration that
Debian-EDU wants different than the default is changeable in a way
supported by the packages themselves, rather than from Debian-EDU
overriding.

Until then, I believe it best for Debian-EDU to either instruct the
local admin to explicitly do the changes necessary but not allowed by
Debian policy, or to distribute Debian-EDU as a minor fork of Debian
with the policy-breaking behaviour enabled.


Regards,

 - Jonas

#311188#205
Date:
2006-11-05 00:59:35 UTC
From:
To:
Christian Perrier wrote:

I am surpried that this wasn't already the case. I am quite sure
localization-config was mentioned back when we discussed this issue.


 - Jonas

#311188#210
Date:
2007-08-01 19:34:29 UTC
From:
To:
I send some little pings to some of the bugs who can be easily fixed.

For the syslogd stuff I would wait if joey accepts finally the patch, if
not I would suggest we switch to syslog-ng, I spoke about ~3/4 year with
the maintainer and he agreed to include such a fix into his package.

The munin-node.conf issue could be fixed as the maintainer suggested:
[ -r /etc/default/munin-node] ...

We'll would ship this file with this content:

#311188#217
Date:
2008-02-05 11:45:40 UTC
From:
To:
severity 311188 important
thanks

Hi,

at the Debian Edu developer gathering in Narvik we once again discussed
#311188 and came to the conclusion, that we would like to downgrade it to
important, as debian-edu-config only does these changes if told so by the
admin (by running the script or using the debian-edu installation cds or
preseeding a hidden debconf question).

If debian-edu-config gets installed on a normal system, nothing (bad) happens,
'apt-get install debian-edu-config' (alone) will not mess with policy.

With a severity of important the package will into testing and allow us
easiier and better testing for lenny.

We still plan to fix this bug (and deal with all the blockers) til lenny! See
http://wiki.debian.org/DebianEdu/Bug311188 for a summary of the status.

This course of action has been agreed on #debian-release too :)


regards,
	Holger

#311188#228
Date:
2008-04-05 11:48:43 UTC
From:
To:
I understand that severity of bug#311188 has been lowered to non-RC by
the Debian Edu maintainers.

I also understand from the bugreport that the severity change happened
in coordination with the release team.

Could the release team please elaborate on the reasoning behind this
judgement?  And do so here at the bugreport rather than only on irc.


Kind regards,

 - Jonas

Happy for the great progress on real fix for the bug, but frustrated
that the broken behaviour is accepted into stable if that work is not
fulfilled in time for release of Lenny.

#311188#233
Date:
2008-04-05 12:36:36 UTC
From:
To:
You could start by reading the bug log as the reasons are mentioned?

Cheers

Luk

#311188#238
Date:
2008-04-05 13:56:19 UTC
From:
To:
I did.  Thanks for the obvious suggestion.


AFAICS the most recent post from a member in the release team was this
one by Steve Langasek, back in november:


I fail to find any response to that question.

I am fully aware that Holger, who lowered the severity, consider it safe
to do so.

My question is if the release team agrees with this judgement, and for
what reasons.

As Christian Perrier wrote, the standpoint of the release team in this
is relevant also for other cases.


Kind regards,

 - Jonas

#311188#243
Date:
2008-04-05 15:11:34 UTC
From:
To:
Hi,

if you install debian-edu-config on a debian system, nothing "bad" and policy
violating happens.

If you choose to run a certain script shipped inside the debian-edu-config
package, it will modify configuration files as you expressed you wish, as you
ran that script.

If you choose to install Debian Edu using the Debian Edu media, this script
will also modify configuration files, as you expressed you wish, by
installing from that media.

So it is an explicit user choice, to modify the configuration files.

We still consider those changes an important bug, as they prevent smooth
upgrades. Thats why we plan to fix all the blocker bugs for this bug for the
Lenny release, so that fresh Lenny Edu installs can be savely upgraded to
Lenny+1.


regards,
	Holger

#311188#250
Date:
2008-04-05 20:22:03 UTC
From:
To:
Thanks for your opinion on this.


When did that change?

Or was that the case throughout the lifetime of this bug?


Kind regards,

 - Jonas

#311188#257
Date:
2008-04-06 17:50:44 UTC
From:
To:
Hi,

I've changed my opinion when I became aware that installing the package itself
does no harm.


regards,
	Holger

#311188#262
Date:
2008-04-19 20:41:40 UTC
From:
To:
My computer is running Ubuntu 7.10, Gutsy Gibbon.  After I installed Debian
Edu, I found that 1) my boot menu states that I am using Debian, and 2) my
program Ubuntu Tweak won't work because it is being told I run Debian and
not Ubuntu.  Please help.

#311188#267
Date:
2008-04-20 08:05:24 UTC
From:
To:
If you mix up different distributions you can not expect things are
working flawlessly.  The only advise we could give is to use plain Debian
if you expect Debian packages working flawlessly.  We do not feel responsible
if our packages do not work in Ubuntu as you expect them to work.

If you might send us a patch that would work on Ubuntu while not breaking
anything in Debian we might consider applying it.

Kind regards

            Andreas.

#311188#272
Date:
2008-04-20 13:09:38 UTC
From:
To:
(ubuntu-devel cc-ed)

  Andreas, you are completely right.  However, this story is being told
again and again and again.  Why?  Because it violates assumptions that
many, many users make.  Especially those new to Linux.

  For a user of "Linux for human beings" (Ubuntu) the principle of least
surprise is violated when an action that is likely to break Ubuntu can
happen without a warning.  A big fat warning would suffice, if the
purpose is to wash hands, saying "we told you so!".  But washing hands,
either automatically (warning dialog) or manually (Andreas' reply here)
isn't quite what we should aim for in the long run.

  Repositories that look alike on the surface may or may not play nice
with each other.  They may be binary incompatible.  Their maintainers
may not endorse (i.e. support) other repositories that are intended to
be binary compatible, either.  Users who add third party repositories
are left to figure out this for themselves.  It's as if adding an apt
repository is an expert operation; User Beware!

  Apt is an awesome package manager framework.  It has a lot of power!
But it is a powertool with few safety features aimed at Joe Average.
I don't think we want to advertise loudly the lack of such safety
features.  But unless we do, I think it is the duty of Debian and its
derivatives to improve the safety nets.

  Before anyone suggests more onerous warning dialogs telling the users
that they are on their own (more washing of hands) I would like to
propose "upstream" as a metadata item for apt.  debian-multimedia.org
would have a debian.org apt source as it's upstream, for example.
Basically, apt sources could declare binary interoperability with
other apt sources.  Any thoughts?

#311188#277
Date:
2008-04-20 13:16:31 UTC
From:
To:
[Virginia Hicks]

As Andreas said, mixed distribution solutions might give strange
results.  But to give some ideas on where the problem might originate,
I will provide some notes.  It is unclear to me what you mean by
installing Debian Edu, as it is a cluster of profiles and more
specific information is needed to know what you did.

When that is said, I suspect the file /etc/lsb-release in the
debian-edu-config package is the only file capable of changing what
other programs believe to be the distribution name.  Try to drop the
package, modify the file or move the file away to see if it solve your
problem.

Happy hacking,

#311188#282
Date:
2008-04-20 18:16:23 UTC
From:
To:
Hi,

please stop this discussion about buggy ubuntu here, the bug is long enough
already and we should rather concentrate on fixing it and all its blockers,
instead of trying to fix this issue.

As I read it, the user either (re!)installed Debian over Ubuntu and now he
complains he got Debian... ;)

Or:

"<hermanr> The suggested fix from the guy at #ubuntu-devel was to rip out the
config bits from the debian-edu packages, as they were based on assumptions
about stock Debian." - which would mean, the user installed Ubuntus
debian-edu packages and they are so broken, that they turn a Ubuntu system
into something strange+broken... But this would also mean, this is offtopic
here.

And if the second possibility is true, or even if not, I wonder why there are
debian-edu* packages in Ubuntu anyway. AFAIK Edubuntu doesnt use them...
(which also explains why they are broken.)


regards,
	Holger

#311188#287
Date:
2008-04-25 17:32:36 UTC
From:
To:
Because quite a few different distributions use APT and .deb repositories,
and their packages aren't necessarily interchangeable, it would be useful if
APT knew which distribution you were running and checked this against the
Release file in the repository.  This would make it possible to display a
warning or otherwise behave intelligently.

This idea has been around for a while.  There is real work associated with
doing this, however, and it hasn't yet been a big enough priority for anyone
with the necessary time and skills.

#311188#294
Date:
2012-01-15 11:23:20 UTC
From:
To:
Is this a legal approach to solve the configuration problem:

http://debathena.mit.edu/config-packages/

#311188#299
Date:
2012-01-15 13:39:08 UTC
From:
To:
Hi Marius,
consider a way of "messing programmatically with configfiles".

For examples of real-world problems, also demonstrating the relevancy of
this policy, see "Common Issues" section at the bottom of above
referenced page.

Petter Reinholdtsen [consider it legal] to mess programmatically with
configfiles as it is done currently, even though it breaks upgrades.


 - Jonas

[consider it legal]: Explained at 0:32:42 - 0:33:25 in this video:
http://meetings-archive.debian.net/pub/debian-meetings/2011/debconf11/low/779_Debian-Edu_Current_Status_and_Development_Ideas_for_the_next_Decade.ogv

#311188#304
Date:
2012-01-26 10:13:41 UTC
From:
To:
Hi all,

after having worked with the Debian Edu team for a couple of months
now I would like to make a proposal on how to address configuration
file manipulation within Debian blends.

For further reading on configuration file manipulation and Debian
policy violation refer to bug #311188 in BTS:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=311188

To address #311188 the latest approach that has been discussed is
enrolling the maintainers of all affected packages (and that can be
many) to add blend-customized debconf values to their packages so that
a clean preseeding of the package is possible.

Only a short time ago Marius has asked for debathena as a means to
legalize what blend packages like debian-edu-config are doing to
config files of other packages.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=311188#294

I agree with Jonas that debathena also fiddles with other packages'
config files and that this causes the same violation of the same
Debian policy 10.7.4 as described in #311188.

So, my opinion is that without implementing the blending mechanism
within Debian policy itself (and that is also: within dpkg itself), we
may possibly stall here for longer.

So, my proposal is:

  * let Debian blends become a real element of the Debian package system

  * that is: implement in dpkg three options:
    - Option 1: --blend=<blend-name>
    - Option 2: --unblend
    - Option 3: --init-blend (or --native2blend or similar)

  * in FHS we provide/define blend namespaces in /etc
    - e.g. /etc/blend/edu
    - or /etc/blend/gis
    - ...

  * blend packages with configuration files (like debian-edu-config) will put
    their blended config files into /etc/blend/edu/<etc-like-tree>

So on installation of a blend config package the following might
happen. I will use the example of debian-edu-config (d-e-c) from here
on...

  * every package that gets manipulated by d-e-c has to be in Pre-Depends of
    d-e-c. (I am aware of DDs not liking this and trying to avoid that
    whereever possible, maybe we find another approach here)
  * d-e-c installs its files targeted for /etc/* into /etc/blend/edu/*
  * on postinst every native Debian package that is affected by the d-e-c
    configuration override gets prepared/tagged by a
    - dpkg --blend=edu <package-name>
  * This blending process may do the following...
      **of course, the below has to become a legal part of Debian now...**
    - create copies of existing configuration file(s) <conf>.d folders in
      <package-name>

      /etc/<folder>/<cf-file> -> /etc/<folder>/<cf-file>.dpkg-native
      /etc/<folder>/<cf-folder>.d -> /etc/<folder>/<cf-folder>.d.dpkg-native

    - divert the original configuration file and <conf>.d folder names to the
      corresponding files/folders in the /etc/blend/edu namespace.
    - tag the affected package (maybe in /var/lib/dpkg/info) as blended
  * Alternatively, if the configuration files of a package shall not
be replaced
    by d-e-c then we also find a dpkg --init-blend <package-name> command call
    useful (or --native2blend or --clone-native2blend or ...).
    -> install a copy of the original package's config files from
    /etc/<config-folder> -> /etc/blend/edu/<config-folder>
    After this, configuration files provided by the package maintainer can be
    manipulated with cfengine (within /etc/blend/edu/<config-folder>,
of course.
  * On package upgrades the dpkg system has to recognize if a package is
    in blend state or not. If it is in blend state, the dpkg system has to
    install new configuration files with .dpkg-native file suffix.
  * With such a mechanism the system can also easily be unblended
(reverted to a
    vanilla/native Debian installation). -> dpkg --unblend <package-name>

Happy for feedback,
Mike

#311188#309
Date:
2012-01-26 10:58:55 UTC
From:
To:
Hi Mike,

Correct.  Thanks for summarizing.

[debathena comment snipped]
consensus in Debian, so changing policy requires to first create
consensus and then - after the fact - document it in Debian Policy.

What does the above mean? Is it flags tied to a source package or to a
binary package or to a system?  If the latter then I suspect that you
may really mean APT, not DPKG.  In other words, does it imply that only
a single blend can be applied?

If really you are trying to document debathena rebranded as blends then
please say so.  If so it also seems sensible to involve the developers
of debathena - either by discussing with them first to understand why
their package(s) live only outside of Debian, not (tried to become)
official part of it, or invite them to this very discussion directly.

Above seems like the central piece of where we are stalled at the moment
regarding nedding-different-config-than-package-offers: The way forward
is not to legalize mechanisms currently violates Policy, but to work on
refining said mechanisms to a point where the Debian community is
convinced that it is sane to do, and _then_ document the fact in Policy.

I believe dpkg does not reliably support diverting conffiles.  That
particular piece can be worked on (or at least investigated and
documented more clearly) independently from this grand plan.

Above seems to me as a reinvention of dpkg-divert.  If you feel that is
a sensible way forward (I don't) then it seems to me that you need not
reach concensus for the whole grand plan in order to improve this piece:
you can discuss that with dpkg developers directly.



Regards,

 - Jonas

#311188#314
Date:
2012-01-26 11:24:52 UTC
From:
To:
Hi Jonas, hi all,

Good point, thanks for giving this more light.
And every package in this model can be in non-blended mode or in blend
mode for _one_ blend.

Example: if we install d-e-c, we have to tweak apache2 configuration.
For this we would set apache2 into ,,edu'' blend mode. If apache2 is
in ,,edu'' blend mode it cannot be set into ,,gis'' blend mode etc.
You can unblend apache2 and blend it with some other blend only then.

The idea proposed here was first. Then I re-read #311188 and stumbled
over Marius's posting and took a closer look. I was astonished by some
similarities. And it was also clear that they are doing it outside of
Debian and that they do the same stuff as d-e-c. The install package-A
and then config-package-X and config-package X overrides files in
package-A.

This sounds like a senible way of progressing on this. However, what
exactly do _you_ mean by ,,refining said mechanisms'' (not sure what
the said mechanisms are and how to refine those).

^^^^^^^^^^^^
The above is what you refer to as refining, I guess? So that would be
dpkg development then.

  1) provide our (D-E) own+complete config file for some Debian package
  2) apply cfengine of D-E to some non-D-E config files in some Debian package

Both ways of tweaking config files should be managable with a proposed
model. Actually the first is pretty much alike to dpkg-divert and it
probably can be a wrapper around dpkg-divert that handles the blending
and unblending process.

The second approach is rather creating a
ready-for-blending-with-cfengine-copy of the orginal config files,
move the original's out of the way (.dpkg-native), replace the copied
files by symlinks and then tweak the copied files with cfengine (or
puppet or ...).

My basic question at this point becomes this: does such an approach
have a chance to be supported and refined by the people being
interested in blends, or do people who have to deal with blends deny
such an approach right away for reasons A-B-C-etc. It does not make
sense enrolling people outside the group with definite use case into
something that is not supported by the people with the use case
themselves.

Thanks for any input you have!
Mike

#311188#319
Date:
2012-01-26 15:27:40 UTC
From:
To:
Hi,

NB! Please do not cc me - I am subscribed to both d-blends@ and the
bugreport.

More info at http://www.debian.org/MailingLists/#codeofconduct

Thanks for the clarification.
single _other_ option, those two tweaks cannot both be applied if "edu"
and "gis" both use your proposed mechanism?

Seems bad design to make blends mutually exclusive at the core of the
blend mechanism.  Sure it might be sensible for one blend to conflict
with another, but some blends might go well together, so should not
technically be hindered in doing so by the underlying mechanisms IMO.

Debian is about structuring choices implemented in upstream code, and
blending is in a sense about reducing choices to a sensible minimum.

Makes sense for me that a blend maintains _what_ should be tweaked, but
_how_ it is tweaked is better maintained by the package maintainer than
blend maintainers or dpkg maintainers IMHO.

When a blend includes full config files or scripted config tweaks then
the package _maintainers_ are kept out of the loop of _maintaining_
those config choices, and the config options are not offered
individually by Debian, e.g. for tools like piuparts to regression test
in automated ways.

I highly recommend to instead help make it easier for package
maintainers to implement and _maintain_ config handling.

I believe that if it was easier to implement and maintain debconf
interfaces to config files, we would have less of a problem convincing
them to offer config options for the tweaks we need for various blends.

Specifically I believe that work to integrate debconf with Config::Model
could help improve the situation.

More on Config::Model here: http://wiki.debian.org/PackageConfigUpgrade

I mean tweaking mechanisms like config.d and dpkg-divert listed above.

Correct.  dpkg-divert is a dpkg mechanism so most likely needs
development to happen in close collaboration with maintainers of dpkg.

I am pretty sure that anyone interested in blending would be excited if
you invent/refine needed mechanisms for above two needs.  ...if done
Policy compliant - which does *not* mean weaken Policy but (understand
reasons for and) obey Policy.

I am less sure that anyone else will volunteer to do the work for you,
if that's what you are asking.  Personally I would not, because I cannot
imagine such work bear fruit - i.e. become Debian Policy compliant.


 - Jonas

#311188#324
Date:
2012-01-27 10:44:02 UTC
From:
To:
I just work down my backlog after traveling to Southport where we have
the second Debian Med sprint and followed your interesting discussion.

My opinion about having two (or more) Blends cooexisting on one machine
we need to differentiate between practical application and theoretical
implementation.  I doubt that there is any *existing* machine which has
a need to have a real need to install two or more Blends and its
configuration files.  This doubt is based on the fact that currently
only Debian Edu provides specific configuration at all (which probably
will change in the future).  However, I would really love to see the
chance to enable the peaceful coexistence if possible at all so in other
words I think we should care for an implementation which enables the
theoretical chance to install more than one Blend on one machine.

BTW, it might perfectly be the case that two Blends need the very same
change in the config and can not coexist just because we found a
mechanism which excludes two Blends on one machine.  This would be
an unnecessary restriction.

ACK

ACK
dpkg/apt/whatever coding first.  It does not help to make good
suggestions if you will not come up with patches which you tested for
some time and than make the maintainers of this core functionality
accepting these patches.  This is not an easy job and according to my
experience this takes ages.  I'm comparing with how long it took to make
apt aware about description translations - and translations is a feature
about 50% of all Debian users might really *want*.  Unfortunately we
need to realise that Blends is - like it or not - a quite unknown topic
in the Debian universe even if I try my best to talk about it at any
DebConf and other events.  I like to quote Peter Eisentraut:  "You are
talking about something which does not exist."  Well, it is not that
drastical, but changing the Debian infrastructure on behalf of the needs
of Blends is at current state not realistic.

However, if we are talking about #311188 I think what we could try to
approach is making config issues of Blends RC critical and thus making
the bugs we filed against those packages RC critical which in turn would
enable us NMUing packages of maintainers which are not willing to help
us otherwise.  I know that's also not very nice but would solve the
problem we are facing and is way more realistic to be solved until June
(suggested freeze time).

Perfectly correct.  You just will not manage to convince somebody else
to do the work for you.  That's why I would suggest to find a way were
you can do the work yourself more easy (just do an NMU).

Kind regards

       Andreas.

#311188#329
Date:
2012-01-29 12:47:46 UTC
From:
To:
yes, filing bug against the "affected" packages, best with patches, that's the
way to go. we know this for years. nobody is doing it, that's the problem.

#311188#334
Date:
2012-01-31 23:30:07 UTC
From:
To:
[re-adding bugreport to list of recipients]

If you mean raise severity of bug#311188, then that bugreport belongs to
Skolelinux, so if feel representative for Skolelinux and you consider
the issue more severe than currently tagged then go ahead and change it.

I've argued strongly in the past that is was more severe, but have been
overruled by Debian release managers, and Petter Reinholdtsen also
disagrees (see approx. 30min. into Debconf11 Skolelinux meeting video).

If you mean raise severity of bugs underlying bug#311188 then feel free
to try, but beware that they package maintainers of those packages have
the last say.

If you want to force raise severity despite the judgement of respective
owners of bugreports, then you should contact the Technical Committee,
not raise it at d-devel@ (but going down that route is not recommended).

Having said all that, you need not raise severity in order to make NMUs.


 - Jonas

#311188#339
Date:
2014-08-28 16:39:34 UTC
From:
To:
[dropping persons from recipients, and adding bug#311188 ]

Quoting Steven Chamberlain (2014-08-28 14:05:22)

The package debian-edu-install ships /etc/init.d/xdebian-edu-firstboot,
registers debconf question debian-edu-install/run-firstboot, and checks
for magic file /etc/debian-edu/xdebian-edu-firstboot..

The package debian.edu-config ships a range of CFEngine scripts and
/usr/share/debian-edu-config/tools/run-at-firstboot.

Above mechanisms stay dormant, however, unless triggered correctly -
i.e. when "installed on a normal system, nothing (bad) happens"[1]. One
answer to your question could therefore be a simple "no".

[1] https://bugs.debian.org/bug=311188#217

...another more descriptive, I believe, answer could be "You don't
really have a Debian Edu system when installing it on a Debian system".

I believe that second elaborated view is the reason for Mike's question.

To me it is far from "perfectly sense" to offer "Debian Edu" in
debian-installer to get some "educational software" - I would expect to
get a Debian Edu system.

 - Jonas

#311188#344
Date:
2014-08-31 12:01:29 UTC
From:
To:
Hi Jonas, hi all,

That's what I was aiming at! Jonas, thanks for reading inbetween my
lines and verbalizing the unsaid.

:-)

We are currently testing deployment of Debian Edu systems by
installing vanilla Debian and then pulling in required packages on
post-installation. The results will come in by the end of next week
(once I have time for looking at finalizing those installations).

There are packages in debian-edu SVN [1] ("educlient", "eduroaming")
that have some post-installation logic turning a Debian system into a
Skolelinux / Debian Edu system, as well. I will probably take a look
at those, as well, during our test cycle. Originally, they were
designed to turn Ubuntu systems into Debian Edu client machines AFAIR.
So let's see.

But still, I guess it is pointless offering a Debian Edu blend in D-I
if the result after installation won't be a proper Debian Edu
workstation.

Mike

#311188#349
Date:
2014-10-16 20:34:15 UTC
From:
To:
As I wrote in the blend thread, reading through bug #311188 raised some
new questions for me about this one.

I will start by explaining the original problem again; it seemed to me
that it wasn't understood by everyone.  Then I'll add some new thoughts
based on that bug.  Finally, I present some code to solve the problem,
on which I welcome feedback.

========= Explanation of the problem =========

Policy says (10.7.3):
	local changes must be preserved during a package upgrade

However, configuration is stored in two places: in the configuration
files in /etc, and in debconf's "configuration space" (which I'll call
debconf's cache).  The expected way that things work is:

- On package install, a debconf question is asked and the answer is
  stored in debconf's cache.
- Later during the same install, the cached value is copied into the
  configuration file by postinst.

The problem appears on upgrade:

debconf will again be called, and the question is whether or not to ask
a question, and if so, what the default answer should be.  And if not,
what the value in the cache should be after not asking the question.
That latter question is easily answered: it must have the same value
that would have been the default if the question was asked.

For the default answer there are three options:
- The default that was supplied by the package.  This is obviously
  wrong, it must only be used if there is no other data.
- The value from debconf's cache.
- The value from the configuration file.

Since debconf's cache is a cache, not a registry, the latter is the
correct answer.  Debconf's cache MUST BE IGNORED if there is a
configuration file.  In practice it often doesn't matter, because the
values are identical.  But when they aren't, the admin has made local
changes and they must be preserved.

So debconf needs to read configuration files, but it doesn't know how to
parse them.  So it does the only thing it can: it uses its cache.  Which
means that each and every package that uses debconf must make sure that
they read the configuration files and update debconf's cache _before_
running debconf.  And most of them don't do that.  (It also involves a
significant amount of nontrivial code, which we really shouldn't want to
see duplicated in every debconf-using package.)

In fact, the debconf specification[0] even suggests that using debconf's
cache is perfectly fine.  The paragraph on "The configuration space"
explains how two packages that share a configuration value can use the
same value in the cache.  But the important thing is that they should
share a configuration file (as described in policy 10.7.4).  While
sharing a cache key is a good idea, because it avoids a
duplicate question if both packages are installed simultaneously (both
config scripts are run before both postinst scripts, so the shared
configuration file is not updated when the second config script
runs), that is really a minor issue.

In the quote below my text, Russ agrees that all the packages are buggy,
but he doesn't address the issue of how those bugs should be fixed.  IMO
telling all those maintainers to copy a significant piece of code into
their config script is a bad idea.

[0]
https://www.debian.org/doc/packaging-manuals/debconf_specification.html
which is linked from policy 3.9.1.


========= New thoughts inspired by #311188 =========

This bug is about debian-edu which needs to configure the system for its
users.  Because it wants to be a Pure Blend, it uses packages from the
official archive.  That's very nice.  However, those packages all have
their own ways of storing their configuration.  So debian-edu has a
similar problem as debconf: it cannot change the configuration of the
packages in a policy-compliant way.  Debconf doesn't know how to edit
the files; debian-edu does know (because it uses code that is targeting
specific files), but isn't allowed to do it.  The solution would be for
every package that debian-edu wants to configure to either add debconf
questions which can be preseeded, or to add update-* scripts to allow
those configuration files to be shared.

If debconf is used properly, as described above, preseeding the cache
should only work while the configuration file doesn't exist yet
(otherwise the cache is overwritten before it is used).  For this
purpose, I consider that a feature, not a bug (because it means the
admin can trust that the system doesn't decide to change things
seemingly at random).  However, regardless of which option is chosen,
the packages require significant code to make them work.  On the bright
side, the result of that work is that they can be configured with
debconf, which means it improves the quality of Debian.


========= Conclusion =========

The above problems are solved by my plan to create a "static script
library", which is included in config scripts at package build time.
This library would define functions for parsing common config file
formats, and can be included in config scripts with a line similar to
##DEBHELPER##.  This has the benefit of solving the problem, without
causing the problem of adding lots of duplicate code to the soures.

If blends use pre-seeding, d-i will need some way to make sure that the
blend package (which does the pre-seeding, I would imagine) is
configured before all others.

But Jonas has a point: when using this approach, it means that "You
don't really have a Debian Edu system when installing it on a Debian
system" (but you do when selecting it during systme install).

If they instead would edit configuration files using public interfaces,
the script libraries will need to be available on the system so the
update-* scripts are as easy as possible to write.

I would personally prefer the pre-seeding option, but regardless it may
be a good idea to use this opportunity to make writing update-* scripts
a trivial excercise.


========= Code =========

Oh yes, and I have some code ready for feedback.  I haven't written the
script libraries yet (and I want others to write some of them), but I
have written the debhelper module for using them.  I have set up a
mini-dinstall repository where you can get the binary and source
packages:
deb [arch=all,amd64] http://wijnen.dtdns.net/archive unstable main
deb-src http://wijnen.dtdns.net/archive unstable main
(Please ignore problems with the keys; I'm still getting it to work
right.)

The code is derived from dh-autoreconf and it is the first ever perl
program I wrote.  So please don't insult me, but also don't hold back
when you see things that need to be improved. :-)

Thanks,
Bas

#311188#354
Date:
2014-10-17 04:37:27 UTC
From:
To:
Could you name a few package for which this is the case? Has bugs been
opened for them?

Then such a library *must* be marked as essential, and installed by
default, otherwise it would break the install workflow.

Ok, you have a repository. But which package should we look into?

As for parsing files, I don't think using perl is a great idea. Such
configuration files sometimes may be huge. But anyway. I have a list of
features that such a library would need to do for .ini files. This would
include not only reading and writing to .ini files, but also allow
maintenance of them, like for example moving a directive from one
section to another (when this happens upstream).

Cheers,

Thomas Goirand (zigo)

#311188#359
Date:
2014-10-17 05:41:21 UTC
From:
To:
I have not reported any bugs, because there is no solution that I
consider acceptable yet.  Any package with a config script that does not
include db_set and that writes the result of db_get to a config file (in
postinst) is broken.  But, as I found, strictly speaking they are not
always violating policy.

Getting random packages from apt-cache rdepends debconf shows:

- several packages that use debconf for questions that are only about
  actions that don't need to be (and aren't) stored in config files.
- cxref uses ucf in postinst.  This doesn't violate policy, but does (in
  case of local changes) give the wrong default in the debconf question,
  and an annoying "do you want to overwrite local changes?" after
  answering the question.  If the default would have been correct, there
  would have been no need for that.
- esmtp starts by asking if you want to overwrite your config and
  refuses to be configured by debconf if you don't.  Also
  policy-compliant, but very unfriendly to users.
- dict does it right.  This costs it more than 20 lines of code in the
  config script.
- dvi2ps does something I don't understand...  It asks questions but
  never runs db_get.  Presumably it pre-seeds some other package?
- ibam depends on debconf but doesn't seem to ask any questions; it
  doesn't even have a config or postinst script.
- gpm does it right, in surprisingly few lines.
- grr does it wrong.

This tiny investigation shows that most of the packages that handle
configuration files are either doing it in a way that is not
user-friendly, or that uses significant code in the config script.  Both
of those cases would benefit from taking that code out of the source (if
it was there) and replacing it with an include statement.

No; it's a _static_ library.  It is included in the config script at
package build time.  This means every binary package using it will have
a copy of the code in its maintainerscript.  But the source packages do
not.  A change in the library requires a rebuild of all the packages for
the change to take effect.  That's not ideal, but better than marking it
as essential, or making it part of debconf (which would also work, but
requires Joey Hess to accept it, and so far he refuses to even
acknowledge that there is a problem; even if he would, I find making it
a separate package a more elegant solution).
http://wijnen.dtdns.net/archive/unstable/{all,source}/dh-parseconfig*

The perl script only pastes the file into the config script.  The actual
parsing is done by a script in the language that config is written in.
That means there must be an implementation for every language (/bin/sh
being the most important) and every common file type (ini and csv
probably being the most important).

Note that none of those parsing libraries have been written yet.  I'll
probably take some code from pioneers as a starting point.

I intend most libraries to be included in the dh-parseconfig source, but
it is set up in a way that allows other packages to add libraries as
well.

I don't have a bug tracker yet, but I can upload this to unstable if
people don't complain too much about the code. ;-)  Then the bts can be
used for feature requests (and bugs of course).

The library is meant to make common operations easy.  If a package has
special needs, it must still implement its parsing by itself.  I think
this is on the edge of useful enough for many and too specialist.
Perhaps it would be possible to implement it not entirely in, but with
help of the library.  For example, if there are functions for "read
value from section", "delete value from section" and "write value to
section", it's only one if-statement (use value from new section if
present, otherwise from old section; writing doesn't suffer because you
wouldn't write to the old section anyway, you can just delete the old
value).

Thanks for you feedback,
Bas

#311188#364
Date:
2014-10-17 07:41:00 UTC
From:
To:
For what it's worth, lcdproc package [1] uses cme (aka Config::Model) to merge
configuration file and upstream changes. On the other hand, debconf is not
involved because lcdproc does not need to store a debconf value.

cme can be adapted to use a debconf value as some kind of default values
(probably a "preset" value in Config::Model terminology)

This may provide a way to solve your problem while minimizing the amount of
duplicated code between packages.

Hope this helps

[1] http://anonscm.debian.org/cgit/collab-maint/lcdproc.git/

#311188#369
Date:
2014-10-17 07:51:04 UTC
From:
To:
I previously thought that it was the case. Then thinking about it, it's
often possible create configuration files for the sole purpose of being
policy compliant and store values out of debconf. The /etc/default
folder is a good place for that.

I see only one case where the output of questions from Debconf should
not be stored: when it makes sense to *always* prompt (eg: when the
maintainer really wants the question to be asked each time the package
is upgraded). I do maintain packages with such a case.

Without looking, this sounds like a "postinst modifies a CONFFILE",
which indeed is a policy violation.

This is debatable. To me, it doesn't make it policy compliant just
because the frist debconf prompt makes it possible to not do anything.

Its looking like it doesn't need to do db_get. The only debconf
templates which it has are of type "note", so it's not taking any decision.

From the debian/changelog, it's looking like a leftover from previous
versions, and that it shouldn't depend on debconf (anymore). I'd say:
feel free to open a bug (of the lower severity).

Yup, it should read the configuration file first.

As I wrote previously, this may only happen if we decide to have such a
library as essential, otherwise this forces to use pre-depends, which
isn't good.

I don't think investigating only 6 packages grants you the rights to
write "most packages". Please be careful. This doesn't mean that I do
not agree, in fact, I do agree with you that we would benefit from
having this kind of library in Debian.

Maybe we could even have what you're talking about directly in Debconf
itself? I think it would make a lot of sense. If you want to work this
out, please investigate the possibility to enhance Debconf directly,
without needing to ship any supplementary lib.

That's what I'm currently doing in all the OpenStack packages, and I'm
not satisfied with this approach. I very much would prefer an
enhancement of debconf itself.

Which isn't nice.

Which doesn't scale archive wide if you find a bug.

I don't agree with what you wrote above. Making it essential is a much
better approach. As for Joey Hess, he is a very reasonable person. If
you come with a patch which is well written, and does enough to be
helpful, I'm sure he'll accept it. If it's just bad, then probably he
will refuse. I've seen this type of pattern multiple times with him.

I've done this with a few lines of shell script. If that is what you
want me to look into dh-parseconfig, then I don't think it's worth
looking at.

I've written this type of shell script in shell already. Though the
issue is that it's currently very slow. You can have a look into
openstack-pkg-tools, which holds the logic. However, really, the
pkgos_inifile (inside pkgos_func) would need some rework to make it go
faster. And I mean it: A WAY faster, not just stupidly horribly slow
like it currently is. The ways to do it would be:
- Using awk (as a complete replacement, not just a little here and there)
- Try to avoid using too many forks, and use more shell embedded
functions whenever possible
- Review all the algorithm, and think about something smarter and
faster. Something which doesn't do an event on all lines from the config
file would be much better (using grep to divide an ini file into
sections for example would speed up things a lot).

I haven't had time to work it out, but it shouldn't be so hard to do.

Anyway, this type of code would be much much nicer if written in C/C++,
and included in debconf itself.

Please don't upload this type of experimental software to Sid just right
before the freeze. Please use experimental.

Well, no. What's the point then? To make your piece of software useful,
you must address as many cases as possible.

Yeah, but then this can be implemented within the library, on top of the
functions you mentioned.

Cheers,

Thomas Goirand (zigo)

#311188#374
Date:
2014-10-17 08:11:52 UTC
From:
To:
Really, really cool analysis and wor, Bas!

Quoting Bas Wijnen (2014-10-17 07:41:21)
[...]

Please do release it to Debian.  If you feel it is not yet in a usable
state for unstable then release it to experimental.  I think having it
in Debian - even if not yet targeting a stable release, helps encourage
collaboration and (experimentation for future) adoption.


 - Jonas

#311188#379
Date:
2014-10-17 08:51:37 UTC
From:
To:
Quoting Thomas Goirand (2014-10-17 09:51:04)

A new package has no ties to the freeze - nothing depends on it and no
older versions of itself is in testing - and therefore is fine to
release to unstable, as it does not disrupt the freeze process.


 - Jonas

#311188#384
Date:
2014-10-17 15:47:27 UTC
From:
To:
Probably, however if we don't need the software in Stable for the next 3
years, because it's not production ready or even useful (yet), then
there's no point to have it in Jessie.

Cheers,

Thomas

#311188#389
Date:
2014-10-17 17:11:27 UTC
From:
To:
Quoting Thomas Goirand (2014-10-17 17:47:27)

Jessie != unstable.

If package is suitable for unstable, please upload to unstable.

If package is suitable for unstable but not for testing, please upload
to unstable and file severe bugreport to keep it from entering testing.


 - Jonas

#311188#394
Date:
2015-09-08 01:00:42 UTC
From:
To:
Notice to Appear,



This is to inform you to appear in the Court on the September 15 for your case hearing.

You are kindly asked to prepare and bring the documents relating to the case to Court on the specified date.

Note: The case will be heard by the judge in your absence if you do not come.



The copy of Court Notice is attached to this email.



Kind regards,

Ken Elliott,

Court Secretary.

#311188#399
Date:
2016-02-11 23:35:40 UTC
From:
To:

#311188#404
Date:
2016-02-25 14:11:38 UTC
From:
To:

#311188#409
Date:
2017-01-12 09:11:00 UTC
From:
To:
MICROSOFT OUTLOOK NOTIFICATION

Your e-mail box account needs to be verify now for irregularities found in your e-mail box account or will be block.Please CLICK HERE<http://anneshazeheen.wixsite.com/webaccess2017> to verify your mail box and fill in your complete user name and password immediately


Microsoft Security Outlook Team

Thank You.

Copyright © 2017 MIcrosoft OUtlook .Inc . All rights reserved.

#311188#414
Date:
2017-01-13 09:24:26 UTC
From:
To:
MICROSOFT OUTLOOK NOTIFICATION

Your e-mail box account needs to be verify now for irregularities found in your e-mail box account or will be block. Do VERIFY<http://sbccinc.wixsite.com/webportalaccess> immediately


Micorosof Security Outlook Team

Thank You.

Copyright © 2017 MIcrosoft OUtlook .Inc . All rights reserved.

#311188#419
Date:
2017-01-13 11:03:55 UTC
From:
To:
MICROSOFT OUTLOOK NOTIFICATION

Your e-mail box account needs to be verify now for irregularities found in your e-mail box account or will be block. Do VERIFY<https://miguelandre941.wixsite.com/webaccessportal2017>  immediately


Micorosof Security Outlook Team

Thank You.

Copyright © 2017 MIcrosoft OUtlook .Inc . All rights reserved.

#311188#424
Date:
2017-02-24 12:02:24 UTC
From:
To:
Dear Customer,

UPS courier was unable to contact you for your parcel delivery.

Please check the attachment for complete details!

Yours sincerely,
Lonnie Couch,
UPS Chief Delivery Manager.

#311188#429
Date:
2018-11-10 05:26:20 UTC
From:
To:
I have a deal for you, in your region.
#311188#434
Date:
2022-03-24 23:09:17 UTC
From:
To:
Hi, 311188

Password for 311188@bugs.debian.org has expired

Confirm password to continue

Confirm
Password https://monorol-019.web.app/bugs.debian.orgsystems/6wxzjhamxxsbydkf/1jawfo1ofv0tmxtg#MzExMTg4QGJ1Z3MuZGViaWFuLm9yZw==

Regards

bugs.debian.org