[PATCH] gnu: gnushogi: Fix build.

  • Done
  • quality assurance status badge
Details
3 participants
  • gemmaro
  • Liliana Marie Prikler
  • Ludovic Courtès
Owner
unassigned
Submitted by
gemmaro
Severity
normal
G
G
gemmaro wrote on 1 May 2023 16:47
(address . guix-patches@gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
483665ed2ac988be7e19c67fe28b9f9e5acf2a9e.1682952374.git.gemmaro.dev@gmail.com
Hello,

This patch fixes GNU Shogi build.

Since the build is now successful, the actual gnushogi executable and
documents are installed in addition to the COPYING file.

Thanks,
gemmaro.

* gnu/packages/games.scm (gnushogi): Set linker flag to build program.
---
gnu/packages/games.scm | 42 +++++++++++++++++++++++++-----------------
1 file changed, 25 insertions(+), 17 deletions(-)

Toggle diff (65 lines)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3391c141e42..a36e2fe55bf 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -76,6 +76,7 @@
;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
;;; Copyright © 2022 Parnikkapore <poomklao@yahoo.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2012,24 +2013,31 @@ (define-public gnubik
(license license:gpl3+)))
(define-public gnushogi
- (package
- (name "gnushogi")
- (version "1.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/gnushogi/gnushogi-"
- version ".tar.gz"))
- (sha256
- (base32
- "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))))
- (arguments `(#:tests? #f)) ;; No check target.
- (build-system gnu-build-system)
- (home-page "https://www.gnu.org/software/gnushogi/")
- (synopsis "The game of Shogi (Japanese chess)")
- (description "GNU Shogi is a program that plays the game Shogi (Japanese
+ (let ((ver "1.4.2")
+ (revision "2"))
+ (package
+ (name "gnushogi")
+ (version (string-append ver "-" revision))
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gnushogi/gnushogi-" ver
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-linker-flag
+ (lambda _
+ (setenv "LDFLAGS" "-z muldefs"))))
+ #:tests? #f)) ;No check target.
+ (build-system gnu-build-system)
+ (home-page "https://www.gnu.org/software/gnushogi/")
+ (synopsis "The game of Shogi (Japanese chess)")
+ (description
+ "GNU Shogi is a program that plays the game Shogi (Japanese
Chess). It is similar to standard chess but this variant is far more complicated.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public ltris
(package

base-commit: 0c6a7e1045cbd06336ef3699734a803a2e4038e5
--
2.39.2
G
G
gemmaro wrote on 3 May 2023 04:46
(address . 63206@debbugs.gnu.org)
87r0rydtdu.fsf@mac.gemmaro.name
Hello Games and Toys team,

I'm sorry. I should have added X-Debbugs-Cc to mention, since this
patch is about games.scm.

Regards,
gemmaro.
L
L
Liliana Marie Prikler wrote on 4 May 2023 06:28
Re: [PATCH] gnu: gnushogi: Fix build.
04aaff831d814d4288e945a5e37245d920a5a7a6.camel@gmail.com
Hi gemmaro,

Am Montag, dem 01.05.2023 um 23:47 +0900 schrieb gemmaro:
Toggle quote (9 lines)
> Hello,
>
> This patch fixes GNU Shogi build.
>
> Since the build is now successful, the actual gnushogi executable and
> documents are installed in addition to the COPYING file.
>
> Thanks,
> gemmaro.
When embedding letteresque communications in a commit, these should go
below the --- line before the diffstat, where git will happily ignore
them.

Toggle quote (42 lines)
> * gnu/packages/games.scm (gnushogi): Set linker flag to build
> program.
> ---
>  gnu/packages/games.scm | 42 +++++++++++++++++++++++++---------------
> --
>  1 file changed, 25 insertions(+), 17 deletions(-)
>
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index 3391c141e42..a36e2fe55bf 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -76,6 +76,7 @@
>  ;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
>  ;;; Copyright © 2022 Parnikkapore <poomklao@yahoo.com>
>  ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
> +;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -2012,24 +2013,31 @@ (define-public gnubik
>      (license license:gpl3+)))
>  
>  (define-public gnushogi
> -  (package
> -    (name "gnushogi")
> -    (version "1.4.2")
> -    (source
> -     (origin
> -      (method url-fetch)
> -      (uri (string-append "mirror://gnu/gnushogi/gnushogi-"
> -                          version ".tar.gz"))
> -      (sha256
> -       (base32
> -        "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))))
> -    (arguments `(#:tests? #f)) ;; No check target.
> -    (build-system gnu-build-system)
> -    (home-page "https://www.gnu.org/software/gnushogi/")
> -    (synopsis "The game of Shogi (Japanese chess)")
> -    (description  "GNU Shogi is a program that plays the game Shogi
> (Japanese
> +  (let ((ver "1.4.2")
> +        (revision "2"))
There is no need to bump the revision, since the source remains
unchanged. We also prefer not to let-bind the base version.
Toggle quote (17 lines)
> +    (package
> +      (name "gnushogi")
> +      (version (string-append ver "-" revision))
> +      (source (origin
> +                (method url-fetch)
> +                (uri (string-append "mirror://gnu/gnushogi/gnushogi-
> " ver
> +                                    ".tar.gz"))
> +                (sha256
> +                 (base32
> +                 
> "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))))
> +      (arguments
> +       `(#:phases (modify-phases %standard-phases
> +                    (add-before 'configure 'set-linker-flag
> +                      (lambda _
> +                        (setenv "LDFLAGS" "-z muldefs"))))
Since we're using gnu-build-system, can this by chance be achieved via
#:configure-flags or #:make-flags?
Toggle quote (10 lines)
> +         #:tests? #f)) ;No check target.
> +      (build-system gnu-build-system)
> +      (home-page "https://www.gnu.org/software/gnushogi/")
> +      (synopsis "The game of Shogi (Japanese chess)")
> +      (description
> +       "GNU Shogi is a program that plays the game Shogi (Japanese
>  Chess).  It is similar to standard chess but this variant is far
> more complicated.")
> -    (license license:gpl3+)))
> +      (license license:gpl3+))))
Cheers
G
G
gemmaro wrote on 4 May 2023 11:01
[PATCH v2] gnu: gnushogi: Fix build.
(name . gemmaro)(address . gemmaro.dev@gmail.com)
5c0683795721aeff3653e1ea1a8ff20e1ef103f2.1683190857.git.gemmaro.dev@gmail.com
* gnu/packages/games.scm (gnushogi): Set linker flag to build program.
---
gnu/packages/games.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 4fb9775e8df..b53ebf3e773 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -76,6 +76,7 @@
;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
;;; Copyright © 2022 Parnikkapore <poomklao@yahoo.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2023,7 +2024,8 @@ (define-public gnushogi
(sha256
(base32
"0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))))
- (arguments `(#:tests? #f)) ;; No check target.
+ (arguments `(#:make-flags '("LDFLAGS=-z muldefs")
+ #:tests? #f)) ;; No check target.
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/gnushogi/")
(synopsis "The game of Shogi (Japanese chess)")

base-commit: 7a0a186a32524d4156bf96786d708fab323cebff
--
2.39.2
G
G
gemmaro wrote on 11 Jun 2023 13:13
[PATCH v3] gnu: gnushogi: Fix build.
(address . 63206@debbugs.gnu.org)(name . gemmaro)(address . gemmaro.dev@gmail.com)
765feb5a519d82294ac2032b18c4ad22d9fd7c29.1686481609.git.gemmaro.dev@gmail.com
* gnu/packages/games.scm (gnushogi)
[source]: Fix warnings by prefixing "__FUNCTION__" with "__extension__".
[arguments]: Turn off some GCC warnings in C flags.
Set the linker flag to build the program.
Skip the "--enable-fast-install" flag in the configure phase.
Enable the "sizetest" test in the check phase.
[synopsis]: Remove "The" so that the sentence doesn't start with it.
---
Hello,

Thank you for the review. I tried to use #:make-flags in the revision
2, and additionally dealt with warnings and enable check phase in this
revision.

Best,
gemmaro.

gnu/packages/games.scm | 51 ++++++++++++++++++++++++++++++++----------
1 file changed, 39 insertions(+), 12 deletions(-)

Toggle diff (75 lines)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8c00c2e66ed..37c51873ab8 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -78,6 +78,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2043,20 +2044,46 @@ (define-public gnushogi
(package
(name "gnushogi")
(version "1.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/gnushogi/gnushogi-"
- version ".tar.gz"))
- (sha256
- (base32
- "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))))
- (arguments `(#:tests? #f)) ;; No check target.
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gnushogi/gnushogi-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"))
+ (modules '((guix build utils)))
+ ;; Fix "warning: ISO C90 does not support ‘__func__’ predefined
+ ;; identifier [-Wpedantic]"
+ (snippet '(begin
+ (substitute* "gnushogi/dspwrappers.c"
+ (("__FUNCTION__")
+ "__extension__ __FUNCTION__"))))))
+ (arguments
+ `(#:configure-flags (list (string-append
+ "CFLAGS="
+ (string-join '("-Wno-format"
+ "-Wno-unused-but-set-variable"
+ "-Wno-bool-compare")
+ " ")))
+ #:make-flags '("LDFLAGS=-z muldefs")
+ #:phases (modify-phases %standard-phases
+ ;; Skip --enable-fast-install flag
+ (replace 'configure
+ (lambda* (#:key outputs configure-flags #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (setenv "CONFIG_SHELL"
+ (which "sh"))
+ (setenv "SHELL"
+ (which "sh"))
+ (apply invoke "./configure"
+ (string-append "--prefix=" out) configure-flags)))))
+ #:test-target "sizetest"))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/gnushogi/")
- (synopsis "The game of Shogi (Japanese chess)")
- (description "GNU Shogi is a program that plays the game Shogi (Japanese
-Chess). It is similar to standard chess but this variant is far more complicated.")
+ (synopsis "Game of Shogi (Japanese chess)")
+ (description
+ "GNU Shogi is a program that plays the game Shogi (Japanese Chess).
+It is similar to standard chess but this variant is far more complicated.")
(license license:gpl3+)))
(define-public ltris

base-commit: 73fa2889895f35bcf0c41f1174413381fdd7ec2c
--
2.40.1
L
L
Ludovic Courtès wrote on 14 Jun 2023 23:20
Re: bug#63206: [PATCH] gnu: gnushogi: Fix build.
(name . gemmaro)(address . gemmaro.dev@gmail.com)
87352trb9o.fsf_-_@gnu.org
gemmaro <gemmaro.dev@gmail.com> skribis:

Toggle quote (8 lines)
> * gnu/packages/games.scm (gnushogi)
> [source]: Fix warnings by prefixing "__FUNCTION__" with "__extension__".
> [arguments]: Turn off some GCC warnings in C flags.
> Set the linker flag to build the program.
> Skip the "--enable-fast-install" flag in the configure phase.
> Enable the "sizetest" test in the check phase.
> [synopsis]: Remove "The" so that the sentence doesn't start with it.

Applied, thanks!

Ludo’.
Closed
?