On Sat, 2020-05-09 at 10:34 -0500, Richard Shaw wrote: After seeing multiple ways to find packages that need rebuilding after a SONAME update and having asked once or twice for someone (smarter than me) to document a best practice, I gave up on waiting and took a shot at it:
I'm sure lots of improvements can be made but it "works"...
The problem is that we haven't a formula for all cases , if you don't query source rpm you may not have the package in the repo by Exclude in that arch .
Ff you query by devel package on source rpm, the devel package that you are looking for may not be there because is pushed by some other dependency
My preferred query is [1] , which is query for what requires package name libs as described on [2]
[1] dnf --disablerepo='*'
--enablerepo=rawhide repoquery --available
--whatrequires foo-libs --alldeps --qf "%{sourcerpm}" --quiet | sed
's|\(-[^-]\+\)\{2\}src.rpm||' | sort -u
[2]
$ cat fed-needs-rebuilding #!/bin/bash
provides=$(mktemp -t provides-XXXXXXXX) requires=$(mktemp -t requires-XXXXXXXX)
# Need to figure out how to handle packages that generate lots of subpackages. #for pkg in $(dnf --repoid=rawhide list $1 | awk '{print $1}'); do dnf repoquery --repoid=rawhide --provides $pkg >> $provides; done
# Determine the provides of the specified package echo "Determining provides of package $1" dnf -q repoquery --repoid=rawhide --provides $1 > $provides sort -u -o $provides $provides sed -i "/^bundled/d" $provides
echo "Found $(wc -l $provides | awk '{print $1}') provides to be evaluated."
while read dep; do \ echo "Checking $dep" dnf -q repoquery --repoid=rawhide --source --whatrequires "$dep" >> $requires done < $provides
sort -u -o $requires $requires sed -i "/^$1/d" $requires
echo "The following packages need to be rebuilt:" cat $requires
---
Example output:
$ ./fed-needs-rebuilding OpenImageIO Determining provides of package OpenImageIO Found 7 provides to be evaluated. Checking libOpenImageIO.so.2.1 Checking libOpenImageIO.so.2.1()(64bit) Checking libOpenImageIO_Util.so.2.1 Checking libOpenImageIO_Util.so.2.1()(64bit) Checking OpenImageIO = 2.1.14.0-1.fc33 Checking OpenImageIO(x86-32) = 2.1.14.0-1.fc33 Checking OpenImageIO(x86-64) = 2.1.14.0-1.fc33 The following packages need to be rebuilt: blender-2.82a-3.fc33.src.rpm luxcorerender-2.3-2.fc33.src.rpm OpenColorIO-1.1.1-7.fc33.src.rpm
Thanks, Richard
_______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
|
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx