--- /dev/null
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fso
+PKG_VERSION:=20090112
+PKG_REV:=2c47aa00f530c4ec698c024b583f250373185b09
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=git://git.freesmartphone.org/framework.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+
+PKG_BUILD_DEPENDS:=cython python
+
+include $(INCLUDE_DIR)/package.mk
+-include $(if $(DUMP),,$(STAGING_DIR)/mk/python-package.mk)
+
+ifeq ($(CONFIG_TARGET_s3c24xx_openmoko-gta02-graphical),y)
+ CONFIG=om_gta02
+endif
+ifeq ($(CONFIG_TARGET_s3c24xx_openmoko-gta02-minimal),y)
+ CONFIG=om_gta02
+endif
+
+define Package/fso
+ SECTION:=phone
+ CATEGORY:=Phone
+ TITLE:=freesmartphone.org DBus API reference implementation
+ DEPENDS:=python-core +dbus-python +python-gobject +pyserial +pyyaml +gst-python
+ URL:=http://www.freesmartphone.org
+endef
+
+define Package/fso/description
+ freesmartphone.org is a collaboration platform for open source and open discussion software projects working on interoperability and shared technology for Linux-based SmartPhones
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix="$(PKG_INSTALL_DIR)/usr")
+endef
+
+define Package/fso/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR) $(1)/usr/bin $(1)/etc/init.d
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+ $(INSTALL_BIN) \
+ $(PKG_INSTALL_DIR)/usr/bin/* \
+ $(1)/usr/bin/
+ $(INSTALL_BIN) ./files/frameworkd.init $(1)/etc/init.d/frameworkd
+ $(CP) \
+ $(PKG_INSTALL_DIR)/etc/* \
+ $(1)/etc/
+ $(if $(CONFIG),$(INSTALL_CONF) ./files/frameworkd.conf.$(CONFIG) $(1)/etc/frameworkd.conf,$(CP) ./files/frameworkd.conf $(1)/etc/frameworkd.conf)
+endef
+
+$(eval $(call BuildPackage,fso))
--- /dev/null
+[frameworkd]
+# indicates this configuration version, do not change
+version = 1
+# the default log_level, if not specified per module
+log_level = INFO
+# the global log_destination. Uncomment to enable
+log_to = stderr
+#log_to = file
+#log_to = syslog
+# if logging to a file, specify the destination
+log_destination = /tmp/frameworkd.log
+# persistance format, one of "pickle", "yaml"
+persist_format = pickle
+rootdir = ../etc/freesmartphone:/etc/freesmartphone:/usr/etc/freesmartphone
+
+[odeviced]
+# set log level for a subsystem or for an individual module
+# available log levels are: DEBUG, INFO, WARNING, ERROR, CRITICAL
+log_level = INFO
+
+[odeviced.kernel26]
+# set 1 to disable a module
+disable = 0
+# poll capacity once every 5 minutes
+# (usually, you do not have to change this)
+capacity_check_timeout = 300
+# set 0 to disable FB_BLANK ioctl to blank framebuffer
+# (if you have problems on Openmoko GTA02)
+fb_blank = 1
+
+[odeviced.audio]
+# set directory where the alsa audio scenarios are stored
+scenario_dir = /usr/share/openmoko/scenarios
+# set default scenario loaded at startup
+default_scenario = stereoout
+
+[odeviced.idlenotifier]
+# add inut nodes to ignore for idle activity
+ignoreinput = 2,3,4
+# configure timeouts (in seconds) here. A value of 0
+# means 'never fall into this state' (except programatically)
+idle = 10
+idle_dim = 20
+idle_prelock = 12
+lock = 2
+suspend = 0
+
+[odeviced.input]
+# format is <keyname>,<type>,<input device keycode>,<report held seconds in addition to press/release>
+report1 = AUX,key,169,1
+report2 = POWER,key,116,1
+report3 = CHARGER,key,356,0
+report4 = HEADSET,switch,2,0
+
+[odeviced.powercontrol-neo]
+disable = 0
+
+[ogsmd]
+disable = 0
+# chose your modem type, available types are: ti_calypso, freescale_neptune, singleline, muxed4line, option, ...
+modemtype = ti_calypso
+# if you have a ti_calypso, you can chose the deep sleep mode. Valid values are: never, adaptive (default), always
+ti_calypso_deep_sleep = adaptive
+# if you have a ti_calypso, you can choose the dsp mode for audio enhancement. Valid values are:
+# "short-aec": Short Echo Cancellation (max)
+# "long-aec": Long Echo Cancellation (max)
+# "long-aec:6db": Long Echo Cancellation (-6db)
+# "long-aec:12db": Long Echo Cancellation (-12db)
+# "long-aec:18db": Long Echo Cancellation (-18db)
+# "nr": Noise Reduction (max)
+# "nr:6db": Noise Reduction (-6db)
+# "nr:12db": Noise Reduction (-12db)
+# "nr:18db": Noise Reduction (-18db)
+# "aec+nr": Long Echo Cancellation (max) plus Noise Reduction (max) [default]
+# "none": No audio processing.
+ti_calypso_dsp_mode = aec+nr
+log_level = INFO
+
+[ogpsd]
+# possible options are NMEADevice, UBXDevice, GTA02Device, EtenDevice
+device = GTA02Device
+# possible options are SerialChannel, GllinChannel, UDPChannel, FileChannel
+channel = SerialChannel
+# For UDPChannel the path defines the port to listen to
+path = /dev/ttySAC1
+log_level = INFO
+
+[opreferencesd]
+log_level = DEBUG
+disable = 0
+# log_level = DEBUG
+
+[oeventsd]
+log_level = DEBUG
+disbale = 0
+
+[opimd]
+contacts_default_backend = CSV-Contacts
+messages_default_folder = Unfiled
+messages_trash_folder = Trash
+sim_messages_default_folder = SMS
+rootdir = ../etc/freesmartphone/opim:/etc/freesmartphone/opim:/usr/etc/freesmartphone/opim
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 OpenWrt.org
+START=80
+
+start() {
+ /usr/bin/frameworkd &
+}
+
+stop() {
+ killall frameworkd
+}
--- /dev/null
+diff -ruN fso-20090103.orig/setup.py fso-20090103/setup.py
+--- fso-20090103.orig/setup.py 2009-01-04 22:23:14.000000000 +0100
++++ fso-20090103/setup.py 2009-01-05 01:22:17.000000000 +0100
+@@ -23,18 +23,18 @@
+ packages = packages,
+ scripts = [ "framework/frameworkd", "tools/cli-framework" ],
+ data_files = [
+- ("../../etc/dbus-1/system.d", ["etc/dbus-1/system.d/frameworkd.conf"] ),
+- ("../../etc/freesmartphone/opreferences/schema/", ["etc/freesmartphone/opreferences/schema/phone.yaml"]),
+- ("../../etc/freesmartphone/opreferences/schema/", ["etc/freesmartphone/opreferences/schema/profiles.yaml"]),
+- ("../../etc/freesmartphone/opreferences/schema/", ["etc/freesmartphone/opreferences/schema/rules.yaml"]),
+- ("../../etc/freesmartphone/opreferences/conf/profiles/", ["etc/freesmartphone/opreferences/conf/profiles/default.yaml"]),
+- ("../../etc/freesmartphone/opreferences/conf/phone", ["etc/freesmartphone/opreferences/conf/phone/default.yaml"]),
+- ("../../etc/freesmartphone/opreferences/conf/phone", ["etc/freesmartphone/opreferences/conf/phone/silent.yaml"]),
+- ("../../etc/freesmartphone/opreferences/conf/rules", ["etc/freesmartphone/opreferences/conf/rules/default.yaml"]),
+- ("../../etc/freesmartphone/opreferences/conf/rules", ["etc/freesmartphone/opreferences/conf/rules/silent.yaml"]),
+- ("../../etc/freesmartphone/oevents", ["etc/freesmartphone/oevents/rules.yaml"]),
+- ("../../etc/freesmartphone/persist", ["etc/freesmartphone/persist/README"]),
+- ("../../etc/freesmartphone/ogsmd", ["etc/freesmartphone/ogsmd/networks.tab"]),
++ ("../etc/dbus-1/system.d", ["etc/dbus-1/system.d/frameworkd.conf"] ),
++ ("../etc/freesmartphone/opreferences/schema/", ["etc/freesmartphone/opreferences/schema/phone.yaml"]),
++ ("../etc/freesmartphone/opreferences/schema/", ["etc/freesmartphone/opreferences/schema/profiles.yaml"]),
++ ("../etc/freesmartphone/opreferences/schema/", ["etc/freesmartphone/opreferences/schema/rules.yaml"]),
++ ("../etc/freesmartphone/opreferences/conf/profiles/", ["etc/freesmartphone/opreferences/conf/profiles/default.yaml"]),
++ ("../etc/freesmartphone/opreferences/conf/phone", ["etc/freesmartphone/opreferences/conf/phone/default.yaml"]),
++ ("../etc/freesmartphone/opreferences/conf/phone", ["etc/freesmartphone/opreferences/conf/phone/silent.yaml"]),
++ ("../etc/freesmartphone/opreferences/conf/rules", ["etc/freesmartphone/opreferences/conf/rules/default.yaml"]),
++ ("../etc/freesmartphone/opreferences/conf/rules", ["etc/freesmartphone/opreferences/conf/rules/silent.yaml"]),
++ ("../etc/freesmartphone/oevents", ["etc/freesmartphone/oevents/rules.yaml"]),
++ ("../etc/freesmartphone/persist", ["etc/freesmartphone/persist/README"]),
++ ("../etc/freesmartphone/ogsmd", ["etc/freesmartphone/ogsmd/networks.tab"]),
+ ("freesmartphone/examples/", getDir( "examples" ) ),
+ ]
+ )
--- /dev/null
+diff -ruN fso-20090103.orig/framework/cxnet/common.py fso-20090103/framework/cxnet/common.py
+--- fso-20090103.orig/framework/cxnet/common.py 2009-01-05 10:09:43.000000000 +0100
++++ fso-20090103/framework/cxnet/common.py 2009-01-07 11:10:52.000000000 +0100
+@@ -38,7 +38,14 @@
+ else:
+ cx_int = c_uint64
+
+-libc = CDLL("libc.so.6")
++from os import listdir
++from re import compile
++re = compile('^libc.so.[0-9]$')
++libs = listdir('/lib')
++for lib in libs:
++ if re.match(lib):
++ libc = CDLL(lib)
++ break
+
+ def hdump(name,msg,size=0):
+ """
+diff -ruN fso-20090103.orig/framework/patterns/kobject.py fso-20090103/framework/patterns/kobject.py
+--- fso-20090103.orig/framework/patterns/kobject.py 2009-01-05 10:09:43.000000000 +0100
++++ fso-20090103/framework/patterns/kobject.py 2009-01-07 13:37:58.000000000 +0100
+@@ -88,7 +88,13 @@
+ self._watchR = gobject.io_add_watch( self._socketR.fileno(), gobject.IO_IN, self._onActivityR )
+
+ # for rtnetlink assistance
+- self._libc = ctypes.CDLL( "libc.so.6" )
++ from re import compile
++ re = compile('^libc.so.[0-9]$')
++ libs = os.listdir('/lib')
++ for lib in libs:
++ if re.match(lib):
++ self._libc = ctypes.CDLL(lib)
++ break
+ self._parser = RtNetlinkParser()
+
+ def __del__( self ):
+Binary files fso-20090103.orig/framework/patterns/.kobject.py.swp and fso-20090103/framework/patterns/.kobject.py.swp differ
+diff -ruN fso-20090103.orig/framework/subsystems/odeviced/pyglet/linux.py fso-20090103/framework/subsystems/odeviced/pyglet/linux.py
+--- fso-20090103.orig/framework/subsystems/odeviced/pyglet/linux.py 2009-01-05 10:09:43.000000000 +0100
++++ fso-20090103/framework/subsystems/odeviced/pyglet/linux.py 2009-01-07 12:15:13.000000000 +0100
+@@ -15,7 +15,13 @@
+ import struct
+ import sys
+
+-c = ctypes.cdll.LoadLibrary('libc.so.6')
++from re import compile
++re = compile('^libc.so.[0-9]$')
++libs = os.listdir('/lib')
++for lib in libs:
++ if re.match(lib):
++ c = ctypes.cdll.LoadLibrary(lib)
++ break
+
+ _IOC_NRBITS = 8
+ _IOC_TYPEBITS = 8
--- /dev/null
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gsm0710muxd
+PKG_VERSION:=0.9.2.2
+PKG_REV:=95151f9e2fe37e0989b981027deefa3821a3b4e5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=git://git.freesmartphone.org/gsm0710muxd.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+
+include $(INCLUDE_DIR)/package.mk
+
+EXTRA_CFLAGS+=-I$(STAGING_DIR)/usr/lib/libintl/include -I$(STAGING_DIR)/usr/lib/libiconv/include
+EXTRA_LDFLAGS+=-lintl -L$(STAGING_DIR)/usr/lib/libintl/lib -liconv -L$(STAGING_DIR)/usr/lib/libiconv/lib
+
+define Package/gsm0710muxd
+ SECTION:=phone
+ CATEGORY:=Phone
+ TITLE:=GSM multiplexing daemon
+ DEPENDS:=python-core +dbus-python +python-gobject +pyserial +pyyaml +gst-python
+ URL:=http://www.freesmartphone.org
+endef
+
+define Package/gsm0710muxd/description
+ gsm0710muxd is a user space multiplexer for GSM according to the GSM 07.10 specification.
+endef
+
+define Build/Configure
+ mkdir -p $(STAGING_DIR_HOST)/usr/bin
+ ln -sf `which dbus-binding-tool` $(STAGING_DIR_HOST)/usr/bin/
+ (cd $(PKG_BUILD_DIR) && \
+ $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ && \
+ $(CONFIGURE_VARS) \
+ ./autogen.sh \
+ $(CONFIGURE_ARGS_XTRA) \
+ $(CONFIGURE_ARGS) \
+ );
+endef
+
+define Build/Compile
+ DESTDIR=$(PKG_INSTALL_DIR) $(MAKE) -C $(PKG_BUILD_DIR) install
+ rm -f $(STAGING_DIR_HOST)/usr/bin/dbus-binding-tool
+endef
+
+define Package/gsm0710muxd/install
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+ $(INSTALL_BIN) ./files/gsm0710muxd.init $(1)/etc/init.d/gsm0710muxd
+endef
+
+$(eval $(call BuildPackage,gsm0710muxd))
+$(eval $(call RequireCommand,dbus-binding-tool, \
+ Command <dbus-binding-tool> not found - please install dbus-binding-tool \
+))
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 OpenWrt.org
+START=70
+
+start() {
+ /usr/sbin/gsm0710muxd -d
+}
+
+stop() {
+ killall gsm0710muxd
+}
--- /dev/null
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=paroli
+PKG_VERSION:=20090112
+PKG_REV:=81db9c1a2abd7d56300867b04d4c541e34bb8165
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=http://git.paroli-project.org/paroli.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+
+PKG_BUILD_DEPENDS:=python
+
+include $(INCLUDE_DIR)/package.mk
+-include $(if $(DUMP),,$(STAGING_DIR)/mk/python-package.mk)
+
+define Package/paroli
+ SECTION:=phone
+ CATEGORY:=Phone
+ TITLE:=integrated phone application
+ DEPENDS:=python-core +fso
+ URL:=http://wiki.openmoko.org/wiki/Paroli
+endef
+
+define Package/paroli/description
+ Paroli is an integrated phone application written in Python which uses the FSO (freesmartphone.org) DBus API
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,build)
+ $(call Build/Compile/PyMod,,install --prefix="$(PKG_INSTALL_DIR)/usr")
+endef
+
+define Package/paroli/install
+ $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/usr/share/applications/paroli $(1)/usr/share/paroli
+ $(CP) \
+ $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+ $(1)$(PYTHON_PKG_DIR)
+ $(INSTALL_BIN) \
+ $(PKG_INSTALL_DIR)/usr/bin/* \
+ $(1)/usr/bin/
+ $(INSTALL_BIN) ./files/paroli.init $(1)/etc/init.d/paroli
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/paroli/* \
+ $(1)/usr/share/paroli/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/applications/* \
+ $(1)/usr/share/applications/paroli/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/etc/* \
+ $(1)/etc/
+endef
+
+$(eval $(call BuildPackage,paroli))
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 OpenWrt.org
+START=99
+
+start() {
+ (sleep 10 && DISPLAY=":0" LD_PRELOAD=/usr/lib/libX11.so /usr/bin/paroli-launcher) & # sleep to wait until the xserver is started | LD_PRELOAD to workaround some runtime linking problems - needs to be fixed
+}
+
+stop() {
+ killall paroli-launcher
+}
--- /dev/null
+diff -ruN paroli-20090104.orig/setup.py paroli-20090104/setup.py
+--- paroli-20090104.orig/setup.py 2009-01-05 08:38:30.000000000 +0100
++++ paroli-20090104/setup.py 2009-01-05 08:45:09.000000000 +0100
+@@ -74,7 +74,7 @@
+ dbus_data = [
+ (os.path.join(sys.prefix, 'share/dbus-1/system-services/'),
+ ['data/dbus/org.tichy.launcher.service']),
+- ('../../etc/dbus-1/system.d/',
++ ('../etc/dbus-1/system.d/',
+ ['data/dbus/tichy.conf'])]
+
+ setup(name='Paroli',
+@@ -94,7 +94,7 @@
+ 'data/paroli-dialer.desktop']),
+ (os.path.join(sys.prefix, 'share/pixmaps/'),
+ ['data/tichy']),
+- ('../../etc/paroli/', ['data/paroli.cfg'])] \
++ ('../etc/paroli/', ['data/paroli.cfg'])] \
+ + plugins_files('paroli-services', 'paroli/services') \
+ + plugins_files('paroli-applications', 'paroli/applications') \
+ + dbus_data,