tech-pkg archive

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

Re: Apache should never be a mandatory dependency



On Sat, May 17, 2014 at 05:44:44PM +0200, Volkmar Seifert wrote:
> > Right, and this isn't the only time that's come up either, not that I
> > can remember any others offhand.
> > 
> > I think we ought to have package metadata for providing and depending
> > on abstractions.
> 
> I actually don't really now any pkgsrc-based "turnkey-installation".
> That's usually something found with Linux, and there usually Apache is
> indeed the web-server of choice.
> 
> I think we should pursue a practical approach that has high probability
> of being used, instead of hunting special cases that -may- be -nice-.
> 
> While talking to someone else about this whole topic, the term
> "bikeshedding" came up. When I take a look at this discussion, there
> has indeed been some of that, because a lot of energy suddenly went
> into the question of users and groups. It is not an important
> discussion, and probably something that is to be thought about while
> solving this issue, but the discussion got a little bit side-tracked.
> 
> What pkgsrc needs now, regarding the apache-dependency-issue, is a
> decision that helps to improve it.

Aren't we getting into ALTERNATIVES territory here?

What I would suggest is a "generic" style of package, let's call it

        pkgsrc/metapackages/webserver

It's not just webservers this can be used for - I can think of editors
(and, within editors, sub classes of vi, emacs and other packages),
browsers, versions of scheme, common lisp, shells, etc.

Anyway, to get back to the worked example - this will make sure a
webserver is installed.  It can take preferences from a setting in
/etc/mk.conf (on a per-platform basis), of the form

        GENERIC.webserver=      apache22

If no preference is given at package installation time, it will select
the default one for you.

So the line in the webserver pkgsrc entry Makefile would look like:

        .include "../../mk/bsd.prefs.mk"

        .if defined(GENERIC.webserver)
        _WEBSERVER=${GENERIC.webserver}
        .else
        _WEBSERVER=${_DEFAULT_GENERIC_WEBSERVER}
        .endif

        DEPENDS+=       
{bozohttpd>=20140201,apache22>=2.2.27,apache24>=2.4.9,nginx>=1.6.0}:../../www/${DEFAULT_GENERIC_WEBSERVER}

Seems simple to me, and, in lieu of any other mechanism within pkgsrc,
should work. I'm less chuffed with the version numbers there, but I
wonder if there's some way to generalise them.

Thoughts?

Thanks,
Alistair


Home | Main Index | Thread Index | Old Index