Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] verify dependencies between subpkgs
@ 2023-08-09 12:58 sgn
  2023-08-16 13:05 ` [PR PATCH] [Updated] " sgn
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: sgn @ 2023-08-09 12:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1722 bytes --]

There is a new pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 13788 bytes --]

From a80636e6d36c12cec7775f8c39bd20ea73fa30fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:52:39 +0700
Subject: [PATCH 1/4] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From 26c3e2ff318c59934b8a170c8ca410f984a9a9f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 2/4] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..e9d20e740ae9d 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,25 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +33,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +47,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -50,7 +67,7 @@ hook() {
 	fi
 
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From 769f158568a19bc491c66a851f5e1357dce2326e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:53:05 +0700
Subject: [PATCH 3/4] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..64b3462657c45 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From df08ed2b500103ab1a593a7cb6444d89759985f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:53:12 +0700
Subject: [PATCH 4/4] libreoffice: verify dependencies

---
 srcpkgs/libreoffice-epub     |  1 -
 srcpkgs/libreoffice/template | 27 +++------------------------
 2 files changed, 3 insertions(+), 25 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..709ffe8d7161b 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -488,8 +488,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +499,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +507,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +515,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +554,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +562,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +569,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +586,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +606,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +613,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +621,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
@ 2023-08-16 13:05 ` sgn
  2023-08-16 16:21 ` Duncaen
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-16 13:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1727 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 13812 bytes --]

From 5ea1398b253fa4b3d588074fe98476733b547028 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 13:44:43 +0700
Subject: [PATCH 1/4] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From 17c2fc6c484e58e8591967b696318ca8b8ce2fb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 2/4] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..e9d20e740ae9d 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,25 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +33,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +47,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -50,7 +67,7 @@ hook() {
 	fi
 
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From c528e9bbeb853ce79d62d77db922822d49dae6bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 13:19:01 +0700
Subject: [PATCH 3/4] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..e2020ce05f79f 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From 1cdb303ac3a59e9ab3878e1535087a68b99eb64e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:50:06 +0700
Subject: [PATCH 4/4] libreoffice: verify dependencies

---
 srcpkgs/libreoffice-epub     |  1 -
 srcpkgs/libreoffice/template | 27 +++------------------------
 2 files changed, 3 insertions(+), 25 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..709ffe8d7161b 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -488,8 +488,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +499,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +507,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +515,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +554,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +562,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +569,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +586,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +606,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +613,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +621,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
  2023-08-16 13:05 ` [PR PATCH] [Updated] " sgn
@ 2023-08-16 16:21 ` Duncaen
  2023-08-17  0:08 ` [PR PATCH] [Updated] " sgn
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Duncaen @ 2023-08-16 16:21 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 480 bytes --]

New comment by Duncaen on void-packages repository

https://github.com/void-linux/void-packages/pull/45504#issuecomment-1680910904

Comment:
This seems like a good idea.

There is also the case where we add `libGLESv2.so discord-0.0.7_1` for a bunch of nonfree packages in `common/shlibs`.

 This seems somewhat related since some non-free packages either do this or use `noverifyrdeps=yes`. Does this also solve this issue or is it possible to also solve that with this PR? 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
  2023-08-16 13:05 ` [PR PATCH] [Updated] " sgn
  2023-08-16 16:21 ` Duncaen
@ 2023-08-17  0:08 ` sgn
  2023-08-17  0:15 ` sgn
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-17  0:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1727 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 15937 bytes --]

From e303daf270c6335ff7a221526d59406a7ae210eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 13:44:43 +0700
Subject: [PATCH 1/6] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From dfdd44bd7a9b862dcd50195308ca75f8a06c2a1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 2/6] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..e9d20e740ae9d 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,25 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +33,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +47,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -50,7 +67,7 @@ hook() {
 	fi
 
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From 3c70f5840b8f02be656695a87345aec58455ddbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 13:19:01 +0700
Subject: [PATCH 3/6] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..e2020ce05f79f 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From 37a1160ca407eb6616d77fc0397bb40058fa234b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:50:06 +0700
Subject: [PATCH 4/6] libreoffice: verify dependencies

---
 srcpkgs/libreoffice-epub     |  1 -
 srcpkgs/libreoffice/template | 27 +++------------------------
 2 files changed, 3 insertions(+), 25 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..709ffe8d7161b 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -488,8 +488,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +499,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +507,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +515,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +554,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +562,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +569,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +586,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +606,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +613,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +621,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

From 2177d82246ed84de3f3371b80537c8f47bd37b3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:05:45 +0700
Subject: [PATCH 5/6] CLion: verify runtime deps

---
 srcpkgs/CLion/template | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/srcpkgs/CLion/template b/srcpkgs/CLion/template
index f302b7d6798e9..cc924d23fe49c 100644
--- a/srcpkgs/CLion/template
+++ b/srcpkgs/CLion/template
@@ -1,7 +1,7 @@
 # Template file for 'CLion'
 pkgname=CLion
 version=2021.3.4
-revision=1
+revision=2
 archs="x86_64 aarch64"
 depends="jetbrains-jdk-bin giflib libXtst"
 short_desc="Smart cross-platform IDE for C and C++"
@@ -13,8 +13,6 @@ checksum=f3b0b9e0dd0cd4aebef5d424e7a22868c732daad47d6c94f73630cef449ccf78
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 build_options="bundled_cmake bundled_gdb bundled_lldb"

From 8ab52f98e104c30ea95569921bef6057241efde6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:07:40 +0700
Subject: [PATCH 6/6] PhpStorm: verify runtime-deps

---
 srcpkgs/PhpStorm/template | 2 --
 1 file changed, 2 deletions(-)

diff --git a/srcpkgs/PhpStorm/template b/srcpkgs/PhpStorm/template
index 306a6c77d0b36..cb84a08e13636 100644
--- a/srcpkgs/PhpStorm/template
+++ b/srcpkgs/PhpStorm/template
@@ -13,8 +13,6 @@ checksum=a23922f5f93bc8df1f2aabbb0f9969e27d28f706c09d18d66d4cc2d56c52ddc9
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 post_extract() {

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
                   ` (2 preceding siblings ...)
  2023-08-17  0:08 ` [PR PATCH] [Updated] " sgn
@ 2023-08-17  0:15 ` sgn
  2023-08-17  4:42 ` [PR PATCH] [Updated] " sgn
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-17  0:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 553 bytes --]

New comment by sgn on void-packages repository

https://github.com/void-linux/void-packages/pull/45504#issuecomment-1681425291

Comment:
> There is also the case where we add `libGLESv2.so discord-0.0.7_1` for a bunch of nonfree packages in `common/shlibs`.
> 
> This seems somewhat related since some non-free packages either do this or use `noverifyrdeps=yes`. Does this also solve this issue or is it possible to also solve that with this PR?

Testing, But, yeah, IMO, it can be solved by this PR, or at least with a small change to this PR.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
                   ` (3 preceding siblings ...)
  2023-08-17  0:15 ` sgn
@ 2023-08-17  4:42 ` sgn
  2023-08-17 11:34 ` sgn
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-17  4:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1727 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 31585 bytes --]

