Package building and build process

Alon Bar-Lev alonbl at redhat.com
Mon May 5 16:26:20 UTC 2014



----- Original Message -----
> From: "David Caro" <dcaroest at redhat.com>
> To: "Alon Bar-Lev" <alonbl at redhat.com>, "infra" <infra at ovirt.org>
> Sent: Monday, May 5, 2014 7:10:31 PM
> Subject: Re: Package building and build process
> 
> On 05/05/2014 05:51 PM, Alon Bar-Lev wrote:
> > 
> > 
> > ----- Original Message -----
> >> From: "David Caro" <dcaroest at redhat.com>
> >> To: "infra" <infra at ovirt.org>
> >> Sent: Monday, May 5, 2014 6:39:53 PM
> >> Subject: Package building and build process
> >>
> >> Hi!
> >>
> >> Lately we had some issues when trying to build some of the projects, and
> >> we
> >> wanted to start a discussion to clarify what do we want and how to get
> >> there.
> >>
> >> We can split the thread if it gets too large for all the subjects.
> >>
> >> The main points to discuss:
> >>
> >> * How the source tarballs should be built
> >>   · Should we use a jenkins job for it, so the maintainer just downloads
> >>   the
> >>     tarball from it
> >>   · Should we force the maintainer to build it and supply the tarball
> >>   himself
> >>   · Should we allow both
> > 
> > Not sure why you manage this discussion.
> > You just forgot to mention that up until now it worked perfectly ok, we had
> > a job to build releases out of tarballs, and all worked perfectly.
> > It was broken when you decided not to install certain dependencies on build
> > slaves.
> 
> Arising from different version of some projects requiring different version
> of
> different packages and different test requiring different sources for the
> same
> packages (testing against nightly, stable, pep8 latest, pep8 epel, ...) we
> had
> to introduce some job isolation, and reserving one slave for each job that is
> running became unproductive and hard to maintain (at first, we had some
> slaves
> for each project, then started installing and removing packages on each job,
> then not only installing and removing packages but also repositories,
> isolating
> the build on the same slave became a necessity).
> 
> > 
> > Anyway...
> > 
> > This is up to maintainer to decide.
> 
> It's up to the CI/infra/release team to provide the platform to build the
> projects for the maintainers to use.

As a service to the group.

> 
> > Build infrastructure should be able to get upstream tarball (any upstream
> > not just ovirt) and produce binaries for all our supported platforms as a
> > service, just like koji, brew or any downstream service.
> > The root resource of open source is the source tarball, this is the release
> > not the binary.
> That's what the next point is about.
> 
> > People here at ovirt tend to confuse what open source is.
> > 
> >>
> >> * Separate source release from binary release
> >>
> >> * Which tools to use to build the rpms
> >>   · plain rpmbuild
> >>   · Mock
> >>   · Docker
> >>   · copr
> >>   · Open Build System
> >>   · koji
> > 
> > Once upstream releases source tarball, this is not important.
> > This is the entire idea of open *SOURCE*.
> It might not be important to you, but we want to provide the easiest way for
> the
> users to use oVirt, not only for someone to build it, having a binary release
> for the major platforms helps TREMENDOUSLY on getting users to use the
> product.

Once again... and again... and again....

The release is the source tarball.
We provide the service of providing binaries as well.
This is fine, this is a service.

> 
> > 
> >> * How to organize the rpm/tar build jobs
> >>   · One job for all the projects
> >>   · One job per-project
> > 
> > If we cannot provide single job for generic tarball build, we have a huge
> > problem.
> I don't agree.

You do not need to agree, you should provide it as a service.

> 
> > 
> > I worked very hard with all maintainers (except vdsm) to be able to achieve
> > the standard sequence of:
> > 
> > # rpmbuild -tb <tarball>
> 
> You are not taking into account all the dependencies that rpmbuild -tb
> <tarball>
> has, each project has it's own, and they are incompatible between projects
> and
> between versions. And not just building the rpms, building the tarballs also
> have some requirements that must be met. So building a package is not just
> rpmbuild, but setup the repos, install packages, then rpmbuild, then cleanup
> packages and restore repos.

rpmbuild -ts <tarball>
yum-builddep <srpm>

solves this as well, adding optional repositories can be a parameter to the job.

all was already done nothing to reinvent.

> 
> > 
> > Regards,
> > Alon Bar-Lev.
> > 
> >>
> >> PD. Opened an etherpad to keep the points
> >> http://etherpad.ovirt.org/p/build_discussion
> >> --
> >> David Caro
> >>
> >> Red Hat S.L.
> >> Continuous Integration Engineer - EMEA ENG Virtualization R&D
> >>
> >> Email: dcaro at redhat.com
> >> Web: www.redhat.com
> >> RHT Global #: 82-62605
> >>
> >>
> >> _______________________________________________
> >> Infra mailing list
> >> Infra at ovirt.org
> >> http://lists.ovirt.org/mailman/listinfo/infra
> >>
> 
> 
> --
> David Caro
> 
> Red Hat S.L.
> Continuous Integration Engineer - EMEA ENG Virtualization R&D
> 
> Email: dcaro at redhat.com
> Web: www.redhat.com
> RHT Global #: 82-62605
> 
> 



More information about the Infra mailing list