Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/04/2009, à 06:01

Sarnikozy

9.04 probleme gfaim

Bonjour,
Je suis sous jaunty 9.04 et quand jessaie de lancer gfaim (logiciel de recettes) je me prends ca en pleine face :

prompt > gfaim
*** stack smashing detected ***: gfaim terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)[0xb791cda8]
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x0)[0xb791cd60]
gfaim[0x8049f3a]
gfaim[0x804b20d]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7835775]
gfaim[0x8049a41]
.... (je vous eparne la suite)


Quelqu'un a til eu le meme probleme ?

#2 Le 26/04/2009, à 20:31

Moinox

Re : 9.04 probleme gfaim

Salut,
exactement le même problème, le programme marchait sur Ubuntu 8.10. Donc ça vient pas forcément de ton install.
++

Hors ligne

#3 Le 28/04/2009, à 15:21

Sarnikozy

Re : 9.04 probleme gfaim

Ah cest enervant.... ya pas beaucoup de solutions sur le net a croire que pas beaucoup de mondes utilisent gfaim.

#4 Le 29/04/2009, à 19:43

LoseMagnet

Re : 9.04 probleme gfaim

Effectivement, la version des packages ne fonctionne pas.
Je l'ai compilé depuis les sources et tout fonctionne bien.
Je peux aussi fournir le .deb compilé pour architectures 32 bits.

Solution 1) installation par compilation :
- s'assurer que les outils pour compiler sont bien présents. Sinon, les installer :
build-essential
fakeroot
checkinstall
- télécharger les sources de Gfaim, puis les décompresser dans un répertoire :
http://freeperso.free.fr/gfaim-0.30.tar.gz
- ouvrir une console dans ce même répertoire
- compiler :

make

- modifier le fichier Makefile en supprimant la ligne :

install *.txt /usr/doc/gfaim

- installer :

sudo checkinstall

Cette commande va créer un fichier .deb puis l'installer. Il apparaitra donc dans le gestionnaire de paquets.
- librairies utiles : Sous Gnome, le Gfaim se lancera directement.
Sous KDE, il est nécessaire d'installer un composant gtk :
libgtk1.2

Une fois installé, il faut le lancer en mode console par

gfaim

Solution 2) Récupération de mon .deb :
- Sous KDE, installer cette dépendance : libgtk1.2
- télécharger et installer ce .deb : http://dl.free.fr/nacaqtL53
- lancer dans une console :

gfaim

Dernière modification par LoseMagnet (Le 29/04/2009, à 19:45)

Hors ligne

#5 Le 29/04/2009, à 23:14

Sarnikozy

Re : 9.04 probleme gfaim

Merci pour la reparation de fortune!!!

Sarnikozy

#6 Le 15/01/2019, à 19:17

kholo

Re : 9.04 probleme gfaim

bonjour à tous ceux qui passeraient par là,
je me suis mis au python récemment et j'ai décidé de voir ce qu'on peut faire avec ce logiciel et surtout la base qu'il contient...
en fait de gfaim, la plus ancienne version que je connaisse vient d'un logiciel nommé Cuisinons sous Windows (bien avant 2000)...
On en trouve divers versions un peu partout sur le net... dont ce Gfaim

la base est constituée d'un fichier CUISINE.DAT qui contient tout ce qui est nécessaire mais il y a aussi un autre fichier qui semble intéressant : CUISINE.IDX.
pour le moment, je vais m’intéresser au fichier DAT et en faire un dictionnaire pour pouvoir ensuite m'y promener facilement

pendant que j'y suis, rendons à César ce qui appartient à Jules et je rappellerais le nom de celui qui à créer la base originale : Alexandre PUKALL... je doute que les infos de mail soient toujours valide mais je verrai cela plus tard, je met les infos de droits ici :

Ces recettes sont destinees a un usage prive . Tout usage commercial 
de tout ou partie de ces recettes est totalement interdit.
A noter que la saisie de ces recettes, qui ne sont qu'une partie de mes 
recettes, a demande pres de 750 heures. 

Pour toute licence d'utilisation commerciale pour les recettes contactez 
Alexandre PUKALL...

pour le mail vous le trouverez dans les versions finalisées qui utilisent sa base

voilà le code que j'ai sorti pour le moment pour parser le code :

#!/usr/bin/env python3
# -*- coding: UTF8 -*-

"""
pour me faire une base de recettes de cuisine, 
j'ai décider de regarder du côté d'un logiciel que je connais depuis une grosse paire de dizaines d'années : Cuisinons
la base est un fichier .DAT en texte que j'ai décidé de parser pour voir ce  qu'il avait dans le ventre

en le décortiquant, j'ai trouvé certaines incohérances que j'ai décidé de contourner et corriger 
de façon à en sortir une base la plus saine possible
"""

""" Monde Windows oblige et vu l'ancienneté du fichier, on est en ISO-8859
j'ai commencé par passer le fichier en utf8 """
""" iconv -f ISO-8859-1 -t UTF-8 CUISINE.DAT -o cuisine.dat """
fich_in = "cuisine.dat"

""" et j'en ai sorti un extrait pour bosser plus vite """
# fich_in = "extrait.txt"

