While porting XScreeenSaver to the iPhone jwz discovered that OpenGL ES 1.1 API removed most of the OpenGL 1.3 API making it impossible to simply port XScreenSaver to iOS.
Let’s say you have a well-specified system that is in wide use (a language, a library API, whatever) and because of changes in some substrate (operating systems, hardware, whatever) you find that you need to add a new way of doing things to it.
The way you do this is, you add new features to the specification and you clearly document the version in which those features become supported.
If there are old features that you would like to discourage the use of, then you mark them as obsolete – but you do not remove them because thou shalt not break working code.
To make his point concrete that it wasn’t necessary to remove compatibility, jwz wrote a compatibility layer using OpenGL ES 1.1 calls.
There’s also a fun bit in the comments section where jwz discusses why he doesn’t care to post the code to github.