This stuff is awkward to consume at the moment. We're working on
fixing that. I _really_ want to get this update code blessed such that
the git repo could just be on github or where ever on the internet,
mailing list, docu, etc. Compilable sources does not make a sustainable
open source collaboration, which is definitely where I want this to be.
But there's paperwork to be done...
So in the meantime, sources flow out at, eg:
https://download.clearlinux.org/releases/2730/clear/source/SRPMS/swupd-clie…
which contains swupd-client-2.55.tar.gz, which has a swupd-client-2.55/ as
you'd expect. In there the bsdiff/swupd_bs*.c and include/swupd_bsdiff.h
are the intersting bits.
General things we've done to the bsdiff:
- some micro optim's in the bsdiff header format(s)
- extended set of block encodings: raw, bzip2, gzip, lzma2, and a simple 0 RLE
- various bits of debug (the original bsdiff code is a tad obtuse)
- adding error checking and handling
- remove errx (quite unfriendly to do as library code)
- fix some mem leaks and buffer overruns and hangs
- breaking out some helper functions so things aren't so monolithic and naively
assumed to succeed
- adding comments on things we struggle to understand
- add a crude check to notice that xattrs changed on the file being diff'd
Colin: Feel free to ping me with questions on any of it and fingers
crossed git history will be out there eventually here and our updater
development will all simply be out in the open in addition to the source
tarballs.
--
Tim Pepper -- Linux OS Engineering
Intel Open Source Technology Center