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

Reply via email to