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(a)lists.fedoraproject.org
To unsubscribe send an email to buildsys-leave(a)lists.fedoraproject.or
g