[Arm-dev] Getting started / Build machines

Thu Jul 3 10:19:05 UTC 2014
D.S. Ljungmark <spider at aanstoot.se>

Excellent information, I'd love the scripts, and post-weekend sounds as
if it'd fit well with my schedule.

I'll see about taking the time to document steps as well so we might get
a wiki started on how to do this, seems as if there are a few people who
have interest, and at least documenting the basics might be good.

Regards,
  D.S.


On 03/07/14 12:14, Gordan Bobic wrote:
> On 2014-07-03 11:00, D.S. Ljungmark wrote:
>> Thanks for the head's up on that.
>>
>> So, plan of action would be:
>>  * Find / prepare a F19 bootable image.
> 
> Technically, as Karanbir said, you don't have to run F19
> on the build host, just use the F19 respository for mock
> builds. OTOH, for first pass you may find it a lot faster
> to install F19 (install _all_ packages), and instead of
> mock, use just straight rpm to build the first pass.
> 
> This will save you a tonne of time because the chroot won't
> have to be built every time (it takes time even if it's
> tarred and cached rather than yum installed each time).
> 
> Expect spurious failures if you do that - in EL6 I noticed
> there are packages that fail to build if other packages
> that aren't in the dependency list are installed. This
> is because the package's configure finds the extra
> packages and tries to build against them, which fails
> (or worse, produces a broken binary). If you remove the
> extra package, the build will succeed.
> 
> But for the first pass it should be OK because you
> are only going to use what comes out of it to build
> the second pass.
> 
> Then you rebuild it all again, just to make sure,
> and you should be good for an alpha test, and start
> working on genuine build failures, erroneous arch
> restrictions, etc. It is this stage that takes
> hundreds of man-hours. Everything else is mostly CPU
> time.
> 
> For building with multiple machines, I use a simple
> script on all the builders that places a lock file
> on uncached NFS when a package is picked for build,
> and if a builder sees there's a lock file there,
> goes on to the next package in the list. It's
> trivially simple and works very well. It would be
> nice to have something that resolves all dependencies
> for building and tries to build the packages in the
> dependency tree order, but that's mostly useful for
> bootstrapping from scratch, and we are cheating by
> bootstrapping on F19, so it isn't as big a problem.
> 
>>  * Install mock (git or are the packages ok?)
> 
> See above - you can save a lot of time for the first
> build pass by not using mock. Install all Fedora
> packages, and then simply use:
> 
> rpmbuild --rebuild $package.rpm
> 
>>  * build a mock F19 starter, test compile something traditional (bash?)
>>  * Duplicate this environment to the various machines
>>  * set up nfs for compile target
>>  * wrap some scripts around pssh to do parallel builds
>>
>> -- Am I missing something major here?
> 
> That's pretty much it. I am happy to share the scripts
> I use. If I don't post them by the weekend ping me
> to remind me. I can't get to them right now because my
> build farm is behind I firewall I don't have a hole on.
> 
> Gordan
> _______________________________________________
> Arm-dev mailing list
> Arm-dev at centos.org
> http://lists.centos.org/mailman/listinfo/arm-dev
> 

-- 
8362 CB14 98AD 11EF CEB6  FA81 FCC3 7674 449E 3CFC

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://lists.centos.org/pipermail/arm-dev/attachments/20140703/4756f53a/attachment-0004.sig>