emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#36071: closed ([PATCH] gnu: Add leela-zero.)


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#36071: closed ([PATCH] gnu: Add leela-zero.)
Date: Tue, 25 Jun 2019 15:13:01 +0000

Your message dated Tue, 25 Jun 2019 17:12:01 +0200
with message-id <address@hidden>
and subject line Re: [bug#36071] [PATCH] gnu: Add leela-zero.
has caused the debbugs.gnu.org bug report #36071,
regarding [PATCH] gnu: Add leela-zero.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden.)


-- 
36071: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36071
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] gnu: Add leela-zero. Date: Mon, 3 Jun 2019 15:06:11 +0200
* gnu/packages/games.scm (leela-zero): New variable.
* gnu/packages/patches/leela-zero-gtest.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                |  2 +
 gnu/packages/games.scm                      | 51 +++++++++++++++++++++
 gnu/packages/patches/leela-zero-gtest.patch | 40 ++++++++++++++++
 3 files changed, 93 insertions(+)
 create mode 100644 gnu/packages/patches/leela-zero-gtest.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 55a8fcd361..19cab48aff 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -20,6 +20,7 @@
 # Copyright © 2018 Oleg Pykhalov <address@hidden>
 # Copyright © 2018 Stefan Stefanović <address@hidden>
 # Copyright © 2018 Maxim Cournoyer <address@hidden>
+# Copyright © 2019 Guillaume Le Vaillant <address@hidden>
 #
 # This file is part of GNU Guix.
 #
@@ -969,6 +970,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/lcms-CVE-2018-16435.patch               \
   %D%/packages/patches/ldc-bootstrap-disable-tests.patch       \
   %D%/packages/patches/ldc-disable-phobos-tests.patch          \
+  %D%/packages/patches/leela-zero-gtest.patch                  \
   %D%/packages/patches/liba52-enable-pic.patch                 \
   %D%/packages/patches/liba52-link-with-libm.patch             \
   %D%/packages/patches/liba52-set-soname.patch                 \
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 4fdc9b01e6..ee8cc69273 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -40,6 +40,7 @@
 ;;; Copyright © 2019 Oleg Pykhalov <address@hidden>
 ;;; Copyright © 2019 Pierre Langlois <address@hidden>
 ;;; Copyright © 2019 Julien Lepiller <address@hidden>
+;;; Copyright © 2019 Guillaume Le Vaillant <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -128,6 +129,7 @@
   #:use-module (gnu packages netpbm)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ocaml)
+  #:use-module (gnu packages opencl)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -7336,3 +7338,52 @@ Unfortunately, Hacker is not aware of Drascula's real 
ambitions: DOMINATING
 the World and demonstrating that he is even more evil than his brother Vlad.")
     ;; Drascula uses a BSD-like license.
     (license (license:non-copyleft "file:///readme.txt"))))
