On 03/22/2009 05:18 AM, Panu Matilainen wrote:
Heh, actually rpm has had %license special file attribute since rpm
2.5.4, it just doesn't really do much anything at all. It also doesn't
play well together with %doc, AND since the ancient copyright -> license
tag change, %license as file attribute has gotten globbered with
side-effect macro from the License: tag, so you'll have to use %%license
in the %files section.
Other than that, making --excludedocs not affect %license files is
literally a one-liner.
Making %license use in spec saner is somewhat more complicated (due to
the funny little historical issues listed above). I take it you'd like
it to behave exactly like %doc, like
%files
%doc README NEWS ChangeLog
%license COPYING
%{_bindir}/*
...which would place COPYING into the default docdir, but with the
license attribute set. Right?
Yes, this is almost exactly what I would think would be ideal. (Yes, it
requires a rebuild, but I far prefer being able to mark the license
files rather than have some heuristic guess and get it wrong repeatedly).
The only thing I would want on top of that is what Jakub proposed
earlier in the thread:
Basically, have rpm -V ignore timestamp verification on %license files.
Then, upon install, if there is already another %license file present
with identical {md5,sha{256,512}} sum and size installed and if so, do a
byte by byte comparison and hardlink the files if they are indeed identical.
I'm not sure whether that overcomplicates the transaction or not (also,
removal would probably need to make sure we didn't leave a package
without a license text).
~spot