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

Bits from ARM and Embedded Sprint



Hello,

  During the Debian ARM and Embedded Sprint, we had the opportunity to discuss 
and work on the following areas:

ARM ports
---------

* 'armel'
  Several FTBFS RC bugs were fixed.

* 'armhf' [0]
  Debian package management system (dpkg) assumes that a new ABI is a new Debian
architecture, and that there is a one-to-one mapping between Debian architectures 
and triplet names. Upstream GNU tools assume that 'armel' and 'armhf' share the
same GNU triplet. That would make armhf and armel the first Debian architectures
which shared a triplet.
  There are several proposals to fix this problem:
  * Modify upstream GNU GCC triplets to allow different triplets per ABI
  * Introduce a new tuple naming scheme, as detailed in multiarch proposal and
use it as the canonical name in dpkg

 We had the opportunity to discuss with GCC upstream engineer (Ramana) about our
distribution problem. The problem was posted to the GCC mailing list [1] and it
looks like there are no major objections against it. A new triplet name might be
adopted for Debian 'armhf', likely to be arm-linux-gnueabi_hf, but discussion it
is still going on between `dpkg' maintainers and GCC upstream folks.

 Several NMU uploads were done into the archive adding support for armhf [3].

* Thumb-2 Kernel
  Some progress on kernels built in Thumb-2 (continuing Linaro work).
  Thumb-2 kernel now seen to boot on efikamx and Freescale mx51evk boards, as
well as OMAP3/4.

 [0] http://wiki.debian.org/ArmHardFloatPort
 [1] http://gcc.gnu.org/ml/gcc/2011-02/msg00408.html
 [2] http://lists.debian.org/debian-devel/2011/02/msg00351.html
 [3] http://wiki.debian.org/ArmHardFloatTodo

Please direct any queries about ARM ports to: debian-arm@lists.debian.org

Multiarch [0][1][2]
-------------------

* MultiarchCross Wiki page [3] was updated to reflect current status and describe
the creation of a new patch for pkg-config [4] which implements the --host option
described by upstream.

* A phone conference with Steve Lanagsek, Rafael Hertzog and Loic Minier attending
was held to get the team, and ARM engineers, up to speed on Multiarch and the armhf
triplet/tuple naming issue. 

* A possible patch for debhelper [5] was created to implement DEB_HOST_MULTIARCH
substitution support in install files. This allows libraries, header files, symlinks
and binaries to be relocated into multiarch-compatible paths when building the package,
using a value passed from dpkg-architecture. A variable needs to be added into
the install location in each install file, together with a small change debian/rules.
Simple tests indicated that ${DEB_HOST_MULTIARCH} should be a suitable placeholder
for the substitution. The change probably needs to be part of a new debhelper
compatibility - compat 9. Packages which do not currently use debhelper would
need to use sed or equivalents to perform the substitution.

* Test packages for this method have been hosted as patches in Emdebian SVN [6],
including the patched version of debhelper, possible patch for gcc-4.5 (via armhf
port development), the patched version of pkg-config and patches for popt and
pcre3. Certain packages are also hosted in an experimental repository [7]. 
e.g. debian/tmp/usr/lib/libpopt.so.*   
lib/ changes to debian/tmp/usr/libx/${DEB_HOST_MULTIARCH}/libpopt.so.*    
lib/${DEB_HOST_MULTIARCH}. Binary packages built using this method are available
but ONLY for use within chroots [9]. Please read the README [10] before trying
to use these binaries, it is very easy to completely break your system with the
current test packages. (It is, for example, completely non-trivial to remove
Multi-Arch packages of a foreign architecture which have been force-installed.)

* Some of the notes taken during the meeting can be reviewed at Debian wiki site [8].

 [0] http://wiki.debian.org/Multiarch
 [1] https://wiki.ubuntu.com/MultiarchSpec
 [2] http://wiki.debian.org/Multiarch/LibraryPathOverview
 [3] https://wiki.ubuntu.com/MultiarchCross
 [4] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=217902#28
 [5] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614731
 [6] http://www.emdebian.org/trac/browser/current/multiarch
 [7] http://ftp.uk.debian.org/emdebian-multiarch/
 [8] http://wiki.debian.org/MultiarchEmdebianSprint2011
 [9] http://ftp.uk.debian.org/emdebian-multiarch/
 [10] http://www.emdebian.org/trac/browser/current/multiarch/README

Please direct any query about Multi-Arch to: debian-dpkg@lists.debian.org

Bootstrapping a.k.a. Cyclic dependencies issues
-----------------------------------------------

* A discussion session was held to explain the current bootstrapping issues and
proposals. There was lively discussion and lots of good feedback on mechanism
plus ideas on how to develop it into a qa service. Notes of the discussion are
here [4]

* A Debian Bootstrap wiki page has been updated to prepare a specification for
work on breaking cyclic build-dependency loops [0], and making Debian
auto-bootstrappable. 

* Patches were created for (debian versions of) poppler, gtk+2.0 and qt4-x11 [1],
and (natty versions of) krb5, poppler, cyrus-sasl, and openldap  [2] to implement
Bootstrap dependency support to break circular dependencies when bootstrapping
new and existing architectures. Support is implemented using an environment variable:
DEB_BOOTSTRAP=1. The patches use the existing upstream support in the relevant
packages to turn off functionality and then disable certain binary packages from
being built, so that the temporary bootstrap build can be built without the full
set of build dependencies. The smaller set of build-dependencies is defined in
debian/control as Build-Depends-BootstrapN. Later bootstraps can turn on more of
the functionality until the final build restores the original Debian configuration.
Bootstrap packages are made available to the build process only, via temporary
repositories. All reverse dependencies which managed to build against the bootstrap
packages are rebuilt against the final version before being uploaded to the full
archive. Packages which failed to build against the bootstrap are built against
the full version of the dependency. Typical changes include disabling LDAP
support, turning off CUPS support etc.

Patches are in Emdebian SVN and in Launchpad PPA / bazaar branches

* patch for natty version of dpkg, to 
 1) make dpkg-checkbuildeps use Build-Depends-BootstrapN when --bootstrap=N is
passed.
 2) make dpkg-buildpackage pass --bootstrap=N when env var DEB_BOOTSTRAP=N is
set.
* Alternate patch implementing the scheme using DEB_BUILD_OPTS 'bootstrap=N',
instead of DEB_BOOTSTRAP=N

* Circular bootstrap loops were identified using xdeb [3], which also got improved
when some loops were identified as false positives. The new design aims to prevent
false loops being identified by considering only binary build-deps that are
actually needed, not all the binaries built by a particular source package. This
means that the existing analysis of all 900 packages in maverick base will need
to be re-run to get a more realistic picture.

* xdeb is gaining logic for setting DEB_BOOTSTRAP=N when a bootstrap option is
available.

* Work on getting the same version of xdeb into Debian and Ubuntu was done.

 [0] http://wiki.debian.org/DebianBootstrap
 [1] http://www.emdebian.org/trac/browser/current/bootstrap
 [2] https://code.launchpad.net/~peter-pearse
 [3] http://emdebian.org/bootstrap/examples/
 [4] http://wiki.debian.org/DebianBootstrap/EmdebianSprint2011


Please direct any queries about bootstrapping to: debian-embedded@lists.debian.org

FreedomBox
----------

* A presentation on Freedom Box was made during the sprint [0]

* `Boxer' [1] is a framework to generate optimized images for Freedom Box project
as well as encouraging flexible hacking for developers was started during the
sprint. Boxer contains a list of Debian packages split by sections (at the moment
debug, httpd-apache, httpd-lua, ipv4ll, webchat, xmpp-erlang, xmpp-lua) which can
be enabled and disabled at wish. It is planned to add preseed information as well,
so packages can be tuned to fit Freedom Box requirements in a generic way. Boxer
generates the metadata to be fed into other tools. For example, there are already
hooks acting as git submodules into `live-build' and `multistrap', and potentially
more hooks could be created to support other frameworks.

