0

In a Buildroot based project, I am requiring a library existing in Buildroot, but a version newer than the one from buildroot. (Buildroot currently ships the definition of Armadillo v6.500, while we use v7.800 -- anyway the question applies to any library). How can I add a definition for this newer library, so that Buildroot downloads and cross-compiles the latest version of the package?

For more information: We are using an "external" (see BR2_EXTERNAL_*) path with our own (project specific) package definitions. Re-declaring the Armadillo library in this external source did not work (as it finds it as a duplicate). So we ended up with the following workaround: adding a new package ARMADILLO7 (as opposed to ARMADILLO), with its own armadillo7/ directory, a copy of the build files renamed to armadillo7*., etc. For example, armadillo7.mk includes:

ARMADILLO7_VERSION = 7.800.2
ARMADILLO7_SOURCE = armadillo-${ARMADILLO7_VERSION}.tar.xz
ARMADILLO7_SITE = http://downloads.sourceforge.net/project/arma
... 

(this is a copy of the original files, slightly modified for a newer file naming convention, and of course with version 7.800).

Our packages then require the package ARMADILLO7, and not ARMADILLO. However, this is not a clean solution, and in other cases it may not be a solution at all. Is there a more correct way of adding newer packages?

herchu
  • 936
  • 7
  • 24
  • Just send a patch like [this](https://git.busybox.net/buildroot/commit/package/armadillo?id=209cf5c6dfe0efb542537ab88b134e5fd2b07475) to BR's mailing list. See instructions [here](http://nightly.buildroot.org/manual.html#submitting-patches). – yegorich Apr 19 '17 at 13:36
  • Thanks @yegorich - I might do this; although I would have to wait for a regular release cycle to get the update anyway, is that right? (If so, I am still curious about my original question, to be able to handle it locally) – herchu Apr 19 '17 at 17:50
  • No you don't need to wait till next release. Normally package bump takes a few days to be applied. Just create a new branch in your buildroot git repo and commit your patch there. As soon as it is upstreamed you can either rebase your branch or switch to master again. Alternatively you can use local.mk method. See "8.12.6. Using Buildroot during development". – yegorich Apr 20 '17 at 05:50

0 Answers0