Index: head/sysutils/iocage/Makefile =================================================================== --- head/sysutils/iocage/Makefile (revision 512298) +++ head/sysutils/iocage/Makefile (revision 512299) @@ -1,34 +1,37 @@ # $FreeBSD$ PORTNAME= iocage PORTVERSION= 1.1 +PORTREVISION= 1 CATEGORIES= sysutils python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= araujo@FreeBSD.org COMMENT= FreeBSD jail manager written in Python3 LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-runner>=2.0.0:devel/py-pytest-runner@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py-netifaces@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}click>=6.7:devel/py-click@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tqdm>=4.10.0:misc/py-tqdm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}coloredlogs>0:devel/py-coloredlogs@${PY_FLAVOR} \ ca_root_nss>0:security/ca_root_nss \ ${PYTHON_PKGNAMEPREFIX}texttable>=0.8.7:textproc/py-texttable@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-runner>=2.0.0:devel/py-pytest-runner@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=2.11.1:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}libzfs>=1.0.2:devel/py-libzfs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dulwich>0:devel/dulwich@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}dnspython>0:dns/py-dnspython@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}dnspython>0:dns/py-dnspython@${PY_FLAVOR} \ + merge:devel/rcs57 -NO_ARCH= yes USES= python:3.6+ USE_GITHUB= yes USE_PYTHON= autoplist distutils + +NO_ARCH= yes CONFLICTS= py27-iocage-[0-9]* .include Index: head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py =================================================================== --- head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py (nonexistent) +++ head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py (revision 512299) @@ -0,0 +1,105 @@ +This patch can most likely be removed when updating to iocage 1.2, +See +https://github.com/iocage/iocage/pull/1027 and +https://github.com/iocage/iocage/commit/f66d9f0724daa03dc08cebc3f30b04abc7e97f82 +--- iocage_lib/ioc_upgrade.py.orig 2019-01-25 21:32:55 UTC ++++ iocage_lib/ioc_upgrade.py +@@ -24,6 +24,7 @@ + """iocage upgrade module""" + import datetime + import fileinput ++import hashlib + import os + import pathlib + import subprocess as su +@@ -80,9 +81,12 @@ class IOCUpgrade(iocage_lib.ioc_json.IOCZFS): + } + + self.callback = callback +- # Work around for https://github.com/freebsd/freebsd/commit/bffa924f +- os.environ['UNAME_r'] = self.jail_release + ++ # symbolic link created on fetch by freebsd-update ++ bd_hash = hashlib.sha256((self.path + '\n').encode('utf-8')).hexdigest() ++ self.freebsd_install_link = os.path.join(self.path, ++ 'var/db/freebsd-update', bd_hash + '-install') ++ + def upgrade_jail(self): + tmp_dataset = self.zfs_get_dataset_name('/tmp') + tmp_val = self.zfs_get_property(tmp_dataset, 'exec') +@@ -142,44 +146,26 @@ class IOCUpgrade(iocage_lib.ioc_json.IOCZFS): + callback=self.callback + ) + else: +- try: +- iocage_lib.ioc_exec.InteractiveExec( +- fetch_cmd, +- self.path.replace('/root', ''), +- uuid=self.uuid, +- unjailed=True +- ) +- except iocage_lib.ioc_exceptions.CommandFailed: +- self.__rollback_jail__() +- msg = f'Upgrade failed! Rolling back jail' ++ iocage_lib.ioc_exec.InteractiveExec( ++ fetch_cmd, ++ self.path.replace('/root', ''), ++ uuid=self.uuid, ++ unjailed=True ++ ) ++ ++ if not os.path.islink(self.freebsd_install_link): ++ msg = f'Upgrade failed, nothing to install after fetch!' + iocage_lib.ioc_common.logit( + { +- "level": "EXCEPTION", +- "message": msg ++ 'level': 'EXCEPTION', ++ 'message': msg + }, + _callback=self.callback, + silent=self.silent + ) + +- if not self.interactive: +- while not self.__upgrade_install__(tmp.name): +- pass +- else: +- # FreeBSD update loops 3 times +- for _ in range(3): +- try: +- self.__upgrade_install__(tmp.name) +- except iocage_lib.ioc_exceptions.CommandFailed: +- self.__rollback_jail__() +- msg = f'Upgrade failed! Rolling back jail' +- iocage_lib.ioc_common.logit( +- { +- 'level': 'EXCEPTION', +- 'message': msg +- }, +- _callback=self.callback, +- silent=self.silent +- ) ++ while os.path.islink(self.freebsd_install_link): ++ self.__upgrade_install__(tmp.name) + + new_release = iocage_lib.ioc_common.get_jail_freebsd_version( + self.path, +@@ -353,16 +339,10 @@ class IOCUpgrade(iocage_lib.ioc_json.IOCZFS): + unjailed=True, + callback=self.callback, + ) as _exec: +- update_output = iocage_lib.ioc_common.consume_and_log( ++ iocage_lib.ioc_common.consume_and_log( + _exec, + callback=self.callback + ) +- +- for i in update_output: +- if i == 'No updates are available to install.': +- return True +- +- return False + else: + iocage_lib.ioc_exec.InteractiveExec( + install_cmd, Property changes on: head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sysutils/iocage/files/patch-setup.py =================================================================== --- head/sysutils/iocage/files/patch-setup.py (nonexistent) +++ head/sysutils/iocage/files/patch-setup.py (revision 512299) @@ -0,0 +1,50 @@ +See https://github.com/iocage/iocage/issues/1043 +--- setup.py.orig 2019-01-25 21:32:55 UTC ++++ setup.py +@@ -43,26 +43,26 @@ if sys.version_info < (3, 6): + + VERSION = '1.1' + +-setup( +- name='iocage_lib', +- version=VERSION, +- description='A jail manager that uses ZFS.', +- author='iocage Contributors', +- author_email='https://groups.google.com/forum/#!forum/iocage', +- url='https://github.com/iocage/iocage', +- packages=find_packages(), +- include_package_data=True, +- install_requires=[ +- 'dulwich>=0.18.6', +- 'netifaces>=0.10.8', +- 'dnspython>=1.15.0', +- 'libzfs' +- ], +- setup_requires=['pytest-runner'], +- entry_points={'console_scripts': ['iocage = iocage_lib:cli']}, +- data_files=_data, +- tests_require=['pytest', 'pytest-cov', 'pytest-pep8'] +-) ++#setup( ++# name='iocage_lib', ++# version=VERSION, ++# description='A jail manager that uses ZFS.', ++# author='iocage Contributors', ++# author_email='https://groups.google.com/forum/#!forum/iocage', ++# url='https://github.com/iocage/iocage', ++# packages=find_packages(), ++# include_package_data=True, ++# install_requires=[ ++# 'dulwich>=0.18.6', ++# 'netifaces>=0.10.8', ++# 'dnspython>=1.15.0', ++# 'libzfs' ++# ], ++# setup_requires=['pytest-runner'], ++# entry_points={'console_scripts': ['iocage = iocage_lib:cli']}, ++# data_files=_data, ++# tests_require=['pytest', 'pytest-cov', 'pytest-pep8'] ++#) + + setup( + name='iocage_cli', Property changes on: head/sysutils/iocage/files/patch-setup.py ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property