Artix Linux Forum

Artix Linux => Package management => Topic started by: dreieck on 25 January 2023, 00:27:28

Title: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.
Post by: dreieck on 25 January 2023, 00:27:28
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!
Title: Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.
Post by: jspaces on 25 January 2023, 21:59:21
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
Title: Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.
Post by: dreieck on 27 January 2023, 18:31:24
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.?
Title: Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.
Post by: jspaces on 28 January 2023, 01:26:14
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.
Title: Re: quazip-qt5 provides Qt6-related files and so conflicts with quazip-qt6.
Post by: dreieck on 28 January 2023, 13:13:11
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!