From 0bf9584698de74697f79b0bc02130d751dcc0afc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 13:44:43 +0700
Subject: [PATCH 01/14] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From 2e4e12221f26ee32ecb8d240f0c17fc5902a212a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 02/14] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..e9d20e740ae9d 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,25 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +33,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +47,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -50,7 +67,7 @@ hook() {
 	fi
 
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From c028f6cac2baeae59c6a2028c17ad080bb7b9be0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 13:19:01 +0700
Subject: [PATCH 03/14] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..e2020ce05f79f 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From 431689695b95a92bf8588b40dce6a98320a23ed8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:50:06 +0700
Subject: [PATCH 04/14] libreoffice: verify dependencies

---
 srcpkgs/libreoffice-epub     |  1 -
 srcpkgs/libreoffice/template | 27 +++------------------------
 2 files changed, 3 insertions(+), 25 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..709ffe8d7161b 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -488,8 +488,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +499,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +507,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +515,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +554,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +562,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +569,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +586,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +606,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +613,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +621,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

From 32ae306e36af7b35df9ff06c1d95606649d77392 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:05:45 +0700
Subject: [PATCH 05/14] CLion: verify runtime deps

---
 srcpkgs/CLion/template | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/srcpkgs/CLion/template b/srcpkgs/CLion/template
index f302b7d6798e9..cc924d23fe49c 100644
--- a/srcpkgs/CLion/template
+++ b/srcpkgs/CLion/template
@@ -1,7 +1,7 @@
 # Template file for 'CLion'
 pkgname=CLion
 version=2021.3.4
-revision=1
+revision=2
 archs="x86_64 aarch64"
 depends="jetbrains-jdk-bin giflib libXtst"
 short_desc="Smart cross-platform IDE for C and C++"
@@ -13,8 +13,6 @@ checksum=f3b0b9e0dd0cd4aebef5d424e7a22868c732daad47d6c94f73630cef449ccf78
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 build_options="bundled_cmake bundled_gdb bundled_lldb"

From 87e5e763633b9368422e9b5b1fe44d08742be625 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:07:40 +0700
Subject: [PATCH 06/14] PhpStorm: verify runtime-deps

---
 srcpkgs/PhpStorm/template | 2 --
 1 file changed, 2 deletions(-)

diff --git a/srcpkgs/PhpStorm/template b/srcpkgs/PhpStorm/template
index 306a6c77d0b36..cb84a08e13636 100644
--- a/srcpkgs/PhpStorm/template
+++ b/srcpkgs/PhpStorm/template
@@ -13,8 +13,6 @@ checksum=a23922f5f93bc8df1f2aabbb0f9969e27d28f706c09d18d66d4cc2d56c52ddc9
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 post_extract() {

From 9d1350cf1142b43f97f44245db0d17e76e6465b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:27:35 +0700
Subject: [PATCH 07/14] intellij-idea-ultimate-edition: verify runtime deps

---
 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg | 2 --
 srcpkgs/intellij-idea-ultimate-edition/template    | 9 ++++-----
 2 files changed, 4 insertions(+), 7 deletions(-)
 delete mode 100644 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg

diff --git a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg b/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
deleted file mode 100644
index c04f6c9ab2a95..0000000000000
--- a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
+++ /dev/null
@@ -1,2 +0,0 @@
-IntelliJ Ultimate has the following optional dependencies:
-	libdbusmenu-glib: For global menu support
diff --git a/srcpkgs/intellij-idea-ultimate-edition/template b/srcpkgs/intellij-idea-ultimate-edition/template
index 92ad9135f3a97..00c1186b589f7 100644
--- a/srcpkgs/intellij-idea-ultimate-edition/template
+++ b/srcpkgs/intellij-idea-ultimate-edition/template
@@ -1,10 +1,9 @@
 # Template file for 'intellij-idea-ultimate-edition'
 pkgname=intellij-idea-ultimate-edition
 version=2021.3.3
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc="true"
-depends="giflib libXtst jetbrains-jdk-bin"
+depends="giflib libXtst jetbrains-jdk-bin lldb-devel"
 short_desc="Most intelligent Java IDE"
 maintainer="Anton Afanasyev <anton@doubleasoftware.com>"
 license="custom:Commercial"
@@ -15,9 +14,9 @@ checksum=2a3295fca08060ad515f6c7198879d09963724cfb36af3ea94f16dcd76636470
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
+# requires liblldb.so which is unversioned, pulled by lldb-devel
+skiprdeps="/usr/lib/intellij-idea-ultimate-edition/plugins/Kotlin/bin/linux/LLDBFrontend"
 
 do_extract() {
 	bsdtar xf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_filename} --strip-components=1 -C .

From eba70075771329439b0e7e3c1d4d7dd10df2b7c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 09:35:21 +0700
Subject: [PATCH 08/14] mercury: verify runtime deps

---
 srcpkgs/mercury/template | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/srcpkgs/mercury/template b/srcpkgs/mercury/template
index 078da62c329ee..07ab9363960bc 100644
--- a/srcpkgs/mercury/template
+++ b/srcpkgs/mercury/template
@@ -1,9 +1,8 @@
 # Template file for 'mercury'
 pkgname=mercury
 version=22.01.3
-revision=1
+revision=2
 hostmakedepends="flex bison gettext texinfo"
-depends="mercury-libs>=${version}_${revision}"
 short_desc="Logic/Functional Programming Language"
 maintainer="Emily McDonough <emily@alaskanemily.net>"
 license="GPL-2.0-only, custom:LGPL-2.0-only-linking-exception"
@@ -11,7 +10,6 @@ homepage="https://mercurylang.org/"
 distfiles="https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.xz"
 checksum=4b0783ee9205021e4193b0404fd654e9c6fd288bc9bb7e144b1c1f6cd45dcd2e
 nocross="Mercury cannot be cross-compiled to different architectures"
-noverifyrdeps=yes
 
 CFLAGS="-Wno-array-bounds -fno-tree-slp-vectorize"
 

From 6d6b0d18988a59a6cfe835d9099e128d54315909 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 09:50:16 +0700
Subject: [PATCH 09/14] fixup! hooks/shlib-provides: record shared libraries
 without SONAME

---
 common/hooks/post-install/98-shlib-provides.sh | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index e9d20e740ae9d..ad1c31c72db05 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -25,6 +25,11 @@ collect_sonames() {
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
 			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
+			if [ -n "$noshlibprovides" ]; then
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
+				continue
+			fi
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -62,10 +67,6 @@ collect_sonames() {
 hook() {
 	local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
 
-	if [ -n "$noshlibprovides" ]; then
-		return 0
-	fi
-
 	# native pkg
 	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg

From d5e506d519ea9ae87a2ce25794f064e58e795f9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 09:51:57 +0700
Subject: [PATCH 10/14] jetbrains-jdk-bin: verify runtime-deps

---
 srcpkgs/jetbrains-jdk-bin/template | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/srcpkgs/jetbrains-jdk-bin/template b/srcpkgs/jetbrains-jdk-bin/template
index c275199504e8c..79534a1383f51 100644
--- a/srcpkgs/jetbrains-jdk-bin/template
+++ b/srcpkgs/jetbrains-jdk-bin/template
@@ -11,11 +11,7 @@ _jdk_ver=${version%b*}
 _jdk_build=${version#*b}
 distfiles="https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-${_jdk_ver//\./_}-linux-x64-b${_jdk_build}.tar.gz"
 checksum=192bc1c4d877a9035a08db8a4bc9ac98551fa344ec5835f08d455fab66c82fe0
-# This JDK appears to link to libs that do not exist, but functions well even in their absence.
-# Best guess is that they are optional. ¯\_(ツ)_/¯
-noverifyrdeps=yes
 nopie=yes
-noshlibprovides=yes
 
 do_install() {
 	TARGET_PATH="usr/lib/jvm/jbrsdk"

From f24f391c4d3b43e3759fc1388913cdea4612d494 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 10:08:58 +0700
Subject: [PATCH 11/14] protonmail-bridge: verify runtime deps

---
 common/shlibs                      |  1 +
 srcpkgs/protonmail-bridge/template | 13 +++++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index 4477d4c879782..311ced37789f5 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2052,6 +2052,7 @@ libQt6LabsSharedImage.so.6 qt6-declarative-6.1.0_1
 libQt6LabsWavefrontMesh.so.6 qt6-declarative-6.1.0_1
 libQt6QmlLocalStorage.so.6 qt6-declarative-6.1.0_1
 libQt6QmlWorkerScript.so.6 qt6-declarative-6.0.0_1
+libQt6QmlXmlListModel.so.6 qt6-declarative-6.5.0_1
 libQt6QuickTest.so.6 qt6-quick-test-6.4.2_1
 libQt6QuickShapes.so.6 qt6-declarative-6.0.0_1
 libQt6QuickWidgets.so.6 qt6-declarative-6.0.0_1
diff --git a/srcpkgs/protonmail-bridge/template b/srcpkgs/protonmail-bridge/template
index 5d1315f6063ca..ff08aee8720d7 100644
--- a/srcpkgs/protonmail-bridge/template
+++ b/srcpkgs/protonmail-bridge/template
@@ -1,7 +1,7 @@
 # Template file for 'protonmail-bridge'
 pkgname=protonmail-bridge
 version=3.3.0
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
 depends="desktop-file-utils"
@@ -13,9 +13,18 @@ distfiles="https://proton.me/download/bridge/protonmail-bridge_${version}-1_amd6
 checksum=4541f8aa145097ee171889b0c9d058450d09dc23be10231c83d6659789a27627
 
 restricted=yes
-noverifyrdeps=yes
 nopie=yes
 
 do_install() {
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlmysql.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlodbc.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlpsql.so
+	rm -rf usr/lib/protonmail/bridge/plugins/designer
+	rm -rf usr/lib/protonmail/bridge/plugins/qmltooling
+	rm -rf usr/lib/protonmail/bridge/qml/QtTest
+	rm -rf usr/lib/protonmail/bridge/qml/Qt/labs
+	rm -rf usr/lib/protonmail/bridge/lib/cmake
+	rm -rf usr/lib/protonmail/bridge/lib/pkgconfig
+	rm -rf usr/lib/protonmail/bridge/lib/*.a
 	vcopy usr /
 }

From a36a0ec7bf5fa6ccff3f5345dcce0a66ac5d9d91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 10:18:12 +0700
Subject: [PATCH 12/14] teamspeak3: verify runtime deps

---
 srcpkgs/teamspeak3/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/teamspeak3/template b/srcpkgs/teamspeak3/template
index 23ca26aeb08e9..bf0dcfd75b642 100644
--- a/srcpkgs/teamspeak3/template
+++ b/srcpkgs/teamspeak3/template
@@ -1,12 +1,10 @@
 # Template file for 'teamspeak3'
 pkgname=teamspeak3
 version=3.5.6
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc=yes
 hostmakedepends="tar"
-depends="glib bash grep freetype nss libXcomposite fontconfig glibc
- libxslt dbus-libs alsa-lib libXi libXcursor libXtst libXScrnSaver pciutils"
+depends="bash grep"
 short_desc="Popular proprietary voice chat for gaming"
 maintainer="Tai Chi Minh Ralph Eastwood <tcmreastwood@gmail.com>"
 license="custom:Proprietary"
@@ -15,7 +13,6 @@ restricted=yes
 repository="nonfree"
 nopie=yes
 nostrip=yes
-noverifyrdeps=yes
 
 if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 	_pkg="TeamSpeak3-Client-linux_amd64-${version}"

From a7b08db1c58d84f7e47557aa9ef4f0cfe587a8b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 10:39:42 +0700
Subject: [PATCH 13/14] zoom: verify runtime deps

---
 srcpkgs/zoom/template | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/zoom/template b/srcpkgs/zoom/template
index 7b026f182ae7d..db3e3288bc05c 100644
--- a/srcpkgs/zoom/template
+++ b/srcpkgs/zoom/template
@@ -1,13 +1,10 @@
 # Template file for 'zoom'
 pkgname=zoom
 version=5.15.3.4839
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
-depends="$(vopt_if systemqt 'qt5 qt5-graphicaleffects qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-svg qt5-script qt5-declarative')
- xcb-util-image xcb-util-keysyms glib libXfixes libXtst libgbm libglvnd
- nss atk at-spi2-atk libXcomposite libXdamage libXrandr libxkbcommon pango
- alsa-lib libcups libxshmfence pulseaudio-utils"
+depends="libglvnd pulseaudio-utils"
 short_desc="Video Conferencing and Web Conferencing Service"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:Proprietary"
@@ -16,13 +13,16 @@ distfiles="https://cdn.zoom.us/prod/${version}/zoom_x86_64.rpm"
 checksum=3dc36195400744ceacd025009e88549f7a8481a6964ef3276a4f753764e51ac6
 repository=nonfree
 noshlibprovides=yes
-noverifyrdeps=yes
 restricted=yes
 nopie=yes
 build_options="systemqt"
 desc_option_systemqt="Use system QT libraries"
 
 pre_install() {
+	# rm -rf opt/zoom/Qt/qml/QtQml/RemoteObjects
+	# rm -rf opt/zoom/Qt/qml/Qt/labs
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene2D
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene3D
 	if [ "${build_option_systemqt}" ]; then
 		rm -f opt/zoom/libQt5*.so{,.*}
 		rm -f opt/zoom/libicu*.so{,.*}

From 314bd5489d2a378d14ad6c674835f8dbd93220dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 11:04:58 +0700
Subject: [PATCH 14/14] common/shlibs: clean up

---
 common/shlibs | 49 -------------------------------------------------
 1 file changed, 49 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index 311ced37789f5..f6a8230e3fc4b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -131,13 +131,6 @@ libGL.so.1 libGL-7.11_1
 libEGL.so.1 libEGL-7.11_1
 libGLESv1_CM.so.1 libGLES-1.0_1
 libGLESv2.so.2 libGLES-1.0_1
-libEGL.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so opera-55.0.2994.37_2
-libGLESv2.so discord-0.0.7_1
-libGLESv2.so keybase-desktop-3.1.2_1
-libGLESv2.so Signal-Desktop-1.23.2_1
-libGLESv2.so slack-desktop-3.4.2_1
 libbrcmEGL.so rpi-userland-20180103_2
 libbrcmGLESv2.so rpi-userland-20180103_2
 libbrcmOpenVG.so rpi-userland-20180103_2
@@ -1141,7 +1134,6 @@ libgstpbutils-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstriff-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstapp-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstallocators-1.0.so.0 gst-plugins-base1-1.1.1_1
-libgsttranscoder-1.0.so.0 gst-plugins-bad1-1.22.1_1
 libgstphotography-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstsignalprocessor-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstbasevideo-1.0.so.0 gst-plugins-bad1-1.18.3_2
@@ -1844,30 +1836,6 @@ libawt_xawt.so openjdk11-jre-11.0.5+10_1
 libjava.so openjdk11-jre-11.0.5+10_1
 libjli.so openjdk11-jre-11.0.5+10_1
 libjvm.so openjdk11-jre-11.0.5+10_1
-libjawt.so openjdk7-bootstrap-7u221b02_1
-libawt.so openjdk7-bootstrap-7u221b02_1
-libawt_xawt.so openjdk7-bootstrap-7u221b02_1
-libjava.so openjdk7-bootstrap-7u221b02_1
-libjli.so openjdk7-bootstrap-7u221b02_1
-libjvm.so openjdk7-bootstrap-7u221b02_1
-libjawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt_xawt.so openjdk9-bootstrap-9.0.4p12_1
-libjava.so openjdk9-bootstrap-9.0.4p12_1
-libjli.so openjdk9-bootstrap-9.0.4p12_1
-libjvm.so openjdk9-bootstrap-9.0.4p12_1
-libjawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt_xawt.so openjdk10-bootstrap-10.0.2p13_1
-libjava.so openjdk10-bootstrap-10.0.2p13_1
-libjli.so openjdk10-bootstrap-10.0.2p13_1
-libjvm.so openjdk10-bootstrap-10.0.2p13_1
-libjawt.so mandrel-21.1.0.0_1
-libawt.so mandrel-21.1.0.0_1
-libawt_xawt.so mandrel-21.1.0.0_1
-libjava.so mandrel-21.1.0.0_1
-libjli.so mandrel-21.1.0.0_1
-libjvm.so mandrel-21.1.0.0_1
 libucl.so.5 libucl-0.8.1_6
 libhandle.so.1 xfsprogs-3.2.1_1
 libnfnetlink.so.0 libnfnetlink-1.0.1_1
@@ -2642,16 +2610,10 @@ libglyphy.so.0 glyphy-0.0.20160104_1
 libSwiften.so.0 swiften-4.0.3_2
 libfreehand-0.1.so.1 libfreehand-0.1.1_1
 libe-book-0.1.so.1 libe-book-0.1.2_1
-libOsi.so.1 CoinMP-1.8.3_1
-libClp.so.1 CoinMP-1.8.3_1
 libCoinMP.so.1 CoinMP-1.8.3_1
 libOsiCbc.so.3 CoinMP-1.8.3_1
-libCoinUtils.so.3 CoinMP-1.8.3_1
-libClpSolver.so.1 CoinMP-1.8.3_1
 libCgl.so.1 CoinMP-1.8.3_1
-libOsiClp.so.1 CoinMP-1.8.3_1
 libCbc.so.3 CoinMP-1.8.3_1
-libOsiCommonTests.so.1 CoinMP-1.8.3_1
 libCbcSolver.so.3 CoinMP-1.8.3_1
 libmwaw-0.3.so.3 libmwaw-0.3.7_1
 libixion-0.17.so.0 libixion-0.17.0_1
@@ -2675,10 +2637,6 @@ leatherman_curl.so.1.12.4 leatherman-1.12.4_1
 leatherman_dynamic_library.so.1.12.4 leatherman-1.12.4_1
 leatherman_execution.so.1.12.4 leatherman-1.12.4_1
 leatherman_ruby.so.1.12.4 leatherman-1.12.4_1
-libUTF.so opencollada-0.0.20160223_1
-libbuffer.so opencollada-0.0.20160223_1
-libftoa.so opencollada-0.0.20160223_1
-libzlib.so opencollada-1.6.51_1
 libfbclient.so.2 libfbclient3-3.0.4.33054_1
 libipmiutil.so.1 ipmiutil-3.1.3_4
 libqxmpp.so.3 qxmpp-1.2.0_1
@@ -3646,12 +3604,6 @@ libTECkit.so.0 libteckit-2.5.8_1
 libTECkit_Compiler.so.0 libteckit-2.5.8_1
 libwf-config.so.1 wf-config-0.5.0_1
 libQt5Pas.so.1 qt5pas-2.6~beta_1
-libClp.so.1 libClp-1.16.11_1
-libCoinUtils.so.3 libClp-1.16.11_1
-libOsiClp.so.1 libClp-1.16.11_1
-libClpSolver.so.1 libClp-1.16.11_1
-libOsiCommonTests.so.1 libClp-1.16.11_1
-libOsi.so.1 libClp-1.16.11_1
 libOGDF.so libogdf-2018.03_1
 libCOIN.so libogdf-2018.03_1
 librocksdb.so.7 rocksdb-7.4.5_1
@@ -4189,7 +4141,6 @@ libThread.so root-6.24.06_1
 libTMVA.so root-6.24.06_1
 libMathCore.so root-6.24.06_1
 libCore.so root-6.24.06_1
-libCore.so qtcreator-7.0.2_1
 liblowdown.so.3 lowdown-1.0.2_1
 libjaylink.so.0 libjaylink-0.2.0_1
 libnvidia-container.so.1 libnvidia-container-1.10.0_1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
                   ` (4 preceding siblings ...)
  2023-08-17  4:42 ` [PR PATCH] [Updated] " sgn
@ 2023-08-17 11:34 ` sgn
  2023-08-29  6:18 ` sgn
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-17 11:34 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1727 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 41742 bytes --]

From 3554894c2e0f3e54da4f74f0a3f9d484ffc5021d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 18:25:47 +0700
Subject: [PATCH 1/8] cmake: update to 3.27.2.

---
 srcpkgs/cmake-gui                             |  1 +
 srcpkgs/cmake-gui/patches                     |  1 -
 srcpkgs/cmake-gui/template                    | 40 -------------
 srcpkgs/cmake-gui/update                      |  1 -
 .../patches/ignore-crape-compiler-test.patch  |  4 +-
 srcpkgs/cmake/patches/linux-gate.patch        | 14 -----
 srcpkgs/cmake/patches/musl-test.patch         | 16 +++++-
 srcpkgs/cmake/patches/nlohmann_json.patch     | 23 ++++++++
 srcpkgs/cmake/patches/no-license.patch        | 26 +++++++++
 .../patches/no-run-cmake-bootstrap.patch      |  8 +--
 srcpkgs/cmake/template                        | 57 +++++++++----------
 11 files changed, 93 insertions(+), 98 deletions(-)
 create mode 120000 srcpkgs/cmake-gui
 delete mode 120000 srcpkgs/cmake-gui/patches
 delete mode 100644 srcpkgs/cmake-gui/template
 delete mode 120000 srcpkgs/cmake-gui/update
 delete mode 100644 srcpkgs/cmake/patches/linux-gate.patch
 create mode 100644 srcpkgs/cmake/patches/nlohmann_json.patch
 create mode 100644 srcpkgs/cmake/patches/no-license.patch

diff --git a/srcpkgs/cmake-gui b/srcpkgs/cmake-gui
new file mode 120000
index 0000000000000..b6868d450eb7b
--- /dev/null
+++ b/srcpkgs/cmake-gui
@@ -0,0 +1 @@
+cmake
\ No newline at end of file
diff --git a/srcpkgs/cmake-gui/patches b/srcpkgs/cmake-gui/patches
deleted file mode 120000
index 6f3ac554b3614..0000000000000
--- a/srcpkgs/cmake-gui/patches
+++ /dev/null
@@ -1 +0,0 @@
-../cmake/patches
\ No newline at end of file
diff --git a/srcpkgs/cmake-gui/template b/srcpkgs/cmake-gui/template
deleted file mode 100644
index 6aea8d3e7afb9..0000000000000
--- a/srcpkgs/cmake-gui/template
+++ /dev/null
@@ -1,40 +0,0 @@
-# Template file for 'cmake-gui'
-pkgname=cmake-gui
-version=3.26.4
-revision=3
-build_style=cmake
-configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake
- -DSPHINX_MAN=1 -DCMAKE_MAN_DIR=/share/man
- -DBUILD_QtDialog=ON -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1"
-hostmakedepends="qt6-base python3-Sphinx qt6-tools"
-makedepends="jsoncpp-devel libarchive-devel libcurl-devel libuv-devel
- ncurses-devel qt6-base-devel rhash-devel qt6-tools-devel"
-depends="desktop-file-utils shared-mime-info cmake>=${version}"
-checkdepends="pax pkg-config git"
-short_desc="Cross-platform, open-source build system - Qt GUI"
-maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
-license="BSD-3-Clause"
-homepage="https://www.cmake.org"
-distfiles="https://www.cmake.org/files/v${version%.*}/cmake-${version}.tar.gz"
-checksum=313b6880c291bd4fe31c0aa51d6e62659282a521e695f30d5cc0d25abbd5c208
-
-do_check() {
-	cd build
-	./bin/ctest
-}
-
-do_install() {
-	# We are only interested in cmake-gui.
-	vbin build/bin/cmake-gui
-	vman build/Utilities/Sphinx/man/cmake-gui.1
-
-	for res in 32 64 128 ; do
-		vinstall Source/QtDialog/CMakeSetup${res}.png 0644 \
-			usr/share/icons/hicolor/${res}x${res}/apps/
-	done
-
-	vinstall Source/QtDialog/cmakecache.xml 0644 usr/share/mime
-	vinstall Source/QtDialog/cmake-gui.desktop 0644 usr/share/applications
-
-	vlicense Copyright.txt
-}
diff --git a/srcpkgs/cmake-gui/update b/srcpkgs/cmake-gui/update
deleted file mode 120000
index c7f49c6a2d189..0000000000000
--- a/srcpkgs/cmake-gui/update
+++ /dev/null
@@ -1 +0,0 @@
-../cmake/update
\ No newline at end of file
diff --git a/srcpkgs/cmake/patches/ignore-crape-compiler-test.patch b/srcpkgs/cmake/patches/ignore-crape-compiler-test.patch
index 7b6ce9c16962b..cf098a8f88748 100644
--- a/srcpkgs/cmake/patches/ignore-crape-compiler-test.patch
+++ b/srcpkgs/cmake/patches/ignore-crape-compiler-test.patch
@@ -1,8 +1,6 @@
-diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
-index dcdc7f1b96..37e13b6c5c 100644
 --- a/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
 +++ b/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
-@@ -11,7 +11,7 @@ project(Minimal NONE)
+@@ -8,7 +8,7 @@
  set(targets
    aix-C-XL-13.1.3 aix-CXX-XL-13.1.3
    aix-C-XLClang-16.1.0.1 aix-CXX-XLClang-16.1.0.1
diff --git a/srcpkgs/cmake/patches/linux-gate.patch b/srcpkgs/cmake/patches/linux-gate.patch
deleted file mode 100644
index 2102feee211f2..0000000000000
--- a/srcpkgs/cmake/patches/linux-gate.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8229
-diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake
-index 0ba35b6b79..0cd49ab4ba 100644
---- a/Modules/GetPrerequisites.cmake
-+++ b/Modules/GetPrerequisites.cmake
-@@ -730,7 +730,7 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
- 
-   if(gp_tool MATCHES "ldd$")
-     set(gp_cmd_args "")
--    set(gp_regex "^[\t ]*[^\t ]+ =>[\t ]+([^\t\(]+)( \(.+\))?${eol_char}$")
-+    set(gp_regex "^[\t ]*[^\t ]+ =>[\t ]+(/[^\t\(]+)( \(.+\))?${eol_char}$")
-     set(gp_regex_error "not found${eol_char}$")
-     set(gp_regex_fallback "^[\t ]*([^\t ]+) => ([^\t ]+).*${eol_char}$")
-     set(gp_regex_cmp_count 1)
diff --git a/srcpkgs/cmake/patches/musl-test.patch b/srcpkgs/cmake/patches/musl-test.patch
index 0329b5efd2f52..41161fa81e082 100644
--- a/srcpkgs/cmake/patches/musl-test.patch
+++ b/srcpkgs/cmake/patches/musl-test.patch
@@ -1,6 +1,6 @@
---- a/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/linux-all-check.cmake.orig	2020-12-05 13:27:21.098078774 +0700
-+++ b/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/linux-all-check.cmake	2020-12-05 13:29:19.931553018 +0700
-@@ -33,9 +33,9 @@
+--- a/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/linux-all-check.cmake
++++ b/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/linux-all-check.cmake
+@@ -15,9 +15,9 @@ set(_check
    [[librunpath_parent_unresolved\.so]]
    [[librunpath_unresolved\.so]]
    )
@@ -13,3 +13,13 @@
  set(_check
    "^libconflict\\.so:[^;]*/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/linux-build/root-all/lib/conflict/libconflict\\.so;[^;]*/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/linux-build/root-all/lib/conflict2/libconflict\\.so\n$"
    )
+--- a/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/RunCMakeTest.cmake
++++ b/Tests/RunCMake/file-GET_RUNTIME_DEPENDENCIES/RunCMakeTest.cmake
+@@ -65,7 +65,6 @@ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "
+ 
+   if(NOT CMake_COMPILER_FORCES_NEW_DTAGS)
+     run_install_test(linux)
+-    run_install_test(linux-parent-rpath-propagation)
+     run_install_test(file-filter)
+   endif()
+   run_install_test(linux-unresolved)
diff --git a/srcpkgs/cmake/patches/nlohmann_json.patch b/srcpkgs/cmake/patches/nlohmann_json.patch
new file mode 100644
index 0000000000000..005c0c3ca0c9a
--- /dev/null
+++ b/srcpkgs/cmake/patches/nlohmann_json.patch
@@ -0,0 +1,23 @@
+--- a/Tests/CMakeLib/testDebuggerNamedPipe.cxx
++++ b/Tests/CMakeLib/testDebuggerNamedPipe.cxx
+@@ -180,13 +180,13 @@ int runTest(int argc, char* argv[])
+   auto debuggerResponse = debuggerResponseStream.str();
+ 
+   std::vector<std::string> expectedResponses = {
+-    R"("event" : "initialized".*"type" : "event")",
+-    R"("command" : "launch".*"success" : true.*"type" : "response")",
+-    R"("command" : "configurationDone".*"success" : true.*"type" : "response")",
+-    R"("reason" : "started".*"threadId" : 1.*"event" : "thread".*"type" : "event")",
+-    R"("reason" : "exited".*"threadId" : 1.*"event" : "thread".*"type" : "event")",
+-    R"("exitCode" : 0.*"event" : "exited".*"type" : "event")",
+-    R"("command" : "disconnect".*"success" : true.*"type" : "response")"
++    R"("event" *: *"initialized".*"type" *: *"event")",
++    R"("command" *: *"launch".*"success" *: *true.*"type" *: *"response")",
++    R"("command" *: *"configurationDone".*"success" *: *true.*"type" *: *"response")",
++    R"("reason" *: *"started".*"threadId" *: *1.*"event" *: *"thread".*"type" *: *"event")",
++    R"("reason" *: *"exited".*"threadId" *: *1.*"event" *: *"thread".*"type" *: *"event")",
++    R"("exitCode" *: *0.*"event" *: *"exited".*"type" *: *"event")",
++    R"("command" *: *"disconnect".*"success" *: *true.*"type" *: *"response")"
+   };
+ 
+   for (auto& regexString : expectedResponses) {
diff --git a/srcpkgs/cmake/patches/no-license.patch b/srcpkgs/cmake/patches/no-license.patch
new file mode 100644
index 0000000000000..87e31e21aeb96
--- /dev/null
+++ b/srcpkgs/cmake/patches/no-license.patch
@@ -0,0 +1,26 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -522,9 +522,6 @@ if(BUILD_TESTING)
+ endif()
+ 
+ if(NOT CMake_TEST_EXTERNAL_CMAKE)
+-  # Install license file as it requires.
+-  install(FILES Copyright.txt DESTINATION ${CMAKE_DOC_DIR})
+-
+   # Install script directories.
+   install(
+     DIRECTORY Help Modules Templates
+--- a/Source/kwsys/CMakeLists.txt
++++ b/Source/kwsys/CMakeLists.txt
+@@ -615,11 +615,6 @@ if(KWSYS_INSTALL_DOC_DIR)
+       COMPONENT ${KWSYS_INSTALL_COMPONENT_NAME_RUNTIME}
+       )
+   endif()
+-
+-  # Install the license under the documentation directory.
+-  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt
+-    DESTINATION ${KWSYS_INSTALL_DOC_DIR}/${KWSYS_NAMESPACE}
+-    ${KWSYS_INSTALL_LICENSE_OPTIONS})
+ endif()
+ 
+ #-----------------------------------------------------------------------------
diff --git a/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch b/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch
index 4b41aea2450b4..0e550bce7b90e 100644
--- a/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch
+++ b/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch
@@ -1,9 +1,7 @@
 We will run cmake ourselves with our flags
-Index: cmake-3.20.3/bootstrap
-===================================================================
---- cmake-3.20.3.orig/bootstrap
-+++ cmake-3.20.3/bootstrap
-@@ -1968,6 +1968,7 @@ export CFLAGS
+--- a/bootstrap
++++ b/bootstrap
+@@ -2076,6 +2076,7 @@ export CFLAGS
  export CXXFLAGS
  export LDFLAGS
  
diff --git a/srcpkgs/cmake/template b/srcpkgs/cmake/template
index 20da7a8678ea8..3517bb2cc6787 100644
--- a/srcpkgs/cmake/template
+++ b/srcpkgs/cmake/template
@@ -1,58 +1,53 @@
 # Template file for 'cmake'
 pkgname=cmake
-version=3.26.4
-revision=3
+version=3.27.2
+revision=1
 build_style=cmake
 configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake
  -DSPHINX_MAN=1 -DCMAKE_MAN_DIR=/share/man
+ -DBUILD_CursesDialog=ON -DBUILD_QtDialog=ON
  -DCMAKE_SKIP_BOOTSTRAP_TEST=1 -DCMAKE_SKIP_RPATH=1
  -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1"
-hostmakedepends="gcc-fortran python3-Sphinx"
-makedepends="expat-devel libarchive-devel libcurl-devel libuv-devel
- ncurses-devel rhash-devel jsoncpp-devel"
+hostmakedepends="gcc-fortran python3-Sphinx qt6-base qt6-tools"
+makedepends="expat-devel libarchive-devel libcurl-devel libuv-devel cppdap-devel
+ ncurses-devel rhash-devel jsoncpp-devel qt6-base-devel qt6-tools-devel"
 checkdepends="pax pkg-config git"
 short_desc="Cross-platform, open-source build system"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="BSD-3-Clause, ICU"
 homepage="https://www.cmake.org"
 distfiles="https://www.cmake.org/files/v${version%.*}/${pkgname}-${version}.tar.gz"
-checksum=313b6880c291bd4fe31c0aa51d6e62659282a521e695f30d5cc0d25abbd5c208
-replaces="cmake-bootstrap>=0"
+checksum=798e50085d423816fe96c9ef8bee5e50002c9eca09fed13e300de8a91d35c211
 
 if [ "$XBPS_TARGET_LIBC" = musl ]; then
 	configure_args+=" -DCMake_NO_SELF_BACKTRACE=1"
 fi
 
-pre_configure() {
-	local f
-	mkdir -p build
-	cd build
-	CC=$CC_FOR_BUILD CFLAGS="$CFLAGS_FOR_BUILD" \
-	CXX=$CXX_FOR_BUILD CXXFLAGS="$CXXFLAGS_FOR_BUILD" \
-	LD=$LD_FOR_BUILD LDFLAGS="$LDFLAGS_FOR_BUILD" \
-	../bootstrap --no-system-libs \
-		--generator=Ninja \
-		${XBPS_MAKEJOBS:+--parallel=$XBPS_MAKEJOBS}
-	# Make sure build directory is clean
-	for f in *; do
-		if [ "$f" != Bootstrap.cmk ]; then
-			return 1
-		fi
-	done
-	cd ${wrksrc}
-	PATH="${wrksrc}/build/Bootstrap.cmk:$PATH"
-}
-
 do_check() {
 	cd build
 	./bin/ctest
 }
 
 post_install() {
-	rm -rf ${DESTDIR}/usr/share/doc/cmake
+	# No license would be installed
+	# or something were bundled without our knowledge
+	test ! -d ${DESTDIR}/usr/share/doc
 	sed -n -e '/Copyright/,/authorization[.]/p' \
-		Source/CursesDialog/form/fld_arg.c >fld.LICENSE
-	vlicense fld.LICENSE
+		Source/CursesDialog/form/fld_arg.c >fld.license
+	vlicense fld.license
+	sed -e '/\$FreeBSD\$/q' Utilities/cmelf/elf_common.h >elf.license
+	vlicense elf.license
 	vlicense Copyright.txt
-	vlicense Utilities/KWIML/Copyright.txt KWIML-Copyright.txt
+}
+
+cmake-gui_package() {
+	depends="desktop-file-utils shared-mime-info cmake>=${version}"
+	pkg_install() {
+		vmove usr/bin/cmake-gui
+		vmove usr/share/man/man1/cmake-gui.1
+
+		vmove usr/share/applications
+		vmove usr/share/icons
+		vmove usr/share/mime
+	}
 }

From 0dab87d4c840dda4310296a4fc17e8757541e278 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 13:44:43 +0700
Subject: [PATCH 2/8] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From 018df5f33427b571cdc5ffafaaf308bc08bb4ffa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 3/8] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 30 +++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..ad1c31c72db05 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,30 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
+			if [ -n "$noshlibprovides" ]; then
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
+				continue
+			fi
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +38,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +52,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -45,12 +67,8 @@ collect_sonames() {
 hook() {
 	local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
 
-	if [ -n "$noshlibprovides" ]; then
-		return 0
-	fi
-
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From d36429610c969d8e5fd9ef0882af5c753fbc378b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 13:19:01 +0700
Subject: [PATCH 4/8] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..e2020ce05f79f 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From ffe849815d32d14ba862bdad2b09d2d92f74f355 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:50:06 +0700
Subject: [PATCH 5/8] libreoffice: verify dependencies

---
 srcpkgs/libreoffice-epub     |  1 -
 srcpkgs/libreoffice/template | 27 +++------------------------
 2 files changed, 3 insertions(+), 25 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..709ffe8d7161b 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -488,8 +488,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +499,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +507,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +515,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +554,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +562,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +569,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +586,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +606,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +613,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +621,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

From 7910e7b236094c5e636e056af4d4575335ca9897 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 09:35:21 +0700
Subject: [PATCH 6/8] mercury: verify runtime deps

---
 srcpkgs/mercury/template | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/srcpkgs/mercury/template b/srcpkgs/mercury/template
index 078da62c329ee..07ab9363960bc 100644
--- a/srcpkgs/mercury/template
+++ b/srcpkgs/mercury/template
@@ -1,9 +1,8 @@
 # Template file for 'mercury'
 pkgname=mercury
 version=22.01.3
-revision=1
+revision=2
 hostmakedepends="flex bison gettext texinfo"
-depends="mercury-libs>=${version}_${revision}"
 short_desc="Logic/Functional Programming Language"
 maintainer="Emily McDonough <emily@alaskanemily.net>"
 license="GPL-2.0-only, custom:LGPL-2.0-only-linking-exception"
@@ -11,7 +10,6 @@ homepage="https://mercurylang.org/"
 distfiles="https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.xz"
 checksum=4b0783ee9205021e4193b0404fd654e9c6fd288bc9bb7e144b1c1f6cd45dcd2e
 nocross="Mercury cannot be cross-compiled to different architectures"
-noverifyrdeps=yes
 
 CFLAGS="-Wno-array-bounds -fno-tree-slp-vectorize"
 

From 5d5648c2f37ff7b91efbaf7caafeed8f8d30d74b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:05:45 +0700
Subject: [PATCH 7/8] (restricted): verify runtime deps

---
 common/shlibs                                      |  1 +
 srcpkgs/CLion/template                             |  4 +---
 srcpkgs/PhpStorm/template                          |  2 --
 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg |  2 --
 srcpkgs/intellij-idea-ultimate-edition/template    |  9 ++++-----
 srcpkgs/jetbrains-jdk-bin/template                 |  4 ----
 srcpkgs/protonmail-bridge/template                 | 13 +++++++++++--
 srcpkgs/teamspeak3/template                        |  7 ++-----
 srcpkgs/zoom/template                              | 12 ++++++------
 9 files changed, 25 insertions(+), 29 deletions(-)
 delete mode 100644 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg

diff --git a/common/shlibs b/common/shlibs
index 4477d4c879782..311ced37789f5 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2052,6 +2052,7 @@ libQt6LabsSharedImage.so.6 qt6-declarative-6.1.0_1
 libQt6LabsWavefrontMesh.so.6 qt6-declarative-6.1.0_1
 libQt6QmlLocalStorage.so.6 qt6-declarative-6.1.0_1
 libQt6QmlWorkerScript.so.6 qt6-declarative-6.0.0_1
+libQt6QmlXmlListModel.so.6 qt6-declarative-6.5.0_1
 libQt6QuickTest.so.6 qt6-quick-test-6.4.2_1
 libQt6QuickShapes.so.6 qt6-declarative-6.0.0_1
 libQt6QuickWidgets.so.6 qt6-declarative-6.0.0_1
diff --git a/srcpkgs/CLion/template b/srcpkgs/CLion/template
index f302b7d6798e9..cc924d23fe49c 100644
--- a/srcpkgs/CLion/template
+++ b/srcpkgs/CLion/template
@@ -1,7 +1,7 @@
 # Template file for 'CLion'
 pkgname=CLion
 version=2021.3.4
-revision=1
+revision=2
 archs="x86_64 aarch64"
 depends="jetbrains-jdk-bin giflib libXtst"
 short_desc="Smart cross-platform IDE for C and C++"
@@ -13,8 +13,6 @@ checksum=f3b0b9e0dd0cd4aebef5d424e7a22868c732daad47d6c94f73630cef449ccf78
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 build_options="bundled_cmake bundled_gdb bundled_lldb"
diff --git a/srcpkgs/PhpStorm/template b/srcpkgs/PhpStorm/template
index 306a6c77d0b36..cb84a08e13636 100644
--- a/srcpkgs/PhpStorm/template
+++ b/srcpkgs/PhpStorm/template
@@ -13,8 +13,6 @@ checksum=a23922f5f93bc8df1f2aabbb0f9969e27d28f706c09d18d66d4cc2d56c52ddc9
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 post_extract() {
diff --git a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg b/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
deleted file mode 100644
index c04f6c9ab2a95..0000000000000
--- a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
+++ /dev/null
@@ -1,2 +0,0 @@
-IntelliJ Ultimate has the following optional dependencies:
-	libdbusmenu-glib: For global menu support
diff --git a/srcpkgs/intellij-idea-ultimate-edition/template b/srcpkgs/intellij-idea-ultimate-edition/template
index 92ad9135f3a97..00c1186b589f7 100644
--- a/srcpkgs/intellij-idea-ultimate-edition/template
+++ b/srcpkgs/intellij-idea-ultimate-edition/template
@@ -1,10 +1,9 @@
 # Template file for 'intellij-idea-ultimate-edition'
 pkgname=intellij-idea-ultimate-edition
 version=2021.3.3
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc="true"
-depends="giflib libXtst jetbrains-jdk-bin"
+depends="giflib libXtst jetbrains-jdk-bin lldb-devel"
 short_desc="Most intelligent Java IDE"
 maintainer="Anton Afanasyev <anton@doubleasoftware.com>"
 license="custom:Commercial"
@@ -15,9 +14,9 @@ checksum=2a3295fca08060ad515f6c7198879d09963724cfb36af3ea94f16dcd76636470
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
+# requires liblldb.so which is unversioned, pulled by lldb-devel
+skiprdeps="/usr/lib/intellij-idea-ultimate-edition/plugins/Kotlin/bin/linux/LLDBFrontend"
 
 do_extract() {
 	bsdtar xf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_filename} --strip-components=1 -C .
diff --git a/srcpkgs/jetbrains-jdk-bin/template b/srcpkgs/jetbrains-jdk-bin/template
index c275199504e8c..79534a1383f51 100644
--- a/srcpkgs/jetbrains-jdk-bin/template
+++ b/srcpkgs/jetbrains-jdk-bin/template
@@ -11,11 +11,7 @@ _jdk_ver=${version%b*}
 _jdk_build=${version#*b}
 distfiles="https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-${_jdk_ver//\./_}-linux-x64-b${_jdk_build}.tar.gz"
 checksum=192bc1c4d877a9035a08db8a4bc9ac98551fa344ec5835f08d455fab66c82fe0
-# This JDK appears to link to libs that do not exist, but functions well even in their absence.
-# Best guess is that they are optional. ¯\_(ツ)_/¯
-noverifyrdeps=yes
 nopie=yes
-noshlibprovides=yes
 
 do_install() {
 	TARGET_PATH="usr/lib/jvm/jbrsdk"
diff --git a/srcpkgs/protonmail-bridge/template b/srcpkgs/protonmail-bridge/template
index 5d1315f6063ca..ff08aee8720d7 100644
--- a/srcpkgs/protonmail-bridge/template
+++ b/srcpkgs/protonmail-bridge/template
@@ -1,7 +1,7 @@
 # Template file for 'protonmail-bridge'
 pkgname=protonmail-bridge
 version=3.3.0
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
 depends="desktop-file-utils"
@@ -13,9 +13,18 @@ distfiles="https://proton.me/download/bridge/protonmail-bridge_${version}-1_amd6
 checksum=4541f8aa145097ee171889b0c9d058450d09dc23be10231c83d6659789a27627
 
 restricted=yes
-noverifyrdeps=yes
 nopie=yes
 
 do_install() {
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlmysql.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlodbc.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlpsql.so
+	rm -rf usr/lib/protonmail/bridge/plugins/designer
+	rm -rf usr/lib/protonmail/bridge/plugins/qmltooling
+	rm -rf usr/lib/protonmail/bridge/qml/QtTest
+	rm -rf usr/lib/protonmail/bridge/qml/Qt/labs
+	rm -rf usr/lib/protonmail/bridge/lib/cmake
+	rm -rf usr/lib/protonmail/bridge/lib/pkgconfig
+	rm -rf usr/lib/protonmail/bridge/lib/*.a
 	vcopy usr /
 }
diff --git a/srcpkgs/teamspeak3/template b/srcpkgs/teamspeak3/template
index 23ca26aeb08e9..bf0dcfd75b642 100644
--- a/srcpkgs/teamspeak3/template
+++ b/srcpkgs/teamspeak3/template
@@ -1,12 +1,10 @@
 # Template file for 'teamspeak3'
 pkgname=teamspeak3
 version=3.5.6
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc=yes
 hostmakedepends="tar"
-depends="glib bash grep freetype nss libXcomposite fontconfig glibc
- libxslt dbus-libs alsa-lib libXi libXcursor libXtst libXScrnSaver pciutils"
+depends="bash grep"
 short_desc="Popular proprietary voice chat for gaming"
 maintainer="Tai Chi Minh Ralph Eastwood <tcmreastwood@gmail.com>"
 license="custom:Proprietary"
@@ -15,7 +13,6 @@ restricted=yes
 repository="nonfree"
 nopie=yes
 nostrip=yes
-noverifyrdeps=yes
 
 if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 	_pkg="TeamSpeak3-Client-linux_amd64-${version}"
diff --git a/srcpkgs/zoom/template b/srcpkgs/zoom/template
index 7b026f182ae7d..db3e3288bc05c 100644
--- a/srcpkgs/zoom/template
+++ b/srcpkgs/zoom/template
@@ -1,13 +1,10 @@
 # Template file for 'zoom'
 pkgname=zoom
 version=5.15.3.4839
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
-depends="$(vopt_if systemqt 'qt5 qt5-graphicaleffects qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-svg qt5-script qt5-declarative')
- xcb-util-image xcb-util-keysyms glib libXfixes libXtst libgbm libglvnd
- nss atk at-spi2-atk libXcomposite libXdamage libXrandr libxkbcommon pango
- alsa-lib libcups libxshmfence pulseaudio-utils"
+depends="libglvnd pulseaudio-utils"
 short_desc="Video Conferencing and Web Conferencing Service"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:Proprietary"
@@ -16,13 +13,16 @@ distfiles="https://cdn.zoom.us/prod/${version}/zoom_x86_64.rpm"
 checksum=3dc36195400744ceacd025009e88549f7a8481a6964ef3276a4f753764e51ac6
 repository=nonfree
 noshlibprovides=yes
-noverifyrdeps=yes
 restricted=yes
 nopie=yes
 build_options="systemqt"
 desc_option_systemqt="Use system QT libraries"
 
 pre_install() {
+	# rm -rf opt/zoom/Qt/qml/QtQml/RemoteObjects
+	# rm -rf opt/zoom/Qt/qml/Qt/labs
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene2D
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene3D
 	if [ "${build_option_systemqt}" ]; then
 		rm -f opt/zoom/libQt5*.so{,.*}
 		rm -f opt/zoom/libicu*.so{,.*}

From 8d40f5ae6b015e7ef36e596fdab2cd0a98ec758c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 11:04:58 +0700
Subject: [PATCH 8/8] common/shlibs: clean up

---
 common/shlibs | 49 -------------------------------------------------
 1 file changed, 49 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index 311ced37789f5..f6a8230e3fc4b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -131,13 +131,6 @@ libGL.so.1 libGL-7.11_1
 libEGL.so.1 libEGL-7.11_1
 libGLESv1_CM.so.1 libGLES-1.0_1
 libGLESv2.so.2 libGLES-1.0_1
-libEGL.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so opera-55.0.2994.37_2
-libGLESv2.so discord-0.0.7_1
-libGLESv2.so keybase-desktop-3.1.2_1
-libGLESv2.so Signal-Desktop-1.23.2_1
-libGLESv2.so slack-desktop-3.4.2_1
 libbrcmEGL.so rpi-userland-20180103_2
 libbrcmGLESv2.so rpi-userland-20180103_2
 libbrcmOpenVG.so rpi-userland-20180103_2
@@ -1141,7 +1134,6 @@ libgstpbutils-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstriff-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstapp-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstallocators-1.0.so.0 gst-plugins-base1-1.1.1_1
-libgsttranscoder-1.0.so.0 gst-plugins-bad1-1.22.1_1
 libgstphotography-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstsignalprocessor-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstbasevideo-1.0.so.0 gst-plugins-bad1-1.18.3_2
@@ -1844,30 +1836,6 @@ libawt_xawt.so openjdk11-jre-11.0.5+10_1
 libjava.so openjdk11-jre-11.0.5+10_1
 libjli.so openjdk11-jre-11.0.5+10_1
 libjvm.so openjdk11-jre-11.0.5+10_1
-libjawt.so openjdk7-bootstrap-7u221b02_1
-libawt.so openjdk7-bootstrap-7u221b02_1
-libawt_xawt.so openjdk7-bootstrap-7u221b02_1
-libjava.so openjdk7-bootstrap-7u221b02_1
-libjli.so openjdk7-bootstrap-7u221b02_1
-libjvm.so openjdk7-bootstrap-7u221b02_1
-libjawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt_xawt.so openjdk9-bootstrap-9.0.4p12_1
-libjava.so openjdk9-bootstrap-9.0.4p12_1
-libjli.so openjdk9-bootstrap-9.0.4p12_1
-libjvm.so openjdk9-bootstrap-9.0.4p12_1
-libjawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt_xawt.so openjdk10-bootstrap-10.0.2p13_1
-libjava.so openjdk10-bootstrap-10.0.2p13_1
-libjli.so openjdk10-bootstrap-10.0.2p13_1
-libjvm.so openjdk10-bootstrap-10.0.2p13_1
-libjawt.so mandrel-21.1.0.0_1
-libawt.so mandrel-21.1.0.0_1
-libawt_xawt.so mandrel-21.1.0.0_1
-libjava.so mandrel-21.1.0.0_1
-libjli.so mandrel-21.1.0.0_1
-libjvm.so mandrel-21.1.0.0_1
 libucl.so.5 libucl-0.8.1_6
 libhandle.so.1 xfsprogs-3.2.1_1
 libnfnetlink.so.0 libnfnetlink-1.0.1_1
@@ -2642,16 +2610,10 @@ libglyphy.so.0 glyphy-0.0.20160104_1
 libSwiften.so.0 swiften-4.0.3_2
 libfreehand-0.1.so.1 libfreehand-0.1.1_1
 libe-book-0.1.so.1 libe-book-0.1.2_1
-libOsi.so.1 CoinMP-1.8.3_1
-libClp.so.1 CoinMP-1.8.3_1
 libCoinMP.so.1 CoinMP-1.8.3_1
 libOsiCbc.so.3 CoinMP-1.8.3_1
-libCoinUtils.so.3 CoinMP-1.8.3_1
-libClpSolver.so.1 CoinMP-1.8.3_1
 libCgl.so.1 CoinMP-1.8.3_1
-libOsiClp.so.1 CoinMP-1.8.3_1
 libCbc.so.3 CoinMP-1.8.3_1
-libOsiCommonTests.so.1 CoinMP-1.8.3_1
 libCbcSolver.so.3 CoinMP-1.8.3_1
 libmwaw-0.3.so.3 libmwaw-0.3.7_1
 libixion-0.17.so.0 libixion-0.17.0_1
@@ -2675,10 +2637,6 @@ leatherman_curl.so.1.12.4 leatherman-1.12.4_1
 leatherman_dynamic_library.so.1.12.4 leatherman-1.12.4_1
 leatherman_execution.so.1.12.4 leatherman-1.12.4_1
 leatherman_ruby.so.1.12.4 leatherman-1.12.4_1
-libUTF.so opencollada-0.0.20160223_1
-libbuffer.so opencollada-0.0.20160223_1
-libftoa.so opencollada-0.0.20160223_1
-libzlib.so opencollada-1.6.51_1
 libfbclient.so.2 libfbclient3-3.0.4.33054_1
 libipmiutil.so.1 ipmiutil-3.1.3_4
 libqxmpp.so.3 qxmpp-1.2.0_1
@@ -3646,12 +3604,6 @@ libTECkit.so.0 libteckit-2.5.8_1
 libTECkit_Compiler.so.0 libteckit-2.5.8_1
 libwf-config.so.1 wf-config-0.5.0_1
 libQt5Pas.so.1 qt5pas-2.6~beta_1
-libClp.so.1 libClp-1.16.11_1
-libCoinUtils.so.3 libClp-1.16.11_1
-libOsiClp.so.1 libClp-1.16.11_1
-libClpSolver.so.1 libClp-1.16.11_1
-libOsiCommonTests.so.1 libClp-1.16.11_1
-libOsi.so.1 libClp-1.16.11_1
 libOGDF.so libogdf-2018.03_1
 libCOIN.so libogdf-2018.03_1
 librocksdb.so.7 rocksdb-7.4.5_1
@@ -4189,7 +4141,6 @@ libThread.so root-6.24.06_1
 libTMVA.so root-6.24.06_1
 libMathCore.so root-6.24.06_1
 libCore.so root-6.24.06_1
-libCore.so qtcreator-7.0.2_1
 liblowdown.so.3 lowdown-1.0.2_1
 libjaylink.so.0 libjaylink-0.2.0_1
 libnvidia-container.so.1 libnvidia-container-1.10.0_1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
                   ` (5 preceding siblings ...)
  2023-08-17 11:34 ` sgn
@ 2023-08-29  6:18 ` sgn
  2023-08-29 15:17 ` sgn
  2023-08-30  6:24 ` [PR PATCH] [Merged]: " sgn
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-29  6:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1727 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 37549 bytes --]

From 61c2340a10cc5e2560d85d09a99510dd6ba847f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 13:44:43 +0700
Subject: [PATCH 1/7] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From e629788f6a06c3ebe549330d8083072c756085a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 2/7] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 30 +++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..ad1c31c72db05 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,30 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
+			if [ -n "$noshlibprovides" ]; then
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
+				continue
+			fi
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +38,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +52,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -45,12 +67,8 @@ collect_sonames() {
 hook() {
 	local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
 
-	if [ -n "$noshlibprovides" ]; then
-		return 0
-	fi
-
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From d06e239173ddbbe8ec4e7eaa7ebda142e2555719 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 13:19:01 +0700
Subject: [PATCH 3/7] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..e2020ce05f79f 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From 310762887a1c3175ac73f7b099ae972e89c558f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 09:35:21 +0700
Subject: [PATCH 4/7] mercury: verify runtime deps

---
 srcpkgs/mercury/template | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/srcpkgs/mercury/template b/srcpkgs/mercury/template
index 078da62c329ee..07ab9363960bc 100644
--- a/srcpkgs/mercury/template
+++ b/srcpkgs/mercury/template
@@ -1,9 +1,8 @@
 # Template file for 'mercury'
 pkgname=mercury
 version=22.01.3
-revision=1
+revision=2
 hostmakedepends="flex bison gettext texinfo"
-depends="mercury-libs>=${version}_${revision}"
 short_desc="Logic/Functional Programming Language"
 maintainer="Emily McDonough <emily@alaskanemily.net>"
 license="GPL-2.0-only, custom:LGPL-2.0-only-linking-exception"
@@ -11,7 +10,6 @@ homepage="https://mercurylang.org/"
 distfiles="https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.xz"
 checksum=4b0783ee9205021e4193b0404fd654e9c6fd288bc9bb7e144b1c1f6cd45dcd2e
 nocross="Mercury cannot be cross-compiled to different architectures"
-noverifyrdeps=yes
 
 CFLAGS="-Wno-array-bounds -fno-tree-slp-vectorize"
 

From 07c183a647a48e43ea586f02de6e8361b81e3823 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:05:45 +0700
Subject: [PATCH 5/7] (restricted): verify runtime deps

---
 common/shlibs                                      |  1 +
 srcpkgs/CLion/template                             |  4 +---
 srcpkgs/PhpStorm/template                          |  2 --
 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg |  2 --
 srcpkgs/intellij-idea-ultimate-edition/template    |  9 ++++-----
 srcpkgs/jetbrains-jdk-bin/template                 |  4 ----
 srcpkgs/protonmail-bridge/template                 | 13 +++++++++++--
 srcpkgs/teamspeak3/template                        |  7 ++-----
 srcpkgs/zoom/template                              | 12 ++++++------
 9 files changed, 25 insertions(+), 29 deletions(-)
 delete mode 100644 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg

diff --git a/common/shlibs b/common/shlibs
index 82107af453333..fafbe7af4d97d 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2052,6 +2052,7 @@ libQt6LabsSharedImage.so.6 qt6-declarative-6.1.0_1
 libQt6LabsWavefrontMesh.so.6 qt6-declarative-6.1.0_1
 libQt6QmlLocalStorage.so.6 qt6-declarative-6.1.0_1
 libQt6QmlWorkerScript.so.6 qt6-declarative-6.0.0_1
+libQt6QmlXmlListModel.so.6 qt6-declarative-6.5.0_1
 libQt6QuickTest.so.6 qt6-quick-test-6.4.2_1
 libQt6QuickShapes.so.6 qt6-declarative-6.0.0_1
 libQt6QuickWidgets.so.6 qt6-declarative-6.0.0_1
diff --git a/srcpkgs/CLion/template b/srcpkgs/CLion/template
index f302b7d6798e9..cc924d23fe49c 100644
--- a/srcpkgs/CLion/template
+++ b/srcpkgs/CLion/template
@@ -1,7 +1,7 @@
 # Template file for 'CLion'
 pkgname=CLion
 version=2021.3.4
-revision=1
+revision=2
 archs="x86_64 aarch64"
 depends="jetbrains-jdk-bin giflib libXtst"
 short_desc="Smart cross-platform IDE for C and C++"
@@ -13,8 +13,6 @@ checksum=f3b0b9e0dd0cd4aebef5d424e7a22868c732daad47d6c94f73630cef449ccf78
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 build_options="bundled_cmake bundled_gdb bundled_lldb"
diff --git a/srcpkgs/PhpStorm/template b/srcpkgs/PhpStorm/template
index 306a6c77d0b36..cb84a08e13636 100644
--- a/srcpkgs/PhpStorm/template
+++ b/srcpkgs/PhpStorm/template
@@ -13,8 +13,6 @@ checksum=a23922f5f93bc8df1f2aabbb0f9969e27d28f706c09d18d66d4cc2d56c52ddc9
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 post_extract() {
diff --git a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg b/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
deleted file mode 100644
index c04f6c9ab2a95..0000000000000
--- a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
+++ /dev/null
@@ -1,2 +0,0 @@
-IntelliJ Ultimate has the following optional dependencies:
-	libdbusmenu-glib: For global menu support
diff --git a/srcpkgs/intellij-idea-ultimate-edition/template b/srcpkgs/intellij-idea-ultimate-edition/template
index 92ad9135f3a97..00c1186b589f7 100644
--- a/srcpkgs/intellij-idea-ultimate-edition/template
+++ b/srcpkgs/intellij-idea-ultimate-edition/template
@@ -1,10 +1,9 @@
 # Template file for 'intellij-idea-ultimate-edition'
 pkgname=intellij-idea-ultimate-edition
 version=2021.3.3
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc="true"
-depends="giflib libXtst jetbrains-jdk-bin"
+depends="giflib libXtst jetbrains-jdk-bin lldb-devel"
 short_desc="Most intelligent Java IDE"
 maintainer="Anton Afanasyev <anton@doubleasoftware.com>"
 license="custom:Commercial"
@@ -15,9 +14,9 @@ checksum=2a3295fca08060ad515f6c7198879d09963724cfb36af3ea94f16dcd76636470
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
+# requires liblldb.so which is unversioned, pulled by lldb-devel
+skiprdeps="/usr/lib/intellij-idea-ultimate-edition/plugins/Kotlin/bin/linux/LLDBFrontend"
 
 do_extract() {
 	bsdtar xf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_filename} --strip-components=1 -C .
diff --git a/srcpkgs/jetbrains-jdk-bin/template b/srcpkgs/jetbrains-jdk-bin/template
index c275199504e8c..79534a1383f51 100644
--- a/srcpkgs/jetbrains-jdk-bin/template
+++ b/srcpkgs/jetbrains-jdk-bin/template
@@ -11,11 +11,7 @@ _jdk_ver=${version%b*}
 _jdk_build=${version#*b}
 distfiles="https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-${_jdk_ver//\./_}-linux-x64-b${_jdk_build}.tar.gz"
 checksum=192bc1c4d877a9035a08db8a4bc9ac98551fa344ec5835f08d455fab66c82fe0
-# This JDK appears to link to libs that do not exist, but functions well even in their absence.
-# Best guess is that they are optional. ¯\_(ツ)_/¯
-noverifyrdeps=yes
 nopie=yes
-noshlibprovides=yes
 
 do_install() {
 	TARGET_PATH="usr/lib/jvm/jbrsdk"
diff --git a/srcpkgs/protonmail-bridge/template b/srcpkgs/protonmail-bridge/template
index 5d1315f6063ca..ff08aee8720d7 100644
--- a/srcpkgs/protonmail-bridge/template
+++ b/srcpkgs/protonmail-bridge/template
@@ -1,7 +1,7 @@
 # Template file for 'protonmail-bridge'
 pkgname=protonmail-bridge
 version=3.3.0
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
 depends="desktop-file-utils"
@@ -13,9 +13,18 @@ distfiles="https://proton.me/download/bridge/protonmail-bridge_${version}-1_amd6
 checksum=4541f8aa145097ee171889b0c9d058450d09dc23be10231c83d6659789a27627
 
 restricted=yes
-noverifyrdeps=yes
 nopie=yes
 
 do_install() {
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlmysql.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlodbc.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlpsql.so
+	rm -rf usr/lib/protonmail/bridge/plugins/designer
+	rm -rf usr/lib/protonmail/bridge/plugins/qmltooling
+	rm -rf usr/lib/protonmail/bridge/qml/QtTest
+	rm -rf usr/lib/protonmail/bridge/qml/Qt/labs
+	rm -rf usr/lib/protonmail/bridge/lib/cmake
+	rm -rf usr/lib/protonmail/bridge/lib/pkgconfig
+	rm -rf usr/lib/protonmail/bridge/lib/*.a
 	vcopy usr /
 }
diff --git a/srcpkgs/teamspeak3/template b/srcpkgs/teamspeak3/template
index 23ca26aeb08e9..bf0dcfd75b642 100644
--- a/srcpkgs/teamspeak3/template
+++ b/srcpkgs/teamspeak3/template
@@ -1,12 +1,10 @@
 # Template file for 'teamspeak3'
 pkgname=teamspeak3
 version=3.5.6
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc=yes
 hostmakedepends="tar"
-depends="glib bash grep freetype nss libXcomposite fontconfig glibc
- libxslt dbus-libs alsa-lib libXi libXcursor libXtst libXScrnSaver pciutils"
+depends="bash grep"
 short_desc="Popular proprietary voice chat for gaming"
 maintainer="Tai Chi Minh Ralph Eastwood <tcmreastwood@gmail.com>"
 license="custom:Proprietary"
@@ -15,7 +13,6 @@ restricted=yes
 repository="nonfree"
 nopie=yes
 nostrip=yes
-noverifyrdeps=yes
 
 if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 	_pkg="TeamSpeak3-Client-linux_amd64-${version}"
diff --git a/srcpkgs/zoom/template b/srcpkgs/zoom/template
index 7b026f182ae7d..db3e3288bc05c 100644
--- a/srcpkgs/zoom/template
+++ b/srcpkgs/zoom/template
@@ -1,13 +1,10 @@
 # Template file for 'zoom'
 pkgname=zoom
 version=5.15.3.4839
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
-depends="$(vopt_if systemqt 'qt5 qt5-graphicaleffects qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-svg qt5-script qt5-declarative')
- xcb-util-image xcb-util-keysyms glib libXfixes libXtst libgbm libglvnd
- nss atk at-spi2-atk libXcomposite libXdamage libXrandr libxkbcommon pango
- alsa-lib libcups libxshmfence pulseaudio-utils"
+depends="libglvnd pulseaudio-utils"
 short_desc="Video Conferencing and Web Conferencing Service"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:Proprietary"
@@ -16,13 +13,16 @@ distfiles="https://cdn.zoom.us/prod/${version}/zoom_x86_64.rpm"
 checksum=3dc36195400744ceacd025009e88549f7a8481a6964ef3276a4f753764e51ac6
 repository=nonfree
 noshlibprovides=yes
-noverifyrdeps=yes
 restricted=yes
 nopie=yes
 build_options="systemqt"
 desc_option_systemqt="Use system QT libraries"
 
 pre_install() {
+	# rm -rf opt/zoom/Qt/qml/QtQml/RemoteObjects
+	# rm -rf opt/zoom/Qt/qml/Qt/labs
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene2D
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene3D
 	if [ "${build_option_systemqt}" ]; then
 		rm -f opt/zoom/libQt5*.so{,.*}
 		rm -f opt/zoom/libicu*.so{,.*}

From 80eb693de76d5d3aacc81a7072697d5e9c815dc2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 11:04:58 +0700
Subject: [PATCH 6/7] common/shlibs: clean up

---
 common/shlibs | 49 -------------------------------------------------
 1 file changed, 49 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index fafbe7af4d97d..616785bdb4778 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -131,13 +131,6 @@ libGL.so.1 libGL-7.11_1
 libEGL.so.1 libEGL-7.11_1
 libGLESv1_CM.so.1 libGLES-1.0_1
 libGLESv2.so.2 libGLES-1.0_1
-libEGL.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so opera-55.0.2994.37_2
-libGLESv2.so discord-0.0.7_1
-libGLESv2.so keybase-desktop-3.1.2_1
-libGLESv2.so Signal-Desktop-1.23.2_1
-libGLESv2.so slack-desktop-3.4.2_1
 libbrcmEGL.so rpi-userland-20180103_2
 libbrcmGLESv2.so rpi-userland-20180103_2
 libbrcmOpenVG.so rpi-userland-20180103_2
@@ -1141,7 +1134,6 @@ libgstpbutils-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstriff-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstapp-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstallocators-1.0.so.0 gst-plugins-base1-1.1.1_1
-libgsttranscoder-1.0.so.0 gst-plugins-bad1-1.22.1_1
 libgstphotography-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstsignalprocessor-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstbasevideo-1.0.so.0 gst-plugins-bad1-1.18.3_2
@@ -1844,30 +1836,6 @@ libawt_xawt.so openjdk11-jre-11.0.5+10_1
 libjava.so openjdk11-jre-11.0.5+10_1
 libjli.so openjdk11-jre-11.0.5+10_1
 libjvm.so openjdk11-jre-11.0.5+10_1
-libjawt.so openjdk7-bootstrap-7u221b02_1
-libawt.so openjdk7-bootstrap-7u221b02_1
-libawt_xawt.so openjdk7-bootstrap-7u221b02_1
-libjava.so openjdk7-bootstrap-7u221b02_1
-libjli.so openjdk7-bootstrap-7u221b02_1
-libjvm.so openjdk7-bootstrap-7u221b02_1
-libjawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt_xawt.so openjdk9-bootstrap-9.0.4p12_1
-libjava.so openjdk9-bootstrap-9.0.4p12_1
-libjli.so openjdk9-bootstrap-9.0.4p12_1
-libjvm.so openjdk9-bootstrap-9.0.4p12_1
-libjawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt_xawt.so openjdk10-bootstrap-10.0.2p13_1
-libjava.so openjdk10-bootstrap-10.0.2p13_1
-libjli.so openjdk10-bootstrap-10.0.2p13_1
-libjvm.so openjdk10-bootstrap-10.0.2p13_1
-libjawt.so mandrel-21.1.0.0_1
-libawt.so mandrel-21.1.0.0_1
-libawt_xawt.so mandrel-21.1.0.0_1
-libjava.so mandrel-21.1.0.0_1
-libjli.so mandrel-21.1.0.0_1
-libjvm.so mandrel-21.1.0.0_1
 libucl.so.5 libucl-0.8.1_6
 libhandle.so.1 xfsprogs-3.2.1_1
 libnfnetlink.so.0 libnfnetlink-1.0.1_1
@@ -2642,16 +2610,10 @@ libglyphy.so.0 glyphy-0.0.20160104_1
 libSwiften.so.0 swiften-4.0.3_2
 libfreehand-0.1.so.1 libfreehand-0.1.1_1
 libe-book-0.1.so.1 libe-book-0.1.2_1
-libOsi.so.1 CoinMP-1.8.3_1
-libClp.so.1 CoinMP-1.8.3_1
 libCoinMP.so.1 CoinMP-1.8.3_1
 libOsiCbc.so.3 CoinMP-1.8.3_1
-libCoinUtils.so.3 CoinMP-1.8.3_1
-libClpSolver.so.1 CoinMP-1.8.3_1
 libCgl.so.1 CoinMP-1.8.3_1
-libOsiClp.so.1 CoinMP-1.8.3_1
 libCbc.so.3 CoinMP-1.8.3_1
-libOsiCommonTests.so.1 CoinMP-1.8.3_1
 libCbcSolver.so.3 CoinMP-1.8.3_1
 libmwaw-0.3.so.3 libmwaw-0.3.7_1
 libixion-0.18.so.0 libixion-0.18.1_1
@@ -2675,10 +2637,6 @@ leatherman_curl.so.1.12.4 leatherman-1.12.4_1
 leatherman_dynamic_library.so.1.12.4 leatherman-1.12.4_1
 leatherman_execution.so.1.12.4 leatherman-1.12.4_1
 leatherman_ruby.so.1.12.4 leatherman-1.12.4_1
-libUTF.so opencollada-0.0.20160223_1
-libbuffer.so opencollada-0.0.20160223_1
-libftoa.so opencollada-0.0.20160223_1
-libzlib.so opencollada-1.6.51_1
 libfbclient.so.2 libfbclient3-3.0.4.33054_1
 libipmiutil.so.1 ipmiutil-3.1.3_4
 libqxmpp.so.3 qxmpp-1.2.0_1
@@ -3646,12 +3604,6 @@ libTECkit.so.0 libteckit-2.5.8_1
 libTECkit_Compiler.so.0 libteckit-2.5.8_1
 libwf-config.so.1 wf-config-0.5.0_1
 libQt5Pas.so.1 qt5pas-2.6~beta_1
-libClp.so.1 libClp-1.16.11_1
-libCoinUtils.so.3 libClp-1.16.11_1
-libOsiClp.so.1 libClp-1.16.11_1
-libClpSolver.so.1 libClp-1.16.11_1
-libOsiCommonTests.so.1 libClp-1.16.11_1
-libOsi.so.1 libClp-1.16.11_1
 libOGDF.so libogdf-2018.03_1
 libCOIN.so libogdf-2018.03_1
 librocksdb.so.7 rocksdb-7.4.5_1
@@ -4189,7 +4141,6 @@ libThread.so root-6.24.06_1
 libTMVA.so root-6.24.06_1
 libMathCore.so root-6.24.06_1
 libCore.so root-6.24.06_1
-libCore.so qtcreator-7.0.2_1
 liblowdown.so.3 lowdown-1.0.2_1
 libjaylink.so.0 libjaylink-0.2.0_1
 libnvidia-container.so.1 libnvidia-container-1.10.0_1

From e25e50326653db5c962d82bab126cff06c2cbc7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:50:06 +0700
Subject: [PATCH 7/7] libreoffice: update to 7.6.0.3.

---
 srcpkgs/libreoffice-epub                      |  1 -
 .../libreoffice/files/skia-no-execinfo.patch  | 25 ---------
 .../patches/build-option-java.patch           | 19 +++++++
 srcpkgs/libreoffice/patches/musl-java.patch   | 16 +++---
 .../patches/musl-no-execinfo.patch            | 10 ----
 srcpkgs/libreoffice/template                  | 52 ++++++-------------
 6 files changed, 44 insertions(+), 79 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub
 delete mode 100644 srcpkgs/libreoffice/files/skia-no-execinfo.patch
 create mode 100644 srcpkgs/libreoffice/patches/build-option-java.patch
 delete mode 100644 srcpkgs/libreoffice/patches/musl-no-execinfo.patch

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/files/skia-no-execinfo.patch b/srcpkgs/libreoffice/files/skia-no-execinfo.patch
deleted file mode 100644
index 4495e8ab060ce..0000000000000
--- a/srcpkgs/libreoffice/files/skia-no-execinfo.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/tools/gpu/vk/VkTestUtils.cpp
-+++ b/tools/gpu/vk/VkTestUtils.cpp
-@@ -26,7 +26,9 @@
- #include <algorithm>
- 
- #if defined(SK_BUILD_FOR_UNIX)
--#include <execinfo.h>
-+  #if !defined(__linux__) || defined(__GLIBC__)
-+    #include <execinfo.h>
-+  #endif
- #endif
- #include "include/gpu/vk/GrVkBackendContext.h"
- #include "include/gpu/vk/GrVkExtensions.h"
-@@ -104,9 +106,11 @@ static int should_include_debug_layer(co
- 
- static void print_backtrace() {
- #if defined(SK_BUILD_FOR_UNIX)
-+  #if !defined(__linux__) || defined(__GLIBC__)
-     void* stack[64];
-     int count = backtrace(stack, SK_ARRAY_COUNT(stack));
-     backtrace_symbols_fd(stack, count, 2);
-+  #endif
- #else
-     // Please add implementations for other platforms.
- #endif
diff --git a/srcpkgs/libreoffice/patches/build-option-java.patch b/srcpkgs/libreoffice/patches/build-option-java.patch
new file mode 100644
index 0000000000000..217d54c12fa51
--- /dev/null
+++ b/srcpkgs/libreoffice/patches/build-option-java.patch
@@ -0,0 +1,19 @@
+diff -Naur libreoffice-7.6.0.3.orig/cui/source/options/optjava.cxx libreoffice-7.6.0.3/cui/source/options/optjava.cxx
+--- libreoffice-7.6.0.3.orig/cui/source/options/optjava.cxx	2023-08-08 15:49:18.000000000 -0400
++++ libreoffice-7.6.0.3/cui/source/options/optjava.cxx	2023-08-21 12:38:20.652657824 -0400
+@@ -937,6 +937,7 @@
+ 
+ void SvxJavaClassPathDlg::SetClassPath( const OUString& _rPath )
+ {
++#if HAVE_FEATURE_JAVA
+     if ( m_sOldPath.isEmpty() )
+         m_sOldPath = _rPath;
+     m_xPathList->clear();
+@@ -962,6 +963,7 @@
+         m_xPathList->select(0);
+     }
+     SelectHdl_Impl(*m_xPathList);
++#endif
+ }
+ 
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/srcpkgs/libreoffice/patches/musl-java.patch b/srcpkgs/libreoffice/patches/musl-java.patch
index f5205f3cb48ee..a5c62c296ff68 100644
--- a/srcpkgs/libreoffice/patches/musl-java.patch
+++ b/srcpkgs/libreoffice/patches/musl-java.patch
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -8910,7 +8910,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
+@@ -8909,7 +8909,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
          ;;
  
@@ -9,18 +9,18 @@
          JAVAINC="-I$JAVA_HOME/include"
          JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
-@@ -14646,7 +14646,7 @@ else
+@@ -14744,7 +14744,7 @@ else
  
      case "$host_os" in
  
--    aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
-+    aix*|dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
+-    dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
++    dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
          if test "$ENABLE_JAVA" != ""; then
              pathmunge "$JAVA_HOME/bin" "after"
          fi
 --- a/configure
 +++ b/configure
-@@ -22754,7 +22754,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
+@@ -22737,7 +22737,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
          ;;
  
@@ -29,12 +29,12 @@
          JAVAINC="-I$JAVA_HOME/include"
          JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
-@@ -46454,7 +46454,7 @@ else
+@@ -46802,7 +46802,7 @@ else
  
      case "$host_os" in
  
--    aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
-+    aix*|dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
+-    dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
++    dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
          if test "$ENABLE_JAVA" != ""; then
              pathmunge "$JAVA_HOME/bin" "after"
          fi
diff --git a/srcpkgs/libreoffice/patches/musl-no-execinfo.patch b/srcpkgs/libreoffice/patches/musl-no-execinfo.patch
deleted file mode 100644
index a430c5d153664..0000000000000
--- a/srcpkgs/libreoffice/patches/musl-no-execinfo.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/external/skia/UnpackedTarball_skia.mk
-+++ b/external/skia/UnpackedTarball_skia.mk
-@@ -41,6 +41,7 @@ skia_patches := \
-     constexpr-template.patch.0 \
-     missing-include.patch.0 \
-     tdf147342.patch.0 \
-+    skia-no-execinfo.patch.1 \
- 
- $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
- 
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..6dbe8c8730943 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -1,18 +1,18 @@
 # Template file for 'libreoffice'
 pkgname=libreoffice
-version=7.5.5.2
-revision=2
+version=7.6.0.3
+revision=1
 build_style=meta
 make_build_target="build"
 hostmakedepends="automake flex gperf hyphen icu libtool openldap which gettext xz
  perl-Archive-Zip pkg-config qt5-qmake sane unzip zip python3-setuptools
- fontforge python3-lxml qt6-base-devel gtk4-devel gobject-introspection gnupg"
+ fontforge python3-lxml qt6-base gtk4-devel gobject-introspection gnupg"
 makedepends="CoinMP-devel apr-devel avahi-libs-devel clucene-devel
  frameworkintegration-devel glyphy-devel gpgmepp-devel gst-plugins-base1-devel
  gtk+3-devel gtk4-devel hunspell-devel hyphen-devel libXt-devel libabw-devel glm
  libatomic_ops-devel libbluetooth-devel libcdr-devel libe-book-devel
  libepubgen-devel libetonyek-devel libexttextcat-devel libfbclient3-devel
- libfreehand-devel boost-devel zlib-devel bzip2-devel libxslt-devel
+ libfreehand-devel boost-devel zlib-devel bzip2-devel libxslt-devel frozen
  libgcrypt-devel libgltf-devel libldap-devel libmariadbclient-devel libmspub-devel
  libmwaw-devel libnumbertext-devel libodfgen-devel libopenjpeg2-devel liborcus-devel
  libpagemaker-devel libqxp-devel librsvg-devel libvisio-devel libwpg-devel
@@ -90,13 +90,14 @@ distfiles="
  ${_addurl}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
  ${_addurl}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
  ${_addurl}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- ${_addurl}/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
+ ${_addurl}/skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz
+ ${_addurl}/frozen-1.1.1.tar.gz
  ${_addurl}/dragonbox-1.1.3.tar.gz
 "
-checksum="6628dfd2a21041a7c5bb6d72733e0fd52efa7959c95084fcd4d96cc4a61b0561
- 33c023d3e5abe5649350ae1242fcd5d6c069066f283db967b6aab35aa4857504
- 1de834979bf25c3c6f368362dd20c95d0bee514a42eee903a32188d40488aa62
- 24b5c791a17128361b5f3c8538348002a714d0ba2aab37e3bf10e16b7ac049b7
+checksum="07f33f11a75b72a3044749d4f2f7d02a0fd79eaed4fb73e618ec5fe3576d0c25
+ b932cdd6bd2ee717f3a09766c88fe90100b0c2c0509313c3ee297f95c084ee2e
+ 210f18ff60e93d366856d84e714d3fd6f184f399b5163afc92b7e11155cbe768
+ 667e4ffeacc01bd0f830c2edcc56e2328f924eeac224639babeb3841a44ec5f4
  1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753
  75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870
  7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66
@@ -123,7 +124,8 @@ checksum="6628dfd2a21041a7c5bb6d72733e0fd52efa7959c95084fcd4d96cc4a61b0561
  abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095
  05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343
  085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045
- c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9
+ 0d08a99ed46cde43b5ad2672b5d8770c8eb85d0d26cb8f1f85fd9befe1e9ceb9
+ f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45
  09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384"
 skip_extraction="
  798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
@@ -152,7 +154,8 @@ skip_extraction="
  8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
  f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
  39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
+ skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz
+ frozen-1.1.1.tar.gz
  dragonbox-1.1.3.tar.gz
 "
 replaces="libreoffice-firebird<6.2.4.2_1"
@@ -488,8 +491,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +502,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +510,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +518,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +557,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +565,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +572,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +589,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +609,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +616,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +624,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
                   ` (6 preceding siblings ...)
  2023-08-29  6:18 ` sgn
@ 2023-08-29 15:17 ` sgn
  2023-08-30  6:24 ` [PR PATCH] [Merged]: " sgn
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-29 15:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1727 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages gen-rt-deps-subpkg
https://github.com/void-linux/void-packages/pull/45504

verify dependencies between subpkgs
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

A patch file from https://github.com/void-linux/void-packages/pull/45504.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gen-rt-deps-subpkg-45504.patch --]
[-- Type: text/x-diff, Size: 37549 bytes --]

From 4f624ec7079120e32b6ee915a0e2e3ab56561c4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 13:44:43 +0700
Subject: [PATCH 1/7] hooks: move prepare-32bit and shlib-provides to
 post-install

In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
---
 .../05-prepare-32bit.sh => post-install/80-prepare-32bit.sh}      | 0
 .../06-shlib-provides.sh => post-install/98-shlib-provides.sh}    | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename common/hooks/{pre-pkg/05-prepare-32bit.sh => post-install/80-prepare-32bit.sh} (100%)
 rename common/hooks/{pre-pkg/06-shlib-provides.sh => post-install/98-shlib-provides.sh} (100%)

diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/post-install/80-prepare-32bit.sh
similarity index 100%
rename from common/hooks/pre-pkg/05-prepare-32bit.sh
rename to common/hooks/post-install/80-prepare-32bit.sh
diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
similarity index 100%
rename from common/hooks/pre-pkg/06-shlib-provides.sh
rename to common/hooks/post-install/98-shlib-provides.sh

From d88267819c4af4e65989b4dd5a01ebf50459156b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 8 Aug 2023 22:08:27 +0700
Subject: [PATCH 2/7] hooks/shlib-provides: record shared libraries without
 SONAME

In a later change, we would like to generate runtime-deps between
sub-packages.

In order to do that, we can add everything into etc/shlibs or we can
look into other subpackages directly.  The former is cumbersome if such
package has lot of shared-objects.  The latter requires traversing and
checking a lot of files.  Furtunately, we can speed up the latter one by
storing all shared-objects' information in a centralised place.
---
 .../hooks/post-install/98-shlib-provides.sh   | 30 +++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/common/hooks/post-install/98-shlib-provides.sh b/common/hooks/post-install/98-shlib-provides.sh
index a09eb6f5c3b33..ad1c31c72db05 100644
--- a/common/hooks/post-install/98-shlib-provides.sh
+++ b/common/hooks/post-install/98-shlib-provides.sh
@@ -6,19 +6,30 @@ collect_sonames() {
 	local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
 	local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
 	local _tmpfile=$(mktemp) || exit 1
+	local _mainpkg="$2"
+	local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
+	local _no_soname=$(mktemp) || exit 1
 
+	mkdir -p "${_shlib_dir}" || exit 1
 	if [ ! -d ${_destdir} ]; then
 		rm -f ${_tmpfile}
+		rm -f ${_no_soname}
 		return 0
 	fi
 
+
 	# real pkg
 	find ${_destdir} -type f -name "*.so*" | while read f; do
 		_fname="${f##*/}"
 		case "$(file -bi "$f")" in
 		application/x-sharedlib*|application/x-pie-executable*)
 			# shared library
-			_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
+			_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}')
+			if [ -n "$noshlibprovides" ]; then
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
+				continue
+			fi
 			# Register all versioned sonames, and
 			# unversioned sonames only when in libdir.
 			if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@@ -27,6 +38,9 @@ collect_sonames() {
 				  -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
 				echo "${_soname}" >> ${_tmpfile}
 				echo "   SONAME ${_soname} from ${f##${_destdir}}"
+			else
+				# register all shared lib for rt-deps between sub-pkg
+				echo "${_fname}" >>${_no_soname}
 			fi
 			;;
 		esac
@@ -38,6 +52,14 @@ collect_sonames() {
 	if [ -s "${_tmpfile}" ]; then
 		tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
 		echo >> ${_destdir}/shlib-provides
+		if [ "$_mainpkg" ]; then
+			cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
+		fi
+	fi
+	if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
+		mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
+	else
+		rm -f ${_no_soname}
 	fi
 	rm -f ${_tmpfile}
 }
@@ -45,12 +67,8 @@ collect_sonames() {
 hook() {
 	local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
 
-	if [ -n "$noshlibprovides" ]; then
-		return 0
-	fi
-
 	# native pkg
-	collect_sonames ${PKGDESTDIR}
+	collect_sonames ${PKGDESTDIR} yes
 	# 32bit pkg
 	collect_sonames ${_destdir32}
 }

From 8bf5136e433313e2f021c12181708ebc8f270273 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 13:19:01 +0700
Subject: [PATCH 3/7] hooks/gen-rt-deps: Look for rt-deps by subpkg first,
 common/shlibs later

---
 .../hooks/pre-pkg/04-generate-runtime-deps.sh | 80 +++++++------------
 1 file changed, 29 insertions(+), 51 deletions(-)

diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
index a291f2ccc8720..e2020ce05f79f 100644
--- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh
+++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh
@@ -47,6 +47,7 @@ store_pkgdestdir_rundeps() {
 
 hook() {
     local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
+    local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
 
     # Disable trap on ERR, xbps-uhelper cmd might return error... but not something
     # to be worried about because if there are broken shlibs this hook returns
@@ -95,65 +96,42 @@ hook() {
     # above, the mapping is done thru the common/shlibs file.
     #
     for f in ${verify_deps}; do
-        unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
-        _f=$(echo "$f"|sed -E 's|\+|\\+|g')
-        rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
-        rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
-        if [ -z "$rdep" ]; then
+        unset _rdep _pkgname _rdepver
+
+        if [ "$(find ${PKGDESTDIR} -name "$f")" ]; then
             # Ignore libs by current pkg
-            soname=$(find ${PKGDESTDIR} -name "$f")
-            if [ -z "$soname" ]; then
+            echo "   SONAME: $f <-> $pkgname (ignored)"
+            continue
+        # If this library is provided by a subpkg of sourcepkg, use that subpkg
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
+            # If that library has SONAME, add it to shlibs-requires, too.
+            _pkgname=${_pkgname%.soname}
+            _sdep="${_pkgname}-${version}_${revision}"
+            sorequires+="${f} "
+        elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
+            _pkgname=${_pkgname%.nosoname}
+            _sdep="${_pkgname}-${version}_${revision}"
+        else
+            _rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
+
+            if [ -z "$_rdep" ]; then
                 msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
                 broken_shlibs=1
-            else
-                echo "   SONAME: $f <-> $pkgname (ignored)"
-            fi
-            continue
-        elif [ "$rdepcnt" -gt 1 ]; then
-            unset j found
-            # Check if shlib is provided by multiple pkgs.
-            for j in ${rdep}; do
-                _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
-                # if there's a SONAME matching pkgname, use it.
-                for x in ${pkgname} ${subpackages}; do
-                    [[ $_pkgname == $x ]] && found=1 && break
-                done
-                [[ $found ]] && _rdep=$j && break
-            done
-            if [ -z "${_rdep}" ]; then
-                # otherwise pick up the first one.
-                for j in ${rdep}; do
-                    [ -z "${_rdep}" ] && _rdep=$j
-                done
+                continue
             fi
-        else
-            _rdep=$rdep
-        fi
-        _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
-        _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
-        if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
-            msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
-            broken_shlibs=1
-            continue
-        fi
-        # Check if pkg is a subpkg of sourcepkg; if true, ignore version
-        # in common/shlibs.
-        _sdep="${_pkgname}>=${_rdepver}"
-        for _subpkg in ${subpackages}; do
-            if [ "${_subpkg}" = "${_pkgname}" ]; then
-                _sdep="${_pkgname}-${version}_${revision}"
-                break
+            _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
+            _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
+            if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
+                msg_red_nochroot "   SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
+                broken_shlibs=1
+                continue
             fi
-        done
+            _sdep="${_pkgname}>=${_rdepver}"
 
-        if [ "${_pkgname}" != "${pkgname}" ]; then
-            echo "   SONAME: $f <-> ${_sdep}"
+            # By this point, SONAME can't be found in current pkg
             sorequires+="${f} "
-        else
-            # Ignore libs by current pkg
-            echo "   SONAME: $f <-> ${_rdep} (ignored)"
-            continue
         fi
+        echo "   SONAME: $f <-> ${_sdep}"
         add_rundep "${_sdep}"
     done
     #

From 9e0ea9f86017bfccb2000c521b13ac50d53c206c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 09:35:21 +0700
Subject: [PATCH 4/7] mercury: verify runtime deps

---
 srcpkgs/mercury/template | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/srcpkgs/mercury/template b/srcpkgs/mercury/template
index 078da62c329ee..07ab9363960bc 100644
--- a/srcpkgs/mercury/template
+++ b/srcpkgs/mercury/template
@@ -1,9 +1,8 @@
 # Template file for 'mercury'
 pkgname=mercury
 version=22.01.3
-revision=1
+revision=2
 hostmakedepends="flex bison gettext texinfo"
-depends="mercury-libs>=${version}_${revision}"
 short_desc="Logic/Functional Programming Language"
 maintainer="Emily McDonough <emily@alaskanemily.net>"
 license="GPL-2.0-only, custom:LGPL-2.0-only-linking-exception"
@@ -11,7 +10,6 @@ homepage="https://mercurylang.org/"
 distfiles="https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.xz"
 checksum=4b0783ee9205021e4193b0404fd654e9c6fd288bc9bb7e144b1c1f6cd45dcd2e
 nocross="Mercury cannot be cross-compiled to different architectures"
-noverifyrdeps=yes
 
 CFLAGS="-Wno-array-bounds -fno-tree-slp-vectorize"
 

From dd8c2391d86f12bb219c8d1ff67f3087fb4fc217 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 07:05:45 +0700
Subject: [PATCH 5/7] (restricted): verify runtime deps

---
 common/shlibs                                      |  1 +
 srcpkgs/CLion/template                             |  4 +---
 srcpkgs/PhpStorm/template                          |  2 --
 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg |  2 --
 srcpkgs/intellij-idea-ultimate-edition/template    |  9 ++++-----
 srcpkgs/jetbrains-jdk-bin/template                 |  4 ----
 srcpkgs/protonmail-bridge/template                 | 13 +++++++++++--
 srcpkgs/teamspeak3/template                        |  7 ++-----
 srcpkgs/zoom/template                              | 12 ++++++------
 9 files changed, 25 insertions(+), 29 deletions(-)
 delete mode 100644 srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg

diff --git a/common/shlibs b/common/shlibs
index 82107af453333..fafbe7af4d97d 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2052,6 +2052,7 @@ libQt6LabsSharedImage.so.6 qt6-declarative-6.1.0_1
 libQt6LabsWavefrontMesh.so.6 qt6-declarative-6.1.0_1
 libQt6QmlLocalStorage.so.6 qt6-declarative-6.1.0_1
 libQt6QmlWorkerScript.so.6 qt6-declarative-6.0.0_1
+libQt6QmlXmlListModel.so.6 qt6-declarative-6.5.0_1
 libQt6QuickTest.so.6 qt6-quick-test-6.4.2_1
 libQt6QuickShapes.so.6 qt6-declarative-6.0.0_1
 libQt6QuickWidgets.so.6 qt6-declarative-6.0.0_1
diff --git a/srcpkgs/CLion/template b/srcpkgs/CLion/template
index f302b7d6798e9..cc924d23fe49c 100644
--- a/srcpkgs/CLion/template
+++ b/srcpkgs/CLion/template
@@ -1,7 +1,7 @@
 # Template file for 'CLion'
 pkgname=CLion
 version=2021.3.4
-revision=1
+revision=2
 archs="x86_64 aarch64"
 depends="jetbrains-jdk-bin giflib libXtst"
 short_desc="Smart cross-platform IDE for C and C++"
@@ -13,8 +13,6 @@ checksum=f3b0b9e0dd0cd4aebef5d424e7a22868c732daad47d6c94f73630cef449ccf78
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 build_options="bundled_cmake bundled_gdb bundled_lldb"
diff --git a/srcpkgs/PhpStorm/template b/srcpkgs/PhpStorm/template
index 306a6c77d0b36..cb84a08e13636 100644
--- a/srcpkgs/PhpStorm/template
+++ b/srcpkgs/PhpStorm/template
@@ -13,8 +13,6 @@ checksum=a23922f5f93bc8df1f2aabbb0f9969e27d28f706c09d18d66d4cc2d56c52ddc9
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
 
 post_extract() {
diff --git a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg b/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
deleted file mode 100644
index c04f6c9ab2a95..0000000000000
--- a/srcpkgs/intellij-idea-ultimate-edition/INSTALL.msg
+++ /dev/null
@@ -1,2 +0,0 @@
-IntelliJ Ultimate has the following optional dependencies:
-	libdbusmenu-glib: For global menu support
diff --git a/srcpkgs/intellij-idea-ultimate-edition/template b/srcpkgs/intellij-idea-ultimate-edition/template
index 92ad9135f3a97..00c1186b589f7 100644
--- a/srcpkgs/intellij-idea-ultimate-edition/template
+++ b/srcpkgs/intellij-idea-ultimate-edition/template
@@ -1,10 +1,9 @@
 # Template file for 'intellij-idea-ultimate-edition'
 pkgname=intellij-idea-ultimate-edition
 version=2021.3.3
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc="true"
-depends="giflib libXtst jetbrains-jdk-bin"
+depends="giflib libXtst jetbrains-jdk-bin lldb-devel"
 short_desc="Most intelligent Java IDE"
 maintainer="Anton Afanasyev <anton@doubleasoftware.com>"
 license="custom:Commercial"
@@ -15,9 +14,9 @@ checksum=2a3295fca08060ad515f6c7198879d09963724cfb36af3ea94f16dcd76636470
 repository=nonfree
 restricted=yes
 nopie=yes
-# JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs.
-noverifyrdeps=yes
 python_version=3
+# requires liblldb.so which is unversioned, pulled by lldb-devel
+skiprdeps="/usr/lib/intellij-idea-ultimate-edition/plugins/Kotlin/bin/linux/LLDBFrontend"
 
 do_extract() {
 	bsdtar xf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_filename} --strip-components=1 -C .
diff --git a/srcpkgs/jetbrains-jdk-bin/template b/srcpkgs/jetbrains-jdk-bin/template
index c275199504e8c..79534a1383f51 100644
--- a/srcpkgs/jetbrains-jdk-bin/template
+++ b/srcpkgs/jetbrains-jdk-bin/template
@@ -11,11 +11,7 @@ _jdk_ver=${version%b*}
 _jdk_build=${version#*b}
 distfiles="https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-${_jdk_ver//\./_}-linux-x64-b${_jdk_build}.tar.gz"
 checksum=192bc1c4d877a9035a08db8a4bc9ac98551fa344ec5835f08d455fab66c82fe0
-# This JDK appears to link to libs that do not exist, but functions well even in their absence.
-# Best guess is that they are optional. ¯\_(ツ)_/¯
-noverifyrdeps=yes
 nopie=yes
-noshlibprovides=yes
 
 do_install() {
 	TARGET_PATH="usr/lib/jvm/jbrsdk"
diff --git a/srcpkgs/protonmail-bridge/template b/srcpkgs/protonmail-bridge/template
index 5d1315f6063ca..ff08aee8720d7 100644
--- a/srcpkgs/protonmail-bridge/template
+++ b/srcpkgs/protonmail-bridge/template
@@ -1,7 +1,7 @@
 # Template file for 'protonmail-bridge'
 pkgname=protonmail-bridge
 version=3.3.0
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
 depends="desktop-file-utils"
@@ -13,9 +13,18 @@ distfiles="https://proton.me/download/bridge/protonmail-bridge_${version}-1_amd6
 checksum=4541f8aa145097ee171889b0c9d058450d09dc23be10231c83d6659789a27627
 
 restricted=yes
-noverifyrdeps=yes
 nopie=yes
 
 do_install() {
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlmysql.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlodbc.so
+	rm -f usr/lib/protonmail/bridge/plugins/sqldrivers/libqsqlpsql.so
+	rm -rf usr/lib/protonmail/bridge/plugins/designer
+	rm -rf usr/lib/protonmail/bridge/plugins/qmltooling
+	rm -rf usr/lib/protonmail/bridge/qml/QtTest
+	rm -rf usr/lib/protonmail/bridge/qml/Qt/labs
+	rm -rf usr/lib/protonmail/bridge/lib/cmake
+	rm -rf usr/lib/protonmail/bridge/lib/pkgconfig
+	rm -rf usr/lib/protonmail/bridge/lib/*.a
 	vcopy usr /
 }
diff --git a/srcpkgs/teamspeak3/template b/srcpkgs/teamspeak3/template
index 23ca26aeb08e9..bf0dcfd75b642 100644
--- a/srcpkgs/teamspeak3/template
+++ b/srcpkgs/teamspeak3/template
@@ -1,12 +1,10 @@
 # Template file for 'teamspeak3'
 pkgname=teamspeak3
 version=3.5.6
-revision=1
+revision=2
 archs="i686 x86_64"
-create_wrksrc=yes
 hostmakedepends="tar"
-depends="glib bash grep freetype nss libXcomposite fontconfig glibc
- libxslt dbus-libs alsa-lib libXi libXcursor libXtst libXScrnSaver pciutils"
+depends="bash grep"
 short_desc="Popular proprietary voice chat for gaming"
 maintainer="Tai Chi Minh Ralph Eastwood <tcmreastwood@gmail.com>"
 license="custom:Proprietary"
@@ -15,7 +13,6 @@ restricted=yes
 repository="nonfree"
 nopie=yes
 nostrip=yes
-noverifyrdeps=yes
 
 if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 	_pkg="TeamSpeak3-Client-linux_amd64-${version}"
diff --git a/srcpkgs/zoom/template b/srcpkgs/zoom/template
index 7b026f182ae7d..db3e3288bc05c 100644
--- a/srcpkgs/zoom/template
+++ b/srcpkgs/zoom/template
@@ -1,13 +1,10 @@
 # Template file for 'zoom'
 pkgname=zoom
 version=5.15.3.4839
-revision=1
+revision=2
 archs="x86_64"
 create_wrksrc=yes
-depends="$(vopt_if systemqt 'qt5 qt5-graphicaleffects qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-svg qt5-script qt5-declarative')
- xcb-util-image xcb-util-keysyms glib libXfixes libXtst libgbm libglvnd
- nss atk at-spi2-atk libXcomposite libXdamage libXrandr libxkbcommon pango
- alsa-lib libcups libxshmfence pulseaudio-utils"
+depends="libglvnd pulseaudio-utils"
 short_desc="Video Conferencing and Web Conferencing Service"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:Proprietary"
@@ -16,13 +13,16 @@ distfiles="https://cdn.zoom.us/prod/${version}/zoom_x86_64.rpm"
 checksum=3dc36195400744ceacd025009e88549f7a8481a6964ef3276a4f753764e51ac6
 repository=nonfree
 noshlibprovides=yes
-noverifyrdeps=yes
 restricted=yes
 nopie=yes
 build_options="systemqt"
 desc_option_systemqt="Use system QT libraries"
 
 pre_install() {
+	# rm -rf opt/zoom/Qt/qml/QtQml/RemoteObjects
+	# rm -rf opt/zoom/Qt/qml/Qt/labs
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene2D
+	# rm -rf opt/zoom/Qt/qml/QtQuick/Scene3D
 	if [ "${build_option_systemqt}" ]; then
 		rm -f opt/zoom/libQt5*.so{,.*}
 		rm -f opt/zoom/libicu*.so{,.*}

From 519ede4355089393491e4a0e5de81b71dfbabc1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 17 Aug 2023 11:04:58 +0700
Subject: [PATCH 6/7] common/shlibs: clean up

---
 common/shlibs | 49 -------------------------------------------------
 1 file changed, 49 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index fafbe7af4d97d..616785bdb4778 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -131,13 +131,6 @@ libGL.so.1 libGL-7.11_1
 libEGL.so.1 libEGL-7.11_1
 libGLESv1_CM.so.1 libGLES-1.0_1
 libGLESv2.so.2 libGLES-1.0_1
-libEGL.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so rpi-userland-0.0.0.0.20150907_1
-libGLESv2.so opera-55.0.2994.37_2
-libGLESv2.so discord-0.0.7_1
-libGLESv2.so keybase-desktop-3.1.2_1
-libGLESv2.so Signal-Desktop-1.23.2_1
-libGLESv2.so slack-desktop-3.4.2_1
 libbrcmEGL.so rpi-userland-20180103_2
 libbrcmGLESv2.so rpi-userland-20180103_2
 libbrcmOpenVG.so rpi-userland-20180103_2
@@ -1141,7 +1134,6 @@ libgstpbutils-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstriff-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstapp-1.0.so.0 gst-plugins-base1-1.0.0_1
 libgstallocators-1.0.so.0 gst-plugins-base1-1.1.1_1
-libgsttranscoder-1.0.so.0 gst-plugins-bad1-1.22.1_1
 libgstphotography-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstsignalprocessor-1.0.so.0 gst-plugins-bad1-1.18.3_2
 libgstbasevideo-1.0.so.0 gst-plugins-bad1-1.18.3_2
@@ -1844,30 +1836,6 @@ libawt_xawt.so openjdk11-jre-11.0.5+10_1
 libjava.so openjdk11-jre-11.0.5+10_1
 libjli.so openjdk11-jre-11.0.5+10_1
 libjvm.so openjdk11-jre-11.0.5+10_1
-libjawt.so openjdk7-bootstrap-7u221b02_1
-libawt.so openjdk7-bootstrap-7u221b02_1
-libawt_xawt.so openjdk7-bootstrap-7u221b02_1
-libjava.so openjdk7-bootstrap-7u221b02_1
-libjli.so openjdk7-bootstrap-7u221b02_1
-libjvm.so openjdk7-bootstrap-7u221b02_1
-libjawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt.so openjdk9-bootstrap-9.0.4p12_1
-libawt_xawt.so openjdk9-bootstrap-9.0.4p12_1
-libjava.so openjdk9-bootstrap-9.0.4p12_1
-libjli.so openjdk9-bootstrap-9.0.4p12_1
-libjvm.so openjdk9-bootstrap-9.0.4p12_1
-libjawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt.so openjdk10-bootstrap-10.0.2p13_1
-libawt_xawt.so openjdk10-bootstrap-10.0.2p13_1
-libjava.so openjdk10-bootstrap-10.0.2p13_1
-libjli.so openjdk10-bootstrap-10.0.2p13_1
-libjvm.so openjdk10-bootstrap-10.0.2p13_1
-libjawt.so mandrel-21.1.0.0_1
-libawt.so mandrel-21.1.0.0_1
-libawt_xawt.so mandrel-21.1.0.0_1
-libjava.so mandrel-21.1.0.0_1
-libjli.so mandrel-21.1.0.0_1
-libjvm.so mandrel-21.1.0.0_1
 libucl.so.5 libucl-0.8.1_6
 libhandle.so.1 xfsprogs-3.2.1_1
 libnfnetlink.so.0 libnfnetlink-1.0.1_1
@@ -2642,16 +2610,10 @@ libglyphy.so.0 glyphy-0.0.20160104_1
 libSwiften.so.0 swiften-4.0.3_2
 libfreehand-0.1.so.1 libfreehand-0.1.1_1
 libe-book-0.1.so.1 libe-book-0.1.2_1
-libOsi.so.1 CoinMP-1.8.3_1
-libClp.so.1 CoinMP-1.8.3_1
 libCoinMP.so.1 CoinMP-1.8.3_1
 libOsiCbc.so.3 CoinMP-1.8.3_1
-libCoinUtils.so.3 CoinMP-1.8.3_1
-libClpSolver.so.1 CoinMP-1.8.3_1
 libCgl.so.1 CoinMP-1.8.3_1
-libOsiClp.so.1 CoinMP-1.8.3_1
 libCbc.so.3 CoinMP-1.8.3_1
-libOsiCommonTests.so.1 CoinMP-1.8.3_1
 libCbcSolver.so.3 CoinMP-1.8.3_1
 libmwaw-0.3.so.3 libmwaw-0.3.7_1
 libixion-0.18.so.0 libixion-0.18.1_1
@@ -2675,10 +2637,6 @@ leatherman_curl.so.1.12.4 leatherman-1.12.4_1
 leatherman_dynamic_library.so.1.12.4 leatherman-1.12.4_1
 leatherman_execution.so.1.12.4 leatherman-1.12.4_1
 leatherman_ruby.so.1.12.4 leatherman-1.12.4_1
-libUTF.so opencollada-0.0.20160223_1
-libbuffer.so opencollada-0.0.20160223_1
-libftoa.so opencollada-0.0.20160223_1
-libzlib.so opencollada-1.6.51_1
 libfbclient.so.2 libfbclient3-3.0.4.33054_1
 libipmiutil.so.1 ipmiutil-3.1.3_4
 libqxmpp.so.3 qxmpp-1.2.0_1
@@ -3646,12 +3604,6 @@ libTECkit.so.0 libteckit-2.5.8_1
 libTECkit_Compiler.so.0 libteckit-2.5.8_1
 libwf-config.so.1 wf-config-0.5.0_1
 libQt5Pas.so.1 qt5pas-2.6~beta_1
-libClp.so.1 libClp-1.16.11_1
-libCoinUtils.so.3 libClp-1.16.11_1
-libOsiClp.so.1 libClp-1.16.11_1
-libClpSolver.so.1 libClp-1.16.11_1
-libOsiCommonTests.so.1 libClp-1.16.11_1
-libOsi.so.1 libClp-1.16.11_1
 libOGDF.so libogdf-2018.03_1
 libCOIN.so libogdf-2018.03_1
 librocksdb.so.7 rocksdb-7.4.5_1
@@ -4189,7 +4141,6 @@ libThread.so root-6.24.06_1
 libTMVA.so root-6.24.06_1
 libMathCore.so root-6.24.06_1
 libCore.so root-6.24.06_1
-libCore.so qtcreator-7.0.2_1
 liblowdown.so.3 lowdown-1.0.2_1
 libjaylink.so.0 libjaylink-0.2.0_1
 libnvidia-container.so.1 libnvidia-container-1.10.0_1

From 191fdaa17bf4747750edfcc4210119a14bc7e8ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 9 Aug 2023 19:50:06 +0700
Subject: [PATCH 7/7] libreoffice: update to 7.6.0.3.

---
 srcpkgs/libreoffice-epub                      |  1 -
 .../libreoffice/files/skia-no-execinfo.patch  | 25 ---------
 .../patches/build-option-java.patch           | 19 +++++++
 srcpkgs/libreoffice/patches/musl-java.patch   | 16 +++---
 .../patches/musl-no-execinfo.patch            | 10 ----
 srcpkgs/libreoffice/template                  | 52 ++++++-------------
 6 files changed, 44 insertions(+), 79 deletions(-)
 delete mode 120000 srcpkgs/libreoffice-epub
 delete mode 100644 srcpkgs/libreoffice/files/skia-no-execinfo.patch
 create mode 100644 srcpkgs/libreoffice/patches/build-option-java.patch
 delete mode 100644 srcpkgs/libreoffice/patches/musl-no-execinfo.patch

diff --git a/srcpkgs/libreoffice-epub b/srcpkgs/libreoffice-epub
deleted file mode 120000
index d5e3a56f35028..0000000000000
--- a/srcpkgs/libreoffice-epub
+++ /dev/null
@@ -1 +0,0 @@
-libreoffice
\ No newline at end of file
diff --git a/srcpkgs/libreoffice/files/skia-no-execinfo.patch b/srcpkgs/libreoffice/files/skia-no-execinfo.patch
deleted file mode 100644
index 4495e8ab060ce..0000000000000
--- a/srcpkgs/libreoffice/files/skia-no-execinfo.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/tools/gpu/vk/VkTestUtils.cpp
-+++ b/tools/gpu/vk/VkTestUtils.cpp
-@@ -26,7 +26,9 @@
- #include <algorithm>
- 
- #if defined(SK_BUILD_FOR_UNIX)
--#include <execinfo.h>
-+  #if !defined(__linux__) || defined(__GLIBC__)
-+    #include <execinfo.h>
-+  #endif
- #endif
- #include "include/gpu/vk/GrVkBackendContext.h"
- #include "include/gpu/vk/GrVkExtensions.h"
-@@ -104,9 +106,11 @@ static int should_include_debug_layer(co
- 
- static void print_backtrace() {
- #if defined(SK_BUILD_FOR_UNIX)
-+  #if !defined(__linux__) || defined(__GLIBC__)
-     void* stack[64];
-     int count = backtrace(stack, SK_ARRAY_COUNT(stack));
-     backtrace_symbols_fd(stack, count, 2);
-+  #endif
- #else
-     // Please add implementations for other platforms.
- #endif
diff --git a/srcpkgs/libreoffice/patches/build-option-java.patch b/srcpkgs/libreoffice/patches/build-option-java.patch
new file mode 100644
index 0000000000000..217d54c12fa51
--- /dev/null
+++ b/srcpkgs/libreoffice/patches/build-option-java.patch
@@ -0,0 +1,19 @@
+diff -Naur libreoffice-7.6.0.3.orig/cui/source/options/optjava.cxx libreoffice-7.6.0.3/cui/source/options/optjava.cxx
+--- libreoffice-7.6.0.3.orig/cui/source/options/optjava.cxx	2023-08-08 15:49:18.000000000 -0400
++++ libreoffice-7.6.0.3/cui/source/options/optjava.cxx	2023-08-21 12:38:20.652657824 -0400
+@@ -937,6 +937,7 @@
+ 
+ void SvxJavaClassPathDlg::SetClassPath( const OUString& _rPath )
+ {
++#if HAVE_FEATURE_JAVA
+     if ( m_sOldPath.isEmpty() )
+         m_sOldPath = _rPath;
+     m_xPathList->clear();
+@@ -962,6 +963,7 @@
+         m_xPathList->select(0);
+     }
+     SelectHdl_Impl(*m_xPathList);
++#endif
+ }
+ 
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/srcpkgs/libreoffice/patches/musl-java.patch b/srcpkgs/libreoffice/patches/musl-java.patch
index f5205f3cb48ee..a5c62c296ff68 100644
--- a/srcpkgs/libreoffice/patches/musl-java.patch
+++ b/srcpkgs/libreoffice/patches/musl-java.patch
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -8910,7 +8910,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
+@@ -8909,7 +8909,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
          ;;
  
@@ -9,18 +9,18 @@
          JAVAINC="-I$JAVA_HOME/include"
          JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
-@@ -14646,7 +14646,7 @@ else
+@@ -14744,7 +14744,7 @@ else
  
      case "$host_os" in
  
--    aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
-+    aix*|dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
+-    dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
++    dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
          if test "$ENABLE_JAVA" != ""; then
              pathmunge "$JAVA_HOME/bin" "after"
          fi
 --- a/configure
 +++ b/configure
-@@ -22754,7 +22754,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
+@@ -22737,7 +22737,7 @@ if test -n "$ENABLE_JAVA" -a -z "$JAVAIN
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
          ;;
  
@@ -29,12 +29,12 @@
          JAVAINC="-I$JAVA_HOME/include"
          JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
          test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
-@@ -46454,7 +46454,7 @@ else
+@@ -46802,7 +46802,7 @@ else
  
      case "$host_os" in
  
--    aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
-+    aix*|dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
+-    dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
++    dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
          if test "$ENABLE_JAVA" != ""; then
              pathmunge "$JAVA_HOME/bin" "after"
          fi
diff --git a/srcpkgs/libreoffice/patches/musl-no-execinfo.patch b/srcpkgs/libreoffice/patches/musl-no-execinfo.patch
deleted file mode 100644
index a430c5d153664..0000000000000
--- a/srcpkgs/libreoffice/patches/musl-no-execinfo.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/external/skia/UnpackedTarball_skia.mk
-+++ b/external/skia/UnpackedTarball_skia.mk
-@@ -41,6 +41,7 @@ skia_patches := \
-     constexpr-template.patch.0 \
-     missing-include.patch.0 \
-     tdf147342.patch.0 \
-+    skia-no-execinfo.patch.1 \
- 
- $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
- 
diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template
index a5ade73cc1969..6dbe8c8730943 100644
--- a/srcpkgs/libreoffice/template
+++ b/srcpkgs/libreoffice/template
@@ -1,18 +1,18 @@
 # Template file for 'libreoffice'
 pkgname=libreoffice
-version=7.5.5.2
-revision=2
+version=7.6.0.3
+revision=1
 build_style=meta
 make_build_target="build"
 hostmakedepends="automake flex gperf hyphen icu libtool openldap which gettext xz
  perl-Archive-Zip pkg-config qt5-qmake sane unzip zip python3-setuptools
- fontforge python3-lxml qt6-base-devel gtk4-devel gobject-introspection gnupg"
+ fontforge python3-lxml qt6-base gtk4-devel gobject-introspection gnupg"
 makedepends="CoinMP-devel apr-devel avahi-libs-devel clucene-devel
  frameworkintegration-devel glyphy-devel gpgmepp-devel gst-plugins-base1-devel
  gtk+3-devel gtk4-devel hunspell-devel hyphen-devel libXt-devel libabw-devel glm
  libatomic_ops-devel libbluetooth-devel libcdr-devel libe-book-devel
  libepubgen-devel libetonyek-devel libexttextcat-devel libfbclient3-devel
- libfreehand-devel boost-devel zlib-devel bzip2-devel libxslt-devel
+ libfreehand-devel boost-devel zlib-devel bzip2-devel libxslt-devel frozen
  libgcrypt-devel libgltf-devel libldap-devel libmariadbclient-devel libmspub-devel
  libmwaw-devel libnumbertext-devel libodfgen-devel libopenjpeg2-devel liborcus-devel
  libpagemaker-devel libqxp-devel librsvg-devel libvisio-devel libwpg-devel
@@ -90,13 +90,14 @@ distfiles="
  ${_addurl}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
  ${_addurl}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
  ${_addurl}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- ${_addurl}/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
+ ${_addurl}/skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz
+ ${_addurl}/frozen-1.1.1.tar.gz
  ${_addurl}/dragonbox-1.1.3.tar.gz
 "
-checksum="6628dfd2a21041a7c5bb6d72733e0fd52efa7959c95084fcd4d96cc4a61b0561
- 33c023d3e5abe5649350ae1242fcd5d6c069066f283db967b6aab35aa4857504
- 1de834979bf25c3c6f368362dd20c95d0bee514a42eee903a32188d40488aa62
- 24b5c791a17128361b5f3c8538348002a714d0ba2aab37e3bf10e16b7ac049b7
+checksum="07f33f11a75b72a3044749d4f2f7d02a0fd79eaed4fb73e618ec5fe3576d0c25
+ b932cdd6bd2ee717f3a09766c88fe90100b0c2c0509313c3ee297f95c084ee2e
+ 210f18ff60e93d366856d84e714d3fd6f184f399b5163afc92b7e11155cbe768
+ 667e4ffeacc01bd0f830c2edcc56e2328f924eeac224639babeb3841a44ec5f4
  1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753
  75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870
  7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66
@@ -123,7 +124,8 @@ checksum="6628dfd2a21041a7c5bb6d72733e0fd52efa7959c95084fcd4d96cc4a61b0561
  abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095
  05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343
  085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045
- c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9
+ 0d08a99ed46cde43b5ad2672b5d8770c8eb85d0d26cb8f1f85fd9befe1e9ceb9
+ f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45
  09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384"
 skip_extraction="
  798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
@@ -152,7 +154,8 @@ skip_extraction="
  8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
  f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
  39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
+ skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz
+ frozen-1.1.1.tar.gz
  dragonbox-1.1.3.tar.gz
 "
 replaces="libreoffice-firebird<6.2.4.2_1"
@@ -488,8 +491,9 @@ do_install() {
 
 libreoffice-common_package() {
 	short_desc+=" - Common files"
-	depends="hunspell hyphen mythes openldap libreoffice-i18n-en-US>=${version}_${revision}"
+	depends="libreoffice-i18n-en-US>=${version}_${revision}"
 	skiprdeps=/usr/lib/libreoffice/program/libofficebean.so
+	replaces="libreoffice-epub>=0"
 	pkg_install() {
 		_split common
 	}
@@ -498,7 +502,6 @@ libreoffice-common_package() {
 libreoffice-base_package() {
 	short_desc+=" - Database frontend"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split base
 	}
@@ -507,7 +510,6 @@ libreoffice-base_package() {
 libreoffice-calc_package() {
 	short_desc+=" - Spreadsheet"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split calc
 	}
@@ -516,7 +518,6 @@ libreoffice-calc_package() {
 libreoffice-draw_package() {
 	short_desc+=" - Drawing application"
 	depends="sane libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split draw
 	}
@@ -556,8 +557,6 @@ libreoffice-fonts_package() {
 
 libreoffice-gnome_package() {
 	short_desc+=" - GNOME integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split gnome
 	}
@@ -566,7 +565,6 @@ libreoffice-gnome_package() {
 libreoffice-impress_package() {
 	short_desc+=" - Presentation application"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split impress
 	}
@@ -574,8 +572,6 @@ libreoffice-impress_package() {
 
 libreoffice-kde_package() {
 	short_desc+=" - KDE integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/kde5_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -593,8 +589,6 @@ libreoffice-kde_package() {
 
 libreoffice-qt6_package() {
 	short_desc+=" - Qt6 integration"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		cat > ${wrksrc}/file-lists/qt6_list.txt <<-EOF
 		%dir /usr/lib/libreoffice/program
@@ -615,7 +609,6 @@ libreoffice-kit_package() {
 libreoffice-math_package() {
 	short_desc+=" - Equation editor"
 	depends="libreoffice-writer>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split math
 	}
@@ -623,8 +616,7 @@ libreoffice-math_package() {
 
 libreoffice-postgresql_package() {
 	short_desc+=" - Connector for PostgreSQL"
-	depends="libreoffice-base>=${version}_${revision} libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
+	depends="libreoffice-base>=${version}_${revision}"
 	pkg_install() {
 		_split postgresql
 	}
@@ -632,25 +624,15 @@ libreoffice-postgresql_package() {
 
 libreoffice-writer_package() {
 	short_desc+=" - Word processor"
-	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		_split writer
 	}
 }
 
-libreoffice-epub_package() {
-	short_desc+=" - EPUB output"
-	build_style=meta
-	depends="libreoffice-common>=${version}_${revision} libepubgen libabw libe-book
-	 libetonyek libwps"
-}
-
 # Use a name which makes this catch-all subpackage the last one
 libreoffice-xtensions_package() {
 	short_desc+=" - Extensions"
 	depends="libreoffice-common>=${version}_${revision}"
-	noverifyrdeps=yes
 	pkg_install() {
 		# Remove empty files
 		find ${DESTDIR}/all -size 0 -delete

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Merged]: verify dependencies between subpkgs
  2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
                   ` (7 preceding siblings ...)
  2023-08-29 15:17 ` sgn
@ 2023-08-30  6:24 ` sgn
  8 siblings, 0 replies; 10+ messages in thread
From: sgn @ 2023-08-30  6:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1568 bytes --]

There's a merged pull request on the void-packages repository

verify dependencies between subpkgs
https://github.com/void-linux/void-packages/pull/45504

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

With those threads on reddit about unable to use libreoffice to generate epub, then a note to revbump libreoffice when poppler is rebuilt.

This solution hopefully is not too stupid.

Expect problem to come:

- A package that would be build multiple time for multiple configuration. (Says `emacs` or `Cataclysm-DDA`), not sure how that would work. We may pick the first package that provides the shared library without SONAME. I don't know.

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->
[ci skip][skip ci]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-08-30  6:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-09 12:58 [PR PATCH] verify dependencies between subpkgs sgn
2023-08-16 13:05 ` [PR PATCH] [Updated] " sgn
2023-08-16 16:21 ` Duncaen
2023-08-17  0:08 ` [PR PATCH] [Updated] " sgn
2023-08-17  0:15 ` sgn
2023-08-17  4:42 ` [PR PATCH] [Updated] " sgn
2023-08-17 11:34 ` sgn
2023-08-29  6:18 ` sgn
2023-08-29 15:17 ` sgn
2023-08-30  6:24 ` [PR PATCH] [Merged]: " sgn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).