diff --git a/sysutils/cpupdate/Makefile b/sysutils/cpupdate/Makefile index 2374265640de..8a93ce68e515 100644 --- a/sysutils/cpupdate/Makefile +++ b/sysutils/cpupdate/Makefile @@ -1,91 +1,96 @@ PORTNAME= cpupdate DISTVERSION= g20180513 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= sysutils MAINTAINER= eugen@FreeBSD.org COMMENT= CPU microcode update utility for x86 WWW= https://github.com/kernschmelze/cpupdate LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE # # The license of Intel's microcode binary files prohibits redistribution, # so they are no part of this port to not restrict packaging and redistribution # of the port itself. These binaries ought be downloaded and installed # separately from this package by default. There are non-default port options # and "make install-microcodes" command to download and install # the whole bunch of microcode binaries. USE_RC_SUBR= ${PORTNAME} ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= specific to x86 processors SUB_FILES= pkg-message SUB_LIST= CPM_DIR="${CPM_DIR}" INTEL_DIR="${INTEL_DIR}" \ CPM_DATADIR="${CPM_DATADIR}" INTEL_DATADIR="${INTEL_DATADIR}" \ - FETCH_CMD="${FETCH_CMD}" MASTER_SITES="${MASTER_SITES}" \ - DISTFILES="${DISTFILES}" + FETCH_CMD="${FETCH_CMD}" CPUPDATE_SITES="${CPUPDATE_SITES}" \ + CPUPDATE_DISTFILES="${CPUPDATE_DISTFILES}" USE_GITHUB= yes GH_ACCOUNT= kernschmelze GH_PROJECT= ${PORTNAME} GH_TAGNAME= 48e42d5 PLIST_FILES= sbin/${PORTNAME} man/man8/${PORTNAME}.8.gz -# MCE DB r181 +# MCE DB r268 CPM_ACCOUNT= platomav CPM_PROJECT= CPUMicrocodes -CPM_TAGNAME= 044f53b +CPM_TAGNAME= 246a49d OPTIONS_DEFINE= CPM INTEL CPM_DESC= Download platomav/CPUMicrocodes collection CPM_GH_ACCOUNT= ${CPM_ACCOUNT}:cpm CPM_GH_PROJECT= ${CPM_PROJECT}:cpm CPM_GH_TAGNAME= ${CPM_TAGNAME}:cpm +CPM_PACK= ${CPM_ACCOUNT}-${CPM_PROJECT}-${CPM_TAGNAME}_GH0 +CPM_MASTER_SITES= https://codeload.github.com/platomav/${CPM_PROJECT}/tar.gz/${CPM_TAGNAME}?dummy=/${CPM_PACK}.tar.gz CPM_DIR= ${WRKDIR}/${CPM_PROJECT}-${CPM_TAGNAME} CPM_DATADIR= ${DATADIR}/CPUMicrocodes/secondary/Intel -INTEL_PACK= microcode-20210216 +INTEL_PACK= microcode-20230613 INTEL_DESC= Download Intel microcode pack ${INTEL_PACK} INTEL_PROJECT= Intel-Linux-Processor-Microcode-Data-Files INTEL_MASTER_SITES= https://codeload.github.com/intel/${INTEL_PROJECT}/tar.gz/:intel INTEL_DISTFILES= ${INTEL_PACK}:intel INTEL_DIR= ${WRKDIR}/${INTEL_PROJECT}-${INTEL_PACK}/intel-ucode INTEL_DATADIR= ${DATADIR}/CPUMicrocodes/primary/Intel +CPUPDATE_SITES?= ${CPM_MASTER_SITES}:cpm ${INTEL_MASTER_SITES} +CPUPDATE_DISTFILES?= ${CPM_PACK}:cpm ${INTEL_PACK}:intel + post-patch: ${REINPLACE_CMD} -e "s,/usr/local/share/cpupdate,${DATADIR},g" ${WRKSRC}/cpupdate.h do-install: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/sbin ${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.8 ${STAGEDIR}${MANPREFIX}/man/man8 .include -install-microcodes: +install-microcodes: extract .if ${PORT_OPTIONS:MINTEL} - ${RM} -rf ${INTEL_DATADIR} + ${RM} -r ${INTEL_DATADIR} ${MKDIR} ${INTEL_DATADIR} (cd ${INTEL_DIR} && ${COPYTREE_SHARE} . ${INTEL_DATADIR}) (cd ${INTEL_DIR}-with-caveats && ${COPYTREE_SHARE} . ${INTEL_DATADIR}) .endif .if ${PORT_OPTIONS:MCPM} - ${RM} -rf ${CPM_DATADIR} + ${RM} -r ${CPM_DATADIR} ${MKDIR} ${CPM_DATADIR} cpupdate -q -IC -S ${CPM_DIR}/Intel -T ${CPM_DATADIR} >/dev/null .endif .for _o in INTEL CPM .if ${PORT_OPTIONS:M${_o}} @${ECHO} '' @${ECHO} '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' @${ECHO} NOTE: you have to manually remove the directory @${ECHO} ${${_o}_DATADIR} @${ECHO} after deinstallation of ${PORTNAME}. @${ECHO} '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' .endif .endfor .include diff --git a/sysutils/cpupdate/distinfo b/sysutils/cpupdate/distinfo index 3c38ffbd9125..29fae8c8d2f9 100644 --- a/sysutils/cpupdate/distinfo +++ b/sysutils/cpupdate/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1615675326 -SHA256 (microcode-20210216) = b855c81f78705f35341248a0603aa1a6e199ca7f59cd425e061b579329aa9eaa -SIZE (microcode-20210216) = 3506111 +TIMESTAMP = 1687165633 +SHA256 (microcode-20230613) = 894d822d2347222a2595d4fc47d358e01d35a54780123100c317dfc31b1b0cc9 +SIZE (microcode-20230613) = 12338446 SHA256 (kernschmelze-cpupdate-g20180513-48e42d5_GH0.tar.gz) = d28582fe7edfb57da99fb2466417033ee619c32de9c6b5f1a5fae7d9be8253da SIZE (kernschmelze-cpupdate-g20180513-48e42d5_GH0.tar.gz) = 4566722 -SHA256 (platomav-CPUMicrocodes-044f53b_GH0.tar.gz) = 674923cf907545d8ea5a384af21f52e1df911b121969e81a0ecf47dda9064aea -SIZE (platomav-CPUMicrocodes-044f53b_GH0.tar.gz) = 9437937 +SHA256 (platomav-CPUMicrocodes-246a49d_GH0.tar.gz) = 2f5d49aa504b5579395ce75cca6051877766fdf7843defb6441337ffa571b67a +SIZE (platomav-CPUMicrocodes-246a49d_GH0.tar.gz) = 21633497 diff --git a/sysutils/cpupdate/files/cpupdate.in b/sysutils/cpupdate/files/cpupdate.in index 027058fdc613..d9ce46c686f7 100644 --- a/sysutils/cpupdate/files/cpupdate.in +++ b/sysutils/cpupdate/files/cpupdate.in @@ -1,114 +1,114 @@ #!/bin/sh # PROVIDE: cpupdate # REQUIRE: FILESYSTEMS kldxref # BEFORE: netif # KEYWORD: nojail resume # Add these lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # cpupdate_enable (bool): Set to NO by default. # Set it to YES to enable cpupdate. # cpupdate_ibrs_enable (bool): Enable Indirect Branch Restricted # Speculation after start of cpupdate. # Default is YES. # cpupdate_flags (string): Command line flags for cpupdate. # Default is "-w -u". . /etc/rc.subr name=cpupdate rcvar=cpupdate_enable start_postcmd="cpupdate_poststart" load_rc_config $name : ${cpupdate_enable:="NO"} : ${cpupdate_flags:="-w -u"} : ${cpupdate_ibrs_enable:="YES"} : ${cpupdate_fetch:=%%FETCH_CMD%%} -: ${cpupdate_sites:=%%MASTER_SITES%%} -: ${cpupdate_distfiles:=%%DISTFILES%%} +: ${cpupdate_sites:=%%CPUPDATE_SITES%%} +: ${cpupdate_distfiles:=%%CPUPDATE_DISTFILES%%} command=%%PREFIX%%/sbin/${name} download_cmd="cpupdate_download" resume_cmd="cpupdate_resume" extra_commands="download resume" cpupdate_distfile() { local _distfile setvar $1 '' for _distfile in $cpupdate_distfiles do case $_distfile in *:$2) setvar $1 ${_distfile%:*}; return;; esac done } cpupdate_download() { local _d _dst _file _tmpdir _url local - set -e : ${TMPDIR:=/var/tmp} export TMPDIR trap 'rm -rf $_tmpdir' EXIT _tmpdir=$(mktemp -d -t ${name}) for _url in $cpupdate_sites do case "$_url" in *:cpm|*:intel) cpupdate_distfile _file ${_url##*:} _url=${_url%:*}${_file} echo Downloading $_url $cpupdate_fetch -o - $_url | tar -C $_tmpdir -xf - || exit ;; esac done echo -n Installing microcodes to %%DATADIR%% ... umask 022 _dst=%%INTEL_DATADIR%% _d=%%INTEL_DIR%% _d=$_tmpdir/Intel${_d##*/Intel} if [ -d $_d ]; then rm -rf $_dst || true mkdir -p $_dst cp -Rp $_d/ $_dst [ -d $_d-with-caveats ] && cp -Rp $_d-with-caveats/ $_dst chmod -R 644 $_dst chown -R root:wheel $_dst chmod 755 $_dst fi _dst=%%CPM_DATADIR%% _d=%%CPM_DIR%% _d=$_tmpdir/${_d##*/}/Intel if [ -d $_d ]; then rm -rf $_d/LICENSE $_dst || true mkdir -p $_dst %%PREFIX%%/sbin/${name} -q -IC -S $_d -T $_dst >/dev/null fi echo ' done.' echo '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' echo NOTE: you have to manually remove the directory echo %%DATADIR%% echo after deinstallation of ${name}. echo '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' } cpupdate_poststart() { checkyesno cpupdate_ibrs_enable && sysctl -i hw.ibrs_disable=0 return 0 } cpupdate_resume() { run_rc_command start _postcmd='' } run_rc_command "$1"