DoudouLinux dev's blog

To content | To menu | To search

Tag - Debian repository

Entries feed - Comments feed

Saturday 17 December 2011

New architectures armel and armhf in our repository

Thanks to Genesi who graciously donated smartbooks to our project, porting DoudouLinux to ARM™ has started. It is then time to host new architectures in our Debian package repository: armel for both squeeze and wheezy, armhf for wheezy only.

Although we haven't started to generate ARM™-specific packages, we can first copy our architecture independent packages. The tool reprepro that we're using to make our own repository provides a convenient function flood that copies all the packages of architecture all from one architecture to another, in the same distribution codename. The following command is copying existing squeeze packages of architecture all to armel:

$ reprepro -V --basedir debian/ flood squeeze armel

As the previous command is not talkative at all, let's check it worked well:

$ reprepro -V --basedir debian/ --architecture armel list squeeze
squeeze|main|armel: childsplay-session 1.1-1
squeeze|main|armel: dansguardian-squid 1.0-2
squeeze|main|armel: doudou-hwreport 1.1-1
squeeze|main|armel: doudou-icons-extra 1.0-1
squeeze|main|armel: doudou-installer 1.0-3
squeeze|main|armel: doudoulinux-base 1.0-2
squeeze|main|armel: doudoulinux-desktop-environment 1.0-2
squeeze|main|armel: doudoulinux-dev-artists 1.0-1
squeeze|main|armel: doudoulinux-dev-build 1.0-1
squeeze|main|armel: doudoulinux-dev-l10n 1.0-1
squeeze|main|armel: doudoulinux-dev-system 1.0-1
squeeze|main|armel: doudoulinux-games 1.0-1
squeeze|main|armel: doudoulinux-keyring 2011.01.10
squeeze|main|armel: doudoulinux-kids 1.0-2
squeeze|main|armel: doudoulinux-mouse 2.1-1
squeeze|main|armel: doudoulinux-multimedia 1.0-2
squeeze|main|armel: doudoulinux-sessions 1.1-1
squeeze|main|armel: doudoulinux-sound 2.1-1
squeeze|main|armel: doudoulinux-splashimages 1.0-4
squeeze|main|armel: doudoulinux-timezone 1.0-2
squeeze|main|armel: doudoulinux-utils 1.4-1
squeeze|main|armel: doudoulinux-work 1.0-2
squeeze|main|armel: empathy-salut-nickname 1.0-3
squeeze|main|armel: epiphany-adblock-lists 1.0-1~20111122
squeeze|main|armel: gamine-session 1.0-3
squeeze|main|armel: gcompris-session 1.0-3
squeeze|main|armel: gdm-theme-doudoulinux 1.2-1
squeeze|main|armel: gnome-backgrounds-doudoulinux 1.0-3
squeeze|main|armel: grub-splashimages-doudoulinux 2.0-1
squeeze|main|armel: kde-l10n-doudou-es 4:4.4.5-1
squeeze|main|armel: kde-l10n-doudou-fr 4:4.4.5-1
squeeze|main|armel: kde-l10n-doudou-it 4:4.4.5-1
squeeze|main|armel: kde-l10n-doudou-ru 4:4.4.5-1
squeeze|main|armel: live-boot 2.0.15-1doudou1
squeeze|main|armel: live-boot-initramfs-tools 2.0.15-1doudou1
squeeze|main|armel: live-persistence 1.0-7
squeeze|main|armel: liveusb-write 1.0-14
squeeze|main|armel: lxlauncher-session 1.8-2
squeeze|main|armel: plymouth-themes-all 0.8.3-20doudou1
squeeze|main|armel: plymouth-themes-doudoulinux 1.0-1
squeeze|main|armel: plymouth-themes-fade-in 0.8.3-20doudou1
squeeze|main|armel: plymouth-themes-glow 0.8.3-20doudou1
squeeze|main|armel: plymouth-themes-script 0.8.3-20doudou1
squeeze|main|armel: plymouth-themes-solar 0.8.3-20doudou1
squeeze|main|armel: plymouth-themes-spinfinity 0.8.3-20doudou1
squeeze|main|armel: pysycache-session 1.0-4
squeeze|main|armel: python-editobj2 0.3-1.1
squeeze|main|armel: songwrite2 0.4.1-1+0.4.2
squeeze|main|armel: soundsetting-session 1.0-1
squeeze|main|armel: tbo-common-data 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-accesories 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-all 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-arcadia 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-bubble 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-dgm 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-doodle1 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-facilware 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-guadalinex 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-linuxhispano 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-political 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-southpark 0.98~git20110321-0doudou2
squeeze|main|armel: tbo-data-doodle-tbo 0.98~git20110321-0doudou2
squeeze|main|armel: ttf-lohit-font 2.4.6-1
squeeze|main|armel: tuxpaint-session 1.1-1

Everything is fine :). So now we can copy the squeeze packages to wheezy, still for the architecture all. The tool reprepro provides another convenient function copy that performs copies across different distribution code names. As we want to copy the architecture all only, we'll feed this copy command with the list of packages from the newly created armel architecture in squeeze:

$ reprepro -V --basedir debian/ copy wheezy squeeze \
    $(reprepro -V --basedir debian/ --architecture armel list squeeze | cut -d ' ' -f 2)

Finally, as wheezy has armhf while squeeze doesn't, we need to use flood again to populate armhf in wheezy:

