pkgsrc/mk/license.mk

141 lines
4.6 KiB
Makefile
Raw Normal View History

# $NetBSD: license.mk,v 1.23 2009/06/03 13:40:03 ahoka Exp $
#
# This file handles everything about the LICENSE variable. It is
# included automatically by bsd.pkg.mk.
#
# XXX There should be one place to set the default list and for users
# to set the ACCEPTABLE_LICENSES list, used by both source builds and
# binary installs#
#
# XXX: Some of this content arguably belongs in the pkgsrc guide
# instead.
#
# === User-settable variables ===
#
# ACCEPTABLE_LICENSES
#
# If a package declares a license and that license is not a
# member of the list defined by this variable, pkgsrc will not
# build the package and instead print an error message.
# (pkg_install has code to behave the same way, but it is not
# yet turned on.)
#
# XXX: Perhaps there should be some mechanism to prevent running
# programs that are part of packages that declare LICENSEs that
# are not in ACCEPTABLE_LICENSES or some per-user variable.
# This is surely controversial and requires discussion.
#
# To include the default licenses, you can use the += operator
# in mk.conf. To override it, use the plain = operator.
#
# Default value: ${DEFAULT_ACCEPTABLE_LICENSES}
#
# === Package-settable variables ===
#
# LICENSE
#
# The license of the package.
#
# Sometimes licensing is other than a single text file. See
# doc/TODO for discussion of how to handle packages with dual
# licensing (a choice) or where multiple licenses apply
# simultaneously.
#
# Every package should specify its license. (Prior to early 2009,
# Open Source and Free software did not have license tags.)
#
# Licenses are collected in the licenses/ subdirectory of
# pkgsrc. For open source license, we generally use the same
# names as either the Open Source Initiative or the Free
# Software Foundation, choosing a name to reduce confusion.
# Open source and free licenses do not have a -license suffix,
# and non-free licenses do.
#
# http://opensource.org/licenses/category
# http://www.fsf.org/licensing/licenses/index_html
#
# === Predefined variables ===
#
# DEFAULT_ACCEPTABLE_LICENSES
# The list of licenses that will be the default value of
# ACCEPTABLE_LICENSES. Adapting the longstanding policy of Open
# Source or Free licenses not requiring tags, it should contain
# all licenses that are Open Source or Free, so as to provide
# the most expansive default that almost all people find
# acceptable. (Many people will want to add more licenses to
# ACCEPTABLE_LICENSES; the point is to have a default that very
# few people want to shrink.)
#
# Licenses not formally approved as Free or Open Source may be
# added if they have terms that would obviously be approved if
# the effort were made. Such license names will have a comment
# near them in the assignment to DEFAULT_ACCEPTABLE_LICENSES.
#
# The pkg_install sources also have a
# DEFAULT_ACCEPTABLE_LICENSES list, and that should be updated
# to match the list here. See
# pkgsrc/pkgtools/pkg_install/files/lib/license.c
#
# === See also ===
#
# ../doc/TODO, section "Licenses of packages"
#
# Keywords: licence license
#
# This list is not complete. Free and Open Source licenses should be
# added to the list as they are added to pkgsrc.
# The convention is that Free or Open Source licenses do not have a
# -license suffix, and nonfree licenses end in -license.
# XXX open-font-license should perhaps be changed to open-font
DEFAULT_ACCEPTABLE_LICENSES= \
public-domain \
gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3 \
2009-05-21 21:05:01 +02:00
gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1 \
gnu-gpl-v3 gnu-lgpl-v3 \
original-bsd modified-bsd \
x11 mit miros \
apache-1.1 apache-2.0 \
artistic artistic-2.0 \
cddl-1.0 \
2009-05-14 08:01:00 +02:00
cpl-1.0 \
open-font-license
##### Variant spellings
.if defined(ACCEPTABLE_LICENCES) && !defined(ACCEPTABLE_LICENSES)
ACCEPTABLE_LICENSES= ${ACCEPTABLE_LICENCES}
.endif
.if !defined(LICENSE)
. if defined(PKG_DEVELOPER)
WARNINGS+= "[license.mk] Every package should define a LICENSE."
. endif
.else
# Note: some bulk builders rely on the fact that they can set
# _ACCEPTABLE to bypass license checks. Inform them when you intend to
# remove this variable.
. if defined(ACCEPTABLE_LICENSES) && !empty(ACCEPTABLE_LICENSES:M${LICENSE})
_ACCEPTABLE= yes
. endif
. if !defined(_ACCEPTABLE)
. if defined(MAKECONF)
_MAKECONF?= ${MAKECONF}
. elif ${OPSYS} == "NetBSD" && ${MAKE} != "${PREFIX}/bin/bmake"
_MAKECONF?= /etc/mk.conf
. else
_MAKECONF?= ${PREFIX}/etc/mk.conf
. endif
PKG_FAIL_REASON+= "${PKGNAME} has an unacceptable license: ${LICENSE}." \
" To view the license, enter \"${MAKE} show-license\"." \
" To indicate acceptance, add this line to ${_MAKECONF}:" \
" ACCEPTABLE_LICENSES+=${LICENSE}"
. endif
.endif