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"...
$ 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 -- [email protected]
To unsubscribe send an email to [email protected]
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/[email protected]