vegastrike / Vega-Strike-Engine-Source

Vega Strike Engine
Other
260 stars 44 forks source link

eval.h is deprecated #777

Open bean86k20 opened 1 year ago

bean86k20 commented 1 year ago

Compiling on Fedora 37, I received fatal errors due to eval.h not being found. As of Python 3.11, eval.h has been merged into python and is no longer needed. After commenting the include lines out, I was able to build successfully.

BenjamenMeyer commented 1 year ago

@bean86k20 thanks for the report. We are aware of it and it's getting fixed our master branch (the upcoming 0.9.x series) by one of the currently open PRs. I'm not sure if we've fixed it for our existing 0.8.x series.

Which version are you using? Master? 0.8.x? Thanks!

bean86k20 commented 1 year ago

I'm using 0.8.1-beta2

edit: Master branch compiles ok

BenjamenMeyer commented 1 year ago

Please verify with the 0.8.x branch. Specific releases won't get updated. Just need to know if we need to cut a newer release. Thanks!

bean86k20 commented 1 year ago

0.8.x still has the problem with eval.h. master branch has been fixed, but has an issue with the comms text missing letters

ondrejkajinek commented 1 year ago

According to grep there are only four places with eval.h on 0.8.x branch, all of them are guarded with #if PY_VERSION_HEX < 0x030B0000.

stephengtuggy commented 1 year ago

Yes, @ondrejkajinek , I believe your MR #774 fixed the eval.h issue for 0.8.x. @bean86k20 would you mind retesting, and see if it's fixed?

bean86k20 commented 1 year ago

That seems to have fixed the eval.h issue, however I got Error 2 gmake[2]: Leaving directory '/home/bean/Downloads/Vega-Strike-Engine-Source-0.8.x/build' gmake[1]: *** [CMakeFiles/Makefile2:214: CMakeFiles/vegastrike-engine.dir/all] Error 2 gmake[1]: Leaving directory '/home/bean/Downloads/Vega-Strike-Engine-Source-0.8.x/build' gmake: *** [Makefile:156: all] Error 2

edit: The error seems to be in alloc_traits.h: /usr/include/c++/13/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits<A>::rebind_alloc<A::value_type> must be A 70 | _Tp>::value, | ^~~~~

stephengtuggy commented 1 year ago

@bean86k20 Hmm. That's odd. Probably a separate issue though.

Can you post your complete build log? (with identifying information removed as needed)

FabioLolix commented 1 year ago

Hello, Vegastrike Engine v0.8.0 no longer build under Arch Linux, I have removed the eval.h include with a patch, and then I got the same error as https://github.com/vegastrike/Vega-Strike-Engine-Source/issues/777#issuecomment-1581160351, below the build log of Arch devtools

GCC v13.2.1

vegastrike-engine-0.8.0-1-x86_64-build.log

If you need more info let me know

rubensalinas commented 1 year ago

I can confirm that v0.8.0 doesn't build on Archlinux because cmake it's not setting the pybind11 include directory correctly. Maybe it is because the include dir is set on the "PYTHON_INCLUDE_DIR" variable but its trying to include the "PYTHON_INCLUDE_DIRS" variable instead? I am not sure as I am not familiar with cmake. I think this has been solved by now

BenjamenMeyer commented 1 year ago

@evertvorster did we resolve this?

I might have to build an Arch Docker Container to try this out on. I thought we had updated 0.8.x as well since we're gating the use of eval.h based on the Python version. Fix in master already too. If there's a better fix than what we're doing then we're all ears.

evertvorster commented 1 year ago

Hi there, Benjamin.

The last time I built 0.8.x was quite a long time ago. Being a rolling release distro, things go out of date pretty quickly on Arch. I'll have a go at building 0.8.x now, and see if it builds.

Kind regards, Evert Vorster

Awesome Chapters Tours http://www.awesomechapters.com Tel: +264 (0) 811477690

On Tue, 10 Oct 2023 at 04:36, Benjamen Meyer @.***> wrote:

@evertvorster https://github.com/evertvorster did we resolve this?

I might have to build an Arch Docker Container to try this out on. I thought we had updated 0.8.x as well since we're gating the use of eval.h based on the Python version. Fix in master already too. If there's a better fix than what we're doing then we're all ears.

— Reply to this email directly, view it on GitHub https://github.com/vegastrike/Vega-Strike-Engine-Source/issues/777#issuecomment-1754302614, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC34XVJBBSZDAYWHUPJIZLDX6S7D7AVCNFSM6AAAAAAXI4QCKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJUGMYDENRRGQ . You are receiving this because you were mentioned.Message ID: @.***>