+
+(define-public leela-zero
+  (package
+   (name "leela-zero")
+   (version "0.17")
+   (source
+    (origin
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://github.com/leela-zero/leela-zero.git";)
+           (commit (string-append "v" version))))
+     (file-name (git-file-name name version))
+     (sha256
+      (base32
+       "17px5iny8mql5c01bymcli7zfssswkzvb2i8gnsmjcck6i2n8srl"))
+     (patches (search-patches "leela-zero-gtest.patch"))))
+   (build-system cmake-build-system)
+   (native-inputs
+    `(("googletest" ,googletest)))
+   (inputs
+    `(("boost" ,boost)
+      ("ocl-icd" ,ocl-icd)
+      ("openblas" ,openblas)
+      ("opencl-headers" ,opencl-headers)
+      ("qtbase" ,qtbase)
+      ("zlib" ,zlib)))
+   (arguments
+    '(#:configure-flags '("-DUSE_BLAS=YES")
+      #:phases (modify-phases %standard-phases
+                 (add-before 'configure 'fix-tests
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let ((home (getcwd)))
+                       (setenv "HOME" home)
+                       (substitute* "src/tests/gtests.cpp"
+                         (("\\.\\./src/tests/0k\\.txt")
+                          (string-append home "/src/tests/0k.txt"))
+                         (("cfg_gtp_mode = true;")
+                          "cfg_gtp_mode = true; cfg_cpu_only = true;")))
+                     #t))
+                 (replace 'check
+                   (lambda _
+                     (zero? (system* "./tests")))))))
+   (home-page "https://github.com/leela-zero/leela-zero";)
+   (synopsis "Program playing the game of Go")
+   (description
+    "Leela-zero is a Go engine with no human-provided knowledge, modeled
+after the AlphaGo Zero paper.  The current best network weights file for
+the engine can be downloaded from https://zero.sjeng.org/best-network.";)
+   (license license:gpl3+)))
diff --git a/gnu/packages/patches/leela-zero-gtest.patch 
b/gnu/packages/patches/leela-zero-gtest.patch
new file mode 100644
index 0000000000..7291b4ab72
--- /dev/null
+++ b/gnu/packages/patches/leela-zero-gtest.patch
@@ -0,0 +1,40 @@
+Use shared gtest instead of submodule
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 617e4b2..2857875 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,7 +18,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} 
"${CMAKE_SOURCE_DIR}/cmake/Modules/")
+ include(GNUInstallDirs)
+ 
+ project(leelaz)
+-add_subdirectory(gtest EXCLUDE_FROM_ALL) # We don't want to install gtest, 
exclude it from `all`
+ 
+ # Required Packages
+ set(Boost_MIN_VERSION "1.58.0")
+@@ -27,6 +26,7 @@ find_package(Boost 1.58.0 REQUIRED program_options 
filesystem)
+ find_package(Threads REQUIRED)
+ find_package(ZLIB REQUIRED)
+ find_package(OpenCL REQUIRED)
++find_package(GTest REQUIRED)
+ # We need OpenBLAS for now, because we make some specific
+ # calls. Ideally we'd use OpenBLAS is possible and fall back to
+ # not doing those calls if it's not present.
+@@ -93,6 +93,7 @@ include_directories(${IncludePath})
+ include_directories(${Boost_INCLUDE_DIRS})
+ include_directories(${OpenCL_INCLUDE_DIRS})
+ include_directories(${ZLIB_INCLUDE_DIRS})
++include_directories(${GTEST_INCLUDE_DIRS})
+ 
+ if((UNIX AND NOT APPLE) OR WIN32)
+     include_directories(${BLAS_INCLUDE_DIRS})
+@@ -141,7 +142,8 @@ target_link_libraries(tests ${Boost_LIBRARIES})
+ target_link_libraries(tests ${BLAS_LIBRARIES})
+ target_link_libraries(tests ${OpenCL_LIBRARIES})
+ target_link_libraries(tests ${ZLIB_LIBRARIES})
+-target_link_libraries(tests gtest_main ${CMAKE_THREAD_LIBS_INIT})
++target_link_libraries(tests ${GTEST_BOTH_LIBRARIES})
++target_link_libraries(tests ${CMAKE_THREAD_LIBS_INIT})
+ 
+ include(GetGitRevisionDescription)
+ git_describe(VERSION --tags)
-- 
2.21.0




--- End Message ---
--- Begin Message --- Subject: Re: [bug#36071] [PATCH] gnu: Add leela-zero. Date: Tue, 25 Jun 2019 17:12:01 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)
Hello!

Ricardo Wurmus <address@hidden> skribis:

> Back to this patch: I think it’s fine to accept it as long as the
> software necessary for training is included.

Tobias Geerinckx-Rice <address@hidden> skribis:

> I can't assess its accuracy, but this comment[0] from the linked 
> LWN article looks relevant.  Particularly:
>
> So this is basically a distributed computing client as well as a 
> Go
> engine that runs with the results of that distributed computing 
> effort.
>
> If that's true, there is no separate ‘training software’ to worry 
> about.
>
> The whole link is worth a click since there seems to be a ‘server 
> component’ involved as well.

Based on the info we have so far, including the fact that Debian
includes it (see <https://packages.debian.org/leela-zero>), I went ahead
and applied the patch.

We can obviously revisit this issue later should someone have concerns
and/or additional info.

Thanks everyone!

Ludo’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]