minizip-ng icon indicating copy to clipboard operation
minizip-ng copied to clipboard

configure: error: cannot find minizip/unzip.h, bailing out

Open Bogdan107 opened this issue 4 years ago • 4 comments
trafficstars

I change system-wide library zlib to zlib-ng. System still working fine with zlib-ng, but some packages can not be recompiled with zlib-ng library.

Example of error:

checking for minizip/unzip.h... no
configure: error: cannot find minizip/unzip.h, bailing out

I try to find packages, which require minizip library. Gentoo official overlay have 19462 packages:

find /var/db/repos/gentoo -name "*\.ebuild" | awk -F":" '{print $1}' | awk -F"/" '{print $6"/"$7}' | sort -u | grep -v metadata | wc -l

There are 23 packages, which needs minizip library:

grep -r "zlib\[minizip\]" /var/db/repos/gentoo | awk -F":" '{print $1}' | awk -F"/" '{print $6"/"$7}' | sort -u | grep -v metadata | wc -l

List of packages, which require minizip library in gentoo overlay:

app-crypt/hashcat
app-office/scribus
app-text/sigil
app-text/xiphos
dev-db/spatialite
dev-games/cegui
dev-libs/quazip
dev-libs/tntnet
dev-qt/qtwebengine
games-arcade/commandergenius
games-emulation/gngeo
games-emulation/mgba
games-rpg/eternal-lands
games-rpg/grimrock
games-util/springlobby
media-libs/assimp
media-plugins/mythplugins
media-video/vlc
metadata/md5-cache
net-analyzer/wireshark
net-im/psi
net-im/vacuum
sci-geosciences/gpsbabel
sci-visualization/scidavis

Some packages, which require minizip library in my system can be found in Gentoo bug-tracking system

In some cases, where package support built-in zlib version, like hashcat and perl, I just configure packages to use built-in zlib library. Wireshark can be compiled without zip compression support, which based on minizip library, so I use Wireshark without zip support. But in case of ungoogled-chromium package, which use only external zlib library, I can not add original zlib library in simple way.

I report bug to https://github.com/Eloston/ungoogled-chromium/issues/1598. And I want to find a way to integrate zlib-ng and minizip-ng libraries into packages that require a minizip/unzip.h file.

How to integrate zlib-ng and minizip-ng libraries into packages that require a minizip/unzip.h file?

Bogdan107 avatar Aug 18 '21 21:08 Bogdan107

minizip-ng library installed too.

$ equery f zlib-ng
 * Searching for zlib-ng ...                                                                                                                                                                                                                  
 * Contents of sys-libs/zlib-ng-2.0.5:                                                                                                                                                                                                        
/usr                                                                                                                                                                                                                                          
/usr/include                                                                                                                                                                                                                                  
/usr/include/zconf.h                                                                                                                                                                                                                          
/usr/include/zlib.h                                                                                                                                                                                                                           
/usr/lib                                                                                                                                                                                                                                      
/usr/lib/debug                                             
/usr/lib/debug/usr                                         
/usr/lib/debug/usr/lib64                                   
/usr/lib/debug/usr/lib64/libz.so.1.2.11.zlib-ng.debug
/usr/lib64                                                 
/usr/lib64/libz.so -> libz.so.1
/usr/lib64/libz.so.1 -> libz.so.1.2.11.zlib-ng
/usr/lib64/libz.so.1.2.11.zlib-ng
/usr/lib64/pkgconfig                                       
/usr/lib64/pkgconfig/zlib.pc                               
/usr/share                                                 
/usr/share/doc                                             
/usr/share/doc/zlib-ng-2.0.5                               
/usr/share/doc/zlib-ng-2.0.5/README.md.bz2
$ equery f minizip-ng
 * Searching for minizip-ng ...
 * Contents of sys-libs/minizip-ng-3.0.2:
/usr
/usr/include
/usr/include/mz.h
/usr/include/mz_compat.h
/usr/include/mz_crypt.h
/usr/include/mz_os.h
/usr/include/mz_strm.h
/usr/include/mz_strm_buf.h
/usr/include/mz_strm_bzip.h
/usr/include/mz_strm_lzma.h
/usr/include/mz_strm_mem.h
/usr/include/mz_strm_os.h
/usr/include/mz_strm_pkcrypt.h
/usr/include/mz_strm_split.h
/usr/include/mz_strm_wzaes.h
/usr/include/mz_strm_zstd.h
/usr/include/mz_zip.h
/usr/include/mz_zip_rw.h
/usr/include/unzip.h
/usr/include/zip.h
/usr/lib
/usr/lib/debug
/usr/lib/debug/usr
/usr/lib/debug/usr/lib64
/usr/lib/debug/usr/lib64/libminizip.so.3.0.2.debug
/usr/lib64
/usr/lib64/cmake
/usr/lib64/cmake/minizip
/usr/lib64/cmake/minizip/minizip-config-version.cmake
/usr/lib64/cmake/minizip/minizip-config.cmake
/usr/lib64/cmake/minizip/minizip-gentoo.cmake
/usr/lib64/cmake/minizip/minizip.cmake
/usr/lib64/libminizip.so -> libminizip.so.3.0
/usr/lib64/libminizip.so.3.0 -> libminizip.so.3.0.2
/usr/lib64/libminizip.so.3.0.2
/usr/lib64/pkgconfig
/usr/lib64/pkgconfig/minizip.pc
/usr/share
/usr/share/doc
/usr/share/doc/minizip-ng-3.0.2
/usr/share/doc/minizip-ng-3.0.2/README.md.bz2

Bogdan107 avatar Aug 18 '21 21:08 Bogdan107

File /usr/lib64/libminizip.so.1 and /usr/lib64/libminizip.so.1.0.0 - are part of removed zlib library, and remained in system only as dependency of ungoogled-chromium package.

$ LC_ALL=en_US.UTF-8 ls -al /usr/lib64/*minizip*
lrwxrwxrwx 1 root root     17 Aug  9 04:30 /usr/lib64/libminizip.so -> libminizip.so.3.0
lrwxrwxrwx 1 root root     19 Jun 17 05:08 /usr/lib64/libminizip.so.1 -> libminizip.so.1.0.0
-rwxr-xr-x 1 root root  46840 Jun 17 05:08 /usr/lib64/libminizip.so.1.0.0
lrwxrwxrwx 1 root root     19 Aug  9 04:30 /usr/lib64/libminizip.so.3.0 -> libminizip.so.3.0.2
-rwxr-xr-x 1 root root 154416 Aug  9 04:30 /usr/lib64/libminizip.so.3.0.2

Bogdan107 avatar Aug 18 '21 22:08 Bogdan107

Running cmake with -DMZ_COMPAT=ON will produce unzip.h and zip.h.

nmoinvaz avatar Aug 18 '21 22:08 nmoinvaz

Set INSTALL_INC_DIR=/usr/include/minizip. Applications generally expect the headers to be in /usr/include/minizip/.h instead of /usr/include/.h. Maybe this should be set as part of MZ_COMPAT.

joebonrichie avatar Sep 01 '21 08:09 joebonrichie