TALLER: COM ARREGLAR BUGS A DEBIAN ================================== #################### # Preparar entorn ## ## Instal·lar els següents paquets: aptitude install build-essential devscripts fakeroot cowbuilder quilt ## Configuració de devscripts a ~/.devscripts: DEBSIGN_KEYID="email@example.net" DEBUILD_LINTIAN=yes DEBUILD_LINTIAN_OPTS="-i -I --show-overrides --pedantic" BTS_SMTP_HOST=ssmtp://example.net BTS_SMTP_AUTH_USERNAME=email@example.net ## Configuració de variables d'entorn a ~/.bashrc: export DEBEMAIL=xxxxxx@example.net export DEBFULLNAME="Nom i cognoms" ## Configuració de pbuilder/cowbuilder a /root/.pbuilderrc: AUTO_DEBSIGN=yes HOOKDIR="/var/cache/pbuilder/hooks" USEPROC=yes BUILDRESULT="/var/cache/pbuilder/result" MIRRORSITE=http://ftp.fr.debian.org/debian/ sudo mkdir /var/cache/pbuilder/hooks sudo cowbuilder --create --distribution sid # Per actualitzar l'entorn de cowbuilder: sudo cowbuilder --update ## Configuració del repositori dels paquets de codi font de la branca unstable: sudo su -c 'echo "deb-src http://http.debian.net/debian/ unstable main contrib non-free" >> /etc/apt/sources.list.d/src-unstable.list' sudo aptitude update ################################ # Instal·lar paquet amb el bug ## # S'intenta resoldre el bug #692284 sudo aptitude install bluefish=2.2.3-4 ## Comprovar que es reprodueix el bug. ##################################### # Descarregar codi font del paquet ## mkdir -p debian/bluefish cd $_ apt-get source bluefish=2.2.3-4 ####################### # Compilar el paquet ## ## Si ho fem amb debuild sudo apt-get build-dep bluefish=2.2.3-4 cd bluefish-2.2.3 debuild -us -uc # netejar temporals de compilació debuild clean ## Si ho fem amb cowbuilder sudo cowbuilder --build bluefish_2.2.3-4.dsc ################## # Solucionar bug ## ## Modificar debian/changelog (non-maintainer upload): dch -n ## Veure el format del paquet cat debian/source/format 3.0 (quilt) ############################## # Pedaços amb quilt ## ## Pedaços cat debian/patches/series ls debian/patches ## Visualitzar pedaços aplicats. quilt applied ## Desaplicar un pedaç quilt pop ## Desaplicar tots els pedaços quilt pop -a ## Aplicar pedaç quilt push ## Aplicat tots els pedaços quilt push -a ## Afegir pedaç quilt new add-x-www-browser.patch quilt add src/rcfile.c ## Solucionar el bug vim src/rcfile.c quilt refresh # Descriure patch segons DEP-3 quilt header -e Description: add x-www-browser asd another built-in browser Author: Nom i cognoms Date: 2012-12-16 # Visualitzar el patch cat debian/patches/add-x-www-browser.patch ##################### # Tornar a compilar ## ## Amb debuild debuild -us -uc debuild clean ## Amb cowbuilder cd .. dpkg-source -b bluefish-2.2.3 sudo cowbuilder --build bluefish_2.2.3-4.1.dsc ################################# # Comprovar el bon funcionament ## ## Si hem treballat amb debuild: cd .. sudo dpkg -i bluefish-data_2.2.3-4.1_all.deb bluefish-plugins_2.2.3-4.1_i386.deb bluefish_2.2.3-4.1_i386.deb ## Si hem treballat amb cowbuilder: cd /var/cache/pbuilder/result/ sudo dpkg -i bluefish-data_2.2.3-4.1_all.deb bluefish-plugins_2.2.3-4.1_i386.deb bluefish_2.2.3-4.1_i386.deb # Si ho volem provar dins cowbuilder: Afegir el hook F10vnc-interactive a /var/cache/pbuilder/hooks: -------------------F10vnc-interactive--------------------------------- #!/bin/sh # Let's plugin VNC! export HOME=/root echo force-confold >> /etc/dpkg/dpkg.cfg DEBIAN_FRONTEND=noninteractive \ SHELL=/bin/true \ apt-get install -y twm xterm vnc4server xfonts-base expect perl -i -pe 's/^force-confold//' /etc/dpkg/dpkg.cfg mkdir -p /root/.vnc cat< $HOME/.vnc/xstartup #!/bin/sh xsetroot -solid grey vnc4config -iconic & xterm & twm & EOF chmod 755 $HOME/.vnc/xstartup vnc4passwd vnc4server & cat</usr/sbin/killvnc export HOME=/root ps -ef | grep [X]vnc | \ awk '{ print \$9 }' | \ xargs -l1 -i% --no-run-if-empty vnc4server -kill % EOF chmod 755 /usr/sbin/killvnc echo "Run /usr/sbin/killvnc when you're done with VNC!" echo "Otherwise, you will get an umount failure for /dev/pts!" echo --------------------------------------------------------------- sudo cowbuilder --login --inputfile bluefish_2.2.3-4.1_i386.deb --inputfile bluefish-plugins_2.2.3-4.1_i386.deb --inputfile bluefish_2.2.3-4.1_i386.deb ## Un cop hem entrat a cowbuilder: xvnc4viewer # i executem el programa. ####################### # Reportar la solució ## ## Comprovem que el diff mostra només els canvis que hem fet: debdiff bluefish_2.2.3-4.dsc bluefish_2.2.3-4.1.dsc ## Podem enviar al BTS directament aquest patch: debdiff bluefish_2.2.3-4.dsc bluefish_2.2.3-4.1.dsc > add-x-www-browser.patch ## Podem usar nmudiff cd bluefish-2.2.3 nmudiff ## si no s'és DD o no s'ha pujat la nova versió: esborrar tags 692284 + pending ## i canviar el text del mail