Ergebnis 1 bis 17 von 17

Thema: SQLite-Paket für Freetz erstellen

  1. #1
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)

    SQLite-Paket für Freetz erstellen

    Ich versuche mich gerade an diesem Paket. Habe dazu ein paar Fragen.

    1. Soll ich das paket nach make/sqlite3/ oder nach make/libs/sqlite3/ packen?
    2. Kann ich in einer sqlite3/sqlite3.mk Datei das Binary und die Bibliotheken packen?

  2. #2
    IPPF-Fünftausend-VIP
    Registriert seit
    03.08.2007
    Ort
    BI
    Beiträge
    7.448
    Meiner Meinung nach pflegst du am besten die libs und das Binary einzeln ein. Dann nämlich können andere Apps vllt. irgendwann einmal die Bibliotheken davon mit nutzen, ohne dass sie noch einmal eingebaut werden, denn dann wird schlicht eine Dependency gesetzt, und gut ist.
    Boxen: 7240, 7170, W900V, W701V jeweils mit mehr oder minder aktuellem Freetz-Trunk und irgendwelchen Modifizierungen.

    Aus aktuellem Anlaß: Support gehört ins Forum, IRC oder Trac-System, nicht in mein Postfach oder meine Messenger-Accounts.


    ICQ und andere Kontaktinformationen ab nun nur noch per PN.

  3. #3
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Also, einmal in make/sqlite/ und die Bibliotheken in make/libs/. Macht Sinn.

  4. #4
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.292
    Hi.
    Schau mal in make/curl/curl.mk. Da ist auch Binary und Lib kombiniert.

    MfG Oliver
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

  5. #5
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Ah. Danke.

    Das Binary kompiliert schon mal

  6. #6
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Wenn ich jetzt 'make menuconfig' aufrufe, bekomme ich folgende Meldung:

    Code:
    freetz@freetz-linux:~/freetz-trunk$ make menuconfig
    make/sqlite/Config.in:3:warning: 'select' used by config symbol 'FREETZ_PACKAGE_SQLITE' refer to undefined symbol 'FREETZ_LIB_libsqlite'
    #
    # using defaults found in .config
    #
    make: *** [menuconfig] Fehler 1
    
    freetz@freetz-linux:~/freetz-trunk$
    Wo ist der Fehler?

    Anbei noch ein 'svn diff make/{sqlite,Config.in}':
    Code:
    Index: make/sqlite/Makefile.in
    ===================================================================
    --- make/sqlite/Makefile.in     (Revision 0)
    +++ make/sqlite/Makefile.in     (Revision 0)
    @@ -0,0 +1,3 @@
    +ifeq ($(strip $(FREETZ_PACKAGE_SQLITE)),y)
    +PACKAGES+=sqlite
    +endif
    Index: make/sqlite/sqlite.mk
    ===================================================================
    --- make/sqlite/sqlite.mk       (Revision 0)
    +++ make/sqlite/sqlite.mk       (Revision 0)
    @@ -0,0 +1,59 @@
    +$(call PKG_INIT_BIN, 3.6.16)
    +$(PKG)_LIB_VERSION:=0.8.6
    +$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.gz
    +$(PKG)_SITE:=http://www.sqlite.org
    +$(PKG)_BINARY:=$($(PKG)_DIR)/.libs/sqlite3
    +$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/bin/sqlite3
    +$(PKG)_LIB_BINARY:=$($(PKG)_DIR)/lib/.libs/libsqlite3.so.$($(PKG)_LIB_VERSION)
    +$(PKG)_LIB_STAGING_BINARY:=$(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3.so.$($(PKG)_LIB_VERSION)
    +$(PKG)_LIB_TARGET_BINARY:=root/usr/lib/libsqlite3.so.$($(PKG)_LIB_VERSION)
    +
    +$(PKG)_CONFIGURE_OPTIONS += --enable-shared
    +$(PKG)_CONFIGURE_OPTIONS += --enable-static
    +$(PKG)_CONFIGURE_OPTIONS += --disable-readline
    +$(PKG)_CONFIGURE_OPTIONS += LIBS="-lpthread"
    +
    +
    +$(PKG_SOURCE_DOWNLOAD)
    +$(PKG_UNPACKED)
    +$(PKG_CONFIGURED_CONFIGURE)
    +
    +$($(PKG)_BINARY): $($(PKG)_DIR)/.configured
    +       PATH="$(TARGET_PATH)" \
    +               $(MAKE) -C $(SQLITE_DIR) \
    +               CC="$(TARGET_CC)" \
    +               CFLAGS="$(TARGET_CFLAGS)"
    +
    +$($(PKG)_LIB_STAGING_BINARY): $($(PKG)_LIB_BINARY)
    +       PATH=$(TARGET_PATH) \
    +               $(MAKE) -C $(CURL_DIR) \
    +               DESTDIR="$(TARGET_TOOLCHAIN_STAGING_DIR)" \
    +               install
    +       $(PKG_FIX_LIBTOOL_LA) \
    +               $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/pkgconfig/sqlite3.pc \
    +               $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3.la
    +
    +$($(PKG)_TARGET_BINARY): $($(PKG)_BINARY)
    +       $(INSTALL_BINARY_STRIP)
    +
    +$($(PKG)_LIB_TARGET_BINARY): $($(PKG)_LIB_STAGING_BINARY)
    +       mkdir -p $(dir $@)
    +       cp -a $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3*.so* root/usr/lib
    +       $(TARGET_STRIP) $@
    +
    +$(pkg):
    +
    +$(pkg)-precompiled: $($(PKG)_TARGET_BINARY)
    +
    +$(pkg)-clean:
    +       -$(MAKE) -C $(SQLITE_DIR) clean
    +       $(RM) -r $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3* \
    +               $(TARGET_TOOLCHAIN_STAGING_DIR)/lib/pkgconfig/sqlite3.pc \
    +               $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/include/sqlite \
    +               $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/bin/sqlite3*
    +
    +$(pkg)-uninstall:
    +       $(RM) $(SQLITE_TARGET_BINARY)
    +       $(RM) root/usr/lib/libsqlite3*.so*
    +
    +$(PKG_FINISH)
    Index: make/sqlite/Config.in
    ===================================================================
    --- make/sqlite/Config.in       (Revision 0)
    +++ make/sqlite/Config.in       (Revision 0)
    @@ -0,0 +1,7 @@
    +config FREETZ_PACKAGE_SQLITE
    +       bool "SQLite (v3.x) database engine (CLI)"
    +       select FREETZ_LIB_libsqlite
    +       default n
    +       help
    +               SQLite is a small C library that implements a self-contained, embeddable,
    +               zero-configuration SQL database engine.
    Index: make/Config.in
    ===================================================================
    --- make/Config.in      (Revision 3483)
    +++ make/Config.in      (Arbeitskopie)
    @@ -73,6 +73,7 @@
     endmenu
     
     menu "Testing"
    +source make/sqlite/Config.in
     source make/apache/Config.in
     source make/bash/Config.in
     source make/bfusb/Config.in

  7. #7
    IPPF-Urgestein
    Registriert seit
    22.04.2007
    Beiträge
    10.989
    Zitat Zitat von dogge101 Beitrag anzeigen
    Code:
    make/sqlite/Config.in:3:warning: 'select' used by config symbol 'FREETZ_PACKAGE_SQLITE' refer to undefined symbol 'FREETZ_LIB_libsqlite'
    Die Meldung ist doch schon relativ deutlich?
    Wo hast Du denn 'FREETZ_LIB_libsqlite' definiert? Entweder gar nicht, oder in einer Datei, die nicht mit eingelesen wird.

    Die Trennung in Library und Binary ist sinnvoll, wenn nicht jeder das Binary braucht. Du mußt dann aber auch irgendwo die Config-Option für die Library definieren.

  8. #8
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Ich möchte das Binary und die Bibliothek aber nicht trennen. Deshalb hab ich make/curl/curl.mk als Template genommen. So wie mir Olli den Tipp gegeben hat.

    Bearbeitet: Ok. Ein Bug gefunden. Der Kompilierprozess geht jetzt schon weiter
    Geändert von dogge101 (17.07.2009 um 19:00 Uhr)

  9. #9
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Es ist geschafft Mein erstes Programm (SQLite) ist für Freetz kompiliert.

    Ich hänge mal den Patch an. Schaut doch mal drüber was man noch verbessern könnte.

    Bearbeitet: Hmm, warum wird nicht das Prefix /usr verwendet? Stattdessen wird in $(TARGET_TOOLCHAIN_STAGING_DIR)/bin/sqlite3 installiert
    Angehängte Dateien Angehängte Dateien
    Geändert von dogge101 (17.07.2009 um 19:38 Uhr)

  10. #10
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.292
    Hi.
    Das sieht schon sehr gut aus. Bis auf 2 Sachen.
    Code:
    $(PKG)_CONFIGURE_OPTIONS += --disable-readline
    Ich hab das jetzt nicht auf der Box probiert. Ist das auch ohne curses bedienbar?
    Code:
    $(PKG)_CONFIGURE_OPTIONS += LIBS="-lpthread"
    Brauchst du das? Bei mir funktioniert es auch ohne diese Zeile.

    Bei mir ist /usr ein Symlink auf ./

    MfG Oliver
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

  11. #11
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Grr. Jetzt funktioniert es nicht mehr

    Wenn ich den Patch aus dem Anhang mit 'patch -p0 < sqlite.diff.txt' anwende und dann 'make menuconfig' auswähle und Bin auswähle erhalte ich bei einem 'grep sqlite .config' nur folgendes:

    Code:
    freetz@freetz-linux:~/freetz$ grep sqlite .config
    FREETZ_LIB_libsqlite=y
    freetz@freetz-linux:~/freetz$
    In menuconfig wurde aber auch das Bin unter Testing ausgewählt. Was kann ich jetzt machen?

  12. #12
    IPPF-Urgestein
    Registriert seit
    22.04.2007
    Beiträge
    10.989
    Zitat Zitat von dogge101 Beitrag anzeigen
    Was kann ich jetzt machen?
    Code:
    grep -i sqlite .config
    FREETZ_PACKAGE_SQLITE ist groß geschrieben und wird sonst nicht gefunden.

    Das löst vermutlich nicht Dein eigentliches Problem, aber darüber hast Du auch nichts geschrieben.

  13. #13
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Danke. Manchmal sieht mal den Wald vor lauter Bäumen nicht mehr

    Weniger gut ist, dass das source/sqlite-3.6.16/.libs/sqlite3 Binary immer noch nicht nach root/usr/bin/sqlite3 kopiert wird. In build/modified/filesystem/usr/bin/sqlite3 ist es drin.
    Geändert von dogge101 (18.07.2009 um 16:43 Uhr)

  14. #14
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.292
    Das passt schon alles so wie es ist. Kannst du bitte meine Fragen beantworten?

    MfG Oliver
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

  15. #15
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Echt? Gut, dann werde ich das mal auf der Box testen.

  16. #16
    Gesperrt
    Registriert seit
    24.06.2009
    Beiträge
    234
    Verwarnungen
    0/1 (998)
    Ich gebe mich geschalgen.

    AVM hat schon eine eigene SQLite (3.6.13) Lib für den Mediaserver drin. Leider ohne SQLite CLI. Der Quellcode wurde laut olistudent von AVM nicht veröffentlicht.

    Olistudent meinte, man könne die AVM SQLite ersetzen. Das ist mir zu viel Aufwand und da kenne ich mich auch nicht aus. Fraglich ist dann natürlich, ob der mediaserver noch laufen würde.

    Ich gebe an dieser Stelle auf. Wer will und genug Zeit hat, kann sich ja daran versuchen. Den Patch findet ihr als Anhang in Beitrag Nr. 9 in diesem Thread.

  17. #17
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.292
    Ich checke das mal ein. Dann kann man immer noch schauen was man mit der libsqlite von AVM macht. Ich hab grad gesehen, dass die einen anderen Namen hat. Daher sollte es nicht zu Konflikten kommen.

    Mfg Oliver

    edit: http://trac.freetz.org/changeset/3489
    Geändert von olistudent (19.07.2009 um 10:40 Uhr)
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

Ähnliche Themen

  1. FREETZ Paket Halt-On-Lan (HOL)
    Von hermann72pb im Forum Freetz
    Antworten: 82
    Letzter Beitrag: 05.12.2012, 14:54
  2. Eigenes Freetz Paket
    Von garbada im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 8
    Letzter Beitrag: 03.08.2011, 23:38
  3. Kein lighttpd-Paket in freetz 1.1.3?
    Von jeas im Forum Freetz
    Antworten: 4
    Letzter Beitrag: 23.09.2010, 17:45
  4. SVN-Server Paket für freetz
    Von stefan-- im Forum Freetz
    Antworten: 7
    Letzter Beitrag: 18.04.2009, 12:55
  5. neues paket erstellen für ds-mod
    Von SatBandit im Forum Freetz
    Antworten: 3
    Letzter Beitrag: 29.05.2006, 02:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •