poudriere: Options broken in poudriere-devel
Prerequisites
- Have you checked for an existing issue describing your problem?
- Are you running the latest version?
- Is your ports tree recent?
- Is your FreeBSD Host on a supported release?
Describe the bug
When I run poudriere options it displays an error. This worked in the previous version and the issue started happening since the last port upgrade.
How to reproduce
Steps to reproduce the behavior:
% poudriere options -n -f /usr/local/etc/poudriere.d/optlist
[00:00:00] Working on options directory: /usr/local/etc/poudriere.d/options
[00:00:00] Using ports from: /usr/ports
[00:00:00] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf
[00:00:00] Error: _jget: 3 arguments expected: var_return ptname property
Expected behavior
poudriere should loop through all of the ports in the options file to see if any of the options need to present a dialog to update them in the case of any options being added or removed.
Screenshots
<If applicable add screenshots to help explain your problem.>Environment
- Host OS [e.g. 12.2 amd64]: 13.2 amd64
- Jail OS [e.g. 12.0 powerpc]: 13.2 amd64
- Browser: [e.g. chrome, safari]: Firefox
- Poudriere Version [e.g. 3.3.1 or git hash or port version]: poudriere-devel-3.4.99.20231113
- Ports branch and revision [e.g. 2020Q3 r550754]: latest (259ddfbbd104e024361591fc5bec5a252c6eb5cb)
Additional context
<Add any other context about the problem here.>About this issue
- Original URL
- State: closed
- Created 7 months ago
- Comments: 16 (5 by maintainers)
Commits related to this issue
- Update options man page, `-j` is not required. Addresses #1090 — committed to madpilot78/poudriere by madpilot78 7 months ago
- Update options man page, `-j` is not required. Addresses #1090 — committed to madpilot78/poudriere by madpilot78 7 months ago
Looks like there are two issues here. @mattxtaz is using
poudriere optionswithout specifying a jail. This is something I did not foresee when I submitted my patch. Maybe it did work in the “old” versions, but the whole options.sh file was broken at some point and was failing to properly set options for flavored ports. My patch tried to address that. I have no idea how to fix the original bug and not makepoudriere optionsrequire specifying a jail to start.The other problem reported by @fernape is a bug I introduced with my patch. Poudriere is truing to use a non existent ports tree, and is fixed by 8726f468060a8886cdfac6d20cae4c997f735406, as @mvanbaak observed.
@bapt The poudriere-devel port in the ports tree should be updated to a commit that includes 8726f468060a8886cdfac6d20cae4c997f735406 to avoid hitting that bug again via the official tree port.
I’m not sure what is your opinion about running
poudriere optionswithout specifying a jail. With my patch included this is simply not possible, and my opinion is that we should make specifying the jail mandatory. I don’t know how to fix theoptions.shlogic without starting a jail to extract the required information from the ports tree.Correct. If I add -j 140amd64 then it works. So it’s fixed one use case, but it should still work with an empty jail name as it did before the recent update.
edit doesn’t quite work. It’s now asking me to update every ports options, and is using the defaults rather than the ones i set
edit2 oh i see why. the option file changes to 140amd64-options now because i specified the -j name