git: 813905682ec4 - main - sysutils/devcpu-data: Split off two new ports for vendor data

From: Joseph Mingrone <jrm_at_FreeBSD.org>
Date: Sun, 07 Nov 2021 21:18:53 UTC
The branch main has been updated by jrm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=813905682ec40c3323f0cb0b5dc86bb21bbf2f0d

commit 813905682ec40c3323f0cb0b5dc86bb21bbf2f0d
Author:     Joseph Mingrone <jrm@FreeBSD.org>
AuthorDate: 2021-10-06 21:23:53 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2021-11-07 21:17:03 +0000

    sysutils/devcpu-data: Split off two new ports for vendor data
    
    sysutils/devcpu-data is now just an RC script that optionally depends on
    two new ports, sysutils/devcpu-data-amd and sysutils/devcpu-data-intel.
    The two new ports each contain vendor microcode data.
    
    While here:
    
    - Set missing license information.  The license was obtained from
    https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/LICENSE.amd-ucode
    
    - Update varaible ordering per portclippy
    
    Reviewed by:    decke, emaste, markj
    Approved by:    sbruno (maintainer)
    Differential Revision:  https://reviews.freebsd.org/D32349
---
 sysutils/Makefile                                  |  2 +
 sysutils/devcpu-data-amd/Makefile                  | 35 ++++++++++++
 sysutils/devcpu-data-amd/distinfo                  |  3 +
 sysutils/devcpu-data-amd/files/LICENSE.amd-ucode   | 64 ++++++++++++++++++++++
 sysutils/devcpu-data-amd/pkg-descr                 |  2 +
 sysutils/devcpu-data-amd/pkg-message               |  7 +++
 sysutils/devcpu-data-amd/pkg-plist                 |  4 ++
 sysutils/devcpu-data-intel/Makefile                | 41 ++++++++++++++
 sysutils/devcpu-data-intel/distinfo                |  3 +
 .../files/LICENSE                                  |  0
 .../files/Makefile                                 |  0
 .../files/ucode-split.c                            |  0
 sysutils/devcpu-data-intel/pkg-descr               |  9 +++
 sysutils/devcpu-data-intel/pkg-message             |  7 +++
 .../{devcpu-data => devcpu-data-intel}/pkg-plist   |  4 --
 sysutils/devcpu-data/Makefile                      | 51 +++++++----------
 sysutils/devcpu-data/distinfo                      |  5 --
 sysutils/devcpu-data/files/microcode_update.in     | 20 +++++--
 sysutils/devcpu-data/files/pkg-message.in          | 46 ++++++++++++++++
 sysutils/devcpu-data/pkg-descr                     |  6 +-
 sysutils/devcpu-data/pkg-message                   | 46 ----------------
 21 files changed, 262 insertions(+), 93 deletions(-)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 381a02c0b427..15ea58885094 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -255,6 +255,8 @@
     SUBDIR += desktop-installer
     SUBDIR += detox
     SUBDIR += devcpu-data
+    SUBDIR += devcpu-data-amd
+    SUBDIR += devcpu-data-intel
     SUBDIR += devstat
     SUBDIR += dfc
     SUBDIR += di
