chaosforgeorg / doomrl

D**m, the Roguelike
https://drl.chaosforge.org/
GNU General Public License v2.0
1.07k stars 130 forks source link

Compiling on OpenBSD #10

Closed mulander closed 9 months ago

mulander commented 7 years ago

Hi,

I'm trying to build doomrl on OpenBSD/amd64 -current. I took the approach from the current archlinux -git pkgbuild by invoking lazbuild to get makewad built (I get the same result when building from lazarus ide). The current blocking issue I have is missing idea unit:

/usr/local/pobj/doomrl/fpcvalkyrie/src/vdf.pas(27,52) Fatal: (10022) Can't find unit idea used by vdf

Does anyone have any ideas where this compilation unit should come from? I don't see it in the fpcvalkyrie and doomrl code bases?

Full transcript of a build:

===>  Checking files for doomrl
`/usr/ports/distfiles/doomrl-0.9.9.7.tar.gz' is up to date.
`/usr/ports/distfiles/doomrl-linux-i386-0997.tar.gz' is up to date.
`/usr/ports/distfiles/fpcvalkyrie.tar.gz' is up to date.
>> (SHA256) doomrl-0.9.9.7.tar.gz: OK
>> (SHA256) doomrl-linux-i386-0997.tar.gz: OK
>> (SHA256) fpcvalkyrie.tar.gz: OK
===>  Extracting for doomrl
mv /usr/local/pobj/doomrl/fpcvalkyrie-bb4d7d35c4ce7d1464d1ea739738dc08e8745af4  /usr/local/pobj/doomrl/fpcvalkyrie
===>  Patching for doomrl
===>  Configuring for doomrl
===>  Building for doomrl
cd /usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2 &&  lazbuild "src/makewad.lpi"
TProject.DoLoadStateFile Statefile not found: /usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/tmp/makewad.compiled
Info: (lazarus) Execute Title="Compile Project, Target: /usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/bin/makewad"
Info: (lazarus) Working Directory="/usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/src/"
Info: (lazarus) Executable="/usr/local/bin/fpc"
Info: (lazarus) Param[0]="-B"
Info: (lazarus) Param[1]="-MObjFPC"
Info: (lazarus) Param[2]="-Scgi"
Info: (lazarus) Param[3]="-Cg"
Info: (lazarus) Param[4]="-O1"
Info: (lazarus) Param[5]="-g"
Info: (lazarus) Param[6]="-gl"
Info: (lazarus) Param[7]="-l"
Info: (lazarus) Param[8]="-vewnhibq"
Info: (lazarus) Param[9]="-Fu/usr/local/pobj/doomrl/fpcvalkyrie/src"
Info: (lazarus) Param[10]="-Fu/usr/local/pobj/doomrl/fpcvalkyrie/libs"
Info: (lazarus) Param[11]="-Fu/usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/src/"
Info: (lazarus) Param[12]="-FU/usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/tmp/"
Info: (lazarus) Param[13]="-FE/usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/bin/"
Info: (lazarus) Param[14]="makewad.pas"
Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.0.0 [2017/02/04] for x86_64
Copyright (c) 1993-2015 by Florian Klaempfl and others
(1002) Target OS: OpenBSD for x86-64
(3104) Compiling makewad.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vpkg.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vnode.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vmsg.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vutil.pas
/usr/local/pobj/doomrl/fpcvalkyrie/src/vutil.pas(793,21) Warning: (5043) Symbol "VFormat" is deprecated
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vdebug.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vlog.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vgenerics.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vnode.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vluatype.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/libs/vlualibrary.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vlibrary.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vos.pas
/usr/local/pobj/doomrl/fpcvalkyrie/src/vos.pas(12,29) Hint: (5024) Parameter "URL" not used
/usr/local/pobj/doomrl/fpcvalkyrie/src/vlibrary.pas(59,16) Hint: (4055) Conversion between ordinals and pointers is not portable
/usr/local/pobj/doomrl/fpcvalkyrie/src/vlibrary.pas(33,6) Hint: (5023) Unit "vos" not used in vlibrary
/usr/local/pobj/doomrl/fpcvalkyrie/libs/vlualibrary.pas(303,84) Hint: (3187) C arrays are passed by reference
/usr/local/pobj/doomrl/fpcvalkyrie/libs/vlualibrary.pas(374,25) Hint: (5024) Parameter "aPath" not used
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vluaext.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vvector.pas
/usr/local/pobj/doomrl/fpcvalkyrie/src/vluaext.pas(455,49) Hint: (5057) Local variable "lnumber" does not seem to be initialized
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vluasystem.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vsystem.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vlua.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vdf.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vgenerics.pas
(3104) Compiling /usr/local/pobj/doomrl/fpcvalkyrie/src/vstream.pas
/usr/local/pobj/doomrl/fpcvalkyrie/src/vgenerics.pas(28,26) Hint: (5024) Parameter "aItem" not used
/usr/local/pobj/doomrl/fpcvalkyrie/src/vgenerics.pas(178,26) Hint: (5024) Parameter "aItem" not used
/usr/local/pobj/doomrl/fpcvalkyrie/src/vgenerics.pas(266,26) Hint: (5024) Parameter "aItem" not used
/usr/local/pobj/doomrl/fpcvalkyrie/src/vdf.pas(27,52) Fatal: (10022) Can't find unit idea used by vdf
Fatal: (1018) Compilation aborted
Error: /usr/local/bin/ppcx64 returned an error exitcode
Error: (lazarus) Compile Project, Target: /usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/bin/makewad: stopped with exit code 256
ERROR: failed compiling of project /usr/local/pobj/doomrl/doomrl-0cbac80cf34d2efbe0413611e1d82dabdd3acba2/src/makewad.lpi
subtract1 commented 7 years ago

idea is the block cipher used by DoomRL to protect its wad from (casual) prying eyes. You should have it in your environment by default.

It's not a commonly used algorithm so maybe it's been removed in some versions. Unfortunately I'm not a freepascal or BSD expert so I can't help beyond that.

mulander commented 7 years ago

Thanks for the hint - you saved me a lot of time trying to figure it out. Seems that lang/fpc did came with idea but lazbuild is not picking up the libs.

I guess the best approach will be to fork and try to work out a clean CMake build system for the project. Don't think I will get far using the bundled .lpi files & custom .lua.

subtract1 commented 7 years ago

Success or failure, be sure to post your experiences. Building is a chore, we know, and unfortunately right now we don't have any available freepascal build experts. Hopefully some day that will change but until then the more knowledge we can accumulate the better.

mulander commented 7 years ago

I started off by borrowing the Pascal support for cmake from games/hedgewars. I'm unfortunately stuck on a compiler issue reported upstream. Regarding my idea unit issue I have that solved with proper -Fu passd to the compiler.

Hedgewars is worth to mimic because they also use Pascal & lua and build pretty much everywhere without any issues: https://github.com/hedgewars/hw

How far I get will depend on how much free time I can scratch out for this. Will use this issue for updates on progress.

epyon commented 9 months ago

I assume I can close this?