git: a507a7026c40 - main - packages: Set dependency origin in generate-ucl.lua
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 08 Oct 2025 03:54:26 UTC
The branch main has been updated by ivy:
URL: https://cgit.FreeBSD.org/src/commit/?id=a507a7026c402a4c10902f3aadb3c6a70c442964
commit a507a7026c402a4c10902f3aadb3c6a70c442964
Author: Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2025-10-08 03:24:25 +0000
Commit: Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2025-10-08 03:24:25 +0000
packages: Set dependency origin in generate-ucl.lua
Commit 822fd5606748 changed the origin of packages from "base"
to "base/<package name>", but the old origin was still used for
dependencies.
Aside from being wrong, this confuses pkg <= 2.3.1 and causes
"pkg info -d" to show the dependencies as "<pkgname>-(null)"
instead of the correct version string.
Remove the explicit origin from dependencies in the UCL files,
and instead populate this during the build in generate-ucl.lua.
In the (very unlikely) case that an explicit origin is still
needed, don't overwrite one if it's already present.
MFC after: 1 day
Fixes: 822fd5606748 ("pkgbase: set origin for each packages as base/FreeBSD-*")
Reported by: bapt
Reviewed by: cperciva, bapt
Sponsored by: https://www.patreon.com/bsdivy
Differential Revision: https://reviews.freebsd.org/D52892
---
release/packages/generate-set-ucl.lua | 10 +++++-----
release/packages/generate-ucl.lua | 4 +++-
release/packages/set-template.ucl | 2 +-
release/packages/sets/base-dbg.ucl | 2 --
release/packages/sets/base-jail-dbg.ucl | 2 --
release/packages/sets/base-jail.ucl | 3 ---
release/packages/sets/base.ucl | 3 ---
release/packages/sets/optional-dbg.ucl | 1 -
release/packages/sets/optional-jail-dbg.ucl | 1 -
release/packages/sets/optional-jail.ucl | 1 -
release/packages/sets/optional.ucl | 1 -
release/packages/ucl/at.ucl | 2 --
release/packages/ucl/bluetooth.ucl | 1 -
release/packages/ucl/bsdconfig.ucl | 1 -
release/packages/ucl/bsdinstall.ucl | 1 -
release/packages/ucl/caroot.ucl | 1 -
release/packages/ucl/certctl.ucl | 1 -
release/packages/ucl/clang.ucl | 2 --
release/packages/ucl/devd.ucl | 1 -
release/packages/ucl/newsyslog.ucl | 1 -
release/packages/ucl/periodic.ucl | 1 -
release/packages/ucl/rc.ucl | 1 -
release/packages/ucl/rcmds.ucl | 1 -
release/packages/ucl/sendmail.ucl | 1 -
release/packages/ucl/tests-all.ucl | 3 ---
release/packages/ucl/yp.ucl | 1 -
26 files changed, 9 insertions(+), 40 deletions(-)
diff --git a/release/packages/generate-set-ucl.lua b/release/packages/generate-set-ucl.lua
index 3c8474bf8e68..ab8765c8cf2d 100755
--- a/release/packages/generate-set-ucl.lua
+++ b/release/packages/generate-set-ucl.lua
@@ -75,15 +75,15 @@ end
-- Add dependencies from SET_DEPENDS.
for dep in string.gmatch(pkgdeps, "[^%s]+") do
obj["deps"][dep] = {
- ["origin"] = "base"
+ ["origin"] = "base/"..dep
}
end
--- Add a version key to all dependencies, otherwise pkg doesn't like it.
+-- Add a version and origin key to all dependencies, otherwise pkg
+-- doesn't like it.
for dep, opts in pairs(obj["deps"]) do
- if obj["deps"][dep]["version"] == nil then
- obj["deps"][dep]["version"] = pkgversion
- end
+ obj["deps"][dep]["origin"] = obj["deps"][dep]["origin"] or "base/"..dep
+ obj["deps"][dep]["version"] = obj["deps"][dep]["version"] or pkgversion
end
-- If there are no dependencies, remove the deps key, otherwise pkg raises an
diff --git a/release/packages/generate-ucl.lua b/release/packages/generate-ucl.lua
index c61cbb251d8b..d9125182a1a4 100755
--- a/release/packages/generate-ucl.lua
+++ b/release/packages/generate-ucl.lua
@@ -161,7 +161,7 @@ if add_gen_dep(pkgname, pkggenname) then
end
obj["deps"][pkggenname] = {
["version"] = pkgversion,
- ["origin"] = "base"
+ ["origin"] = "base/"..pkgprefix.."-"..pkggenname,
}
end
@@ -217,6 +217,8 @@ if pkgprefix ~= nil and obj["deps"] ~= nil then
newdeps = {}
for dep, opts in pairs(obj["deps"]) do
local newdep = pkgprefix .. "-" .. dep
+ -- Make sure origin is set.
+ opts["origin"] = opts["origin"] or "base/"..newdep
newdeps[newdep] = opts
end
obj["deps"] = newdeps
diff --git a/release/packages/set-template.ucl b/release/packages/set-template.ucl
index b7ea2b830168..ff2c2d3e6057 100644
--- a/release/packages/set-template.ucl
+++ b/release/packages/set-template.ucl
@@ -4,7 +4,7 @@
name = "${PKG_NAME_PREFIX}-set-${PKGNAME}"
prefix = "/"
-origin = "base"
+origin = "base/${PKG_NAME_PREFIX}-set-${PKGNAME}"
categories = [ base ]
version = "${VERSION}"
maintainer = "${PKG_MAINTAINER}"
diff --git a/release/packages/sets/base-dbg.ucl b/release/packages/sets/base-dbg.ucl
index d9eeb2c49677..79e5de22522e 100644
--- a/release/packages/sets/base-dbg.ucl
+++ b/release/packages/sets/base-dbg.ucl
@@ -25,10 +25,8 @@ EOD
deps {
"set-minimal-dbg" {
version = "${VERSION}"
- origin = "base"
},
"set-devel-dbg" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/base-jail-dbg.ucl b/release/packages/sets/base-jail-dbg.ucl
index 7996b9afbb21..56a130367fa3 100644
--- a/release/packages/sets/base-jail-dbg.ucl
+++ b/release/packages/sets/base-jail-dbg.ucl
@@ -25,10 +25,8 @@ EOD
deps {
"set-minimal-jail-dbg" {
version = "${VERSION}"
- origin = "base"
},
"set-devel-dbg" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/base-jail.ucl b/release/packages/sets/base-jail.ucl
index d1dc17bc9860..88861510f954 100644
--- a/release/packages/sets/base-jail.ucl
+++ b/release/packages/sets/base-jail.ucl
@@ -28,14 +28,11 @@ EOD
deps {
"set-minimal-jail" {
version = "${VERSION}"
- origin = "base"
},
"set-optional-jail" {
version = "${VERSION}"
- origin = "base"
},
"set-devel" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/base.ucl b/release/packages/sets/base.ucl
index 823e2342fab8..6a970668c13e 100644
--- a/release/packages/sets/base.ucl
+++ b/release/packages/sets/base.ucl
@@ -31,14 +31,11 @@ EOD
deps {
"set-minimal" {
version = "${VERSION}"
- origin = "base"
},
"set-optional" {
version = "${VERSION}"
- origin = "base"
},
"set-devel" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/sets/optional-dbg.ucl b/release/packages/sets/optional-dbg.ucl
index a221327518f9..882469c3ad57 100644
--- a/release/packages/sets/optional-dbg.ucl
+++ b/release/packages/sets/optional-dbg.ucl
@@ -26,6 +26,5 @@ EOD
deps {
"set-minimal-dbg" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/sets/optional-jail-dbg.ucl b/release/packages/sets/optional-jail-dbg.ucl
index 84c76fa407fe..54e7309abdf1 100644
--- a/release/packages/sets/optional-jail-dbg.ucl
+++ b/release/packages/sets/optional-jail-dbg.ucl
@@ -26,6 +26,5 @@ EOD
deps {
"set-minimal-jail-dbg" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/sets/optional-jail.ucl b/release/packages/sets/optional-jail.ucl
index da6d5fb00825..877023a10eed 100644
--- a/release/packages/sets/optional-jail.ucl
+++ b/release/packages/sets/optional-jail.ucl
@@ -29,6 +29,5 @@ EOD
deps {
"set-minimal-jail" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/sets/optional.ucl b/release/packages/sets/optional.ucl
index f50fa17e4297..8b44dfe1f3ea 100644
--- a/release/packages/sets/optional.ucl
+++ b/release/packages/sets/optional.ucl
@@ -28,6 +28,5 @@ EOD
deps {
"set-minimal" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/at.ucl b/release/packages/ucl/at.ucl
index 25724adfd7af..1e2495028b30 100644
--- a/release/packages/ucl/at.ucl
+++ b/release/packages/ucl/at.ucl
@@ -20,13 +20,11 @@ deps {
# atrun relies on cron to work.
"cron" {
version = "${VERSION}"
- origin = "base"
},
# at(1) passes the command to /bin/sh
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/bluetooth.ucl b/release/packages/ucl/bluetooth.ucl
index c87d5e9c8420..e9c4787fdbfb 100644
--- a/release/packages/ucl/bluetooth.ucl
+++ b/release/packages/ucl/bluetooth.ucl
@@ -20,7 +20,6 @@ deps {
# rfcomm_pppd(8) uses ppp(8)
"ppp" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/bsdconfig.ucl b/release/packages/ucl/bsdconfig.ucl
index 752c352ae904..98981f65bea4 100644
--- a/release/packages/ucl/bsdconfig.ucl
+++ b/release/packages/ucl/bsdconfig.ucl
@@ -20,6 +20,5 @@ deps {
# bsdconfig is written in shell script, so it needs /bin/sh
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/bsdinstall.ucl b/release/packages/ucl/bsdinstall.ucl
index 6e5cbce4e342..7fe8898b9427 100644
--- a/release/packages/ucl/bsdinstall.ucl
+++ b/release/packages/ucl/bsdinstall.ucl
@@ -20,6 +20,5 @@ deps {
# bsdinstall is written in shell script, so it needs /bin/sh
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/caroot.ucl b/release/packages/ucl/caroot.ucl
index 4d2b52d300fc..e43c9d0771f2 100644
--- a/release/packages/ucl/caroot.ucl
+++ b/release/packages/ucl/caroot.ucl
@@ -1,7 +1,6 @@
deps {
"certctl": {
version = "${VERSION}"
- origin = "base"
}
}
scripts: {
diff --git a/release/packages/ucl/certctl.ucl b/release/packages/ucl/certctl.ucl
index f12158459c5e..d2b4790946ec 100644
--- a/release/packages/ucl/certctl.ucl
+++ b/release/packages/ucl/certctl.ucl
@@ -19,6 +19,5 @@
deps {
"openssl": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/clang.ucl b/release/packages/ucl/clang.ucl
index 956b769a1ee7..3c15d9b7ef03 100644
--- a/release/packages/ucl/clang.ucl
+++ b/release/packages/ucl/clang.ucl
@@ -1,11 +1,9 @@
deps {
"lld" {
version = "${VERSION}"
- origin = "base"
}
"libcompiler_rt-dev" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/devd.ucl b/release/packages/ucl/devd.ucl
index 8d83ab9ee020..c5fcfef1c368 100644
--- a/release/packages/ucl/devd.ucl
+++ b/release/packages/ucl/devd.ucl
@@ -20,6 +20,5 @@ deps {
# devd uses /bin/sh to invoke hooks.
"runtime" {
version = "${VERSION}"
- origin = "base"
},
}
diff --git a/release/packages/ucl/newsyslog.ucl b/release/packages/ucl/newsyslog.ucl
index b1dfa8253737..27b212a42b77 100644
--- a/release/packages/ucl/newsyslog.ucl
+++ b/release/packages/ucl/newsyslog.ucl
@@ -2,6 +2,5 @@ deps {
# newsyslog uses bzip2 to compress log files.
"bzip2" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/periodic.ucl b/release/packages/ucl/periodic.ucl
index c8b8ac57c676..2a8a482f959f 100644
--- a/release/packages/ucl/periodic.ucl
+++ b/release/packages/ucl/periodic.ucl
@@ -19,6 +19,5 @@
deps {
"cron" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/rc.ucl b/release/packages/ucl/rc.ucl
index 1a734aaa187c..854963a81ca1 100644
--- a/release/packages/ucl/rc.ucl
+++ b/release/packages/ucl/rc.ucl
@@ -19,7 +19,6 @@
deps {
"runtime": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/rcmds.ucl b/release/packages/ucl/rcmds.ucl
index b572ff25e6c3..de608487e07d 100644
--- a/release/packages/ucl/rcmds.ucl
+++ b/release/packages/ucl/rcmds.ucl
@@ -20,7 +20,6 @@ deps {
# The RPC daemons require rpcbind.
"utilities" {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/sendmail.ucl b/release/packages/ucl/sendmail.ucl
index 62d0a1f2bc61..318fd5aabbe5 100644
--- a/release/packages/ucl/sendmail.ucl
+++ b/release/packages/ucl/sendmail.ucl
@@ -20,6 +20,5 @@ deps {
# sendmail requires make to build its configuration file.
"bmake": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/tests-all.ucl b/release/packages/ucl/tests-all.ucl
index 1f3b027b7037..3ad2d0f50e6b 100644
--- a/release/packages/ucl/tests-all.ucl
+++ b/release/packages/ucl/tests-all.ucl
@@ -27,20 +27,17 @@ deps {
# Nearly all the tests require atf to run.
"atf": {
version = "${VERSION}"
- origin = "base"
},
# The test framework requires Kyua.
"kyua": {
version = "${VERSION}"
- origin = "base"
},
# Since the purpose of the tests is to test the base system, the base
# system must be installed.
"set-base": {
version = "${VERSION}"
- origin = "base"
}
}
diff --git a/release/packages/ucl/yp.ucl b/release/packages/ucl/yp.ucl
index be4310c85591..9babdbe98fb1 100644
--- a/release/packages/ucl/yp.ucl
+++ b/release/packages/ucl/yp.ucl
@@ -20,6 +20,5 @@ deps {
# YP requires bmake to rebuild the database.
"bmake": {
version = "${VERSION}"
- origin = "base"
}
}