Until this is fixed, I believe the following workaround should work:

Replace "yum install mock" in the Dockerfile with

yum install \
        https://kojipkgs.fedoraproject.org/packages/mock/1.4.16/1.el7/noarch/mock-1.4.16-1.el7.noarch.rpm \
        https://kojipkgs.fedoraproject.org/packages/mock-core-configs/32.5/1.el7/noarch/mock-core-configs-32.5-1.el7.noarch.rpm

D.

From: Panech, Davlet <Davlet.Panech@windriver.com>
Sent: June 18, 2020 12:55 PM
To: starlingx-discuss@lists.starlingx.io <starlingx-discuss@lists.starlingx.io>
Subject: [Starlingx-discuss] CENGN build fialures + builder docker file changes
 
Hi all,

The CENGN build failed today due to (in part) problems with the Dockerfile:

  https://opendev.org/starlingx/tools/src/branch/master/Dockerfile

- It uses latest CentOS & EPEL repos to pull packages from. Even though it's based on a pinned docker image, centos:7.4.xxx, it's yum repos point to mirror.centos.org (incl updates). So the first yum command in the docker file upgrades half the system towards 7.8 or whatever

- Our build scripts require mock <= 1.4.20, but what we get is version 2.x . Older compatible versions don't exist in CentOS or EPEL repos.

- Dockerfile installs (towards the end) all repo files from centos-mirror-tools globally. This makes "yum install" essentially unusable in the docker image once its built because that set includes a bunch of incompatible repos e.g. CnetOS 7.x and 8.x both enabled.

Note that these issues affect only the execution of build scripts -- individual RPMs are built in mock roots (inside Docker on CENGN) with their own yum configuration.

Proposed changes:

- Pin Dockerfile base image to centos:7.8.2003 (up from 7.4). This should be closer to what's been happening until now with latest packages being pulled in on top of a 7.4 base system as described above.
- Replace global yum repo files with pinned URLs that point to 7.8 (using CentOS vault etc) .
- Same for EPEL repos from here: https://archives.fedoraproject.org/pub/archive/epel/7.2020-04-20/
- Install this version of mock: https://kojipkgs.fedoraproject.org/packages/mock/1.4.16/1.el7/noarch/mock-1.4.16-1.el7.noarch.rpm . This is the only build scripts - compatible mock RPM I can find.
- As a separate effort we should update build scripts to support recent mock versions. But pinning to mock 1.4.x will help with the immediate build problems

Potential problem: Docker file installs anaconda, presumably because build-iso needs that (?). But if we pin centos repos, we will be creating ISO files based on the pinned anaconda packages. Unless build-iso itself runs inside mock, not sure it this is the case.

Thoughts, comments?

I'd like to get this fixed today if possible because it's gating CENGN builds.

Thanks,
D.
_______________________________________________
Starlingx-discuss mailing list
Starlingx-discuss@lists.starlingx.io
http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss