summaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2014-05-17 18:09:14 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2014-05-17 18:09:14 +0000
commit46a53638d333fe49f9e6577bf95cc798176566e2 (patch)
tree8e310dd952a520966531c446664b4ca89aa2d7a7 /Mk
parente77550ecd99833627b3a4f42aba932936d6281e1 (diff)
downloadfreebsd-ports-46a53638d333fe49f9e6577bf95cc798176566e2.zip
Add support for inserting CPE URIs as package annotations.
To enable this for a particular port, add "cpe" to the USES list and optionally define CPE_VENDOR, CPE_PRODUCT etc. if the defaults are not correct (they should be in most cases). Approved by: portmgr (bdrewery)
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Uses/cpe.mk55
1 files changed, 55 insertions, 0 deletions
diff --git a/Mk/Uses/cpe.mk b/Mk/Uses/cpe.mk
new file mode 100644
index 000000000000..252d09ce720d
--- /dev/null
+++ b/Mk/Uses/cpe.mk
@@ -0,0 +1,55 @@
+# $FreeBSD$
+#
+# Include CPE URI in package manifest.
+#
+# http://scap.nist.gov/specifications/cpe/
+#
+# The URI is constructed as follows:
+#
+# cpe:/part:vendor:product:version:update:edition:lang
+#
+# Trailing colons are ommitted.
+#
+# CPE_PART Defaults to (and should always be) "a" for "application"
+# CPE_VENDOR Defaults to same as ${CPE_PRODUCT} (below)
+# CPE_PRODUCT Defaults to ${PORTNAME}
+# CPE_VERSION Defaults to ${PORTVERSION}
+# CPE_UPDATE Defaults to empty
+# CPE_EDITION Defaults to ~~~freebsd~~, see below
+# CPE_LANG Defaults to empty
+#
+# Originally, EDITION was an arbitrary string. In later revisions of
+# the CPE specification, it is composed of five tilde-separated fields
+# with a leading tilde to distinguish the new syntax from the old.
+# The five fields are:
+#
+# CPE_LEGACY_EDITION Defaults to empty
+# CPE_SW_EDITION Defaults to empty
+# CPE_TARGET_SW Defaults to "freebsd"
+# CPE_TARGET_HW Defaults to empty (subject to future change)
+# CPE_OTHER Defaults to empty
+#
+# MAINTAINER: ports-secteam@freebsd.org
+
+.if !defined(_INCLUDE_USES_CPE_MK)
+_INCLUDE_USES_CPE_MK= yes
+
+CPE_PART ?= a
+CPE_PRODUCT ?= ${PORTNAME}
+CPE_VENDOR ?= ${CPE_PRODUCT}
+CPE_VERSION ?= ${PORTVERSION}
+CPE_UPDATE ?=
+CPE_LEGACY_EDITION ?=
+CPE_SW_EDITION ?=
+CPE_TARGET_SW ?= freebsd
+CPE_TARGET_HW ?=
+CPE_OTHER ?=
+CPE_EDITION ?= ~${CPE_LEGACY_EDITION}~${CPE_SW_EDITION}~${CPE_TARGET_SW}~${CPE_TARGET_HW}~${CPE_OTHER}
+CPE_LANG ?=
+_CPE_URI = cpe:/${CPE_PART}:${CPE_VENDOR}:${CPE_PRODUCT}:${CPE_VERSION}:${CPE_UPDATE}:${CPE_EDITION}:${CPE_LANG}
+CPE_URI ?= ${_CPE_URI:C/:+$//}
+
+PKG_NOTES += cpe
+PKG_NOTE_cpe = ${CPE_URI}
+
+.endif