FabioLolix commented 1 year ago

This specific error is solved in master and 0.8.x branches

on Arch v0.8.0 and 0.8.x branch are broken, master build with gcc 12; while is broken by gcc13 (error reported by @bean86k20 there are 3 of them, edit reported here), enabling ffmpeg or ogre

All 3 are broken if using CMAKE_BUILD_TYPE=None


@rubensalinas Didn't find reference to pybind11, do you have a specific error?

evertvorster commented 1 year ago

Hi there!

vegastrike-engine-git builds fine on current Arch, but that is following master branch.

vegastrike-engine-release-git does not build, and that is the 0.8.x branch.

It does not get to pybind11, I think it's failing on gcc13.

==> Starting build()...
-- CMAKE_SOURCE_DIR =
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine

-- GIT_ROOT_DIR =
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/..

-- The CXX compiler identification is GNU 13.2.1
-- The C compiler identification is GNU 13.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/ccache/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/ccache/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
== Vega Strike Version: 0.8.1-057726978
-- Looking for pow
-- Looking for pow - not found
-- Looking for pow
-- Looking for pow - found
** OpenGL_GL_PREFERENCE:
!! Enabling Position Independent Executables/Shared Libraries (NOT
RECOMMENDED on Ubuntu/Mint) !!
Found Linux Distribution Release Name: n/a
++ Python release(s) searched for : 3.11;3.10;3.9;3.8;3.7;3.6;3.5;3.4
CMake Warning (dev) at CMakeLists.txt:447 (FIND_PACKAGE):
 Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
 are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
 the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonLibs: /usr/lib/libpython3.11.so (found version "3.11.5")
