Patch antes de empaquetar [Solucionado]

Hola a todos, no soy ningun experto en empaquetar software, pero necesito hacerlo.

Quiero empaquetar el software mythstream: http://home.kabelfoon.nl/~moongies/streamtuned.html

Pero primero necesito aplicar algunos patch para que funcione con la version 0.24 de MythTV, aqui estan los patch: http://code.google.com/p/minimyth/source/browse/#svn%2Ftrunk%2Fgar-minim...

Me imagino que primero me tendre que bajar la fuenta, despues aplicar los patch y despues crear los DEB. La fuenta esta aqui: http://home.kabelfoon.nl/~moongies/sw9vc4htz2/mythstream_mythtv-r21640.t...

Pero no se como aplicar los patch. Para empaquetar creo que necesito "dpkg-buildpackage", pero no estoy seguro. ¿Alguien me puede ayudar con esto?

Muchisimas gracias por todo y hasta pronto.

Gracias por el enlace, he seguido estos pasos, creo que estoy cerca:

Bajar la fuente desde el repositorio debian-multimedia y descomprimirlo:

wget http://debian-multimedia.org/pool/main/m/mythstream/mythstream_0.21+svn-r21640.orig.tar.gz

Bajar el "diff" desde debian-mutimedia: (no se realmente para que es):

wget http://debian-multimedia.org/pool/main/m/mythstream/mythstream_0.21+svn-r21640-0.lenny1.diff.gz

Bajar los ficheros patch:

svn checkout http://minimyth.googlecode.com/svn/trunk/gar-minimyth/script/myth-0.24/mythstream

Copio todos los ficheros al directorio del codigo fuente y aplico todos los patch a mano:

patch -p1 < mythstream-mythtv-r21640-mplayer_vo.patch
patch -p1 < mythstream-mythtv-r21640-mythconfig_mak.patch
patch -p1 < mythstream-mythtv-r21640-mythcontext.patch
patch -p1 < mythstream-mythtv-r21640.patch.gar
patch -p1 < mythstream-mythtv-r21640-qt4_header.patch
patch -p1 < mythstream-mythtv-r21640-streams_res.patch
patch -p1 < mythstream-mythtv-r21640-sysroot.patch
patch -p1 < mythstream-mythtv-r21640-youtube_parser_fix_2.patch

Despues aplico el "diff" (no se para que es pero creo que es necesario):

zcat mythstream_0.21+svn-r21640-0.lenny1.diff.gz| patch -p1

El problema viene cuando ejecuto el "dpkg-buildpackage ":

$ dpkg-buildpackage
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor):
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor):
dpkg-buildpackage: source package mythstream
dpkg-buildpackage: source version 0.21+svn-r21640-0.lenny1
dpkg-buildpackage: source changed by Christian Marillat <marillat@debian.org>
dpkg-buildpackage: host architecture i386
dpkg-source --before-build mythstream-0.21+svn-r21640
fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
[ ! -f Makefile ] || /usr/bin/make distclean
debian/rules unpatch
make[1]: Entering directory `/home/lazkano/Desktop/mythstream/mythstream-0.21+svn-r21640'
QUILT_PATCHES=debian/patches \
quilt --quiltrc /dev/null pop -a -R || test $? = 2
No patch removed
rm -rf .pc debian/stamp-patched
make[1]: Leaving directory `/home/lazkano/Desktop/mythstream/mythstream-0.21+svn-r21640'
dh_clean mythstream/Makefile
dpkg-source -b mythstream-0.21+svn-r21640
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building mythstream using existing mythstream_0.21+svn-r21640.orig.tar.gz
dpkg-source: info: building mythstream in mythstream_0.21+svn-r21640-0.lenny1.diff.gz
dpkg-source: error: cannot represent change to mythstream-0.21+svn-r21640/mythstream_0.21+svn-r21640-0.lenny1.diff.gz: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files:
libs/harvester.h
libs/player.xml
libs/streamconfig.cpp
libs/streams.res
mythstream-mythtv-r21640-mplayer_vo.patch
mythstream-mythtv-r21640-mythconfig_mak.patch
mythstream-mythtv-r21640-mythcontext.patch
mythstream-mythtv-r21640-qt4_header.patch
mythstream-mythtv-r21640-streams_res.patch
mythstream-mythtv-r21640-sysroot.patch
mythstream-mythtv-r21640-youtube_parser_fix_2.patch
mythstream-mythtv-r21640.patch.gar
mythstream/main.cpp
mythstream/mythstream.cpp
mythstream/mythstream.pro
parsers/youtube/vid.pl
parsers/youtube/youvid.pl
settings.pro
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b mythstream-0.21+svn-r21640 gave error exit status 1

No entiendo lo que me esta diciendo, agradezco cualquier ayuda, ya que estoy desesperado con esto.

Muchas gracias por todo y hasta pronto.

Saludos.

eso te pasa por meter los parches en el directorio de los sources y aplicarlos a mano. Dpkg-source detecta que hay cambios no registrados (posible riesgo de seguridad) y por eso falla en la construcción del paquete.

Tienes que hacerlo con quilt

quilt lleva un registro de parches y no debes tampoco copiar los parches al directorio fuente.

Lo primero yo bajaría las fuentes con apt-get:

apt-get source mythtv

dejalos justo en el directorio anterior, y añades los parches al paquete así:

quilt import -P nombredelparcheparaelregistroquilt parche.patch

por ejemplo:

quilt import -P mplayer_vo ../mythstream-mythtv-r21640-mplayer_vo.patch

si quisieras un empaquetado perfecto que pase las opciones de lintian y se ajuste a las directrices de debian, deberías añadir un header al parche, no es más que un encabezado que describe el parche, lo que hace y la autoría. Si es para un uso personal no es necesario.

quilt header -e mplayer_vo

De momento empieza con eso, si tienes mas errores ya sabes.

Hola de nuevo, gracias al amigo shaola he podido empaquetarlo para Lenny asi:

1. Bajarse la fuente del repositorio:

apt-get source mythstream

2. Aplicar el parche de Debian:

cd mythstream-0.21+svn-r21640/
patch -p1 < debian/patches/01_g++-4.3-fix.diff

3. Borrar el parche de Debian para que no lo aplique al empaquetar:

rm -r debian/patches/

4. Hacer cambios en la fuente y crear el paquete:

dpkg-buildpackage

Asi ya puedo jugar a tocar la fuente y despues empaquetar. Me queda pendiente aprender a utilizar "quilt" para crear versiones y tener un poco de orden en los cambios. Pero esto ya lo hago por mi cuenta.

Dejo solucionado el tema. Gracias a todos y sobre todo a shaola.

Hasta pronto.