{"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":1,"created_at":"2015-07-03T05:48:22Z","updated_at":"2015-07-03T11:10:47Z","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/118317711","html_url":"https://github.com/opentomb/OpenTomb/issues/115#issuecomment-118317711","issue_url":"https://api.github.com/repos/opentomb/OpenTomb/issues/115","id":118317711,"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:10:47Z","updated_at":"2015-07-03T11:10:47Z","body":"Cochrane, is it possible to install/compile/link OpenAL Soft (http://kcat.strangesoft.net/openal.html) for Mac along with stock OpenAL? Bundled version isn't very different from default OpenAL Soft, except it used custom-written SDL backend (which I will really miss - but I wrote a letter to Chris Robinson asking if he can implement SDL backend officially, or at least XAudio2 output for Windows).\r\n\r\nI have more concerns regarding recently introduced **sndfile** library. I won't babble about how easy and simple it was without it and with only using native SDL functions to read and decompress audio samples, but what is the whole point in using sndfile *along with* OGG/Vorbis, if sndfile supports OGG/Vorbis itself?! Basically, we now have FOUR sound library dependencies (SDL, OpenAL Soft, OGG/Vorbis and now sndfile)! I'm sorry, but OpenTomb isn't a sound editing or video editing software, we need it light and simple - so either get rid of OGG/Vorbis or sndfile.\r\n\r\nBy the way, if sndfile can provide EASY interface for streaming MS-ADPCM wave files (TR3-TR5), then it should absolutely stay in place. I just had no idea how to program MS-ADPCM streaming when I wrote audio engine."}}