pkgsrc-Bugs archive

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

pkg/41741: mk/apache.mk could be smarter (can cause apr conflict)



>Number:         41741
>Category:       pkg
>Synopsis:       mk/apache.mk could be smarter (can cause apr conflict)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Jul 16 12:25:00 +0000 2009
>Originator:     Robert Elz
>Release:        NetBSD 4.0_STABLE
>Organization:
        Prince of Songkla University
>Environment:
System: NetBSD jade.coe.psu.ac.th 4.0_STABLE NetBSD 4.0_STABLE 
(JADE-1.696-20080517) #9: Fri May 23 18:55:13 ICT 2008 
kre%jade.coe.psu.ac.th@localhost:/usr/obj/4/kernels/JADE i386
Architecture: i386
Machine: i386
>Description:
        pkgsrc/mk/apache.mk attempts to work out which version of
        apache is installed, so that one can be used as a dependency
        for other packages that just need any (or almost any) apache.
        That's fine.

        If no apache is used, then either a pkg specified, or
        global default (apache22) is used, and that apache is
        installed (built if needed).   That's almost all fine.

        Then, if requested, the appropriate apr version is installed
        as well (added to the dependency list, which causes it to
        be installed).

        There's one problem case left - that's where no apache is
        installed, but apr is installed, and the apr that's there
        is not the one that patches PKG_APACHE_DEFAULT - in particular,
        as part of the process of attempting to get ganglia built,
        I started with an empty pkg_comp arena - that always resulted in
        apache22 and apr (apr1) getting installed, which conflicts
        with a pkg requirement for apr0 - so I cleaned the arena again,
        installed apr0 manually, then retried the build of ganglia
        (www/ganglia-webfrontend to be precise) - that needs apache,
        no apache was installed, so apache22 was added as a dependency,
        that caused www/apr to be required, which immediately conflicted
        with the apr0 that was installed, and must be for this (apaprently).

        After finding no installed apache, before just setting upon
        PKG_APACHE_DEFAULT mk/apache could look to see if either ww/apr
        or www/apr0 is installed, and if so, select the corresponding
        apache version (apache22 or apache2 resp).   I think that should
        be fairly easy to do.

>How-To-Repeat:
        Using pkg_comp is far and away the easy method to provoke
        this - just start with an empty arena (particularly, no
        apache related or using packages installed) manually add
        (or build) www/apr0 then try building www/ganglia-webfrontend
        (or anything else that requires an apache).  It will fail
        with an apr version conflict (quite quickly).

>Fix:
        Best fix would be to add a test for installed apr versions
        to mk/apache.mk if no installed apache is located.

        A fairly easy workaround is just to manually install the
        required version of apache (as well as, or possibly instead of, apr)

        If the maintainers of mk/apache.mk don't think the apr test is
        a good idea, or isn't worth adding, please just close this PR,
        don't leave it dangling open but destined to be ignored forever...

        It would probably also be a good idea for www/ganglia-webfrontend
        to explicitly request apache2 (make that be the only acceptable
        version) as there is an explicit requirement on apr0 (which
        comes via parallel/ganglia-monitor-core) and the "any apache"
        that www/ganglia-webfrontend currently requests just cannot work.



Home | Main Index | Thread Index | Old Index