Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-31 Thread Jonas Smedegaard
[re-adding bugreport to list of recipients]

On 12-01-31 at 10:17pm, Mike Gabriel wrote:
> Hi Andreas, hi Jonas, hi all,
> 
> thanks for the reply!!!
> 
> On Fr 27 Jan 2012 11:44:02 CET Andreas Tille wrote:
> 
> >On Thu, Jan 26, 2012 at 04:27:40PM +0100, Jonas Smedegaard wrote:
> 
> >>[...]
> 
> >[...]
> 
> >I also would like to add the following:  Mike's suggestion needs some
> >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 am aware of this. Before starting to code comes enrolling people,
> discussing possibilities, listening to what's already there,
> listening to other people's ideas, etc. It does not really make
> sense to start coding into the dark and finding out that it is not
> at all the way to go.
> 
> >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.
> 
> ACK.
> 
> >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).
> 
> :-) /me likes this... However, I am rather not thinking about
> wheezy, this is a short period. For wheezy the Debian Edu goal has
> to be to release D-E wheezy with the first or second point release
> of D-E wheezy. Apart from that I hear voices that want to change
> over to using Git for D-E development (I am one of that voices).
> 
> >>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.
> >
> >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).
> 
> Should we not address this approach (blend bugs = RC critical bugs
> -> make NMUing possible) on debian-devel ML?

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

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: Digital signature


Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-29 Thread Holger Levsen
On Donnerstag, 26. Januar 2012, Mike Gabriel wrote:
> 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.

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.



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-27 Thread Andreas Tille
On Thu, Jan 26, 2012 at 04:27:40PM +0100, Jonas Smedegaard wrote:
> On 12-01-26 at 12:24pm, Mike Gabriel wrote:
> > I am talking about each single Debian package. Not the whole system. 
> > And every package in this model can be in non-blended mode or in blend 
> > mode for _one_ blend.
> 
> Thanks for the clarification.

I just work down my backlog after traveling to Southport where we have
the second Debian Med sprint and followed your interesting discussion.
 
> > 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.

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.
 
> So if "edu" wants to tweak a single option and "gis" wants to tweak a 
> 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.

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.
 
> 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.

ACK

> 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.

ACK

> 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 also would like to add the following:  Mike's suggestion needs some
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).
 
> 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 ask

Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-26 Thread Jonas Smedegaard
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

On 12-01-26 at 12:24pm, Mike Gabriel wrote:
> I am talking about each single Debian package. Not the whole system. 
> And every package in this model can be in non-blended mode or in blend 
> mode for _one_ blend.

Thanks for the clarification.


> 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.

So if "edu" wants to tweak a single option and "gis" wants to tweak a 
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


> >> * 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) .d folders in
> >> 
> >>
> >> /etc// -> /etc//.dpkg-native
> >> /etc//.d -> /etc//.d.dpkg-native
> >>
> >>   - divert the original configuration file and .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
> >
> >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.
> 
> 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).

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


> >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.
> 
> 
> The above is what you refer to as refining, I guess? So that would
> be dpkg development then.

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


> In Debian Edu we currently follow two strategies:
> 
>  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 defini

Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-26 Thread Mike Gabriel

Hi Jonas, hi all,

On Do 26 Jan 2012 11:58:55 CET Jonas Smedegaard wrote:


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.


It is the other way around: Debian Policy only reflects what is already
consensus in Debian, so changing policy requires to first create
consensus and then - after the fact - document it in Debian Policy.


Good point, thanks for giving this more light.


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=
   - Option 2: --unblend
   - Option 3: --init-blend (or --native2blend or similar)


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?


I am talking about each single Debian package. Not the whole system.  
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.



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.


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 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) .d folders in
 

 /etc// -> /etc//.dpkg-native
 /etc//.d -> /etc//.d.dpkg-native

   - divert the original configuration file and .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


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.


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).



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.



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



 * Alternatively, if the configuration files of a package shall not
   be replaced by d-e-c then we also find a dpkg --init-blend
command call useful (or --native2blend or
   --clone-native2blend or ...). -> install a copy of the original
   package's config files from /etc/ ->
   /etc/blend/edu/ After this, configuration files
   provided by the package maintainer can be manipulated with cfengine
   (within /etc/blend/edu/, of course.


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.


In Debian Edu we currently follow two strategies:

 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 th

Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-26 Thread Jonas Smedegaard
Hi Mike,

On 12-01-26 at 11:13am, Mike Gabriel wrote:
> 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.

Correct.  Thanks for summarizing.

[debathena comment snipped]

> 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.

It is the other way around: Debian Policy only reflects what is already 
consensus in Debian, so changing policy requires to first create 
consensus and then - after the fact - document it in Debian Policy.


> 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=
>- Option 2: --unblend
>- Option 3: --init-blend (or --native2blend or similar)

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.


>  * 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) .d folders in
>  
> 
>  /etc// -> /etc//.dpkg-native
>  /etc//.d -> /etc//.d.dpkg-native
> 
>- divert the original configuration file and .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

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.


>  * Alternatively, if the configuration files of a package shall not
>be replaced by d-e-c then we also find a dpkg --init-blend 
> command call useful (or --native2blend or 
>--clone-native2blend or ...). -> install a copy of the original 
>package's config files from /etc/ -> 
>/etc/blend/edu/ After this, configuration files 
>provided by the package maintainer can be manipulated with cfengine 
>(within /etc/blend/edu/, of course.

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

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: Digital signature


Bug#311188: Draft proposal for handling configuration file manipulations in Debian blends

2012-01-26 Thread Mike Gabriel

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=
   - 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/

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 
 * 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) .d folders in
 

 /etc// -> /etc//.dpkg-native
 /etc//.d -> /etc//.d.dpkg-native

   - divert the original configuration file and .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  command call
   useful (or --native2blend or --clone-native2blend or ...).
   -> install a copy of the original package's config files from
   /etc/ -> /etc/blend/edu/
   After this, configuration files provided by the package maintainer can be
   manipulated with cfengine (within /etc/blend/edu/,  
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 

Happy for feedback,
Mike




--

DAS-NETZWERKTEAM
mike gabriel, dorfstr. 27, 24245 barmissen
fon: +49 (4302) 281418, fax: +49 (4302) 281419

GnuPG Key ID 0xB588399B
mail: mike.gabr...@das-netzwerkteam.de, http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb


pgpYUxdkjkRxo.pgp
Description: Digitale PGP-Unterschrift