[build] Make raylib available in package managers
raysan5 opened this issue ยท 43 comments
This issue is a follow up of #401 . Just moved to a new issue flor clearness.
Currently supported package managers:
- macOS - Homebrew
- Windows - Chocolatey
- Windows - vcpkg
- Linux - openSUSE
- Linux - Arch User Repositories (AUR)
- Linux - Linuxbrew
- Linux - Gentoo
- Linux - Debian
- BSD - FreeBSD
If you are able and willing to help, you're welcome!
Just noticed that openSUSE (@jubalh) and Arch (@nounoursheureux) are not updated to raylib 2.0, still 1.8.
@raysan5 thats wrong. openSUSE Tumbleweed is updated to 2.0 on 24th July in the devel project https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib. From then it goes through test rounds and landed on 28 July on Factory project. And from there will be shipped in the next snapshot.
@jubalh oh, sorry! just look for it on the net and found that version... Thanks for the update! ๐ ๐
I have experience doing debian packaging; I can offer my assistance for this. Though, I do want you to know that there are MANY different options to do this. Though this library is open source, I'd recommend creating a binary package (as they are a tad simplier to work with).
What's the status though on the CMake stuff? I know I helped with it a while back, but I'm really out of the loop on it. There does exist a command in CMake to generate the debian stuffs: https://cmake.org/cmake/help/v3.0/module/CPackDeb.html
There does exist a command in CMake to generate the debian stuffs
CI is configured to push a binary package (tarball) to the Github releases page whenever a new release is tagged, so we could use that. Anyone interested in trying to get it into the official repositories?
There are a couple issues making packaging a bit bothersome:
- The binary tarball is small, but it cannot be used to create a package; everything must be built from source.
- Using the snapshot tarball from GitHub will work but it has a lot of extra pre-built stuff in the
release
directory that we don't want. It seems like this sort of stuff should be on a separate branch or repo, or just left to the GitHub releases page. - Would be nice to have a release with #608 since it fixes not only CMake issues, but building against the latest glfw release. (It does not cleanly apply directly to 2.0.0.)
Now that we have CI and automatic release generation, maybe we can avoid release
folder?
Probably build system needs to be updated to output to some default system folder?
@QuLogic Is it right if I publish a 2.1-dev release?
A 2.1 or 2.1-dev release would be good from my PoV. It'd get the extra keyboard keys added today out "into circulation" faster. ๐
releases directory removed in commit d6241d1
Makefile outputs to RAYLIB_RELEASE_PATH
automatically on building.
Need some time for a 2.1-dev
release...
No worries at all. ๐
A package for Raspbian would be awesome.
The installation instructions for RaspberryPi in the wiki are broken (I'll open a separate issue soon).
EDIT: The instructions should work fine with the latest version of raylib (it failed on a dep that wasn't actually needed).
One more: microsoft/vcpkg#5946
Nice one! Already wanted to do the vcpkg myself :)
The Arch Linux package has been moved from the AUR to the official repository ! I am no longer the maintainer.
Yes the new maintainer should do it soon since it has been flagged as out of date. I can't give you more details because I don't know them haha
I am wondering if we should start incrementing SOVERSION
every 2.x release to prevent applications dynamically linked against one raylib version from having a later, backwards incompatible, raylib loaded. Thoughts?
I am wondering if we should start incrementing SOVERSION every 2.x release to prevent applications dynamically linked against one raylib version from having a later, backwards incompatible, raylib loaded. Thoughts?
I am saying this since years (on various issues here and on the chat) :-)
See:
- #293
- #299
- Review on #417
- #401 (comment)
- #744 (comment)
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).
@jubalh, I've missed this comment of yours. I just noticed the discussion around breakage on minor versions. I am in favor of this. I would suggest that we start incrementing SOVERSION directly after every software release with the normal library versioning scheme unaffected.
I was thinking in a way to increment API version consistently with library version.
Considering API and ABI are very prone to changes, maybe we can just use RAYLIB_API_VERSION = 250
and increase that number aligned with 2.5.0. What do you think?
@raysan5 incrementing API version directly after a release would allow the git version to be installed alongside the released version and binaries linked against an old version or explicitly requesting the released version would continue to work.
If we increment before the release, this wouldn't work.
What we could do is set to 251 now, 260 on release and 261 directly after... ? (granted that 2.6.0 is the next version)
How often should we increase the revision number? I mean, 252-253-254...
@raysan5 What we absolutely want is for every release to have a different API version. A different API version for the git trunk is nice to have because issue reporters are often told to try the newest git snapshot, so we shouldn't accidentally break their already linked applications if they install from git.
Breakage will still happen, if you install an unreleased git snapshot, dynamically link, and come back later to install a newer version from git. But if you do that, we'll assume you're experienced enough to expect breakage and to deal with it.
To sum up:
- Just before tagging the release:
- set software version to new version
- set API version to software version / 100
- Directly after tagging the release:
- increment API version by one
Both commits can be done together. Thoughts?
AppGet for Windows is missing from the list.
any fans of alternate build systems here?
I'm looking for someone to finish this xmake package
@elitepleb oh! looks nice! :D
Might look at some of the opensuse packaging to make a fedora copr repo, no promises though.
raylib is already available in some package managers. I think this issue is not the best way to track those packages... Closing the issue.
is a Raylib package available on Debian?
is a Raylib package available on Debian?
No it is not.
Here you can see where it is available: https://repology.org/project/raylib/versions
I know this issues is closed, but it would be really awesome if a Debian package could be created, given that apt
is one the most common and widely used package managers.
Hello there,
I've developed an ebuild for Portage in Gentoo, and I'm considering making it available to the community. While it's not public yet, I'm keen to gauge interest. If there's interest, I'll be happy to maintain it and potentially work on getting it included in the official upstream repository.
Please let me know if you'd be interested in this ebuild, and if you have any advice on the process of contributing to the official upstream, I'd greatly appreciate your guidance.
Thank you for your time and consideration!
Please let me know if you'd be interested in this ebuild
You don't need to ask it raylib upstream. Just push it there.
if you have any advice on the process of contributing to the official upstream, I'd greatly appreciate your guidance
It's pretty well documented:
https://wiki.gentoo.org/wiki/Proxied_Maintainer_FAQ
https://wiki.gentoo.org/wiki/GitHub_Pull_Requests
Let me know if you need more help.
Would it be a good idea to link the the Arch official repo instead?
Current link to the AUR does not exist. I can see how this might create an issue here and there.
In the readme we have a repology badge that links to:
https://repology.org/project/raylib/versions
Where people can see all repos.
@jubalh That badge is actually amazing! It would be nice if more packages were updated to 5.0.
Yes, FreeBSD and Guix seem out of date for example
But some of the outdated ones are also older/released distros, like openSUSE Leap 15.1 or nixpkgs stable 21.11. So those are normal :)
In the readme we have a repology badge that links to: https://repology.org/project/raylib/versions
Where people can see all repos.
I'm not sure how to get to that link from the README. All I found was this thread. But, if the information is there and I'm just too dumb to find it, that's ok.
I'm not sure how to get to that link from the README
You go to the README. You look at the badges on top. You click on in repositories
Got it. Well, if it won't cause any trouble. then it should be fine. Sorry for the inconveniences.