diff --git a/sysutils/devcpu-data-amd/Makefile b/sysutils/devcpu-data-amd/Makefile
new file mode 100644
index 000000000000..834370e9545c
--- /dev/null
+++ b/sysutils/devcpu-data-amd/Makefile
@@ -0,0 +1,35 @@
+PORTNAME=	data
+PORTVERSION=	20191228
+CATEGORIES=	sysutils
+MASTER_SITES=	LOCAL/sbruno
+PKGNAMEPREFIX=	devcpu-
+PKGNAMESUFFIX=	-amd
+DISTNAME=	amd64-microcode.${PORTVERSION}
+
+MAINTAINER=	sbruno@FreeBSD.org
+COMMENT=	AMD CPUs microcode updates
+
+LICENSE=	EULA
+LICENSE_NAME=	Advanced Micro Devices License Agreement
+LICENSE_FILE=	${FILESDIR}/LICENSE.amd-ucode
+LICENSE_PERMS=	dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+ONLY_FOR_ARCHS=	amd64 i386
+
+USES=		tar:xz
+
+NO_ARCH=	yes
+NO_BUILD=	yes
+
+NO_WRKSUBDIR=	yes
+
+DATADIR=	${PREFIX}/share/cpucontrol
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}/
+	${INSTALL_DATA} ${WRKSRC}/microcode_amd.bin ${STAGEDIR}${DATADIR}/
+	${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam15h.bin ${STAGEDIR}${DATADIR}/
+	${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam16h.bin ${STAGEDIR}${DATADIR}/
+	${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam17h.bin ${STAGEDIR}${DATADIR}/
+
+.include <bsd.port.mk>
diff --git a/sysutils/devcpu-data-amd/distinfo b/sysutils/devcpu-data-amd/distinfo
new file mode 100644
index 000000000000..5284697b3987
--- /dev/null
+++ b/sysutils/devcpu-data-amd/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633576196
+SHA256 (amd64-microcode.20191228.tar.xz) = 156eef8950f28436e045c1d5ac6e4738d99c07a6737d35bf966901f4b260abb3
+SIZE (amd64-microcode.20191228.tar.xz) = 28827
diff --git a/sysutils/devcpu-data-amd/files/LICENSE.amd-ucode b/sysutils/devcpu-data-amd/files/LICENSE.amd-ucode
new file mode 100644
index 000000000000..de5b29c4e486
--- /dev/null
+++ b/sysutils/devcpu-data-amd/files/LICENSE.amd-ucode
@@ -0,0 +1,64 @@
+Copyright (C) 2010-2018 Advanced Micro Devices, Inc., All rights reserved.
+
+Permission is hereby granted by Advanced Micro Devices, Inc. ("AMD"),
+free of any license fees, to any person obtaining a copy of this
+microcode in binary form (the "Software") ("You"), to install,
+reproduce, copy and distribute copies of the Software and to permit
+persons to whom the Software is provided to do the same, subject to
+the following terms and conditions.  Your use of any portion of the
+Software shall constitute Your acceptance of the following terms and
+conditions. If You do not agree to the following terms and conditions,
+do not use, retain or redistribute any portion of the Software.
+
+If You redistribute this Software, You must reproduce the above
+copyright notice and this license with the Software.
+Without specific, prior, written permission from AMD, You may not
+reference AMD or AMD products in the promotion of any product derived
+from or incorporating this Software in any manner that implies that
+AMD endorses or has certified such product derived from or
+incorporating this Software.
+
+You may not reverse engineer, decompile, or disassemble this Software
+or any portion thereof.
+
+THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
+MERCHANTABILITY, NONINFRINGEMENT, TITLE, FITNESS FOR ANY PARTICULAR
+PURPOSE, OR WARRANTIES ARISING FROM CONDUCT, COURSE OF DEALING, OR
+USAGE OF TRADE. IN NO EVENT SHALL AMD OR ITS LICENSORS BE LIABLE FOR
+ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR
+LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF DATA OR
+INFORMATION) ARISING OUT OF AMD'S NEGLIGENCE, GROSS NEGLIGENCE, THE
+USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF AMD HAS BEEN ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS
+PROHIBIT THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR
+INCIDENTAL DAMAGES OR THE EXCLUSION OF IMPLIED WARRANTIES, THE ABOVE
+LIMITATION MAY NOT APPLY TO YOU.
+
+Without limiting the foregoing, the Software may implement third party
+technologies for which You must obtain licenses from parties other
+than AMD. You agree that AMD has not obtained or conveyed to You, and
+that You shall be responsible for obtaining the rights to use and/or
+distribute the applicable underlying intellectual property rights
+related to the third party technologies. These third party
+technologies are not licensed hereunder.
+
+If You use the Software (in whole or in part), You shall adhere to all
+applicable U.S., European, and other export laws, including but not
+limited to the U.S. Export Administration Regulations ("EAR"), (15
+C.F.R. Sections 730 through 774), and E.U. Council Regulation (EC) No
+1334/2000 of 22 June 2000. Further, pursuant to Section 740.6  of the
+EAR, You hereby certify that, except pursuant to a license granted by
+the United States Department of Commerce Bureau of Industry and
+Security or as otherwise permitted pursuant to a License Exception
+under the U.S. Export Administration Regulations ("EAR"), You will not
+(1) export, re-export or release to a national of a country in Country
+Groups D:1, E:1 or E:2 any restricted technology, software, or source
+code You receive hereunder, or (2) export to Country Groups D:1, E:1
+or E:2 the direct product of such technology or software, if such
+foreign produced direct product is subject to national security
+controls as identified on the Commerce Control List (currently found
+in Supplement 1 to Part 774 of EAR). For the most current Country
+Group listings, or for additional information about the EAR or Your
+obligations under those regulations, please refer to the U.S. Bureau
+of Industry and Security?s website at ttp://www.bis.doc.gov/.
diff --git a/sysutils/devcpu-data-amd/pkg-descr b/sysutils/devcpu-data-amd/pkg-descr
new file mode 100644
index 000000000000..beb555e676c7
--- /dev/null
+++ b/sysutils/devcpu-data-amd/pkg-descr
@@ -0,0 +1,2 @@
+This port uses the cpuctl(4) microcode update facility to keep your AMD
+processor's firmware up-to-date.
diff --git a/sysutils/devcpu-data-amd/pkg-message b/sysutils/devcpu-data-amd/pkg-message
new file mode 100644
index 000000000000..8d00883e6b4f
--- /dev/null
+++ b/sysutils/devcpu-data-amd/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+  message: <<EOM
+Refer to the devcpu-data installation notes to enable AMD microcode updates.
+EOM
+}
+]
diff --git a/sysutils/devcpu-data-amd/pkg-plist b/sysutils/devcpu-data-amd/pkg-plist
new file mode 100644
index 000000000000..2bf71260431b
--- /dev/null
+++ b/sysutils/devcpu-data-amd/pkg-plist
@@ -0,0 +1,4 @@
+%%DATADIR%%/microcode_amd.bin
+%%DATADIR%%/microcode_amd_fam15h.bin
+%%DATADIR%%/microcode_amd_fam16h.bin
+%%DATADIR%%/microcode_amd_fam17h.bin
diff --git a/sysutils/devcpu-data-intel/Makefile b/sysutils/devcpu-data-intel/Makefile
new file mode 100644
index 000000000000..bffaad57b547
--- /dev/null
+++ b/sysutils/devcpu-data-intel/Makefile
@@ -0,0 +1,41 @@
+PORTNAME=	data
+DISTVERSIONPREFIX=	microcode-
+DISTVERSION=	20210608
+CATEGORIES=	sysutils
+PKGNAMEPREFIX=	devcpu-
+PKGNAMESUFFIX=	-intel
+
+MAINTAINER=	sbruno@FreeBSD.org
+COMMENT=	Intel CPU microcode updates
+
+LICENSE=	EULA
+LICENSE_NAME=	Intel Software License Agreement
+LICENSE_FILE=	${FILESDIR}/LICENSE
+LICENSE_PERMS=	dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+ONLY_FOR_ARCHS=	amd64 i386
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	intel
+GH_PROJECT=	Intel-Linux-Processor-Microcode-Data-Files
+
+DATADIR=	${PREFIX}/share/cpucontrol
+FWDIR=		/boot/firmware
+NO_ARCH=	yes
+
+NO_WRKSUBDIR=	yes
+
+post-extract:
+	${CP} -p ${FILESDIR}/Makefile ${FILESDIR}/ucode-split.c ${WRKSRC}
+	${REINPLACE_CMD} 's|%%GH_TAGNAME%%|${GH_TAGNAME}|g' ${WRKSRC}/Makefile
+	${CAT} ${WRKSRC}/Intel-Linux-Processor-Microcode-Data-Files-${GH_TAGNAME}/intel-ucode/* \
+	  ${WRKSRC}/Intel-Linux-Processor-Microcode-Data-Files-${GH_TAGNAME}/intel-ucode-with-caveats/* \
+	  > ${WRKSRC}/intel-ucode.bin
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}/
+	${INSTALL_DATA} ${WRKSRC}/mcodes/* ${STAGEDIR}${DATADIR}/
+	${MKDIR} ${STAGEDIR}${FWDIR}
+	${INSTALL_DATA} ${WRKSRC}/intel-ucode.bin ${STAGEDIR}${FWDIR}/
+
+.include <bsd.port.mk>
diff --git a/sysutils/devcpu-data-intel/distinfo b/sysutils/devcpu-data-intel/distinfo
new file mode 100644
index 000000000000..3b4ecbb7434a
--- /dev/null
+++ b/sysutils/devcpu-data-intel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633571846
+SHA256 (intel-Intel-Linux-Processor-Microcode-Data-Files-microcode-20210608_GH0.tar.gz) = fd85b6b769efd029dec6a2c07106fd18fb4dcb548b7bc4cde09295a8344ef6d7
+SIZE (intel-Intel-Linux-Processor-Microcode-Data-Files-microcode-20210608_GH0.tar.gz) = 4782451
diff --git a/sysutils/devcpu-data/files/LICENSE b/sysutils/devcpu-data-intel/files/LICENSE
similarity index 100%
rename from sysutils/devcpu-data/files/LICENSE
rename to sysutils/devcpu-data-intel/files/LICENSE
diff --git a/sysutils/devcpu-data/files/Makefile b/sysutils/devcpu-data-intel/files/Makefile
similarity index 100%
rename from sysutils/devcpu-data/files/Makefile
rename to sysutils/devcpu-data-intel/files/Makefile
diff --git a/sysutils/devcpu-data/files/ucode-split.c b/sysutils/devcpu-data-intel/files/ucode-split.c
similarity index 100%
rename from sysutils/devcpu-data/files/ucode-split.c
rename to sysutils/devcpu-data-intel/files/ucode-split.c
diff --git a/sysutils/devcpu-data-intel/pkg-descr b/sysutils/devcpu-data-intel/pkg-descr
new file mode 100644
index 000000000000..8427801bce3b
--- /dev/null
+++ b/sysutils/devcpu-data-intel/pkg-descr
@@ -0,0 +1,9 @@
+This port uses the cpuctl(4) microcode update facility to keep your Intel
+processor's firmware up-to-date.
+
+Updating your microcode can help to mitigate certain potential security
+vulnerabilities in CPUs as well as address certain functional issues that could,
+for example, result in unpredictable system behavior such as hangs, crashes,
+unexpected reboots, data errors, etc.
+
+WWW: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files
diff --git a/sysutils/devcpu-data-intel/pkg-message b/sysutils/devcpu-data-intel/pkg-message
new file mode 100644
index 000000000000..3c06c67759de
--- /dev/null
+++ b/sysutils/devcpu-data-intel/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+  message: <<EOM
+Refer to the devcpu-data installation notes to enable Intel microcode updates.
+EOM
+}
+]
diff --git a/sysutils/devcpu-data/pkg-plist b/sysutils/devcpu-data-intel/pkg-plist
similarity index 97%
rename from sysutils/devcpu-data/pkg-plist
rename to sysutils/devcpu-data-intel/pkg-plist
index ed0fa8528474..fdaf7310e4b9 100644
--- a/sysutils/devcpu-data/pkg-plist
+++ b/sysutils/devcpu-data-intel/pkg-plist
@@ -201,8 +201,4 @@
 %%DATADIR%%/0f-06-04.34
 %%DATADIR%%/0f-06-05.01
 %%DATADIR%%/0f-06-08.22
-%%DATADIR%%/microcode_amd.bin
-%%DATADIR%%/microcode_amd_fam15h.bin
-%%DATADIR%%/microcode_amd_fam16h.bin
-%%DATADIR%%/microcode_amd_fam17h.bin
 /boot/firmware/intel-ucode.bin
diff --git a/sysutils/devcpu-data/Makefile b/sysutils/devcpu-data/Makefile
index 1a822c2f4ece..9a16ab166af3 100644
--- a/sysutils/devcpu-data/Makefile
+++ b/sysutils/devcpu-data/Makefile
@@ -1,47 +1,38 @@
 # Created by: stas
 
 PORTNAME=	data
-PORTVERSION=	1.39
+PORTVERSION=	20211006
 CATEGORIES=	sysutils
-MASTER_SITES=	LOCAL/sbruno:amd
+MASTER_SITES=	# none
 PKGNAMEPREFIX=	devcpu-
-DISTFILES=	amd64-microcode.20191228.tar.xz:amd
+DISTFILES=	# none
+EXTRACT_ONLY=	# none
 
 MAINTAINER=	sbruno@FreeBSD.org
-COMMENT=	Intel and AMD CPUs microcode updates
+COMMENT=	AMD and Intel CPUs microcode updates
 
-LICENSE=	EULA
-LICENSE_NAME=	Intel Software License Agreement
-LICENSE_FILE=	${FILESDIR}/LICENSE
-LICENSE_PERMS=	dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
-
-USE_GITHUB=	yes
-GH_ACCOUNT=	intel
-GH_PROJECT=	Intel-Linux-Processor-Microcode-Data-Files
-GH_TAGNAME=	microcode-20210608
+LICENSE=	BSD2CLAUSE
 
 ONLY_FOR_ARCHS=	amd64 i386
+
+USE_RC_SUBR=	microcode_update
+
+DATADIR=	${PREFIX}/share/cpucontrol
 NO_ARCH=	yes
+NO_BUILD=	yes
+NO_INSTALL=	yes
+SUB_FILES=	pkg-message
+
 NO_WRKSUBDIR=	yes
 
-DATADIR=	${PREFIX}/share/cpucontrol
-FWDIR=		/boot/firmware
+OPTIONS_DEFAULT=	AMD INTEL
+OPTIONS_MULTI=		VENDOR
+OPTIONS_MULTI_VENDOR=	AMD INTEL
 
-USE_RC_SUBR=	microcode_update
+AMD_DESC=	Depend on sysutils/devcpu-data-amd
+INTEL_DESC=	Depend on sysutils/devcpu-data-intel
 
-post-extract:
-	${CP} -p ${FILESDIR}/Makefile ${FILESDIR}/ucode-split.c ${WRKSRC}
-	${REINPLACE_CMD} 's|%%GH_TAGNAME%%|${GH_TAGNAME}|g' ${WRKSRC}/Makefile
-	${CAT} ${WRKSRC}/Intel-Linux-Processor-Microcode-Data-Files-${GH_TAGNAME}/intel-ucode/* ${WRKSRC}/Intel-Linux-Processor-Microcode-Data-Files-${GH_TAGNAME}/intel-ucode-with-caveats/* > ${WRKSRC}/intel-ucode.bin
-
-do-install:
-	${MKDIR} ${STAGEDIR}${DATADIR}/
-	${INSTALL_DATA} ${WRKSRC}/microcode_amd.bin ${STAGEDIR}${DATADIR}/
-	${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam15h.bin ${STAGEDIR}${DATADIR}/
-	${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam16h.bin ${STAGEDIR}${DATADIR}/
-	${INSTALL_DATA} ${WRKSRC}/microcode_amd_fam17h.bin ${STAGEDIR}${DATADIR}/
-	${INSTALL_DATA} ${WRKSRC}/mcodes/* ${STAGEDIR}${DATADIR}/
-	${MKDIR} ${STAGEDIR}${FWDIR}
-	${INSTALL_DATA} ${WRKSRC}/intel-ucode.bin ${STAGEDIR}${FWDIR}/
+AMD_RUN_DEPENDS=	${LOCALBASE}/share/cpucontrol/microcode_amd.bin:sysutils/devcpu-data-amd
+INTEL_RUN_DEPENDS=	/boot/firmware/intel-ucode.bin:sysutils/devcpu-data-intel
 
 .include <bsd.port.mk>
diff --git a/sysutils/devcpu-data/distinfo b/sysutils/devcpu-data/distinfo
deleted file mode 100644
index 06b3847dded6..000000000000
--- a/sysutils/devcpu-data/distinfo
+++ /dev/null
@@ -1,5 +0,0 @@
-TIMESTAMP = 1623192235
-SHA256 (amd64-microcode.20191228.tar.xz) = 156eef8950f28436e045c1d5ac6e4738d99c07a6737d35bf966901f4b260abb3
-SIZE (amd64-microcode.20191228.tar.xz) = 28827
-SHA256 (intel-Intel-Linux-Processor-Microcode-Data-Files-1.39-microcode-20210608_GH0.tar.gz) = fd85b6b769efd029dec6a2c07106fd18fb4dcb548b7bc4cde09295a8344ef6d7
-SIZE (intel-Intel-Linux-Processor-Microcode-Data-Files-1.39-microcode-20210608_GH0.tar.gz) = 4782451
diff --git a/sysutils/devcpu-data/files/microcode_update.in b/sysutils/devcpu-data/files/microcode_update.in
index 005845df4f56..b06b21d6f903 100644
--- a/sysutils/devcpu-data/files/microcode_update.in
+++ b/sysutils/devcpu-data/files/microcode_update.in
@@ -12,7 +12,7 @@
 # microcode_update_datadir (str):	Directory, microcode updates stored in.
 #					Default is "%%DATADIR%%"
 # microcode_update_cpus (str):		A list of cpus to update on startup, or "ALL" for all.
-#					Example: microcode_update_cpus_cpus="0 CPU0"
+#					Example: microcode_update_cpus="0 1"
 #					Set to "ALL" by default. 
 # microcode_update_flags (str):		Flags for cpucontrol(8).
 
@@ -40,11 +40,11 @@ microcode_update_prepare()
 microcode_update_start()
 {
 	echo "Updating CPU Microcode..."
-	if [ "${microcode_cpus}" = "ALL" ]; then
+	if [ "${microcode_update_cpus}" = "ALL" ]; then
 		ncpu=`/sbin/sysctl -n hw.ncpu`
 		cpus=`jot ${ncpu} 0`;
 	else
-		cpus=${microcode_cpus}
+		cpus=${microcode_update_cpus}
 	fi
 	for i in ${cpus}; do
 		${CMT} -u ${microcode_update_flags} \
@@ -52,7 +52,7 @@ microcode_update_start()
                     logger -p daemon.notice -t microcode_update || \
 		    (echo "Microcode Update Failed." && exit 1)
 	done
-	if [ "${microcode_cpus}" = "ALL" ]; then
+	if [ "${microcode_update_cpus}" = "ALL" ]; then
                 CPUCONTROL_UPDATED=$(cpucontrol -h 2>&1 | grep -q -- -e; echo $?)
                 if [ ${CPUCONTROL_UPDATED} -ne 0 ]; then
                         echo "Please update your system in order to update CPU microcode."
@@ -70,9 +70,19 @@ microcode_update_start()
 load_rc_config $name
 
 # Set default values
+if [ -n "${microcode_cpus}" ]; then
+	if [ -n "${microcode_update_cpus}" ]; then
+		echo "Warning: Ignoring deprecated rc variable, microcode_cpus."
+	else
+		echo "Warning: rc variable microcode_cpus is deprecated.
+Warning: Set microcode_udpate_cpus instead."
+		microcode_update_cpus="${microcode_cpus}"
+        fi
+fi
+
 : ${microcode_update_enable="NO"}
 : ${microcode_update_datadir="%%DATADIR%%"}
-: ${microcode_cpus="ALL"}
+: ${microcode_update_cpus="ALL"}
 : ${microcode_update_flags=""}
 
 run_rc_command "$1"
diff --git a/sysutils/devcpu-data/files/pkg-message.in b/sysutils/devcpu-data/files/pkg-message.in
new file mode 100644
index 000000000000..c2860f035372
--- /dev/null
+++ b/sysutils/devcpu-data/files/pkg-message.in
@@ -0,0 +1,46 @@
+[
+{ type: install
+  message: <<EOM
+This port includes an RC script, which is one of two methods to update the
+CPU microcode on a FreeBSD system.
+
+1. The first method, which does not require the RC script included in this
+   port is currently only supported on FreeBSD 12.0 or later and Intel i386
+   and amd64 processors.  It is the preferred method when available because
+   it ensures that any CPU features introduced by a microcode update are
+   visible to the kernel by applying the update before the kernel performs
+   CPU feature detection.
+
+   To enable updates using the first method, add the following lines to
+   /boot/loader.conf:
+
+   cpu_microcode_load="YES"
+   cpu_microcode_name="/boot/firmware/intel-ucode.bin"
+
+   The microcode update will be loaded when the system is rebooted.
+
+
+2. The second method, which uses the RC script included in this port can
+   be enabled by adding the following line to /etc/rc.conf:
+
+   microcode_update_enable="YES"
+
+   The microcode update is then applied upon reboot or when the microcode
+   update service is run via:
+
+   # service microcode_update start
+
+   If the CPU requires a microcode update, a console message such as the
+   following will appear:
+
+   Updating CPU Microcode...
+   %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl0 from rev 0x17 to rev 0x22... done.
+   %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl2 from rev 0x17 to rev 0x22... done.
+   %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl4 from rev 0x17 to rev 0x22... done.
+   %%DATADIR%%/m32306c3_00000022.fw: updating cpu /dev/cpuctl6 from rev 0x17 to rev 0x22... done.
+   Done.
+
+It is safe to enable both methods.
+EOM
+}
+]
diff --git a/sysutils/devcpu-data/pkg-descr b/sysutils/devcpu-data/pkg-descr
index 2f4bf5362506..815fa3126b0d 100644
--- a/sysutils/devcpu-data/pkg-descr
+++ b/sysutils/devcpu-data/pkg-descr
@@ -1,3 +1,3 @@
-This port supplies microcode updates for use with cpuctl(4) microcode
-update facility.  These could be used to keep your processor's firmware
-up-to-date.
+An RC script for use with the cpuctl(4) microcode update facility to keep your
+processor's firmware up-to-date.  CPU microcode data must be installed from a
+vendor.  See sysutils/devcpu-data-amd and sysutils/devcpu-data-intel.
diff --git a/sysutils/devcpu-data/pkg-message b/sysutils/devcpu-data/pkg-message
deleted file mode 100644
index b645f50bc138..000000000000
--- a/sysutils/devcpu-data/pkg-message
+++ /dev/null
@@ -1,46 +0,0 @@
-[
-{ type: install
-  message: <<EOM
-Installing this port will allow host startup to update the CPU microcode on 
-a FreeBSD system automatically.  There are two methods for updating CPU
-microcode: the first methods loads and applies the update before the kernel
-begins booting, and the second method loads and applies updates using an
-rc script.  The first method is preferred, but is currently only supported
-on Intel i386 and amd64 processors running FreeBSD 12.0.  It is safe to
-enable both methods.
-
-The first method ensures that any CPU features introduced by a microcode
-update are visible to the kernel.  In other words, the update is loaded
-before the kernel performs CPU feature detection.
-
-To enable updates using the first method, add the following lines to
-the system's /boot/loader.conf:
-
-cpu_microcode_load="YES"
-cpu_microcode_name="/boot/firmware/intel-ucode.bin"
-
-This method will not load the microcode update until the system is
-rebooted.
-
-To enable updates using the second method, add the following line to
-the system's /etc/rc.conf:
-
-microcode_update_enable="YES"
-
-Then, to ensure the update is applied, reboot the system or start the
-microcode update service via:
-
-# service microcode_update start
-
-If the CPU requires a microcode update, a console message such as the following
-will appear:
-
-Updating CPU Microcode...
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl0 from rev 0x17 to rev 0x22... done.
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl2 from rev 0x17 to rev 0x22... done.
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl4 from rev 0x17 to rev 0x22... done.
-/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl6 from rev 0x17 to rev 0x22... done.
-Done.
-EOM
-}
-]