* [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom. @ 2024-09-16 2:10 James Smith via Guix-patches via 2024-09-16 2:16 ` [bug#73287] [PATCH 1/3] gnu: Add embree-2 James Smith via Guix-patches via ` (5 more replies) 0 siblings, 6 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-16 2:10 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 This series adds the TrenchBroom map editor along with ericw-tools, which is a set of map compilers that works with it. Ericw-tools does need a couple of commits backported from upstream (in the form of patches) to build, so hopefully I included the patches properly. James Smith (3): gnu: Add embree-2. gnu: Add ericw-tools. gnu: Add trenchbroom. gnu/local.mk | 3 + gnu/packages/game-development.scm | 168 ++++++++++++++++++ gnu/packages/graphics.scm | 22 +++ ...tools-add-check-for-sse2-in-light.cc.patch | 31 ++++ ...-tools-gcc-11-pass-const-to-offsetof.patch | 87 +++++++++ 5 files changed, 311 insertions(+) create mode 100644 gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch create mode 100644 gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch base-commit: 83698b6fa037aa1f3adc38f474be41bac7622ed8 -- 2.46.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 1/3] gnu: Add embree-2. 2024-09-16 2:10 [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via @ 2024-09-16 2:16 ` James Smith via Guix-patches via 2024-09-20 7:58 ` Liliana Marie Prikler 2024-09-16 2:16 ` [bug#73287] [PATCH 2/3] gnu: Add ericw-tools James Smith via Guix-patches via ` (4 subsequent siblings) 5 siblings, 1 reply; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-16 2:16 UTC (permalink / raw) To: 73287; +Cc: James Smith * gnu/packages/graphics.scm: (embree-2): New variable. Change-Id: I2b2143b4d93c402ba940d408280ef1b37ab552ea --- gnu/packages/graphics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3d03802245..d893c9dfee 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2023 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -490,6 +491,27 @@ (define-public embree-3 (base32 "1kcvz7g6j56anv9zjyd3gidxl46vipw0gg82lns12m45cd43iwxm")))))) +(define-public embree-2 + (package/inherit embree + (version "2.17.7") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/RenderKit/embree") + (commit (string-append "v" version)))) + (file-name (git-file-name (package-name embree) version)) + (sha256 + (base32 "19v60zdfix33c772x6dzmhsarhafsns8qy7c2ysqr7a9j16whgql")))) + (arguments + (substitute-keyword-arguments (package-arguments embree) + ((#:configure-flags configure-flags) + #~(append (list "-DEMBREE_TUTORIALS=OFF") #$configure-flags)))) + (inputs (modify-inputs (package-inputs embree) + (replace "tbb" tbb-2020))) + ;; Tries to build with SSE2 and AVX support on ARM, so disable building for + ;; those systems. + (supported-systems (list "i686-linux" "x86_64-linux")))) + (define-public openvdb (package (name "openvdb") -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 1/3] gnu: Add embree-2. 2024-09-16 2:16 ` [bug#73287] [PATCH 1/3] gnu: Add embree-2 James Smith via Guix-patches via @ 2024-09-20 7:58 ` Liliana Marie Prikler 2024-09-21 0:35 ` James Smith via Guix-patches via 0 siblings, 1 reply; 15+ messages in thread From: Liliana Marie Prikler @ 2024-09-20 7:58 UTC (permalink / raw) To: James Smith, 73287 Am Sonntag, dem 15.09.2024 um 19:16 -0700 schrieb James Smith: > * gnu/packages/graphics.scm: (embree-2): New variable. > > Change-Id: I2b2143b4d93c402ba940d408280ef1b37ab552ea > --- > gnu/packages/graphics.scm | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm > index 3d03802245..d893c9dfee 100644 > --- a/gnu/packages/graphics.scm > +++ b/gnu/packages/graphics.scm > @@ -37,6 +37,7 @@ > ;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu> > ;;; Copyright © 2023 Eric Bavier <bavier@posteo.net> > ;;; Copyright © 2023, 2024 Artyom V. Poptsov > <poptsov.artyom@gmail.com> > +;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -490,6 +491,27 @@ (define-public embree-3 > (base32 > > "1kcvz7g6j56anv9zjyd3gidxl46vipw0gg82lns12m45cd43iwxm")))))) > > +(define-public embree-2 > + (package/inherit embree > + (version "2.17.7") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference (url > "https://github.com/RenderKit/embree") > + (commit (string-append "v" version)))) > + (file-name (git-file-name (package-name embree) version)) > + (sha256 > + (base32 > "19v60zdfix33c772x6dzmhsarhafsns8qy7c2ysqr7a9j16whgql")))) > + (arguments > + (substitute-keyword-arguments (package-arguments embree) > + ((#:configure-flags configure-flags) > + #~(append (list "-DEMBREE_TUTORIALS=OFF") #$configure- > flags)))) > + (inputs (modify-inputs (package-inputs embree) > + (replace "tbb" tbb-2020))) > + ;; Tries to build with SSE2 and AVX support on ARM, so disable > building for > + ;; those systems. Comments should be full sentences. Also, this is a hint that it uses SSE2 and AVX on the platforms below too – we should disable them, as they won't work with every CPU. > + (supported-systems (list "i686-linux" "x86_64-linux")))) > + Cheers ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 1/3] gnu: Add embree-2. 2024-09-20 7:58 ` Liliana Marie Prikler @ 2024-09-21 0:35 ` James Smith via Guix-patches via 0 siblings, 0 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-21 0:35 UTC (permalink / raw) To: Liliana Marie Prikler; +Cc: 73287 Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Sonntag, dem 15.09.2024 um 19:16 -0700 schrieb James Smith: >> + ;; Tries to build with SSE2 and AVX support on ARM, so disable >> building for >> + ;; those systems. > Comments should be full sentences. Also, this is a hint that it uses > SSE2 and AVX on the platforms below too – we should disable them, as > they won't work with every CPU. I've investigated on disabling them, but it seems that embree 2 (and 3 for that matter) has a hard requirement for SSE2 and have updated the comment as such. I've gone ahead and implemented your suggestions for the other patches though and will be sending them shortly. >> + (supported-systems (list "i686-linux" "x86_64-linux")))) >> + > > Cheers ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 2/3] gnu: Add ericw-tools. 2024-09-16 2:10 [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via 2024-09-16 2:16 ` [bug#73287] [PATCH 1/3] gnu: Add embree-2 James Smith via Guix-patches via @ 2024-09-16 2:16 ` James Smith via Guix-patches via 2024-09-20 8:04 ` Liliana Marie Prikler 2024-09-16 2:16 ` [bug#73287] [PATCH 3/3] gnu: Add trenchbroom James Smith via Guix-patches via ` (3 subsequent siblings) 5 siblings, 1 reply; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-16 2:16 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 * gnu/packages/game-development.scm: (ericw-tools): New variable. * gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch: New file. * gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch: New file. * gnu/local.mk: Register patch files. Change-Id: I896b8f781054442e4db4a7220d526b8f2878873c --- gnu/local.mk | 3 + gnu/packages/game-development.scm | 75 ++++++++++++++++ ...tools-add-check-for-sse2-in-light.cc.patch | 31 +++++++ ...-tools-gcc-11-pass-const-to-offsetof.patch | 87 +++++++++++++++++++ 4 files changed, 196 insertions(+) create mode 100644 gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch create mode 100644 gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch diff --git a/gnu/local.mk b/gnu/local.mk index fcdf174099..bb7ec9960c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -67,6 +67,7 @@ # Copyright © 2024 David Elsing <david.elsing@posteo.net> # Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> # Copyright © 2024 Fabio Natali <me@fabionatali.com> +# Copyright © 2024 James Smith <jsubuntuxp@disroot.org> # # This file is part of GNU Guix. # @@ -1200,6 +1201,8 @@ dist_patch_DATA = \ %D%/packages/patches/epiphany-fix-encoding-test.patch \ %D%/packages/patches/ergodox-firmware-fix-json-target.patch \ %D%/packages/patches/ergodox-firmware-fix-numpad.patch \ + %D%/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch \ + %D%/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/esmini-use-pkgconfig.patch \ %D%/packages/patches/esmtp-add-lesmtp.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index efbbabaaf5..d61b4d633a 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -2394,6 +2394,81 @@ (define-public entt (license (list license:expat ; code license:cc-by4.0)))) ; documentation +(define-public ericw-tools + (package + (name "ericw-tools") + (version "0.18.1") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/ericwa/ericw-tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp")) + (patches + (search-patches "ericw-tools-add-check-for-sse2-in-light.cc.patch" + "ericw-tools-gcc-11-pass-const-to-offsetof.patch")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DENABLE_LIGHTPREVIEW=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-copying-embree-files + (lambda _ + ;; Tries to copy files from embree, disable it. + (substitute* "light/CMakeLists.txt" + (("install\\\(FILES \\$\\{EMBREE") + "#install(FILES ${EMBREE")))) + (add-after 'install 'rename-binaries + (lambda _ + ;; Rename binaries to prevent collisions with other + ;; packages. + (rename-file (string-append #$output "/bin/bspinfo") + (string-append #$output "/bin/qbspinfo")) + (rename-file (string-append #$output "/bin/bsputil") + (string-append #$output "/bin/qbsputil")) + (rename-file (string-append #$output "/bin/light") + (string-append #$output "/bin/qlight")) + (rename-file (string-append #$output "/bin/vis") + (string-append #$output "/bin/qvis")))) + (add-after 'install-license-files 'clean-up-bin-directory + (lambda _ + ;; Install target copies text documents to #$output/bin, move + ;; them to #$output/share/doc. + (delete-file (string-append #$output "/bin/gpl_v3.txt")) + (rename-file + (string-append #$output "/bin/changelog.txt") + (string-append #$output "/share/doc/" + #$(package-name this-package) "-" + #$(package-version this-package) + "/changelog.txt")) + (rename-file + (string-append #$output "/bin/README.md") + (string-append #$output "/share/doc/" + #$(package-name this-package) "-" + #$(package-version this-package) + "/README.md"))))) + #:tests? #f)) ; No tests + (inputs (list embree-2)) + (home-page "https://ericwa.github.io/ericw-tools/") + (synopsis "Quake/Hexen 2 map compiling tools") + (description "Collection of command line utilities for building Quake levels +and working with various Quake file formats. A brief description of the tools +are listed below. + +Included utilities: + +@itemize @bullet +@item qbsp - Used for turning a .map file into a playable .bsp file. +@item qlight - Used for lighting a level after the bsp stage. This util was +previously known as TyrLite. +@item qvis - Creates the potentially visible set (PVS) for a bsp. +@item qbspinfo - Print stats about the data contained in a bsp file. +@item qbsputil - Simple tool for manipulation of bsp file data. +@end itemize") + (license license:gpl2+))) + (define-public eureka (package (name "eureka") diff --git a/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch b/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch new file mode 100644 index 0000000000..4c95b8570d --- /dev/null +++ b/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch @@ -0,0 +1,31 @@ +From 982ef5276bb231ded12c45a686b0875594175774 Mon Sep 17 00:00:00 2001 +From: Bryan Haley <bryanmhaley@gmail.com> +Date: Mon, 28 Mar 2022 22:05:28 -0700 +Subject: [PATCH] Add check for SSE2 in light.cc (#328) + +--- + light/light.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/light/light.cc b/light/light.cc +index 7e23d040f..c00844643 100644 +--- a/light/light.cc ++++ b/light/light.cc +@@ -33,7 +33,7 @@ + #include <common/polylib.hh> + #include <common/bsputils.hh> + +-#ifdef HAVE_EMBREE ++#if defined(HAVE_EMBREE) && defined (__SSE2__) + #include <xmmintrin.h> + //#include <pmmintrin.h> + #endif +@@ -255,7 +255,7 @@ LightThread(void *arg) + { + const mbsp_t *bsp = (const mbsp_t *)arg; + +-#ifdef HAVE_EMBREE ++#if defined(HAVE_EMBREE) && defined (__SSE2__) + _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); + // _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); + #endif diff --git a/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch b/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch new file mode 100644 index 0000000000..6da4179a9e --- /dev/null +++ b/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch @@ -0,0 +1,87 @@ +From c9570260fa895dde5a21272d76f9a3b05d59efdd Mon Sep 17 00:00:00 2001 +From: Eric Wasylishen <ewasylishen@gmail.com> +Date: Sun, 30 May 2021 23:12:17 -0600 +Subject: [PATCH] gcc 11: pass constant to offsetof + +--- + common/polylib.cc | 5 ++++- + qbsp/util.cc | 5 ++++- + qbsp/winding.cc | 4 +++- + vis/vis.cc | 10 ++++++++-- + 4 files changed, 19 insertions(+), 5 deletions(-) + +diff --git a/common/polylib.cc b/common/polylib.cc +index 6397b3107..c8e1afbff 100644 +--- a/common/polylib.cc ++++ b/common/polylib.cc +@@ -230,7 +230,10 @@ polylib::CopyWinding(const winding_t * w) + int size; + winding_t *c; + +- size = offsetof(winding_t, p[w->numpoints]); ++ //size = offsetof(winding_t, p[w->numpoints]); ++ size = offsetof(winding_t, p[0]); ++ size += w->numpoints * sizeof(w->p[0]); ++ + c = static_cast<winding_t *>(malloc(size)); + memcpy(c, w, size); + return c; +diff --git a/qbsp/util.cc b/qbsp/util.cc +index e8baf7205..16c9077f1 100644 +--- a/qbsp/util.cc ++++ b/qbsp/util.cc +@@ -53,7 +53,10 @@ AllocMem(int Type, int cElements, bool fZero) + if (cElements > MAX_POINTS_ON_WINDING) + Error("Too many points (%d) on winding (%s)", cElements, __func__); + +- cSize = offsetof(winding_t, points[cElements]) + sizeof(int); ++ //cSize = offsetof(winding_t, points[cElements]) + sizeof(int); ++ cSize = offsetof(winding_t, points[0]); ++ cSize += cElements * sizeof(static_cast<winding_t*>(nullptr)->points[0]); ++ cSize += sizeof(int); + + // Set cElements to 1 so bookkeeping works OK + cElements = 1; +diff --git a/qbsp/winding.cc b/qbsp/winding.cc +index 1af1d096c..6e286c387 100644 +--- a/qbsp/winding.cc ++++ b/qbsp/winding.cc +@@ -106,7 +106,9 @@ CopyWinding(const winding_t *w) + winding_t *c; + + c = (winding_t *)AllocMem(WINDING, w->numpoints, false); +- size = offsetof(winding_t, points[w->numpoints]); ++ //size = offsetof(winding_t, points[w->numpoints]); ++ size = offsetof(winding_t, points[0]); ++ size += w->numpoints * sizeof(w->points[0]); + memcpy(c, w, size); + + return c; +diff --git a/vis/vis.cc b/vis/vis.cc +index 9fb0ea9ea..ec43a8a5f 100644 +--- a/vis/vis.cc ++++ b/vis/vis.cc +@@ -127,7 +127,10 @@ NewWinding(int points) + if (points > MAX_WINDING) + Error("%s: %i points", __func__, points); + +- size = offsetof(winding_t, points[points]); ++ //size = offsetof(winding_t, points[points]); ++ size = offsetof(winding_t, points[0]); ++ size += points * sizeof(w->points[0]); ++ + w = static_cast<winding_t *>(malloc(size)); + memset(w, 0, size); + +@@ -178,7 +181,10 @@ CopyWinding(const winding_t * w) + int size; + winding_t *c; + +- size = offsetof(winding_t, points[w->numpoints]); ++ //size = offsetof(winding_t, points[w->numpoints]); ++ size = offsetof(winding_t, points[0]); ++ size += w->numpoints * sizeof(w->points[0]); ++ + c = static_cast<winding_t *>(malloc(size)); + memcpy(c, w, size); + return c; -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 2/3] gnu: Add ericw-tools. 2024-09-16 2:16 ` [bug#73287] [PATCH 2/3] gnu: Add ericw-tools James Smith via Guix-patches via @ 2024-09-20 8:04 ` Liliana Marie Prikler 0 siblings, 0 replies; 15+ messages in thread From: Liliana Marie Prikler @ 2024-09-20 8:04 UTC (permalink / raw) To: James Smith, 73287; +Cc: 宋文武, Adam Faiz Am Sonntag, dem 15.09.2024 um 19:16 -0700 schrieb James Smith: > * gnu/packages/game-development.scm: (ericw-tools): New variable. > * gnu/packages/patches/ericw-tools-add-check-for-sse2-in- > light.cc.patch: New file. > * gnu/packages/patches/ericw-tools-gcc-11-pass-const-to- > offsetof.patch: New file. > * gnu/local.mk: Register patch files. > > Change-Id: I896b8f781054442e4db4a7220d526b8f2878873c > --- > gnu/local.mk | 3 + > gnu/packages/game-development.scm | 75 ++++++++++++++++ > ...tools-add-check-for-sse2-in-light.cc.patch | 31 +++++++ > ...-tools-gcc-11-pass-const-to-offsetof.patch | 87 > +++++++++++++++++++ > 4 files changed, 196 insertions(+) > create mode 100644 gnu/packages/patches/ericw-tools-add-check-for- > sse2-in-light.cc.patch > create mode 100644 gnu/packages/patches/ericw-tools-gcc-11-pass- > const-to-offsetof.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index fcdf174099..bb7ec9960c 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -67,6 +67,7 @@ > # Copyright © 2024 David Elsing <david.elsing@posteo.net> > # Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> > # Copyright © 2024 Fabio Natali <me@fabionatali.com> > +# Copyright © 2024 James Smith <jsubuntuxp@disroot.org> > # > # This file is part of GNU Guix. > # > @@ -1200,6 +1201,8 @@ dist_patch_DATA > = \ > %D%/packages/patches/epiphany-fix-encoding-test.patch \ > %D%/packages/patches/ergodox-firmware-fix-json-target.patch \ > %D%/packages/patches/ergodox-firmware-fix-numpad.patch \ > + %D%/packages/patches/ericw-tools-add-check-for-sse2-in- > light.cc.patch \ > + %D%/packages/patches/ericw-tools-gcc-11-pass-const-to- > offsetof.patch \ > %D%/packages/patches/erlang-man-path.patch \ > %D%/packages/patches/esmini-use-pkgconfig.patch \ > %D%/packages/patches/esmtp-add-lesmtp.patch \ > diff --git a/gnu/packages/game-development.scm b/gnu/packages/game- > development.scm > index efbbabaaf5..d61b4d633a 100644 > --- a/gnu/packages/game-development.scm > +++ b/gnu/packages/game-development.scm > @@ -2394,6 +2394,81 @@ (define-public entt > (license (list license:expat ; code > license:cc-by4.0)))) ; documentation > > +(define-public ericw-tools > + (package > + (name "ericw-tools") > + (version "0.18.1") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference (url > "https://github.com/ericwa/ericw-tools") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp")) > + (patches > + (search-patches "ericw-tools-add-check-for-sse2-in- > light.cc.patch" > + "ericw-tools-gcc-11-pass-const-to- > offsetof.patch")))) > + (build-system cmake-build-system) > + (arguments > + (list #:configure-flags #~(list "-DENABLE_LIGHTPREVIEW=OFF") > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'disable-copying-embree-files > + (lambda _ > + ;; Tries to copy files from embree, disable it. > + (substitute* "light/CMakeLists.txt" > + (("install\\\(FILES \\$\\{EMBREE") > + "#install(FILES ${EMBREE")))) > + (add-after 'install 'rename-binaries > + (lambda _ > + ;; Rename binaries to prevent collisions with > other > + ;; packages. > + (rename-file (string-append #$output > "/bin/bspinfo") > + (string-append #$output > "/bin/qbspinfo")) > + (rename-file (string-append #$output > "/bin/bsputil") > + (string-append #$output > "/bin/qbsputil")) > + (rename-file (string-append #$output > "/bin/light") > + (string-append #$output > "/bin/qlight")) > + (rename-file (string-append #$output "/bin/vis") > + (string-append #$output > "/bin/qvis")))) > + (add-after 'install-license-files 'clean-up-bin- > directory > + (lambda _ > + ;; Install target copies text documents to > #$output/bin, move > + ;; them to #$output/share/doc. > + (delete-file (string-append #$output > "/bin/gpl_v3.txt")) > + (rename-file > + (string-append #$output "/bin/changelog.txt") > + (string-append #$output "/share/doc/" > + #$(package-name this-package) "-" > + #$(package-version this-package) > + "/changelog.txt")) > + (rename-file > + (string-append #$output "/bin/README.md") > + (string-append #$output "/share/doc/" > + #$(package-name this-package) "-" > + #$(package-version this-package) > + "/README.md"))))) > + #:tests? #f)) ; No tests > + (inputs (list embree-2)) > + (home-page "https://ericwa.github.io/ericw-tools/") > + (synopsis "Quake/Hexen 2 map compiling tools") I'd swap that around: Map compiling tools for Quake/Hexen 2 > + (description "Collection of command line utilities for building > Quake levels > +and working with various Quake file formats. A brief description of > the tools > +are listed below. > + > +Included utilities: > + > +@itemize @bullet > +@item qbsp - Used for turning a .map file into a playable .bsp file. > +@item qlight - Used for lighting a level after the bsp stage. This > util was > +previously known as TyrLite. > +@item qvis - Creates the potentially visible set (PVS) for a bsp. > +@item qbspinfo - Print stats about the data contained in a bsp file. > +@item qbsputil - Simple tool for manipulation of bsp file data. > +@end itemize") > + (license license:gpl2+))) Descriptions should consist of complete sentences. I think the included utilities are better summarized than explained bullet point by bullet point, but that's just my own bias. Cheers ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 3/3] gnu: Add trenchbroom. 2024-09-16 2:10 [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via 2024-09-16 2:16 ` [bug#73287] [PATCH 1/3] gnu: Add embree-2 James Smith via Guix-patches via 2024-09-16 2:16 ` [bug#73287] [PATCH 2/3] gnu: Add ericw-tools James Smith via Guix-patches via @ 2024-09-16 2:16 ` James Smith via Guix-patches via 2024-09-20 8:02 ` Liliana Marie Prikler 2024-09-21 0:38 ` [bug#73287] [PATCH v2 1/3] gnu: Add embree-2 James Smith via Guix-patches via ` (2 subsequent siblings) 5 siblings, 1 reply; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-16 2:16 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 * gnu/packages/game-development.scm: (trenchbroom): New variable. Change-Id: I50691b1db2010cd8c2c7f04bdfd80278b9e14aed --- gnu/packages/game-development.scm | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index d61b4d633a..abc144f535 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -91,12 +91,14 @@ (define-module (gnu packages game-development) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages m4) + #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) @@ -104,6 +106,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) @@ -121,6 +124,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) @@ -674,6 +678,95 @@ (define-public tiled ;; under BSD-2. (license license:gpl2+))) +(define-public trenchbroom + (package + (name "trenchbroom") + (version "2024.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TrenchBroom/TrenchBroom") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xysz7rkjy11wp9sshdqllmlw8qb65f1zlljpw3q22483szwzxnb")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags + #~(list "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix Makefiles" + "-DCMAKE_PREFIX_PATH=cmake/packages" + (string-append "-DFREEIMAGE_INCLUDE_PATH=" + #$freeimage "/include") + (string-append "-DFREEIMAGE_LIBRARY=" + #$freeimage "/lib/libfreeimage.so") + (string-append "-Dfreetype_INCLUDE_DIR=" + #$freetype "/include/freetype2") + (string-append "-Dfreetype_LIBRARY=" + #$freetype "/lib/libfreetype.so")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-build-system + (lambda _ + (substitute* "CMakeLists.txt" + (("set\\(CMAKE_TOOLCHAIN_FILE") + "#set(CMAKE_TOOLCHAIN_FILE")) + (substitute* "app/CMakeLists.txt" + (("/usr") #$output)))) + (add-before 'build 'set-environment-variables + (lambda _ + ;; Set home so fontconfig can write cache. + (setenv "HOME" (getenv "TEMP")) + ;; Set QT platform for offscreen rendering. + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")))) + (add-after 'install 'wrap-trenchbroom + (lambda _ + (wrap-program (string-append #$output "/bin/trenchbroom") + ;; TrenchBroom needs $XDG_DATA_DIRS set to find game + ;; configs. + `("XDG_DATA_DIRS" ":" prefix + (,(string-append #$output "/share"))) + ;; TrenchBroom also doesn't work well with Wayland backend. + '("QT_QPA_PLATFORM" = ("xcb"))))) + (add-after 'install 'install-desktop-file + (lambda _ + (make-desktop-entry-file + (string-append #$output "/share/applications/" + #$(package-name this-package) ".desktop") + #:name "TrenchBroom" + #:comment #$(package-synopsis this-package) + #:exec #$name + #:icon #$name + #:categories '("Development") + #:keywords '("quake" "level" "editor"))))) + #:tests? #f)) ; No tests. + (inputs + (list assimp + bash-minimal + catch2 + fmt + freeglut + freeimage + freetype + glew + glm + glu + libxxf86vm + mesa + miniz + qtbase-5 + qtsvg-5 + tinyxml2)) + (native-inputs (list git pandoc python p7zip)) + (home-page "https://kristianduske.com/trenchbroom/") + (synopsis "Cross-platform level editor for Quake-engine based games") + (description "TrenchBroom is a cross-platform level editor for Quake-engine +based games. It supports Quake, Quake 2, and Hexen 2. TrenchBroom is easy and +provides many simple and advanced tools to create complex and interesting levels +with ease.") + (license license:gpl3+))) + (define-public tsukundere (package (name "tsukundere") -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH 3/3] gnu: Add trenchbroom. 2024-09-16 2:16 ` [bug#73287] [PATCH 3/3] gnu: Add trenchbroom James Smith via Guix-patches via @ 2024-09-20 8:02 ` Liliana Marie Prikler 0 siblings, 0 replies; 15+ messages in thread From: Liliana Marie Prikler @ 2024-09-20 8:02 UTC (permalink / raw) To: James Smith, 73287; +Cc: 宋文武, Adam Faiz Am Sonntag, dem 15.09.2024 um 19:16 -0700 schrieb James Smith: > * gnu/packages/game-development.scm: (trenchbroom): New variable. > > Change-Id: I50691b1db2010cd8c2c7f04bdfd80278b9e14aed > --- > gnu/packages/game-development.scm | 93 > +++++++++++++++++++++++++++++++ > 1 file changed, 93 insertions(+) > > diff --git a/gnu/packages/game-development.scm b/gnu/packages/game- > development.scm > index d61b4d633a..abc144f535 100644 > --- a/gnu/packages/game-development.scm > +++ b/gnu/packages/game-development.scm > @@ -91,12 +91,14 @@ (define-module (gnu packages game-development) > #:use-module (gnu packages graphviz) > #:use-module (gnu packages gtk) > #:use-module (gnu packages guile) > + #:use-module (gnu packages haskell-xyz) > #:use-module (gnu packages icu4c) > #:use-module (gnu packages image) > #:use-module (gnu packages linux) > #:use-module (gnu packages llvm) > #:use-module (gnu packages lua) > #:use-module (gnu packages m4) > + #:use-module (gnu packages maths) > #:use-module (gnu packages mp3) > #:use-module (gnu packages multiprecision) > #:use-module (gnu packages music) > @@ -104,6 +106,7 @@ (define-module (gnu packages game-development) > #:use-module (gnu packages networking) > #:use-module (gnu packages pcre) > #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages pretty-print) > #:use-module (gnu packages pulseaudio) > #:use-module (gnu packages python) > #:use-module (gnu packages python-crypto) > @@ -121,6 +124,7 @@ (define-module (gnu packages game-development) > #:use-module (gnu packages texinfo) > #:use-module (gnu packages textutils) > #:use-module (gnu packages tls) > + #:use-module (gnu packages version-control) > #:use-module (gnu packages video) > #:use-module (gnu packages vulkan) > #:use-module (gnu packages web) > @@ -674,6 +678,95 @@ (define-public tiled > ;; under BSD-2. > (license license:gpl2+))) > > +(define-public trenchbroom > + (package > + (name "trenchbroom") > + (version "2024.1") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/TrenchBroom/TrenchBroom") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > "1xysz7rkjy11wp9sshdqllmlw8qb65f1zlljpw3q22483szwzxnb")))) > + (build-system cmake-build-system) > + (arguments > + (list #:configure-flags > + #~(list "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix > Makefiles" > + "-DCMAKE_PREFIX_PATH=cmake/packages" > + (string-append "-DFREEIMAGE_INCLUDE_PATH=" > + #$freeimage "/include") > + (string-append "-DFREEIMAGE_LIBRARY=" > + #$freeimage > "/lib/libfreeimage.so") > + (string-append "-Dfreetype_INCLUDE_DIR=" > + #$freetype "/include/freetype2") > + (string-append "-Dfreetype_LIBRARY=" > + #$freetype "/lib/libfreetype.so")) > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'fix-build-system > + (lambda _ > + (substitute* "CMakeLists.txt" > + (("set\\(CMAKE_TOOLCHAIN_FILE") > + "#set(CMAKE_TOOLCHAIN_FILE")) > + (substitute* "app/CMakeLists.txt" > + (("/usr") #$output)))) > + (add-before 'build 'set-environment-variables > + (lambda _ > + ;; Set home so fontconfig can write cache. > + (setenv "HOME" (getenv "TEMP")) > + ;; Set QT platform for offscreen rendering. > + (setenv "QT_QPA_PLATFORM" "offscreen") > + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")))) > + (add-after 'install 'wrap-trenchbroom > + (lambda _ > + (wrap-program (string-append #$output > "/bin/trenchbroom") > + ;; TrenchBroom needs $XDG_DATA_DIRS set to find > game > + ;; configs. > + `("XDG_DATA_DIRS" ":" prefix > + (,(string-append #$output "/share"))) > + ;; TrenchBroom also doesn't work well with > Wayland backend. > + '("QT_QPA_PLATFORM" = ("xcb"))))) > + (add-after 'install 'install-desktop-file > + (lambda _ > + (make-desktop-entry-file > + (string-append #$output "/share/applications/" > + #$(package-name this-package) > ".desktop") > + #:name "TrenchBroom" > + #:comment #$(package-synopsis this-package) > + #:exec #$name > + #:icon #$name > + #:categories '("Development") > + #:keywords '("quake" "level" "editor"))))) > + #:tests? #f)) ; No tests. > + (inputs > + (list assimp > + bash-minimal > + catch2 > + fmt > + freeglut > + freeimage > + freetype > + glew > + glm > + glu > + libxxf86vm > + mesa > + miniz > + qtbase-5 > + qtsvg-5 > + tinyxml2)) > + (native-inputs (list git pandoc python p7zip)) > + (home-page "https://kristianduske.com/trenchbroom/") > + (synopsis "Cross-platform level editor for Quake-engine based > games") > + (description "TrenchBroom is a cross-platform level editor for > Quake-engine > +based games. It supports Quake, Quake 2, and Hexen 2. TrenchBroom > is easy and > +provides many simple and advanced tools to create complex and > interesting levels > +with ease.") "Easy with ease"… less marketing speech is advisable :) ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH v2 1/3] gnu: Add embree-2. 2024-09-16 2:10 [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via ` (2 preceding siblings ...) 2024-09-16 2:16 ` [bug#73287] [PATCH 3/3] gnu: Add trenchbroom James Smith via Guix-patches via @ 2024-09-21 0:38 ` James Smith via Guix-patches via 2024-09-21 0:38 ` [bug#73287] [PATCH v2 2/3] gnu: Add ericw-tools James Smith via Guix-patches via 2024-09-21 0:38 ` [bug#73287] [PATCH v2 3/3] gnu: Add trenchbroom James Smith via Guix-patches via [not found] ` <handler.73287.B.172645275019055.ack@debbugs.gnu.org> 2024-12-08 3:48 ` [bug#73287] [PATCH v4 1/3] gnu: Add embree-2 James Smith via Guix-patches via 5 siblings, 2 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-21 0:38 UTC (permalink / raw) To: 73287; +Cc: James Smith * gnu/packages/graphics.scm: (embree-2): New variable. Change-Id: I2b2143b4d93c402ba940d408280ef1b37ab552ea --- gnu/packages/graphics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index edaa905c7a..171cbce24d 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2023 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -490,6 +491,27 @@ (define-public embree-3 (base32 "1kcvz7g6j56anv9zjyd3gidxl46vipw0gg82lns12m45cd43iwxm")))))) +(define-public embree-2 + (package/inherit embree + (version "2.17.7") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/RenderKit/embree") + (commit (string-append "v" version)))) + (file-name (git-file-name (package-name embree) version)) + (sha256 + (base32 "19v60zdfix33c772x6dzmhsarhafsns8qy7c2ysqr7a9j16whgql")))) + (arguments + (substitute-keyword-arguments (package-arguments embree) + ((#:configure-flags configure-flags) + #~(append (list "-DEMBREE_MAX_ISA=NONE" "-DEMBREE_TUTORIALS=OFF") + #$configure-flags)))) + (inputs (modify-inputs (package-inputs embree) + (replace "tbb" tbb-2020))) + ;; Embree requires SSE2 support, so build only for x86-based architectures. + (supported-systems (list "i686-linux" "x86_64-linux")))) + (define-public openvdb (package (name "openvdb") base-commit: e9d903f146865db5948abd271a5c7e763681b4e9 -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH v2 2/3] gnu: Add ericw-tools. 2024-09-21 0:38 ` [bug#73287] [PATCH v2 1/3] gnu: Add embree-2 James Smith via Guix-patches via @ 2024-09-21 0:38 ` James Smith via Guix-patches via 2024-09-21 0:38 ` [bug#73287] [PATCH v2 3/3] gnu: Add trenchbroom James Smith via Guix-patches via 1 sibling, 0 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-21 0:38 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 * gnu/packages/game-development.scm: (ericw-tools): New variable. * gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch: New file. * gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch: New file. * gnu/local.mk: Register patch files. Change-Id: I896b8f781054442e4db4a7220d526b8f2878873c --- gnu/local.mk | 3 + gnu/packages/game-development.scm | 67 ++++++++++++++ ...tools-add-check-for-sse2-in-light.cc.patch | 31 +++++++ ...-tools-gcc-11-pass-const-to-offsetof.patch | 87 +++++++++++++++++++ 4 files changed, 188 insertions(+) create mode 100644 gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch create mode 100644 gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch diff --git a/gnu/local.mk b/gnu/local.mk index a092122d22..616af50410 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -67,6 +67,7 @@ # Copyright © 2024 David Elsing <david.elsing@posteo.net> # Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> # Copyright © 2024 Fabio Natali <me@fabionatali.com> +# Copyright © 2024 James Smith <jsubuntuxp@disroot.org> # # This file is part of GNU Guix. # @@ -1201,6 +1202,8 @@ dist_patch_DATA = \ %D%/packages/patches/epiphany-fix-encoding-test.patch \ %D%/packages/patches/ergodox-firmware-fix-json-target.patch \ %D%/packages/patches/ergodox-firmware-fix-numpad.patch \ + %D%/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch \ + %D%/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/esmini-use-pkgconfig.patch \ %D%/packages/patches/esmtp-add-lesmtp.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 0bae7cfe11..0b3171d1a8 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -2394,6 +2394,73 @@ (define-public entt (license (list license:expat ; code license:cc-by4.0)))) ; documentation +(define-public ericw-tools + (package + (name "ericw-tools") + (version "0.18.1") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/ericwa/ericw-tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp")) + (patches + (search-patches "ericw-tools-add-check-for-sse2-in-light.cc.patch" + "ericw-tools-gcc-11-pass-const-to-offsetof.patch")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DENABLE_LIGHTPREVIEW=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-copying-embree-files + (lambda _ + ;; Tries to copy files from embree, disable it. + (substitute* "light/CMakeLists.txt" + (("install\\\(FILES \\$\\{EMBREE") + "#install(FILES ${EMBREE")))) + (add-after 'install 'rename-binaries + (lambda _ + ;; Rename binaries to prevent collisions with other + ;; packages. + (rename-file (string-append #$output "/bin/bspinfo") + (string-append #$output "/bin/qbspinfo")) + (rename-file (string-append #$output "/bin/bsputil") + (string-append #$output "/bin/qbsputil")) + (rename-file (string-append #$output "/bin/light") + (string-append #$output "/bin/qlight")) + (rename-file (string-append #$output "/bin/vis") + (string-append #$output "/bin/qvis")))) + (add-after 'install-license-files 'clean-up-bin-directory + (lambda _ + ;; Install target copies text documents to #$output/bin, move + ;; them to #$output/share/doc. + (delete-file (string-append #$output "/bin/gpl_v3.txt")) + (rename-file + (string-append #$output "/bin/changelog.txt") + (string-append #$output "/share/doc/" + #$(package-name this-package) "-" + #$(package-version this-package) + "/changelog.txt")) + (rename-file + (string-append #$output "/bin/README.md") + (string-append #$output "/share/doc/" + #$(package-name this-package) "-" + #$(package-version this-package) + "/README.md"))))) + #:tests? #f)) ; No tests + (inputs (list embree-2)) + (home-page "https://ericwa.github.io/ericw-tools/") + (synopsis "Map compiling tools for Quake/Hexen 2") + (description "A collection of command line utilities used for building +Quake maps as well as working with various Quake file formats. The utilities +include @command{qbsp} for building the geometry, @command{qvis} for +calculating visibility, @command{qlight} for lighting, @command{bspinfo} for +getting information, and @command{bsputil} for basic editing of data in a map +file.") + (license license:gpl2+))) + (define-public eureka (package (name "eureka") diff --git a/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch b/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch new file mode 100644 index 0000000000..4c95b8570d --- /dev/null +++ b/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch @@ -0,0 +1,31 @@ +From 982ef5276bb231ded12c45a686b0875594175774 Mon Sep 17 00:00:00 2001 +From: Bryan Haley <bryanmhaley@gmail.com> +Date: Mon, 28 Mar 2022 22:05:28 -0700 +Subject: [PATCH] Add check for SSE2 in light.cc (#328) + +--- + light/light.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/light/light.cc b/light/light.cc +index 7e23d040f..c00844643 100644 +--- a/light/light.cc ++++ b/light/light.cc +@@ -33,7 +33,7 @@ + #include <common/polylib.hh> + #include <common/bsputils.hh> + +-#ifdef HAVE_EMBREE ++#if defined(HAVE_EMBREE) && defined (__SSE2__) + #include <xmmintrin.h> + //#include <pmmintrin.h> + #endif +@@ -255,7 +255,7 @@ LightThread(void *arg) + { + const mbsp_t *bsp = (const mbsp_t *)arg; + +-#ifdef HAVE_EMBREE ++#if defined(HAVE_EMBREE) && defined (__SSE2__) + _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); + // _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); + #endif diff --git a/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch b/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch new file mode 100644 index 0000000000..6da4179a9e --- /dev/null +++ b/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch @@ -0,0 +1,87 @@ +From c9570260fa895dde5a21272d76f9a3b05d59efdd Mon Sep 17 00:00:00 2001 +From: Eric Wasylishen <ewasylishen@gmail.com> +Date: Sun, 30 May 2021 23:12:17 -0600 +Subject: [PATCH] gcc 11: pass constant to offsetof + +--- + common/polylib.cc | 5 ++++- + qbsp/util.cc | 5 ++++- + qbsp/winding.cc | 4 +++- + vis/vis.cc | 10 ++++++++-- + 4 files changed, 19 insertions(+), 5 deletions(-) + +diff --git a/common/polylib.cc b/common/polylib.cc +index 6397b3107..c8e1afbff 100644 +--- a/common/polylib.cc ++++ b/common/polylib.cc +@@ -230,7 +230,10 @@ polylib::CopyWinding(const winding_t * w) + int size; + winding_t *c; + +- size = offsetof(winding_t, p[w->numpoints]); ++ //size = offsetof(winding_t, p[w->numpoints]); ++ size = offsetof(winding_t, p[0]); ++ size += w->numpoints * sizeof(w->p[0]); ++ + c = static_cast<winding_t *>(malloc(size)); + memcpy(c, w, size); + return c; +diff --git a/qbsp/util.cc b/qbsp/util.cc +index e8baf7205..16c9077f1 100644 +--- a/qbsp/util.cc ++++ b/qbsp/util.cc +@@ -53,7 +53,10 @@ AllocMem(int Type, int cElements, bool fZero) + if (cElements > MAX_POINTS_ON_WINDING) + Error("Too many points (%d) on winding (%s)", cElements, __func__); + +- cSize = offsetof(winding_t, points[cElements]) + sizeof(int); ++ //cSize = offsetof(winding_t, points[cElements]) + sizeof(int); ++ cSize = offsetof(winding_t, points[0]); ++ cSize += cElements * sizeof(static_cast<winding_t*>(nullptr)->points[0]); ++ cSize += sizeof(int); + + // Set cElements to 1 so bookkeeping works OK + cElements = 1; +diff --git a/qbsp/winding.cc b/qbsp/winding.cc +index 1af1d096c..6e286c387 100644 +--- a/qbsp/winding.cc ++++ b/qbsp/winding.cc +@@ -106,7 +106,9 @@ CopyWinding(const winding_t *w) + winding_t *c; + + c = (winding_t *)AllocMem(WINDING, w->numpoints, false); +- size = offsetof(winding_t, points[w->numpoints]); ++ //size = offsetof(winding_t, points[w->numpoints]); ++ size = offsetof(winding_t, points[0]); ++ size += w->numpoints * sizeof(w->points[0]); + memcpy(c, w, size); + + return c; +diff --git a/vis/vis.cc b/vis/vis.cc +index 9fb0ea9ea..ec43a8a5f 100644 +--- a/vis/vis.cc ++++ b/vis/vis.cc +@@ -127,7 +127,10 @@ NewWinding(int points) + if (points > MAX_WINDING) + Error("%s: %i points", __func__, points); + +- size = offsetof(winding_t, points[points]); ++ //size = offsetof(winding_t, points[points]); ++ size = offsetof(winding_t, points[0]); ++ size += points * sizeof(w->points[0]); ++ + w = static_cast<winding_t *>(malloc(size)); + memset(w, 0, size); + +@@ -178,7 +181,10 @@ CopyWinding(const winding_t * w) + int size; + winding_t *c; + +- size = offsetof(winding_t, points[w->numpoints]); ++ //size = offsetof(winding_t, points[w->numpoints]); ++ size = offsetof(winding_t, points[0]); ++ size += w->numpoints * sizeof(w->points[0]); ++ + c = static_cast<winding_t *>(malloc(size)); + memcpy(c, w, size); + return c; -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH v2 3/3] gnu: Add trenchbroom. 2024-09-21 0:38 ` [bug#73287] [PATCH v2 1/3] gnu: Add embree-2 James Smith via Guix-patches via 2024-09-21 0:38 ` [bug#73287] [PATCH v2 2/3] gnu: Add ericw-tools James Smith via Guix-patches via @ 2024-09-21 0:38 ` James Smith via Guix-patches via 1 sibling, 0 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-09-21 0:38 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 * gnu/packages/game-development.scm: (trenchbroom): New variable. Change-Id: I50691b1db2010cd8c2c7f04bdfd80278b9e14aed --- gnu/packages/game-development.scm | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 0b3171d1a8..4e03734072 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -91,12 +91,14 @@ (define-module (gnu packages game-development) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages m4) + #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) @@ -104,6 +106,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) @@ -121,6 +124,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) @@ -674,6 +678,95 @@ (define-public tiled ;; under BSD-2. (license license:gpl2+))) +(define-public trenchbroom + (package + (name "trenchbroom") + (version "2024.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TrenchBroom/TrenchBroom") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xysz7rkjy11wp9sshdqllmlw8qb65f1zlljpw3q22483szwzxnb")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags + #~(list "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix Makefiles" + "-DCMAKE_PREFIX_PATH=cmake/packages" + (string-append "-DFREEIMAGE_INCLUDE_PATH=" + #$freeimage "/include") + (string-append "-DFREEIMAGE_LIBRARY=" + #$freeimage "/lib/libfreeimage.so") + (string-append "-Dfreetype_INCLUDE_DIR=" + #$freetype "/include/freetype2") + (string-append "-Dfreetype_LIBRARY=" + #$freetype "/lib/libfreetype.so")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-build-system + (lambda _ + (substitute* "CMakeLists.txt" + (("set\\(CMAKE_TOOLCHAIN_FILE") + "#set(CMAKE_TOOLCHAIN_FILE")) + (substitute* "app/CMakeLists.txt" + (("/usr") #$output)))) + (add-before 'build 'set-environment-variables + (lambda _ + ;; Set home so fontconfig can write cache. + (setenv "HOME" (getenv "TEMP")) + ;; Set QT platform for offscreen rendering. + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")))) + (add-after 'install 'wrap-trenchbroom + (lambda _ + (wrap-program (string-append #$output "/bin/trenchbroom") + ;; TrenchBroom needs $XDG_DATA_DIRS set to find game + ;; configs. + `("XDG_DATA_DIRS" ":" prefix + (,(string-append #$output "/share"))) + ;; TrenchBroom also doesn't work well with Wayland backend. + '("QT_QPA_PLATFORM" = ("xcb"))))) + (add-after 'install 'install-desktop-file + (lambda _ + (make-desktop-entry-file + (string-append #$output "/share/applications/" + #$(package-name this-package) ".desktop") + #:name "TrenchBroom" + #:comment #$(package-synopsis this-package) + #:exec #$name + #:icon #$name + #:categories '("Development") + #:keywords '("quake" "level" "editor"))))) + #:tests? #f)) ; No tests. + (inputs + (list assimp + bash-minimal + catch2 + fmt + freeglut + freeimage + freetype + glew + glm + glu + libxxf86vm + mesa + miniz + qtbase-5 + qtsvg-5 + tinyxml2)) + (native-inputs (list git pandoc python p7zip)) + (home-page "https://kristianduske.com/trenchbroom/") + (synopsis "Cross-platform level editor for Quake-engine based games") + (description "TrenchBroom is a cross-platform level editor for +Quake-engine based games. It supports Quake, Quake 2, Hexen 2, as well as +other games. TrenchBroom provides many simple and advanced tools to create +complex and interesting levels.") + (license license:gpl3+))) + (define-public tsukundere (package (name "tsukundere") -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
[parent not found: <handler.73287.B.172645275019055.ack@debbugs.gnu.org>]
* [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom. [not found] ` <handler.73287.B.172645275019055.ack@debbugs.gnu.org> @ 2024-10-27 14:30 ` James Smith via Guix-patches via 0 siblings, 0 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-10-27 14:30 UTC (permalink / raw) To: 73287 Hi, I've waited about a month after sending a v2 and have gotten no responses. Are there any more changes I need to make for a v3, or do I just need to rebase onto current master? Currently, the blocker I'm aware of is Embree 2 has a hard requirement for SSE2. I'm thinking about mentioning it in the description when sending v3, but I'd like to get a second opinion. Thanks, James ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH v4 1/3] gnu: Add embree-2. 2024-09-16 2:10 [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via ` (4 preceding siblings ...) [not found] ` <handler.73287.B.172645275019055.ack@debbugs.gnu.org> @ 2024-12-08 3:48 ` James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 2/3] gnu: Add ericw-tools James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 3/3] gnu: Add trenchbroom James Smith via Guix-patches via 5 siblings, 2 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-12-08 3:48 UTC (permalink / raw) To: 73287; +Cc: James Smith * gnu/packages/graphics.scm: (embree-2): New variable. Change-Id: I2b2143b4d93c402ba940d408280ef1b37ab552ea --- gnu/packages/graphics.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index f33e9d3fcb..b1df26bca5 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2023 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 Ivan Vilata-i-Balaguer <ivan@selidor.net> +;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -491,6 +492,30 @@ (define-public embree-3 (base32 "1kcvz7g6j56anv9zjyd3gidxl46vipw0gg82lns12m45cd43iwxm")))))) +(define-public embree-2 + (package/inherit embree + (version "2.17.7") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/RenderKit/embree") + (commit (string-append "v" version)))) + (file-name (git-file-name (package-name embree) version)) + (sha256 + (base32 "19v60zdfix33c772x6dzmhsarhafsns8qy7c2ysqr7a9j16whgql")))) + (arguments + (substitute-keyword-arguments (package-arguments embree) + ((#:configure-flags configure-flags) + #~(append (list "-DEMBREE_MAX_ISA=NONE" "-DEMBREE_TUTORIALS=OFF") + #$configure-flags)))) + (inputs (modify-inputs (package-inputs embree) + (replace "tbb" tbb-2020))) + ;; Embree requires SSE2 support, so build only for x86-based architectures. + (supported-systems (list "i686-linux" "x86_64-linux")) + (description (string-append (package-description embree) " + +Please note that this version requires a processor with SSE2 support.")))) + (define-public openvdb (package (name "openvdb") base-commit: bc630c5ebed27edd821ec363706f8b9cf1ee05cc -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH v4 2/3] gnu: Add ericw-tools. 2024-12-08 3:48 ` [bug#73287] [PATCH v4 1/3] gnu: Add embree-2 James Smith via Guix-patches via @ 2024-12-08 3:48 ` James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 3/3] gnu: Add trenchbroom James Smith via Guix-patches via 1 sibling, 0 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-12-08 3:48 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 * gnu/packages/game-development.scm: (ericw-tools): New variable. * gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch: New file. * gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch: New file. * gnu/local.mk: Register patch files. Change-Id: I896b8f781054442e4db4a7220d526b8f2878873c --- gnu/local.mk | 3 + gnu/packages/game-development.scm | 67 ++++++++++++++ ...tools-add-check-for-sse2-in-light.cc.patch | 34 +++++++ ...-tools-gcc-11-pass-const-to-offsetof.patch | 90 +++++++++++++++++++ 4 files changed, 194 insertions(+) create mode 100644 gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch create mode 100644 gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch diff --git a/gnu/local.mk b/gnu/local.mk index a7bd32453b..5a3a762080 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -69,6 +69,7 @@ # Copyright © 2024 Fabio Natali <me@fabionatali.com> # Copyright © 2024 Noé Lopez <noelopez@free.fr> # Copyright © 2024 Runciter <runciter@whispers-vpn.org> +# Copyright © 2024 James Smith <jsubuntuxp@disroot.org> # # This file is part of GNU Guix. # @@ -1211,6 +1212,8 @@ dist_patch_DATA = \ %D%/packages/patches/epiphany-fix-encoding-test.patch \ %D%/packages/patches/ergodox-firmware-fix-json-target.patch \ %D%/packages/patches/ergodox-firmware-fix-numpad.patch \ + %D%/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch \ + %D%/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/esmini-use-pkgconfig.patch \ %D%/packages/patches/esmtp-add-lesmtp.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 6be9d746c7..2aee26593c 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -2382,6 +2382,73 @@ (define-public entt (license (list license:expat ; code license:cc-by4.0)))) ; documentation +(define-public ericw-tools + (package + (name "ericw-tools") + (version "0.18.1") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/ericwa/ericw-tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp")) + (patches + (search-patches "ericw-tools-add-check-for-sse2-in-light.cc.patch" + "ericw-tools-gcc-11-pass-const-to-offsetof.patch")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DENABLE_LIGHTPREVIEW=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-copying-embree-files + (lambda _ + ;; Tries to copy files from embree, disable it. + (substitute* "light/CMakeLists.txt" + (("install\\\(FILES \\$\\{EMBREE") + "#install(FILES ${EMBREE")))) + (add-after 'install 'rename-binaries + (lambda _ + ;; Rename binaries to prevent collisions with other + ;; packages. + (rename-file (string-append #$output "/bin/bspinfo") + (string-append #$output "/bin/qbspinfo")) + (rename-file (string-append #$output "/bin/bsputil") + (string-append #$output "/bin/qbsputil")) + (rename-file (string-append #$output "/bin/light") + (string-append #$output "/bin/qlight")) + (rename-file (string-append #$output "/bin/vis") + (string-append #$output "/bin/qvis")))) + (add-after 'install-license-files 'clean-up-bin-directory + (lambda _ + ;; Install target copies text documents to #$output/bin, move + ;; them to #$output/share/doc. + (delete-file (string-append #$output "/bin/gpl_v3.txt")) + (rename-file + (string-append #$output "/bin/changelog.txt") + (string-append #$output "/share/doc/" + #$(package-name this-package) "-" + #$(package-version this-package) + "/changelog.txt")) + (rename-file + (string-append #$output "/bin/README.md") + (string-append #$output "/share/doc/" + #$(package-name this-package) "-" + #$(package-version this-package) + "/README.md"))))) + #:tests? #f)) ; No tests + (inputs (list embree-2)) + (home-page "https://ericwa.github.io/ericw-tools/") + (synopsis "Map compiling tools for Quake/Hexen 2") + (description "A collection of command line utilities used for building +Quake maps as well as working with various Quake file formats. The utilities +include @command{qbsp} for building the geometry, @command{qvis} for +calculating visibility, @command{qlight} for lighting, @command{bspinfo} for +getting information, and @command{bsputil} for basic editing of data in a map +file.") + (license license:gpl2+))) + (define-public eureka (package (name "eureka") diff --git a/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch b/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch new file mode 100644 index 0000000000..5dee955a95 --- /dev/null +++ b/gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch @@ -0,0 +1,34 @@ +This patch is from upstream and shouldn't be needed in the next release. +https://github.com/ericwa/ericw-tools/commit/982ef5276bb231ded12c45a686b0875594175774.patch + +From 982ef5276bb231ded12c45a686b0875594175774 Mon Sep 17 00:00:00 2001 +From: Bryan Haley <bryanmhaley@gmail.com> +Date: Mon, 28 Mar 2022 22:05:28 -0700 +Subject: [PATCH] Add check for SSE2 in light.cc (#328) + +--- + light/light.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/light/light.cc b/light/light.cc +index 7e23d040f..c00844643 100644 +--- a/light/light.cc ++++ b/light/light.cc +@@ -33,7 +33,7 @@ + #include <common/polylib.hh> + #include <common/bsputils.hh> + +-#ifdef HAVE_EMBREE ++#if defined(HAVE_EMBREE) && defined (__SSE2__) + #include <xmmintrin.h> + //#include <pmmintrin.h> + #endif +@@ -255,7 +255,7 @@ LightThread(void *arg) + { + const mbsp_t *bsp = (const mbsp_t *)arg; + +-#ifdef HAVE_EMBREE ++#if defined(HAVE_EMBREE) && defined (__SSE2__) + _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); + // _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); + #endif diff --git a/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch b/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch new file mode 100644 index 0000000000..12ec4400d7 --- /dev/null +++ b/gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch @@ -0,0 +1,90 @@ +This patch is from upstream and shouldn't be needed in the next release. +https://github.com/ericwa/ericw-tools/commit/c9570260fa895dde5a21272d76f9a3b05d59efdd.patch + +From c9570260fa895dde5a21272d76f9a3b05d59efdd Mon Sep 17 00:00:00 2001 +From: Eric Wasylishen <ewasylishen@gmail.com> +Date: Sun, 30 May 2021 23:12:17 -0600 +Subject: [PATCH] gcc 11: pass constant to offsetof + +--- + common/polylib.cc | 5 ++++- + qbsp/util.cc | 5 ++++- + qbsp/winding.cc | 4 +++- + vis/vis.cc | 10 ++++++++-- + 4 files changed, 19 insertions(+), 5 deletions(-) + +diff --git a/common/polylib.cc b/common/polylib.cc +index 6397b3107..c8e1afbff 100644 +--- a/common/polylib.cc ++++ b/common/polylib.cc +@@ -230,7 +230,10 @@ polylib::CopyWinding(const winding_t * w) + int size; + winding_t *c; + +- size = offsetof(winding_t, p[w->numpoints]); ++ //size = offsetof(winding_t, p[w->numpoints]); ++ size = offsetof(winding_t, p[0]); ++ size += w->numpoints * sizeof(w->p[0]); ++ + c = static_cast<winding_t *>(malloc(size)); + memcpy(c, w, size); + return c; +diff --git a/qbsp/util.cc b/qbsp/util.cc +index e8baf7205..16c9077f1 100644 +--- a/qbsp/util.cc ++++ b/qbsp/util.cc +@@ -53,7 +53,10 @@ AllocMem(int Type, int cElements, bool fZero) + if (cElements > MAX_POINTS_ON_WINDING) + Error("Too many points (%d) on winding (%s)", cElements, __func__); + +- cSize = offsetof(winding_t, points[cElements]) + sizeof(int); ++ //cSize = offsetof(winding_t, points[cElements]) + sizeof(int); ++ cSize = offsetof(winding_t, points[0]); ++ cSize += cElements * sizeof(static_cast<winding_t*>(nullptr)->points[0]); ++ cSize += sizeof(int); + + // Set cElements to 1 so bookkeeping works OK + cElements = 1; +diff --git a/qbsp/winding.cc b/qbsp/winding.cc +index 1af1d096c..6e286c387 100644 +--- a/qbsp/winding.cc ++++ b/qbsp/winding.cc +@@ -106,7 +106,9 @@ CopyWinding(const winding_t *w) + winding_t *c; + + c = (winding_t *)AllocMem(WINDING, w->numpoints, false); +- size = offsetof(winding_t, points[w->numpoints]); ++ //size = offsetof(winding_t, points[w->numpoints]); ++ size = offsetof(winding_t, points[0]); ++ size += w->numpoints * sizeof(w->points[0]); + memcpy(c, w, size); + + return c; +diff --git a/vis/vis.cc b/vis/vis.cc +index 9fb0ea9ea..ec43a8a5f 100644 +--- a/vis/vis.cc ++++ b/vis/vis.cc +@@ -127,7 +127,10 @@ NewWinding(int points) + if (points > MAX_WINDING) + Error("%s: %i points", __func__, points); + +- size = offsetof(winding_t, points[points]); ++ //size = offsetof(winding_t, points[points]); ++ size = offsetof(winding_t, points[0]); ++ size += points * sizeof(w->points[0]); ++ + w = static_cast<winding_t *>(malloc(size)); + memset(w, 0, size); + +@@ -178,7 +181,10 @@ CopyWinding(const winding_t * w) + int size; + winding_t *c; + +- size = offsetof(winding_t, points[w->numpoints]); ++ //size = offsetof(winding_t, points[w->numpoints]); ++ size = offsetof(winding_t, points[0]); ++ size += w->numpoints * sizeof(w->points[0]); ++ + c = static_cast<winding_t *>(malloc(size)); + memcpy(c, w, size); + return c; -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#73287] [PATCH v4 3/3] gnu: Add trenchbroom. 2024-12-08 3:48 ` [bug#73287] [PATCH v4 1/3] gnu: Add embree-2 James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 2/3] gnu: Add ericw-tools James Smith via Guix-patches via @ 2024-12-08 3:48 ` James Smith via Guix-patches via 1 sibling, 0 replies; 15+ messages in thread From: James Smith via Guix-patches via @ 2024-12-08 3:48 UTC (permalink / raw) To: 73287 Cc: James Smith, Adam Faiz, Liliana Marie Prikler, 宋文武 * gnu/packages/game-development.scm: (trenchbroom): New variable. Change-Id: I50691b1db2010cd8c2c7f04bdfd80278b9e14aed --- gnu/packages/game-development.scm | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 2aee26593c..1bc6e8fa49 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -92,12 +92,14 @@ (define-module (gnu packages game-development) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages m4) + #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) @@ -105,6 +107,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-build) @@ -123,6 +126,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) @@ -680,6 +684,95 @@ (define-public tiled ;; under BSD-2. (license license:gpl2+))) +(define-public trenchbroom + (package + (name "trenchbroom") + (version "2024.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TrenchBroom/TrenchBroom") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xysz7rkjy11wp9sshdqllmlw8qb65f1zlljpw3q22483szwzxnb")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags + #~(list "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix Makefiles" + "-DCMAKE_PREFIX_PATH=cmake/packages" + (string-append "-DFREEIMAGE_INCLUDE_PATH=" + #$freeimage "/include") + (string-append "-DFREEIMAGE_LIBRARY=" + #$freeimage "/lib/libfreeimage.so") + (string-append "-Dfreetype_INCLUDE_DIR=" + #$freetype "/include/freetype2") + (string-append "-Dfreetype_LIBRARY=" + #$freetype "/lib/libfreetype.so")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-build-system + (lambda _ + (substitute* "CMakeLists.txt" + (("set\\(CMAKE_TOOLCHAIN_FILE") + "#set(CMAKE_TOOLCHAIN_FILE")) + (substitute* "app/CMakeLists.txt" + (("/usr") #$output)))) + (add-before 'build 'set-environment-variables + (lambda _ + ;; Set home so fontconfig can write cache. + (setenv "HOME" (getenv "TEMP")) + ;; Set QT platform for offscreen rendering. + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")))) + (add-after 'install 'wrap-trenchbroom + (lambda _ + (wrap-program (string-append #$output "/bin/trenchbroom") + ;; TrenchBroom needs $XDG_DATA_DIRS set to find game + ;; configs. + `("XDG_DATA_DIRS" ":" prefix + (,(string-append #$output "/share"))) + ;; TrenchBroom also doesn't work well with Wayland backend. + '("QT_QPA_PLATFORM" = ("xcb"))))) + (add-after 'install 'install-desktop-file + (lambda _ + (make-desktop-entry-file + (string-append #$output "/share/applications/" + #$(package-name this-package) ".desktop") + #:name "TrenchBroom" + #:comment #$(package-synopsis this-package) + #:exec #$name + #:icon #$name + #:categories '("Development") + #:keywords '("quake" "level" "editor"))))) + #:tests? #f)) ; No tests. + (inputs + (list assimp + bash-minimal + catch2 + fmt + freeglut + freeimage + freetype + glew + glm + glu + libxxf86vm + mesa + miniz + qtbase-5 + qtsvg-5 + tinyxml2)) + (native-inputs (list git pandoc python p7zip)) + (home-page "https://kristianduske.com/trenchbroom/") + (synopsis "Cross-platform level editor for Quake-engine based games") + (description "TrenchBroom is a cross-platform level editor for +Quake-engine based games. It supports Quake, Quake 2, Hexen 2, as well as +other games. TrenchBroom provides many simple and advanced tools to create +complex and interesting levels.") + (license license:gpl3+))) + (define-public tsukundere (package (name "tsukundere") -- 2.46.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-12-08 3:50 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-09-16 2:10 [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via 2024-09-16 2:16 ` [bug#73287] [PATCH 1/3] gnu: Add embree-2 James Smith via Guix-patches via 2024-09-20 7:58 ` Liliana Marie Prikler 2024-09-21 0:35 ` James Smith via Guix-patches via 2024-09-16 2:16 ` [bug#73287] [PATCH 2/3] gnu: Add ericw-tools James Smith via Guix-patches via 2024-09-20 8:04 ` Liliana Marie Prikler 2024-09-16 2:16 ` [bug#73287] [PATCH 3/3] gnu: Add trenchbroom James Smith via Guix-patches via 2024-09-20 8:02 ` Liliana Marie Prikler 2024-09-21 0:38 ` [bug#73287] [PATCH v2 1/3] gnu: Add embree-2 James Smith via Guix-patches via 2024-09-21 0:38 ` [bug#73287] [PATCH v2 2/3] gnu: Add ericw-tools James Smith via Guix-patches via 2024-09-21 0:38 ` [bug#73287] [PATCH v2 3/3] gnu: Add trenchbroom James Smith via Guix-patches via [not found] ` <handler.73287.B.172645275019055.ack@debbugs.gnu.org> 2024-10-27 14:30 ` [bug#73287] [PATCH 0/3] Add ericw-tools and TrenchBroom James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 1/3] gnu: Add embree-2 James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 2/3] gnu: Add ericw-tools James Smith via Guix-patches via 2024-12-08 3:48 ` [bug#73287] [PATCH v4 3/3] gnu: Add trenchbroom James Smith via Guix-patches via
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).