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ˬÃÎ:ë°ÃC1ŽÒ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.·ï^²Ce±¿²éKåæ5T+
ÿ
J/òÁ#[æ.ÆwÝcÞeüÜÆoÃ
7Ê»£©ŠAüÁŠaI<bVŒªî¥×sâó·Žfº,Žp[ÃhÉÓž6H L»ŸÑë
,òÎœ¿cŽff·Sj4ŽjBºØH$.õ ˬ/zK/ÁŽùbj¯36 ùBåêɪ³0]H
gá
g3ôýùµydÃIÅ"!q³ŠYo>WÄÙp'GS5x£T±MY©mynͺ"A 9&hÅ3ÅBædÅ-÷î@>y&µCðixmÎz{doy%IzaqVFª÷JàcËt-ÞŒ4åÒßK©Ïc
wXÃx@Ú"ÕvzÊckð쥥à
À©ø\Q`
úë^.É|ìôjy±Ï!6':ëá8¹ÂVJùÖ\ÛGM_Ö?ŽMo+ü6
\~è'ØcÁöjH¬è^?éyÿqa=p[!HLhëOÇPuÆ°ðÌPá])k#kæIéeºfEàö
Àa¹;²GAFdmÉqzQyÚxØÛQ³ðëgŠ&Ærea×#
|Wµ"ÉŠ-¬·ÉVFsTèýa$«Ð-èŽ6Û8ËeU
£:#?µÅh~hfwd£5aiÐþ¯R ÞuüÚºoá
16gh*¬xNM-ö»4'_8F©Ÿ©Xòn{Br¬ByæÞ$iø·§*
®ÚÂ%
îösÊžÙ³ßU®P ÈËOìòp×ÿ\*GE[Ýån
äõɪÅEj!õîÉïšê®³ÛÉÎå-j-íÊ€41R/y*ÚK®XÃ=!VÜä{]1aB
çwÝé,µ¹\@ùïbÜ©`sïa$C³ÿ}°ÑÓ²H-FêV廎]|þ9'ß¹Ç`G
ÞÅ/!TrÔÌÀöµÅfm[âÿÍ:<pèС©@ïœ÷B!©/ç ü?ð×f
aâî×6oTUUKž`ì€&úïÌ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{ßgpµ£öÎúpà·j?êb} tBTÅøk zÌ«£3Úyrü%,@NËaK>
®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.µÓÉqi5`çÞGŒb(
¬Ä®cÙêÉlðlG°~ï¹tç¶ÑꜜÙÃùg';BCÐÜçü·dóÕ^åÏŸN®qú<žÃRç©
Üór>æìñgÌÿD>EZ5«1ì'ÔÁŸßûãÃúèP©l27€öýqZÞÊô³Á$²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|FX/Q.
;v
ðE* ×*ü4³áe§U±Éœ¹³sh!Õ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çè¿*%j4L1ÝØ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(a)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(a)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(a)student.rug.nl>\n"
"Language-Team: Dutch <nl(a)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>"
+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/>) 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(a)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@sqlite_cflags = $(SQLITE3_CFLAGS)
@USE_SQLITE_FALSE@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(a)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(a)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(a)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(a)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