From 7feee2e4997ba0e7f904afd3a14f7a2057c3964a7e4d651b69e4a1358c67d17f Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Tue, 31 Mar 2020 09:29:16 +0000 Subject: [PATCH 1/5] - 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 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=20 --- 2.5.0.tar.gz | 3 --- 3.0.0.tar.gz | 3 +++ raylib.changes | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ raylib.spec | 27 +++++++++++------------ 4 files changed, 74 insertions(+), 17 deletions(-) delete mode 100644 2.5.0.tar.gz create mode 100644 3.0.0.tar.gz diff --git a/2.5.0.tar.gz b/2.5.0.tar.gz deleted file mode 100644 index 8bf0470..0000000 --- a/2.5.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa947329975bdc9ea284019f0edc30ca929535dc78dcf8c19676900d67a845ac -size 73808565 diff --git a/3.0.0.tar.gz b/3.0.0.tar.gz new file mode 100644 index 0000000..582afc3 --- /dev/null +++ b/3.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d9c77695f1206b56a5d49d0c1b4087d6ac2679611eee16b36c4b9871036cca7 +size 92255617 diff --git a/raylib.changes b/raylib.changes index 15ce626..b2259ce 100644 --- a/raylib.changes +++ b/raylib.changes @@ -1,3 +1,61 @@ +------------------------------------------------------------------- +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 diff --git a/raylib.spec b/raylib.spec index 6b1f0e9..3045547 100644 --- a/raylib.spec +++ b/raylib.spec @@ -1,7 +1,7 @@ # # spec file for package raylib # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,12 +12,12 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: raylib -Version: 2.5.0 +Version: 3.0.0 Release: 0 Summary: C library for learning video game programming License: Zlib @@ -39,21 +39,21 @@ 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: libraylib2 = %{version} +Requires: libraylib301 = %{version} Requires: openal-soft-devel %description -n raylib-devel Development files and headers for %{name}. -%package -n libraylib2 +%package -n libraylib301 Summary: C library for learning video game programming Group: System/Libraries -%description -n libraylib2 +%description -n libraylib301 A C library for learning video game programming. %prep -%setup -q -n raylib-2.5.0 +%setup -q -n raylib-3.0.0 %build %cmake \ @@ -62,17 +62,16 @@ A C library for learning video game programming. %install %cmake_install -#rm %{buildroot}%{_libdir}/libraylib.a -%post -n libraylib2 -p /sbin/ldconfig -%postun -n libraylib2 -p /sbin/ldconfig +%post -n libraylib301 -p /sbin/ldconfig +%postun -n libraylib301 -p /sbin/ldconfig -%files -n libraylib2 -%{_libdir}/libraylib.so.2 -%{_libdir}/libraylib.so.2.5.0 +%files -n libraylib301 +%{_libdir}/libraylib.so.301 +%{_libdir}/libraylib.so.3.0.0 %files -n raylib-devel -%license LICENSE.md +%license LICENSE %doc CHANGELOG README.md %{_includedir}/raylib.h %{_libdir}/libraylib.so From ea767ee7ca8b5ad8735525fa8143d8c1604a6437fcb28858e1c8c288ab4d19c4 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 1 Apr 2020 14:27:38 +0000 Subject: [PATCH 2/5] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=21 --- 3.0.0.tar.gz | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/3.0.0.tar.gz b/3.0.0.tar.gz index 582afc3..ff8e77f 100644 --- a/3.0.0.tar.gz +++ b/3.0.0.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d9c77695f1206b56a5d49d0c1b4087d6ac2679611eee16b36c4b9871036cca7 -size 92255617 +oid sha256:164d1cc1710bb8e711a495e84cc585681b30098948d67d482e11dc37d2054eab +size 92254615 From 27e7b5423b319d0a95762ed5bc91537ce2fb0b0c863b7b73aace2356c8e3fb95 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Tue, 28 Apr 2020 07:29:09 +0000 Subject: [PATCH 3/5] Accepting request 798060 from home:Charadon:branches:openSUSE:Factory I noticed the following header files were missing from the devel package: physac.h raudio.h raymath.h rlgl.h So I fixed the spec file to include them. OBS-URL: https://build.opensuse.org/request/show/798060 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=22 --- raylib.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/raylib.spec b/raylib.spec index 3045547..bb6b1d0 100644 --- a/raylib.spec +++ b/raylib.spec @@ -62,6 +62,9 @@ A C library for learning video game programming. %install %cmake_install +for f in build/src/*.h; do + install -Dm 644 "$f" "$RPM_BUILD_ROOT/usr/include/$(basename $f)" +done %post -n libraylib301 -p /sbin/ldconfig %postun -n libraylib301 -p /sbin/ldconfig @@ -74,6 +77,10 @@ A C library for learning video game programming. %license LICENSE %doc CHANGELOG README.md %{_includedir}/raylib.h +%{_includedir}/raudio.h +%{_includedir}/physac.h +%{_includedir}/raymath.h +%{_includedir}/rlgl.h %{_libdir}/libraylib.so %{_libdir}/pkgconfig/raylib.pc %{_libdir}/cmake/raylib/ From 55e6709965a5a618873050cde129f2fb4454874d71eed6d80e02169475e70039 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 29 Apr 2020 11:37:53 +0000 Subject: [PATCH 4/5] Accepting request 798847 from home:Charadon:branches:devel:libraries:c_c++ - Added missing development header files. OBS-URL: https://build.opensuse.org/request/show/798847 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=23 --- raylib.changes | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/raylib.changes b/raylib.changes index b2259ce..264dbab 100644 --- a/raylib.changes +++ b/raylib.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +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 From 3964b1ecd5ff40f7da8d9bc281fba662df5211e39f4149f90eed7991105813ff Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 29 Apr 2020 20:18:53 +0000 Subject: [PATCH 5/5] - 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. OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=24 --- 3.0.0.tar.gz | 3 --- raylib-3.0.0-noexamples.patch | 16 ++++++++++++++++ raylib-noexamples-3.0.0.tar.gz | 3 +++ raylib.changes | 11 ++++++++++- raylib.spec | 4 +++- 5 files changed, 32 insertions(+), 5 deletions(-) delete mode 100644 3.0.0.tar.gz create mode 100644 raylib-3.0.0-noexamples.patch create mode 100644 raylib-noexamples-3.0.0.tar.gz diff --git a/3.0.0.tar.gz b/3.0.0.tar.gz deleted file mode 100644 index ff8e77f..0000000 --- a/3.0.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:164d1cc1710bb8e711a495e84cc585681b30098948d67d482e11dc37d2054eab -size 92254615 diff --git a/raylib-3.0.0-noexamples.patch b/raylib-3.0.0-noexamples.patch new file mode 100644 index 0000000..eb79eb4 --- /dev/null +++ b/raylib-3.0.0-noexamples.patch @@ -0,0 +1,16 @@ +diff -urEbw raylib-3.0.0/CMakeLists.txt raylib-3.0.0.new/CMakeLists.txt +--- raylib-3.0.0/CMakeLists.txt 2020-04-01 11:07:01.000000000 +0200 ++++ raylib-3.0.0.new/CMakeLists.txt 2020-04-29 22:12:32.184784329 +0200 +@@ -43,12 +43,4 @@ + + add_subdirectory(src) + +-if (${BUILD_EXAMPLES}) +- add_subdirectory(examples) +-endif() +- +-if (${BUILD_GAMES}) +- add_subdirectory(games) +-endif() +- + enable_testing() diff --git a/raylib-noexamples-3.0.0.tar.gz b/raylib-noexamples-3.0.0.tar.gz new file mode 100644 index 0000000..b32779e --- /dev/null +++ b/raylib-noexamples-3.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be17b6b39bb0e742c0df1e683b49853981854aefa25a758ddcf40f71da8b8436 +size 4390778 diff --git a/raylib.changes b/raylib.changes index 264dbab..27c9d17 100644 --- a/raylib.changes +++ b/raylib.changes @@ -1,7 +1,16 @@ +------------------------------------------------------------------- +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 diff --git a/raylib.spec b/raylib.spec index bb6b1d0..9f82f1f 100644 --- a/raylib.spec +++ b/raylib.spec @@ -23,7 +23,8 @@ Summary: C library for learning video game programming License: Zlib Group: Development/Libraries/C and C++ URL: http://www.raylib.com -Source: https://github.com/raysan5/raylib/archive/%{version}.tar.gz +Source: https://github.com/raysan5/raylib/releases/download/%{version}/raylib-noexamples-%{version}.tar.gz +Patch0: raylib-3.0.0-noexamples.patch BuildRequires: Mesa-libGL-devel BuildRequires: cmake BuildRequires: gcc-c++ @@ -54,6 +55,7 @@ A C library for learning video game programming. %prep %setup -q -n raylib-3.0.0 +%patch0 -p1 %build %cmake \