++ Python library : /usr/lib/libpython3.11.so (3.11.5)
++ Python include dir : /usr/include/python3.11
++ Using System Boost
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found
version "1.83.0")
++ Found System Boost version : 1.83.0
-- Boost_1_67_Or_Later_Result: TRUE
-- USE_PYTHON_3: ON
++ Looking for System Boost::python
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found
version "1.83.0") found components: python311 log log_setup date_time
system filesystem thread chrono atomic program_options
++ Found System Boost::python
-- Found OpenGL: /usr/lib/libOpenGL.so
++ OpenGL found
-- Found GLUT: /usr/lib/libglut.so
++ GLUT found : /usr/lib/libglut.so;/usr/lib/libXmu.so;/usr/lib/libXi.so
-- Found OpenAL: /usr/lib/libopenal.so
++ Found OpenAL
-- Found Threads: TRUE
-- Found SDL: /usr/lib/libSDLmain.a;/usr/lib/libSDL.so (found version
"1.2.68")
++ SDL Found
-- Found Vorbis:
/usr/lib/libvorbis.so;/usr/lib/libvorbisfile.so;/usr/lib/libogg.so
-- Found JPEG: /usr/lib/libjpeg.so (found version "80")
-- Found ZLIB: /usr/lib/libz.so (found version "1.3")
-- Found PNG: /usr/lib/libpng.so (found version "1.6.40")
-- Found EXPAT: /usr/lib/libexpat.so (found version "2.5.0")
-- FFMPEG disabled
-- Ogre disabled
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for float.h
-- Looking for float.h - found
-- Looking for wctype.h
-- Looking for wctype.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for zlib.h
-- Looking for zlib.h - found
-- Looking for math.h
-- Looking for math.h - found
-- Looking for C++ include tr1/unordered_map
-- Looking for C++ include tr1/unordered_map - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for isnan
-- Looking for isnan - found
-- Looking for finite
-- Looking for finite - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for lstat
-- Looking for lstat - found
-- Looking for GLX_ARB_get_proc_address
-- Looking for GLX_ARB_get_proc_address - found
++ Using System Boost
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found
version "1.83.0")
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found
version "1.83.0") found components: program_options
CMake Warning (dev) at
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
 The package name passed to `find_package_handle_standard_args` (GTK3_GTK)
 does not match the name of the calling package (GTK3).  This can lead to
 problems in calling code that expects `find_package` result variables
 (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
 FindGTK3.cmake:546 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
 setup/CMakeLists.txt:70 (FIND_PACKAGE)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found GTK3_GTK: /usr/lib/libgtk-3.so
-- Compiling vega-meshtool without OgreMesh support: Ogre not found
-- Default build type is RelWithDebInfo, no cpu opts enabled.
++ Building with BUILD_OPT: -O2
++ Building with CMAKE_CXX_FLAGS: -march=native -O2 -pipe -fno-plt
Linking with : vegastrike-engine_com;vegastrike-OPcollide;/usr/lib/
libpython3.11.so
;Boost::python;Boost::log;Boost::log_setup;Boost::date_time;Boost::system;Boost::filesystem;Boost::thread;Boost::chrono;Boost::
atomic;Boost::program_options;/usr/lib/libglut.so;/usr/lib/libXmu.so;/usr/lib/libXi.so;/usr/lib/libopenal.so;/usr/lib/libSDLmain.a;/usr/lib/libSDL.so;/usr/lib/libvorbis.so;/usr/lib/libvorbisfile.so;/usr/lib/lib
ogg.so;/usr/lib/libjpeg.so;/usr/lib/libpng.so;/usr/lib/libz.so;/usr/lib/libz.so;/usr/lib/libexpat.so;/usr/lib/libutil.a

including :
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src;/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd;/mnt/int/sys
tem/aur/vegastrike-engine-release-git/src/build;/usr/include/harfbuzz;/usr/include/python3.11;/usr/include;/usr/include/python3.11;/usr/include;/usr/include;/usr/include;/usr/include/AL;/usr/include/SDL;/usr/in
clude/vorbis;/usr/include/ogg;/usr/include;/usr/include;/usr/include
Newer CMake version, using preferred method
-- Configuring Packaging for Linux
-- Configuring done (2.5s)
-- Generating done (0.0s)
-- Build files have been written to:
/mnt/int/system/aur/vegastrike-engine-release-git/src/build
[  1%] Building CXX object
objconv/CMakeFiles/vs-buildenv-replace.dir/replace.cpp.o
[  1%] Building CXX object
CMakeFiles/vegastrike-OPcollide.dir/src/cmd/collide2/Ice/IceAABB.cpp.o
[  2%] Building CXX object
setup/CMakeFiles/vegasettings.dir/src/c/setup.cpp.o
[  2%] Building CXX object
objconv/CMakeFiles/vs-buildenv-trisort.dir/trisort.cpp.o
[  2%] Building CXX object
CMakeFiles/vegastrike-OPcollide.dir/src/cmd/collide2/Ice/IceContainer.cpp.o
[  2%] Building CXX object
objconv/CMakeFiles/vs-buildenv-asteroidgen.dir/asteroidgen.cpp.o
[  2%] Building CXX object
objconv/CMakeFiles/vega-meshtool.dir/mesher/Converter.cpp.o
[  2%] Building CXX object
CMakeFiles/vegastrike-engine_com.dir/src/cmd/ai/aggressive.cpp.o
[  2%] Building CXX object
CMakeFiles/vegastrike-OPcollide.dir/src/cmd/collide2/Ice/IceIndexedTriangle.cpp.o
[  3%] Building CXX object
setup/CMakeFiles/vegasettings.dir/src/include/central.cpp.o
[  2%] Building CXX object
CMakeFiles/vegastrike-OPcollide.dir/src/cmd/collide2/Ice/IceHPoint.cpp.o
In file included from
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/Opcode.h:74,

                from
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/Stdafx.h:46,

                from
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/Ice/Stdafx.h:1,

                from
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/Ice/IceContainer.cpp:25:

/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/OPC_Collider.h:173:65:
warning: ‘virtual void Opcode::Collider::InitQuery()’ was hidden
[-Woverloaded-virt
ual=]
 173 |                 virtual inline_         void
                   InitQuery()             { mFlags &=
~OPC_TEMPORAL_CONTACT;      }
     |
                                                                ^~~~~~~~~
In file included from
/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/Opcode.h:76:

/mnt/int/system/aur/vegastrike-engine-release-git/src/Vega-Strike-Engine-Source/engine/src/cmd/collide2/OPC_TreeCollider.h:230:81:
note:   by ‘void Opcode::AABBTreeCollider::InitQuery(const
Opcode::Matrix4x4*,
const Opcode::Matrix4x4*)’

It then rapidly goes downhill from there. I'm building with j=16, so there are a few threads valiantly still trying to build later modules, but that's the first error right there.

I honestly don't think anyone is running 0.8.x on Arch, and this package should probably go up for deletion.

Kind regards, -Evert-

On Tue, 10 Oct 2023 at 20:16, Fabio Loli @.***> wrote:

This specific error is solved in master and 0.8.x branches

on Arch v0.8.0 and 0.8.x branch are broken, master build with gcc 12; while is broken by gcc13 (error reported by @bean86k20 https://github.com/bean86k20 there are 3 of them), enabling ffmpeg or ogre

All 3 are broken if using CMAKE_BUILD_TYPE=None

@rubensalinas https://github.com/rubensalinas Didn't find reference to pybind11, do you have a specific error?

— Reply to this email directly, view it on GitHub https://github.com/vegastrike/Vega-Strike-Engine-Source/issues/777#issuecomment-1756079485, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC34XVOQ7AYUN5JSNHJS3XLX6WNHBAVCNFSM6AAAAAAXI4QCKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJWGA3TSNBYGU . You are receiving this because you were mentioned.Message ID: @.***>

stephengtuggy commented 1 year ago

This specific error is solved in master and 0.8.x branches

on Arch v0.8.0 and 0.8.x branch are broken, master build with gcc 12; while is broken by gcc13 (error reported by @bean86k20 there are 3 of them, edit reported here), enabling ffmpeg or ogre

All 3 are broken if using CMAKE_BUILD_TYPE=None

@rubensalinas Didn't find reference to pybind11, do you have a specific error?

ffmpeg and Ogre are known to not be working. They haven't worked in years. Setting CMAKE_BUILD_TYPE to None is also unsupported. You have to pick one of the build types, like Debug or Release.

Taking these things into consideration, is the 0.8.x build still broken on Arch with gcc 13? If so, is there a way to continue to use gcc 12 for the time being?

FabioLolix commented 1 year ago

is there a way to continue to use gcc 12 for the time being?

Yes, it packaged and needed by some other packages https://archlinux.org/packages/extra/x86_64/gcc12/ when it will no longer be used it will dropped to the AUR

is the 0.8.x build still broken on Arch with gcc 13?

Yes, there are some of the same error

/home/fabio/Dev/Github/PKGBUILD-AUR_fix/v/vegastrike-engine-0.8.x-git_gcc13/src/Vega-Strike-Engine-Source/engine/src/gfx/particle.h:53:54:   required from here
/usr/include/c++/13.2.1/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits<A>::rebind_alloc<A::value_type> must be A
   70 |                         _Tp>::value,
      |                               ^~~~~
/usr/include/c++/13.2.1/bits/alloc_traits.h:70:31: note: 'std::integral_constant<bool, false>::value' evaluates to false

I got v0.8.0 to build adding a little patch and using gcc12 1 2

And the 0.8.0 branch by passing -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=format-security" which avoided

/home/fabio/Dev/Github/PKGBUILD-AUR_fix/v/vegastrike-engine-0.8.x-git/src/Vega-Strike-Engine-Source/engine/src/main.cpp: In function 'std::string ParseCommandLine(int, char**)':
/home/fabio/Dev/Github/PKGBUILD-AUR_fix/v/vegastrike-engine-0.8.x-git/src/Vega-Strike-Engine-Source/engine/src/main.cpp:834:20: error: format not a string literal and no format arguments [-Werror=format-security]
  834 |             sprintf(CONFIGFILE, config_file.c_str());
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: some warnings being treated as errors
evertvorster commented 1 year ago

@FabioLolix

I have disowned this package in AUR, you are free to pick up maintainership of it.

BenjamenMeyer commented 1 year ago

@FabioLolix please feel free to open PRs here. The 0.8.x branch is our current release and accepting PRs for bug fixes like this; and then there is also the AUR which can also fix things more directly for Arch itself.

Per 0.8.x, it's a maintenance branch. Major work is being done on master for the next major release (0.9.0). @evertvorster you may need to update master AUR for SDL2 which was recently merged in.

FabioLolix commented 1 year ago

@evertvorster do you plan to update the vegastrike-engine-git pkgbuild otherwise I could do it?

then there is also the AUR which can also fix things more directly for Arch itself.

Yes, that what I'm working for

The 0.8.x branch is our current release and accepting PRs for bug fixes like this

The error main.cpp have already been fixed in master but I'm not sure how to finds its patch

BenjamenMeyer commented 1 year ago

The 0.8.x branch is our current release and accepting PRs for bug fixes like this

The error main.cpp have already been fixed in master but I'm not sure how to finds its patch

It should be fixed in 0.8.x too. Does the AUR need to update a git hash it's linked to?

https://github.com/vegastrike/Vega-Strike-Engine-Source/commit/c13def7b898094b01b305ef5293db3e367a99ecf - and few others around that time.

FabioLolix commented 1 year ago

It should be fixed in 0.8.x too.

On 0.8.x is not fixed, this is happening only 0.8.x branch,

Does the AUR need to update a git hash it's linked to?

-git pkgbuild pull the latest commit at build time