From nobody Sun Nov 03 21:00:07 2024 X-Original-To: dev-commits-ports-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4XhRnM5GPZz5cpRV; Sun, 03 Nov 2024 21:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XhRnM3MkRz57vB; Sun, 3 Nov 2024 21:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1730667607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6ukh06Rm4Lu5Lg1RX1w6SL8Qyw13TSvddTv8bjQmYYU=; b=tWTTVm45Mj6kKlkpSUepQNLe0u47yVMQIRBT2oHwMhOt6PNqun7q6EIxvEv8KMD55eZjVD B3KlNR8TvHKFvTBT+4r8UkkNCzabbWZzkZ5yhNwD2nzxVodEavmfUKm8oskuNWcP44p2oJ P5nO52UC4EKe0eDC4K+pN0lvkfRqcZYYgq9Q7YcdyNiSRYSTE8j0EDAmsOdMmYtABZmzCR T2iQfbzvtu2wt1sL0UmlqbhFSr/qPRi7jpA50sTtIEkMRuIHTYg2r2JjbwiYj1TStPWW2t JqWWLYAspl+BTyHGHUksw+y1Kgty4RIYaLfPLI81tKVPXy4hlQc7Rds3EedPag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1730667607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6ukh06Rm4Lu5Lg1RX1w6SL8Qyw13TSvddTv8bjQmYYU=; b=GeyMuKYsARnVbTpl23xBcdbqYeaMt5opmkUP3h9zWK+D1pSOItKVO7OIxCHHO6gqKdRsT/ bOqo7AikdXjcu5sDuz7tfl8EGLfqkWm570K24Fo6sxM9mvJ7NbwoKgU2KffBTGbXiWTt2X /QWmb7zcBS2XYlZ/8aUQySm9XGd4xIEJl+SJTZNh0BvMTXhVEjUt/vF1bLJ4Htua2OD6EW ZhfW+Gv+wpo4CaP40zujwtbDmkL1fd0Axh2zzWAeP7DyF28bSbm7jJkOdUY/GXXaZ1IaXO 1PrBixhSnX9wdOR+nuz8yI5pebbyDz1QjpgBe+YteQjx87lmEFUSuNW7FsXk1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1730667607; a=rsa-sha256; cv=none; b=Iek2qk+N1pUTfkQZJumU7tfdVftMU0t3WyLm7yR7NBcaRy6GH1OUZW6qvpjVr2Qkb40scm ocj7CaTp6zJxvATVqy/PF30Sqn93pyLYUgsRtr14yDL90jU50jBdnxho8am/qU4tcOa/qL 3sxl+G9CfqGnuZJatCWd6SGy2JveWMBDO+4zXpiNsLB2oj457x8O2TZy/+LfzktbJvV0Sv OqLsU+ul0LonT1DV9qGWkhfkDA2prL7MTrS13PRBjFpnMHXt5SeaK2I7bpcPlwSG7HPH8A ROxmdCgniUZ1tlqyzG/3jnSAbMR2svLFvJuW72wMWq76ChH7n2dFK6WTr3tmYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4XhRnM2pRtz14kw; Sun, 3 Nov 2024 21:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4A3L07w6064378; Sun, 3 Nov 2024 21:00:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4A3L074S064373; Sun, 3 Nov 2024 21:00:07 GMT (envelope-from git) Date: Sun, 3 Nov 2024 21:00:07 GMT Message-Id: <202411032100.4A3L074S064373@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: fefc341cb156 - 2024Q4 - net/wifi-firmware-kmod: stop building kmods on main and 14.2 and on List-Id: Commits to the quarterly branches of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-branches@freebsd.org Sender: owner-dev-commits-ports-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: ports X-Git-Refname: refs/heads/2024Q4 X-Git-Reftype: branch X-Git-Commit: fefc341cb156a770e66b042b99a38889ebd2007a Auto-Submitted: auto-generated The branch 2024Q4 has been updated by bz: URL: https://cgit.FreeBSD.org/ports/commit/?id=fefc341cb156a770e66b042b99a38889ebd2007a commit fefc341cb156a770e66b042b99a38889ebd2007a Author: Bjoern A. Zeeb AuthorDate: 2024-10-11 20:41:29 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-11-03 20:57:08 +0000 net/wifi-firmware-kmod: stop building kmods on main and 14.2 and on In Feb 2024 a feature to firmware(9) was introduced to be able to load plain firmware files (not kernel modules) from /boot/firmware/ . If the system is modern enough stop building kernel modules but simply copy the firmware files in. This makes the entire build process a lot simpler. For older versions we still have to generate kernel modules (though they all shipped with firmware in src so we can possibly unsupport them in the future). Sponsored by: The FreeBSD Foundation Reviewed by: jrm, imp Differential Revision: https://reviews.freebsd.org/D47068 (cherry picked from commit 7a02aa98f615f499ee7e3cb87cec9d3da4f3d80b) --- net/wifi-firmware-kmod/Makefile.inc | 54 ++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/net/wifi-firmware-kmod/Makefile.inc b/net/wifi-firmware-kmod/Makefile.inc index fa3bb2068848..f592ac252d75 100644 --- a/net/wifi-firmware-kmod/Makefile.inc +++ b/net/wifi-firmware-kmod/Makefile.inc @@ -49,16 +49,13 @@ LICENSE_PERMS_whence= ${LICENSE_PERMS} .if "${DISTFILES_${FLAVOR}_lic}" .for _n in ${DISTFILES_${FLAVOR}_lic:range} LICENSE+= extra${_n} -LICENSE_FILE_extra${_n}= ${WRKSRC}/fw/${DISTFILES_${FLAVOR}_lic:[${_n}]:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g} +LICENSE_FILE_extra${_n}= ${WRKSRC}/lic/${DISTFILES_${FLAVOR}_lic:[${_n}]:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g} LICENSE_NAME_extra${_n}= ${LICENSE_NAME} (extra fw license) LICENSE_PERMS_extra${_n}= ${LICENSE_PERMS} .endfor .endif -# Add firmware files to plist. -.for _f in ${DISTFILES_${FLAVOR}} -PLIST_FILES+= ${KMODDIR}/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,.,_,g:S,-,_,g:S,/,_,g}.ko -.endfor +PLIST= ${WRKDIR}/PLIST # Split things into the full package (driver name) and more specific flavors. FLAVORS= ${FWDRV} \ @@ -82,17 +79,48 @@ EXTRACT_ONLY= ONLY_FOR_ARCHS= aarch64 amd64 i386 ONLY_FOR_ARCHS_REASON= LinuxKPI driver only available for these architectures -USES= kmod uidfix - +USES= uidfix +# We do not need that anymore for the modern build but making it conditional on +# OSVERSION seems to not add the _USES_install bits from kmod.mk. +USES+= kmod + +.include + +.if (${OSVERSION} >= 1500014) || (${OSVERSION} < 1500000 && ${OSVERSION} >= 1402000) +# src.git main 479905a1ed26c54ef29cdff65cf25f7feade654b (stable/14 2ca7b03d6275) +# allows direct loading of firmware files. For anything before that we still need +# to create kernel modules. We need to write a PLIST file so we can then simply use +# COPYTREE_SHARE with adjusted permissions to copy the files over. +BOOTFWDIR?= /boot/firmware +_SHAREMODE= 0444 +NO_BUILD= yes +.else MAKE_ENV+= FWSRCDIR=${WRKSRC}/fw +.endif post-extract: @${MKDIR} ${WRKSRC}/fw + @${MKDIR} ${WRKSRC}/lic # Deal with supplementary licenses files. @${CP} ${DISTDIR}/${DIST_SUBDIR}/${LICENSE_FILE}${DISTURL_SUFFIX} ${WRKSRC}/${LICENSE_FILE} @${CP} ${DISTDIR}/${DIST_SUBDIR}/WHENCE${DISTURL_SUFFIX} ${WRKSRC}/WHENCE.in @${SED} -e "s@%%XXX%%@${WHENCE_REGEX:Q}@g" ${FILESDIR}/WHENCE.awk.in > ${WRKSRC}/WHENCE.awk @${AWK} -f ${WRKSRC}/WHENCE.awk ${WRKSRC}/WHENCE.in > ${WRKSRC}/WHENCE +################################################################################ +.if (${OSVERSION} >= 1500014) || (${OSVERSION} < 1500000 && ${OSVERSION} >= 1402000) +.for _f in ${DISTFILES_${FLAVOR}} + # Create firmware source directory and copy in distfile. + @${MKDIR} ${WRKSRC}/fw/${_f:H} + ${CP} ${DISTDIR}/${DIST_SUBDIR}/${_f} ${WRKSRC}/fw/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@} + @${ECHO_CMD} ${BOOTFWDIR}/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@} >> ${PLIST}.tmp +.endfor + (cd ${WRKSRC}/fw/ && ${FIND} . -type d -mindepth 1 | \ + ${AWK} -vB="${BOOTFWDIR}/" '{ sub("^./", "@dir "B); print; }') >> ${PLIST}.tmp + # Remove possibly duplicate @dir entries + @${SORT} -u ${PLIST}.tmp > ${PLIST} +.else +################################################################################ +# Build kernel modules. # Prepare toplevel Makefile and Makefile.inc. @${ECHO_CMD} "SUBDIR=" > ${WRKSRC}/Makefile @${SED} -e "s@%%FWDRV%%@${FWDRV}@g" \ @@ -114,11 +142,19 @@ post-extract: # Create firmware source directory and copy in distfile. @${MKDIR} ${WRKSRC}/fw/${_f:H} ${CP} ${DISTDIR}/${DIST_SUBDIR}/${_f} ${WRKSRC}/fw/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@} + @${ECHO_CMD} ${KMODDIR}/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,.,_,g:S,-,_,g:S,/,_,g}.ko >> ${PLIST} .endfor @${ECHO_CMD} '.include ' >> ${WRKSRC}/Makefile +################################################################################ +.endif # Copy in additional licenses files. .for _f in ${DISTFILES_${FLAVOR}_lic} - ${CP} ${DISTDIR}/${DIST_SUBDIR}/${_f} ${WRKSRC}/fw/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g} + ${CP} ${DISTDIR}/${DIST_SUBDIR}/${_f} ${WRKSRC}/lic/${_f:C@(^[^?]*)${DISTURL_SUFFIX:Q}@\1@:S,/,_,g} .endfor -.include +.if (${OSVERSION} >= 1500014) || (${OSVERSION} < 1500000 && ${OSVERSION} >= 1402000) +do-install: + (cd ${WRKSRC}/fw/ && ${COPYTREE_SHARE} . ${STAGEDIR}/${BOOTFWDIR}) +.endif + +.include