QW-Group/ezquake-source

3.6.2 compile error - src/common.h:40:10: fatal error: protocol.h: No such file or directory

mdinslage opened this issue · 10 comments

I am the package maintainer of ezquake for Slackware. Today I tried to update the package 3.6.2 but ran into this error

WARNING: Couldn't detect ezQuake version.
WARNING: Couldn't detect ezQuake version.
[CC] .ezquake/src/cmodel.o
In file included from src/cmodel.c:23:
src/common.h:40:10: fatal error: protocol.h: No such file or directory
   40 | #include "protocol.h"
      |          ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:634: .ezquake/src/cmodel.o] Error 1

Looking at commit cf55080 I see that the file protocol.h was removed from the source. As a test I added the file back to the source manually then tried to compile and was able to build 3.6.2 successfully. I imagine protocol.h was removed for a reason but I can't seem to get ezquake to compile without it. Any help here would be appreciated.

If you need any more information please let me know and I will provide it.

VVD commented

You are at least 3rd: QW-Group/mvdsv#120

Thank you. I was not aware this was already being discussed.

I currently have my build script just copy protocol.h back into the src directory and this is working fine. I am just wondering if this is an acceptable workaround?

Thanks.

ciscon commented

just run:
git submodule update --init --recursive --remote

Thank You both.

@mdinslage
'protocol.h' was moved to another repository because it is shared module: many of the quakeworld projects are using it. And instead of copy+pasting every change to each repo, we decided to start using submodules.
Unfortunately github' source tarball doesn't care about submodules, as pointed out by VVD in the relevant issue for mvdsv (the quakeworld server project).

So, for now, you need to manually maintain the source tarball, either by copying the missing file, or by using the git command ciscon mentioned above.

Sorry for the inconvenience.

VVD commented

Just create source tarball manually and upload it here: https://github.com/QW-Group/ezquake-source/releases
How it was before:
https://sourceforge.net/projects/ezquake/files/stable/
https://sourceforge.net/projects/mvdsv/files/MVDSV/

Waiting next maintainers with same question…

Thanks again for everyone's help. The problem is solved and 3.6.2 builds perfectly fine now on Slackware 15.0.

just pulled the latest and had to manually copy protocol.h