Without the change `unnethack` startup crashes as:
(gdb) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007f734250c0e3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007f73424bce06 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f73424a58f5 in __GI_abort () at abort.c:79
#4 0x00007f73424a67a1 in __libc_message (fmt=fmt@entry=0x7f734261e2f8 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150
#5 0x00007f734259b1d9 in __GI___fortify_fail (msg=msg@entry=0x7f734261e2df "buffer overflow detected") at fortify_fail.c:24
#6 0x00007f734259ab94 in __GI___chk_fail () at chk_fail.c:28
#7 0x00000000005b2ac5 in strcpy (__src=0x7ffe68838b00 "Shall I pick a character's race, role, gender and alignment for you? [YNTQ] (y)",
__dest=0x7ffe68838990 "\001") at /nix/store/B0S2LKF593R3585038WS4JD3LYLF2WDX-glibc-2.38-44-dev/include/bits/string_fortified.h:79
#8 curses_break_str (str=str@entry=0x7ffe68838b00 "Shall I pick a character's race, role, gender and alignment for you? [YNTQ] (y)", width=width@entry=163,
line_num=line_num@entry=1) at ../win/curses/cursmisc.c:275
#9 0x00000000005b3f51 in curses_character_input_dialog (prompt=prompt@entry=0x7ffe68838cf0 "Shall I pick a character's race, role, gender and alignment for you?",
choices=choices@entry=0x7ffe68838d70 "YNTQ", def=def@entry=121) at ../win/curses/cursdial.c:211
#10 0x00000000005b9ca0 in curses_choose_character () at ../win/curses/cursinit.c:556
#11 0x0000000000404eb1 in main (argc=<optimized out>, argv=<optimized out>) at ./../sys/unix/unixmain.c:309
which corresponds to `gcc` warning:
../win/curses/cursmisc.c: In function 'curses_break_str':
../win/curses/cursmisc.c:275:5: warning: '__builtin___strcpy_chk' writing one too many bytes into a region of a size that depends on 'strlen' [-Wstringop-overflow=]
275 | strcpy(substr, str);
| ^
I did not find a single small upstream change that fixes it. Let's
disable `fortify3` until next release.
Closes: https://github.com/NixOS/nixpkgs/issues/292113
Without the change the build fails against `gcc-13` on `master` as
https://hydra.nixos.org/build/249001657:
In file included from /build/source/shared/qcommon/safe/gsl.h:4,
from /build/source/shared/qcommon/safe/sscanf.h:12,
from /build/source/shared/qcommon/safe/string.h:3,
from /build/source/shared/qcommon/safe/string.cpp:1:
/build/source/lib/gsl-lite/include/gsl/gsl-lite.h:479:18: error: 'reverse_iterator' in namespace 'gsl::std' does not name a template type
479 | typedef std::reverse_iterator< iterator > reverse_iterator;
| ^~~~~~~~~~~~~~~~
Without the change build fails on `master` as
https://hydra.nixos.org/build/248966234:
../src/graphics/FontReader.cpp: In function 'bool InitFontData()':
../src/graphics/FontReader.cpp:40:52: error: 'uint32_t' does not name a type
40 | auto codePoint = *reinterpret_cast<uint32_t *>(ptr) & 0xFFFFFFU;
| ^~~~~~~~
Without the change the build in `master` fails as
https://hydra.nixos.org/build/247719962:
In file included from /build/pingus-709546d/src/engine/display/font_description.hpp:23,
from /build/pingus-709546d/src/engine/display/font_description.cpp:17:
/build/pingus-709546d/src/util/pathname.hpp:79:3: error: 'uint64_t' does not name a type
79 | uint64_t mtime() const;
| ^~~~~~~~
Without the change build on `master` fails as:
In file included from /build/source/components/misc/stringops.hpp:8,
from /build/source/components/settings/settings.cpp:6:
/build/source/components/misc/utf8stream.hpp:11:13: error: 'uint32_t' does not name a type
11 | typedef uint32_t UnicodeChar;
| ^~~~~~~~
/build/source/components/misc/utf8stream.hpp:5:1: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
4 | #include <cstring>
+++ |+#include <cstdint>
This fixes `gcc-13` build failure on `master` as
https://hydra.nixos.org/build/249142729:
In file included from /build/source/extern/Pomme/src/PommeDebug.cpp:1:
/build/source/extern/Pomme/src/PommeDebug.h:21:34: error: 'uint32_t' was not declared in this scope
21 | std::string FourCCString(uint32_t t, char filler = '?');
| ^~~~~~~~
Fixes build failure against `gcc-13` as
https://hydra.nixos.org/build/247659575:
/build/source/extern/Pomme/src/PommeDebug.h:21:34: error: 'uint32_t' was not declared in this scope
21 | std::string FourCCString(uint32_t t, char filler = '?');
| ^~~~~~~~
The main change is the build fix against `gcc-13` https://hydra.nixos.org/build/247695201:
similar/main/digiobj.cpp: In function ‘void d1x::digi_sync_sounds()’:
similar/main/digiobj.cpp:625:31:
error: possibly dangling reference to a temporary [-Werror=dangling-reference]
625 | const object &objp = [&vcobjptr, &s]{
| ^~~~
While at it added the trivial unstable updater.
During this update, due to a new version of Java, the software broke.
On startup it crashed with the error: "Conflicting collector
combinations in option list". This was due to mixing the default
`-XX:+UseG1GC` and the `-XX:+UseConcMarkSweepGC -XX:+UseParNewGC` flags.
I removed the latter flags, leaving the default garbage collector
Furthermore, on succesful launch, the game wound warn about the
`-XX:PermSize=192m -XX:MaxPermSize=192m` flags, that were removed in
Java 8. Thus, those flags were also removed.
The `substituteInPlace` deprecated `--replace` argument was also
replaced by the new alternatives.
Without the change the build in `master` fails as
https://hydra.nixos.org/build/247555199:
gimx.c:195:6: error: implicit declaration of function 'getenv' [-Werror=implicit-function-declaration]
195 | if(getenv("GIMXCONF")) { snprintf(file_path, sizeof(file_path), "%s", gimx_params.config_file); }
| ^~~~~~
Release 0.G needs 3 patches to build successfully with gcc 13. These can
be removed after the next release.
[patch] disable dangling reference warning
[patch] fix build with gcc 13
[patch] cleanup autogenerated prefix.h
GCC 13 stopped including `cstdint` (and other headers) transitively
in most scenarios, causing build failures in programs that relied
on that behavior.
This change adds a missing `cstdint` include via patch to the
`crossfire-server` source, fixing such a build failure.
`bugdom` failed to build on GCC 13 because GCC stopped transitively
including `cstdint` in many scenarios and its external dependency
`Pomme` didn't properly include `cstdint` in all of its headers.
Luckily, this issue has already been fixed by upstream `Pomme`
and the fix has also been pulled into the latest `bugdom` release.
Without the change build fails against `gcc-13` on `master` as
https://hydra.nixos.org/build/246520454:
In file included from /build/source/src/actor.h:40,
from /build/source/src/g_blake/a_smartanim.cpp:36:
/build/source/src/gamemap.h:255:64: error: 'std::uint16_t' has not been declared
255 | void OperateConcession(std::uint16_t concession);
| ^~~~~~~~
crawl: delete crawl_purify.patch
Patch replaced by substituteInPlace in the prePatch stage of the default.nix.
crawl: remove default null for darwin
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
crawl: replace prePatch with postPatch
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
crawl: replace 'sha256' with 'hash'
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
crawl: remove unnecessary assert
Slade has major issues when running in native Wayland:
- The 3D view in the map editor is "spinning", making it unusable.
- The UI will freeze when trying to preview or edit an asset.
- Some crashes
https://www.shipofharkinian.com/changelog
Updated shipwright to 8.0.4
Refactor - only generate soh.otr and allow users to select rom to generate oot.otr instead of adding to nix store when run
Migrate to finalAttrs,
Update gamecontrollerdb
Install desktop file and icon
soh working directory is under $HOME/.local/share/soh
mod support - mkdir $HOME/.local/share/soh/mods and place otr mods. Tested with a few graphic mods.