""" DEBUT APRES CETTE LIGNE
$ BETTERAVES A LA LYONNAISE $@BE@

Etuvées au beurre avec des oignons émincés. $

---------
$ BETTERAVES CHAUDES AUX OIGNONS $@BE@

Pour 4 personnes: 3 ou 4 betteraves rouges cuites (selon grosseur) 4 oignons, 50 g de beurre, sel, poivre, 50 g de crème fraîche, persil ou ciboulette à volonté.

Pelez les betteraves, coupez-les en dés. Pelez et hachez les oignons, faites-les revenir au beurre en remuant, ajoutez les dés de betteraves, laissez chauffer doucement 15 mn. Assaisonnez et joignez la crème fraîche. Servez chaud avec une côte de porc grillée par exemple. $

---------
$ BETTERAVES EN SAUCE $@BE@

Préparation 15 minutes, cuisson 5 minutes. 500 g de betteraves cuites au four, 60 grammes de crème fraîche, 1 cuillerée de vinaigre, beurre, ciboulette.

Pelez et émincez les betteraves, puis faites-les légèrement chauffer dans le beurre fondu. Quand elles sont bien chaudes, versez dessus le vinaigre, ensuite la crème chauffée à part. Remuez bien, parfumez à la ciboulette, servez immédiatement. $

---------

FIN AVANT CETTE LIGNE"""

"""
on trouve vite le montage
une ligne avec le titre entouré de $ et d'espace : $ UN TITRE EN MAJUSCLE $ 
et suivi directement d'un index avec des @ dedans (dont je vais me servir pour le trouver)
mais certaines recettes n'ont pas cet index...

puis la recette en X lignes 
puis un $ pour finir la dernière ligne de recette
et, enfin une ligne de 9 tirets (pourquoi 9 ?) qui semble identique pour toute...
suivi par un saut de ligne

"""

""" # C'EST PARTI
# on ouvre le fichier et on met le contenu dans un conteneur """
with open(fich_in,'r') as f:
    donnees = f.read()

""" # la seule chose qui semble sûr comme délimiteur de recette c'est la ligne de tirets """
delimiteur = '---------\n'

"""# je crée une liste en variable temporaire pour séparer les recettes """
les_recettes = donnees.split(delimiteur)

""" # le nombre de recettes """
# print(str(len(les_recettes)) + " recettes")

""" # la première recette """
# print(les_recettes[0])

""" # le titre de la première recette """
# print(les_recettes[0].split('\n')[0])
""" # les autres lignes """
# print(les_recettes[1])
# print(les_recettes[2])


""" # bon maintenat, les conteneurs
# les recettes, pas besoins d'explications
# si ce n'est que ce sera un dictionnaire """
mes_recettes = {}
""" # les be que j'ai nommé ainsi parce que 
# les premières recettes de mon extrait ne contenait que cette référence """
les_be = set()
""" # c'est un set pour supprimer les doublons
# je l'ai concervé pour trouver des erreurs éventuelles """

# et une fonction pour faire ça tranquillou 
def parser_be(le_be):
    """ les be n'ont pas d'espaces donc je peux les splitter """
    retour = le_be.strip(" ") # pour être certain qu'il n' y a pas d'espaces qui trainent
    retour = retour.split(' ')[0] # je split sur les espaces et je chope le premier élément
    return retour

""" # je vais numéroter mes recettes dans mon dico avec ce n """
n=0
for une_recette in les_recettes:
    premiere_ligne = une_recette.split('\n')[0]
    # print(premiere_ligne)
    if '$' in premiere_ligne: 
        """ # pour le titre je me sert du $,
        # je prend l'élément 1 puisque la ligne commence par un $ qui est le 0
        # [1:]je vire le $ du début et le premier espace
        # [:-1] puis le $ de la fin et l'espace qui le précède """
        le_titre = premiere_ligne.split('$')[1][1:][:-1]
        # print(le_titre)

        """ # on tente la même chose avec le_be mais c'est pas la même 
        # j'utilise le $ de fin du titre qui semble juste pour toutes les recettes """
        un_be = premiere_ligne.split('$')[2]
        # print(un_be)

        if '@' in un_be: # mais toutes les lignes n'ont pas l'@
            le_be = parser_be(un_be) # et tous les be n'ont pas de saut après !!!!!
            
            les_be.add(le_be) # pour faire le point en alimentant le set
            txt_recette = une_recette.split(le_be)[1][:-3]
        else:
            le_be = "NC" # certaines recettes n'ont pas de be
            txt_recette = une_recette.split('$')[2] # alors on split sur le $ du titre

        # print(le_be)
        # print(txt_recette)
        """ # le .strip("\n") POUR VIRER LES LIGNES VIDES AU DEBUT ET A LA FIN UNIQUEMENT """
        mes_recettes[n] = [ le_titre, le_be, txt_recette.strip("\n") ]
        n += 1
    else:
        """ # on doit avoir ça une seule fois pour la dernière ligne du fichier à parser """
        print("il reste encore :", une_recette)

""" attention c'est long en taille """
# print(mes_recettes)
""" # 10510 recettes sur ma version """
print("on a " + str(len(mes_recettes)) + " recettes")

""" # on peut sortir une recette avec un numéro d'index """
print(mes_recettes[10])

""" # attraper son nom """
print(mes_recettes[10][0])
""" # son be """
print(mes_recettes[10][1])
""" # et la recette """
print(mes_recettes[10][2])

""" sortir tous les be """
for un_be in les_be:
    print(un_be)

voilà,... reste à voir ce que je vais faire avec tout cela mais au moins la base n'est pas morte !

Hors ligne