[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#728937: apache2: broken in system upgrade due to mailgraph Recommends leading to tntnet installation

On 2013-11-07 16:29:22 +0100, Arno Töll wrote:
> On 07.11.2013 16:06, Vincent Lefevre wrote:
> >> In fact, it's not even a bug since you installed a leaf package
> >> directly which is not meant to be used standalone.
> > 
> > You're wrong. Users are not forced to install metapackages.
> > I probably did "apt-get install apache2-mpm-itk" to make sure
> > that this version of the server was installed (something that
> > "apt-get install apache2" doesn't). It you think that apache2
> > must have been installed too, then a "Depends: apache2" must
> > have been added (and "Provides: apache2" should probably have
> > been removed), or at least a "Recommends: apache2". Note that
> > apache2-mpm-itk provided httpd, so that there were no reasons
> > at all to install apache2 *explicitly*.
> I did not say, that users are forced to install meta packages, but that
> -mpm-* packages existed _only_ to let reverse dependencies depend on
> them at Apache 2.2 time, as some modules require a particular MPM to run.

> They are not meant to be installed standalone by users, and are now
> fortunately going to disappear.

Note that I wanted a particular MPM (that's why I did a
"apt-get install apache2-mpm-itk"), but it wasn't documented
that apache2 was needed too in practice. This wasn't obvious
because apache2 provided nothing else, no other dependencies.
A "Depends: apache2" or "Recommends: apache2" could have helped
(see below).

> In fact, all they do is to change the link pointing to the MPM you
> are going to use. However, we cannot just depend on the "apache2"
> package as you suggest, because some packages use the binaries only,
> without wanting the full stack (configuration files, handling, init
> scripts etc.) - e.g. look at gnome-user-share which pulls
> apache2.2-bin.

But I didn't install apache2.2-bin directly! I installed
apache2-mpm-itk, which brings the full stack:

Depends: apache2.2-common (= 2.2.22-13), apache2.2-bin (= 2.2.22-13)

The 2.2.x apache2 package just had:

Depends: apache2-mpm-worker (= 2.2.22-13) | apache2-mpm-prefork (= 2.2.22-13) | apache2-mpm-event (= 2.2.22-13) | apache2-mpm-itk (= 2.2.22-13), apache2.2-common (= 2.2.22-13)

so that installing apache2 in addition to apache2-mpm-itk wouldn't
have brought additional packages. So, a "Depends: apache2" on
apache2-mpm-itk (and the other apache2-mpm-* packages) would have
been OK.

> > No! Apache was already installed (with httpd provided by
> > apache2-mpm-itk, so that this Recommends was satisfied). The
> > problem is that apt pulled tntnet *in addition* to Apache.
> Yes. But that's a problem of apt[itude], not of the packaging of Apache
> as I said previously.

I agree that the main problem is in apt[itude], but knowing that,
and the side effects that can really confuse the user[*], it is
the responsibility of the packaging of Apache to use a workaround.

[*] tntnet installation is more of less hidden by all the messages
related to the distribution upgrade.

> We ensure that people having apache2-mpm-itk installed get the
> appropriate package with the appropriate MPM providing httpd in
> Apache 2.4 again.
> If that makes apt think that there is no httpd installed for a transient
> moment in time, well, there is not much we could do against other than
> working around that limitation (or bug, if you may want to put it that
> way) which we will do in future as you suggested.

Yes, thanks.

> > A Recommends on httpd | apache2 | apache2-mpm-worker |
> > apache2-mpm-prefork | apache2-mpm-event | apache2-mpm-itk might
> > have solved the problem, but I don't think it is up to mailgraph
> > to know the internals of Apache packages. It is the job of Apache
> > packages to make sure that the transition is OK.
> Again, we do, unless you use packages in a way they are not meant to
> be used.

Note the apache2-mpm-itk description:

Description-en: multiuser MPM for Apache 2.2
 The ITK Multi-Processing Module (MPM) works in about the same way as the
 classical "prefork" module (that is, without threads), except that it allows
 you to constrain each individual vhost to a particular system user. This
 allows you to run several different web sites on a single server without
 worrying that they will be able to read each others' files. This is a
 third-party MPM that is not included in the normal Apache httpd.
 Please note that this MPM is somewhat less tested than the MPMs that come with
 Apache itself.

It is said nowhere that the user mustn't use "apt-get install
apache2-mpm-itk". Even if this were said, this wouldn't be sufficient
because not everyone reads the description (I knew that I needed it
and assumed that apt-get would do the work, and as Apache was working
correctly, I would have never looked further). "Recommends:" is for
things like that.

> > "Everyone else is supposed to..." without a Depends or Recommends?
> > That's insane!
> Well. I gave you the reason why this is problematic. I suppose Gnome
> users wouldn't like it if it would pull a web server listening on port
> 80 by default - don't you think?

Please see above. "apt-get install apache2-mpm-itk" already pulls
a web server listening on port 80 by default! There is absolutely
nothing wrong with the "Depends:" on apache2-mpm-itk.

Vincent Lefèvre <vincent@vinc17.net> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

Reply to: