[pacman-dev] [PATCH] repo-add: don't break if delta package sources contain epoch

Dave Reisner d at falconindy.com
Fri Jan 4 23:23:31 UTC 2019

On Fri, Jan 04, 2019 at 11:20:04AM +1000, Allan McRae wrote:
> On 28/12/18 9:15 am, Eli Schwartz wrote:
> > Our sed parser for xdelta3 headers will greedily match on ":" which
> > coincidentally is also the character we use to define a version with an
> > epoch.
> > 
> > While we are at it, simply use sed for the whole pipeline, rather than
> > using both grep and sed.
> > 
> > Fixes FS#61195
> > 
> > Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
> OK.
> As an aside, the fact we are rewriting package version parsing code in
> bash highlights again that repo-add really should be converted to a
> libalpm program.

Not sure I understand this -- isn't the problem here the crappy output
format of xdelta3? We're not really parsing versions, just contending
with the human readable, colon-delimited table that we're forced to use.
Rewriting against libalpm won't fix anything here, though if we were to
rewrite in C, we could link to the "hidden" xdelta3 library or implement
our own crappy vcdiff parser (eww, please no).

I don't want to open a can of worms (maybe I do), but I think delta
handling is the least of the problems with repo-add. I'm aware of many
users (myself previously included) that would either replace repo-add
entirely, or wrap it substantially in order to make it truly useful. One
such example is respose [0]. If we want to consider a rewrite, maybe we
should rethink our approach to repo management and make a better tool,
not just an equivalent one.


[0] https://github.com/vodik/repose

More information about the pacman-dev mailing list