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

Re: Renesas SH4 support in emdebian



Dropping the attachment, mailing lists seem to have problems with it.
Unfortunately, it isn't straightforward to make the file itself
available on the web, so if anyone on the list wants the file ask me
and I'll send it privately.

On Wed, 27 Jan 2010 12:50:46 +0900
Nobuhiro Iwamatsu <iwamatsu@debian.org> wrote:

> I am now trying to run Debian on Renesas SH(sh4)[0] CPU and  most
> packages could build.
 
> This CPU[0] is useing on Embeded system.
> I want to support Renesas SH4 in emdebian.
> 
> Where should I begin work with?
> I want to support cross compiler, Emdebian Crush and Emdebian Grip and
> documents.

1. Emdebian Crush will have to wait - there is no work on Crush for any
architecture at the moment, the build system is in flux. Many of the
existing packages won't build successfully for existing architectures
(like armel), trying to build them for a new architecture is only going
to be harder. It's stalled by a lack of developer time, need for
multiarch support (or some intermediate process) and a method for
handling the package changes needed within Crush by renaming the main
binary package.

2. Emdebian Grip does not build packages, it adapts existing
Debian packages - where have the natively built packages been put?

I can find some packages at:
http://ftp.ch.debian.org/debian-ports/

Unfortunately, that mirror uses what appears to be a non-standard
filesystem for the archive itself. Instead of pool/ containing files of
all architectures, it is split into pool-sh4/ and many others. There are
various areas where '/pool/' is assumed and hard-coded in various
scripts and programs that handle genuine Debian package archives. (I'm
not just talking about apt, this is more about packages like reprepro
which need to be able to retrieve the packages themselves.)

The default setup made by emdebian-grip-server is going to need to be
adapted by hand - the update rules for the filter repository will need
to specify two update rules. One for the sh4 packages (debian-ports) and
one for the source packages (debian). I've tested locally, it does work.

$ cat conf/distributions 
Origin: Debian
Label: Emdebian-unstable
Suite: unstable
Codename: sid
Version: 1.0
Architectures: sh4 source
Components: main
UDebComponents: main
Description: Emdebian unstable package repository
Update: test test-official

$ cat conf/updates
Name: test
Method: http://ftp.ch.debian.org/debian-ports/
Suite: unstable
Components: main
Architectures: sh4
FilterList: deinstall pkglist
VerifyRelease: blindtrust

Name: test-official
Method: http://ftp.ch.debian.org/debian/
Suite: unstable
Components: main
Architectures: source
FilterList: deinstall pkglist
VerifyRelease: blindtrust

(You probably don't want to use blindtrust on a public mirror and you
probably want to rename the two update stanzas to something
meaningful by changing the Name: and put those sensible names in the
Update: rule in conf/distributions. See reprepro (1) for more info on
the content of these files.)

So, the process is:

$ cd /your/chosen/path
$ mkdir -p filter/conf

Create and edit the two files above in filter/conf:

$ ls filter/conf
distributions updates

let em_autogrip set up the first package:

$ em_autogrip -b /your/chosen/path

then add your first package:

$ em_autogrip -b /your/chosen/path -s apt

Once that's done, you could replace filter/conf/pkglist with the
attached file and update the filter repository:

$ reprepro --noskipold -b /your/chosen/path/filter -v update

Then possibly build the entire sh4 Grip archive (a lot smaller than a
full Debian archive because it's only 2,000 packages, not 20,000) -
depending on your available free space and internet connection
bandwidth/speed. It can take several hours to 'grip' the entire archive
although it might be quicker, you're only processing a single
architecture, not 6 as in all my tests.

$ em_autogrip -b /your/chosen/path

(there are a few bugs in that setup stage, you may need to do some
tweaking, watch for duplicate 'source' listings in the various
Architecture fields in each conf/distributions file and the one in
locale/ may have a spurious empty line that needs to be removed.)

Can you test the package list in the attached file (the current filter
list for Emdebian Grip) and identify packages that are not yet built on
sh4?

(The local test repository would only be for your own use - if it
doesn't work, just test the pkglist file. However, a bug report would
be handy so that I don't forget to fix the bugs in the setup_repos
function.)

The 'grip' repository populated by em_autogrip would be standard - one
pool/ containing everything.

Depending on the level of buildd support, it is possible that Emdebian
Grip 2.0 *might* be able to release with official sh4 support,
directly from www.emdebian.org/grip/.

I need to document all this and revise the docs/ part of the Emdebian
website to cover it but I don't have a lot of time for that sort of
thing at the moment (moving house). If you could document how things go
for you on the Debian wiki, it would make it easier for me to update the
main website later.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgpeF7x1Yigvp.pgp
Description: PGP signature


Reply to: