aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/cpupdate/Makefile
blob: 1c0bcc34d01628b6e503e6c7f60fa2820b4f3438 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Created by: Eugene Grosbein <eugen@FreeBSD.org>
# $FreeBSD$

PORTNAME=   cpupdate
DISTVERSION=    g20180513
PORTREVISION=   1
CATEGORIES= sysutils

MAINTAINER= eugen@FreeBSD.org
COMMENT=    CPU microcode update utility for x86

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}

USE_GITHUB= yes
GH_ACCOUNT= kernschmelze
GH_PROJECT= ${PORTNAME}
GH_TAGNAME= 48e42d5

PLIST_FILES=    sbin/${PORTNAME} man/man8/${PORTNAME}.8.gz

# MCE DB r88
CPM_ACCOUNT=    platomav
CPM_PROJECT=    CPUMicrocodes
CPM_TAGNAME=    0d88b2e

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_DIR=        ${WRKDIR}/${CPM_PROJECT}-${CPM_TAGNAME}
CPM_DATADIR=        ${DATADIR}/CPUMicrocodes/secondary/Intel

INTEL_PACK=     microcode-20180807.tgz
INTEL_DESC=     Download Intel microcode pack ${INTEL_PACK}
INTEL_MASTER_SITES= https://downloadmirror.intel.com/28039/eng/:intel
INTEL_DISTFILES=    ${INTEL_PACK}:intel
INTEL_DIR=      ${WRKDIR}/intel-ucode
INTEL_DATADIR=      ${DATADIR}/CPUMicrocodes/primary/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 <bsd.port.options.mk>

install-microcodes:
.if ${PORT_OPTIONS:MINTEL}
    ${RM} -rf ${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}
    ${MKDIR} ${CPM_DATADIR}
    cpupdate -IC -S ${CPM_DIR}/Intel -T ${CPM_DATADIR}
.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 <bsd.port.mk>