Skocz do zawartości

Gbiblioteka - Proszę O Opinie


tomcio15

Rekomendowane odpowiedzi

GBibioteka

 

(Tymczasowa) Strona projektu: http://members.lycos.co.uk/gbiblioteka/

 

Program ułatwia zarządzanie zbiorami książek i dokumentów elektronicznych.

 

Obecny status: wersja 0.7 (wersja rozwojowa)

(Pierwszym, oficjalnym wydaniem będzie wersja 1.0)

 

Lista zmian na dzień dzisiejszy:

====================================================================
Now ChangeLog is only in Polish language, if I have some free time
I'll translete it into English.
====================================================================

**** (02-06-2005) *** wersja 0.1
    Pierwsze wydanie
    
**** (25-06-2005) *** wersja 0.2
    Funkcja eksportu/importu/backapu danych z bazy danych
    
**** (28-06-2005) *** wersja 0.3
    Nowe pole "gatunek"
    Funkcja dodawania/usuwania gatunkow
    Autoodswierzanie listy glownej
    Poprawki
 Poprawione skrypty Makefile

**** (21-07-2005) *** wersja 0.4
    Rezegnycja z GNOME, oparcie GUI na czystym GTK+
    Szersze wykorzystanie biblioteki GLib
    Prezepisanie i reorganizacja praktycznie calego kodu
    Usuniecie funkcji importu danych
    Okno wlasciwosci
    Poprawienie zachowania GUI, przymiarki do zastosowania HIG
    Usauniecie pola 'gatunek'
    
    (INFO) Wersja 0.4 jest tak jakby stadium przejsciowym pomiezy wersjami
    0.3 i 0.5. Kod tej wersji jest bardziej dojrzaly;-) Sory, ze nie ma
    wszystkich komentarzy, nie mam sily ich pisac bo mam reke w gipsie.
    
*** (24-07-2005) *** wersja 0.4.1
    Poprawiony blad podczas pierwszego uruchomienia GBiblioteki
 - tworzenie katalogu '.gbibiblioteka'
    Poprawiony okno backupu bazy danych
    Zaktualizowane tlumaczenia (en, pl)
    
**** (28-07-2005) *** wersja 0.5
    Poprawiony blad podczas pierwszego uruchomienia GBiblioteki
 - bledne zachowanie listy 'main_view'
    Funkcja pozyczania ksiazek
    Reorganizacja struktury bazy danych
 - osobna tabela 'authors'
    Zamreozenie funkcji eksportu i backupu bazy danych
    Poprawienie GUI
    Zaktualizowanie tlumaczen (en)
    
**** (30-07-2005) *** wersja 0.6
    Nowe pola + obsluga tych pol
 - gatunek
 - numer ISBN
 - Ilosc stron
 - Wydawnistwo
 - Data wydania
    Przeprojektowanie okna dodawania ksiazek
    Ladniejsze okno informacyjne (zgodne z HIG)
    Stworzenie plikow README, COPYING, INSTALL, AUTHORS (narazie po angielsku)
    Uaktualnienie tlumaczen (en, pl)
    
**** (30-07-2005) *** wersja 0.7
    
    Autoodswiezanie listy autorow, gatunkow, wydawnictw itp.
    Poprawiony blad wyswietlania danych o ksiazce oknie glownym programu
    Poprawienie GUI (kosmetyka)
    Mozliwosc dodawania nowego autora, wydawnictwa, gatunku wprost z okna
    dodawania/edycji ksiazki
    Zaktualizowanie tlumaczen (en, pl)
    

===================================
**** NASTEPNA WERSJA *** wersja 0.8
    
    Uporzatkowanie kodu
    Nowe opcje w oknie wlasciwosci
 - maksymalny okres pozyczania ksiazek
    Nowe pole:
 - rozmiar ksiazki
    Nowa tebela bazy danych 'version' - poczatek prac nad obsluga/konwersja
    baz danych pomiedzy roznymi wersjami GBiblioteki
    Przetlumaczenie pliku ChangeLog na jezyk Angielski
    Przetlumaczenie pliku README na jezyk Polski

 

Wymagania minimalne:

- Biblioteka GTK+ w wersji 2.6.x

- Środowisko GNOME, zalecane 2.6, ale możliwe, że działa na wersji 2.4 (nie testowałem)

- baza danych SQLite wersji 3.x

 

Techniczne informacje:

- GBiblioteka jest napisana w C

- GUI aplikacji oparte jest o GTK+/GNOME

