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

Re: who is working on i386

On Mon, 2008-07-14 at 09:28 -0300, Herbert P Fortes Neto wrote:
> On Sun, 13 Jul 2008 21:41:21 +0100
> Neil Williams <codehelp@debian.org> wrote:
> > On Sun, 2008-07-13 at 17:14 -0300, Herbert P Fortes Neto wrote:
> > > Hi,
> > > 
> > >  I would like to know who is working on i386. 
> > 
> > Is that a volunteer I see?
>  Yes.


Which architecture are you going to use to build the packages? i386 or
amd64 (in a 32bit chroot) would be advisable.

>  Is the thinkpad 600e i use as server(home, domestic). At least
> until now, only text mode. I believe programs will run more
> easily.

Hmm, you will be able to fit more programs onto the device but an
increase in speed is not the main driver behind Emdebian - space is the
issue generally. The programs themselves are not that much smaller, what
is taken out are documentation, unwanted dependencies and some optional

We've only recently got a working system (ARM) so it is only now that I
can realistically start working out which components are optional and
which omissions are breaking things at runtime.

> > Until someone else volunteers, that is the state of play. Goswin did
> > look at some i386 builds just today - not sure how much work Goswin is
> > wanting to do on that.
>  As i said, i am a volunteer. But i need to follow steps. I can not do
> everything by myself. Not enough knowledge for that. Maybe i have someone
> to check the work done, but is important to have a mentor. Or the docs on
> emdebian.org is enough clear?

The docs on emdebian.org certainly need improving - especially for
native builds like yours. Use the Wiki to create your own docs as you go
and help us identify where the current docs are lacking.

>  What i can say is: i want to see emdebian on i386 and i can spend
> some time working on it.

For quicker advice, join us on IRC but the basics would be:

On AMD64, set up a 32bit chroot (debootstrap should be able to do that
for you, select i386 as the --foreign arch and Sid or unstable as the
suite). Install emdebian-tools in the chroot. Run all your builds inside
the chroot. Keep the chroot updated with a cron task.
On i386, simply install emdebian-tools.

emsource gets the Debian source package and applies our patches to
reduce the final package size.

You can use emdebuild but as this is native, you can just as easily use
debuild or dpkg-buildpackage after emsource has applied the patches. If
packages fail to build, check the Emdebian autobuilder report to see if
it is also happening for the ARM builds then ask me.

You will need either access to the Emdebian repository or a local
repository of your own (use reprepro).

As you build the packages, check them with emdebcheck and / or use
emrecent to upload them to the repo. At some stages, you will need to
overrule emdebcheck and allow certain uploads even if the dependencies
are not yet built - you have to start somewhere so start with busybox,
glibc and gcc-4.3 (yes, I know, the hardest + longest ones first -
sorry). You only need libgcc1 and libstdc++6 from gcc-4.3 but the build
prepares most of the rest too.

Once you have all the dependencies you need in the repo, you can finally
use emsandbox to create a root filesystem. If the device is already
running Debian, you could probably switch the source
in /etc/apt/sources.list to your repo and the higher Emdebian version
strings will allow your machine to "upgrade" to Emdebian. Hopefully, you
should find more disc space on the system but you may still have to
remove some packages and as these would be the original Debian ones that
Emdebian no longer needs, apt may well complain about removing
"Essential" packages - ignore it. If you want a clean install (which
will gain you the most space with the least pain overall), you need to
decide how to install the kernel, modules and root filesystem. That
stage has only been done for ARM and is quite customised.

Most of the benefit for i386 will not be seen until we have things like
dpkg variants supported in Debian where we can set options to disable
what we don't need. A lot of those options are currently implemented in
conditionals that detect a cross-build. In a native build, those are
ignored because we need to be able to get as many of our patches into
the Debian packages without changing Debian behaviour. Dpkg variants
should allow us to enforce the options in a native build by persuading
dpkg that the build is almost-but-not-quite-normal-Debian. Naturally,
that is easier to do in a cross-build because normal Debian packages are
not cross-built.

Building for i386 presents a few problems that are unique to that build
setup so changes may well be needed to fully support it. Without i386
test hardware, I need info on where things are breaking.


Neil Williams

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

Reply to: