Skip site navigation (1)Skip section navigation (2)
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>