diff options
Diffstat (limited to 'yocto-poky/meta/recipes-sato/puzzles')
5 files changed, 436 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch b/yocto-poky/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch new file mode 100644 index 000000000..f43d1df6c --- /dev/null +++ b/yocto-poky/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch @@ -0,0 +1,46 @@ +From 9808dc09e08937c9bffd858d3ded428225a4312a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 7 Sep 2015 09:02:38 +0000 +Subject: [PATCH] Use labs instead of abs + +cluevals is array of longs so we have to use labs() instead of abs() +since abs() returns int + +Fixes + +keen.c:1458:17: error: absolute value function 'abs' given an argument +of type 'long' but has parameter of type 'int' which may cause +truncation of value + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + keen.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/keen.c b/keen.c +index a6a7238..1631992 100644 +--- a/keen.c ++++ b/keen.c +@@ -1043,7 +1043,7 @@ done + cluevals[j] *= grid[i]; + break; + case C_SUB: +- cluevals[j] = abs(cluevals[j] - grid[i]); ++ cluevals[j] = labs(cluevals[j] - grid[i]); + break; + case C_DIV: + { +@@ -1455,7 +1455,7 @@ static int check_errors(const game_state *state, long *errors) + cluevals[j] *= state->grid[i]; + break; + case C_SUB: +- cluevals[j] = abs(cluevals[j] - state->grid[i]); ++ cluevals[j] = labs(cluevals[j] - state->grid[i]); + break; + case C_DIV: + { +-- +2.5.1 + diff --git a/yocto-poky/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch b/yocto-poky/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch new file mode 100644 index 000000000..d246feeb0 --- /dev/null +++ b/yocto-poky/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch @@ -0,0 +1,52 @@ +gtk.c: fix compiling failure with option -g -O + +There were compiling failure with option -g -O +... +././gtk.c: In function 'configure_area': +././gtk.c:397:2: error: 'cr' may be used uninitialized in this function [-Werror=maybe-uninitialized] + cairo_set_source_rgb(cr, + ^ +././gtk.c:384:14: note: 'cr' was declared here + cairo_t *cr; + ^ +././gtk.c: In function 'main': +././gtk.c:2911:6: error: 'error' may be used uninitialized in this function [-Werror=maybe-uninitialized] + fprintf(stderr, "%s: %s\n", pname, error); + ^ +cc1: all warnings being treated as errors +... + +Initialized pointer 'cr' and 'error' with NULL + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + gtk.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gtk.c b/gtk.c +index a2eba2c..c54bf63 100644 +--- a/gtk.c ++++ b/gtk.c +@@ -381,7 +381,7 @@ static void clear_backing_store(frontend *fe) + + static void setup_backing_store(frontend *fe) + { +- cairo_t *cr; ++ cairo_t *cr = NULL; + int i; + + fe->pixmap = gdk_pixmap_new(fe->area->window, fe->pw, fe->ph, -1); +@@ -2481,7 +2481,7 @@ char *fgetline(FILE *fp) + int main(int argc, char **argv) + { + char *pname = argv[0]; +- char *error; ++ char *error = NULL; + int ngenerate = 0, print = FALSE, px = 1, py = 1; + int time_generation = FALSE, test_solve = FALSE, list_presets = FALSE; + int soln = FALSE, colour = FALSE; +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch b/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch new file mode 100644 index 000000000..7e2c3ab75 --- /dev/null +++ b/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch @@ -0,0 +1,203 @@ +This patch enable owl menu, which is hidden in the title bar to save space on +small screen. It has not been used for a long time, rebase needed. + +Upstream-Status: Inappropriate [enable feature] + +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/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb b/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb new file mode 100644 index 000000000..36cd2cc7a --- /dev/null +++ b/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb @@ -0,0 +1,74 @@ +SUMMARY = "Portable Puzzle Collection" +HOMEPAGE = "http://o-hand.com/" +BUGTRACKER = "http://bugzilla.yoctoproject.org/" + +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" + +# libowl requires x11 in DISTRO_FEATURES +DEPENDS_append_poky = " ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libowl', '', d)}" + +# Requires gdk/gdkx.h which is provided by gtk when x11 in DISTRO_FEATURES +REQUIRED_DISTRO_FEATURES = "x11" + +SRCREV = "92f1a20e4b72eed7a35b00984d9793b51dc2fb3b" +PV = "0.2+git${SRCPV}" +PR = "r10" + +SRC_URI = "git://git.yoctoproject.org/${BPN}" +SRC_URI_append_poky = " file://oh-puzzles-owl-menu.patch;striplevel=0 " + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig distro_features_check + +bindir = "/usr/games" + +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 () { + var = bb.data.expand("FILES_${PN}", d, 1) + data = d.getVar(var, True) + 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 + d.setVar(var, data) +} diff --git a/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb b/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb new file mode 100644 index 000000000..95826c1b6 --- /dev/null +++ b/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb @@ -0,0 +1,61 @@ +SUMMARY = "Simon Tatham's Portable Puzzle Collection" +HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/" + +DEPENDS = "gtk+ libxt" + +# The libxt requires x11 in DISTRO_FEATURES +REQUIRED_DISTRO_FEATURES = "x11" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=33bcd4bce8f3c197f2aefbdbd2d299bc" + +SRC_URI = "git://git.tartarus.org/simon/puzzles.git \ + file://fix-compiling-failure-with-option-g-O.patch \ + file://0001-Use-labs-instead-of-abs.patch \ +" +SRCREV = "c296301a06ce49b87c954c9d15452521dfeddf1a" +PE = "1" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep distro_features_check + +do_configure_prepend () { + ./mkfiles.pl +} + +FILES_${PN} = "${prefix}/bin/* ${datadir}/applications/*" +FILES_${PN}-dbg += "${prefix}/bin/.debug" + +do_install () { + rm -rf ${D}/* + export prefix=${D} + export DESTDIR=${D} + install -d ${D}/${prefix}/bin/ + oe_runmake install + + + install -d ${D}/${datadir}/applications/ + + # Create desktop shortcuts + cd ${D}/${prefix}/bin + 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}/bin/$prog +Icon=applications-games +Terminal=false +Type=Application +Categories=Game; +StartupNotify=true +X-MB-SingleInstance=true +STOP + fi + done +} |