[PATCH 0/3] Update openmw to 0.47.0.

  • Done
  • quality assurance status badge
Details
2 participants
  • Felix Gruber
  • Leo Famulari
Owner
unassigned
Submitted by
Felix Gruber
Severity
normal
Merged with
F
F
Felix Gruber wrote on 2 Jan 2022 17:01
(address . guix-patches@gnu.org)(name . Felix Gruber)(address . felgru@posteo.net)
20220102160124.17333-1-felgru@posteo.net
This patchset updates openmw to 0.47.0 and adds its new dependency
recastnavigation. It also adds a new variant of the bullet package
compiled with double-precision arithmetics, for which openmw 0.47 is
looking in its configure phase.

Felix Gruber (3):
gnu: Add recastnavigation.
gnu: Add bullet-double-precision.
gnu: openmw: Update to 0.47.0.

gnu/packages/game-development.scm | 89 ++++++++++++++++++++++++++-----
1 file changed, 77 insertions(+), 12 deletions(-)

--
2.30.2
F
F
Felix Gruber wrote on 2 Jan 2022 17:02
[PATCH 1/3] gnu: Add recastnavigation.
(address . 52953@debbugs.gnu.org)(name . Felix Gruber)(address . felgru@posteo.net)
20220102160250.17874-1-felgru@posteo.net
* gnu/packages/game-development.scm (recastnavigation): New variable.
---
gnu/packages/game-development.scm | 51 +++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 305c2c2819..1f7d05f61c 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2837,3 +2837,54 @@ fully dynamic omnidirectional shadows, global illumination, HDR lighting,
deferred shading, morphological / temporal / multisample anti-aliasing, and
much more.")
(license license:zlib))))
+
+(define-public recastnavigation
+ ;; We follow master since there hasn't been a release since 1.5.1 in 2016.
+ (let ((commit "c5cbd53024c8a9d8d097a4371215e3342d2fdc87")
+ (revision "1"))
+ (package
+ (name "recastnavigation")
+ (version (git-version "1.5.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/recastnavigation/recastnavigation")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "034bm47gc3r285w1pnvkhmm74zz99d204b1r865gisaiq4qfbza0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+ "-DRECASTNAVIGATION_DEMO=OFF"
+ "-DRECASTNAVIGATION_TESTS=ON"
+ "-DRECASTNAVIGATION_EXAMPLES=OFF")))
+ (synopsis "navigation system for games")
+ (description "Recast is state of the art navigation mesh
+construction toolset for games.
+
+@itemize
+@item It is automatic, which means that you can throw any level geometry
+ at it and you will get robust mesh out.
+@item It is fast which means swift turnaround times for level designers.
+@item It is open source so it comes with full source and you can
+ customize it to your heart's content.
+@end itemize
+
+The Recast process starts with constructing a voxel mold from a level
+geometry and then casting a navigation mesh over it. The process
+consists of three steps, building the voxel mold, partitioning the mold
+into simple regions, peeling off the regions as simple polygons.
+
+Recast is accompanied with Detour, path-finding and spatial reasoning
+toolkit. You can use any navigation mesh with Detour, but of course the
+data generated with Recast fits perfectly.
+
+Detour offers simple static navigation mesh which is suitable for many
+simple cases, as well as tiled navigation mesh which allows you to plug
+in and out pieces of the mesh. The tiled mesh allows you to create
+systems where you stream new navigation data in and out as the player
+progresses the level, or you may regenerate tiles as the world changes.")
+ (home-page "https://github.com/recastnavigation/recastnavigation")
+ (license license:zlib))))
--
2.30.2
F
F
Felix Gruber wrote on 2 Jan 2022 17:02
[PATCH 2/3] gnu: Add bullet-double-precision.
(address . 52953@debbugs.gnu.org)(name . Felix Gruber)(address . felgru@posteo.net)
20220102160250.17874-2-felgru@posteo.net
This is a variant of bullet built with a configure flag for double
precision arithmetics required by openmw 0.47.

* gnu/packages/game-development.scm (bullet-double-precision): New
variable.
---
gnu/packages/game-development.scm | 10 ++++++++++
1 file changed, 10 insertions(+)

