Opened 12 years ago

Closed 8 years ago

#19190 closed defect (fixed)

py25-wxpython and py26-wxpython conflict

Reported by: skymoo (Adam Mercer) Owned by: jyrkiwahlstedt
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: Cc: mww@…, jameskyle@…, michaelld (Michael Dickens), mojca (Mojca Miklavec)
Port: py25-wxpython, py26-wxpython

Description

py25-wxpython and py26-wxpython conflict when you try to install them at the same time:

$ port install py25-wxpython
--->  Fetching py25-wxpython
--->  Attempting to fetch wxPython-src-2.8.9.1.tar.bz2 from http://downloads.sourceforge.net/wxpython
--->  Verifying checksum(s) for py25-wxpython
--->  Extracting py25-wxpython
--->  Configuring py25-wxpython
--->  Building py25-wxpython
--->  Staging py25-wxpython into destroot
--->  Installing py25-wxpython @2.8.9.1_0
--->  Activating py25-wxpython @2.8.9.1_0
Error: Target org.macports.activate returned: Image error: /opt/local/include/wx-2.8/wx/wxPython/i_files/__init__.py is being used by the active py26-wxpython port.  Please deactivate this port first, or use 'port -f activate py25-wxpython' to force the activation.
Error: Status 1 encountered during processing.
$

Attachments (9)

wxPython-2.8.12.1-MacPorts-subset.tar.bz2 (348.3 KB) - added by mojca (Mojca Miklavec) 8 years ago.
a subset of files from wxPython to help prevent the conflict
wxPython-2.9.4.0-MacPorts-subset.tar.bz2 (425.2 KB) - added by mojca (Mojca Miklavec) 8 years ago.
a subset of files from wxPython 2.9.4.0 to help prevent the conflict
wxPython-2.9.5.0-MacPorts-subset.tar.bz2 (423.4 KB) - added by mojca (Mojca Miklavec) 8 years ago.
a subset of files from wxPython to help prevent the conflict
wxPython-3.0.0.0-MacPorts-subset.tar.bz2 (421.5 KB) - added by mojca (Mojca Miklavec) 8 years ago.
a subset of files from wxPython 3.0.0.0 to help prevent the conflict
wxPython-3.0.1.0-MacPorts-subset.tar.bz2 (416.4 KB) - added by jyrkiwahlstedt 7 years ago.
wxPython-3.0.1.1-MacPorts-subset.tar.bz2 (416.2 KB) - added by jyrkiwahlstedt 7 years ago.
x_wxP_mpsubs.sh (320 bytes) - added by jyrkiwahlstedt 7 years ago.
pack the correct dictionary this time
wxPython-3.0.2.0-MacPorts-subset.tar.bz2 (416.4 KB) - added by jyrkiwahlstedt 7 years ago.
now contains all the necessary files
wxPython-3.0.2.0_1-MacPorts-subset.tar.bz2 (416.4 KB) - added by jyrkiwahlstedt 7 years ago.
some additions to the original, change the name to avoid stealth up

Change History (16)

comment:1 Changed 12 years ago by michaelld (Michael Dickens)

Cc: mlk@… added

Cc Me!

comment:2 Changed 12 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:3 Changed 12 years ago by michaelld (Michael Dickens)

wxPython (any version) writes files into ${prefix}/include/wx-X.Y/wx/wxPython, so one cannot have both the py25 and py26 versions installed at the same time right now. I modified the "post-destroot" to check for a prior install, and remove those files if found; this works for me (I have both the py25 and py26 versions installed), but might not be ideal because if the port that owns these head files is removed, the header files will also be removed even though they should stay around. Also, this change won't work if multiple versions of wxWidgets are installed. Maybe there is a way for files to be "double owned" in the MacPorts database if they are identical, and then be removed once all owners are removed? Here is my change to the Portfile:

post-destroot {
    xinstall -d -m 755 ${destroot}${prefix}/share/doc/
    file copy ${worksrcpath}/docs ${destroot}${prefix}/share/doc/${name}
    file copy ${worksrcpath}/samples \
    ${destroot}${prefix}/share/doc/${name}/examples

    # check to see if there is already a wxPython installed in
    # ${prefix}/include/wx-X.Y/wx/wxPython
    # if so, delete the corresponding destroot files, so that
    # there is no conflict during 'install'

    set wx_include_dir [glob ${prefix}/include/wx-*/wx/]
    system "echo ${wx_include_dir}"
    if {[file exists ${wx_include_dir}/wxPython/wxPython.h]} {
        system "rm -rf ${destroot}${wx_include_dir}/wxPython"
    }
}

comment:4 Changed 12 years ago by jameskyle@…

Would it be preferable for the wxpython ports to compile their own wxpython? Then they could install into separate --prefix.

comment:5 in reply to:  4 Changed 12 years ago by jameskyle@…

Replying to jameskyle@…:

Would it be preferable for the wxpython ports to compile their own wxpython? Then they could install into separate --prefix.

wxpython ports compile their on wxwidgets*

comment:6 Changed 8 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

Changed 8 years ago by mojca (Mojca Miklavec)

a subset of files from wxPython to help prevent the conflict

Changed 8 years ago by mojca (Mojca Miklavec)

a subset of files from wxPython 2.9.4.0 to help prevent the conflict

comment:7 Changed 8 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: newclosed

This should be fixed in r110279.

Changed 8 years ago by mojca (Mojca Miklavec)

a subset of files from wxPython to help prevent the conflict

Changed 8 years ago by mojca (Mojca Miklavec)

a subset of files from wxPython 3.0.0.0 to help prevent the conflict

Changed 7 years ago by jyrkiwahlstedt

Changed 7 years ago by jyrkiwahlstedt

Changed 7 years ago by jyrkiwahlstedt

Attachment: x_wxP_mpsubs.sh added

pack the correct dictionary this time

Changed 7 years ago by jyrkiwahlstedt

now contains all the necessary files

Changed 7 years ago by jyrkiwahlstedt

some additions to the original, change the name to avoid stealth up

Note: See TracTickets for help on using tickets.