У меня есть несколько файлов в нескольких каталогах, и я хотел бы создать из них пакет APK и опубликовать его в частном репозитории. Для dpkg-deb
+ apt-ftparchive
на Debian / Ubuntu или для rpmbuild
+ createrepo
на RHEL / Fedora такая задача является легкой задачей. Но abuild
я не знаю, как поступить.
Похоже, что Abuild требует, чтобы все исходники загружались из апстрима, создавались локально, упаковывались в fakeroot, включая различные двоичные разборы, оценку содержимого для подпакета на основе пути и различные другие автоматические задачи, которые, безусловно, потрясающие, но совершенно ненужные для моего варианта использования. , Более того, abuild также требует, чтобы сами файлы APKBUILD хранились в репозитории git.
Я прочитал статьи на Alpine Wiki RG. упаковка и ссылка на APKBUILD, и я также покопался в https://git.alpinelinux.org/cgit/abuild/tree/abuild.in , пытаясь выяснить, что именно происходит, когда пакет собирается, и я придумал следующие шаги:
# Create mock git repo to satisfy prepare_metafiles when it asks about commit hash
cd /my-build-root
git init
git add APKBUILD
git commit -m "mock repo"
# bindmount the directories into $pkgdir so it looks like they were built locally
mkdir /my-build-root/pkgname/pkg/pkgname
mount --bind /real-location-of-my-files /my-build-root/pkgname/pkg/pkgname
# Run the minimum needed abuild functions
abuild prepare_metafiles create_apks index
Это производит более или менее то, что я ожидаю, но подход неверен на многих уровнях, поэтому должен быть какой-то лучший способ.
Как я могу создать пакет APK из существующего набора файлов без каких-либо изменений (зачистки, исправления символических ссылок), внесенных в исходные файлы, и желательно также без git?
источник