rpms/gcompris/devel U006A.ogg, NONE, 1.1 gcompris-click_on_letter.patch, NONE, 1.1 gcompris-electric.patch, NONE, 1.1 gcompris-nl.patch, NONE, 1.1 gcompris-sys-assetml.patch, NONE, 1.1 gcompris.6, NONE, 1.1 gcompris.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Sun Apr 30 08:28:52 UTC 2006


Author: jwrdegoede

Update of /cvs/extras/rpms/gcompris/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv20545/devel

Modified Files:
	.cvsignore sources 
Added Files:
	U006A.ogg gcompris-click_on_letter.patch 
	gcompris-electric.patch gcompris-nl.patch 
	gcompris-sys-assetml.patch gcompris.6 gcompris.spec 
Log Message:
auto-import gcompris-7.4-4 on branch devel from gcompris-7.4-4.src.rpm


--- NEW FILE U006A.ogg ---
OggS
*¨ ‚
2È ƒL2餓N:騣Ž:ê(´ÐB-´ÒJL1ÕVc®½]|sÎ9çœsÎ9çœsÎ	BCV
2ȀАU
*¨¤’Š*Ê(³Ì2Ë,³Ì2ˬÃÎ:ë°ÃC1´ÒJ,5ÕVcµæžs®9Hk¥µÖZ+¥”RJ)¥ 4d

Y
„†¬
)…”RÎ)æRÊ1åRJ9§œSÎ9„Ê1ƒ)¥SÎ)Ç„ÌA圃ÐA(

Y	




Ç„sÒi
ÆĘ¾²T:g»Bè¸ð¼šúáÜ;&>ð®6ø¢ïd-rÌÜSWlGc])©¨z€©êV-±˜ÕhÚÄ{uzDjiÐjhBF½W»b
²{[ù5ì\K.·ï^²C™Že±¿²éKåæ5T+…ÿ…J/ò‚Á#[æ.ÆwÝcŸÞeüÜÆoÃ
7Ê»£©¦AüÁ¦aI<bV¼ˆœªî¥×sâó·´fº,´p[ÃhÉÓ¸6H L»¾Ñë…,òν¿c´ff·ŸSj4´j€BºØH$.õ ˬ/‰‰z˜K/Á„†´‘ùbj¯­36 ùB†’‹åêɪ•³—0]H
’g—ᚇ
g–ž3ôý˜ùµydÃIÅ"!q³¦Yo>WƒÄÙp'GS5x£T±M™Y©mynͺ„"A 9&hÅ3Ÿ˜ÅBædŃ-”÷î@‰­>y&µ€CðixmÎz{doyˆ%IzaqVFª÷JàcËt-Þ¼4åÒßK©Ïc
—wXÃx@Ú"‚ÕvšzÊc‘kð쥥à

À©ø\Q`
úë^š.É|ìô‰ˆjy±Ï!6':냞á8¹ÂVJùÖ\ÛGM_–Ö?´Mo“+ü6
\~è'ØcÁöj“–H¬è^?éyÿqaƒ=p[!HLhëOÇPŽuÆ°ðÌPƒ„á])k#kæIéeºfEàö‘
Àa¹;²GAF‹dm•ÉqzQyÚxØÛQ³ðëg¦&Ærea×#
|–Wµ"ɦ-¬·ÉVFsTèýa$«™Ð-è´6Û8ƒËŒ‹eU
£:‘#?µŠˆÅh~hfwd£5aiÐþ¯R ÞuüÚºoá
16gh*¬xNM-ö»4'_8F©¾©Xòn{Br¬B‡yæÞ$iøž·§*…®ÚÂ% …îösʸف³ßU®P ÈËO‡ìòp×ÿ\*GE™[Ýånž
äõɪÅEj!õÉï¨ê“®³ÛÉÎŒ‡å-j‹-íÊ‘¤41™R/­y*ÚK®XÃ=!VÜä{]1aB…çwƒÝé,µ¹\@–ùïbÜ©`sïa$C³ÿ}°ÑÓ²H-FêVå»´]|þ9'ß¹Ç`GŸ
ÞÅ/!TrÔÌÀöµƒÅfm[âÿÍ:<pèС©@ï½÷B!„©/ç„ ü?ð×f…aâî×6oTUU†K¸`쟤&úïÌzõêÕ«×ãVÛÕuÅRº^½>Þ‹``óÄÿðžø
úä³?duÓ<`´ÕÆf}êW1ËtÕöT¬ŽÆŠ·r!`
ç
Û8-,ôËÿ^õuW%5\¸›ôwÓA‚´;±¸ÙXɃâs)÷ÖÁ¯ã-/âÉŒ®œV›Â
µ¿ƒó6Øäxn'
÷ר
W¹
D7°“–®aц˜š©°NÇœ&d§kèÀœ„5C¾IÿÉ€n÷÷¹÷?V«a|Ô=ŽÞ)
(ñý
ùÑÅÔÍÈÎ륢;Ÿutúžý÷
á_ºfb{ßg­pµ£öÎú’pà·j•?êb} tBTÅøk z€Ì—«ˆ£3’Úyr”ü%, at NËa‚K>
®DÎ\“‰µBú7x!I^ܽeSúÈÁŒ­Úwy¯´{äXE<˜
ÿeD¬Xt©Àîl«¡®‹2gÙŽZu£}ÃAç$¦Ë@Aë¬Ñšø­
ؾ±gÙM'Ì!x%ó%>\¼W¼ÄÐÐ
€k˦«(éÆæïY#>ð=íoœ¦
ënMhiñQɳíÿLjJe¾n@[¢žÆiJ”.µÓɆqi›5`çšÞG¼b†(
¬Ä®cÙêÉ›lðlG°~﹚tç¶Ñê½½ÙÃùgŠ';‹BCÐÜçü·dóÕ^å†Ï¾N®qú<“¸ÃRç©
Üór>æìñgÌÿ–D‹>E‘Z5«1ì'ÔÁ¾”’ßûãÃúèP©l27¤öý“q­ZÞÊô³Á$²3>¢4•Çd•…TÊ‘Úz,^Ô.¥hõ1jT¦î6­÷‹…àZJì4áP¿5x94H·¦Ì¢b3hDlw÷ ´!øtBV7¾i;|žF²[£{ò‹¡(
³óþ·¥›L.>„PØ~Iøõ·‘œ“ýziž˜!y%hrpÀÏÿ
íQì
&'uFtºéªTû”sñ42}?“PS¹’UÁ5´óm¶¶Éh
å¾únLNI¯TH¼µŠ¯=)ÒŠ².#CØ1P£ñ«†ú\-9ÝŽì|®Âï”,LÜrÜ2oÑÕ¤!€ŒI¢‡yî›cséx2ÐÀ5•¸®zõU|FœŽX/Q.
;v

ðE* ×*ü4³áe‡§U±É½¹³s€h˜!ÕAc®ãÀ±Ì
ø_ËN÷­&3’à| Ú…äž~€ë.nœ<p3@"h?/~NIé,TÀÃøý;À
˜°™ø

`üµƒ
ÌZMà²åxU½4 |ÈýËd$ÙH2’!@7ÅÃ:ý”BÅëÜ4F°UÔ¡	
+³Ô3£1]Žà¦µ‡sz2^Zg˜ÒÌv…aÈ n¬oIÔvåQfO©Ïò^’·øTÜ©*)E[ó¨Ûc9ÁÕ»8		•¥ðš"¸M&
םBk6r¢–ºüè„»öª ^Ûx½Îú ÌӍ±7‘ô	ªì2×õ&tÅB4³™O3Y‹ëÎ#8>Îä&»ô;“,ü>i.ma&z@ĘÕCvYo¸]{˜KŠ’•âöœq8¥Ÿº2,$ ,œO¬#†Þ5ÔÐ×c L¶¾uü<ݽp

_hçè¿*‚%j‹‹‹4L1žÝØ6ÀÌ_VèËÐ}óãñÿþwV
gcompris-click_on_letter.patch:

--- NEW FILE gcompris-click_on_letter.patch ---
--- /usr/src/redhat/BUILD/gcompris-7.4/src/boards/click_on_letter.c	2006-03-20 21:50:41.000000000 +0100
+++ gcompris/src/boards/click_on_letter.c	2006-04-29 10:41:45.000000000 +0200
@@ -21,6 +21,7 @@
 #include <math.h>
 #include <assert.h>
 #include <glib.h>
+#include <string.h>
 
 #include "gcompris/gcompris.h"
 
@@ -29,7 +30,7 @@
 #define SOUNDLISTFILE PACKAGE
 
 static GcomprisBoard *gcomprisBoard = NULL;
-static gboolean board_paused = TRUE;
+static gboolean board_paused;
 
 static void		 start_board (GcomprisBoard *agcomprisBoard);
 static void		 pause_board (gboolean pause);
@@ -55,6 +56,10 @@
 #define NUMBER_OF_LEVELS 5
 #define MAX_NUMBER_OF_LETTERS 4
 
+#define NOT_OK		0
+#define OK		1
+#define OK_NO_INIT	2
+
 #define TEXT_COLOR "white"
 
 static GnomeCanvasGroup *boardRootItem = NULL;
@@ -68,7 +73,6 @@
 static void click_on_letter_destroy_all_items(void);
 static void click_on_letter_next_level(void);
 static gint item_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data);
-static gint phone_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data);
 static gboolean sounds_are_fine();
 
 static int right_position;
@@ -76,7 +80,6 @@
 static gchar *right_letter;
 
 static gchar *alphabet;
-static void quit_board();
 
 static void sound_played(gchar *file);
 
@@ -137,6 +140,9 @@
 static void start_board (GcomprisBoard *agcomprisBoard)
 {
   GHashTable *config = gcompris_get_board_conf();
+  int ready;
+
+  board_paused = TRUE;
 
   gcompris_change_locale(g_hash_table_lookup( config, "locale"));
 
@@ -149,29 +155,37 @@
 
   g_hash_table_destroy(config);
 
-  sounds_are_fine();
+  ready = sounds_are_fine();
+
+  gcompris_pause_sound();
 
   if (agcomprisBoard!=NULL)
     {
       gcomprisBoard=agcomprisBoard;
-      gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas), "images/scenery4_background.png");
+      gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
+			      "images/scenery4_background.png");
       gcomprisBoard->level=1;
       gcomprisBoard->maxlevel=NUMBER_OF_LEVELS;
       gcomprisBoard->sublevel=1;
-      gcomprisBoard->number_of_sublevel=NUMBER_OF_SUBLEVELS; /* Go to next level after this number of 'play' */
-      gcompris_bar_set(GCOMPRIS_BAR_CONFIG|GCOMPRIS_BAR_LEVEL|GCOMPRIS_BAR_REPEAT);
-      gcompris_score_start(SCORESTYLE_NOTE,
-			   50,
-			   50,
-			   gcomprisBoard->number_of_sublevel);
 
-      click_on_letter_next_level();
+      /* Go to next level after this number of 'play' */
+      gcomprisBoard->number_of_sublevel=NUMBER_OF_SUBLEVELS;
 
-      gamewon = FALSE;
-      pause_board(FALSE);
+      if(ready)
+	{
+	  /* Warning, bar buttons are set in click_on_letter_next_level()
+	     to avoid them to appear in the case a dialog is displayed */
+	  gcompris_score_start(SCORESTYLE_NOTE,
+			       50,
+			       50,
+			       gcomprisBoard->number_of_sublevel);
 
-      
+	  if(ready == OK)
+	    click_on_letter_next_level();
 
+	  gamewon = FALSE;
+	  pause_board(FALSE);
+	}
     }
 
 }
@@ -180,16 +194,13 @@
 {
   if(gcomprisBoard!=NULL)
     {
-      printf("end_board 1\n");
       pause_board(TRUE);
-      printf("end_board 1\n");
       gcompris_score_end();
-      printf("end_board 1\n");
       click_on_letter_destroy_all_items();
-      printf("end_board 1\n");
     }
   gcompris_reset_locale();
   gcomprisBoard = NULL;
+  gcompris_resume_sound();
 }
 
 /* ======================================= */
@@ -240,13 +251,17 @@
     }
 }
 
-static gboolean sounds_are_fine ()
+static gboolean sounds_are_fine()
 {
   char *str1 = NULL;
   char *str2 = NULL;
   GcomprisProperties	*properties = gcompris_get_properties();
   gchar *locale = NULL;
-  gboolean fine = TRUE;
+
+  if(!properties->fx) {
+    gcompris_dialog(_("Error: this activity cannot be played with the\nsound effects disabled.\nGo to the configuration dialog to\nenable the sound"), board_stop);
+    return(NOT_OK);
+  }
 
   /* TRANSLATORS: Put here the alphabet in your language */
   alphabet=_("abcdefghijklmnopqrstuvwxyz");
@@ -260,7 +275,7 @@
   str2 = gcompris_get_asset_file("gcompris alphabet", NULL, "audio/x-ogg", str1);
   g_free(str1);
   
-  if (!str2){
+  if (!str2) {
     locale = g_strndup(gcompris_get_locale(), 2);
     gcompris_reset_locale();
     gcompris_change_locale("en_US");
@@ -277,30 +292,27 @@
     str2 = gcompris_get_asset_file("gcompris alphabet", NULL, "audio/x-ogg", str1);
     g_free(str1);
 
-    if (!str2){
-      gchar *msg = g_strdup_printf( _("Error: this activity requires that you first install\nthe packages assetml-voices-alphabet-%s or %s"),
-					locale, "en");
-      gcompris_dialog(msg, board_stop);
-      g_free(msg);
-      return (fine);
-    }
-    else{
-      gchar *msg = g_strdup_printf( _("Error: this activity requires that you first install\nthe packages assetml-voices-alphabet-%s ! Fallback to english, sorry!"), locale);
-      gcompris_dialog(msg, NULL);
-      g_free(msg);
-    }
-  }
-
-  fine = TRUE;
-  if(!properties->fx) {
-    gcompris_dialog(_("Error: this activity cannot be played with the\nsound effects disabled.\nGo to the configuration dialogue to\nenable the sound"), board_stop);
-    fine = FALSE;
+    if (!str2)
+      {
+	gchar *msg = g_strdup_printf( _("Error: this activity requires that you first install\nthe packages assetml-voices-alphabet-%s or %s"),
+				      locale, "en");
+	gcompris_dialog(msg, board_stop);
+	g_free(msg);
+	return (NOT_OK);
+      }
+    else
+      {
+	gchar *msg = g_strdup_printf( _("Error: this activity requires that you first install\nthe packages assetml-voices-alphabet-%s ! Fallback to english, sorry!"), locale);
+	gcompris_dialog(msg, click_on_letter_next_level);
+	g_free(msg);
+	g_free(str2);
+	return(OK_NO_INIT);
+      }
   }
 
   g_free(str2);
-  
-  return(fine);
-  
+
+  return(OK);
 }
 
 /*-------------------------------------------------------------------------------*/
@@ -308,6 +320,9 @@
 /* set initial values for the next level */
 static void click_on_letter_next_level()
 {
+  /* It must be set it for the warning dialogs */
+  gcompris_bar_set(GCOMPRIS_BAR_CONFIG|GCOMPRIS_BAR_LEVEL|GCOMPRIS_BAR_REPEAT);
+
   gcompris_bar_set_level(gcomprisBoard);
 
   click_on_letter_destroy_all_items();
@@ -405,29 +420,29 @@
 
   for (i=0; i< number_of_letters; i++) {
 
-  buttons[i] = gnome_canvas_item_new (boardRootItem,
-				   gnome_canvas_pixbuf_get_type (),
-				   "pixbuf",  button_pixmap,
-				   "x",  (double) xOffset,
-				   "y",  (double) yOffset,
-				   NULL);
-
-
-  l_items[i] = gnome_canvas_item_new (boardRootItem,
-				      gnome_canvas_text_get_type (),
-				      "text", g_strdup(letters[i]),
-				      "font", gcompris_skin_font_board_huge_bold,
-				      "anchor", GTK_ANCHOR_CENTER,
-				      "fill_color_rgba", 0x0000ffff,
-				      "x",  (double) xOffset + gdk_pixbuf_get_width(button_pixmap)/2,
-				      "y",  (double) yOffset + gdk_pixbuf_get_height(button_pixmap)/2 - 5,
-				      NULL);
-  g_free(letters[i]);
-  xOffset +=HORIZONTAL_SEPARATION +gdk_pixbuf_get_width(button_pixmap);
-
-  gtk_signal_connect(GTK_OBJECT(l_items[i]), "event", (GtkSignalFunc) item_event, GINT_TO_POINTER(i));
-  gtk_signal_connect(GTK_OBJECT(buttons[i]), "event",  (GtkSignalFunc) item_event, GINT_TO_POINTER(i));
-  //  gtk_signal_connect(GTK_OBJECT(buttons[i]), "event", (GtkSignalFunc) gcompris_item_event_focus, NULL);
+    buttons[i] = gnome_canvas_item_new (boardRootItem,
+					gnome_canvas_pixbuf_get_type (),
+					"pixbuf",  button_pixmap,
+					"x",  (double) xOffset,
+					"y",  (double) yOffset,
+					NULL);
+
+
+    l_items[i] = gnome_canvas_item_new (boardRootItem,
+					gnome_canvas_text_get_type (),
+					"text", g_strdup(letters[i]),
+					"font", gcompris_skin_font_board_huge_bold,
+					"anchor", GTK_ANCHOR_CENTER,
+					"fill_color_rgba", 0x0000ffff,
+					"x",  (double) xOffset + gdk_pixbuf_get_width(button_pixmap)/2,
+					"y",  (double) yOffset + gdk_pixbuf_get_height(button_pixmap)/2 - 5,
+					NULL);
+    g_free(letters[i]);
+    xOffset +=HORIZONTAL_SEPARATION +gdk_pixbuf_get_width(button_pixmap);
+
+    gtk_signal_connect(GTK_OBJECT(l_items[i]), "event", (GtkSignalFunc) item_event, GINT_TO_POINTER(i));
+    gtk_signal_connect(GTK_OBJECT(buttons[i]), "event",  (GtkSignalFunc) item_event, GINT_TO_POINTER(i));
+    //  gtk_signal_connect(GTK_OBJECT(buttons[i]), "event", (GtkSignalFunc) gcompris_item_event_focus, NULL);
   }
 
 
@@ -463,18 +478,6 @@
   g_timeout_add(TIME_CLICK_TO_BONUS, process_ok_timeout, NULL);
 }
 /* ==================================== */
-static gint phone_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data) {
-  switch (event->type)
-    {
-    case GDK_BUTTON_PRESS:
-      repeat();
-      break;
-    default:
-      break;
-    }
-  return TRUE;
-}
-/* ==================================== */
 static gint
 item_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data)
 {
@@ -566,11 +569,12 @@
   return NULL;
 }
 
-static GcomprisConfCallback conf_ok(GHashTable *table)
+static void conf_ok(GHashTable *table)
 {
   if (!table){
     if (gcomprisBoard)
       pause_board(FALSE);
+
     return;
   }
     
@@ -591,12 +595,14 @@
     gcompris_change_locale(g_hash_table_lookup( config, "locale"));
     
     gchar *up_init_str = g_hash_table_lookup( config, "uppercase_only");
-    
-    if (up_init_str && (strcmp(up_init_str, "True")==0))
-      uppercase_only = TRUE;
-    else
-      uppercase_only = FALSE;
-    
+    if (up_init_str)
+      {
+	if(strcmp(up_init_str, "True")==0)
+	  uppercase_only = TRUE;
+	else
+	  uppercase_only = FALSE;
+      }
+
     if (profile_conf)
       g_hash_table_destroy(config);
     
--- /usr/src/redhat/BUILD/gcompris-7.4/src/boards/menu2.c	2006-03-30 01:06:42.000000000 +0200
+++ gcompris/src/boards/menu2.c	2006-04-29 10:41:45.000000000 +0200
@@ -1,6 +1,6 @@
 /* gcompris - menu2.c
  *
- * Time-stamp: <2006/03/30 01:06:42 bruno>
+ * Time-stamp: <2006/04/28 00:51:29 bruno>
  *
  * Copyright (C) 2000 Bruno Coudoin
  *
@@ -527,7 +527,7 @@
 	g_warning("Checking mandatory_sound_file %s\n", soundfile);
       }
 
-      if (!g_file_test (soundfile, G_FILE_TEST_EXISTS) || !gcompris_get_properties()->audio_works) 
+      if (!g_file_test (soundfile, G_FILE_TEST_EXISTS) || !gcompris_get_properties()->fx) 
 	{
 	  pixmap = gcompris_load_skin_pixmap("voice_bad.png");
 	}
--- /usr/src/redhat/BUILD/gcompris-7.4/src/boards/py-gcompris-properties.c	2005-09-20 19:07:33.000000000 +0200
+++ gcompris/src/boards/py-gcompris-properties.c	2006-04-29 10:41:45.000000000 +0200
@@ -63,15 +63,6 @@
 	return Py_False;
       }
     }
-    if(strcmp(name,"audio_works")==0){
-      if(self->cdata->audio_works){
-	Py_INCREF(Py_True);
-	return Py_True;
-      } else {
-	Py_INCREF(Py_False);
-	return Py_False;
-      }
-    }
     if(strcmp(name,"fullscreen")==0){
       if(self->cdata->fullscreen){
 	Py_INCREF(Py_True);
--- /usr/src/redhat/BUILD/gcompris-7.4/src/gcompris/properties.c	2006-03-02 01:08:31.000000000 +0100
+++ gcompris/src/gcompris/properties.c	2006-04-29 10:41:45.000000000 +0200
@@ -1,6 +1,6 @@
 /* gcompris - properties.c
  *
- * Time-stamp: <2006/03/02 01:08:31 bruno>
+ * Time-stamp: <2006/04/28 00:52:51 bruno>
  *
  * Copyright (C) 2000,2003 Bruno Coudoin
  *
@@ -294,9 +294,6 @@
 
   }
 
-  /* By default audio is said to work until libao fails to load it */
-  tmp->audio_works	= TRUE;
-
   /*
    * Warning, gcompris need a proper locale prefix to find suitable dataset
    * Some system use LOCALE 'C' for english. We have to set it explicitly
--- /usr/src/redhat/BUILD/gcompris-7.4/src/gcompris/properties.h	2006-03-02 00:48:25.000000000 +0100
+++ gcompris/src/gcompris/properties.h	2006-04-29 10:41:45.000000000 +0200
@@ -1,6 +1,6 @@
 /* gcompris - properties.h
  *
- * Time-stamp: <2006/03/02 00:48:25 bruno>
+ * Time-stamp: <2006/04/28 00:52:34 bruno>
  *
  * Copyright (C) 2000 Bruno Coudoin
  *
@@ -27,7 +27,6 @@
 typedef struct {
   gint		music;
   gint		fx;
-  gint		audio_works;
   gint		fullscreen;
   gint		noxrandr;
   gint		screensize;
--- /usr/src/redhat/BUILD/gcompris-7.4/src/boards/memory.c	2006-04-03 19:41:54.000000000 +0200
+++ gcompris/src/boards/memory.c	2006-04-19 00:18:14.000000000 +0200
@@ -1,6 +1,6 @@
 /* gcompris - memory.c
  *
- * Time-stamp: <2006/03/31 22:46:09 yves>
+ * Time-stamp: <2006/04/17 22:28:15 bruno>
  *
  * Copyright (C) 2000 Bruno Coudoin
  * 
@@ -813,6 +813,8 @@
 
       if (currentUiMode == UIMODE_SOUND)
 	{
+	  GcomprisProperties	*properties = gcompris_get_properties();
+
 	  gcompris_pause_sound();
 	  gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas), "images/gcompris_band.png");
 	  base_x1 = BASE_SOUND_X1;
@@ -820,6 +822,12 @@
 	  base_x2 = BASE_SOUND_X2;
 	  base_y2 = BASE_SOUND_Y2;
 	  base_x1_tux = BASE_SOUND_X1_TUX;
+
+	  if(!properties->fx) {
+	    gcompris_dialog(_("Error: this activity cannot be played with the\nsound effects disabled.\nGo to the configuration dialog to\nenable the sound"), board_stop);
+	    return;
+	  }
+
 	}
       else
 	{
--- gcompris-7.4.orig/boards/memory_sound.xml.in	2006-01-18 20:42:30.000000000 +0100
+++ gcompris-7.4/boards/memory_sound.xml.in	2006-04-30 09:02:32.000000000 +0200
@@ -7,6 +7,7 @@
 	 mode="sound" 
 	 difficulty="1"
 	 icon="boardicons/memory_sound.png" 
+	 mandatory_sound_file="memory/plick.ogg"
 	 author="Yves Combe (yves at ycombe.net)"
 	 boarddir="">
 	 <_title>Audio memory game</_title>
--- gcompris-7.4.orig/boards/memory_sound_tux.xml.in	2006-01-22 22:31:54.000000000 +0100
+++ gcompris-7.4/boards/memory_sound_tux.xml.in	2006-04-30 09:02:32.000000000 +0200
@@ -7,6 +7,7 @@
 	 mode="sound_tux" 
 	 difficulty="2"
 	 icon="boardicons/memory_sound_tux.png" 
+	 mandatory_sound_file="memory/plick.ogg"
 	 author="Yves Combe (yves at ycombe.net)"
 	 boarddir="">
 	 <_title>Audio memory game against Tux</_title>

gcompris-electric.patch:

--- NEW FILE gcompris-electric.patch ---
--- gcompris-7.4/src/boards/python/electric.py.mkstemp	2006-02-26 19:00:06.000000000 +0100
+++ gcompris-7.4/src/boards/python/electric.py	2006-04-23 22:32:19.000000000 +0200
@@ -26,8 +26,10 @@
 import gcompris.bonus
 import gtk
 import gtk.gdk
+import gobject
 
 import os
+import tempfile
 
 # Set to True to debug
 debug = False
@@ -195,6 +197,10 @@
     if self.gnucap_timer :
       gtk.timeout_remove(self.gnucap_timer)
       self.gnucap_timer = 0
+      
+    # remove the appended items from our tools
+    for i in range(0,len(self.tools)):
+      self.tools[i].pop()
 
     # No more component in the simulation set
     self.components = []
@@ -318,7 +323,7 @@
       return
 
     if not self.gnucap_timer:
-      self.gnucap_timer = gtk.timeout_add(self.gnucap_timer_interval, self.call_gnucap)
+      self.gnucap_timer = gobject.timeout_add(self.gnucap_timer_interval, self.call_gnucap)
 
   def call_gnucap(self):
     if not self.components:
@@ -334,9 +339,8 @@
     if not connected == 1:
       if debug: print "call_gnucap: No connected component"
     
-    filename = "/tmp/gcompris_electric.gnucap.%d" %(os.getpid(),)
-
-    f = file(filename, "w+")
+    fd, filename = tempfile.mkstemp(".gnucap", "gcompris_electric", None, True)
+    f = os.fdopen(fd, "w+t")
 
     gnucap = "Title GCompris\n"
 
@@ -421,7 +425,7 @@
           i += 2
 
       
-    os.remove(filename)
+    if not debug: os.remove(filename)
     self.gnucap_timer = 0
     
   # Convert a gnucap value back in a regular number

gcompris-nl.patch:

--- NEW FILE gcompris-nl.patch ---
--- gcompris-7.4/boards/sounds/nl/alphabet/gcompris_alphabet_nl.assetml.in.nl	2006-03-20 22:47:36.000000000 +0100
+++ gcompris-7.4/boards/sounds/nl/alphabet/gcompris_alphabet_nl.assetml.in	2006-04-23 14:07:51.000000000 +0200
@@ -1,233 +1,238 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<AssetML dataset="gcompris alphabet" rootdir="../gcompris/boards/sounds/nl/alphabet/" locale="nl">
-  <Asset file="a.ogg" mimetype="audio/x-ogg">
-   <Description>a</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="b.ogg" mimetype="audio/x-ogg">
-   <Description>b</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="c.ogg" mimetype="audio/x-ogg">
-   <Description>c</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="d.ogg" mimetype="audio/x-ogg">
-   <Description>d</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="e.ogg" mimetype="audio/x-ogg">
-   <Description>e</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="f.ogg" mimetype="audio/x-ogg">
-   <Description>f</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="g.ogg" mimetype="audio/x-ogg">
-   <Description>g</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="h.ogg" mimetype="audio/x-ogg">
-   <Description>h</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="i.ogg" mimetype="audio/x-ogg">
-   <Description>i</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="j.ogg" mimetype="audio/x-ogg">
-   <Description>j</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="k.ogg" mimetype="audio/x-ogg">
-   <Description>k</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="l.ogg" mimetype="audio/x-ogg">
-   <Description>l</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="m.ogg" mimetype="audio/x-ogg">
-   <Description>m</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="n.ogg" mimetype="audio/x-ogg">
-   <Description>n</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="o.ogg" mimetype="audio/x-ogg">
-   <Description>o</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="p.ogg" mimetype="audio/x-ogg">
-   <Description>p</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="q.ogg" mimetype="audio/x-ogg">
-   <Description>q</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="r.ogg" mimetype="audio/x-ogg">
-   <Description>r</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="s.ogg" mimetype="audio/x-ogg">
-   <Description>s</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="t.ogg" mimetype="audio/x-ogg">
-   <Description>t</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="u.ogg" mimetype="audio/x-ogg">
-   <Description>u</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="v.ogg" mimetype="audio/x-ogg">
-   <Description>v</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="w.ogg" mimetype="audio/x-ogg">
-   <Description>w</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="x.ogg" mimetype="audio/x-ogg">
-   <Description>x</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="y.ogg" mimetype="audio/x-ogg">
-   <Description>y</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="z.ogg" mimetype="audio/x-ogg">
-   <Description>z</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="1.ogg" mimetype="audio/x-ogg">
-   <Description>1</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="2.ogg" mimetype="audio/x-ogg">
-   <Description>2</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="3.ogg" mimetype="audio/x-ogg">
-   <Description>3</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="4.ogg" mimetype="audio/x-ogg">
-   <Description>4</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="5.ogg" mimetype="audio/x-ogg">
-   <Description>5</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="6.ogg" mimetype="audio/x-ogg">
-   <Description>6</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="7.ogg" mimetype="audio/x-ogg">
-   <Description>7</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="8.ogg" mimetype="audio/x-ogg">
-   <Description>8</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="9.ogg" mimetype="audio/x-ogg">
-   <Description>9</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="10.ogg" mimetype="audio/x-ogg">
-   <Description>10</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="11.ogg" mimetype="audio/x-ogg">
-   <Description>11</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="12.ogg" mimetype="audio/x-ogg">
-   <Description>12</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="13.ogg" mimetype="audio/x-ogg">
-   <Description>13</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="14.ogg" mimetype="audio/x-ogg">
-   <Description>14</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="15.ogg" mimetype="audio/x-ogg">
-   <Description>15</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="16.ogg" mimetype="audio/x-ogg">
-   <Description>16</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="17.ogg" mimetype="audio/x-ogg">
-   <Description>17</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="18.ogg" mimetype="audio/x-ogg">
-   <Description>18</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="19.ogg" mimetype="audio/x-ogg">
-   <Description>19</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
-  </Asset>
-  <Asset file="20.ogg" mimetype="audio/x-ogg">
-   <Description>20</Description>
-   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
-   <Categories>audio;alphabet</Categories>
+<AssetML rootdir='../gcompris/boards/sounds/nl/alphabet/' locale='nl' dataset='gcompris alphabet'>
+  <Asset name='U0061.ogg' mimetype='audio/x-ogg' file='U0061.ogg'>
+    <Description>a</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0062.ogg' mimetype='audio/x-ogg' file='U0062.ogg'>
+    <Description>b</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0063.ogg' mimetype='audio/x-ogg' file='U0063.ogg'>
+    <Description>c</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0064.ogg' mimetype='audio/x-ogg' file='U0064.ogg'>
+    <Description>d</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0065.ogg' mimetype='audio/x-ogg' file='U0065.ogg'>
+    <Description>e</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0066.ogg' mimetype='audio/x-ogg' file='U0066.ogg'>
+    <Description>f</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0067.ogg' mimetype='audio/x-ogg' file='U0067.ogg'>
+    <Description>g</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0068.ogg' mimetype='audio/x-ogg' file='U0068.ogg'>
+    <Description>h</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0069.ogg' mimetype='audio/x-ogg' file='U0069.ogg'>
+    <Description>i</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U006A.ogg' mimetype='audio/x-ogg' file='U006A.ogg'>
+    <Description>j</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U006B.ogg' mimetype='audio/x-ogg' file='U006B.ogg'>
+    <Description>k</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U006C.ogg' mimetype='audio/x-ogg' file='U006C.ogg'>
+    <Description>l</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U006D.ogg' mimetype='audio/x-ogg' file='U006D.ogg'>
+    <Description>m</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U006E.ogg' mimetype='audio/x-ogg' file='U006E.ogg'>
+    <Description>n</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U006F.ogg' mimetype='audio/x-ogg' file='U006F.ogg'>
+    <Description>o</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0070.ogg' mimetype='audio/x-ogg' file='U0070.ogg'>
+    <Description>p</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0071.ogg' mimetype='audio/x-ogg' file='U0071.ogg'>
+    <Description>q</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0072.ogg' mimetype='audio/x-ogg' file='U0072.ogg'>
+    <Description>r</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0073.ogg' mimetype='audio/x-ogg' file='U0073.ogg'>
+    <Description>s</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0074.ogg' mimetype='audio/x-ogg' file='U0074.ogg'>
+    <Description>t</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0075.ogg' mimetype='audio/x-ogg' file='U0075.ogg'>
+    <Description>u</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0076.ogg' mimetype='audio/x-ogg' file='U0076.ogg'>
+    <Description>v</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0077.ogg' mimetype='audio/x-ogg' file='U0077.ogg'>
+    <Description>w</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0078.ogg' mimetype='audio/x-ogg' file='U0078.ogg'>
+    <Description>x</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0079.ogg' mimetype='audio/x-ogg' file='U0079.ogg'>
+    <Description>y</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U007A.ogg' mimetype='audio/x-ogg' file='U007A.ogg'>
+    <Description>z</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0030.ogg' mimetype='audio/x-ogg' file='U0030.ogg'>
+    <Description>0</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0031.ogg' mimetype='audio/x-ogg' file='U0031.ogg'>
+    <Description>1</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0032.ogg' mimetype='audio/x-ogg' file='U0032.ogg'>
+    <Description>2</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0033.ogg' mimetype='audio/x-ogg' file='U0033.ogg'>
+    <Description>3</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0034.ogg' mimetype='audio/x-ogg' file='U0034.ogg'>
+    <Description>4</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0035.ogg' mimetype='audio/x-ogg' file='U0035.ogg'>
+    <Description>5</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0036.ogg' mimetype='audio/x-ogg' file='U0036.ogg'>
+    <Description>6</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0037.ogg' mimetype='audio/x-ogg' file='U0037.ogg'>
+    <Description>7</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0038.ogg' mimetype='audio/x-ogg' file='U0038.ogg'>
+    <Description>8</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset name='U0039.ogg' mimetype='audio/x-ogg' file='U0039.ogg'>
+    <Description>9</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='10.ogg'>
+    <Description>10</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='11.ogg'>
+    <Description>11</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='12.ogg'>
+    <Description>12</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='13.ogg'>
+    <Description>13</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='14.ogg'>
+    <Description>14</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='15.ogg'>
+    <Description>15</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='16.ogg'>
+    <Description>16</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='17.ogg'>
+    <Description>17</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='18.ogg'>
+    <Description>18</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='19.ogg'>
+    <Description>19</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
+  </Asset>
+  <Asset mimetype='audio/x-ogg' file='20.ogg'>
+    <Description>20</Description>
+    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+    <Categories>audio;alphabet</Categories>
   </Asset>
 </AssetML>
--- gcompris-7.4/boards/sounds/nl/misc/gcompris_misc_nl.assetml.in.nl	2006-03-27 01:45:17.000000000 +0200
+++ gcompris-7.4/boards/sounds/nl/misc/gcompris_misc_nl.assetml.in	2006-04-23 14:36:44.000000000 +0200
@@ -1,83 +1,108 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<AssetML dataset="gcompris misc" rootdir="../gcompris/boards/sounds/nl/misc/" locale="nl">
-  <Asset file="back.ogg" mimetype="audio/x-ogg">
+<AssetML rootdir="../gcompris/boards/sounds/nl/misc/" locale="nl" dataset="gcompris misc">
+  <Asset mimetype="audio/x-ogg" file="back.ogg">
    <Description>back</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="by.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="by.ogg">
    <Description>by</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="click_on_letter.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="click_on_letter.ogg">
    <Description>click_on_letter</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="congratulation.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="check_answer.ogg">
+   <Description>check_answer</Description>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+   <Categories>audio;misc</Categories>
+  </Asset>
+  <Asset mimetype="audio/x-ogg" file="congratulation.ogg">
    <Description>congratulation</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="equal.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="equal.ogg">
    <Description>equal</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="good.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="good.ogg">
    <Description>good</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="great.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="great.ogg">
    <Description>great</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="help.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="help.ogg">
    <Description>help</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="level.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="level.ogg">
    <Description>level</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="minus.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="minus.ogg">
    <Description>minus</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="ok.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="ok.ogg">
    <Description>ok</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="outof.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="outof.ogg">
    <Description>outof</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="plus.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="plus.ogg">
    <Description>plus</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="quit.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="quit.ogg">
    <Description>quit</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="super.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="super.ogg">
    <Description>super</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
-  <Asset file="welcome.ogg" mimetype="audio/x-ogg">
+  <Asset mimetype="audio/x-ogg" file="welcome.ogg">
    <Description>welcome</Description>
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;misc</Categories>
   </Asset>
+  <Asset mimetype="audio/x-ogg" file="awesome.ogg">
+   <Description>awesome</Description>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+   <Categories>audio;misc</Categories>
+  </Asset>
+  <Asset mimetype="audio/x-ogg" file="fantastic.ogg">
+   <Description>fantastic</Description>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+   <Categories>audio;misc</Categories>
+  </Asset>
+  <Asset mimetype="audio/x-ogg" file="waytogo.ogg">
+   <Description>waytogo</Description>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+   <Categories>audio;misc</Categories>
+  </Asset>
+  <Asset mimetype="audio/x-ogg" file="perfect.ogg">
+   <Description>perfect</Description>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
+   <Categories>audio;misc</Categories>
+  </Asset>
 </AssetML>
--- gcompris-7.4/boards/sounds/nl/geography/gcompris_geography_nl.assetml.in.nl	2006-03-27 01:44:38.000000000 +0200
+++ gcompris-7.4/boards/sounds/nl/geography/gcompris_geography_nl.assetml.in	2006-04-25 08:49:50.000000000 +0200
@@ -122,7 +122,7 @@
   </Asset>
   <Asset mimetype="audio/x-ogg" file="france.ogg">
    <Description>france</Description>
-   <Credits>Susan Rich 2004 / GPL</Credits>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;geography</Categories>
   </Asset>
   <Asset mimetype="audio/x-ogg" file="french_guiana.ogg">
@@ -147,7 +147,7 @@
   </Asset>
   <Asset mimetype="audio/x-ogg" file="germany.ogg">
    <Description>germany</Description>
-   <Credits>Susan Rich 2004 / GPL</Credits>
+   <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;geography</Categories>
   </Asset>
   <Asset mimetype="audio/x-ogg" file="guyana.ogg">
@@ -340,4 +340,4 @@
    <Credits>Voice : Marina Snaaijer / Tech : Ivar Snaaijer / Licence : GPL 2 +</Credits>
    <Categories>audio;geography</Categories>
   </Asset>
-</AssetML>
\ No newline at end of file
+</AssetML>
--- gcompris-7.4/po/nl.po.nl	2006-04-04 23:33:49.000000000 +0200
+++ gcompris-7.4/po/nl.po	2006-04-24 10:56:20.000000000 +0200
@@ -13,7 +13,7 @@
 "Project-Id-Version: gcompris cvs\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2006-03-31 02:26+0200\n"
-"PO-Revision-Date: 2006-04-04 11:58+0200\n"
+"PO-Revision-Date: 2006-04-24 00:27+0200\n"
 "Last-Translator: Johan Blok <j.blok.2 at student.rug.nl>\n"
 "Language-Team: Dutch <nl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -1212,10 +1212,7 @@
 "Laurent Lacheny. Images and Artificial Intelligence taken from project "
 "4stattack by Jeroen Vloothuis. The original project can be found on <"
 "http://forcedattack.sourceforge.net>"
-msgstr ""
-"Laurent Lacheny. Afbeeldingen and Kunstmatige Intelligentie van project "
-"4stattack door Jeroen Vloothuis. Het oorspronkelijke project kan worden "
-"gevonden op <http://forcedattack.sourceforge.net&gt"
+msgstr "Laurent Lacheny. Afbeeldingen and Kunstmatige Intelligentie van project 4stattack door Jeroen Vloothuis. Het oorspronkelijke project kan worden gevonden op <http://forcedattack.sourceforge.net>"
 
 #: ../boards/crane.xml.in.h:1
 msgid "Build the same model"
@@ -1387,10 +1384,7 @@
 "(<http://schmode.net/>) and from LE BERRE Daniel. These people kindly "
 "gave GCompris the authorization to include their pictures. Thanks a lot, "
 "both of you."
-msgstr ""
-"De prentjes van dieren komen van de Dierenfoto-pagina van Ralf Schmode (<"
-"http://schmode.net/&gt) en van LE BERRE Daniel. Zij hebben GCompris "
-"toestemming gegeven om deze foto's te gebruiken. Bedankt!"
+msgstr "De prentjes van dieren komen van de Dierenfoto-pagina van Ralf Schmode (<http://schmode.net/>) en van LE BERRE Daniel. Zij hebben GCompris toestemming gegeven om deze foto's te gebruiken. Bedankt!"
 
 #: ../boards/erase.xml.in.h:4 ../src/boards/erase.c:112
 #: ../src/boards/machpuzzle.c:92

gcompris-sys-assetml.patch:

--- NEW FILE gcompris-sys-assetml.patch ---
--- gcompris-7.4/src/gcompris/assetml.c.sysassetml	2005-08-19 02:27:29.000000000 +0200
+++ gcompris-7.4/src/gcompris/assetml.c	2006-04-21 17:46:50.000000000 +0200
@@ -1,493 +0,0 @@
-/* assetml - assetml.c
- *
- * Copyright (C) 2003 Bruno Coudoin
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "glib.h"
-#include "assetml.h"
-#include <config.h>
-
-/* libxml includes */
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-
-#include <locale.h>
-#include <string.h>
-
-#define FILE_EXT ".assetml"
-
-const gchar	*assetml_get_locale(void);
-static gchar	*reactivate_newline(gchar *str);
-static void	 dump_asset(AssetML *assetml);
-int		 selectAssetML(const gchar *dirent);
-void		 assetml_read_xml_file(GList **gl_result, char *fname,
-				       gchar *dataset, gchar* categories, gchar* mimetype, 
-				       const gchar *locale, gchar* file);
-void		 assetml_load_xml(GList **gl_result, gchar *dataset, gchar* categories, 
-				  gchar* mimetype, 
-				  const gchar* locale, gchar* file);
-void		 free_asset(AssetML *assetml);
-
-GHashTable *asset_cache = NULL;
-
-/*
- * This returns the locale for which text must be displayed
- *
- */
-const gchar *assetml_get_locale()
-{
-  const char *locale;
-
-  locale = g_getenv("LC_ALL");
-  if(locale == NULL)
-    locale = g_getenv("LC_MESSAGES");
-  if(locale == NULL)
-    locale = g_getenv("LANG");
-
-
-  if(locale!=NULL)
-    return(locale);
-
-  return("en_US.UTF-8");
-}
-
-/*
- * Return a copy of the given string in which it has
- * changes '\''n' to '\n'.
- * The recognized sequences are \b
- * \f \n \r \t \\ \" and the octal format.
- * 
- */
-static gchar *reactivate_newline(gchar *str)
-{
-  gchar *newstr;
-
-  if(str==NULL)
-    return NULL;
-
-  newstr = g_strcompress(str);
-  
-  g_free(str);
-
-  return newstr;
-}
-
-void dump_asset(AssetML *assetml)
-{
-
-  g_message("Dump Asset\n");
-
-  if(assetml==NULL)
-    return;
-
-  if(assetml->dataset)
-    g_message("  dataset     = %s\n",assetml->dataset);
-  if(assetml->file)
-    g_message("  file        = %s\n",assetml->file);
-  if(assetml->name)
-    g_message("  name        = %s\n",assetml->name);
-  if(assetml->locale)
-    g_message("  locale      = %s\n",assetml->locale);
-  if(assetml->description)
-    g_message("  description = %s\n",assetml->description);
-  if(assetml->categories)
-    g_message("  categories  = %s\n",assetml->categories);
-  if(assetml->mimetype)
-    g_message("  mimetype    = %s\n",assetml->mimetype);
-  if(assetml->credits)
-    g_message("  credits     = %s\n",assetml->credits);
-
-}
-
-/*
- * Thanks for George Lebl <jirka at 5z.com> for his Genealogy example
- * for all the XML stuff there
- */
-
-static AssetML *assetml_add_xml_to_data(xmlDocPtr doc,
-					xmlNodePtr xmlnode, 
-					gchar *rootdir,
-					GNode * child)
-{
-  AssetML *assetml = NULL;
-  gchar   *tmpstr;
-
-  if(/* if the node has no name */
-     !xmlnode->name ||
-     /* or if the name is not "Asset" */
-     (g_strcasecmp(xmlnode->name,"Asset")!=0)
-     )
-    return NULL;
-
-  assetml = g_malloc0 (sizeof (AssetML));
-
-  /* get the specific values */
-  tmpstr = xmlGetProp(xmlnode,"file");
-  if(tmpstr && strlen(tmpstr)>0)
-    if(rootdir[0]!='/')
-      /* This is a relative path, add ASSETML_DIR and rootdir prefix */
-      assetml->file		= g_build_filename(ASSETML_DIR, rootdir, tmpstr, NULL);
-    else
-      assetml->file		= g_build_filename(rootdir, tmpstr, NULL);
-  else
-    assetml->file		= NULL;
-  xmlFree(tmpstr);
-
-  tmpstr = xmlGetProp(xmlnode,"name");
-  if(tmpstr && strlen(tmpstr)>0)
-  assetml->name		= g_strdup(tmpstr);
-  else
-    assetml->name		= g_path_get_basename(assetml->file);
-  xmlFree(tmpstr);
-
-
-  tmpstr = xmlGetProp(xmlnode,"mimetype");
-  if(tmpstr && strlen(tmpstr)>0)
-  assetml->mimetype		= g_strdup(tmpstr);
-  else
-    assetml->mimetype		= NULL;
-  xmlFree(tmpstr);
-
-
-
-  xmlnode = xmlnode->xmlChildrenNode;
-  while (xmlnode != NULL) {
-    gchar *lang = xmlGetProp(xmlnode,"lang");
-
-    /* get the description of the asset */
-    if (!strcmp(xmlnode->name, "Description")
-	&& (lang==NULL ||
-	    !strcmp(lang, assetml_get_locale())
-	    || !strncmp(lang, assetml_get_locale(), 2)))
-      {
-	assetml->description = reactivate_newline(xmlNodeListGetString(doc, 
-								       xmlnode->xmlChildrenNode, 1));
-      }
-
-    /* get the description of the Credits */
-    if (!strcmp(xmlnode->name, "Credits")
-	&& (lang==NULL ||
-	    !strcmp(lang, assetml_get_locale())
-	    || !strncmp(lang, assetml_get_locale(), 2)))
-      {
-	assetml->credits = reactivate_newline(xmlNodeListGetString(doc, 
-								   xmlnode->xmlChildrenNode, 1));
-      }
-
-
-    /* get the description of the Categories */
-    if (!strcmp(xmlnode->name, "Categories")
-	&& (lang==NULL ||
-	    !strcmp(lang, assetml_get_locale())
-	    || !strncmp(lang, assetml_get_locale(), 2)))
-      {
-	assetml->categories = reactivate_newline(xmlNodeListGetString(doc, 
-								      xmlnode->xmlChildrenNode, 1));
-      }
-
-    xmlnode = xmlnode->next;
-  }
-
-  return(assetml);
-}
-
-/*
- * Given the assetml and the dataset, categories, name
- * return true if the assetml matches the requirements
- */
-static gboolean matching(AssetML *assetml, gchar *mydataset, 
-			 gchar *dataset, gchar* categories, gchar* mimetype, 
-			 const gchar* mylocale, const gchar* locale, gchar* name)
-{
-  g_assert(assetml);
-
-  if (!assetml->locale)
-    assetml->locale = g_strdup(mylocale);
-  if (!assetml->dataset)
-    assetml->dataset = g_strdup(mydataset);
-
-  if(assetml->dataset && dataset)
-    if(g_ascii_strcasecmp(assetml->dataset, dataset))
-      return FALSE;
-
-
-  /* Check the leading locale definition matches the leading user request so that
-   * File   Requested   Status
-   * fr     fr_FR.UTF8  OK
-   * pt     pt_BR       OK
-   * pt_BR  pt          NO
-   */
-  if (!assetml->locale)
-    assetml->locale = g_strdup(mylocale);
-
-  if(assetml->locale && locale)
-    if(g_ascii_strncasecmp(assetml->locale, locale, strlen(assetml->locale)))
-      return FALSE;
-
-  if(assetml->mimetype && mimetype)
-    if(g_ascii_strcasecmp(assetml->mimetype, mimetype))
-      return FALSE;
-
-  if(assetml->name && name)
-    if(g_ascii_strcasecmp(assetml->name, name))
-      return FALSE;
-
-/*  if(assetml->file && file)
-    {
-      gchar *str1;
-      gchar *str2;
-      gboolean nomatch;
-//      We test only the basename of the file so that caller do not need to specify a full path 
-      str1 = g_path_get_basename(assetml->file);
-      str2 = g_path_get_basename(file);
-
-      nomatch = g_ascii_strcasecmp(str1, str2);
-
-      g_free(str1);
-      g_free(str2);
-
-      if(nomatch)
-	return FALSE;
-    }*/
-
-  if(assetml->categories && categories)
-    {
-      guint i;
-      for(i=0; i<strlen(assetml->categories)-strlen(categories)+1; i++)
-	{
-	  if(!g_ascii_strncasecmp(assetml->categories+i, categories, strlen(categories)))
-	    {
-	      return TRUE;
-	    }
-	}
-      return FALSE;
-    }
-  
-  return TRUE;
-}
-
-/* parse the doc, add it to our internal structures and to the clist */
-static void
-parse_doc(GList **gl_result, xmlDocPtr doc, 
-	  gchar *mydataset, gchar *rootdir, gchar* mylocale,
-	  gchar *dataset, gchar* categories, gchar* mimetype, const gchar* locale, gchar* file, GList **cache)
-{
-  if (*cache){
-    GList *list;
-
-    for (list= *cache; list != NULL; list=list->next){
-      AssetML *assetml = (AssetML *) list->data;
-      
-      if (matching(assetml, mydataset, dataset, categories, 
-		   mimetype, mylocale, locale, file))
-	*gl_result = g_list_append (*gl_result, assetml);
-    }
-    return;
-  }
-
-  xmlNodePtr node;
-
-  /* find <Asset> nodes and add them to the list, this just
-     loops through all the children of the root of the document */
-  for(node = doc->children->children; node != NULL; node = node->next) {
-    /* add the board to the list, there are no children so
-       we pass NULL as the node of the child */
-    AssetML *assetml = assetml_add_xml_to_data(doc, node, rootdir, NULL);
-
-    if(assetml && matching(assetml, mydataset, dataset, categories, 
-			   mimetype, mylocale, locale, file)) {
-      g_message("if(assetml && matching  g_list_append)\n");
-
-      *gl_result = g_list_append (*gl_result, assetml);
-    }
-
-    if (assetml)
-      *cache = g_list_append( *cache,  assetml);
-
-  }
-}
-
-void assetml_real_free_assetlist(GList *assetlist)
-{
-  g_list_foreach (assetlist, (GFunc) free_asset, NULL);
-  g_list_free(assetlist);
-}
-
-/* read an xml file into our memory structures and update our view,
-   dump any old data we have in memory if we can load a new set
-   Fill the gl_result list with all matching asseml items
-*/
-void assetml_read_xml_file(GList **gl_result, char *assetmlfile,
-			   gchar *dataset, gchar* categories, gchar* mimetype, const gchar *locale, gchar* file)
-{
-  /* pointer to the new doc */
-  xmlDocPtr doc;
-  gchar *rootdir;
-  gchar *mylocale;
-  gchar *mydataset;
-
-  GList *cache = NULL;
-
-  g_return_if_fail(assetmlfile!=NULL);
-
-  /* cache asset for performance in non direct search */
-  if (!asset_cache){
-    asset_cache = g_hash_table_new_full( g_str_hash,
-					 g_str_equal,
-					 g_free,
-					 (GDestroyNotify) assetml_free_assetlist
-					 );
-  }
-
-  cache = g_hash_table_lookup (asset_cache, assetmlfile);
-
-  /* parse the new file and put the result into newdoc */
-  if (! cache){
-    doc = xmlParseFile(assetmlfile);
-
-    /* in case something went wrong */
-    if(!doc) {
-      g_warning("Oups, the parsing of %s failed", assetmlfile);
-      return;
-    }
-  
-    if(/* if there is no root element */
-       !doc->children ||
-       /* if it doesn't have a name */
-       !doc->children->name ||
-       /* if it isn't a Assetml node */
-       g_strcasecmp(doc->children->name,"AssetML")!=0) 
-      {
-	xmlFreeDoc(doc);
-	g_warning("Oups, the file %s is not of the assetml type", assetmlfile);
-	return;
-      }
-
-    rootdir   = xmlGetProp(doc->children,"rootdir");
-    mydataset = xmlGetProp(doc->children,"dataset");
-    mylocale  = xmlGetProp(doc->children,"locale");
-  }
-  else {
-    AssetML *myasset = (AssetML *) cache->data;
-
-    mylocale = myasset->locale;
-    mydataset = myasset->dataset;
-    rootdir = NULL;
-  }
-
-  /* parse our document and replace old data */
-  parse_doc(gl_result, doc, mydataset, rootdir, mylocale, dataset, categories, mimetype, locale, file, &cache);
-
-  if (rootdir)
-    g_hash_table_replace( asset_cache, g_strdup(assetmlfile), cache);
-
-  if (rootdir){
-    xmlFree(rootdir);
-    xmlFree(mydataset);
-    xmlFreeDoc(doc);
-  }
-}
-
-
-/*
- * Select only files with FILE_EXT
- */
-int selectAssetML(const gchar *dirent)
-{
-  guint ext_length = strlen(FILE_EXT);
-
-  if(strlen(dirent)<ext_length)
-    return 0;
-
-  return (strncmp (&dirent[strlen(dirent)-ext_length], FILE_EXT, ext_length) == 0);
-}
-
-/* load all the xml files in the assetml path
- * into our memory structures.
- */
-void assetml_load_xml(GList **gl_result, gchar *dataset, gchar* categories, gchar* mimetype, const gchar *locale, 
-		      gchar* name)
-{
-  const gchar  *one_dirent;
-  GDir    *dir;
-
-  dir = g_dir_open(ASSETML_DIR, 0, NULL);
-  if(!dir) {
-    g_warning("opendir returns no files with extension %s in directory %s", FILE_EXT, ASSETML_DIR);
-    return;
-  } else {
-    g_message("assetml_load_xml directory parsing=%s\n", ASSETML_DIR);
-  }
-
-  while((one_dirent = g_dir_read_name(dir)) != NULL) {
-
-    if(strstr(one_dirent, FILE_EXT)) {
-      gchar *assetmlfile = g_strdup_printf("%s/%s", ASSETML_DIR, one_dirent);
-      
-      assetml_read_xml_file(gl_result, assetmlfile,
-			    dataset, categories, mimetype, locale, name);
-      
-      g_free(assetmlfile);
-    }
-  }
-  g_dir_close(dir);
-}
-
-
-
-void free_asset(AssetML *assetml)
-{
-
-  xmlFree(assetml->locale);
-  xmlFree(assetml->dataset);
-  xmlFree(assetml->description);
-  xmlFree(assetml->categories);
-  xmlFree(assetml->file);
-  xmlFree(assetml->name);
-  xmlFree(assetml->mimetype);
-  xmlFree(assetml->credits);
-
-  g_free(assetml);
-}
-
-void assetml_free_assetlist(GList *assetlist)
-{
-  /* does not  free assets because cache */
-  //g_list_foreach (assetlist, (GFunc) free_asset, NULL);
-  g_list_free(assetlist);
-}
-
-GList*	 assetml_get_asset(gchar *dataset, gchar* categories, gchar* mimetype, const gchar *locale, gchar* file)
-{
-  GList *gl_result = NULL;
-
-  g_message("assetml_get_asset file=%s\n", file);
-
-  assetml_load_xml(&gl_result, dataset, categories, mimetype, locale, file);
-
-  if(gl_result && g_list_length(gl_result)==0)
-    {
-      g_list_free(gl_result);
-      return NULL;
-    }
-  else
-    {
-      g_message("assetml_get_asset file=%s number of matches=%d\n", file, g_list_length(gl_result));
-      g_list_foreach (gl_result, (GFunc) dump_asset, NULL);
-      return gl_result;
-    }
-}
--- gcompris-7.4/src/gcompris/assetml.h.sysassetml	2004-11-04 23:11:29.000000000 +0100
+++ gcompris-7.4/src/gcompris/assetml.h	2006-04-21 17:46:51.000000000 +0200
@@ -1,58 +0,0 @@
-/* gcompris - assetml.h
- *
- * Copyright (C) 2003 Bruno Coudoin
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file assetml.h
-  \brief The libassetml API
-*/
-
-#ifndef ASSETML_H
-#define ASSETML_H
-
-#include <glib.h>
-
-/**
-   \fn GList*	 assetml_get_asset(gchar *dataset, gchar* categories, gchar* mimetype, gchar* name)
-   \brief Returns a list of AssetML struct
-   \param dataset the name of the dataset, NULL for ANY dataset
-   \param categories a list of categorie columns ';' separated (NULL for all)
-   \param mimetype an official mimetype describing the content (NULL for all)
-   \param locale is the locale to search for or NULL for the current locale
-   \param file the asset file name to get or NULL for any file name
-*/
-GList*	 assetml_get_asset(gchar *dataset, gchar* categories, gchar* mimetype, const gchar* locale, gchar* name);
-
-
-void	 assetml_free_assetlist(GList *assetlist);
-
-typedef struct _AssetML         AssetML;
-
-struct _AssetML
-{
-  gchar		*dataset;
-  gchar		*categories;
-  gchar		*locale;
-  gchar		*description;
-  gchar		*file;
-  gchar		*name;
-  gchar		*mimetype;
-  gchar		*credits;
-};
-
-
-#endif
--- gcompris-7.4/src/gcompris/Makefile.in.sysassetml	2006-04-12 01:13:48.000000000 +0200
+++ gcompris-7.4/src/gcompris/Makefile.in	2006-04-17 22:52:28.000000000 +0200
@@ -308,6 +308,8 @@
 @USE_SQLITE_TRUE at sqlite_cflags = $(SQLITE3_CFLAGS)
 @USE_SQLITE_FALSE at sqlite_cflags = 
 
+ASSETML_CFLAGS=`pkg-config libassetml --cflags`
+ASSETML_LIBS=`pkg-config libassetml --libs`
 
 #if USE_CAIRO
 #cairo_ldflags = $(CAIRO_LIBS)
@@ -333,7 +335,8 @@
 	$(SDL_CFLAGS) \
 	-DGNOME_DISABLE_DEPRECATED \
         $(sqlite_cflags) \
-	$(cairo_cflags)
+	$(cairo_cflags) \
+	$(ASSETML_CFLAGS)
 
 
 gcompris_SOURCES = \
@@ -358,7 +361,7 @@
 lib_LTLIBRARIES = libgcompris-1.la
 
 libgcompris_1_la_LIBADD = \
-	$(GCOMPRIS_LIBS) $(sqlite_ldadd) $(XML_LIBS)
+	$(GCOMPRIS_LIBS) $(sqlite_ldadd) $(XML_LIBS) $(ASSETML_LIBS)
 
 
 libgcompris_1_la_LDFLAGS = $(no_undefined) \
@@ -370,7 +373,6 @@
 libgcomprisinclude_HEADERS = \
 	about.h \
 	anim.h \
-	assetml.h \
 	bonus.h \
 	cursor.h \
 	gameutil.h \
@@ -423,7 +425,6 @@
 	about.c \
 	log.c \
 	sdlplayer.c \
-	assetml.c \
 	anim.c \
         $(profile_c) \
 	$(cairo_c)
@@ -465,7 +466,7 @@
 	gcompris_alphabeta.lo gcompris_files.lo gcompris_confirm.lo \
 	profile.lo wordlist.lo gcompris_db.lo gcompris_im.lo \
 	soundutil.lo cursor.lo bonus.lo timer.lo score.lo skin.lo \
-	config.lo about.lo log.lo sdlplayer.lo assetml.lo anim.lo \
+	config.lo about.lo log.lo sdlplayer.lo anim.lo \
 	$(am__objects_1) $(am__objects_1)
 libgcompris_1_la_OBJECTS = $(am_libgcompris_1_la_OBJECTS)
 bin_PROGRAMS = gcompris$(EXEEXT)
--- gcompris-7.4/src/gcompris/board_config.c.sysassetml	2006-03-01 01:02:02.000000000 +0100
+++ gcompris-7.4/src/gcompris/board_config.c	2006-04-17 22:52:28.000000000 +0200
@@ -20,9 +20,9 @@
  */
 
 #include <string.h>
+#include <libassetml/assetml.h>
 
 #include "gcompris.h"
-#include "assetml.h"
 
 #define COMBOBOX_COL_MAX 15
 
--- gcompris-7.4/src/gcompris/Makefile.am.sysassetml	2006-04-04 01:06:25.000000000 +0200
+++ gcompris-7.4/src/gcompris/Makefile.am	2006-04-17 22:53:11.000000000 +0200
@@ -15,6 +15,9 @@
 sqlite_cflags =
 endif
 
+ASSETML_CFLAGS=`pkg-config libassetml --cflags`
+ASSETML_LIBS=`pkg-config libassetml --libs`
+
 #if USE_CAIRO
 #cairo_ldflags = $(CAIRO_LIBS)
 #cairo_cflags = $(CAIRO_CFLAGS)
@@ -53,7 +56,8 @@
 	$(SDL_CFLAGS) \
 	-DGNOME_DISABLE_DEPRECATED \
         $(sqlite_cflags) \
-	$(cairo_cflags)
+	$(cairo_cflags) \
+	$(ASSETML_CFLAGS)
 
 gcompris_SOURCES = \
 	main.c
@@ -76,7 +80,7 @@
 lib_LTLIBRARIES = libgcompris-1.la
 
 libgcompris_1_la_LIBADD = \
-	$(GCOMPRIS_LIBS) $(sqlite_ldadd) $(XML_LIBS)
+	$(GCOMPRIS_LIBS) $(sqlite_ldadd) $(XML_LIBS) $(ASSETML_LIBS)
 
 libgcompris_1_la_LDFLAGS = $(no_undefined) \
 	-version-info $(LIBGCOMPRIS_CURRENT):$(LIBGCOMPRIS_REVISION):$(LIBGCOMPRIS_AGE) 
@@ -86,7 +90,6 @@
 libgcomprisinclude_HEADERS =			\
 	about.h \
 	anim.h \
-	assetml.h \
 	bonus.h \
 	cursor.h \
 	gameutil.h \
@@ -138,7 +141,6 @@
 	about.c \
 	log.c \
 	sdlplayer.c \
-	assetml.c \
 	anim.c \
         $(profile_c) \
 	$(cairo_c)
--- gcompris-7.4/src/gcompris/gameutil.c.sysassetml	2006-04-04 00:21:44.000000000 +0200
+++ gcompris-7.4/src/gcompris/gameutil.c	2006-04-17 22:52:28.000000000 +0200
@@ -27,11 +27,10 @@
 #include <libxml/tree.h>
 #include <libxml/parser.h>
 #include <libxml/parserInternals.h>
+#include <libassetml/assetml.h>
 
 #include "gcompris.h"
 
-#include "assetml.h"
-
 #define IMAGEEXTENSION ".png"
 
 #define MAX_DESCRIPTION_LENGTH 1000


--- NEW FILE gcompris.6 ---
.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.25.
.TH "GCOMPRIS" 6 "February 2002" "User Commands"
.SH NAME
gcompris \- educational games
.SH SYNOPSIS
.B gcompris
[\fIOPTION\fR...]
.SH DESCRIPTION
GNOME options
.TP
\fB\-\-disable\-sound\fR
Disable sound server usage
.TP
\fB\-\-enable\-sound\fR
Enable sound server usage
.TP
\fB\-\-espeaker\fR=\fIHOSTNAME\fR:PORT
Host:port on which the sound server to use is
running
.HP
\fB\-\-version\fR
.PP
Help options
.TP
-?, \fB\-\-help\fR
Show this help message
.TP
\fB\-\-usage\fR
Display brief usage message
.PP
GTK options
.TP
\fB\-\-gdk\-debug\fR=\fIFLAGS\fR
Gdk debugging flags to set
.TP
\fB\-\-gdk\-no\-debug\fR=\fIFLAGS\fR
Gdk debugging flags to unset
.TP
\fB\-\-display\fR=\fIDISPLAY\fR
X display to use
.TP
\fB\-\-sync\fR
Make X calls synchronous
.TP
\fB\-\-no\-xshm\fR
Don't use X shared memory extension
.TP
\fB\-\-name\fR=\fINAME\fR
Program name as used by the window manager
.TP
\fB\-\-class\fR=\fICLASS\fR
Program class as used by the window manager
.HP
\fB\-\-gxid_host\fR=\fIHOST\fR
.HP
\fB\-\-gxid_port\fR=\fIPORT\fR
.HP
\fB\-\-xim\-preedit\fR=\fISTYLE\fR
.HP
\fB\-\-xim\-status\fR=\fISTYLE\fR
.TP
\fB\-\-gtk\-debug\fR=\fIFLAGS\fR
Gtk+ debugging flags to set
.TP
\fB\-\-gtk\-no\-debug\fR=\fIFLAGS\fR
Gtk+ debugging flags to unset
.TP
\fB\-\-g\-fatal\-warnings\fR
Make all warnings fatal
.TP
\fB\-\-gtk\-module\fR=\fIMODULE\fR
Load an additional Gtk module
.PP
GNOME GUI options
.HP
\fB\-\-disable\-crash\-dialog\fR
.PP
Session management options
.TP
\fB\-\-sm\-client\-id\fR=\fIID\fR
Specify session management ID
.TP
\fB\-\-sm\-config\-prefix\fR=\fIPREFIX\fR
Specify prefix of saved configuration
.TP
\fB\-\-sm\-disable\fR
Disable connection to session manager
.PP
gcompris options
.TP
\fB\-f\fR, \fB\-\-fullscreen\fR
run gcompris in fullscreen mode.
.TP
\fB\-w\fR, \fB\-\-window\fR
run gcompris in window mode.
.TP
\fB\-s\fR, \fB\-\-sound\fR
run gcompris with sound enabled.
.TP
\fB\-m\fR, \fB\-\-mute\fR
run gcompris without sound.
.TP
\fB\-v\fR, \fB\-\-version\fR
Prints the version of gcompris
.PP
Help options
.TP
-?, \fB\-\-help\fR
Show this help message
.TP
\fB\-\-usage\fR
Display brief usage message
.SH "SEE ALSO"
The full documentation for
.B gcompris
is maintained as a Texinfo manual.  If the
.B info
and
.B gcompris
programs are properly installed at your site, the command
.IP
.B info gcompris
.PP
should give you access to the complete manual.


--- NEW FILE gcompris.spec ---
Name:           gcompris
Version:        7.4
Release:        4%{?dist}
Summary:        Educational suite for kids 2-10 years old
Group:          Amusements/Games
License:        GPL
URL:            http://gcompris.net
Source0:	http://download.sf.net/%{name}/%{name}-%{version}.tar.gz
Source1:	gcompris.6
Source2:        U006A.ogg
Patch1:         gcompris-sys-assetml.patch
Patch2:         gcompris-nl.patch
Patch3:         gcompris-electric.patch
Patch4:         gcompris-click_on_letter.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Buildrequires:  libgnomeui-devel sqlite-devel libassetml-devel python-devel
Buildrequires:  pygtk2-devel SDL_mixer-devel libXt-devel libXrandr-devel
Buildrequires:  gnome-python2-canvas python-sqlite2 texinfo texi2html
Buildrequires:  perl(XML::Parser) gettext desktop-file-utils gnuchess
Requires:       gnuchess gnucap tuxpaint gcompris-flags
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info

%description
GCompris / I Got IT is an educationnal game for children starting at 2.
More than 100 different activities are proposed:
* Click on the animals => learn the mouse/click usage
* Type the falling letters => learn the keyboard usage
* Falling Dices
* Falling words
* Basic algebra
* Time learning with an analog clock
* Puzzle game with famous paintings
* Drive Plane to catch clouds in increasing number
* Balance the scales
* And much more ...

Some activities make use of sounds.  For those you'll have to install the         
gcompris-sound package for the languages you intend to use.


%description -l fr
GCompris / J'ai Compris est un logiciel éducatif pour les enfants 
à partir de 2 ans.

Plus de 100 activités sont proposées :
* Cliquer sur les animaux => apprentissage du click et de la souris
* Entrer les lettres qui tombent => Apprentissage du clavier
* Les dés qui tombent
* Les mots qui tombent
* Algèbre simple
* Apprentissage de la lecture de l'heure sur une horloge analogique
* Puzzle avec des tableaux célèbres
* Pilote un avion pour attraper les nuages dans l'ordre
* Equilibre la balance
* ...


%package libs
Summary:        GCompris core-engine library
Group:          System Environment/Libraries

%description libs
This package contains the shared library which contains the core-engine of
GCompris.


%package devel
Summary:        Development libraries and headers for gcompris-lib
Group:          Development/Libraries
Requires:	%{name}-lib = %{version}
Requires:       libgnomecanvas-devel pkgconfig

%description devel
Developmental files for the core-engine library of GCompris


%package sound-da
Summary:        GCompris voices in Danish
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-da
Voice samples for the GCompris games in Danish, these come with an assetml
description so they could potentially be used by other packages.


%package sound-de
Summary:        GCompris voices in German
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-de
Voice samples for the GCompris games in German, these come with an assetml
description so they could potentially be used by other packages.


%package sound-en
Summary:        GCompris voices in English
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-en
Voice samples for the GCompris games in English, these come with an assetml
description so they could potentially be used by other packages.


%package sound-es
Summary:        GCompris voices in Spanish
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-es
Voice samples for the GCompris games in Spanish, these come with an assetml
description so they could potentially be used by other packages.


%package sound-fi
Summary:        GCompris voices in Finish
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-fi
Voice samples for the GCompris games in Finish, these come with an assetml
description so they could potentially be used by other packages.


%package sound-fr
Summary:        GCompris voices in French
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-fr
Voice samples for the GCompris games in French, these come with an assetml
description so they could potentially be used by other packages.


%package sound-hu
Summary:        GCompris voices in Hungarian
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-hu
Voice samples for the GCompris games in Hungarian, these come with an assetml
description so they could potentially be used by other packages.


%package sound-it
Summary:        GCompris voices in Italian
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-it
Voice samples for the GCompris games in Italian, these come with an assetml
description so they could potentially be used by other packages.


%package sound-nl
Summary:        GCompris voices in Dutch
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-nl
Voice samples for the GCompris games in Dutch, these come with an assetml
description so they could potentially be used by other packages.


%package sound-pt
Summary:        GCompris voices in Portuguese
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-pt
Voice samples for the GCompris games in Portuguese, these come with an assetml
description so they could potentially be used by other packages.


%package sound-ru
Summary:        GCompris voices in Russian
Group: 		Amusements/Games
Requires:       /usr/share/assetml

%description sound-ru
Voice samples for the GCompris games in Russian, these come with an assetml
description so they could potentially be used by other packages.


%package sound-sv
Summary:        GCompris voices in Swedish
Group: 		Amusements/Games

%description sound-sv
Voice samples for the GCompris games in Swedish, these come with an assetml
description so they could potentially be used by other packages.


%package sound-eu
Summary:        GCompris voices in Basque
Group: 		Amusements/Games

%description sound-eu
Voice samples for the GCompris games in Basque, these come with an assetml
description so they could potentially be used by other packages.


%package flags
Summary:        Country flags for use with GCompris (60x40 PNG)
Group: 		Amusements/Games

%description flags
Country flags for use with GCompris (60x40 PNG), these come with an assetml
description so they could potentially be used by other packages.


%prep
%setup -q
%patch1 -p1 -z .sysassetml -E
# no backup files for this patch, otherwise they get installed under /usr/share
%patch2 -p1
%patch3 -p1 -z .electric
%patch4 -p1 -z .click_on_letter
iconv -f ISO-8859-1 -t UTF8 docs/C/gcompris.info > tmp
mv tmp docs/C/gcompris.info
# fix gnome.canvas deprecation warnings
for i in src/boards/python.c `find src/boards/python -name "*.py"`; do
   %{__sed} -i 's/gnome\.canvas/gnomecanvas/g' $i
done
# fix up broken dutch alphabet sounds
pushd boards/sounds/nl/alphabet
for i in U007{B..F}.ogg; do
  mv $i `echo $i|%{__sed} s/7/6/`
done
cp %{SOURCE2} .
popd
# fix up missing dutch "ok zo" sound
pushd boards/sounds/nl/misc
cp ok.ogg check_answer.ogg
popd


%build
# The configure check for python-gnome.canvas fails without X running,
# --enable-py-build-only works around this
%configure --enable-py-build-only
# we can't use %%{?_smp_mflags} because that breaks compilation!
make 
# Fixup the desktop files a bit, we don't use a patch because that breaks
# the translations
sed -i 's/Name=Educational suite gcompris/Name=GCompris Educational suite/' \
  gcompris.desktop
sed -i \
  's/Comment=Administration for gcompris/GenericName=Administration for gcompris\nComment=Specify which activities may be used by whom/' \
  gcompris-edit.desktop


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man6
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man6
rm $RPM_BUILD_ROOT%{_libdir}/libgcompris-1.la
rm $RPM_BUILD_ROOT%{_libdir}/gcompris/lib*.la
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
rm -fr $RPM_BUILD_ROOT/usr/lib/menu
%find_lang %{name}

# below is the desktop file and icon stuff.
desktop-file-install --vendor fedora --delete-original                  \
  --dir $RPM_BUILD_ROOT%{_datadir}/applications                         \
  --add-category X-Fedora                                               \
  $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop

desktop-file-install --vendor fedora --delete-original                  \
  --dir $RPM_BUILD_ROOT%{_datadir}/applications                         \
  --add-category X-Fedora                                               \
  $RPM_BUILD_ROOT%{_datadir}/applications/%{name}-edit.desktop

mkdir -p $RPM_BUILD_ROOT/usr/share/icons/hicolor/48x48/apps
mv $RPM_BUILD_ROOT/usr/share/pixmaps/%{name}.png \
  $RPM_BUILD_ROOT/usr/share/pixmaps/%{name}-edit.png \
  $RPM_BUILD_ROOT/usr/share/icons/hicolor/48x48/apps
rmdir $RPM_BUILD_ROOT/usr/share/pixmaps


%clean
rm -rf $RPM_BUILD_ROOT


%post
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :

%postun
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
if [ $1 = 0 ]; then
    /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig


%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog NEWS README
%{_bindir}/%{name}
%{_libdir}/%{name}
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%{_datadir}/gcompris/boards/DOCUMENTATIONS
%{_datadir}/gcompris/boards/README
%{_datadir}/gcompris/boards/a*
%{_datadir}/gcompris/boards/b*
%{_datadir}/gcompris/boards/c*
%{_datadir}/gcompris/boards/d*
%{_datadir}/gcompris/boards/e*
%{_datadir}/gcompris/boards/f*.xml
%{_datadir}/gcompris/boards/fishes
%{_datadir}/gcompris/boards/g*
%{_datadir}/gcompris/boards/h*
%{_datadir}/gcompris/boards/i*
%{_datadir}/gcompris/boards/k*
%{_datadir}/gcompris/boards/l*
%{_datadir}/gcompris/boards/m*
%{_datadir}/gcompris/boards/n*
%{_datadir}/gcompris/boards/p*
%{_datadir}/gcompris/boards/r*
%{_datadir}/gcompris/boards/s*.xml
%{_datadir}/gcompris/boards/scales
%{_datadir}/gcompris/boards/skins
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/*.ogg
%{_datadir}/gcompris/boards/sounds/melody
%{_datadir}/gcompris/boards/sounds/memory
%{_datadir}/gcompris/boards/sounds/chronos
%{_datadir}/gcompris/boards/sounds/LuneRouge
%{_datadir}/gcompris/boards/sounds/HOWTO_ENCODE
%{_datadir}/gcompris/boards/submarine
%{_datadir}/gcompris/boards/t*
%{_datadir}/gcompris/boards/w*
%{_datadir}/gcompris/python
%{_datadir}/gnome
%{_datadir}/icons/hicolor/48x48/apps/%{name}*.png
%{_datadir}/applications/fedora-%{name}*.desktop
%{_infodir}/%{name}.info.gz
%{_mandir}/man6/%{name}.6.gz

%files libs
%defattr(-,root,root,-)
%{_libdir}/libgcompris-1.so.*

%files devel
%defattr(-,root,root,-)
%{_includedir}/libgcompris-1.0
%{_libdir}/libgcompris-1.so
%{_libdir}/pkgconfig/libgcompris-1.0.pc

%files sound-da
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_da.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/da

%files sound-de
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_de.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/de

%files sound-en
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_en.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/en

%files sound-es
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_es.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/es

%files sound-fi
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_fi.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/fi

%files sound-fr
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_fr.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/fr

%files sound-hu
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_hu.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/hu

%files sound-it
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_it.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/it

%files sound-nl
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_nl.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/nl

%files sound-pt
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_pt.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/pt

%files sound-ru
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_ru.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/ru

%files sound-sv
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_sv.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/sv

%files sound-eu
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_*_eu.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%dir %{_datadir}/gcompris/boards/sounds
%{_datadir}/gcompris/boards/sounds/eu

%files flags
%defattr(-,root,root,-)
%{_datadir}/assetml/gcompris_flags.assetml
%dir %{_datadir}/gcompris
%dir %{_datadir}/gcompris/boards
%{_datadir}/gcompris/boards/flags


%changelog
* Sat Apr 29 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 7.4-4
- Add click_on_letter.patch from CVS which fixes a few problems with the
  click on letter activity when the sounds are not installed

* Thu Apr 27 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 7.4-3
- Don't use a patch on the .desktop files as that breaks the translations,
  instead use sed at the end of %%build

* Tue Apr 25 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 7.4-2
- Fix a few parser errors in nl.po
- Drop Patch0, instead use a configure option with the same effect

* Mon Apr 10 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 7.4-1
- Initial spec file


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/gcompris/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	30 Apr 2006 07:51:18 -0000	1.1
+++ .cvsignore	30 Apr 2006 08:28:51 -0000	1.2
@@ -0,0 +1 @@
+gcompris-7.4.tar.gz


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/gcompris/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	30 Apr 2006 07:51:18 -0000	1.1
+++ sources	30 Apr 2006 08:28:51 -0000	1.2
@@ -0,0 +1 @@
+d80e55da21170a98d671c98b3e582cc3  gcompris-7.4.tar.gz




More information about the fedora-extras-commits mailing list