如何在构建 snapcraft 时在上游源代码上应用补丁?

use*_*.dz 5 packaging patch snap

我曾经构建 Debian 包(被子),它支持在构建过程中应用补丁。补丁存储在debian/patches文件夹中,它们通常用于添加尚未提交到上游源的修复程序或添加特定平台调整。

我的情况是一个需要自定义构建命令的包:

make build; make install_api; make install_desktop
Run Code Online (Sandbox Code Playgroud)

而不是标准方式:

make; make install
Run Code Online (Sandbox Code Playgroud)

目前提出的解决方案是:

  • 修改Makefile和添加default:&install:条目。

snapcraft --no-parallel-build不修改源的情况下运行时出现错误:

make install DESTDIR=/home/username/Desktop/sandbox/alfanous-snap/parts/alfanous-git/install
make: *** No rule to make target 'install'.  Stop.
Command '['/bin/sh', '/tmp/tmp_f_u1ktl', 'make', 'install', 
 'DESTDIR=/home/username/Desktop/sandbox/alfanous-snap/parts/alfanous-git/install']'
 returned non-zero exit status 2
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法为 snapcraft 构建添加补丁?我对任何其他解决方案/解决方法持开放态度。

Eva*_*van 4

这听起来像是snapcraft“scriptlet”的一个很好的例子。该build:节将允许您用自己的 shell 命令替换构建步骤 ( make build; make install_api; make install_desktop)。