As per https://github.com/iocage/iocage/issues/1289#issuecomment-1268638684 the iocage project is abandoned. As per https://github.com/iocage/iocage/pull/1292#issuecomment-1368531213 a replacement project is also not moving forward. Suggestion: add a deprecation notice to the port.
Created attachment 251061 [details] upgrade to 1.3 from new home iocage is not dead :) I took maintainership on new home https://github.com/freebsd/iocage Here is a 1.3 version with all needed patches included Tested working here on our production servers
(In reply to geoffroy desvernay from comment #1) Good to hear. Will be interesting to diff this to the current version and see if it works as expected (I lost a bit track between the changes to the port, things applied upstream and some local patches that were not ready for public consumption).
Created attachment 251065 [details] upgrade to 1.4 from new home fix list -h command
I took upstream as-is (with many unversionned patches), and checked all patches used in port's version
Created attachment 251114 [details] git diff sysutils/iocage to 1.5 and new home additional changes: - allow use of allow.nfsd jail parameter
Created attachment 251118 [details] git patch for sysutils/iocage 1.6 on new home version 1.6 fixes empty HTTP_PROXY bug (making phttpget fail)
This depends on py-libzfs and on -current py-libzfs needs the patch in Bug 279450.
I think it shouldn't block here as iocage never use zpool_add
Are the iocage patches tested against python 3.11? The current port spews out this: ---snip--- ... File "/usr/local/lib/python3.11/site-packages/iocage_cli/start.py", line 57, in cli ioc.IOCage(rc=rc, silent=True).start(ignore_exception=ignore) File "/usr/local/lib/python3.11/site-packages/iocage_lib/iocage.py", line 1872, in start self.__jail_order__("start", ignore_exception=ignore_exception) File "/usr/local/lib/python3.11/site-packages/iocage_lib/iocage.py", line 208, in __jail_order__ self.__rc__(boot_order, action, ignore_exception) File "/usr/local/lib/python3.11/site-packages/iocage_lib/iocage.py", line 256, in __rc__ err, msg = self.start(j, ignore_exception=ignore_exception) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iocage_lib/iocage.py", line 1912, in start ioc_start.IOCStart( File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_start.py", line 87, in __init__ raise e File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_start.py", line 84, in __init__ self.__start_jail__() File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_start.py", line 903, in __start_jail__ rctl_jail.remove_rctl_rules() File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_json.py", line 306, in remove_rctl_rules iocage_lib.ioc_exec.SilentExec( File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exec.py", line 268, in __init__ self.output = list(silent) ^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exec.py", line 259, in exec_jail raise iocage_lib.ioc_exceptions.CommandFailed( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exceptions.py", line 34, in __init__ collections.Iterable AttributeError: module 'collections' has no attribute 'Iterable' ---snip---
(In reply to geoffroy desvernay from comment #8) Something needs to be done with py-libzfs, as it is a build dependency, and without any patch to it on -current, iocage will not be available as a package on -current.
I tried this patch, something is missing: ---snip--- # iocage list Traceback (most recent call last): File "/usr/local/bin/iocage", line 6, in <module> from iocage_cli import cli File "/usr/local/lib/python3.11/site-packages/iocage_cli/__init__.py", line 38, in <module> import iocage_lib.ioc_check as ioc_check File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_check.py", line 30, in <module> import iocage_lib.ioc_common File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_common.py", line 47, in <module> import iocage_lib.ioc_exec File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exec.py", line 28, in <module> import iocage_lib.ioc_json File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_json.py", line 39, in <module> import iocage_lib.ioc_create File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_create.py", line 35, in <module> import iocage_lib.ioc_fstab File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_fstab.py", line 41, in <module> from iocage_lib.utils import load_ctypes_library, ensure_unicode_str File "/usr/local/lib/python3.11/site-packages/iocage_lib/utils.py", line 1, in <module> import six ModuleNotFoundError: No module named 'six' ---snip---
Created attachment 251184 [details] git patch for sysutils/iocage 1.6 on new home add missing py-six dependency
iocage list (comment #11). I haven't tried restarting / starting (comment #9).
The previous comment was supposed to be "iocage list works now".
Version 1.6 has issues with python 3.11 on start like version 1.2 has: ---snip--- + Executing poststart OK Traceback (most recent call last): File "/usr/local/bin/iocage", line 10, in <module> sys.exit(cli()) ^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iocage_cli/start.py", line 60, in cli ioc.IOCage(jail=jail, rc=rc).start(ignore_exception=ignore) File "/usr/local/lib/python3.11/site-packages/iocage_lib/iocage.py", line 1823, in start ioc_start.IOCStart( File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_start.py", line 87, in __init__ raise e File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_start.py", line 84, in __init__ self.__start_jail__() File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_start.py", line 975, in __start_jail__ rctl_jail.remove_rctl_rules() File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_json.py", line 310, in remove_rctl_rules iocage_lib.ioc_exec.SilentExec( File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exec.py", line 274, in __init__ self.output = list(silent) ^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exec.py", line 265, in exec_jail raise iocage_lib.ioc_exceptions.CommandFailed( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exceptions.py", line 34, in __init__ collections.Iterable AttributeError: module 'collections' has no attribute 'Iterable' ---snip---
Here is a fix for the issue: https://stackoverflow.com/questions/59809785/i-get-a-attributeerror-module-collections-has-no-attribute-iterable-when-i short: in "/usr/local/lib/python3.11/site-packages/iocage_lib/ioc_exceptions.py" replace "import collections" by "import collections.abc as collections" Works for me.
ok, fixed here: https://github.com/freebsd/iocage/issues/11 I'll upload a new patch soon
for libzfs, it's only used for tests, I'll remove the dependency first, as patching this in a retro-compatible way is not on my skills list …
Created attachment 251537 [details] git patch for sysutils/iocage 1.7 on new home collections Iterable fix, linsysfs support and less dependencies libzfs is not a RUN_ dependency anymore (should unblock with broken libzfs)
Created attachment 252256 [details] git patch for sysutils/iocage 1.7 on new home rebase patch
(In reply to Michael Gmelin from comment #2) Michael, I think this is ready to get committed. Are you OK with updating the port to 1.7?
(In reply to Gleb Popov from comment #21) It seems like the dust settled a bit around this. I would like to do some local testing first though, let's aim for having this landed before 2024Q4 is cut, ok?
If you say so. Geoffroy did a lot of testing on his side and I also tried out the new version via iocage-devel. But if you need to do testing yourself, sure.
Created attachment 253680 [details] git diff for 1.8 on new home Here with ~150 jails on ~15 servers we use it on production for a long time. Release 1.7 is, in my view, a clean replacement for old and now broken 1.2. I just released 1.8 with some bugfixes and one default behaviour change, but for new installs only (vnet_default_interface, that did break host network by default on some configs)
Created attachment 253681 [details] git patch for sysutils/iocage 1.8 on new home git format-patch with commit included
Created attachment 253682 [details] git patch for sysutils/iocage 1.8 on new home sorry, last one did include the patch itself :/
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=5787776b7075cb63a5a49345e2d0a37b31a271b4 commit 5787776b7075cb63a5a49345e2d0a37b31a271b4 Author: Michael Gmelin <grembo@FreeBSD.org> AuthorDate: 2024-09-30 20:07:44 +0000 Commit: Michael Gmelin <grembo@FreeBSD.org> CommitDate: 2024-09-30 20:13:57 +0000 sysutils/iocage: Update to 1.8, new upstream PR: 269298 Reported by: netchild Co-authored-by: Geoffroy Desvernay <dgeo@centrale-med.fr> sysutils/iocage/Makefile | 39 +++++++--------------- sysutils/iocage/distinfo | 16 ++------- .../files/patch-iocage__lib_ioc__common.py (gone) | 11 ------ .../patch-iocage__lib_ioc__exceptions.py (gone) | 11 ------ .../files/patch-iocage__lib_ioc__json.py (gone) | 11 ------ sysutils/iocage/files/patch-setup.py (gone) | 11 ------ 6 files changed, 15 insertions(+), 84 deletions(-)