pkgsrc/mk/license.mk
rillig f20861ee38 Added the license-handling code from bsd.pkg.mk to here. When this file
will become active, the corresponding code will be cleaned up in
bsd.pkg.mk.
2007-07-20 14:21:26 +00:00

109 lines
3.7 KiB
Makefile

# $NetBSD: license.mk,v 1.5 2007/07/20 14:21:26 rillig Exp $
#
# Note: This file is in draft state and not yet actively used.
#
# This file handles everything about the LICENSE variable. It is
# included automatically by bsd.pkg.mk.
#
# 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
# refuse to build the package.
#
# XXX: pkg_install should also check LICENSE and decline to
# install if it is not in ACCEPTABLE_LICENSES.
#
# 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.
#
# When the package has multiple licenses, there are many different
# cases. Some packages use an OR-combination, while others use an
# AND-combination. Currently, pkgsrc can only handle a single
# license per package. For now, add a description of the licensing
# to ../doc/TODO, section "Licenses of packages". Note that in
# such cases, one can place the text of both licenses in
# licenses/foo-license and reference it.
#
# Every package should specify its license. (Prior to July 2007,
# 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 before July, 2007 did not require
# tagging because they were Open Source or Free. The intent is
# to make it contain licenses that are Open Source or Free and
# not controversial, so as to provide a 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.)
#
# === See also ===
#
# ../doc/TODO, section "Licenses of packages"
#
# TODO: Determine whether GPLv3 should be included (and therefore if
# there should be a "widely accepted" test in addition to open
# source/free). Perhaps wait until OSI decides whether or not to
# approve GPLv3 as open source.
# This list is not complete. Free and Open Source licenses should be
# added to the list as they are added to pkgsrc.
DEFAULT_ACCEPTABLE_LICENSES= \
public-domain \
gnu-gpl-v2 gnu-lgpl-v2 \
original-bsd modified-bsd \
x11 \
apache-2.0 \
cddl-1.0
.if !defined(LICENSE)
. if defined(AFTER_2007Q3)
LICENSE?= unknown
PKG_FAIL_REASON+= "[license.mk] Every package must define a LICENSE."
. else
WARNINGS+= "[license.mk] Every package should define a LICENSE."
. endif
.else
. if defined(ACCEPTABLE_LICENSES) && !empty(ACCEPTABLE_LICENSES:M${LICENSE})
_ACCEPTABLE= yes
. endif
. if !defined(_ACCEPTABLE)
PKG_FAIL_REASON+= "${PKGNAME} has an unacceptable license: ${LICENSE}." \
" To view the license, enter \"${MAKE} show-license\"." \
" To indicate acceptance, add this line to your mk.conf:" \
" ACCEPTABLE_LICENSES+=${LICENSE}"
. endif
.endif