kbd: make loadkeys more user-friendly
add setxkbmap. this allows us to change the keyboard layout used in X

the default keyboard layout is entirely unusable, not even cursor
keys work.

setxkbmap -layout ru -rules evdev -model evdev -variant nodeadkeys

will set keyboard layout to russian and all other options to usable
defaults. this line should go into /etc/xinitrc or somesuch.
libjpeg-dynamic: it's crucial that its built after libjpeg

otherwise the libtool .la files will point only to the static lib
when libjpeg is built later on. this will break libtool-using
things that want to link to the libjpeg .so's.
gtk+: make it possible to make a debug build, and to call make clean
add a tool to remove the relocation links of a package
gdk-pixbuf: fix failure to load any images

we only got stupid error messages saying that the format for the
icons is invalid.
the actual cause was a missing file

http://git.gnome.org/browse/gdk-pixbuf/commit/?id=463e97de9a0339a60be8da506ddff156619bd69b

this testprogram was handy:
compile using gcc -g test.c `pkgconf --cflags --libs gtk+-2.0`

\#include <gtk/gtk.h>
static gboolean
on_window_draw(GtkWidget *widget, cairo_t *cr, GdkPixbuf *pb)
{
  cairo_rectangle(cr, 0.0, 0.0, gdk_pixbuf_get_width(pb), gdk_pixbuf_get_height(pb));
  gdk_cairo_set_source_pixbuf(cr, pb, 0.0, 0.0);
  cairo_paint(cr);
  return TRUE;
}

int main(int argc, char *argv[])
{
  GtkWidget *win;
  GdkPixbuf *pb = NULL;

  gtk_init(&argc, &argv);

  win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  g_signal_connect(win, "destroy", gtk_main_quit, NULL);

  if (argc > 1) {
    GError *error = NULL;
    pb = gdk_pixbuf_new_from_file(argv[1], &error);
    if (!pb) {
      g_critical("Failed to load pixbuf: %s: %s", argv[1], error->message);
      g_error_free(error); error=NULL;
    } else {
      g_signal_connect(win, "draw", G_CALLBACK(on_window_draw), pb);
    }
  } else {
    g_critical("Not enough arguments, expecting filename");
  }

  gtk_widget_show(win);

  gtk_main();

  if (pb)
    g_object_unref(pb);

  return 0;
}

this testcode as well:

File: ./gtk/gtkiconfactory.c
static void printinfo(GtkIconSource *i) {
        char info[512];
        const char* names[] = {
                [GTK_ICON_SOURCE_FILENAME] = "GTK_ICON_SOURCE_FILENAME",
                [GTK_ICON_SOURCE_ICON_NAME] = "GTK_ICON_SOURCE_ICON_NAME",
                [GTK_ICON_SOURCE_STATIC_ICON_NAME] = "GTK_ICON_SOURCE_STATIC_ICON_NAME",
                [GTK_ICON_SOURCE_PIXBUF] = "GTK_ICON_SOURCE_PIXBUF",
                [GTK_ICON_SOURCE_EMPTY] = "GTK_ICON_SOURCE_EMPTY",
        };
        switch(i->type) {
        case GTK_ICON_SOURCE_FILENAME: case GTK_ICON_SOURCE_ICON_NAME: case GTK_ICON_SOURCE_STATIC_ICON_NAME:
                snprintf(info, 512, "%s", i->source.filename);
                break;
        case GTK_ICON_SOURCE_PIXBUF:
                snprintf(info, 512, "pixbuf @ %p", i->source.pixbuf);
        default:
                snprintf(info, 512, "empty");
        }
        dprintf(2, "trying to open iconsource %s: %s\n", names[i->type], info);

}

static GdkPixbuf* render_icon_name_pixbuf (GtkIconSource    *icon_source, ...
printinfo(icon_source);
use setxkbmap for xorg metapkg
update xinit startx patch to use /etc/xinitrc for the systemwide xinitrc
add default xinitrc
update COOKBOOK to reflect recent work