diff options
Diffstat (limited to 'meta/recipes-sato/puzzles')
-rw-r--r-- | meta/recipes-sato/puzzles/files/makedist_hack.patch | 17 | ||||
-rw-r--r-- | meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch | 198 | ||||
-rw-r--r-- | meta/recipes-sato/puzzles/oh-puzzles_svn.bb | 69 | ||||
-rw-r--r-- | meta/recipes-sato/puzzles/puzzles_r7593.bb | 53 |
4 files changed, 337 insertions, 0 deletions
diff --git a/meta/recipes-sato/puzzles/files/makedist_hack.patch b/meta/recipes-sato/puzzles/files/makedist_hack.patch new file mode 100644 index 000000000..d07e06602 --- /dev/null +++ b/meta/recipes-sato/puzzles/files/makedist_hack.patch @@ -0,0 +1,17 @@ +--- + makedist.sh | 2 ++ + 1 file changed, 2 insertions(+) + +Index: puzzles/makedist.sh +=================================================================== +--- puzzles.orig/makedist.sh 2007-05-17 11:49:59.000000000 +0100 ++++ puzzles/makedist.sh 2007-05-17 12:07:39.000000000 +0100 +@@ -30,6 +30,8 @@ fi + + perl mkfiles.pl + ++exit 0 ++ + mkdir tmp.$$ + mkdir tmp.$$/puzzles$arcsuffix + diff --git a/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch b/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch new file mode 100644 index 000000000..61da9191a --- /dev/null +++ b/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch @@ -0,0 +1,198 @@ +Index: src/gtk.c +=================================================================== +--- src/gtk.c (revision 22) ++++ src/gtk.c (working copy) +@@ -28,6 +28,8 @@ + #include <gdk/gdkx.h> + #include <gdk-pixbuf/gdk-pixbuf.h> + ++#include <libowl/owlwindowmenu.h> ++ + #include <librsvg/rsvg.h> + + #include <X11/Xlib.h> +@@ -1237,6 +1239,7 @@ + } + } + ++#if 0 + static void + add_widget (GtkUIManager *merge, + GtkWidget *widget, +@@ -1247,10 +1250,11 @@ + gtk_box_pack_start (box, widget, FALSE, FALSE, 0); + + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box)); +- gtk_widget_show_all (toplevel); + } ++#endif + + static GtkActionEntry toplevel_actions[] = { ++ { "Top", NULL, "" }, + { "Game", NULL, N_("Game") }, + { "Settings", NULL, N_("Settings") }, + { "Help", NULL, N_("Help") }, +@@ -1303,11 +1307,13 @@ + frontend *fe) + { + GString *xml; ++ GError *error = NULL; + gboolean presets = FALSE; + GSList *radio_group = NULL; + int i; + +- xml = g_string_new ("<ui><menubar><placeholder name=\"TypePlaceholder\">" ++ xml = g_string_new ("<ui><menubar><menu name=\"TopMenu\" action=\"Top\">" ++ "<placeholder name=\"TypePlaceholder\">" + "<menu name=\"SettingsMenu\" action=\"Settings\">"); + + for (i = 0; i < midend_num_presets(fe->me); i++) { +@@ -1359,8 +1365,14 @@ + "<menuitem name=\"CustomMenu\" action=\"Custom\"/>"); + } + +- g_string_append (xml, "</menu></placeholder></menubar></ui>"); +- gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, NULL); ++ g_string_append (xml, "</menu></placeholder></menu></menubar></ui>"); ++ ++ gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, &error); ++ if (error != NULL) { ++ g_warning ("Error adding custom: %s", error->message); ++ g_error_free (error); ++ } ++ + g_string_free (xml, TRUE); + } + +@@ -1434,6 +1446,7 @@ + new_window(char *arg, char **error) + { + frontend *fe; ++ GError *err = NULL; + GtkBox *vbox; + GtkUIManager *merge; + GtkActionGroup *actions; +@@ -1496,8 +1509,6 @@ + gtk_window_add_accel_group(GTK_WINDOW(fe->window), fe->accelgroup); + + merge = gtk_ui_manager_new (); +- g_signal_connect (G_OBJECT (merge), "add_widget", +- G_CALLBACK (add_widget), vbox); + + actions = gtk_action_group_new ("PuzzleActions"); + gtk_action_group_add_actions (actions, toplevel_actions, +@@ -1509,22 +1520,39 @@ + + gtk_ui_manager_insert_action_group (merge, actions, 0); + +- gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", NULL); ++ gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", ++ &err); ++ if (err != NULL) { ++ g_warning ("Error making UI: %s", err->message); ++ g_error_free (err); ++ err = NULL; ++ } + + if (thegame.can_solve) { +- char *str = "<ui><menubar><menu name=\"GameMenu\" action=\"Game\">" ++ char *str = "<ui><menubar><menu name=\"TopMenu\" action=\"Top\">" ++ "<menu name=\"GameMenu\" action=\"Game\">" + "<placeholder name=\"SolvePlaceholder\">" + "<separator name=\"SolveSep\"/>" + "<menuitem name=\"SolveMenu\" action=\"Solve\"/>" +- "</placeholder></menu></menubar></ui>"; ++ "</placeholder></menu></menu></menubar></ui>"; + +- gtk_ui_manager_add_ui_from_string (merge, str, -1, NULL); ++ gtk_ui_manager_add_ui_from_string (merge, str, -1, &err); ++ if (err != NULL) { ++ g_warning ("Error adding solve. %s", err->message); ++ g_error_free (err); ++ } + } + + if ((n = midend_num_presets(fe->me)) > 0 || thegame.can_configure) { + generate_settings_menu (merge, actions, fe); + } + ++ /* Do this so that the menu is packed now instead of in the idle loop */ ++ gtk_ui_manager_ensure_update (merge); ++ ++ owl_set_window_menu_item (GTK_WINDOW (fe->window), ++ GTK_MENU_ITEM (gtk_ui_manager_get_widget (merge, "/menubar/TopMenu"))); ++ + setup_colours (fe); + setup_pixbufs (fe); + +@@ -1572,7 +1600,7 @@ + GDK_BUTTON_RELEASE_MASK | + GDK_BUTTON_MOTION_MASK); + +- /* The window is shown once the menubar has been added */ ++ gtk_widget_show_all (fe->window); + return fe; + } + +Index: src/menu.xml +=================================================================== +--- src/menu.xml (revision 22) ++++ src/menu.xml (working copy) +@@ -1,26 +1,25 @@ + <ui> + <menubar> +-<menu name="GameMenu" action="Game"> +- <menuitem name="NewMenu" action="New"/> +- <menuitem name="RestartMenu" action="Restart"/> +-<!-- <menuitem name="SpecificMenu" action="Specific"/> --> +- <menuitem name="RandomMenu" action="Random"/> +- <separator name="GameSep1"/> +- <menuitem name="LoadMenu" action="Load"/> +- <menuitem name="SaveMenu" action="Save"/> +- <separator name="GameSep2"/> +- <menuitem name="UndoMenu" action="Undo"/> +- <menuitem name="RedoMenu" action="Redo"/> +- <placeholder name="CopyPlaceholder"/> +- <placeholder name="SolvePlaceholder"/> +- <separator name="GameSep3"/> +- <menuitem name="QuitMenu" action="Quit"/> +-</menu> ++<menu name="TopMenu" action="Top"> ++ <menu name="GameMenu" action="Game"> ++ <menuitem name="NewMenu" action="New"/> ++ <menuitem name="RestartMenu" action="Restart"/> ++ <!-- <menuitem name="SpecificMenu" action="Specific"/> --> ++ <menuitem name="RandomMenu" action="Random"/> ++ <separator name="GameSep1"/> ++ <menuitem name="LoadMenu" action="Load"/> ++ <menuitem name="SaveMenu" action="Save"/> ++ <separator name="GameSep2"/> ++ <menuitem name="UndoMenu" action="Undo"/> ++ <menuitem name="RedoMenu" action="Redo"/> ++ <placeholder name="CopyPlaceholder"/> ++ <placeholder name="SolvePlaceholder"/> ++ </menu> + +-<placeholder name="TypePlaceholder"/> +- +-<menu name="HelpMenu" action="Help"> ++ <placeholder name="TypePlaceholder"/> + <menuitem name="AboutMenu" action="About"/> ++ <menuitem name="QuitMenu" action="Quit"/> ++ + </menu> + </menubar> + </ui> +Index: src/Makefile.am +=================================================================== +--- src/Makefile.am (revision 22) ++++ src/Makefile.am (working copy) +@@ -10,7 +10,7 @@ + lightup loopy map mines net netslide pattern pegs rect samegame \ + sixteen slant solo tents twiddle untangle + +-libpuzzles_la_LIBADD = $(PUZZLES_LIBS) ++libpuzzles_la_LIBADD = $(PUZZLES_LIBS) -lowl + libpuzzles_la_SOURCES = combi.c \ + configuration.c \ + drawing.c \ diff --git a/meta/recipes-sato/puzzles/oh-puzzles_svn.bb b/meta/recipes-sato/puzzles/oh-puzzles_svn.bb new file mode 100644 index 000000000..5fcea24b3 --- /dev/null +++ b/meta/recipes-sato/puzzles/oh-puzzles_svn.bb @@ -0,0 +1,69 @@ +DESCRIPTION = "Portable Puzzle Collection" +HOMEPAGE = "http://o-hand.com/" +BUGTRACKER = "http://bugzilla.openedhand.com/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=f56ec6772dd1c7c367067bbea8ea1675 \ + file://src/tree234.h;endline=28;md5=a188e6d250430ca094a54a82f48472a7 \ + file://src/tree234.c;endline=28;md5=b4feb1976feebf8f1379093ed52f2945" + +SECTION = "x11" +DEPENDS = "gtk+ gconf intltool-native librsvg" +DEPENDS_append_poky = " libowl" + +PV = "0.1+svnr${SRCREV}" +PR = "r10" + +bindir = "/usr/games" + +inherit autotools pkgconfig + +SRC_URI = "svn://svn.o-hand.com/repos/;module=oh-puzzles;proto=http" +SRC_URI_append_poky = " file://oh-puzzles-owl-menu.patch;patch=1;pnum=0 " + +S = "${WORKDIR}/${PN}" + +EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1" + +do_install_append () { + install -d ${D}/${datadir}/applications/ + + cd ${D}/${prefix}/games + for prog in *; do + if [ -x $prog ]; then + # Convert prog to Title Case + title=$(echo $prog | sed 's/\(^\| \)./\U&/g') + echo "making ${D}/${datadir}/applications/$prog.desktop" + cat <<STOP > ${D}/${datadir}/applications/$prog.desktop +[Desktop Entry] +Name=$title +Exec=${prefix}/games/$prog +Icon=applications-games +Terminal=false +Type=Application +Categories=Game; +StartupNotify=true +X-MB-SingleInstance=true +Comment=Play $title. +STOP + fi + done +} + +PACKAGES += ${PN}-extra +RDEPENDS_${PN}-extra += "oh-puzzles" + +FILES_${PN} = "/usr/share/pixmaps /usr/share/oh-puzzles/" +FILES_${PN}-dbg += "/usr/games/.debug/*" +FILES_${PN}-extra = "/usr/games/ /usr/share/applications /etc/gconf/schemas" + +python __anonymous () { + import bb + var = bb.data.expand("FILES_${PN}", d, 1) + data = bb.data.getVar(var, d, 1) + for name in ("bridges", "fifteen", "inertia", "map", "samegame", "slant"): + data = data + " /usr/games/%s" % name + data = data + " /usr/share/applications/%s.desktop" % name + data = data + " /etc/gconf/schemas/%s.schemas" % name + bb.data.setVar(var, data, d) +} diff --git a/meta/recipes-sato/puzzles/puzzles_r7593.bb b/meta/recipes-sato/puzzles/puzzles_r7593.bb new file mode 100644 index 000000000..eb1e00935 --- /dev/null +++ b/meta/recipes-sato/puzzles/puzzles_r7593.bb @@ -0,0 +1,53 @@ + +DEPENDS = "gtk+ libxt" +PR = "r8" +MOD_PV = "${@bb.data.getVar('PV',d,1)[1:]}" + +#SRC_URI = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${PV}.tar.gz" +SRC_URI = "svn://ixion.tartarus.org/main;module=puzzles;rev=${MOD_PV} \ + file://makedist_hack.patch;patch=1" + +S = "${WORKDIR}/${PN}" + +do_configure () { + ./makedist.sh ${MOD_PV} +} + +do_compile_prepend = " \ + export XLDFLAGS='${LDFLAGS} `${STAGING_BINDIR_NATIVE}/pkg-config gtk+-2.0 --libs`'; \ + export CFLAGS='${CFLAGS} -I./ `${STAGING_BINDIR_NATIVE}/pkg-config gtk+-2.0 --cflags`'; " + +FILES_${PN} = "${prefix}/games/* ${datadir}/applications/*" +FILES_${PN}-dbg += "${prefix}/games/.debug" + +do_install () { + rm -rf ${D}/* + export prefix=${D} + export DESTDIR=${D} + install -d ${D}/${prefix}/ + install -d ${D}/${prefix}/games/ + oe_runmake install + + install -d ${D}/${datadir}/ + install -d ${D}/${datadir}/applications/ + + cd ${D}/${prefix}/games + for prog in *; do + if [ -x $prog ]; then + # Convert prog to Title Case + title=$(echo $prog | sed 's/\(^\| \)./\U&/g') + echo "making ${D}/${datadir}/applications/$prog.desktop" + cat <<STOP > ${D}/${datadir}/applications/$prog.desktop +[Desktop Entry] +Name=$title +Exec=${prefix}/games/$prog +Icon=applications-games +Terminal=false +Type=Application +Categories=Game; +StartupNotify=true +X-MB-SingleInstance=true +STOP + fi + done +} |