-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[build] Make raylib available in package managers #401
Comments
@a3f well, openSUSE has raylib in its official repository for quite some time already. Edit: See https://github.com/raysan5/raylib/wiki/Install-on-GNU-Linux OBS can also built Arch Linux, Debian, Fedora... packages if people are interested. |
Good to know, amended the list. I should indeed have checked the Wiki first… |
Hi @raysan5 i need maybe for port source code with freebsd patches (higher release ?) Thank you M. |
BTW: the meson build files use library versioning. Its also important to increase the major version number of the library version upon every ABI incompatible release (no need to increase general raylib major version just shared object major version number). |
Optionally yes, to both. |
@OvermindDL1 why do we do this only optionally so far? Can you point me to the lines? |
Raylib itself doesn't yet, but a PR could fix that, it's a couple lines added in both the Makefile and the CMakefile.txt. |
So with optionally you meant 'it is in theory possible', now I get it. Well, I am aware of that ;) In any case, if several Linux distributions package raylib, and each uses a different build system, and some has features others don't that might not be an ideal case. @OvermindDL1 if you know how to do it for CMake it would be nice to do it there, I would switch the openSUSE package to use CMake then instead of meson. I am afraid that upon version changes it is more easy to forgot to increase the so nr if you have 10 places to do it. |
@jubalh In https://github.com/raysan5/raylib/blob/master/src/CMakeLists.txt you'd want to add a new line of something like (I see that things like set_target_properties(${RAYLIB} PROPERTIES
SOVERSION "${raylib_VERSION_MAJOR}.${raylib_VERSION_MINOR}"
) Then when the INSTALL build command is run then it will output the library with full version information in the linux standard way on linux along with symlinks to one with just the major and minor version, one to just the major version, and one to the name itself (on windows it will not do this, but it will bake the version number into the file metadata so windows tools can introspect it and so forth on each platform). You would of course generally use a VERSION file with a full semver and just read it in normally though, be sure to change the right numbers as the API changes over time. |
For note, there are This is all in the docs. :-) EDIT: That CMakeLists.txt I looked at above is pretty messy, it could be substantially shrunk. Plus it seems to only have the option of compiling a static or a shared version of the library, it doesn't make both (I tend to opt for both to be generated by default with an option to disable one or the other). It looks like it needs a bit of an overhaul. EDIT2: Also: file(GLOB raylib_sources *.c) This makes it so not all build scripts generated (most notable in visual studio) from picking up new files automatically without rerunning cmake to regenerate the project, where if the files are listed explicitly then it will update the project properly and automatically. |
@OvermindDL1, @jubalh, if you think About getting all |
Did you look at the |
Of course, that's why I said what I wrote above ;)
I am not used to CMake either, that's why I wrote the meson files (before the CMake ones were added). In any case, for now I will stay with the meson files, which I know, and take care of them. |
@jubalh agree that an unified build system that could work for most of distros would be the ideal solution... in the meantime:
That's perfect for me. |
I'm the maintainer of the AUR package :) |
no plan to deprecate Makefiles, in my opinion, still the simpler and easy-to-use build system I know. |
@nounoursheureux AFAIK the are the most complete ones (also taking care of Android stuff etc). |
Is it possible to add library versioning in some way to plain Makefiles? Maybe something like:
|
@raysan5 it's possible. |
See raysan5#401 for the discussion.
See raysan5#401 for the discussion.
See raysan5#401 for the discussion.
See raysan5#401 for the discussion. Also bumps version number to 1.9.2 without the -dev, because neither ELF nor MachO like such a suffix. The -dev suffix will have to be restricted to the git tags.
See raysan5#401 for the discussion. Also bumps version number to 1.9.2 without the -dev, because neither ELF nor MachO like such a suffix. The -dev suffix will have to be restricted to the git tags.
Hi @Martinfx! Great work! What do you need to push freebsd port into raylib? Makefile changes? library changes? Maybe packages folder? Tell me! |
Hi @raysan5 now only waiting for https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225402 if you will make new release i only update makefile in ports. |
@Martinfx |
@a3f I have my fork version with patches for Freebsd from https://github.com/Martinfx/raylib |
I've created an issue about them: Martinfx/FreeBSD-Ports#1. |
Hi @raysan5 could you make small release with my commits for freebsd package? (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225402) We have all but only waiting for new release. Thank you very much. |
Hi @Martinfx, just let me do a couple of changes and I'll do a new "small" release. Changes:
|
ok, done. just waiting for CI checks and launching a new release (v1.9.3). Please, note this is a develop release and even being stable and usable there are still bugs to review and some features to add. It's just a step towards 2.0. |
@Martinfx can you not just add patches to your FreeBSD port instead of triggering a release? :) |
@jubalh Yes, we can and is more work but better is all fixes in upstream :-) |
Noone doubts that fixes in upstream are necessary. But triggering a release for a downstream package is, in my opinion :) |
@raysan5 this is port for freebsd https://www.freshports.org/devel/raylib/ ! :-) |
@Martinfx I was under the impression that OSS is used as audio backend on FreeBSD? |
@a3f Yes is used. |
Wouldn't the OpenAL prerequisite for the package be unnecessary then or do you get build errors? |
@a3f Yes OpenAL prerequisite is redundant because is now sound backed mini_al. I will update port. |
Gentoo ebuild is submitted here https://bugs.gentoo.org/652848 . |
@gen2brain nice. Thank you! Would you mind adding an 1.8.0 (stable) ebuild too besides having the git one? |
@jubalh ebuild can just be renamed to e.g. raylib-1.9.4.ebuild and it will work, but only for -dev releases (until 2.0 is out). Stable 1.8.0 uses OpenAL, and don't have everything that is needed in CMake (some recent additions). |
I see. I always forget about the OpenAL. |
@raysan5 Can you tag and build a new dev release ? |
@mandeep from my side: no. But also not actively working on it. |
This issue became too long, I'm moving discussion to another issue for clearness > #613 |
This would ease deployment quite a bit for users. The package should install a tagged release (e.g.
1.9.4-dev).
If a more up-to-date or development snapshot can be requested, it should download the tarball for the newest
master
branch commit.See Homebrew/homebrew-core@7f7b4bc for an example.
macOS
Windows
Linux
BSD
If you are able and willing to help, please tell.
The text was updated successfully, but these errors were encountered: