From nobody Thu Sep 25 12:36:11 2025 X-Original-To: dev-commits-src-main@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 4cXY9S3GZfz68Rts; Thu, 25 Sep 2025 12:36:12 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cXY9S0gXcz41mL; Thu, 25 Sep 2025 12:36:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758803772; 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=cGSSe+KypJ6DgeVZsIMnhe2xny7WjW5FdxaWOkNFy7I=; b=ZNh1FrRh0hcnPsX3N4XPUMg5/S7MM9okfLJTL3JmP6JYwVKDnrCYr+qHgKLMeuQkfqN9lU s54Om3pav6Zhn8QutbDBjXU0hpoz5JDUuNBzz+3ymsH6T6H3EseuMQFkgmengaa+Unnd/s 1GoLlTwbjLvMW+jaVXzJQGnuJiBMMMde9s5If2loSHrkiQKw81N5QyubVxD24a3V6BEpsu M7nP5EJzmeYWPcOqHKiLmRNb0wdBBIYNjhEqWAPQQbOseNfx2F0sBfLEX+cWjzDxWKHVTr cHmBEvgx9vAHiNJnGmk5ksskl6XypeGj07UpCArDZQ9DJ6250Dxc2RALys7hKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758803772; 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=cGSSe+KypJ6DgeVZsIMnhe2xny7WjW5FdxaWOkNFy7I=; b=RDCJEKw3AfXaXO8t69YdNt2A3bh2vsaIeRkVzNrZB8dBk3uVYFL+wi4BXNyZAMpDL+MOD8 h+JtDpV4gike6Tj9ktSc9j1+JTg+NeiTA2Owkou1iJzqtGMLrtRrsPg3HRUhGkfvkzzBoY B59IkpyqD4RkPtSLjxZ5y2H4qB1o7QpEvX9oG6KH8/vqSfU1vz7D/9KYSc6O+27PnIzg/o sXWNIRaG+drvK7h178+1UJ2+p6icKcenV4Epi8TRcDd61/nDWHHKYWGy1HUYESw/mw4NR7 9r84gmQXlbLyJDXq6p3mVaQksX8nSuvMpmREpJt9B8BgtttGkWSWtjud2lL7Qw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758803772; a=rsa-sha256; cv=none; b=QCowByVYWK7FuBeHx15UStgGrnm4Tas48Sr5VUKY7boWRRYF/lLJ8QwYW4e8FQ2Kpy9DQi dIfKe8dzkveZ2YMJoCrCuC6yKOXKJbwyDUN08dvL+nr7YVeJDkJNC7ri+0b7wBLB6RvXX7 KxRu0XrQCiOQbaocK7vspre4aFgo9WMwydHjW4z6Sg/1IPPdJe9kShGj7+RNdubxS2wKI/ 4p3FQ7wvNqXEQsSYNY2gQ3YcNdeKpUK9Qs6uYt1BK+4Ce+LzvfsKhGYOQkfCP5ytumjHqs XLEqnqsVlmDmw2BpxFYOUwqEQC7k7VgNNf3VHYxb6RmstHVlIiUiTpg9OI17bA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cXY9S06fyz1Grv; Thu, 25 Sep 2025 12:36:12 +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 58PCaBmA088213; Thu, 25 Sep 2025 12:36:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58PCaBEN088210; Thu, 25 Sep 2025 12:36:11 GMT (envelope-from git) Date: Thu, 25 Sep 2025 12:36:11 GMT Message-Id: <202509251236.58PCaBEN088210@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: f4f0308440d2 - main - release: create pkgbase repo config from Makefile List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f4f0308440d2321fa9172dab1029f16a70289e4e Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f4f0308440d2321fa9172dab1029f16a70289e4e commit f4f0308440d2321fa9172dab1029f16a70289e4e Author: Isaac Freund AuthorDate: 2025-07-24 08:43:33 +0000 Commit: Ed Maste CommitDate: 2025-09-25 12:35:54 +0000 release: create pkgbase repo config from Makefile This will allow the VM image build scripts to use the same repository config file for installing base system packages at build time. Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D51482 --- release/Makefile | 22 +++++++++++++++------- release/scripts/pkgbase-stage.lua | 18 ++++-------------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/release/Makefile b/release/Makefile index 491c343398b4..fb2a60130700 100644 --- a/release/Makefile +++ b/release/Makefile @@ -133,7 +133,7 @@ CLEANFILES+= ${I}.xz .if defined(WITH_DVD) && !empty(WITH_DVD) CLEANFILES+= pkg-stage .endif -CLEANDIRS= dist pkgdb pkgbase-repo pkgbase-repo-conf ftp disc1 disc1-disc1 disc1-memstick bootonly bootonly-bootonly bootonly-memstick dvd +CLEANDIRS= dist pkgdb pkgbase-repo pkgbase-repo-dir ftp disc1 disc1-disc1 disc1-memstick bootonly bootonly-bootonly bootonly-memstick dvd beforeclean: chflags -R noschg . .include @@ -194,8 +194,10 @@ dvd: packagesystem .endif .if !defined(NOPKGBASE) || empty(NOPKGBASE) -PKGBASE_REPO= pkgbase-repo -PKG_ABI= $$(${PKG_CMD} -o ABI_FILE=${.TARGET}/usr/bin/uname config ABI) +PKGBASE_REPO_DIR= pkgbase-repo-dir +WSTAGEDIR!= ${IMAKE} -f Makefile.inc1 -C ${WORLDDIR} -V WSTAGEDIR +PKG_ABI_FILE= ${WSTAGEDIR}/usr/bin/uname +PKG_ABI= $$(${PKG_CMD} -o ABI_FILE=${PKG_ABI_FILE} config ABI) .endif pkgbase-repo: @@ -204,7 +206,13 @@ pkgbase-repo: ( ${IMAKE} -C ${WORLDDIR} packages REPODIR=${.OBJDIR}/pkgbase-repo \ INCLUDE_PKG_IN_PKGBASE_REPO=YES BOOTSTRAP_PKG_FROM_PORTS=YES ) -disc1: ${PKGBASE_REPO} +pkgbase-repo-dir: pkgbase-repo + mkdir -p pkgbase-repo-dir + printf "FreeBSD-base: { url: "file://%s", enabled: yes }" \ + ${.OBJDIR}/pkgbase-repo/${PKG_ABI}/latest \ + > pkgbase-repo-dir/FreeBSD-base.conf + +disc1: ${PKGBASE_REPO_DIR} # Install system mkdir -p ${.TARGET} ( cd ${WORLDDIR} && ${IMAKE} installworld installkernel distribution \ @@ -218,7 +226,7 @@ disc1: ${PKGBASE_REPO} # Create offline pkgbase repo on release media mkdir -p ${.TARGET}/usr/freebsd-packages/repos/ ${.CURDIR}/scripts/pkgbase-stage.lua disc \ - ${.OBJDIR}/pkgbase-repo/${PKG_ABI}/latest \ + ${.OBJDIR}/pkgbase-repo-dir \ ${.TARGET}/usr/freebsd-packages/offline \ "${_ALL_libcompats}" ${PKG_ABI} cp ${.CURDIR}/scripts/FreeBSD-base-offline.conf \ @@ -308,7 +316,7 @@ bootonly: echo "./boot/loader.conf type=file uname=root gname=wheel mode=0644" >> ${.TARGET}/METALOG echo "./etc/rc.local type=file uname=root gname=wheel mode=0644" >> ${.TARGET}/METALOG -dvd: ${PKGBASE_REPO} +dvd: ${PKGBASE_REPO_DIR} # Install system mkdir -p ${.TARGET} ( cd ${WORLDDIR} && ${IMAKE} installworld installkernel distribution \ @@ -318,7 +326,7 @@ dvd: ${PKGBASE_REPO} # Create offline pkgbase repo on release media mkdir -p ${.TARGET}/usr/freebsd-packages/repos/ ${.CURDIR}/scripts/pkgbase-stage.lua dvd \ - ${.OBJDIR}/pkgbase-repo/${PKG_ABI}/latest \ + ${.OBJDIR}/pkgbase-repo-dir \ ${.TARGET}/usr/freebsd-packages/offline \ "${_ALL_libcompats}" ${PKG_ABI} cp ${.CURDIR}/scripts/FreeBSD-base-offline.conf \ diff --git a/release/scripts/pkgbase-stage.lua b/release/scripts/pkgbase-stage.lua index 6845e0079b05..80de4ec80d20 100755 --- a/release/scripts/pkgbase-stage.lua +++ b/release/scripts/pkgbase-stage.lua @@ -81,28 +81,18 @@ local function main() -- Determines package subset selected local media = assert(arg[1]) assert(media == "disc" or media == "dvd") - -- Local repository to fetch from - local source = assert(arg[2]) + -- Directory containing FreeBSD-base repository config + local repo_dir = assert(arg[2]) -- Directory to create new repository local target = assert(arg[3]) - -- =hitespace separated list of all libcompat names (e.g. "32") + -- Whitespace separated list of all libcompat names (e.g. "32") local all_libcompats = assert(arg[4]) -- ABI of repository local ABI = assert(arg[5]) - assert(os.execute("mkdir -p pkgbase-repo-conf")) - local f = assert(io.open("pkgbase-repo-conf/FreeBSD-base.conf", "w")) - assert(f:write(string.format([[ - FreeBSD-base: { - url: "file://%s", - enabled: yes - } - ]], source))) - assert(f:close()) - local pkg = "pkg -o ASSUME_ALWAYS_YES=yes -o IGNORE_OSVERSION=yes " .. "-o ABI=" .. ABI .. " " .. - "-o INSTALL_AS_USER=1 -o PKG_DBDIR=./pkgdb -R ./pkgbase-repo-conf " + "-o INSTALL_AS_USER=1 -o PKG_DBDIR=./pkgdb -R " .. repo_dir .. " " assert(os.execute(pkg .. "update"))