Summary: | lang/lua*: Installation of some Lua packages result in multiple/additional Lua versions to be installed | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | freebsd |
Component: | Individual Port(s) | Assignee: | freebsd-ports-bugs (Nobody) <ports-bugs> |
Status: | Closed Not A Bug | ||
Severity: | Affects Only Me | CC: | andrew, fiziologus, freebsd, freebsd, john, kevans, lx, marcus, nicklaus.t, osa, russ.haley |
Priority: | --- | Keywords: | needs-qa |
Version: | Latest | Flags: | koobs:
maintainer-feedback?
(russ.haley) koobs: maintainer-feedback? (kevans) koobs: maintainer-feedback? (john) nicklaus.t: maintainer-feedback- |
Hardware: | Any | ||
OS: | Any |
Description
freebsd
2021-03-30 00:40:42 UTC
Please allow me to rephrase the last paragraph ... At least devel/luafilesystem, devel/lua-stdlib, & security/luasec packages should be available so that they would be installed only for the (supported) already installed versions of lang/lua* (lua52 & lua54 have been already installed in this case; lang/lua52 seems to be the only one supported); and would not cause installation of currently not installed versions of lang/lua* (lua51 & lua53 in this case). ^Triage: Loop in lang/lua* maintainers. This appears to be a question of what lua-consuming ports specifically/explicitly depend on, or the Lua versions they specifically support, and a "works as intended " in the same vein as Python packages support specific subsets/ranges of versions, requiring multiple Python language versions to be installed. Is this analysis correct? ^Triage: Lua doesn't currently exist, thought we have several people working on and contributing to the Lua ports ecosystem. Reset assignee accordingly. So the issue here is that the port origin "security/luasec" actually builds four packages, one for each supported lua version, and "pkg install security/luasec" is an explicit request to install all four, not just the ones matching the already installed lua versions. "pkg install lua52-luasec lua54-luasec" would install just the two specified versions. This behavior (having each port origin build packages for every version) is necessary in order to satisfy dependencies from other ports. For example, a package which supports only lua53 and requires luasec will have a dependency on lua53-luasec (built from security/luasec@lua53). In such a case, you would need the lua53 language package to be brought in even if not already installed. lua52 is the current "default" version (see Mk/bsd.default-versions.mk) which means that many prebuilt packages will depend on it (but not all, because not all ports support lua 5.2 and those that don't will build with the nearest version that they support). (tl,dr: works as designed, no bug here) > So the issue here is that the port origin "security/luasec" actually > builds four packages, one for each supported lua version, and "pkg > install security/luasec" is an explicit request to install all four, > not just the ones matching the already installed lua versions. > > "pkg install lua52-luasec lua54-luasec" would install just the two > specified versions. Thanks for the pointer. So one cannot simply rely on Ports tree structure anymore to generally install a package simply based on the port directory hierarchy; really would have to search first to find available packages (& make judgement calls based on package names) to avoid extraneous software. Or, one could just try to install from Ports (unless Rust); adjust installed software after the fact if so desired. > This behavior (having each port origin build packages for every version) > is necessary in order to satisfy dependencies from other ports. For > example, a package which supports only lua53 and requires luasec will have > a dependency on lua53-luasec (built from security/luasec@lua53). In such > a case, you would need the lua53 language package to be brought in even > if not already installed. ... Of course, I do not have any issue with dependency requirements+solution as mentioned. would be nice if pkg knew about flavours, and so we could pkg install category/port@default but for now, this is working as designed, and not a bug |