Too much license

This is everything found in the header <ciso646> from the GCC std library:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// -*- C++ -*- forwarding header.

// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.

// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
// <http://www.gnu.org/licenses/>.

/** @file ciso646
 *  This is a Standard C++ Library file.  You should @c \#include this file
 *  in your programs, rather than any of the @a *.h implementation files.
 *
 *  This is the C++ version of the Standard C Library header @c iso646.h,
 *  and its contents are (mostly) the same as that header, but are all
 *  contained in the namespace @c std (except for names which are defined
 *  as macros in C).
 */
There's no code as the keywords defined in iso646.h are already in the C++ language, so in this file there's only the license part.
Why is the license needed for an empty file?
And note that that's not even the licence itself (thank God somebody told Stallman "you're not really expecting people to put this in every source, are you?"). That whole thing could be replaced by "Copyright 2001-2010. Free Software Foundation, Inc. All rights reserved. Distributed under the terms of the GPL v3, which you can find here: <link>" and you wouldn't lose anything at all.
closed account (z05DSL3A)
Why is the license needed for an empty file?

Two things spring to mind:

1. Other compilers do not have implicit inclusion of the functionality of this header.

2. There may well have been code in there in the past.

The upshot of both of these is that the file is there so as to not break the code.
Why do you have to put the license at the top of source files? If you put a LICENSE file and a README file, then in the README why can't you just write "All files are distributed under the terms of the GNU GPL vN, which you can find in the file 'LICENSE'".
GCC ( v4.5.0 ) source contains 5 license notices:
COPYING - GLP v2 ( 340 lines)
COPYING3 - GPL v3 ( 674 lines [WTF?] )
COPYING.LIB - LGPL v2.1 ( 510 lines )
COPYING3.LIB - LGPL v3 ( 165 lines )
COPYING.RUNTIME - GCC RUNTIME LIBRARY EXCEPTION v3.1 ( 73 lines )

I wonder if someone has ever included the full text of GPLv3 in every source file
Topic archived. No new replies allowed.