Skip to main content
Topic solved
This topic has been marked as solved and requires no further attention.
Topic: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6. (Read 475 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.

A recent pacman -Syu revealed that world/quazip-qt5 and world/quazip-qt6 would install same files to the filesystem but are not marked as conflicting:

pacman -Sy --asdeps world/quazip-qt5 world/quazip-qt6:
Code: [Select]
[...]
(16/16) checking for file conflicts                                                                                                            [########################################################################################] 100%
error: failed to commit transaction (conflicting files)
/usr/include/QuaZip-Qt6-1.4/quazip/JlCompress.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/ioapi.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/minizip_crypt.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quaadler32.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quachecksum32.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quacrc32.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quagzipfile.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quaziodevice.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazip.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazip_global.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazip_qt_compat.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazipdir.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazipfile.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazipfileinfo.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/quazipnewinfo.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/unzip.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/include/QuaZip-Qt6-1.4/quazip/zip.h exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/cmake/QuaZip-Qt6-1.4/QuaZip-Qt6Config.cmake exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/cmake/QuaZip-Qt6-1.4/QuaZip-Qt6ConfigVersion.cmake exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/cmake/QuaZip-Qt6-1.4/QuaZip-Qt6_SharedTargets-release.cmake exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/cmake/QuaZip-Qt6-1.4/QuaZip-Qt6_SharedTargets.cmake exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/libquazip1-qt6.so exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/libquazip1-qt6.so.1.4 exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/libquazip1-qt6.so.1.4.0 exists in both 'quazip-qt5' and 'quazip-qt6'
/usr/lib/pkgconfig/quazip1-qt6.pc exists in both 'quazip-qt5' and 'quazip-qt6'
[...]
It looks like quazip-qt5 is wrongly providing Qt6-related files. (Why??)

pacman -Si world/quazip-qt5 world/quazip-qt6:
Code: [Select]
Repository      : world
Name            : quazip-qt5
Version         : 1.4-1.1
Description     : C++ wrapper for the ZIP/UNZIP C package
Architecture    : x86_64
URL             : https://stachenov.github.io/quazip/
Licenses        : LGPL
Groups          : None
Provides        : quazip
Depends On      : qt5-base
Optional Deps   : None
Conflicts With  : None
Replaces        : quazip
Download Size   : 123.52 KiB
Installed Size  : 396.71 KiB
Packager        : Artix Build Bot <[email protected]>
Build Date      : Di 24 Jan 2023 23:45:16 CET
Validated By    : MD5 Sum  SHA-256 Sum  Signature

Repository      : world
Name            : quazip-qt6
Version         : 1.4-1.1
Description     : C++ wrapper for the ZIP/UNZIP C package
Architecture    : x86_64
URL             : https://stachenov.github.io/quazip/
Licenses        : LGPL
Groups          : None
Provides        : None
Depends On      : qt6-5compat
Optional Deps   : None
Conflicts With  : None
Replaces        : None
Download Size   : 123.47 KiB
Installed Size  : 396.71 KiB
Packager        : Artix Build Bot <[email protected]>
Build Date      : Di 24 Jan 2023 23:45:16 CET
Validated By    : MD5 Sum  SHA-256 Sum  Signature

Regards!

Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.

Reply #1
The PKGBUILD requires the following to get the include files in the correct location.
The modified build section:
Code: [Select]
build() {
  cmake -B build5 -S $pkgbase-$pkgver \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DQT_DIR=/usr/lib/cmake/Qt5 \
    -DCMAKE_QT_MAJOR_VERSION=5
  cmake --build build5

  cmake -B build6 -S $pkgbase-$pkgver \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DQUAZIP_QT_MAJOR_VERSION=6
  cmake --build build6
}

Once completed:
Code: [Select]
ls pkg/quazip-qt5/usr/include/
QuaZip-Qt5-1.4

Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.

Reply #2
Thanks, @jspaces, for providing information how to fix it.

Now we have to wait until the maintainers pick it up.

Shouldn't such conflichts be automatically detectable by "sanity checking scripts" on the built packages, btw.?

Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.

Reply #3
I believe the main constraint would be sufficient time to find issues during the testing phase.
Everyone is a volunteer. They do the best that they can with available time to get stuff out.
I for one do not get upset if a library or a package conflict occurs in a rolling distribution.
That is the price of being free of whole OS installation cycles in regular scheduled release distributions.

Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.

Reply #4
I believe the main constraint would be sufficient time to find issues during the testing phase.
Everyone is a volunteer. They do the best that they can with available time to get stuff out.
I for one do not get upset if a library or a package conflict occurs in a rolling distribution.
That is the price of being free of whole OS installation cycles in regular scheduled release distributions.

Maybe I am too naïve, but my thinking is if on the distribution's infrastructure there would be automated testing actually the work of the volunteers would be _lowered_, especially since recently there were many issues.

Regards!