[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [atomic-devel] patches to build Project Atomic related Fedora specfiles on CentOS





On 04/01/2016 08:20 PM, Colin Walters wrote:
Hi,

I am working on continuous delivery again.  I submitted:
created https://github.com/CentOS/sig-atomic-buildscripts/pull/65
which uses rpmdistro-gitoverlay[1].

Before I go too much farther, let me back up and describe the goal:

Goal
====
We build the same version of most components (etcd, docker, kubernetes, ostree,
the ADB stack, the OSBS stack) etc. for both CentOS and Fedora 22/23/24 in CentOS
CI.   However unlike Koji, these builds would be automatic and not manual.  And we hook
up our github PR testers to this, so that we are more consistently verifying
builds of each component across both CentOS and Fedora.

(And we'll do Atomic Host ostree commits for the relevant bits, and
  container builds too, and hook it all up to tests, etc.,
  but consistently generating binaries for the support matrix is step 0)

Contrast vs current state
=================

lsm5 is maintaining Docker in CentOS Virt SIG, but since there isn't
even dist-git for CBS right now, there is basically no way for anyone
else to collaborate, and plus it's manual.

For me I'm trying to get 32 bit PR testing builds of ostree for Fedora, since it's
still a blocker there and not having it has bit me (having to go and fix
up a pile of 32 bit warnings after releases).

We are very inconsistent about building other things like etcd
(http://cbs.centos.org/koji/packageinfo?packageID=102 last updated  	2015-04-10).

Currently the ADB stack is CentOS-only.

And I haven't even mentioned building containers from these RPMs.

The list goes on, you get it.

Details
=====

Now in order for this to work, the Fedora spec files have to work on CentOS,
and this is where things get fun[2].  And I need the help of people maintaining
the spec files.

I would like to extend all packages to CentOS. However, it is a lot of work to do.
We need someone who will take care of CentOS part.

https://gist.github.com/cgwalters/422a989264c13d1466ac617bd57a45c8

has a set of patches I'd like to push to Fedora so far for:
  - python-docker-py
  - atomic
  - etcd

%gobuild macro defined. The same will have to be applied for other spec files.

And this isn't yet doing Kubernetes or Docker.   So far I'm just at the atomic command
and the rpm-ostree stack.  One major problem
I hit right away with the golang stack is that while several of the
spec files like etcd have a `%global with_bundled` support, it
doesn't actually work to set it to false.

Fixed.

Now let me get on my soapbox here about this problem and say
that it's crazy and the worst of both worlds to fully de-bundle for
Fedora but then fully re-bundle downstream.  It means we are getting
less testing for both cases.  We should de-bundle some strategic
important items in both cases probably, but otherwise keep them in
sync.

A common theme actually is that the Fedora spec files have adopted
newer macros than exist in CentOS.  I may look at building go-srpm-macros
in the overlay.

Another issue for etcd is that the patches in dist-git only apply if !bundled.

Or we could go to generating spec files, but that's a whole other topic.

And I still need to enhance rpmdistro-gitoverlay to understand the
array of sub-git repositories that `docker.spec` pulls in.

[1] https://github.com/cgwalters/rpmdistro-gitoverlay
[2] Your definition may vary


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]