Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Sep 2019 09:06:39 +0800
From:      Marcelo Araujo <araujobsdport@gmail.com>
To:        Michael Gmelin <grembo@freebsd.org>
Cc:        Marcelo Araujo <araujo@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:  <CAOfEmZjpYgcuydQrO-ExN9Q%2BGaC8rq-yKhQCuam4m1rYrmqjSg@mail.gmail.com>
In-Reply-To: <20190919025240.6f10aeeb@bsd64.grem.de>
References:  <201909190021.x8J0LARn004132@repo.freebsd.org> <CAOfEmZhSiKpKGjGh82yph_NdRiEfEid8gqGpVxOGQG6qXsLjug@mail.gmail.com> <20190919025240.6f10aeeb@bsd64.grem.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Em qui, 19 de set de 2019 =C3=A0s 08:53, Michael Gmelin <grembo@freebsd.org=
>
escreveu:

> 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=3D240177#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=3D240177#c4
>
> Happy to have more direct communication happen next time though.
>
> Cheers,
> Michael
>

Not a problem Michael, it lacked a good communication and coordination from
my side. You did right, apologize for my previous email.
Thanks for the patch upstream and to update the ports. I will try to ping
the iocage guys again to see when we will have a new release.

Cheers,



>
> 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/f66d9f0724daa03dc08cebc3f30b04abc=
7e97f82
> > >   [1]
> > >
> https://github.com/iocage/iocage/commit/47d7c28ad2db76eaba797921555bbf68a=
476eb9b#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
> > >
> > >
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> > > --- 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=3D      iocage
> > >  PORTVERSION=3D   1.1
> > > +PORTREVISION=3D  1
> > >  CATEGORIES=3D    sysutils python
> > >  PKGNAMEPREFIX=3D ${PYTHON_PKGNAMEPREFIX}
> > >
> > > @@ -22,12 +23,14 @@ RUN_DEPENDS=3D
> > > ${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py
> > >
>  ${PYTHON_PKGNAMEPREFIX}requests>=3D2.11.1:www/py-requests@${PY_FLAVOR}
> > > \
> > >                 ${PYTHON_PKGNAMEPREFIX}libzfs>=3D1.0.2:devel/py-libzf=
s@${PY_FLAVOR}
>
> > > \
> > >                 ${PYTHON_PKGNAMEPREFIX}dulwich>0:devel/dulwich@${PY_F=
LAVOR}
>
> > > \
> > > -
> > > ${PYTHON_PKGNAMEPREFIX}dnspython>0:dns/py-dnspython@ ${PY_FLAVOR}
> > > +
> > > ${PYTHON_PKGNAMEPREFIX}dnspython>0:dns/py-dnspython@${PY_FLAVOR} \
> > > +               merge:devel/rcs57
> > >
> > > -NO_ARCH=3D       yes
> > >  USES=3D          python:3.6+
> > >  USE_GITHUB=3D    yes
> > >  USE_PYTHON=3D    autoplist distutils
> > > +
> > > +NO_ARCH=3D       yes
> > >
> > >  CONFLICTS=3D     py27-iocage-[0-9]*
> > >
> > >
> > > Added: head/sysutils/iocage/files/patch-iocage_lib-ioc_upgrade.py
> > >
> > >
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> > > --- /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/f66d9f0724daa03dc08cebc3f30b04abc=
7e97f82
> > > +--- 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 =3D callback
> > > +-        # Work around for
> > > https://github.com/freebsd/freebsd/commit/bffa924f
> > > +-        os.environ['UNAME_r'] =3D self.jail_release
> > > +
> > > ++        # symbolic link created on fetch by freebsd-update
> > > ++        bd_hash =3D hashlib.sha256((self.path +
> > > '\n').encode('utf-8')).hexdigest()
> > > ++        self.freebsd_install_link =3D os.path.join(self.path,
> > > ++            'var/db/freebsd-update', bd_hash + '-install')
> > > ++
> > > +     def upgrade_jail(self):
> > > +         tmp_dataset =3D self.zfs_get_dataset_name('/tmp')
> > > +         tmp_val =3D self.zfs_get_property(tmp_dataset, 'exec')
> > > +@@ -142,44 +146,26 @@ class IOCUpgrade(iocage_lib.ioc_json.IOCZFS):
> > > +                         callback=3Dself.callback
> > > +                     )
> > > +             else:
> > > +-                try:
> > > +-                    iocage_lib.ioc_exec.InteractiveExec(
> > > +-                        fetch_cmd,
> > > +-                        self.path.replace('/root', ''),
> > > +-                        uuid=3Dself.uuid,
> > > +-                        unjailed=3DTrue
> > > +-                    )
> > > +-                except iocage_lib.ioc_exceptions.CommandFailed:
> > > +-                    self.__rollback_jail__()
> > > +-                    msg =3D f'Upgrade failed! Rolling back jail'
> > > ++                iocage_lib.ioc_exec.InteractiveExec(
> > > ++                    fetch_cmd,
> > > ++                    self.path.replace('/root', ''),
> > > ++                    uuid=3Dself.uuid,
> > > ++                    unjailed=3DTrue
> > > ++                )
> > > ++
> > > ++            if not os.path.islink(self.freebsd_install_link):
> > > ++                    msg =3D f'Upgrade failed, nothing to install
> > > after fetch!'
> > > +                     iocage_lib.ioc_common.logit(
> > > +                         {
> > > +-                            "level": "EXCEPTION",
> > > +-                            "message": msg
> > > ++                            'level': 'EXCEPTION',
> > > ++                            'message': msg
> > > +                         },
> > > +                         _callback=3Dself.callback,
> > > +                         silent=3Dself.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 =3D f'Upgrade
> > > failed! Rolling back jail' +-
> > > iocage_lib.ioc_common.logit( +-                            {
> > > +-                                'level': 'EXCEPTION',
> > > +-                                'message': msg
> > > +-                            },
> > > +-                            _callback=3Dself.callback,
> > > +-                            silent=3Dself.silent
> > > +-                        )
> > > ++            while os.path.islink(self.freebsd_install_link):
> > > ++                self.__upgrade_install__(tmp.name)
> > > +
> > > +             new_release =3D
> > > iocage_lib.ioc_common.get_jail_freebsd_version(
> > > +                 self.path,
> > > +@@ -353,16 +339,10 @@ class IOCUpgrade(iocage_lib.ioc_json.IOCZFS):
> > > +                 unjailed=3DTrue,
> > > +                 callback=3Dself.callback,
> > > +             ) as _exec:
> > > +-                update_output =3D
> > > iocage_lib.ioc_common.consume_and_log( ++
> > > iocage_lib.ioc_common.consume_and_log(
> > > +                     _exec,
> > > +                     callback=3Dself.callback
> > > +                 )
> > > +-
> > > +-            for i in update_output:
> > > +-                if i =3D=3D '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
> > >
> > >
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> > > --- /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 =3D '1.1'
> > > +
> > > +-setup(
> > > +-    name=3D'iocage_lib',
> > > +-    version=3DVERSION,
> > > +-    description=3D'A jail manager that uses ZFS.',
> > > +-    author=3D'iocage Contributors',
> > > +-    author_email=3D'https://groups.google.com/forum/#!forum/iocage'=
,
> > > +-    url=3D'https://github.com/iocage/iocage',
> > > +-    packages=3Dfind_packages(),
> > > +-    include_package_data=3DTrue,
> > > +-    install_requires=3D[
> > > +-        'dulwich>=3D0.18.6',
> > > +-        'netifaces>=3D0.10.8',
> > > +-        'dnspython>=3D1.15.0',
> > > +-        'libzfs'
> > > +-    ],
> > > +-    setup_requires=3D['pytest-runner'],
> > > +-    entry_points=3D{'console_scripts': ['iocage =3D iocage_lib:cli'=
]},
> > > +-    data_files=3D_data,
> > > +-    tests_require=3D['pytest', 'pytest-cov', 'pytest-pep8']
> > > +-)
> > > ++#setup(
> > > ++#    name=3D'iocage_lib',
> > > ++#    version=3DVERSION,
> > > ++#    description=3D'A jail manager that uses ZFS.',
> > > ++#    author=3D'iocage Contributors',
> > > ++#
> > > author_email=3D'https://groups.google.com/forum/#!forum/iocage',
> > > ++#    url=3D'https://github.com/iocage/iocage', ++#
> > > packages=3Dfind_packages(), ++#    include_package_data=3DTrue,
> > > ++#    install_requires=3D[
> > > ++#        'dulwich>=3D0.18.6',
> > > ++#        'netifaces>=3D0.10.8',
> > > ++#        'dnspython>=3D1.15.0',
> > > ++#        'libzfs'
> > > ++#    ],
> > > ++#    setup_requires=3D['pytest-runner'],
> > > ++#    entry_points=3D{'console_scripts': ['iocage =3D
> > > iocage_lib:cli']}, ++#    data_files=3D_data,
> > > ++#    tests_require=3D['pytest', 'pytest-cov', 'pytest-pep8']
> > > ++#)
> > > +
> > > + setup(
> > > +     name=3D'iocage_cli',
> > >
>
>
>
> --
> Michael Gmelin
>


--=20

--=20
Marcelo Araujo            (__)araujo@FreeBSD.org
\\\'',)http://www.FreeBSD.org <http://www.freebsd.org/>;   \/  \ ^
Power To Server.         .\. /_)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOfEmZjpYgcuydQrO-ExN9Q%2BGaC8rq-yKhQCuam4m1rYrmqjSg>