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.
- Inicie sesión o regístrese para enviar comentarios
- 418 lecturas


http://ubunteate.es/como-crear-un-paquete-deb
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.gzBajar 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.gzBajar los ficheros patch:
svn checkout http://minimyth.googlecode.com/svn/trunk/gar-minimyth/script/myth-0.24/mythstreamCopio todos los ficheros al directorio del codigo fuente y aplico todos los patch a mano:
patch -p1 < mythstream-mythtv-r21640-mplayer_vo.patchpatch -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 -p1El problema viene cuando ejecuto el "dpkg-buildpackage ":
$ dpkg-buildpackagedpkg-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 mythtvdejalos justo en el directorio anterior, y añades los parches al paquete así:
quilt import -P nombredelparcheparaelregistroquilt parche.patchpor ejemplo:
quilt import -P mplayer_vo ../mythstream-mythtv-r21640-mplayer_vo.patchsi 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_voDe 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 mythstream2. 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-buildpackageAsi 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.