# HG changeset patch # User Christophe Lincoln # Date 1201955646 -3600 # Node ID 560d6f33e8ceabd04a4c55095be0ad79fc43ad39 # Parent 6d82a9b36e5a61a8fe32ce619fee990beddf81a0 Support for generic files copy (locale, pixmaps and .desktop) diff -r 6d82a9b36e5a -r 560d6f33e8ce doc/developer.txt --- a/doc/developer.txt Wed Jan 30 13:43:14 2008 +0100 +++ b/doc/developer.txt Sat Feb 02 13:34:06 2008 +0100 @@ -16,8 +16,8 @@ à télécharger, désarchiver, compiler et générer le paquet binaire. Pour fonctionner, Tazwok a aussi besoin d'un répertoire pour stocker les sources téléchargées ($SOURCES_REPOSITORY) et d'un répertoire pour les paquets générés -($PACKAGES_REPOSITORY). Taz utilise un fichier de configuration (tazwok.conf), -ce fichier peut se trouver dans /etc ou dans le répertoire courant. +($PACKAGES_REPOSITORY), ces valeurs peuvent être configurées via le fichier : +/etc/tazwok.conf. Coding style @@ -26,7 +26,7 @@ est le SHell par défaut sur SliTaz. Le code est identé avec des tabulations, cela donne un script plus léger (en terme de octect). Les commentaires se mettent en English et devraient aider a s'y retouver. On peut créer de -nouvelles fonctions si nécessaire et ajouter des commandes qu'il faut tout +nouvelles fonctions si nécessaire et ajouter des commandes qu'il faut et tout de suite documenter (voir même avant pour en discuter sur la liste). @@ -34,7 +34,7 @@ --------------------- Si vous découvez un bug dans le code, ou des commandes qui pourraient être plus courtes et mieux pensées, n'hésitez pas à vous inscrire sur la liste de -SliTaz ou à envoyer directemnt un mail au mainteneur actuel de Tazwok (voir +SliTaz ou à envoyer directement un mail au mainteneur actuel de Tazwok (voir le fichier AUTHORS contenu dans les sources). @@ -52,21 +52,16 @@ génération des paquets. Le wok principalement utilisé est celui de la version Cooking (en cuisson), il contient les dernières recettes et fichiers. Pour installer un wok, on peut télécharger l'archive, désarchiver et configurer -Tazwok pour qu'il trouve les fichiers du wok. Exemple : +Tazwok pour qu'il trouve les fichiers du wok ou cloner le dépôt Mercurial. +Toute les infos d'utilisation du wok sont décrites sur la page Forge du site : - # cd /home/slitaz - # wget http://download.tuxfamily.org/slitaz/wok/cooking-wok.tar.gz - # tar xzf cooking-wok.tar.gz - -Configurer Tazwok pour lister les paquet disponibles : - - # tazwok list + http://www.slitaz.org/devel/forge.html Cooklists - Liste de cuisson ---------------------------- -Pour compiler une plusieurs paquets en une seule commande, on peut utiliser -des liste de paquets. Il y a des listes exemples dans le répertoire examples/ +Pour compiler plusieurs paquets en une seule commande, on peut utiliser des +listes de cuisson. Il y a des listes exemples dans le répertoire examples/ de cette archive et dans le répertoire /usr/share/examples/tazwok/cooklists sur SliTaz. diff -r 6d82a9b36e5a -r 560d6f33e8ce examples/receipt --- a/examples/receipt Wed Jan 30 13:43:14 2008 +0100 +++ b/examples/receipt Sat Feb 02 13:34:06 2008 +0100 @@ -2,19 +2,22 @@ PACKAGE="bc" VERSION="1.06" -CATEGORY="base-apps" +CATEGORY="utilities" SHORT_DESC="Bc is a cmdline calculator." -MAINTAINER="pankso@slitaz.org" +MAINTAINER="name@example.org" TARBALL="$PACKAGE-$VERSION.tar.gz" WEB_SITE="http://www.gnu.org/software/bc/" -WGET_URL="http://ftp.gnu.org/pub/gnu/bc/$TARBALL" +WGET_URL="$GNU_MIRROR/$PACKAGE/$TARBALL" # Rules to configure and make the package. compile_rules() { cd $src - ./configure --prefix=/usr --infodir=/usr/share/info \ - --mandir=/usr/share/man $CONFIGURE_ARGS + ./configure \ + --prefix=/usr \ + --infodir=/usr/share/info \ + --mandir=/usr/share/man \ + $CONFIGURE_ARGS make make DESTDIR=$PWD/_pkg install } @@ -22,7 +25,7 @@ # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - mkdir -p $fs/usr/bin - cp -a $_pkg/usr/bin/* $fs/usr/bin + mkdir -p $fs/usr + cp -a $_pkg/usr/bin $fs/usr strip -s $fs/usr/bin/* } diff -r 6d82a9b36e5a -r 560d6f33e8ce examples/tazwok.conf --- a/examples/tazwok.conf Wed Jan 30 13:43:14 2008 +0100 +++ b/examples/tazwok.conf Sat Feb 02 13:34:06 2008 +0100 @@ -15,10 +15,17 @@ # Default arguments for GNU configure. CONFIGURE_ARGS="--build=i486-pc-linux-gnu --host=i486-pc-linux-gnu" +# Translation files to include in packages, note that you can specifiy +# several locale. +LOCALE="fr" + # Mirrors URLs. To downloads source next from your location. # GNU mirror : +# GNU_MIRROR="ftp://sunsite.cnlab-switch.ch/mirror/gnu" # SourceForge mirror : +# SF_MIRROR="http://switch.dl.sourceforge.net/sourceforge" # Xorg mirror : +# XORG_MIRROR="ftp://ftp.solnet.ch/mirror/x.org/pub/X11R7.3/src" diff -r 6d82a9b36e5a -r 560d6f33e8ce tazwok --- a/tazwok Wed Jan 30 13:43:14 2008 +0100 +++ b/tazwok Sat Feb 02 13:34:06 2008 +0100 @@ -8,7 +8,7 @@ # # (C) 2007-2008 SliTaz - GNU General Public License. # -VERSION=1.3 +VERSION=1.3.1 #################### # Tazwok variables # @@ -272,6 +272,47 @@ fi } +# Copy all generic files (locale, pixmaps, .desktop). We use standard path, +# so some packages need to copy these files with the receipt and genpkg_rules. +# This function is executed by gen_package when 'tazwok genpkg'. +copy_generic_files() +{ + # In most case locale are in $_pkg/usr/share/locale so we copy files + # using generic variables and $LOCALE from Tazwok config file. + if [ ! "$LOCALE" = "" ]; then + if [ -d "$_pkg/usr/share/locale" ]; then + mkdir -p $fs/usr/share/locale + for i in $LOCALE + do + cp -a $_pkg/usr/share/locale/$i \ + $fs/usr/share/locale 2>/dev/null + done + fi + fi + # Pixmaps. Some icons/images can be add trough genpkg_rules and + # generic copy can be disable with GENERIC_PIXMAPS="no" in pkg receipt. + if [ ! "$GENERIC_PIXMAPS" = "no" ]; then + if [ -d "$_pkg/usr/share/pixmaps" ]; then + mkdir -p $fs/usr/share/pixmaps + cp -a $_pkg/usr/share/pixmaps/$PACKAGE.* \ + $fs/usr/share/pixmaps 2>/dev/null + # Custom or home made PNG pixmap can be in stuff. + if [ -f "stuff/$PACKAGE.png" ]; then + cp -a stuff/$PACKAGE.png $fs/usr/share/pixmaps + fi + fi + fi + # Desktop entry (.desktop). + if [ -d "$_pkg/usr/share/applications" ]; then + cp -a $_pkg/usr/share/applications $fs/usr/share + # Home made desktop file can be in stuff. + if [ -f "stuff/$PACKAGE.desktop" ]; then + mkdir -p $fs/usr/share/applications + cp -a stuff/$PACKAGE.desktop $fs/usr/share/applications + fi + fi +} + # Creat a package tree and build the gziped cpio archive # to make a SliTaz (.tazpkg) package. gen_package() @@ -300,19 +341,20 @@ _pkg=$src/_pkg fi cd $WOK/$PACKAGE - # Execute genpkg_rules to build the package. + # Execute genpkg_rules and copy generic files to build the package. echo "" echo "Bulding $PACKAGE with the receipt..." echo "================================================================================" - if [ `cat $RECEIPT | grep genpkg_rules` ]; then + if [ `cat $RECEIPT | grep ^genpkg_rules` ]; then # Log process. echo "executing genpkg_rules" >> $LOG genpkg_rules + copy_generic_files else echo "No package rules to gen $PACKAGE..." + exit 1 fi - # Copy the receipt and description (if exist) in - # the binary package tree. + # Copy the receipt and description (if exist) in the binary package tree. cd $WOK/$PACKAGE echo -n "Copying the receipt..." cp receipt taz/$PACKAGE-$VERSION