llvm-git安装问题

llvm-git安装问题

fetch150zy

最近在使用yay来安装llvm-git时遇到了一些问题

问题

在安装过程中遇到了版本号不合法的问题,

关键报错信息如下

1
2
3
4
5
6
7
8
==> Starting pkgver()...
==> ERROR: pkgver is not allowed to contain colons, forward slashes, hyphens or whitespace.
==> ERROR: pkgver() generated an invalid version:
._r493682.691b97c884a1
-> error making: llvm-git-exit status 12
-> Failed to install the following packages. Manual intervention is required:
llvm-git - exit status 12
llvm-libs-git - exit status 12

从报错信息上来看,似乎是在pkgver()处出了问题,这个函数的问题导致在构建llvm-git时生成了一个不符合规范的版本号

Arch Linux的包管理工具(比如makepkg)对包的版本号有一定的格式要求,具体来说,版本号不允许包含冒号(:)、斜杠(/)、连字符(-)或空白字符。错误信息表明pkgver()函数生成了._r493682.691b97c884a1这样的版本号,这不符合要求。

解决

需要我们手动修改llvm-git中的PKGBUILD文件,主要是修改pkgver()函数

修改如下

1
2
3
4
5
6
7
8
9
10
11
12
13
pkgver() {
cd "$srcdir"/llvm-project/cmake/Modules

# This will almost match the output of `llvm-config --version` when the
# LLVM_APPEND_VC_REV cmake flag is turned on. The only difference is
# dash being replaced with underscore because of Pacman requirements.
local _pkgver=$(awk -F 'MAJOR |MINOR |PATCH |)' \
'BEGIN { ORS="." ; i=0 } \
/set\(LLVM_VERSION_/ { print $2 ; i++ ; if (i==2) ORS="" } \
END { print "\n" }' \
LLVMVersion.cmake)_r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
echo "$_pkgver"
}
此页目录
llvm-git安装问题