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] https://rpmfusion.org/ImportantDependencyLists
> $ 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@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> 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@lists.fedoraproject.org
-- 
Sérgio M. B.

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org

Reply via email to