I have filed https://pagure.io/koji/issue/398 as an RFE for koji to provide 
support for choosing between chroot/nspawn.

Cheers
-- Dennis

On 04/26/2017 02:35 PM, Dennis Gilmore wrote:
> Please do not push this stable until there has been sufficient time to
> test in koji and possibly develop new features in koji to make
> supporting chroot or systemd-nspawn configurable per tag/target 
> 
> Dennis
> 
> El mié, 26-04-2017 a las 15:52 +0200, Miroslav Suchý escribió:
>> Hi,
>> I just released new version of Mock.
>>
>> I submitted it to updates-testing F26, F25 and EPEL-7 so please test
>> it 
>> before it hit stable.
>>
>>  From the release notes:
>>    https://github.com/rpm-software-management/mock/wiki/Release-Notes
>> -1.4.1
>>
>> There are new features:
>>
>> * Mock previously used chroot technology. Few past releases Mock
>> offered 
>> systemd-nspawn which is modern container technology for better 
>> isolation. This release use systemd-nspawn as default. If you want
>> to 
>> preserve previous behaviour you can use `--old-chroot` option.
>> * Mock now uses bootstrap chroot to install target chroot. This is
>> big 
>> change and see special paragraph at the bottom of this release notes.
>> * Chroot now contains `/dev/hwrng` and `/dev/prandom` when they
>> exists 
>> in host [[#33](https://github.com/rpm-software-management/mock/issues
>> /33)]
>> * We added %distro_section macro to Mageia configs
>>
>> There are some bugfixes:
>>
>> * Resultdir is now chowned to user who executed mock so they can
>> delete 
>> the files.
>> * Previously we declared that package state plugin is enabled by 
>> default, but the plugin was in fact disabled. It is now enabled by 
>> default (as stated in mock documentation) 
>> [[RHBZ#1277187](https://bugzilla.redhat.com/show_bug.cgi?id=1277187)]
>> .
>> * Creating directories for mount points have been delayed after mount
>> of 
>> tmpfs [[#57](https://github.com/rpm-software-management/mock/issues/5
>> 7)]
>> * Exit code of machinectl is now ignored as machinectl set non-zero
>> code 
>> even for non-fatal errors. Errors which are quite often not relevant
>> nor 
>> important for mock.
>> * hw_info plugin does not crash when output contains non-ASCII 
>> characters 
>> [[#68](https://github.com/rpm-software-management/mock/issues/68)]
>>
>> Notes:
>> * This version has not been released for EL6. If you are using EL6
>> and 
>> you want to use latest Mock, please upgrade you infrastructure to
>> EL7.
>> * Configs for s390 architecture has been removed as it is not
>> supported 
>> any more.
>> * Configs for aarch64 and ppc64le now use different GPG key as those 
>> architectures has been moved from Secondary to Primary.
>> * Epel5 config points now to Vault.centos.org. Note that EL5 has
>> been 
>> EOLed. We will keep epel-5 config for some time. But any issue with 
>> building for epel-5 target will not be fixed.
>>
>> ## Bootstrap chroot
>>
>> Mock is calling `dnf --installroot` to install packages for target 
>> architecture into target directory. This works. Mostly. The only
>> problem 
>> that use host DNF and rpm to install packages. But this can cause 
>> problem when new RPM feature is introduces. Like Soft dependencies
>> or 
>> Rich dependencies. When you have EL6 host and try to install Fedora 
>> rawhide package with Rich dependency then rpm will fail and you
>> cannot 
>> do anything about it. You can upgrade your build machine to Fedora 
>> rawhide, but that is often not possible when it is part of critical 
>> infrastructure.
>>
>> So we introduced Boostrap chroot. And 'we' actually means Michael
>> Cullen 
>> who implement it. And Igor Gnatenko who proposed this idea. Big
>> kudos 
>> for both of them.
>>
>> Bootstrap chroot means that we first create very minimal chroot for 
>> target platform and we call DNF/YUM from that platform. For example: 
>> when you are on RHEL7 and you want to build package for 
>> `fedora-26-x86_64`, mock will first create chroot called 
>> `fedora-26-x86_64-bootstrap`, it will install DNF and rpm there
>> (fc26 
>> versions). Then it will call DNF from `fedora-26-x86_64-bootstrap`
>> to 
>> install all needed packages to `fedora-26-x86_64` chroot.
>>
>> The disadvantage is that you will need more storage in
>> `/var/lib/mock`, 
>> the build is little bit slower. But you will hardly notice that
>> unless 
>> you disabled `yum_cache` and `root_cache` plugins for some reasons.
>>
>> The advantage is that you can use stable version of OS to build
>> packages 
>> for even most recent OS. And vice versa. 
>>  
>>
>>
>> If you want to preserve previous behaviour you can use 
>> `--no-bootstrap-chroot` command line option or set:
>>
>> ```
>>      config_opts['use_bootstrap_container'] = False
>> ```
>>
>> in your configuration.
>>
>>
>> -- 
>> Miroslav Suchy, RHCA
>> Red Hat, Senior Software Engineer, #brno, #devexp, #fedora-buildsys
>> _______________________________________________
>> buildsys mailing list -- buildsys@lists.fedoraproject.org
>> To unsubscribe send an email to buildsys-le...@lists.fedoraproject.or
>> g
>>
>>
>> _______________________________________________
>> buildsys mailing list -- buildsys@lists.fedoraproject.org
>> To unsubscribe send an email to buildsys-le...@lists.fedoraproject.org

-- 
Dennis Gregorovic
Associate Manager, PnT DevOps
Red Hat
dgre...@redhat.com     T: +1 978.392.3112     M: +1 617.901.9799    

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
buildsys mailing list -- buildsys@lists.fedoraproject.org
To unsubscribe send an email to buildsys-le...@lists.fedoraproject.org

Reply via email to