The /bin/true Command and Copyright (1990)
trillian.mit.edu
trillian.mit.edu
[2] g@alpha (0)$ /bin/true --version
true (GNU coreutils) 8.26
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Jim Meyering.
[3] g@alpha (0)$ ls --version
ls (GNU coreutils) 8.26
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
[4] g@alpha (0)$
WRT AT&T true(1), well they probably were required to put a header in a certain format in every source file, and they put that in this one to. Probably the implementor just copied from a template and left it like that. Also I don't beleive they manually edit the years in copyright notices, one usually has a script to do that.You meant to say --help and --version.
It's not clear if you're referring to the copyright notices displayed to the user, or the copyright notices embedded in the source code. In the former case: I have been told to programmatically print $CURRENT_YEAR in a program's displayed copyright notice, which I refused to comply with. After all, someone running the program 200 years in the future should be able to determine that the copyright has long since expired.
Here, I'd expect that an expression of an empty program would merge with the idea of an empty program, which would make it not copyrightable. Of course, that doesn't stop someone from putting a copyright notice on it anyway.
I'd like to emphasize that a copyright notice' purpose is to serve as evidence, should a copyright claim be made. As you said, it is neither necessary nor sufficient to establish a copyright. There's no harm in putting a copyright notice on uncopyrightable material. With that understanding, including a copyright notice just makes sense.
If you're AT&T you have two options. You can tell your engineers to just always include the copyright notice, or you can ask your engineers to understand copyright law well enough to decide whether the notice is called for. The decision is pretty obvious.
EDIT: Ohh, there is a third option. You can pay lawyers to review every code file.
not to defend AT&T over unix, as a BSD guy..
Well, you have 30 days time to comply.
1) really damn weird compiler bug was all we could think of
is an sccs id.
Anecdotally (wasn't there at the time): sccs was more common everywhere before RCS because sccs was part of all unix (e.g including BSD UNIX).. it was encumbered as part of the UCB USL suit and rcs use grew after that, then cvs, then svn, then git
(/bin/true --version; ls --version; cat --version) | grep coreutils
all will be the same.http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/true...
4 includes, 3 ifdefs or define blocks, the whole thing is 80 lines, more than half of it code!
I suspect that each invocation to True, regardless of implementation, spend in average a large amount of unnecessary cpu instruction for practically every OS.
/* $OpenBSD: true.c,v 1.1 2015/11/11 19:05:28 deraadt Exp $ */
/* Public domain - Theo de Raadt */
int
main(int argc, char *argv[])
{
return (0);
}" This can be done with an empty file that's marked executable, and that's what it was in the earliest unix system libraries. "
$ uname -sr
OpenBSD 6.1
$ install -m 755 /dev/null /tmp/muhtrue && /tmp/muhtrue && echo yup
yup
not sure why it was ever switched..
probably the 'return 0;' version is cheaper than a shell fork? hmm..Of course the system could have special cased a zero length executable file.
Everything depends with which compiler flags you build this code. I know for sure there are MSVS flags to build this program with no runtime and other things with just return asm op in it.
Executing true without the pathname will run the shell embedded function.
They wanted GNU implementers to be careful not to copy (even through their recall) AT&T UNIX implementation, but to do compatible solutions in different way. This allowed them to keep safe footing legally through the time when the original UNIX source code's copyright status wasn't clear. The point of the GNU project is to create independent UNIX compatible operating system.
The BSD implementations are often referred in this discussion, but regarding them, you've got to keep in mind that it is continuation of the original UNIX source tree, after it's copyright status was clarified (https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc....).
The article seems mostly about the fact that AT&T intentionally added a copyright notice in their otherwise empty program's comment block, in an era that predates the era of widespread availability of software and copyright wars. Which is honestly not really all that surprising.
This page was likely written exactly because of the 'era of widespread availability of software and copyright wars' - e.g. the statement:
"One of the fun examples among all the copyright fuss"
combined with the edit dates (90,93) seem to me to indicate this was written exactly as a response to the UCB vs USL suit..
https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc.....
as well as the 'unix wars'
Ah, one of those people.
ninjedit: I understand that they are a logical consequence of a reasonable way of doing things; my point is that law is basically the same (you could argue that a law is unreasonable, but a seemingly absurd law is not prima facie unreasonable).