ltib
[Top][All Lists]
Advanced

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

Re: [Ltib] One step, CMO build


From: Peter Barada
Subject: Re: [Ltib] One step, CMO build
Date: Mon, 30 Sep 2013 12:24:33 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0

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
address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]