Bug 202982 - Installation of gnome related ports (xfce, vbox, abiword, gnumeric) cause CONFLICT: install of python3-3_3 conflicts with python2-2_3
Summary: Installation of gnome related ports (xfce, vbox, abiword, gnumeric) cause CON...
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Many People
Assignee: freebsd-python (Nobody)
URL:
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2015-09-09 04:52 UTC by dennis
Modified: 2018-10-11 14:51 UTC (History)
12 users (show)

See Also:
koobs: maintainer-feedback? (gnome)
koobs: maintainer-feedback? (xfce)
koobs: maintainer-feedback? (vbox)


Attachments
libepoxy update which has the python correction. (1.19 KB, patch)
2015-11-24 09:27 UTC, Koop Mast
no flags Details | Diff
error log of XFCE4 build (4.53 KB, application/octet-stream)
2016-11-21 06:36 UTC, robert.burmeister
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description dennis 2015-09-09 04:52:52 UTC
Using i386, FreeBSD 10.2-RELEASE.

While building port for Abiword and Gnumeric, python3 needs to be installed. Python3 builds OK.  The python3 install fails with:

===>  Registering installation of python3-3_3
Installing python3-3_3...
pkg-static: python3-3_3 conflicts with python2-2_3 (installs files into the same place).  Problematic file: /usr/local/bin/2to3-2
*** Error code 70

Checking /usr/local/bin/2to3 etc. shows 2 symbolic links and 2 files, temporally renaming them doesn't help and the install still fails.

This was found initially by building gnumeric-1.12.23, it also shows up while trying to build abiword-3.0.1.

The ports are up to date as of Sept 7/15.

Digging into the python failure, python3 compiles fine, installing the python3 metaport generates the above error.

pkg info | grep python shows:

python-2.7_2,2     The "meta-port" for the default version of Python interpreter
python2-2_3        The "meta-port" for version 2 of the Python interpreter
python27-2.7.10    Interpreted object-oriented programming language
python34-3.4.3_1   Interpreted object-oriented programming language
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2015-09-09 06:23:25 UTC
Hi Dennis,

When I run make makeplist for lang/python2, I get:

bin/2to3-2
bin/idle2
bin/pydoc2
bin/python2
bin/python2-config
libdata/pkgconfig/python2.pc

When I run make makeplist for lang/python3, I get:

bin/2to3-3
bin/idle3
bin/pydoc3
bin/python3
bin/python3-config
libdata/pkgconfig/python3.pc

We'll need it identify/isolate why your system believes lang/python3 installs a 2to3-2 file, when only lang/python2 does/should.

Can you include your /etc/make.conf file as an attachment please, feel free to sanitize it if necessary.
Comment 2 dennis 2015-09-09 14:32:28 UTC
Hi Kubilay.

python2 make makeplist:

/you/have/to/check/what/makeplist/gives/you
bin/2to3-2
bin/idle2
bin/pydoc2
bin/python2
bin/python2-config
libdata/pkgconfig/python2.pc

python3 make makeplist:

/you/have/to/check/what/makeplist/gives/you
bin/2to3-2
bin/idle2
bin/pydoc2
bin/python2
bin/python2-config
libdata/pkgconfig/python2.pc

I get the same result for both python2 as for python3, I checked it twice since it seems odd.

I don't have an /etc/make.conf, so that implies a default make environment.

