Raspbian

From eLinux.org
Revision as of 14:18, 2 March 2013 by Plugwash (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 round 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 necessary.

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
abiword remove build-depends on valgrind we didn't have valgrind in raspbian at the time and abiword doesn't really need it (it's only used to run build-time tests) we now have a working valgrind so this should be dropped the next time the package is updated.
apparmor add build-depends on gcc-4.7 package was trying to build perl related stuff with gcc-4.7 due to changes we made in the perl packaging now dealt with on the perl side, change to be dropped next time a new version comes in
apt change dependency from debian-archive-keyring to raspbian-archive-keyring we don't want raspbian users to have the debian archive keyring and we do want them to have the debian one permanent raspbian change
ceph disable use of libatomic-ops libatomic-ops and ceph don't seem to work together on plain armv6 most likely permanent raspbian change
chromium-browser Set v8 settings for armv6 in debian/rules (based on work by Florian Will) raspbian is built for armv6 most likely permanent raspbian change build memory and address space use is a massive PITA
Fix build settings for embedded ffmpeg to produce armv6 code
build with bfd instead of gold avoid segfault on startup discussed in debian bug 696909, not applied in debian yet due to other problems.
clisp add armhf to architecture lists armhf was not in architecture lists and package was requested by user bug 684631 filed in debian.
apply patch from sourceforge to fix operation on modern arm package failed to build with illegal instruction error while running newly built clisp binary
build with gcc-4.7 build failed with ICE local change likely to be kept until debian makes 4.7 the default on armhf
clucene-core-experimental raspbian specific source package based on experimental version of clucene-core with renamed source package and dev package experimental version of libreoffice needed newer versions of libclucene than was present in wheezy local hack, hopefully can be dropped post-wheezy
eglibc add more tests to list of expected failures some tests failed for us and we don't have the resources to debug them Local hack, hopefully can be dropped later.
remove ldconfig aux cache as well as main cache when upgrding from older versions users were having problems with videocore libraries not being found commited by adconrad to debian packaging repository, should be included in next upload.
fpc change compiler defaults We need the right compiler defaults for raspbian Permanent raspbian change not suitable for pushing upstream
frozen-bubble add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped when next version comes through.
gambas3 build with --disable-jit gambas3 with jit wasn't working most likely permanent raspbian change (unless upstream gives us a working jit) unfortunately it seems that even with the jit disabled the package apparently still didn't work.
gcc-4.4 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
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 debian has dropped 4.5 already, we plan to drop it after raspbian wheezy
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)
gcc-4.6 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
gcc-4.7 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)
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)
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)
gdc-4.4 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
gdcm reenable mono on armhf unlike debian we plan to bring in mono 3.x for raspbian wheezy hopefully debian will bring back armhf mono after wheezy
ghc Change compiler defaults for armv6 We need armv6 code permanent raspbian change
force cpu and fpu settings in llvm llvm was crashing horrible hack but unless we get a ghc/llvm expert on our team it will have to remain :(
git testsuite disabled testsuite failed and package was needed seems to be a subversion related issue (debian bug 678137), fixed in debian sid but we will have to carry our own patch for wheezy.
gnat-4.6 change compiler defaults need to build binaries suitable for rpi permanent raspbian change, not suitable for pushing upstream
guile-2.0 testsuite disabled testsuite failed on plugwash's build system and package was needed testsuite fails for debian as well, hopefully they will fix it at some point.
hercules change build-depends and debian/rules to build with gcc-4.7 gcc 4.6 failed to build package with ICE local change likely to be kept until debian makes 4.7 the default on armhf
klibc change build settings existing compiler settings were not suitable for raspbian local change not suitable for pushing upstream
libasync-interrupt-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
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
libav disable build of neon flavour We have no use for neon and it sets off our contamination checker Permanent raspbian change
libb-hooks-parser-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libavg set architecture list to any and add a fallback option for some debug related inline assembler package was requested by user bug 683105 filed in debian
libccrtp1 new source package based on old version of libccrtp source package with renamed dev and doc packages twinkle needed an older version of libccrtp local change for raspbian wheezy. For jessie I plan to clean up packages that are no longer in debian and tell users to install them from wheezy.
libcdr bring in new package from experimental (not present in debian wheezy) experimental version of libreoffice needed libcdr hopefully package will enter debian testing post-wheezy
libcmis-experimental raspbian specific source package based on experimental version of libcmis with renamed source package and dev package and removed client package experimental version of libreoffice needed newer versions of libcmis than was present in wheezy local hack, hopefully can be dropped post-wheezy
libcoro-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libdevice-cdio-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libfilter-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libgeo-ip-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libgeotiff-dfsg add libgeotiff-alt-dev binary package without static library or dependency on libtiff5-dev xastir was requested by user and it's build-depends could not be satisfied due to conflict between libtiff4-dev and libtiff5-dev patches sent to existing bug report 666589 in debian
libgpod enable cil packages for armhf unlike debian armhf we plan to ship mono in raspbian. change will be raspbian specific for wheezy and should be pushed to debian after wheezy release.
libheimdal-kadm5-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libipc-sharelite-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libmath-random-mt-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libmath-tamuanova-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libmediainfo change build-depends and debian/config.debian to build with gcc-4.7 gcc 4.6 failed to build package with ICE local change likely to be kept until debian makes 4.7 the default on armhf
libmoose-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libpadwalker-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libpdl-stats-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libreoffice use version from experimental testing/unstable version has a fragile build system that was causing us problems bug 685723 filed in debian (and marked as fixed in experimental)
change build-dependencies from libclucene-dev and libcmis-dev to (raspbian specific) libclucene-dev-experimental and libcmis-dev-experimental experimental version of libreoffice needed newer versions of libclucene and libcmis than were present in wheezy local hack, hopefully can be dropped post-wheezy
disable testsuite testsuite seemed to be failing on debian armhf in experimental and there isn't much we can do about testsuite failures anyway local hack hopefully can be dropped later.
libsocket-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libsort-key-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libsys-cpu-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libtemplate-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libv8 Modified to produce code compatible with armv6 on Raspberry Pi. Changes modeled on: https://codereview.qt-project.org/#change,27256 Jit was producing armv7 code Hopefully upstream will pick this up eventually (if they haven't already)
libvariable-magic-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
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.
libxml-libxml-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libxml-xerces-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
libzrtpcpp1 new source package based on old version of libzrtpcpp1 source package with renamed dev package current version of libzrtpcpp is not compatible with the version of libccrtp needed for twinkle. local change for raspbian wheezy. For jessie I plan to clean up packages that are no longer in debian and tell users to install them from wheezy.
lightspark build with gcc 4.7 gcc-4.6 failed to build package with ICE local change likely to be kept until debian makes gcc-4.7 the default on armhf
linux many changes to make source package build Pi kernel instead of omap, mx5 and vexpress ones. we want a kernel for a Pi not some random armhf box permanent raspbian change
lsb change apt scanning to look for Raspbian rather than Debian lsb_release was not giving codename correctly and this was causing pain for users Permanent raspbian change.
Disable testsuite Testsuite was failing and seems to be broken bug 699589 filed in debian
lvm2 apply patch to make lvm2 work on arm on more recent kernels raspberry pi foundation is now using a 3.6 kernel patch sent to bug 698153 in debian.
nkf add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
obexftp add build-depends on gcc-4.7 package was trying to build perl related stuff with gcc-4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
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
openjdk-7 Alter openjdk/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
Update to newer version from experimental libjvm-so in icedtex6-jre-jamvm from the testing/unstable version was coming out with armv7 code in it Hopefully debian testing/unstable will get this new version soon.
openssl enable assembler optimisations we consider ssl performance important hopefully debian will do this too at some point (see bug 676533)
p7zip build with gcc/g++ 4.7 g++ 4.6 failed to build package with internal compiler error. local change likely to be kept until debian makes 4.7 the default on armhf.
perl change build-depends and debian/config.debian to build with gcc-4.7 gcc 4.6 failed to build package with ICE local change likely to be kept until debian makes 4.7 the default on armhf
apply hack to change default compiler for perl modules back to plain cc Just because we built perl with 4.7 doesn't mean we want the same to apply to perl modules (it had proved a massive PITA because there was nothing to pull it in) local change likely to be kept until debian makes 4.7 the default on armhf
pspp add build-depends on gcc-4.7 package was trying to build perl related code with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
disable testsuite testsuite failed and we don't have the resources to troubleshoot it local hack which hopefully can be dropped later
pyopenssl seperate build-arch and build-indep documentation build was silently failing (causing a file not found error later) on raspbian Bug 675414submitted to debian for build-arch/build-indep split and has been fixed in experimental. No idea on root cause of documentation build issue.
qpid-cpp add build-depends on gcc-4.7 package was trying to build perl related code with 4.7 (likely because we built perl with it) now dealt with on the perl side, will probablly be dropped with next update to package
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.
rrdtool add build-depends on gcc-4.7 package was trying to build perl related stuff with gcc-4.7 (likely because we built perl with it) local change likely to be kept until debian makes gcc-4.7 the default on armhf.
squeak-vm revert change to use system libraries jpeg loading was broken bug should probablly be filed in debian but afaict noone has got arround to it yet.
subversion newer version from sid plugwash thought package was about to migrate to wheezy but it didn't actually migrate not much we can do about this :(
tcsh testsuite disabled testsuite failed and we needed to get update built to keep source and binary in sync local hack, hopefully we can drop later.
ttf-opensymbol new source package to build dummy package as libreoffice version used in raspbian no longer builds it libreoffice in raspbian was updated to experimental version due to build issues (see above) will be permanent in raspbian wheezy, hopefully can be dropped for jessie
twinkle retintroduce package and change build-depends to libccrtp1 and libzrtcpp1 User requested package and current versions of libccrtp and libzrtpcpp are not compatible with twinkle. local change for raspbian wheezy. For jessie I plan to clean up packages that are no longer in debian and tell users to install them from wheezy.
valgrind various fixes to make package build/work for armv6 valgrind was broken hopefully upstream will deal with this sooner or later but we may have to carry it locally for a while
virtuoso-opensource revert removal of mono stuff from armhf unlike debian armhf we plan to ship mono in raspbian will be raspbian specific change for wheezy, hopefully for jessie debian will get a mono version that works on armhf too.
webkit disable JIT JIT doesn't seem to work on sub-armv7 should probablly be dealt with in debian too but someone else can fight that battle
x264 Disable build of neon variant 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.
xastir change build-dependencies from libgeotiff-dev to libgeotiff-alt-dev xastir was requested by user and it's build-depends could not be satisfied due to conflict between libtiff4-dev and libtiff5-dev patches sent to existing bug report 666589 in debian
xdotool force build with ruby 1.8 build failed with ruby 1.9.1 and last successful build in debian had been with ruby1.8 appears debian has done the same in TPU
disable testsuite testsuite was failling and we don't have the resources to debug it appears debian has also disabled some tests in TPU