* Hand drawn drafts for visualizing "The stream of Debian software development"
were done and eventually those might be published at freedombox-discuss mailing
list.

* Other random hacking on sd-installer (a tool to ease Debian installation into
SD/MMC cards) happen.

* Some research for Freedombox User Interface was also done.

 [0] http://dr.jones.dk/emdebian/fb/
 [1] http://git.emdebian.org/?p=upstream/boxer.git;a=blob;f=README

Please direct any queries about FreedomBox to: freedombox-discuss@lists.alioth.debian.org

Flash-kernel
------------

A discussion was held on flash-kernel's issues, the main issues being scalability
to more and more boards, and usage of board-specific data across tools.  Various
affected tools were brought up and the proposed improvements to flash-kernel were
discussed, as well as some WIP cleanups [1].  The most important outcome is that
the board data should be split out of flash-kernel entirely and carefully versioned.
The project's wiki page [2] was updated to match the discussion.

 [1] http://git.debian.org/?p=users/lool/d-i/flash-kernel.git
 [2] http://wiki.debian.org/FlashKernelRework

Please direct any query about flash kernels to: debian-arm@lists.debian.org

Cross toolchain support
-----------------------

A group was created on alioth [1] to improve cross toolchain support within Debian
merging efforts from both Emdebian and Linaro packages, some notes were taken
during discussion now summarized in a wiki site [2]. In sumary it was decided to
upload something along the lines of the armel cross-toolchain that was in Ubuntu
maverick for the time being, until a cleaner solution can be acheived once
cross-architecture dependencies are introduced via Multiarch. 

 [1] https://alioth.debian.org/projects/crosstoolchain/
 [2] http://wiki.debian.org/ToolChain/Cross

