Difference between revisions of "Raspbian"

From eLinux.org
Jump to: navigation, search
(remove python-apt, add eglibc)
(add ceph)
(4 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
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).
 
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
+
<pre>
cd /chroots/wheezy-armhf-rpi
+
debootstrap --arch=armhf wheezy /chroots/wheezy-armhf-rpi http://archive.raspbian.org/raspbian
wget http://archive.raspbian.org/raspbian.public.key
+
cd /chroots/wheezy-armhf-rpi
chroot /chroots/wheezy-armhf-rpi
+
wget http://archive.raspbian.org/raspbian.public.key
mount -t proc proc /proc
+
chroot /chroots/wheezy-armhf-rpi
apt-key add raspbian.public.key
+
mount -t proc proc /proc
apt-get update
+
apt-key add raspbian.public.key
 +
apt-get update
 +
</pre>
  
 
If you just want to install the minimum number of packages add a --variant=minbase to the bootstrap command
 
If you just want to install the minimum number of packages add a --variant=minbase to the bootstrap command
Line 19: Line 21:
 
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
 
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
 
with the following commands
  cat << EOD >/usr/sbin/policy-rc.d
+
<pre>
  #!/bin/sh
+
cat << EOD >/usr/sbin/policy-rc.d
  echo "rc.d operations disabled for chroot"
+
#!/bin/sh
  exit 101
+
echo "rc.d operations disabled for chroot"
  EOD
+
exit 101
  chmod 0755 /usr/sbin/policy-rc.d
+
EOD
 +
chmod 0755 /usr/sbin/policy-rc.d
 +
</pre>
  
 
==Modified packages==
 
==Modified packages==
Line 230: Line 234:
 
| add build-depends on gcc-4.7
 
| add build-depends on gcc-4.7
 
| package was trying to build with 4.7 (likely because we built perl with it)
 
| package was trying to build with 4.7 (likely because we built perl with it)
| local change likely to be kept until debian makes 4.7 the default on armhf
 
|
 
|-
 
| pidgin
 
| 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)
 
 
| local change likely to be kept until debian makes 4.7 the default on armhf
 
| local change likely to be kept until debian makes 4.7 the default on armhf
 
|
 
|
Line 244: Line 242:
 
| local change likely to be kept until debian makes 4.7 the default on armhf
 
| local change likely to be kept until debian makes 4.7 the default on armhf
 
|
 
|
|-
 
 
|-
 
|-
 
| libxml-xerces-perl
 
| libxml-xerces-perl
Line 439: Line 436:
 
| add build-depends on gcc-4.7
 
| add build-depends on gcc-4.7
 
| package was trying to build with 4.7 (likely because we built perl with it)
 
| package was trying to build with 4.7 (likely because we built perl with it)
| local change likely to be kept until debian makes 4.7 the default on armhf
 
|
 
|-
 
| rowspan=2 | ekg2
 
| 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)
 
 
| local change likely to be kept until debian makes 4.7 the default on armhf
 
| local change likely to be kept until debian makes 4.7 the default on armhf
 
|
 
|
Line 481: Line 472:
 
| some tests failed for us and we don't have the resources to debug them
 
| some tests failed for us and we don't have the resources to debug them
 
| Local hack, hopefully can be dropped later.
 
| Local hack, hopefully can be dropped later.
 +
|
 +
|-
 +
| rowspan=2 | 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 [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699589 699589] filed in debian
 +
|
 +
|-
 +
| ceph
 +
| disable use of libatomic-ops
 +
| libatomic-ops and ceph don't seem to work together on plain armv6
 +
| most likely permanent raspbian change
 
|
 
|
 
|}
 
|}

Revision as of 00:54, 19 February 2013


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
elfutils testsuite disabled testsuite failed on plugwash's build system and package was needed local hack, hopefully we can drop later.
gcc-4.6 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 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)
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 :(
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.
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
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)
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
Update jamvm libjvm-so in icedtex6-jre-jamvm with old jamvm was coming out with armv7 code in it Likely to be kept as a local change in raspbian for wheezy. Openjdk-6 is likely to be dropped completely for jessie.
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.
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.
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.
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
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
libpd-stats-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
rhash add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
frozen-bubble add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
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)
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.
libfilter-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
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) 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) local change likely to be kept until debian makes 4.7 the default on armhf
disable testsuite testsuite failed and we don't have the resources to troubleshoot it local hack which hopefully can be dropped later
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) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
nkf add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
libtemplate-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
libpadwalker-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) 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) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
libcoro-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
libsocket-perl add build-depends on gcc-4.7 package was trying to build with 4.7 (likely because we built perl with it) local change likely to be kept until debian makes 4.7 the default on armhf
fpc change compiler defaults We need the right compiler defaults for raspbian Permanent raspbian change not suitable for pushing upstream
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
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
gdal 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) local change likely to be kept until debian makes 4.7 the default on armhf when building manually make sure only the correct ruby version is installed or build will fail
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
xastir change build-dependencies from libgeotiff-dev to libgeotiff-alt-dev
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.
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) local change likely to be kept until debian makes 4.7 the default on armhf
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
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.
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.
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.
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.
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) local change likely to be kept until debian makes gcc-4.7 the default on armhf.
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.
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
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
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
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) local change likely to be kept until debian makes 4.7 the default on armhf
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) local change likely to be kept until debian makes 4.7 the default on armhf
"commit" changes to config.sub and config.guess source package could not be built after running clean target due to config.sub and config.guess changes bug 690112 filed in debian.
abiword remove build-depends on valgrind we don't currently have valgrind in debian and abiword doesn't really need it (it's only used to run build-time tests) local change to be kept until/unless someone ports valgrind successfully.
klibc change build settings existing compiler settings were not suitable for raspbian local change not suitable for pushing upstream
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 1.8.1-3.3 has no changes over 1.8.1-2 that I consider important for raspbian (the only one that is even vaugely relavent is a change of compression format) so there is currently no-point in doing a forward port.
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.
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.
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
ceph disable use of libatomic-ops libatomic-ops and ceph don't seem to work together on plain armv6 most likely permanent raspbian change