GLK is a library interface that allows cross-platform programming of interactive fiction interfaces. Glkloader is a wrapper implementation of this interface; it allows dynamic loading of other implementations at runtime.
As to provide a default implementation, it pulls dev-libs/xglk (if X use flag is in effect), cf. bug #116061.
Created attachment 75116 [details]
Created attachment 75117 [details]
Created attachment 75118 [details, diff]
After a lot of time, some issues resolved, some others not, I decided against merging this set of changes into Portage. The main point is that I find this solution a bit overkill and too complicated, while simpler ones are already in Portage. Sorry :-(
Created attachment 124567 [details]
Updated ebuild based on the previous version:
* Use mirror.ifarchive.org in SRC_URI
* Remove X USE-flag that doesn't have any effect (changing the dependencies without modifying the package itself doesn't count ;-) )
* Fixes most compile warnings (the ones that are left are unlikely to cause problems)
* Fix parallel build
* Fix crash on launch
* Fix for 64-bit arches, and tested on amd64
Created attachment 124569 [details, diff]
This includes the contents of 0.3.2-makefile.patch
Created attachment 126145 [details]
Small update: nicer way of handling user CFLAGS, multilib fix.
Created attachment 126147 [details, diff]
Created attachment 138033 [details]
Updated ebuild. The main change is that it now uses libtool to build the library. I'm also using it from dev-games rather than dev-libs.
Created attachment 138034 [details, diff]
Updated patch - the Makefile part was getting a bit big, so I split it out into a separate patch again.
Created attachment 138036 [details, diff]
Created attachment 138037 [details]
New-style virtual/glk ebuild - only xglk (bug 116061) for now, but maybe others in future.
Created attachment 148223 [details]
Updated ebuild. No longer needs glkloaderrc in files/, it's now a here doc in the ebuild itself. Requires the following thirdpartymirrors entry:
ifarchive http://ifarchive.plover.net/if-archive/ ftp://ifarchive.plover.net/if-archive/ http://ifarchive.smallwhitehouse.org/if-archive/ http://ifarchive.wurb.com/if-archive/ http://ifarchive.heanet.ie/if-archive/ http://ifarchive.giga.or.at/if-archive/ ftp://ftp.giga.or.at/pub/ifarchive/ http://www.ibiblio.org/pub/docs/interactive-fiction/ ftp://ftp.ibiblio.org/pub/docs/interactive-fiction/ ftp://ftp.guetech.org/pub/guetech/if-archive/ ftp://ftp.funet.fi/pub/misc/ifarchive/
Created attachment 148225 [details, diff]
Patch for 64-bit cleanliness.
Created attachment 148226 [details, diff]
Created attachment 148227 [details, diff]
Update to support the Glk 0.7.0 API.
Created attachment 148229 [details, diff]
Update the headers to allow applications to use gtkglk extensions; if used with some other Glk library, it should be harmless. (Note, I have an ebuild for gtkglk, but it's not ready to be submitted yet.)
Created attachment 148231 [details, diff]
Allow applications to use Gargoyle extensions. This requires a small patch to each non-Gargoyle Glk library, but since it's trivial in all the Glk libraries I've seen, I think it's harmless.
Created attachment 148233 [details, diff]
Forward blorb and dispatch layer calls to the Glk library, instead of using the builtin version. This makes a slight difference if the Glk library implements an older version of the Glk API.
Created attachment 148235 [details, diff]
Cache the function pointers returned from dlsym. This gives a noticeable speed-up.
Created attachment 148237 [details, diff]
Remove the need to link applications with the -rdynamic flag.
Created attachment 148238 [details]
I got sick of trying to convince the build system not to suck, so I wrote a basic configure.ac and Makefile.am. The configure.ac uses @PV@ instead of a hard-coded version number, fixed in the ebuild using sed, to avoid having to create a new one for version bumps if there are no real changes needed.
Created attachment 148240 [details]
Created attachment 148242 [details]
glkstart.h from http://www.eblong.com/zarf/glk/, required by glkloader but not included. I suspect no-one noticed before because the Glk libraries themselves installed it.
Created attachment 148243 [details]
Updated virtual. Not all the providers have ebuilds submitted yet, but that will probably change.