Date: Thu, 19 Sep 2019 02:52:40 +0200 From: Michael Gmelin <grembo@freebsd.org> To: Marcelo Araujo <araujobsdport@gmail.com> Cc: araujo@freebsd.org, Michael Gmelin <grembo@freebsd.org>, ports-committers <ports-committers@freebsd.org>, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: Re: svn commit: r512299 - in head/sysutils/iocage: . files Message-ID: <20190919025240.6f10aeeb@bsd64.grem.de> In-Reply-To: <CAOfEmZhSiKpKGjGh82yph_NdRiEfEid8gqGpVxOGQG6qXsLjug@mail.gmail.com> References: <201909190021.x8J0LARn004132@repo.freebsd.org> <CAOfEmZhSiKpKGjGh82yph_NdRiEfEid8gqGpVxOGQG6qXsLjug@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Marcelo, Nice to get some positive feedback ;) This was causing real harm to users. The PR was merged 20 days ago. The only (indirect) interaction I had with you was you asking upstream if they plan to release 1.2 anytime soon 17 days ago, the bug remained untouched and there was no indication that anything will happen anytime soon. I asked you if you objected to the changes on the bug almost 10 days ago and didn't get any feedback (see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240177#c3). As I didn't hear back and also 1.2 release didn't happen the week upstream suggested it would (and not the week after + looking at upstream it seems like they've been trying to push it out for quite some time), and as the change is non-intrusive - it has only positive effects, in that it unbreaks upgrades for users, especially as some of the issues were related to the port skeleton itself - e.g. port QA failed and must have been for quite a while - this seemed the most productive way forward. It wasn't meant as an insult to you as a maintainer and I'm sorry if it was received as such. The patch will fix issues regardless if and when subsequent updates to 1.2 happen. I detailed the reasons why I committed this *now* here (11.2 is EoL, 2019Q4 is branched soon, 12.1 will happen in Q4, having a proven release in quarterly is beneficial, you really don't want 1.2 happen a week before branching quarterly, etc.): https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240177#c4 Happy to have more direct communication happen next time though. Cheers, Michael On Thu, 19 Sep 2019 08:24:40 +0800 Marcelo Araujo <araujobsdport@gmail.com> wrote: > It was not a timeout as you can see by the discussion at the PR you > opened! I was trying to coordinate with iocage devs a new release. > Next time ping me. > > > Best regards, > > On Thu, Sep 19, 2019, 8:21 AM Michael Gmelin <grembo@freebsd.org> > wrote: > > > Author: grembo > > Date: Thu Sep 19 00:21:10 2019 > > New Revision: 512299 > > URL: https://svnweb.freebsd.org/changeset/ports/512299 > > > > Log: > > Fix `iocage upgrade' for 11.3-RELEASE and upcoming 12.1-RELEASE[0] > > > > Also: > > - Fix dependencies when upgrading <12 jails running on a in > > -RELEASE jailhost > > (depend on `merge' from devel/rcs57). > > - Fix to unbreak updating multiple jails at once[1]. > > - Patch to `setup.py' to make `make check-plist' pass[2]. > > - Move `NO_ARCH' to make portlint happy > > > > See: > > [0]https://github.com/iocage/iocage/pull/1027 and > > > > https://github.com/iocage/iocage/commit/f66d9f0724daa03dc08cebc3f30b04abc7e97f82 > > [1] > > https://github.com/iocage/iocage/commit/47d7c28ad2db76eaba797921555bbf68a476eb9b#diff-134cbca4d064a61a693d1199494d24df > > [2]https://github.com/iocage/iocage/issues/1043 > > > > PR: 240177 > > Approved by: araujo (maintainer timeout) > > > > Added: > > head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py > > (contents, props changed) > > head/sysutils/iocage/files/patch-setup.py (contents, props > > changed) Modified: > > head/sysutils/iocage/Makefile > > > > Modified: head/sysutils/iocage/Makefile > > > > ============================================================================== > > --- head/sysutils/iocage/Makefile Thu Sep 19 00:08:47 2019 > > (r512298) > > +++ head/sysutils/iocage/Makefile Thu Sep 19 00:21:10 2019 > > (r512299) > > @@ -2,6 +2,7 @@ > > > > PORTNAME= iocage > > PORTVERSION= 1.1 > > +PORTREVISION= 1 > > CATEGORIES= sysutils python > > PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} > > > > @@ -22,12 +23,14 @@ RUN_DEPENDS= > > ${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py > > ${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]* > > > > > > Added: head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py > > > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py Thu > > Sep 19 00:21:10 2019 (r512299) > > @@ -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, > > > > Added: head/sysutils/iocage/files/patch-setup.py > > > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/sysutils/iocage/files/patch-setup.py Thu Sep 19 00:21:10 > > 2019 (r512299) > > @@ -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', > > -- Michael Gmelin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190919025240.6f10aeeb>