Dennis.
Comment 3 dennis 2015-09-11 04:00:15 UTC
(In reply to Kubilay Kocak from comment #1)

I think I didn't reply correctly. Sorry!

Hi Kubilay.

python2 make makeplist:

/you/have/to/check/what/makeplist/gives/you
bin/2to3-2
bin/idle2
bin/pydoc2
bin/python2
bin/python2-config
libdata/pkgconfig/python2.pc

python3 make makeplist:

/you/have/to/check/what/makeplist/gives/you
bin/2to3-2
bin/idle2
bin/pydoc2
bin/python2
bin/python2-config
libdata/pkgconfig/python2.pc

I get the same result for both python2 as for python3, I checked it twice since it seems odd.

I don't have an /etc/make.conf, so that implies a default make environment.

Dennis.
Comment 4 Patrick McMunn 2015-11-07 00:03:18 UTC
I just wanted to report that I am also affected by this bug. I'm using 10.1-RELEASE which was freshly installed just 3 or 4 days ago. My make.conf only sets the CPU type and the most basic CFLAGS. So this is a very vanilla setup at the moment.
Comment 5 Kubilay Kocak freebsd_committer freebsd_triage 2015-11-24 07:06:55 UTC
(In reply to Patrick from comment #4)

@Patrick, can you provide your full uname -a output please. At the moment this isue is set to i386 only
Comment 6 Kubilay Kocak freebsd_committer freebsd_triage 2015-11-24 08:47:03 UTC
Another user (Heather) reported this issue via IRC, while attempting to install:

emulators/virtualbox-ose

This port BUILD_DEPENDS on:

python2.7: lang/python27, and

xorg-server.pc: x11-servers/xorg-server, which LIB_DEPENDS depends on:

libepoxy.so: graphics/libepoxy

which currently has BUILD_DEPENDS on

python3.4: lang/python34
python3: lang/python3

This issue is observable and extends to any port that depends on python 2.x and xorg-server, and likely other cases where two versions are depended on in the dependency heirarchy.

This causes the installation error, due to lang/python2 and lang/python3 apparently conflicting with the error detailed in this issues summary.

In this case the PYTHON_MAJOR_VER variable (which should have the value of 3), has instead the value "2", which results in the apparently conflict.

Looking at libepoxy upstream, I see the following in configure:

https://github.com/anholt/libepoxy/blob/master/configure.ac#L43

I don't know yet whether python 3.x is a *requirement*, but it doesn't appear that way.

Temporary (non-root-cause) improvements may include some combination of:

- Allowing libepoxy to use any python version (if its compatible with any version)
- Not depending on the python3 meta-port, if its not necessary
- Explicitly patching or telling libepoxy to use a specific python version (--with-python=foo or similar)

For the other people who have reported (or will add their reports to) this issue, it would be really good to know which port was being installed that resulted in this problem.

For dennis this is "Abiword and Gnumeric" as per comment 0
Comment 7 Kubilay Kocak freebsd_committer freebsd_triage 2015-11-24 08:54:38 UTC
"Technically" the root cause is that PYTHON_MAJOR_VER variable (among other variables) are being clobbered or not passed down the dependency hierarchy, which is very similar (if not the same) as related issues reported for poudriere:

https://github.com/freebsd/poudriere/issues/259
https://github.com/freebsd/poudriere/issues/313

I will also note that additional or complementary poudriere support/fixing aside, this needs to be fixed in the framework
Comment 8 Koop Mast freebsd_committer freebsd_triage 2015-11-24 09:27:38 UTC
Created attachment 163468 [details]
libepoxy update which has the python correction.

This patch updates libepoxy to the latest (I had it lying around) and changes the implicit python3 version to just python. Can the people that are affected by this problem test this update?

Thanks.
Comment 9 Kubilay Kocak freebsd_committer freebsd_triage 2015-11-24 09:32:45 UTC
(In reply to Koop Mast from comment #8)

Can you pop attachment 163468 [details] in a separate blocking issue please, as this issue is a 'meta' one affecting multiple ports/use-cases
Comment 10 Alex Dowad 2016-11-13 12:01:22 UTC
I'm experiencing the same issue with a new install of FreeBSD 11 (amd64). This is preventing me from building XFCE via ports. (I did a portsnap update yesterday so I should have the latest stuff.)
Comment 11 Alex Dowad 2016-11-13 18:34:55 UTC
One thing I'm struggling to understand: why does the Makefile for lang/python3 even use this PYTHON_MAJOR_VER variable at all? The name of the port is python***3***, so how could the major version of Python be anything but 3?
Comment 12 dennis 2016-11-14 01:01:15 UTC
This bug seemed to have cleared up for a while.  Doing a build of VirtualBox-ose on May 30 2016 on FreeBSD 10.3 worked fine with the current ports of that date.  Today (Nov 13 2016) with FreeBSD 10.3 and the current ports, VirtualBox-ose failed with this same problem again.  Gnumeric built OK.

pkg info | grep python on today's build attempt shows:

python-2.7_2,2                 The "meta-port" for the default version of Python interpreter
python2-2_3                    The "meta-port" for version 2 of the Python interpreter
python27-2.7.12                Interpreted object-oriented programming language
python35-3.5.2                 Interpreted object-oriented programming language
Comment 13 Kubilay Kocak freebsd_committer freebsd_triage 2016-11-15 11:56:59 UTC
@Dennis If you intall lang/python3 first, does it install? If so, if you then install virtualbox-ose, does that install?
Comment 14 Kubilay Kocak freebsd_committer freebsd_triage 2016-11-19 07:15:07 UTC
Update summary to reflect reports of (gnome) ports affected (vbox, xfce, abiword, gnumeric)

Note #1: abiword and gnumeric are related to gnome by MAINTAINER and USES.
Note #2: xfce (metaport) USES gnome via x11-wm/xfce4-wm DEPENDS.
Note #3: virtualbox-ose USES gnome

While I'm here, CC gnome, xfce, vbox teams (and/or lists).
Comment 15 robert.burmeister 2016-11-21 06:36:21 UTC
Created attachment 177225 [details]
error log of XFCE4 build

> [Bug 202982] port install of python3-3_3 conflicts with python2-2_3

I am also experiencing the same issue with a new install of FreeBSD 11 (i386).

error message: 
> python3-2_3 conflicts with python2-2_3 
> (installs files into the same place).  
> Problematic file: /usr/local/bin/2to3-2
> *** Error code 70

This is preventing me from building XFCE4 via ports.

Ports tree is up to date, and XORG / NVIDIA driver already built correctly.

Attached is the zipped XFCE4 build log with list of installed port versions.
Comment 16 robert.burmeister 2016-11-22 19:56:08 UTC
Bug 202982 - Installation of gnome related ports (xfce, vbox, abiword, gnumeric) cause CONFLICT: install of python3-3_3 conflicts with python2-2_3 

To clarify:
webkit2-gtk3-2.8.5_7 depends on file: /usr/local/bin/python2.7 - found
webkit2-gtk3-2.8.5_7 depends on executable: python2 - found
iso-codes-3.69 depends on file: /usr/local/bin/python3.5 - found
iso-codes-3.69 depends on executable: python3 - not found

As of 2015-01-11 the default lang/python3 is lang/python34!

So, my attempt to install XFCE4 is trying to pull in 3 versions of python
which the make files are not handling correctly.

I will try adding DEFAULT_VERSIONS+= python3=3.5 in my /etc/make.conf.

relevant build log:
---
/!\ WARNING /!\
needs Python 3.5 at least. But a port depending on this one specified 2.7

===>  License LGPL21 accepted by the user
===>   iso-codes-3.69 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by iso-codes-3.69 for building
===>  Extracting for iso-codes-3.69
=> SHA256 Checksum OK for iso-codes-3.69.tar.xz.
===>  Patching for iso-codes-3.69
===>   iso-codes-3.69 depends on executable: msgfmt - found
===>   iso-codes-3.69 depends on executable: gmake - found
===>   iso-codes-3.69 depends on file: /usr/local/bin/python3.5 - found
===>   iso-codes-3.69 depends on executable: python3 - not found
===>   python3-2_3 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by python3-2_3 for building
===>  Extracting for python3-2_3
===>  Patching for python3-2_3
===>  Configuring for python3-2_3
===>  Staging for python3-2_3
===>   python3-2_3 depends on file: /usr/local/bin/python2.7 - found
===>   python3-2_3 depends on file: /usr/local/bin/python2.7 - found
===>   Generating temporary packing list
/bin/ln -sf python2.7  /tmp/usr/ports/lang/python3/work/stage/usr/local/bin/python2
/bin/ln -sf 2to3-2.7  /tmp/usr/ports/lang/python3/work/stage/usr/local/bin/2to3-2
/bin/ln -sf idle2.7  /tmp/usr/ports/lang/python3/work/stage/usr/local/bin/idle2
/bin/ln -sf pydoc2.7  /tmp/usr/ports/lang/python3/work/stage/usr/local/bin/pydoc2
/bin/ln -sf python2.7-config  /tmp/usr/ports/lang/python3/work/stage/usr/local/bin/python2-config
/bin/ln -sf python-2.7.pc  /tmp/usr/ports/lang/python3/work/stage/usr/local/libdata/pkgconfig/python2.pc
====> Compressing man pages (compress-man)
===>  Installing for python3-2_3
===>  Checking if python3 already installed
===>   Registering installation for python3-2_3 as automatic
Installing python3-2_3...
pkg-static: python3-2_3 conflicts with python2-2_3 (installs files into the same place).  Problematic file: /usr/local/bin/2to3-2
*** Error code 70

Stop.
make[14]: stopped in /usr/ports/lang/python3
*** Error code 1

---

porversion -v | grep "py"
py27-enum34-1.1.6           =  up-to-date with port 
py27-libxml2-2.9.4          =  up-to-date with port 
py27-setuptools27-28.1.0    =  up-to-date with port 
python-2.7_2,2              =  up-to-date with port 
python2-2_3                 =  up-to-date with port 
python27-2.7.12             =  up-to-date with port 
python35-3.5.2              =  up-to-date with port
Comment 17 robert.burmeister 2016-11-22 20:28:50 UTC
(In reply to robert.burmeister from comment #16)

Adding DEFAULT_VERSIONS+= python3=3.5 in my /etc/make.conf did not work,
python3 still did not register as installed; removed make.conf entry.

Apparently http://www.freshports.org/lang/python3/ is out of date.

Manually running
/usr/ports/lang/python3 make install clean
installed python35-3.5.2 and registered python3-3_3

Reran xfce4 build and it completed.
Comment 18 Jon Chappelow 2017-02-03 20:43:48 UTC
Using amd64, FreeBSD 11.0-RELEASE-p1.

With a fresh install and a portsnap fetch update, I get the error (pkg-static: python3-3_3 conflicts with python2-2_3 (installs files into the same place).  Problematic file: /usr/local/bin/2to3-2).

Setting DEFAULT_VERSIONS+= python3=3.5 does not help.
Also failes registering python3-3_3 with: cd /usr/ports/lang/python3 && make install clean

python3 make makeplist includes "bin/2to3-2"

I was trying to build xfce from ports, but even installing lang/python3 now fails as stated above.
Comment 19 Jon Chappelow 2017-02-04 00:44:27 UTC
...and then it worked with:

portmaster -iv lang/python3

No idea what changed.
Comment 20 Gregory Reinbold 2017-03-01 15:48:33 UTC
Same issue here: pkg-static: python3-3_3 conflicts with python2-2_3 (installs files into the same place).  Problematic file: /usr/local/bin/2to3-2

Informations:
- FreeBSD 11.0 x64
- ports collection updated this day
- issue appear when I try to compile xfce4

(In reply to Jon Chappelow from comment #19)

I tried portmaster -iv lang/python3 and two tasks was completed:
- upgrade pkg from 9 to 10
- install python3
Comment 21 Walter Schwarzenfeld 2018-01-19 02:54:39 UTC
I don't think this is still relevant. Can I close?