On 09/30/2013 11:59 AM, Jump, Lance wrote: > > Designation: Non-Finmeccanica > > >> Is it possible to archive (in SVN, for example) a complete package that > > >> allows LTIB to rebuild from "source" with a single command using the > > >> libraries that were archived at the time of archive? > > >> > > >> The situation is this. The developers will configure LTIB (kernel, > RFS ...) and > > >> download all packages needed. At some point, they will check this > into an > > >> archive so that the Configuration Management Organization (CMO) can > > >> check it out and build it. > > >> > > >> The CMO build will have no access to the internet and the > personnel, who > > >> are not familiar with LTIB, will want to invoke a script that does > everything -- > > >> even setting up /opt/freecale -- with no interaction. > > >> > > >> I have been able to do some this, such as setting up a local > package pool and > > >> using preconfigure, but I cannot accomplish the whole thing without > some > > >> manual interaction and/or retaining a significant amount of the > build by- > > >> products. > > >> > > >> Ideally, I would like to save nothing more than the original source > (LTIB and > > >> packages) and small number of configuration files. Then have a > script that > > >> takes these and performs the complete build. > > > > > > Obviously you only want to save the LTIB source (and local package pool > > > with appropriate configuration in .ltibrc to point to it) in SVN and > have the > > > CMO machine check it out and build "from scratch". Of course you > have to > > > assume that the CMO build machine has all the necessary host packages to > > > complete the build (i.e. build-essentials, etc) as well as grants > the "build > > > user" appropriate sudo permissions. > > > > Yes, the CMO build machine would have to be configured. For now, I am > experimenting using the development machine as the CMO machine and > first running the build interactively there. > > > > > > > > Given that you could write a script that automates the process via: > > > > > > 1) check out latest version of the LTIB source directory (that > contains the > > > local package pool that has copies of everything the build pulls > from the > > > global package pool) > > > 2) rm -rf /opt/freescale > > > 3) rm -rf rpm > > > 4) sudo rm -rf rootfs* > > > 5) rm -f .host_warning* > > > 6) rm -f .tc_* > > > 7) ./ltib -b --preconfig config/platform/<platform>/<defconfig> > > > > > > Where "<platform>" is the platform directory and "<defconfig>" is the > > > default LTIB configuration file. > > > Note the ".tc_*" is the trigger file telling LTIB to skip installing > the toolchain > > > package and ".host_warning*" is the trigger file telling LTIB to > skip building > > > its host packages - hence removing them forces LTIB to repeat those > steps. > > > > > > This should pretty much build LTIB completely from scratch... > > > > > > > The process I tried is similar to the above, except I also start with > an empty working directory. So, steps 3 through 6 are implicit. I > create the working directory by unpacking the original ltib skeleton. > At that point, everything is there (including the packages in the > LPP) and I can run LTIB interactively. > I use buildbot to manage continuous integration LTIB work for me, and I find I don't need to empty out the directory and completely check out a fresh tree - just the update is good enough, modulo removing the built files mentioned above. > > > > However, I do not see how to run it without user interaction. I have > tried various combinations of "-b" and "--preconfig" with various > saved configurations files. But I can't seem to get the magic set. > Below are some that I have tried (ltib/ is a saved run and ../ltib is > the fresh working copy): > > > > cp .ltibrc ../ltib > > cp ltib/config/main.lkc ../ltib/config/ > > cp ltib/.config ../ltib/ > > cp ltib/config/.config ../ltib/config/ > > cp ltib/config/platform/imx/.config ../ltib/config/platform/imx/ > > cp ltib/config/platform/imx/defconfig.dev ../ltib/config/platform/imx/ > > cp ltib/config/platform/imx/imx6_defconfig.dev > ../ltib/config/platform/imx/imx6_defconfig > > > > I am not sure which of these files I need, if I left out some crucial > ones or included some that cause problems. > I never use .dev files in my continuous integration builds - only the defconfigs - I have a step that does "rm -f config/platform/<platform>/*.dev" to remove them, and then run "./ltib -b --preconfig config/platform/<platform>/defconfig" to build it. You shouldn't have to copy any of those files around to get it to work.
When you run "./ltib -b --preconfig config/platform/<platform>/<defconfig>" from a _completely_ fresh checkout (with no other modifications to the tree), what user intervention is required? You should fix that problem first - perhaps you've broken something in your configuration that LTIB forces you to go through the/a configuration step. If "-b --preconfig" takes you into the kernel config step, you'll want to edit your defconfig and disable CONFIG_PKG_KERNEL_WANT_CF since that's a temporary trigger that forces LTIB to run it. -- Peter Barada [email protected]
_______________________________________________ LTIB home page: http://ltib.org Ltib mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/ltib
