Skip to content
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 #613

Closed
raysan5 opened this issue Jul 30, 2018 · 30 comments
Closed

[build] Make raylib available in package managers #613

raysan5 opened this issue Jul 30, 2018 · 30 comments

Comments

@raysan5
Copy link
Owner

@raysan5 raysan5 commented Jul 30, 2018

This issue is a follow up of #401 . Just moved to a new issue flor clearness.

Currently supported package managers:

If you are able and willing to help, you're welcome!

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Jul 30, 2018

Just noticed that openSUSE (@jubalh) and Arch (@nounoursheureux) are not updated to raylib 2.0, still 1.8.

@jubalh

This comment has been minimized.

Copy link
Contributor

@jubalh jubalh commented Jul 30, 2018

@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.

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Jul 30, 2018

@jubalh oh, sorry! just look for it on the net and found that version... Thanks for the update! 👍 😄

@define-private-public

This comment has been minimized.

Copy link
Contributor

@define-private-public define-private-public commented Jul 31, 2018

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

@a3f

This comment has been minimized.

Copy link
Collaborator

@a3f a3f commented Jul 31, 2018

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?

@QuLogic

This comment has been minimized.

Copy link

@QuLogic QuLogic commented Aug 19, 2018

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.)
@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Aug 19, 2018

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?

@justinclift

This comment has been minimized.

Copy link
Contributor

@justinclift justinclift commented Aug 19, 2018

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. 😄

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Aug 25, 2018

releases directory removed in commit d6241d1

Makefile outputs to RAYLIB_RELEASE_PATH automatically on building.

Need some time for a 2.1-dev release...

@justinclift

This comment has been minimized.

Copy link
Contributor

@justinclift justinclift commented Aug 25, 2018

No worries at all. 😄

@carlsmith

This comment has been minimized.

Copy link

@carlsmith carlsmith commented Sep 14, 2018

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).

@myd7349

This comment has been minimized.

Copy link
Contributor

@myd7349 myd7349 commented Apr 5, 2019

One more: microsoft/vcpkg#5946

@jubalh

This comment has been minimized.

Copy link
Contributor

@jubalh jubalh commented Apr 5, 2019

Nice one! Already wanted to do the vcpkg myself :)

@wbrbr

This comment has been minimized.

Copy link
Contributor

@wbrbr wbrbr commented Jun 2, 2019

The Arch Linux package has been moved from the AUR to the official repository ! I am no longer the maintainer.

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Jun 2, 2019

@wbrbr oh! nice! is someone going to update it to latest release?

@wbrbr

This comment has been minimized.

Copy link
Contributor

@wbrbr wbrbr commented Jun 2, 2019

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

@a3f

This comment has been minimized.

Copy link
Collaborator

@a3f a3f commented Jun 2, 2019

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?

@jubalh

This comment has been minimized.

Copy link
Contributor

@jubalh jubalh commented Jun 3, 2019

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:

@a3f

This comment has been minimized.

Copy link
Collaborator

@a3f a3f commented Jun 4, 2019

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.

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Jun 4, 2019

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?

@a3f

This comment has been minimized.

Copy link
Collaborator

@a3f a3f commented Jun 4, 2019

@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.

@a3f

This comment has been minimized.

Copy link
Collaborator

@a3f a3f commented Jun 4, 2019

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)

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Jun 4, 2019

How often should we increase the revision number? I mean, 252-253-254...

@a3f

This comment has been minimized.

Copy link
Collaborator

@a3f a3f commented Jun 5, 2019

@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?

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Jun 6, 2019

@a3f ok, I understand, it looks ok this way.

@VelocityIsntSpeed

This comment has been minimized.

Copy link
Contributor

@VelocityIsntSpeed VelocityIsntSpeed commented Jul 2, 2019

AppGet for Windows is missing from the list.

@elitepleb

This comment has been minimized.

Copy link
Contributor

@elitepleb elitepleb commented Oct 8, 2019

any fans of alternate build systems here?
I'm looking for someone to finish this xmake package

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Oct 8, 2019

@elitepleb oh! looks nice! :D

@sudopluto

This comment has been minimized.

Copy link

@sudopluto sudopluto commented Oct 23, 2019

Might look at some of the opensuse packaging to make a fedora copr repo, no promises though.

@raysan5

This comment has been minimized.

Copy link
Owner Author

@raysan5 raysan5 commented Dec 4, 2019

raylib is already available in some package managers. I think this issue is not the best way to track those packages... Closing the issue.

@raysan5 raysan5 closed this Dec 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.