[Buildroot] Define some package parameters dynamically
Serj Kalichev
serj.kalichev at gmail.com
Thu Nov 22 16:08:33 UTC 2018
Hello
In our project we have implemented an dynamic definition of some package
parameters. I want to discuss the mechanism here before a patch
creation. Because the work and time is needed to carefully embed it into
the standard buildroot sources. So if mechanism is good enough I will
create a patch.
The purpose of mechanism is to dynamically define some package
parameters. The parameters are download method, download site, source
name and version. In a case of VCS version is a revision and branch.
These parameters can be defined in .config. If parameter is defined it
overrides the corresponding parameter from <package>.mk file.
Possibly the definition of the version of stable package is not very
actual but it very usefull for active development with version control
systems like git. We have many packages stored in git. Every day we need
to rebuild buildroot project with new revisions of our packages. So we
have implemented additional parameter for package. We call it "VCS_UP".
If package has BR2_PACKAGE_<...>_VCS_UP="y" in .config file then command
"make <package>-vcs-up" will renew the revision of package to the newest
(git's HEAD) one. So more stable git packages can have VCS_UP=n and the
fixed revision will be used, but actively developed packages will have
VCS_UP=y. There is a command "make vcs-up" to update revisions for all
packages with VCS_UP=y.
The implement the mechanism the changes to package's Config.in is needed
(to define additional parameters). To don't pollute standard Config.in
files we dynamically autogenerate files Config.in.auto for all packages.
If package need additional parameters you can write "source
PATH_TO_AUTOGEN_FILE" to Config.in.
The mechanism is usefull for custom packages.
Thanks.
More information about the buildroot
mailing list