[26943] in Source-Commits
Re: /svn/athena r25841 - trunk/debathena/third/openafs
daemon@ATHENA.MIT.EDU (Benjamin Kaduk)
Thu Mar 7 22:56:04 2013
Date: Thu, 7 Mar 2013 22:55:55 -0500 (EST)
From: Benjamin Kaduk <kaduk@MIT.EDU>
To: Jonathan D Reed <jdreed@MIT.EDU>
cc: source-commits@MIT.EDU
In-Reply-To: <201303071835.r27IZWoa027892@drugstore.mit.edu>
Message-ID: <alpine.GSO.1.10.1303072255250.9389@multics.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
ACK, though I don't immediately understand why we reset image_mpkg as well
as hdr_mpkg.
-Ben
On Thu, 7 Mar 2013, Jonathan D Reed wrote:
> Author: jdreed
> Date: 2013-03-07 13:35:32 -0500 (Thu, 07 Mar 2013)
> New Revision: 25841
>
> Modified:
> trunk/debathena/third/openafs/debathenify-openafs
> Log:
> * Deal with Debian meta-meta packages (Trac: #948)
>
>
> Modified: trunk/debathena/third/openafs/debathenify-openafs
> ===================================================================
> --- trunk/debathena/third/openafs/debathenify-openafs 2013-03-07 01:51:20 UTC (rev 25840)
> +++ trunk/debathena/third/openafs/debathenify-openafs 2013-03-07 18:35:32 UTC (rev 25841)
> @@ -214,6 +214,42 @@
> if schq apt-cache show openafs-modules-dkms > /dev/null 2>&1; then
> # epoch
> ver=1:1.0
> + # Check if the headers we identified above actually exist
> + # and deal appropriately (Trac: #948)
> + should_skip=0
> + if ! schq apt-cache show "$hdr_mpkg" >/dev/null 2>&1; then
> + # This is why we can't have nice things
> + echo "*** $image_mpkg has no corresponding $hdr_mpkg, looking for alternatives..."
> + should_skip=1
> + # OK, there's no header for it. Let's see what its siblings are
> + # Get its dependency
> + dep=$(echo "$info" | sed -ne 's/^Depends:.*\(linux-image-[^ ,]*\).*$/\1/p')
> + # See what reverse-depends on that (i.e. what else provides it)
> + rdeps=$(apt-cache --no-pre-depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances rdepends "$dep" | tr -d '\n' | sed -e "s/${dep}Reverse Depends://")
> + for rd in $rdeps; do
> + # If we managed to find ourself, skip it
> + [ "$rd" = "$image_mpkg" ] && continue
> + # See if it is a metapackage
> + rdinfo=$(schq apt-cache show --no-all-versions "$rd")
> + rdsrc=$(echo "$rdinfo" | sed -ne 's/^Source: //p')
> + if [ $(expr "$rdsrc" : "$metareg") != 0 ]; then
> + # OK, we found another metapackage that provides this.
> + # Let's see if it has headers
> + rdhdr=$(echo "$rd" | sed -e 's/^linux-image/linux-headers/')
> + if schq apt-cache show "$rdhdr" > /dev/null 2>&1; then
> + # Yay. Use it instead
> + image_mpkg=$rd
> + hdr_mpkg=$rdhdr
> + should_skip=0
> + break
> + fi
> + fi
> + done
> + if [ $should_skip -ne 0 ]; then
> + echo "*** Skipping $afs_mpkg (DKMS), can't find matching headers for $image_mpkg"
> + continue
> + fi
> + fi
> fi
>
> # Check if we already have an up-to-date OpenAFS metapackage.
>
>