Я пытаюсь создать popsicle в Launchpad (I клонировал репозиторий из GitHub, и я пытаюсь построить его, используя этот рецепт пакета), и он не может быть собран.
Вот соответствующая часть журнала сборки
dpkg-buildpackage: info: source package popsicle
dpkg-buildpackage: info: source version 1.1.0-0~202008031810~ubuntu20.04.1
dpkg-buildpackage: info: source distribution focal
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
fakeroot debian/rules clean
dh clean
debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
make clean
make[2]: Entering directory '/<<PKGBUILDDIR>>'
cargo clean
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
if ! ischroot; then \
make vendor; \
fi
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_clean
debian/rules build
dh build
dh_update_autotools_config
dh_auto_configure
debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
env CARGO_HOME="$(pwd)/target/cargo" \
dh_auto_build
make -j1
make[2]: Entering directory '/<<PKGBUILDDIR>>'
tar pxf vendor.tar
tar: vendor.tar: Cannot open: No such file or directory
Однако, когда я пытаюсь собрать его на своей машине с Kubuntu 18.04, я получаю
name@pc:~/popsicle$ debuild -us -uc
dpkg-buildpackage -rfakeroot -us -uc -ui
dpkg-buildpackage: info: source package popsicle
dpkg-buildpackage: info: source version 1.1.0
dpkg-buildpackage: info: source distribution focal
dpkg-buildpackage: info: source changed by Ian Douglas Scott <idscott@system76.com>
dpkg-source --before-build popsicle
fakeroot debian/rules clean
dh clean
debian/rules override_dh_auto_clean
make[1]: Entering directory '/home/archisman/popsicle'
make clean
make[2]: Entering directory '/home/archisman/popsicle'
cargo clean
make[2]: Leaving directory '/home/archisman/popsicle'
if ! ischroot; then \
make vendor; \
fi
make[2]: Entering directory '/home/archisman/popsicle'
mkdir -p .cargo
cargo vendor | head -n -1 > .cargo/config
Updating crates.io index
Downloading crates ...
Downloaded bitflags v1.2.1
, и сборка продолжается.
Как установить его в Launchpad?
Как указано в комментарии в OMG! Ubuntu !, исходный пакет PPA Pop! OS намного больше, чем код в GitHub. Скорее всего, разработчики упаковывают все зависимости с помощью Cargo перед загрузкой исходного кода.
Если вы посмотрите ближе к концу журнала сборки , вы увидите, что сервер сборки пытается распаковать отсутствующий vendor.tar и терпит неудачу , Этот файл содержит все зависимости, необходимые для компиляции большого двоичного файла fat popsicle (вот почему я не большой поклонник программного обеспечения Rust), который не может быть загружен онлайн с помощью Cargo, поскольку Debian / Ubuntu имеет надлежащую систему сборки, которая не позволяет доступ к сети. Если вы сравните свою сборку со сборкой из Pop, ваш сжатый источник составляет 269,3 КиБ, а у Pop - 12,4 МБ: разница в размере это именно отсутствующий файл.