Bug 1575354

Summary: Vim's update fails on perl dependency
Product: [Fedora] Fedora Reporter: IVan <grimaldi.ivan>
Component: vimAssignee: Karsten Hopp <karsten>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: aim, alick9188, Anthony.Thyssen, antonin.vecera, balay, bodhi.zazen, carl, dadreggors, gchamoul, guus.leeuw, jan.public, jscalia, karsten, keramidasceid, leonid, lischak, lizhenbo, lsm5, marcvanwageningen, mathieu-acct, michael.scheiffler, mu, pgn674, ppywlkiqletw, redhat.425269, riemer, rlengland, ros, stepglenn, t0dd, thomas.tomdan, turchi, zdohnal
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: vim-8.0.1806-1.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-12 18:21:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Vim dependency issues when running dnf upgrade none

Description IVan 2018-05-06 08:32:09 UTC
The packages vim-X11 and vim-enhanced have broken dependencies, below the  output of dnf command.

>>>>>>>> LOG

Dependencies resolved.

 Problem 1: cannot install the best update candidate for package vim-X11-2:8.0.1704-1.fc28.x86_64
  - nothing provides perl(:MODULE_COMPAT_5.26.2) needed by vim-X11-2:8.0.1788-1.fc28.x86_64
 Problem 2: cannot install the best update candidate for package vim-enhanced-2:8.0.1704-1.fc28.x86_64
  - nothing provides perl(:MODULE_COMPAT_5.26.2) needed by vim-enhanced-2:8.0.1788-1.fc28.x86_64
 Problem 3: problem with installed package vim-enhanced-2:8.0.1704-1.fc28.x86_64
  - package vim-enhanced-2:8.0.1704-1.fc28.x86_64 requires vim-common = 2:8.0.1704-1.fc28, but none of the providers can be installed
  - cannot install both vim-common-2:8.0.1788-1.fc28.x86_64 and vim-common-2:8.0.1704-1.fc28.x86_64
  - cannot install both vim-common-2:8.0.1704-1.fc28.x86_64 and vim-common-2:8.0.1788-1.fc28.x86_64
  - cannot install the best update candidate for package vim-common-2:8.0.1704-1.fc28.x86_64
  - nothing provides perl(:MODULE_COMPAT_5.26.2) needed by vim-enhanced-2:8.0.1788-1.fc28.x86_64
================================================================================
 Package            Arch         Version                    Repository     Size
================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 vim-common         x86_64       2:8.0.1788-1.fc28          updates       6.4 M
Skipping packages with broken dependencies:
 vim-X11            x86_64       2:8.0.1788-1.fc28          updates       1.4 M
 vim-enhanced       x86_64       2:8.0.1788-1.fc28          updates       1.3 M

Transaction Summary
================================================================================
Skip  3 Packages

Comment 1 Thomas Daniell 2018-05-06 10:25:31 UTC
Created attachment 1432347 [details]
Vim dependency issues when running dnf upgrade

Am also experiencing dependency issues when trying to upgrade vim even though I don't have vim-X11 installed.

Comment 2 Villy Kruse 2018-05-07 04:46:10 UTC
Problem will be solved with perl-libs-5.26.2-410 available in updates-testing.

Should vim really have a hard dependency on a specific version of perl?

Comment 3 Villy Kruse 2018-05-07 05:48:05 UTC
Besides:  vim is looking for "libperl.so" using dlopen, and that file is only provided by perl-devel.

E370: Could not load library libperl.so
Sorry, this command is disabled: the Perl library could not be loaded.

Comment 4 Richard L. England 2018-05-07 18:24:19 UTC
Encountered the same issue as the original poster...and I have the same question about the Perl dependency.

Comment 5 Michele Baldessari 2018-05-08 06:29:25 UTC
*** Bug 1575647 has been marked as a duplicate of this bug. ***

Comment 6 Michele Baldessari 2018-05-08 06:29:32 UTC
*** Bug 1575651 has been marked as a duplicate of this bug. ***

Comment 7 Martin Ueding 2018-05-08 10:31:20 UTC
Enabling the testing repository allowed me to get to the latest versions of vim and gvim in a consistent fashion:

https://www.spinics.net/lists/fedora-devel/msg243925.html

Comment 8 Alick Zhao 2018-05-09 02:43:33 UTC
*** Bug 1576023 has been marked as a duplicate of this bug. ***

Comment 9 Zdenek Dohnal 2018-05-09 08:44:48 UTC
*** Bug 1576247 has been marked as a duplicate of this bug. ***

Comment 10 antofthy 2018-05-10 00:55:45 UTC
Anyone know why vim even wants to use libperl.so?

Comment 11 David Dreggors 2018-05-10 02:20:16 UTC
Same here:


$ sudo dnf update
Last metadata expiration check: 2:30:57 ago on Wed 09 May 2018 07:45:38 PM EDT.
Dependencies resolved.

 Problem 1: cannot install the best update candidate for package vim-enhanced-2:8.0.1704-1.fc28.x86_64
  - nothing provides perl(:MODULE_COMPAT_5.26.2) needed by vim-enhanced-2:8.0.1788-1.fc28.x86_64
 Problem 2: problem with installed package vim-enhanced-2:8.0.1704-1.fc28.x86_64
  - package vim-enhanced-2:8.0.1704-1.fc28.x86_64 requires vim-common = 2:8.0.1704-1.fc28, but none of the providers can be installed
  - cannot install both vim-common-2:8.0.1788-1.fc28.x86_64 and vim-common-2:8.0.1704-1.fc28.x86_64
  - cannot install both vim-common-2:8.0.1704-1.fc28.x86_64 and vim-common-2:8.0.1788-1.fc28.x86_64
  - cannot install the best update candidate for package vim-common-2:8.0.1704-1.fc28.x86_64
  - nothing provides perl(:MODULE_COMPAT_5.26.2) needed by vim-enhanced-2:8.0.1788-1.fc28.x86_64
======================================================================================================================================================
 Package                              Arch                           Version                                    Repository                       Size
======================================================================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 vim-common                           x86_64                         2:8.0.1788-1.fc28                          updates                         6.4 M
Skipping packages with broken dependencies:
 vim-enhanced                         x86_64                         2:8.0.1788-1.fc28                          updates                         1.3 M

Transaction Summary
======================================================================================================================================================
Skip  2 Packages

Nothing to do.
Complete!

Comment 12 Villy Kruse 2018-05-10 05:24:40 UTC
(In reply to antofthy from comment #10)
> Anyone know why vim even wants to use libperl.so?

It doesn't; not really.  Not until you try to run perl from within vim (or gvim).

In vim you can run the command: ":perl print 'Hello';".

If you don't do that, vim will run perfectly fine even without perl available on your system.  vim has similar feature for pyrhon, ruby, and lua.  And yet vim does not declar a hard dependency on those.

I suggest to just drop the hard dependency on perl, and leave it as a Suggestion.  vim.spec already have this line

    Suggests: python2-libs python3-libs perl-libs lua-libs ruby-libs

and that should be enough.

Comment 13 Zdenek Dohnal 2018-05-10 05:34:00 UTC
(In reply to Villy Kruse from comment #2)
> Problem will be solved with perl-libs-5.26.2-410 available in
> updates-testing.
> 
> Should vim really have a hard dependency on a specific version of perl?

If you talk about perl(:MODULE_COMPAT_5.26.2) dependency, it is correct by FPG (https://fedoraproject.org/wiki/Packaging:Perl?rd=Packaging/Perl#Versioned_MODULE_COMPAT_Requires - Packages that links to libperl.so).

(In reply to antofthy from comment #10)
> Anyone know why vim even wants to use libperl.so?

Perl upstream uses unversioned libperl.so as shared library, but several major OSs (like e.g. Fedora, Gentoo, Debian...) have unversioned libperl.so as symlink to libperl.so.5.26.2, which upstream doesn't use (versioned shared object is created by downstream patch). Vim wants to use the upstream way.

Comment 14 Zdenek Dohnal 2018-05-10 05:36:05 UTC
Other interesting thing is that Vim got built with the newest perl, which isn't even in stable repos... maybe buildroot override for perl was active.

Comment 15 Zdenek Dohnal 2018-05-10 05:45:25 UTC
(In reply to Villy Kruse from comment #12)
> I suggest to just drop the hard dependency on perl, and leave it as a
> Suggestion.  vim.spec already have this line
> 
>     Suggests: python2-libs python3-libs perl-libs lua-libs ruby-libs
> 
> and that should be enough.

Hmm... but FPG doesn't say anything about which dependency should be used... so probably 'Suggests: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))' can be used and you're right. Let's go with that for now.

Comment 16 Fedora Update System 2018-05-10 07:18:25 UTC
vim-8.0.1789-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-aecd04d5ca

Comment 17 Villy Kruse 2018-05-10 07:43:34 UTC
(In reply to Zdenek Dohnal from comment #15)
> (In reply to Villy Kruse from comment #12)
> > I suggest to just drop the hard dependency on perl, and leave it as a
> > Suggestion.  vim.spec already have this line
> > 
> >     Suggests: python2-libs python3-libs perl-libs lua-libs ruby-libs
> > 
> > and that should be enough.
> 
> Hmm... but FPG doesn't say anything about which dependency should be used...
> so probably 'Suggests: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`";
> echo $version))' can be used and you're right. Let's go with that for now.

From FPG:  

"Some packages link to libperl.so, usually to provide embedded Perl functionality. All of these packages must also use the versioned MODULE_COMPAT dependency, because the automatically generated dependency on libperl.so does not include any interface version number."

This kind of forgets that unversioned libperl.so is only provided by perl-devel -- at the moment.

Comment 18 Fedora Update System 2018-05-10 10:46:58 UTC
vim-8.0.1806-1.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-28d594077b

Comment 19 Fedora Update System 2018-05-11 01:59:56 UTC
vim-8.0.1806-1.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-28d594077b

Comment 20 Fedora Update System 2018-05-12 18:21:11 UTC
vim-8.0.1806-1.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.