目前还没有办法做到这一点,但这是一个已知的 bug,应该可以修复。(如果你着急的话,可以随时查看 git-build-recipe 源代码并提出修复建议。)
解决方法
然而,有一个解决方法。首先,在Launchpad中导入所有的子模块(您可以使用不同的项目,或者在同一个项目中使用不同的git存储库)。
一个例子
例如,这里是Marker的源代码包配方。Marker需要子模块scidown
,而scidown
需要charter
,而charter
又需要tinyexpr
。
首先,我在Launchpad上注册了这些项目,并将GitHub存储库镜像到lp:scidown
、lp:charter
和lp:tinyexpr
。
源代码配方如下:
# git-build-recipe format 0.4 deb-version 2020.04.04-0~{revtime}
lp:marker master
nest scidown lp:scidown src/scidown a7b7f063de4f272ef0ec12d00b98470888e8cb32
nest charter lp:charter src/scidown/src/charter a25dee1214ea9ba5882325066555cb813efbb489
nest tinyexpr lp:tinyexpr src/scidown/src/charter/src/tinyexpr 9476568b69de4c384903f1d5f255907b92592f45
第二行告诉launchpad使用lp:marker的master分支。
第三行将lp:scidown(在提交a7b7f063de4f272ef0ec12d00b98470888e8cb32中)的所有内容复制到Marker存储库的src/scidown目录中。
第四行将lp:charter(在提交a25dee1214ea9ba5882325066555cb813efbb489中)的所有内容复制到Marker存储库的src/scidown/src/charter目录中(charter是构建scidown所需的子模块)。
第五行将lp:tinyexpr(在提交9476568b69de4c384903f1d5f255907b92592f45中)的所有内容复制到Marker存储库的src/scidown/src/charter/src/tinyexpr目录中(tinyexpr是构建charter所需的子模块)。