From e216346838b0fe2f0fb8611b1146f56fad7c5128c4105c9dbd3f65ce79d507a2 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 27 Nov 2024 07:58:45 +0000 Subject: [PATCH 1/6] - Update to 5.5: * NEW raylib pre-configured Windows package: The new raylib portable and self-contained Windows package for raylib 5.5, intended for nobel devs that start in programming world, comes with one big addition: support for C code building for Web platform with one-single-mouse-click! For the last 10 years, the pre-configured raylib Windows package allowed to edit simple C projects on Notepad++ and easely compile Windows executables with an automatic script; this new release adds the possibility to compile the same C projects for Web platform with a simple mouse click. This new addition greatly simplifies C to WebAssembly project building for new users. The raylib Windows Installer package can be downloaded for free from raylib on itch.io. * NEW raylib project creator tool: A brand new tool developed to help raylib users to setup new projects in a professional way. raylib project creator generates a complete project structure with multiple build systems ready-to-use and GitHub CI/CD actions pre-configured. It only requires providing some C files and basic project parameters! The tools is free and open-source, and it can be used online!. * NEW Platform backend supported: RGFW: Thanks to the rcore platform-split implemented in raylib 5.0, adding new platforms backends has been greatly simplified, new backends can be added using provided template, self-contained in a single C module, completely portable. A new platform backend has been added: RGFW. RGFW is a new single-file header-only portable library (RGFW.h) intended for platform-functionality management (windowing and inputs); in this case for desktop platforms (Windows, Linux, macOS) but also for Web platform. It adds a new alternative to the already existing GLFW and SDL platform backends. * NEW Platform backend version supported: SDL3: Previous raylib 5.0 added support for SDL2 library, and raylib 5.5 not only improves SDL2 functionality, with several issues reviewed, but also adds support for the OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=41 --- .gitattributes | 23 +++ .gitignore | 1 + _service | 16 ++ raylib-5.0.obscpio | 3 + raylib-5.0.tar.xz | 3 + raylib-5.5.obscpio | 3 + raylib-5.5.tar.xz | 3 + raylib.changes | 460 +++++++++++++++++++++++++++++++++++++++++++++ raylib.obsinfo | 4 + raylib.spec | 90 +++++++++ 10 files changed, 606 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _service create mode 100644 raylib-5.0.obscpio create mode 100644 raylib-5.0.tar.xz create mode 100644 raylib-5.5.obscpio create mode 100644 raylib-5.5.tar.xz create mode 100644 raylib.changes create mode 100644 raylib.obsinfo create mode 100644 raylib.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..efa7092 --- /dev/null +++ b/_service @@ -0,0 +1,16 @@ + + + https://github.com/raysan5/raylib.git + 5.5 + @PARENT_TAG@ + git + examples + + + + + + *.tar + xz + + diff --git a/raylib-5.0.obscpio b/raylib-5.0.obscpio new file mode 100644 index 0000000..ddcc8bb --- /dev/null +++ b/raylib-5.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13b797cc6979739ac8a3ba880638de43cc39e5ef5f61bd706d1ad178b14bde71 +size 63029774 diff --git a/raylib-5.0.tar.xz b/raylib-5.0.tar.xz new file mode 100644 index 0000000..c066244 --- /dev/null +++ b/raylib-5.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfa9c6d1a0a117c034204daf2b6f65139bea51a20106083def018ba0e91e8804 +size 29560808 diff --git a/raylib-5.5.obscpio b/raylib-5.5.obscpio new file mode 100644 index 0000000..e862d17 --- /dev/null +++ b/raylib-5.5.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:669db82a104664c766bd0fa86a923df49fccc9c8abbabf37060854fbce8d26c4 +size 76018702 diff --git a/raylib-5.5.tar.xz b/raylib-5.5.tar.xz new file mode 100644 index 0000000..773c75f --- /dev/null +++ b/raylib-5.5.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc1894ed7bb4e262c5ca9f1760595e4770c6b5cad522d33b8e5448011ffbda49 +size 38578872 diff --git a/raylib.changes b/raylib.changes new file mode 100644 index 0000000..f920cc4 --- /dev/null +++ b/raylib.changes @@ -0,0 +1,460 @@ +------------------------------------------------------------------- +Wed Nov 27 07:53:33 UTC 2024 - Michael Vetter + +- Update to 5.5: + * NEW raylib pre-configured Windows package: The new raylib portable and + self-contained Windows package for raylib 5.5, intended for nobel devs that + start in programming world, comes with one big addition: support for C code + building for Web platform with one-single-mouse-click! For the last 10 + years, the pre-configured raylib Windows package allowed to edit simple C + projects on Notepad++ and easely compile Windows executables with an + automatic script; this new release adds the possibility to compile the same + C projects for Web platform with a simple mouse click. This new addition + greatly simplifies C to WebAssembly project building for new users. The + raylib Windows Installer package can be downloaded for free from raylib on + itch.io. + * NEW raylib project creator tool: A brand new tool developed to help raylib + users to setup new projects in a professional way. raylib project creator + generates a complete project structure with multiple build systems + ready-to-use and GitHub CI/CD actions pre-configured. It only requires + providing some C files and basic project parameters! The tools is free and + open-source, and it can be used online!. + * NEW Platform backend supported: RGFW: Thanks to the rcore platform-split + implemented in raylib 5.0, adding new platforms backends has been greatly + simplified, new backends can be added using provided template, + self-contained in a single C module, completely portable. A new platform + backend has been added: RGFW. RGFW is a new single-file header-only + portable library (RGFW.h) intended for platform-functionality management + (windowing and inputs); in this case for desktop platforms (Windows, Linux, + macOS) but also for Web platform. It adds a new alternative to the already + existing GLFW and SDL platform backends. + * NEW Platform backend version supported: SDL3: Previous raylib 5.0 added + support for SDL2 library, and raylib 5.5 not only improves SDL2 + functionality, with several issues reviewed, but also adds support for the + recently released big SDL update in years: SDL3. Now users can select at + compile time the desired SDL version to use, increasing the number of + potential platforms supported in the future! + * NEW Retro-console platforms supported: Dreamcast, N64, PSP, PSVita, PS4: + Thanks to the platform-split on raylib 5.0, supporting new platform + backends is easier than ever! Along the raylib rlgl module support for the + OpenGL 1.1 graphics API, it opened the door to multiple homebrew + retro-consoles backend implementations! It's amazing to see raylib running + on +20 year old consoles like Dreamcast, PSP or PSVita, considering the + hardware constraints of those platforms and proves raylib outstanding + versability! Those additional platforms can be found in separate + repositories and have been created by the amazing programmer Antonio Jose + Ramos Marquez (@psxdev). + * NEW GPU Skinning support: After lots of requests for this feature, it has + been finally added to raylib thanks to the contributor Daniel Holden + (@orangeduck), probably the developer that has further pushed models + animations with raylib, developing two amazing tools to visualize and test + animations: GenoView and BVHView. Adding GPU skinning was a tricky feature, + considering it had to be available for all raylib supported platforms, + including limited ones like Raspberry Pi with OpenGL ES 2.0, where some + advance OpenGL features are not available (UBO, SSBO, Transform Feedback) + but a multi-platform solution was found to make it possible. A new example, + models_gpu_skinning has been added to illustrate this new functionality. As + an extra, previous existing CPU animation system has been greatly improved, + multiplying performance by a factor (simplifiying required maths). + * NEW raymath C++ operators: After several requested for this feature, C++ + math operators for Vector2, Vector3, Vector4, Quaternion and Matrix has + been added to raymath as an extension to current implementation. Despite + being only available for C++ because C does not support it, these operators + simplify C++ code when doing math operations. + * Normals support on batching system + * Clipboard images reading support + * CRC32/MD5/SHA1 hash computation + * Gamepad vibration support + * Improved font loading (no GPU required) with BDF fonts support + * Time-based camera movement + * Improved GLTF animations loading + +------------------------------------------------------------------- +Sat Nov 18 13:25:40 UTC 2023 - Michael Vetter + +- Update to 5.0: + * rcore module platform-spli + * New platform backend supported: SDL + * New platform backend supported: Nintendo Switch + * New splines drawing and evaluation API + * Pseudo-random numbers generator: rprand + * Automation Events System API + * For details check project changelog + +------------------------------------------------------------------- +Mon Mar 20 09:23:14 UTC 2023 - Michael Vetter + +- Update to 4.5.0: + * NEW Improved ANGLE support on Desktop platforms: Support for OpenGL ES 2.0 on Desktop platforms (Windows, + Linux, macOS) has been reviewed by @wtnbgo GitHub user. Now raylib can be compiled on desktop for OpenGL + ES 2.0 and linked against ANGLE. This small addition open the door to building raylib for all ANGLE + supported backends: Direct3D 11, Vulkan and Metal. Please note that this new feature is still experimental + and requires further testing! + * NEW Camera module: A brand new implementation from scratch for rcamera module, contributed by @Crydsch + GitHub user! New camera system is simpler, more flexible, more granular and more extendable. Specific camera + math transformations (movement/rotation) have been moved to individual functions, exposing them to users if + required. Global state has been removed from the module and standalone usage has been greatly improved; now + rcamera.h single-file header-only library can be used externally, independently of raylib. A new + UpdateCameraPro() function has been added to address input-dependency of UpdateCamera(), now advance users + have full control over camera inputs and movement/rotation speeds! + * NEW Support for M3D models and M3D/GLTF animations: 3d models animations support has been a limited aspect of + raylib for long time, some versions ago IQM animations were supported but raylib 4.5 also adds support for + the brand new M3D file format, including animations and the long expected support for GLTF animations! The + new M3D file format is simple, portable, feature complete, extensible and open source. It also provides a + complete set of tools to export/visualize M3D models from/to Blender! Now raylib supports up to 3 model + file-formats with animations: IQM, GLTF and M3D. + * NEW Support QOA audio format (import/export): Just a couple of months ago the new QOA file format was + published, a very simple, portable and open source quite-ok-audio file format. raylib already supports it, + added to raudio module and including audio loading from file, loading from memory, streaming from file, + streaming from memory and exporting to QOA audio format. Because simplicity really matters to raylib! + * NEW Module for compressed textures loading: rl_gputex, a portable single-file header-only small library to + load compressed texture file-formats (DDS, PKM, KTX, PVR, ASTC). Provided functionality is not new to raylib + but it was part of the raylib rtextures module, now it has been moved into a separate self-contained library, + improving portability. Note that this module is only intended to load compressed data from files, ready to be + uploaded to GPU, no compression/decompression functionality is provided. This change is a first step towards + a better modularization of raylib library. + * Reviewed rlgl module for automatic limits checking: Again, rlgl has been reviewed to simplify usage. Now + users do not need to worry about reaching the internal render-batch limits when they send their triangles to + draw 2d/3d, rlgl manages it automatically! This change allows a great simplification for other modules like + rshapes, rtextures and rmodels that do not need to worry about bufffer overflows and can just define as many + vertex as desired! + * Reviewed rshapes module to minimize the rlgl dependency: Now rshapes 2d shapes drawing functions only depend + on 6 low-level functions: rlBegin(), rlEnd(), rlVertex3f(), rlTexCoord2f(), rlNormal3f(), rlSetTexture(). + With only those pseudo-OpenGl 1.1 minimal functionality, everything can be drawn! This improvement converts + rshapes module in a self-contained, portable shapes-drawing library that can be used independently of raylib, + as far as entry points for those 6 functions are provided by the user. It even allows to be used for software + rendering, with the proper backend! + * Added data structures validation functions: Multiple functions have been added by @RobLoach GitHub user to + ease the validation of raylib data structures: IsImageReady(), IsTextureReady(), IsSoundReady()... Now users + have a simple mechanism to make sure data has been correctly loaded, instead of checking internal structure + values by themselfs. + +------------------------------------------------------------------- +Thu Nov 3 12:43:51 UTC 2022 - Michael Vetter + +- Switch -DUSE_EXTERNAL_GLFW to OFF: + Earlier we build required on our glfw package. + But with raylib 4.2.0 they started to use features are only + in the development version. + They were unhappy that glfw 3.4.0 takes a long time to be + relased and decided to create a in-tree copy. + So for raylib 4.2.0 to build we need to use this in-tree version. + +------------------------------------------------------------------- +Fri Aug 12 05:37:23 UTC 2022 - Michael Vetter + +- Update to 4.2.0: + * extra libraries cleanup: + * examples review + * rres resource format + * raygui official gui library + * new file system API + * New audio stream processors API + * For details see https://github.com/raysan5/raylib/releases/tag/4.2.0 + +------------------------------------------------------------------- +Mon Feb 28 17:50:08 UTC 2022 - Michael Vetter + +- Update to 4.0.0: + * Naming consistency and coherency: API has been completely + reviewed to be consistent on naming conventions + * Event Automation System: This new experimental feature has been + added for future usage, it allows to record input events and + re-play them automatically. + * Custom game-loop control: As requested by some advance users, + the game-loop control can be exposed + * For details see: https://github.com/raysan5/raylib/blob/4.0.0/CHANGELOG + +------------------------------------------------------------------- +Wed May 19 09:27:56 UTC 2021 - Ferdinand Thiessen + +- Update to 3.7.0 + * rlgl module for greater abstraction level. Now rlgl functionality + is self-contained in the module and used by higher-level layers, + * Multiple rlgl functions have been renamed for consistency + * A new API has been added, more comprehensive and better integrated + with raylib, the new stereo rendering can be combined with + RenderTexture and Shader API allowing the user to manage fbo and + distortion shader directly. + * New file access callbacks system. + * glTF animations support. + * raylib supports music streamming from memory data for all + supported file formats: WAV, OGG, MP3, FLAC, XM and MOD. + * Most raylib enums names and values names have been renamed for + consistency, now all value names start with the type of data + they represent. + * See: https://github.com/raysan5/raylib/blob/3.7.0/CHANGELOG +- Drop raylib-3.0.0-noexamples.patch +- Edit _service: + * Exclude examples as they are licensed under unsupported licenses + (Upstream does not provid the -noexamples package anymore) + +------------------------------------------------------------------- +Mon Jan 4 14:46:21 UTC 2021 - Michael Vetter + +- Update to 3.5.0: + * Platform supported: Raspberry Pi 4 native mode (no X11 windows) + through DRM subsystem and GBM API. Actually this is a really + interesting improvement because it opens the door to raylib to + support other embedded platforms (Odroid, GameShell, NanoPi...). + Also worth mentioning the un-official homebrew ports of raylib + for PS4 and PSVita. + * NEW configuration options exposed: For custom raylib builds, + config.h now exposes more than 150 flags and defines to build + raylib with only the desired features, for example, it allows to + build a minimal raylib library in just some KB removing all + external data filetypes supported, very useful to generate small + executables or embedded devices. + * NEW automatic GIF recording feature: Actually, automatic GIF + recording (CTRL+F12) for any raylib application has been available + for some versions but this feature was really slow and low-performant + using an old gif library with many file-accesses. It has been replaced + by a high-performant alternative (msf_gif.h) that operates directly + on memory... and actually works very well! Try it out! + * NEW RenderBatch system: rlgl module has been redesigned to support + custom render batches to allow grouping draw calls as desired, previous + implementation just had one default render batch. This feature has not + been exposed to raylib API yet but it can be used by advance users dealing + with rlgl directly. For example, multiple RenderBatch can be created + for 2D sprites and 3D geometry independently. + * NEW Framebuffer system: rlgl module now exposes an API for custom Framebuffer + attachments (including cubemaps!). raylib RenderTexture is a basic + use-case, just allowing color and depth textures, but this new API allows + the creation of more advance Framebuffers with multiple attachments, + like the G-Buffers. GenTexture*() functions have been redesigned to use this new API. + * Improved software rendering: raylib Image*() API is intended for + software rendering, for those cases when no GPU or no Window is available. + Those functions operate directly with multi-format pixel data on RAM and + they have been completely redesigned to be way faster, specially for small + resolutions and retro-gaming. Low-end embedded devices like microcontrollers + with custom displays could benefit of this raylib functionality! + * File loading from memory: Multiple functions have been redesigned to load + data from memory buffers instead of directly accessing the files, now all + raylib file loading/saving goes through a couple of functions that load + data into memory. This feature allows custom virtual-file-systems and it + gives more control to the user to access data already loaded in memory + (i.e. images, fonts, sounds...). + * NEW Window states management system: raylib core module has been + redesigned to support Window state check and setup more easily and also + before/after Window initialization, SetConfigFlags() has been reviewed and + SetWindowState() has been added to control Window minification, + maximization, hidding, focusing, topmost and more. + * For details see CHANGELOG file + +------------------------------------------------------------------- +Wed Apr 29 20:15:43 UTC 2020 - Michael Vetter + +- Switch to noexamples tarball as requested in: + https://github.com/raysan5/raylib/issues/1180 + So we don't ship examples with various licenses that we don't + install anyways. +- Add raylib-3.0.0-noexamples.patch: dont try to install examples + Raysan seems to have forgotten that. + +------------------------------------------------------------------- +Wed Apr 29 09:59:00 UTC 2020 - Scott Young +- Added missing development header files. + +------------------------------------------------------------------- +Tue Mar 31 09:17:57 UTC 2020 - Michael Vetter + +- Update to 3.0.0: + * All global variables from the multiple raylib modules have + been moved to a global context state, it has several benefits, first, better + code readability with more comprehensive variables naming and categorization + (organized by types, i.e. CORE.Window.display.width, + CORE.Input.Keyboard.currentKeyState or RLGL.State.modelview). Second, it allows + better memory management to load global context state dynamically when required + (not at the moment), making it easy to implement a hot-reloading mechanism if + desired. + * All memory allocations on raylib and its dependencies now use + RL_MALLOC, RL_FREE and similar macros. Now users can easely hook their own + memory allocations mechanism if desired, having more control over memory + allocated internally by the library. Additionally, it makes it easier to port + the library to embedded devices where memory control is critical. For more info + check raylib issue #1074. + * All I/O file accesses from raylib are being moved + to memory data access, now all I/O file access is centralized into just four + functions: LoadFileData(), SaveFileData(), LoadFileText(), SaveFileText(). + Users can just update those functions to any I/O file system. This change makes + it easier to integrate raylib with Virtual File Systems or custom I/O file + implementations. + * All raylib data structures have been reviewed and optimized + for pass-by-value usage. One of raylib distinctive design decisions is that + most of its functions receive and return data by value. This design makes + raylib really simple for newcomers, avoiding pointers and allowing complete + access to all structures data in a simple way. The downside is that data is + copied on stack every function call and that copy could be costly so, all + raylib data structures have been optimized to stay under 64 bytes for fast copy + and retrieve. + * All raylib tracelog messages have been reviewd and categorized + for a more comprehensive output information when developing raylib + applications, now all display, input, timer, platform, auxiliar libraries, + file-accesses, data loading/unloading issues are properly reported with more + detailed and visual messages. + * raudio module has been internally reviewed to + accomodate the new Music structure (converted from previous pointer format) and + the module has been adapted to the highly improved miniaudio v0.10. + * text module reviewed to improve fonts generation and text management functions, Font + structure has been redesigned to better accomodate characters data, decoupling + individual characters as Image glyphs from the font atlas parameters. Several + improvements have been made to better support Unicode strings with UTF-8 + encoding. + * Multiple new examples added (most of them contributed by raylib + users) and all examples reviewed for correct execution on most of the supported + platforms, specially Web and Raspberry Pi. A detailed categorized table has + been created on github for easy examples navigation and code access. + * New GitHub Actions CI system has been implemented for Windows, Linux and macOS code + and examples compilation on every new commit or PR to make sure library keeps + stable and usable with no breaking bugs. + * Note that only key changes are + listed here but there is way more! About 30 new functions, multiple functions + reviewed, bindings to +40 programming languages and great + samples/demos/tutorials created by the community, including raylib integration + with Spine, Unity, Tiled, Nuklear, enet and more! + +------------------------------------------------------------------- +Fri May 31 09:26:07 UTC 2019 - mvetter@suse.com + +- Update to 2.5.0: + * New window management and filesystem functions to query monitor + information, deal with clipboard, check directory files info and + even launch a URL with default system web browser. Experimental + High-DPI monitor support has also been added through a compile flag. + * Redesigned Gamepad mechanism, now generic for all platforms and + gamepads, no more specific gamepad configurations. + * Redesigned UWP input system, now raylib supports UWP seamlessly, + previous implementation required a custom input system implemented + in user code. + * rlgl module has been redesigned to support a unique buffer for + shapes drawing batching, including LINES, TRIANGLES, QUADS in the + same indexed buffer, also added support for multi-buffering if required. + Additionally, rlPushMatrix()/rlPopMatrix() functionality has been + reviewed to behave exactly like OpenGL 1.1, models_rlgl_solar_system + example has been added to illustrate this behaviour. + * VR simulator has been reviewed to allow custom configuration of + Head-Mounted-Device parameters and distortion shader, core_vr_simulator + has been properly adapted to showcase this new functionality, now + the VR simulator is a generic configurable stereo rendering system + that allows any VR device simulation with just a few lines of code + or even dynamic tweaking of HMD parameters. + * Support for Unicode text drawing; now raylib processes UTF8 + strings on drawing, supporting Unicode codepoints, allowing rendering + mostly any existent language (as long as the font with the glyphs is provided). + * Brand new text management API, with the addition of multiple functions + to deal with string data + * Multiple new shapes and textures drawing functions + * Experimental cubemap support, to automatically load multiple + cubemap layouts (LoadTextureCubemap()). + * Skeletal animation support for 3d models, this addition implied a + redesign of Model data structure to accomodate multiple mesh/multiple + materials support and bones information. Multiple models functions + have been reviewed and added on this process, also glTF models + loading support has been added. + * For details see Changelog file + +------------------------------------------------------------------- +Tue Jul 24 09:13:42 UTC 2018 - mvetter@suse.com + +- Update to 2.0.0: + * Full redesign of audio module to use the mini_al audio library + * Refactor all #define SUPPORT_* into a single config.h + * Reviewed raymath.h for better consistency and performance (inlining) + * New font rendering + * STB support + * New functions for CPU image data manipulation +- Remove raylib-2.0.0-api-version.patch: upstreamed +- Remove BuildRequires libglfw-devel: + Using intern libraries now. They want raylib to be like this. +- Adding BR for libXcursor-devel, libXinerama-devel, libXrandr-devel + and cmake explicitly now. + +------------------------------------------------------------------- +Fri May 18 14:12:17 UTC 2018 - mvetter@suse.com + +- Update to 2.0.0rc1: + * Complete redesign of audio module to use mini_al audio library + * Support AppVeyor and Travis CI (continuous integration) build + * Reviewed raymath.h for better consistency and performance (inlining) + * Refactor all #define SUPPORT_* into a single config.h + * Support TCC compiler + * For complete list see CHANGELOG file +- Remove BR openal-soft-devel +- Add packageconfig file +- Add raylib-2.0.0-api-version.patch: api version should be 2 +- Switch from meson to CMake + +------------------------------------------------------------------- +Fri Nov 3 11:50:40 UTC 2017 - jengelh@inai.de + +- Description grammar update. + +------------------------------------------------------------------- +Mon Oct 23 09:03:01 UTC 2017 - mvetter@suse.com + +- Update to 1.8.0: + * New Image generation functions: Gradient, Checked, Noise, Cellular... + * New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot... + * New Shaders and Materials systems to support PBR materials + * Custom Android APK build pipeline with simple Makefile + * Complete review of rlgl layer functionality + * Complete review of raymath functionality +- Remove root-meson.build and src-meson.build: contained in new + release + +------------------------------------------------------------------- +Fri Sep 8 16:18:40 UTC 2017 - jengelh@inai.de + +- Update package summaries and RPM category. + +------------------------------------------------------------------- +Tue Jun 13 13:34:59 UTC 2017 - mvetter@suse.com + +- BuildRequires: libglfw-devel >= 3.2 + because glfwSetWindowMonitor etc only come in 3.2 + +------------------------------------------------------------------- +Sun Jun 11 09:24:49 UTC 2017 - mvetter@suse.com + +- Add option to meson file to build with gnu99 because: + * CLOCK_MONOTONIC macro + * var init in for loops (c99) + +------------------------------------------------------------------- +Sun Jun 11 06:40:24 UTC 2017 - mvetter@suse.com + +- Remove raylig-use-optflags.patch: Using meson for build + +------------------------------------------------------------------- +Thu Jun 8 15:14:33 UTC 2017 - mvetter@suse.com + +- Use meson to build raylib: + * Takes care of creating proper so versioning + * Install works (where their makefiles didnt) +- Add root-meson.build +- Add src-meson.build + Meson files will be in next release, see: + https://github.com/raysan5/raylib/pull/297 + +------------------------------------------------------------------- +Sun Jun 4 19:36:11 UTC 2017 - mvetter@suse.com + +- Move Requires openal-soft-devel to devel package + +------------------------------------------------------------------- +Mon May 29 17:19:06 UTC 2017 - mvetter@suse.com + +- Add Requires: openal-soft-devel + It will be needed when one uses raylib + +------------------------------------------------------------------- +Mon May 29 16:47:32 UTC 2017 - mvetter@suse.com + +- Add OpenAL to BuildRequires +- Add raylig-use-optflags.patch: allow passing of optflags + See: https://github.com/raysan5/raylib/pull/295 + +------------------------------------------------------------------- +Mon May 29 10:26:46 UTC 2017 - mvetter@suse.com + +- Inital package of raylib version 1.7.0 diff --git a/raylib.obsinfo b/raylib.obsinfo new file mode 100644 index 0000000..deac8b8 --- /dev/null +++ b/raylib.obsinfo @@ -0,0 +1,4 @@ +name: raylib +version: 5.5 +mtime: 1731932470 +commit: c1ab645ca298a2801097931d1079b10ff7eb9df8 diff --git a/raylib.spec b/raylib.spec new file mode 100644 index 0000000..1ef783c --- /dev/null +++ b/raylib.spec @@ -0,0 +1,90 @@ +# +# spec file for package raylib +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: raylib +Version: 5.5 +Release: 0 +Summary: C library for learning video game programming +License: Zlib +Group: Development/Libraries/C and C++ +URL: https://www.raylib.com +Source: raylib-%{version}.tar.xz +BuildRequires: Mesa-libGL-devel +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: libXcursor-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrandr-devel +# raylib ships an in-tree glfw that is a copy of *a* git revision of upstream glfw +# containing features they need. They are unhappy that it takes such +# a long time for 3.4 to be released. So ship it. +#BuildRequires: libglfw-devel >= 3.4 + +%description +A C library for learning video game programming. +raylib is inspired by the Borland BGI graphics library and by the XNA framework. + +%package -n raylib-devel +Summary: Development files for %{name} +Group: Development/Libraries/C and C++ +Requires: libraylib450 = %{version} +Requires: openal-soft-devel + +%description -n raylib-devel +Development files and headers for %{name}. + +%package -n libraylib450 +Summary: C library for learning video game programming +Group: System/Libraries + +%description -n libraylib450 +A C library for learning video game programming. + +%prep +%setup -q + +%build +%cmake \ + -DBUILD_EXAMPLES=OFF \ + -DPLATFORM=Desktop \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DOpenGL_GL_PREFERENCE=GLVND \ + -DUSE_EXTERNAL_GLFW=OFF + +%install +%cmake_install + +%post -n libraylib450 -p /sbin/ldconfig +%postun -n libraylib450 -p /sbin/ldconfig + +%files -n libraylib450 +%license LICENSE +%{_libdir}/libraylib.so.* + +%files -n raylib-devel +%doc CHANGELOG README.md +%{_includedir}/raylib.h +%{_includedir}/raymath.h +%{_includedir}/rlgl.h +%{_libdir}/libraylib.so +%{_libdir}/pkgconfig/raylib.pc +%{_libdir}/cmake/raylib/ + +%changelog -- 2.51.1 From b1382b75440ad2a4d3e8b6a2ad6bf4b1b963e7a81586f041adea4848de55d4ab Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 27 Nov 2024 08:12:07 +0000 Subject: [PATCH 2/6] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=42 --- raylib.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/raylib.spec b/raylib.spec index 1ef783c..897cb59 100644 --- a/raylib.spec +++ b/raylib.spec @@ -43,17 +43,17 @@ raylib is inspired by the Borland BGI graphics library and by the XNA framework. %package -n raylib-devel Summary: Development files for %{name} Group: Development/Libraries/C and C++ -Requires: libraylib450 = %{version} +Requires: libraylib550 = %{version} Requires: openal-soft-devel %description -n raylib-devel Development files and headers for %{name}. -%package -n libraylib450 +%package -n libraylib550 Summary: C library for learning video game programming Group: System/Libraries -%description -n libraylib450 +%description -n libraylib550 A C library for learning video game programming. %prep @@ -71,10 +71,10 @@ A C library for learning video game programming. %install %cmake_install -%post -n libraylib450 -p /sbin/ldconfig -%postun -n libraylib450 -p /sbin/ldconfig +%post -n libraylib550 -p /sbin/ldconfig +%postun -n libraylib550 -p /sbin/ldconfig -%files -n libraylib450 +%files -n libraylib550 %license LICENSE %{_libdir}/libraylib.so.* -- 2.51.1 From a242d39575eb02e22f954b5c96afda070bf23d9bc53ebb32859390091d37a27c Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Mon, 19 Jan 2026 13:13:12 +0000 Subject: [PATCH 3/6] - security update: * CVE-2025-15533 [bsc#1256900] Fix heap-based buffer overflow via GenImageFontAtlas function manipulation * CVE-2025-15534 [bsc#1256901] Fix integer overflow vulnerability in LoadFontData * Add raylib-CVE-2025-15533-CVE-2025-15534.patch OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=44 --- .gitattributes | 23 + .gitignore | 1 + _service | 16 + raylib-5.5.obscpio | 3 + raylib-5.5.tar.xz | 3 + raylib-CVE-2025-15533-CVE-2025-15534.patch | 93 ++++ raylib.changes | 470 +++++++++++++++++++++ raylib.obsinfo | 4 + raylib.spec | 91 ++++ 9 files changed, 704 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _service create mode 100644 raylib-5.5.obscpio create mode 100644 raylib-5.5.tar.xz create mode 100644 raylib-CVE-2025-15533-CVE-2025-15534.patch create mode 100644 raylib.changes create mode 100644 raylib.obsinfo create mode 100644 raylib.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..efa7092 --- /dev/null +++ b/_service @@ -0,0 +1,16 @@ + + + https://github.com/raysan5/raylib.git + 5.5 + @PARENT_TAG@ + git + examples + + + + + + *.tar + xz + + diff --git a/raylib-5.5.obscpio b/raylib-5.5.obscpio new file mode 100644 index 0000000..e862d17 --- /dev/null +++ b/raylib-5.5.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:669db82a104664c766bd0fa86a923df49fccc9c8abbabf37060854fbce8d26c4 +size 76018702 diff --git a/raylib-5.5.tar.xz b/raylib-5.5.tar.xz new file mode 100644 index 0000000..773c75f --- /dev/null +++ b/raylib-5.5.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc1894ed7bb4e262c5ca9f1760595e4770c6b5cad522d33b8e5448011ffbda49 +size 38578872 diff --git a/raylib-CVE-2025-15533-CVE-2025-15534.patch b/raylib-CVE-2025-15533-CVE-2025-15534.patch new file mode 100644 index 0000000..e267bab --- /dev/null +++ b/raylib-CVE-2025-15533-CVE-2025-15534.patch @@ -0,0 +1,93 @@ +Fix CVE-2025-15533 and CVE-2025-15534 + +Based on 5a3391fdce046bc5473e52afbd835dd2dc127146. +Change glyphs[k] -> chars[i]. +Index: raylib-5.5/src/rtext.c +=================================================================== +--- raylib-5.5.orig/src/rtext.c ++++ raylib-5.5/src/rtext.c +@@ -695,8 +695,11 @@ GlyphInfo *LoadFontData(const unsigned c + stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); + chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); + ++ if (chars[i].advanceX < 0) chars[i].advanceX = 0; ++ + Image imSpace = { + .data = RL_CALLOC(chars[i].advanceX*fontSize, 2), ++ .data = (chars[i].advanceX > 0) ? RL_CALLOC(chars[i].advanceX*fontSize, 2) : NULL, + .width = chars[i].advanceX, + .height = fontSize, + .mipmaps = 1, +@@ -796,7 +799,8 @@ Image GenImageFontAtlas(const GlyphInfo + } + #endif + +- atlas.data = (unsigned char *)RL_CALLOC(1, atlas.width*atlas.height); // Create a bitmap to store characters (8 bpp) ++ int atlasDataSize = atlas.width * atlas.height; // Save total size for bounds checking ++ atlas.data = (unsigned char *)RL_CALLOC(1, atlasDataSize); // Create a bitmap to store characters (8 bpp) + atlas.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + atlas.mipmaps = 1; + +@@ -841,7 +845,17 @@ Image GenImageFontAtlas(const GlyphInfo + { + for (int x = 0; x < glyphs[i].image.width; x++) + { +- ((unsigned char *)atlas.data)[(offsetY + y)*atlas.width + (offsetX + x)] = ((unsigned char *)glyphs[i].image.data)[y*glyphs[i].image.width + x]; ++ int destX = offsetX + x; ++ int destY = offsetY + y; ++ ++ // Security fix: check both lower and upper bounds ++ // destX >= 0: prevent heap underflow (#5434) ++ // destX < atlas.width: prevent heap overflow (#5433) ++ if (destX >= 0 && destX < atlas.width && destY >= 0 && destY < atlas.height) ++ { ++ ((unsigned char *)atlas.data)[destY * atlas.width + destX] = ++ ((unsigned char *)glyphs[i].image.data)[y * glyphs[i].image.width + x]; ++ } + } + } + +@@ -889,7 +903,15 @@ Image GenImageFontAtlas(const GlyphInfo + { + for (int x = 0; x < glyphs[i].image.width; x++) + { +- ((unsigned char *)atlas.data)[(rects[i].y + padding + y)*atlas.width + (rects[i].x + padding + x)] = ((unsigned char *)glyphs[i].image.data)[y*glyphs[i].image.width + x]; ++ int destX = rects[i].x + padding + x; ++ int destY = rects[i].y + padding + y; ++ ++ // Security fix: check both lower and upper bounds ++ if (destX >= 0 && destX < atlas.width && destY >= 0 && destY < atlas.height) ++ { ++ ((unsigned char *)atlas.data)[destY * atlas.width + destX] = ++ ((unsigned char *)glyphs[i].image.data)[y * glyphs[i].image.width + x]; ++ } + } + } + } +@@ -903,14 +925,18 @@ Image GenImageFontAtlas(const GlyphInfo + + #if defined(SUPPORT_FONT_ATLAS_WHITE_REC) + // Add a 3x3 white rectangle at the bottom-right corner of the generated atlas, +- // useful to use as the white texture to draw shapes with raylib, using this rectangle +- // shapes and text can be backed into a single draw call: SetShapesTexture() +- for (int i = 0, k = atlas.width*atlas.height - 1; i < 3; i++) +- { +- ((unsigned char *)atlas.data)[k - 0] = 255; +- ((unsigned char *)atlas.data)[k - 1] = 255; +- ((unsigned char *)atlas.data)[k - 2] = 255; +- k -= atlas.width; ++ // useful to use as the white texture to draw shapes with raylib. ++ // [Security Fix] Ensure the atlas is large enough to hold a 3x3 rectangle. ++ // This prevents heap underflow when width < 3 or height < 3 (Fixes #5434 variant) ++ if (atlas.width >= 3 && atlas.height >= 3) ++ { ++ for (int i = 0, k = atlas.width*atlas.height - 1; i < 3; i++) ++ { ++ ((unsigned char *)atlas.data)[k - 0] = 255; ++ ((unsigned char *)atlas.data)[k - 1] = 255; ++ ((unsigned char *)atlas.data)[k - 2] = 255; ++ k -= atlas.width; ++ } + } + #endif + diff --git a/raylib.changes b/raylib.changes new file mode 100644 index 0000000..13c9d01 --- /dev/null +++ b/raylib.changes @@ -0,0 +1,470 @@ +------------------------------------------------------------------- +Mon Jan 19 13:05:48 UTC 2026 - Michael Vetter + +- security update: + * CVE-2025-15533 [bsc#1256900] + Fix heap-based buffer overflow via GenImageFontAtlas function manipulation + * CVE-2025-15534 [bsc#1256901] + Fix integer overflow vulnerability in LoadFontData + * Add raylib-CVE-2025-15533-CVE-2025-15534.patch + +------------------------------------------------------------------- +Wed Nov 27 07:53:33 UTC 2024 - Michael Vetter + +- Update to 5.5: + * NEW raylib pre-configured Windows package: The new raylib portable and + self-contained Windows package for raylib 5.5, intended for nobel devs that + start in programming world, comes with one big addition: support for C code + building for Web platform with one-single-mouse-click! For the last 10 + years, the pre-configured raylib Windows package allowed to edit simple C + projects on Notepad++ and easely compile Windows executables with an + automatic script; this new release adds the possibility to compile the same + C projects for Web platform with a simple mouse click. This new addition + greatly simplifies C to WebAssembly project building for new users. The + raylib Windows Installer package can be downloaded for free from raylib on + itch.io. + * NEW raylib project creator tool: A brand new tool developed to help raylib + users to setup new projects in a professional way. raylib project creator + generates a complete project structure with multiple build systems + ready-to-use and GitHub CI/CD actions pre-configured. It only requires + providing some C files and basic project parameters! The tools is free and + open-source, and it can be used online!. + * NEW Platform backend supported: RGFW: Thanks to the rcore platform-split + implemented in raylib 5.0, adding new platforms backends has been greatly + simplified, new backends can be added using provided template, + self-contained in a single C module, completely portable. A new platform + backend has been added: RGFW. RGFW is a new single-file header-only + portable library (RGFW.h) intended for platform-functionality management + (windowing and inputs); in this case for desktop platforms (Windows, Linux, + macOS) but also for Web platform. It adds a new alternative to the already + existing GLFW and SDL platform backends. + * NEW Platform backend version supported: SDL3: Previous raylib 5.0 added + support for SDL2 library, and raylib 5.5 not only improves SDL2 + functionality, with several issues reviewed, but also adds support for the + recently released big SDL update in years: SDL3. Now users can select at + compile time the desired SDL version to use, increasing the number of + potential platforms supported in the future! + * NEW Retro-console platforms supported: Dreamcast, N64, PSP, PSVita, PS4: + Thanks to the platform-split on raylib 5.0, supporting new platform + backends is easier than ever! Along the raylib rlgl module support for the + OpenGL 1.1 graphics API, it opened the door to multiple homebrew + retro-consoles backend implementations! It's amazing to see raylib running + on +20 year old consoles like Dreamcast, PSP or PSVita, considering the + hardware constraints of those platforms and proves raylib outstanding + versability! Those additional platforms can be found in separate + repositories and have been created by the amazing programmer Antonio Jose + Ramos Marquez (@psxdev). + * NEW GPU Skinning support: After lots of requests for this feature, it has + been finally added to raylib thanks to the contributor Daniel Holden + (@orangeduck), probably the developer that has further pushed models + animations with raylib, developing two amazing tools to visualize and test + animations: GenoView and BVHView. Adding GPU skinning was a tricky feature, + considering it had to be available for all raylib supported platforms, + including limited ones like Raspberry Pi with OpenGL ES 2.0, where some + advance OpenGL features are not available (UBO, SSBO, Transform Feedback) + but a multi-platform solution was found to make it possible. A new example, + models_gpu_skinning has been added to illustrate this new functionality. As + an extra, previous existing CPU animation system has been greatly improved, + multiplying performance by a factor (simplifiying required maths). + * NEW raymath C++ operators: After several requested for this feature, C++ + math operators for Vector2, Vector3, Vector4, Quaternion and Matrix has + been added to raymath as an extension to current implementation. Despite + being only available for C++ because C does not support it, these operators + simplify C++ code when doing math operations. + * Normals support on batching system + * Clipboard images reading support + * CRC32/MD5/SHA1 hash computation + * Gamepad vibration support + * Improved font loading (no GPU required) with BDF fonts support + * Time-based camera movement + * Improved GLTF animations loading + +------------------------------------------------------------------- +Sat Nov 18 13:25:40 UTC 2023 - Michael Vetter + +- Update to 5.0: + * rcore module platform-spli + * New platform backend supported: SDL + * New platform backend supported: Nintendo Switch + * New splines drawing and evaluation API + * Pseudo-random numbers generator: rprand + * Automation Events System API + * For details check project changelog + +------------------------------------------------------------------- +Mon Mar 20 09:23:14 UTC 2023 - Michael Vetter + +- Update to 4.5.0: + * NEW Improved ANGLE support on Desktop platforms: Support for OpenGL ES 2.0 on Desktop platforms (Windows, + Linux, macOS) has been reviewed by @wtnbgo GitHub user. Now raylib can be compiled on desktop for OpenGL + ES 2.0 and linked against ANGLE. This small addition open the door to building raylib for all ANGLE + supported backends: Direct3D 11, Vulkan and Metal. Please note that this new feature is still experimental + and requires further testing! + * NEW Camera module: A brand new implementation from scratch for rcamera module, contributed by @Crydsch + GitHub user! New camera system is simpler, more flexible, more granular and more extendable. Specific camera + math transformations (movement/rotation) have been moved to individual functions, exposing them to users if + required. Global state has been removed from the module and standalone usage has been greatly improved; now + rcamera.h single-file header-only library can be used externally, independently of raylib. A new + UpdateCameraPro() function has been added to address input-dependency of UpdateCamera(), now advance users + have full control over camera inputs and movement/rotation speeds! + * NEW Support for M3D models and M3D/GLTF animations: 3d models animations support has been a limited aspect of + raylib for long time, some versions ago IQM animations were supported but raylib 4.5 also adds support for + the brand new M3D file format, including animations and the long expected support for GLTF animations! The + new M3D file format is simple, portable, feature complete, extensible and open source. It also provides a + complete set of tools to export/visualize M3D models from/to Blender! Now raylib supports up to 3 model + file-formats with animations: IQM, GLTF and M3D. + * NEW Support QOA audio format (import/export): Just a couple of months ago the new QOA file format was + published, a very simple, portable and open source quite-ok-audio file format. raylib already supports it, + added to raudio module and including audio loading from file, loading from memory, streaming from file, + streaming from memory and exporting to QOA audio format. Because simplicity really matters to raylib! + * NEW Module for compressed textures loading: rl_gputex, a portable single-file header-only small library to + load compressed texture file-formats (DDS, PKM, KTX, PVR, ASTC). Provided functionality is not new to raylib + but it was part of the raylib rtextures module, now it has been moved into a separate self-contained library, + improving portability. Note that this module is only intended to load compressed data from files, ready to be + uploaded to GPU, no compression/decompression functionality is provided. This change is a first step towards + a better modularization of raylib library. + * Reviewed rlgl module for automatic limits checking: Again, rlgl has been reviewed to simplify usage. Now + users do not need to worry about reaching the internal render-batch limits when they send their triangles to + draw 2d/3d, rlgl manages it automatically! This change allows a great simplification for other modules like + rshapes, rtextures and rmodels that do not need to worry about bufffer overflows and can just define as many + vertex as desired! + * Reviewed rshapes module to minimize the rlgl dependency: Now rshapes 2d shapes drawing functions only depend + on 6 low-level functions: rlBegin(), rlEnd(), rlVertex3f(), rlTexCoord2f(), rlNormal3f(), rlSetTexture(). + With only those pseudo-OpenGl 1.1 minimal functionality, everything can be drawn! This improvement converts + rshapes module in a self-contained, portable shapes-drawing library that can be used independently of raylib, + as far as entry points for those 6 functions are provided by the user. It even allows to be used for software + rendering, with the proper backend! + * Added data structures validation functions: Multiple functions have been added by @RobLoach GitHub user to + ease the validation of raylib data structures: IsImageReady(), IsTextureReady(), IsSoundReady()... Now users + have a simple mechanism to make sure data has been correctly loaded, instead of checking internal structure + values by themselfs. + +------------------------------------------------------------------- +Thu Nov 3 12:43:51 UTC 2022 - Michael Vetter + +- Switch -DUSE_EXTERNAL_GLFW to OFF: + Earlier we build required on our glfw package. + But with raylib 4.2.0 they started to use features are only + in the development version. + They were unhappy that glfw 3.4.0 takes a long time to be + relased and decided to create a in-tree copy. + So for raylib 4.2.0 to build we need to use this in-tree version. + +------------------------------------------------------------------- +Fri Aug 12 05:37:23 UTC 2022 - Michael Vetter + +- Update to 4.2.0: + * extra libraries cleanup: + * examples review + * rres resource format + * raygui official gui library + * new file system API + * New audio stream processors API + * For details see https://github.com/raysan5/raylib/releases/tag/4.2.0 + +------------------------------------------------------------------- +Mon Feb 28 17:50:08 UTC 2022 - Michael Vetter + +- Update to 4.0.0: + * Naming consistency and coherency: API has been completely + reviewed to be consistent on naming conventions + * Event Automation System: This new experimental feature has been + added for future usage, it allows to record input events and + re-play them automatically. + * Custom game-loop control: As requested by some advance users, + the game-loop control can be exposed + * For details see: https://github.com/raysan5/raylib/blob/4.0.0/CHANGELOG + +------------------------------------------------------------------- +Wed May 19 09:27:56 UTC 2021 - Ferdinand Thiessen + +- Update to 3.7.0 + * rlgl module for greater abstraction level. Now rlgl functionality + is self-contained in the module and used by higher-level layers, + * Multiple rlgl functions have been renamed for consistency + * A new API has been added, more comprehensive and better integrated + with raylib, the new stereo rendering can be combined with + RenderTexture and Shader API allowing the user to manage fbo and + distortion shader directly. + * New file access callbacks system. + * glTF animations support. + * raylib supports music streamming from memory data for all + supported file formats: WAV, OGG, MP3, FLAC, XM and MOD. + * Most raylib enums names and values names have been renamed for + consistency, now all value names start with the type of data + they represent. + * See: https://github.com/raysan5/raylib/blob/3.7.0/CHANGELOG +- Drop raylib-3.0.0-noexamples.patch +- Edit _service: + * Exclude examples as they are licensed under unsupported licenses + (Upstream does not provid the -noexamples package anymore) + +------------------------------------------------------------------- +Mon Jan 4 14:46:21 UTC 2021 - Michael Vetter + +- Update to 3.5.0: + * Platform supported: Raspberry Pi 4 native mode (no X11 windows) + through DRM subsystem and GBM API. Actually this is a really + interesting improvement because it opens the door to raylib to + support other embedded platforms (Odroid, GameShell, NanoPi...). + Also worth mentioning the un-official homebrew ports of raylib + for PS4 and PSVita. + * NEW configuration options exposed: For custom raylib builds, + config.h now exposes more than 150 flags and defines to build + raylib with only the desired features, for example, it allows to + build a minimal raylib library in just some KB removing all + external data filetypes supported, very useful to generate small + executables or embedded devices. + * NEW automatic GIF recording feature: Actually, automatic GIF + recording (CTRL+F12) for any raylib application has been available + for some versions but this feature was really slow and low-performant + using an old gif library with many file-accesses. It has been replaced + by a high-performant alternative (msf_gif.h) that operates directly + on memory... and actually works very well! Try it out! + * NEW RenderBatch system: rlgl module has been redesigned to support + custom render batches to allow grouping draw calls as desired, previous + implementation just had one default render batch. This feature has not + been exposed to raylib API yet but it can be used by advance users dealing + with rlgl directly. For example, multiple RenderBatch can be created + for 2D sprites and 3D geometry independently. + * NEW Framebuffer system: rlgl module now exposes an API for custom Framebuffer + attachments (including cubemaps!). raylib RenderTexture is a basic + use-case, just allowing color and depth textures, but this new API allows + the creation of more advance Framebuffers with multiple attachments, + like the G-Buffers. GenTexture*() functions have been redesigned to use this new API. + * Improved software rendering: raylib Image*() API is intended for + software rendering, for those cases when no GPU or no Window is available. + Those functions operate directly with multi-format pixel data on RAM and + they have been completely redesigned to be way faster, specially for small + resolutions and retro-gaming. Low-end embedded devices like microcontrollers + with custom displays could benefit of this raylib functionality! + * File loading from memory: Multiple functions have been redesigned to load + data from memory buffers instead of directly accessing the files, now all + raylib file loading/saving goes through a couple of functions that load + data into memory. This feature allows custom virtual-file-systems and it + gives more control to the user to access data already loaded in memory + (i.e. images, fonts, sounds...). + * NEW Window states management system: raylib core module has been + redesigned to support Window state check and setup more easily and also + before/after Window initialization, SetConfigFlags() has been reviewed and + SetWindowState() has been added to control Window minification, + maximization, hidding, focusing, topmost and more. + * For details see CHANGELOG file + +------------------------------------------------------------------- +Wed Apr 29 20:15:43 UTC 2020 - Michael Vetter + +- Switch to noexamples tarball as requested in: + https://github.com/raysan5/raylib/issues/1180 + So we don't ship examples with various licenses that we don't + install anyways. +- Add raylib-3.0.0-noexamples.patch: dont try to install examples + Raysan seems to have forgotten that. + +------------------------------------------------------------------- +Wed Apr 29 09:59:00 UTC 2020 - Scott Young +- Added missing development header files. + +------------------------------------------------------------------- +Tue Mar 31 09:17:57 UTC 2020 - Michael Vetter + +- Update to 3.0.0: + * All global variables from the multiple raylib modules have + been moved to a global context state, it has several benefits, first, better + code readability with more comprehensive variables naming and categorization + (organized by types, i.e. CORE.Window.display.width, + CORE.Input.Keyboard.currentKeyState or RLGL.State.modelview). Second, it allows + better memory management to load global context state dynamically when required + (not at the moment), making it easy to implement a hot-reloading mechanism if + desired. + * All memory allocations on raylib and its dependencies now use + RL_MALLOC, RL_FREE and similar macros. Now users can easely hook their own + memory allocations mechanism if desired, having more control over memory + allocated internally by the library. Additionally, it makes it easier to port + the library to embedded devices where memory control is critical. For more info + check raylib issue #1074. + * All I/O file accesses from raylib are being moved + to memory data access, now all I/O file access is centralized into just four + functions: LoadFileData(), SaveFileData(), LoadFileText(), SaveFileText(). + Users can just update those functions to any I/O file system. This change makes + it easier to integrate raylib with Virtual File Systems or custom I/O file + implementations. + * All raylib data structures have been reviewed and optimized + for pass-by-value usage. One of raylib distinctive design decisions is that + most of its functions receive and return data by value. This design makes + raylib really simple for newcomers, avoiding pointers and allowing complete + access to all structures data in a simple way. The downside is that data is + copied on stack every function call and that copy could be costly so, all + raylib data structures have been optimized to stay under 64 bytes for fast copy + and retrieve. + * All raylib tracelog messages have been reviewd and categorized + for a more comprehensive output information when developing raylib + applications, now all display, input, timer, platform, auxiliar libraries, + file-accesses, data loading/unloading issues are properly reported with more + detailed and visual messages. + * raudio module has been internally reviewed to + accomodate the new Music structure (converted from previous pointer format) and + the module has been adapted to the highly improved miniaudio v0.10. + * text module reviewed to improve fonts generation and text management functions, Font + structure has been redesigned to better accomodate characters data, decoupling + individual characters as Image glyphs from the font atlas parameters. Several + improvements have been made to better support Unicode strings with UTF-8 + encoding. + * Multiple new examples added (most of them contributed by raylib + users) and all examples reviewed for correct execution on most of the supported + platforms, specially Web and Raspberry Pi. A detailed categorized table has + been created on github for easy examples navigation and code access. + * New GitHub Actions CI system has been implemented for Windows, Linux and macOS code + and examples compilation on every new commit or PR to make sure library keeps + stable and usable with no breaking bugs. + * Note that only key changes are + listed here but there is way more! About 30 new functions, multiple functions + reviewed, bindings to +40 programming languages and great + samples/demos/tutorials created by the community, including raylib integration + with Spine, Unity, Tiled, Nuklear, enet and more! + +------------------------------------------------------------------- +Fri May 31 09:26:07 UTC 2019 - mvetter@suse.com + +- Update to 2.5.0: + * New window management and filesystem functions to query monitor + information, deal with clipboard, check directory files info and + even launch a URL with default system web browser. Experimental + High-DPI monitor support has also been added through a compile flag. + * Redesigned Gamepad mechanism, now generic for all platforms and + gamepads, no more specific gamepad configurations. + * Redesigned UWP input system, now raylib supports UWP seamlessly, + previous implementation required a custom input system implemented + in user code. + * rlgl module has been redesigned to support a unique buffer for + shapes drawing batching, including LINES, TRIANGLES, QUADS in the + same indexed buffer, also added support for multi-buffering if required. + Additionally, rlPushMatrix()/rlPopMatrix() functionality has been + reviewed to behave exactly like OpenGL 1.1, models_rlgl_solar_system + example has been added to illustrate this behaviour. + * VR simulator has been reviewed to allow custom configuration of + Head-Mounted-Device parameters and distortion shader, core_vr_simulator + has been properly adapted to showcase this new functionality, now + the VR simulator is a generic configurable stereo rendering system + that allows any VR device simulation with just a few lines of code + or even dynamic tweaking of HMD parameters. + * Support for Unicode text drawing; now raylib processes UTF8 + strings on drawing, supporting Unicode codepoints, allowing rendering + mostly any existent language (as long as the font with the glyphs is provided). + * Brand new text management API, with the addition of multiple functions + to deal with string data + * Multiple new shapes and textures drawing functions + * Experimental cubemap support, to automatically load multiple + cubemap layouts (LoadTextureCubemap()). + * Skeletal animation support for 3d models, this addition implied a + redesign of Model data structure to accomodate multiple mesh/multiple + materials support and bones information. Multiple models functions + have been reviewed and added on this process, also glTF models + loading support has been added. + * For details see Changelog file + +------------------------------------------------------------------- +Tue Jul 24 09:13:42 UTC 2018 - mvetter@suse.com + +- Update to 2.0.0: + * Full redesign of audio module to use the mini_al audio library + * Refactor all #define SUPPORT_* into a single config.h + * Reviewed raymath.h for better consistency and performance (inlining) + * New font rendering + * STB support + * New functions for CPU image data manipulation +- Remove raylib-2.0.0-api-version.patch: upstreamed +- Remove BuildRequires libglfw-devel: + Using intern libraries now. They want raylib to be like this. +- Adding BR for libXcursor-devel, libXinerama-devel, libXrandr-devel + and cmake explicitly now. + +------------------------------------------------------------------- +Fri May 18 14:12:17 UTC 2018 - mvetter@suse.com + +- Update to 2.0.0rc1: + * Complete redesign of audio module to use mini_al audio library + * Support AppVeyor and Travis CI (continuous integration) build + * Reviewed raymath.h for better consistency and performance (inlining) + * Refactor all #define SUPPORT_* into a single config.h + * Support TCC compiler + * For complete list see CHANGELOG file +- Remove BR openal-soft-devel +- Add packageconfig file +- Add raylib-2.0.0-api-version.patch: api version should be 2 +- Switch from meson to CMake + +------------------------------------------------------------------- +Fri Nov 3 11:50:40 UTC 2017 - jengelh@inai.de + +- Description grammar update. + +------------------------------------------------------------------- +Mon Oct 23 09:03:01 UTC 2017 - mvetter@suse.com + +- Update to 1.8.0: + * New Image generation functions: Gradient, Checked, Noise, Cellular... + * New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot... + * New Shaders and Materials systems to support PBR materials + * Custom Android APK build pipeline with simple Makefile + * Complete review of rlgl layer functionality + * Complete review of raymath functionality +- Remove root-meson.build and src-meson.build: contained in new + release + +------------------------------------------------------------------- +Fri Sep 8 16:18:40 UTC 2017 - jengelh@inai.de + +- Update package summaries and RPM category. + +------------------------------------------------------------------- +Tue Jun 13 13:34:59 UTC 2017 - mvetter@suse.com + +- BuildRequires: libglfw-devel >= 3.2 + because glfwSetWindowMonitor etc only come in 3.2 + +------------------------------------------------------------------- +Sun Jun 11 09:24:49 UTC 2017 - mvetter@suse.com + +- Add option to meson file to build with gnu99 because: + * CLOCK_MONOTONIC macro + * var init in for loops (c99) + +------------------------------------------------------------------- +Sun Jun 11 06:40:24 UTC 2017 - mvetter@suse.com + +- Remove raylig-use-optflags.patch: Using meson for build + +------------------------------------------------------------------- +Thu Jun 8 15:14:33 UTC 2017 - mvetter@suse.com + +- Use meson to build raylib: + * Takes care of creating proper so versioning + * Install works (where their makefiles didnt) +- Add root-meson.build +- Add src-meson.build + Meson files will be in next release, see: + https://github.com/raysan5/raylib/pull/297 + +------------------------------------------------------------------- +Sun Jun 4 19:36:11 UTC 2017 - mvetter@suse.com + +- Move Requires openal-soft-devel to devel package + +------------------------------------------------------------------- +Mon May 29 17:19:06 UTC 2017 - mvetter@suse.com + +- Add Requires: openal-soft-devel + It will be needed when one uses raylib + +------------------------------------------------------------------- +Mon May 29 16:47:32 UTC 2017 - mvetter@suse.com + +- Add OpenAL to BuildRequires +- Add raylig-use-optflags.patch: allow passing of optflags + See: https://github.com/raysan5/raylib/pull/295 + +------------------------------------------------------------------- +Mon May 29 10:26:46 UTC 2017 - mvetter@suse.com + +- Inital package of raylib version 1.7.0 diff --git a/raylib.obsinfo b/raylib.obsinfo new file mode 100644 index 0000000..deac8b8 --- /dev/null +++ b/raylib.obsinfo @@ -0,0 +1,4 @@ +name: raylib +version: 5.5 +mtime: 1731932470 +commit: c1ab645ca298a2801097931d1079b10ff7eb9df8 diff --git a/raylib.spec b/raylib.spec new file mode 100644 index 0000000..5f71e9e --- /dev/null +++ b/raylib.spec @@ -0,0 +1,91 @@ +# +# spec file for package raylib +# +# Copyright (c) 2026 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: raylib +Version: 5.5 +Release: 0 +Summary: C library for learning video game programming +License: Zlib +Group: Development/Libraries/C and C++ +URL: https://www.raylib.com +Source: raylib-%{version}.tar.xz +Patch0: raylib-CVE-2025-15533-CVE-2025-15534.patch +BuildRequires: Mesa-libGL-devel +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: libXcursor-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrandr-devel +# raylib ships an in-tree glfw that is a copy of *a* git revision of upstream glfw +# containing features they need. They are unhappy that it takes such +# a long time for 3.4 to be released. So ship it. +#BuildRequires: libglfw-devel >= 3.4 + +%description +A C library for learning video game programming. +raylib is inspired by the Borland BGI graphics library and by the XNA framework. + +%package -n raylib-devel +Summary: Development files for %{name} +Group: Development/Libraries/C and C++ +Requires: libraylib550 = %{version} +Requires: openal-soft-devel + +%description -n raylib-devel +Development files and headers for %{name}. + +%package -n libraylib550 +Summary: C library for learning video game programming +Group: System/Libraries + +%description -n libraylib550 +A C library for learning video game programming. + +%prep +%autosetup -p1 + +%build +%cmake \ + -DBUILD_EXAMPLES=OFF \ + -DPLATFORM=Desktop \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DOpenGL_GL_PREFERENCE=GLVND \ + -DUSE_EXTERNAL_GLFW=OFF + +%install +%cmake_install + +%post -n libraylib550 -p /sbin/ldconfig +%postun -n libraylib550 -p /sbin/ldconfig + +%files -n libraylib550 +%license LICENSE +%{_libdir}/libraylib.so.* + +%files -n raylib-devel +%doc CHANGELOG README.md +%{_includedir}/raylib.h +%{_includedir}/raymath.h +%{_includedir}/rlgl.h +%{_libdir}/libraylib.so +%{_libdir}/pkgconfig/raylib.pc +%{_libdir}/cmake/raylib/ + +%changelog -- 2.51.1 From a69459cd3575c7053b466578129771f1465c1affdec32c653363dddea5f1c80a Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Mon, 19 Jan 2026 13:14:10 +0000 Subject: [PATCH 4/6] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=45 --- raylib-5.5.obscpio | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 raylib-5.5.obscpio diff --git a/raylib-5.5.obscpio b/raylib-5.5.obscpio deleted file mode 100644 index e862d17..0000000 --- a/raylib-5.5.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:669db82a104664c766bd0fa86a923df49fccc9c8abbabf37060854fbce8d26c4 -size 76018702 -- 2.51.1 From be5db0376284cab84b3f1bf6e2adb2dd3b51b123a142591d33a97e6dcca1b933 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Mon, 19 Jan 2026 13:16:37 +0000 Subject: [PATCH 5/6] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=46 --- raylib.obsinfo | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 raylib.obsinfo diff --git a/raylib.obsinfo b/raylib.obsinfo deleted file mode 100644 index deac8b8..0000000 --- a/raylib.obsinfo +++ /dev/null @@ -1,4 +0,0 @@ -name: raylib -version: 5.5 -mtime: 1731932470 -commit: c1ab645ca298a2801097931d1079b10ff7eb9df8 -- 2.51.1 From 7ca0429895d481b6552f8181ae2e72e9ee2a735cd672dcbf2b0ee81c7849c2fb Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Mon, 19 Jan 2026 13:37:41 +0000 Subject: [PATCH 6/6] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=47 --- raylib-5.5.obscpio | 3 +++ raylib.obsinfo | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 raylib-5.5.obscpio create mode 100644 raylib.obsinfo diff --git a/raylib-5.5.obscpio b/raylib-5.5.obscpio new file mode 100644 index 0000000..041f477 --- /dev/null +++ b/raylib-5.5.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77a9284668d1572e640f201a7d3ec6450b7f1e87f2486aa233e715e1d2f304be +size 19018765 diff --git a/raylib.obsinfo b/raylib.obsinfo new file mode 100644 index 0000000..deac8b8 --- /dev/null +++ b/raylib.obsinfo @@ -0,0 +1,4 @@ +name: raylib +version: 5.5 +mtime: 1731932470 +commit: c1ab645ca298a2801097931d1079b10ff7eb9df8 -- 2.51.1