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.
Okay, but in my case, I actually
want to do a fresh checkout since it is to be built on a
CMO machine, which, in general, will be different from
the development machine.
> 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.
Well, remember that start with
an "empty" LTIB working directory, which is just an
untar of ltib.tar.gz as we received it. So, at that
point, nothing has been configured or selected. I was
hoping
I could use some of the configuration files that were
created when I ran it interactively on the development
machine.