Raspbian

From eLinux.org
Revision as of 12:09, 17 May 2012 by Plugwash (talk | contribs) (Modified packages)
Jump to: navigation, search


Raspbian is a project to create a hard float port of debian for the Raspberry Pi and similar devices which use ARMv6 processors with VFPv2. The official debian armhf packages are built with ARMv7, VFPv3_D16 and Thumb2. So they are not suitable for the Pi and similar devices. To get arround this we have to change the compiler defaults (easy) and recompile everything (harder than it sounds).

Infrastructure has been set-up for building packages. We aim to stay as close to debian wheezy as possible but we will pull in packages from sid and/or make our own modifications when we deem it nessacery.

A chroot can be bootstrapped from a debian squeeze armel installation using the following commands (replace /chroots/wheezy-armhf-rpi with where you want your chroot).

debootstrap --arch=armhf wheezy /chroots/wheezy-armhf-rpi http://archive.raspbian.org/raspbian
cd /chroots/wheezy-armhf-rpi
wget http://archive.raspbian.org/raspbian.public.key
chroot /chroots/wheezy-armhf-rpi
mount -t proc proc /proc
apt-key add raspbian.public.key
apt-get update

If you just want to install the minimum number of packages add a --variant=minbase to the bootstrap command

Since this is running in a chroot you probably don't want it attempting to start and stop services when you update packages. To avoid this create a file /usr/sbin/policy-rc.d with the following commands

 cat << EOD >/usr/sbin/policy-rc.d
 #!/bin/sh
 echo "rc.d operations disabled for chroot"
 exit 101
 EOD
 chmod 0755 /usr/sbin/policy-rc.d

Modified packages

Note: this list is incomplete

Source package Changes Reason Status Notes
gettext fixed dependency scanning package had incorrect dependencies bug 670588 filed in debian
libxslt fixed building with build-arch package failed to build with build-arch bug 666333 filed in debian.
elfutils testsuite disabled testsuite failed on plugwash's build system and package was needed local hack, hopefully we can drop later.
openldap patched smbk5pwd.c compilation failed, added nmu known bug 664930 filed in debian.
gcc-4.6 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
treat wheezy the same as sid compiler built in wheezy was passing --as-needed to the linker which we don't want bug 670821 filed in debian
gcc-4.5 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
treat wheezy the same as sid compiler built in wheezy was passing --as-needed to the linker which we don't want could potentially be pushed upstream to debian but given they intend to get rid of the package in the not too distant future i'm not sure there is much point
disable testsuite gcc testsuite takes ages and we don't have the resources to do anything about failures anyway, especially for a non-default compiler version local hack, may be dropped later (but probablly won't)
fetchmail fixed building with build-arch package failed to build with build-arch bug 671026 filed in debian.
subversion testsuite disabled testsuite failed on plugwash's build system and package was needed local hack, hopefully we can drop later.
git testsuite disabled testsuite failed on plugwash's build system and package was needed local hack, hopefully we can drop later.
libatomic-ops fixed support for armv6 package failed to build with assembler errors undecided on whether to push upstream or keep as a local change
d-shlibs update dynamic linker override to match armhf linker bug was causing libgd2 to FTBFS already filed in debian as bug 670720
ruby1.9.1 testsuite disabled testsuite hangs debian seem to be having similar problems, hopefully things will get fixed on their side eventually.
gcj-4.6 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
disable testsuite gcc testsuite takes ages and we don't have the resources to do anything about failures anyway, especially for a non-default compiler version local hack, may be dropped later (but probablly won't)
graphviz disable python2.5 python2.5 is no longer a supported python version in debian already filed in debian as bug 669517
openjdk-6 Alter arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S for armv6 arm version directives in the aforementioned file were making libjvm.so in openjdk-6-jre-headless come out armv7 dirty Probablly not suitable for pushing upstream in present form, may be able to be made suitable with extra conditionalising
Disable icedtex6-jre-jamvm binary package libjvm-so in icedtex6-jre-jamvm was coming out with armv7 code in it Root cause has not been determined, if someone wants to put the effort into determining it that would be appreciated
qt4-x11 Disable neon armv6 doesn't have neon (and not all armv7 systems do either) Debian armhf isn't supposed to require NEON either. Working out whether this should be pushed upstream would require working out if there is any runtime checking for neon in QT which I (plugwash) don't have time for ATM. Building documentation on raspbian seems to hang, when updating package a source+all upload should be built on amd64 or similar. The buildds can then fill in the remaining binaries.
x264 Disable build of neon vairant neon variant sets of our v7 contamination checker which could possiblly obscure real problems. Not suitable for pushing upstream. May be dropped if our contamination checker gets smarter.
libvpx Disable build of neon vairant neon variant sets of our v7 contamination checker which could possiblly obscure real problems. Not suitable for pushing upstream. May be dropped if our contamination checker gets smarter.