La mise à jour de Galette vers la version 0.63 ne met pas à jour correctement toutes les préférences…
Ce bogue a pour effet d'empêcher l'enregistrement des préférences de Galette. Pour y remédier, il suffit d'ajouter les valeurs manquantes à la base de données :
install/sql/upgrade-to-0.63-mysql.sql pour MySQL ou install/sql/upgrade-to-0.63-pgsql.sql pour PostgreSQL :INSERT INTO galette_preferences (nom_pref, val_pref) VALUES ('pref_etiq_marges_h', 10); INSERT INTO galette_preferences (nom_pref, val_pref) VALUES ('pref_etiq_marges_v', 10);
Pour les heureux possesseurs d'un php < 4.2, il faut patcher les fichiers includes/functions.inc.php, ajouter_adherent.php et voir_adherent.php :
includes/functions.inc.php, ajouter :function custom_html_entity_decode( $given_html, $quote_style = ENT_QUOTES ) { $trans_table = array_flip(get_html_translation_table( HTML_ENTITIES, $quote_style )); $trans_table['''] = "'"; return ( strtr( $given_html, $trans_table ) ); }
ajouter_adherent.php et voir_adherent.php, remplacer toutes les occurences de html_entity_decode par custom_html_entity_decode.Voir le rapport de patch #107 sur gna! : https://gna.org/patch/?func=detailitem&item_id=107
Ce patch est intégré à la version 0.62 de Galette. Merci à Benjamin Sonntag pour avoir révélé le bug.
(version CVS uniquement - 28/08/2004)
Si vous avez activé le safe_mode dans php, il vous faudra ajouter les pattern LANG et LC_ dans votre php.ini, sinon vous obtiendrez quelquechose comme ça :
Warning: putenv(): Safe Mode warning: Cannot set environment variable 'LANG' - it's not in the allowed list in /var/www/galette/includes/i18n.inc.php on line 38 Safe Mode warning: Cannot set environment variable 'LANGUAGE' - it's not in the allowed list in /var/www/galette/includes/i18n.inc.php on line 39 Warning: putenv(): Safe Mode warning: Cannot set environment variable 'LC_ALL' - it's not in the allowed list in /var/www/galette/includes/i18n.inc.php on line 40
Tapez la commande ci-dessous (la place du php.ini peut-être différente, l'exemple ci-dessous s'applique à une Debian) :
grep '^safe_mode =' /etc/php4/apache/php.ini
Si vous obtenez :
safe_mode = On
Vous êtes concerné, passez à l'étape suivante.
Éditez le fichier php.ini et modifier la variable safe_mode_allowed_env_vars ainsi :
safe_mode_allowed_env_vars = PHP_ LANG LC_
Redémarrez apache
/etc/init.d/apache reload
Et cela doit fonctionner.
Nous avons résolu le problème ainsi :
$ su - Password: # su - postgres $ psql template1 template1=# DROP DATABASE galette; DROP DATABASE template1=#\q
Toujours en tant que user postgres : Éventuellement création de l'utilisateur (ne pas mettre de mot de passe vide) :
$ createuser -A -D -P adh Enter password FOR new user: Enter it again: CREATE USER
$ createdb -O adh galette CREATE DATABASE
(adh est l'utilisateur, galette est le nom de la base)
Il y avait aussi un problème dans le pg_hba.conf, la configuration qui suit devrait fonctionner pour n'importe quelle version de postgresql :
#/etc/postgresql/pg_hba.conf (debian) local all postgres ident sameuser local all all md5 host all all 127.0.0.1 255.255.255.255 md5
Bug détecté sur MySql 5.0.27 sous Windows XP.
Si la configuration de MySql (dans le fichier My.ini) contient la directive suivante,
# Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
L'installation de Galette ne fonctionnera pas.
Si Galette est déja installé, il ne fonctionnera pas normalement. Par exemple, la création d'un nouvel adhérent échouera. Vous n'aurez pas de message d'erreur, le log de Galette indiquera que la création s'est bien passée, mais le nouvel adhérent ne sera pas ajouté à la base.
Il faut désactiver cette option.
# Set the SQL mode to strict # sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"