# Updating Perl fails because of Python sphinx



## scotia (Jun 17, 2020)

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), 


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

so upgrading I get:


```
===>>> 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


----------



## richardtoohey2 (Jun 17, 2020)

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.


----------



## scotia (Jun 17, 2020)

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).


----------



## Jose (Jun 17, 2020)

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.


----------



## scotia (Jun 18, 2020)

pyret said:


> /etc/make.conf
> 
> ```
> DEFAULT_VERSIONS+=  perl5=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.


----------



## scotia (Jun 18, 2020)

So following your instructions:


```
# 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.


----------