Please direct any queries about cross toolchain support to: debian-embedded@lists.debian.org

The power of grouping and teaming up
------------------------------------

We had the opportunity to watch a documentary by Sugata Mitra: 'The child-driven
education' [0], which shows a bunch of experiments done in children education
environment and showing that they perform much better when they team up. We
would like to share the link to it.

 [0] http://www.ted.com/talks/lang/eng/sugata_mitra_the_child_driven_education.html

References
----------
 * http://wiki.debian.org/Sprints/2011/EmdebianSprint


Thanks to
---------
 All the attendees being physically at the Sprint Venue, all the remote attendees
via phone or IRC, nice people working at ARM offices, all the wider Debian
community and sponsors collaborating with the event.

Sponsors
--------
 * ARM - http://www.arm.com/ - providing hacking room space and lunch.
 * Genesi USA - http://www.genesi-usa.com/ - providing dinner for attendees
 * Toby Churchill Ltd - http://www.toby-churchill.com/ - providing dinner for attendees
 * Debian - http://www.debian.org/ - providing coolest operative system to hack on

We would also like to thank the above companies for letting their employees being
part of the Sprint, as well as Linaro, Canonical, hands.com, dr.jones.dk, and simtec.co.uk.

The sprint worked really well, with lots of input from a good range of people,
with cross-pollination between people's interests, and plenty of concrete outputs
in the form of useful patches and repositories. The balance between hacking an
discussion worked well. ARM's facilities worked really well. Hopefuly we will be
able to run another similar event in the not too distant future. 

List of Participants
--------------------
Hector Oron
Neil Williams
Nick Bane
Wookey
Konstantinos Margaritis
SteveMcIntyre
Philip Hands
Daniel Silverstone
Dave Martin
Oliver Grawert
Jonas Smedegaard
David Rusling
Marcin Juszkiewicz
Loïc Minier
Jonathan Austin
Peter Pearse
Jesse Barker
... and random ARM hackers and visitors: Ramana Radhakrishnan, Leif Lindholm, 
Javi Merino, Colin Tuckley, Anna Valiente, Siri Reiter, Steve Wiseman, ..


-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar System,
which one day will disconnect us."

-- Day DVB-T stop working nicely
Video flare: http://antwrp.gsfc.nasa.gov/apod/ap100510.html

Attachment: signature.asc
Description: Digital signature


Reply to: