Repository: brendanzab/gl-rs (language: rust)

Issue:
khronos_api 1.1.0 breaks gfx_gl on macOS
When I installed `ggez v0.3.3` today (5 Nov 2017) it failed to build `gfx_gl v0.3.1`:

```
error: failed to run custom build command for `gfx_gl v0.3.1`
process didn't exit successfully: `/Users/nominolo/code/my/ggez-games/robot-game/target/release/build/gfx_gl-1832a9a63c3e6763/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'Type conversion not implemented for `GLeglClientBufferEXT`', /Users/nominolo/.cargo/registry/src/github.com-1ecc6299db9ec823/gl_generator-0.5.5/registry/parse.rs:979:13
```

Since this was working a week ago I compared the `Cargo.lock` files and `khronos_api` was the most likely candidate, so I tried downgrading to `v1.0.1` which fixed the issue. So I assume that was indeed the issue.

I don't know if this is a macOS-specific issue. To reproduce, just create `cargo --bin new` and add this to your `Cargo.toml`:
```
[dependencies.ggez]
version = "0.3"
```
My current work-around is to just add:
```
[dependencies]
khronos_api = "1.0.*"
```

Attached `Cargo.lock` files (I needed to add `.txt` to make Github happy).
[Cargo.lock.borken.txt](https://github.com/brendanzab/gl-rs/files/1444230/Cargo.lock.borken.txt)
[Cargo.lock.txt](https://github.com/brendanzab/gl-rs/files/1444231/Cargo.lock.txt)



Discussion / hints:
Oh, it's maybe worth mentioning that `gfx_gl v0.3.1` uses:

```
[[package]]
name = "gfx_gl"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "gl_generator 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
```
`khronos_api` should have been bumped from `1.0.1` to `2.0.0` because the `1.0.1` and `1.1.0` are compatible (http://doc.crates.io/specifying-dependencies.html#caret-requirements).
The `gl_generator` dependency should be also changed to `~2.0` to avoid future sem ver issues imo.
It's more that gl_generator should have a dependency on `khronos_api <= 1.0` so that `1.1` wouldn't get picked.
Oh fun. Should we yank `1.1.0` then?
Ok, I've yanked the following crates:

- `khronos_api:1.1.0`
- `gl_generator:0.6.0`
- `gl:0.6.4`

We'll need to publish a new version of `khronos_api` with the major version bumped.
A reminder that yanking these versions will still allow the previously applied hacks to continue to work, but will ensure that future folks don't run into the same problem!

Fix patch:
diff --git a/gl/Cargo.toml b/gl/Cargo.toml
index 121f5289..e2a2c86b 100644
--- a/gl/Cargo.toml
+++ b/gl/Cargo.toml
@@ -16,7 +16,7 @@ categories = ["api-bindings", "rendering::graphics-api"]
 keywords = ["gl", "egl", "opengl", "khronos"]
 
 [build-dependencies]
-gl_generator = { version = "0.6.0", path = "../gl_generator" }
+gl_generator = { version = "0.6.1", path = "../gl_generator" }
 
 [dev-dependencies]
 glutin = "0.10.0"
diff --git a/gl_generator/Cargo.toml b/gl_generator/Cargo.toml
index e2be7ab3..54131403 100644
--- a/gl_generator/Cargo.toml
+++ b/gl_generator/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "gl_generator"
-version = "0.6.0"
+version = "0.6.1"
 authors = ["Brendan Zabarauskas <bjzaba@yahoo.com.au>",
         "Corey Richardson",
         "Arseny Kapoulkine"
@@ -22,6 +22,6 @@ path = "lib.rs"
 unstable_generator_utils = []
 
 [dependencies]
-khronos_api = { version = "1.1.0", path = "../khronos_api" }
+khronos_api = { version = "2.0.0", path = "../khronos_api" }
 log = "0.3.5"
 xml-rs = "0.7.0"
diff --git a/khronos_api/Cargo.toml b/khronos_api/Cargo.toml
index d0270274..626c5337 100644
--- a/khronos_api/Cargo.toml
+++ b/khronos_api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "khronos_api"
-version = "1.1.0"
+version = "2.0.0"
 authors = [
   "Brendan Zabarauskas <bjzaba@yahoo.com.au>",
   "Corey Richardson",


Test patch: