License header

From FreeMind
Revision as of 06:49, 15 May 2026 by Dan Polansky (talk | contribs)
Jump to navigationJump to search

What follows includes reports on current license header practice in FreeMind as well as design considerations on how think could be done in future. In support of the latter, practice in other free/open-source (FOSS) projects is considered.

FreeMind license header

FreeMind uses the following license header in .java files (see also Licensing; keywords: copyright header, copyright notice):

/* FreeMind - A program for creating and viewing mind maps
 * Copyright (C) 2000-<YEAR> <AUTHORS>
 * See COPYING for Details
 *
 * This program 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 2
 * of the License, or (at your option) any later version.
 *
 * This program 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

Questions:

  • What detail and granularity of authorship should be maintained in the license header?
  • Would it suffice to identify the license more succinctly, e.g. "License: GNU GPL V2+; see COPYING for details"? For instance, the applicable SPDX license identifier is "GPL-2.0-or-later"[1].
    • What FOSS projects use this kind of succincts identification?
    • What FOSS projects use SPDX identifier and in what way?

Example author-declaring lines in the license headers of FreeMind 0.9.0:

  • Copyright (C) 2000-2001 Joerg Mueller <joergmueller@bigfoot.com>
  • Copyright (C) 2000-2006 Joerg Mueller, Daniel Polansky, Christian Foltin, Dimitri Polivaev and others.
  • Copyright (C) 2000-2006 Christian Foltin and others
  • Copyright (C) 2000-2004 Joerg Mueller, Daniel Polansky, Christian Foltin and others.

Helpful queries using Unix-like oneliners:

  • grep -r --include="*.java" "Copyright" .
  • grep -h -r --include="*.java" "Copyright" . | sort | uniq
  • grep -h -r --include="*.java" "Copyright" . | sed "s/.*\(C\).*[0-9] *//" | sort | uniq
    This one drops the beginning with years and year ranges.

Examples from other FOSS projects

Example author-declaring line in Emacs[2]:

  • Copyright (C) 2023-2026 Free Software Foundation, Inc.

Notes: the license header resembles that of FreeMind. GNU Emacs requires copyright assignment to FSF, making the above possible.

Example license header from Linux[3]:

// SPDX-License-Identifier: GPL-2.0-only
/*
 *  kernel/sched/core.c
 *
 *  Core kernel CPU scheduler code
 *
 *  Copyright (C) 1991-2002  Linus Torvalds
 *  Copyright (C) 1998-2024  Ingo Molnar, Red Hat
 */

Example license header from LibreOffice[4]:

/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

Notes: The authors are not stated on a per-file basis; they can be seen from the commit history. See also https://api.libreoffice.org/share/readme/LICENSE.html.

Links