Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Apr 2014 22:58:20 GMT
From:      Olli Hauer <ohauer@FreeBSD.org>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/188708: ports framework CONFLICT_INSTALL regression with staged ports
Message-ID:  <201404162258.s3GMwKnM045003@freefall.freebsd.org>
Resent-Message-ID: <201404162300.s3GN00w4045110@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         188708
>Category:       ports
>Synopsis:       ports framework CONFLICT_INSTALL regression with staged ports
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 16 23:00:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Olli Hauer
>Release:        
>Organization:
>Environment:


>Description:
During the fix for www/mod_python3[35] I found an interesting issue during pkg add/install.

Conflict directives from the ports:

mod_python33/Makefile
CONFLICTS_INSTALL=      ap2[24]-mod_python3[^3]*

mod_python35/Makefile
CONFLICTS_INSTALL=      ap2[24]-mod_python3[^5]*


Having one port already installed, then the other one complains during make (package) => OK

Installing the new package of the conflicting port with pkg add work/pkg/$PKGNAME fails => OK

Executing make install => executes @exec from pkg-plist but install is stopped later by pkg


>How-To-Repeat:
$> sudo pkg add packages/All/ap22-mod_python35-3.5.0_1.txz
Installing ap22-mod_python35-3.5.0_1...[preparing module `python' in /usr/local/etc/apache22/httpd.conf]

$> grep python_module /usr/local/etc/apache22/httpd.conf
#LoadModule python_module      libexec/apache22/mod_python.so

$> sudo sed -i '' '/LoadModule python_module/d' /usr/local/etc/apache22/httpd.conf
$> grep python_module /usr/local/etc/apache22/httpd.conf
=> no results, now try to install mod_python33

$> cd www/mod_python33
$> make package

===>  ap22-mod_python33-3.3.1_6 conflicts with installed package(s):
      ap22-mod_python35-3.5.0_1
....
===>  Building package for ap22-mod_python33-3.3.1_6


Now after package building INSTALL_CONFLICTTS is no longer enforced by the framework.
Installation will be stopped by pkg after @exec from pkg-plist is already done.
Remember python_module was removed before from httpd.conf


$> sudo make install
===>  Installing for ap22-mod_python33-3.3.1_6
===>   ap22-mod_python33-3.3.1_6 depends on file: /usr/local/bin/python2.7 - found
===>   ap22-mod_python33-3.3.1_6 depends on file: /usr/local/sbin/apxs - found
===>  Checking if www/mod_python33 already installed
===>   Registering installation for ap22-mod_python33-3.3.1_6
[preparing module `python' in /usr/local/etc/apache22/httpd.conf]
Installing ap22-mod_python33-3.3.1_6...pkg-static: ap22-mod_python33-3.3.1_6 conflicts with ap22-mod_python35-3.5.0_1 (installs files into the same place).  Problematic file: /usr/local/lib/python2.7/site-packages/mod_python/Cookie.py
...
*** Error code 70

Stop in /usr/svn_ports/www/mod_python33.


Surprise, the python module was registered by the @exec directive from pkg-plist

$> www/mod_python33 # grep python_ /usr/local/etc/apache22/httpd.conf
#LoadModule python_module      libexec/apache22/mod_python.so



>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404162258.s3GMwKnM045003>