[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: