From owner-svn-ports-head@freebsd.org Thu Sep 19 00:53:16 2019 Return-Path: Delivered-To: svn-ports-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 66D23EBBCA; Thu, 19 Sep 2019 00:53:16 +0000 (UTC) (envelope-from grembo@freebsd.org) Received: from mail.evolve.de (mail.evolve.de [213.239.217.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.evolve.de", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Ydcq4qTNz40Cv; Thu, 19 Sep 2019 00:53:15 +0000 (UTC) (envelope-from grembo@freebsd.org) Received: by mail.evolve.de (OpenSMTPD) with ESMTP id 45c58759; Thu, 19 Sep 2019 00:53:13 +0000 (UTC) Received: by mail.evolve.de (OpenSMTPD) with ESMTPSA id a6ba862d TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Thu, 19 Sep 2019 00:53:13 +0000 (UTC) Date: Thu, 19 Sep 2019 02:52:40 +0200 From: Michael Gmelin To: Marcelo Araujo Cc: araujo@freebsd.org, Michael Gmelin , ports-committers , 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: References: <201909190021.x8J0LARn004132@repo.freebsd.org> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; amd64-portbld-freebsd11.2) X-Face: $wrgCtfdVw_H9WAY?S&9+/F"!41z'L$uo*WzT8miX?kZ~W~Lr5W7v?j0Sde\mwB&/ypo^}> +a'4xMc^^KroE~+v^&^#[B">soBo1y6(TW6#UZiC]o>C6`ej+i Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWJBwe5BQDl LASZU0/LTEWEfHbyj0Txi32+sKrp1Mv944X8/fm1rS+cAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAAB3RJTUUH3wESCxwC7OBhbgAAACFpVFh0Q29tbWVudAAAAAAAQ3Jl YXRlZCB3aXRoIFRoZSBHSU1QbbCXAAAAAghJREFUOMu11DFvEzEUAGCfEhBVFzuq AKkLd0O6VrIQsLXVSZXoWE5N1K3DobBBA9fQpRWc8OkWouaIjedWKiyREOKs+3PY fvalCNjgLVHeF7/3bMtBzV8C/VsQ8tecEgCcDgrzjekwKZ7TwsJZd/ywEKwwP+ZM 8P3drTsAwWn2mpWuDDuYiK1bFs6De0KUUFw0tWxm+D4AIhuuvZqtyWYeO7jQ4Aea 7jUqI+ixhQoHex4WshEvSXdood7stlv4oSuFOC4tqGcr0NjEqXgV4mMJO38nld4+ xKNxRDon7khyKVqY7YR4d+Cg0OMrkWXZOM7YDkEfKiilCn1qYv4mighZiynuHHOA Wq9QJq+BIES7lMFUtcikMnkDGHUoncA+uHgrP0ctIEqfwLHzeSo+eUA66AqzwN6n 2ZHJhw6Qh/PoyC/QENyEyC/AyNjq74Bs+3UH0xYwzDUC4B97HgLocg1QLYgDDO1v f3UX9Y307Ew4AHh67YAFFsxEpkXwpXY3eIgMhAAE3R19L919nNnuD2wlPcDE3UeT L2ytEICQib9BXgS2fU8PrD82ToYO1OEmMSnYTjSqSv9wdC0tPYC+rQRQD9ESnldF CyqfmiYW+tlALt8gH2xrMdC/youbjzPXEun+/ReXsMCDyve3dZc09fn2Oas8oXGc Jj6/fOeK5UmSMPmf/jL+GD8BEj0k/Fn6IO4AAAAASUVORK5CYII= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 46Ydcq4qTNz40Cv X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Sep 2019 00:53:16 -0000 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 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 > 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