Tenho um arquivo com terminações de linha no estilo DOS em um *.orig.tar.xz
pacote de código-fonte que preciso corrigir antes de compilar um 3.0 (quilt)
pacote Debian. Meu patch atualmente tem terminações de linha no estilo Unix.
Podemos inspecionar os arquivos para ver se o patch tem 29 terminações de linha no estilo Unix e se o arquivo de origem tem 5000 terminações de linha no estilo Dos.
$ dos2unix -i debian/patches/model_icd CONFIG/model_config_file.txt
0 29 0 no_bom text debian/patches/model_icd
5000 0 0 no_bom text CONFIG/model_config_file.txt
Resultados da construção:
$ dpkg-buildpackage
...
dpkg-source --before-build .
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying model_icd
patching file CONFIG/model_config_file.txt
Hunk #1 FAILED at 1638 (different line endings).
Hunk #2 FAILED at 4997 (different line endings).
2 out of 2 hunks FAILED
dpkg-source: info: the patch has fuzz which is not allowed, or is malformed
dpkg-source: info: if patch 'model_icd' is correctly applied by quilt, use 'quilt refresh' to update it
dpkg-source: info: restoring quilt backup files for model_icd
dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -E -b -B .pc/model_icd/ --reject-file=- < debian/patches/model_icd subprocess returned exit status 1
dpkg-buildpackage: error: dpkg-source --before-build . subprocess returned exit status 2
Coisas que tentei:
Primeiro, eu simplesmente modifiquei meu patch para usar terminações de linha no estilo dos, mas o quilt remove isso e eu obtenho o mesmo resultado
$ unix2dos debian/patches/model_icd
$ dos2unix -i debian/patches/model_icd CONFIG/model_config_file.txt
29 0 0 no_bom text debian/patches/model_icd
5000 0 0 no_bom text CONFIG/model_config_file.txt
$ dpkg-buildpackage
...
dpkg-source: info: applying model_icd
(Stripping trailing CRs from patch; use --binary to disable.)
patching file CONFIG/model_config_file.txt
Hunk #1 FAILED at 1638 (different line endings).
Hunk #2 FAILED at 4997 (different line endings).
2 out of 2 hunks FAILED
...
Se eu testar quilt
diretamente, posso fazê-lo funcionar com a --binary
opção:
$ quilt push -a --binary
Applying patch model_icd
patching file CONFIG/model_config_file.txt
Now at patch model_icd
Para que isso funcione de forma mais automática, tentei definir QUILT_PATCH_OPTS=
:
$ QUILT_PATCH_OPTS="--binary" quilt push -a
Applying patch model_icd
patching file CONFIG/model_config_file.txt
Now at patch model_icd
Então, tentei definir isso em debian/rules
:
export QUILT_PATCH_OPTS="--binary"
%:
dh $@
Mas isso não é usado por dpkg-source
quem usa patch
diretamente, nãoquilt
Em seguida, tentei enganá-lo definindo esse sinalizador no patches/series
arquivo. dpkg-source(1)
recomenda contra isso, o que sugere que isso pode ser possível.
# debian/patches/series
model_icd --binary
Mas isso ainda não funciona.
Tentei procurar source/options
algo e li o guia do mantenedor , mas não vi isso abordado em lugar nenhum.