User:Tanner
Contents |
Packages
info about some of the packages I've uploaded to extras-devel
debhelper7
see also http://wiki.maemo.org/Packaging
A backport of Debhelper 7 for Fremantle is available in extras-devel. It works transparently and can coexist with debhelper 5 in the SDK. It also works on the autobuilder, if you specify
Build-Depends: debhelper7
in debian/control. The following lines in debian/rules are necessary to use it:
PATH:=/usr/bin/dh7:/usr/bin:$(PATH) export PATH SBOX_REDIRECT_IGNORE=/usr/bin/perl export SBOX_REDIRECT_IGNORE
We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.
If you also need a more recent cdbs, then use the package cdbs-dh7, which conflicts with the standard cdbs and does not work on autobuilder yet.
To replace several tools in scratchbox you can also use the following line as a template
SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed "s/ /:/g")
TeXLive 2009
R (statistics)
bug: installation fails with ucfr missing solution: wait or edit r-base-core.postinst and comment line 44 out
BLAS LAPACK suitesparse
bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.
numpy, scipy, sympy
bonnie++ (filesystem benchmarks)
see post and ff
tcl8.5 tk8.5 python-tk
lzma
an extremely efficient compressor. it is much faster than bzip2 for decompression and about 30% smaller files.
xskat
bug: keyboard doesn't work. bug: window close button is not visible
experimental packages
some experimental ports which I have not yet uploaded to extras-devel can be found in my repository
deb http://www.maemory.com/N900/ fremantle free incompatible
currently: python2.6, perl5.10
Ideas/plans:
alternative USB host solution
full optification
Ideally addon software should be installed only in /opt without any symlinks in / (NAND) in accordance with FHS. /usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.
A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share) or in a separate directory /opt/<package> with its own hierarchy (bin,etc,lib,man,share). For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share} and the search paths of Maemo need to be adjusted in /etc/profile and /etc/osso-af-init/af-defines.sh:
- PATH=$PATH:/opt/maemo/usr/bin (and sbin for root)
- ld.so.conf: add /opt/maemo/usr/lib
- locales: LOCPATH=LOCPATH=/usr/share/locale:/opt/maemo/usr/share/locale
- MANPATH=/opt/maemo/usr/share/man
- pkgconfig: /usr/share/pkgconfig:/opt/maemo/usr/share/pkgconfig
- info in info?: /usr/share/info:/opt/maemo/usr/share/info
- apps in hildon ?: /usr/share/applications:/opt/maemo/usr/share/applications
- icons in hildon ?: /usr/share/icons:/opt/maemo/usr/share/icons
this list may be incomplete - please help to complete it
As NAND is much faster than eMMC a cache manager could mantain a list of very often used binaries and libraries in /opt and automatically copy them and symlink them to a fixed size cache in NAND.
TMPDIR=/var/tmp should be moved to /opt/tmp or /var/opt should symlink to /opt/var and contain a larger tmp directory.
Tips and tricks:
fresh builds
Repartitioning
brainstorm brainstorm discussion repartitioning thread
how to swap FAT and ext3 parition how to implement USB mass storage with a loopback file
Setting up a repository mirror
Reflashing & Restore
this is a slightly modified version of the script I use to restore my N900 after a reflash. My reflashing procedure is:
- store all settings with Backup on my SD card
- reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
sudo flasher-3.5 -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R
- restore old backup except programs
- install gainroot
- in Terminal:
sudo su - /home/backup/restore
with following script in /home/backup (feedback and patches are welcome). It excepts that did a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup. the file minimal should contain a list (line by line) of the package names you want to install.
#!/bin/sh # N900 restore script # © 2010 by Thomas Tanner <tanner@maemory.com> # licensed under GPLv3 set -x # script and data must be in /home/backup cd /home/backup # remove old opt rm -rf /home/opt mkdir /home/opt # copy /root backup rm -rf /root cp -a root / # copy modifed files for /etc cp -a etc/* /etc # enable user ssh login with ~/.ssh/authorized_keys sed 's/^user:!/user:\*/' /etc/passwd > /etc/passwd.tmp cp /etc/passwd.tmp /etc/passwd # mv # move root stuff to /home dirs="usr/share/icons usr/share/nokia-maps usr/share/themes usr/share/fonts usr/share/locale usr/lib/locale var/lib/apt" #optional: var/lib/dpkg if test -d /home/var/cache/apt; then # keep existing apt cache rm -rf /var/cache/apt ln -s /home/var/cache/apt /var/cache/apt else dirs="$dirs var/cache/apt" fi (cd / && du -sc $dirs) for d in $dirs; do test -L /$d && continue echo moving /$d rm -rf /home/$d mkdir -p /home/$d cp -a /$d /home/$d/.. rm -rf /$d ln -s /home/$d /$d done mount /home/user/MyDocs # non-standard partition layout apt-get update apt-get -y install mc python-support openssh-server # install my standard set of packages apt-get -y install `cat minimal`