From 5aa56488135ad65c76302cd050161f4782166dc3 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Wed, 29 May 2024 11:36:22 -0400 Subject: [PATCH] gpgme: split gpgme-qt6 and all Qt subpackages to break cycles Fixes: #50541 --- srcpkgs/gpgme-qt6 | 1 - srcpkgs/gpgme-qt6-devel | 2 +- srcpkgs/gpgme-qt6/patches | 1 + srcpkgs/gpgme-qt6/template | 112 +++++++++++++++++++++++++++++++++++++ srcpkgs/gpgme-qt6/update | 1 + srcpkgs/gpgme/template | 88 ++++------------------------- srcpkgs/gpgmeqt | 2 +- srcpkgs/gpgmeqt-devel | 2 +- srcpkgs/gpgmeqt-headers | 2 +- 9 files changed, 129 insertions(+), 82 deletions(-) delete mode 120000 srcpkgs/gpgme-qt6 create mode 120000 srcpkgs/gpgme-qt6/patches create mode 100644 srcpkgs/gpgme-qt6/template create mode 100644 srcpkgs/gpgme-qt6/update diff --git a/srcpkgs/gpgme-qt6 b/srcpkgs/gpgme-qt6 deleted file mode 120000 index b291e753127a0b..00000000000000 --- a/srcpkgs/gpgme-qt6 +++ /dev/null @@ -1 +0,0 @@ -gpgme \ No newline at end of file diff --git a/srcpkgs/gpgme-qt6-devel b/srcpkgs/gpgme-qt6-devel index b291e753127a0b..a16f079ab5a747 120000 --- a/srcpkgs/gpgme-qt6-devel +++ b/srcpkgs/gpgme-qt6-devel @@ -1 +1 @@ -gpgme \ No newline at end of file +gpgme-qt6 \ No newline at end of file diff --git a/srcpkgs/gpgme-qt6/patches b/srcpkgs/gpgme-qt6/patches new file mode 120000 index 00000000000000..32083dbef12c0b --- /dev/null +++ b/srcpkgs/gpgme-qt6/patches @@ -0,0 +1 @@ +../gpgme/patches \ No newline at end of file diff --git a/srcpkgs/gpgme-qt6/template b/srcpkgs/gpgme-qt6/template new file mode 100644 index 00000000000000..4ca5ea32ceaea3 --- /dev/null +++ b/srcpkgs/gpgme-qt6/template @@ -0,0 +1,112 @@ +# Template file for 'gpgme-qt6' +# +# THIS PACKAGE MUST BE SYNCHRONIZED WITH "srcpkgs/gpgme" +# +# IT IS SPLIT TO AVOID A CYCLIC DEDPENDENCY: +# SDL2 -> pipewire -> libcanberra -> gtk+ -> gtk+3 +# -> colord -> sane -> poppler -> gpgme -> qt5 -> SDL2 +pkgname=gpgme-qt6 +version=1.23.2 +revision=4 +build_style=gnu-configure +configure_args="--enable-fd-passing + --with-libgpg-error-prefix=$XBPS_CROSS_BASE/usr + --with-libassuan-prefix=$XBPS_CROSS_BASE/usr" +hostmakedepends="gnupg pkg-config qt5-host-tools qt5-qmake qt6-base" +makedepends="libassuan-devel libgpg-error-devel qt5-devel qt6-base-devel" +checkdepends="which gnupg" +short_desc="GnuPG Made Easy" +maintainer="Orphaned " +license="GPL-2.0-or-later, LGPL-2.1-or-later" +homepage="https://www.gnupg.org/software/gpgme/index.html" +changelog="https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=blob_plain;f=NEWS;hb=HEAD" +distfiles="https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-${version}.tar.bz2" +checksum=9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224 + +CXXFLAGS="-D_GLIBCXX_USE_C99_STDIO=1" + +if [ "$XBPS_TARGET_LIBC" = "musl" ]; then + configure_args+=" ac_cv_sys_file_offset_bits=no" +elif [ "$XBPS_TARGET_WORDSIZE" = "32" ]; then + CFLAGS="-D_FILE_OFFSET_BITS=64 -DLARGEFILE_SOURCE=1" + CXXFLAGS+=" ${CFLAGS}" +fi + +do_configure() { + mkdir -p build + ( cd build && ../configure ${configure_args} ) + + mkdir -p build-qt6 + ( cd build-qt6 && \ + ../configure ${configure_args} \ + --enable-languages=qt6,cpp \ + MOC=/usr/lib/qt6/libexec/moc ) +} + +do_build() { + make -C build ${makejobs} + make -C build-qt6 ${makejobs} +} + +do_check() { + make -C build ${makejobs} check + make -C build-qt6 ${makejobs} check +} + +do_install() { + make -C build install DESTDIR=${DESTDIR} + make -C build-qt6 install DESTDIR=${DESTDIR} + + # Remove files not related to Qt + + local f + + for f in "${DESTDIR}"/usr/{include,lib/cmake}/*; do + [ -e "${f}" ] || continue + case "${f##*/}" in + Q*|q*) ;; + *) rm -r "${f}" ;; + esac + done + + rm -r "${DESTDIR}"/usr/{bin,share,lib/pkgconfig} + rm "${DESTDIR}"/usr/lib/{libgpgme,libgpgmepp}.so* +} + +gpgmeqt_package() { + short_desc+=" - Qt5 binding" + pkg_install() { + vmove "usr/lib/libqgpgme.so.*" + } +} + +gpgmeqt-headers_package() { + short_desc+=" - Qt binding headers" + pkg_install() { + vmove usr/include/QGpgME + vmove usr/include/qgpgme + } +} + +gpgmeqt-devel_package() { + depends="gpgme-devel>=${version}_${revision} + gpgmeqt-headers>=${version}_${revision} + gpgmeqt>=${version}_${revision}" + short_desc+=" - Qt5 binding development files" + pkg_install() { + vmove usr/lib/libqgpgme.so + vmove usr/lib/cmake/QGpgme + } +} + +gpgme-qt6-devel_package() { + depends="gpgme-devel>=${version}_${revision} + gpgmeqt-headers>=${version}_${revision} + gpgme-qt6>=${version}_${revision}" + short_desc+=" - Qt 6 binding - development files" + pkg_install() { + vmove usr/lib/libqgpgmeqt6.la + vmove usr/lib/libqgpgmeqt6.so + vmove usr/lib/cmake/QGpgmeQt6 + } +} diff --git a/srcpkgs/gpgme-qt6/update b/srcpkgs/gpgme-qt6/update new file mode 100644 index 00000000000000..60400da4ffd7e0 --- /dev/null +++ b/srcpkgs/gpgme-qt6/update @@ -0,0 +1 @@ +pkgname=gpgme diff --git a/srcpkgs/gpgme/template b/srcpkgs/gpgme/template index 18c4c839c7fb8d..88b96e59233b6b 100644 --- a/srcpkgs/gpgme/template +++ b/srcpkgs/gpgme/template @@ -1,16 +1,17 @@ # Template file for 'gpgme' +# +# THIS PACKAGE MUST BE SYNCHRONIZED WITH "srcpkgs/gpgme-qt6" pkgname=gpgme version=1.23.2 -revision=3 +revision=4 build_style=gnu-configure build_helper="python3" configure_args="--enable-fd-passing --with-libgpg-error-prefix=$XBPS_CROSS_BASE/usr --with-libassuan-prefix=$XBPS_CROSS_BASE/usr" -hostmakedepends="gnupg pkg-config qt5-host-tools qt5-qmake python3-setuptools - python3-installer python3-build python3-wheel swig qt6-base" -makedepends="libassuan-devel libgpg-error-devel python3-devel - qt5-devel qt6-base-devel" +hostmakedepends="gnupg pkg-config python3-setuptools python3-installer + python3-build python3-wheel swig" +makedepends="libassuan-devel libgpg-error-devel python3-devel" checkdepends="which gnupg" short_desc="GnuPG Made Easy" maintainer="Orphaned " @@ -29,35 +30,13 @@ elif [ "$XBPS_TARGET_WORDSIZE" = "32" ]; then CXXFLAGS+=" ${CFLAGS}" fi -do_configure() { - mkdir -p build - mkdir -p build-qt6 - cd build - ../configure ${configure_args} - cd ../build-qt6 - ../configure ${configure_args} --enable-languages=qt6,cpp \ - MOC=/usr/lib/qt6/libexec/moc +post_build() { + cd lang/python + top_builddir=../.. python3 -m build --wheel --no-isolation } -do_build() { - local f - make -C build ${makejobs} - make -C build-qt6 ${makejobs} - cd build/lang/python - top_builddir=../.. srcdir=../../../lang/python \ - python -m build --wheel --no-isolation -} - -do_check() { - make -C build ${makejobs} check - make -C build-qt6 ${makejobs} check -} - -do_install() { - make -C build install DESTDIR=${DESTDIR} - make -C build-qt6 install DESTDIR=${DESTDIR} - cd build/lang/python - python -m installer --destdir="${DESTDIR}" dist/*.whl +post_install() { + python3 -m installer --destdir="${DESTDIR}" lang/python/dist/*.whl } libgpgme_package() { @@ -99,51 +78,6 @@ gpgmepp-devel_package() { } } -gpgmeqt_package() { - short_desc+=" - Qt5 binding" - pkg_install() { - vmove "usr/lib/libqgpgme.so.*" - } -} - -gpgmeqt-headers_package() { - short_desc+=" - Qt binding headers" - pkg_install() { - vmove usr/include/QGpgME - vmove usr/include/qgpgme - } -} - -gpgmeqt-devel_package() { - depends="gpgme-devel>=${version}_${revision} - gpgmeqt-headers>=${version}_${revision} - gpgmeqt>=${version}_${revision}" - short_desc+=" - Qt5 binding development files" - pkg_install() { - vmove usr/lib/libqgpgme.so - vmove usr/lib/cmake/QGpgme - } -} - -gpgme-qt6_package() { - short_desc+=" - Qt 6 binding" - pkg_install() { - vmove "usr/lib/libqgpgmeqt6.so.*" - } -} - -gpgme-qt6-devel_package() { - depends="gpgme-devel>=${version}_${revision} - gpgmeqt-headers>=${version}_${revision} - gpgme-qt6>=${version}_${revision}" - short_desc+=" - Qt 6 binding - development files" - pkg_install() { - vmove usr/lib/libqgpgmeqt6.la - vmove usr/lib/libqgpgmeqt6.so - vmove usr/lib/cmake/QGpgmeQt6 - } -} - gpgme-python3_package() { short_desc+=" - Python binding" depends="gpgme" diff --git a/srcpkgs/gpgmeqt b/srcpkgs/gpgmeqt index b291e753127a0b..a16f079ab5a747 120000 --- a/srcpkgs/gpgmeqt +++ b/srcpkgs/gpgmeqt @@ -1 +1 @@ -gpgme \ No newline at end of file +gpgme-qt6 \ No newline at end of file diff --git a/srcpkgs/gpgmeqt-devel b/srcpkgs/gpgmeqt-devel index b291e753127a0b..a16f079ab5a747 120000 --- a/srcpkgs/gpgmeqt-devel +++ b/srcpkgs/gpgmeqt-devel @@ -1 +1 @@ -gpgme \ No newline at end of file +gpgme-qt6 \ No newline at end of file diff --git a/srcpkgs/gpgmeqt-headers b/srcpkgs/gpgmeqt-headers index b291e753127a0b..a16f079ab5a747 120000 --- a/srcpkgs/gpgmeqt-headers +++ b/srcpkgs/gpgmeqt-headers @@ -1 +1 @@ -gpgme \ No newline at end of file +gpgme-qt6 \ No newline at end of file