Toggle diff (23 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 1f7d05f61c..c19875fb2f 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -172,6 +172,16 @@
is used in some video games and movies.")
(license license:zlib)))
+(define-public bullet-double-precision
+ (package
+ (inherit bullet)
+ (arguments
+ (substitute-keyword-arguments (package-arguments bullet)
+ ((#:configure-flags cf)
+ `(cons "-DUSE_DOUBLE_PRECISION=ON" ,cf))))
+ (synopsis (string-append (package-synopsis bullet)
+ " (with double precision)"))))
+
(define-public deutex
(package
(name "deutex")
--
2.30.2
F
F
Felix Gruber wrote on 2 Jan 2022 17:02
[PATCH 3/3] gnu: openmw: Update to 0.47.0.
(address . 52953@debbugs.gnu.org)(name . Felix Gruber)(address . felgru@posteo.net)
20220102160250.17874-3-felgru@posteo.net
* gnu/packages/game-development.scm (openmw): Update to 0.47.0.
[arguments]: Add "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON" to
configure-flags.
[inputs]: Use new simplified format. Add new dependencies lz4 and
recastnavigation. Replace bullet with bullet-double-precision.
---
gnu/packages/game-development.scm | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)

Toggle diff (62 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index c19875fb2f..97f4eec2c4 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2020-2021 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
+;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1777,7 +1778,7 @@ of use.")
(define-public openmw
(package
(name "openmw")
- (version "0.46.0")
+ (version "0.47.0")
(source
(origin
(method git-fetch)
@@ -1787,24 +1788,27 @@ of use.")
(file-name (git-file-name name version))
(sha256
(base32
- "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x"))))
+ "19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No test target
#:configure-flags
- (list "-DDESIRED_QT_VERSION=5")))
+ (list "-DDESIRED_QT_VERSION=5"
+ "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON")))
(native-inputs
(list boost doxygen pkg-config))
(inputs
- `(("bullet" ,bullet)
- ("ffmpeg" ,ffmpeg)
- ("libxt" ,libxt)
- ("mygui" ,mygui-gl) ; OpenMW does not need Ogre.
- ("openal" ,openal)
- ("openscenegraph" ,openmw-openscenegraph)
- ("qtbase" ,qtbase-5)
- ("sdl" ,sdl2)
- ("unshield" ,unshield)))
+ (list bullet-double-precision
+ ffmpeg
+ libxt
+ lz4
+ mygui-gl ; OpenMW does not need Ogre.
+ openal
+ openmw-openscenegraph
+ qtbase-5
+ recastnavigation
+ sdl2
+ unshield))
(synopsis "Re-implementation of the RPG Morrowind engine")
(description
"OpenMW is a game engine which reimplements and extends the one that runs
--
2.30.2
L
L
Leo Famulari wrote on 2 Jan 2022 19:18
(no subject)
(address . control@debbugs.gnu.org)
YdHsk2XjYlGCIDXr@jasmine.lan
merge 52953 52911
L
L
Leo Famulari wrote on 3 Jan 2022 04:59
Re: [bug#52953] [PATCH 1/3] gnu: Add recastnavigation.
(name . Felix Gruber)(address . felgru@posteo.net)(address . 52953@debbugs.gnu.org)
YdJ0hjw3ZtvFWaa0@jasmine.lan
On Sun, Jan 02, 2022 at 04:02:48PM +0000, Felix Gruber wrote:
Toggle quote (2 lines)
> * gnu/packages/game-development.scm (recastnavigation): New variable.

Thanks!

Toggle quote (2 lines)
> + (synopsis "navigation system for games")

The linter should warn that the "synopsis should start with an
upper-case letter or digit".
L
L
Leo Famulari wrote on 3 Jan 2022 04:59
Re: [bug#52953] [PATCH 2/3] gnu: Add bullet-double-precision.
(name . Felix Gruber)(address . felgru@posteo.net)(address . 52953@debbugs.gnu.org)
YdJ0tq1wvMomk2zK@jasmine.lan
On Sun, Jan 02, 2022 at 04:02:49PM +0000, Felix Gruber wrote:
Toggle quote (6 lines)
> This is a variant of bullet built with a configure flag for double
> precision arithmetics required by openmw 0.47.
>
> * gnu/packages/game-development.scm (bullet-double-precision): New
> variable.

I'm curious, did you try making this change in the 'bullet' package
itself, and then rebuilding the packages that depend on it? It would be
nice to avoid making another package variant if it's not necessary.
L
L
Leo Famulari wrote on 3 Jan 2022 05:00
Re: [bug#52953] [PATCH 3/3] gnu: openmw: Update to 0.47.0.
(name . Felix Gruber)(address . felgru@posteo.net)(address . 52953@debbugs.gnu.org)
YdJ00oOg3/B/fHwv@jasmine.lan
On Sun, Jan 02, 2022 at 04:02:50PM +0000, Felix Gruber wrote:
Toggle quote (6 lines)
> * gnu/packages/game-development.scm (openmw): Update to 0.47.0.
> [arguments]: Add "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON" to
> configure-flags.
> [inputs]: Use new simplified format. Add new dependencies lz4 and
> recastnavigation. Replace bullet with bullet-double-precision.

LGTM. Just waiting on responses to my messages about the first and
second patches.
F
F
Felix Gruber wrote on 3 Jan 2022 20:37
[PATCH v2 0/3] Update openmw to 0.47.0.
(name . Felix Gruber)(address . felgru@posteo.net)
20220103193720.20388-1-felgru@posteo.net
Hi Leo,

here's the updated patchset incorporating your remarks.

On 1/3/22 4:59 AM, Leo Famulari wrote:
Toggle quote (6 lines)
> On Sun, Jan 02, 2022 at 04:02:48PM +0000, Felix Gruber wrote:
>> + (synopsis "navigation system for games")
>
> The linter should warn that the "synopsis should start with an
> upper-case letter or digit".

You're right, I should definitely make a habbit of running guix lint
before sending my patches!

Toggle quote (7 lines)
>> * gnu/packages/game-development.scm (bullet-double-precision): New
>> variable.
>
> I'm curious, did you try making this change in the 'bullet' package
> itself, and then rebuilding the packages that depend on it? It would be
> nice to avoid making another package variant if it's not necessary.

I've incorporated the double precision configure flag in the bullet
package now, and all its dependent packages still seem to build
correctly.

Felix Gruber (3):
gnu: Add recastnavigation.
gnu: bullet: Build with double precision arithmetics.
gnu: openmw: Update to 0.47.0.

gnu/packages/game-development.scm | 82 ++++++++++++++++++++++++++-----
1 file changed, 70 insertions(+), 12 deletions(-)

--
2.30.2
F
F
Felix Gruber wrote on 3 Jan 2022 20:38
[PATCH v2 1/3] gnu: Add recastnavigation.
(name . Felix Gruber)(address . felgru@posteo.net)
20220103193826.20570-1-felgru@posteo.net
* gnu/packages/game-development.scm (recastnavigation): New variable.
---
gnu/packages/game-development.scm | 51 +++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 305c2c2819..c77c445831 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2837,3 +2837,54 @@ fully dynamic omnidirectional shadows, global illumination, HDR lighting,
deferred shading, morphological / temporal / multisample anti-aliasing, and
much more.")
(license license:zlib))))
+
+(define-public recastnavigation
+ ;; We follow master since there hasn't been a release since 1.5.1 in 2016.
+ (let ((commit "c5cbd53024c8a9d8d097a4371215e3342d2fdc87")
+ (revision "1"))
+ (package
+ (name "recastnavigation")
+ (version (git-version "1.5.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/recastnavigation/recastnavigation")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "034bm47gc3r285w1pnvkhmm74zz99d204b1r865gisaiq4qfbza0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+ "-DRECASTNAVIGATION_DEMO=OFF"
+ "-DRECASTNAVIGATION_TESTS=ON"
+ "-DRECASTNAVIGATION_EXAMPLES=OFF")))
+ (synopsis "Navigation system for games")
+ (description "Recast is state of the art navigation mesh
+construction toolset for games.
+
+@itemize
+@item It is automatic, which means that you can throw any level geometry
+ at it and you will get robust mesh out.
+@item It is fast which means swift turnaround times for level designers.
+@item It is open source so it comes with full source and you can
+ customize it to your heart's content.
+@end itemize
+
+The Recast process starts with constructing a voxel mold from a level
+geometry and then casting a navigation mesh over it. The process
+consists of three steps, building the voxel mold, partitioning the mold
+into simple regions, peeling off the regions as simple polygons.
+
+Recast is accompanied with Detour, path-finding and spatial reasoning
+toolkit. You can use any navigation mesh with Detour, but of course the
+data generated with Recast fits perfectly.
+
+Detour offers simple static navigation mesh which is suitable for many
+simple cases, as well as tiled navigation mesh which allows you to plug
+in and out pieces of the mesh. The tiled mesh allows you to create
+systems where you stream new navigation data in and out as the player
+progresses the level, or you may regenerate tiles as the world changes.")
+ (home-page "https://github.com/recastnavigation/recastnavigation")
+ (license license:zlib))))
--
2.30.2
F
F
Felix Gruber wrote on 3 Jan 2022 20:38
[PATCH v2 2/3] gnu: bullet: Build with double precision arithmetics.
(name . Felix Gruber)(address . felgru@posteo.net)
20220103193826.20570-2-felgru@posteo.net
* gnu/packages/game-development.scm (bullet)[arguments]: Add configure
flag for double precision arithmetics.
---
gnu/packages/game-development.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (16 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index c77c445831..c14c047dbe 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -144,6 +144,9 @@
"-DBUILD_CPU_DEMOS=OFF"
"-DBUILD_OPENGL3_DEMOS=OFF"
"-DBUILD_BULLET2_DEMOS=OFF"
+ ;; openmw requires bullet to be built with
+ ;; double precision
+ "-DUSE_DOUBLE_PRECISION=ON"
;; Extras/BulletRoboticsGUI needs files from
;; ThirdPartyLibs
"-DBUILD_BULLET_ROBOTICS_GUI_EXTRA=OFF"
--
2.30.2
F
F
Felix Gruber wrote on 3 Jan 2022 20:38
[PATCH v2 3/3] gnu: openmw: Update to 0.47.0.
(name . Felix Gruber)(address . felgru@posteo.net)
20220103193826.20570-3-felgru@posteo.net
* gnu/packages/game-development.scm (openmw): Update to 0.47.0.
[arguments]: Add "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON" to
configure-flags.
[inputs]: Use new simplified format. Add new dependencies lz4 and
recastnavigation.
---
gnu/packages/game-development.scm | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)

Toggle diff (62 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index c14c047dbe..9b060f4ae8 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2020-2021 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
+;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1770,7 +1771,7 @@ of use.")
(define-public openmw
(package
(name "openmw")
- (version "0.46.0")
+ (version "0.47.0")
(source
(origin
(method git-fetch)
@@ -1780,24 +1781,27 @@ of use.")
(file-name (git-file-name name version))
(sha256
(base32
- "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x"))))
+ "19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No test target
#:configure-flags
- (list "-DDESIRED_QT_VERSION=5")))
+ (list "-DDESIRED_QT_VERSION=5"
+ "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON")))
(native-inputs
(list boost doxygen pkg-config))
(inputs
- `(("bullet" ,bullet)
- ("ffmpeg" ,ffmpeg)
- ("libxt" ,libxt)
- ("mygui" ,mygui-gl) ; OpenMW does not need Ogre.
- ("openal" ,openal)
- ("openscenegraph" ,openmw-openscenegraph)
- ("qtbase" ,qtbase-5)
- ("sdl" ,sdl2)
- ("unshield" ,unshield)))
+ (list bullet
+ ffmpeg
+ libxt
+ lz4
+ mygui-gl ; OpenMW does not need Ogre.
+ openal
+ openmw-openscenegraph
+ qtbase-5
+ recastnavigation
+ sdl2
+ unshield))
(synopsis "Re-implementation of the RPG Morrowind engine")
(description
"OpenMW is a game engine which reimplements and extends the one that runs
--
2.30.2
L
L
Leo Famulari wrote on 3 Jan 2022 21:14
Re: [PATCH v2 0/3] Update openmw to 0.47.0.
(name . Felix Gruber)(address . felgru@posteo.net)(address . 52953-done@debbugs.gnu.org)
YdNZKvpEl99IBYFW@jasmine.lan
On Mon, Jan 03, 2022 at 07:37:20PM +0000, Felix Gruber wrote:
Toggle quote (4 lines)
> I've incorporated the double precision configure flag in the bullet
> package now, and all its dependent packages still seem to build
> correctly.

Great! I added more detail to the code comment in bullet and pushed as
92faad0adb93b8349bfd7c67911d3d95f0505eb2
Closed
?