I am uploading a LowNMU with the posted patch in order to fix this.
The debdiff is included and the changes are in git.
diff -Nru seriousproton-2020.01.15+dfsg/debian/changelog
seriousproton-2020.01.15+dfsg/debian/changelog
--- seriousproton-2020.01.15+dfsg/debian/changelog 2020-01-30
19:26:09.000000000 +0000
+++ seriousproton-2020.01.15+dfsg/debian/changelog 2024-04-14
17:34:45.000000000 +0000
@@ -1,3 +1,16 @@
+seriousproton (2020.01.15+dfsg-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload
+ * Remove non-ASCII characters from Description
+
+ [ Nicolas Braud-Santoni ]
+ * libseriousproton-dev: Add missing dependencies
+
+ [ David Paul ]
+ * Fix FTBFS with libbox2d-dev >= 2.4.0 (Closes: #997264)
+
+ -- Bastian Germann <b...@debian.org> Sun, 14 Apr 2024 17:34:45 +0000
+
seriousproton (2020.01.15+dfsg-1) unstable; urgency=medium
* New upstream release
diff -Nru seriousproton-2020.01.15+dfsg/debian/control
seriousproton-2020.01.15+dfsg/debian/control
--- seriousproton-2020.01.15+dfsg/debian/control 2020-01-30
19:26:09.000000000 +0000
+++ seriousproton-2020.01.15+dfsg/debian/control 2024-04-14
17:26:00.000000000 +0000
@@ -14,11 +14,12 @@
Section: libdevel
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
- libseriousproton0 (= ${binary:Version})
+ libseriousproton0 (= ${binary:Version}),
+ libbox2d-dev, liblua5.3-dev, libsfml-dev
Description: C++ game engine -- development files
SeriousProton is implemented atop SFML, from scratch.
.
- “There will be dragons and undocumented stuff in here.”
+ "There will be dragons and undocumented stuff in here."
.
This package contains the development files (CMake, headers, ...)
@@ -28,6 +29,6 @@
Description: C++ game engine -- shared library
SeriousProton is implemented atop SFML, from scratch.
.
- “There will be dragons and undocumented stuff in here.”
+ "There will be dragons and undocumented stuff in here."
.
This package contains the shared library.
diff -Nru
seriousproton-2020.01.15+dfsg/debian/patches/0006-Fix-FTBFS-with-box2d-2.4.0-or-later.patch
seriousproton-2020.01.15+dfsg/debian/patches/0006-Fix-FTBFS-with-box2d-2.4.0-or-later.patch
---
seriousproton-2020.01.15+dfsg/debian/patches/0006-Fix-FTBFS-with-box2d-2.4.0-or-later.patch
1970-01-01 00:00:00.000000000 +0000
+++
seriousproton-2020.01.15+dfsg/debian/patches/0006-Fix-FTBFS-with-box2d-2.4.0-or-later.patch
2024-04-14 17:20:56.000000000 +0000
@@ -0,0 +1,73 @@
+Description: Fix FTBFS with Box2D >= 2.4.0
+ Adapted from a pull request in the upstream repository.
+Origin: https://github.com/daid/SeriousProton/pull/67
+Bug-Debian: https://bugs.debian.org/997264
+Last-Update: 2022-06-08
+---
+
+Index: seriousproton-2020.01.15+dfsg/src/collisionable.h
+===================================================================
+--- seriousproton-2020.01.15+dfsg.orig/src/collisionable.h
++++ seriousproton-2020.01.15+dfsg/src/collisionable.h
+@@ -2,7 +2,7 @@
+ #define COLLISIONABLE_H
+
+ #include "P.h"
+-#include "Box2D/Box2D.h"
++#include "box2d/box2d.h"
+
+ class Collisionable;
+ class CollisionManager
+Index: seriousproton-2020.01.15+dfsg/src/collisionable.cpp
+===================================================================
+--- seriousproton-2020.01.15+dfsg.orig/src/collisionable.cpp
++++ seriousproton-2020.01.15+dfsg/src/collisionable.cpp
+@@ -30,7 +30,7 @@ public:
+ /// @return false to terminate the query.
+ virtual bool ReportFixture(b2Fixture* fixture)
+ {
+- P<Collisionable> ptr =
(Collisionable*)fixture->GetBody()->GetUserData();
++ P<Collisionable> ptr =
reinterpret_cast<Collisionable*>(fixture->GetBody()->GetUserData().pointer);
+ if (ptr)
+ list.push_back(ptr);
+ return true;
+@@ -75,8 +75,8 @@ void CollisionManager::handleCollisions(
+ {
+ if (contact->IsTouching() && contact->IsEnabled())
+ {
+- Collisionable* A =
(Collisionable*)contact->GetFixtureA()->GetBody()->GetUserData();
+- Collisionable* B =
(Collisionable*)contact->GetFixtureB()->GetBody()->GetUserData();
++ Collisionable* A =
reinterpret_cast<Collisionable*>(contact->GetFixtureA()->GetBody()->GetUserData().pointer);
++ Collisionable* B =
reinterpret_cast<Collisionable*>(contact->GetFixtureB()->GetBody()->GetUserData().pointer);
+ if (!A->isDestroyed() && !B->isDestroyed())
+ {
+ float collision_force = 0.0f;
+@@ -220,7 +220,7 @@ void Collisionable::setCollisionChain(co
+ }
+ else
+ {
+- shape.CreateChain(b_points.data(), b_points.size());
++ shape.CreateChain(b_points.data(), b_points.size(), b2Vec2_zero,
b2Vec2_zero);
+ }
+
+ createBody(&shape);
+@@ -271,7 +271,7 @@ void Collisionable::createBody(b2Shape*
+ }else{
+ b2BodyDef bodyDef;
+ bodyDef.type = static_physics ? b2_kinematicBody : b2_dynamicBody;
+- bodyDef.userData = this;
++ bodyDef.userData.pointer = reinterpret_cast<uintptr_t>(this);
+ bodyDef.allowSleep = false;
+ body = CollisionManager::world->CreateBody(&bodyDef);
+ }
+@@ -377,8 +377,8 @@ std::vector<sf::Vector2f> Collisionable:
+ case b2Shape::e_polygon:
+ {
+ b2PolygonShape* cs = static_cast<b2PolygonShape*>(s);
+- for(int n=0; n<cs->GetVertexCount(); n++)
+- ret.push_back(b2v(cs->GetVertex(n)));
++ for(int n=0; n<cs->m_count; n++)
++ ret.push_back(b2v(cs->m_vertices[n]));
+ }
+ break;
+ default:
diff -Nru seriousproton-2020.01.15+dfsg/debian/patches/series
seriousproton-2020.01.15+dfsg/debian/patches/series
--- seriousproton-2020.01.15+dfsg/debian/patches/series 2020-01-30
19:26:09.000000000 +0000
+++ seriousproton-2020.01.15+dfsg/debian/patches/series 2024-04-14
17:20:56.000000000 +0000
@@ -3,3 +3,4 @@
0003-src-collisionable-Remove-void-assignment-to-bool.patch
0004-Build-a-shared-library.patch
0005-CMake-Set-VERSION-and-SOVERSION.patch
+0006-Fix-FTBFS-with-box2d-2.4.0-or-later.patch