- program korzysta z silnika baz danych SQLite

- dwie wersje językowe angielska (domyślna) i polska

- użyłem GNU Autotools do instalacji i kompilacji

 

Prośba do forumowiczów

 

To moja pierwsza aplikacja na "taką" ;-) skalę, bo programuje raptem od roku. Wszystkich, którzy poświęcili się i skompilowali prosiłbym o przetestowanie programu i ewentualne zgłoszenie błędów (póki co na forum, bo stronka jeszcze nie gotowa). Każda podkreślam KAŻDA uwaga, propozycja, czy nawet najmniejsza sugestia jest mile widziana. Programistów proszę o przejrzenie kodu aplikacji, wstawiłem sporo komentarzy, więc nie powinno być kłopotów ze zrozumieniem kodu.

 

Gdyby ktoś chciał jakoś pomóc to zapraszam!

 

(dyskusja na temat programiku toczy się również na forum http://forums.gentoo.org/viewforum-f-45.html)

Odnośnik do komentarza
Udostępnij na innych stronach

checking for pkg-config... /usr/bin/pkg-config

checking for "libgnomeui-2.0"... Package libgnomeui-2.0 was not found in the pkg-config search path.

Perhaps you should add the directory containing `libgnomeui-2.0.pc'

to the PKG_CONFIG_PATH environment variable

No package 'libgnomeui-2.0' found

 

configure: error: Library requirements ("libgnomeui-2.0") not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.

====================================================

Hmmm.... o to co mi wskoczyło......

próbowałem ./configure --libdir=/usr/lib ale nic, co robię nie tak?????

 

PS: może jeszcze jakiś program do katalogowania plików.....

Mi by się przydał....

Odnośnik do komentarza
Udostępnij na innych stronach

apt-cache search libgnomeui albo yum search libgnomeui

I zainstalować :)

 

Szkoda tylko, że to wymaga sqlite > 3.1.x, w repach na Debianie mam tylko 2.8.16. A nie chce sobie znowu systemu rozwalić kompilując :rolleyes:

Kurde w tym gentoo to jakoś do przodu są :)

 

PS. Czemu sqlite, a nie np. mysql ;>

Odnośnik do komentarza
Udostępnij na innych stronach

Zygmunt, zainstaluj z płytek Fedory (mniemam, że tego systemu używasz) pakiety developerskie dla GNOME. nie zapomnij o SQLite

 

Iszk, ponieważ SQLite jest idealna do tego typu programów. Ten silnik bazo-danowy tworzy o prostu osobny plik bazy danych we wskazanym miejscu i do obsługi nie wymaga żadnych pierdół jak prawa dostępu, konta w systemie czy demonów. Jest to po prostu maksymalnie okrojona (i nie posiadająca żadnych zabezpieczeń) baza nanych, dlatego ją wybrałem.

Odnośnik do komentarza
Udostępnij na innych stronach

Dobrze by było, gdyby ta aplikacja była wy-HIG-owana (dokument chwilowo niedotępny). :)

 

Druga sprawa, mógłbyś utworzyć projekt (ale pod inną nazwą (choćby GLibrary ;)) na sourceforge lub innym *forge. Zyskałbyś w ten sposób np. CVS i lepszy od Lycorysa serwer, a także może jakiś programistów do pomocy. :)

 

Aha, i czemu po-ty są w iso-8859-2? :(

Odnośnik do komentarza
Udostępnij na innych stronach

Do HIG'a dojdę, ale najpierw muszę go przeczytać, i tak starałem się zrobić stosunkowo proste GUI, a poza tym to dopiero wersja 0.3 do 1.0 jeszce daaaleka droga, muślę, że w październiku dojdę do 1.0...

 

Wybrałem serwis https://developer.berlios.de/ i czekam na akceptację

 

A racja, w 0.4 pO'ty będą w UTF-8, dzięki Raven, w zasadzie to pierwszy bug :D

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 weeks later...

Przede wszystkim jeda informacja - program nabiera rozpedu i mamy juz wersje 0.7 :P

Wiecej informacji jest w ChangeLogu na poczatku strony.

 

Tutaj mamy bardziej rozbudowana dyskusje na temat programu:

Dyskusja na temat GBiblioteki, forum systemu Gentoo

 

Nowosci to glownie:

- stabilniejsza praca

- nowe pola

- funkcja pozycania ksiazek

- kilka innych

 

Tu mala uwaga, wersja 0.6 i nowsze nie bedzie dzialac poprawnie po kompilacji na GCC 4.0.0/4.0.1 (moze nowsze wersje z galezi 4.x poprawnie skompiluja GBiblioteke, jezeli ktos ma mozliwosc to prosze sprawdzic:!: )

Osoby, ktore potrafia mi pomoc prosze o rozwiazanie tego problemu, bo ja niestety nie wiem jak to naprawic

 

GBiblioteka dziala poprawnie na GCC w wersji 3.3.x (przetestowalem na GCC 3.3.5) i na GCC 3.4.x (_troll_ sprawdzil na wersji 3.4.4)

 

======================= OMOWIENIE BLEDU KOMPILACJI Z UZYCIEM GCC 4.0.1=======================

 

(opis bledu odnosi sie do wersji 0.6 programu GBiblioteka)

 

Poszperalem glebiej w kodzie i doszedlem do miejsca gdzi jest klopot, nie jest on jak wczesnij uwazalem w pliku book-fun.c, ale w pliku other-callbacks.c w tej funkcji (orginalna postac funkcji):

void
on_add_book_ok_but_clicked             (GtkButton       *button,
                                       gpointer         user_data)
{
    GtkWidget    *widget;
    widget = (gpointer) lookup_widget (GTK_WIDGET (button), "add_book_dlg");
    
    if (check_book_data (widget))    {
 update_book_data_from_dlg (widget);
 save_book ();
 clear_book_display ();
 reload_main_view ();
 gtk_widget_destroy (widget);
    }          
}

 

Funkcja check_book_data () zwraca wartosc boolean (dokladniej gboolean bo uzywam GLib), ta funkcja sprawdza dane w oknie edycji danych o ksiazce, jezeli dane sa ok to zwraca TRUE, jezeli sa bledne zwraca FALSE. Ta postac funkcji 'on_add_book_ok_but_clicked ()' daje naruszenie pamieci po kompilacji na GCC 4.0.1 i GCC 4.0.0.

 

Zmodyfikowana funkcja on_add_book_ok_but_clicked ():

void
on_add_book_ok_but_clicked             (GtkButton       *button,
                                       gpointer         user_data)
{
    GtkWidget    *widget;
    widget = (gpointer) lookup_widget (GTK_WIDGET (button), "add_book_dlg");
    
    if (check_book_data (widget))    {
              g_printf ("abcd...\n");
    }          
}

 

Takie postac funkcji dziala poprawnie, nie zglasza bledu naruszenia pamieci, z tego wynika, ze problemem NIE jest funkcja check_book_data (). Tak samo taka postac dziala w pelni poprawnie:

void
on_add_book_ok_but_clicked             (GtkButton       *button,
                                       gpointer         user_data)
{
    GtkWidget    *widget;
    widget = (gpointer) lookup_widget (GTK_WIDGET (button), "add_book_dlg");

    update_book_data_from_dlg (widget);
    save_book ();
    clear_book_display ();
    reload_main_view ();
    gtk_widget_destroy (widget);          
}

 

Natomiast taka modyfikacja, rowniez zwraca naruszenie pamieci:

void
on_add_book_ok_but_clicked             (GtkButton       *button,
                                       gpointer         user_data)
{
    GtkWidget    *widget;
    widget = (gpointer) lookup_widget (GTK_WIDGET (button), "add_book_dlg");
    
    if (check_book_data (widget))    {
              g_printf ("abcd...\n");
              gtk_widget_destroy (widget);
    }          
}

 

Teraz prosze niech mnie ktos poprawi jezeli sie myle! Moim zdaniem zmienna 'widget' NIE jest widoczna w instrukcji if co z punktu widzenia jezyka C jest niemozliwe. W takim razie wina lezy po stronie kompilatora, a nie po stronie programisty. Co Wy o tym sadzicie, bo ja to widze jako blad GCC?

 

Wersja GCC na ktorej wystapil blad:

 

Thread model: posix

gcc version 4.0.1 20050727 (Red Hat 4.0.1-5)

 

 

INFO DLA USEROW FEDORY 4 !!!

 

Narazie jest tylko jeden sposob na obejscie problemu, wytlumacze to krok po kroku:

- instalujemy z plyty Fedory 4 grupe "Rozwoj klasycznego oprogramowania"

- sciagamy najnowsza GBiblioteke

- rozpakowujemy zrodla i wywolujemy ./configure

- otwieramy plik katalok_ze_zrodlami/src/Makefile w dowolnym edytorze i zmieniamy linijke:

CC=gcc

na:

CC=gcc32

- wywolujemy make i make install

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...