Closed mdeguzis closed 7 years ago
nevermind, I'm dumb. forgot a file
Hey. Segfaults should preferably never happen. What file did you forget?
Kex.wad. I need to include it in my Debian package I made. I'll probably choose something like /usr/share/games/doom64ex for a default path to install it and note it in output after package installation.
It should quit with a normal error when kex.wad
isn't found, so there's definitely a bug somewhere.
kex.wad
should be a part of the package, yes. It includes graphics that's not in the ROM (like a mouse cursor).
Here's the list of directories that D64EX looks in: https://github.com/svkaiser/Doom64EX/blob/master/src/engine/system/i_system.c#L479
It also checks ~/.local/share/doom64ex
.
Reopening so I can remember to fix the segfault when I come home.
Trying a new build now. Also, was thinking if there could be a CMakeLists definition for the install target, so it is not hardcoded to bin. I'm very excited to play this in any capacity. I build packages for SteamOS, so hopefully others will enjoy it too.
Maybe it goes something like:
# Directory where to install bin
if(${CMAKE_INSTALL_DIR MATCHES "games")
set(INSTALL_DIR "games")
else()
set(INSTALL_DIR "bin")
endif()
and
if (NOT WIN32)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/doom64ex DESTINATION $INSTALL_DIR)
endif ()
It works fine. When you generate the doom files with the executable, they are not marked executable:
Sucessfully created /home/desktop/doom64.wad
Writing Soundfont File...
Sucessfully created /home/desktop/doomsnd.sf2
desktop@steamos:~$ ls -la /home/desktop/doom64.wad
-r-------- 1 desktop desktop 8641888 Jul 30 07:25 /home/desktop/doom64.wad
desktop@steamos:~$ ls -la /home/desktop/doomsnd.sf2
-r-------- 1 desktop desktop 5429302 Jul 30 07:25 /home/desktop/doomsnd.sf2
Once I did chmod 755
on those files, things worked fine. Id suggest changing the mode when running that wadgen tool
Ye, wadgen should set perms to 0644. (not 0755, since the files aren't supposed to be executed.)
I'm not sure what you mean about the install dir. The standard place for binaries is ${install_prefix}/bin/
. Does SteamOS use a non-standard convention?
Oh, and I have to mention that it's not a good idea to include doom64.wad
and doomsnd.sf2
into your package, since that would be a breach of copyright. I have no idea who currently owns the IP (probably ZeniMax), but it's best to avoid any C&D letters.
I don't include those, no, just kex.wad. As far as bin, I. Believe games commonly install to /usr/games on Linux distributions. Maybe some FHS standard. I'd have to check.
Binaries (doom64ex) go in $prefix/bin/
, data (kex.wad) goes in $prefix/share/
.
If it's a system package, ie. your case, then the prefix is just /usr
. Otherwise it's installed by the user through make install
, then it goes into /usr/local
.
You can also dump everything in /opt/doom64ex
and symlink to the binary (/opt/doom64ex/doom64ex
) to /usr/bin
, but that's generally frowned upon. This is what somewhat lazily ported Windows programs do.
It should be $prefix/games from all that I have learned in the past. That is why I referenced the FHS.
http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY
http://pingus.seul.org/~grumbel/tutorials/game_install/install_dirs-2.html
But I think the more pressing issue is the 400 permission on the generated wad files. That was run on a .n64 ROM in my $HOME.
Yeah, you're right. Debian and friends put game binaries in /usr/games
. Not entirely sure I understand what the point is, but it doesn't matter. I know that neither Fedora nor Arch put stuff there, and it seems to be an optional thing. It's not a problem to leave it as it is and just mv
the binaries when creating a package for Debian.
Imho, the generated data should be 0644 (default when using fopen
) and be placed in $XDG_DATA_DIR/doom64ex
. Currently it places stuff in .
because that's what the Windows version does.
I'm home now so I should have time to fix this sometime next week.
Here's a more up-to-date version of the spec, btw (2.3 was published in 2004): http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html
The bin thing is fine however you want it. Ill just make a small patch for it to be in games. I thought I tried moving it but the program expected the bin location. I'll test that theory again later tonight.
I can't reproduce the missing kex.wad
segfault. Instead, I get a
Error - W_Init: kex.wad not found
as expected.
It was because I was missing the other wad files / and or they were only 400 create mode. I'll check again soon.
Data is in /usr/share/games/doom64ex after conversion.
error:
Does this mean my ROM and/or ROM conversion to .wad was bad? The conversion method does not allow .bin ROMs either.