[Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization
Yann E. MORIN
yann.morin.1998 at free.fr
Wed Sep 11 17:27:09 UTC 2013
Ryan, Thomas, All,
On 2013-09-11 10:55 -0500, Ryan Barnett spake thusly:
> Thomas Petazzoni <thomas.petazzoni at free-electrons.com> wrote on 09/11/2013
> 02:17:00 AM:
> > On Tue, 10 Sep 2013 20:32:32 -0500, rjbarnet at rockwellcollins.com wrote:
> > > Thank you so much for this patchset as it address the biggest issue
> that
> > > my company currently has with buildroot and will help us become a much
>
> > > bigger
> > > contributer to buildroot since we can move to a model that is
> conducive to
> > > contributing changes back up to buildroot.
> >
> > Glad to hear this!
Yes, indeed. It's good to read this would in the end allow people to
contribute more instead of /fighting the system/ ! :-)
> I'll give bit more detail on how patch could allow our company to be
> better contribute back to the buildroot project with this change. During
> development of a project, we could use git to track mainline and any
> third party package that we add support for, we would contribute them
> back upstream. The hope would be that by the time we get to the point
> where we have to lock into a specific version of buildroot, our changes
> would have been incorporated into buildroot. If not, we could move the
> packages that were rejected into the BR2_EXTERNAL location but still
> be able to use an off-the-shelve version of buildroot.
That's funny, because I would have expected exactly the opposite: do
everything in BR2_EXTERNAL, and move them to Buildroot just before
upstreaming them.
But if you (and others) see BR2_EXTERNAL as a faillover for stuff that
could not be upstreamed before you settle on a version of Buildroot,
then I have to say that I'm really happy to read that. :-)
So many companies only upstream their work after-the-fact that it is
indeed a relief to find some that do actually want to push as much as
possible upstream first. Kuddos to you! :-)
> > Ok. Note that after I posted my patches, I had a discussion with Yann
> > Morin on IRC and he was skeptical about it, for two reasons:
> >
> > (1) Almost all of what BR2_EXTERNAL allows is possible today with the
> > current Buildroot. For board level stuff, nothing forces you to
> > store it in board/<foo>/ within the Buildroot tree: all of the
> > configuration options in Buildroot can use
> > $(TOPDIR)/../company/<foo>/ to reference a kernel configuration
> > file, or a root filesystem overlay.
> >
> > For packages, the 'local.mk' file is already automatically
> > included in Buildroot if it exists. So you can create such a file
> > and put a "include $(TOPDIR)/../company/external.mk' line in it.
> > This external.mk will include all the makefiles of the external
> > packages. Since Config.in can't be integrated as easily, one
> > solution would be to hardcode BR2_PACKAGE_FOOBAR=y directly within
> > external.mk to have it always enabled.
>
> That just becomes nasty and doesn't really easily allow for different
> configurations where you don't always want all your propriety packages
> to build. Also it doesn't make your propriety packages visible within
> the buildroot menuconfig. The other nice feature is the is that company's
> configs are automatically pulled in a separate area.
The way *I* see this is that Buildroot is not the main /frontend/ of the
build system, but rather a backend. That's the way I use it: I have a
kind of /upper-layer/ build system that uses Buildroot as a kind of
/backend/. I've already introduced it briefly here some time ago, and
wanted to make it a bit more complete before a real annoucement, but
here it is if you want to have a look (it's been public all the time
sicne the beginning anyway):
http://ymorin.is-a-geek.org/git/buildroot.config/
(Note, this thread is not about the above, so I think we should not
discuss it further in this thread; let's start another thread if people
are interested).
> > So, it's already possible today, but I believe the current
> > situation is (a) not very easy to use, and (b) not visible enough.
> > (b) could be solved by more documentation, but I believe
> > BR2_EXTERNAL does not make Buildroot more complicated and solves
> > (a) quite nicely.
>
> I definitely agree
Although I do not like the idea on a philosophical point of view, I
agree there is such a need, even more so since you're not the first to
come up with, and try to address, this issue.
So I'm all for making people's lives^Wwork easier, and Thomas' patchset
looks pretty rad (I haven't tested it yet, but I think I could even use
it from my Buildroot.config project! ;-) )
> > (2) Yann's feeling was that by giving a too easy solution to keep
> > things out of tree would discourage BR users from contributing
> > their new packages upstream, since they can keep it outside of the
> > tree nicely. While I certainly admit it can be the case, your
> > introduction to this e-mail interestingly points exactly the
> > opposite :-)
>
> While I do understand Yann's concerns, however, I do think that this goes
> against buildroot's philosophy - "Buildroot: make Embedded Linux easy".
> Right now it isn't easy for one to make customization to buildroot without
> modifying buildroot's source.
>
> Yann - I would welcome you input into this discussion on mailing list
> here.
Yes, as I said above, I would have expected companies (well, people at
companies) be stressed by projects deadlines, and that they would work
in BR2_EXTERNAL, and only try to upstream later, when it would be too
late (for them!) to have proper reviews, since they would be internally
committed to their changes in BR2_EXTERNAL, and we would not be able to
take their changes.
But if people use BR2_EXTERNAL as a fallback for anything that did not
make it upstream (by lack of time, or of interest), or for purely
internal stuff, then I don't see a reason for concern. All the better! :-)
> I'm probably beating this issue to death but I guess I'm very excited
> about
> the possibilities that this patchset opens up for my company.
Not speaking for the others, but I for one am very exited by this
patchset too, if it makes people very exited about what it will allow
them to submit back upstream! ;-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list