Re: cache libboost (and more) for speeding up the build

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

 



On Wed, Sep 5, 2018 at 1:59 AM, kefu chai <tchaikov@xxxxxxxxx> wrote:
> On Wed, Sep 5, 2018 at 2:28 AM Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
>>
>> On Tue, Sep 4, 2018 at 8:29 AM, kefu chai <tchaikov@xxxxxxxxx> wrote:
>> > On Tue, Sep 4, 2018 at 10:20 PM Alfredo Deza <adeza@xxxxxxxxxx> wrote:
>> >>
>> >> On Tue, Sep 4, 2018 at 10:15 AM, kefu chai <tchaikov@xxxxxxxxx> wrote:
>> >> > hi guys,
>> >> >
>> >> > we build boost every time when building ceph. i don't think it's
>> >> > efficient, hence http://tracker.ceph.com/issues/25186 is filed to
>> >> > track this issue.
>> >> >
>> >> > to cache the built libboost for xenial and bionic, we can setup a PPA
>> >> > repo or host the repo by ourselves. if this approach works fine, we
>> >> > can also build libboost for centos. and expand the coverage to other
>> >> > dependencies, like dpdk, rocksdb and seastar.
>> >> >
>> >> > what do you think?
>> >>
>> >> I worry about the maintenance burden. Repositories are somewhat easy
>> >> with our infrastructure. If we are able to HTTP POST the binary to
>> >> chacra.ceph.com
>> >>
>> >> Who will be maintaining this package?
>> >
>> > i will. in the short-term, i will
>> >
>> > 1. setup repo(s) hosting the "debian/" directory. so the downstream
>> > changes can be tracked.
>> > 2. build the deb packages manually.
>> > 3. upload the source/binary packages to chacra
>> >
>> > in long-term, i think i will try to setup a jenkins job to build and
>> > upload the deb files for different branches when they gets updated.
>> > for instance, we will have xenial, bionic branches for libboost 1.67,
>> > once the xenial branch is updated, we should built the new recipe and
>> > push the built packages to chacra.
>> >
>> > my concern is, we might want to host different versions of dependency
>> > packages, for instance,  rocksdb x.y.z adds a new API, and we picks it
>> > up and uses it in master. apparently, we also bump up the version # of
>> > it in install-deps.sh in master, where we will install the pre-built
>> > packages. but the Ceph versions which use rocksdb version x.y.$(z-1)
>> > should still build after this change in master. and their
>> > install-deps.sh still point to rocksdb x.y.$(z-1). so if we cannot
>> > support multiple versions in one repo. it's a no-go.
>>
>> Sounds like this will work nicely for our Jenkins jobs, but it won't
>> do much for development builds as I think we're mostly on Fedora or
>> other Ubuntus. :(
>> Is that expected?
>
> i don't follow. what do you mean by "development builds"? are they the
> builds of pull requests? all of our building jobs are performed by
> jenkins. if jenkins slaves are able to pull from chacra repo, we are
> good, i think.
>
> as long as different debian derivatives are able to pull from
> different repos, and they should, the problem is solved. BTW, reprepro
> now supports multiple versions support. but the change
> (https://github.com/profitbricks/reprepro) has not been accepted
> upstream.
>
> really? are we building on fedora also on the jenkins builders? i
> think we only build Ceph on centos, ubuntu and debian. but i don't
> think it's a show-stopper, as we can always setup a rpm repo for
> fedora anyway. it just adds more maintenance load.

Oh sorry, I meant builds on developer machines
(laptops/desktop/"personal" servers).
Don't take this to mean avoiding the extra builds for our automated
systems is a bad idea, or should be blocked on making my local build
faster! It just wasn't what I was expecting when I read the subject
line. So I wanted to make sure we were all taking about the same
thing.
-Greg



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux