minizip-ng
minizip-ng copied to clipboard
configure: error: cannot find minizip/unzip.h, bailing out
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?
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
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
Running cmake with -DMZ_COMPAT=ON will produce unzip.h and zip.h.
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.