This package does not seem to build, could the maintainer for this package correct the issues with the pkgbuild so that it works?
Search Criteria
Package Details: lc0 0.31.2-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/lc0.git (read-only, click to copy) |
---|---|
Package Base: | lc0 |
Description: | UCI-compliant chess engine designed to play chess via neural network, specifically those of the LeelaChessZero project. |
Upstream URL: | https://lczero.org/ |
Keywords: | chess engine lc0 lczero leela neural-network uci |
Licenses: | GPL-3.0-or-later |
Submitter: | ivanmlerner |
Maintainer: | ivanmlerner |
Last Packager: | ivanmlerner |
Votes: | 5 |
Popularity: | 0.000022 |
First Submitted: | 2019-08-04 07:47 (UTC) |
Last Updated: | 2025-03-06 23:36 (UTC) |
Dependencies (11)
- ocl-icd (opencl-icd-loaderAUR, khronos-ocl-icd-gitAUR)
- openblas (openblas-lapackAUR)
- blas-openblas (make)
- clang (llvm-gitAUR, clang-minimal-gitAUR, clang17-binAUR) (make)
- eigen (eigen-gitAUR) (make)
- git (git-gitAUR, git-glAUR) (make)
- meson (meson-gitAUR) (make)
- opencl-headers (opencl-headers-gitAUR) (make)
- blas-openblas (optional) – Backend for use with CPUs
- cudnn (optional) – Backend for use with nvidia GPUs
- opencl-driver (opencl-nvidia-410xxAUR, amdapp-sdkAUR, opencl-nvidia-440xxAUR, vc4cl-gitAUR, opencl-nvidia-430xxAUR, beignetAUR, opencl-nvidia-vulkanAUR, beignet-gitAUR, intel-openclAUR, clvk-gitAUR, opencl-rusticl-mesa-minimal-gitAUR, mesa-wsl2-gitAUR, intel-compute-runtime-legacy-binAUR, opencl-nvidia-340xxAUR, intel-compute-runtime-gitAUR, amdonly-gaming-opencl-clover-mesa-gitAUR, amdonly-gaming-opencl-rusticl-mesa-gitAUR, intel-compute-runtime-legacyAUR, opencl-nvidia-550xxAUR, opencl-legacy-amdgpu-proAUR, mesa-gitAUR, opencl-nvidia-390xxAUR, opencl-amdAUR, opencl-nvidia-470xxAUR, opencl-nvidia-525xxAUR, opencl-510xx-nvidiaAUR, opencl-nvidia-535xxAUR, opencl-nvidia-betaAUR, intel-compute-runtime-binAUR, opencl-nvidia-teslaAUR, intel-compute-runtime, intel-oneapi-compiler-shared-runtime, opencl-clover-mesa, opencl-nvidia, opencl-rusticl-mesa, rocm-opencl-runtime) (optional) – Backend for use with OpenCL
Required by (0)
Sources (3)
samuelhautamaki commented on 2025-03-06 20:26 (UTC)
SleepyMario commented on 2024-07-23 02:44 (UTC)
Hello, there can be this problem on some installations (including mine):
/home/xxxxx/.cache/pikaur/build/lc0/PKGBUILD: line 52: gtester: command not found
It can be solved by adding core/glib2-devel as a build dependency.
mrzeznicki commented on 2024-07-10 15:21 (UTC)
@FabioLolix Yuu must pin it to the commit that corresponds to the tagged version. For instance, I can build it with the following change:
@@ -29,6 +29,8 @@
noextract=('$_weights')
+_common='fafda0f'
+
prepare() {
cd "$srcdir/$pkgname-$_pkgver/libs"
if [ -d ./lczero-common ]; then {
@@ -36,6 +38,9 @@ prepare() {
}
fi
git clone https://github.com/LeelaChessZero/lczero-common.git
+
+ cd lczero-common/
+ git checkout $_common
}
FabioLolix commented on 2024-06-06 15:11 (UTC) (edited on 2024-06-06 16:26 (UTC) by FabioLolix)
Confirming that this fail to build with devtools
[2/162] Generating 'liblc0_lib.so.p/proto/net.pb.h'
FAILED: liblc0_lib.so.p/proto/net.pb.h
/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py --proto_path=../../libs/lczero-common --cpp_out=liblc0_lib.so.p ../../libs/lczero-common/proto/net.proto
Expected field or type:
required string key = 1; // name of the policy head
^^^
Traceback (most recent call last):
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 833, in <module>
proto_file = ProtoFileParser(Lexer(input.read()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 744, in __init__
self.ParseMessage(lexer)
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 764, in ParseMessage
ProtoMessageParser(lexer, [self.types], [])
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 558, in __init__
ProtoMessageParser(lexer, [self.types, *type_stack],
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 566, in __init__
lexer.Error('Expected field or type')
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 142, in Error
raise ValueError("Parse error: %s at line %d column %d." %
ValueError: Parse error: Expected field or type at line 144 column 4.
[3/162] Generating 'encoder_test.p/proto/net.pb.h'
FAILED: encoder_test.p/proto/net.pb.h
/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py --proto_path=../../libs/lczero-common --cpp_out=encoder_test.p ../../libs/lczero-common/proto/net.proto
Expected field or type:
required string key = 1; // name of the policy head
^^^
Traceback (most recent call last):
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 833, in <module>
proto_file = ProtoFileParser(Lexer(input.read()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 744, in __init__
self.ParseMessage(lexer)
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 764, in ParseMessage
ProtoMessageParser(lexer, [self.types], [])
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 558, in __init__
ProtoMessageParser(lexer, [self.types, *type_stack],
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 566, in __init__
lexer.Error('Expected field or type')
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 142, in Error
raise ValueError("Parse error: %s at line %d column %d." %
ValueError: Parse error: Expected field or type at line 144 column 4.
[4/162] Generating 'lc0.p/proto/net.pb.h'
FAILED: lc0.p/proto/net.pb.h
/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py --proto_path=../../libs/lczero-common --cpp_out=lc0.p ../../libs/lczero-common/proto/net.proto
Expected field or type:
required string key = 1; // name of the policy head
^^^
Traceback (most recent call last):
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 833, in <module>
proto_file = ProtoFileParser(Lexer(input.read()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 744, in __init__
self.ParseMessage(lexer)
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 764, in ParseMessage
ProtoMessageParser(lexer, [self.types], [])
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 558, in __init__
ProtoMessageParser(lexer, [self.types, *type_stack],
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 566, in __init__
lexer.Error('Expected field or type')
File "/build/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 142, in Error
raise ValueError("Parse error: %s at line %d column %d." %
ValueError: Parse error: Expected field or type at line 144 column 4.
[5/162] Generating 'lc0.p/neural/onnx/onnx.pb.h'
ninja: build stopped: subcommand failed.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /build/lc0/src/lc0-0.30.0/build/release
==> ERROR: A failure occurred in build().
This pkgbuild git clone in prepare()
instead of properly configuring the git submodule (which haven't been updated in 6 years and may be the build issue cause)
Update: configured to use the git submodule but fails with another error
binarydepth commented on 2024-06-06 15:04 (UTC) (edited on 2024-06-06 15:06 (UTC) by binarydepth)
[3/162] Generating 'encoder_test.p/proto/net.pb.h'
FAILED: encoder_test.p/proto/net.pb.h
/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py --proto_path=../../libs/lczero-common --cpp_out=encoder_test.p ../../libs/lczero-common/proto/net.proto
Expected field or type:
required string key = 1; // name of the policy head
^^^
Traceback (most recent call last):
File "/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 833, in <module>
proto_file = ProtoFileParser(Lexer(input.read()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 744, in __init__
self.ParseMessage(lexer)
File "/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 764, in ParseMessage
ProtoMessageParser(lexer, [self.types], [])
File "/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 558, in __init__
ProtoMessageParser(lexer, [self.types, *type_stack],
File "/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 566, in __init__
lexer.Error('Expected field or type')
File "/home/binarydepth/.cache/yay/lc0/src/lc0-0.30.0/scripts/compile_proto.py", line 142, in Error
raise ValueError("Parse error: %s at line %d column %d." %
ValueError: Parse error: Expected field or type at line 144 column 4.
[5/162] Generating 'lc0.p/neural/onnx/onnx.pb.h'
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
-> error making: lc0-exit status 4
-> Failed to install the following packages. Manual intervention is required:
lc0 - exit status 4
mrzeznicki commented on 2024-03-10 19:11 (UTC)
Currently, it does not build due to the changes in lc0-common
. Apparently, the build process cannot just willy-nilly checkout the repo and hope it works out fine. It must be tied to a specific commit
mrzeznicki commented on 2023-11-04 14:52 (UTC)
If the package doesn't build for you after upgrading to cuda-12.3.0, you will have to apply the following patch:
@@ -21,11 +21,11 @@ MESON=$(PATH="${PATH}:${HOME}/.local/bin" command -v meson || :)
MESON=${MESON:?"Could not find meson. Is it installed and in PATH?"}
if [ -f "${BUILDDIR}/build.ninja" ]
then
- "${MESON}" configure "${BUILDDIR}" -Dbuildtype="${BUILDTYPE}" -Dprefix="${INSTALL_PREFIX:-/usr/local}" "$@"
+ "${MESON}" configure "${BUILDDIR}" -Dnvcc_ccbin="/opt/cuda/bin/g++" -Dbuildtype="${BUILDTYPE}" -Dprefix="${INSTALL_PREFIX:-/usr/local}" "$@"
else
- "${MESON}" "${BUILDDIR}" --buildtype "${BUILDTYPE}" --prefix "${INSTALL_PREFIX:-/usr/local}" "$@"
+ "${MESON}" "${BUILDDIR}" -Dnvcc_ccbin="/opt/cuda/bin/g++" --buildtype "${BUILDTYPE}" --prefix "${INSTALL_PREFIX:-/usr/local}" "$@"
fi
"${MESON}" compile -C "${BUILDDIR}"
MarsSeed commented on 2023-07-02 10:33 (UTC)
Please check the changes around Arch openblas and blas-openblas. You might need to switch depends from openblas
to blas-openblas
. Arch openblas package is incomplete, only blas-openblas carries the full OpenBlas Lapack suite.
Background:
Arch announced on June 14, 2023 a new blas-openblas repo package, which finally offers the full suite of OpenBLAS Lapack, with their blas implementation and corresponding cblas/lapacke interfaces.
mrzeznicki commented on 2023-05-22 15:59 (UTC)
@ivanmlerner Perhaps you could backport 37dbca48 to solve problems with building with GCC 13. I believe this is what @shahuda ran into.
Pinned Comments
ivanmlerner commented on 2019-08-04 18:25 (UTC) (edited on 2023-09-10 20:23 (UTC) by ivanmlerner)
At least one backend is needed. The most common are listed as optional dependencies.