ports/188708: ports framework CONFLICT_INSTALL regression with staged ports
Olli Hauer
ohauer at FreeBSD.org
Wed Apr 16 23:00:00 UTC 2014
>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:
More information about the freebsd-ports-bugs
mailing list