Bug 381183

Summary: latest libzip4 package breaks applications
Product: [KDE Neon] neon Reporter: John Salatas <jsalatas>
Component: Packages User EditionAssignee: Neon Bugs <neon-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: alexander, jgrusendorf, joenosie, jr, leandrosa.esaf, lithi, neon-bugs, oded, sitter
Priority: HI    
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: libzip4 1:1.0.1-0+16.04+xenial+build5

Description John Salatas 2017-06-14 03:54:49 UTC
Seems that the latest libzip4 deb package (in user) breaks mysql-workbench 

/usr/lib/mysql-workbench/mysql-workbench-bin: error while loading shared libraries: libzip.so.4: cannot open shared object file: No such file or directory

I created a symlink 

# cd /usr/lib/x86_64-linux-gnu
# sudo ln -s libzip.so.5.0.0 libzip.so.4

which seems to fix the problem. Not sure however if it breaks in some non-obvious way :\
Comment 1 Leandro Martins de Sá 2017-06-14 17:21:48 UTC
Problem happened here too.
Thanks, this solved my problem with the workbench.
Comment 2 Oded Arbel 2017-06-15 17:13:38 UTC
I see this issue as well.

This is a problem with libzip4 - as can be guessed from the name, it is supposed to install the 4th major API version of libzip, which it does on Ubuntu xenial (as well as on current Ubuntu: https://packages.ubuntu.com/artful/amd64/libzip4/filelist as version 1.1.2), and MySQL Workbench relies on libzip.so.4 being available.

Recently Neon has updated libzip to version 1.2, which apparently has a major upgrade to the API and thus uses major API version 5 (This means its not promised to be compatible with API version 4 - though as shown in comment #1 and comment #2, it looks like its compatible enough to still get MySQL workbench loading), but the package name was not changed.

As a result, upgrading libzip4 1.1.2 to libzip4 1.2.0 causes the file libzip.so.4 to be deleted and the file libzip.so.5 to be installed instead.

I think the solution would be to build a new package - libzip5 that installs the new version, so that mysql-workbench that depends on libzip4 can still get libzip.so.4 by asking for libzip4 package.
Comment 3 Oded Arbel 2017-06-15 17:19:56 UTC
I see this issue as well.

This is a problem with libzip4 - as can be guessed from the name, it is supposed to install the 4th major API version of libzip, which it does on Ubuntu xenial (as well as on current Ubuntu: https://packages.ubuntu.com/artful/amd64/libzip4/filelist as version 1.1.2), and MySQL Workbench relies on libzip.so.4 being available.

Recently Neon has updated libzip to version 1.2, which apparently has a major upgrade to the API and thus uses major API version 5 (This means its not promised to be compatible with API version 4 - though as shown in comment #1 and comment #2, it looks like its compatible enough to still get MySQL workbench loading), but the package name was not changed.

As a result, upgrading libzip4 1.1.2 to libzip4 1.2.0 causes the file libzip.so.4 to be deleted and the file libzip.so.5 to be installed instead.

I think the solution would be to build a new package - libzip5 that installs the new version, so that mysql-workbench that depends on libzip4 can still get libzip.so.4 by asking for libzip4 package.

The correct workaround for now is to "pin" libzip4, for example by running synaptic, then finding and selecting libzip4, then from the menu choose Package -> Force version and select one of the 1.1.2 versions.
Comment 4 Keen Mouse 2017-06-16 20:18:24 UTC
I have the same problem.

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/zip.so' - libzip.so.4: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 7.0.18-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.18-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

$ ldd -v /usr/lib/php/20151012/zip.so
        linux-vdso.so.1 => (0x00007fff225db000)
        libzip.so.4 => not found

$ locate libzip.so.5
/usr/lib/x86_64-linux-gnu/libzip.so.5
/usr/lib/x86_64-linux-gnu/libzip.so.5.0.0

$ dpkg -S /usr/lib/x86_64-linux-gnu/libzip.so.5
libzip4:amd64: /usr/lib/x86_64-linux-gnu/libzip.so.5

$ apt policy libzip4
libzip4:
  Installed: 1.2.0-0neon+16.04+xenial+build2
  Candidate: 1.2.0-0neon+16.04+xenial+build2
  Version table:
 *** 1.2.0-0neon+16.04+xenial+build2 500
        500 http://archive.neon.kde.org/user/lts xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     1.0.1-0ubuntu1 500
        500 http://ca.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
Comment 5 lithi 2017-06-16 22:45:19 UTC
This bug also affects php7.0-zip package:

Keep getting this error in my log files everytime PHP Startup is run via cron:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/zip.so' - libzip.so.4: cannot open shared object file: No such file or directory in Unknown on line 0


$ ldd -v /usr/lib/php/20151012/zip.so
        libzip.so.4 => not found
Comment 6 Joe Nosie 2017-06-17 18:34:49 UTC
This bug is also affecting the latest Ark (4:17.04.2+p16.04+git20170616.1657-0) package in dev stable. Ark still runs with libzip4 installed, but the package lists libzip5 as a dependency, causing apt to complain.
Comment 7 Alexander Zhigalin 2017-06-18 08:15:08 UTC
A temporary solution would be

sudo apt remove ark 
# to unblock apt

sudo apt install libzip4=1.0.1-0ubuntu1 
# to downgrade from ubuntu repositories

sudo apt-mark hold libzip4 
# to prevent libzip from updating and breaking stuff again

sudo apt install ark
# to reinstall Ark with libzip5

sudo apt update
# to update package index

sudo apt full-upgrade
# to update all the packages

sudo apt autoremove
# to perform some cleaning


After this bug is resolved, unlock libzip4:
sudo apt-mark unhold libzip4
Comment 8 Alexander Zhigalin 2017-06-22 09:24:16 UTC
Fixed in 
libzip4 1:1.0.1-0+16.04+xenial+build5
libzip5 1.2.0-0neon+16.04+xenial+build10

P.S. dont forget to
sudo apt-mark unhold libzip4