{"action":"created","issue":{"url":"https://api.github.com/repos/opentomb/OpenTomb/issues/115","labels_url":"https://api.github.com/repos/opentomb/OpenTomb/issues/115/labels{/name}","comments_url":"https://api.github.com/repos/opentomb/OpenTomb/issues/115/comments","events_url":"https://api.github.com/repos/opentomb/OpenTomb/issues/115/events","html_url":"https://github.com/opentomb/OpenTomb/issues/115","id":92798428,"number":115,"title":"Handling of external libraries","user":{"login":"cochrane","id":2102135,"avatar_url":"https://avatars.githubusercontent.com/u/2102135?v=3","gravatar_id":"","url":"https://api.github.com/users/cochrane","html_url":"https://github.com/cochrane","followers_url":"https://api.github.com/users/cochrane/followers","following_url":"https://api.github.com/users/cochrane/following{/other_user}","gists_url":"https://api.github.com/users/cochrane/gists{/gist_id}","starred_url":"https://api.github.com/users/cochrane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cochrane/subscriptions","organizations_url":"https://api.github.com/users/cochrane/orgs","repos_url":"https://api.github.com/users/cochrane/repos","events_url":"https://api.github.com/users/cochrane/events{/privacy}","received_events_url":"https://api.github.com/users/cochrane/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/opentomb/OpenTomb/labels/Discussion","name":"Discussion","color":"bfe5bf"},{"url":"https://api.github.com/repos/opentomb/OpenTomb/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-07-03T05:48:22Z","updated_at":"2015-07-03T11:38:48Z","closed_at":null,"body":"We need to converge with this discussion somewhere because right now, it is all over the place. So here are the possibilities for handling the dependencies our code has that I've been able to think of:\r\n\r\n-   Store the code directly in the repository. Pro: Very easy; no setup required; inherently works on all platforms. Can make own modifications. Cons: Can make own modifications that aren't visible to the outside world; update difficult.\r\n-   Store the binaries directly. Pro: Update becomes easy. Con: Need at least three versions of everything (Mac, Linux, Windows), possibly more depending on 32/64 bit. Any new platform (does FreeBSD have OpenGL?) increases the pain.\r\n-   Hope the user has installed the libraries. Pro: Nothing to do on our part except edit the Readme.md. Con: No idea who uses what version of what library.\r\n-   Use external Git references to the libraries (to known tags). Pro: Using official version; no modifications make it back. Same ease of use as storing in repository. Con: Git external references are really hard. Especially if some library we want doesn't have a git repository; there's some Git/SVN bridge but I've never tried it.\r\n\r\nA few more notes:\r\n-   SDL is funny because the Mac version is a different format (Framework) than any other library. That's my duty to figure out, of course, for everyone else that's not an issue.\r\n-   How big a problem is incompatibility really? Probably not that big; incompatible OpenGL drivers hurt way more. But of course it takes only one issue to make the whole thing less fun.\r\n-   We definitely need some way to deal with our own version of OpenAL. It does things the normal version doesn't, and I don't want to throw that away without very good reason. We could put it in a separate repository here and then use it like any other third-party library, of course.\r\n-   My personal vote would be for Git external references, I just have very little experience with actually using them."},"comment":{"url":"https://api.github.com/repos/opentomb/OpenTomb/issues/comments/118324246","html_url":"https://github.com/opentomb/OpenTomb/issues/115#issuecomment-118324246","issue_url":"https://api.github.com/repos/opentomb/OpenTomb/issues/115","id":118324246,"user":{"login":"Lwmte","id":3331699,"avatar_url":"https://avatars.githubusercontent.com/u/3331699?v=3","gravatar_id":"","url":"https://api.github.com/users/Lwmte","html_url":"https://github.com/Lwmte","followers_url":"https://api.github.com/users/Lwmte/followers","following_url":"https://api.github.com/users/Lwmte/following{/other_user}","gists_url":"https://api.github.com/users/Lwmte/gists{/gist_id}","starred_url":"https://api.github.com/users/Lwmte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lwmte/subscriptions","organizations_url":"https://api.github.com/users/Lwmte/orgs","repos_url":"https://api.github.com/users/Lwmte/repos","events_url":"https://api.github.com/users/Lwmte/events{/privacy}","received_events_url":"https://api.github.com/users/Lwmte/received_events","type":"User","site_admin":false},"created_at":"2015-07-03T11:38:48Z","updated_at":"2015-07-03T11:38:48Z","body":"Ok then, I thought libsndfile supports OGG/Vorbis itself! Maybe using libsndfile for streaming will solve current loading lag issue with soundtracks.\r\n\r\nGenerally - I'm all for removing third-party libs from source code, and using third approach offered by Cochrane - just put an info about version requirements into Readme, and hope that user will install libraries for himself. Because it's already happening anyway (I needed to install SDL and zlib anyway, and in case of zlib, I had funny time finding pre-compiled libs on the internet, as I'm too lazy and dumb to compile them myself).\r\n\r\nNot sure if this approach will break nightly builds, we need to ask vobject about that... So far it worked with external SDL and zlib."}}