[pacman-dev] [PATCH 1/4] Add delta information to the repository database.

Nathan Jones nathanj at insightbb.com
Tue Oct 16 09:03:19 EDT 2007


On Mon, Oct 15, 2007 at 09:24:19PM -0500, Dan McGee wrote:
> > +       pkgname="$(echo "$filename" | sed -e 's/\(.*\)-\(.*-.*\)_to_\(.*-.*\)-\(.*\).delta/\1/')"
> > +       fromver="$(echo "$filename" | sed -e 's/\(.*\)-\(.*-.*\)_to_\(.*-.*\)-\(.*\).delta/\2/')"
> > +       tover="$(echo "$filename" | sed -e 's/\(.*\)-\(.*-.*\)_to_\(.*-.*\)-\(.*\).delta/\3/')"
> > +       arch="$(echo "$filename" | sed -e 's/\(.*\)-\(.*-.*\)_to_\(.*-.*\)-\(.*\).delta/\4/')"
> > +       md5sum="$(md5sum "$deltafile" | cut -d ' ' -f 1)"
> 
> Is there any way to do it without so much sed-magic, or at least make
> it look slightly cleaner? If not, then we'll have to live with it. Can
> you add some comments above it explaining the regex in case someone
> else ever has to change it though?

This was the only method I could think of, aside from creating the delta
as a tar file with a .DELTAINFO like packages. I'll add the comment.

> > +       # create deltas entry
> > +       msg2 "$(gettext "Creating 'deltas' db entry...")"
> > +       echo -e "%DELTAS%" >>deltas
> > +       for delta in $startdir/$pkgname-*-*_to_*-*-$arch.delta; do
> > +               if [ -e "$delta" ]; then
> > +                       if db_write_delta "$delta"; then
> > +                               msg2 "$(gettext "Added delta '%s'")" "$(basename "$delta")"
> > +                       else
> > +                               msg2 "$(gettext "Could not add delta '%s'")" "$(basename "$delta")"
> > +                       fi
> > +               fi
> > +       done
> > +       echo -e "" >>deltas
> > +
> >         # preserve the modification time
> > -       touch -r "$pkgfile" desc depends
> > +       touch -r "$pkgfile" desc depends deltas
> 
> Will this create an empty deltas file if it doesn't exist? We probably
> don't want that (just db clutter).

The deltas file will always have at least '%DELTAS%\n' in it. I will
change it so it is only created if needed.




More information about the pacman-dev mailing list