Commit graph

5424 commits

Author SHA1 Message Date
5b989af0e6 Merge pull request 'README.md: List pre-built 2.4.0 binaries' (#58) from xavi/speed-dreams-code:update-readme into main
Some checks failed
/ build (ubuntu-sd:jammy) (push) Has been cancelled
/ build (debian-sd:stable) (push) Has been cancelled
/ build (push) Has been cancelled
Reviewed-on: #58
2025-02-07 14:08:26 +01:00
2053d0c6fd
README.md: List pre-built 2.4.0 binaries
Some checks failed
/ build (pull_request) Has been cancelled
/ build (debian-sd:stable) (pull_request) Has been cancelled
/ build (ubuntu-sd:jammy) (pull_request) Has been cancelled
2025-02-06 22:06:26 +01:00
7072c9dbbe Merge pull request 'Fix compilation issues on Arch Linux' (#57) from miner34 into main
All checks were successful
/ build (debian-sd:stable) (push) Successful in 14m12s
/ build (ubuntu-sd:jammy) (push) Successful in 11m58s
/ build (push) Successful in 22m4s
Reviewed-on: #57
2025-02-03 14:54:03 +01:00
7ef713f357
monitorconfig.cpp: Add missing #include
All checks were successful
/ build (pull_request) Successful in 22m12s
/ build (debian-sd:stable) (pull_request) Successful in 14m14s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 12m4s
This source file references some of the symbols declared by cstdio,
such as sscanf(3) or sprintf(3).
2025-02-03 10:21:32 +01:00
Miner34
850d275621
Fix compiling under Arch Linux 2025-02-03 09:06:52 +01:00
69b1daa13b Merge pull request 'Updates to README.md' (#56) from xavi/speed-dreams-code:readme-updates into main
Some checks failed
/ build (ubuntu-sd:jammy) (push) Has been cancelled
/ build (debian-sd:stable) (push) Has been cancelled
/ build (push) Has been cancelled
Reviewed-on: #56
2025-02-02 06:41:28 +01:00
9a135cfea4
README.md: Add dependency list for Fedora
Some checks failed
/ build (ubuntu-sd:jammy) (pull_request) Has been cancelled
/ build (debian-sd:stable) (pull_request) Has been cancelled
/ build (pull_request) Has been cancelled
As provided by:

gemini://bbs.geminispace.org/u/ps/24671
2025-02-02 06:34:14 +01:00
6632b13d2d
README.md: Document freesolid submodule 2025-02-02 06:33:53 +01:00
8f164c370a Merge pull request 'Bump to version 2.4.0' (#55) from bump-version into main
All checks were successful
/ build (debian-sd:stable) (push) Successful in 13m56s
/ build (ubuntu-sd:jammy) (push) Successful in 12m42s
/ build (push) Successful in 1h24m10s
Reviewed-on: #55
2025-02-01 18:20:23 +01:00
3be620f586
Bump to version 2.4.0
Some checks failed
/ build (debian-sd:stable) (pull_request) Successful in 14m44s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 12m11s
/ build (pull_request) Has been cancelled
2025-02-01 17:48:58 +01:00
a64c7563b4 Merge pull request 'Install a 'speed-dreams.desktop' launcher for UNIX systems.' (#53) from apteryx/speed-dreams-code:add-desktop-file into main
Some checks failed
/ build (debian-sd:stable) (push) Has been cancelled
/ build (ubuntu-sd:jammy) (push) Has been cancelled
/ build (push) Has been cancelled
Reviewed-on: #53
Reviewed-by: Xavier Del Campo Romero <xavi@noreply.forge.a-lec.org>
2025-02-01 17:28:24 +01:00
dc39345af7 Merge pull request 'build: Allow setting version string at build.' (#54) from apteryx/speed-dreams-code:allow-setting-version-string into main
All checks were successful
/ build (push) Successful in 22m36s
/ build (ubuntu-sd:jammy) (push) Successful in 11m58s
/ build (debian-sd:stable) (push) Successful in 14m7s
Reviewed-on: #54
Reviewed-by: Xavier Del Campo Romero <xavi@noreply.forge.a-lec.org>
2025-02-01 14:35:10 +01:00
0912d62802 Merge pull request 'Do not assume Debian-specific CMAKE_INSTALL_RPATH' (#51) from xavi/speed-dreams-code:rm-deb-workaround into main
Some checks failed
/ build (ubuntu-sd:jammy) (push) Waiting to run
/ build (push) Waiting to run
/ build (debian-sd:stable) (push) Has been cancelled
Reviewed-on: #51
2025-02-01 14:19:24 +01:00
42f771df62 Merge pull request 'build: Fix missing FreeSOLID includes error.' (#46) from apteryx/speed-dreams-code:fix-feesolid-missing-include into main
Some checks are pending
/ build (debian-sd:stable) (push) Waiting to run
/ build (ubuntu-sd:jammy) (push) Waiting to run
/ build (push) Waiting to run
Reviewed-on: #46
Reviewed-by: Xavier Del Campo Romero <xavi@noreply.forge.a-lec.org>
2025-02-01 14:18:10 +01:00
90accd9d4c
build: Allow setting version string at build.
Some checks failed
/ build (debian-sd:stable) (pull_request) Has started running
/ build (ubuntu-sd:jammy) (pull_request) Has been cancelled
/ build (pull_request) Has been cancelled
When retrieving the source from git, the version string is not known
in advance, and git is invoked to compute it.  In some environments
such as Guix, there is no git metadata kept during the build as this
would introduce non-determinism; it is thus necessary to be able to
manually set the version (which is displayed when the game launches).

* CMakeLists.txt (VERSION_LONG): Make it a cache variable, so that
users can override it using e.g., -DVERSION:STRING=2.4.0.
2025-02-01 21:35:15 +09:00
082f3d6956
Install a 'speed-dreams.desktop' launcher for UNIX systems.
Some checks failed
/ build (ubuntu-sd:jammy) (pull_request) Has been cancelled
/ build (debian-sd:stable) (pull_request) Has been cancelled
/ build (pull_request) Has been cancelled
* src/main/CMakeLists.txt [UNIX]: Configure and install speed-dreams.desktop.
* speed-dreams.desktop.in: New file.
2025-02-01 21:02:21 +09:00
7a3fa96a54
build: Do not hard-code /usr/${SD_LIBDIR}/lib in RUNPATH.
Some checks are pending
/ build (debian-sd:stable) (pull_request) Successful in 14m3s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 12m16s
/ build (pull_request) Has started running
This doesn't apply to every system.  For those systems on which it
does apply, their tooling should be setting CMAKE_INSTALL_RPATH to
their system-global locations.

* CMakeLists.txt (CMAKE_INSTALL_RPATH): Remove /usr/${SD_LIBDIR}/lib.
2025-02-01 21:00:52 +09:00
17aa56b432
INSTALL.txt: Delete doc for OPTION_3RDPARTY_SOLID build flag.
It no longer exists.
2025-02-01 21:00:52 +09:00
c8269cf804
build: Fix a missing FreeSOLID includes error.
The <SOLID/solid.h> header would not be made available when using a
pkg-config discovered FreeSOLID library.

* cmake/FindSOLID.cmake: Add IMPORTED_TARGET argument to
'pkg_check_modules' calls.
[PKGCONFIG_FOUND && SOLID_FOUND]: Alias 'solid' to PkgConfig::SOLID.

Fixes: #45
2025-02-01 21:00:52 +09:00
93ef6ff6b3
Do not assume Debian-specific CMAKE_INSTALL_RPATH
All checks were successful
/ build (debian-sd:stable) (pull_request) Successful in 14m19s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 11m56s
/ build (pull_request) Successful in 21m43s
6df4b6bf introduced a workaround to allow Ubuntu and Debian packages to
work with default flags, since CPack does not adjust the rpath of the
package executables according to its CPACK_PACKAGING_INSTALL_PREFIX. [1]

However, this workaround caused a regression on those distributions not
using /usr as their CPACK_PACKAGING_INSTALL_PREFIX, such as Guix.

Until CPack is fixed, removing this line forces build-deb.yml to set a
non-default CMAKE_INSTALL_PREFIX that matches
CPACK_PACKAGING_INSTALL_PREFIX.

[1]: https://cmake.org/cmake/help/latest/variable/CPACK_PACKAGING_INSTALL_PREFIX.html
2025-02-01 11:55:36 +01:00
c5b0a2b38a Merge pull request '.forgejo/workflows: Do not upload artifact on missing secrets' (#52) from xavi/speed-dreams-code:fix-missing-secrets into main
All checks were successful
/ build (debian-sd:stable) (push) Successful in 14m31s
/ build (ubuntu-sd:jammy) (push) Successful in 12m26s
/ build (push) Successful in 21m52s
Reviewed-on: #52
2025-02-01 09:55:46 +01:00
e6fd93e0f2
.forgejo/workflows: Do not upload artifact on missing secrets
All checks were successful
/ build (ubuntu-sd:jammy) (pull_request) Successful in 12m8s
/ build (debian-sd:stable) (pull_request) Successful in 13m57s
/ build (pull_request) Successful in 22m43s
Forgejo does not give access to the repository secrets to forked
repositories, which means it is not possible to upload artifacts.
As a workaround, skip the complete step.
2025-02-01 08:42:07 +01:00
ebedf03e6b Merge pull request '.forgejo/workflows: Run on release tag and main' (#44) from push-tag-workflow into main
Some checks failed
/ build (push) Failing after 14m6s
/ build (ubuntu-sd:jammy) (push) Successful in 12m41s
/ build (debian-sd:stable) (push) Successful in 14m9s
Reviewed-on: #44
2025-01-31 22:13:34 +01:00
8f7f8a73d2
.forgejo/workflows.yml: Use forgejo-clone(1)
Some checks failed
/ build (ubuntu-sd:jammy) (pull_request) Has been cancelled
/ build (debian-sd:stable) (pull_request) Has been cancelled
/ build (pull_request) Successful in 23m32s
Calling git-clone(1) alone to fetch the repository is not enough under
some circumstances:

- If a pull request is created from a forked repository,
GITHUB_REPOSITORY would not point to the forked repository, but the
upstream repository. [1]

- GITHUB_HEAD_REF is undefined on push or workflow_dispatch events. [1]

In order to circumvent these issues, most people would use
actions/checkout@v4 [2], but we have some limitations that do not allow
us to take that approach:

- We want to avoid downloading OCI images from DockerHub, since we
consider it a non-free network. However, actions/checkout@v4 requires
the `node` image. [3]

- Even if we wanted to use such image, it requires over 2 GiB of disk
space (!) just to perform actions that could be easily replaced with
a simple shell script.

- And, more importantly, our disk space is currently limited.

Forgejo Actions writes a JSON file into GITHUB_EVENT_PATH, which means
the CI/CD must perform some trivial lookups using jq(1) to extract the
information.

Therefore, in order to abstract those implementation details away from
the CI/CD, forgejo-clone(1) [4] was created and bundled with the images.

[1]: https://forgejo.org/docs/latest/user/actions/#env-1
[2]: https://code.forgejo.org/actions/checkout
[3]: cbb722410c/action.yml (L107)
[4]: https://forge.a-lec.org/speed-dreams/forgejo-clone
2025-01-31 21:52:11 +01:00
ff11997d59
.forgejo/workflows: Run on push to main branch
Testers should install either released versions or those in the main
branch, since those are the only ones considered stable enough for
testing.
2025-01-31 21:52:11 +01:00
8eaf998964
.forgejo/workflows: Run on release tag 2025-01-31 21:52:11 +01:00
6a8e8d3ca0
build-3rdparty: Tag tarballs via git-describe(1) 2025-01-31 21:52:11 +01:00
89f43e028e Merge pull request 'Bump speed-dreams-data' (#50) from bump-data into main
Reviewed-on: #50
2025-01-31 11:59:04 +01:00
d3b8989dd4
Bump speed-dreams-data
Some checks failed
/ build (debian-sd:stable) (pull_request) Successful in 14m18s
/ build (ubuntu-sd:jammy) (pull_request) Failing after 24s
/ build (pull_request) Failing after 35s
The following commit improves graphic visuals

commit da5b5d8905a6ec672d19c6bcc63d77e06fdc27d6
Author: Leandro Vergara Míguez
Date:   Fri Jan 31 10:41:05 2025 +0100

    Add new background.png default file
2025-01-31 11:44:59 +01:00
299aa83652 Merge pull request 'Bump freesolid' (#48) from fix-solid-regression into main
Reviewed-on: #48
2025-01-31 10:11:46 +01:00
db4a4fe858 Merge pull request 'Fix missing drivers from driver selection menu' (#47) from fix-missing-drivers into main
Reviewed-on: #47
2025-01-31 01:05:00 +01:00
3e7b97ca30
Bump freesolid
All checks were successful
/ build (debian-sd:stable) (pull_request) Successful in 30m36s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 25m52s
/ build (pull_request) Successful in 22m13s
This commit fixes a regression introduced by the cvs2git conversion and
ultimately caused by an untracked release of FreeSOLID.

commit 208c6e20311d6669ab0c74ace71a1fa34afb2e0e
Author: Xavier Del Campo Romero <xavi.dcr@tutanota.com>
Date:   Fri Jan 31 00:22:17 2025 +0100

    Synchronise with 2.1.2 release
2025-01-31 00:27:42 +01:00
2f72b8b9e8
src/drivers: Ensure existing dir and params file
Some checks failed
/ build (debian-sd:stable) (pull_request) Successful in 33m16s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 26m24s
/ build (pull_request) Failing after 8s
Otherwise, if no drivers are generated by GfDrivers::ensure_min(), the
driver type (e.g.: dandroid) would not be available from the driver
selection menu because its parameter file (e.g.: dandroid.xml) would not
be available.
2025-01-30 23:34:06 +01:00
c650fa8faa
Bump speed-dreams-data
The following commit provides a fix:

commit 06aadb301f081ce837a11a6bdcc89d77fa258c5d
Author: Xavier Del Campo Romero <xavi.dcr@tutanota.com>
Date:   Thu Jan 30 23:00:35 2025 +0100

    simplix: Remove obsolete simplix.xml

    This was a leftover from the dynamic driver generation feature. Now that
    drivers are generated from GfLocalDir(), simplix.xml is not consumed
    from GfDataDir() any more.
2025-01-30 23:33:15 +01:00
7d372c7cad Merge pull request 'CMakeLists.txt: Copy solid dlls to bin directory' (#43) from fix-solid-win into main
Reviewed-on: #43
2025-01-30 01:10:18 +01:00
5652175db7
CMakeLists.txt: Copy solid dlls to bin directory
All checks were successful
/ build (pull_request) Successful in 22m58s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 23m44s
/ build (debian-sd:stable) (pull_request) Successful in 26m50s
As opposed to POSIX, Windows lacks a rpath mechanism, which means that
shared libraries (aka dlls) must reside next to the executable. [1]
Since freesolid is no longer built by the 3rdParty build system (i.e.,
it is now a submodule), CMake must copy its libraries to the bin/
directory so simuv5 and friends can find them.

Note that no modifications were required for the install step, since
libraries would be already installed by the submodule.

Fixes #42

[1]: https://stackoverflow.com/questions/3272383/linking-with-r-and-rpath-switches-on-windows
2025-01-30 00:19:16 +01:00
5cf9c09950 Merge pull request 'ssggraph: Remove car deformations' (#40) from rm-deformations into main
Reviewed-on: #40
2025-01-28 17:25:40 +01:00
1612c46094 Merge pull request 'Fix championship and single event modes' (#41) from fix-no-display into main
Reviewed-on: #41
2025-01-28 17:25:17 +01:00
a51b2bc5f3
Fix championship and single event modes
All checks were successful
/ build (debian-sd:stable) (pull_request) Successful in 14m3s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 11m57s
/ build (pull_request) Successful in 21m32s
The qualification mode relies on running the race loop as fast as
possible, in order to reproduce the race results in a much shorter time.

However, the maximum frame rate limitations introduced by the commit
below caused a regression to the qualification mode, because now the
game would GfSleep most of the time and only run the race loop once
every frame (e.g.: every 1/60 seconds):

commit 9914e9d24c
Author: xavi92 <xavi92@30fe4595-0a0c-4342-8851-515496e4dcbd>
Date:   Mon Jul 15 02:52:31 2024 +0000

    Implement maximum frame rate limit

Therefore, since it is required to run the physics loop as many times as
possible, the recompute callback variant with `unsigned ms` is used so
that it is run in a loop until the time available to the callback
expires.

Fixes #37 [1].

[1]: #37
2025-01-28 07:16:27 +01:00
32ada09c18
ssggraph: Remove car deformations
All checks were successful
/ build (debian-sd:stable) (pull_request) Successful in 14m18s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 12m5s
/ build (pull_request) Successful in 21m51s
The deformations looked too unrealistic to be acceptable, so it is
better to remove them.
2025-01-28 07:13:04 +01:00
0a8ece452f Merge pull request 'Bump speed-dreams-data submodule' (#39) from bump-data into main
Reviewed-on: #39
2025-01-27 22:27:02 +01:00
b1da069d61 Merge pull request 'Remove dangling references to simuv2 and simuv2.1' (#38) from simu-leftovers into main
Reviewed-on: #38
2025-01-27 22:26:09 +01:00
8f027615ca
Bump speed-dreams-data submodule
Some checks failed
/ build (debian-sd:stable) (pull_request) Failing after 26s
/ build (ubuntu-sd:jammy) (pull_request) Failing after 23s
/ build (pull_request) Failing after 38s
Because of this commit:

commit aa2d7c17c135a6abb00dff9bde7bc896bd573e12
Author: Xavier Del Campo Romero <xavi.dcr@tutanota.com>
Date:   Mon Jan 27 22:09:22 2025 +0100

    menu: Remove OnlineButton and NetworkButton

    Networked multiplayer is considered too immature for production, so this
    commit suggests to remove it from the menus in order to avoid confusion
    and frustration from players, at least until a proper implementation is
    in place.
2025-01-27 22:22:49 +01:00
68f0a38e57
Remove dangling references to simuv2 and simuv2.1
Some checks failed
/ build (debian-sd:stable) (pull_request) Successful in 14m33s
/ build (ubuntu-sd:jammy) (pull_request) Failing after 27s
/ build (pull_request) Failing after 37s
These physics engines were removed by previous commits:

commit 999eeed320
Author: Xavier Del Campo Romero <xavi.dcr@tutanota.com>
Date:   Sat Jan 25 01:37:16 2025 +0100

    Remove simuv2

commit 022b19a141
Author: Xavier Del Campo Romero <xavi.dcr@tutanota.com>
Date:   Sun Jan 26 23:33:49 2025 +0100

    Remove simuv2.1, add FreeSOLID as a submodule

Also, make simuv5 the default value.
2025-01-27 21:56:23 +01:00
1f36ad4423 Merge pull request 'Remove obsolete simu versions' (#34) from remove-simu into main
Reviewed-on: #34
2025-01-27 18:09:41 +01:00
022b19a141
Remove simuv2.1, add FreeSOLID as a submodule
All checks were successful
/ build (debian-sd:stable) (pull_request) Successful in 14m16s
/ build (ubuntu-sd:jammy) (pull_request) Successful in 12m21s
/ build (pull_request) Successful in 22m12s
As opposed to simu >= 3.0, simu 2.1 did not consider air or wheel
temperatures. This would have several consequences:

- Some drivers such as shadow rely on these parameters to calculate tire
grip. If temperature air is zero (i.e., 0K), no grip is assumed
and therefore speeds are also assigned to zero, making the driver not to
move at all.

- Invalid temperature values (i.e., 0K) would be shown on the UI, both
in ssg and OSG.

Unfortunately, simuv2.1 bundled the SOLID-2.0 library (aka FreeSOLID)
because the library is not available from most GNU/Linux distributions
yet.

In order to solve this situation, the FreeSOLID library was migrated
from CVS to Git [1] so it could be used as a submodule, and therefore
let the build system decide whether to optionally use the in-tree copy.
That said, packaging/3rdParty-devel has dropped FreeSOLID in favour of
the submodule, since it must always be built from source anyway.

[1]: https://forge.a-lec.org/speed-dreams/freesolid
2025-01-27 00:46:06 +01:00
999eeed320
Remove simuv2
It is considered obsolete by the build system and is not even built any
more.
2025-01-26 21:11:19 +01:00
73cb26ae7d Merge pull request 'Fixes to shadow and usr' (#33) from driver-fixes into main
Reviewed-on: #33
2025-01-26 18:03:35 +01:00
1253fff0d3 Merge pull request 'Fix 3rdparty workflow' (#36) from test-3rdparty into main
Reviewed-on: #36
2025-01-26 17:47:37 +01:00
d4a9605286
build-3rdparty.yml: Fix repo branch name
Some checks failed
/ build (pull_request) Has been cancelled
/ build (ubuntu-sd:jammy) (pull_request) Has been cancelled
/ build (debian-sd:stable) (pull_request) Has been cancelled
${{ env.GITHUB_HEAD_REF }} is not available to workflow_dispatch [1],
so the branch name must be manually extracted from
${{ env.GITHUB_EVENT_PATH }}.

[1]: https://forgejo.org/docs/latest/user/actions/#env-1
2025-01-26 17:45:58 +01:00