$ reprepro -V --basedir debian/ flood wheezy armhf
$ reprepro --basedir debian/ list wheezy tuxpaint-session
wheezy|main|i386: tuxpaint-session 1.1-1
wheezy|main|amd64: tuxpaint-session 1.1-1
wheezy|main|armel: tuxpaint-session 1.1-1
wheezy|main|armhf: tuxpaint-session 1.1-1
wheezy|main|any: tuxpaint-session 1.1-1
wheezy|main|source: tuxpaint-session 1.1-1

That's it! Our first ARM™ repository is online and can be tested. Note however that all the wheezy packages may not be relevant (eg. Plymouth packages or KDE language packages). The objective is to start to play with packages that are really DoudouLinux-specific. Later we'll work on refining our ARM™ repository. We also plan to move it to a custom buildd server to avoid all the manual operations that reprepro is currently needing.

Sunday 13 November 2011

Source package repository now online

We've been providing a DoudouLinux Debian repository for binary packages since the beginning of the project but no source package repository. As we're now part of Debian Derivatives and as we're also moving to ARM™ architecture, we needed to setup a source repository too. For Debian Derivatives, this will allow our father project Debian to automatically fetch all our patches of standard Debian packages. For our ARM™ port, this will ease the compilation of binary packages targeting either the armel or armhf flavor.

Our source package is now online, although it is not complete yet. It can be fetched using the standard way to add source repositories, in /etc/apt/sources.list or /etc/apt/sources.list.d/:

deb-src lenny main
deb-src squeeze main

The source repository is completed for the stable version of DoudouLinux, based on Debian Lenny. The development branch, based on Squeeze is not completed yet, due to difficulties to deal with the new package format Quilt 3. Most of packages have their sources for the development version however :). Finally we now have to set up an experimental branch based on Wheezy to be able to build armhf packages (only armel can be built upon Squeeze).

The way we built the source repository consisted in changing first our package build script to make it automatically generate and collect source packages, then our repository build script to make it handle source packages too. To build the Debian repository, we're using reprepro, an official Debian tool which is quite simple to use:

  1. Create a directory for your Debian repository, say debian/.
  2. Create a file debian/conf/distributions that sets your repository parameters (name, architectures, codename, etc.).
  3. Invoke reprepro for each package to be added, with the options matching your package.

For a binary package:

reprepro -V --basedir debian/ --architecture <arch> includedeb <codename> <debfile>

where <arch> is i386, amd64, armel, etc., <codename> is your distribution codename and <debfile> the binary package to be added.

For a source package the command is slightly different:

reprepro -V --basedir debian/ --type dsc includedsc <codename> <dscfile>

where <dscfile> the DSC file of your source package. It will copy the corresponding .tar.gz file and .diff.gz file (whenever available) that are used to restore the patched source code.

In the future we intend to setup a buildd or buildd-like server that will build all our packages transparently, automatically from source code, whatever the target architecture and the distribution flavor. This way we won't have to do manual operations to update our repository any more.

Monday 8 February 2010

Signature du dépôt Debian en place

Ça y'est la signature du dépôt de paquets Debian est en place ! Ça veut dire qu'à partir de maintenant, même si quelqu'un parvenait à modifier les paquets sur le serveur (pour y mettre des logiciels malveillants), le gestionnaire de paquets s'en apercevrait et informerait l'utilisateur de la non authenticité des paquets. Les instructions sont écrites à la page, on les remet ici parce que le look de la page du dépôt est encore un peu brut de fonderie ;-) !

Pour déclarer les paquets DoudouLinux dans votre système, il faut ajouter dans votre fichier de dépôts /etc/apt/sources.list la ligne suivante :

  • pour Debian Lenny
deb lenny main
  • pour Debian Squeeze
deb squeeze main

NB: pour le moment il n'y a rien pour Squeeze, ne cherchez pas !

Il faut aussi récupérer la signature du dépôt pour contrôler l'authenticité des paquets téléchargés. La signature sera valable un an, après quoi il faudra la mettre à jour. Une possibilité consiste à installer le paquet doudoulinux-keyring après avoir déclarer le dépôt DoudouLinux, puis à recharger les informations du dépôt (méthode recommandée) :

$ sudo apt-get update
$ sudo apt-get install doudoulinux-keyring
$ sudo apt-get update

Remarque : apt-get vous demandera s'il faut installer ce paquet non authentifié, ce qu'il faut faire, c'est sans risque !

On peut aussi télécharger ce paquet et l'installer avec la commande suivante avant de rafraîchir les informations sur les paquets :

$ wget
$ sudo dpkg -i doudoulinux-keyring_2010.02.07_all.deb
$ sudo apt-get update

Une autre possibilité consiste à télécharger cette signature et à la déclarer dans le gestionnaire de clefs des paquets avec la commande suivante :

$ wget -O - | sudo apt-key add -

Et voilà !

Sunday 7 February 2010

Démarrage du dépôt Debian

Les premiers paquets DoudouLinux ont été envoyés sur notre dépôt Debian. Il s'agit des paquets permettant d'ajouter des sessions de type application seule (pysycache, gamine, childsplay, gcompris) et de type environnement simplifié (un dock seul ou une interface en onglets type EeePC). Les instructions sont sur la page :

Attention toutefois : le dépôt n'est pas encore signé par clef GPG, mais ça va venir… D'ailleurs il faudrait que je fasse un paquet avec la clef !