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

Re: From emsource -b to emsandbox

On Wed, 2008-03-19 at 12:23 +0000, David Goodenough wrote:
> On Wednesday 19 March 2008, Neil Williams wrote:
> > On Wed, 2008-03-19 at 10:43 +0000, David Goodenough wrote:
> >
> > $sources no longer exists in the suite scripts, it's too much of a
> > maintenance headache. Instead, emsource uses the apt-cross cache to work
> > out which source package provides the requested binary. The problem then
> > is removing the duplicates where the suite script needs only two of many
> > binaries built from one source package to prevent emsource having to
> > build the same source twice.

> Well you need to set $sources in the script

Sorry, $sources will not be set in the script.

> , or the if [ -z $sources }]; does
> not work.  Should I remove that test too?

You'll need to adapt the script to locate the correct source package
from the cache.

> My intention (at least at first as my two target architectures seem not to be
> the ones the emdebian repository is majoring on - i386 and mipsel) was to 
> build the repository entirely locally. 

Yes, using reprepro.

>  So in that case presumably I need
> to
> Reading up on apt-cross should I be using that instead of emsource? 

apt-cross gives you the cache data, emsource applies the Emdebian
patches and (optionally) builds the package.

Using apt-cross and dpkg-cross to create packages for installation is
the SLIND method, not Emdebian.

>  They
> seem to do the same thing.  Also how do I get at the local apt-cross cache
> rather than the system or emdebian one?  

apt-cross is completely different to emsource.

To use the cache, view the apt options that apt-cross uses by specifying
-v -v -v to apt-cross so that it shows you the config string.

> > You just need to work with the apt cache from the Emdebian repository,
> > not the Debian mirrors and get your showsrc from that.
> apt-cross seems to have a -show option, but not a -showsrc.  Have I missed
> something?

Pass the apt options to apt-cache ... showsrc $package

It's a normal cache, using apt-cross to generate it just saves some
work. You don't need apt-cross to query it once you have the full config
string, any apt process can use it.

> My next intention is to get it to use the packages.conf file from emsandbox
> so that it does all the downloading/building/tar'ing in one go.  That way 
> also the script file would not be hard coded.

packages.conf only mentions a few extra packages to what is already in
the suite script and some of those can be custom packages that don't
exist in Debian (like balloon3-config).

> > Don't generate the tree manually, do it with reprepro and make it easy
> > to maintain.
> Maybe I need to read more, but I can not see how to add a package into 
> reprepro.  I can see how to update things from an external repository, but
> as above my intention is to use a local repository.

$ reprepro -b $conf_dir unstable include /path/to/foo_bar_arch.changes

> One other thing I may have skipped, is build dependancies. 

Just add a call to apt-get build-dep as normal.

> apt-get installed it.  The emsource stuff talks about a chroot, but that is
> obviously not being used here (if nothing else the -p option is not used),
> should it be, and what do I need to set up so that it is.  I will need this
> for cross building mipsel stuff, and if emdebian moves to uclib I will also
> need it for i386.

Cross build dependencies are very different to native build dependencies
- use emdebuild --build-dep for that.

(emsource -p does the build-dep for you in the chroot but if you don't
need the chroot, you will need --build-dep yourself.)


Neil Williams

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: