dunetna

[debian] [free software] [free knowledge] [sharing]


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 #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 <email@example.net>
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<<EOF > $HOME/.vnc/xstartup
#!/bin/sh
xsetroot -solid grey
vnc4config -iconic &
xterm &
twm &
EOF
chmod 755 $HOME/.vnc/xstartup
vnc4passwd
vnc4server &
cat<<EOF >/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