Forwarded for interest; a number of ARM / Linaro folks were involved last week.
----- Forwarded message from Hector Oron zumbi@debian.org -----
From: Hector Oron zumbi@debian.org Date: Tue, 1 Mar 2011 11:03:02 +0000 To: debian-devel-announce@lists.debian.org Cc: bbrv@genesi-usa.com, david@toby-churchill.com Reply-To: debian-embedded@lists.debian.org Subject: Bits from ARM and Embedded Sprint Mail-Followup-To: debian-devel@lists.debian.org
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%3Ba=blob%3Bf=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.ht...
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, ..