In 77bb4c16 the code was locked to an older commit due to incompatibilities with Raspberry Pi OS Buster, but this version doesn't build with newer GCC.
Switch to using the latest code by default but lock to older versions for Buster and GCC 10 and lower
Tested to build correctly on Raspberry Pi OS Buster, Bullseye and Bookworm.
gcc -dumpversion on GCC >= 7 seems to provide the major version but the documentation suggests this depends on how it's configured.
We only need to test the major version so using compareVersions isn't required.
https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html states:
>Print the compiler version (for example, 3.0, 6.3.0 or 7)—and don’t do anything else. This is the compiler
>version used in filesystem paths and specs. Depending on how the compiler has been configured it can be
>just a single number (major version), two numbers separated by a dot (major and minor version) or three
>numbers separated by dots (major, minor and patchlevel version).
Ensure __gcc_version only contains the major version just in case in system.sh
The commit after has a change to use pkg-config for locating physfs and it seems to fail on Debian/Raspbian Buster.
Will debug properly and feed upstream, but for now am rolling back to the commit before.
Unfortunately the dxx-rebirth repository has no recent releases at all, as it would be preferable to lock
to the last stable release, but the last tag is from 2018 and there are no version branches etc.
Also de-duplicate descent1/descent2 paths using dest_d1/dest_d2 vars, making sure they exist
in case the function is called outside of a full install. Also update urls to the new https location.
* latest code requires gcc 7 or newer, so use an older revision if gcc < 7
* added missing sdl1/sdl2-image-dev dependencies and rework logic
* remove logic for sdl1 + gles for now as it's not used by any platform
* add -j with our configured number of jobs for parallel building
* Update dependencies
* Enable OpenGL + SDL2 build for non-gles targets
* Enable fkms/mesa target, also using SDL2+GL (due to upstream
source requiring changes to support GLESv2 builds)
The unification/master branch is no longer recommended by upstream,
and the master branch has support for the new vendor libraries (as
well as the experimental Mesa driver).
* rp_module_menus is no more - instead use rp_module_section with one of
- core (core packages)
- main (main packages - which will be installed by default in the image)
- opt (optional packages)
- exp (experimental packages)
- driver (driver packages)
- config (configuration packages / tools)
* The setup menu organises the data based on the above sections. more could be added in the future if needed. Packages (internally modules), can be added / configured / removed individually, or as entire sections.
* The setup menu will automatically detect if a binary is available to be installed. the nobin flag is no longer needed. modules that install directly from binary via aptInstall or via a prebuilt binary need to use an install_bin_ function instead of install_
* rp_module_section of type "config" will have the "gui_" function called first if it's available, otherwise a standard depends/sources/build/install/configure will be called
* configure is no longer used for "gui" configuration function - use gui_ instead. Had already started to move to this before, but now it is required.
adjust ports configs / symlinks to $configdir/ports and move old configs to new location (when calling addPort)
fix up some paths in a few experimental modules (wolf4sdl / sdlpop)
for things like doom / quake where there may be multiple engines, it makes switching available from runcommand etc. it would also allow adding additional launch options with say different wads / settings and so on. It also
simplifies the actual module scripting.