Voici un petit script que je me suis fais, qui n’est donc pas très propres, mais qui fonctionne plutôt pas mal. Il permet de préparer les répertoires de travail, de construire le paquet, de l’envoyer avec dput et de mettre les paquets sur un dépôt personnelle. Il nécessite par contre d’avoir les sources du logiciel que l’on veut construire dans les dépôts Ubuntu.
Le Script
Je mets ce script dans mon HOME. Vous pouvez modifier les variables pour que cela corresponde à vos répertoires de travail qui sont chez moi :
- /home/USER/Ubuntu
- /home/USER/Ubuntu/ppa
Vous devez aussi avoir correctement configuré pbuilder et avoir installé les outils nécessaire pour la création de paquets.
#!/bin/sh
## Frederic Lietart 20090723
### Variables ###
NOM="Lietart"
PRENOM="Frederic"
MAIL="fred.lietart@free.fr"
WORK=~/Ubuntu
FINAL=~/Ubuntu/ppa
DEPOT=DEPOT
GPG="AAAAAAAAAA"
DATE=`date -R`
DISTRIBUTION="jaunty"
#################
clear
case $1 in
create)
if [ $# = 5 ]
then
echo "\033[1m###################################\033[0m"
echo "Paquetage de $2-$3 vers $4 sur $5"
echo "\033[1m###################################\\033[0m"
sleep 5
else
echo "Syntaxe : $0 create homebank 3.6 3.8 http://www.server.com/app.tar.gz" &&
exit 0
fi
########## Mise en place des répertoire travail ################
cd $WORK && mkdir $2 && cd $2 &&
###### Récupération apps #######
wget $5 &&
if test -f *$2*$4*.tar.gz;
then mv *$2*$4*.tar.gz $2_$4.orig.tar.gz &&
gunzip $2*$4*.gz &&
tar -xvf $2*$4*.tar && mv $2*$4 $2-$4;
else mv $2*$4*.tar.bz2 $2_$4.orig.tar.bz2 &&
bunzip2 $2*$4*.bz2 &&
tar -xvf $2*$4*.tar && mv $2*$4 $2-$4
fi
###### Récupération source #######
apt-get source $2 &&
cd $2*$3* &&
cp -rdf debian ../$2-$4 &&
clear
echo "\033[1m############## COPIER/COLLER ##############\033[0m"
echo "$2 ($4) $DISTRIBUTION; urgency=low" &&
echo "" &&
echo " * New upstream release." &&
echo " plus de détails." &&
echo " * d'autres détails." &&
echo ""&&
echo " -- $NOM $PRENOM $DATE" &&
echo "\033[1m###################################\\033[0m" &&
sleep 10 &&
cd ../$2-$4/debian &&
nano changelog &&
echo "\033[1m###################################\\033[0m"
echo "Commande suivante: $0 build $2 $4"
echo "\033[1m###################################\\033[0m"
;;
build)
if [ $# = 3 ]
then
echo "\033[1m###################################\\033[0m"
echo "Construction de $2-$3"
echo "\033[1m###################################\\033[0m"
sleep 3
else
echo "Syntaxe : $0 build homebank 3.8" &&
exit 0
fi
########## Generation des source_changes ##########
cd $WORK/$2/$2*$3* && dpkg-buildpackage -S -sa -rfakeroot -k$GPG &&
########## Lancement de pbuilder ##########
echo "Password Super-Utilisateur" &&
sudo pbuilder build $WORK/$2/*$2*$3*.dsc --buildresult $FINAL --debootstrapopts
;;
commit)
if [ $# = 3 ]
then
echo "\033[1m###################################\\033[0m"
echo "Commit de $2-$3"
echo "\033[1m###################################\\033[0m"
sleep 2
else
echo "Syntaxe : $0 commit homebank 3.8 " &&
exit 0
fi
########## Upload fichier changes ##########
#dput ubuntu $WORK/$2/*$2*$3*_source.changes &&
#dput revu $WORK/$2/*$2*$3*_source.changes
#dput getdeb $WORK/$2/*$2*$3*_source.changes
dput ppa:thelinuxfr/ppa $WORK/$2/*$2*$3*_source.changes
;;
search)
if [ $# = 2 ]
then
echo "\033[1m###################################\\033[0m"
echo "Recherche de $2 dans les dépôts Ubuntu"
echo "\033[1m###################################\\033[0m"
else
echo "Syntaxe : $0 search homebank" &&
exit 0
fi
dpkg-query -W $2 &&
echo "" &&
apt-cache search $2
;;
depot)
if [ $# = 2 ]
then
echo "\033[1m###################################\\033[0m"
echo "Création du dépôt Ubuntu pour $2"
echo "\033[1m###################################\\033[0m"
else
echo "Syntaxe : $0 depot homebank" &&
exit 0
fi
cd $WORK/$DEPOT && sudo cp -rdf $2* /var/www/incoming..... &&
sudo debarchiver -so
;;
*)
echo "Usage: $0 {create|build|commit|search|depot}" >&2
;;
esac
Utilisation
Mise en place des répertoires
Nom du paquet avec la version dans les sources Ubuntu, vers la nouvelle version avec le lien vers l’archive.
./devbuntu create devede 3.12c 3.14.0 http://www.rastersoft.com/descargas...
Construction du paquet
./devbuntu build devede 3.14.0
Commit du paquet
./devbuntu commit devede 3.14.0
[wpfilebase tag=file id=3 /]
