rpmbuild rejects "Copyright:" in .spec
Mike A. Harris
mharris at www.linux.org.uk
Thu May 19 12:22:17 UTC 2005
D. Hugh Redelmeier wrote:
> Apparently the "Copyright" tag has been removed from the rpm spec
> language. It has been replaced with "License". One result is:
> $ rpmbuild -ta jove126.96.36.199.tgz
> error: Legacy syntax is unsupported: copyright
> error: line 35: Unknown tag: Copyright: Copyright (C) 1986-2002 by Jonathan Payne, freely redistributable
> This is the first I've heard that this tag was deprecated. Surely it
> would be better to issue a warning for a release cycle before
> completely rejecting it. This is unlikely to take more code since
> "Copyright" is still being recognized enough to note that it is
> "Legacy syntax".
The "Copyright" tag has been deprecated for about 5 years. It was
poorly named initially and should have been named "License" from
the very start. rpm added "License" as a tag to fix this problem,
and made "Copyright" an alias for compatibility.
5 or so years of compatibility is quite a long time.
Think about it... Does this sound correct:
Copyright: Mike A Harris
Or does this sound correct:
The latter is claiming that the GPL (whatever that is in this
context) is the copyright owner. That doesn't make any sense.
If we assume "GPL" means "GNU General Public License" for this
example, what the above line is saying is that the actual GPL
license text is the copyright owner. The GPL document is a
license contract. The owner of the code is the copyright owner,
not the license, so the ancient rpm usage of "Copyright: <some
license name>" is semantically incorrect, and may have legal
consequences as well.
Nonetheless, rpm kept this compatibility around for a very very
long time. Thankfully it has finally removed it, and any remaining
broken rpms out there can and will be fixed finally. ;o)
> Apparently this is not a new complaint. But FC4 is the first place
> I've bumped into the problem.
> What makes this more annoying for me is that Jove is my normal text
> editor so it is what I would normally use to fix this kind of problem.
> I don't have it on my new machine to fix itself.
> The Jove distribution attempts to support old systems, including those
> before "License" was introduced. That support will have to be
> dropped, at least as far as RPM is concerned. (Jove supports UNIX
> distributions as far back as 7th Edition -- that's how much we care
> about support for old systems.)
"License:" has been around at least since Red Hat Linux 6.2, if not
way way earlier than that. There is no reason to not use the proper
tag nowadays. If someone wants to keep compatibility for rpm versions
that are that old to not have the "License" tag (which I think is
pretty rediculous), they can simply do:
%define ancient_OS 1
Another mechanism that can be used, is to make the specfile a
template instead, and preprocess it with autotools, m4, cpp,
perl, or something else, to plop in the right tag depending on
which version of rpm is being used.
The number of rpms out there that this affects in this nature
is likely to be incredibly low.
More information about the test