Estou tentando construir o Cozy Audiobook no launchpad.
Eu importei o branch de origem (master) do GitHub, e existe um branch diferente (deb-packaging-juno) contendo o debian/
diretório. A ramificação master não possui um debian
diretório. Eu quero copiar o debian/
diretório da deb-packaging-juno
ramificação para a master
ramificação durante a construção.
Eu passei pela página de ajuda do Launchpad para receitas e também esta resposta .
Criei a seguinte receita de embalagem .
# git-build-recipe format 0.4 deb-version {debupstream}-0~{revtime}
lp:cozy master
nest-part deb-packaging-juno lp:cozy debian debian master
Mas o pacote falha ao compilar no Launchpad, com o seguinte erro de compilação. Aqui está o buildlog completo .
Traceback (most recent call last):
File "/usr/bin/git-build-recipe", line 11, in <module>
load_entry_point('git-build-recipe==0.1', 'console_scripts', 'git-build-recipe')()
File "/usr/lib/python3/dist-packages/gitbuildrecipe/main.py", line 110, in main
build_tree(base_branch, working_directory)
File "/usr/lib/python3/dist-packages/gitbuildrecipe/recipe.py", line 489, in build_tree
_build_inner_tree(base_branch, target_path)
File "/usr/lib/python3/dist-packages/gitbuildrecipe/recipe.py", line 413, in _build_inner_tree
instruction.apply(target_path)
File "/usr/lib/python3/dist-packages/gitbuildrecipe/recipe.py", line 567, in apply
target_subdir=self.target_subdir)
File "/usr/lib/python3/dist-packages/gitbuildrecipe/recipe.py", line 400, in nest_part_branch
child_branch.commit + ":" + subpath)
File "/usr/lib/python3/dist-packages/gitbuildrecipe/recipe.py", line 662, in git_call
**kwargs)
File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
**kwargs).stdout
File "/usr/lib/python3.6/subprocess.py", line 438, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', '-C', '/home/buildd/build-RECIPEBRANCHBUILD-2811196/chroot-autobuild/home/buildd/work/tree/recipe', 'read-tree', '--prefix', 'debian', '-u', '574660454b66b1c1fd22e72c0ac2d1041e0a4b4d:debian']' returned non-zero exit status 128.
RUN: /usr/share/launchpad-buildd/bin/in-target scan-for-processes --backend=chroot --series=hirsute --arch=amd64 RECIPEBRANCHBUILD-2811196
Scanning for processes to kill in build RECIPEBRANCHBUILD-2811196
Qual foi o erro com minha receita de embalagem e como corrigi-lo?
Embora eu não pudesse copiar o diretório debian dessa maneira, encontrei uma alternativa, para mesclar a ramificação no master.
O
deb-packaging-juno
diretório atual não pode ser mesclado no master porque eles eram da mesma base, e houve conflitos de mesclagem (No entanto, isso provavelmente não está relacionado à falha na cópia do diretório, conforme mencionado na pergunta).Eu criei um novo ramo órfão (para que não houvesse histórico comum) chamado
deb-dir
contendo o diretório debian, e posso copiá-lo para o master com a seguinte receita.O erro é que você usou o nome de branch errado na
nest-part
linha. (O primeiro argumento paranest-part
é um nome que pode ser usado para se referir a essa parte da receita em variáveis de substituição, não a um nome de ramificação Git.) Embora a mensagem de erro não seja a coisa mais clara, você pode identificá-la olhando para esta linha no log de compilação:574660454b66b1c1fd22e72c0ac2d1041e0a4b4d
é o commit atual namaster
ramificação, e essa mensagem de erro está dizendo, com precisão, que não hádebian
diretório na árvore referenciado por esse commit.Você deveria ter escrito o seguinte, que parece funcionar conforme desejado quando eu o testo localmente:
Ou talvez você queira usar um nome diferente para o primeiro argumento
nest-part
para reduzir a confusão: