====== Workshop: Cóm arreglar bugs a Debian ======
**Description:** https://n-1.cc/event_calendar/view/1532341
**Language(s):** Catalan
El taller es va basar en la resolució del bug [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692284|#692284]]. Aquí teniu els apunts que es van fer de manera col·laborativa a gobby.debian.org:
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
Més enllaços interessants:
Tutorial per aprendre a solucionar bugs a Debian: [[http://wiki.debian.org/BuildingTutorial]]
Cerca de RC Bugs: http://udd.debian.org/bugs.cgi
Diversos workflows per resoldre bugs:
[[http://info.comodo.priv.at/blog/articles/rcbw/]]
[[http://upsilon.cc/~zack/hacking/debian/rcbw/]]
[[http://dunetna.probeta.net/doku.php/debian:rcbw_release_critical_bugs_of_the_week_work_flow]]