Updating Perl fails because of Python sphinx

I'm upgrading Perl as advised in UPDATING using the following:

portmaster -bdgyf `pkg shlib -qR libperl.so.5.28`

  • which re-builds net-snmp
  • which re-builds mysql
  • which re-builds cmake
  • which requires python
  • which requires py37-sphinx

I have python2.7 installed already (and therefore sphinx),

Code:
# pkg info \*sphinx\*
py27-sphinx-1.6.5_1,1

so upgrading I get:

Code:
===>>> net-snmp-5.7.3_19 6/48 >> mysql55-client-5.5.62_1 >> cmake-3.13.4 >> textproc/py-sphinx (59/130)

===>>> Returning to dependency check for textproc/py-sphinx
===>>> Dependency check complete for textproc/py-sphinx

===>>> net-snmp-5.7.3_19 6/48 >> mysql55-client-5.5.62_1 >> cmake-3.13.4 >> textproc/py-sphinx (69/130)

===>  Installing for py37-sphinx-3.0.4,1
===>  Checking if py37-sphinx is already installed
===>   Registering installation for py37-sphinx-3.0.4,1 as automatic
Installing py37-sphinx-3.0.4,1...
pkg-static: py37-sphinx-3.0.4,1 conflicts with py27-sphinx-1.6.5_1,1 (installs files into the same place).  Problematic file: /usr/local/bin/sphinx-apidoc
*** Error code 70

Stop.
make: stopped in /usr/ports/textproc/py-sphinx

===>>> Installation of py37-sphinx-3.0.4,1 (textproc/py-sphinx) failed
===>>> Aborting update

I mean, I didn't really want python in the first place, but if I must then I don't really want sphinx, but if I must, how can I upgrade Perl?!

Thanks
 
If you don't want or care about python or python-spinx you could try deleting both these before going through the steps again.

NOT saying doing so is a good idea, but if they are the current roadblock and you don't want either, you could try that.

Obviously when you go to delete they might say they want to delete more (and things you do mind losing) so it might not be at all useful.
 
I'd rather not take that approach as I'll face the issue on multiple VMs. And surely there's a better fix than deleting a port's dependency.

I wonder why sphinx is even required as I never build DOCS.

My recent experiences updating ports such as Perl and Python is that it rarely works first time. The instructions in UPDATING for moving from py36 to py37 for example are a bit of a joke (they are not failure-tolerant - you can lose all your py36- ports).
 
I don't think this the fault of the Ports Collection. "Upgrading" from 3.6 to 3.7 was a nightmare on Gentoo Linux too.
 
/etc/make.conf
Code:
DEFAULT_VERSIONS+=  perl5=5.28
portmaster -o lang/perl5.28 perl5-5.28
portmaster -R `pkg shlib -qR libperl.so.5.28`

Yes, they are the instructions in UPDATING. That's exactly what I've done. See the OP for details on the actual issue. Thanks.
 
So following your instructions:

Code:
# portmaster -o lang/perl5.28 perl5-5.28

===>>> The second argument to -o can be a package name,
       or a port directory from /usr/ports

       perl5-5.28 does not seem to be installed,
       or listed as a dependency

===>>> No valid installed port, or port directory given
===>>> Try portmaster --help

Typo aside (and no I won't be vulgar towards you), running:

portmaster -R `pkg shlib -qR libperl.so.5.28`

gives the exact same error as the OP.
 
Last edited by a moderator:
Back
Top