On 5/8/2012 8:45 AM, Johannes Weberhofer wrote:
Also a re-compression of the files as bz2 or xz can be done by those services.
Just a side note. I wish people weren't suggesting recompression/repackaging of upstream sources in source rpms.
I understand that as long as we are talking about tars and cpios where the archive is distinct from the compression, and complete without the compression, unlike say .zip where the archive and the compression are not seperate or seperable, then it seems harmless to strip off the .gz and apply a .xz as long as you never actually touched the .tar, didn't un-tar and re-tar the actual files. You could view the .gz vs .xz as merely part of the transport of the tar, like ftp or http, or on-the-fly compression in http or ssh or modems, etc.
But it still voids the upstream published checksums and makes the source untrustworthy for the end user.
Wrapping would be ok from an integrity standpoint, containing a pristine original .zip within a .xz, but probably saves less space than repackaging and definitely costs more cpu.
And in some cases like .zip the compression isn't a separate layer that can be removed without changing the contents anyways.
It's better to have one absolute rule that you can always count on. "The included source is pristine". Not, "What you're looking at might be different from upstream but it's not changed in any way that matters we promise". It's just poor data integrity policy to allow it at all and allow for even the possibility of introducing some change in the upstream source, while still calling it a copy of the upstream source.
Recompressing should be no more OK than changing the archive file name, changing the top level directory name, changing filename cases within the archive (from .zips created on case-insensitive windows boxes), stripping dos line endings, editing #includes and other references to reflect those changed directory and filenames, etc...
That's all build-time stuff that should be done (and thus, documented) in spec/patches/scripts at build-time.
Convince upstream to adopt .wonderzipperninethousand if it's worth it, but don't change what upstream publishes, at all, and still call it the upstream source.