在 PKGBUILD 中指定子模块修订版

Ger*_*ich 5 arch-linux git makepkg hhvm

我正在尝试hhvm-git从 AUR 安装软件包并收到错误。子模块之一存在错误。这个错误已经被修复,我想指定修订版包含子模块的修复。我怎样才能做到这一点?

在 PKGBUILD 中,我尝试按照Arch Wiki中的建议指定修订版(source数组中的行):

"git+https://github.com/facebook/proxygen#7e37f926d922b55c85537057b57188dea9694c32"
Run Code Online (Sandbox Code Playgroud)

结果:

  -> Creating working copy of proxygen git repo...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From /tmp/yaourt-tmp-german/aur-hhvm-git/proxygen
   7e2a49c..3395064  master     -> origin/master
==> ERROR: Unrecognized reference: 7e37f926d922b55c85537057b57188dea9694c32
Run Code Online (Sandbox Code Playgroud)

Ger*_*ich 5

我以错误的格式指定了修订版。在我的例子中,正确的格式是:

"git+https://github.com/facebook/proxygen#commit=7e37f926d922b55c85537057b57188dea9694c32"
Run Code Online (Sandbox Code Playgroud)

man PKGBUILD

使用 VCS 源

通过以 source=('directory::url#fragment') 形式指定源,可以使用版本控制系统 (VCS) 中的源构建包的开发版本。目前 makepkg 支持 Bazaar、Git、Subversion 和 Mercurial 版本控制系统。对于其他版本控制系统,必须在prepare()函数中手动克隆上游存储库。

源 URL 分为三个部分:

  • 目录
    (可选)指定 makepkg 将 VCS 源下载到的备用目录名称。
  • url
    VCS 存储库的 URL。这必须在 URL 协议中包含 VCS,以便 makepkg 将其识别为 VCS 源。如果协议不包含 VCS 名称,可以通过在 URL 前添加 vcs+ 前缀来添加。例如,通过 HTTPS 使用 Git 存储库将具有以下形式的源 URL:git+https://...。
  • 片段
    (可选) 允许指定 makepkg 的修订号或分支以从 VCS 检出。例如,要签出给定的修订版,源代码行的格式应为 source=(url#revision=123)。可用的片段取决于所使用的 VCS:
    • bzr:修订版(有关详细信息,请参阅“bzr help revisionspec”)
    • git:分支、提交、标签
    • hg:分支、修订、标签
    • svn:修订版