aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--COPYING.MIT17
-rw-r--r--README36
-rw-r--r--classes/opie.bbclass105
-rw-r--r--classes/opie_i18n.bbclass163
-rw-r--r--classes/palmtop.bbclass26
-rw-r--r--classes/qmake.bbclass15
-rw-r--r--classes/qmake_base.bbclass105
-rw-r--r--classes/qt3e.bbclass11
-rw-r--r--classes/sdl.bbclass46
-rw-r--r--conf/distro/include/preferred-opie-git-versions.inc215
-rw-r--r--conf/distro/include/preferred-opie-versions-1.2.5.inc210
-rw-r--r--conf/layer.conf13
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch51
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/acinclude.m4332
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch2054
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/asm_page_h.patch48
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_Makefile.am.patch11
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_configure.in.patch10
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch140
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch48
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch11
-rw-r--r--recipes-graphics/libsdl/libsdl-qpe_1.2.9.bb40
-rw-r--r--recipes-graphics/libsdl/libsdl.inc42
-rw-r--r--recipes-opie/images/jlime-opie.bb62
-rw-r--r--recipes-opie/images/opie-image-16mb.bb19
-rw-r--r--recipes-opie/images/opie-image.bb18
-rw-r--r--recipes-opie/images/opie-kdepim-image.bb7
-rw-r--r--recipes-opie/images/opie-xqtlauncher-image.bb7
-rw-r--r--recipes-opie/libmailwrapper/libmailwrapper.inc19
-rw-r--r--recipes-opie/libmailwrapper/libmailwrapper_1.2.5.bb7
-rw-r--r--recipes-opie/libmailwrapper/libmailwrapper_cvs.bb6
-rw-r--r--recipes-opie/libopie/libopie2.inc112
-rw-r--r--recipes-opie/libopie/libopie2/gcc45_opiemm_include.patch14
-rw-r--r--recipes-opie/libopie/libopie2/include.pro36
-rw-r--r--recipes-opie/libopie/libopie2/poodle-2.6-hotkeys.patch16
-rw-r--r--recipes-opie/libopie/libopie2_1.2.5.bb13
-rw-r--r--recipes-opie/libopie/libopie2_cvs.bb12
-rw-r--r--recipes-opie/libopieobex/files/disable-bt-check.patch19
-rw-r--r--recipes-opie/libopieobex/libopieobex0.inc27
-rw-r--r--recipes-opie/libopieobex/libopieobex0_1.2.5.bb10
-rw-r--r--recipes-opie/libopieobex/libopieobex0_cvs.bb7
-rw-r--r--recipes-opie/libopietooth/libopietooth1.inc15
-rw-r--r--recipes-opie/libopietooth/libopietooth1_1.2.5.bb6
-rw-r--r--recipes-opie/libopietooth/libopietooth1_cvs.bb5
-rw-r--r--recipes-opie/libqpe/libqpe-opie.inc62
-rw-r--r--recipes-opie/libqpe/libqpe-opie/citytime-path-2.patch11
-rw-r--r--recipes-opie/libqpe/libqpe-opie/fix-titleheight.patch19
-rw-r--r--recipes-opie/libqpe/libqpe-opie/no-include-pro.patch11
-rw-r--r--recipes-opie/libqpe/libqpe-opie/unbreak-logging-2.patch21
-rw-r--r--recipes-opie/libqpe/libqpe-opie_1.2.5.bb12
-rw-r--r--recipes-opie/libqpe/libqpe-opie_cvs.bb17
-rw-r--r--recipes-opie/libqtaux/libqtaux2.inc25
-rw-r--r--recipes-opie/libqtaux/libqtaux2_1.2.5.bb7
-rw-r--r--recipes-opie/libqtaux/libqtaux2_cvs.bb6
-rw-r--r--recipes-opie/meta/meta-opie-all.bb16
-rw-r--r--recipes-opie/meta/meta-opie.bb20
-rw-r--r--recipes-opie/meta/meta-toolchain-opie.bb8
-rw-r--r--recipes-opie/nonworking/opie-dagger/opie-dagger.inc18
-rw-r--r--recipes-opie/nonworking/opie-dagger/opie-dagger_1.2.5.bb8
-rw-r--r--recipes-opie/nonworking/opie-dagger/opie-dagger_cvs.bb9
-rw-r--r--recipes-opie/nonworking/opie-dasher/opie-dasher.inc45
-rw-r--r--recipes-opie/nonworking/opie-dasher/opie-dasher_1.2.5.bb5
-rw-r--r--recipes-opie/nonworking/opie-dasher/opie-dasher_cvs.bb7
-rw-r--r--recipes-opie/nonworking/opie-mediaplayer1-libmpeg3plugin/opie-mediaplayer1-libmpeg3plugin_cvs.bb19
-rw-r--r--recipes-opie/opie-aboutapplet/opie-aboutapplet.inc9
-rw-r--r--recipes-opie/opie-aboutapplet/opie-aboutapplet_1.2.5.bb5
-rw-r--r--recipes-opie/opie-aboutapplet/opie-aboutapplet_cvs.bb5
-rw-r--r--recipes-opie/opie-addressbook/opie-addressbook.inc13
-rw-r--r--recipes-opie/opie-addressbook/opie-addressbook_1.2.5.bb8
-rw-r--r--recipes-opie/opie-addressbook/opie-addressbook_cvs.bb6
-rw-r--r--recipes-opie/opie-advancedfm/opie-advancedfm.inc19
-rw-r--r--recipes-opie/opie-advancedfm/opie-advancedfm_1.2.5.bb11
-rw-r--r--recipes-opie/opie-advancedfm/opie-advancedfm_cvs.bb7
-rw-r--r--recipes-opie/opie-alarm/opie-alarm.inc16
-rwxr-xr-xrecipes-opie/opie-alarm/opie-alarm/01opiealarm12
-rw-r--r--recipes-opie/opie-alarm/opie-alarm/dirdefines-2.patch19
-rw-r--r--recipes-opie/opie-alarm/opie-alarm_1.2.5.bb9
-rw-r--r--recipes-opie/opie-alarm/opie-alarm_cvs.bb8
-rw-r--r--recipes-opie/opie-appearance/opie-appearance.inc18
-rw-r--r--recipes-opie/opie-appearance/opie-appearance_1.2.5.bb11
-rw-r--r--recipes-opie/opie-appearance/opie-appearance_cvs.bb7
-rw-r--r--recipes-opie/opie-aqpkg/opie-aqpkg.inc17
-rw-r--r--recipes-opie/opie-aqpkg/opie-aqpkg_1.2.5.bb11
-rw-r--r--recipes-opie/opie-aqpkg/opie-aqpkg_cvs.bb7
-rw-r--r--recipes-opie/opie-autorotateapplet/opie-autorotateapplet.inc32
-rw-r--r--recipes-opie/opie-autorotateapplet/opie-autorotateapplet_1.2.5.bb10
-rw-r--r--recipes-opie/opie-autorotateapplet/opie-autorotateapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-backgammon/opie-backgammon.inc22
-rw-r--r--recipes-opie/opie-backgammon/opie-backgammon_1.2.5.bb11
-rw-r--r--recipes-opie/opie-backgammon/opie-backgammon_cvs.bb7
-rw-r--r--recipes-opie/opie-backup/opie-backup.inc16
-rw-r--r--recipes-opie/opie-backup/opie-backup_1.2.5.bb11
-rw-r--r--recipes-opie/opie-backup/opie-backup_cvs.bb7
-rw-r--r--recipes-opie/opie-bartender/opie-bartender.inc17
-rw-r--r--recipes-opie/opie-bartender/opie-bartender_1.2.5.bb11
-rw-r--r--recipes-opie/opie-bartender/opie-bartender_cvs.bb7
-rw-r--r--recipes-opie/opie-batteryapplet/opie-batteryapplet.inc31
-rw-r--r--recipes-opie/opie-batteryapplet/opie-batteryapplet_1.2.5.bb13
-rw-r--r--recipes-opie/opie-batteryapplet/opie-batteryapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-bluepin/opie-bluepin.inc11
-rw-r--r--recipes-opie/opie-bluepin/opie-bluepin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-bluepin/opie-bluepin_cvs.bb5
-rw-r--r--recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet.inc18
-rw-r--r--recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_1.2.5.bb10
-rw-r--r--recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager.inc22
-rw-r--r--recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_1.2.5.bb11
-rw-r--r--recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_cvs.bb6
-rw-r--r--recipes-opie/opie-bounce/opie-bounce.inc17
-rw-r--r--recipes-opie/opie-bounce/opie-bounce_1.2.5.bb11
-rw-r--r--recipes-opie/opie-bounce/opie-bounce_cvs.bb7
-rw-r--r--recipes-opie/opie-brightnessapplet/opie-brightnessapplet.inc31
-rw-r--r--recipes-opie/opie-brightnessapplet/opie-brightnessapplet_1.2.5.bb10
-rw-r--r--recipes-opie/opie-brightnessapplet/opie-brightnessapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-button-settings/opie-button-settings.inc31
-rw-r--r--recipes-opie/opie-button-settings/opie-button-settings_1.2.5.bb11
-rw-r--r--recipes-opie/opie-button-settings/opie-button-settings_cvs.bb7
-rw-r--r--recipes-opie/opie-buzzword/opie-buzzword.inc19
-rw-r--r--recipes-opie/opie-buzzword/opie-buzzword_1.2.5.bb14
-rw-r--r--recipes-opie/opie-buzzword/opie-buzzword_cvs.bb8
-rw-r--r--recipes-opie/opie-calculator/opie-calculator.inc19
-rw-r--r--recipes-opie/opie-calculator/opie-calculator_1.2.5.bb14
-rw-r--r--recipes-opie/opie-calculator/opie-calculator_cvs.bb8
-rw-r--r--recipes-opie/opie-camera/opie-camera.inc24
-rw-r--r--recipes-opie/opie-camera/opie-camera_1.2.5.bb11
-rw-r--r--recipes-opie/opie-camera/opie-camera_cvs.bb7
-rw-r--r--recipes-opie/opie-cardapplet/opie-cardapplet.inc38
-rw-r--r--recipes-opie/opie-cardapplet/opie-cardapplet_1.2.5.bb19
-rw-r--r--recipes-opie/opie-cardapplet/opie-cardapplet_cvs.bb11
-rw-r--r--recipes-opie/opie-checkbook/opie-checkbook.inc14
-rw-r--r--recipes-opie/opie-checkbook/opie-checkbook_1.2.5.bb11
-rw-r--r--recipes-opie/opie-checkbook/opie-checkbook_cvs.bb7
-rw-r--r--recipes-opie/opie-citytime/opie-citytime.inc18
-rw-r--r--recipes-opie/opie-citytime/opie-citytime_1.2.5.bb11
-rw-r--r--recipes-opie/opie-citytime/opie-citytime_cvs.bb7
-rw-r--r--recipes-opie/opie-clipboardapplet/opie-clipboardapplet.inc29
-rw-r--r--recipes-opie/opie-clipboardapplet/opie-clipboardapplet_1.2.5.bb13
-rw-r--r--recipes-opie/opie-clipboardapplet/opie-clipboardapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-clock/opie-clock.inc18
-rw-r--r--recipes-opie/opie-clock/opie-clock_1.2.5.bb11
-rw-r--r--recipes-opie/opie-clock/opie-clock_cvs.bb7
-rw-r--r--recipes-opie/opie-clockapplet/opie-clockapplet.inc35
-rw-r--r--recipes-opie/opie-clockapplet/opie-clockapplet_1.2.5.bb13
-rw-r--r--recipes-opie/opie-clockapplet/opie-clockapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-confeditor/opie-confeditor.inc17
-rw-r--r--recipes-opie/opie-confeditor/opie-confeditor_1.2.5.bb11
-rw-r--r--recipes-opie/opie-confeditor/opie-confeditor_cvs.bb7
-rw-r--r--recipes-opie/opie-console/opie-console.inc19
-rw-r--r--recipes-opie/opie-console/opie-console_1.2.5.bb14
-rw-r--r--recipes-opie/opie-console/opie-console_cvs.bb9
-rw-r--r--recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin.inc10
-rw-r--r--recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin.inc10
-rw-r--r--recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin.inc15
-rw-r--r--recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_1.2.5.bb8
-rw-r--r--recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_cvs.bb6
-rw-r--r--recipes-opie/opie-datebook/opie-datebook.inc13
-rw-r--r--recipes-opie/opie-datebook/opie-datebook_1.2.5.bb8
-rw-r--r--recipes-opie/opie-datebook/opie-datebook_cvs.bb6
-rw-r--r--recipes-opie/opie-deco-flat/opie-deco-flat.inc10
-rw-r--r--recipes-opie/opie-deco-flat/opie-deco-flat_1.2.5.bb5
-rw-r--r--recipes-opie/opie-deco-flat/opie-deco-flat_cvs.bb5
-rw-r--r--recipes-opie/opie-deco-liquid/opie-deco-liquid.inc11
-rw-r--r--recipes-opie/opie-deco-liquid/opie-deco-liquid_1.2.5.bb5
-rw-r--r--recipes-opie/opie-deco-liquid/opie-deco-liquid_cvs.bb5
-rw-r--r--recipes-opie/opie-deco-polished/opie-deco-polished.inc10
-rw-r--r--recipes-opie/opie-deco-polished/opie-deco-polished_1.2.5.bb5
-rw-r--r--recipes-opie/opie-deco-polished/opie-deco-polished_cvs.bb5
-rw-r--r--recipes-opie/opie-doctab/opie-doctab.inc17
-rw-r--r--recipes-opie/opie-doctab/opie-doctab_1.2.5.bb11
-rw-r--r--recipes-opie/opie-doctab/opie-doctab_cvs.bb7
-rw-r--r--recipes-opie/opie-drawpad/opie-drawpad.inc18
-rw-r--r--recipes-opie/opie-drawpad/opie-drawpad_1.2.5.bb11
-rw-r--r--recipes-opie/opie-drawpad/opie-drawpad_cvs.bb7
-rw-r--r--recipes-opie/opie-dvorak/files/fix-rpath.patch13
-rw-r--r--recipes-opie/opie-dvorak/opie-dvorak.inc33
-rw-r--r--recipes-opie/opie-dvorak/opie-dvorak_1.2.5.bb11
-rw-r--r--recipes-opie/opie-dvorak/opie-dvorak_cvs.bb8
-rw-r--r--recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole.inc16
-rw-r--r--recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_1.2.5.bb11
-rw-r--r--recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_cvs.bb7
-rw-r--r--recipes-opie/opie-euroconv/opie-euroconv.inc17
-rw-r--r--recipes-opie/opie-euroconv/opie-euroconv_1.2.5.bb11
-rw-r--r--recipes-opie/opie-euroconv/opie-euroconv_cvs.bb7
-rw-r--r--recipes-opie/opie-examples-python/opie-examples-python.inc27
-rw-r--r--recipes-opie/opie-examples-python/opie-examples-python_1.2.5.bb11
-rw-r--r--recipes-opie/opie-examples-python/opie-examples-python_cvs.bb7
-rw-r--r--recipes-opie/opie-examples/opie-examples.inc20
-rw-r--r--recipes-opie/opie-examples/opie-examples_1.2.5.bb11
-rw-r--r--recipes-opie/opie-examples/opie-examples_cvs.bb7
-rw-r--r--recipes-opie/opie-eye/opie-eye.inc27
-rw-r--r--recipes-opie/opie-eye/opie-eye_1.2.5.bb13
-rw-r--r--recipes-opie/opie-eye/opie-eye_cvs.bb8
-rw-r--r--recipes-opie/opie-fifteen/opie-fifteen.inc17
-rw-r--r--recipes-opie/opie-fifteen/opie-fifteen_1.2.5.bb11
-rw-r--r--recipes-opie/opie-fifteen/opie-fifteen_cvs.bb7
-rw-r--r--recipes-opie/opie-formatter/opie-formatter.inc16
-rw-r--r--recipes-opie/opie-formatter/opie-formatter_1.2.5.bb11
-rw-r--r--recipes-opie/opie-formatter/opie-formatter_cvs.bb7
-rw-r--r--recipes-opie/opie-freetype/opie-freetype.inc16
-rw-r--r--recipes-opie/opie-freetype/opie-freetype_1.2.5.bb7
-rw-r--r--recipes-opie/opie-freetype/opie-freetype_cvs.bb6
-rw-r--r--recipes-opie/opie-ftp/opie-ftp.inc19
-rw-r--r--recipes-opie/opie-ftp/opie-ftp_1.2.5.bb11
-rw-r--r--recipes-opie/opie-ftp/opie-ftp_cvs.bb7
-rw-r--r--recipes-opie/opie-ftplib/opie-ftplib.inc16
-rw-r--r--recipes-opie/opie-ftplib/opie-ftplib_1.2.5.bb7
-rw-r--r--recipes-opie/opie-ftplib/opie-ftplib_cvs.bb5
-rw-r--r--recipes-opie/opie-go/opie-go.inc17
-rw-r--r--recipes-opie/opie-go/opie-go_1.2.5.bb11
-rw-r--r--recipes-opie/opie-go/opie-go_cvs.bb7
-rw-r--r--recipes-opie/opie-gutenbrowser/opie-gutenbrowser.inc18
-rw-r--r--recipes-opie/opie-gutenbrowser/opie-gutenbrowser_1.2.5.bb14
-rw-r--r--recipes-opie/opie-gutenbrowser/opie-gutenbrowser_cvs.bb8
-rw-r--r--recipes-opie/opie-handwriting/opie-handwriting.inc47
-rw-r--r--recipes-opie/opie-handwriting/opie-handwriting_1.2.5.bb10
-rw-r--r--recipes-opie/opie-handwriting/opie-handwriting_cvs.bb7
-rw-r--r--recipes-opie/opie-help-en/opie-help-en.inc27
-rw-r--r--recipes-opie/opie-help-en/opie-help-en_1.2.5.bb7
-rw-r--r--recipes-opie/opie-help-en/opie-help-en_cvs.bb7
-rw-r--r--recipes-opie/opie-helpbrowser/opie-helpbrowser.inc15
-rw-r--r--recipes-opie/opie-helpbrowser/opie-helpbrowser_1.2.5.bb11
-rw-r--r--recipes-opie/opie-helpbrowser/opie-helpbrowser_cvs.bb7
-rw-r--r--recipes-opie/opie-homeapplet/opie-homeapplet.inc15
-rw-r--r--recipes-opie/opie-homeapplet/opie-homeapplet_1.2.5.bb11
-rw-r--r--recipes-opie/opie-homeapplet/opie-homeapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-i18n/opie-i18n.inc94
-rw-r--r--recipes-opie/opie-i18n/opie-i18n_1.2.5.bb10
-rw-r--r--recipes-opie/opie-i18n/opie-i18n_cvs.bb8
-rw-r--r--recipes-opie/opie-i18n/opie-lrelease-native.inc20
-rw-r--r--recipes-opie/opie-i18n/opie-lrelease-native_1.2.5.bb10
-rw-r--r--recipes-opie/opie-i18n/opie-lrelease-native_cvs.bb8
-rw-r--r--recipes-opie/opie-i18n/opie-lupdate-native.inc18
-rw-r--r--recipes-opie/opie-i18n/opie-lupdate-native_1.2.5.bb10
-rw-r--r--recipes-opie/opie-i18n/opie-lupdate-native_cvs.bb8
-rw-r--r--recipes-opie/opie-icon-reload/opie-icon-reload.inc24
-rw-r--r--recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.desktop8
-rwxr-xr-xrecipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.sh4
-rw-r--r--recipes-opie/opie-icon-reload/opie-icon-reload/reload.pngbin0 -> 1997 bytes
-rw-r--r--recipes-opie/opie-icon-reload/opie-icon-reload_1.2.5.bb2
-rw-r--r--recipes-opie/opie-init/opie-init.inc47
-rw-r--r--recipes-opie/opie-init/opie-init/akita/qpe.conf22
-rw-r--r--recipes-opie/opie-init/opie-init/c7x0/qpe-suspend-resume33
-rw-r--r--recipes-opie/opie-init/opie-init/c7x0/qpe.conf22
-rw-r--r--recipes-opie/opie-init/opie-init/htcuniversal/qpe.conf22
-rw-r--r--recipes-opie/opie-init/opie-init/hx4700/qpe.conf22
-rw-r--r--recipes-opie/opie-init/opie-init/locale.conf0
-rw-r--r--recipes-opie/opie-init/opie-init/mnci/qpe.conf25
-rwxr-xr-xrecipes-opie/opie-init/opie-init/opie102
-rwxr-xr-xrecipes-opie/opie-init/opie-init/opie-reorgfiles93
-rw-r--r--recipes-opie/opie-init/opie-init/opie_defaults15
-rw-r--r--recipes-opie/opie-init/opie-init/qpe.conf18
-rw-r--r--recipes-opie/opie-init/opie-init/simpad/qpe.conf18
-rw-r--r--recipes-opie/opie-init/opie-init/spitz/qpe.conf22
-rw-r--r--recipes-opie/opie-init/opie-init/tosa/qpe.conf22
-rw-r--r--recipes-opie/opie-init/opie-init_1.2.5.bb11
-rw-r--r--recipes-opie/opie-irc/opie-irc.inc22
-rw-r--r--recipes-opie/opie-irc/opie-irc_1.2.5.bb16
-rw-r--r--recipes-opie/opie-irc/opie-irc_cvs.bb9
-rw-r--r--recipes-opie/opie-irdaapplet/opie-irdaapplet.inc33
-rw-r--r--recipes-opie/opie-irdaapplet/opie-irdaapplet_1.2.5.bb17
-rw-r--r--recipes-opie/opie-irdaapplet/opie-irdaapplet_cvs.bb10
-rw-r--r--recipes-opie/opie-jumpx/opie-jumpx.inc34
-rw-r--r--recipes-opie/opie-jumpx/opie-jumpx_1.2.5.bb8
-rw-r--r--recipes-opie/opie-jumpx/opie-jumpx_cvs.bb6
-rw-r--r--recipes-opie/opie-kbill/opie-kbill.inc21
-rw-r--r--recipes-opie/opie-kbill/opie-kbill_1.2.5.bb11
-rw-r--r--recipes-opie/opie-kbill/opie-kbill_cvs.bb7
-rw-r--r--recipes-opie/opie-kcheckers/opie-kcheckers.inc17
-rw-r--r--recipes-opie/opie-kcheckers/opie-kcheckers_1.2.5.bb11
-rw-r--r--recipes-opie/opie-kcheckers/opie-kcheckers_cvs.bb7
-rw-r--r--recipes-opie/opie-keyboard/files/fix-rpath.patch13
-rw-r--r--recipes-opie/opie-keyboard/opie-keyboard.inc33
-rw-r--r--recipes-opie/opie-keyboard/opie-keyboard_1.2.5.bb8
-rw-r--r--recipes-opie/opie-keyboard/opie-keyboard_cvs.bb7
-rw-r--r--recipes-opie/opie-keypebble/opie-keypebble.inc15
-rw-r--r--recipes-opie/opie-keypebble/opie-keypebble_1.2.5.bb11
-rw-r--r--recipes-opie/opie-keypebble/opie-keypebble_cvs.bb7
-rw-r--r--recipes-opie/opie-keytabs/opie-keytabs.inc11
-rw-r--r--recipes-opie/opie-keytabs/opie-keytabs_1.2.5.bb7
-rw-r--r--recipes-opie/opie-keytabs/opie-keytabs_cvs.bb7
-rw-r--r--recipes-opie/opie-keyview/opie-keyview.inc27
-rw-r--r--recipes-opie/opie-keyview/opie-keyview_1.2.5.bb7
-rw-r--r--recipes-opie/opie-keyview/opie-keyview_cvs.bb6
-rw-r--r--recipes-opie/opie-kjumpx/opie-kjumpx.inc35
-rw-r--r--recipes-opie/opie-kjumpx/opie-kjumpx_1.2.5.bb8
-rw-r--r--recipes-opie/opie-kjumpx/opie-kjumpx_cvs.bb6
-rw-r--r--recipes-opie/opie-kpacman/opie-kpacman.inc33
-rw-r--r--recipes-opie/opie-kpacman/opie-kpacman_1.2.5.bb14
-rw-r--r--recipes-opie/opie-kpacman/opie-kpacman_cvs.bb8
-rw-r--r--recipes-opie/opie-language/opie-language.inc13
-rw-r--r--recipes-opie/opie-language/opie-language_1.2.5.bb8
-rw-r--r--recipes-opie/opie-language/opie-language_cvs.bb6
-rw-r--r--recipes-opie/opie-launcher-settings/opie-launcher-settings.inc17
-rw-r--r--recipes-opie/opie-launcher-settings/opie-launcher-settings_1.2.5.bb11
-rw-r--r--recipes-opie/opie-launcher-settings/opie-launcher-settings_cvs.bb7
-rw-r--r--recipes-opie/opie-libqrsync/opie-libqrsync.inc14
-rw-r--r--recipes-opie/opie-libqrsync/opie-libqrsync_1.2.5.bb5
-rw-r--r--recipes-opie/opie-libqrsync/opie-libqrsync_cvs.bb5
-rw-r--r--recipes-opie/opie-light-and-power/opie-light-and-power.inc17
-rw-r--r--recipes-opie/opie-light-and-power/opie-light-and-power_1.2.5.bb11
-rw-r--r--recipes-opie/opie-light-and-power/opie-light-and-power_cvs.bb7
-rw-r--r--recipes-opie/opie-lockapplet/opie-lockapplet.inc32
-rw-r--r--recipes-opie/opie-lockapplet/opie-lockapplet_1.2.5.bb10
-rw-r--r--recipes-opie/opie-lockapplet/opie-lockapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-login/files/opie-login.conf2
-rw-r--r--recipes-opie/opie-login/files/opie-session15
-rw-r--r--recipes-opie/opie-login/files/post-session22
-rw-r--r--recipes-opie/opie-login/files/pre-session39
-rw-r--r--recipes-opie/opie-login/opie-login.inc31
-rw-r--r--recipes-opie/opie-login/opie-login_1.2.5.bb15
-rw-r--r--recipes-opie/opie-login/opie-login_cvs.bb11
-rw-r--r--recipes-opie/opie-logoutapplet/opie-logoutapplet.inc15
-rw-r--r--recipes-opie/opie-logoutapplet/opie-logoutapplet_1.2.5.bb8
-rw-r--r--recipes-opie/opie-logoutapplet/opie-logoutapplet_cvs.bb6
-rw-r--r--recipes-opie/opie-mail/opie-mail.inc20
-rw-r--r--recipes-opie/opie-mail/opie-mail_1.2.5.bb11
-rw-r--r--recipes-opie/opie-mail/opie-mail_cvs.bb7
-rw-r--r--recipes-opie/opie-mailapplet/opie-mailapplet.inc12
-rw-r--r--recipes-opie/opie-mailapplet/opie-mailapplet_1.2.5.bb13
-rw-r--r--recipes-opie/opie-mailapplet/opie-mailapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin.inc19
-rw-r--r--recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin/libmadplugin.pro51
-rw-r--r--recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_1.2.5.bb8
-rw-r--r--recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_cvs.bb7
-rw-r--r--recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin.inc15
-rw-r--r--recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_1.2.5.bb7
-rw-r--r--recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_cvs.bb6
-rw-r--r--recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin.inc20
-rw-r--r--recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin/vorbis.pro11
-rw-r--r--recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_1.2.5.bb8
-rw-r--r--recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_cvs.bb7
-rw-r--r--recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin.inc14
-rw-r--r--recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_1.2.5.bb7
-rw-r--r--recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_cvs.bb6
-rw-r--r--recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core.inc20
-rw-r--r--recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_1.2.5.bb11
-rw-r--r--recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_cvs.bb7
-rw-r--r--recipes-opie/opie-mediaplayer1/opie-mediaplayer1.inc8
-rw-r--r--recipes-opie/opie-mediaplayer1/opie-mediaplayer1_1.2.5.bb2
-rw-r--r--recipes-opie/opie-mediaplayer1/opie-mediaplayer1_cvs.bb5
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_1.2.5.bb19
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_cvs.bb19
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_1.2.5.bb21
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_cvs.bb21
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_1.2.5.bb18
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_cvs.bb18
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_1.2.5.bb18
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_cvs.bb18
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2.inc22
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2_1.2.5.bb11
-rw-r--r--recipes-opie/opie-mediaplayer2/opie-mediaplayer2_cvs.bb7
-rw-r--r--recipes-opie/opie-mediummount/opie-mediummount.inc17
-rw-r--r--recipes-opie/opie-mediummount/opie-mediummount_1.2.5.bb11
-rw-r--r--recipes-opie/opie-mediummount/opie-mediummount_cvs.bb7
-rw-r--r--recipes-opie/opie-memoryapplet/opie-memoryapplet.inc31
-rw-r--r--recipes-opie/opie-memoryapplet/opie-memoryapplet_1.2.5.bb13
-rw-r--r--recipes-opie/opie-memoryapplet/opie-memoryapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-mindbreaker/opie-mindbreaker.inc17
-rw-r--r--recipes-opie/opie-mindbreaker/opie-mindbreaker_1.2.5.bb11
-rw-r--r--recipes-opie/opie-mindbreaker/opie-mindbreaker_cvs.bb7
-rw-r--r--recipes-opie/opie-minesweep/opie-minesweep.inc17
-rw-r--r--recipes-opie/opie-minesweep/opie-minesweep_1.2.5.bb11
-rw-r--r--recipes-opie/opie-minesweep/opie-minesweep_cvs.bb7
-rw-r--r--recipes-opie/opie-multikey/files/fix-rpath.patch11
-rw-r--r--recipes-opie/opie-multikey/files/friendly-button-names.patch16
-rw-r--r--recipes-opie/opie-multikey/files/ru.keymap255
-rw-r--r--recipes-opie/opie-multikey/opie-multikey.inc40
-rw-r--r--recipes-opie/opie-multikey/opie-multikey_1.2.5.bb13
-rw-r--r--recipes-opie/opie-multikey/opie-multikey_cvs.bb10
-rw-r--r--recipes-opie/opie-multikeyapplet/opie-multikeyapplet.inc29
-rw-r--r--recipes-opie/opie-multikeyapplet/opie-multikeyapplet_1.2.5.bb10
-rw-r--r--recipes-opie/opie-multikeyapplet/opie-multikeyapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-networkapplet/opie-networkapplet.inc32
-rw-r--r--recipes-opie/opie-networkapplet/opie-networkapplet_1.2.5.bb8
-rw-r--r--recipes-opie/opie-networkapplet/opie-networkapplet_cvs.bb6
-rw-r--r--recipes-opie/opie-networksettings/opie-networksettings.inc46
-rw-r--r--recipes-opie/opie-networksettings/opie-networksettings_1.2.5.bb17
-rw-r--r--recipes-opie/opie-networksettings/opie-networksettings_cvs.bb10
-rw-r--r--recipes-opie/opie-notes/opie-notes.inc15
-rw-r--r--recipes-opie/opie-notes/opie-notes_1.2.5.bb11
-rw-r--r--recipes-opie/opie-notes/opie-notes_cvs.bb7
-rw-r--r--recipes-opie/opie-notesapplet/opie-notesapplet.inc31
-rw-r--r--recipes-opie/opie-notesapplet/opie-notesapplet_1.2.5.bb5
-rw-r--r--recipes-opie/opie-notesapplet/opie-notesapplet_cvs.bb5
-rw-r--r--recipes-opie/opie-odict/opie-odict.inc17
-rw-r--r--recipes-opie/opie-odict/opie-odict_1.2.5.bb11
-rw-r--r--recipes-opie/opie-odict/opie-odict_cvs.bb7
-rw-r--r--recipes-opie/opie-oxygen/opie-oxygen.inc16
-rw-r--r--recipes-opie/opie-oxygen/opie-oxygen_1.2.5.bb14
-rw-r--r--recipes-opie/opie-oxygen/opie-oxygen_cvs.bb8
-rw-r--r--recipes-opie/opie-oyatzee/opie-oyatzee.inc17
-rw-r--r--recipes-opie/opie-oyatzee/opie-oyatzee_1.2.5.bb11
-rw-r--r--recipes-opie/opie-oyatzee/opie-oyatzee_cvs.bb7
-rw-r--r--recipes-opie/opie-packagemanager/opie-packagemanager.inc18
-rw-r--r--recipes-opie/opie-packagemanager/opie-packagemanager_1.2.5.bb13
-rw-r--r--recipes-opie/opie-packagemanager/opie-packagemanager_cvs.bb14
-rw-r--r--recipes-opie/opie-parashoot/opie-parashoot.inc18
-rw-r--r--recipes-opie/opie-parashoot/opie-parashoot_1.2.5.bb11
-rw-r--r--recipes-opie/opie-parashoot/opie-parashoot_cvs.bb7
-rw-r--r--recipes-opie/opie-pickboard/opie-pickboard.inc36
-rw-r--r--recipes-opie/opie-pickboard/opie-pickboard_1.2.5.bb7
-rw-r--r--recipes-opie/opie-pickboard/opie-pickboard_cvs.bb6
-rw-r--r--recipes-opie/opie-pics/opie-pics.inc30
-rw-r--r--recipes-opie/opie-pics/opie-pics_1.2.5.bb10
-rw-r--r--recipes-opie/opie-pics/opie-pics_cvs.bb8
-rw-r--r--recipes-opie/opie-pimconverter/opie-pimconverter.inc21
-rw-r--r--recipes-opie/opie-pimconverter/opie-pimconverter_1.2.5.bb11
-rw-r--r--recipes-opie/opie-pimconverter/opie-pimconverter_cvs.bb7
-rw-r--r--recipes-opie/opie-powerchord/opie-powerchord.inc19
-rw-r--r--recipes-opie/opie-powerchord/opie-powerchord_1.2.5.bb14
-rw-r--r--recipes-opie/opie-powerchord/opie-powerchord_cvs.bb8
-rw-r--r--recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet.inc23
-rw-r--r--recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_1.2.5.bb11
-rw-r--r--recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-qasteroids/opie-qasteroids.inc23
-rw-r--r--recipes-opie/opie-qasteroids/opie-qasteroids_1.2.5.bb11
-rw-r--r--recipes-opie/opie-qasteroids/opie-qasteroids_cvs.bb7
-rw-r--r--recipes-opie/opie-qcop/files/unbreak-logging.patch16
-rw-r--r--recipes-opie/opie-qcop/opie-qcop.inc13
-rw-r--r--recipes-opie/opie-qcop/opie-qcop_1.2.5.bb8
-rw-r--r--recipes-opie/opie-qcop/opie-qcop_cvs.bb7
-rw-r--r--recipes-opie/opie-qss/opie-qss.inc13
-rw-r--r--recipes-opie/opie-qss/opie-qss_1.2.5.bb7
-rw-r--r--recipes-opie/opie-qss/opie-qss_cvs.bb6
-rw-r--r--recipes-opie/opie-quicklauncher/opie-quicklauncher.inc13
-rw-r--r--recipes-opie/opie-quicklauncher/opie-quicklauncher_1.2.5.bb7
-rw-r--r--recipes-opie/opie-quicklauncher/opie-quicklauncher_cvs.bb6
-rw-r--r--recipes-opie/opie-rdesktop/opie-rdesktop.inc19
-rw-r--r--recipes-opie/opie-rdesktop/opie-rdesktop_1.2.5.bb11
-rw-r--r--recipes-opie/opie-rdesktop/opie-rdesktop_cvs.bb7
-rw-r--r--recipes-opie/opie-reader/files/qt4.patch2572
-rw-r--r--recipes-opie/opie-reader/opie-reader.inc64
-rw-r--r--recipes-opie/opie-reader/opie-reader_1.2.5.bb14
-rw-r--r--recipes-opie/opie-reader/opie-reader_cvs.bb9
-rw-r--r--recipes-opie/opie-reader/uqtreader_1.2.5.bb76
-rw-r--r--recipes-opie/opie-reader/uqtreader_cvs.bb72
-rw-r--r--recipes-opie/opie-recorder/opie-recorder.inc17
-rw-r--r--recipes-opie/opie-recorder/opie-recorder_1.2.5.bb14
-rw-r--r--recipes-opie/opie-recorder/opie-recorder_cvs.bb11
-rw-r--r--recipes-opie/opie-remote/opie-remote.inc19
-rw-r--r--recipes-opie/opie-remote/opie-remote_1.2.5.bb11
-rw-r--r--recipes-opie/opie-remote/opie-remote_cvs.bb7
-rw-r--r--recipes-opie/opie-restartapplet/opie-restartapplet.inc15
-rw-r--r--recipes-opie/opie-restartapplet/opie-restartapplet2_1.2.5.bb21
-rw-r--r--recipes-opie/opie-restartapplet/opie-restartapplet2_cvs.bb18
-rw-r--r--recipes-opie/opie-restartapplet/opie-restartapplet_1.2.5.bb8
-rw-r--r--recipes-opie/opie-restartapplet/opie-restartapplet_cvs.bb6
-rw-r--r--recipes-opie/opie-restartapplet2/opie-restartapplet2.inc16
-rw-r--r--recipes-opie/opie-restartapplet2/opie-restartapplet2_1.2.5.bb8
-rw-r--r--recipes-opie/opie-restartapplet2/opie-restartapplet2_cvs.bb6
-rw-r--r--recipes-opie/opie-rotateapplet/opie-rotateapplet.inc14
-rw-r--r--recipes-opie/opie-rotateapplet/opie-rotateapplet_1.2.5.bb8
-rw-r--r--recipes-opie/opie-rotateapplet/opie-rotateapplet_cvs.bb6
-rw-r--r--recipes-opie/opie-screenshotapplet/opie-screenshotapplet.inc33
-rw-r--r--recipes-opie/opie-screenshotapplet/opie-screenshotapplet_1.2.5.bb13
-rw-r--r--recipes-opie/opie-screenshotapplet/opie-screenshotapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-search/opie-search.inc17
-rw-r--r--recipes-opie/opie-search/opie-search_1.2.5.bb11
-rw-r--r--recipes-opie/opie-search/opie-search_cvs.bb7
-rw-r--r--recipes-opie/opie-security/opie-security.inc20
-rw-r--r--recipes-opie/opie-security/opie-security_1.2.5.bb14
-rw-r--r--recipes-opie/opie-security/opie-security_cvs.bb19
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-blueping.inc15
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-blueping_1.2.5.bb9
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-blueping_cvs.bb7
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-dummy.inc14
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-dummy_1.2.5.bb9
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-dummy_cvs.bb7
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-notice.inc13
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-notice_1.2.5.bb9
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-notice_cvs.bb7
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-pin.inc15
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-pin_1.2.5.bb9
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin-pin_cvs.bb7
-rw-r--r--recipes-opie/opie-securityplugins/opie-securityplugin.inc7
-rw-r--r--recipes-opie/opie-sfcave/opie-sfcave.inc17
-rw-r--r--recipes-opie/opie-sfcave/opie-sfcave_1.2.5.bb11
-rw-r--r--recipes-opie/opie-sfcave/opie-sfcave_cvs.bb7
-rw-r--r--recipes-opie/opie-sh-snes/files/opie-sh-snes.sh50
-rw-r--r--recipes-opie/opie-sh-snes/files/snes.desktop6
-rw-r--r--recipes-opie/opie-sh-snes/files/snes.pngbin0 -> 2308 bytes
-rw-r--r--recipes-opie/opie-sh-snes/opie-sh-snes.inc27
-rw-r--r--recipes-opie/opie-sh-snes/opie-sh-snes_0.2.bb28
-rw-r--r--recipes-opie/opie-sh-snes/opie-sh-snes_1.2.5.bb3
-rw-r--r--recipes-opie/opie-sh-snes/opie-sh-snes_cvs.bb4
-rw-r--r--recipes-opie/opie-sh/files/opie-sh-path.patch214
-rw-r--r--recipes-opie/opie-sh/opie-sh.inc64
-rw-r--r--recipes-opie/opie-sh/opie-sh_1.2.5.bb21
-rw-r--r--recipes-opie/opie-sh/opie-sh_cvs.bb11
-rw-r--r--recipes-opie/opie-sheet/opie-sheet.inc17
-rw-r--r--recipes-opie/opie-sheet/opie-sheet_1.2.5.bb11
-rw-r--r--recipes-opie/opie-sheet/opie-sheet_cvs.bb7
-rw-r--r--recipes-opie/opie-snake/opie-snake.inc18
-rw-r--r--recipes-opie/opie-snake/opie-snake_1.2.5.bb11
-rw-r--r--recipes-opie/opie-snake/opie-snake_cvs.bb7
-rw-r--r--recipes-opie/opie-solitaire/opie-solitaire.inc18
-rw-r--r--recipes-opie/opie-solitaire/opie-solitaire_1.2.5.bb11
-rw-r--r--recipes-opie/opie-solitaire/opie-solitaire_cvs.bb7
-rw-r--r--recipes-opie/opie-sounds/opie-sounds.inc18
-rw-r--r--recipes-opie/opie-sounds/opie-sounds_1.2.5.bb7
-rw-r--r--recipes-opie/opie-sounds/opie-sounds_cvs.bb7
-rw-r--r--recipes-opie/opie-sshkeys/opie-sshkeys.inc18
-rw-r--r--recipes-opie/opie-sshkeys/opie-sshkeys_1.2.5.bb11
-rw-r--r--recipes-opie/opie-sshkeys/opie-sshkeys_cvs.bb7
-rw-r--r--recipes-opie/opie-stumbler/files/opiestumbler.pngbin0 -> 2648 bytes
-rw-r--r--recipes-opie/opie-stumbler/opie-stumbler.inc15
-rw-r--r--recipes-opie/opie-stumbler/opie-stumbler_1.2.5.bb9
-rw-r--r--recipes-opie/opie-stumbler/opie-stumbler_cvs.bb7
-rw-r--r--recipes-opie/opie-style-flat/opie-style-flat.inc10
-rw-r--r--recipes-opie/opie-style-flat/opie-style-flat_1.2.5.bb5
-rw-r--r--recipes-opie/opie-style-flat/opie-style-flat_cvs.bb5
-rw-r--r--recipes-opie/opie-style-fresh/opie-style-fresh.inc15
-rw-r--r--recipes-opie/opie-style-fresh/opie-style-fresh_1.2.5.bb5
-rw-r--r--recipes-opie/opie-style-fresh/opie-style-fresh_cvs.bb5
-rw-r--r--recipes-opie/opie-style-liquid/opie-style-liquid.inc16
-rw-r--r--recipes-opie/opie-style-liquid/opie-style-liquid_1.2.5.bb5
-rw-r--r--recipes-opie/opie-style-liquid/opie-style-liquid_cvs.bb5
-rw-r--r--recipes-opie/opie-style-metal/opie-style-metal.inc15
-rw-r--r--recipes-opie/opie-style-metal/opie-style-metal_1.2.5.bb5
-rw-r--r--recipes-opie/opie-style-metal/opie-style-metal_cvs.bb5
-rw-r--r--recipes-opie/opie-style-phase/opie-style-phase.inc10
-rw-r--r--recipes-opie/opie-style-phase/opie-style-phase_1.2.5.bb5
-rw-r--r--recipes-opie/opie-style-phase/opie-style-phase_cvs.bb5
-rw-r--r--recipes-opie/opie-style-web/opie-style-web.inc9
-rw-r--r--recipes-opie/opie-style-web/opie-style-web_1.2.5.bb5
-rw-r--r--recipes-opie/opie-style-web/opie-style-web_cvs.bb5
-rw-r--r--recipes-opie/opie-suspendapplet/opie-suspendapplet.inc15
-rw-r--r--recipes-opie/opie-suspendapplet/opie-suspendapplet_1.2.5.bb8
-rw-r--r--recipes-opie/opie-suspendapplet/opie-suspendapplet_cvs.bb6
-rw-r--r--recipes-opie/opie-symlinker/opie-symlinker.inc17
-rw-r--r--recipes-opie/opie-symlinker/opie-symlinker_1.2.5.bb5
-rw-r--r--recipes-opie/opie-symlinker/opie-symlinker_cvs.bb5
-rw-r--r--recipes-opie/opie-sysinfo/opie-sysinfo.inc17
-rw-r--r--recipes-opie/opie-sysinfo/opie-sysinfo_1.2.5.bb14
-rw-r--r--recipes-opie/opie-sysinfo/opie-sysinfo_cvs.bb8
-rw-r--r--recipes-opie/opie-systemtime/opie-systemtime.inc22
-rw-r--r--recipes-opie/opie-systemtime/opie-systemtime_1.2.5.bb14
-rw-r--r--recipes-opie/opie-systemtime/opie-systemtime_cvs.bb8
-rw-r--r--recipes-opie/opie-tableviewer/opie-tableviewer.inc17
-rw-r--r--recipes-opie/opie-tableviewer/opie-tableviewer_1.2.5.bb11
-rw-r--r--recipes-opie/opie-tableviewer/opie-tableviewer_cvs.bb7
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar-images.inc75
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar-images/firstuse-320x320.jpgbin0 -> 16113 bytes
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar-images/opie-background-320x320.jpgbin0 -> 7807 bytes
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar-images_1.2.5.bb6
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar-images_cvs.bb5
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar.inc65
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/firstuse-path.patch11
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/force-firstuse-calibrate.patch20
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/kbdlocks-runtime.patch35
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/no-builtin-qss-startup-2.patch11
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/nomax.patch30
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/restart-from-bindir.patch12
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar/server-pro-cvs.patch69
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar_1.2.5.bb33
-rw-r--r--recipes-opie/opie-taskbar/opie-taskbar_cvs.bb20
-rw-r--r--recipes-opie/opie-tetrix/opie-tetrix.inc17
-rw-r--r--recipes-opie/opie-tetrix/opie-tetrix_1.2.5.bb11
-rw-r--r--recipes-opie/opie-tetrix/opie-tetrix_cvs.bb7
-rw-r--r--recipes-opie/opie-textedit/opie-textedit.inc14
-rw-r--r--recipes-opie/opie-textedit/opie-textedit_1.2.5.bb15
-rw-r--r--recipes-opie/opie-textedit/opie-textedit_cvs.bb10
-rw-r--r--recipes-opie/opie-theme/opie-theme.inc45
-rw-r--r--recipes-opie/opie-theme/opie-theme_1.2.5.bb9
-rw-r--r--recipes-opie/opie-theme/opie-theme_cvs.bb7
-rw-r--r--recipes-opie/opie-tictac/opie-tictac.inc17
-rw-r--r--recipes-opie/opie-tictac/opie-tictac_1.2.5.bb11
-rw-r--r--recipes-opie/opie-tictac/opie-tictac_cvs.bb7
-rw-r--r--recipes-opie/opie-tinykate/opie-tinykate.inc40
-rw-r--r--recipes-opie/opie-tinykate/opie-tinykate_1.2.5.bb14
-rw-r--r--recipes-opie/opie-tinykate/opie-tinykate_cvs.bb8
-rw-r--r--recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin.inc12
-rw-r--r--recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin.inc12
-rw-r--r--recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin.inc11
-rw-r--r--recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-today-mailplugin/opie-today-mailplugin.inc12
-rw-r--r--recipes-opie/opie-today-mailplugin/opie-today-mailplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-today-mailplugin/opie-today-mailplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin.inc18
-rw-r--r--recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_1.2.5.bb11
-rw-r--r--recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_cvs.bb7
-rw-r--r--recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin.inc12
-rw-r--r--recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_1.2.5.bb5
-rw-r--r--recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_cvs.bb5
-rw-r--r--recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin.inc19
-rw-r--r--recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_1.2.5.bb8
-rw-r--r--recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_cvs.bb6
-rw-r--r--recipes-opie/opie-today/opie-today.inc17
-rw-r--r--recipes-opie/opie-today/opie-today_1.2.5.bb11
-rw-r--r--recipes-opie/opie-today/opie-today_cvs.bb7
-rw-r--r--recipes-opie/opie-todo/files/unbreak-logging.patch21
-rw-r--r--recipes-opie/opie-todo/opie-todo.inc13
-rw-r--r--recipes-opie/opie-todo/opie-todo_1.2.5.bb11
-rw-r--r--recipes-opie/opie-todo/opie-todo_cvs.bb8
-rw-r--r--recipes-opie/opie-tonleiter/opie-tonleiter.inc16
-rw-r--r--recipes-opie/opie-tonleiter/opie-tonleiter_1.2.5.bb11
-rw-r--r--recipes-opie/opie-tonleiter/opie-tonleiter_cvs.bb7
-rw-r--r--recipes-opie/opie-ttf-support/files/02qtttffont-update6
-rw-r--r--recipes-opie/opie-ttf-support/files/fontdir11
-rw-r--r--recipes-opie/opie-ttf-support/files/update-qtttffontdir.c127
-rw-r--r--recipes-opie/opie-ttf-support/opie-ttf-support_1.1.bb26
-rw-r--r--recipes-opie/opie-unikeyboard/opie-unikeyboard.inc31
-rw-r--r--recipes-opie/opie-unikeyboard/opie-unikeyboard_1.2.5.bb7
-rw-r--r--recipes-opie/opie-unikeyboard/opie-unikeyboard_cvs.bb6
-rw-r--r--recipes-opie/opie-vmemo-settings/opie-vmemo-settings.inc12
-rw-r--r--recipes-opie/opie-vmemo-settings/opie-vmemo-settings_1.2.5.bb8
-rw-r--r--recipes-opie/opie-vmemo-settings/opie-vmemo-settings_cvs.bb6
-rw-r--r--recipes-opie/opie-vmemo/opie-vmemo.inc31
-rw-r--r--recipes-opie/opie-vmemo/opie-vmemo_1.2.5.bb11
-rw-r--r--recipes-opie/opie-vmemo/opie-vmemo_cvs.bb10
-rw-r--r--recipes-opie/opie-volumeapplet/opie-volumeapplet.inc29
-rw-r--r--recipes-opie/opie-volumeapplet/opie-volumeapplet_1.2.5.bb10
-rw-r--r--recipes-opie/opie-volumeapplet/opie-volumeapplet_cvs.bb7
-rw-r--r--recipes-opie/opie-vtapplet/opie-vtapplet.inc15
-rw-r--r--recipes-opie/opie-vtapplet/opie-vtapplet_1.2.5.bb8
-rw-r--r--recipes-opie/opie-vtapplet/opie-vtapplet_cvs.bb6
-rw-r--r--recipes-opie/opie-wellenreiter/opie-wellenreiter.inc16
-rw-r--r--recipes-opie/opie-wellenreiter/opie-wellenreiter_1.2.5.bb11
-rw-r--r--recipes-opie/opie-wellenreiter/opie-wellenreiter_cvs.bb7
-rw-r--r--recipes-opie/opie-wirelessapplet/opie-wirelessapplet.inc27
-rw-r--r--recipes-opie/opie-wirelessapplet/opie-wirelessapplet_1.2.5.bb5
-rw-r--r--recipes-opie/opie-wirelessapplet/opie-wirelessapplet_cvs.bb5
-rw-r--r--recipes-opie/opie-wordgame/opie-wordgame.inc18
-rw-r--r--recipes-opie/opie-wordgame/opie-wordgame_1.2.5.bb11
-rw-r--r--recipes-opie/opie-wordgame/opie-wordgame_cvs.bb7
-rw-r--r--recipes-opie/opie-write/opie-write.inc14
-rw-r--r--recipes-opie/opie-write/opie-write_1.2.5.bb11
-rw-r--r--recipes-opie/opie-write/opie-write_cvs.bb7
-rw-r--r--recipes-opie/opie-zkbapplet/opie-zkbapplet.inc24
-rw-r--r--recipes-opie/opie-zkbapplet/opie-zkbapplet_1.2.5.bb14
-rw-r--r--recipes-opie/opie-zkbapplet/opie-zkbapplet_cvs.bb8
-rw-r--r--recipes-opie/opie-zlines/opie-zlines.inc17
-rw-r--r--recipes-opie/opie-zlines/opie-zlines_1.2.5.bb11
-rw-r--r--recipes-opie/opie-zlines/opie-zlines_cvs.bb7
-rw-r--r--recipes-opie/opie-zsafe/opie-zsafe.inc19
-rw-r--r--recipes-opie/opie-zsafe/opie-zsafe_1.2.5.bb11
-rw-r--r--recipes-opie/opie-zsafe/opie-zsafe_cvs.bb7
-rw-r--r--recipes-opie/opie-zsame/opie-zsame.inc17
-rw-r--r--recipes-opie/opie-zsame/opie-zsame_1.2.5.bb11
-rw-r--r--recipes-opie/opie-zsame/opie-zsame_cvs.bb7
-rw-r--r--recipes-opie/tasks/task-opie-16mb.bb55
-rw-r--r--recipes-opie/tasks/task-opie-all.bb68
-rw-r--r--recipes-opie/tasks/task-opie-apps.bb26
-rw-r--r--recipes-opie/tasks/task-opie-games.bb22
-rw-r--r--recipes-opie/tasks/task-opie.bb99
-rw-r--r--recipes-opie/tasks/task-xqtlauncher.bb21
-rw-r--r--recipes-qt/qmake/files/linux-oe-qmake.conf82
-rw-r--r--recipes-qt/qmake/qmake-native_1.07a.bb48
-rw-r--r--recipes-qt/qte/qte-2.3.10/bidimetrics.patch2389
-rw-r--r--recipes-qt/qte/qte-2.3.10/c7x0-w100-accel.patch3404
-rw-r--r--recipes-qt/qte/qte-2.3.10/c7x0-w100-gcc4.patch31
-rw-r--r--recipes-qt/qte/qte-2.3.10/daemonize.patch113
-rw-r--r--recipes-qt/qte/qte-2.3.10/disable-dup-rotation.patch13
-rw-r--r--recipes-qt/qte/qte-2.3.10/encoding.patch34
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-errno-exception-spec.patch16
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-linuxfb-offscreenoverflow.patch22
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-linuxfb-setmode.patch32
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-native-build.patch11
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-qgfxraster.patch28
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-qscreen-sync.patch17
-rw-r--r--recipes-qt/qte/qte-2.3.10/fix-qte-asm-include.patch19
-rw-r--r--recipes-qt/qte/qte-2.3.10/gcc3.patch27
-rw-r--r--recipes-qt/qte/qte-2.3.10/gcc4.patch16
-rw-r--r--recipes-qt/qte/qte-2.3.10/handhelds.patch60
-rw-r--r--recipes-qt/qte/qte-2.3.10/improve-calibration-r0.patch159
-rw-r--r--recipes-qt/qte/qte-2.3.10/increase-qxml-robustness.patch17
-rw-r--r--recipes-qt/qte/qte-2.3.10/ipaq_sound_fix.patch60
-rw-r--r--recipes-qt/qte/qte-2.3.10/kernel-keymap-corgi.patch23
-rw-r--r--recipes-qt/qte/qte-2.3.10/kernel-keymap.patch1293
-rw-r--r--recipes-qt/qte/qte-2.3.10/key.patch74
-rw-r--r--recipes-qt/qte/qte-2.3.10/keyboardless-buttonmap.patch19
-rw-r--r--recipes-qt/qte/qte-2.3.10/no-moc.patch37
-rw-r--r--recipes-qt/qte/qte-2.3.10/qiconview-speed.patch122
-rw-r--r--recipes-qt/qte/qte-2.3.10/qpe.patch105
-rw-r--r--recipes-qt/qte/qte-2.3.10/qt-visibility.patch459
-rw-r--r--recipes-qt/qte/qte-2.3.10/qtabbar.patch39
-rw-r--r--recipes-qt/qte/qte-2.3.10/qte-fix-iconsize.patch99
-rw-r--r--recipes-qt/qte/qte-2.3.10/remove-unused-kbdhandler.patch420
-rw-r--r--recipes-qt/qte/qte-2.3.10/sharp_char.h309
-rw-r--r--recipes-qt/qte/qte-2.3.10/spitz-adhoc-keypad-rotate.patch21
-rw-r--r--recipes-qt/qte/qte-2.3.10/support_18bpp.patch275
-rw-r--r--recipes-qt/qte/qte-2.3.10/suspend-resume-hooks.patch78
-rw-r--r--recipes-qt/qte/qte-2.3.10/switches.h74
-rw-r--r--recipes-qt/qte/qte-2.3.10/tslib.patch53
-rw-r--r--recipes-qt/qte/qte-2.3.10/vt-switch.patch178
-rw-r--r--recipes-qt/qte/qte-common_2.3.10.inc149
-rw-r--r--recipes-qt/qte/qte-functions.inc11
-rw-r--r--recipes-qt/qte/qte-mt_2.3.10.bb9
-rw-r--r--recipes-qt/qte/qte_2.3.10.bb6
-rw-r--r--recipes-qt/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch226
-rw-r--r--recipes-qt/uicmoc/uicmoc-native-2.3.10/fix-makefile.patch16
-rw-r--r--recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc3_4.patch27
-rw-r--r--recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4.patch12
-rw-r--r--recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4_1.patch16
-rw-r--r--recipes-qt/uicmoc/uicmoc-native-2.3.10/kernel-asm-page.patch20
-rw-r--r--recipes-qt/uicmoc/uicmoc-native_2.3.10.bb56
-rw-r--r--recipes-qtopia/aliens/aliens_1.0.0.bb24
-rw-r--r--recipes-qtopia/billiardz/billiardz_0.1.4.bb36
-rw-r--r--recipes-qtopia/billiardz/files/gcc4.patch45
-rw-r--r--recipes-qtopia/brickout/brickout-2002.06.09/directories.patch18
-rw-r--r--recipes-qtopia/brickout/brickout_2002.06.09.bb43
-rw-r--r--recipes-qtopia/camera-assistant/ca.desktop6
-rw-r--r--recipes-qtopia/camera-assistant/ca.pngbin0 -> 2844 bytes
-rw-r--r--recipes-qtopia/camera-assistant/camera-assistant_0.2.0.bb40
-rw-r--r--recipes-qtopia/camera-assistant/g++-3.4-compile-fixes.patch155
-rw-r--r--recipes-qtopia/corsair/corsair_0.2.6.bb35
-rw-r--r--recipes-qtopia/corsair/files/corsair-opie.patch364
-rw-r--r--recipes-qtopia/cumulus/cumulus/open_max.patch11
-rw-r--r--recipes-qtopia/cumulus/cumulus_1.2.1.bb46
-rw-r--r--recipes-qtopia/cumulus/cumulus_cvs.bb47
-rw-r--r--recipes-qtopia/custominput/custominput_1.1.0.bb39
-rw-r--r--recipes-qtopia/dviviewer/dviviewer_1.0.2.bb24
-rw-r--r--recipes-qtopia/flexis-zaurus/flexis-zaurus_1.0.0.bb19
-rw-r--r--recipes-qtopia/freedroid/freedroid-1.0.2/freedroid.pngbin0 -> 1074 bytes
-rw-r--r--recipes-qtopia/freedroid/freedroid_1.0.2.bb27
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/FreeNote/FNCanvas.cpp2244
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/FreeNote/FNFindDialog.cpp143
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/FreeNote/FNMessageBox.cpp243
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/FreeNote/FNTextDialog.cpp93
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/FreeNote/FmtEngine.cpp512
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/FreeNote/FrmMain.cpp1442
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/apps/Applications/FreeNote.desktop10
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/apps/Settings/FreeNoteSetup.desktop9
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/pics/fnsetup.pngbin0 -> 1317 bytes
-rw-r--r--recipes-qtopia/freenote/files/FreeNote/pics/freenote.pngbin0 -> 1024 bytes
-rw-r--r--recipes-qtopia/freenote/freenote_1.12.0.bb37
-rw-r--r--recipes-qtopia/frodo/frodo-4.1b/Frodo.pngbin0 -> 1370 bytes
-rw-r--r--recipes-qtopia/frodo/frodo-4.1b/conffiles1
-rw-r--r--recipes-qtopia/frodo/frodo-4.1b/frodo-joystick-4state.diff77
-rw-r--r--recipes-qtopia/frodo/frodo-4.1b/frodo-qte.diff8171
-rw-r--r--recipes-qtopia/frodo/frodo-4.1b/frodo.desktop6
-rw-r--r--recipes-qtopia/frodo/frodo-4.1b/frodorc26
-rw-r--r--recipes-qtopia/frodo/frodo-4.2/Frodo.pngbin0 -> 1370 bytes
-rw-r--r--recipes-qtopia/frodo/frodo-4.2/configure.patch51
-rw-r--r--recipes-qtopia/frodo/frodo-4.2/frodo.desktop6
-rw-r--r--recipes-qtopia/frodo/frodo-4.2/frodorc26
-rw-r--r--recipes-qtopia/frodo/frodo_4.1b.bb50
-rw-r--r--recipes-qtopia/frodo/frodo_4.2.bb44
-rw-r--r--recipes-qtopia/froot/froot_0.7.1.bb23
-rw-r--r--recipes-qtopia/gnuplot/files/gnuplot.desktop8
-rw-r--r--recipes-qtopia/gnuplot/files/gnuplot.pngbin0 -> 9383 bytes
-rw-r--r--recipes-qtopia/gnuplot/files/qtopia.trm483
-rw-r--r--recipes-qtopia/gnuplot/files/subdirs.patch11
-rw-r--r--recipes-qtopia/gnuplot/files/term.patch20
-rw-r--r--recipes-qtopia/gnuplot/gnuplot-4.0.0/debian-separate-x11-package.patch59
-rw-r--r--recipes-qtopia/gnuplot/gnuplot-4.0.0/matrix.patch17
-rw-r--r--recipes-qtopia/gnuplot/gnuplot-4.0.0/subdirs.patch16
-rw-r--r--recipes-qtopia/gnuplot/gnuplot-4.0.0/term.patch20
-rw-r--r--recipes-qtopia/gnuplot/gnuplot.inc35
-rw-r--r--recipes-qtopia/gnuplot/gnuplot_4.0.0.bb17
-rw-r--r--recipes-qtopia/gnuplot/gnuplot_4.2.4.bb15
-rw-r--r--recipes-qtopia/gnuplot/gnuplot_4.4.0.bb14
-rw-r--r--recipes-qtopia/gnuplot/gnuplot_cvs.bb23
-rw-r--r--recipes-qtopia/gnuplot/qtplot_0.2.bb28
-rw-r--r--recipes-qtopia/hotplug-qcop/hotplug-qcop_cvs.bb22
-rwxr-xr-xrecipes-qtopia/iaimaster/files/iaimaster.desktop7
-rwxr-xr-xrecipes-qtopia/iaimaster/files/iaimaster.pngbin0 -> 2458 bytes
-rw-r--r--recipes-qtopia/iaimaster/iaimaster_0.5.bb29
-rw-r--r--recipes-qtopia/inkwp/inkwp_0.1.1.bb23
-rw-r--r--recipes-qtopia/insttrain/files/gcc3.patch33
-rw-r--r--recipes-qtopia/insttrain/insttrain_1.0.5.bb23
-rw-r--r--recipes-qtopia/iqnotes/files/pro.patch10
-rw-r--r--recipes-qtopia/iqnotes/iqnotes-2.0.2/md5.diff20
-rw-r--r--recipes-qtopia/iqnotes/iqnotes-2.0.2/qt2310-fontbug.patch11
-rw-r--r--recipes-qtopia/iqnotes/iqnotes.inc29
-rw-r--r--recipes-qtopia/iqnotes/iqnotes_2.0.2.bb10
-rw-r--r--recipes-qtopia/iqnotes/iqnotes_2.0.99-2.1.0rc1.bb15
-rw-r--r--recipes-qtopia/irk/files/install-default-conf.patch18
-rw-r--r--recipes-qtopia/irk/irk-belkin_0.11.bb12
-rw-r--r--recipes-qtopia/irk/irk-targus_0.11.0.bb14
-rw-r--r--recipes-qtopia/irk/irk.inc24
-rw-r--r--recipes-qtopia/jards/jards_1.0.bb58
-rw-r--r--recipes-qtopia/justreader/files/correct-settings-path.patch17
-rw-r--r--recipes-qtopia/justreader/files/missing-include.patch10
-rw-r--r--recipes-qtopia/justreader/justreader_2.0k.bb33
-rw-r--r--recipes-qtopia/kaffe/kaffe-qt_cvs.bb24
-rw-r--r--recipes-qtopia/kaffe/kaffe.inc86
-rw-r--r--recipes-qtopia/kdepimpi/files/qt-mt.patch45
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-base.inc162
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-qte.inc163
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11.inc70
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11/kabc.patch24
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11/kammu.patch18
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11/korganizer.patch24
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11/libkcal.patch16
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11/nomail.patch18
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi-x11_2.2.3.bb15
-rw-r--r--recipes-qtopia/kdepimpi/kdepimpi_2.2.10.bb9
-rw-r--r--recipes-qtopia/kdepimpi/kphonepi_1.0.0.bb33
-rw-r--r--recipes-qtopia/kdepimpi/ktimetrackerpi_0.9.7.bb33
-rw-r--r--recipes-qtopia/kdepimpi/pwmpi.inc39
-rw-r--r--recipes-qtopia/kdepimpi/pwmpi_2.2.10.bb3
-rw-r--r--recipes-qtopia/keyring/keyring-0.6.8/keyring-0.6.8-datatype.patch93
-rw-r--r--recipes-qtopia/keyring/keyring_0.6.8.bb39
-rw-r--r--recipes-qtopia/klimt/klimt_0.6.2.bb20
-rw-r--r--recipes-qtopia/knights/knights-1.14/gcc3.patch16
-rw-r--r--recipes-qtopia/knights/knights-1.14/libqpe-opie.patch26
-rw-r--r--recipes-qtopia/knights/knights_1.14.bb34
-rw-r--r--recipes-qtopia/konqueror/files/fix_KDE_LDPATH_HACK.patch27
-rw-r--r--recipes-qtopia/konqueror/files/fix_acinclude.patch5897
-rw-r--r--recipes-qtopia/konqueror/files/gcc4.patch16
-rw-r--r--recipes-qtopia/konqueror/files/inject-extraflags.patch16
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/cachepath.patch13
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/gcc4.patch15
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/include_qconfig.patch14
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch2924
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/konq-embedrc20
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/malformed.patch19
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/opie1.patch34
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/packing.patch21
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/useragent.patch27
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20030705/vit.patch18
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch62
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch43
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20070316/fix_configure.patch22
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch12
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch756
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.desktop6
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.pngbin0 -> 2996 bytes
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded_20030705.bb59
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded_20060404.bb82
-rw-r--r--recipes-qtopia/konqueror/konqueror-embedded_20070316.bb102
-rw-r--r--recipes-qtopia/kstars/kstars-embedded-0.8.5/gcc45-compilation-fixes.patch34
-rw-r--r--recipes-qtopia/kstars/kstars-embedded_0.8.5.bb29
-rw-r--r--recipes-qtopia/mileage/mileage_cvs.bb26
-rw-r--r--recipes-qtopia/militaryalphabet/militaryalphabet_0.2.1.bb23
-rw-r--r--recipes-qtopia/nonworking/qtella/qtella_0.6.5.bb14
-rw-r--r--recipes-qtopia/nonworking/zaurss/zaurss_0.4.2.bb33
-rw-r--r--recipes-qtopia/nonworking/zethereal/zethereal_1.0.0.bb58
-rw-r--r--recipes-qtopia/notez/notez-1.1.0/fix-encoding.patch18
-rw-r--r--recipes-qtopia/notez/notez-1.1.0/use-homedir.patch92
-rw-r--r--recipes-qtopia/notez/notez_1.1.0.bb25
-rw-r--r--recipes-qtopia/nunome/files/nunome.patch197
-rw-r--r--recipes-qtopia/nunome/files/timer.patch21
-rw-r--r--recipes-qtopia/nunome/nunome_1.0.2.bb47
-rw-r--r--recipes-qtopia/otpkeygen/otpkeygen_1.3.0.bb31
-rw-r--r--recipes-qtopia/petitepainture/petitepainture/dialogs.patch308
-rw-r--r--recipes-qtopia/petitepainture/petitepainture/petitpeintu.desktop9
-rw-r--r--recipes-qtopia/petitepainture/petitepainture/petitpeintu.pngbin0 -> 1077 bytes
-rw-r--r--recipes-qtopia/petitepainture/petitepainture_1.5.bb27
-rw-r--r--recipes-qtopia/phalanx/phalanx/capabilities18
-rw-r--r--recipes-qtopia/phalanx/phalanx/description10
-rw-r--r--recipes-qtopia/phalanx/phalanx_22.bb29
-rw-r--r--recipes-qtopia/poboxserver/poboxserver/OpenPOBox-1.25.diff173
-rw-r--r--recipes-qtopia/poboxserver/poboxserver/pbserver.sh38
-rw-r--r--recipes-qtopia/poboxserver/poboxserver/remove-local-includes.patch16
-rw-r--r--recipes-qtopia/poboxserver/poboxserver/unicode.patch13
-rw-r--r--recipes-qtopia/poboxserver/poboxserver_1.2.5.bb47
-rw-r--r--recipes-qtopia/poboxserver/qpobox/qpobox-0.5.4-opie.patch595
-rw-r--r--recipes-qtopia/poboxserver/qpobox/qpobox.patch57
-rw-r--r--recipes-qtopia/poboxserver/qpobox_0.5.4.bb21
-rw-r--r--recipes-qtopia/pocketcellar/pocketcellar-1.1/cellardb.patch88
-rw-r--r--recipes-qtopia/pocketcellar/pocketcellar-1.1/gcc3.patch16
-rw-r--r--recipes-qtopia/pocketcellar/pocketcellar-1.1/pocketcellar.patch14
-rw-r--r--recipes-qtopia/pocketcellar/pocketcellar-1.1/winedb.patch92
-rw-r--r--recipes-qtopia/pocketcellar/pocketcellar_1.1.bb35
-rw-r--r--recipes-qtopia/poqetpresenter/poqetpresenter_0.0.6.bb28
-rw-r--r--recipes-qtopia/portabase/metakit-2.4.9.3/metakit-2.4.9.3.patch108
-rw-r--r--recipes-qtopia/portabase/metakit_2.4.9.3.bb68
-rw-r--r--recipes-qtopia/portabase/portabase-1.9/fileselector.patch128
-rw-r--r--recipes-qtopia/portabase/portabase-1.9/qt2310-fontbug.patch11
-rw-r--r--recipes-qtopia/portabase/portabase-1.9/qtopia.patch70
-rw-r--r--recipes-qtopia/portabase/portabase-1.9/qtversion.patch101
-rw-r--r--recipes-qtopia/portabase/portabase_1.9.bb132
-rw-r--r--recipes-qtopia/powermanga/powermanga-0.79/linuxroutines.cpp845
-rw-r--r--recipes-qtopia/powermanga/powermanga-0.79/pda-tweaks.patch24
-rw-r--r--recipes-qtopia/powermanga/powermanga-0.79/powermanga.desktop6
-rw-r--r--recipes-qtopia/powermanga/powermanga-0.79/powermanga.pngbin0 -> 579 bytes
-rw-r--r--recipes-qtopia/powermanga/powermanga-0.79/powermanga.pro64
-rw-r--r--recipes-qtopia/powermanga/powermanga_0.79.bb40
-rw-r--r--recipes-qtopia/prboom/files/prboom.desktop7
-rw-r--r--recipes-qtopia/prboom/files/prboom.pngbin0 -> 1003 bytes
-rwxr-xr-xrecipes-qtopia/prboom/files/prboom.sh17
-rw-r--r--recipes-qtopia/prboom/prboom-2.5.0/gnu_source_for_sched_h.patch12
-rw-r--r--recipes-qtopia/prboom/prboom-devconfig.bb17
-rw-r--r--recipes-qtopia/prboom/prboom-devconfig/akita/prboom.cfg313
-rw-r--r--recipes-qtopia/prboom/prboom-devconfig/collie/prboom.cfg313
-rw-r--r--recipes-qtopia/prboom/prboom-devconfig/prboom.cfg1
-rw-r--r--recipes-qtopia/prboom/prboom-devconfig/spitz/prboom.cfg313
-rw-r--r--recipes-qtopia/prboom/prboom-opie_2.2.6.bb25
-rw-r--r--recipes-qtopia/prboom/prboom_2.2.6.bb26
-rw-r--r--recipes-qtopia/prboom/prboom_2.3.1.bb34
-rw-r--r--recipes-qtopia/prboom/prboom_2.4.7.bb28
-rw-r--r--recipes-qtopia/prboom/prboom_2.5.0.bb30
-rw-r--r--recipes-qtopia/puzz-le/puzz-le-2.0.0/gcc3.patch24
-rw-r--r--recipes-qtopia/puzz-le/puzz-le_2.0.0.bb21
-rw-r--r--recipes-qtopia/qclockchange/files/qclockchange.desktop6
-rw-r--r--recipes-qtopia/qclockchange/files/qclockchange.pngbin0 -> 5472 bytes
-rw-r--r--recipes-qtopia/qclockchange/qclockchange_0.1b.bb27
-rw-r--r--recipes-qtopia/qcoptest/files/qcoptest.desktop6
-rw-r--r--recipes-qtopia/qcoptest/files/qcoptest.pngbin0 -> 577 bytes
-rw-r--r--recipes-qtopia/qcoptest/qcoptest_0.1.1.bb25
-rw-r--r--recipes-qtopia/qfish/qfish2_1.1.0.bb46
-rw-r--r--recipes-qtopia/qmatrix/qmatrix_1.1.0.bb44
-rw-r--r--recipes-qtopia/qpdf2/files/fix-sigsegv.patch22
-rw-r--r--recipes-qtopia/qpdf2/files/fix_qtversion_check.patch11
-rw-r--r--recipes-qtopia/qpdf2/files/gcc4.patch31
-rw-r--r--recipes-qtopia/qpdf2/files/hack-the-hack.patch173
-rw-r--r--recipes-qtopia/qpdf2/qpdf2_2.2.1.bb39
-rw-r--r--recipes-qtopia/qpe-gaim/files/buzzer-notification.patch48
-rw-r--r--recipes-qtopia/qpe-gaim/files/dont-look-for-gtk.patch18
-rw-r--r--recipes-qtopia/qpe-gaim/files/libgaim.patch408
-rw-r--r--recipes-qtopia/qpe-gaim/files/qpe-gaim.patch721
-rw-r--r--recipes-qtopia/qpe-gaim/files/vit.patch327
-rw-r--r--recipes-qtopia/qpe-gaim/qpe-gaim_20041030.bb40
-rw-r--r--recipes-qtopia/qpe-gaim/qpe-libgaim_1.5.0.bb57
-rw-r--r--recipes-qtopia/qpe-games/aliens-qt-1.0.0/Makefile.patch9
-rw-r--r--recipes-qtopia/qpe-games/aliens-qt-1.0.0/aliens.patch12
-rw-r--r--recipes-qtopia/qpe-games/aliens-qt_1.0.0.bb34
-rw-r--r--recipes-qtopia/qpe-games/atomic-1.0.1/Makefile.patch14
-rw-r--r--recipes-qtopia/qpe-games/atomic-1.0.1/atomic.patch12
-rw-r--r--recipes-qtopia/qpe-games/atomic_1.0.1.bb38
-rw-r--r--recipes-qtopia/qpe-games/checkers-1.0.5ern/checkers.patch12
-rw-r--r--recipes-qtopia/qpe-games/checkers_1.0.5ern.bb29
-rw-r--r--recipes-qtopia/qpe-games/crossword-0.0.3/crossword.patch12
-rw-r--r--recipes-qtopia/qpe-games/crossword_0.0.3.bb37
-rw-r--r--recipes-qtopia/qpe-games/fish-1.1.0/Makefile.patch8
-rw-r--r--recipes-qtopia/qpe-games/fish-1.1.0/fish.patch12
-rw-r--r--recipes-qtopia/qpe-games/fish_1.1.0.bb35
-rw-r--r--recipes-qtopia/qpe-games/glider-1.0.0/Makefile.patch8
-rw-r--r--recipes-qtopia/qpe-games/glider-1.0.0/glider.patch12
-rw-r--r--recipes-qtopia/qpe-games/glider_1.0.0.bb33
-rw-r--r--recipes-qtopia/qpe-games/hexatrolic_1.0beta3.bb27
-rw-r--r--recipes-qtopia/qpe-games/icebloxx-1.0.0/Makefile.patch8
-rw-r--r--recipes-qtopia/qpe-games/icebloxx-1.0.0/icebloxx.patch12
-rw-r--r--recipes-qtopia/qpe-games/icebloxx_1.0.0.bb33
-rw-r--r--recipes-qtopia/qpe-games/labyrinth_0.7.bb28
-rw-r--r--recipes-qtopia/qpe-games/mahjongg-1.0.0/Makefile.patch14
-rw-r--r--recipes-qtopia/qpe-games/mahjongg-1.0.0/mahjongg.patch12
-rw-r--r--recipes-qtopia/qpe-games/mahjongg_1.0.0.bb38
-rw-r--r--recipes-qtopia/qpe-games/maki-1.0.4ern/maki.patch12
-rw-r--r--recipes-qtopia/qpe-games/maki_1.0.4ern.bb29
-rw-r--r--recipes-qtopia/qpe-games/nmm-0.0.2/Makefile.patch9
-rw-r--r--recipes-qtopia/qpe-games/nmm-0.0.2/nmm.patch12
-rw-r--r--recipes-qtopia/qpe-games/nmm_0.0.2.bb34
-rw-r--r--recipes-qtopia/qpe-games/pairs-1.1.1/pairs.patch20
-rw-r--r--recipes-qtopia/qpe-games/pairs_1.1.1.bb35
-rw-r--r--recipes-qtopia/qpe-games/pdamaze-1.0.0/Makefile.patch20
-rw-r--r--recipes-qtopia/qpe-games/pdamaze_1.0.0.bb35
-rw-r--r--recipes-qtopia/qpe-games/pipeman-1.0.0/pipe.patch20
-rw-r--r--recipes-qtopia/qpe-games/pipeman_1.0.0.bb34
-rw-r--r--recipes-qtopia/qpe-games/shisensho-1.0.0/shisen.patch20
-rw-r--r--recipes-qtopia/qpe-games/shisensho_1.0.0.bb33
-rw-r--r--recipes-qtopia/qpe-games/sokoban-1.3.8ern/sokoban.patch20
-rw-r--r--recipes-qtopia/qpe-games/sokoban_1.3.8ern.bb34
-rw-r--r--recipes-qtopia/qpe-games/tron-1.0.0/tron.patch12
-rw-r--r--recipes-qtopia/qpe-games/tron_1.0.0.bb30
-rw-r--r--recipes-qtopia/qpe-games/win4-1.0.1/win4.patch20
-rw-r--r--recipes-qtopia/qpe-games/win4_1.0.1.bb35
-rw-r--r--recipes-qtopia/qpe-games/ziq-1.1ern/ziq.patch12
-rw-r--r--recipes-qtopia/qpe-games/ziq_1.1ern.bb34
-rw-r--r--recipes-qtopia/qpe-games/zrev7-1.0.1/zrev.patch20
-rw-r--r--recipes-qtopia/qpe-games/zrev7_1.0.1.bb29
-rw-r--r--recipes-qtopia/qpe-games/zsubhunt_1.0.0ern.bb31
-rw-r--r--recipes-qtopia/qpe-games/ztappy_0.9.3ern.bb30
-rw-r--r--recipes-qtopia/qpe-inputhelper/qpe-inputhelper-applet_1.0.0.bb20
-rw-r--r--recipes-qtopia/qpe-nmap/qpe-nmap_0.02.bb27
-rw-r--r--recipes-qtopia/qpealarmclock/qpealarmclock-1.0.9/fix-compile.patch67
-rw-r--r--recipes-qtopia/qpealarmclock/qpealarmclock_1.0.9.bb35
-rw-r--r--recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/fix-compile.patch67
-rw-r--r--recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/missing-files.tar.gzbin0 -> 6101 bytes
-rw-r--r--recipes-qtopia/qpealarmclock/qpealarmclockapplet_1.0.9.bb46
-rw-r--r--recipes-qtopia/qpegps/files/qpegps.desktop6
-rw-r--r--recipes-qtopia/qpegps/files/qpegps.pngbin0 -> 3606 bytes
-rw-r--r--recipes-qtopia/qpegps/qpegps.inc37
-rw-r--r--recipes-qtopia/qpegps/qpegps_0.9.2.3.3.bb6
-rw-r--r--recipes-qtopia/qpegps/qpegps_0.9.3.1.bb11
-rw-r--r--recipes-qtopia/qpegps/qpegps_svn.bb15
-rw-r--r--recipes-qtopia/qpenmapfe/files/qpenmapfe.desktop6
-rw-r--r--recipes-qtopia/qpenmapfe/files/qpenmapfe.pngbin0 -> 999 bytes
-rw-r--r--recipes-qtopia/qpenmapfe/qpenmapfe_1.0.0.bb25
-rwxr-xr-xrecipes-qtopia/qpf-fonts/files/update-qtfontdir74
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-arabic_1.0.bb11
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-bitstream-vera-sans-mono_1.10.bb39
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-bitstream-vera_1.10.bb27
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-font-common_1.0.bb14
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-freemono_1.0.bb13
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-freeserif_1.0.bb13
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-helvetica_1.0.bb12
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-hunkysans_0.3.0.bb13
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-hunkyserif_0.3.0.bb13
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-qte_2.3.10.bb38
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-qte_3.3.5.bb60
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-terminus.bb13
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-unifont_1.0.bb11
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-unismall_1.0.0.bb12
-rw-r--r--recipes-qtopia/qpf-fonts/qpf-utopia_1.0.bb12
-rw-r--r--recipes-qtopia/qpf-fonts/qpf.inc32
-rw-r--r--recipes-qtopia/qplot/qplot/gcc3.patch41
-rw-r--r--recipes-qtopia/qplot/qplot_2.0.1+cvs20020420.bb29
-rw-r--r--recipes-qtopia/qpphoto/files/draw.patch35
-rw-r--r--recipes-qtopia/qpphoto/files/drawview.patch11
-rw-r--r--recipes-qtopia/qpphoto/files/drawwidget.patch2414
-rw-r--r--recipes-qtopia/qpphoto/qpphoto_1.0.2.bb40
-rw-r--r--recipes-qtopia/qscintilla/files/no-external-lexers.patch23
-rw-r--r--recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3.bb19
-rw-r--r--recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3b.bb19
-rw-r--r--recipes-qtopia/qscintilla/qscintilla_1.65-gpl-1.6.bb34
-rw-r--r--recipes-qtopia/qwt/files/qt2-fix.patch408
-rw-r--r--recipes-qtopia/qwt/qwt.inc33
-rw-r--r--recipes-qtopia/qwt/qwt_4.2.0rc1.bb31
-rw-r--r--recipes-qtopia/resistorui/resistorui_0.9.bb23
-rw-r--r--recipes-qtopia/roadmap/files/cross.patch17
-rw-r--r--recipes-qtopia/roadmap/files/options.mk.patch34
-rw-r--r--recipes-qtopia/roadmap/files/qt/qt2-fixes.patch10
-rw-r--r--recipes-qtopia/roadmap/files/qt/qt_canvas.patch20
-rw-r--r--recipes-qtopia/roadmap/files/qt/qt_main.patch61
-rw-r--r--recipes-qtopia/roadmap/files/qt/roadmap_main.patch16
-rw-r--r--recipes-qtopia/roadmap/files/roadmap.desktop.patch16
-rw-r--r--recipes-qtopia/roadmap/files/roadmap_path.patch57
-rw-r--r--recipes-qtopia/roadmap/files/zroadgps.pngbin0 -> 1949 bytes
-rw-r--r--recipes-qtopia/roadmap/roadmap.inc19
-rw-r--r--recipes-qtopia/roadmap/zroadmap.inc23
-rw-r--r--recipes-qtopia/roadmap/zroadmap_1.1.0.bb21
-rw-r--r--recipes-qtopia/roadmap/zroadmap_cvs.bb16
-rw-r--r--recipes-qtopia/scummvm/files/gcc-4.x.x-accept.patch11
-rw-r--r--recipes-qtopia/scummvm/files/makefile-nostrip.patch13
-rw-r--r--recipes-qtopia/scummvm/files/mouse.patch36
-rw-r--r--recipes-qtopia/scummvm/files/no-strip.patch22
-rwxr-xr-xrecipes-qtopia/scummvm/files/om-gta01/openmoko-scummvm19
-rw-r--r--recipes-qtopia/scummvm/files/scummvm-targetcheck.patch17
-rw-r--r--recipes-qtopia/scummvm/files/scummvm.desktop12
-rw-r--r--recipes-qtopia/scummvm/files/sh3-arch-0.9.0+.patch18
-rw-r--r--recipes-qtopia/scummvm/files/sh3-linux-new-arch.patch18
-rw-r--r--recipes-qtopia/scummvm/files/shr/openmoko-scummvm19
-rw-r--r--recipes-qtopia/scummvm/files/shr/scummvm.desktop12
-rw-r--r--recipes-qtopia/scummvm/files/tail-obselete-fix.patch11
-rw-r--r--recipes-qtopia/scummvm/files/tremor.patch32
-rw-r--r--recipes-qtopia/scummvm/opie-scummvm_1.0.1.bb22
-rw-r--r--recipes-qtopia/scummvm/scummvm-0.6.0/mouse.patch36
-rw-r--r--recipes-qtopia/scummvm/scummvm-0.6.0/sword1.patch16
-rw-r--r--recipes-qtopia/scummvm/scummvm-0.6.0/tremor.patch32
-rw-r--r--recipes-qtopia/scummvm/scummvm-1.0.0/no-strip.patch20
-rw-r--r--recipes-qtopia/scummvm/scummvm-1.1.1/no-strip.patch22
-rw-r--r--recipes-qtopia/scummvm/scummvm-qpe_0.6.1b.bb10
-rw-r--r--recipes-qtopia/scummvm/scummvm.inc28
-rw-r--r--recipes-qtopia/scummvm/scummvm_0.12.0.bb38
-rw-r--r--recipes-qtopia/scummvm/scummvm_0.6.0.bb37
-rw-r--r--recipes-qtopia/scummvm/scummvm_0.6.1b.bb13
-rw-r--r--recipes-qtopia/scummvm/scummvm_0.9.0.bb13
-rw-r--r--recipes-qtopia/scummvm/scummvm_0.9.1.bb35
-rw-r--r--recipes-qtopia/scummvm/scummvm_1.0.0.bb43
-rw-r--r--recipes-qtopia/scummvm/scummvm_1.1.1.bb41
-rw-r--r--recipes-qtopia/shopper/shopper-1.2.1/gcc3.patch11
-rw-r--r--recipes-qtopia/shopper/shopper-1.2.1/path_fix.patch23
-rw-r--r--recipes-qtopia/shopper/shopper_1.2.1.bb39
-rw-r--r--recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc3.patch69
-rw-r--r--recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc34.patch40
-rw-r--r--recipes-qtopia/sidplayer/sidplayer-1.5.0/use-external-libsidplay.patch20
-rw-r--r--recipes-qtopia/sidplayer/sidplayer_1.5.0.bb27
-rw-r--r--recipes-qtopia/slcalc/files/slcalc.pngbin0 -> 2681 bytes
-rw-r--r--recipes-qtopia/slcalc/files/slcalc2.pngbin0 -> 7773 bytes
-rw-r--r--recipes-qtopia/slcalc/slcalc_1.2.1.bb23
-rw-r--r--recipes-qtopia/sliderulez/sliderulez_0.92.bb28
-rw-r--r--recipes-qtopia/snes9x/64bit.patch110
-rw-r--r--recipes-qtopia/snes9x/snes9x-sdl-qpe_1.39.bb32
-rw-r--r--recipes-qtopia/snes9x/snes9x-sdl/compile.patch275
-rw-r--r--recipes-qtopia/snes9x/snes9x-sdl/gcc-4.1.patch28
-rw-r--r--recipes-qtopia/snes9x/snes9x-sdl_1.39.bb27
-rw-r--r--recipes-qtopia/snes9x/snes9x/configure.patch12
-rw-r--r--recipes-qtopia/snes9x/snes9x/linkage.patch31
-rw-r--r--recipes-qtopia/snes9x/snes9x/makefile.patch39
-rw-r--r--recipes-qtopia/snes9x/snes9x/private.patch10
-rw-r--r--recipes-qtopia/snes9x/snes9x_1.43-WIP1.bb32
-rw-r--r--recipes-qtopia/subapplet/subapplet-1.0.8/toolbar-resize-fix.patch11
-rw-r--r--recipes-qtopia/subapplet/subapplet_1.0.8.bb42
-rw-r--r--recipes-qtopia/tasklistapplet/tasklistapplet_1.0.5.bb40
-rw-r--r--recipes-qtopia/temtor/temtor_0.0.1.bb26
-rw-r--r--recipes-qtopia/tickypip/tickypip-levels_1.1.bb38
-rw-r--r--recipes-qtopia/tickypip/tickypip/path_fix.patch11
-rw-r--r--recipes-qtopia/tickypip/tickypip/tickypip.desktop10
-rw-r--r--recipes-qtopia/tickypip/tickypip/tickypip.pngbin0 -> 1093 bytes
-rw-r--r--recipes-qtopia/tickypip/tickypip_0.1.2.bb36
-rw-r--r--recipes-qtopia/timesleuth/timesleuth_1.0.5.bb27
-rw-r--r--recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/apps/Applications/txdrug.desktop6
-rwxr-xr-xrecipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/etc/txdrug/drugs.dbbin0 -> 791552 bytes
-rw-r--r--recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug.pngbin0 -> 2376 bytes
-rw-r--r--recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/down.pngbin0 -> 182 bytes
-rw-r--r--recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/up.pngbin0 -> 175 bytes
-rw-r--r--recipes-qtopia/txdrug/txdrug_0.1.bb32
-rw-r--r--recipes-qtopia/tximage/tximage-0.2/gcc3.patch27
-rw-r--r--recipes-qtopia/tximage/tximage-0.2/gcc4.patch15
-rw-r--r--recipes-qtopia/tximage/tximage_0.2.bb24
-rw-r--r--recipes-qtopia/ubahnnav/ubahnnav/gcc45-compilation-fixes.patch109
-rw-r--r--recipes-qtopia/ubahnnav/ubahnnav/qmake.patch48
-rw-r--r--recipes-qtopia/ubahnnav/ubahnnav_0.4.1.bb39
-rw-r--r--recipes-qtopia/uqm/files/build-oe.patch58
-rw-r--r--recipes-qtopia/uqm/files/build-opts.sh15
-rw-r--r--recipes-qtopia/uqm/uqm-0.5.0/build-oe.patch40
-rw-r--r--recipes-qtopia/uqm/uqm_0.3.bb36
-rw-r--r--recipes-qtopia/uqm/uqm_0.5.0.bb37
-rw-r--r--recipes-qtopia/vectoroids/vectoroids_1.1.0.bb33
-rw-r--r--recipes-qtopia/visiscript/files/qcleanuphandler.h127
-rw-r--r--recipes-qtopia/visiscript/files/qptrlist.h9
-rw-r--r--recipes-qtopia/visiscript/visiscript_0.3.2.bb36
-rw-r--r--recipes-qtopia/visiscript/visiscript_0.4.3.bb38
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bogusincdir.patch24
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bufferdefaults.patch14
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34-enum.patch12
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34.patch16
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/glib2.patch196
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gtkremoval.patch722
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-endian.patch11
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-update.patch11
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/removenativeincdir.patch120
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/tremorlib.patch12
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded-20040327/xmms.pngbin0 -> 2507 bytes
-rw-r--r--recipes-qtopia/xmms-embedded/xmms-embedded_20040327.bb66
-rw-r--r--recipes-qtopia/xqt/files/imake-staging.patch38
-rw-r--r--recipes-qtopia/xqt/files/moc_call.patch16
-rw-r--r--recipes-qtopia/xqt/xqt_0.0.9.bb93
-rw-r--r--recipes-qtopia/xqt2/files/KeyMap.patch19
-rw-r--r--recipes-qtopia/xqt2/files/cross.patch62
-rw-r--r--recipes-qtopia/xqt2/files/fephack.patch32
-rw-r--r--recipes-qtopia/xqt2/files/fix_qtscreen_HACK.patch55
-rw-r--r--recipes-qtopia/xqt2/files/fix_seqfault_qtscreen.patch13
-rw-r--r--recipes-qtopia/xqt2/files/imake-staging.patch38
-rw-r--r--recipes-qtopia/xqt2/files/moc_call.patch11
-rw-r--r--recipes-qtopia/xqt2/files/xchar2b.patch25
-rw-r--r--recipes-qtopia/xqt2/files/xqt-make.patch43
-rw-r--r--recipes-qtopia/xqt2/xqt2_20060509.bb123
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config.bb17
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/blackboxrc1
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/defaultwm1
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher.bb34
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher/cleanup.desktop5
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher/convert.desktop5
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher/dot.directory3
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher/startxqt15
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher/startxqt-wrapper5
-rw-r--r--recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher45
-rwxr-xr-xrecipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-cleanup.sh21
-rwxr-xr-xrecipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-convert.sh23
-rw-r--r--recipes-qtopia/zauralign/zauralign_1.0.2.bb24
-rw-r--r--recipes-qtopia/zbedic/libbedic_1.1.bb40
-rw-r--r--recipes-qtopia/zbedic/zbedic/include-cstdio.patch12
-rw-r--r--recipes-qtopia/zbedic/zbedic/opie-icons.patch14
-rw-r--r--recipes-qtopia/zbedic/zbedic/qtopia17.patch21
-rw-r--r--recipes-qtopia/zbedic/zbedic_1.2.bb46
-rw-r--r--recipes-qtopia/zbench/zbench_2.0.bb22
-rw-r--r--recipes-qtopia/zddice/zddice-1.0.0/qtopia17.patch25
-rw-r--r--recipes-qtopia/zddice/zddice_1.0.0.bb23
-rw-r--r--recipes-qtopia/zgscore/files/qtopia17.patch25
-rw-r--r--recipes-qtopia/zgscore/zgscore_1.0.2.bb26
-rw-r--r--recipes-qtopia/zipsc/zipsc-0.4.3/gcc3.patch961
-rw-r--r--recipes-qtopia/zipsc/zipsc_0.4.3.bb26
-rw-r--r--recipes-qtopia/zlapspeed/zlapspeed-1.0.0/qtopia17.patch25
-rw-r--r--recipes-qtopia/zlapspeed/zlapspeed_1.0.0.bb22
-rw-r--r--recipes-qtopia/zmerlin/zmerlin_0.9.1.bb23
-rw-r--r--recipes-qtopia/zrally/zrally/dir.patch11
-rw-r--r--recipes-qtopia/zrally/zrally_0.90.bb25
-rw-r--r--recipes-qtopia/zsafe/zsafe_2.1.3.bb30
-rw-r--r--recipes-qtopia/zshopi/files/zshopi.desktop6
-rw-r--r--recipes-qtopia/zshopi/files/zshopi.pngbin0 -> 2416 bytes
-rw-r--r--recipes-qtopia/zshopi/zshopi_0.2.bb45
-rw-r--r--recipes-qtopia/ztappy/ztappy_0.9.1.bb20
-rw-r--r--recipes-qtopia/zten/files/zten.patch37
-rw-r--r--recipes-qtopia/zten/zten_1.6.2.bb32
-rw-r--r--recipes-qtopia/zuc/zuc/fixed-include.patch11
-rw-r--r--recipes-qtopia/zuc/zuc_1.1.2ern.bb35
-rw-r--r--recipes-qtopia/zudoku/zudoku/zudoku.desktop6
-rw-r--r--recipes-qtopia/zudoku/zudoku/zudoku.html51
-rw-r--r--recipes-qtopia/zudoku/zudoku_1.1.bb27
-rw-r--r--recipes-support/libetpan/files/libetpan-autoreconf.patch12
-rw-r--r--recipes-support/libetpan/files/libetpan-ldflags.patch11
-rw-r--r--recipes-support/libetpan/libetpan_0.57.bb24
-rw-r--r--recipes-support/manufacturers/manufacturers_20031209.bb15
-rw-r--r--recipes-support/obexftp/obexftp_0.23.bb29
-rw-r--r--recipes-support/obexpush/files/add-obextool.patch461
-rw-r--r--recipes-support/obexpush/files/init44
-rw-r--r--recipes-support/obexpush/files/opd_args1
-rw-r--r--recipes-support/obexpush/obexpush_1.0.0.bb53
1181 files changed, 72709 insertions, 0 deletions
diff --git a/COPYING.MIT b/COPYING.MIT
new file mode 100644
index 0000000..fb950dc
--- /dev/null
+++ b/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README b/README
new file mode 100644
index 0000000..d10698d
--- /dev/null
+++ b/README
@@ -0,0 +1,36 @@
+meta-opie
+=========
+
+This layer provides the metadata necessary to build Opie, Qt/Embedded 2.3.10,
+related libraries and 3rd-party Qtopia applications. Initially based on
+recipes developed within OpenEmbedded master.
+
+
+Dependencies
+------------
+
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: master
+revision: HEAD
+
+
+Maintenance
+-----------
+
+Send patches / pull requests to openembedded-devel@lists.openembedded.org
+with '[meta-opie]' in the subject.
+
+Main layer maintainer: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+
+License
+-------
+
+All metadata is MIT licensed unless otherwise stated. Source code included
+in tree for individual recipes is under the LICENSE stated in each recipe
+(.bb file) unless otherwise stated.
+
+This README document is Copyright (C) 2011 Intel Corporation.
+
diff --git a/classes/opie.bbclass b/classes/opie.bbclass
new file mode 100644
index 0000000..833ea4d
--- /dev/null
+++ b/classes/opie.bbclass
@@ -0,0 +1,105 @@
+#
+# This oeclass takes care about some of the itchy details of installing parts
+# of Opie applications. Depending on quicklaunch or not, plugin or not, the
+# TARGET is either a shared object, a shared object with a link to quicklauncher,
+# or a usual binary.
+#
+# You have to provide two things: 1.) A proper SECTION field, and 2.) a proper APPNAME
+# Then opie.oeclass will:
+# * create the directory for the binary and install the binary file(s)
+# * for applications: create the directory for the .desktop and install the .desktop file
+# * for quicklauncher applications: create the startup symlink to the quicklauncher
+# You can override the automatic detection of APPTYPE, valid values are 'quicklaunch', 'binary', 'plugin'
+# You can override the default location of APPDESKTOP (<workdir>/apps/<section>/)
+#
+
+inherit palmtop
+
+OPIE_CVS_PV ?= "1.2.2+cvs${SRCDATE}"
+OPIE_SRCREV ?= "8c3beef263bc9c34443eacfc821e99813e17554f"
+OPIE_GIT_PV ?= "1.2.4+gitr${OPIE_SRCREV}"
+DEPENDS_prepend = "${@["libopie2 ", ""][(bb.data.getVar('PN', d, 1) == 'libopie2')]}"
+
+# to be consistent, put all targets into workdir
+# NOTE: leave one space at the end, other files are expecting that
+EXTRA_QMAKEVARS_POST += " DESTDIR=${S} "
+
+# Opie standard TAG value
+TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '_')}"
+
+# plan for later:
+# add common scopes for opie applications, see qmake-native/common.pro
+# qmake should care about all the details then. qmake can do that, i know it :)
+#
+
+python opie_do_opie_install() {
+ import os, shutil
+ section = bb.data.getVar( "SECTION", d ).split( '/' )[1] or "Applications"
+ section = section.title()
+ if section in ( "Base", "Libs" ):
+ bb.note( "Section = Base or Libs. Target won't be installed automatically." )
+ return
+
+ # SECTION : BINDIR DESKTOPDIR
+ dirmap = { "Applets" : ( "/plugins/applets", None ),
+ "Applications" : ( "<BINDIR>", "/apps/Applications" ),
+ "Multimedia" : ( "<BINDIR>", "/apps/Applications" ),
+ "Games" : ( "<BINDIR>", "/apps/Games" ),
+ "Settings" : ( "<BINDIR>", "/apps/Settings" ),
+ "Pim" : ( "<BINDIR>", "/apps/1Pim" ),
+ "Examples" : ( "<BINDIR>", "/apps/Examples" ),
+ "Shell" : ( "/bin", "/apps/Opie-SH" ),
+ "Codecs" : ( "/plugins/codecs", None ),
+ "Decorations" : ( "/plugins/decorations", None ),
+ "Inputmethods" : ( "/plugins/inputmethods", None ),
+ "Fontfactories" : ( "/plugins/fontfactories", None ),
+ "Security" : ( "/plugins/security", None ),
+ "Styles" : ( "/plugins/styles", None ),
+ "Today" : ( "/plugins/today", None ),
+ "Datebook" : ( "/plugins/holidays", None ),
+ "Networksettings" : ( "/plugins/networksettings", None ) }
+
+ if section not in dirmap:
+ raise ValueError, "Unknown section '%s'. Valid sections are: %s" % ( section, dirmap.keys() )
+
+ bindir, desktopdir = dirmap[section]
+ APPNAME = bb.data.getVar( "APPNAME", d, True ) or bb.data.getVar( "PN", d, True )
+ APPTYPE = bb.data.getVar( "APPTYPE", d, True )
+ if not APPTYPE:
+ if bindir == "<BINDIR>":
+ APPTYPE = "quicklaunch"
+ else:
+ APPTYPE = "plugin"
+
+ appmap = { "binary":"/bin", "quicklaunch":"/plugins/application" }
+ if bindir == "<BINDIR>": bindir = appmap[APPTYPE]
+
+ bb.note( "Section='%s', bindir='%s', desktopdir='%s', name='%s', type='%s'" %
+ ( section, bindir, desktopdir, APPNAME, APPTYPE ) )
+
+ S = bb.data.getVar( "S", d, 1 )
+ D = "%s/image" % bb.data.getVar( "WORKDIR", d, True )
+ WORKDIR = bb.data.getVar( "WORKDIR", d, True )
+ palmtopdir = bb.data.getVar( "palmtopdir", d, True )
+ gnubindir = bb.data.getVar( "bindir", d, True )
+ APPDESKTOP = bb.data.getVar( "APPDESKTOP", d, True ) or "%s/%s" % ( WORKDIR, desktopdir )
+
+ if desktopdir is not None:
+ os.system( "install -d %s%s%s/" % ( D, palmtopdir, desktopdir ) )
+ os.system( "install -m 0644 %s/%s.desktop %s%s%s/" % ( APPDESKTOP, APPNAME, D, palmtopdir, desktopdir ) )
+
+ os.system( "install -d %s%s%s/" % ( D, palmtopdir, bindir ) )
+
+ if APPTYPE == "binary":
+ os.system( "install -d %s%s/" % ( D, gnubindir ) )
+ os.system( "install -m 0755 %s/%s %s%s/" % ( S, APPNAME, D, gnubindir ) )
+ elif APPTYPE == "quicklaunch":
+ os.system( "install -m 0755 %s/lib%s.so %s%s%s/" % ( S, APPNAME, D, palmtopdir, bindir ) )
+ os.system( "install -d %s%s/" % ( D, gnubindir ) )
+ os.system( "ln -sf %s/quicklauncher %s%s/%s" % ( gnubindir, D, gnubindir, APPNAME ) )
+ elif APPTYPE == "plugin":
+ os.system( "install -m 0755 %s/lib%s.so %s%s%s/" % ( S, APPNAME, D, palmtopdir, bindir ) )
+}
+
+EXPORT_FUNCTIONS do_opie_install
+addtask opie_install after do_compile before do_package
diff --git a/classes/opie_i18n.bbclass b/classes/opie_i18n.bbclass
new file mode 100644
index 0000000..c9b0134
--- /dev/null
+++ b/classes/opie_i18n.bbclass
@@ -0,0 +1,163 @@
+# classes/opie_i18n.oeclass Matthias 'CoreDump' Hentges 16-10-2004
+#
+# Automatically builds i18n ipks for opie packages. It downloads opie-i18n from opie CVS
+# and tries to guess the name of the .ts file based on the package name:
+# ${PN}.ts, lib${PN}.ts and opie-${PN}.ts are all valid. The .ts "guessing" can be
+# disabled by setting I18N_FILES in the .oe file.
+#
+# Todo:
+#
+
+I18N_STATS = "1"
+SRC_URI += "${OPIE_GIT};protocol=git;subpath=i18n"
+DEPENDS += "opie-i18n"
+
+die () {
+ printf "opie_18n: ERROR: $1\n"
+ exit 1
+}
+
+python do_build_opie_i18n_data() {
+
+ import os, bb, re
+ workdir = bb.data.getVar("WORKDIR", d, 1)
+ packages = bb.data.getVar("PACKAGES", d, 1)
+ files = bb.data.getVar("FILES", d, 1)
+ section = bb.data.getVar("SECTION", d, 1)
+ pn = bb.data.getVar("PN", d, 1)
+ rdepends = bb.data.getVar("RDEPENDS", d, 1)
+
+ if os.path.exists(workdir + "/PACKAGES.tmp"):
+ fd = open(workdir + "/PACKAGES.tmp", 'r')
+ lines = fd.readlines()
+ fd.close()
+
+ bb.data.setVar('PACKAGES', " ".join(lines).lower() + " " + packages, d)
+
+ fd = open(workdir + "/FILES.tmp", 'r')
+ lines = fd.readlines()
+ fd.close()
+
+ for l in lines:
+ x = re.split("\#", l)
+ bb.data.setVar('FILES_%s' % x[0].lower(), " " + x[1].strip('\n'), d)
+ bb.data.setVar('SECTION_%s' % x[0].lower(), "opie/translations", d)
+ bb.data.setVar('RDEPENDS_%s' % x[0].lower(), pn, d)
+
+ bb.data.setVar('SECTION_%s' % pn, section, d)
+ bb.data.setVar('RDEPENDS', rdepends, d)
+ else:
+ bb.note("No translations found for package " + pn)
+}
+
+do_build_opie_i18n () {
+
+ cd "${WORKDIR}/i18n" || die "ERROR:\nCouldn't find Opies i18n sources in ${PN}/i18n\nMake sure that <inherit opie_i18n> or <inherit opie> is *below* <SRC_URIS =>!"
+
+ if test -z "${I18N_FILES}"
+ then
+ package_name="`echo "${PN}"| sed "s/^opie\-//"`"
+ package_name2="`echo "${PN}"| sed "s/^opie\-//;s/\-//"`"
+ test "$package_name" != "$package_name2" && I18N_FILES="${package_name}.ts lib${package_name}.ts opie-${package_name}.ts ${package_name2}.ts lib${package_name2}.ts opie-${package_name2}.ts"
+ test "$package_name" = "$package_name2" && I18N_FILES="${package_name}.ts lib${package_name}.ts opie-${package_name}.ts"
+ printf "I18N Datafiles: ${I18N_FILES} (auto-detected)\nYou can overide the auto-detection by setting I18N_FILES in your .oe file\n"
+ else
+ echo "I18N Datafiles: ${I18N_FILES} (provided by .bb)"
+ fi
+
+ rm -f "${WORKDIR}/FILES.tmp" "${WORKDIR}/PACKAGES.tmp"
+
+ printf "\nFILES is set to [${FILES}]\n\n"
+
+ for file in ${I18N_FILES}
+ do
+ echo "Working on [$file]"
+ for ts_file in `ls -1 */*.ts | egrep "/$file"`
+ do
+ printf "\tCompiling [$ts_file]\n"
+ cd "${WORKDIR}/i18n/`dirname $ts_file`" || die "[${WORKDIR}/i18n/`dirname $ts_file`] not found"
+ opie-lrelease "`basename $ts_file`" || die "lrelease failed! Make sure that <inherit opie_i18n> or <inherit opie> is *below* <DEPENDS =>!"
+
+ # $lang is the language as in de_DE, $lang_sane replaces "_" with "-"
+ # to allow packaging as "_" is not allowed in a package name
+ lang="`echo "$ts_file" | sed -n "s#\(.*\)/\(.*\)#\1#p"`"
+ lang_sane="`echo "$ts_file" | sed -n "s#\(.*\)/\(.*\)#\1#p"|sed s/\_/\-/`"
+ printf "\tPackaging [`basename $ts_file`] for language [$lang]\n"
+
+ install -d ${D}${palmtopdir}/i18n/$lang
+ install -m 0644 ${WORKDIR}/i18n/$lang/.directory ${D}${palmtopdir}/i18n/$lang/
+ install -m 0644 ${WORKDIR}/i18n/$lang/*.qm "${D}${palmtopdir}/i18n/$lang/"
+
+ # As it is not possible to modify OE vars from within a _shell_ function,
+ # some major hacking was needed. These two files will be read by the python
+ # function do_build_opie_i18n_data() which sets the variables FILES_* and
+ # PACKAGES as needed.
+ echo -n "${PN}-${lang_sane} " >> "${WORKDIR}/PACKAGES.tmp"
+ printf "${PN}-${lang_sane}#${palmtopdir}/i18n/$lang" >> "${WORKDIR}/FILES.tmp\n"
+
+ ts_found_something=1
+ done
+
+ if test "$ts_found_something" != 1
+ then
+ printf "\tNo translations found\n"
+ else
+ ts_found_something=""
+ ts_found="$ts_found $file"
+ fi
+
+ # Only used for debugging purposes
+ test "${I18N_STATS}" = 1 && cd "${WORKDIR}/i18n"
+
+ printf "Completed [$file]\n\n\n"
+ done
+
+ qt_dirs="apps bin etc lib pics plugins share sounds"
+
+ for dir in $qt_dirs
+ do
+ dir_="$dir_ ${palmtopdir}/$dir "
+ done
+
+
+ # If we don't adjust FILES to exclude the i18n directory, we will end up with
+ # _lots_ of empty i18n/$lang directories in the original .ipk.
+ if (echo "${FILES}" | egrep "${palmtopdir}/? |${palmtopdir}/?$") &>/dev/null
+ then
+ echo "NOTE: FILES was set to ${palmtopdir} which would include the i18n directory"
+ printf "\n\nI'll remove ${palmtopdir} from FILES and replace it with all directories\n"
+ echo "below QtPalmtop, except i18n ($qt_dirs). See classes/opie_i18n.oeclass for details"
+
+ # Removes /opt/QtPalmtop from FILES but keeps /opt/QtPalmtop/$some_dir
+ FILES="`echo "$FILES"| sed "s#${palmtopdir}[/]\?\$\|${palmtopdir}[/]\? ##"`"
+
+ echo "${PN}#$FILES $dir_" >> "${WORKDIR}/FILES.tmp"
+ fi
+
+ # This is the common case for OPIE apps which are installed by opie.oeclass magic
+ if test -z "${FILES}"
+ then
+ echo "NOTE:"
+ printf "Since FILES is empty, i'll add all directories below ${palmtopdir} to it,\nexcluding i18n: ( $qt_dirs )\n"
+ echo "${PN}#$FILES $dir_" >> "${WORKDIR}/FILES.tmp"
+ fi
+
+ if ! test -e "${WORKDIR}/PACKAGES.tmp" -a "${I18N_STATS}" = 1
+ then
+ echo "No translations for package [${PN}]" >> /tmp/oe-i18n-missing.log
+ else
+ echo "Using [$ts_found ] for package [${PN}]" >> /tmp/oe-i18n.log
+ fi
+
+ # While this might not be very elegant, it safes a _ton_ of space (~30Mb) for
+ # each opie package.
+ for file in $(ls */*.ts | egrep -v "`echo "$ts_found"| sed "s/^\ //;s/\ /\|/"`")
+ do
+ rm "$file"
+ done
+
+ return 0
+}
+
+addtask build_opie_i18n before do_compile
+addtask build_opie_i18n_data after do_build_opie_i18n before do_compile
diff --git a/classes/palmtop.bbclass b/classes/palmtop.bbclass
new file mode 100644
index 0000000..b4ee62c
--- /dev/null
+++ b/classes/palmtop.bbclass
@@ -0,0 +1,26 @@
+# this build class sets up qmake variables to
+# * build using the Qt Windowing System (QWS)
+# * use qt
+# * link against supc++ instead of stdc++
+# * use threads, if requested via PALMTOP_USE_MULTITHREADED_QT = "yes"
+# inherit this class to build programs against libqpe
+# inherit opie if you want to build programs against libopie2
+# don't override EXTRA_QMAKEVARS_POST, if you use inherit this class
+
+inherit qmake
+
+# special case for DISTRO = sharprom
+CPP_SUPPORT_LIB = "LIBS-=-lstdc++ LIBS+=-lsupc++"
+CPP_SUPPORT_LIB_sharprom-compatible = "LIBS+=-lstdc++"
+EXTRA_QMAKEVARS_POST += "DEFINES+=QWS CONFIG+=qt ${CPP_SUPPORT_LIB}"
+EXTRA_QMAKEVARS_POST += '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "CONFIG+=thread", "CONFIG-=thread",d)}'
+EXTRA_QMAKEVARS_POST += "${@["LIBS+=-lqpe ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}"
+DEPENDS_prepend = "${@["virtual/libqpe1 uicmoc-native ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}"
+QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte", d)}'
+EXTRA_QMAKEVARS_POST += " DEFINES+=OPIE_BINDIR='\"${bindir}\"' DEFINES+=OPIE_LIBDIR='\"${libdir}/opie/lib\"' DEFINES+=OPIE_QTDIR='\"${libdir}/opie\"' "
+
+PACKAGES = "${PN}-dbg ${PN}-dev ${PN} ${PN}-doc ${PN}-locale"
+FILES_${PN} += " ${palmtopdir} "
+FILES_${PN}-dbg += " ${palmtopdir}/lib/.debug \
+ ${palmtopdir}/bin/.debug \
+ ${palmtopdir}/plugins/*/.debug "
diff --git a/classes/qmake.bbclass b/classes/qmake.bbclass
new file mode 100644
index 0000000..40fc739
--- /dev/null
+++ b/classes/qmake.bbclass
@@ -0,0 +1,15 @@
+inherit qmake_base
+
+DEPENDS_prepend = "qmake-native "
+
+export QMAKESPEC
+export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic"
+export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc"
+export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake"
+export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}"
+export OE_QMAKE_LINK="${CCLD}"
+export OE_QMAKE_INCDIR_QT="${STAGING_INCDIR}/qte"
+export OE_QMAKE_LIBDIR_QT="${STAGING_LIBDIR}"
+export OE_QMAKE_LIBS_QT="qte"
+export OE_QMAKE_LIBS_X11=""
+
diff --git a/classes/qmake_base.bbclass b/classes/qmake_base.bbclass
new file mode 100644
index 0000000..cc3297c
--- /dev/null
+++ b/classes/qmake_base.bbclass
@@ -0,0 +1,105 @@
+
+OE_QMAKE_PLATFORM = "${TARGET_OS}-oe-g++"
+QMAKESPEC = "${QMAKE_MKSPEC_PATH}/${OE_QMAKE_PLATFORM}"
+
+# We override this completely to eliminate the -e normally passed in
+EXTRA_OEMAKE = ' MAKEFLAGS= '
+
+export OE_QMAKE_CC="${CC}"
+export OE_QMAKE_CFLAGS="${CFLAGS}"
+export OE_QMAKE_CXX="${CXX}"
+export OE_QMAKE_LDFLAGS="${LDFLAGS}"
+export OE_QMAKE_AR="${AR}"
+export OE_QMAKE_STRIP="echo"
+export OE_QMAKE_RPATH="-Wl,-rpath-link,"
+
+# do not export STRIP to the environment
+STRIP[unexport] = "1"
+
+# default to qte2 via bb.conf, inherit qt3x11 to configure for qt3x11
+
+oe_qmake_mkspecs () {
+ mkdir -p mkspecs/${OE_QMAKE_PLATFORM}
+ for f in ${QMAKE_MKSPEC_PATH}/${OE_QMAKE_PLATFORM}/*; do
+ if [ -L $f ]; then
+ lnk=`readlink $f`
+ if [ -f mkspecs/${OE_QMAKE_PLATFORM}/$lnk ]; then
+ ln -s $lnk mkspecs/${OE_QMAKE_PLATFORM}/`basename $f`
+ else
+ cp $f mkspecs/${OE_QMAKE_PLATFORM}/
+ fi
+ else
+ cp $f mkspecs/${OE_QMAKE_PLATFORM}/
+ fi
+ done
+}
+
+do_generate_qt_config_file() {
+ export QT_CONF_PATH=${WORKDIR}/qt.conf
+ cat > ${WORKDIR}/qt.conf <<EOF
+[Paths]
+Prefix = ${STAGING_DIR}
+Binaries = ${BUILD_SYS}${bindir_native}
+Headers = ${BASEPKG_HOST_SYS}${layout_prefix}/include/qt4
+Plugins = ${BASEPKG_HOST_SYS}${layout_prefix}/lib/qt4/plugins/
+Mkspecs = ${BASEPKG_HOST_SYS}${layout_prefix}/share/qt4/mkspecs/
+EOF
+}
+
+addtask generate_qt_config_file after do_patch before do_configure
+
+qmake_base_do_configure() {
+ case ${QMAKESPEC} in
+ *linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++|*linux-uclibceabi-oe-g++|*linux-gnuspe-oe-g++|*linux-uclibcspe-oe-g++)
+ ;;
+ *-oe-g++)
+ die Unsupported target ${TARGET_OS} for oe-g++ qmake spec
+ ;;
+ *)
+ oenote Searching for qmake spec file
+ paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-${TARGET_ARCH}-g++"
+ paths="${QMAKE_MKSPEC_PATH}/${TARGET_OS}-g++ $paths"
+
+ if (echo "${TARGET_ARCH}"|grep -q 'i.86'); then
+ paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-x86-g++ $paths"
+ fi
+ for i in $paths; do
+ if test -e $i; then
+ export QMAKESPEC=$i
+ break
+ fi
+ done
+ ;;
+ esac
+
+ oenote "using qmake spec in ${QMAKESPEC}, using profiles '${QMAKE_PROFILES}'"
+
+ if [ -z "${QMAKE_PROFILES}" ]; then
+ PROFILES="`ls ${S}/*.pro`"
+ else
+ PROFILES="${QMAKE_PROFILES}"
+ fi
+
+ if [ -z "$PROFILES" ]; then
+ die "QMAKE_PROFILES not set and no profiles found in $PWD"
+ fi
+
+ if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then
+ AFTER="-after"
+ QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}"
+ oenote "qmake postvar substitution: ${EXTRA_QMAKEVARS_POST}"
+ fi
+
+ if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then
+ QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}"
+ oenote "qmake prevar substitution: ${EXTRA_QMAKEVARS_PRE}"
+ fi
+
+#oenote "Calling '${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST'"
+ unset QMAKESPEC || true
+ ${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling ${OE_QMAKE_QMAKE} on $PROFILES"
+}
+
+EXPORT_FUNCTIONS do_configure
+
+addtask configure after do_unpack do_patch before do_compile
diff --git a/classes/qt3e.bbclass b/classes/qt3e.bbclass
new file mode 100644
index 0000000..d3d4a14
--- /dev/null
+++ b/classes/qt3e.bbclass
@@ -0,0 +1,11 @@
+#
+# override variables set by qmake_base to compile Qt/X11 apps
+#
+export QTDIR="${STAGING_DIR_HOST}/qte3"
+export QTEDIR="${STAGING_DIR_HOST}/qte3"
+export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic3"
+export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc3"
+export OE_QMAKE_CXXFLAGS="${CXXFLAGS} "
+export OE_QMAKE_INCDIR_QT="${STAGING_INCDIR}/qte3/include"
+export OE_QMAKE_LIBDIR_QT="${STAGING_LIBDIR}/qte3/lib"
+export OE_QMAKE_LIBS_QT="qte"
diff --git a/classes/sdl.bbclass b/classes/sdl.bbclass
new file mode 100644
index 0000000..dc4cd8f
--- /dev/null
+++ b/classes/sdl.bbclass
@@ -0,0 +1,46 @@
+#
+# (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+DEPENDS += "virtual/libsdl libsdl-mixer libsdl-image"
+
+APPDESKTOP ?= "${WORKDIR}/${PN}.desktop"
+APPNAME ?= "${PN}"
+APPIMAGE ?= "${WORKDIR}/${PN}.png"
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+sdl_do_sdl_install() {
+ install -d ${D}${datadir}/applications
+ install -d ${D}${datadir}/pixmaps
+
+ install -m 0644 ${APPIMAGE} ${D}${datadir}/pixmaps/${PN}.png
+
+ if [ -e "${APPDESKTOP}" ]
+ then
+ echo ${APPDESKTOP} present, using it...
+ install -m 0644 ${APPDESKTOP} ${D}${datadir}/applications/
+ else
+ echo ${APPDESKTOP} not present, creating one on-the-fly...
+ cat >${D}${datadir}/applications/${PN}.desktop <<EOF
+[Desktop Entry]
+Name=${PN}
+Comment=${DESCRIPTION}
+Note=Auto Generated by OE SDL bbclass
+Exec=${APPNAME}
+Icon=${PN}.png
+Type=Application
+Categories=Games
+EOF
+ fi
+}
+
+EXPORT_FUNCTIONS do_sdl_install
+addtask sdl_install after do_install before do_package
+
+#SECTION = "x11/games"
+#SECTION_${PN}-opie = "opie/games"
+
+#PACKAGES += "${PN}-opie"
+#RDEPENDS_${PN}-opie += "${PN}"
+#FILES_${PN}-opie = "${palmtopdir}"
diff --git a/conf/distro/include/preferred-opie-git-versions.inc b/conf/distro/include/preferred-opie-git-versions.inc
new file mode 100644
index 0000000..3470866
--- /dev/null
+++ b/conf/distro/include/preferred-opie-git-versions.inc
@@ -0,0 +1,215 @@
+#
+# Default versions
+QTE_VERSION ?= "2.3.10"
+PALMTOP_USE_MULTITHREADED_QT ?= "yes"
+
+OPIE_SRCREV ?= "8c3beef263bc9c34443eacfc821e99813e17554f"
+
+OPIE_VERSION = "1.2.5+gitr${OPIE_SRCREV}"
+OPIE_GIT_PV = "${OPIE_VERSION}"
+
+
+#
+#
+# Opie libraries
+#
+PREFERRED_PROVIDER_virtual/libqte2 ?= '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte", d)}'
+PREFERRED_PROVIDER_virtual/libqpe1 ?= "libqpe-opie"
+PREFERRED_VERSION_qte-mt ?= "${QTE_VERSION}"
+PREFERRED_VERSION_qte ?= "${QTE_VERSION}"
+SRCREV_pn-libopie2 ?= "${OPIE_SRCREV}"
+SRCREV_pn-libopieobex0 ?= "${OPIE_SRCREV}"
+SRCREV_pn-libopietooth1 ?= "${OPIE_SRCREV}"
+SRCREV_pn-libqpe-opie ?= "${OPIE_SRCREV}"
+SRCREV_pn-libqtaux2 ?= "${OPIE_SRCREV}"
+SRCREV_pn-libmailwrapper ?= "${OPIE_SRCREV}"
+#
+# Opie applications
+#
+SRCREV_pn-opie-aboutapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-addressbook ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-advancedfm ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-alarm ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-appearance ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-aqpkg ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-autorotateapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-backgammon ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-backup ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-bartender ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-batteryapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-bluepin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-bluetoothapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-bluetoothmanager ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-bounce ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-brightnessapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-button-settings ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-buzzword ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-calculator ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-calibrate ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-camera ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-cardapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-checkbook ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-citytime ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-clipboardapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-clockapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-clock ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-confeditor ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-console ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-dagger ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-dasher ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-datebook ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-datebook-chrisholidayplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-datebook-nationalholidayplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-datebook-birthdayplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-deco-flat ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-deco-liquid ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-deco-polished ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-doctab ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-drawpad ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-dvorak ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-embeddedkonsole ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-euroconv ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-examples-python ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-examples ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-eye ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-fifteen ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-formatter ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-freetype ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-ftplib ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-ftp ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-go ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-gutenbrowser ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-handwriting ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-helpbrowser ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-help-en ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-homeapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-i18n ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-lrelease-native ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-lupdate-native ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-icon-reload ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-irc ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-irdaapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-jumpx ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-kbill ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-kcheckers ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-keyboard ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-keypebble ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-keytabs ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-keyview ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-kjumpx ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-kpacman ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-language ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-launcher-settings ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-libqrsync ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-light-and-power ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-lockapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-login ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-logoutapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mailapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mail ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer1-libmadplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer1-libmodplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer1-libtremorplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer1-libwavplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer1-libwavplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer1-core ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer2 ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer2-skin-default ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer2-skin-default-landscape ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer2-skin-pod ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediaplayer2-skin-techno ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mediummount ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-memoryapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mindbreaker ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-minesweep ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-mobilemsg ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-multikeyapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-multikey ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-networkapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-networksettings ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-notes ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-notesapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-odict ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-osearch ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-oxygen ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-oyatzee ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-packagemanager ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-parashoot ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-performance ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-pickboard ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-pics ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-pimconverter ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-powerchord ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-pyquicklaunchapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-qasteroids ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-qcop ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-quicklauncher ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-qss ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-rdesktop ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-reader ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-recorder ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-remote ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-restartapplet2 ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-restartapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-restartapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-rotateapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-screenshotapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-search ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-security ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-securityplugin-blueping ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-securityplugin-dummy ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-securityplugin-notice ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-securityplugin-pin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-sfcave ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-sheet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-sh ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-showimg ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-snake ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-solitaire ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-sshkeys ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-style-flat ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-style-fresh ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-style-liquid ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-style-metal ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-style-phase ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-style-web ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-sounds ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-stumbler ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-suspendapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-symlinker ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-sysinfo ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-systemtime ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-tableviewer ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-tabmanager ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-taskbar-images ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-taskbar ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-tetrix ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-textedit ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-theme ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-tictac ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-tinykate ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-addressbookplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-datebookplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-fortuneplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-mailplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-stocktickerplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-todolistplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-today-weatherplugin ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-todo ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-tonleiter ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-unikeyboard ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-usermanager ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-vmemo ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-vmemo-settings ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-volumeapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-vtapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-wellenreiter ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-wirelessapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-wordgame ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-write ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-zkbapplet ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-zlines ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-zsafe ?= "${OPIE_SRCREV}"
+SRCREV_pn-opie-zsame ?= "${OPIE_SRCREV}"
+PREFERRED_VERSION_konqueror-embedded = "20070316"
diff --git a/conf/distro/include/preferred-opie-versions-1.2.5.inc b/conf/distro/include/preferred-opie-versions-1.2.5.inc
new file mode 100644
index 0000000..c345d2f
--- /dev/null
+++ b/conf/distro/include/preferred-opie-versions-1.2.5.inc
@@ -0,0 +1,210 @@
+#
+# Default versions
+QTE_VERSION ?= "2.3.10"
+OPIE_VERSION ?= "1.2.5"
+PALMTOP_USE_MULTITHREADED_QT ?= "yes"
+
+#
+#
+# Opie libraries
+#
+PREFERRED_PROVIDER_virtual/libqte2 = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte", d)}'
+PREFERRED_PROVIDER_virtual/libqpe1 = "libqpe-opie"
+PREFERRED_VERSION_qte-mt = "${QTE_VERSION}"
+PREFERRED_VERSION_qte = "${QTE_VERSION}"
+PREFERRED_VERSION_libopie2 ?= "${OPIE_VERSION}"
+PREFERRED_VERSION_libopieobex0 = "${OPIE_VERSION}"
+PREFERRED_VERSION_libopietooth1 = "${OPIE_VERSION}"
+PREFERRED_VERSION_libqpe-opie = "${OPIE_VERSION}"
+PREFERRED_VERSION_libqtaux2 = "${OPIE_VERSION}"
+PREFERRED_VERSION_libmailwrapper = "${OPIE_VERSION}"
+#
+# Opie applications
+#
+PREFERRED_VERSION_opie-aboutapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-addressbook = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-advancedfm = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-alarm = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-appearance = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-aqpkg = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-autorotateapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-backgammon = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-backup = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-bartender = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-batteryapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-bluepin ?= "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-bluetoothapplet ?= "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-bluetoothmanager ?= "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-bounce = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-brightnessapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-button-settings = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-buzzword = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-calculator = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-calibrate = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-camera = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-cardapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-checkbook = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-citytime = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-clipboardapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-clockapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-clock = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-confeditor = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-console = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-dagger = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-dasher = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-datebook = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-datebook-chrisholidayplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-datebook-nationalholidayplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-datebook-birthdayplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-deco-flat = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-deco-liquid = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-deco-polished = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-doctab = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-drawpad = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-dvorak = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-embeddedkonsole = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-euroconv = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-examples-python = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-examples = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-eye = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-fifteen = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-formatter = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-freetype = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-ftplib = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-ftp = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-go = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-gutenbrowser = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-handwriting = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-helpbrowser = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-help-en = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-homeapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-i18n = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-lrelease-native = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-lupdate-native = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-icon-reload = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-irc = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-irdaapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-jumpx = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-kbill = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-kcheckers = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-keyboard = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-keypebble = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-keytabs = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-keyview = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-kjumpx = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-kpacman = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-language = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-launcher-settings = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-libqrsync = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-light-and-power = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-lockapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-login = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-logoutapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mailapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mail = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer1-libmadplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer1-libmodplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer1-libtremorplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer1-libwavplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer1-core = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer1 = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer2 = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer2-skin-default = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer2-skin-default-landscape = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer2-skin-pod = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediaplayer2-skin-techno = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mediummount = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-memoryapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mindbreaker = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-minesweep = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-mobilemsg = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-multikeyapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-multikey = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-networkapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-networksettings = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-notes = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-notesapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-odict = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-osearch = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-oxygen = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-oyatzee = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-packagemanager = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-parashoot = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-performance = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-pickboard = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-pics = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-pimconverter = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-powerchord = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-pyquicklaunchapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-qasteroids = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-qcop = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-quicklauncher = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-qss = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-rdesktop = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-reader = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-recorder = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-remote = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-restartapplet2 = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-restartapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-restartapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-rotateapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-screenshotapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-search = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-security = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-securityplugin-blueping = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-securityplugin-notice = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-securityplugin-pin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sfcave = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sheet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sh = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-showimg = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-snake = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-solitaire = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sshkeys = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-style-flat = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-style-fresh = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-style-liquid = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-style-metal = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-style-phase = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-style-web = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sounds = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-suspendapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-symlinker = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sysinfo = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-systemtime = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-tableviewer = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-tabmanager = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-taskbar = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-taskbar-images = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-tetrix = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-textedit = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-theme = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-tictac = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-tinykate = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-addressbookplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-datebookplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-fortuneplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-mailplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-stocktickerplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-todolistplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-today-weatherplugin = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-todo = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-tonleiter = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-unikeyboard = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-usermanager = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-vmemo = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-vmemo-settings = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-volumeapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-vtapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-wellenreiter = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-wirelessapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-wordgame = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-write = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-zkbapplet = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-zlines = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-zsafe = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-zsame = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-sh-snes = "${OPIE_VERSION}"
+PREFERRED_VERSION_opie-stumbler = "${OPIE_VERSION}"
+PREFERRED_VERSION_konqueror-embedded = "20070316"
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..dcba5da
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,13 @@
+# Layer configuration for meta-opie layer
+# Copyright 2011 Intel Corporation
+
+# We have a conf and classes directory, prepend to BBPATH to prefer our versions
+BBPATH := "${LAYERDIR}:${BBPATH}"
+
+# We have a recipes directory, add to BBFILES
+BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "meta-opie"
+BBFILE_PATTERN_meta-opie := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-opie = "8"
+
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch
new file mode 100644
index 0000000..56ffe46
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch
@@ -0,0 +1,51 @@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:58:19.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:58:27.000000000 +0100
+@@ -109,6 +109,7 @@
+ MACHINE_SHARP_SLC760,
+ MACHINE_SHARP_SLC860,
+ MACHINE_SHARP_SL6000,
++ MACHINE_SHARP_SLC1000,
+ MACHINE_IPAQ,
+ MACHINE_MAX
+ } machine_t;
+@@ -123,6 +124,7 @@
+ { "Sharp", "SL-C760", 0 },
+ { "Sharp", "SL-C860", 0 },
+ { "Sharp", "SL-6000", 0 },
++ { "Sharp", "SL-C1000", 0 },
+ { "HP", "HP IPAQ", 0 },
+ };
+
+@@ -428,6 +430,8 @@
+ machine = MACHINE_SHARP_SLC760;
+ else if (strstr(buf, "SHARP Boxer") != NULL)
+ machine = MACHINE_SHARP_SLC860;
++ else if (strstr(buf, "SHARP Akita") != NULL)
++ machine = MACHINE_SHARP_SLC1000;
+ else if ( ODevice::inst ( )-> series ( ) == Model_iPAQ )
+ machine = MACHINE_IPAQ;
+ else
+@@ -522,17 +526,18 @@
+ if (machine == MACHINE_SHARP_SLC700 ||
+ machine == MACHINE_SHARP_SLC750 ||
+ machine == MACHINE_SHARP_SLC760 ||
+- machine == MACHINE_SHARP_SLC860 || // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
+- machine == MACHINE_SHARP_SL6000 ) { // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
++ machine == MACHINE_SHARP_SLC860 ||
++ machine == MACHINE_SHARP_SL6000 ||
++ machine == MACHINE_SHARP_SLC1000 ) {
+ is_VGA_machine = true;
+ }else {
+ is_VGA_machine = false;
+ }
+
+- // qte ¤Ç¤Î²óž³ÑÅÙ¤ò¼èÆÀ
++ // qte
+ QT_GetQteServerSpec(_this, &qteRotation, &isQteQvga);
+
+- // SL-C700 ¤Î¥¹¥¿¥¤¥ë
++ // SL-C700
+ bool isInputStyle = false;
+ if (is_VGA_machine) {
+ int status = system("/home/QtPalmtop/bin/chkhinge");
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/acinclude.m4 b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/acinclude.m4
new file mode 100644
index 0000000..30597cc
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/acinclude.m4
@@ -0,0 +1,332 @@
+# Local macros for the SDL configure.in script
+
+dnl Function to link an architecture specific file
+dnl LINK_ARCH_SRC(source_dir, arch, source_file)
+AC_DEFUN([COPY_ARCH_SRC],
+[
+ old="$srcdir/$1/$2/$3"
+ new="$1/$3"
+ if test ! -d $1; then
+ echo "Creating directory $1"
+ mkdir -p $1
+ fi
+ echo "Copying $old -> $new"
+ cat >$new <<__EOF__
+/* WARNING: This file was automatically generated!
+ * Original: $old
+ */
+__EOF__
+ cat >>$new <$old
+])
+##############################################################################
+dnl Configure Paths for Alsa
+dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org>
+dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
+dnl Jaroslav Kysela <perex@suse.cz>
+dnl Last modification: alsa.m4,v 1.23 2004/01/16 18:14:22 tiwai Exp
+dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate.
+dnl enables arguments --with-alsa-prefix=
+dnl --with-alsa-enc-prefix=
+dnl --disable-alsatest
+dnl
+dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified,
+dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result.
+dnl
+AC_DEFUN([AM_PATH_ALSA],
+[dnl Save the original CFLAGS, LDFLAGS, and LIBS
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+dnl
+dnl Get the cflags and libraries for alsa
+dnl
+AC_ARG_WITH(alsa-prefix,
+[ --with-alsa-prefix=PFX Prefix where Alsa library is installed(optional)],
+[alsa_prefix="$withval"], [alsa_prefix=""])
+AC_ARG_WITH(alsa-inc-prefix,
+[ --with-alsa-inc-prefix=PFX Prefix where include libraries are (optional)],
+[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
+
+dnl FIXME: this is not yet implemented
+AC_ARG_ENABLE(alsatest,
+[ --disable-alsatest Do not try to compile and run a test Alsa program],
+[enable_alsatest="$enableval"],
+[enable_alsatest=yes])
+
+dnl Add any special include directories
+AC_MSG_CHECKING(for ALSA CFLAGS)
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+AC_MSG_RESULT($ALSA_CFLAGS)
+
+dnl add any special lib dirs
+AC_MSG_CHECKING(for ALSA LDFLAGS)
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+dnl add the alsa library
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/-lpthread//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+AC_MSG_RESULT($ALSA_LIBS)
+
+dnl Check for a working version of libasound that is of the right version.
+min_alsa_version=ifelse([$1], ,0.1.1,$1)
+AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+AC_LANG_SAVE
+AC_LANG_C
+AC_TRY_COMPILE([
+#include <alsa/asoundlib.h>
+], [
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+],
+ [AC_MSG_RESULT(found.)],
+ [AC_MSG_RESULT(not present.)
+ ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
+if test "x$enable_alsatest" = "xyes"; then
+AC_CHECK_LIB([asound], [snd_ctl_open],,
+ [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
+ alsa_found=no]
+)
+fi
+if test "x$alsa_found" = "xyes" ; then
+ ifelse([$2], , :, [$2])
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ ifelse([$3], , :, [$3])
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+dnl That should be it. Now just export out symbols:
+AC_SUBST(ALSA_CFLAGS)
+AC_SUBST(ALSA_LIBS)
+])
+
+#
+# --- esd.m4 ---
+#
+# Configure paths for ESD
+# Manish Singh 98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
+dnl
+AC_DEFUN([AM_PATH_ESD],
+[dnl
+dnl Get the cflags and libraries from the esd-config script
+dnl
+AC_ARG_WITH(esd-prefix,[ --with-esd-prefix=PFX Prefix where ESD is installed (optional)],
+ esd_prefix="$withval", esd_prefix="")
+AC_ARG_WITH(esd-exec-prefix,[ --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
+ esd_exec_prefix="$withval", esd_exec_prefix="")
+AC_ARG_ENABLE(esdtest, [ --disable-esdtest Do not try to compile and run a test ESD program],
+ , enable_esdtest=yes)
+
+ if test x$esd_exec_prefix != x ; then
+ esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
+ if test x${ESD_CONFIG+set} != xset ; then
+ ESD_CONFIG=$esd_exec_prefix/bin/esd-config
+ fi
+ fi
+ if test x$esd_prefix != x ; then
+ esd_args="$esd_args --prefix=$esd_prefix"
+ if test x${ESD_CONFIG+set} != xset ; then
+ ESD_CONFIG=$esd_prefix/bin/esd-config
+ fi
+ fi
+
+ AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+ min_esd_version=ifelse([$1], ,0.2.7,$1)
+ AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
+ no_esd=""
+ if test "$ESD_CONFIG" = "no" ; then
+ no_esd=yes
+ else
+ ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
+ ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
+
+ esd_major_version=`$ESD_CONFIG $esd_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ esd_minor_version=`$ESD_CONFIG $esd_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_esdtest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $ESD_CFLAGS"
+ LIBS="$LIBS $ESD_LIBS"
+dnl
+dnl Now check if the installed ESD is sufficiently new. (Also sanity
+dnl checks the results of esd-config to some extent
+dnl
+ rm -f conf.esdtest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <esd.h>
+
+char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.esdtest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = my_strdup("$min_esd_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_esd_version");
+ exit(1);
+ }
+
+ if (($esd_major_version > major) ||
+ (($esd_major_version == major) && ($esd_minor_version > minor)) ||
+ (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
+ printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
+ printf("*** to point to the correct copy of esd-config, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_esd" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$ESD_CONFIG" = "no" ; then
+ echo "*** The esd-config script installed by ESD could not be found"
+ echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the ESD_CONFIG environment variable to the"
+ echo "*** full path to esd-config."
+ else
+ if test -f conf.esdtest ; then
+ :
+ else
+ echo "*** Could not run ESD test program, checking why..."
+ CFLAGS="$CFLAGS $ESD_CFLAGS"
+ LIBS="$LIBS $ESD_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <esd.h>
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding ESD or finding the wrong"
+ echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means ESD was incorrectly installed"
+ echo "*** or that you have moved ESD since it was installed. In the latter case, you"
+ echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ ESD_CFLAGS=""
+ ESD_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(ESD_CFLAGS)
+ AC_SUBST(ESD_LIBS)
+ rm -f conf.esdtest
+])
+
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch
new file mode 100644
index 0000000..d7c5614
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch
@@ -0,0 +1,2054 @@
+diff -Naur SDL-1.2.9-orig/src/video/fbcon/SDL_fbevents.c SDL-1.2.9/src/video/fbcon/SDL_fbevents.c
+--- SDL-1.2.9-orig/src/video/fbcon/SDL_fbevents.c 2005-01-04 20:04:14.000000000 +0100
++++ SDL-1.2.9/src/video/fbcon/SDL_fbevents.c 2007-03-12 20:54:14.000000000 +0100
+@@ -60,7 +60,13 @@
+ #ifndef GPM_NODE_FIFO
+ #define GPM_NODE_FIFO "/dev/gpmdata"
+ #endif
++#define POINTERCAL "/etc/pointercal"
+
++static struct SDL_cal {
++ long ok;
++ long a, b, c, d, e, f, s;
++ long rotate;
++} cal = { 0 };
+
+ /* The translation tables from a console scancode to a SDL keysym */
+ #define NUM_VGAKEYMAPS (1<<KG_CAPSSHIFT)
+@@ -317,6 +323,7 @@
+ MOUSE_MS,
+ MOUSE_BM,
+ MOUSE_ELO,
++ TS_SLC7X0,
+ NUM_MOUSE_DRVS
+ } mouse_drv = MOUSE_NONE;
+
+@@ -500,6 +507,9 @@
+ mousedev = getenv("SDL_MOUSEDEV");
+ mouse_fd = -1;
+
++ const char *sdl_rot_flag;
++ sdl_rot_flag = getenv("SDL_FBROT");
++
+ /* ELO TOUCHSCREEN SUPPORT */
+
+ if( (mousedrv != NULL) && (strcmp(mousedrv, "ELO") == 0) ) {
+@@ -601,9 +611,39 @@
+ mouse_drv = MOUSE_MS;
+ }
+ }
++ /* Default to a SLC7X0 touch screen */
++ if ( mouse_fd < 0 ) {
++ mousedev = "/dev/ts";
++ mouse_fd = open(mousedev, O_RDONLY, 0);
++ if ( mouse_fd >= 0 ) {
++ FILE *pcal;
++ cal.ok = 0;
++ pcal = fopen(POINTERCAL, "r");
++ if(pcal == NULL){
++ fprintf(stderr, "Warning: cannot open " POINTERCAL ".\n");
++ }else{
++ int n;
++ n = fscanf(pcal, "%d %d %d %d %d %d %d",
++ &cal.a, &cal.b, &cal.c, &cal.d, &cal.e, &cal.f, &cal.s);
++ if(n != 7){
++ fprintf(stderr, "Warning: " POINTERCAL " is unknown format.\n");
++ }else{
++ cal.ok = 1;
++ }
++ fclose(pcal);
++ }
++ if ( sdl_rot_flag == NULL ) {
++ cal.rotate = 0;
++ } else {
++ cal.rotate = atoi(sdl_rot_flag);
++ }
++ mouse_drv = TS_SLC7X0;
++ }
++ }
+ if ( mouse_fd < 0 ) {
+ mouse_drv = MOUSE_NONE;
+ }
++
+ return(mouse_fd);
+ }
+
+@@ -678,6 +718,10 @@
+ packetsize = ELO_PACKET_SIZE;
+ relative = 0;
+ break;
++ case TS_SLC7X0:
++ packetsize = 8;
++ relative = 0;
++ break;
+ case NUM_MOUSE_DRVS:
+ /* Uh oh.. */
+ packetsize = 0;
+@@ -810,6 +854,25 @@
+ */
+
+ case MOUSE_ELO:
++ case TS_SLC7X0:
++ /* Get current mouse state */
++ button = ((mousebuf[i+1] << 8)+mousebuf[i])/500;
++ dx = (mousebuf[i+3] << 8)+mousebuf[i+2];
++ dy = (mousebuf[i+5] << 8)+mousebuf[i+4];
++ if(cal.ok){
++ long X, Y;
++ X = (cal.a * dx + cal.b * dy + cal.c) / cal.s;
++ Y = (cal.d * dx + cal.e * dy + cal.f) / cal.s;
++ dx = X;
++ dy = Y;
++ }
++ if(cal.rotate == 3){
++ int tmp;
++ tmp=dx;
++ dx = dy;
++ dy = 480-tmp;
++ }
++ break;
+ case NUM_MOUSE_DRVS:
+ /* Uh oh.. */
+ dx = 0;
+diff -Naur SDL-1.2.9-orig/src/video/fbcon/SDL_fbvideo.c SDL-1.2.9/src/video/fbcon/SDL_fbvideo.c
+--- SDL-1.2.9-orig/src/video/fbcon/SDL_fbvideo.c 2005-02-12 19:03:54.000000000 +0100
++++ SDL-1.2.9/src/video/fbcon/SDL_fbvideo.c 2007-03-12 20:54:14.000000000 +0100
+@@ -51,7 +51,7 @@
+ #include "SDL_fbmatrox.h"
+ #include "SDL_fbriva.h"
+
+-
++/* #define FBCON_DEBUG 1 */
+ #if defined(i386) && defined(FB_TYPE_VGA_PLANES)
+ #define VGA16_FBCON_SUPPORT
+ #ifndef FB_AUX_VGA_PLANES_VGA4
+@@ -76,9 +76,11 @@
+ { 0, 0, 720, 576 }, /* PAL */
+ { 0, 0, 720, 480 }, /* NTSC */
+ { 0, 0, 640, 480 }, /* 16 bpp: 0x111, or 273 */
++ { 0, 0, 480, 640 },
+ { 0, 0, 640, 400 }, /* 8 bpp: 0x100, or 256 */
+ { 0, 0, 512, 384 },
+ { 0, 0, 320, 240 },
++ { 0, 0, 240, 320 },
+ { 0, 0, 320, 200 }
+ };
+ static const struct {
+@@ -112,9 +114,11 @@
+ */
+ { 320, 200, 79440, 16, 16, 20, 4, 48, 1, 0, 2 }, /* 70 Hz */
+ { 320, 240, 63492, 16, 16, 16, 4, 48, 2, 0, 2 }, /* 72 Hz */
++ { 240, 320, 63492, 16, 16, 16, 4, 48, 3, 0, 2 }, /* 72 Hz */
+ { 512, 384, 49603, 48, 16, 16, 1, 64, 3, 0, 0 }, /* 78 Hz */
+ { 640, 400, 31746, 96, 32, 41, 1, 64, 3, 2, 0 }, /* 85 Hz */
+ { 640, 480, 31746, 120, 16, 16, 1, 64, 3, 0, 0 }, /* 75 Hz */
++ { 480, 640, 31746, 120, 16, 16, 1, 64, 4, 0, 0 }, /* 75 Hz */
+ { 768, 576, 26101, 144, 16, 28, 6, 112, 4, 0, 0 }, /* 60 Hz */
+ { 800, 600, 20000, 64, 56, 23, 37, 120, 6, 3, 0 }, /* 72 Hz */
+ { 960, 720, 17686, 144, 24, 28, 8, 112, 4, 0, 0 }, /* 60 Hz */
+@@ -152,6 +156,10 @@
+ struct fb_var_screeninfo *vinfo);
+ static void FB_RestorePalette(_THIS);
+
++static char *console_fd_buf;
++static char *mapped_mem_fb;
++static int rotation_flag;
++
+ /* FB driver bootstrap functions */
+
+ static int FB_Available(void)
+@@ -241,18 +249,30 @@
+
+ mode_okay = 0;
+ vinfo->bits_per_pixel = (index+1)*8;
+- vinfo->xres = *w;
+- vinfo->xres_virtual = *w;
+- vinfo->yres = *h;
+- vinfo->yres_virtual = *h;
++ if ((rotation_flag == 0) || (rotation_flag == 2)) {
++ vinfo->xres = *w;
++ vinfo->xres_virtual = *w;
++ vinfo->yres = *h;
++ vinfo->yres_virtual = *h;
++ } else {
++ vinfo->xres = *h;
++ vinfo->xres_virtual = *h;
++ vinfo->yres = *w;
++ vinfo->yres_virtual = *w;
++ }
+ vinfo->activate = FB_ACTIVATE_TEST;
+ if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, vinfo) == 0 ) {
+ #ifdef FBCON_DEBUG
+ fprintf(stderr, "Checked mode %dx%d at %d bpp, got mode %dx%d at %d bpp\n", *w, *h, (index+1)*8, vinfo->xres, vinfo->yres, vinfo->bits_per_pixel);
+ #endif
+ if ( (((vinfo->bits_per_pixel+7)/8)-1) == index ) {
+- *w = vinfo->xres;
+- *h = vinfo->yres;
++ if ((rotation_flag == 0) || (rotation_flag == 2)) {
++ *w = vinfo->xres;
++ *h = vinfo->yres;
++ } else {
++ *h = vinfo->xres;
++ *w = vinfo->yres;
++ }
+ mode_okay = 1;
+ }
+ }
+@@ -332,6 +352,7 @@
+ unsigned int current_w;
+ unsigned int current_h;
+ const char *SDL_fbdev;
++ const char *SDL_rot_flag;
+
+ /* Initialize the library */
+ SDL_fbdev = getenv("SDL_FBDEV");
+@@ -344,6 +365,14 @@
+ return(-1);
+ }
+
++ SDL_rot_flag = getenv("SDL_FBROT");
++ if ( SDL_rot_flag == NULL ) {
++ rotation_flag = 0;
++ } else {
++ rotation_flag = atoi(SDL_rot_flag);
++ }
++
++
+ #ifndef DISABLE_THREADS
+ /* Create the hardware surface lock mutex */
+ hw_lock = SDL_CreateMutex();
+@@ -407,13 +436,33 @@
+ mapped_offset = (((long)finfo.smem_start) -
+ (((long)finfo.smem_start)&~(PAGE_SIZE-1)));
+ mapped_memlen = finfo.smem_len+mapped_offset;
+- mapped_mem = mmap(NULL, mapped_memlen,
+- PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
+- if ( mapped_mem == (char *)-1 ) {
+- SDL_SetError("Unable to memory map the video hardware");
+- mapped_mem = NULL;
+- FB_VideoQuit(this);
+- return(-1);
++ if (rotation_flag == 0) {
++ mapped_mem = mmap(NULL, mapped_memlen,
++ PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
++ if ( mapped_mem == (char *)-1 ) {
++ SDL_SetError("Unable to memory map the video hardware");
++ mapped_mem = NULL;
++ FB_VideoQuit(this);
++ return(-1);
++ }
++ } else {
++
++ console_fd_buf = (char *)malloc(640*480*2);
++
++ if (console_fd_buf == NULL){
++ SDL_SetError("Unable to memory for buffer");
++ return(-1);
++ }
++
++ mapped_mem_fb = mmap(NULL, mapped_memlen,
++ PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
++ if ( mapped_mem_fb == (char *)-1 ) {
++ SDL_SetError("Unable to memory map the video hardware");
++ mapped_mem_fb = NULL;
++ FB_VideoQuit(this);
++ return(-1);
++ }
++ mapped_mem = console_fd_buf;
+ }
+
+ /* Determine the current screen depth */
+@@ -555,6 +604,7 @@
+
+ /* Various screen update functions available */
+ static void FB_DirectUpdate(_THIS, int numrects, SDL_Rect *rects);
++static void FB_RotationUpdate(_THIS, int numrects, SDL_Rect *rects);
+ #ifdef VGA16_FBCON_SUPPORT
+ static void FB_VGA16Update(_THIS, int numrects, SDL_Rect *rects);
+ #endif
+@@ -725,7 +775,7 @@
+ Uint32 Bmask;
+ char *surfaces_mem;
+ int surfaces_len;
+-
++
+ /* Set the terminal into graphics mode */
+ if ( FB_EnterGraphicsMode(this) < 0 ) {
+ return(NULL);
+@@ -734,6 +784,8 @@
+ /* Restore the original palette */
+ FB_RestorePalette(this);
+
++ flags &= ~SDL_DOUBLEBUF;
++
+ /* Set the video mode and get the final screen format */
+ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
+ SDL_SetError("Couldn't get console screen info");
+@@ -748,13 +800,24 @@
+ vinfo.activate = FB_ACTIVATE_NOW;
+ vinfo.accel_flags = 0;
+ vinfo.bits_per_pixel = bpp;
+- vinfo.xres = width;
+- vinfo.xres_virtual = width;
+- vinfo.yres = height;
+- if ( flags & SDL_DOUBLEBUF ) {
+- vinfo.yres_virtual = height*2;
++ if ((rotation_flag == 0) || (rotation_flag == 2)) {
++ vinfo.xres = width;
++ vinfo.xres_virtual = width;
++ vinfo.yres = height;
++ if ( flags & SDL_DOUBLEBUF ) {
++ vinfo.yres_virtual = height*2;
++ } else {
++ vinfo.yres_virtual = height;
++ }
+ } else {
+- vinfo.yres_virtual = height;
++ vinfo.xres = height;
++ vinfo.xres_virtual = height;
++ vinfo.yres = width;
++ if ( flags & SDL_DOUBLEBUF ) {
++ vinfo.yres_virtual = width*2;
++ } else {
++ vinfo.yres_virtual = width;
++ }
+ }
+ vinfo.xoffset = 0;
+ vinfo.yoffset = 0;
+@@ -776,6 +839,15 @@
+ return(NULL);
+ }
+ }
++ vinfo.xres = width;
++ vinfo.xres_virtual = width;
++ vinfo.yres = height;
++ if ( flags & SDL_DOUBLEBUF ) {
++ vinfo.yres_virtual = height*2;
++ } else {
++ vinfo.yres_virtual = height;
++ }
++
+ } else {
+ int maxheight;
+
+@@ -821,7 +893,9 @@
+ SDL_SetError("Couldn't get console hardware info");
+ return(NULL);
+ }
+-
++#ifdef FBCON_DEBUG
++ print_finfo(&finfo);
++#endif
+ /* Save hardware palette, if needed */
+ FB_SavePalette(this, &finfo, &vinfo);
+
+@@ -829,7 +903,11 @@
+ current->flags = (SDL_FULLSCREEN|SDL_HWSURFACE);
+ current->w = vinfo.xres;
+ current->h = vinfo.yres;
+- current->pitch = finfo.line_length;
++ if ((rotation_flag == 0) || (rotation_flag == 2) ) {
++ current->pitch = finfo.line_length;
++ } else {
++ current->pitch = vinfo.xres*2;
++ }
+ current->pixels = mapped_mem+mapped_offset;
+
+ /* Set up the information for hardware surfaces */
+@@ -863,7 +941,7 @@
+ }
+
+ /* Set the update rectangle function */
+- this->UpdateRects = FB_DirectUpdate;
++ this->UpdateRects = FB_RotationUpdate;
+
+ /* We're done */
+ return(current);
+@@ -1123,6 +1201,89 @@
+ return;
+ }
+
++static void FB_RotationUpdate(_THIS, int numrects, SDL_Rect *rects)
++{
++ unsigned short *pDst;
++ unsigned short *pSrc;
++ unsigned int width;
++ unsigned int height;
++ unsigned int srcYAdd;
++ unsigned int dstXAdd;
++ unsigned int dstYSub;
++ unsigned int i;
++ unsigned int dstH;
++ unsigned int dstW;
++
++#ifdef FBCON_DEBUG
++ fprintf(stderr,"rotation_flag = %d \n",rotation_flag);
++#endif
++ switch (rotation_flag) {
++ case 0:
++ break;
++ case 1:
++ memcpy(mapped_mem_fb,mapped_mem,640*480*2);
++ break;
++ case 2:
++ memcpy(mapped_mem_fb,mapped_mem,640*480*2);
++ break;
++ case 3:
++ dstW=cache_vinfo.xres;
++ dstH=cache_vinfo.yres;
++#ifdef FBCON_DEBUG
++ fprintf(stderr,"dstH = %d : dstW = %d : rects->x = %d : rects->y = %d\n",dstH,dstW);
++ fprintf(stderr,"rects->x = %d : rects->y = %d : rects->w = %d : rects->h = %d\n",rects->x,rects->y,rects->w,rects->h);
++#endif
++ while (numrects) {
++ if (rects->w != dstW || rects->h != dstH) {
++ pSrc = mapped_mem + (rects->x + rects->y * dstW)*2;
++ pDst = mapped_mem_fb + (dstH-1+rects->x * dstH - rects->y)*2;
++
++ width = rects->w;
++ height = rects->h;
++
++ srcYAdd = dstW - rects->w;
++ dstXAdd = dstH;
++ dstYSub = (dstH * rects->w) + 1;
++
++ while (height--) {
++ i = width;
++ while (i--) {
++ *pDst = *pSrc ++;
++ pDst += dstXAdd;
++ }
++ pSrc += srcYAdd;
++ pDst -= dstYSub;
++ }
++
++ } else {
++ pDst=mapped_mem_fb+dstH*2-2;
++ pSrc=mapped_mem;
++ height=dstH;
++ width=dstW;
++ dstXAdd=height;
++ dstYSub=dstW*dstH+1;
++
++ while (height--) {
++ i = width;
++ while (i--) {
++ *pDst = *pSrc ++;
++ pDst += dstXAdd;
++ }
++ pDst -= dstYSub;
++ }
++ }
++ numrects--;
++ rects++;
++ }
++ break;
++ default:
++ break;
++ }
++
++
++
++}
++
+ #ifdef VGA16_FBCON_SUPPORT
+ /* Code adapted with thanks from the XFree86 VGA16 driver! :) */
+ #define writeGr(index, value) \
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc SDL-1.2.9/src/video/qtopia/SDL_QWin.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:54:14.000000000 +0100
+@@ -1,3 +1,4 @@
++
+ /*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2004 Sam Lantinga
+@@ -27,15 +28,24 @@
+
+ #include "SDL_QWin.h"
+ #include <qapplication.h>
++#include <qpe/qpeapplication.h>
+ #include <qdirectpainter_qws.h>
+
++extern int fb_hwrot;
++extern int fb_direct;
++extern bool is_VGA_machine;
++static int mouse_button_mode=1;
++
+ screenRotationT screenRotation = SDL_QT_NO_ROTATION;
+
+ SDL_QWin::SDL_QWin(const QSize& size)
+ : QWidget(0, "SDL_main"), my_painter(0), my_image(0),
+ my_inhibit_resize(false), my_mouse_pos(-1,-1), my_flags(0),
+- my_has_fullscreen(false), my_locked(0)
++ my_has_fullscreen(false), my_locked(0),
++ rotation_(0), qteRotation_(0), keyRotation_(0), qteKeyRotation_(0),
++ isSLA300InputFix_(0)
+ {
++ for (int i = 0; i < 5; i++) curAxis_[i] = 0;
+ setBackgroundMode(NoBackground);
+ }
+
+@@ -84,6 +94,7 @@
+ }
+
+ void SDL_QWin::setMousePos(const QPoint &pos) {
++#if 0
+ if(my_image->width() == height()) {
+ if (screenRotation == SDL_QT_ROTATION_90)
+ my_mouse_pos = QPoint(height()-pos.y(), pos.x());
+@@ -92,6 +103,66 @@
+ } else {
+ my_mouse_pos = pos;
+ }
++#else
++ QPoint realPos;
++
++ if (is_VGA_machine) {
++ realPos = pos;
++ my_mouse_pos = realPos;
++ }else {
++ switch (qteRotation_) {
++ case 0:
++ realPos = pos;
++ break;
++ case 1:
++ realPos.setX(pos.y());
++ realPos.setY(fbSize_.height() - 1 - pos.x());
++ break;
++ case 2:
++ realPos.setX(fbSize_.width() - 1 - pos.x());
++ realPos.setY(fbSize_.height() - 1 - pos.y());
++ break;
++ case 3:
++ realPos.setX(fbSize_.width() - 1 - pos.y());
++ realPos.setY(pos.x());
++ break;
++ };
++
++ // fprintf(stderr, "setMousePos: realPos(%d, %d)\n", realPos.x(), realPos.y());
++
++ int borderWidth = (fbSize_.width() - my_image->width()) >> 1;
++ int borderHeight = (fbSize_.height() - my_image->height()) >> 1;
++ if ( rotation_ & 1 ){
++ borderWidth = (fbSize_.height() - my_image->width()) >> 1;
++ borderHeight = (fbSize_.width() - my_image->height()) >> 1;
++ }
++ realPos.setX(realPos.x() - borderWidth);
++ realPos.setY(realPos.y() - borderHeight);
++
++ fprintf(stderr, "setMousePos: realPos2(%d, %d)\n", realPos.x(), realPos.y());
++
++ switch (rotation_) {
++ case 0:
++ my_mouse_pos = realPos;
++ break;
++ case 1:
++ my_mouse_pos.setX(realPos.y());
++ my_mouse_pos.setY(my_image->height() - 1 - realPos.x());
++ break;
++ case 2:
++ my_mouse_pos.setX(my_image->width() - 1 - realPos.x());
++ my_mouse_pos.setY(my_image->height() - 1 - realPos.y());
++ break;
++ case 3:
++ my_mouse_pos.setX(realPos.y());//my_image->width() - 1 - realPos.y());
++ my_mouse_pos.setY(my_image->height() - realPos.x());
++ break;
++ }
++ }
++
++// fprintf(stderr, "setMousePos: mymousePos(%d, %d)\n", (short)my_mouse_pos.x(), (short)my_mouse_pos.y());
++
++#endif
+ }
+
+ void SDL_QWin::mouseMoveEvent(QMouseEvent *e) {
+@@ -113,269 +184,318 @@
+ void SDL_QWin::mousePressEvent(QMouseEvent *e) {
+ mouseMoveEvent(e);
+ Qt::ButtonState button = e->button();
+- SDL_PrivateMouseButton(SDL_PRESSED,
+- (button & Qt::LeftButton) ? 1 :
+- ((button & Qt::RightButton) ? 2 : 3),
++ SDL_PrivateMouseButton(SDL_PRESSED,mouse_button_mode,
+ my_mouse_pos.x(), my_mouse_pos.y());
+ }
+
+ void SDL_QWin::mouseReleaseEvent(QMouseEvent *e) {
+ setMousePos(e->pos());
+ Qt::ButtonState button = e->button();
+- SDL_PrivateMouseButton(SDL_RELEASED,
+- (button & Qt::LeftButton) ? 1 :
+- ((button & Qt::RightButton) ? 2 : 3),
++ SDL_PrivateMouseButton(SDL_RELEASED,mouse_button_mode,
+ my_mouse_pos.x(), my_mouse_pos.y());
+ my_mouse_pos = QPoint(-1, -1);
+ }
+
+-static inline void
+-gs_fastRotateBlit_3 ( unsigned short *fb,
+- unsigned short *bits,
+- const QRect& rect )
++#ifndef __i386__
++
++static void
++blitRotate3(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect);
++
++static void
++blitRotate0(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect)
+ {
+- // FIXME: this only works correctly for 240x320 displays
+- int startx, starty;
+- int width, height;
+-
+- startx = rect.left() >> 1;
+- starty = rect.top() >> 1;
+- width = ((rect.right() - rect.left()) >> 1) + 2;
+- height = ((rect.bottom() - rect.top()) >> 1) + 2;
+-
+- if((startx+width) > 120) {
+- width = 120 - startx; // avoid horizontal overflow
+- }
+- if((starty+height) > 160) {
+- height = 160 - starty; // avoid vertical overflow
+- }
+-
+- ulong *sp1, *sp2, *dp1, *dp2;
+- ulong stop, sbot, dtop, dbot;
+-
+- sp1 = (ulong*)bits + startx + starty*240;
+- sp2 = sp1 + 120;
+- dp1 = (ulong *)fb + (159 - starty) + startx*320;
+- dp2 = dp1 + 160;
+- int rowadd = (-320*width) - 1;
+- int rowadd2 = 240 - width;
+- // transfer in cells of 2x2 pixels in words
+- for (int y=0; y<height; y++) {
+- for (int x=0; x<width; x++) {
+- // read source pixels
+- stop = *sp1;
+- sbot = *sp2;
+- // rotate pixels
+- dtop = (sbot & 0xffff) + ((stop & 0xffff)<<16);
+- dbot = ((sbot & 0xffff0000)>>16) + (stop & 0xffff0000);
+- // write to framebuffer
+- *dp1 = dtop;
+- *dp2 = dbot;
+- // update source ptrs
+- sp1++; sp2++;
+- // update dest ptrs - 2 pix at a time
+- dp1 += 320;
+- dp2 += 320;
+- }
+- // adjust src ptrs - skip a row as we work in pairs
+- sp1 += rowadd2;
+- sp2 += rowadd2;
+- // adjust dest ptrs for rotation
+- dp1 += rowadd;
+- dp2 += rowadd;
++ srcBits += srcBlitRect.left() + srcBlitRect.top() * srcSize.width();
++ dstBits += ((dstSize.width() - srcSize.width()) >> 1)
++ + (((dstSize.height() - srcSize.height()) >> 1) * dstSize.width());
++ dstBits += srcBlitRect.left() + srcBlitRect.top() * dstSize.width();
++ int w = srcBlitRect.width() << 1;
++ int h = srcBlitRect.height();
++
++ while (h--) {
++ memcpy(dstBits, srcBits, w);
++ dstBits += dstSize.width();
++ srcBits += srcSize.width();
+ }
+ }
+
+-static inline void
+-gs_fastRotateBlit_1 ( unsigned short *fb,
+- unsigned short *bits,
+- const QRect& rect ) {
+- // FIXME: this only works correctly for 240x320 displays
+- int startx, starty;
+- int width, height;
+-
+- startx = rect.left() >> 1;
+- starty = rect.top() >> 1;
+- width = ((rect.right() - rect.left()) >> 1) + 2;
+- height = ((rect.bottom() - rect.top()) >> 1) + 2;
+-
+- if((startx+width) > 120) {
+- width = 120 - startx; // avoid horizontal overflow
+- }
+- if((starty+height) > 160) {
+- height = 160 - starty; // avoid vertical overflow
+- }
+-
+- ulong *sp1, *sp2, *dp1, *dp2;
+- ulong stop, sbot, dtop, dbot;
+- fb += 320*239; // Move "fb" to top left corner
+- sp1 = (ulong*)bits + startx + starty*240;
+- sp2 = sp1 + 120;
+- dp1 = (ulong*)fb - startx * 320 - starty;
+- dp2 = dp1 - 160;
+- int rowadd = (320*width) + 1;
+- int rowadd2 = 240 - width;
+- // transfer in cells of 2x2 pixels in words
+- for (int y=0; y<height; y++) {
+- for (int x=0; x<width; x++) {
+- // read
+- stop = *sp1;
+- sbot = *sp2;
+- // rotate
+- dtop = (stop & 0xffff) + ((sbot & 0xffff)<<16);
+- dbot = ((stop & 0xffff0000)>>16) + (sbot & 0xffff0000);
+- // write
+- *dp1 = dtop;
+- *dp2 = dbot;
+- // update source ptrs
+- sp1++; sp2++;
+- // update dest ptrs - 2 pix at a time
+- dp1 -= 320;
+- dp2 -= 320;
+- }
+- // adjust src ptrs - skip a row as we work in pairs
+- sp1 += rowadd2;
+- sp2 += rowadd2;
+- // adjust dest ptrs for rotation
+- dp1 += rowadd;
+- dp2 += rowadd;
+- }
++static void
++blitRotate1(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect)
++{
++// fprintf(stdout, "SDL_QT_ROTATION (1) is not implemented.\n");
++ blitRotate3(dstBits, dstSize, srcBits, srcSize, srcBlitRect);
+ }
+
+-// desktop, SL-A300 etc
+-bool SDL_QWin::repaintRotation0(const QRect& rect) {
+- if(my_image->width() == width()) {
+- uchar *fb = (uchar*)my_painter->frameBuffer();
+- uchar *buf = (uchar*)my_image->bits();
+- if(rect == my_image->rect()) {
+- memcpy(fb, buf, width()*height()*2);
+- } else {
+- int h = rect.height();
+- int wd = rect.width()<<1;
+- int fblineadd = my_painter->lineStep();
+- int buflineadd = my_image->bytesPerLine();
+- fb += (rect.left()<<1) + rect.top() * my_painter->lineStep();
+- buf += (rect.left()<<1) + rect.top() * my_image->bytesPerLine();
+- while(h--) {
+- memcpy(fb, buf, wd);
+- fb += fblineadd;
+- buf += buflineadd;
+- }
++static void
++blitRotate2(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ QRect srcBlitRect)
++{
++// if (srcBlitRect.left() & 1)
++// srcBlitRect.setLeft(srcBlitRect.left() - 1);
++// if (srcBlitRect.right() & 1)
++// srcBlitRect.setRight(srcBlitRect.right() - 1);
++
++ int dstBorderLeftRight = (dstSize.width() - srcSize.width()) >>1;
++ int dstBorderTopBottom = (dstSize.height() - srcSize.height()) >>1;
++ int dstStartOffsetX = dstSize.width() - dstBorderLeftRight - 2;
++ int dstStartOffsetY = dstSize.height() - dstBorderTopBottom - 1;
++ int left = srcBlitRect.left() & ~(int)1; // to be 32bit aligned
++ srcBits += left + srcBlitRect.top() * srcSize.width();
++ dstBits += dstStartOffsetY * dstSize.width() + dstStartOffsetX;
++ dstBits -= left;
++ dstBits -= srcBlitRect.top() * dstSize.width();
++
++ Uint32 *pSrc = (Uint32 *)srcBits;
++ Uint32 *pDst = (Uint32 *)dstBits;
++
++ int width = srcBlitRect.width(), width2 = srcBlitRect.width(), w;
++ if ( srcBlitRect.left() & 1 ){
++ width--; width2++;
++ }
++ if ( (srcBlitRect.left()+srcBlitRect.width()) & 1 ){
++ width--; width2++;
++ }
++ width >>= 1;
++ int height = srcBlitRect.height();
++ int srcYAdd = srcSize.width() - width2;
++ int dstYSub = dstSize.width() - width2;
++
++ while (height--) {
++ w = width;
++ if (srcBlitRect.left() & 1){
++ *((Uint16 *)pDst) = *(((Uint16 *)pSrc) + 1);
++ pDst--; pSrc++;
+ }
+- } else {
+- return false; // FIXME: Landscape
++ while (w--) {
++ *pDst-- = (*pSrc << 16) | (*pSrc >> 16);
++ ++pSrc;
++ }
++ if ((srcBlitRect.left()+srcBlitRect.width()) & 1){
++ *(((Uint16 *)pDst) + 1) = *((Uint16 *)pSrc);
++ pDst--; pSrc++;
++ }
++ pSrc += srcYAdd;
++ pDst -= dstYSub;
+ }
+-#ifdef __i386__
+- my_painter->fillRect( rect, QBrush( Qt::NoBrush ) );
+-#endif
+- return true;
+ }
+
+-
+-// Sharp Zaurus SL-5500 etc
+-bool SDL_QWin::repaintRotation3(const QRect& rect) {
+- if(my_image->width() == width()) {
+- ushort *fb = (ushort*)my_painter->frameBuffer();
+- ushort *buf = (ushort*)my_image->bits();
+- gs_fastRotateBlit_3(fb, buf, rect);
++#define BLIT_ROTATE_3_MOV32
++
++static void
++blitRotate3(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect)
++{
++ if (srcBlitRect.width() != dstSize.height() ||
++ srcBlitRect.height() != dstSize.width()) {
++ // partial update
++ const Uint16 *pSrc = srcBits +
++ (srcBlitRect.left() + srcBlitRect.top() * srcSize.width());
++
++ int dstBorderLeftRight = (dstSize.width() - srcSize.height()) >>1;
++ int dstBorderTopBottom = (dstSize.height() - srcSize.width()) >>1;
++ int dstStartOffsetX = dstSize.width() - dstBorderLeftRight - 1;
++ int dstStartOffsetY = dstBorderTopBottom;
++ Uint16 *pDst = dstBits +
++ (dstStartOffsetY * dstSize.width() + dstStartOffsetX);
++ pDst += srcBlitRect.left() * dstSize.width();
++ pDst -= srcBlitRect.top();
++
++ int width = srcBlitRect.width(), height = srcBlitRect.height(), w;
++ int srcYAdd = srcSize.width() - srcBlitRect.width();
++ int dstXAdd = dstSize.width();
++ int dstYSub = (dstSize.width() * srcBlitRect.width()) + 1;
++
++#if 0
++ fprintf(stderr, "---- Blit begin\n");
++ fprintf(stderr, "srcSize.width: %d srcSize.height:%d\n",
++ srcSize.width(), srcSize.height());
++ fprintf(stderr, "srcBlitRect.left:%d srcBlitRect.right:%d srcBlitRect.top:%d srcBlitRect.bottom:%d srcBlitRect.width:%d srcBlitRect.height:%d\n",
++ srcBlitRect.left(), srcBlitRect.right(), srcBlitRect.top(), srcBlitRect.bottom(), srcBlitRect.width(), srcBlitRect.height());
++
++ fprintf(stderr, "dstSize.width: %d dstSize.height:%d\n",
++ dstSize.width(), dstSize.height());
++ fprintf(stderr, "dstBorderLeftRight:%d dstBorderTopBottom:%d dstStartOffsetX:%d dstStartOffsetY:%d\n",
++ dstBorderLeftRight, dstBorderTopBottom, dstStartOffsetX, dstStartOffsetY);
++ fprintf(stderr, "srcYAdd:%d dstXAdd:%d dstYSub:%d\n", srcYAdd, dstXAdd, dstYSub);
++#endif
++
++ while (height--) {
++ w = width;
++ while (w--) {
++ *pDst = *pSrc ++;
++ pDst += dstXAdd;
++ }
++ pSrc += srcYAdd;
++ pDst -= dstYSub;
++ }
++ // fprintf(stderr, "---- Blit end\n");
+ } else {
+- // landscape mode
+- if (screenRotation == SDL_QT_ROTATION_90) {
+- uchar *fb = (uchar*)my_painter->frameBuffer();
+- uchar *buf = (uchar*)my_image->bits();
+- if(rect == my_image->rect()) {
+- memcpy(fb, buf, width()*height()*2);
+- } else {
+- int h = rect.height();
+- int wd = rect.width()<<1;
+- int fblineadd = my_painter->lineStep();
+- int buflineadd = my_image->bytesPerLine();
+- fb += (rect.left()<<1) + rect.top() * my_painter->lineStep();
+- buf += (rect.left()<<1) + rect.top() * my_image->bytesPerLine();
+- while(h--) {
+- memcpy(fb, buf, wd);
+- fb += fblineadd;
+- buf += buflineadd;
+- }
++ // full update
++#if !defined(BLIT_ROTATE_3_MOV32)
++ const Uint16 *src = srcBits;
++ Uint16 *dst = dstBits + (dstSize.width() - 1);
++ int w = srcBlitRect.width();
++ int h = srcBlitRect.height();
++ int i, dstSub = dstSize.width() * w + 1;
++ int dstAdd = dstSize.width();
++
++ while (h--) {
++ i = w;
++ while (i--) {
++ *dst = *src ++;
++ dst += dstAdd;
+ }
+- } else if (screenRotation == SDL_QT_ROTATION_270) {
+- int h = rect.height();
+- int wd = rect.width();
+- int fblineadd = my_painter->lineStep() - (rect.width() << 1);
+- int buflineadd = my_image->bytesPerLine() - (rect.width() << 1);
+- int w;
+-
+- uchar *fb = (uchar*)my_painter->frameBuffer();
+- uchar *buf = (uchar*)my_image->bits();
+-
+- fb += ((my_painter->width() - (rect.top() + rect.height())) *
+- my_painter->lineStep()) + ((my_painter->height() - ((rect.left() +
+- rect.width()))) << 1);
+-
+- buf += my_image->bytesPerLine() * (rect.top() + rect.height()) -
+- (((my_image->width() - (rect.left() + rect.width())) << 1) + 2);
+-
+- while(h--) {
+- w = wd;
+- while(w--) *((unsigned short*)fb)++ = *((unsigned short*)buf)--;
+- fb += fblineadd;
+- buf -= buflineadd;
++ dst -= dstSub;
++ }
++#else // BLIT_ROTATE_3_MOV32
++ Uint32 *src1 = (Uint32 *)(srcBits);
++ Uint32 *src2 = (Uint32 *)(srcBits + srcSize.width());
++ Uint32 *dst1 = (Uint32 *)(dstBits + (dstSize.width() - 2));
++ Uint32 *dst2 = (Uint32 *)(dstBits + (dstSize.width() + dstSize.width() - 2));
++ int w = srcBlitRect.width() >> 3;
++ int h = srcBlitRect.height() >> 1;
++ int i, dstSub = ((dstSize.width() * srcBlitRect.width()) >> 1) + 1;
++ int dstAdd = dstSize.width();
++
++ Uint32 a, b;
++ while (h--) {
++ i = w;
++ while (i--) {
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
++
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
++
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
++
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
+ }
++ src1 += srcSize.width() >> 1;
++ src2 += srcSize.width() >> 1;
++ dst1 -= dstSub;
++ dst2 -= dstSub;
+ }
++#endif // BLIT_ROTATE_3_MOV32
+ }
+- return true;
+ }
+
+-// ipaq 3800...
+-bool SDL_QWin::repaintRotation1(const QRect& rect) {
+- if(my_image->width() == width()) {
+- ushort *fb = (ushort*)my_painter->frameBuffer();
+- ushort *buf = (ushort*)my_image->bits();
+- gs_fastRotateBlit_1(fb, buf, rect);
+- } else {
+- return false; // FIXME: landscape mode
+- }
+- return true;
+-}
++#endif // __i386__
+
+ void SDL_QWin::repaintRect(const QRect& rect) {
+ if(!my_painter || !rect.width() || !rect.height()) {
+ return;
+ }
+-
+- if(QPixmap::defaultDepth() == 16) {
+- switch(my_painter->transformOrientation()) {
+- case 3:
+- if(repaintRotation3(rect)) { return; }
++#ifndef __i386__
++ if (QPixmap::defaultDepth() == 16 && my_painter->numRects() >= 0) {
++ Uint16 *fb = (Uint16*)my_painter->frameBuffer();
++ Uint16 *buf = (Uint16*)my_image->bits();
++ switch (rotation_) {
++ case 0:
++ blitRotate0(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
+ break;
+ case 1:
+- if(repaintRotation1(rect)) { return; }
++ blitRotate1(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
+ break;
+- case 0:
+- if(repaintRotation0(rect)) { return; }
++ case 2:
++ blitRotate2(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
++ break;
++ case 3:
++ blitRotate3(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
+ break;
+ }
+- }
+- my_painter->drawImage(rect.topLeft(), *my_image, rect);
++ } else {
++#endif // __i386__
++ QDirectPainter pp(this);
++ pp.drawImage(rect.topLeft(), *my_image, rect);
++// pp.end();
++#ifndef __i386__
++ }
++#endif // __i386__
+ }
+
+ // This paints the current buffer to the screen, when desired.
+ void SDL_QWin::paintEvent(QPaintEvent *ev) {
+- if(my_image) {
++ if(my_image && isVisible() && isActiveWindow()) {
++ // TODO: better handling
+ lockScreen(true);
+ repaintRect(ev->rect());
+ unlockScreen();
+ }
+ }
+
++int SDL_QWin::ApplyKeyRotation(int key)
++{
++ int c;
++ int sdlScancode[] = { SDLK_LEFT, SDLK_DOWN, SDLK_RIGHT, SDLK_UP };
++
++ switch (key) {
++ case Qt::Key_Left:
++ c = 0;
++ break;
++ case Qt::Key_Down:
++ c = 1;
++ break;
++ case Qt::Key_Right:
++ c = 2;
++ break;
++ case Qt::Key_Up:
++ c = 3;
++ break;
++ default:
++ return 0;
++ }
++
++// c = (c + qteKeyRotation_) & 3;
++// return sdlScancode[(c - keyRotation_) & 3];
++ return sdlScancode[(c + qteKeyRotation_ - keyRotation_) & 3];
++}
++
+ /* Function to translate a keyboard transition and queue the key event
+ * This should probably be a table although this method isn't exactly
+ * slow.
+ */
+ void SDL_QWin::QueueKey(QKeyEvent *e, int pressed)
+-{
++{
++ if (e->isAutoRepeat())
++ return;
++
+ SDL_keysym keysym;
+ int scancode = e->key();
++
+ /* Set the keysym information */
+ if(scancode >= 'A' && scancode <= 'Z') {
+ // Qt sends uppercase, SDL wants lowercase
+@@ -396,26 +516,12 @@
+ case Qt::Key_Home: scancode = SDLK_HOME; break;
+ case Qt::Key_End: scancode = SDLK_END; break;
+ // We want the control keys to rotate with the screen
+- case Qt::Key_Left:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_UP;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_DOWN;
+- else scancode = SDLK_LEFT;
+- break;
+- case Qt::Key_Up:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_RIGHT;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_LEFT;
+- else scancode = SDLK_UP;
+- break;
+- case Qt::Key_Right:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_DOWN;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_UP;
+- else scancode = SDLK_RIGHT;
+- break;
++ case Qt::Key_Left:
++ case Qt::Key_Up:
++ case Qt::Key_Right:
+ case Qt::Key_Down:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_LEFT;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_RIGHT;
+- else scancode = SDLK_DOWN;
+- break;
++ scancode = ApplyKeyRotation(scancode);
++ break;
+ case Qt::Key_Prior: scancode = SDLK_PAGEUP; break;
+ case Qt::Key_Next: scancode = SDLK_PAGEDOWN; break;
+ case Qt::Key_Shift: scancode = SDLK_LSHIFT; break;
+@@ -434,9 +540,18 @@
+ case Qt::Key_F7: scancode = SDLK_F7; break;
+ case Qt::Key_F8: scancode = SDLK_F8; break;
+ case Qt::Key_F9: scancode = SDLK_F9; break;
+- case Qt::Key_F10: scancode = SDLK_F10; break;
+- case Qt::Key_F11: scancode = SDLK_F11; break;
+- case Qt::Key_F12: scancode = SDLK_F12; break;
++ case Qt::Key_F10:
++ scancode = SDLK_F10;
++ mouse_button_mode=1;
++ break;
++ case Qt::Key_F11:
++ scancode = SDLK_F11;
++ mouse_button_mode=3;
++ break;
++ case Qt::Key_F12:
++ scancode = SDLK_F12;
++ mouse_button_mode=2;
++ break;
+ case Qt::Key_F13: scancode = SDLK_F13; break;
+ case Qt::Key_F14: scancode = SDLK_F14; break;
+ case Qt::Key_F15: scancode = SDLK_F15; break;
+@@ -452,13 +567,14 @@
+ // david@hedbor.org
+ scancode = SDLK_RETURN;
+ break;
++
+ default:
+ scancode = SDLK_UNKNOWN;
+ break;
+ }
+- keysym.sym = static_cast<SDLKey>(scancode);
++ keysym.sym = static_cast<SDLKey>(scancode);
+ } else {
+- keysym.sym = static_cast<SDLKey>(scancode);
++ keysym.sym = static_cast<SDLKey>(scancode);
+ }
+ keysym.scancode = scancode;
+ keysym.mod = KMOD_NONE;
+@@ -478,11 +594,82 @@
+ // pressed = 1;
+ // }
+
++ if (isSLA300InputFix_ &&
++ (keysym.sym == SDLK_SPACE || (keysym.sym >= 273 && keysym.sym <= 276))) {
++ if (keysym.sym >= 273) curAxis_[keysym.sym-273] = pressed;
++ else curAxis_[4] = pressed;
++ }
++
+ /* Queue the key event */
+ if ( pressed ) {
+- SDL_PrivateKeyboard(SDL_PRESSED, &keysym);
++ /* fprintf(stderr, "press %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_PRESSED, &keysym);
++ if (isSLA300InputFix_ &&
++ (keysym.sym >= 273 && keysym.sym <= 276)) {
++ if (keysym.sym == SDLK_UP) {
++ if (curAxis_[1]) {
++ keysym.sym = SDLK_DOWN;
++ keysym.scancode = Qt::Key_Down;
++ curAxis_[1] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ else if (keysym.sym == SDLK_DOWN) {
++ if (curAxis_[0]) {
++ keysym.sym = SDLK_UP;
++ keysym.scancode = Qt::Key_Up;
++ curAxis_[0] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ else if (keysym.sym == SDLK_RIGHT) {
++ if (curAxis_[3]) {
++ keysym.sym = SDLK_LEFT;
++ keysym.scancode = Qt::Key_Left;
++ curAxis_[3] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ else if (keysym.sym == SDLK_LEFT) {
++ if (curAxis_[2]) {
++ keysym.sym = SDLK_RIGHT;
++ keysym.scancode = Qt::Key_Right;
++ curAxis_[2] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ }
+ } else {
+- SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ /* fprintf(stderr, "release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++
++ if (isSLA300InputFix_ &&
++ (keysym.sym == SDLK_SPACE ||
++ (keysym.sym >= 273 && keysym.sym <= 276))) {
++ for (int i = 0; i < 4; i++) {
++ if (curAxis_[i]) {
++ int sym = i+273;
++ keysym.sym = static_cast<SDLKey>(sym);
++ if (sym == SDLK_UP) keysym.scancode = Qt::Key_Up;
++ else if (sym == SDLK_RIGHT) keysym.scancode = Qt::Key_Right;
++ else if (sym == SDLK_DOWN) keysym.scancode = Qt::Key_Down;
++ else if (sym == SDLK_LEFT) keysym.scancode = Qt::Key_Left;
++ curAxis_[i] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ if (curAxis_[4]) {
++ keysym.scancode = keysym.sym = SDLK_SPACE;
++ curAxis_[4] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
+ }
+ }
+
+@@ -524,7 +711,7 @@
+ my_locked--; // decrease lock refcount;
+ }
+ if(!my_locked && my_painter) {
+- my_painter->end();
++// my_painter->end();
+ delete my_painter;
+ my_painter = 0;
+ }
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.h SDL-1.2.9/src/video/qtopia/SDL_QWin.h
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.h 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.h 2007-03-12 20:54:14.000000000 +0100
+@@ -1,3 +1,4 @@
++
+ /*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2004 Sam Lantinga
+@@ -52,6 +53,7 @@
+ class SDL_QWin : public QWidget
+ {
+ void QueueKey(QKeyEvent *e, int pressed);
++ int ApplyKeyRotation(int key);
+ public:
+ SDL_QWin(const QSize& size);
+ virtual ~SDL_QWin();
+@@ -71,7 +73,7 @@
+ y = my_offset.y();
+ }
+ QImage *image(void) { return my_image; }
+-
++
+ void setWFlags(WFlags flags) {
+ QWidget::setWFlags(flags);
+ my_flags = flags;
+@@ -83,6 +85,15 @@
+ bool lockScreen(bool force=false);
+ void unlockScreen();
+ void repaintRect(const QRect& rect);
++ void setScreenRotation(int sdlr, int qter) {
++ rotation_ = sdlr; qteRotation_ = qter;
++ }
++ void setKeyRotation(int sdlr, int qter) {
++ keyRotation_ = sdlr; qteKeyRotation_ = qter;
++ }
++ void setFBSize(QSize& s) { fbSize_ = s; }
++// void setSLC700InputFix(bool isEnable) { isSLC700InputFix_ = isEnable; }
++ void setSLA300InputFix(bool isEnable) { isSLA300InputFix_ = isEnable; }
+ protected:
+ /* Handle resizing of the window */
+ virtual void resizeEvent(QResizeEvent *e);
+@@ -95,10 +106,8 @@
+ void paintEvent(QPaintEvent *ev);
+ void keyPressEvent(QKeyEvent *e) { QueueKey(e, 1); }
+ void keyReleaseEvent(QKeyEvent *e) { QueueKey(e, 0); }
++
+ private:
+- bool repaintRotation0(const QRect& rect);
+- bool repaintRotation1(const QRect& rect);
+- bool repaintRotation3(const QRect& rect);
+ void enableFullscreen();
+ QDirectPainter *my_painter;
+ QImage *my_image;
+@@ -108,6 +117,12 @@
+ WFlags my_flags;
+ WFlags my_has_fullscreen;
+ unsigned int my_locked;
++ int rotation_, qteRotation_;
++ int keyRotation_, qteKeyRotation_;
++ QSize fbSize_;
++// bool isSLC700InputFix_;
++ bool isSLA300InputFix_;
++ int curAxis_[5]; // 0: up, 1: down, 2: right, 3: left, 4: center
+ };
+
+ #endif /* _SDL_QWin_h */
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysmouse.cc SDL-1.2.9/src/video/qtopia/SDL_sysmouse.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysmouse.cc 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysmouse.cc 2007-03-12 20:54:14.000000000 +0100
+@@ -60,6 +60,7 @@
+ void QT_WarpWMCursor(_THIS, Uint16 x, Uint16 y)
+ {
+ SDL_Win->setMousePos(QPoint(x, y));
++ SDL_PrivateMouseMotion( 0, 0, x, y );
+ }
+
+ }; /* Extern C */
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:54:14.000000000 +0100
+@@ -1,3 +1,4 @@
++
+ /*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2004 Sam Lantinga
+@@ -29,17 +30,32 @@
+
+ #include <stdlib.h>
+ #include <string.h>
++#include <stdarg.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
+
+ #include <stdio.h>
+ #include <unistd.h>
++#include <sys/types.h>
++#include <sys/wait.h>
++#include <linux/fb.h>
++#include <sys/mman.h>
++#include <asm/page.h>
+
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
++#include <qpe/qcopenvelope_qws.h>
++#include <qgfx_qws.h>
++#include <qwindowsystem_qws.h>
++#include <qwidget.h>
++#include <qwidgetlist.h>
++#include <qdirectpainter_qws.h>
+
+ #include "SDL.h"
+ #include "SDL_timer.h"
+
+ #include "SDL_QWin.h"
++#include "SDL_sysvideo.h"
+
+ extern "C" {
+
+@@ -51,14 +67,67 @@
+ #include "SDL_lowvideo.h"
+
+ //#define QTOPIA_DEBUG
++#define QTOPIA_LOG
+ #define QT_HIDDEN_SIZE 32 /* starting hidden window size */
+
++#ifdef QTOPIA_LOG
++ static FILE *st_logfp = NULL;
++#endif
++ static inline void LOG(char *fmt, ...)
++ {
++#ifdef QTOPIA_LOG
++ va_list ap;
++
++ va_start(ap, fmt);
++ vfprintf(st_logfp, fmt, ap);
++ if (st_logfp != stderr) {
++ fflush(st_logfp);
++ vfprintf(stderr, fmt, ap);
++ }
++ va_end(ap);
++#endif
++ }
++
++ typedef struct machine_spec {
++ const char *manif;
++ const char *name;
++ int qpe_server_rotation;
++ int init_screen_rot;
++ int init_key_rot;
++ } machine_spec_t;
++
++ typedef enum {
++ MACHINE_SHARP_SL5000D,
++ MACHINE_SHARP_SL5500,
++ MACHINE_SHARP_SLA300,
++ MACHINE_SHARP_SLB500,
++ MACHINE_SHARP_SLC700,
++ MACHINE_SHARP_SLC750,
++ MACHINE_SHARP_SLC760,
++ MACHINE_SHARP_SLC860,
++ MACHINE_SHARP_SL6000,
++ MACHINE_MAX
++ } machine_t;
++
++ static const machine_spec_t st_machine_spec[] = {
++ { "Sharp", "SL-5000D", 0 },
++ { "Sharp", "SL-5500", 0 },
++ { "Sharp", "SL-A300", 0 },
++ { "Sharp", "SL-B500", 0 },
++ { "Sharp", "SL-C700", 0 },
++ { "Sharp", "SL-C750", 0 },
++ { "Sharp", "SL-C760", 0 },
++ { "Sharp", "SL-C860", 0 },
++ { "Sharp", "SL-6000", 0 },
++ };
++
+ /* Name of the environment variable used to invert the screen rotation or not:
+ Possible values:
+- !=0 : Screen is 270° rotated
+- 0: Screen is 90° rotated*/
+-#define SDL_QT_ROTATION_ENV_NAME "SDL_QT_INVERT_ROTATION"
+-
++ !=0 : Screen is 270- rotated
++ 0: Screen is 90- rotated*/
++#define SDL_QT_ROTATION_ENV_NAME "SDL_QT_ROTATION"
++#define SDL_QT_INVERT_ROTATION_ENV_NAME "SDL_QT_INVERT_ROTATION"
++
+ /* Initialization/Query functions */
+ static int QT_VideoInit(_THIS, SDL_PixelFormat *vformat);
+ static SDL_Rect **QT_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags);
+@@ -78,6 +147,20 @@
+ static int QT_IconifyWindow(_THIS);
+ static SDL_GrabMode QT_GrabInput(_THIS, SDL_GrabMode mode);
+
++ static int console_fd;
++ struct fb_var_screeninfo saved_vinfo;
++ int fb_hwrot;
++ int fb_direct;
++ static int isKHloaded;
++ bool is_VGA_machine;
++
++#define W100FB_CONFIG 0x57415200 /* WAL\00 */
++#define W100INIT_ITEM 0
++#define W100INIT_ALL 1
++#define W100INIT_ITEM_WITH_VAL 2
++#define W100FB_CONFIG_EX 0x57415202 /* WAL\02 */
++
++
+ /* FB driver bootstrap functions */
+
+ static int QT_Available(void)
+@@ -222,13 +305,34 @@
+
+ int QT_VideoInit(_THIS, SDL_PixelFormat *vformat)
+ {
+- /* Initialize the QPE Application */
++ const char *SDL_fbdev;
++ struct fb_var_screeninfo vinfo;
++
++ /* Initialize the QPE Application */
+ /* Determine the screen depth */
+ vformat->BitsPerPixel = QPixmap::defaultDepth();
+
+ // For now we hardcode the current depth because anything else
+ // might as well be emulated by SDL rather than by Qtopia.
+-
++
++ //frame buffer device open.
++ SDL_fbdev = getenv("SDL_FBDEV");
++ if ( SDL_fbdev == NULL ) {
++ SDL_fbdev = "/dev/fb0";
++ }
++ console_fd = open(SDL_fbdev, O_RDWR, 0);
++ if ( console_fd < 0 ) {
++ SDL_SetError("Unable to open %s", SDL_fbdev);
++ return(-1);
++ }
++
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(-1);
++ }
++ saved_vinfo = vinfo;
++
+ QSize desktop_size = qApp->desktop()->size();
+ QT_AddMode(_this, ((vformat->BitsPerPixel+7)/8)-1,
+ desktop_size.width(), desktop_size.height());
+@@ -241,7 +345,24 @@
+ /* Fill in some window manager capabilities */
+ _this->info.wm_available = 0;
+
+- /* We're done! */
++#ifdef QTOPIA_LOG
++ st_logfp = fopen("/tmp/sdl-qt-debug", "w");
++ if (!st_logfp)
++ st_logfp = stderr;
++#endif
++
++ QT_GrabInput(_this, SDL_GRAB_ON);
++/*
++ {
++ QCopEnvelope e("QPE/KeyHelper", "repeater(int)");
++ e << 2;
++ }
++*/
++ isKHloaded=(fopen("/home/zaurus/Settings/keyhelper_SDL.xml","r") != NULL) ? 1 : 0;
++ if (isKHloaded) {
++ system("qcop QPE/KeyHelper \"reload(QString)\" keyhelper_SDL.xml"); //QcopEnvelope can't use.
++ LOG("keyhelper_SDL.xml loaded\n");
++ }
+ return(0);
+ }
+
+@@ -264,6 +385,7 @@
+
+ /* Various screen update functions available */
+ static void QT_NormalUpdate(_THIS, int numrects, SDL_Rect *rects);
++ static void QT_DirectUpdate(_THIS, int numrects, SDL_Rect *rects);
+
+
+ static int QT_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen)
+@@ -276,47 +398,428 @@
+ return -1;
+ }
+
++ static machine_t QT_GetMachine(_THIS)
++ {
++ FILE *fp;
++ machine_t machine = MACHINE_SHARP_SL5000D;
++ char buf[1024];
++
++
++ fp = fopen("/proc/cpuinfo", "rb");
++ if (fp) {
++ if (fread(buf, 1, sizeof(buf), fp) > 0) {
++ LOG("QT_GetMachine: /proc/cpuinfo is %s\n", buf);
++ if (strstr(buf, "SHARP Tosa") != NULL)
++ machine = MACHINE_SHARP_SL6000;
++ else if (strstr(buf, "Collie") != NULL)
++ machine = MACHINE_SHARP_SL5500;
++ else if (strstr(buf, "SHARP Poodle") != NULL)
++ machine = MACHINE_SHARP_SLB500;
++ else if (strstr(buf, "SHARP Corgi") !=NULL)
++ machine = MACHINE_SHARP_SLC700;
++ else if (strstr(buf, "SHARP Shepherd") !=NULL)
++ machine = MACHINE_SHARP_SLC750;
++ else if (strstr(buf, "SHARP Husky") !=NULL)
++ machine = MACHINE_SHARP_SLC760;
++ else if (strstr(buf, "SHARP Boxer") != NULL)
++ machine = MACHINE_SHARP_SLC860;
++ }
++ fclose(fp);
++ } else {
++ LOG("QT_GetMachine: Couldn't read /proc/deviceinfo/product.\n");
++ LOG(" Now set machine variable to default (SL-5000D)\n");
++ }
++
++ LOG(" detected machine is '%s %s'\n",
++ st_machine_spec[machine].manif, st_machine_spec[machine].name);
++ return machine;
++ }
++
++ static void QT_GetQteServerSpec(_THIS, int *rotation, bool *isQvga)
++ {
++ const char *user;
++ char buf[FILENAME_MAX];
++ FILE *fp;
++ int rot = 0, is_qvga = 0;
++
++ user = getenv("USER");
++ snprintf(buf, sizeof(buf), "/tmp/qtembedded-%s/QtEmbedded-0.spec",
++ user ? user : "root");
++ LOG("QT_GetRotation: Read spec from '%s'\n", buf);
++
++ fp = fopen(buf, "rb");
++ if (fp) {
++ int size;
++ if ((size = fread(buf, 1, sizeof(buf) - 1, fp)) > 0) {
++ buf[size] = '\0';
++ LOG(" spec is '%s'\n", buf);
++ // get rotation value
++ if (strstr(buf, "Rot")) {
++ rot = atoi(strstr(buf, "Rot") + 3);
++ rot /= 90;
++ if (rot < 0 || rot > 3) {
++ rot = 0;
++ }
++ } else
++ rot = 0;
++
++ // get qvga mode in SL-C700
++ if (strstr(buf, "Qvga"))
++ is_qvga = 1;
++ }
++ fclose(fp);
++ }
++
++ LOG(" Rot=%d, Qvga=%d\n", rot, is_qvga);
++
++ if (rotation)
++ *rotation = rot;
++ if (isQvga)
++ *isQvga = is_qvga;
++ }
++
+ /* FIXME: check return values and cleanup here */
+ SDL_Surface *QT_SetVideoMode(_THIS, SDL_Surface *current,
+ int width, int height, int bpp, Uint32 flags)
+ {
+-
+ QImage *qimage;
+- QSize desktop_size = qApp->desktop()->size();
++ QSize qteSize = qApp->desktop()->size();
++ QSize fbSize;
++ QSize userSize;
++ int fb_xres;
++ int fb_yres;
++ struct fb_var_screeninfo vinfo;
++ struct fb_fix_screeninfo finfo;
++ int tmp_ioctl_data;
++ char fb_size_fix = ' ';
++ bool isW100patch_kernel = false;
++ int numFb_Size;
++
++ int mapped_memlen;
++ int mapped_offset;
++ void *mapped_mem;
++ int fb_offset;
++
++
++ machine_t machine = QT_GetMachine(_this);
++ machine_spec_t machineSpec = st_machine_spec[machine];
++ int qteRotation, userRotation, sdlRotation;
++ int qteKeyRotation, sdlKeyRotation;
++ bool isQteQvga;
++
++ if (machine == MACHINE_SHARP_SLC700 ||
++ machine == MACHINE_SHARP_SLC750 ||
++ machine == MACHINE_SHARP_SLC760 ||
++ machine == MACHINE_SHARP_SLC860 || // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
++ machine == MACHINE_SHARP_SL6000 ) { // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
++ is_VGA_machine = true;
++ }else {
++ is_VGA_machine = false;
++ }
++
++ // qte ¤Ç¤Î²óž³ÑÅÙ¤ò¼èÆÀ
++ QT_GetQteServerSpec(_this, &qteRotation, &isQteQvga);
++
++ // SL-C700 ¤Î¥¹¥¿¥¤¥ë
++ bool isInputStyle = false;
++ if (is_VGA_machine) {
++ int status = system("/home/QtPalmtop/bin/chkhinge");
++ if (WEXITSTATUS(status) != 2)
++ isInputStyle = true;
++ LOG("QT_SetVideoMode: SL-C700 Style is %s\n",
++ isInputStyle ? "Input style" : "View style");
++ }
+
+
+- current->flags = 0; //SDL_FULLSCREEN; // We always run fullscreen.
++ // specity screen setting
++ if (is_VGA_machine) {
++
++ // w100 rotation pached kernel check
++ isW100patch_kernel = (fopen("/proc/driver/w100/rotation","r") != NULL) ? true : false;
++ LOG("Your Kernel is %s\n",isW100patch_kernel ? "Special Kernel" : "Normal Kernel");
++
++ const char *envFb_Size = getenv("SDL_FB_SIZE");
++ if (envFb_Size !=NULL) {
++ numFb_Size=sscanf(envFb_Size,"%dx%d%c",&fb_xres,&fb_yres,&fb_size_fix);
++ } else {
++ numFb_Size=0;
++ }
+
+- if(width <= desktop_size.width()
+- && height <= desktop_size.height()) {
+- current->w = desktop_size.width();
+- current->h = desktop_size.height();
+- } else if(width <= desktop_size.height() && height <= desktop_size.width()) {
+- // Landscape mode
+- char * envString = getenv(SDL_QT_ROTATION_ENV_NAME);
+- int envValue = envString ? atoi(envString) : 0;
+- screenRotation = envValue ? SDL_QT_ROTATION_270 : SDL_QT_ROTATION_90;
+- current->h = desktop_size.width();
+- current->w = desktop_size.height();
++ if (numFb_Size >=2) {
++
++ // specity screen mode
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++
++ vinfo.xres = fb_xres;
++ vinfo.xres_virtual = fb_xres;
++ vinfo.yres = fb_yres;
++ vinfo.yres_virtual = fb_yres;
++
++ if (fb_size_fix == '@') {
++ width = fb_xres;
++ height = fb_yres;
++ }
++
++ if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't set console screen info");
++ return(NULL);
++ }
++
++
++ if (isW100patch_kernel) {
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=0;
++ }else if(vinfo.xres == 320){
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=2;
++ }else {
++ qteSize.setWidth(vinfo.yres);
++ qteSize.setHeight(vinfo.xres);
++ qteRotation=3;
++ }
++
++ if (isW100patch_kernel && (vinfo.xres == 320) && (vinfo.yres == 240)) {
++ tmp_ioctl_data=121;
++ ioctl(console_fd, W100FB_CONFIG_EX, &tmp_ioctl_data);
++ fb_hwrot=1;
++ }
++
++ LOG("FBVideoMode: %dx%d%c\n", vinfo.xres, vinfo.yres,fb_size_fix );
++
++ }else {
++
++ // auto screen mode
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++
++ if (isW100patch_kernel && (isInputStyle == false) && (vinfo.xres == 240) && (vinfo.yres == 320)) {
++ vinfo.xres = 240;
++ vinfo.xres_virtual = 240;
++ vinfo.yres = 320;
++ vinfo.yres_virtual = 320;
++ qteRotation=0;
++ }else if ((width <= 320) && (height <= 240)) {
++ vinfo.xres = 320;
++ vinfo.xres_virtual = 320;
++ vinfo.yres = 240;
++ vinfo.yres_virtual = 240;
++ }else if (isW100patch_kernel && (isInputStyle == true)){
++ vinfo.xres = 640;
++ vinfo.xres_virtual = 640;
++ vinfo.yres = 480;
++ vinfo.yres_virtual = 480;
++ qteRotation=0;
++ }else {
++ vinfo.xres = 480;
++ vinfo.xres_virtual = 480;
++ vinfo.yres = 640;
++ vinfo.yres_virtual = 640;
++ }
++
++ if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't set console screen info");
++ return(NULL);
++ }
++
++ if (isW100patch_kernel) {
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=0;
++ fb_direct=1;
++ }else if(vinfo.xres == 320){
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=2;
++ }else {
++ qteSize.setWidth(vinfo.yres);
++ qteSize.setHeight(vinfo.xres);
++ qteRotation=3;
++ }
++
++ if (isW100patch_kernel && (vinfo.xres == 320) && (vinfo.yres == 240)) {
++ tmp_ioctl_data=121;
++ ioctl(console_fd, W100FB_CONFIG_EX, &tmp_ioctl_data);
++ fb_hwrot=1;
++ qteRotation=0;
++ }
++
++ LOG("FBVideoMode: %dx%d%c\n", vinfo.xres, vinfo.yres,fb_size_fix );
++ }
++ }
++
++ // direct paint setting
++ const char *envFb_Direct = getenv("SDL_FB_DIRECT");
++ if (envFb_Direct !=NULL)
++ fb_direct = envFb_Direct ? atoi(envFb_Direct) : -1;
++
++ if (fb_direct == 1){
++ if ( ioctl(console_fd, FBIOGET_FSCREENINFO, &finfo) < 0 ) {
++ SDL_SetError("Couldn't get console hardware info");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++ LOG("Direct paint mode\n");
++ }
++
++ // hack for SL-5500
++ if (machine == MACHINE_SHARP_SL5500)
++ qteRotation = 3;
++
++ // SL-B500 Íѥϥå¯(¤È¤ê¤¢¤¨¤º¡¢¤Í)
++ if (machine == MACHINE_SHARP_SLB500)
++ qteRotation = 3;
++
++ // À¸¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÆÀ¤ë
++ if (qteRotation & 1) {
++ fbSize.setWidth(qteSize.height());
++ fbSize.setHeight(qteSize.width());
++ } else {
++ fbSize = qteSize;
++ }
++
++ //
++ const char *envRotStr = getenv(SDL_QT_ROTATION_ENV_NAME);
++ userRotation = envRotStr ? atoi(envRotStr) : -1;
++ if ((userRotation >= 0 ? userRotation : qteRotation) & 1) {
++ userSize.setWidth(fbSize.height());
++ userSize.setHeight(fbSize.width());
++ } else {
++ userSize = fbSize;
++ }
++
++ if (width <= userSize.width() && height <= userSize.height()) {
++ // ´Ä¶­ÊÑ¿ô¤Ç²óž³ÑÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤òºÇÍ¥À褹¤ë
++ if (userRotation >= 0)
++ sdlRotation = userRotation;
++ else {
++ // ¤Ç¡¢¤½¤Î»ØÄ̵꤬¤¤¤Î¤Ç¤¢¤ì¤Ð qte ¤Î²óž³ÑÅ٤˹ç¤ï¤»¤ë¤À¤±
++ // ¤Ê¤ó¤À¤±¤É¡¢SL-C700 ¤Ç¤Ï¤Á¤ç¤¤Ê£»¨¡£
++ if (is_VGA_machine && (fbSize.width() == 320) && (fbSize.height() == 240)) {
++ if (isInputStyle)
++ sdlRotation = 2;
++ else
++ sdlRotation = qteRotation;
++ } else {
++ sdlRotation = qteRotation;
++ }
++ }
++ } else if (width <= fbSize.width() && height <= fbSize.height()) {
++ sdlRotation = 0;
++ if (is_VGA_machine && (fbSize.width() == 320) && (fbSize.height() == 240) && isInputStyle)
++ sdlRotation = 2;
++ } else if (width <= fbSize.height() && height <= fbSize.width()) {
++ sdlRotation = 1;
+ } else {
+ SDL_SetError("Unsupported resolution, %dx%d\n", width, height);
++ return NULL;
+ }
++
++ if (fb_hwrot == 1)
++ sdlRotation = 0;
++
++ if (getenv(SDL_QT_INVERT_ROTATION_ENV_NAME) != NULL) {
++ sdlRotation = (sdlRotation + 2) & 3;
++ }
++
++ LOG("QT_SetVideoMode: argSize=%dx%d\n", width, height);
++ LOG("QT_SetVideoMode: qteSize=%dx%d\n",
++ qteSize.width(), qteSize.height());
++ LOG("QT_SetVideoMode: fbSize=%dx%d\n",
++ fbSize.width(), fbSize.height());
++ LOG("QT_SetVideoMode: qteRotation=%d\n", qteRotation);
++ LOG("QT_SetVideoMode: userRotation=%d\n", userRotation);
++ LOG("QT_SetVideoMode: sdlRotation=%d\n", sdlRotation);
++
++ current->flags = 0;//SDL_FULLSCREEN; // We always run fullscreen.
++ current->w = width;
++ current->h = height;
++ SDL_Win->setScreenRotation(sdlRotation, qteRotation);
++ SDL_Win->setFBSize(fbSize);
++
++ if (machine == MACHINE_SHARP_SLA300)
++ SDL_Win->setSLA300InputFix(true);
++
++ // keyboard rotation
++ qteKeyRotation = qteRotation;
++// fprintf(stderr, "%d\n", (machine == MACHINE_SHARP_SLC700));
++// fprintf(stderr, "%d\n", isQteQvga);
++ if (isQteQvga && is_VGA_machine)
++ qteKeyRotation = 3;
++ else if (machine == MACHINE_SHARP_SLB500)
++ qteKeyRotation = 3;
++
++ if (isQteQvga && fb_hwrot == 1)
++ qteKeyRotation = 1;
++
++ sdlKeyRotation = sdlRotation;
++
++ SDL_Win->setKeyRotation(sdlKeyRotation, qteKeyRotation);
++
++ LOG("QT_SetVideoMode: qteKeyRotation=%d\n", qteKeyRotation);
++ LOG("QT_SetVideoMode: sdlKeyRotation=%d\n", sdlKeyRotation);
++
+ if ( flags & SDL_OPENGL ) {
+ SDL_SetError("OpenGL not supported");
+ return(NULL);
+- }
++ }
+ /* Create the QImage framebuffer */
+- qimage = new QImage(current->w, current->h, bpp);
+- if (qimage->isNull()) {
+- SDL_SetError("Couldn't create screen bitmap");
+- delete qimage;
+- return(NULL);
++
++ // frame buffer memory mapping
++ if (fb_direct == 1) {
++ current->pitch = finfo.line_length;
++ current->flags = (SDL_FULLSCREEN|SDL_HWSURFACE);
++ mapped_offset = (((long)finfo.smem_start) -
++ (((long)finfo.smem_start)&~(PAGE_SIZE-1)));
++ mapped_memlen = finfo.smem_len+mapped_offset;
++ if(console_fd >0 ) {
++ mapped_mem = mmap(NULL, mapped_memlen,PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
++ fb_offset=(vinfo.xres-width)+(vinfo.yres-height)*vinfo.xres;
++ current->pixels = (void *)((int )mapped_mem+fb_offset);
++ _this->UpdateRects = QT_DirectUpdate;
++ } else {
++ qimage = new QImage(current->w, current->h, bpp);
++ if (qimage->isNull()) {
++ SDL_SetError("Couldn't create screen bitmap");
++ delete qimage;
++ return(NULL);
++ }
++ current->pixels = (void *)qimage->bits();
++ _this->UpdateRects = QT_NormalUpdate;
++ SDL_Win->setImage(qimage);
++// SDL_Win->setFullscreen(true); //comment to non update taskbar
++ }
++ } else {
++ qimage = new QImage(current->w, current->h, bpp);
++ if (qimage->isNull()) {
++ SDL_SetError("Couldn't create screen bitmap");
++ delete qimage;
++ return(NULL);
++ }
++ current->pitch = qimage->bytesPerLine();
++ current->pixels = (void *)qimage->bits();
++ _this->UpdateRects = QT_NormalUpdate;
++ SDL_Win->setImage(qimage);
++// SDL_Win->setFullscreen(true); //comment to non update taskbar
++
+ }
+- current->pitch = qimage->bytesPerLine();
+- current->pixels = (void *)qimage->bits();
+- SDL_Win->setImage(qimage);
+- _this->UpdateRects = QT_NormalUpdate;
+- SDL_Win->setFullscreen(true);
++
++
++ // fprintf(stderr,"QT_SetVideoMode() qImage:%dx%d %d\n",
++ // qimage->width(), qimage->height(), qimage->bytesPerLine());
+ /* We're done */
+ return(current);
+ }
+@@ -361,13 +864,19 @@
+ {
+ if(SDL_Win->lockScreen()) {
+ for(int i=0; i<numrects; ++i ) {
+- QRect rect(rects[i].x, rects[i].y,
+- rects[i].w, rects[i].h);
+- SDL_Win->repaintRect(rect);
++ QRect rect(rects[i].x, rects[i].y,
++ rects[i].w, rects[i].h);
++ SDL_Win->repaintRect(rect);
+ }
+ SDL_Win->unlockScreen();
+ }
+ }
++
++ static void QT_DirectUpdate(_THIS, int numrects, SDL_Rect *rects)
++ {
++
++ }
++
+ /* Is the system palette settable? */
+ int QT_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
+ {
+@@ -383,10 +892,36 @@
+ // -- David Hedbor
+ // delete SDL_Win;
+ // SDL_Win = 0;
++
++ if ( console_fd > 0 ) {
++ /* Restore the original video mode and palette */
++ if (fb_hwrot == 1) {
++ int tmp_ioctl_data=120;
++ ioctl(console_fd, W100FB_CONFIG_EX, &tmp_ioctl_data);
++ }
++
++ ioctl(console_fd, FBIOPUT_VSCREENINFO, &saved_vinfo);
++
++ /* We're all done with the framebuffer */
++ close(console_fd);
++ console_fd = -1;
++ }
++
+ _this->screen->pixels = NULL;
+ QT_GrabInput(_this, SDL_GRAB_OFF);
++/*
++ {
++ QCopEnvelope e("QPE/KeyHelper", "repeater(int)");
++ e << 1;
++ }
++*/
++ if (isKHloaded)
++ system("qcop QPE/KeyHelper \"reload()\""); //QcopEnvelope can't use.
++
+ }
+
++
++
+ static int QT_IconifyWindow(_THIS) {
+ SDL_Win->hide();
+
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/asm_page_h.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/asm_page_h.patch
new file mode 100644
index 0000000..6e532bc
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/asm_page_h.patch
@@ -0,0 +1,48 @@
+Index: SDL-1.2.9/src/video/XFree86/Xxf86dga/XF86DGA.c
+===================================================================
+--- SDL-1.2.9.orig/src/video/XFree86/Xxf86dga/XF86DGA.c 2002-03-05 11:55:31.000000000 -0800
++++ SDL-1.2.9/src/video/XFree86/Xxf86dga/XF86DGA.c 2010-09-15 12:32:47.485210000 -0700
+@@ -18,7 +18,6 @@ Copyright (c) 1995,1996 The XFree86 Pro
+ #define HAS_MMAP_ANON
+ #include <sys/types.h>
+ #include <sys/mman.h>
+-#include <asm/page.h> /* PAGE_SIZE */
+ #define HAS_SC_PAGESIZE /* _SC_PAGESIZE may be an enum for Linux */
+ #define HAS_GETPAGESIZE
+ #endif /* linux */
+Index: SDL-1.2.9/src/video/fbcon/SDL_fbvideo.c
+===================================================================
+--- SDL-1.2.9.orig/src/video/fbcon/SDL_fbvideo.c 2010-09-15 12:31:45.000000000 -0700
++++ SDL-1.2.9/src/video/fbcon/SDL_fbvideo.c 2010-09-15 12:33:01.955210000 -0700
+@@ -35,7 +35,6 @@ static char rcsid =
+ #include <unistd.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+-#include <asm/page.h> /* For definition of PAGE_SIZE */
+
+ #include "SDL.h"
+ #include "SDL_error.h"
+Index: SDL-1.2.9/src/video/ps2gs/SDL_gsyuv.c
+===================================================================
+--- SDL-1.2.9.orig/src/video/ps2gs/SDL_gsyuv.c 2002-11-17 10:56:50.000000000 -0800
++++ SDL-1.2.9/src/video/ps2gs/SDL_gsyuv.c 2010-09-15 12:32:40.695210000 -0700
+@@ -33,7 +33,6 @@ static char rcsid =
+ #include <unistd.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+-#include <asm/page.h> /* For definition of PAGE_SIZE */
+
+ #include "SDL_error.h"
+ #include "SDL_video.h"
+Index: SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+===================================================================
+--- SDL-1.2.9.orig/src/video/qtopia/SDL_sysvideo.cc 2010-09-15 12:31:45.000000000 -0700
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2010-09-15 12:32:54.785210001 -0700
+@@ -40,7 +40,6 @@ static char rcsid =
+ #include <sys/wait.h>
+ #include <linux/fb.h>
+ #include <sys/mman.h>
+-#include <asm/page.h>
+
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_Makefile.am.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_Makefile.am.patch
new file mode 100644
index 0000000..7ad33fb
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_Makefile.am.patch
@@ -0,0 +1,11 @@
+--- SDL-1.2.9.vanilla/Makefile.am 2009-02-24 19:53:25.000000000 +0100
++++ SDL-1.2.9/Makefile.am 2009-02-24 19:54:14.000000000 +0100
+@@ -85,7 +85,7 @@
+ cd src && $(MAKE) install-libLTLIBRARIES
+
+ # Run ldconfig after installing the library:
+-install-hook:
++install-exec-hook:
+ -ldconfig
+
+ # Grab the test programs for the distribution:
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_configure.in.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_configure.in.patch
new file mode 100644
index 0000000..19e1afd
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/fix_configure.in.patch
@@ -0,0 +1,10 @@
+--- SDL-1.2.9.vanilla/configure.in 2009-02-24 19:53:25.000000000 +0100
++++ SDL-1.2.9/configure.in 2009-02-24 20:08:10.000000000 +0100
+@@ -1,6 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(README)
+
++AM_PROG_AS
+ dnl Set various version strings - taken gratefully from the GTk sources
+ #
+ # Making releases:
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch
new file mode 100644
index 0000000..0ad182b
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch
@@ -0,0 +1,140 @@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/Makefile.am SDL-1.2.9/src/video/qtopia/Makefile.am
+--- SDL-1.2.9-orig/src/video/qtopia/Makefile.am 2007-03-12 20:57:23.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/Makefile.am 2007-03-12 20:58:02.000000000 +0100
+@@ -22,4 +22,4 @@
+ # overwrite USER variables
+ CXXLD = $(CC)
+ CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+- $(AM_LDFLAGS) $(LDFLAGS) -o $@
++ $(AM_LDFLAGS) $(LDFLAGS) -lopiecore2 -o $@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc SDL-1.2.9/src/video/qtopia/SDL_QWin.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:57:00.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:58:02.000000000 +0100
+@@ -29,8 +29,11 @@
+ #include "SDL_QWin.h"
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
++#include <opie2/odevice.h>
+ #include <qdirectpainter_qws.h>
+
++using namespace Opie::Core;
++
+ extern int fb_hwrot;
+ extern int fb_direct;
+ extern bool is_VGA_machine;
+@@ -545,18 +548,32 @@
+ case Qt::Key_F7: scancode = SDLK_F7; break;
+ case Qt::Key_F8: scancode = SDLK_F8; break;
+ case Qt::Key_F9:
+- scancode = SDLK_F9;
+- mouse_button_mode=1;
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_y; }
++ else {
++ scancode = SDLK_F9;
++ mouse_button_mode=1; }
+ break;
+ case Qt::Key_F10:
+- scancode = SDLK_F10;
+- mouse_button_mode=2;
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_LALT; }
++ else {
++ scancode = SDLK_F10;
++ mouse_button_mode=2; }
+ break;
+ case Qt::Key_F11: scancode = SDLK_F11; break;
+- case Qt::Key_F12: scancode = SDLK_F12; break;
++ case Qt::Key_F12:
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_RETURN; }
++ else {
++ scancode = SDLK_F12; }
++ break;
+ case Qt::Key_F13:
+- scancode = SDLK_F13;
+- mouse_button_mode=3;
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_ESCAPE; }
++ else {
++ scancode = SDLK_F13;
++ mouse_button_mode=3; }
+ break;
+ case Qt::Key_F14: scancode = SDLK_F14; break;
+ case Qt::Key_F15: scancode = SDLK_F15; break;
+@@ -573,6 +590,9 @@
+ scancode = SDLK_RETURN;
+ break;
+
++ // To use record button on ipaq
++ case Qt::Key_F24: scancode = SDLK_LSHIFT; break;
++
+ default:
+ scancode = SDLK_UNKNOWN;
+ break;
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:55:07.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:58:02.000000000 +0100
+@@ -45,6 +45,7 @@
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
+ #include <qpe/qcopenvelope_qws.h>
++#include <opie2/odevice.h>
+ #include <qgfx_qws.h>
+ #include <qwindowsystem_qws.h>
+ #include <qwidget.h>
+@@ -66,6 +67,8 @@
+ #include "SDL_syswm_c.h"
+ #include "SDL_lowvideo.h"
+
++using namespace Opie::Core;
++
+ //#define QTOPIA_DEBUG
+ #define QTOPIA_LOG
+ #define QT_HIDDEN_SIZE 32 /* starting hidden window size */
+@@ -106,6 +109,7 @@
+ MACHINE_SHARP_SLC760,
+ MACHINE_SHARP_SLC860,
+ MACHINE_SHARP_SL6000,
++ MACHINE_IPAQ,
+ MACHINE_MAX
+ } machine_t;
+
+@@ -119,6 +123,7 @@
+ { "Sharp", "SL-C760", 0 },
+ { "Sharp", "SL-C860", 0 },
+ { "Sharp", "SL-6000", 0 },
++ { "HP", "HP IPAQ", 0 },
+ };
+
+ /* Name of the environment variable used to invert the screen rotation or not:
+@@ -423,6 +428,13 @@
+ machine = MACHINE_SHARP_SLC760;
+ else if (strstr(buf, "SHARP Boxer") != NULL)
+ machine = MACHINE_SHARP_SLC860;
++ else if ( ODevice::inst ( )-> series ( ) == Model_iPAQ )
++ machine = MACHINE_IPAQ;
++ else
++ {
++ machine = MACHINE_SHARP_SL5000D;
++ LOG("Can't detect machine defaulting to SL5000D");
++ }
+ }
+ fclose(fp);
+ } else {
+@@ -679,6 +691,15 @@
+ if (machine == MACHINE_SHARP_SL5500)
+ qteRotation = 3;
+
++ // HP IPaq
++ if ( ODevice::inst( )-> series ( ) == Model_iPAQ ) {
++ qteRotation = 3;
++ }
++ if ( ODevice::inst ( )-> model ( ) == Model_iPAQ_H38xx ) {
++ qteRotation = 1;
++ }
++
++
+ // SL-B500 Íѥϥå¯(¤È¤ê¤¢¤¨¤º¡¢¤Í)
+ if (machine == MACHINE_SHARP_SLB500)
+ qteRotation = 3;
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch
new file mode 100644
index 0000000..7f88956
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch
@@ -0,0 +1,48 @@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc SDL-1.2.9/src/video/qtopia/SDL_QWin.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:55:07.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:56:36.000000000 +0100
+@@ -169,7 +169,12 @@
+ Qt::ButtonState button = e->button();
+ int sdlstate = 0;
+ if( (button & Qt::LeftButton)) {
+- sdlstate |= SDL_BUTTON_LMASK;
++ if (mouse_button_mode == 3)
++ sdlstate |= SDL_BUTTON_RMASK;
++ else if (mouse_button_mode == 2)
++ sdlstate |= SDL_BUTTON_MMASK;
++ else
++ sdlstate |= SDL_BUTTON_LMASK;
+ }
+ if( (button & Qt::RightButton)) {
+ sdlstate |= SDL_BUTTON_RMASK;
+@@ -539,20 +544,20 @@
+ case Qt::Key_F6: scancode = SDLK_F6; break;
+ case Qt::Key_F7: scancode = SDLK_F7; break;
+ case Qt::Key_F8: scancode = SDLK_F8; break;
+- case Qt::Key_F9: scancode = SDLK_F9; break;
+- case Qt::Key_F10:
+- scancode = SDLK_F10;
++ case Qt::Key_F9:
++ scancode = SDLK_F9;
+ mouse_button_mode=1;
+ break;
+- case Qt::Key_F11:
+- scancode = SDLK_F11;
+- mouse_button_mode=3;
+- break;
+- case Qt::Key_F12:
+- scancode = SDLK_F12;
++ case Qt::Key_F10:
++ scancode = SDLK_F10;
+ mouse_button_mode=2;
+ break;
+- case Qt::Key_F13: scancode = SDLK_F13; break;
++ case Qt::Key_F11: scancode = SDLK_F11; break;
++ case Qt::Key_F12: scancode = SDLK_F12; break;
++ case Qt::Key_F13:
++ scancode = SDLK_F13;
++ mouse_button_mode=3;
++ break;
+ case Qt::Key_F14: scancode = SDLK_F14; break;
+ case Qt::Key_F15: scancode = SDLK_F15; break;
+ case Qt::Key_Super_L: scancode = SDLK_LSUPER; break;
diff --git a/recipes-graphics/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch
new file mode 100644
index 0000000..856aaf2
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch
@@ -0,0 +1,11 @@
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc.org 2007-05-25 07:07:32.000000000 +0000
++++ SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2007-05-25 07:24:48.000000000 +0000
+@@ -809,7 +809,7 @@
+ current->pitch = finfo.line_length;
+ current->flags = (SDL_FULLSCREEN|SDL_HWSURFACE);
+ mapped_offset = (((long)finfo.smem_start) -
+- (((long)finfo.smem_start)&~(PAGE_SIZE-1)));
++ (((long)finfo.smem_start)&~(getpagesize()-1)));
+ mapped_memlen = finfo.smem_len+mapped_offset;
+ if(console_fd >0 ) {
+ mapped_mem = mmap(NULL, mapped_memlen,PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
diff --git a/recipes-graphics/libsdl/libsdl-qpe_1.2.9.bb b/recipes-graphics/libsdl/libsdl-qpe_1.2.9.bb
new file mode 100644
index 0000000..8eb2d12
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl-qpe_1.2.9.bb
@@ -0,0 +1,40 @@
+require libsdl.inc
+
+PR = "${INC_PR}.1"
+
+SECTION = "opie/libs"
+DEPENDS = "virtual/libqpe1 libopie2"
+
+SRC_URI += "\
+ file://agawa-piro-mickey-1.2.9.patch \
+ file://pygame-1.2.9.patch \
+ file://mouse-1.2.9.patch \
+ file://kill-stdc++-1.2.9.patch \
+ file://ipaq-1.2.9.patch \
+ file://SDL-Akita-1.2.9.patch \
+ file://fixlibs-1.2.9.patch \
+ file://explicit-extern-C.patch \
+ file://no-PAGE_SIZE.patch \
+ file://fix_Makefile.am.patch \
+ file://fix_configure.in.patch \
+ file://asm_page_h.patch \
+"
+
+EXTRA_OECONF = "--disable-static --disable-debug --enable-cdrom --enable-threads --enable-timers --enable-endian \
+ --enable-file --enable-oss --disable-alsa --disable-esd --disable-arts \
+ --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \
+ --disable-mintaudio --disable-nasm --disable-video-x11 --disable-video-dga \
+ --enable-video-fbcon --disable-video-directfb --disable-video-ps2gs \
+ --disable-video-xbios --disable-video-gem --disable-video-dummy \
+ --disable-video-opengl --enable-input-events --enable-pthreads \
+ --disable-video-picogui --enable-video-qtopia --enable-dlopen"
+
+do_compile_prepend() {
+ if [ "${PALMTOP_USE_MULTITHREADED_QT}" = "yes" ]
+ then
+ sed -i s,-lqte\([^-]\),-lqte-mt, src/Makefile
+ fi
+}
+
+SRC_URI[md5sum] = "80919ef556425ff82a8555ff40a579a0"
+SRC_URI[sha256sum] = "d5a168968051536641ab5a3ba5fc234383511c77a8bc5ceb8bed619bdd42e5f9"
diff --git a/recipes-graphics/libsdl/libsdl.inc b/recipes-graphics/libsdl/libsdl.inc
new file mode 100644
index 0000000..01da500
--- /dev/null
+++ b/recipes-graphics/libsdl/libsdl.inc
@@ -0,0 +1,42 @@
+DESCRIPTION = "Simple DirectMedia Layer - X11 Edition"
+SECTION = "libs"
+PRIORITY = "optional"
+DEPENDS = "alsa-lib virtual/libgl virtual/libx11 libxext"
+DEPENDS_avr32 = "alsa-lib virtual/libx11 libxext"
+PROVIDES = "virtual/libsdl"
+LICENSE = "LGPL"
+
+INC_PR = "r10"
+
+SRC_URI = "\
+ http://www.libsdl.org/release/SDL-${PV}.tar.gz \
+ file://extra-keys.patch \
+ file://pagesize.patch \
+ file://remove_path.patch \
+ file://acinclude.m4"
+S = "${WORKDIR}/SDL-${PV}"
+
+inherit autotools binconfig pkgconfig
+
+EXTRA_OECONF = "<overwrite me>"
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${bindir}/*config"
+
+do_configure_prepend() {
+ rm -f ${S}/acinclude.m4
+ cp ${WORKDIR}/acinclude.m4 ${S}/
+}
+
+do_configure_append () {
+ cd ${S}
+
+ # prevent libtool from linking libs against libstdc++, libgcc, ...
+ cat ${HOST_SYS}-libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${HOST_SYS}-libtool.tmp
+ mv ${HOST_SYS}-libtool.tmp ${HOST_SYS}-libtool
+}
+
+do_stage() {
+ autotools_stage_all
+ rm ${STAGING_LIBDIR}/libSDL.la
+}
diff --git a/recipes-opie/images/jlime-opie.bb b/recipes-opie/images/jlime-opie.bb
new file mode 100644
index 0000000..bb9ad73
--- /dev/null
+++ b/recipes-opie/images/jlime-opie.bb
@@ -0,0 +1,62 @@
+PR = "r1"
+IMAGE_LINGUAS = ""
+
+DEPENDS = "task-base task-opie"
+
+extra_stuff = '${@base_conditional("ROOT_FLASH_SIZE", "24", "", "task-opie-extra-games task-opie-extra-apps task-opie-extra-styles konqueror-embedded",d)}'
+
+IMAGE_INSTALL = "task-base task-opie-base task-opie-base-applets \
+ task-opie-base-inputmethods task-opie-base-apps \
+ task-opie-base-settings task-opie-base-decorations \
+ task-opie-base-styles task-opie-base-pim \
+ task-opie-extra-settings \
+ task-opie-bluetooth task-opie-irda \
+ ${extra_stuff}"
+
+# merge feed-sources into ipkg.conf for opie-aqpkg as it can't handle feed-sources outside of ipkg.conf.
+merge_feeds() {
+
+ if ! test -z "${FEED_URIS}"
+ then
+ # Die gracefully if ipkg-collateral failed
+ if ! test -e "${IMAGE_ROOTFS}/etc/ipkg.conf"
+ then
+ echo "[${IMAGE_ROOTFS}/etc/ipkg.conf] is missing!"
+ exit 1
+ fi
+
+ # comment out existing feed-sources inserted by ipkg-collateral
+ cat ${IMAGE_ROOTFS}/etc/ipkg.conf | sed "s/^src\ /#src\ /" > ${IMAGE_ROOTFS}/etc/ipkg.conf_
+ rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf
+
+ # extract, then delete destinations
+ cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf.dest
+ cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep -v "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf_
+ rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf
+
+
+ for line in ${FEED_URIS}
+ do
+ # strip leading and trailing spaces/tabs, then split into name and uri
+ line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`"
+ feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`"
+ feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"
+
+ # insert new feed-sources
+ echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg.conf
+ done
+
+ # remove temporary files and rebuild ipkg.conf
+ echo "" >> ${IMAGE_ROOTFS}/etc/ipkg.conf
+ cat ${IMAGE_ROOTFS}/etc/ipkg.conf.dest >> ${IMAGE_ROOTFS}/etc/ipkg.conf
+ rm ${IMAGE_ROOTFS}/etc/ipkg.conf.dest
+
+ # remove -feed.conf files which are no longer needed
+ cd ${IMAGE_ROOTFS}/etc/ipkg/ && rm -- *-feed.conf
+ fi
+}
+
+# merge feed-sources into ipkg.conf and create /etc/timestamp from build date
+IMAGE_PREPROCESS_COMMAND = "merge_feeds; create_etc_timestamp"
+
+inherit image
diff --git a/recipes-opie/images/opie-image-16mb.bb b/recipes-opie/images/opie-image-16mb.bb
new file mode 100644
index 0000000..8569e95
--- /dev/null
+++ b/recipes-opie/images/opie-image-16mb.bb
@@ -0,0 +1,19 @@
+IMAGE_LINGUAS = ""
+
+DEPENDS = "task-boot task-opie-16mb"
+
+ANGSTROM_EXTRA_INSTALL ?= ""
+IMAGE_INSTALL = "task-boot \
+ dropbear \
+ task-opie-16mb-base \
+ task-opie-16mb-applets \
+ task-opie-16mb-inputmethods \
+ task-opie-16mb-settings \
+ task-opie-16mb-apps \
+ task-opie-16mb-pim \
+ ${ANGSTROM_EXTRA_INSTALL} "
+
+# create /etc/timestamp from build date
+IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"
+
+inherit image
diff --git a/recipes-opie/images/opie-image.bb b/recipes-opie/images/opie-image.bb
new file mode 100644
index 0000000..4a984a0
--- /dev/null
+++ b/recipes-opie/images/opie-image.bb
@@ -0,0 +1,18 @@
+IMAGE_LINGUAS = ""
+
+DEPENDS = "task-base task-opie"
+
+ANGSTROM_EXTRA_INSTALL ?= ""
+IMAGE_INSTALL = "task-base-extended task-opie-base task-opie-base-applets \
+ task-opie-base-inputmethods task-opie-base-apps \
+ task-opie-base-settings task-opie-base-decorations \
+ task-opie-base-styles task-opie-base-pim \
+ task-opie-extra-settings \
+ ${@base_contains("COMBINED_FEATURES", "bluetooth", "task-opie-bluetooth", "",d)} \
+ ${@base_contains("COMBINED_FEATURES", "irda", "task-opie-irda", "",d)} \
+ ${ANGSTROM_EXTRA_INSTALL} "
+
+# create /etc/timestamp from build date
+IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"
+
+inherit image
diff --git a/recipes-opie/images/opie-kdepim-image.bb b/recipes-opie/images/opie-kdepim-image.bb
new file mode 100644
index 0000000..a8cb28b
--- /dev/null
+++ b/recipes-opie/images/opie-kdepim-image.bb
@@ -0,0 +1,7 @@
+require opie-image.bb
+
+DEPENDS += "kdepimpi"
+
+export IMAGE_BASENAME = "opie-kdepim-image"
+
+IMAGE_INSTALL += "kopi kapi kammu kopi-applet"
diff --git a/recipes-opie/images/opie-xqtlauncher-image.bb b/recipes-opie/images/opie-xqtlauncher-image.bb
new file mode 100644
index 0000000..db32a1e
--- /dev/null
+++ b/recipes-opie/images/opie-xqtlauncher-image.bb
@@ -0,0 +1,7 @@
+require opie-image.bb
+
+DEPENDS += "task-xqtlauncher"
+
+export IMAGE_BASENAME = "opie-xqtlauncher-image"
+
+IMAGE_INSTALL += "task-xqtlauncher task-xqtlauncher-blackbox"
diff --git a/recipes-opie/libmailwrapper/libmailwrapper.inc b/recipes-opie/libmailwrapper/libmailwrapper.inc
new file mode 100644
index 0000000..c72ae36
--- /dev/null
+++ b/recipes-opie/libmailwrapper/libmailwrapper.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Qt-based class wrapper of libetpan"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "libetpan"
+
+S = "${WORKDIR}/libmailwrapper"
+
+inherit opie
+
+do_install() {
+ oe_libinstall -so libmailwrapper ${D}${libdir}
+ install -d ${D}${includedir}/libmailwrapper/
+ install -m 0664 ${S}/maildefines.h ${D}${includedir}/libmailwrapper/
+ install -m 0664 ${S}/settings.h ${D}${includedir}/libmailwrapper/
+ install -m 0664 ${S}/statusmail.h ${D}${includedir}/libmailwrapper/
+ install -m 0664 ${S}/abstractmail.h ${D}${includedir}/libmailwrapper/
+ install -m 0664 ${S}/mailtypes.h ${D}${includedir}/libmailwrapper/
+}
diff --git a/recipes-opie/libmailwrapper/libmailwrapper_1.2.5.bb b/recipes-opie/libmailwrapper/libmailwrapper_1.2.5.bb
new file mode 100644
index 0000000..0ebdc39
--- /dev/null
+++ b/recipes-opie/libmailwrapper/libmailwrapper_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r1"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_mail_libmailwrapper.tar.bz2;name=split_noncore_net_mail_libmailwrapper"
+SRC_URI[split_noncore_net_mail_libmailwrapper.md5sum] = "3d155efe75838caf4c957dc3de677d41"
+SRC_URI[split_noncore_net_mail_libmailwrapper.sha256sum] = "7aaacbb6b30c5501bcb692d14c6389d7fc218632250f375248720dba030b2bbb"
diff --git a/recipes-opie/libmailwrapper/libmailwrapper_cvs.bb b/recipes-opie/libmailwrapper/libmailwrapper_cvs.bb
new file mode 100644
index 0000000..24b3884
--- /dev/null
+++ b/recipes-opie/libmailwrapper/libmailwrapper_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/mail/libmailwrapper"
diff --git a/recipes-opie/libopie/libopie2.inc b/recipes-opie/libopie/libopie2.inc
new file mode 100644
index 0000000..e91ac7b
--- /dev/null
+++ b/recipes-opie/libopie/libopie2.inc
@@ -0,0 +1,112 @@
+DESCRIPTION = "Base libraries for the Open Palmtop Integrated Environment"
+HOMEPAGE = "http://opie.handhelds.org"
+SECTION = "opie/libs"
+LICENSE = "LGPL"
+I18N_FILES = "libopiecore2.ts libopiesecurity2.ts"
+DEPENDS = "libqpe-opie libpcap sqlite3 bluez-libs"
+PROVIDES = "libopiecore2 libopiedb2 libopiemm2 libopiesecurity2 libopienet2 libopiepim2 libopieui2"
+
+S = "${WORKDIR}/libopie2"
+
+inherit opie
+
+PARALLEL_MAKE = ""
+
+#FIXME: Add machine specific bits here. Best use oe_machinstall and read from a given file
+
+EXTRA_QMAKEVARS_POST += 'DEFINES+=OPIE_NEW_MALLOC \
+ DEFINES+="OPIE_SOUND_FRAGMENT_SHIFT=16" \
+ DEFINES+=OPIE_NO_ERASE_RECT_HACKFIX \
+ LIBS+=-L${S} LIBS+="-Wl,-rpath-link,${S}" \
+ INCLUDEPATH+=${S}/include'
+
+ENABLE_SQL_PIM_BACKEND = "y"
+# NOTE: Machines with too little amount of flash may want to disable SQL backend support
+# (known not to fit in 16MB).
+#ENABLE_SQL_PIM_BACKEND_smallmachine = "n"
+EXTRA_QMAKEVARS_PRE += 'ENABLE_SQL_PIM_BACKEND=${ENABLE_SQL_PIM_BACKEND}'
+
+MODULES = "opiecore opiedb opiemm opienet opiepim opiesecurity opieui opiebluez"
+LIBS = "core2 db2 mm2 net2 pim2 security2 ui2 bluez2"
+PRIVATE = "opimcontactsortvector.h opimoccurrence_p.h opimsortvector.h \
+ opimtodosortvector.h vobject_p.h opimeventsortvector.h opimmemosortvector.h"
+
+# uclibc doesn't have backtrace()
+python __anonymous () {
+ import bb, re
+ if (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None):
+ bb.data.setVar("EXTRA_QMAKEVARS_POST_append", " DEFINES+=OPIE_NO_BACKTRACE ", d)
+}
+
+do_compile() {
+ install -d ${S}/include/opie2
+ for module in ${MODULES}
+ do
+ cd $module
+ for i in `find . -name "*.h"`
+ do
+ filenm=`echo $i | sed 's!^\./!!'`
+ ln -sf ../../$module/$filenm ${S}/include/opie2/
+ done
+ cd ..
+ done
+
+ install -d ${S}/include/opie2/private
+ for header in ${PRIVATE}
+ do
+ ln -sf ../../../opiepim/private/$header ${S}/include/opie2/private
+ done
+
+ oe_runmake MOC=${STAGING_BINDIR_NATIVE}/moc UIC=${STAGING_BINDIR_NATIVE}/uic DESTDIR=${S}
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ for f in ${LIBS}
+ do
+ oe_libinstall -so libopie$f ${D}${libdir}
+ done
+
+ install -m 0644 ${WORKDIR}/include.pro ${OPIEDIR}/include.pro
+
+ install -d ${D}${includedir}/opie2/
+ for module in ${MODULES}
+ do
+ cd $module
+ for i in `find . -name "*.h"`
+ do
+ if [[ $i != ./private/* ]] ; then
+ install -m 0644 $i ${D}${includedir}/opie2/`basename $i`
+ fi
+ done
+ cd ..
+ done
+ # Remove some headers we don't want packaged
+ rm ${D}${includedir}/opie2/stable_pch.h
+ rm ${D}${includedir}/opie2/ofileselector_p.h
+ rm ${D}${includedir}/opie2/okeyconfigwidget_p.h
+ rm ${D}${includedir}/opie2/okeyconfigmanager_p.h
+ rm ${D}${includedir}/opie2/ima_rw.h
+ rm ${D}${includedir}/opie2/udp_ports.h
+ rm ${D}${includedir}/opie2/odevice_*.h
+}
+
+PACKAGES_prepend = " libopiecore2 libopiedb2 libopiesecurity2 libopiemm2 libopienet2 libopiepim2 libopieui2 libopiebluez2 "
+
+DESCRIPTION_libopiecore2 = "Opie Development Platform 1.x Core Library"
+FILES_libopiecore2 = "${libdir}/libopiecore2.so.*"
+DESCRIPTION_libopiedb2 = "Opie Development Platform 1.x Database Library"
+FILES_libopiedb2 = "${libdir}/libopiedb2.so.*"
+DESCRIPTION_libopiemm2 = "Opie Development Platform 1.x Multimedia Library"
+FILES_libopiemm2 = "${libdir}/libopiemm2.so.*"
+DESCRIPTION_libopienet2 = "Opie Development Platform 1.x Network Library"
+FILES_libopienet2 = "${libdir}/libopienet2.so.*"
+DESCRIPTION_libopiepim2 = "Opie Development Platform 1.x PIM Library"
+FILES_libopiepim2 = "${libdir}/libopiepim2.so.*"
+DESCRIPTION_libopieui2 = "Opie Development Platform 1.x User Interface Library"
+FILES_libopieui2 = "${libdir}/libopieui2.so.*"
+DESCRIPTION_libopiesecurity2 = "Opie Development Platform 1.x Security Library"
+FILES_libopiesecurity2 = "${libdir}/libopiesecurity2.so.*"
+DESCRIPTION_libopiebluez2 = "Opie Development Platform 1.x Bluetooth Library"
+FILES_libopiebluez2 = "${libdir}/libopiebluez2.so.*"
+
diff --git a/recipes-opie/libopie/libopie2/gcc45_opiemm_include.patch b/recipes-opie/libopie/libopie2/gcc45_opiemm_include.patch
new file mode 100644
index 0000000..ca07344
--- /dev/null
+++ b/recipes-opie/libopie/libopie2/gcc45_opiemm_include.patch
@@ -0,0 +1,14 @@
+Index: libopie2/opiemm/owavrecorder.cpp
+===================================================================
+--- libopie2.orig/opiemm/owavrecorder.cpp 2010-12-22 23:55:07.000000000 +0000
++++ libopie2/opiemm/owavrecorder.cpp 2010-12-22 23:55:39.000000000 +0000
+@@ -28,6 +28,9 @@
+
+ #include "owavrecorder.h"
+
++#include <sys/types.h>
++#include <sys/stat.h>
++
+ extern "C" {
+ #include "ima_rw.h"
+ }
diff --git a/recipes-opie/libopie/libopie2/include.pro b/recipes-opie/libopie/libopie2/include.pro
new file mode 100644
index 0000000..c76634a
--- /dev/null
+++ b/recipes-opie/libopie/libopie2/include.pro
@@ -0,0 +1,36 @@
+# we don't want to modify subdir .pro's
+!contains( TEMPLATE, subdirs ) {
+# if it's already a lib, we ignore it
+!contains( TEMPLATE, lib ) {
+
+ contains( CONFIG, quick-app ) {
+ message ( Building a quicklaunch application )
+ TEMPLATE = lib
+ CONFIG += plugin
+ DEFINES += OPIE_APP_INTERFACE
+ DEFINES += QUICKAPP_NAME="\"$${TARGET}\""
+
+ system ( touch visibility_qmake_test.c )
+ # Test if the compiler supports visibility
+ system ( $$(CC) -fvisibility=hidden -c -o visibility_qmake_test.o visibility_qmake_test.c ) {
+ message ( "Your compiler does support visibility, we will use it" )
+ DEFINES += GCC_SUPPORTS_VISIBILITY
+ QMAKE_CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
+ QMAKE_CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
+ system ( rm visibility_qmake_test.o )
+ }
+ system ( rm visibility_qmake_test.c )
+
+ }
+
+ !contains ( CONFIG, quick-app ) {
+ message( Building a standalone application )
+ TEMPLATE = app
+ DEFINES -= OPIE_APP_INTERFACE
+ DEFINES += QUICKAPP_NAME="\"$${TARGET}\""
+ }
+}
+}
+
+DEFINES += OPIE_NEW_MALLOC
+DEFINES += OPIE_NO_ERASE_RECT_HACKFIX
diff --git a/recipes-opie/libopie/libopie2/poodle-2.6-hotkeys.patch b/recipes-opie/libopie/libopie2/poodle-2.6-hotkeys.patch
new file mode 100644
index 0000000..748f316
--- /dev/null
+++ b/recipes-opie/libopie/libopie2/poodle-2.6-hotkeys.patch
@@ -0,0 +1,16 @@
+--- libopie2/opiecore/device/odevice_zaurus.cpp.orig 2006-05-16 13:53:40.190417936 +0200
++++ libopie2/opiecore/device/odevice_zaurus.cpp 2006-05-16 13:53:56.606922248 +0200
+@@ -61,11 +61,11 @@
+ using namespace Opie::Core::Internal;
+
+ struct z_button z_buttons [] = {
+- { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
++ { Qt::Key_Control, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
+ "devicebuttons/z_calendar",
+ "datebook", "nextView()",
+ "today", "raise()" },
+- { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
++ { Qt::Key_Alt, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
+ "devicebuttons/z_contact",
+ "addressbook", "raise()",
+ "addressbook", "beamBusinessCard()" },
diff --git a/recipes-opie/libopie/libopie2_1.2.5.bb b/recipes-opie/libopie/libopie2_1.2.5.bb
new file mode 100644
index 0000000..79f71dc
--- /dev/null
+++ b/recipes-opie/libopie/libopie2_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r3"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_libopie2.tar.bz2;name=split_libopie2 \
+ file://gcc45_opiemm_include.patch \
+ file://include.pro"
+SRC_URI[split_libopie2.md5sum] = "7258c4154c91b28a24030e029782da6f"
+SRC_URI[split_libopie2.sha256sum] = "5e1d831c9e5acbba15a3ec78aba5eff5f5dbf5e27cf469f6de693176fc7cd621"
+
+# FIXME remove this!
+SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch"
+
diff --git a/recipes-opie/libopie/libopie2_cvs.bb b/recipes-opie/libopie/libopie2_cvs.bb
new file mode 100644
index 0000000..8ffefe0
--- /dev/null
+++ b/recipes-opie/libopie/libopie2_cvs.bb
@@ -0,0 +1,12 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r14"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=libopie2 \
+ file://include.pro"
+
+# FIXME remove this!
+SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch"
diff --git a/recipes-opie/libopieobex/files/disable-bt-check.patch b/recipes-opie/libopieobex/files/disable-bt-check.patch
new file mode 100644
index 0000000..067af14
--- /dev/null
+++ b/recipes-opie/libopieobex/files/disable-bt-check.patch
@@ -0,0 +1,19 @@
+--- obex/obex.pro 2007-07-20 23:44:06.000000000 +1200
++++ obex/obex.pro 2007-10-18 17:57:15.000000000 +1300
+@@ -13,12 +13,12 @@
+ include( $(OPIEDIR)/include.pro )
+ target.path = $$prefix/plugins/applets
+
+-#FIXME: These parameters are used if bluetooth is used
+-CONFTEST = $$system( echo $CONFIG_LIBOPIETOOTH )
+-contains( CONFTEST, y ){
++#FIXME: This test does not work under OE. Instead, just always enable bluetooth.
++#CONFTEST = $$system( echo $CONFIG_LIBOPIETOOTH )
++#contains( CONFTEST, y ){
+ HEADERS += btobex.h
+ SOURCES += btobex.cpp
+ INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib
+ LIBS += -lopietooth1 -lbluetooth
+ DEFINES += BLUETOOTH
+-}
++#}
diff --git a/recipes-opie/libopieobex/libopieobex0.inc b/recipes-opie/libopieobex/libopieobex0.inc
new file mode 100644
index 0000000..87d0dd7
--- /dev/null
+++ b/recipes-opie/libopieobex/libopieobex0.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "IrDA obex support library"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "libopietooth1 opie-taskbar openobex-apps"
+RDEPENDS_${PN} = "openobex-apps"
+APPNAME = "obex"
+
+S = "${WORKDIR}/obex"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/opietooth"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/ ${D}${palmtopdir}/plugins/obex/
+ install -m 0644 ${WORKDIR}/pics/backup/check.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ oe_libinstall -so libopieobex ${D}${palmtopdir}/plugins/obex/
+}
+
+FILES_${PN} = "${palmtopdir}/plugins/obex/ ${palmtopdir}/pics/obex/"
+FILES_${PN}-dev = "${palmtopdir}/plugins/obex/lib*.so"
+FILES_${PN}-dbg = "${palmtopdir}/plugins/obex/.debug"
+
+
+
diff --git a/recipes-opie/libopieobex/libopieobex0_1.2.5.bb b/recipes-opie/libopieobex/libopieobex0_1.2.5.bb
new file mode 100644
index 0000000..43f0a9b
--- /dev/null
+++ b/recipes-opie/libopieobex/libopieobex0_1.2.5.bb
@@ -0,0 +1,10 @@
+require libopieobex0.inc
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_obex.tar.bz2;name=split_core_obex \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ file://disable-bt-check.patch"
+SRC_URI[split_core_obex.md5sum] = "9fff83489fa298d5fe0b698936eb6a8d"
+SRC_URI[split_core_obex.sha256sum] = "e92b9d37ef2c4de2f9264eaa4ee59a56fc710bf6cd0c22cdc117d855d5379c5a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/libopieobex/libopieobex0_cvs.bb b/recipes-opie/libopieobex/libopieobex0_cvs.bb
new file mode 100644
index 0000000..318bee6
--- /dev/null
+++ b/recipes-opie/libopieobex/libopieobex0_cvs.bb
@@ -0,0 +1,7 @@
+require libopieobex0.inc
+PV = "${OPIE_GIT_PV}"
+PR = "r8"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/obex \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ file://disable-bt-check.patch"
diff --git a/recipes-opie/libopietooth/libopietooth1.inc b/recipes-opie/libopietooth/libopietooth1.inc
new file mode 100644
index 0000000..9f1815f
--- /dev/null
+++ b/recipes-opie/libopietooth/libopietooth1.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Opie Bluetooth library"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+DEPENDS = "libopie2"
+LICENSE = "LGPL"
+
+S = "${WORKDIR}/lib"
+
+inherit opie
+
+do_install() {
+ oe_libinstall -so libopietooth1 ${D}${libdir}
+ install -d ${D}${includedir}/opietooth/
+ install -m 0644 *.h ${D}${includedir}/opietooth/
+}
diff --git a/recipes-opie/libopietooth/libopietooth1_1.2.5.bb b/recipes-opie/libopietooth/libopietooth1_1.2.5.bb
new file mode 100644
index 0000000..f2fd003
--- /dev/null
+++ b/recipes-opie/libopietooth/libopietooth1_1.2.5.bb
@@ -0,0 +1,6 @@
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opietooth_lib.tar.bz2;name=split_noncore_net_opietooth_lib"
+SRC_URI[split_noncore_net_opietooth_lib.md5sum] = "f70680fddded64a85d9e33526ca328a6"
+SRC_URI[split_noncore_net_opietooth_lib.sha256sum] = "f8e356ae914c28e5e4a7388736fee463f6c29d9a0169272e4cd3a15d94106557"
+PR = "r0"
+
+require libopietooth1.inc
diff --git a/recipes-opie/libopietooth/libopietooth1_cvs.bb b/recipes-opie/libopietooth/libopietooth1_cvs.bb
new file mode 100644
index 0000000..7c0cf52
--- /dev/null
+++ b/recipes-opie/libopietooth/libopietooth1_cvs.bb
@@ -0,0 +1,5 @@
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opietooth/lib"
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+require libopietooth1.inc
diff --git a/recipes-opie/libqpe/libqpe-opie.inc b/recipes-opie/libqpe/libqpe-opie.inc
new file mode 100644
index 0000000..1673588
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie.inc
@@ -0,0 +1,62 @@
+DESCRIPTION = "Base library for the Qt/Embedded based palmtop environments"
+HOMEPAGE = "http://www.trolltech.com"
+AUTHOR = "The Trolls"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "uicmoc-native virtual/libqte2 sysfsutils"
+PROVIDES = "virtual/libqpe1"
+INC_PR = "r9"
+S = "${WORKDIR}/library"
+
+inherit palmtop
+
+OE_QMAKE_CXXFLAGS := "${@oe_filter_out('-fno-rtti', '${OE_QMAKE_CXXFLAGS}', d)}"
+QMAKE_PROFILES = "library.pro"
+EXTRA_QMAKEVARS_PRE += "CONFIG+=LIBQPE_WITHROHFEEDBACK"
+EXTRA_QMAKEVARS_POST += "DESTDIR= DEFINES+=LIBQPE_NO_INLINE_IMAGES"
+
+CXXFLAGS_append = " -frtti -DOPIE_NO_ERASE_RECT_HACKFIX -DOPIE_NEW_MALLOC"
+
+do_compile() {
+ mkdir -p ${STAGING_INCDIR}/qpe \
+ ${STAGING_INCDIR}/qtopia \
+ ${STAGING_INCDIR}/opie \
+ ${STAGING_INCDIR}/opie2 \
+ ${STAGING_INCDIR}/qtopia/private
+ for i in ${S}/*.h
+ do
+ install -m 0644 $i ${STAGING_INCDIR}/qpe/`basename $i`
+ install -m 0644 $i ${STAGING_INCDIR}/qtopia/`basename $i`
+ install -m 0644 $i ${STAGING_INCDIR}/qtopia/private/`basename $i`
+ done
+ for i in ${S}/backend/*.h
+ do
+ install -m 0644 $i ${STAGING_INCDIR}/qpe/`basename $i`
+ install -m 0644 $i ${STAGING_INCDIR}/qtopia/`basename $i`
+ install -m 0644 $i ${STAGING_INCDIR}/qtopia/private/`basename $i`
+ done
+ rm -f ${STAGING_INCDIR}/qtopia/*_p.h # remove private stuff out of qtopia
+ oe_runmake MOC=${STAGING_BINDIR_NATIVE}/moc UIC=${STAGING_BINDIR_NATIVE}/uic
+}
+
+do_install() {
+ oe_libinstall -so libqpe ${D}${libdir}
+
+ install -d ${D}${includedir}/qpe \
+ ${D}${includedir}/qtopia/private
+
+ for i in ${S}/*.h
+ do
+ install -m 0644 $i ${D}${includedir}/qpe/`basename $i`
+ install -m 0644 $i ${D}${includedir}/qtopia/`basename $i`
+ install -m 0644 $i ${D}${includedir}/qtopia/private/`basename $i`
+ done
+ for i in ${S}/backend/*.h
+ do
+ install -m 0644 $i ${D}${includedir}/qpe/`basename $i`
+ install -m 0644 $i ${D}${includedir}/qtopia/`basename $i`
+ install -m 0644 $i ${D}${includedir}/qtopia/private/`basename $i`
+ done
+ rm -f ${D}${includedir}/qtopia/*_p.h # remove private stuff out of qtopia
+}
diff --git a/recipes-opie/libqpe/libqpe-opie/citytime-path-2.patch b/recipes-opie/libqpe/libqpe-opie/citytime-path-2.patch
new file mode 100644
index 0000000..27cb963
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie/citytime-path-2.patch
@@ -0,0 +1,11 @@
+--- library/tzselect.cpp 12 Jan 2008 10:14:42 -0000 1.13
++++ library/tzselect.cpp 30 Aug 2008 15:32:13 -0000
+@@ -270,7 +270,7 @@
+ void TimeZoneSelector::slotExecute( void )
+ {
+ // execute the world time application...
+- if (QFile::exists(QPEApplication::qpeDir()+"bin/citytime"))
++ if (QFile::exists(OPIE_BINDIR "/citytime"))
+ Global::execute( "citytime" );
+ else
+ QMessageBox::warning(this,tr("citytime executable not found"),
diff --git a/recipes-opie/libqpe/libqpe-opie/fix-titleheight.patch b/recipes-opie/libqpe/libqpe-opie/fix-titleheight.patch
new file mode 100644
index 0000000..da8d91e
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie/fix-titleheight.patch
@@ -0,0 +1,19 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- library/qpedecoration_qws.cpp~fix-titleheight
++++ library/qpedecoration_qws.cpp
+@@ -326,9 +326,9 @@
+ switch ( m ) {
+ case TitleHeight:
+ if ( QApplication::desktop()->height() > 320 )
+- return 19;
++ return 28;
+ else
+- return 15;
++ return 14;
+ case LeftBorder:
+ case RightBorder:
+ case TopBorder:
diff --git a/recipes-opie/libqpe/libqpe-opie/no-include-pro.patch b/recipes-opie/libqpe/libqpe-opie/no-include-pro.patch
new file mode 100644
index 0000000..5a836ca
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie/no-include-pro.patch
@@ -0,0 +1,11 @@
+--- library/library.pro.old 2008-10-01 23:43:30.000000000 +0100
++++ library/library.pro 2008-10-01 23:43:49.000000000 +0100
+@@ -134,8 +134,6 @@
+ DESTDIR = $(OPIEDIR)/lib$(PROJMAK)
+ VERSION = 1.5.0.1
+
+-include( $(OPIEDIR)/include.pro )
+-
+ contains( CONFIG, LIBQPE_WITHROHFEEDBACK ){
+ DEFINES += OPIE_WITHROHFEEDBACK
+ SOURCES += backend/rohfeedback.cpp
diff --git a/recipes-opie/libqpe/libqpe-opie/unbreak-logging-2.patch b/recipes-opie/libqpe/libqpe-opie/unbreak-logging-2.patch
new file mode 100644
index 0000000..fe4bb88
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie/unbreak-logging-2.patch
@@ -0,0 +1,21 @@
+--- library/qpeapplication.cpp
++++ library/qpeapplication.cpp
+@@ -803,14 +803,14 @@ static void qtopiaMsgHandler(QtMsgType type, const char* msg)
+ {
+ switch ( type ) {
+ case QtDebugMsg:
+-#ifdef QT_DEBUG
++//#ifdef QT_DEBUG
+ fprintf( stderr, "Debug: %s\n", msg );
+-#endif
++//#endif
+ break;
+ case QtWarningMsg:
+-#ifdef QT_DEBUG
++//#ifdef QT_DEBUG
+ fprintf( stderr, "Warning: %s\n", msg );
+-#endif
++//#endif
+ break;
+ case QtFatalMsg:
+ fprintf( stderr, "Fatal: %s\n", msg );
diff --git a/recipes-opie/libqpe/libqpe-opie_1.2.5.bb b/recipes-opie/libqpe/libqpe-opie_1.2.5.bb
new file mode 100644
index 0000000..f31bdb0
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie_1.2.5.bb
@@ -0,0 +1,12 @@
+require ${PN}.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_library.tar.bz2;name=split_library \
+ file://fix-titleheight.patch \
+ file://unbreak-logging-2.patch \
+ file://citytime-path-2.patch \
+ file://no-include-pro.patch \
+ "
+SRC_URI[split_library.md5sum] = "195ede745b2d1b2111f97654151b7af4"
+SRC_URI[split_library.sha256sum] = "aace8f512c0f8f0e23509599c60ec12cf41145bc583d814228db0fcb356a0ea0"
diff --git a/recipes-opie/libqpe/libqpe-opie_cvs.bb b/recipes-opie/libqpe/libqpe-opie_cvs.bb
new file mode 100644
index 0000000..41a6e33
--- /dev/null
+++ b/recipes-opie/libqpe/libqpe-opie_cvs.bb
@@ -0,0 +1,17 @@
+require ${PN}.inc
+
+# OPIE_GIT_PV is defined in opie.bbclass
+# but this recipe does not inherit opie
+# so any updates to OPIE_GIT_PV should happen
+# in both places.
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "${INC_PR}.0"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=library \
+ file://fix-titleheight.patch \
+ file://unbreak-logging-2.patch \
+ file://citytime-path-2.patch \
+ file://no-include-pro.patch \
+ "
diff --git a/recipes-opie/libqtaux/libqtaux2.inc b/recipes-opie/libqtaux/libqtaux2.inc
new file mode 100644
index 0000000..98164a2
--- /dev/null
+++ b/recipes-opie/libqtaux/libqtaux2.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "Qt/Embedded 2 Auxilliary libraries"
+HOMEPAGE = "http://opie.handhelds.org"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+INC_PR = "r2"
+
+S = "${WORKDIR}/libqtaux"
+
+inherit opie
+
+do_compile() {
+ oe_runmake MOC=${STAGING_BINDIR_NATIVE}/moc UIC=${STAGING_BINDIR_NATIVE}/uic DESTDIR=${S}
+}
+
+do_install() {
+ install -d ${D}${includedir}/opie2
+ for i in `find . -name "*.h"`
+ do
+ install -m 0644 $i ${D}${includedir}/opie2/`basename $i`
+ done
+
+ oe_libinstall -so libqtaux2 ${D}${libdir}
+}
diff --git a/recipes-opie/libqtaux/libqtaux2_1.2.5.bb b/recipes-opie/libqtaux/libqtaux2_1.2.5.bb
new file mode 100644
index 0000000..0395aa2
--- /dev/null
+++ b/recipes-opie/libqtaux/libqtaux2_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_libqtaux.tar.bz2;name=split_libqtaux"
+SRC_URI[split_libqtaux.md5sum] = "4d9148573545948870358e3612be18ba"
+SRC_URI[split_libqtaux.sha256sum] = "0acfa28d3f43c1a990fea30c2306053d42664fa196c68b20e009ac6408ff04f8"
diff --git a/recipes-opie/libqtaux/libqtaux2_cvs.bb b/recipes-opie/libqtaux/libqtaux2_cvs.bb
new file mode 100644
index 0000000..b07112f
--- /dev/null
+++ b/recipes-opie/libqtaux/libqtaux2_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "${INC_PR}.0"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=libqtaux"
diff --git a/recipes-opie/meta/meta-opie-all.bb b/recipes-opie/meta/meta-opie-all.bb
new file mode 100644
index 0000000..e6a0da7
--- /dev/null
+++ b/recipes-opie/meta/meta-opie-all.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Meta-package for QPE stuff"
+SECTION = "opie/base"
+LICENSE = "MIT"
+PR = "r4"
+
+RDEPENDS_${PN} = " \
+ task-qpe-applets \
+ task-qpe-games \
+ task-qpe-inputmethods \
+ task-qpe-multimedia \
+ task-qpe-emulators \
+ task-qpe-applications \
+ task-qpe-fonts \
+ task-qpe-settings"
+
+inherit meta
diff --git a/recipes-opie/meta/meta-opie.bb b/recipes-opie/meta/meta-opie.bb
new file mode 100644
index 0000000..1584765
--- /dev/null
+++ b/recipes-opie/meta/meta-opie.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Meta-package for Opie"
+SECTION = "opie/base"
+PR = "r35"
+LICENSE = "MIT"
+
+RDEPENDS_${PN} = "task-opie-applets task-opie-apps task-opie-base \
+ task-opie-base-applets task-opie-base-apps \
+ task-opie-base-decorations task-opie-base-inputmethods \
+ task-opie-base-pim task-opie-base-settings \
+ task-opie-base-styles \
+ ${@base_contains("COMBINED_FEATURES", "bluetooth", "task-opie-bluetooth", "",d)} \
+ task-opie-datebookplugins task-opie-decorations \
+ task-opie-extra-apps task-opie-extra-settings \
+ task-opie-extra-styles task-opie-extra-games \
+ ${@base_contains("COMBINED_FEATURES", "irda", "task-opie-irda", "",d)} \
+ task-opie-games task-opie-inputmethods \
+ task-opie-multimedia task-opie-pim task-opie-settings \
+ task-opie-styles task-opie-todayplugins task-opie-wlan"
+
+inherit meta
diff --git a/recipes-opie/meta/meta-toolchain-opie.bb b/recipes-opie/meta/meta-toolchain-opie.bb
new file mode 100644
index 0000000..9f4b9ac
--- /dev/null
+++ b/recipes-opie/meta/meta-toolchain-opie.bb
@@ -0,0 +1,8 @@
+PR = "r1"
+TOOLCHAIN_TARGET_TASK = "\
+ task-sdk-base \
+ task-sdk-opie"
+
+require meta-toolchain.bb
+
+SDK_SUFFIX = "toolchain-opie"
diff --git a/recipes-opie/nonworking/opie-dagger/opie-dagger.inc b/recipes-opie/nonworking/opie-dagger/opie-dagger.inc
new file mode 100644
index 0000000..7ba8962
--- /dev/null
+++ b/recipes-opie/nonworking/opie-dagger/opie-dagger.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "A Bible study program utilizing the Sword library."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libopiecore2 libopieui2 sword"
+APPNAME = "dagger"
+
+EXTRA_QMAKEVARS_PRE += "LIBSWORD_INC_DIR=${STAGING_INCDIR}/sword"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/nonworking/opie-dagger/opie-dagger_1.2.5.bb b/recipes-opie/nonworking/opie-dagger/opie-dagger_1.2.5.bb
new file mode 100644
index 0000000..c218b1b
--- /dev/null
+++ b/recipes-opie/nonworking/opie-dagger/opie-dagger_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_dagger.tar.bz2 \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2 \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2"
+
diff --git a/recipes-opie/nonworking/opie-dagger/opie-dagger_cvs.bb b/recipes-opie/nonworking/opie-dagger/opie-dagger_cvs.bb
new file mode 100644
index 0000000..2bffd49
--- /dev/null
+++ b/recipes-opie/nonworking/opie-dagger/opie-dagger_cvs.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/dagger \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
+
diff --git a/recipes-opie/nonworking/opie-dasher/opie-dasher.inc b/recipes-opie/nonworking/opie-dasher/opie-dasher.inc
new file mode 100644
index 0000000..9903dd9
--- /dev/null
+++ b/recipes-opie/nonworking/opie-dasher/opie-dasher.inc
@@ -0,0 +1,45 @@
+DESCRIPTION = "Dasher text input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qdasher"
+
+
+S = "${WORKDIR}/dasher"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /opt/QtPalmtop/bin/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+/opt/QtPalmtop/bin/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqdasher.so* share/dasher/alphabet.xml
+# FILES share/dasher/training_*.txt
+do_install() {
+ install -d ${D}${palmtopdir}/share/dasher/
+ install -m 0644 ${WORKDIR}/share/dasher/alphabet.xml ${D}${palmtopdir}/share/dasher/
+ for f in ${WORKDIR}/share/dasher/training_*.txt
+ do
+# echo Installing Dasher Language $f
+ [ -f $f ] && install -m 0644 $f ${D}${palmtopdir}/share/dasher/
+ done
+}
+
+PACKAGES += " opie-dasher-english "
+
+FILES_opie-dasher = "${palmtopdir}/plugins/inputmethods/libqdasher.so*"
+FILES_opie-dasher-english = "${palmtopdir}/share/dasher/training_english_GB.txt"
+
diff --git a/recipes-opie/nonworking/opie-dasher/opie-dasher_1.2.5.bb b/recipes-opie/nonworking/opie-dasher/opie-dasher_1.2.5.bb
new file mode 100644
index 0000000..f725530
--- /dev/null
+++ b/recipes-opie/nonworking/opie-dasher/opie-dasher_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_dasher.tar.bz2 \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2"
diff --git a/recipes-opie/nonworking/opie-dasher/opie-dasher_cvs.bb b/recipes-opie/nonworking/opie-dasher/opie-dasher_cvs.bb
new file mode 100644
index 0000000..10bce3f
--- /dev/null
+++ b/recipes-opie/nonworking/opie-dasher/opie-dasher_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+PR = "r2"
+
+PV = "${OPIE_CVS_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/dasher \
+ ${OPIE_GIT};protocol=git;subpath=share "
diff --git a/recipes-opie/nonworking/opie-mediaplayer1-libmpeg3plugin/opie-mediaplayer1-libmpeg3plugin_cvs.bb b/recipes-opie/nonworking/opie-mediaplayer1-libmpeg3plugin/opie-mediaplayer1-libmpeg3plugin_cvs.bb
new file mode 100644
index 0000000..bf746e8
--- /dev/null
+++ b/recipes-opie/nonworking/opie-mediaplayer1-libmpeg3plugin/opie-mediaplayer1-libmpeg3plugin_cvs.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Mpeg video file plugin using libmad"
+SECTION = "opie/codecs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-mediaplayer1"
+RDEPENDS_${PN} = "opie-mediaplayer1"
+PV = "${OPIE_CVS_PV}"
+PR = "r2"
+APPNAME = "mpeg3plugin"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/multimedia/opieplayer"
+
+S = "${WORKDIR}/opieplayer/libmpeg3"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "DEFINES+=USE_FIXED_POINT"
+
+# FILES plugins/codecs/libmpeg3plugin.so
diff --git a/recipes-opie/opie-aboutapplet/opie-aboutapplet.inc b/recipes-opie/opie-aboutapplet/opie-aboutapplet.inc
new file mode 100644
index 0000000..15e300c
--- /dev/null
+++ b/recipes-opie/opie-aboutapplet/opie-aboutapplet.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "About Opie"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "aboutapplet"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
diff --git a/recipes-opie/opie-aboutapplet/opie-aboutapplet_1.2.5.bb b/recipes-opie/opie-aboutapplet/opie-aboutapplet_1.2.5.bb
new file mode 100644
index 0000000..a4f16a4
--- /dev/null
+++ b/recipes-opie/opie-aboutapplet/opie-aboutapplet_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_aboutapplet.tar.bz2;name=split_core_applets_aboutapplet"
+SRC_URI[split_core_applets_aboutapplet.md5sum] = "a65f07acd6480281852e8d3ed02e0072"
+SRC_URI[split_core_applets_aboutapplet.sha256sum] = "7bd12dfc9a0eddf92b568770f6fedcc8f12764fe897e1e5d2bac9888a7aad7a9"
diff --git a/recipes-opie/opie-aboutapplet/opie-aboutapplet_cvs.bb b/recipes-opie/opie-aboutapplet/opie-aboutapplet_cvs.bb
new file mode 100644
index 0000000..22ae828
--- /dev/null
+++ b/recipes-opie/opie-aboutapplet/opie-aboutapplet_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/aboutapplet"
diff --git a/recipes-opie/opie-addressbook/opie-addressbook.inc b/recipes-opie/opie-addressbook/opie-addressbook.inc
new file mode 100644
index 0000000..f943324
--- /dev/null
+++ b/recipes-opie/opie-addressbook/opie-addressbook.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Contacts"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-pics"
+APPNAME = "addressbook"
+
+
+S = "${WORKDIR}/addressbook"
+
+inherit opie
+
+# FILES plugins/application/libaddressbook.so* bin/addressbook apps/1Pim/addressbook.desktop
diff --git a/recipes-opie/opie-addressbook/opie-addressbook_1.2.5.bb b/recipes-opie/opie-addressbook/opie-addressbook_1.2.5.bb
new file mode 100644
index 0000000..9f668b9
--- /dev/null
+++ b/recipes-opie/opie-addressbook/opie-addressbook_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_addressbook.tar.bz2;name=split_core_pim_addressbook \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_pim_addressbook.md5sum] = "3f3c8d0fc393ec645e4c6ab7eaea6bbb"
+SRC_URI[split_core_pim_addressbook.sha256sum] = "350d9d7bb2eba671d953efc4c89c70b0fcb7bd21b84e82a1c90d0fdbeca6425d"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-addressbook/opie-addressbook_cvs.bb b/recipes-opie/opie-addressbook/opie-addressbook_cvs.bb
new file mode 100644
index 0000000..05d8822
--- /dev/null
+++ b/recipes-opie/opie-addressbook/opie-addressbook_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/addressbook \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-advancedfm/opie-advancedfm.inc b/recipes-opie/opie-advancedfm/opie-advancedfm.inc
new file mode 100644
index 0000000..daa0a13
--- /dev/null
+++ b/recipes-opie/opie-advancedfm/opie-advancedfm.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Opie Advanced Filemanager"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "advancedfm"
+RDEPENDS_${PN} = "opie-advancedfm-pics"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
+PACKAGES_prepend = "opie-advancedfm-pics "
+FILES_opie-advancedfm-pics = "${palmtopdir}/pics/${APPNAME}/*.png"
+
diff --git a/recipes-opie/opie-advancedfm/opie-advancedfm_1.2.5.bb b/recipes-opie/opie-advancedfm/opie-advancedfm_1.2.5.bb
new file mode 100644
index 0000000..dfe9c84
--- /dev/null
+++ b/recipes-opie/opie-advancedfm/opie-advancedfm_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_${APPNAME}.tar.bz2;name=split_noncore_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_appname.md5sum] = "38df3d04889a306252486948284cf0e0"
+SRC_URI[split_noncore_apps_appname.sha256sum] = "a2e17a01c54d601d3a8be056d1fef37fb9a2fd8ba048262b1440ea086962d5a1"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-advancedfm/opie-advancedfm_cvs.bb b/recipes-opie/opie-advancedfm/opie-advancedfm_cvs.bb
new file mode 100644
index 0000000..e49a27e
--- /dev/null
+++ b/recipes-opie/opie-advancedfm/opie-advancedfm_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-alarm/opie-alarm.inc b/recipes-opie/opie-alarm/opie-alarm.inc
new file mode 100644
index 0000000..7d24005
--- /dev/null
+++ b/recipes-opie/opie-alarm/opie-alarm.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Opie Alarm"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "apmd"
+RDEPENDS_${PN} = "apmd"
+
+S = "${WORKDIR}/opiealarm"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${bindir} ${D}${sysconfdir}/apm/event.d/
+ install -m 0755 ${S}/opiealarm ${D}${bindir}/
+ install -m 0755 ${WORKDIR}/01opiealarm ${D}${sysconfdir}/apm/event.d/
+}
diff --git a/recipes-opie/opie-alarm/opie-alarm/01opiealarm b/recipes-opie/opie-alarm/opie-alarm/01opiealarm
new file mode 100755
index 0000000..6a12319
--- /dev/null
+++ b/recipes-opie/opie-alarm/opie-alarm/01opiealarm
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Starts opiealarm, which only runs while the iPaq sleeps
+# and wakes it up when the RTC alarm goes off.
+
+if [ "$1" = suspend ]; then
+ opiealarm -s -f
+elif [ "$1" = resume ] && [ "$2" != standby ]; then
+ opiealarm -r -a 120
+fi
+
+: exit 0
+
diff --git a/recipes-opie/opie-alarm/opie-alarm/dirdefines-2.patch b/recipes-opie/opie-alarm/opie-alarm/dirdefines-2.patch
new file mode 100644
index 0000000..c457941
--- /dev/null
+++ b/recipes-opie/opie-alarm/opie-alarm/dirdefines-2.patch
@@ -0,0 +1,19 @@
+--- opiealarm/opiealarm.c
++++ opiealarm/opiealarm.c
+@@ -394,13 +394,13 @@ int resume ( int resuspend )
+
+ setenv ( "LOGNAME", "root", 1 );
+ setenv ( "HOME", "/root", 1 );
+- setenv ( "LD_LIBRARY_PATH", "/opt/QtPalmtop/lib", 1 );
+- setenv ( "QTDIR", "/opt/QtPalmtop", 1 );
++ setenv ( "LD_LIBRARY_PATH", OPIE_LIBDIR, 1 );
++ setenv ( "QTDIR", OPIE_QTDIR, 1 );
+
+ remove_pidfile ( );
+
+ // no need for system() since this process is no longer useful anyway
+- execv ( "/opt/QtPalmtop/bin/qcop", argv );
++ execv ( OPIE_BINDIR "/qcop", argv );
+
+ perror ( "exec for qcop failed" );
+ return 5;
diff --git a/recipes-opie/opie-alarm/opie-alarm_1.2.5.bb b/recipes-opie/opie-alarm/opie-alarm_1.2.5.bb
new file mode 100644
index 0000000..ca97552
--- /dev/null
+++ b/recipes-opie/opie-alarm/opie-alarm_1.2.5.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_opiealarm.tar.bz2;name=split_core_opiealarm \
+ file://01opiealarm \
+ file://dirdefines-2.patch "
+SRC_URI[split_core_opiealarm.md5sum] = "b7f026785ccfadfe292317a1e064cbc8"
+SRC_URI[split_core_opiealarm.sha256sum] = "1dfd224ab072445a84c2530f643a3496512a9dd3a1255ce1d6da9f9cd38d4595"
diff --git a/recipes-opie/opie-alarm/opie-alarm_cvs.bb b/recipes-opie/opie-alarm/opie-alarm_cvs.bb
new file mode 100644
index 0000000..6f60f4c
--- /dev/null
+++ b/recipes-opie/opie-alarm/opie-alarm_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r4"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/opiealarm \
+ file://01opiealarm \
+ file://dirdefines-2.patch "
diff --git a/recipes-opie/opie-appearance/opie-appearance.inc b/recipes-opie/opie-appearance/opie-appearance.inc
new file mode 100644
index 0000000..5daca3b
--- /dev/null
+++ b/recipes-opie/opie-appearance/opie-appearance.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Appearance settings dialog for the Opie environment"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2"
+APPNAME = "appearance"
+
+
+S = "${WORKDIR}/appearance2"
+
+inherit opie
+
+# FILES plugins/application/libappearance.so* bin/appearance apps/Settings/Appearance.desktop pics/appearance
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-appearance/opie-appearance_1.2.5.bb b/recipes-opie/opie-appearance/opie-appearance_1.2.5.bb
new file mode 100644
index 0000000..2342745
--- /dev/null
+++ b/recipes-opie/opie-appearance/opie-appearance_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_appearance2.tar.bz2;name=split_noncore_settings_appearance2 \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_appearance2.md5sum] = "dc6254c734df2b876741a505125795ca"
+SRC_URI[split_noncore_settings_appearance2.sha256sum] = "3be0f08f7b23205964a0ecba235d5e41f89bd2ce4b0e4f22c7e4aa914e6b8a7b"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-appearance/opie-appearance_cvs.bb b/recipes-opie/opie-appearance/opie-appearance_cvs.bb
new file mode 100644
index 0000000..2d84379
--- /dev/null
+++ b/recipes-opie/opie-appearance/opie-appearance_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/appearance2 \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-aqpkg/opie-aqpkg.inc b/recipes-opie/opie-aqpkg/opie-aqpkg.inc
new file mode 100644
index 0000000..52ba634
--- /dev/null
+++ b/recipes-opie/opie-aqpkg/opie-aqpkg.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "A Package Manager"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "aqpkg"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libaqpkg.so* bin/aqpkg pics/aqpkg apps/Settings/aqpkg.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-aqpkg/opie-aqpkg_1.2.5.bb b/recipes-opie/opie-aqpkg/opie-aqpkg_1.2.5.bb
new file mode 100644
index 0000000..07ec8f9
--- /dev/null
+++ b/recipes-opie/opie-aqpkg/opie-aqpkg_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_aqpkg.tar.bz2;name=split_noncore_settings_aqpkg \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_aqpkg.md5sum] = "371fc313d079d9278f4a265534f06949"
+SRC_URI[split_noncore_settings_aqpkg.sha256sum] = "07dfb2da874aa243e584f2830c4e3e61a16392b32365bd3ec428b77eab1d2a43"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-aqpkg/opie-aqpkg_cvs.bb b/recipes-opie/opie-aqpkg/opie-aqpkg_cvs.bb
new file mode 100644
index 0000000..f116aba
--- /dev/null
+++ b/recipes-opie/opie-aqpkg/opie-aqpkg_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/aqpkg \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-autorotateapplet/opie-autorotateapplet.inc b/recipes-opie/opie-autorotateapplet/opie-autorotateapplet.inc
new file mode 100644
index 0000000..7e78436
--- /dev/null
+++ b/recipes-opie/opie-autorotateapplet/opie-autorotateapplet.inc
@@ -0,0 +1,32 @@
+DESCRIPTION = "Applet to disable the automatic screen rotation on Zaurus C-models"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "autorotateapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+}
+
+# FILES plugins/applets/libautorotateapplet.so* pics/autorotate/*.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/autorotate/
+ install -m 0655 ${WORKDIR}/pics/autorotate/*.png ${D}${palmtopdir}/pics/autorotate/
+}
diff --git a/recipes-opie/opie-autorotateapplet/opie-autorotateapplet_1.2.5.bb b/recipes-opie/opie-autorotateapplet/opie-autorotateapplet_1.2.5.bb
new file mode 100644
index 0000000..90c0a4e
--- /dev/null
+++ b/recipes-opie/opie-autorotateapplet/opie-autorotateapplet_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_autorotateapplet.tar.bz2;name=split_noncore_applets_autorotateapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_applets_autorotateapplet.md5sum] = "4917a76897933d82528e1463f5bd13e7"
+SRC_URI[split_noncore_applets_autorotateapplet.sha256sum] = "bc476f1ff91f776b4e5e9eabce696c5c35739a57df707e33963013afdbd0f753"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-autorotateapplet/opie-autorotateapplet_cvs.bb b/recipes-opie/opie-autorotateapplet/opie-autorotateapplet_cvs.bb
new file mode 100644
index 0000000..de7ae8b
--- /dev/null
+++ b/recipes-opie/opie-autorotateapplet/opie-autorotateapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/autorotateapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-backgammon/opie-backgammon.inc b/recipes-opie/opie-backgammon/opie-backgammon.inc
new file mode 100644
index 0000000..6023095
--- /dev/null
+++ b/recipes-opie/opie-backgammon/opie-backgammon.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "Backgammon Game"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "backgammon"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+ for dir in boards dice odds pieces table
+ do
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/$dir
+ install -m 644 ${WORKDIR}/pics/${APPNAME}/$dir/*.png ${D}${palmtopdir}/pics/${APPNAME}/$dir
+ done
+}
+
diff --git a/recipes-opie/opie-backgammon/opie-backgammon_1.2.5.bb b/recipes-opie/opie-backgammon/opie-backgammon_1.2.5.bb
new file mode 100644
index 0000000..ebeccde
--- /dev/null
+++ b/recipes-opie/opie-backgammon/opie-backgammon_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_backgammon.tar.bz2;name=split_noncore_games_backgammon \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_backgammon.md5sum] = "2ad470f10df1d73e8d97f32cb4f2d01c"
+SRC_URI[split_noncore_games_backgammon.sha256sum] = "ead52ef9ade84a8cfc2f795f6305ab637b44e05a7c5d9026bf5108e4b6515bdb"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-backgammon/opie-backgammon_cvs.bb b/recipes-opie/opie-backgammon/opie-backgammon_cvs.bb
new file mode 100644
index 0000000..6c08c38
--- /dev/null
+++ b/recipes-opie/opie-backgammon/opie-backgammon_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/backgammon \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-backup/opie-backup.inc b/recipes-opie/opie-backup/opie-backup.inc
new file mode 100644
index 0000000..db3c037
--- /dev/null
+++ b/recipes-opie/opie-backup/opie-backup.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Backup and Restore utility."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "backup"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-backup/opie-backup_1.2.5.bb b/recipes-opie/opie-backup/opie-backup_1.2.5.bb
new file mode 100644
index 0000000..a8a5240
--- /dev/null
+++ b/recipes-opie/opie-backup/opie-backup_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_backup.tar.bz2;name=split_noncore_settings_backup \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_backup.md5sum] = "db8ba7130340434152015857022780de"
+SRC_URI[split_noncore_settings_backup.sha256sum] = "d78a4444cea0f76b7823a1f53d45ddfb545ab7cdb4bb066a6eb7d7826e6e0564"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-backup/opie-backup_cvs.bb b/recipes-opie/opie-backup/opie-backup_cvs.bb
new file mode 100644
index 0000000..50530cb
--- /dev/null
+++ b/recipes-opie/opie-backup/opie-backup_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/backup \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-bartender/opie-bartender.inc b/recipes-opie/opie-bartender/opie-bartender.inc
new file mode 100644
index 0000000..5b020d5
--- /dev/null
+++ b/recipes-opie/opie-bartender/opie-bartender.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Bartender drink recipe database"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "bartender"
+
+
+S = "${WORKDIR}/opie-bartender"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/etc/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 db/drinkdb.txt ${D}${palmtopdir}/etc/${APPNAME}/
+}
diff --git a/recipes-opie/opie-bartender/opie-bartender_1.2.5.bb b/recipes-opie/opie-bartender/opie-bartender_1.2.5.bb
new file mode 100644
index 0000000..9a33579
--- /dev/null
+++ b/recipes-opie/opie-bartender/opie-bartender_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_opie-bartender.tar.bz2;name=split_noncore_apps_opie-bartender \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_opie-bartender.md5sum] = "bd72506a852679bdb3af47299a84c138"
+SRC_URI[split_noncore_apps_opie-bartender.sha256sum] = "f7a5386f7d8e2965b8d5b6c51eef521d5901dba9ab5ce371b011385522ff69c5"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-bartender/opie-bartender_cvs.bb b/recipes-opie/opie-bartender/opie-bartender_cvs.bb
new file mode 100644
index 0000000..c9d001d
--- /dev/null
+++ b/recipes-opie/opie-bartender/opie-bartender_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/opie-bartender \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-batteryapplet/opie-batteryapplet.inc b/recipes-opie/opie-batteryapplet/opie-batteryapplet.inc
new file mode 100644
index 0000000..10b6e90
--- /dev/null
+++ b/recipes-opie/opie-batteryapplet/opie-batteryapplet.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Battery Monitor applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "batteryapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libbatteryapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-batteryapplet/opie-batteryapplet_1.2.5.bb b/recipes-opie/opie-batteryapplet/opie-batteryapplet_1.2.5.bb
new file mode 100644
index 0000000..fa23199
--- /dev/null
+++ b/recipes-opie/opie-batteryapplet/opie-batteryapplet_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_batteryapplet.tar.bz2;name=split_core_applets_batteryapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_batteryapplet.md5sum] = "995a40e095913e01614834c82733eff0"
+SRC_URI[split_core_applets_batteryapplet.sha256sum] = "1cab9929c81a3618cb4eeb43864c42f21d1c409819404ba3224382ba77bf4692"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-batteryapplet/opie-batteryapplet_cvs.bb b/recipes-opie/opie-batteryapplet/opie-batteryapplet_cvs.bb
new file mode 100644
index 0000000..c17d104
--- /dev/null
+++ b/recipes-opie/opie-batteryapplet/opie-batteryapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/batteryapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-bluepin/opie-bluepin.inc b/recipes-opie/opie-bluepin/opie-bluepin.inc
new file mode 100644
index 0000000..3514934
--- /dev/null
+++ b/recipes-opie/opie-bluepin/opie-bluepin.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "Opie BluePin"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+DEPENDS = "libopietooth1"
+LICENSE = "GPL"
+APPNAME = "bluepin"
+APPTYPE = "binary"
+
+S = "${WORKDIR}/blue-pin"
+
+inherit opie
diff --git a/recipes-opie/opie-bluepin/opie-bluepin_1.2.5.bb b/recipes-opie/opie-bluepin/opie-bluepin_1.2.5.bb
new file mode 100644
index 0000000..5d29f6a
--- /dev/null
+++ b/recipes-opie/opie-bluepin/opie-bluepin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opietooth_blue-pin.tar.bz2;name=split_noncore_net_opietooth_blue-pin"
+SRC_URI[split_noncore_net_opietooth_blue-pin.md5sum] = "083a34fc586dba554580aed7647661d9"
+SRC_URI[split_noncore_net_opietooth_blue-pin.sha256sum] = "ca6c8117d43f33dcfed65b7bb82c2d03d1d27ad0524b1e0a31ddcc84c6e919da"
diff --git a/recipes-opie/opie-bluepin/opie-bluepin_cvs.bb b/recipes-opie/opie-bluepin/opie-bluepin_cvs.bb
new file mode 100644
index 0000000..aa56ab2
--- /dev/null
+++ b/recipes-opie/opie-bluepin/opie-bluepin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opietooth/blue-pin"
diff --git a/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet.inc b/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet.inc
new file mode 100644
index 0000000..313680f
--- /dev/null
+++ b/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Opie Bluetooth Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libopietooth1"
+APPNAME = "bluetoothapplet"
+
+S = "${WORKDIR}/applet"
+
+EXTRA_QMAKEVARS_POST += " INCLUDEPATH+=${STAGING_INCDIR}/opietooth "
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/bluetoothapplet
+ install -m 0644 ${WORKDIR}/pics/bluetoothapplet/*.png ${D}${palmtopdir}/pics/bluetoothapplet
+}
+
diff --git a/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_1.2.5.bb b/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_1.2.5.bb
new file mode 100644
index 0000000..f934fd3
--- /dev/null
+++ b/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opietooth_applet.tar.bz2;name=split_noncore_net_opietooth_applet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_net_opietooth_applet.md5sum] = "d62580896f19fcde7c901f5271633c3a"
+SRC_URI[split_noncore_net_opietooth_applet.sha256sum] = "1997ffbf4762a52ad0cf3c01b4fd9f717ca6e32f306f28b6b7d5cedc7acc3789"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_cvs.bb b/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_cvs.bb
new file mode 100644
index 0000000..3a29621
--- /dev/null
+++ b/recipes-opie/opie-bluetoothapplet/opie-bluetoothapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opietooth/applet \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager.inc b/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager.inc
new file mode 100644
index 0000000..538473b
--- /dev/null
+++ b/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "Bluetooth manager for Opie"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+DEPENDS = "libopietooth1 obexftp"
+RDEPENDS_${PN} = "opie-bluepin"
+LICENSE = "GPL"
+APPNAME = "bluetooth-manager"
+
+S = "${WORKDIR}/manager"
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/opietooth"
+EXTRA_QMAKEVARS_PRE += "LIBOBEXFTP_INC_DIR=${STAGING_INCDIR}/obexftp"
+
+inherit opie
+
+# Files: plugins/application/libbluetooth-manager.so* bin/bluetooth-manager apps/Settings/bluetooth-manager.desktop pics/opietooth/* pics/opietooth/icons/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/opietooth/
+ install -d ${D}${palmtopdir}/pics/opietooth/icons/
+ install -m 0644 ${WORKDIR}/pics/opietooth/*.png ${D}${palmtopdir}/pics/opietooth/
+ install -m 0644 ${WORKDIR}/pics/opietooth/icons/*.png ${D}${palmtopdir}/pics/opietooth/icons/
+}
diff --git a/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_1.2.5.bb b/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_1.2.5.bb
new file mode 100644
index 0000000..8a8e5ac
--- /dev/null
+++ b/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opietooth_manager.tar.bz2;name=split_noncore_net_opietooth_manager \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_net_opietooth_manager.md5sum] = "55f5e3b1f675de3ffb8b96b784a26661"
+SRC_URI[split_noncore_net_opietooth_manager.sha256sum] = "1bcf4f99610e083109cca02fd7702d764575cf5cfd1bd175f048c47c13f20f27"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_cvs.bb b/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_cvs.bb
new file mode 100644
index 0000000..f70602e
--- /dev/null
+++ b/recipes-opie/opie-bluetoothmanager/opie-bluetoothmanager_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opietooth/manager \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-bounce/opie-bounce.inc b/recipes-opie/opie-bounce/opie-bounce.inc
new file mode 100644
index 0000000..012e7ea
--- /dev/null
+++ b/recipes-opie/opie-bounce/opie-bounce.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "bounce"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "bounce"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libbounce.so* bin/bounce apps/Games/bounce.desktop pics/bounce/*.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-bounce/opie-bounce_1.2.5.bb b/recipes-opie/opie-bounce/opie-bounce_1.2.5.bb
new file mode 100644
index 0000000..e674998
--- /dev/null
+++ b/recipes-opie/opie-bounce/opie-bounce_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_bounce.tar.bz2;name=split_noncore_games_bounce \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_bounce.md5sum] = "4798a0c131318efd367ac0d7e53c8e1a"
+SRC_URI[split_noncore_games_bounce.sha256sum] = "387a7764281efafd2d2d9004600e4a2655130ab39667ef1b2ce04b2c36186d04"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-bounce/opie-bounce_cvs.bb b/recipes-opie/opie-bounce/opie-bounce_cvs.bb
new file mode 100644
index 0000000..be36ca2
--- /dev/null
+++ b/recipes-opie/opie-bounce/opie-bounce_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/bounce \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-brightnessapplet/opie-brightnessapplet.inc b/recipes-opie/opie-brightnessapplet/opie-brightnessapplet.inc
new file mode 100644
index 0000000..bc63865
--- /dev/null
+++ b/recipes-opie/opie-brightnessapplet/opie-brightnessapplet.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Brightness Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "brightnessapplet"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}
+ install -m 0655 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+}
+
diff --git a/recipes-opie/opie-brightnessapplet/opie-brightnessapplet_1.2.5.bb b/recipes-opie/opie-brightnessapplet/opie-brightnessapplet_1.2.5.bb
new file mode 100644
index 0000000..fa962ee
--- /dev/null
+++ b/recipes-opie/opie-brightnessapplet/opie-brightnessapplet_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_brightnessapplet.tar.bz2;name=split_noncore_applets_brightnessapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_applets_brightnessapplet.md5sum] = "63872b9fad86c21486590b6cb8a73679"
+SRC_URI[split_noncore_applets_brightnessapplet.sha256sum] = "15537936796880d35d7b5c0b5d4c8e94ecc6db84a3d2ccff5de8f151b4e2fd2a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-brightnessapplet/opie-brightnessapplet_cvs.bb b/recipes-opie/opie-brightnessapplet/opie-brightnessapplet_cvs.bb
new file mode 100644
index 0000000..435c975
--- /dev/null
+++ b/recipes-opie/opie-brightnessapplet/opie-brightnessapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/brightnessapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-button-settings/opie-button-settings.inc b/recipes-opie/opie-button-settings/opie-button-settings.inc
new file mode 100644
index 0000000..7cb6489
--- /dev/null
+++ b/recipes-opie/opie-button-settings/opie-button-settings.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Opie device buttons settings dialog"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-button-settings-pics"
+APPNAME = "buttonsettings"
+
+S = "${WORKDIR}/button"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/pics/devicebuttons/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/devicebuttons/*.png ${D}${palmtopdir}/pics/devicebuttons/
+}
+
+PACKAGES_prepend = "opie-button-settings-pics "
+PACKAGE_ARCH_opie-button-settings-pics = "${MACHINE_ARCH}"
+FILES_opie-button-settings-pics = "${palmtopdir}/pics/devicebuttons/z*"
+FILES_opie-button-settings-pics_h1910 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_h1940 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_h3600 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_h3900 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_h4000 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_h5000 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_h6300 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_hx2000 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_hx4700 = "${palmtopdir}/pics/devicebuttons/ipaq*"
+FILES_opie-button-settings-pics_simpad = "${palmtopdir}/pics/devicebuttons/simpad*"
diff --git a/recipes-opie/opie-button-settings/opie-button-settings_1.2.5.bb b/recipes-opie/opie-button-settings/opie-button-settings_1.2.5.bb
new file mode 100644
index 0000000..ef1096e
--- /dev/null
+++ b/recipes-opie/opie-button-settings/opie-button-settings_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_settings_button.tar.bz2;name=split_core_settings_button \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_settings_button.md5sum] = "8fd4026daead46cb1ad42d44b7d779ae"
+SRC_URI[split_core_settings_button.sha256sum] = "2b108ed88a2e0783014fb5cdfec50533efef175014ebc848686a692690e4a273"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-button-settings/opie-button-settings_cvs.bb b/recipes-opie/opie-button-settings/opie-button-settings_cvs.bb
new file mode 100644
index 0000000..07657f3
--- /dev/null
+++ b/recipes-opie/opie-button-settings/opie-button-settings_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/settings/button \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-buzzword/opie-buzzword.inc b/recipes-opie/opie-buzzword/opie-buzzword.inc
new file mode 100644
index 0000000..afb0c13
--- /dev/null
+++ b/recipes-opie/opie-buzzword/opie-buzzword.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "BuzzWord Bingo"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "buzzword"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libbuzzword.so* bin/buzzword apps/Games/buzzword.desktop pics/buzzword/buzzword.png share/buzzword/buzzwords
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/${APPNAME}/
+ install -m 0644 ${WORKDIR}/share/${APPNAME}/buzzwords ${D}${palmtopdir}/share/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-buzzword/opie-buzzword_1.2.5.bb b/recipes-opie/opie-buzzword/opie-buzzword_1.2.5.bb
new file mode 100644
index 0000000..1ff356b
--- /dev/null
+++ b/recipes-opie/opie-buzzword/opie-buzzword_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_buzzword.tar.bz2;name=split_noncore_games_buzzword \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_buzzword.md5sum] = "dfc4f75cc73f94d7556065ba6e8ecdc9"
+SRC_URI[split_noncore_games_buzzword.sha256sum] = "4495745620ec66eced6d386bfab3eb1fd51ac27b0e1d65a4f0ecd39e2e0e6463"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-buzzword/opie-buzzword_cvs.bb b/recipes-opie/opie-buzzword/opie-buzzword_cvs.bb
new file mode 100644
index 0000000..0211afa
--- /dev/null
+++ b/recipes-opie/opie-buzzword/opie-buzzword_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/buzzword \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-calculator/opie-calculator.inc b/recipes-opie/opie-calculator/opie-calculator.inc
new file mode 100644
index 0000000..f2c4dde
--- /dev/null
+++ b/recipes-opie/opie-calculator/opie-calculator.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Calculator"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "calculator"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libcalculator.so* bin/calculator apps/Applications/calculator.desktop etc/unit_conversion.dat pics/calc
+do_install() {
+ install -d ${D}${palmtopdir}/pics/calc/
+ install -m 0644 ${WORKDIR}/pics/calc/*.png ${D}${palmtopdir}/pics/calc/
+ install -d ${D}${palmtopdir}/etc/
+ install -m 0644 ${WORKDIR}/etc/unit_conversion.dat ${D}${palmtopdir}/etc/
+}
+
diff --git a/recipes-opie/opie-calculator/opie-calculator_1.2.5.bb b/recipes-opie/opie-calculator/opie-calculator_1.2.5.bb
new file mode 100644
index 0000000..5c985b7
--- /dev/null
+++ b/recipes-opie/opie-calculator/opie-calculator_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_calculator.tar.bz2;name=split_noncore_tools_calculator \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_etc.tar.bz2;name=split_etc"
+SRC_URI[split_noncore_tools_calculator.md5sum] = "fc16a420e33265aa21a4e8cc246d7faf"
+SRC_URI[split_noncore_tools_calculator.sha256sum] = "848c73af73fa2ba48c930e2c50fb2d6db6209aed1d0d3e1df6bdcc806f5b22a8"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_etc.md5sum] = "74ef523ef12e242155bbb745072434d9"
+SRC_URI[split_etc.sha256sum] = "eef55ea2248b4f45f3a07beb6012e431dd71d4eefa134d39cc50b4d194c53087"
diff --git a/recipes-opie/opie-calculator/opie-calculator_cvs.bb b/recipes-opie/opie-calculator/opie-calculator_cvs.bb
new file mode 100644
index 0000000..b1224db
--- /dev/null
+++ b/recipes-opie/opie-calculator/opie-calculator_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/calculator \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=etc "
diff --git a/recipes-opie/opie-camera/opie-camera.inc b/recipes-opie/opie-camera/opie-camera.inc
new file mode 100644
index 0000000..3a131b4
--- /dev/null
+++ b/recipes-opie/opie-camera/opie-camera.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "Opie Camera, Photo and Video Capturing Application for the Sharp CF-AG06 camera"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "sharp-camera-support"
+APPNAME = "camera"
+APPTYPE = "binary"
+
+COMPATIBLE_MACHINE = "collie"
+
+S = "${WORKDIR}/camera"
+
+EXTRA_QMAKEVARS_POST += "LIBS+=-L.."
+PARALLEL_MAKE = ""
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}
+ install -d ${D}${palmtopdir}/lib/
+ oe_libinstall -so libcamera ${D}${palmtopdir}/lib
+ install -m 0755 capture ${D}${palmtopdir}/bin/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-camera/opie-camera_1.2.5.bb b/recipes-opie/opie-camera/opie-camera_1.2.5.bb
new file mode 100644
index 0000000..3ed8788
--- /dev/null
+++ b/recipes-opie/opie-camera/opie-camera_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_multimedia_${APPNAME}.tar.bz2;name=split_noncore_multimedia_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_multimedia_appname.md5sum] = "ee04f2fe88fddb912b607500e5f3c010"
+SRC_URI[split_noncore_multimedia_appname.sha256sum] = "17d536a55aaed0418a365c001e6e3ff843c7427e89ae95aac6dcd063329d3c27"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-camera/opie-camera_cvs.bb b/recipes-opie/opie-camera/opie-camera_cvs.bb
new file mode 100644
index 0000000..a33f874
--- /dev/null
+++ b/recipes-opie/opie-camera/opie-camera_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/multimedia/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-cardapplet/opie-cardapplet.inc b/recipes-opie/opie-cardapplet/opie-cardapplet.inc
new file mode 100644
index 0000000..a96f972
--- /dev/null
+++ b/recipes-opie/opie-cardapplet/opie-cardapplet.inc
@@ -0,0 +1,38 @@
+DESCRIPTION = "CF/SD/PCMCIA Card Monitor applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "cardapplet"
+I18N_FILES = "libcardapplet.ts"
+
+
+S = "${WORKDIR}/cardapplet"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+fi
+ if [ -n "$D" ]; then false; fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libcardapplet.so* pics/cardmon/*.png sounds/cardmon/*.wav etc/opie-pcmcia.*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/cardmon/
+ install -d ${D}${palmtopdir}/sounds/cardmon/
+ install -d ${D}${sysconfdir}/udev/rules.d/
+ install -d ${D}${sysconfdir}/udev/scripts/
+ install -m 0644 ${WORKDIR}/pics/cardmon/*.png ${D}${palmtopdir}/pics/cardmon/
+ install -m 0644 ${WORKDIR}/sounds/cardmon/*.wav ${D}${palmtopdir}/sounds/cardmon/
+ install -m 0644 ${WORKDIR}/etc/opie-pcmcia.rules ${D}${sysconfdir}/udev/rules.d/opie-pcmcia.rules
+ install -m 0755 ${WORKDIR}/etc/opie-pcmcia.sh ${D}${sysconfdir}/udev/scripts/opie-pcmcia.sh
+}
+
diff --git a/recipes-opie/opie-cardapplet/opie-cardapplet_1.2.5.bb b/recipes-opie/opie-cardapplet/opie-cardapplet_1.2.5.bb
new file mode 100644
index 0000000..0353192
--- /dev/null
+++ b/recipes-opie/opie-cardapplet/opie-cardapplet_1.2.5.bb
@@ -0,0 +1,19 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_cardapplet.tar.bz2;name=split_noncore_applets_cardapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_sounds.tar.bz2;name=split_sounds \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_etc.tar.bz2;name=split_etc"
+SRC_URI[split_noncore_applets_cardapplet.md5sum] = "c663047085691dd3e57e7aa0bba89e4c"
+SRC_URI[split_noncore_applets_cardapplet.sha256sum] = "053b798624bcbd1caf4307a6a1992a1e193ceb737bd045dd8a6e7a92a20d346f"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_sounds.md5sum] = "b0f2bee8c158f54162e5e74d4d9594df"
+SRC_URI[split_sounds.sha256sum] = "55441675b28209cb2e34ffc0875c6d47aee27bd65dbdb40a223e5fa05c5a7c06"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_etc.md5sum] = "74ef523ef12e242155bbb745072434d9"
+SRC_URI[split_etc.sha256sum] = "eef55ea2248b4f45f3a07beb6012e431dd71d4eefa134d39cc50b4d194c53087"
diff --git a/recipes-opie/opie-cardapplet/opie-cardapplet_cvs.bb b/recipes-opie/opie-cardapplet/opie-cardapplet_cvs.bb
new file mode 100644
index 0000000..fbcb98d
--- /dev/null
+++ b/recipes-opie/opie-cardapplet/opie-cardapplet_cvs.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/cardapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=sounds \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=etc"
diff --git a/recipes-opie/opie-checkbook/opie-checkbook.inc b/recipes-opie/opie-checkbook/opie-checkbook.inc
new file mode 100644
index 0000000..fd2a9b2
--- /dev/null
+++ b/recipes-opie/opie-checkbook/opie-checkbook.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Opie Checkbook"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "checkbook"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-checkbook/opie-checkbook_1.2.5.bb b/recipes-opie/opie-checkbook/opie-checkbook_1.2.5.bb
new file mode 100644
index 0000000..db2b5db
--- /dev/null
+++ b/recipes-opie/opie-checkbook/opie-checkbook_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_${APPNAME}.tar.bz2;name=split_noncore_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_appname.md5sum] = "083380899ffc2fabe10699c2418f022c"
+SRC_URI[split_noncore_apps_appname.sha256sum] = "7f89e1c5a00979a796e4ce6b566d6e3fee34d3b231fedb342d4fa5e6add2feab"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-checkbook/opie-checkbook_cvs.bb b/recipes-opie/opie-checkbook/opie-checkbook_cvs.bb
new file mode 100644
index 0000000..e49a27e
--- /dev/null
+++ b/recipes-opie/opie-checkbook/opie-checkbook_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-citytime/opie-citytime.inc b/recipes-opie/opie-citytime/opie-citytime.inc
new file mode 100644
index 0000000..c3bbd4c
--- /dev/null
+++ b/recipes-opie/opie-citytime/opie-citytime.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Opie Time-zone / world clock settings"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RRECOMMENDS_${PN} = "tzdata"
+PR = "r2"
+
+APPNAME = "citytime"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-citytime/opie-citytime_1.2.5.bb b/recipes-opie/opie-citytime/opie-citytime_1.2.5.bb
new file mode 100644
index 0000000..2bf4c20
--- /dev/null
+++ b/recipes-opie/opie-citytime/opie-citytime_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_settings_citytime.tar.bz2;name=split_core_settings_citytime \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_settings_citytime.md5sum] = "ffca7dd8b38bc79c3e4c1f1c2290cf41"
+SRC_URI[split_core_settings_citytime.sha256sum] = "219a0cd007f920765e509035ebdb3f77b4d66301b7536d9c165e295251625b62"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-citytime/opie-citytime_cvs.bb b/recipes-opie/opie-citytime/opie-citytime_cvs.bb
new file mode 100644
index 0000000..461951c
--- /dev/null
+++ b/recipes-opie/opie-citytime/opie-citytime_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/settings/citytime \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-clipboardapplet/opie-clipboardapplet.inc b/recipes-opie/opie-clipboardapplet/opie-clipboardapplet.inc
new file mode 100644
index 0000000..5b2db9f
--- /dev/null
+++ b/recipes-opie/opie-clipboardapplet/opie-clipboardapplet.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "Clipboard applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "clipboardapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libclipboardapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-clipboardapplet/opie-clipboardapplet_1.2.5.bb b/recipes-opie/opie-clipboardapplet/opie-clipboardapplet_1.2.5.bb
new file mode 100644
index 0000000..85ae2c5
--- /dev/null
+++ b/recipes-opie/opie-clipboardapplet/opie-clipboardapplet_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_clipboardapplet.tar.bz2;name=split_core_applets_clipboardapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_clipboardapplet.md5sum] = "62ce49c0eeea827260247c89c2e4b338"
+SRC_URI[split_core_applets_clipboardapplet.sha256sum] = "1a785f1e87f1b7d1a909adbe97aa0aad7e8ba46b285c4d506216c57dd0ddba05"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-clipboardapplet/opie-clipboardapplet_cvs.bb b/recipes-opie/opie-clipboardapplet/opie-clipboardapplet_cvs.bb
new file mode 100644
index 0000000..9a77aea
--- /dev/null
+++ b/recipes-opie/opie-clipboardapplet/opie-clipboardapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/clipboardapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-clock/opie-clock.inc b/recipes-opie/opie-clock/opie-clock.inc
new file mode 100644
index 0000000..131ca04
--- /dev/null
+++ b/recipes-opie/opie-clock/opie-clock.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Clock and stop-watch"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "clock"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libclock.so* bin/clock apps/Applications/clock.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
+
diff --git a/recipes-opie/opie-clock/opie-clock_1.2.5.bb b/recipes-opie/opie-clock/opie-clock_1.2.5.bb
new file mode 100644
index 0000000..0aceb08
--- /dev/null
+++ b/recipes-opie/opie-clock/opie-clock_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_clock.tar.bz2;name=split_noncore_tools_clock \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_tools_clock.md5sum] = "68e7eae4e4d4097226c4fe53117ece3b"
+SRC_URI[split_noncore_tools_clock.sha256sum] = "e07b1ebc2a81716ba24b66eb041b37af526cd18c5953d10576e81f582a57dc31"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-clock/opie-clock_cvs.bb b/recipes-opie/opie-clock/opie-clock_cvs.bb
new file mode 100644
index 0000000..41fded0
--- /dev/null
+++ b/recipes-opie/opie-clock/opie-clock_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/clock \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-clockapplet/opie-clockapplet.inc b/recipes-opie/opie-clockapplet/opie-clockapplet.inc
new file mode 100644
index 0000000..88e4680
--- /dev/null
+++ b/recipes-opie/opie-clockapplet/opie-clockapplet.inc
@@ -0,0 +1,35 @@
+DESCRIPTION = "Clock applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "clockapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libclockapplet.so*
+do_install() {
+}
+
+# FILES plugins/applets/libclockapplet.so* pics/clockapplet/*.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/clockapplet/
+ install -m 0644 ${WORKDIR}/pics/clockapplet/*.png ${D}${palmtopdir}/pics/clockapplet/
+}
+
diff --git a/recipes-opie/opie-clockapplet/opie-clockapplet_1.2.5.bb b/recipes-opie/opie-clockapplet/opie-clockapplet_1.2.5.bb
new file mode 100644
index 0000000..0e5c67f
--- /dev/null
+++ b/recipes-opie/opie-clockapplet/opie-clockapplet_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_clockapplet.tar.bz2;name=split_core_applets_clockapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_clockapplet.md5sum] = "5571ca658975f16b3d25400863429e0d"
+SRC_URI[split_core_applets_clockapplet.sha256sum] = "e0f75d7b712a964488b5b28f490c957910d88e755a8bf5e2ed4978bd693523f8"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-clockapplet/opie-clockapplet_cvs.bb b/recipes-opie/opie-clockapplet/opie-clockapplet_cvs.bb
new file mode 100644
index 0000000..7f7fc5e
--- /dev/null
+++ b/recipes-opie/opie-clockapplet/opie-clockapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/clockapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-confeditor/opie-confeditor.inc b/recipes-opie/opie-confeditor/opie-confeditor.inc
new file mode 100644
index 0000000..33038cd
--- /dev/null
+++ b/recipes-opie/opie-confeditor/opie-confeditor.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "An enditor for the ~/Settings/*.conf files"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "confedit"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/confedit apps/Settings/confedit.desktop pics/confedit/confedit.png plugins/application/libconfedit.so*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-confeditor/opie-confeditor_1.2.5.bb b/recipes-opie/opie-confeditor/opie-confeditor_1.2.5.bb
new file mode 100644
index 0000000..25ffe21
--- /dev/null
+++ b/recipes-opie/opie-confeditor/opie-confeditor_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_confedit.tar.bz2;name=split_noncore_apps_confedit \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_confedit.md5sum] = "d88326d88fb315e819b291ac34d3377d"
+SRC_URI[split_noncore_apps_confedit.sha256sum] = "42881a4dc7e4b19c902e1a8084d1b89bf85a73a761cb9870cc8695129f59f4d5"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-confeditor/opie-confeditor_cvs.bb b/recipes-opie/opie-confeditor/opie-confeditor_cvs.bb
new file mode 100644
index 0000000..ed8b673
--- /dev/null
+++ b/recipes-opie/opie-confeditor/opie-confeditor_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/confedit \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-console/opie-console.inc b/recipes-opie/opie-console/opie-console.inc
new file mode 100644
index 0000000..b8e57b6
--- /dev/null
+++ b/recipes-opie/opie-console/opie-console.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Console Application"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-keytabs"
+RDEPENDS_${PN} = "opie-keytabs"
+APPNAME = "opie-console"
+APPTYPE = "binary"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/console/keys/
+ install -m 0644 ${WORKDIR}/pics/inline/pass.* ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/pics/console/*.png ${D}${palmtopdir}/pics/console/
+ install -m 0644 ${WORKDIR}/pics/console/keys/*.png ${D}${palmtopdir}/pics/console/keys/
+}
diff --git a/recipes-opie/opie-console/opie-console_1.2.5.bb b/recipes-opie/opie-console/opie-console_1.2.5.bb
new file mode 100644
index 0000000..79aedae
--- /dev/null
+++ b/recipes-opie/opie-console/opie-console_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_${APPNAME}.tar.bz2;name=split_noncore_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ "
+SRC_URI[split_noncore_apps_appname.md5sum] = "8cc34b2cf390c62a88df9f3aa1ff4d91"
+SRC_URI[split_noncore_apps_appname.sha256sum] = "f757a38292fd30226285c674b6d9579cb8dddadb5a84c025640fd88bfdb9b495"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-console/opie-console_cvs.bb b/recipes-opie/opie-console/opie-console_cvs.bb
new file mode 100644
index 0000000..dee5ab0
--- /dev/null
+++ b/recipes-opie/opie-console/opie-console_cvs.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ "
diff --git a/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin.inc b/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin.inc
new file mode 100644
index 0000000..62c014a
--- /dev/null
+++ b/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Opie datebook birthday plugin"
+SECTION = "opie/datebook"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-datebook"
+APPNAME = "birthdayplugin"
+
+S = "${WORKDIR}/birthday"
+
+inherit opie
diff --git a/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_1.2.5.bb b/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_1.2.5.bb
new file mode 100644
index 0000000..b6137b8
--- /dev/null
+++ b/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_datebook_plugins_birthday.tar.bz2;name=split_core_pim_datebook_plugins_birthday"
+SRC_URI[split_core_pim_datebook_plugins_birthday.md5sum] = "274be50da5b4a4ca2f3caa4f70a341cb"
+SRC_URI[split_core_pim_datebook_plugins_birthday.sha256sum] = "ad55dad2b6410b920856d43edd76eb6219e454f15a77903a8a09a8bd996cc853"
diff --git a/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_cvs.bb b/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_cvs.bb
new file mode 100644
index 0000000..3739384
--- /dev/null
+++ b/recipes-opie/opie-datebook-birthdayplugin/opie-datebook-birthdayplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/datebook/plugins/birthday "
diff --git a/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin.inc b/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin.inc
new file mode 100644
index 0000000..b8b817f
--- /dev/null
+++ b/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Opie datebook christian holidays plugin"
+SECTION = "opie/datebook"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-datebook"
+APPNAME = "chrisholidayplugin"
+
+S = "${WORKDIR}/christian"
+
+inherit opie
diff --git a/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_1.2.5.bb b/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_1.2.5.bb
new file mode 100644
index 0000000..a1e3963
--- /dev/null
+++ b/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_datebook_plugins_christian.tar.bz2;name=split_core_pim_datebook_plugins_christian"
+SRC_URI[split_core_pim_datebook_plugins_christian.md5sum] = "79c4bcc4d1c0224e0015f064f7f74472"
+SRC_URI[split_core_pim_datebook_plugins_christian.sha256sum] = "98dafab30d02d34a0dd70dae59a3ad2262e45d272dfab476bfaac23f8868e23e"
diff --git a/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_cvs.bb b/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_cvs.bb
new file mode 100644
index 0000000..563fdf4
--- /dev/null
+++ b/recipes-opie/opie-datebook-chrisholidayplugin/opie-datebook-chrisholidayplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/datebook/plugins/christian "
diff --git a/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin.inc b/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin.inc
new file mode 100644
index 0000000..aa62ae4
--- /dev/null
+++ b/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Opie datebook national holidays plugin"
+SECTION = "opie/datebook"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-datebook"
+APPNAME = "nationaldayplugin"
+
+S = "${WORKDIR}/national"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/etc/nationaldays
+ install -m 0644 ${WORKDIR}/nationaldays/*.xml ${D}${palmtopdir}/etc/nationaldays
+}
diff --git a/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_1.2.5.bb b/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_1.2.5.bb
new file mode 100644
index 0000000..4851618
--- /dev/null
+++ b/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_datebook_plugins_national.tar.bz2;name=split_core_pim_datebook_plugins_national \
+ http://sources.openembedded.org/opie-1.2.5-split_etc_nationaldays.tar.bz2;name=split_etc_nationaldays"
+SRC_URI[split_core_pim_datebook_plugins_national.md5sum] = "cc7de5c238a2054f9343f1a7a967a1bf"
+SRC_URI[split_core_pim_datebook_plugins_national.sha256sum] = "42444fcabf7450ef0aad27b7653ed9e761cbfbaca0094f129528c573ca6c456a"
+SRC_URI[split_etc_nationaldays.md5sum] = "8810a5d0c7a4eb1de5f5750297db390d"
+SRC_URI[split_etc_nationaldays.sha256sum] = "8a6286e24766f000c3387df2f083e59bcded12fca92ff6704fc0e5c7f5ab84a8"
diff --git a/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_cvs.bb b/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_cvs.bb
new file mode 100644
index 0000000..ff9e427
--- /dev/null
+++ b/recipes-opie/opie-datebook-nationalholidayplugin/opie-datebook-nationalholidayplugin_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/datebook/plugins/national \
+ ${OPIE_GIT};protocol=git;subpath=etc/nationaldays "
diff --git a/recipes-opie/opie-datebook/opie-datebook.inc b/recipes-opie/opie-datebook/opie-datebook.inc
new file mode 100644
index 0000000..c97a6f2
--- /dev/null
+++ b/recipes-opie/opie-datebook/opie-datebook.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "A datebook/appointment manager"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-pics"
+APPNAME = "datebook"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libdatebook.so* bin/datebook apps/1Pim/datebook.desktop
diff --git a/recipes-opie/opie-datebook/opie-datebook_1.2.5.bb b/recipes-opie/opie-datebook/opie-datebook_1.2.5.bb
new file mode 100644
index 0000000..0b794b3
--- /dev/null
+++ b/recipes-opie/opie-datebook/opie-datebook_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_datebook.tar.bz2;name=split_core_pim_datebook \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_pim_datebook.md5sum] = "aef27444d5295f83d429ea8ab4c5d8b6"
+SRC_URI[split_core_pim_datebook.sha256sum] = "170107bcdb13fac555128d3833edc8a166a770f43d2d5705306ed64cc17e2c5c"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-datebook/opie-datebook_cvs.bb b/recipes-opie/opie-datebook/opie-datebook_cvs.bb
new file mode 100644
index 0000000..54ec763
--- /dev/null
+++ b/recipes-opie/opie-datebook/opie-datebook_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/datebook \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-deco-flat/opie-deco-flat.inc b/recipes-opie/opie-deco-flat/opie-deco-flat.inc
new file mode 100644
index 0000000..a9e1673
--- /dev/null
+++ b/recipes-opie/opie-deco-flat/opie-deco-flat.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Simple, flat window decoration style for Opie"
+SECTION = "opie/decorations"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "flat"
+
+
+S = "${WORKDIR}/flat"
+
+inherit opie
diff --git a/recipes-opie/opie-deco-flat/opie-deco-flat_1.2.5.bb b/recipes-opie/opie-deco-flat/opie-deco-flat_1.2.5.bb
new file mode 100644
index 0000000..a155a2f
--- /dev/null
+++ b/recipes-opie/opie-deco-flat/opie-deco-flat_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_decorations_flat.tar.bz2;name=split_noncore_decorations_flat"
+SRC_URI[split_noncore_decorations_flat.md5sum] = "9fa386eca38c67a4abcf65d8966dd127"
+SRC_URI[split_noncore_decorations_flat.sha256sum] = "6e441ae34a8af51b6c6ce7ba0e7d2da574abb4d0c86fd8c8bf19b690ecebbf6d"
diff --git a/recipes-opie/opie-deco-flat/opie-deco-flat_cvs.bb b/recipes-opie/opie-deco-flat/opie-deco-flat_cvs.bb
new file mode 100644
index 0000000..a99d841
--- /dev/null
+++ b/recipes-opie/opie-deco-flat/opie-deco-flat_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/decorations/flat "
diff --git a/recipes-opie/opie-deco-liquid/opie-deco-liquid.inc b/recipes-opie/opie-deco-liquid/opie-deco-liquid.inc
new file mode 100644
index 0000000..8779980
--- /dev/null
+++ b/recipes-opie/opie-deco-liquid/opie-deco-liquid.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "Liquid window decoration style for Opie"
+SECTION = "opie/decorations"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2"
+APPNAME = "liquid"
+
+
+S = "${WORKDIR}/liquid"
+
+inherit opie
diff --git a/recipes-opie/opie-deco-liquid/opie-deco-liquid_1.2.5.bb b/recipes-opie/opie-deco-liquid/opie-deco-liquid_1.2.5.bb
new file mode 100644
index 0000000..2c4ead3
--- /dev/null
+++ b/recipes-opie/opie-deco-liquid/opie-deco-liquid_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_decorations_liquid.tar.bz2;name=split_noncore_decorations_liquid"
+SRC_URI[split_noncore_decorations_liquid.md5sum] = "7cf38be689a0b3c906fb1174adabe4f7"
+SRC_URI[split_noncore_decorations_liquid.sha256sum] = "aede43b516e546e580177693a15af7e5949482688d9e8e941c8a0382cb401987"
diff --git a/recipes-opie/opie-deco-liquid/opie-deco-liquid_cvs.bb b/recipes-opie/opie-deco-liquid/opie-deco-liquid_cvs.bb
new file mode 100644
index 0000000..fee6dbc
--- /dev/null
+++ b/recipes-opie/opie-deco-liquid/opie-deco-liquid_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/decorations/liquid "
diff --git a/recipes-opie/opie-deco-polished/opie-deco-polished.inc b/recipes-opie/opie-deco-polished/opie-deco-polished.inc
new file mode 100644
index 0000000..501dc4a
--- /dev/null
+++ b/recipes-opie/opie-deco-polished/opie-deco-polished.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Polished window decoration style for Opie"
+SECTION = "opie/decorations"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "polished"
+
+
+S = "${WORKDIR}/polished"
+
+inherit opie
diff --git a/recipes-opie/opie-deco-polished/opie-deco-polished_1.2.5.bb b/recipes-opie/opie-deco-polished/opie-deco-polished_1.2.5.bb
new file mode 100644
index 0000000..6e9ebb8
--- /dev/null
+++ b/recipes-opie/opie-deco-polished/opie-deco-polished_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_decorations_polished.tar.bz2;name=split_noncore_decorations_polished"
+SRC_URI[split_noncore_decorations_polished.md5sum] = "e8a5dc81aa1a8dc8eec6d22bb3aff842"
+SRC_URI[split_noncore_decorations_polished.sha256sum] = "8a15dd2c1975edda33837fd65050e8941b593bbf2d7059283fc0a754c413b3ca"
diff --git a/recipes-opie/opie-deco-polished/opie-deco-polished_cvs.bb b/recipes-opie/opie-deco-polished/opie-deco-polished_cvs.bb
new file mode 100644
index 0000000..afd1587
--- /dev/null
+++ b/recipes-opie/opie-deco-polished/opie-deco-polished_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/decorations/polished "
diff --git a/recipes-opie/opie-doctab/opie-doctab.inc b/recipes-opie/opie-doctab/opie-doctab.inc
new file mode 100644
index 0000000..8a4124e
--- /dev/null
+++ b/recipes-opie/opie-doctab/opie-doctab.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "DocTab settings dialog for the Opie environment."
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "doctab"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libdoctab.so* bin/doctab apps/Settings/DocTab.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-doctab/opie-doctab_1.2.5.bb b/recipes-opie/opie-doctab/opie-doctab_1.2.5.bb
new file mode 100644
index 0000000..1ca9dcf
--- /dev/null
+++ b/recipes-opie/opie-doctab/opie-doctab_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_doctab.tar.bz2;name=split_noncore_settings_doctab \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_settings_doctab.md5sum] = "7f4cf7e56fd2c6169b89bf92f04e685c"
+SRC_URI[split_noncore_settings_doctab.sha256sum] = "268f0782b662ae6c2df4c473d645fd9c7b3221ae39352e407c77d908592e4157"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-doctab/opie-doctab_cvs.bb b/recipes-opie/opie-doctab/opie-doctab_cvs.bb
new file mode 100644
index 0000000..e2eb18d
--- /dev/null
+++ b/recipes-opie/opie-doctab/opie-doctab_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/doctab \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-drawpad/opie-drawpad.inc b/recipes-opie/opie-drawpad/opie-drawpad.inc
new file mode 100644
index 0000000..8b1f858
--- /dev/null
+++ b/recipes-opie/opie-drawpad/opie-drawpad.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "A note taking program with basic draw tools"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libopiecore2 libopieui2 libqtaux2"
+APPNAME = "drawpad"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libdrawpad.so* bin/drawpad apps/1Pim/drawpad.desktop pics/drawpad
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-drawpad/opie-drawpad_1.2.5.bb b/recipes-opie/opie-drawpad/opie-drawpad_1.2.5.bb
new file mode 100644
index 0000000..547a9c4
--- /dev/null
+++ b/recipes-opie/opie-drawpad/opie-drawpad_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_graphics_drawpad.tar.bz2;name=split_noncore_graphics_drawpad \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_graphics_drawpad.md5sum] = "f536cdac1371dc396d8dbea37fb74057"
+SRC_URI[split_noncore_graphics_drawpad.sha256sum] = "05a3af17140c73c340596a2446e84364725c59c6927a367342e48cdb00a0d8e2"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-drawpad/opie-drawpad_cvs.bb b/recipes-opie/opie-drawpad/opie-drawpad_cvs.bb
new file mode 100644
index 0000000..a11686c
--- /dev/null
+++ b/recipes-opie/opie-drawpad/opie-drawpad_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/graphics/drawpad \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-dvorak/files/fix-rpath.patch b/recipes-opie/opie-dvorak/files/fix-rpath.patch
new file mode 100644
index 0000000..37e2e5a
--- /dev/null
+++ b/recipes-opie/opie-dvorak/files/fix-rpath.patch
@@ -0,0 +1,13 @@
+diff --git a/dvorak.pro b/dvorak.pro
+index b659ab5..c1cf861 100644
+--- a/dvorak.pro
++++ b/dvorak.pro
+@@ -9,7 +9,7 @@ DESTDIR = ../../plugins/inputmethods
+ INCLUDEPATH += $(OPIEDIR)/include
+ DEPENDPATH += ../../launcher
+ LIBS += -lqpe -L$(OPIEDIR)/plugins/inputmethods -lqpickboard
+-QMAKE_LFLAGS += -Wl,-rpath,/opt/QtPalmtop/plugins/inputmethods
++QMAKE_LFLAGS += -Wl,-rpath,${palmtopdir}/plugins/inputmethods
+ VERSION = 1.0.0
+
+ include( $(OPIEDIR)/include.pro )
diff --git a/recipes-opie/opie-dvorak/opie-dvorak.inc b/recipes-opie/opie-dvorak/opie-dvorak.inc
new file mode 100644
index 0000000..9b89436
--- /dev/null
+++ b/recipes-opie/opie-dvorak/opie-dvorak.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Dvorak keyboard input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-pickboard"
+RDEPENDS_${PN} = "opie-pickboard"
+APPNAME = "qdvorak"
+
+S = "${WORKDIR}/dvorak"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqdvorak.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-dvorak/opie-dvorak_1.2.5.bb b/recipes-opie/opie-dvorak/opie-dvorak_1.2.5.bb
new file mode 100644
index 0000000..2a9336b
--- /dev/null
+++ b/recipes-opie/opie-dvorak/opie-dvorak_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_dvorak.tar.bz2;name=split_inputmethods_dvorak \
+ http://sources.openembedded.org/opie-1.2.5-split_inputmethods_pickboard.tar.bz2;name=split_inputmethods_pickboard \
+ file://fix-rpath.patch "
+SRC_URI[split_inputmethods_dvorak.md5sum] = "d0e715138c79b1f7dcd32b6ab3cd69fd"
+SRC_URI[split_inputmethods_dvorak.sha256sum] = "ab2f46b1919b627234b5c29e06c7cd043d07fa706e12e1e0dd52f0a6b88d4eb2"
+SRC_URI[split_inputmethods_pickboard.md5sum] = "86a0f938b5c65a388ee3ccd8b962e831"
+SRC_URI[split_inputmethods_pickboard.sha256sum] = "5c50eb3062443ca3fa249ec1c8fa7b141b4ed3524e907a3c51e6ee8c09f6f8bc"
diff --git a/recipes-opie/opie-dvorak/opie-dvorak_cvs.bb b/recipes-opie/opie-dvorak/opie-dvorak_cvs.bb
new file mode 100644
index 0000000..de9631c
--- /dev/null
+++ b/recipes-opie/opie-dvorak/opie-dvorak_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/dvorak \
+ ${OPIE_GIT};protocol=git;subpath=inputmethods/pickboard \
+ file://fix-rpath.patch "
diff --git a/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole.inc b/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole.inc
new file mode 100644
index 0000000..5997afd
--- /dev/null
+++ b/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Opie embedded konsole"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2 opie-keytabs"
+RDEPENDS_${PN} = "opie-keytabs"
+APPNAME = "embeddedkonsole"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/konsole/
+ install -m 0644 ${WORKDIR}/pics/konsole/*.png ${D}${palmtopdir}/pics/konsole/
+}
diff --git a/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_1.2.5.bb b/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_1.2.5.bb
new file mode 100644
index 0000000..b8909bc
--- /dev/null
+++ b/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_apps_${APPNAME}.tar.bz2;name=split_core_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_apps_appname.md5sum] = "c97acddc0ad1362e9c52fea2e43e3a5d"
+SRC_URI[split_core_apps_appname.sha256sum] = "b349e35f46d04067b44a8cfc45c313a25a8ad9d99925a8e73d89a530930a77fc"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_cvs.bb b/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_cvs.bb
new file mode 100644
index 0000000..3b6e748
--- /dev/null
+++ b/recipes-opie/opie-embeddedkonsole/opie-embeddedkonsole_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-euroconv/opie-euroconv.inc b/recipes-opie/opie-euroconv/opie-euroconv.inc
new file mode 100644
index 0000000..58b0f5f
--- /dev/null
+++ b/recipes-opie/opie-euroconv/opie-euroconv.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Euroconv"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "euroconv"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libeuroconv.so* bin/euroconv pics/euroconv/* apps/Applications/euroconv.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-euroconv/opie-euroconv_1.2.5.bb b/recipes-opie/opie-euroconv/opie-euroconv_1.2.5.bb
new file mode 100644
index 0000000..1ab1f08
--- /dev/null
+++ b/recipes-opie/opie-euroconv/opie-euroconv_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_euroconv.tar.bz2;name=split_noncore_tools_euroconv \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_tools_euroconv.md5sum] = "c047f37245915882c1de09221dcfd5d8"
+SRC_URI[split_noncore_tools_euroconv.sha256sum] = "c7fc966ba40c65d86172bd3fee8d05621a5182fa562fffcd46d8fb3ec318cb18"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-euroconv/opie-euroconv_cvs.bb b/recipes-opie/opie-euroconv/opie-euroconv_cvs.bb
new file mode 100644
index 0000000..8abb72f
--- /dev/null
+++ b/recipes-opie/opie-euroconv/opie-euroconv_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/euroconv \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-examples-python/opie-examples-python.inc b/recipes-opie/opie-examples-python/opie-examples-python.inc
new file mode 100644
index 0000000..3a784a3
--- /dev/null
+++ b/recipes-opie/opie-examples-python/opie-examples-python.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Python examples for Opie"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "python-pyqt opie-pyquicklaunchapplet"
+APPNAME = "python"
+PACKAGE_ARCH = "all"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_configure() {
+ :
+}
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/python/ ${D}${palmtopdir}/apps/Python
+ install -m 0755 *.py ${D}${palmtopdir}/bin/python/
+ install -m 0644 ${WORKDIR}/apps/Python/.directory ${D}${palmtopdir}/apps/Python/
+ install -m 0644 ${WORKDIR}/apps/Python/simple.desktop ${D}${palmtopdir}/apps/Python/
+}
+
diff --git a/recipes-opie/opie-examples-python/opie-examples-python_1.2.5.bb b/recipes-opie/opie-examples-python/opie-examples-python_1.2.5.bb
new file mode 100644
index 0000000..02426f0
--- /dev/null
+++ b/recipes-opie/opie-examples-python/opie-examples-python_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_examples_python.tar.bz2;name=split_examples_python \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_examples_python.md5sum] = "19cc8165731d2500be06ea628be37d5c"
+SRC_URI[split_examples_python.sha256sum] = "9f82baf3a3d251e352edecc9efa29501cb98cad7cff9fd2aab192b8c6d04aa3d"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-examples-python/opie-examples-python_cvs.bb b/recipes-opie/opie-examples-python/opie-examples-python_cvs.bb
new file mode 100644
index 0000000..330e09d
--- /dev/null
+++ b/recipes-opie/opie-examples-python/opie-examples-python_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=examples/python \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-examples/opie-examples.inc b/recipes-opie/opie-examples/opie-examples.inc
new file mode 100644
index 0000000..d90c3e1
--- /dev/null
+++ b/recipes-opie/opie-examples/opie-examples.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "Developer Examples for Opie"
+SECTION = "opie/base"
+PRIORITY = "optional"
+DEPENDS = "opie-networksettings"
+LICENSE = "GPL"
+APPTYPE = "binary"
+
+S = "${WORKDIR}/examples"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/
+
+ for i in `find . -perm 0755 -type f`
+ do
+ install -m 0755 $i ${D}${palmtopdir}/bin/`basename $i`
+ done
+}
+
diff --git a/recipes-opie/opie-examples/opie-examples_1.2.5.bb b/recipes-opie/opie-examples/opie-examples_1.2.5.bb
new file mode 100644
index 0000000..e6d1d05
--- /dev/null
+++ b/recipes-opie/opie-examples/opie-examples_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_examples.tar.bz2;name=split_examples \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_examples.md5sum] = "9e6a0e76e883a27cc1fcb8f3df3c844e"
+SRC_URI[split_examples.sha256sum] = "73547a40fc8a0cea3561ec5402341cc49c857111df1af5217d7fb02d407e1e88"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-examples/opie-examples_cvs.bb b/recipes-opie/opie-examples/opie-examples_cvs.bb
new file mode 100644
index 0000000..fa426a8
--- /dev/null
+++ b/recipes-opie/opie-examples/opie-examples_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=examples \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-eye/opie-eye.inc b/recipes-opie/opie-eye/opie-eye.inc
new file mode 100644
index 0000000..019d2ce
--- /dev/null
+++ b/recipes-opie/opie-eye/opie-eye.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "A image viewer"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libopiecore2 libopieui2 libopiemm2"
+RDEPENDS_${PN} = "opie-advancedfm-pics"
+APPNAME = "opie-eye"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_configure_append() {
+ cd slave && qmake -makefile -spec ${QMAKESPEC} slave.pro -after ${EXTRA_QMAKEVARS_POST}
+}
+
+do_compile_append() {
+ cd slave && oe_runmake
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 opie-eye_slave ${D}${bindir}
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-eye/opie-eye_1.2.5.bb b/recipes-opie/opie-eye/opie-eye_1.2.5.bb
new file mode 100644
index 0000000..ddaf54c
--- /dev/null
+++ b/recipes-opie/opie-eye/opie-eye_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_graphics_opie-eye.tar.bz2;name=split_noncore_graphics_opie-eye \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_graphics_opie-eye.md5sum] = "301fa084aaeacd10ae37698749a46403"
+SRC_URI[split_noncore_graphics_opie-eye.sha256sum] = "aa7b355eac4792aa7293362ae44c4331a642a9c9918d7231e98fca6fcb5df781"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-eye/opie-eye_cvs.bb b/recipes-opie/opie-eye/opie-eye_cvs.bb
new file mode 100644
index 0000000..7ae0402
--- /dev/null
+++ b/recipes-opie/opie-eye/opie-eye_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/graphics/opie-eye \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-fifteen/opie-fifteen.inc b/recipes-opie/opie-fifteen/opie-fifteen.inc
new file mode 100644
index 0000000..a395175
--- /dev/null
+++ b/recipes-opie/opie-fifteen/opie-fifteen.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Fifteen pieces game"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "fifteen"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libfifteen.so* bin/fifteen apps/Games/fifteen.desktop pics/fifteen
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-fifteen/opie-fifteen_1.2.5.bb b/recipes-opie/opie-fifteen/opie-fifteen_1.2.5.bb
new file mode 100644
index 0000000..7f5eab4
--- /dev/null
+++ b/recipes-opie/opie-fifteen/opie-fifteen_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_fifteen.tar.bz2;name=split_noncore_games_fifteen \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_fifteen.md5sum] = "27f980104a55a6fc4103acc3e52e39c0"
+SRC_URI[split_noncore_games_fifteen.sha256sum] = "65ce3f0f7cf40d82d029d6225a19a3f8d6f10e50ae5927c9fb700cc590be35dc"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-fifteen/opie-fifteen_cvs.bb b/recipes-opie/opie-fifteen/opie-fifteen_cvs.bb
new file mode 100644
index 0000000..e0ee7c2
--- /dev/null
+++ b/recipes-opie/opie-fifteen/opie-fifteen_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/fifteen \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-formatter/opie-formatter.inc b/recipes-opie/opie-formatter/opie-formatter.inc
new file mode 100644
index 0000000..f259d0a
--- /dev/null
+++ b/recipes-opie/opie-formatter/opie-formatter.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "The filesystem formatting and mountpoint app for the Opie environment."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "formatter"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-formatter/opie-formatter_1.2.5.bb b/recipes-opie/opie-formatter/opie-formatter_1.2.5.bb
new file mode 100644
index 0000000..33d96b1
--- /dev/null
+++ b/recipes-opie/opie-formatter/opie-formatter_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_formatter.tar.bz2;name=split_noncore_tools_formatter \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_tools_formatter.md5sum] = "37c3012284e679dcff8359989e8df830"
+SRC_URI[split_noncore_tools_formatter.sha256sum] = "9a51cd6816f0e1b0f8c890fe416a1857b4650fa10d45e56f793d6a4012e190b8"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-formatter/opie-formatter_cvs.bb b/recipes-opie/opie-formatter/opie-formatter_cvs.bb
new file mode 100644
index 0000000..4c15f2d
--- /dev/null
+++ b/recipes-opie/opie-formatter/opie-formatter_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/formatter \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-freetype/opie-freetype.inc b/recipes-opie/opie-freetype/opie-freetype.inc
new file mode 100644
index 0000000..6ca053a
--- /dev/null
+++ b/recipes-opie/opie-freetype/opie-freetype.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Freetype fontfactory plugin"
+SECTION = "opie/fontfactories"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "freetype opie-ttf-support"
+RDEPENDS_${PN} = "opie-ttf-support"
+APPNAME = "freetypefactory"
+APPTYPE = "plugin"
+
+S = "${WORKDIR}/freetype"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/freetype2"
+
+DEBIAN_NOAUTONAME_opie-freetype = "1"
diff --git a/recipes-opie/opie-freetype/opie-freetype_1.2.5.bb b/recipes-opie/opie-freetype/opie-freetype_1.2.5.bb
new file mode 100644
index 0000000..1a9c5a6
--- /dev/null
+++ b/recipes-opie/opie-freetype/opie-freetype_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_freetype.tar.bz2;name=split_freetype"
+SRC_URI[split_freetype.md5sum] = "cda4da0c8f622cc4020e7020bcd426f7"
+SRC_URI[split_freetype.sha256sum] = "804624e97cdccad3c9b6bd072a84d4e8d5afe955701fd149c2d8c54c586a2efd"
diff --git a/recipes-opie/opie-freetype/opie-freetype_cvs.bb b/recipes-opie/opie-freetype/opie-freetype_cvs.bb
new file mode 100644
index 0000000..6a7198e
--- /dev/null
+++ b/recipes-opie/opie-freetype/opie-freetype_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=freetype"
diff --git a/recipes-opie/opie-ftp/opie-ftp.inc b/recipes-opie/opie-ftp/opie-ftp.inc
new file mode 100644
index 0000000..1e7d712
--- /dev/null
+++ b/recipes-opie/opie-ftp/opie-ftp.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Opie-Ftp"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libopiecore2 opie-ftplib"
+APPNAME = "opieftp"
+I18N_FILES = "opieftp.ts"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libopieftp.so* bin/opieftp pics/opieftp apps/Applications/opieftp.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-ftp/opie-ftp_1.2.5.bb b/recipes-opie/opie-ftp/opie-ftp_1.2.5.bb
new file mode 100644
index 0000000..44998fc
--- /dev/null
+++ b/recipes-opie/opie-ftp/opie-ftp_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opieftp.tar.bz2;name=split_noncore_net_opieftp \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_net_opieftp.md5sum] = "5fa54b891a267b9d481d010737c2bfda"
+SRC_URI[split_noncore_net_opieftp.sha256sum] = "a52b673538dccbc36d274b7929db4de281a76120887c20f0052b709dd37967b4"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-ftp/opie-ftp_cvs.bb b/recipes-opie/opie-ftp/opie-ftp_cvs.bb
new file mode 100644
index 0000000..a796093
--- /dev/null
+++ b/recipes-opie/opie-ftp/opie-ftp_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opieftp \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-ftplib/opie-ftplib.inc b/recipes-opie/opie-ftplib/opie-ftplib.inc
new file mode 100644
index 0000000..51a0fed
--- /dev/null
+++ b/recipes-opie/opie-ftplib/opie-ftplib.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Opie FTP Library"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+I18N_FILES = "libftplib.ts"
+APPNAME = "opie-ftplib"
+
+S = "${WORKDIR}/ftplib"
+
+inherit opie
+
+do_install() {
+ oe_libinstall -so libftplib ${D}${libdir}
+ install -d ${D}${includedir}
+ install -m 0664 ${S}/ftplib.h ${D}${includedir}
+}
diff --git a/recipes-opie/opie-ftplib/opie-ftplib_1.2.5.bb b/recipes-opie/opie-ftplib/opie-ftplib_1.2.5.bb
new file mode 100644
index 0000000..1b985d1
--- /dev/null
+++ b/recipes-opie/opie-ftplib/opie-ftplib_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_ftplib.tar.bz2;name=split_noncore_net_ftplib"
+SRC_URI[split_noncore_net_ftplib.md5sum] = "ce39fe4b549eb3a1608a6906b97ffcdd"
+SRC_URI[split_noncore_net_ftplib.sha256sum] = "050a973ceac5e1ca8e295fd5ec8321b6002d80a8a4ee5369b62c3c20940a84c8"
+
+PR = "r1"
diff --git a/recipes-opie/opie-ftplib/opie-ftplib_cvs.bb b/recipes-opie/opie-ftplib/opie-ftplib_cvs.bb
new file mode 100644
index 0000000..f9cfad7
--- /dev/null
+++ b/recipes-opie/opie-ftplib/opie-ftplib_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/ftplib"
diff --git a/recipes-opie/opie-go/opie-go.inc b/recipes-opie/opie-go/opie-go.inc
new file mode 100644
index 0000000..43f566a
--- /dev/null
+++ b/recipes-opie/opie-go/opie-go.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "The game of Go"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "go"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libgo.so* bin/go apps/Games/go.desktop pics/go
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-go/opie-go_1.2.5.bb b/recipes-opie/opie-go/opie-go_1.2.5.bb
new file mode 100644
index 0000000..72b5931
--- /dev/null
+++ b/recipes-opie/opie-go/opie-go_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_go.tar.bz2;name=split_noncore_games_go \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_go.md5sum] = "6634e95837bbcac6089587cb18e6f9a0"
+SRC_URI[split_noncore_games_go.sha256sum] = "b501beee47ad7330c39bb459fbbf3579cfa4f3f04dd70ed28ec645325cc2f542"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-go/opie-go_cvs.bb b/recipes-opie/opie-go/opie-go_cvs.bb
new file mode 100644
index 0000000..870f951
--- /dev/null
+++ b/recipes-opie/opie-go/opie-go_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/go \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-gutenbrowser/opie-gutenbrowser.inc b/recipes-opie/opie-gutenbrowser/opie-gutenbrowser.inc
new file mode 100644
index 0000000..f1bd5f7
--- /dev/null
+++ b/recipes-opie/opie-gutenbrowser/opie-gutenbrowser.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Etext reader for the Project Gutenberg."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-ftplib"
+APPNAME = "gutenbrowser"
+
+
+S = "${WORKDIR}/opie-gutenbrowser"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/etc/gutenbrowser/
+ install -m 0644 ${WORKDIR}/etc/gutenbrowser/ftpList ${WORKDIR}/etc/gutenbrowser/GUTINDEX.ALL ${D}${palmtopdir}/etc/gutenbrowser/
+}
diff --git a/recipes-opie/opie-gutenbrowser/opie-gutenbrowser_1.2.5.bb b/recipes-opie/opie-gutenbrowser/opie-gutenbrowser_1.2.5.bb
new file mode 100644
index 0000000..7b9e78f
--- /dev/null
+++ b/recipes-opie/opie-gutenbrowser/opie-gutenbrowser_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_opie-gutenbrowser.tar.bz2;name=split_noncore_apps_opie-gutenbrowser \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_etc.tar.bz2;name=split_etc"
+SRC_URI[split_noncore_apps_opie-gutenbrowser.md5sum] = "fc101ab0eee9b410ef06326d18c0c950"
+SRC_URI[split_noncore_apps_opie-gutenbrowser.sha256sum] = "156ac50053f92c7d4a07a582da427dc3a266322824ba615936eaf77a46c685b4"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_etc.md5sum] = "74ef523ef12e242155bbb745072434d9"
+SRC_URI[split_etc.sha256sum] = "eef55ea2248b4f45f3a07beb6012e431dd71d4eefa134d39cc50b4d194c53087"
diff --git a/recipes-opie/opie-gutenbrowser/opie-gutenbrowser_cvs.bb b/recipes-opie/opie-gutenbrowser/opie-gutenbrowser_cvs.bb
new file mode 100644
index 0000000..4f21450
--- /dev/null
+++ b/recipes-opie/opie-gutenbrowser/opie-gutenbrowser_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/opie-gutenbrowser \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=etc"
diff --git a/recipes-opie/opie-handwriting/opie-handwriting.inc b/recipes-opie/opie-handwriting/opie-handwriting.inc
new file mode 100644
index 0000000..c4b79cb
--- /dev/null
+++ b/recipes-opie/opie-handwriting/opie-handwriting.inc
@@ -0,0 +1,47 @@
+DESCRIPTION = "Handwriting input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qhandwriting"
+
+
+S = "${WORKDIR}/handwriting"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqhandwriting.so*
+do_install() {
+ install -d ${D}${palmtopdir}/etc/qimpen/
+ for f in ../qimpen/*
+ do
+ [ -f $f ] && install -m 0644 $f ${D}${palmtopdir}/etc/qimpen/
+ done
+}
+
+PACKAGES += " opie-handwriting-classicset opie-handwriting-graffitiset "
+
+FILES_${PN} = "${palmtopdir}/plugins/inputmethods/libqhandwriting.so*"
+FILES_opie-handwriting-classicset = "${palmtopdir}/etc/qimpen/default.conf \
+ ${palmtopdir}/etc/qimpen/combining.qpt \
+ ${palmtopdir}/etc/qimpen/asciilower.qpt \
+ ${palmtopdir}/etc/qimpen/asciiupper.qpt \
+ ${palmtopdir}/etc/qimpen/numeric.qpt"
+FILES_opie-handwriting-graffitiset = "${palmtopdir}/etc/qimpen/graffiti*"
+
diff --git a/recipes-opie/opie-handwriting/opie-handwriting_1.2.5.bb b/recipes-opie/opie-handwriting/opie-handwriting_1.2.5.bb
new file mode 100644
index 0000000..b374311
--- /dev/null
+++ b/recipes-opie/opie-handwriting/opie-handwriting_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_handwriting.tar.bz2;name=split_inputmethods_handwriting \
+ http://sources.openembedded.org/opie-1.2.5-split_etc_qimpen.tar.bz2;name=split_etc_qimpen"
+SRC_URI[split_inputmethods_handwriting.md5sum] = "2ba77c63a71bc0f4a3bddbcc15a1b816"
+SRC_URI[split_inputmethods_handwriting.sha256sum] = "9d7e305fd8ccce226a7dde687024641657add23bb7b46d898b6ec7066b6e41f0"
+SRC_URI[split_etc_qimpen.md5sum] = "4a95b508202bafcdb204abcbd0dd17d3"
+SRC_URI[split_etc_qimpen.sha256sum] = "a9e64ba22c71ef2c3c76a52529f95a01fe172d5f5835906da2ad10da0cd60539"
diff --git a/recipes-opie/opie-handwriting/opie-handwriting_cvs.bb b/recipes-opie/opie-handwriting/opie-handwriting_cvs.bb
new file mode 100644
index 0000000..a38ec9e
--- /dev/null
+++ b/recipes-opie/opie-handwriting/opie-handwriting_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/handwriting \
+ ${OPIE_GIT};protocol=git;subpath=etc/qimpen"
diff --git a/recipes-opie/opie-help-en/opie-help-en.inc b/recipes-opie/opie-help-en/opie-help-en.inc
new file mode 100644
index 0000000..1b110f9
--- /dev/null
+++ b/recipes-opie/opie-help-en/opie-help-en.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Opie Help Packages - English"
+SECTION = "opie/help"
+PRIORITY = "optional"
+LICENSE = "GPL"
+ALLOW_EMPTY = "1"
+PACKAGE_ARCH = "all"
+
+PACKAGES += "${PN}"
+RDEPENDS_${PN} = "opie-helpbrowser"
+
+S = "${WORKDIR}/html"
+
+do_install() {
+ install -d ${D}${palmtopdir}/help/en/html/
+ install -m 0644 ${WORKDIR}/html/*.html ${D}${palmtopdir}/help/en/html/
+ for d in $(find . -type d | grep -v "CVS\|patch")
+ do
+ install -d ${D}${palmtopdir}/help/en/html/$d
+ install -m 0644 ${WORKDIR}/html/$d/*.html ${D}${palmtopdir}/help/en/html/$d/
+ done
+}
+
+python populate_packages_prepend () {
+ help_dir = bb.data.expand('${palmtopdir}/help/en/html/', d)
+
+ do_split_packages(d, help_dir, file_regex='^(.*)\.html$', output_pattern='opie-%s-help-en', description='Opie Help for %s - English', aux_files_pattern=help_dir + '%s/*')
+}
diff --git a/recipes-opie/opie-help-en/opie-help-en_1.2.5.bb b/recipes-opie/opie-help-en/opie-help-en_1.2.5.bb
new file mode 100644
index 0000000..36aed0d
--- /dev/null
+++ b/recipes-opie/opie-help-en/opie-help-en_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_help_en_html.tar.bz2;name=split_help_en_html"
+SRC_URI[split_help_en_html.md5sum] = "5ac74b5394fc9afa780f3925862496e3"
+SRC_URI[split_help_en_html.sha256sum] = "64c9dd9aa72ea9939ee9176eb80a0b87d58b43bcdb5e652b581de93e52b506dc"
diff --git a/recipes-opie/opie-help-en/opie-help-en_cvs.bb b/recipes-opie/opie-help-en/opie-help-en_cvs.bb
new file mode 100644
index 0000000..20bcb5d
--- /dev/null
+++ b/recipes-opie/opie-help-en/opie-help-en_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=help/en/html "
diff --git a/recipes-opie/opie-helpbrowser/opie-helpbrowser.inc b/recipes-opie/opie-helpbrowser/opie-helpbrowser.inc
new file mode 100644
index 0000000..cd3354c
--- /dev/null
+++ b/recipes-opie/opie-helpbrowser/opie-helpbrowser.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Opie Help Browser"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "helpbrowser"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-helpbrowser/opie-helpbrowser_1.2.5.bb b/recipes-opie/opie-helpbrowser/opie-helpbrowser_1.2.5.bb
new file mode 100644
index 0000000..1001418
--- /dev/null
+++ b/recipes-opie/opie-helpbrowser/opie-helpbrowser_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_apps_${APPNAME}.tar.bz2;name=split_core_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_apps_appname.md5sum] = "28a79d0c8a26a2397173031ad7e2173f"
+SRC_URI[split_core_apps_appname.sha256sum] = "4ec7e56bc8264c33795ffaa666b3fa20b8b60a824c0bf15ce5e461b2227c7233"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-helpbrowser/opie-helpbrowser_cvs.bb b/recipes-opie/opie-helpbrowser/opie-helpbrowser_cvs.bb
new file mode 100644
index 0000000..3b6e748
--- /dev/null
+++ b/recipes-opie/opie-helpbrowser/opie-helpbrowser_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-homeapplet/opie-homeapplet.inc b/recipes-opie/opie-homeapplet/opie-homeapplet.inc
new file mode 100644
index 0000000..4e98952
--- /dev/null
+++ b/recipes-opie/opie-homeapplet/opie-homeapplet.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Home Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "homeapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES
+do_install() {
+}
+
diff --git a/recipes-opie/opie-homeapplet/opie-homeapplet_1.2.5.bb b/recipes-opie/opie-homeapplet/opie-homeapplet_1.2.5.bb
new file mode 100644
index 0000000..c0dada9
--- /dev/null
+++ b/recipes-opie/opie-homeapplet/opie-homeapplet_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_homeapplet.tar.bz2;name=split_core_applets_homeapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_homeapplet.md5sum] = "58ffe58467a757f36aa06dc1ac7c5264"
+SRC_URI[split_core_applets_homeapplet.sha256sum] = "fa4983c2cb651157affb05031680278861b1dfef310a7ede07a731428bf1a3f2"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-homeapplet/opie-homeapplet_cvs.bb b/recipes-opie/opie-homeapplet/opie-homeapplet_cvs.bb
new file mode 100644
index 0000000..3aeaeda
--- /dev/null
+++ b/recipes-opie/opie-homeapplet/opie-homeapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/homeapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-i18n/opie-i18n.inc b/recipes-opie/opie-i18n/opie-i18n.inc
new file mode 100644
index 0000000..fd39583
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-i18n.inc
@@ -0,0 +1,94 @@
+DESCRIPTION = "Opie i18n files"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-lrelease-native"
+
+
+S = "${WORKDIR}/i18n"
+
+do_compile() {
+ for f in ?? ??_??
+ do
+ cd ${S}/$f
+ for g in *.ts
+ do
+ opie-lrelease $g
+ done
+ done
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/i18n/
+ install -d ${D}${palmtopdir}/etc/dict/
+ for f in ?? ??_??
+ do
+ echo Installing language $f
+ install -d ${D}${palmtopdir}/i18n/$f/
+ install -m 0644 $f/.directory ${D}${palmtopdir}/i18n/$f/
+ install -m 0644 $f/*.qm ${D}${palmtopdir}/i18n/$f/
+ if [ -e ${WORKDIR}/dict/dawg.$f ]
+ then
+ install -m 0644 ${WORKDIR}/dict/dawg.$f ${D}${palmtopdir}/etc/dict/
+ fi
+ install -m 0644 ${WORKDIR}/dict/dawg ${D}${palmtopdir}/etc/dict/
+ done
+}
+
+ALLOW_EMPTY_${PN} = "1"
+PACKAGES = "${PN}-dbg ${PN} opie-i18n-cz opie-i18n-da opie-i18n-de opie-i18n-dk opie-i18n-en opie-i18n-es \
+opie-i18n-fr opie-i18n-hu opie-i18n-it opie-i18n-ja opie-i18n-ko opie-i18n-lv opie-i18n-mk \
+opie-i18n-nl opie-i18n-no opie-i18n-pl opie-i18n-pt opie-i18n-pt-br opie-i18n-ru opie-i18n-sl \
+opie-i18n-xx opie-i18n-zh-cn opie-i18n-zh-tw \
+opie-dict-cz opie-dict-da opie-dict-de opie-dict-dk opie-dict-en opie-dict-es \
+opie-dict-fr opie-dict-hu opie-dict-it opie-dict-ja opie-dict-ko opie-dict-lv opie-dict-mk \
+opie-dict-nl opie-dict-no opie-dict-pl opie-dict-pt opie-dict-pt-br opie-dict-ru opie-dict-sl \
+opie-dict-xx opie-dict-zh-cn opie-dict-zh-tw "
+
+FILES_opie-dict-cz = "${palmtopdir}/etc/dict/dawg.cz"
+FILES_opie-dict-da = "${palmtopdir}/etc/dict/dawg.da"
+FILES_opie-dict-de = "${palmtopdir}/etc/dict/dawg.de"
+FILES_opie-dict-dk = "${palmtopdir}/etc/dict/dawg.dk"
+FILES_opie-dict-en = "${palmtopdir}/etc/dict/dawg"
+FILES_opie-dict-es = "${palmtopdir}/etc/dict/dawg.es"
+FILES_opie-dict-fr = "${palmtopdir}/etc/dict/dawg.fr"
+FILES_opie-dict-hu = "${palmtopdir}/etc/dict/dawg.hu"
+FILES_opie-dict-it = "${palmtopdir}/etc/dict/dawg.it"
+FILES_opie-dict-ja = "${palmtopdir}/etc/dict/dawg.ja"
+FILES_opie-dict-ko = "${palmtopdir}/etc/dict/dawg.ko"
+FILES_opie-dict-lv = "${palmtopdir}/etc/dict/dawg.lv"
+FILES_opie-dict-mk = "${palmtopdir}/etc/dict/dawg.mk"
+FILES_opie-dict-nl = "${palmtopdir}/etc/dict/dawg.nl"
+FILES_opie-dict-no = "${palmtopdir}/etc/dict/dawg.no"
+FILES_opie-dict-pl = "${palmtopdir}/etc/dict/dawg.pl"
+FILES_opie-dict-pt-br = "${palmtopdir}/etc/dict/dawg.pt_BR"
+FILES_opie-dict-pt = "${palmtopdir}/etc/dict/dawg.pt"
+FILES_opie-dict-ru = "${palmtopdir}/etc/dict/dawg.ru"
+FILES_opie-dict-sl = "${palmtopdir}/etc/dict/dawg.sl"
+FILES_opie-dict-xx = "${palmtopdir}/etc/dict/dawg.xx"
+FILES_opie-dict-zh-cn = "${palmtopdir}/etc/dict/dawg.zh_CN"
+FILES_opie-dict-zh-tw = "${palmtopdir}/etc/dict/dawg.zh_TW"
+
+FILES_opie-i18n-cz = "${palmtopdir}/i18n/cz"
+FILES_opie-i18n-da = "${palmtopdir}/i18n/da"
+FILES_opie-i18n-de = "${palmtopdir}/i18n/de"
+FILES_opie-i18n-dk = "${palmtopdir}/i18n/dk"
+FILES_opie-i18n-en = "${palmtopdir}/i18n/en"
+FILES_opie-i18n-es = "${palmtopdir}/i18n/es"
+FILES_opie-i18n-fr = "${palmtopdir}/i18n/fr"
+FILES_opie-i18n-hu = "${palmtopdir}/i18n/hu"
+FILES_opie-i18n-it = "${palmtopdir}/i18n/it"
+FILES_opie-i18n-ja = "${palmtopdir}/i18n/ja"
+FILES_opie-i18n-ko = "${palmtopdir}/i18n/ko"
+FILES_opie-i18n-lv = "${palmtopdir}/i18n/lv"
+FILES_opie-i18n-mk = "${palmtopdir}/i18n/mk"
+FILES_opie-i18n-nl = "${palmtopdir}/i18n/nl"
+FILES_opie-i18n-no = "${palmtopdir}/i18n/no"
+FILES_opie-i18n-pl = "${palmtopdir}/i18n/pl"
+FILES_opie-i18n-pt-br = "${palmtopdir}/i18n/pt_BR"
+FILES_opie-i18n-pt = "${palmtopdir}/i18n/pt"
+FILES_opie-i18n-ru = "${palmtopdir}/i18n/ru"
+FILES_opie-i18n-sl = "${palmtopdir}/i18n/sl"
+FILES_opie-i18n-xx = "${palmtopdir}/i18n/xx"
+FILES_opie-i18n-zh-cn = "${palmtopdir}/i18n/zh_CN"
+FILES_opie-i18n-zh-tw = "${palmtopdir}/i18n/zh_TW"
diff --git a/recipes-opie/opie-i18n/opie-i18n_1.2.5.bb b/recipes-opie/opie-i18n/opie-i18n_1.2.5.bb
new file mode 100644
index 0000000..1b9935e
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-i18n_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_i18n.tar.bz2;name=split_i18n \
+ http://sources.openembedded.org/opie-1.2.5-split_etc_dict.tar.bz2;name=split_etc_dict"
+SRC_URI[split_i18n.md5sum] = "0877eb0c761b06de8dc64f28d1d4bd6f"
+SRC_URI[split_i18n.sha256sum] = "5005fa9825bbbdb10367882ec8a9c2df6e755ecc0c9705e674d4dea00abdea0c"
+SRC_URI[split_etc_dict.md5sum] = "1112ee99cf14220ca63ec6c49d4f4e61"
+SRC_URI[split_etc_dict.sha256sum] = "43e67873ec83ec33b4ad2d441a8606ac8418ff27581bdffa85eef071bee1f7ce"
diff --git a/recipes-opie/opie-i18n/opie-i18n_cvs.bb b/recipes-opie/opie-i18n/opie-i18n_cvs.bb
new file mode 100644
index 0000000..0d1d913
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-i18n_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=i18n \
+ ${OPIE_GIT};protocol=git;subpath=etc/dict"
diff --git a/recipes-opie/opie-i18n/opie-lrelease-native.inc b/recipes-opie/opie-i18n/opie-lrelease-native.inc
new file mode 100644
index 0000000..337196f
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-lrelease-native.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "Opie native i18n tool lrelease"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "uicmoc3-native"
+INC_PR = "r1"
+
+S = "${WORKDIR}/opie-lrelease"
+
+inherit native qmake qt3e
+
+export OE_QMAKE_LINK="${CXX}"
+EXTRA_QMAKEVARS_POST_append = "LIBS+=-ldl"
+
+do_install() {
+ install -d ${D}${bindir}/
+ install -m 0755 opie-lrelease ${D}${bindir}/
+}
+
+NATIVE_INSTALL_WORKS = "1"
diff --git a/recipes-opie/opie-i18n/opie-lrelease-native_1.2.5.bb b/recipes-opie/opie-i18n/opie-lrelease-native_1.2.5.bb
new file mode 100644
index 0000000..38324cb
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-lrelease-native_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_development_translation_opie-lrelease.tar.bz2;name=split_development_translation_opie-lrelease \
+ http://sources.openembedded.org/opie-1.2.5-split_development_translation_shared.tar.bz2;name=split_development_translation_shared"
+SRC_URI[split_development_translation_opie-lrelease.md5sum] = "e35c6b83652e03eeb1a33b6f88e0cbb7"
+SRC_URI[split_development_translation_opie-lrelease.sha256sum] = "aa47f392242acebbb1e4d30e97d0637fae6978c697846571544767c769c30772"
+SRC_URI[split_development_translation_shared.md5sum] = "c18142103c03fa4d3df4d5eecf12de33"
+SRC_URI[split_development_translation_shared.sha256sum] = "958bf759bf7677b40b67661f02245b644e576700d62c4b5655c1d40f9d735154"
diff --git a/recipes-opie/opie-i18n/opie-lrelease-native_cvs.bb b/recipes-opie/opie-i18n/opie-lrelease-native_cvs.bb
new file mode 100644
index 0000000..13d1345
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-lrelease-native_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=development/translation/opie-lrelease \
+ ${OPIE_GIT};protocol=git;subpath=development/translation/shared"
diff --git a/recipes-opie/opie-i18n/opie-lupdate-native.inc b/recipes-opie/opie-i18n/opie-lupdate-native.inc
new file mode 100644
index 0000000..0e95b4b
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-lupdate-native.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Opie native i18n tool lupdate"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "uicmoc3-native"
+
+S = "${WORKDIR}/opie-lupdate"
+
+inherit native qmake qt3e
+
+export OE_QMAKE_LINK="${CXX}"
+EXTRA_QMAKEVARS_POST_append = "LIBS+=-ldl "
+EXTRA_QMAKEVARS_POST_append = "CONFIG-=thread "
+
+do_install() {
+ install -d ${D}${bindir}/
+ install -m 0755 opie-lupdate ${D}${bindir}/
+}
diff --git a/recipes-opie/opie-i18n/opie-lupdate-native_1.2.5.bb b/recipes-opie/opie-i18n/opie-lupdate-native_1.2.5.bb
new file mode 100644
index 0000000..dc786bc
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-lupdate-native_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r1"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_development_translation_opie-lupdate.tar.bz2;name=split_development_translation_opie-lupdate \
+ http://sources.openembedded.org/opie-1.2.5-split_development_translation_shared.tar.bz2;name=split_development_translation_shared"
+SRC_URI[split_development_translation_opie-lupdate.md5sum] = "b1460106c3aa098a0bb4775cc0e12273"
+SRC_URI[split_development_translation_opie-lupdate.sha256sum] = "91cbc7eda498dffde3c6b9eaade836750801f429c965d291ce0052e321a63611"
+SRC_URI[split_development_translation_shared.md5sum] = "c18142103c03fa4d3df4d5eecf12de33"
+SRC_URI[split_development_translation_shared.sha256sum] = "958bf759bf7677b40b67661f02245b644e576700d62c4b5655c1d40f9d735154"
diff --git a/recipes-opie/opie-i18n/opie-lupdate-native_cvs.bb b/recipes-opie/opie-i18n/opie-lupdate-native_cvs.bb
new file mode 100644
index 0000000..55cfa33
--- /dev/null
+++ b/recipes-opie/opie-i18n/opie-lupdate-native_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=development/translation/opie-lupdate \
+ ${OPIE_GIT};protocol=git;subpath=development/translation/shared"
diff --git a/recipes-opie/opie-icon-reload/opie-icon-reload.inc b/recipes-opie/opie-icon-reload/opie-icon-reload.inc
new file mode 100644
index 0000000..a83aa34
--- /dev/null
+++ b/recipes-opie/opie-icon-reload/opie-icon-reload.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "Reload .desktop files on the fly"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+PACKAGE_ARCH = "all"
+
+SRC_URI = "file://icon-reload.desktop \
+ file://icon-reload.sh \
+ file://reload.png"
+
+FILES_${PN} += "${palmtopdir}"
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Settings
+ install -d ${D}${bindir}
+ install -d ${D}${palmtopdir}/pics
+
+ install -m 0644 ${WORKDIR}/icon-reload.desktop ${D}${palmtopdir}/apps/Settings
+ install -m 0755 ${WORKDIR}/icon-reload.sh ${D}${bindir}
+ sed -i -e 's,@bindir@,${bindir},g' ${D}${bindir}/icon-reload.sh
+ install -m 0644 ${WORKDIR}/reload.png ${D}${palmtopdir}/pics
+}
+
diff --git a/recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.desktop b/recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.desktop
new file mode 100644
index 0000000..4319b4b
--- /dev/null
+++ b/recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Exec=icon-reload.sh
+Icon=reload
+Type=Application
+Name=Reload Icons
+Comment=Force reloading of .desktop files
+Name[de]=Icons laden
+Comment[de]=.desktop Dateien neu einlesen.
diff --git a/recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.sh b/recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.sh
new file mode 100755
index 0000000..adeba39
--- /dev/null
+++ b/recipes-opie/opie-icon-reload/opie-icon-reload/icon-reload.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+@bindir@/qcop QPE/TaskBar "reloadInputMethods()"
+@bindir@/qcop QPE/System "linkChanged(QString)"
diff --git a/recipes-opie/opie-icon-reload/opie-icon-reload/reload.png b/recipes-opie/opie-icon-reload/opie-icon-reload/reload.png
new file mode 100644
index 0000000..d520167
--- /dev/null
+++ b/recipes-opie/opie-icon-reload/opie-icon-reload/reload.png
Binary files differ
diff --git a/recipes-opie/opie-icon-reload/opie-icon-reload_1.2.5.bb b/recipes-opie/opie-icon-reload/opie-icon-reload_1.2.5.bb
new file mode 100644
index 0000000..10510e5
--- /dev/null
+++ b/recipes-opie/opie-icon-reload/opie-icon-reload_1.2.5.bb
@@ -0,0 +1,2 @@
+require ${PN}.inc
+
diff --git a/recipes-opie/opie-init/opie-init.inc b/recipes-opie/opie-init/opie-init.inc
new file mode 100644
index 0000000..b40492f
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init.inc
@@ -0,0 +1,47 @@
+DESCRIPTION = "Opie Startup scripts and config"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+#APPNAME = "qpe"
+
+#S = "${WORKDIR}/launcher"
+
+#inherit opie
+inherit update-rc.d
+
+INITSCRIPT_NAME = "opie"
+INITSCRIPT_PARAMS = "start 99 5 . stop 20 0 1 6 ."
+
+do_install() {
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/profile.d
+ install -d ${D}${bindir}
+ install -d ${D}${palmtopdir}/etc/skel
+
+ sed -s "s|@palmtopdir@|${palmtopdir}|" ${WORKDIR}/opie >${WORKDIR}/opie.tmp
+ sed -s "s|@palmtopdir@|${palmtopdir}|" ${WORKDIR}/opie_defaults >${WORKDIR}/opie_defaults.tmp
+ install -m 0755 ${WORKDIR}/opie.tmp ${D}${sysconfdir}/init.d/opie
+ install -m 0644 ${WORKDIR}/opie_defaults.tmp ${D}${sysconfdir}/profile.d/opie_defaults
+
+ install -m 0755 ${WORKDIR}/opie-reorgfiles ${D}${bindir}/
+ install -m 0644 ${WORKDIR}/qpe.conf ${D}${palmtopdir}/etc/skel/
+
+ if [ -s ${WORKDIR}/locale.conf ]; then
+ install -m 0644 ${WORKDIR}/locale.conf ${D}${palmtopdir}/etc/skel/
+ fi
+
+# This should not be necessary anymore (w100 is currently disabled for c7x0)
+# case ${MACHINE} in
+# c7x0)
+# install -d ${D}${sysconfdir}/apm/event.d/
+# install -m 0755 ${WORKDIR}/qpe-suspend-resume ${D}${sysconfdir}/apm/event.d/00-qpe-suspend-resume.sh
+# ;;
+# *)
+# ;;
+# esac
+}
+
+#FILES_opie-init_append = " ${sysconfdir} ${palmtopdir}/bin"
+FILES_${PN} += "${palmtopdir}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-opie/opie-init/opie-init/akita/qpe.conf b/recipes-opie/opie-init/opie-init/akita/qpe.conf
new file mode 100644
index 0000000..e9922e4
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/akita/qpe.conf
@@ -0,0 +1,22 @@
+[Appearance]
+useBigPixmaps = 1
+SmallIconSize = 32
+BigIconSize = 48
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 16
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 14
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = Windows
+Text = #000000
+TabStyle = 1
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/c7x0/qpe-suspend-resume b/recipes-opie/opie-init/opie-init/c7x0/qpe-suspend-resume
new file mode 100644
index 0000000..be37519
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/c7x0/qpe-suspend-resume
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+QTDIR=/opt/QtPalmtop
+LD_LIBRARY_PATH=$QTDIR
+export LD_LIBRARY_PATH QTDIR
+LOGGING=0
+log() {
+ if [ $LOGGING -eq 1 ]; then
+ echo "$(date +%y/%m/%d-%H:%m:%S): $@" >> /var/log/qte.log
+ fi
+}
+
+retcode=1
+tries=3
+
+if [ "$1" = suspend ]; then
+ while [ $retcode -ne 0 -a $tries -gt 0 ]; do
+ log "-> $QTDIR/bin/qcop QPE/System 'aboutToSuspend()'"
+ $QTDIR/bin/qcop QPE/System 'aboutToSuspend()'
+ retcode=$?
+ tries=`expr $tries - 1`
+ log "<- Result $retcode"
+ done
+elif [ "$1" = resume ]; then
+ while [ $retcode -ne 0 -a $tries -gt 0 ]; do
+ log "-> $QTDIR/bin/qcop QPE/System 'returnFromSuspend()'"
+ $QTDIR/bin/qcop QPE/System 'returnFromSuspend()'
+ retcode=$?
+ tries=`expr $tries - 1`
+ log "<- Result $retcode"
+ done
+fi
+
diff --git a/recipes-opie/opie-init/opie-init/c7x0/qpe.conf b/recipes-opie/opie-init/opie-init/c7x0/qpe.conf
new file mode 100644
index 0000000..e9922e4
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/c7x0/qpe.conf
@@ -0,0 +1,22 @@
+[Appearance]
+useBigPixmaps = 1
+SmallIconSize = 32
+BigIconSize = 48
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 16
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 14
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = Windows
+Text = #000000
+TabStyle = 1
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/htcuniversal/qpe.conf b/recipes-opie/opie-init/opie-init/htcuniversal/qpe.conf
new file mode 100644
index 0000000..e9922e4
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/htcuniversal/qpe.conf
@@ -0,0 +1,22 @@
+[Appearance]
+useBigPixmaps = 1
+SmallIconSize = 32
+BigIconSize = 48
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 16
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 14
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = Windows
+Text = #000000
+TabStyle = 1
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/hx4700/qpe.conf b/recipes-opie/opie-init/opie-init/hx4700/qpe.conf
new file mode 100644
index 0000000..e9922e4
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/hx4700/qpe.conf
@@ -0,0 +1,22 @@
+[Appearance]
+useBigPixmaps = 1
+SmallIconSize = 32
+BigIconSize = 48
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 16
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 14
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = Windows
+Text = #000000
+TabStyle = 1
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/locale.conf b/recipes-opie/opie-init/opie-init/locale.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/locale.conf
diff --git a/recipes-opie/opie-init/opie-init/mnci/qpe.conf b/recipes-opie/opie-init/opie-init/mnci/qpe.conf
new file mode 100644
index 0000000..8efe771
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/mnci/qpe.conf
@@ -0,0 +1,25 @@
+[Appearance]
+Decoration = libflat.so
+FontFamily = vera
+FontSize = 10
+FontStyle = Regular
+LeftHand = 0
+Style = libflatstyle.so
+rotatedir = 0
+[Battery]
+[Date]
+ClockApplet = 0
+LongOrder = 273
+Separator = .
+ShortOrder = 273
+[InputMethod]
+current = Multikey
+[Keyboard]
+[Startup]
+FirstUse = 0
+[Time]
+AMPM = 0
+MONDAY = 1
+[Volume]
+[Wireless]
+UpdateFrequency = 2
diff --git a/recipes-opie/opie-init/opie-init/opie b/recipes-opie/opie-init/opie-init/opie
new file mode 100755
index 0000000..6bebec7
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/opie
@@ -0,0 +1,102 @@
+#!/bin/sh
+#
+[ -z $LOGNAME ] && export LOGNAME=root && export HOME=/home/root
+[ -z $HOME ] && export HOME=/home/$LOGNAME
+
+export QTDIR="@palmtopdir@"
+export OPIEDIR="$QTDIR"
+export QPEDIR="$QTDIR"
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPIEDIR/lib
+export PATH=$PATH:$OPIEDIR/bin
+# Following is from c7x0 override, check for validity, etc.
+## we need to tinker directly with qws_display until the ODevice
+## default (which is now W100:Rot0:0) works flawlessly with rotation
+## and survives a suspend/resume cycle
+#export QWS_DISPLAY=Transformed:Rot0:0
+## export QWS_DISPLAY=W100:Rot0:0
+
+if [ -z `which qpe` ] ; then
+ echo Opie not installed
+ exit 0
+fi
+
+. /etc/profile
+
+if [ ! -e $TSLIB_TSDEVICE ]; then
+ export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice
+fi
+
+for conf in $OPIEDIR/etc/skel/*.conf; do
+ conf_basename=`basename $conf`
+ if [ ! -e "$HOME/Settings/$conf_basename" ] ; then
+ echo "Copying default $conf_basename into $HOME/Settings/"
+ mkdir -p $HOME/Settings/
+ cat $conf >$HOME/Settings/$conf_basename
+ fi
+done
+
+if [ ! -e "$HOME/systeminfo/linkver" ] ; then
+ mkdir -p $HOME/systeminfo/
+ echo "1.13" >$HOME/systeminfo/linkver
+fi
+
+case $1 in
+'start')
+ # Turn off psplash if any - sleep is required for anti-race
+ if [ -e /mnt/.splash ]; then
+ TMPDIR=/mnt/.splash splash-write "QUIT" || true
+ sleep 1
+ fi
+
+ if [ -x "$OPIEDIR/bin/opie-login" ]; then
+ echo Starting Opie-login....
+ $OPIEDIR/bin/opie-login -terminal 3
+ else
+ opie-reorgfiles
+
+ if [ -x "$OPIEDIR/bin/opie-sh-ssh-askpass.sh" ]; then
+ export SSH_ASKPASS=$OPIEDIR/bin/opie-sh-ssh-askpass.sh
+ fi
+ echo Starting Opie....
+ (
+ test -x /usr/bin/ssh-agent && eval $(/usr/bin/ssh-agent -s) && echo $SSH_AGENT_PID>/var/run/opie-ssh-agent.pid ;
+ qpe -terminal 3
+ )
+ echo -n >/var/log/opie-qss.log
+ { for attempt in 0 1 2 3 4 5 6 7 8 9 a b c d e f ; do
+ sleep 1
+ echo "Waiting for qcop to startup: $attempt ..." >>/var/log/opie-qss.log
+ qcop QPE/System 'ping()' || continue
+ echo "Starting qss" >>/var/log/opie-qss.log
+ qss </dev/null >>/var/log/opie-qss.log 2>&1
+ echo "qss exited, will try to restart" >>/var/log/opie-qss.log
+ done; rm /var/run/opie-qss-loop.pid; } </dev/null >/dev/null 2>&1 &
+ echo $! >/var/run/opie-qss-loop.pid
+ fi
+
+ ;;
+
+'stop')
+ echo "Stopping Opie..."
+ test -r /var/run/opie-qss-loop.pid && kill $(cat /var/run/opie-qss-loop.pid) 2>/dev/null ; rm -f /var/run/opie-qss-loop.pid
+ killall qss 2>/dev/null
+ killall qpe 2>/dev/null
+ killall opie-login 2>/dev/null
+ killall quicklauncher 2>/dev/null
+ test -r /var/run/opie-ssh-agent.pid && kill $(cat /var/run/opie-ssh-agent.pid) 2>/dev/null ; rm -f /var/run/opie-ssh-agent.pid
+ true
+
+ ;;
+
+'restart')
+ $0 stop && $0 start
+
+ ;;
+
+*)
+ echo "usage: $0 { start | stop | restart }"
+
+ ;;
+
+esac
+
diff --git a/recipes-opie/opie-init/opie-init/opie-reorgfiles b/recipes-opie/opie-init/opie-init/opie-reorgfiles
new file mode 100755
index 0000000..96b3e29
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/opie-reorgfiles
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+APPS=$HOME/Applications
+DOCS=$HOME/Documents
+
+if [ -d $APPS -a "$1" != "-f" ]
+then
+ echo "You seem to already have a $APPS directory."
+ echo "Assuming it is the Opie Applications directory. Exiting."
+ exit 0
+fi
+
+if [ -d $HOME/Apps ]
+then
+ mv $HOME/Apps $APPS
+else
+ mkdir $APPS
+fi
+
+if [ -f $DOCS/addressbook.xml ]
+then
+ if [ -f $APPS/addressbook/addressbook.xml ]
+ then
+ echo "$DOCS/addressbook.xml conflicts with $APPS/addressbook/addressbook.xml"
+ echo "Moving $DOCS/addressbook.xml to $HOME"
+ mv $DOCS/addressbook.xml $HOME
+ else
+ mkdir $APPS/addressbook
+ mv $DOCS/addressbook.xml $APPS/addressbook
+ fi
+fi
+
+if [ -f $DOCS/datebooksettings.xml ]
+then
+ echo "$DOCS/datebooksettings.xml is obsolete"
+ echo "Please re-set your datebook preferences"
+ rm $DOCS/datebooksettings.xml
+fi
+
+if [ -f $DOCS/datebook.xml ]
+then
+ mkdir $APPS/databook
+ mv $DOCS/datebook.xml $APPS/databook
+fi
+
+if [ -d $DOCS/qtmail ]
+then
+ mv $DOCS/qtmail $APPS/
+fi
+
+if [ -f $DOCS/todo.xml ]
+then
+ if [ -f $APPS/todolist/todolist.xml ]
+ then
+ mv $DOCS/todo.xml $HOME
+ echo "$DOCS/todo.xml is superceded by $APPS/todolist/todolist.xml"
+ echo "$DOCS/todo.xml has been moved to $HOME"
+ else
+ echo "NOTE: $DOCS/todo.xml is obsolete. It will move to $APPS/todolist/todolist.xml"
+ echo "when next you run the latest ToDo application."
+ fi
+fi
+
+if [ ! -d $APPS/qimpen ]
+then
+ mkdir $APPS/qimpen
+fi
+
+if [ -f $DOCS/asciilower.qpt ]
+then
+ mv $DOCS/asciilower.qpt $APPS/qimpen
+fi
+
+if [ -f $DOCS/asciiupper.qpt ]
+then
+ mv $DOCS/asciiupper.qpt $APPS/qimpen
+fi
+
+if [ -f $DOCS/numeric.qpt ]
+then
+ mv $DOCS/numeric.qpt $APPS/qimpen
+fi
+
+if [ -d "$HOME/.qpe" ]
+then
+ if [ -d "$HOME/Settings" ]
+ then
+ mv $HOME/.qpe/* "$HOME/Settings"
+ rmdir "$HOME/.qpe"
+ else
+ mv $HOME/.qpe "$HOME/Settings"
+ fi
+fi
diff --git a/recipes-opie/opie-init/opie-init/opie_defaults b/recipes-opie/opie-init/opie-init/opie_defaults
new file mode 100644
index 0000000..c4d127d
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/opie_defaults
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+MACHINE="`cat /proc/cpuinfo | sed -n "/^Hardware/s/.*\:\(.*\)/\1/;s/^\ //p"`"
+KVER="`uname -r | sed -n "s/\([0-9]\)\.\([0-9]\)\..*/\1.\2/p"`"
+
+case "$MACHINE" in
+*Poodle) test "$KVER" = "2.6" && export QWS_CURSOR_ROTATION=90;;
+esac
+
+export QTDIR="@palmtopdir@"
+export OPIEDIR="$QTDIR"
+export QPEDIR="$QTDIR"
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$OPIEDIR/lib"
+export PATH="$PATH:$OPIEDIR/bin"
+
diff --git a/recipes-opie/opie-init/opie-init/qpe.conf b/recipes-opie/opie-init/opie-init/qpe.conf
new file mode 100644
index 0000000..59bb20c
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/qpe.conf
@@ -0,0 +1,18 @@
+[Appearance]
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 9
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 9
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = libphasestyle.so
+Text = #000000
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/simpad/qpe.conf b/recipes-opie/opie-init/opie-init/simpad/qpe.conf
new file mode 100644
index 0000000..b10d90b
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/simpad/qpe.conf
@@ -0,0 +1,18 @@
+[Appearance]
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 12
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 12
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = libphasestyle.so
+Text = #000000
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/spitz/qpe.conf b/recipes-opie/opie-init/opie-init/spitz/qpe.conf
new file mode 100644
index 0000000..e9922e4
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/spitz/qpe.conf
@@ -0,0 +1,22 @@
+[Appearance]
+useBigPixmaps = 1
+SmallIconSize = 32
+BigIconSize = 48
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 16
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 14
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = Windows
+Text = #000000
+TabStyle = 1
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init/tosa/qpe.conf b/recipes-opie/opie-init/opie-init/tosa/qpe.conf
new file mode 100644
index 0000000..e9922e4
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init/tosa/qpe.conf
@@ -0,0 +1,22 @@
+[Appearance]
+useBigPixmaps = 1
+SmallIconSize = 32
+BigIconSize = 48
+FontFamily = DejaVu_Sans
+FontStyle = Regular
+FontSize = 16
+FixedFontFamily = DejaVu_Sans_Mono
+FixedFontStyle = Regular
+FixedFontSize = 14
+Background = #d5d0de
+Base = #ffffff
+Button = #e3e3e3
+ButtonText = #000000
+Decoration = libliquid.so
+Highlight = #52719c
+HighlightedText = #ffffff
+Style = Windows
+Text = #000000
+TabStyle = 1
+[InputMethod]
+current = Multikey
diff --git a/recipes-opie/opie-init/opie-init_1.2.5.bb b/recipes-opie/opie-init/opie-init_1.2.5.bb
new file mode 100644
index 0000000..5effa73
--- /dev/null
+++ b/recipes-opie/opie-init/opie-init_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+PR = "r0"
+
+SRC_URI = "file://opie-reorgfiles \
+ file://opie \
+ file://qpe.conf \
+ file://locale.conf \
+ file://opie_defaults"
+
+# This should not be necessary anymore (w100 is currently disabled for c7x0)
+SRC_URI_append_c7x0 = " file://qpe-suspend-resume"
diff --git a/recipes-opie/opie-irc/opie-irc.inc b/recipes-opie/opie-irc/opie-irc.inc
new file mode 100644
index 0000000..269d9c9
--- /dev/null
+++ b/recipes-opie/opie-irc/opie-irc.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "The Opie IRC client lets you chat on your favorite IRC server using your handheld computer"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+I18N_FILES = "opieirc.ts"
+DEPENDS = "libqtaux2"
+APPNAME = "opieirc"
+#APPTYPE = "binary"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libopieirc.so* bin/opieirc pics/opieirc apps/Applications/opieirc.desktop help/en/html/opieirc.html help/en/html/opieirc
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/help/en/html/
+ install -m 0644 ${WORKDIR}/help/en/html/opieirc.html ${D}${palmtopdir}/help/en/html/
+}
+
diff --git a/recipes-opie/opie-irc/opie-irc_1.2.5.bb b/recipes-opie/opie-irc/opie-irc_1.2.5.bb
new file mode 100644
index 0000000..c3d0bc6
--- /dev/null
+++ b/recipes-opie/opie-irc/opie-irc_1.2.5.bb
@@ -0,0 +1,16 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opieirc.tar.bz2;name=split_noncore_net_opieirc \
+ http://sources.openembedded.org/opie-1.2.5-split_help.tar.bz2;name=split_help \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_net_opieirc.md5sum] = "9c425f43ec2575925121a31ab988ea67"
+SRC_URI[split_noncore_net_opieirc.sha256sum] = "0bf63dfced107a72458d09a661a386bc4f977709c9fd40217c46f1bece9fa672"
+SRC_URI[split_help.md5sum] = "43393aaa1840e4f6e2c2a3397e451e2a"
+SRC_URI[split_help.sha256sum] = "6e4e3e7d626611a78e34343f88ebd8a6e5e7255be23859b7cd166b2575cbb632"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-irc/opie-irc_cvs.bb b/recipes-opie/opie-irc/opie-irc_cvs.bb
new file mode 100644
index 0000000..e9b1f63
--- /dev/null
+++ b/recipes-opie/opie-irc/opie-irc_cvs.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opieirc \
+ ${OPIE_GIT};protocol=git;subpath=help \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-irdaapplet/opie-irdaapplet.inc b/recipes-opie/opie-irdaapplet/opie-irdaapplet.inc
new file mode 100644
index 0000000..ed47c2c
--- /dev/null
+++ b/recipes-opie/opie-irdaapplet/opie-irdaapplet.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "IrDA Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "irdaapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libirdaapplet.so* pics/irdaapplet/* sounds/irdaapplet/*.wav
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/sounds/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/sounds/${APPNAME}/*.wav ${D}${palmtopdir}/sounds/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-irdaapplet/opie-irdaapplet_1.2.5.bb b/recipes-opie/opie-irdaapplet/opie-irdaapplet_1.2.5.bb
new file mode 100644
index 0000000..4f90e55
--- /dev/null
+++ b/recipes-opie/opie-irdaapplet/opie-irdaapplet_1.2.5.bb
@@ -0,0 +1,17 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_irdaapplet.tar.bz2;name=split_core_applets_irdaapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_sounds.tar.bz2;name=split_sounds \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ "
+SRC_URI[split_core_applets_irdaapplet.md5sum] = "c25501ed8ebddf7106ee8ba36dc7a91e"
+SRC_URI[split_core_applets_irdaapplet.sha256sum] = "9e44df950292cf9d47b226afdd4681ee8fadbc38cc0de8426d5a00fa01ff98de"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_sounds.md5sum] = "b0f2bee8c158f54162e5e74d4d9594df"
+SRC_URI[split_sounds.sha256sum] = "55441675b28209cb2e34ffc0875c6d47aee27bd65dbdb40a223e5fa05c5a7c06"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-irdaapplet/opie-irdaapplet_cvs.bb b/recipes-opie/opie-irdaapplet/opie-irdaapplet_cvs.bb
new file mode 100644
index 0000000..7af53fb
--- /dev/null
+++ b/recipes-opie/opie-irdaapplet/opie-irdaapplet_cvs.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = r3
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/irdaapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=sounds \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ "
diff --git a/recipes-opie/opie-jumpx/opie-jumpx.inc b/recipes-opie/opie-jumpx/opie-jumpx.inc
new file mode 100644
index 0000000..06f810a
--- /dev/null
+++ b/recipes-opie/opie-jumpx/opie-jumpx.inc
@@ -0,0 +1,34 @@
+DESCRIPTION = "JumpX input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qjumpx"
+
+
+S = "${WORKDIR}/jumpx"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+/usr/bin/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqjumpx.so* pics/jumpx
+do_install() {
+ install -d ${D}${palmtopdir}/pics/jumpx/
+ install -m 0644 ${WORKDIR}/pics/jumpx/*.png ${D}${palmtopdir}/pics/jumpx/
+}
+
diff --git a/recipes-opie/opie-jumpx/opie-jumpx_1.2.5.bb b/recipes-opie/opie-jumpx/opie-jumpx_1.2.5.bb
new file mode 100644
index 0000000..d2f60cf
--- /dev/null
+++ b/recipes-opie/opie-jumpx/opie-jumpx_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_jumpx.tar.bz2;name=split_inputmethods_jumpx \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_inputmethods_jumpx.md5sum] = "8ba72a07396cc0b922e9e0a74dccbb1d"
+SRC_URI[split_inputmethods_jumpx.sha256sum] = "d761e5d3852160b72d0b41acefb970733306c5fa337e849e130cf5c2312adf28"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-jumpx/opie-jumpx_cvs.bb b/recipes-opie/opie-jumpx/opie-jumpx_cvs.bb
new file mode 100644
index 0000000..3e42ca5
--- /dev/null
+++ b/recipes-opie/opie-jumpx/opie-jumpx_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/jumpx \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-kbill/opie-kbill.inc b/recipes-opie/opie-kbill/opie-kbill.inc
new file mode 100644
index 0000000..c81d305
--- /dev/null
+++ b/recipes-opie/opie-kbill/opie-kbill.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "The famous hit Bill game"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "kbill"
+APPTYPE = "binary"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/kbill apps/Games/kbill.desktop pics/kbill/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/pixmaps
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/bitmaps
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/bitmaps/*.xbm ${D}${palmtopdir}/pics/${APPNAME}/bitmaps
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/pixmaps/*.xpm ${D}${palmtopdir}/pics/${APPNAME}/pixmaps
+}
+
diff --git a/recipes-opie/opie-kbill/opie-kbill_1.2.5.bb b/recipes-opie/opie-kbill/opie-kbill_1.2.5.bb
new file mode 100644
index 0000000..f90a0ea
--- /dev/null
+++ b/recipes-opie/opie-kbill/opie-kbill_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_kbill.tar.bz2;name=split_noncore_games_kbill \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_kbill.md5sum] = "95267d29f04487188219bd9d8349fbf8"
+SRC_URI[split_noncore_games_kbill.sha256sum] = "d7a3ec6a765f8e19e4b0f56cdfbaad24c649bd9ac3e8ebb373f77f79249dc9f3"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-kbill/opie-kbill_cvs.bb b/recipes-opie/opie-kbill/opie-kbill_cvs.bb
new file mode 100644
index 0000000..f4864e7
--- /dev/null
+++ b/recipes-opie/opie-kbill/opie-kbill_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/kbill \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-kcheckers/opie-kcheckers.inc b/recipes-opie/opie-kcheckers/opie-kcheckers.inc
new file mode 100644
index 0000000..5071ac5
--- /dev/null
+++ b/recipes-opie/opie-kcheckers/opie-kcheckers.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "The game of Checkers"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "kcheckers"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libkcheckers.so* bin/kcheckers apps/Games/kcheckers.desktop pics/kcheckers
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.xpm ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-kcheckers/opie-kcheckers_1.2.5.bb b/recipes-opie/opie-kcheckers/opie-kcheckers_1.2.5.bb
new file mode 100644
index 0000000..277fe1a
--- /dev/null
+++ b/recipes-opie/opie-kcheckers/opie-kcheckers_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_kcheckers.tar.bz2;name=split_noncore_games_kcheckers \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_kcheckers.md5sum] = "8397b67ba3cee10c59243f2349476e0b"
+SRC_URI[split_noncore_games_kcheckers.sha256sum] = "17a8664e7a7575856ff07a0995650177c84ce64898f4629f79ea2a52b2585d17"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-kcheckers/opie-kcheckers_cvs.bb b/recipes-opie/opie-kcheckers/opie-kcheckers_cvs.bb
new file mode 100644
index 0000000..8395f79
--- /dev/null
+++ b/recipes-opie/opie-kcheckers/opie-kcheckers_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/kcheckers \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-keyboard/files/fix-rpath.patch b/recipes-opie/opie-keyboard/files/fix-rpath.patch
new file mode 100644
index 0000000..d917aeb
--- /dev/null
+++ b/recipes-opie/opie-keyboard/files/fix-rpath.patch
@@ -0,0 +1,13 @@
+diff --git a/keyboard.pro b/keyboard.pro
+index 3a9e075..52bc10d 100644
+--- a/keyboard.pro
++++ b/keyboard.pro
+@@ -9,7 +9,7 @@ DESTDIR = ../../plugins/inputmethods
+ INCLUDEPATH += $(OPIEDIR)/include
+ DEPENDPATH += ../../launcher
+ LIBS += -lqpe -L$(OPIEDIR)/plugins/inputmethods -lqpickboard
+-QMAKE_LFLAGS += -Wl,-rpath,/opt/QtPalmtop/plugins/inputmethods
++QMAKE_LFLAGS += -Wl,-rpath,${palmtopdir}/plugins/inputmethods
+ VERSION = 1.0.0
+
+ include( $(OPIEDIR)/include.pro )
diff --git a/recipes-opie/opie-keyboard/opie-keyboard.inc b/recipes-opie/opie-keyboard/opie-keyboard.inc
new file mode 100644
index 0000000..e76e84f
--- /dev/null
+++ b/recipes-opie/opie-keyboard/opie-keyboard.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Opie Keyboard input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-pickboard"
+RDEPENDS_${PN} = "opie-pickboard"
+APPNAME = "qkeyboard"
+
+S = "${WORKDIR}/keyboard"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqkeyboard.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-keyboard/opie-keyboard_1.2.5.bb b/recipes-opie/opie-keyboard/opie-keyboard_1.2.5.bb
new file mode 100644
index 0000000..8b2a308
--- /dev/null
+++ b/recipes-opie/opie-keyboard/opie-keyboard_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_keyboard.tar.bz2;name=split_inputmethods_keyboard \
+ file://fix-rpath.patch "
+SRC_URI[split_inputmethods_keyboard.md5sum] = "058e514b14409f6b25b2b1fe1bd9290c"
+SRC_URI[split_inputmethods_keyboard.sha256sum] = "30981650c11d17e615381390edf0f16d636748b7286d682499fba6165e410011"
diff --git a/recipes-opie/opie-keyboard/opie-keyboard_cvs.bb b/recipes-opie/opie-keyboard/opie-keyboard_cvs.bb
new file mode 100644
index 0000000..f75f62f
--- /dev/null
+++ b/recipes-opie/opie-keyboard/opie-keyboard_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/keyboard \
+ file://fix-rpath.patch "
diff --git a/recipes-opie/opie-keypebble/opie-keypebble.inc b/recipes-opie/opie-keypebble/opie-keypebble.inc
new file mode 100644
index 0000000..fcc8eee
--- /dev/null
+++ b/recipes-opie/opie-keypebble/opie-keypebble.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "A VNC Viewer"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "keypebble"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/vnc
+ install -m 0644 ${WORKDIR}/pics/vnc/*.* ${D}${palmtopdir}/pics/vnc/
+}
+
diff --git a/recipes-opie/opie-keypebble/opie-keypebble_1.2.5.bb b/recipes-opie/opie-keypebble/opie-keypebble_1.2.5.bb
new file mode 100644
index 0000000..5460c12
--- /dev/null
+++ b/recipes-opie/opie-keypebble/opie-keypebble_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_comm_${APPNAME}.tar.bz2;name=split_noncore_comm_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_comm_appname.md5sum] = "a916191f97f03a4221d03a72df958baf"
+SRC_URI[split_noncore_comm_appname.sha256sum] = "0183dcc7b6f8a300c40a54fd5ffd384699378644a3f262e1c3ad3b50c5e58c34"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-keypebble/opie-keypebble_cvs.bb b/recipes-opie/opie-keypebble/opie-keypebble_cvs.bb
new file mode 100644
index 0000000..404a280
--- /dev/null
+++ b/recipes-opie/opie-keypebble/opie-keypebble_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/comm/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-keytabs/opie-keytabs.inc b/recipes-opie/opie-keytabs/opie-keytabs.inc
new file mode 100644
index 0000000..6a231c1
--- /dev/null
+++ b/recipes-opie/opie-keytabs/opie-keytabs.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "Opie keytabs for terminal applications"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+do_install() {
+ install -d ${D}${palmtopdir}/etc/keytabs/
+ install -m 0644 ${WORKDIR}/etc/keytabs/*.* ${D}${palmtopdir}/etc/keytabs/
+}
+
+FILES_${PN} = "${palmtopdir}/etc/keytabs/*"
diff --git a/recipes-opie/opie-keytabs/opie-keytabs_1.2.5.bb b/recipes-opie/opie-keytabs/opie-keytabs_1.2.5.bb
new file mode 100644
index 0000000..0448262
--- /dev/null
+++ b/recipes-opie/opie-keytabs/opie-keytabs_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_etc.tar.bz2;name=split_etc"
+SRC_URI[split_etc.md5sum] = "74ef523ef12e242155bbb745072434d9"
+SRC_URI[split_etc.sha256sum] = "eef55ea2248b4f45f3a07beb6012e431dd71d4eefa134d39cc50b4d194c53087"
diff --git a/recipes-opie/opie-keytabs/opie-keytabs_cvs.bb b/recipes-opie/opie-keytabs/opie-keytabs_cvs.bb
new file mode 100644
index 0000000..c818083
--- /dev/null
+++ b/recipes-opie/opie-keytabs/opie-keytabs_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=etc"
diff --git a/recipes-opie/opie-keyview/opie-keyview.inc b/recipes-opie/opie-keyview/opie-keyview.inc
new file mode 100644
index 0000000..904d781
--- /dev/null
+++ b/recipes-opie/opie-keyview/opie-keyview.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Keyview Development Inputmethod"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "keyview"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libkeyview.so*
diff --git a/recipes-opie/opie-keyview/opie-keyview_1.2.5.bb b/recipes-opie/opie-keyview/opie-keyview_1.2.5.bb
new file mode 100644
index 0000000..32856ab
--- /dev/null
+++ b/recipes-opie/opie-keyview/opie-keyview_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_development_keyview.tar.bz2;name=split_development_keyview"
+SRC_URI[split_development_keyview.md5sum] = "b7a8a69e19f503c61bff072228daf8ae"
+SRC_URI[split_development_keyview.sha256sum] = "ebe4c196e30a0f67ebce23f81c5cdf5ef338dfd0f78b73ae3744e78b4c4c1799"
diff --git a/recipes-opie/opie-keyview/opie-keyview_cvs.bb b/recipes-opie/opie-keyview/opie-keyview_cvs.bb
new file mode 100644
index 0000000..f1ed53e
--- /dev/null
+++ b/recipes-opie/opie-keyview/opie-keyview_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=development/keyview "
diff --git a/recipes-opie/opie-kjumpx/opie-kjumpx.inc b/recipes-opie/opie-kjumpx/opie-kjumpx.inc
new file mode 100644
index 0000000..23ea711
--- /dev/null
+++ b/recipes-opie/opie-kjumpx/opie-kjumpx.inc
@@ -0,0 +1,35 @@
+DESCRIPTION = "Koreanized JumpX input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-pics"
+APPNAME = "qkjumpx"
+
+
+S = "${WORKDIR}/kjumpx"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+/usr/bin/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqkjumpx.so* pics/kjumpx/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/kjumpx/
+ install -m 0644 ${WORKDIR}/pics/kjumpx/*.png ${D}${palmtopdir}/pics/kjumpx/
+}
+
diff --git a/recipes-opie/opie-kjumpx/opie-kjumpx_1.2.5.bb b/recipes-opie/opie-kjumpx/opie-kjumpx_1.2.5.bb
new file mode 100644
index 0000000..b1a77e6
--- /dev/null
+++ b/recipes-opie/opie-kjumpx/opie-kjumpx_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_kjumpx.tar.bz2;name=split_inputmethods_kjumpx \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_inputmethods_kjumpx.md5sum] = "f12c7926bbf4280665d2aaa74188654e"
+SRC_URI[split_inputmethods_kjumpx.sha256sum] = "a781f5ac1a414cf386103b27b0c0f2f4f277ddcf9bd06909f10935695e578777"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-kjumpx/opie-kjumpx_cvs.bb b/recipes-opie/opie-kjumpx/opie-kjumpx_cvs.bb
new file mode 100644
index 0000000..9cc97c6
--- /dev/null
+++ b/recipes-opie/opie-kjumpx/opie-kjumpx_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/kjumpx \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-kpacman/opie-kpacman.inc b/recipes-opie/opie-kpacman/opie-kpacman.inc
new file mode 100644
index 0000000..7ee37ff
--- /dev/null
+++ b/recipes-opie/opie-kpacman/opie-kpacman.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Kpacman, the classical arcade game of Pacman"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "kpacman"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+
+if [ ! -f $HOME/Settings/kpacman.conf ]
+ exit 0
+then
+ cp /opt/QtPalmtop/share/kpacman/kpacman.conf $HOME/Settings/
+fi
+}
+
+# FILES bin/kpacman apps/Games/kpacman.desktop pics/kpacman/kpacman.png share/kpacman
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/${APPNAME}/fonts
+ install -d ${D}${palmtopdir}/share/${APPNAME}/pics
+ install -m 0644 ${WORKDIR}/share/${APPNAME}/*.conf ${D}${palmtopdir}/share/${APPNAME}/
+ install -m 0644 ${WORKDIR}/share/${APPNAME}/fonts/*.xbm ${D}${palmtopdir}/share/${APPNAME}/fonts/
+ install -m 0644 ${WORKDIR}/share/${APPNAME}/pics/*.xpm ${D}${palmtopdir}/share/${APPNAME}/pics/
+}
+
diff --git a/recipes-opie/opie-kpacman/opie-kpacman_1.2.5.bb b/recipes-opie/opie-kpacman/opie-kpacman_1.2.5.bb
new file mode 100644
index 0000000..019d331
--- /dev/null
+++ b/recipes-opie/opie-kpacman/opie-kpacman_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_kpacman.tar.bz2;name=split_noncore_games_kpacman \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_kpacman.md5sum] = "b37cee9d490c4a3e032dd691c5d360fd"
+SRC_URI[split_noncore_games_kpacman.sha256sum] = "ab6909f713e489f51a87bc0965febc27e3753e3d3b94f85bfc8dbc4cdec57165"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-kpacman/opie-kpacman_cvs.bb b/recipes-opie/opie-kpacman/opie-kpacman_cvs.bb
new file mode 100644
index 0000000..dd860fb
--- /dev/null
+++ b/recipes-opie/opie-kpacman/opie-kpacman_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/kpacman \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-language/opie-language.inc b/recipes-opie/opie-language/opie-language.inc
new file mode 100644
index 0000000..117ea38
--- /dev/null
+++ b/recipes-opie/opie-language/opie-language.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Language settings dialog"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "language"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/liblanguage.so* bin/language apps/Settings/Language.desktop
+
diff --git a/recipes-opie/opie-language/opie-language_1.2.5.bb b/recipes-opie/opie-language/opie-language_1.2.5.bb
new file mode 100644
index 0000000..61bb9d7
--- /dev/null
+++ b/recipes-opie/opie-language/opie-language_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_language.tar.bz2;name=split_noncore_settings_language \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_language.md5sum] = "0a73fbfea8b25194041903383c6213b6"
+SRC_URI[split_noncore_settings_language.sha256sum] = "90f912f6804cfcd362dbfaebf76d36a39e317f8f3da9c8bce6bdf49d72a361b1"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-language/opie-language_cvs.bb b/recipes-opie/opie-language/opie-language_cvs.bb
new file mode 100644
index 0000000..f9f9d9b
--- /dev/null
+++ b/recipes-opie/opie-language/opie-language_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/language \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-launcher-settings/opie-launcher-settings.inc b/recipes-opie/opie-launcher-settings/opie-launcher-settings.inc
new file mode 100644
index 0000000..e5b4263
--- /dev/null
+++ b/recipes-opie/opie-launcher-settings/opie-launcher-settings.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Launcher settings dialog"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2"
+APPNAME = "launchersettings"
+
+
+S = "${WORKDIR}/launcher"
+
+inherit opie
+
+# FILES plugins/application/liblaunchersettings.so* bin/launchersettings apps/Settings/launchersettings.desktop pics/launchersettings
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-launcher-settings/opie-launcher-settings_1.2.5.bb b/recipes-opie/opie-launcher-settings/opie-launcher-settings_1.2.5.bb
new file mode 100644
index 0000000..094ce71
--- /dev/null
+++ b/recipes-opie/opie-launcher-settings/opie-launcher-settings_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_settings_launcher.tar.bz2;name=split_core_settings_launcher \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_core_settings_launcher.md5sum] = "c65364b8be457f43d0a3fdd3f7e81841"
+SRC_URI[split_core_settings_launcher.sha256sum] = "cff71bfdc91dc2d0340022b1116b840f35c093d0c798f88b0603e8e9d08d5eca"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-launcher-settings/opie-launcher-settings_cvs.bb b/recipes-opie/opie-launcher-settings/opie-launcher-settings_cvs.bb
new file mode 100644
index 0000000..9bac172
--- /dev/null
+++ b/recipes-opie/opie-launcher-settings/opie-launcher-settings_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/settings/launcher \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-libqrsync/opie-libqrsync.inc b/recipes-opie/opie-libqrsync/opie-libqrsync.inc
new file mode 100644
index 0000000..8e8b0bd
--- /dev/null
+++ b/recipes-opie/opie-libqrsync/opie-libqrsync.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Qt wrapper for librsync"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+S = "${WORKDIR}/rsync"
+
+inherit opie
+
+do_install() {
+ oe_libinstall -a libqrsync ${D}${libdir}/
+ install -d ${D}${includedir}/
+ install -m 0644 qrsync.h ${D}${includedir}/
+}
diff --git a/recipes-opie/opie-libqrsync/opie-libqrsync_1.2.5.bb b/recipes-opie/opie-libqrsync/opie-libqrsync_1.2.5.bb
new file mode 100644
index 0000000..7121833
--- /dev/null
+++ b/recipes-opie/opie-libqrsync/opie-libqrsync_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_rsync.tar.bz2;name=split_rsync"
+SRC_URI[split_rsync.md5sum] = "ba4a4d5bcdd363987199de129b118a95"
+SRC_URI[split_rsync.sha256sum] = "c3b59ef92421b4592c04b388123f2f060c87ca093ae2b813b3c905323b088d6d"
diff --git a/recipes-opie/opie-libqrsync/opie-libqrsync_cvs.bb b/recipes-opie/opie-libqrsync/opie-libqrsync_cvs.bb
new file mode 100644
index 0000000..c5cd3c4
--- /dev/null
+++ b/recipes-opie/opie-libqrsync/opie-libqrsync_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=rsync"
diff --git a/recipes-opie/opie-light-and-power/opie-light-and-power.inc b/recipes-opie/opie-light-and-power/opie-light-and-power.inc
new file mode 100644
index 0000000..0d68d5f
--- /dev/null
+++ b/recipes-opie/opie-light-and-power/opie-light-and-power.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Light and Power settings dialog"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "light-and-power"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/liblight-and-power.so* bin/light-and-power apps/Settings/light.desktop pics/lightandpower
+do_install() {
+ install -d ${D}${palmtopdir}/pics/lightandpower/
+ install -m 0644 ${WORKDIR}/pics/lightandpower/*.png ${D}${palmtopdir}/pics/lightandpower/
+}
+
diff --git a/recipes-opie/opie-light-and-power/opie-light-and-power_1.2.5.bb b/recipes-opie/opie-light-and-power/opie-light-and-power_1.2.5.bb
new file mode 100644
index 0000000..f01ae49
--- /dev/null
+++ b/recipes-opie/opie-light-and-power/opie-light-and-power_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_settings_light-and-power.tar.bz2;name=split_core_settings_light-and-power \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_settings_light-and-power.md5sum] = "015b4d171bf91894d8b1fa6679979eee"
+SRC_URI[split_core_settings_light-and-power.sha256sum] = "d493018c5b5db81c29585965371402f2d1def7cd7fdcd0bd7a9ccac6ac68d373"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-light-and-power/opie-light-and-power_cvs.bb b/recipes-opie/opie-light-and-power/opie-light-and-power_cvs.bb
new file mode 100644
index 0000000..cc24b80
--- /dev/null
+++ b/recipes-opie/opie-light-and-power/opie-light-and-power_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/settings/light-and-power \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-lockapplet/opie-lockapplet.inc b/recipes-opie/opie-lockapplet/opie-lockapplet.inc
new file mode 100644
index 0000000..17c9460
--- /dev/null
+++ b/recipes-opie/opie-lockapplet/opie-lockapplet.inc
@@ -0,0 +1,32 @@
+DESCRIPTION = "Lock Opie now Button to lock Opie (as configured in the Security settings) on demand."
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "lockapplet"
+DEPENDS = "opie-security"
+RDEPENDS_${PN} = "opie-security"
+
+
+S = "${WORKDIR}/lockapplet"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/plugins/applets ${D}${palmtopdir}/pics/security/
+ oe_libinstall -so liblockapplet ${D}${palmtopdir}/plugins/applets/
+}
+
diff --git a/recipes-opie/opie-lockapplet/opie-lockapplet_1.2.5.bb b/recipes-opie/opie-lockapplet/opie-lockapplet_1.2.5.bb
new file mode 100644
index 0000000..7d6c386
--- /dev/null
+++ b/recipes-opie/opie-lockapplet/opie-lockapplet_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_lockapplet.tar.bz2;name=split_core_applets_lockapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_core_applets_lockapplet.md5sum] = "39a52aa592bf08bd70fcb548792329f3"
+SRC_URI[split_core_applets_lockapplet.sha256sum] = "b8fc738b38fed603cd8873f7f0f4212a94377403c24aa593f663b985b4cf63fb"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-lockapplet/opie-lockapplet_cvs.bb b/recipes-opie/opie-lockapplet/opie-lockapplet_cvs.bb
new file mode 100644
index 0000000..0525b5f
--- /dev/null
+++ b/recipes-opie/opie-lockapplet/opie-lockapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/lockapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics "
diff --git a/recipes-opie/opie-login/files/opie-login.conf b/recipes-opie/opie-login/files/opie-login.conf
new file mode 100644
index 0000000..13195b1
--- /dev/null
+++ b/recipes-opie/opie-login/files/opie-login.conf
@@ -0,0 +1,2 @@
+[General]
+AutoLogin = root
diff --git a/recipes-opie/opie-login/files/opie-session b/recipes-opie/opie-login/files/opie-session
new file mode 100644
index 0000000..f2425f6
--- /dev/null
+++ b/recipes-opie/opie-login/files/opie-session
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if [ -x /usr/bin/ssh-agent ]; then
+ SSHAGENT=/usr/bin/ssh-agent
+else
+ SSHAGENT=""
+fi
+
+if [ -x $OPIEDIR/bin/opie-sh-ssh-askpass.sh ]; then
+ export SSH_ASKPASS=$OPIEDIR/bin/opie-sh-ssh-askpass.sh
+fi
+
+$OPIEDIR/bin/opie-reorgfiles
+
+$SSHAGENT $OPIEDIR/bin/qpe
diff --git a/recipes-opie/opie-login/files/post-session b/recipes-opie/opie-login/files/post-session
new file mode 100644
index 0000000..47dc597
--- /dev/null
+++ b/recipes-opie/opie-login/files/post-session
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+permout ()
+{
+ if [ -e $1 ]
+ then
+ chown root $1
+ else
+ echo Warning: $1 does not exist.
+ return 1
+ fi
+}
+
+if [ -e /proc/hal/model ]; then
+ for i in /dev/sound/dsp /dev/sound/mixer /dev/touchscreen/* /dev/fb/0 /dev/vc/0; do
+ permout $i
+ done
+else
+ for i in /dev/dsp /dev/dsp1 /dev/mixer /dev/ts /dev/fb0 /dev/sharp* /dev/collie*; do
+ permout $i
+ done
+fi
diff --git a/recipes-opie/opie-login/files/pre-session b/recipes-opie/opie-login/files/pre-session
new file mode 100644
index 0000000..2fdf7e9
--- /dev/null
+++ b/recipes-opie/opie-login/files/pre-session
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+USER=$1
+
+# NOTE about permissions in OpenZaurus
+# The devices in question here by default
+# are accessible to everyone in the group in
+# question. We wish to ensure that, as a policy
+# choice, a login to opie makes access to these
+# devices exclusive by 1) changing device ownership
+# to the user, and 2) removing group access.
+#
+# A better implementation would probably be to store
+# existing device permissions at load time, and restore
+# them at exit, rather than making assumptions about
+# user/group ownership, or permissions.
+
+permin ()
+{
+ if [ -e $1 ]
+ then
+ chown $USER $1
+ else
+ echo Warning: $1 does not exist.
+ return 1
+ fi
+}
+
+if [ -e /proc/hal/model ]; then
+ # fix for misconfigured devfsd
+ chmod +x /dev/sound /dev/touchscreen /dev/fb /dev/vc
+ for i in /dev/sound/dsp /dev/sound/mixer /dev/touchscreen/* /dev/fb/0 /dev/vc/0; do
+ permin $i
+ done
+else
+ for i in /dev/dsp/* /dev/dsp1 /dev/mixer /dev/ts /dev/fb0 /dev/sharp* /dev/collie*; do
+ permin $i
+ done
+fi
diff --git a/recipes-opie/opie-login/opie-login.inc b/recipes-opie/opie-login/opie-login.inc
new file mode 100644
index 0000000..ced9fd7
--- /dev/null
+++ b/recipes-opie/opie-login/opie-login.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Opie Login Manager (similar to gdm, xdm or kdm)"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RRECOMMENDS_${PN} = "opie-logoutapplet"
+APPNAME = "opie-login"
+
+BROKEN = "1"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST_append = " LIBS-=-lpam"
+EXTRA_QMAKEVARS_POST_append = " DEFINES-=USEPAM"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin
+ install -d ${D}${palmtopdir}/etc
+ install -d ${D}${palmtopdir}/share/opie-login
+
+ install -m 755 ${WORKDIR}/${PN}/opie-login ${D}${palmtopdir}/bin
+ install -m 644 ${WORKDIR}/*-session ${D}${palmtopdir}/share/opie-login
+ install -m 644 ${WORKDIR}/opie-login.conf ${D}${palmtopdir}/etc
+}
+
+do_configure() {
+ install -d "${WORKDIR}/apps"
+ ln -s "${WORKDIR}/calibrate" "${WORKDIR}/apps/calibrate"
+ palmtop_do_configure
+}
diff --git a/recipes-opie/opie-login/opie-login_1.2.5.bb b/recipes-opie/opie-login/opie-login_1.2.5.bb
new file mode 100644
index 0000000..22dc8af
--- /dev/null
+++ b/recipes-opie/opie-login/opie-login_1.2.5.bb
@@ -0,0 +1,15 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_${APPNAME}.tar.bz2;name=split_core_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_core_apps_calibrate.tar.bz2;name=split_core_apps_calibrate \
+ http://sources.openembedded.org/opie-1.2.5-split_core_launcher.tar.bz2;name=split_core_launcher \
+ file://opie-session \
+ file://post-session \
+ file://pre-session \
+ file://opie-login.conf"
+SRC_URI[split_core_appname.md5sum] = "88d0bdbc49a59529ce43880f6df82212"
+SRC_URI[split_core_appname.sha256sum] = "263a3734c3f9aadacb9d84ff1ae38b717f1eadd66c59c227769a7e26309fb85d"
+SRC_URI[split_core_apps_calibrate.md5sum] = "ee5e06b781e92f01271d883f91f101b0"
+SRC_URI[split_core_apps_calibrate.sha256sum] = "5e0164a195a166fd15451164edf8a44d8f3a9f81dcf3edc3a8975f24bd4b45b6"
+SRC_URI[split_core_launcher.md5sum] = "cd3708a2d074f108d81ffea590995725"
+SRC_URI[split_core_launcher.sha256sum] = "fca1501398f1e4d0690455b145b17a68287de422592bca73c2afdf6762d021ce"
diff --git a/recipes-opie/opie-login/opie-login_cvs.bb b/recipes-opie/opie-login/opie-login_cvs.bb
new file mode 100644
index 0000000..9c1f0e4
--- /dev/null
+++ b/recipes-opie/opie-login/opie-login_cvs.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=core/apps/calibrate \
+ ${OPIE_GIT};protocol=git;subpath=core/launcher \
+ file://opie-session \
+ file://post-session \
+ file://pre-session \
+ file://opie-login.conf"
diff --git a/recipes-opie/opie-logoutapplet/opie-logoutapplet.inc b/recipes-opie/opie-logoutapplet/opie-logoutapplet.inc
new file mode 100644
index 0000000..edf8b99
--- /dev/null
+++ b/recipes-opie/opie-logoutapplet/opie-logoutapplet.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Logout Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "logoutapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES
+do_install() {
+}
+
diff --git a/recipes-opie/opie-logoutapplet/opie-logoutapplet_1.2.5.bb b/recipes-opie/opie-logoutapplet/opie-logoutapplet_1.2.5.bb
new file mode 100644
index 0000000..d411638
--- /dev/null
+++ b/recipes-opie/opie-logoutapplet/opie-logoutapplet_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_logoutapplet.tar.bz2;name=split_core_applets_logoutapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_logoutapplet.md5sum] = "035cbe9af480e8c468bcb656493e47e9"
+SRC_URI[split_core_applets_logoutapplet.sha256sum] = "00dc7f476e5e5c9a6715b43afd66ddafc2c19eef47eb509bc5f1c1d289d2bb72"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-logoutapplet/opie-logoutapplet_cvs.bb b/recipes-opie/opie-logoutapplet/opie-logoutapplet_cvs.bb
new file mode 100644
index 0000000..b22500e
--- /dev/null
+++ b/recipes-opie/opie-logoutapplet/opie-logoutapplet_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/logoutapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-mail/opie-mail.inc b/recipes-opie/opie-mail/opie-mail.inc
new file mode 100644
index 0000000..09f8b7a
--- /dev/null
+++ b/recipes-opie/opie-mail/opie-mail.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "Opie's mail and news client featuring POP3, IMAP and NNTP - with and without SSL."
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libmailwrapper libetpan"
+RDEPENDS_${PN} = "opie-pics"
+APPNAME = "opiemail"
+
+
+S = "${WORKDIR}/mail"
+
+inherit opie
+
+# FILES plugins/application/libopiemail.so* bin/opiemail apps/1Pim/mail.desktop pics/mail/*.png
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/mail/
+ install -m 0644 ${WORKDIR}/pics/mail/*.png ${D}${palmtopdir}/pics/mail/
+}
+
diff --git a/recipes-opie/opie-mail/opie-mail_1.2.5.bb b/recipes-opie/opie-mail/opie-mail_1.2.5.bb
new file mode 100644
index 0000000..d1ca4a2
--- /dev/null
+++ b/recipes-opie/opie-mail/opie-mail_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_mail.tar.bz2;name=split_noncore_net_mail \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_net_mail.md5sum] = "7f5ecde1c30af35ed34b272f7af07874"
+SRC_URI[split_noncore_net_mail.sha256sum] = "6bac2a5da02faa84c533c26406c15acfc50c40882e676eb92f577b56b1203045"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-mail/opie-mail_cvs.bb b/recipes-opie/opie-mail/opie-mail_cvs.bb
new file mode 100644
index 0000000..5730169
--- /dev/null
+++ b/recipes-opie/opie-mail/opie-mail_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/mail \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-mailapplet/opie-mailapplet.inc b/recipes-opie/opie-mailapplet/opie-mailapplet.inc
new file mode 100644
index 0000000..7513046
--- /dev/null
+++ b/recipes-opie/opie-mailapplet/opie-mailapplet.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "A Biff-like mailchecker"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libmailwrapper"
+APPNAME = "mailapplet"
+
+
+S = "${WORKDIR}/taskbarapplet"
+
+inherit opie
+
diff --git a/recipes-opie/opie-mailapplet/opie-mailapplet_1.2.5.bb b/recipes-opie/opie-mailapplet/opie-mailapplet_1.2.5.bb
new file mode 100644
index 0000000..6439d55
--- /dev/null
+++ b/recipes-opie/opie-mailapplet/opie-mailapplet_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_mail_taskbarapplet.tar.bz2;name=split_noncore_net_mail_taskbarapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_net_mail_taskbarapplet.md5sum] = "5192466d9c334aa6576bcb1b2a26e818"
+SRC_URI[split_noncore_net_mail_taskbarapplet.sha256sum] = "2d544900b19063f4a0a1459599aded97811d02805a6a31eea2f880aef6502f55"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-mailapplet/opie-mailapplet_cvs.bb b/recipes-opie/opie-mailapplet/opie-mailapplet_cvs.bb
new file mode 100644
index 0000000..e09ee3d
--- /dev/null
+++ b/recipes-opie/opie-mailapplet/opie-mailapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/mail/taskbarapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin.inc b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin.inc
new file mode 100644
index 0000000..a4c1dbd
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "MP3 file plugin for opie-mediaplayer11 using libmad"
+SECTION = "opie/codecs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-mediaplayer1-core libmad"
+RDEPENDS_${PN} = "opie-mediaplayer1-core"
+APPNAME = "madplugin"
+
+
+S = "${WORKDIR}/opieplayer/libmad"
+QMAKE_PROFILES = "libmadplugin.pro"
+
+inherit opie
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/libmadplugin.pro ${S}/
+}
+
+# FILES plugins/codecs/libmadplugin.so
diff --git a/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin/libmadplugin.pro b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin/libmadplugin.pro
new file mode 100644
index 0000000..0a8d410
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin/libmadplugin.pro
@@ -0,0 +1,51 @@
+TEMPLATE = lib
+CONFIG += qt warn_on
+HEADERS = libmadplugin.h libmadpluginimpl.h
+SOURCES = libmadplugin.cpp libmadpluginimpl.cpp
+TARGET = madplugin
+DESTDIR = $(OPIEDIR)/plugins/codecs
+INCLUDEPATH += $(OPIEDIR)/include ..
+DEPENDPATH += ..
+LIBS += -lqpe -lm -lmad
+VERSION = 1.0.0
+
+include ( $(OPIEDIR)/include.pro )
+
+DEFINES += FPM_INTEL
+
+system(echo $QMAKESPEC | grep -s sharp) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_ARM
+}
+
+system(echo $QMAKESPEC | grep -s ipaq) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_ARM
+}
+
+system(echo $QMAKESPEC | grep -s mipsel) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_MIPS
+}
+
+system(echo $QMAKESPEC | grep -s mnci) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_ARM
+}
+
+system(echo $QMAKESPEC | grep -s arm) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_ARM
+}
+
+system(echo $QMAKESPEC | grep -s simpad) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_ARM
+}
+
+system(echo $QMAKESPEC | grep -s yopy) {
+ DEFINES -= FPM_INTEL
+ DEFINES += FPM_ARM
+}
+
+
diff --git a/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_1.2.5.bb b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_1.2.5.bb
new file mode 100644
index 0000000..05a0866
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_multimedia_opieplayer.tar.bz2;name=split_core_multimedia_opieplayer \
+ file://libmadplugin.pro"
+SRC_URI[split_core_multimedia_opieplayer.md5sum] = "173a82f9eda1800a394e7596ad13563c"
+SRC_URI[split_core_multimedia_opieplayer.sha256sum] = "54f941ae6f8f84482f3c9041a2ae365bcba5dd2e26c57c7376c7d984c86ee7a0"
diff --git a/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_cvs.bb b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_cvs.bb
new file mode 100644
index 0000000..4ec5e36
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmadplugin/opie-mediaplayer1-libmadplugin_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/multimedia/opieplayer \
+ file://libmadplugin.pro"
diff --git a/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin.inc b/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin.inc
new file mode 100644
index 0000000..bf725cc
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "MOD/XM/S3M/IT plugin using libmodplug"
+SECTION = "opie/codecs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-mediaplayer1-core"
+RDEPENDS_${PN} = "opie-mediaplayer1-core"
+APPNAME = "modplugin"
+
+
+S = "${WORKDIR}/opieplayer/modplug"
+
+inherit opie
+
+# FILES plugins/codecs/libmodplugin.so*
+
diff --git a/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_1.2.5.bb b/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_1.2.5.bb
new file mode 100644
index 0000000..f33b32c
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_multimedia_opieplayer.tar.bz2;name=split_core_multimedia_opieplayer"
+SRC_URI[split_core_multimedia_opieplayer.md5sum] = "173a82f9eda1800a394e7596ad13563c"
+SRC_URI[split_core_multimedia_opieplayer.sha256sum] = "54f941ae6f8f84482f3c9041a2ae365bcba5dd2e26c57c7376c7d984c86ee7a0"
diff --git a/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_cvs.bb b/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_cvs.bb
new file mode 100644
index 0000000..467fb37
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libmodplugin/opie-mediaplayer1-libmodplugin_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/multimedia/opieplayer "
diff --git a/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin.inc b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin.inc
new file mode 100644
index 0000000..e4d6417
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "Ogg file plugin using tremor"
+SECTION = "opie/codecs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-mediaplayer1-core tremor"
+RDEPENDS_${PN} = "opie-mediaplayer1-core"
+APPNAME = "tremorplugin"
+
+
+S = "${WORKDIR}/opieplayer/vorbis"
+
+QMAKE_PROFILES = "vorbis.pro"
+
+inherit opie
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/vorbis.pro ${S}/
+}
+
+# FILES plugins/codecs/libtremorplugin.so
diff --git a/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin/vorbis.pro b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin/vorbis.pro
new file mode 100644
index 0000000..c1e0350
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin/vorbis.pro
@@ -0,0 +1,11 @@
+TEMPLATE = lib
+CONFIG += qt warn_on
+HEADERS = libtremorplugin.h libtremorpluginimpl.h
+SOURCES = libtremorplugin.cpp libtremorpluginimpl.cpp
+TARGET = tremorplugin
+DESTDIR = $(OPIEDIR)/plugins/codecs
+INCLUDEPATH += $(OPIEDIR)/include .. tremor
+DEPENDPATH += $(OPIEDIR)/include .. tremor
+LIBS += -lqpe -lm -lvorbisidec
+VERSION = 1.0.0
+include ( $(OPIEDIR)/include.pro )
diff --git a/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_1.2.5.bb b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_1.2.5.bb
new file mode 100644
index 0000000..1fe53b2
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_multimedia_opieplayer.tar.bz2;name=split_core_multimedia_opieplayer \
+ file://vorbis.pro "
+SRC_URI[split_core_multimedia_opieplayer.md5sum] = "173a82f9eda1800a394e7596ad13563c"
+SRC_URI[split_core_multimedia_opieplayer.sha256sum] = "54f941ae6f8f84482f3c9041a2ae365bcba5dd2e26c57c7376c7d984c86ee7a0"
diff --git a/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_cvs.bb b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_cvs.bb
new file mode 100644
index 0000000..9e6e12c
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libtremorplugin/opie-mediaplayer1-libtremorplugin_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/multimedia/opieplayer \
+ file://vorbis.pro "
diff --git a/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin.inc b/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin.inc
new file mode 100644
index 0000000..4ef8b0a
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "WAV file plugin"
+SECTION = "opie/codecs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-mediaplayer1-core"
+RDEPENDS_${PN} = "opie-mediaplayer1-core"
+APPNAME = "wavplugin"
+
+
+S = "${WORKDIR}/opieplayer/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/codecs/libwavplugin*
diff --git a/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_1.2.5.bb b/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_1.2.5.bb
new file mode 100644
index 0000000..f33b32c
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_multimedia_opieplayer.tar.bz2;name=split_core_multimedia_opieplayer"
+SRC_URI[split_core_multimedia_opieplayer.md5sum] = "173a82f9eda1800a394e7596ad13563c"
+SRC_URI[split_core_multimedia_opieplayer.sha256sum] = "54f941ae6f8f84482f3c9041a2ae365bcba5dd2e26c57c7376c7d984c86ee7a0"
diff --git a/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_cvs.bb b/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_cvs.bb
new file mode 100644
index 0000000..3437b9e
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1-libwavplugin/opie-mediaplayer1-libwavplugin_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/multimedia/opieplayer "
diff --git a/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core.inc b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core.inc
new file mode 100644
index 0000000..f38b653
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "The classic Opie media player (core)"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2"
+RDEPENDS_${PN} = "opie-mediaplayer2-skin-default"
+APPNAME = "opieplayer"
+APPTYPE = "binary"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/opieplayer pics/opieplayer apps/Applications/opieplayer.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/default/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_1.2.5.bb b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_1.2.5.bb
new file mode 100644
index 0000000..2582fc3
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_multimedia_opieplayer.tar.bz2;name=split_core_multimedia_opieplayer \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_multimedia_opieplayer.md5sum] = "173a82f9eda1800a394e7596ad13563c"
+SRC_URI[split_core_multimedia_opieplayer.sha256sum] = "54f941ae6f8f84482f3c9041a2ae365bcba5dd2e26c57c7376c7d984c86ee7a0"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_cvs.bb b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_cvs.bb
new file mode 100644
index 0000000..febf16e
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1-core_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/multimedia/opieplayer \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-mediaplayer1/opie-mediaplayer1.inc b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1.inc
new file mode 100644
index 0000000..b1fd82a
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1.inc
@@ -0,0 +1,8 @@
+DESCRIPTION = "The classic Opie media player (core+plugins)."
+LICENSE = "GPL"
+ALLOW_EMPTY = "1"
+PACKAGE_ARCH = "all"
+RDEPENDS_${PN} = "opie-mediaplayer1-core"
+RRECOMMENDS_${PN} = "opie-mediaplayer1-libmadplugin opie-mediaplayer1-libwavplugin \
+opie-mediaplayer1-libmodplugin opie-mediaplayer1-libtremorplugin"
+
diff --git a/recipes-opie/opie-mediaplayer1/opie-mediaplayer1_1.2.5.bb b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1_1.2.5.bb
new file mode 100644
index 0000000..10510e5
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1_1.2.5.bb
@@ -0,0 +1,2 @@
+require ${PN}.inc
+
diff --git a/recipes-opie/opie-mediaplayer1/opie-mediaplayer1_cvs.bb b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1_cvs.bb
new file mode 100644
index 0000000..be93a60
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer1/opie-mediaplayer1_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_1.2.5.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_1.2.5.bb
new file mode 100644
index 0000000..4991bca
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_1.2.5.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/default_landscape/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/default_landscape/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/default_landscape/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/default_landscape/*.png"
+
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_cvs.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_cvs.bb
new file mode 100644
index 0000000..6f74d15
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default-landscape_cvs.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=pics"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/default_landscape/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/default_landscape/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/default_landscape/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/default_landscape/*.png"
+
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_1.2.5.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_1.2.5.bb
new file mode 100644
index 0000000..f4ca4f2
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_1.2.5.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+
+OPIE_SRCREV ?= "8c3beef263bc9c34443eacfc821e99813e17554f"
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/default/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/default/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/default/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/default/*.png"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_cvs.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_cvs.bb
new file mode 100644
index 0000000..6058dfb
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-default_cvs.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+
+OPIE_SRCREV ?= "8c3beef263bc9c34443eacfc821e99813e17554f"
+OPIE_GIT_PV ?= "1.2.4+gitr${OPIE_SRCREV}"
+
+PV = "${OPIE_GIT_PV}"
+PR = "r4"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=pics"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/default/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/default/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/default/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/default/*.png"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_1.2.5.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_1.2.5.bb
new file mode 100644
index 0000000..776ee23
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_1.2.5.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/Pod/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/Pod/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/Pod/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/Pod/*.png"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_cvs.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_cvs.bb
new file mode 100644
index 0000000..9295da7
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-pod_cvs.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=pics"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/Pod/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/Pod/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/Pod/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/Pod/*.png"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_1.2.5.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_1.2.5.bb
new file mode 100644
index 0000000..2d9a697
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_1.2.5.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/techno/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/techno/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/techno/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/techno/*.png"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_cvs.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_cvs.bb
new file mode 100644
index 0000000..34fd9dc
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2-skin-techno_cvs.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Skin for opie-mediaplayer2"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opieplayer2"
+RPROVIDES_${PN} = "opie-mediaplayer2-skin"
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=pics"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/skins/techno/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/skins/techno/*.png ${D}${palmtopdir}/pics/${APPNAME}/skins/techno/
+}
+
+FILES_${PN} = "${palmtopdir}/pics/${APPNAME}/skins/techno/*.png"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2.inc b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2.inc
new file mode 100644
index 0000000..6ee2460
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "The next generation mediaplayer for Opie - based on libxine. \
+It plays mp3, mpeg, wav, ogg, quicktime, divx, etc. and is capable of streaming."
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libxine libqtaux2 opie-mediaplayer2-skin-default"
+RDEPENDS_${PN} = "opie-mediaplayer2-skin-default"
+RRECOMMENDS_${PN} = "libxine-plugin-ao-out-oss libxine-plugin-inp-file \
+libxine-plugin-decode-ff libxine-plugin-decode-mad \
+libxine-plugin-dmx-audio libxine-plugin-dmx-avi libxine-plugin-dmx-mpeg"
+APPNAME = "opieplayer2"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+QMAKE_PROFILES = "opieplayer2.pro"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/ ${S}${palmtopdir}/apps/Applications/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2_1.2.5.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2_1.2.5.bb
new file mode 100644
index 0000000..336b112
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_multimedia_opieplayer2.tar.bz2;name=split_noncore_multimedia_opieplayer2 \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_multimedia_opieplayer2.md5sum] = "717f9ba75eae26a64ea5d37065ea574e"
+SRC_URI[split_noncore_multimedia_opieplayer2.sha256sum] = "d292aa5cdb6fa6f757c67dddfab6fc57a9edb74dd4d5dc09330f2c684fd71281"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-mediaplayer2/opie-mediaplayer2_cvs.bb b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2_cvs.bb
new file mode 100644
index 0000000..812c9c6
--- /dev/null
+++ b/recipes-opie/opie-mediaplayer2/opie-mediaplayer2_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/multimedia/opieplayer2 \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-mediummount/opie-mediummount.inc b/recipes-opie/opie-mediummount/opie-mediummount.inc
new file mode 100644
index 0000000..05dff92
--- /dev/null
+++ b/recipes-opie/opie-mediummount/opie-mediummount.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Medium mount configuration"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "mediummount"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libmediummount.so* bin/mediummount apps/Settings/medium.desktop pics/mediummount/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-mediummount/opie-mediummount_1.2.5.bb b/recipes-opie/opie-mediummount/opie-mediummount_1.2.5.bb
new file mode 100644
index 0000000..cd61e13
--- /dev/null
+++ b/recipes-opie/opie-mediummount/opie-mediummount_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_mediummount.tar.bz2;name=split_noncore_settings_mediummount \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_mediummount.md5sum] = "5309e48475c721a9cda3c9a1701789cd"
+SRC_URI[split_noncore_settings_mediummount.sha256sum] = "8554f74b00f5a3425a8a3d667eda5f0edd8f197bc33e78a59f3231eacd8c4f5c"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-mediummount/opie-mediummount_cvs.bb b/recipes-opie/opie-mediummount/opie-mediummount_cvs.bb
new file mode 100644
index 0000000..2f2a401
--- /dev/null
+++ b/recipes-opie/opie-mediummount/opie-mediummount_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/mediummount \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-memoryapplet/opie-memoryapplet.inc b/recipes-opie/opie-memoryapplet/opie-memoryapplet.inc
new file mode 100644
index 0000000..72348e1
--- /dev/null
+++ b/recipes-opie/opie-memoryapplet/opie-memoryapplet.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Memory Applet. \
+This applet displays the amount of free memory and manages the swap partition"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "memoryapplet"
+
+S = "${WORKDIR}/memoryapplet"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/plugins/applets ${D}${palmtopdir}/pics/memory/
+ install -m 0644 ${WORKDIR}/pics/memory/*.png ${D}${palmtopdir}/pics/memory/
+ oe_libinstall -so libmemoryapplet ${D}${palmtopdir}/plugins/applets/
+}
+
diff --git a/recipes-opie/opie-memoryapplet/opie-memoryapplet_1.2.5.bb b/recipes-opie/opie-memoryapplet/opie-memoryapplet_1.2.5.bb
new file mode 100644
index 0000000..0ff3a5d
--- /dev/null
+++ b/recipes-opie/opie-memoryapplet/opie-memoryapplet_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_memoryapplet.tar.bz2;name=split_noncore_applets_memoryapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_sysinfo.tar.bz2;name=split_noncore_settings_sysinfo \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_applets_memoryapplet.md5sum] = "4ca6be68c3026bd1de9e1ccf2d8f5eeb"
+SRC_URI[split_noncore_applets_memoryapplet.sha256sum] = "79a978cbc6929c020a285bb854c3e929ea4e73f3c87db19330241368c430ff59"
+SRC_URI[split_noncore_settings_sysinfo.md5sum] = "a451202461d0b467568b5b076c502e73"
+SRC_URI[split_noncore_settings_sysinfo.sha256sum] = "6704ae28eaf824e2e8338eaf49981761fbab60dde4f4ddeb829baf99a9dc3808"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-memoryapplet/opie-memoryapplet_cvs.bb b/recipes-opie/opie-memoryapplet/opie-memoryapplet_cvs.bb
new file mode 100644
index 0000000..b8fd3d5
--- /dev/null
+++ b/recipes-opie/opie-memoryapplet/opie-memoryapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/memoryapplet \
+ ${OPIE_GIT};protocol=git;subpath=noncore/settings/sysinfo \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-mindbreaker/opie-mindbreaker.inc b/recipes-opie/opie-mindbreaker/opie-mindbreaker.inc
new file mode 100644
index 0000000..be08ba8
--- /dev/null
+++ b/recipes-opie/opie-mindbreaker/opie-mindbreaker.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Game: crack the coloured code"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "mindbreaker"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libmindbreaker.so* bin/mindbreaker apps/Games/mindbreaker.desktop pics/mindbreaker
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-mindbreaker/opie-mindbreaker_1.2.5.bb b/recipes-opie/opie-mindbreaker/opie-mindbreaker_1.2.5.bb
new file mode 100644
index 0000000..4d9eb93
--- /dev/null
+++ b/recipes-opie/opie-mindbreaker/opie-mindbreaker_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_mindbreaker.tar.bz2;name=split_noncore_games_mindbreaker \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_mindbreaker.md5sum] = "7c17305ae8ae6365ca38b3419d10b5b0"
+SRC_URI[split_noncore_games_mindbreaker.sha256sum] = "3bef0045369c9256648a23d85fcae6883941c767b071322856a57094b26955a2"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-mindbreaker/opie-mindbreaker_cvs.bb b/recipes-opie/opie-mindbreaker/opie-mindbreaker_cvs.bb
new file mode 100644
index 0000000..2825d38
--- /dev/null
+++ b/recipes-opie/opie-mindbreaker/opie-mindbreaker_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/mindbreaker \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-minesweep/opie-minesweep.inc b/recipes-opie/opie-minesweep/opie-minesweep.inc
new file mode 100644
index 0000000..05369ae
--- /dev/null
+++ b/recipes-opie/opie-minesweep/opie-minesweep.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Game: find the mines"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "minesweep"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libminesweep.so* bin/minesweep apps/Games/minesweep.desktop pics/minesweep
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-minesweep/opie-minesweep_1.2.5.bb b/recipes-opie/opie-minesweep/opie-minesweep_1.2.5.bb
new file mode 100644
index 0000000..7860aea
--- /dev/null
+++ b/recipes-opie/opie-minesweep/opie-minesweep_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_minesweep.tar.bz2;name=split_noncore_games_minesweep \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_minesweep.md5sum] = "5d93bca17662a4178bae676576463c28"
+SRC_URI[split_noncore_games_minesweep.sha256sum] = "b61f0a9c4954adfb67ea4f04a154f01a92b593bb548d00fe449f2af79f7a7b98"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-minesweep/opie-minesweep_cvs.bb b/recipes-opie/opie-minesweep/opie-minesweep_cvs.bb
new file mode 100644
index 0000000..8fb9738
--- /dev/null
+++ b/recipes-opie/opie-minesweep/opie-minesweep_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/minesweep \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-multikey/files/fix-rpath.patch b/recipes-opie/opie-multikey/files/fix-rpath.patch
new file mode 100644
index 0000000..786f618
--- /dev/null
+++ b/recipes-opie/opie-multikey/files/fix-rpath.patch
@@ -0,0 +1,11 @@
+--- multikey/multikey.pro.org 2005-06-16 01:54:51.000000000 +0300
++++ multikey/multikey.pro 2007-07-04 21:02:52.000000000 +0300
+@@ -11,7 +11,7 @@
+ INCLUDEPATH += $(OPIEDIR)/include
+ DEPENDPATH += ../../launcher
+ LIBS += -lqpe -L$(OPIEDIR)/plugins/inputmethods -lqpickboard -lqtaux2 -lopiecore2 -lopieui2
+-QMAKE_LFLAGS += -Wl,-rpath,/opt/QtPalmtop/plugins/inputmethods
++QMAKE_LFLAGS += -Wl,-rpath,$(palmtopdir)/plugins/inputmethods
+ VERSION = 1.0.0
+
+ include( $(OPIEDIR)/include.pro )
diff --git a/recipes-opie/opie-multikey/files/friendly-button-names.patch b/recipes-opie/opie-multikey/files/friendly-button-names.patch
new file mode 100644
index 0000000..148204e
--- /dev/null
+++ b/recipes-opie/opie-multikey/files/friendly-button-names.patch
@@ -0,0 +1,16 @@
+--- multikey/configdlg.cpp.org 2005-06-15 22:54:50.000000000 +0000
++++ multikey/configdlg.cpp 2007-01-11 19:51:09.000000000 +0000
+@@ -144,11 +144,11 @@
+ add_remove_grid->setMargin(3);
+ add_remove_grid->setSpacing(3);
+
+- add_button = new QPushButton(tr("Add"), add_remove_grid);
++ add_button = new QPushButton(tr("Add custom..."), add_remove_grid);
+ add_button->setFlat(TRUE);
+ connect(add_button, SIGNAL(clicked()), SLOT(addMap()));
+
+- remove_button = new QPushButton(tr("Remove"), add_remove_grid);
++ remove_button = new QPushButton(tr("Remove custom"), add_remove_grid);
+ remove_button->setFlat(TRUE);
+ if (keymaps->currentItem() == 0 || default_maps.find(QFileInfo(current_map).fileName()) != default_maps.end())
+ remove_button->setDisabled(true);
diff --git a/recipes-opie/opie-multikey/files/ru.keymap b/recipes-opie/opie-multikey/files/ru.keymap
new file mode 100644
index 0000000..9f5d1e3
--- /dev/null
+++ b/recipes-opie/opie-multikey/files/ru.keymap
@@ -0,0 +1,255 @@
+# Created by Anton Kachalov (mouse@altlinux.ru)
+title = Russian
+sw = RU
+
+1 0x1000 0 2 # and you can write whatever you want after the last element
+
+
+ "9 9 2 1"
+ ". c None"
+ "a c #000000"
+ "........."
+ "........."
+ ".aa.aa.aa"
+ ".a..a..a."
+ ".aa.aa.a."
+ ".a...a.a."
+ ".aa.aa.aa"
+ "........."
+ "........."
+
+1 0 0x0451 2 # CYRILLIC SMALL LETTER IO
+1 0 0x31 2 # 1
+1 0 0x32 2 # 2
+1 0 0x33 2 # 3
+1 0 0x34 2 # 4
+1 0 0x35 2 # 5
+1 0 0x36 2 # 6
+1 0 0x37 2 # 7
+1 0 0x38 2 # 8
+1 0 0x39 2 # 9
+1 0 0x30 2 # 0
+1 0 0x2d 2 # -
+1 0 0x3d 2 # =
+1 0x1003 0 2
+
+ "9 9 2 1"
+ ". c None"
+ "a c #000000"
+ "........."
+ "........."
+ "...a....."
+ "..aa....."
+ ".aaaaaaaa"
+ "..aa....."
+ "...a....."
+ "........."
+ "........."
+
+
+2 0x1001 0x9 3 # tab char, but why doesnt this work...?
+
+
+ "11 9 2 1"
+ ". c None"
+ "a c #000000"
+ "..........."
+ "..........."
+ ".....a..a.."
+ ".....aa.a.."
+ ".aaaaaaaa.."
+ ".....aa.a.."
+ ".....a..a.."
+ "..........."
+ "..........."
+2 0 0x0439 2 # CYRILLIC SMALL LETTER SHORT I
+2 0 0x0446 2 # CYRILLIC SMALL LETTER TSE
+2 0 0x0443 2 # CYRILLIC SMALL LETTER U
+2 0 0x043a 2 # CYRILLIC SMALL LETTER KA
+2 0 0x0435 2 # CYRILLIC SMALL LETTER IE
+2 0 0x043d 2 # CYRILLIC SMALL LETTER EN
+2 0 0x0433 2 # CYRILLIC SMALL LETTER GHE
+2 0 0x0448 2 # CYRILLIC SMALL LETTER SHA
+2 0 0x0449 2 # CYRILLIC SMALL LETTER SHCHA
+2 0 0x0437 2 # CYRILLIC SMALL LETTER ZE
+2 0 0x0445 2 # CYRILLIC SMALL LETTER HA
+2 0 0x044a 2 # CYRILLIC SMALL LETTER HARD SIGN
+2 0 0x2f 4 # /
+
+3 0x1024 0 4
+ "17 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. . .. .. "
+ " . . . . . . "
+ " . ... .. . "
+ " . . . . . "
+ " .. . . . .. "
+ " "
+3 0 0x0444 2 # CYRILLIC SMALL LETTER EF
+3 0 0x044b 2 # CYRILLIC SMALL LETTER YERU
+3 0 0x0432 2 # CYRILLIC SMALL LETTER VE
+3 0 0x0430 2 # CYRILLIC SMALL LETTER A
+3 0 0x043f 2 # CYRILLIC SMALL LETTER PE
+3 0 0x0440 2 # CYRILLIC SMALL LETTER ER
+3 0 0x043e 2 # CYRILLIC SMALL LETTER O
+3 0 0x043b 2 # CYRILLIC SMALL LETTER EL
+3 0 0x0434 2 # CYRILLIC SMALL LETTER DE
+3 0 0x0436 2 # CYRILLIC SMALL LETTER ZHE
+3 0 0x044d 2 # CYRILLIC SMALL LETTER E
+3 0x1004 0 5 # ENTER
+ "16 9 2 1"
+ ". c None"
+ "a c #000000"
+ "................"
+ "................"
+ "...........a...."
+ "....aa.....a...."
+ "...aa......a...."
+ "..aaaaaaaaaa...."
+ "...aa..........."
+ "....aa.........."
+ "................"
+
+4 0x1020 0 5
+ "21 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. . . ... ... ... "
+ " . . . . . . "
+ " . ... . .. . "
+ " . . . . . . "
+ " .. . . ... . . "
+ " "
+4 0 0x044f 2 # CYRILLIC SMALL LETTER YA
+4 0 0x0447 2 # CYRILLIC SMALL LETTER CHE
+4 0 0x0441 2 # CYRILLIC SMALL LETTER ES
+4 0 0x043c 2 # CYRILLIC SMALL LETTER EM
+4 0 0x0438 2 # CYRILLIC SMALL LETTER I
+4 0 0x0442 2 # CYRILLIC SMALL LETTER TE
+4 0 0x044c 2 # CYRILLIC SMALL LETTER SOFT SIGN
+4 0 0x0431 2 # CYRILLIC SMALL LETTER BE
+4 0 0x044e 2 # CYRILLIC SMALL LETTER YU
+4 0 0x2e 2 # .
+4 0x1020 0 5 # SHIFT
+ "21 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. . . ... ... ... "
+ " . . . . . . "
+ " . ... . .. . "
+ " . . . . . . "
+ " .. . . ... . . "
+ " "
+
+5 0x1021 0 3
+ "17 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. ... .. . "
+ " . . . . . "
+ " . . .. . "
+ " . . . . . "
+ " .. . . . ... "
+ " "
+5 0x1023 0 3
+ "13 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " . . ... "
+ " . . . . "
+ " ... . . "
+ " . . . . "
+ " . . ... . "
+ " "
+5 0 0x20 16
+5 0x1023 0 3
+ "13 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " . . ... "
+ " . . . . "
+ " ... . . "
+ " . . . . "
+ " . . ... . "
+ " "
+5 0x1021 0 3
+ "17 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " .. ... .. . "
+ " . . . . . "
+ " . . .. . "
+ " . . . . . "
+ " .. . . . ... "
+ " "
+5 0x1030 0 2 #original code is F1, but i'll use it for turning on/off the config dialog
+ "13 7 2 1"
+ " c None"
+ ". c #000000"
+ " "
+ " . "
+ " ... "
+ " ..... "
+ " . "
+ " . "
+ " "
+
+# shift table
+0x0451 0x0401 # CYRILLIC SMALL LETTER IO -> CYRILLIC CAPITAL LETTER IO
+0x31 0x21 # 1 -> !
+0x32 0x22 # 2 -> "
+0x33 0x4e # 3 -> N
+0x34 0x3b # 4 -> ;
+0x35 0x25 # 5 -> %
+0x36 0x3a # 6 -> :
+0x37 0x3f # 7 -> ?
+0x38 0x2a # 8 -> *
+0x39 0x28 # 9 -> (
+0x30 0x29 # 0 -> )
+0x2d 0x5f # - -> _
+0x3d 0x2b # = -> +
+
+0x0439 0x0419 # CYRILLIC SMALL LETTER SHORT I -> CYRILLIC CAPITAL LETTER SHORT I
+0x0446 0x0426 # CYRILLIC SMALL LETTER TSE -> CYRILLIC CAPITAL LETTER TSE
+0x0443 0x0423 # CYRILLIC SMALL LETTER U -> CYRILLIC CAPITAL LETTER U
+0x043a 0x041a # CYRILLIC SMALL LETTER KA -> CYRILLIC CAPITAL LETTER KA
+0x0435 0x0415 # CYRILLIC SMALL LETTER IE -> CYRILLIC CAPITAL LETTER IE
+0x043d 0x041d # CYRILLIC SMALL LETTER EN -> CYRILLIC CAPITAL LETTER EN
+0x0433 0x0413 # CYRILLIC SMALL LETTER GHE -> CYRILLIC CAPITAL LETTER GHE
+0x0448 0x0428 # CYRILLIC SMALL LETTER SHA -> CYRILLIC CAPITAL LETTER SHA
+0x0449 0x0429 # CYRILLIC SMALL LETTER SHCHA -> CYRILLIC CAPITAL LETTER SHCHA
+0x0437 0x0417 # CYRILLIC SMALL LETTER ZE -> CYRILLIC CAPITAL LETTER ZE
+0x0445 0x0425 # CYRILLIC SMALL LETTER HA -> CYRILLIC CAPITAL LETTER HA
+0x044a 0x042a # CYRILLIC SMALL LETTER HARD SIGN -> CYRILLIC CAPITAL LETTER HARD SIGN
+
+0x0444 0x0424 # CYRILLIC SMALL LETTER EF -> CYRILLIC CAPITAL LETTER EF
+0x044b 0x042b # CYRILLIC SMALL LETTER YERU -> CYRILLIC CAPITAL LETTER YERU
+0x0432 0x0412 # CYRILLIC SMALL LETTER VE -> CYRILLIC CAPITAL LETTER VE
+0x0430 0x0410 # CYRILLIC SMALL LETTER A -> CYRILLIC CAPITAL LETTER A
+0x043f 0x041f # CYRILLIC SMALL LETTER PE -> CYRILLIC CAPITAL LETTER PE
+0x0440 0x0420 # CYRILLIC SMALL LETTER ER -> CYRILLIC CAPITAL LETTER ER
+0x043e 0x041e # CYRILLIC SMALL LETTER O -> CYRILLIC CAPITAL LETTER O
+0x043b 0x041b # CYRILLIC SMALL LETTER EL -> CYRILLIC CAPITAL LETTER EL
+0x0434 0x0414 # CYRILLIC SMALL LETTER DE -> CYRILLIC CAPITAL LETTER DE
+0x0436 0x0416 # CYRILLIC SMALL LETTER ZHE -> CYRILLIC CAPITAL LETTER ZHE
+0x044d 0x042d # CYRILLIC SMALL LETTER E -> CYRILLIC CAPITAL LETTER E
+
+0x044f 0x042f # CYRILLIC SMALL LETTER YA -> CYRILLIC CAPITAL LETTER YA
+0x0447 0x0427 # CYRILLIC SMALL LETTER CHE -> CYRILLIC CAPITAL LETTER CHE
+0x0441 0x0421 # CYRILLIC SMALL LETTER ES -> CYRILLIC CAPITAL LETTER ES
+0x043c 0x041c # CYRILLIC SMALL LETTER EM -> CYRILLIC CAPITAL LETTER EM
+0x0438 0x0418 # CYRILLIC SMALL LETTER I -> CYRILLIC CAPITAL LETTER I
+0x0442 0x0422 # CYRILLIC SMALL LETTER TE -> CYRILLIC CAPITAL LETTER TE
+0x044c 0x042c # CYRILLIC SMALL LETTER SOFT SIGN -> CYRILLIC CAPITAL LETTER SOFT SIGN
+0x0431 0x0411 # CYRILLIC SMALL LETTER BE -> CYRILLIC CAPITAL LETTER BE
+0x044e 0x042e # CYRILLIC SMALL LETTER YU -> CYRILLIC CAPITAL LETTER YU
+0x2f 0x7c # / -> |
+0x2e 0x2c # . -> ,
diff --git a/recipes-opie/opie-multikey/opie-multikey.inc b/recipes-opie/opie-multikey/opie-multikey.inc
new file mode 100644
index 0000000..0615280
--- /dev/null
+++ b/recipes-opie/opie-multikey/opie-multikey.inc
@@ -0,0 +1,40 @@
+DESCRIPTION = "Multiple language keyboard"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2 opie-pickboard"
+RDEPENDS_${PN} = "opie-pics opie-pickboard"
+RRECOMMENDS_${PN} = "opie-multikeyapplet"
+APPNAME = "qmultikey"
+
+S = "${WORKDIR}/multikey"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqmultikey.so* share/multikey/*
+
+SRC_URI_append = " file://ru.keymap"
+
+do_install() {
+ install -d ${D}${palmtopdir}/share/multikey/
+ install -m 0644 ${WORKDIR}/share/multikey/*.keymap ${D}${palmtopdir}/share/multikey/
+ install -m 0644 ${WORKDIR}/share/multikey/README ${D}${palmtopdir}/share/multikey/
+ install -m 0644 ${WORKDIR}/ru.keymap ${D}${palmtopdir}/share/multikey/
+}
+
diff --git a/recipes-opie/opie-multikey/opie-multikey_1.2.5.bb b/recipes-opie/opie-multikey/opie-multikey_1.2.5.bb
new file mode 100644
index 0000000..14a9feb
--- /dev/null
+++ b/recipes-opie/opie-multikey/opie-multikey_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_multikey.tar.bz2;name=split_inputmethods_multikey \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ file://fix-rpath.patch"
+SRC_URI[split_inputmethods_multikey.md5sum] = "fe9401e13070fb458701cc416ccbab0b"
+SRC_URI[split_inputmethods_multikey.sha256sum] = "a26bbc5db64dc6c904324a7b3ddbe4e3ba303eb648dcb19760b2ef214e2f7ebf"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+
+# file://friendly-button-names.patch"
diff --git a/recipes-opie/opie-multikey/opie-multikey_cvs.bb b/recipes-opie/opie-multikey/opie-multikey_cvs.bb
new file mode 100644
index 0000000..c16218b
--- /dev/null
+++ b/recipes-opie/opie-multikey/opie-multikey_cvs.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r5"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/multikey \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ file://fix-rpath.patch"
+
+# file://friendly-button-names.patch"
diff --git a/recipes-opie/opie-multikeyapplet/opie-multikeyapplet.inc b/recipes-opie/opie-multikeyapplet/opie-multikeyapplet.inc
new file mode 100644
index 0000000..0022ba5
--- /dev/null
+++ b/recipes-opie/opie-multikeyapplet/opie-multikeyapplet.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "Multikey Keyboard Layout Switcher Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "multikeyapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libmultikeyapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-multikeyapplet/opie-multikeyapplet_1.2.5.bb b/recipes-opie/opie-multikeyapplet/opie-multikeyapplet_1.2.5.bb
new file mode 100644
index 0000000..149c471
--- /dev/null
+++ b/recipes-opie/opie-multikeyapplet/opie-multikeyapplet_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_multikeyapplet.tar.bz2;name=split_core_applets_multikeyapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_multikeyapplet.md5sum] = "8046e4b864f9a8f5673d387368dd49da"
+SRC_URI[split_core_applets_multikeyapplet.sha256sum] = "4a16356f27241c46456453cd46f82487d4974970feb845d8a903b607ec355933"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-multikeyapplet/opie-multikeyapplet_cvs.bb b/recipes-opie/opie-multikeyapplet/opie-multikeyapplet_cvs.bb
new file mode 100644
index 0000000..ddb2bab
--- /dev/null
+++ b/recipes-opie/opie-multikeyapplet/opie-multikeyapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/multikeyapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-networkapplet/opie-networkapplet.inc b/recipes-opie/opie-networkapplet/opie-networkapplet.inc
new file mode 100644
index 0000000..c1ebfbe
--- /dev/null
+++ b/recipes-opie/opie-networkapplet/opie-networkapplet.inc
@@ -0,0 +1,32 @@
+DESCRIPTION = "Network Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-networksettings"
+APPNAME = "networkapplet"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+}
+
+# FILES plugins/applets/libnetworkapplet.so* pics/networkapplet
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-networkapplet/opie-networkapplet_1.2.5.bb b/recipes-opie/opie-networkapplet/opie-networkapplet_1.2.5.bb
new file mode 100644
index 0000000..3bbd4d4
--- /dev/null
+++ b/recipes-opie/opie-networkapplet/opie-networkapplet_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_networkapplet.tar.bz2;name=split_noncore_applets_networkapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_applets_networkapplet.md5sum] = "cff6a34cb17c4d43fac479af928e945d"
+SRC_URI[split_noncore_applets_networkapplet.sha256sum] = "83f69e44ba07b84abdab915dcfaccf25257e23b8904bf71ac01080b484f850f0"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-networkapplet/opie-networkapplet_cvs.bb b/recipes-opie/opie-networkapplet/opie-networkapplet_cvs.bb
new file mode 100644
index 0000000..ac865e6
--- /dev/null
+++ b/recipes-opie/opie-networkapplet/opie-networkapplet_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/networkapplet \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-networksettings/opie-networksettings.inc b/recipes-opie/opie-networksettings/opie-networksettings.inc
new file mode 100644
index 0000000..ef9c643
--- /dev/null
+++ b/recipes-opie/opie-networksettings/opie-networksettings.inc
@@ -0,0 +1,46 @@
+DESCRIPTION = "Opie Network Settings"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PROVIDES = "opie-networksettings-pppplugin opie-networksettings-wlanplugin"
+APPNAME = "networksettings"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+PARALLEL_MAKE = ""
+
+EXTRA_QMAKEVARS_POST += "LIBS+=-L${S}"
+
+do_install() {
+ # Create dir for changedns and the opie-kppp peer
+ install -d ${D}${bindir}/
+ install -d ${D}${sysconfdir}/
+ install -d ${D}${sysconfdir}/ppp/
+ install -d ${D}${sysconfdir}/ppp/peers/
+
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/pics/Network/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.* ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/Network/*.* ${D}${palmtopdir}/pics/Network/
+ install -d ${D}${palmtopdir}/lib/
+ oe_libinstall -so libinterfaces ${D}${libdir}
+ install -d ${D}${palmtopdir}/plugins/networksettings/
+ for plugin in kppp wlan
+ do
+ install lib$plugin.so ${D}${palmtopdir}/plugins/networksettings/
+ done
+
+ # install changedns script
+ install -m 0755 ${WORKDIR}/root/usr/bin/changedns ${D}${bindir}/
+ install -m 0644 ${WORKDIR}/root/etc/ppp/peers/opie-kppp ${D}${sysconfdir}/ppp/peers
+
+ install -d ${D}${includedir}/interfaces/
+ install -m 0644 interfaces/*.h ${D}${includedir}/interfaces/
+}
+
+PACKAGES =+ "opie-networksettings-pppplugin opie-networksettings-wlanplugin"
+FILES_${PN} += " ${bindir}/changedns "
+FILES_opie-networksettings-pppplugin = "${palmtopdir}/plugins/networksettings/libkppp.so ${sysconfdir}/ppp/peers/opie-kppp"
+FILES_opie-networksettings-wlanplugin = "${palmtopdir}/plugins/networksettings/libwlan.so"
diff --git a/recipes-opie/opie-networksettings/opie-networksettings_1.2.5.bb b/recipes-opie/opie-networksettings/opie-networksettings_1.2.5.bb
new file mode 100644
index 0000000..1d6ed12
--- /dev/null
+++ b/recipes-opie/opie-networksettings/opie-networksettings_1.2.5.bb
@@ -0,0 +1,17 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_networksettings.tar.bz2;name=split_noncore_settings_networksettings \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_root.tar.bz2;name=split_root \
+ "
+SRC_URI[split_noncore_settings_networksettings.md5sum] = "c63c0d9c016eb264d42b952657249197"
+SRC_URI[split_noncore_settings_networksettings.sha256sum] = "c4ddc3627f08b823eee89fede5fae23f7cb07bd5afad321880c999a25066dc9c"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_root.md5sum] = "47b2ea2c59ac34b3df21d43c53baaccd"
+SRC_URI[split_root.sha256sum] = "0fb78622bb7ab459860aaa65fbea6145c45141195c1981164b40807b884628eb"
diff --git a/recipes-opie/opie-networksettings/opie-networksettings_cvs.bb b/recipes-opie/opie-networksettings/opie-networksettings_cvs.bb
new file mode 100644
index 0000000..b5bd601
--- /dev/null
+++ b/recipes-opie/opie-networksettings/opie-networksettings_cvs.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r5"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/networksettings \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=root \
+ "
diff --git a/recipes-opie/opie-notes/opie-notes.inc b/recipes-opie/opie-notes/opie-notes.inc
new file mode 100644
index 0000000..b3a9d44
--- /dev/null
+++ b/recipes-opie/opie-notes/opie-notes.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Notes"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-notes"
+APPTYPE = "binary"
+
+S = "${WORKDIR}/notes"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.* ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-notes/opie-notes_1.2.5.bb b/recipes-opie/opie-notes/opie-notes_1.2.5.bb
new file mode 100644
index 0000000..ac964db
--- /dev/null
+++ b/recipes-opie/opie-notes/opie-notes_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_notes.tar.bz2;name=split_core_pim_notes \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_pim_notes.md5sum] = "9e0de33d009052ffc926bc835ca0d968"
+SRC_URI[split_core_pim_notes.sha256sum] = "4f34029d18f015fea73c529313be2537cdb60bdcf32681ae6671898c36e14c8f"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-notes/opie-notes_cvs.bb b/recipes-opie/opie-notes/opie-notes_cvs.bb
new file mode 100644
index 0000000..a1a91d9
--- /dev/null
+++ b/recipes-opie/opie-notes/opie-notes_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/notes \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-notesapplet/opie-notesapplet.inc b/recipes-opie/opie-notesapplet/opie-notesapplet.inc
new file mode 100644
index 0000000..ca4cae9
--- /dev/null
+++ b/recipes-opie/opie-notesapplet/opie-notesapplet.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Notes Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "notesapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+}
+
+# FILES plugins/applets/libnotesapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-notesapplet/opie-notesapplet_1.2.5.bb b/recipes-opie/opie-notesapplet/opie-notesapplet_1.2.5.bb
new file mode 100644
index 0000000..5da929f
--- /dev/null
+++ b/recipes-opie/opie-notesapplet/opie-notesapplet_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_notesapplet.tar.bz2;name=split_noncore_applets_notesapplet"
+SRC_URI[split_noncore_applets_notesapplet.md5sum] = "c013f566961a731a93329eebfa455960"
+SRC_URI[split_noncore_applets_notesapplet.sha256sum] = "507de07bc4b06c860cfdeb34ccacd89ece91e8490c167c8e2a66d9f9b15a06bd"
diff --git a/recipes-opie/opie-notesapplet/opie-notesapplet_cvs.bb b/recipes-opie/opie-notesapplet/opie-notesapplet_cvs.bb
new file mode 100644
index 0000000..1dd6151
--- /dev/null
+++ b/recipes-opie/opie-notesapplet/opie-notesapplet_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/notesapplet"
diff --git a/recipes-opie/opie-odict/opie-odict.inc b/recipes-opie/opie-odict/opie-odict.inc
new file mode 100644
index 0000000..9334148
--- /dev/null
+++ b/recipes-opie/opie-odict/opie-odict.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Dictionary look-up program"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "odict"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libodict.so* bin/odict apps/Applications/odict.desktop pics/odict/odict.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-odict/opie-odict_1.2.5.bb b/recipes-opie/opie-odict/opie-odict_1.2.5.bb
new file mode 100644
index 0000000..e1b6ff5
--- /dev/null
+++ b/recipes-opie/opie-odict/opie-odict_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_odict.tar.bz2;name=split_noncore_apps_odict \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_odict.md5sum] = "1df87ff233068a77037b2f947246f4c8"
+SRC_URI[split_noncore_apps_odict.sha256sum] = "1675f8237eb36c0d9fc99b9f09fa462db82e7585950916ea4adf8e7b6a99f972"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-odict/opie-odict_cvs.bb b/recipes-opie/opie-odict/opie-odict_cvs.bb
new file mode 100644
index 0000000..e376f9e
--- /dev/null
+++ b/recipes-opie/opie-odict/opie-odict_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/odict \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-oxygen/opie-oxygen.inc b/recipes-opie/opie-oxygen/opie-oxygen.inc
new file mode 100644
index 0000000..dbd238f
--- /dev/null
+++ b/recipes-opie/opie-oxygen/opie-oxygen.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Opie Oxygen - Periodic table of elements (Chemistry)"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "oxygen"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/oxygen/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/share/oxygen/*o* ${D}${palmtopdir}/share/oxygen/
+}
diff --git a/recipes-opie/opie-oxygen/opie-oxygen_1.2.5.bb b/recipes-opie/opie-oxygen/opie-oxygen_1.2.5.bb
new file mode 100644
index 0000000..ae2011f
--- /dev/null
+++ b/recipes-opie/opie-oxygen/opie-oxygen_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_${APPNAME}.tar.bz2;name=split_noncore_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_appname.md5sum] = "d2d65e101949425dc40ca688321e7b88"
+SRC_URI[split_noncore_apps_appname.sha256sum] = "f201efb3cb6b6c5a776804d9b96e61a28ff62ca1c5c205faedc01e46c9833086"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-oxygen/opie-oxygen_cvs.bb b/recipes-opie/opie-oxygen/opie-oxygen_cvs.bb
new file mode 100644
index 0000000..4b703a3
--- /dev/null
+++ b/recipes-opie/opie-oxygen/opie-oxygen_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-oyatzee/opie-oyatzee.inc b/recipes-opie/opie-oyatzee/opie-oyatzee.inc
new file mode 100644
index 0000000..fdadc70
--- /dev/null
+++ b/recipes-opie/opie-oyatzee/opie-oyatzee.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Yatzee-like game"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "oyatzee"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/oyatzee apps/Games/oyatzee.desktop pics/oyatzee
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-oyatzee/opie-oyatzee_1.2.5.bb b/recipes-opie/opie-oyatzee/opie-oyatzee_1.2.5.bb
new file mode 100644
index 0000000..4286d49
--- /dev/null
+++ b/recipes-opie/opie-oyatzee/opie-oyatzee_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_oyatzee.tar.bz2;name=split_noncore_games_oyatzee \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_oyatzee.md5sum] = "45fdb344cce26ecd2c1ba6defd322f2e"
+SRC_URI[split_noncore_games_oyatzee.sha256sum] = "38ece4f78b72f01430f10f50ea4d6d1b5b4dab92c12bb9bb6000f107062cc127"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-oyatzee/opie-oyatzee_cvs.bb b/recipes-opie/opie-oyatzee/opie-oyatzee_cvs.bb
new file mode 100644
index 0000000..52e7ea2
--- /dev/null
+++ b/recipes-opie/opie-oyatzee/opie-oyatzee_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/oyatzee \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-packagemanager/opie-packagemanager.inc b/recipes-opie/opie-packagemanager/opie-packagemanager.inc
new file mode 100644
index 0000000..a6b5ca1
--- /dev/null
+++ b/recipes-opie/opie-packagemanager/opie-packagemanager.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Opie Package Manager"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opkg"
+APPNAME = "packagemanager"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+EXTRA_QMAKEVARS_PRE += "LIBIPK_INC_DIR=${STAGING_INCDIR}/libopkg"
+export CONFIG_LIBOPK_DEP=y
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-packagemanager/opie-packagemanager_1.2.5.bb b/recipes-opie/opie-packagemanager/opie-packagemanager_1.2.5.bb
new file mode 100644
index 0000000..03745b1
--- /dev/null
+++ b/recipes-opie/opie-packagemanager/opie-packagemanager_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_${APPNAME}.tar.bz2;name=split_noncore_settings_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_appname.md5sum] = "67182630eddbcf4411aa06ab41b2a2a6"
+SRC_URI[split_noncore_settings_appname.sha256sum] = "02dd61fd5911d0d7db6b8790457812818a8ad702aa0021345232f80f766d1645"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-packagemanager/opie-packagemanager_cvs.bb b/recipes-opie/opie-packagemanager/opie-packagemanager_cvs.bb
new file mode 100644
index 0000000..f22e579
--- /dev/null
+++ b/recipes-opie/opie-packagemanager/opie-packagemanager_cvs.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+DEPENDS = "opkg"
+
+EXTRA_QMAKEVARS_PRE += "LIBIPK_INC_DIR=${STAGING_INCDIR}/libopkg"
+
+export CONFIG_LIBOPK_DEP=y
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-parashoot/opie-parashoot.inc b/recipes-opie/opie-parashoot/opie-parashoot.inc
new file mode 100644
index 0000000..ec10d07
--- /dev/null
+++ b/recipes-opie/opie-parashoot/opie-parashoot.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Game: shoot the parachutists"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "parashoot"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libparashoot.so* bin/parashoot apps/Games/parashoot.desktop pics/parashoot
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.xpm ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-parashoot/opie-parashoot_1.2.5.bb b/recipes-opie/opie-parashoot/opie-parashoot_1.2.5.bb
new file mode 100644
index 0000000..72218d4
--- /dev/null
+++ b/recipes-opie/opie-parashoot/opie-parashoot_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_parashoot.tar.bz2;name=split_noncore_games_parashoot \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_parashoot.md5sum] = "cf005427cfe7115c5349d95ea02ee41e"
+SRC_URI[split_noncore_games_parashoot.sha256sum] = "52081168e375bbfa3f01ece3e8261a1164a05048c446e0cf92db9aa558003bba"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-parashoot/opie-parashoot_cvs.bb b/recipes-opie/opie-parashoot/opie-parashoot_cvs.bb
new file mode 100644
index 0000000..98eb14e
--- /dev/null
+++ b/recipes-opie/opie-parashoot/opie-parashoot_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/parashoot \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-pickboard/opie-pickboard.inc b/recipes-opie/opie-pickboard/opie-pickboard.inc
new file mode 100644
index 0000000..2f84359
--- /dev/null
+++ b/recipes-opie/opie-pickboard/opie-pickboard.inc
@@ -0,0 +1,36 @@
+DESCRIPTION = "Pickboard input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qpickboard"
+
+S = "${WORKDIR}/pickboard"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+
+do_install() {
+ install -d ${D}${libdir}/
+ install -d ${D}${includedir}/
+ install -m 0755 libqpickboard.so ${D}${libdir}/
+ install pickboardcfg.h ${D}${includedir}/
+ install pickboardpicks.h ${D}${includedir}/
+}
+
+# FILES plugins/inputmethods/libqpickboard.so*
diff --git a/recipes-opie/opie-pickboard/opie-pickboard_1.2.5.bb b/recipes-opie/opie-pickboard/opie-pickboard_1.2.5.bb
new file mode 100644
index 0000000..9af5bdf
--- /dev/null
+++ b/recipes-opie/opie-pickboard/opie-pickboard_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_pickboard.tar.bz2;name=split_inputmethods_pickboard"
+SRC_URI[split_inputmethods_pickboard.md5sum] = "86a0f938b5c65a388ee3ccd8b962e831"
+SRC_URI[split_inputmethods_pickboard.sha256sum] = "5c50eb3062443ca3fa249ec1c8fa7b141b4ed3524e907a3c51e6ee8c09f6f8bc"
diff --git a/recipes-opie/opie-pickboard/opie-pickboard_cvs.bb b/recipes-opie/opie-pickboard/opie-pickboard_cvs.bb
new file mode 100644
index 0000000..ac2d01c
--- /dev/null
+++ b/recipes-opie/opie-pickboard/opie-pickboard_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/pickboard"
diff --git a/recipes-opie/opie-pics/opie-pics.inc b/recipes-opie/opie-pics/opie-pics.inc
new file mode 100644
index 0000000..69761d2
--- /dev/null
+++ b/recipes-opie/opie-pics/opie-pics.inc
@@ -0,0 +1,30 @@
+DESCRIPTION = "Common Opie pictures usable from all applications"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r2"
+
+S = "${WORKDIR}"
+
+SHIP_INLINE_PICS = "yes"
+INLINE_PICS = '${@base_conditional("GUI_MACHINE_CLASS", "bigscreen", "pics-hires/inline", "pics/inline", d)}'
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/addressbook/
+ install -d ${D}${palmtopdir}/pics/datebook/
+ install -d ${D}${palmtopdir}/pics/todo/
+ install -d ${D}${palmtopdir}/pics/opie/
+ install -m 0664 pics/*.png ${D}${palmtopdir}/pics/
+ install -m 0664 pics/addressbook/*.png ${D}${palmtopdir}/pics/addressbook/
+ install -m 0664 pics/datebook/*.png ${D}${palmtopdir}/pics/datebook/
+ install -m 0664 pics/todo/*.png ${D}${palmtopdir}/pics/todo/
+ install -m 0664 pics/opie/*.png ${D}${palmtopdir}/pics/opie/
+
+ if [ "${SHIP_INLINE_PICS}" = "yes" ]; then
+ install -m 0664 ${INLINE_PICS}/*.png ${D}${palmtopdir}/pics/
+ fi
+}
+
+FILES_${PN} = "${palmtopdir}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
diff --git a/recipes-opie/opie-pics/opie-pics_1.2.5.bb b/recipes-opie/opie-pics/opie-pics_1.2.5.bb
new file mode 100644
index 0000000..e118fa5
--- /dev/null
+++ b/recipes-opie/opie-pics/opie-pics_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_pics-hires.tar.bz2;name=split_pics-hires"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_pics-hires.md5sum] = "f8f895e7136ebd0a514166a184dec0bd"
+SRC_URI[split_pics-hires.sha256sum] = "04871cc3cfe0c4f9f6dc3f19b1e8fa4ce16412295137414d33c4af372f12111e"
diff --git a/recipes-opie/opie-pics/opie-pics_cvs.bb b/recipes-opie/opie-pics/opie-pics_cvs.bb
new file mode 100644
index 0000000..00fe1da
--- /dev/null
+++ b/recipes-opie/opie-pics/opie-pics_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=pics-hires"
diff --git a/recipes-opie/opie-pimconverter/opie-pimconverter.inc b/recipes-opie/opie-pimconverter/opie-pimconverter.inc
new file mode 100644
index 0000000..66afa44
--- /dev/null
+++ b/recipes-opie/opie-pimconverter/opie-pimconverter.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "Opie PIM database converter"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "sqlite3 sqlite"
+RDEPENDS_${PN} = "sqlite3 sqlite-bin"
+
+APPNAME = "opimconverter"
+
+
+S = "${WORKDIR}/pimconverter"
+EXTRA_QMAKEVARS_POST += "TARGET=${APPNAME}"
+
+inherit opie
+
+# FILES bin/opimconverter pics/opimconverter/* apps/1Pim/opimconverter.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-pimconverter/opie-pimconverter_1.2.5.bb b/recipes-opie/opie-pimconverter/opie-pimconverter_1.2.5.bb
new file mode 100644
index 0000000..57adf71
--- /dev/null
+++ b/recipes-opie/opie-pimconverter/opie-pimconverter_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_pimconverter.tar.bz2;name=split_noncore_tools_pimconverter \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_tools_pimconverter.md5sum] = "d4590ed6a58ea7c0c3a5733d08f5adef"
+SRC_URI[split_noncore_tools_pimconverter.sha256sum] = "b15da644cade48f6294b146023f6167fcd934037aa3296ccbf856f5f59fe8cd0"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-pimconverter/opie-pimconverter_cvs.bb b/recipes-opie/opie-pimconverter/opie-pimconverter_cvs.bb
new file mode 100644
index 0000000..c730aa3
--- /dev/null
+++ b/recipes-opie/opie-pimconverter/opie-pimconverter_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/pimconverter \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-powerchord/opie-powerchord.inc b/recipes-opie/opie-powerchord/opie-powerchord.inc
new file mode 100644
index 0000000..82837f8
--- /dev/null
+++ b/recipes-opie/opie-powerchord/opie-powerchord.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Guitar Chord generator application"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "powerchord"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/powerchord apps/Applications/powerchord.desktop pics/powerchord share/powerchord
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/${APPNAME}/
+ install -m 0644 ${WORKDIR}/share/${APPNAME}/*.raw ${D}${palmtopdir}/share/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-powerchord/opie-powerchord_1.2.5.bb b/recipes-opie/opie-powerchord/opie-powerchord_1.2.5.bb
new file mode 100644
index 0000000..79980ae
--- /dev/null
+++ b/recipes-opie/opie-powerchord/opie-powerchord_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_multimedia_powerchord.tar.bz2;name=split_noncore_multimedia_powerchord \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_multimedia_powerchord.md5sum] = "f17012247c91650196c9cc4d371c3efd"
+SRC_URI[split_noncore_multimedia_powerchord.sha256sum] = "2f55170a5ef800c838bd9ea9c06efe14520710a1cb0e400189396951eb7c52a2"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-powerchord/opie-powerchord_cvs.bb b/recipes-opie/opie-powerchord/opie-powerchord_cvs.bb
new file mode 100644
index 0000000..dbf5679
--- /dev/null
+++ b/recipes-opie/opie-powerchord/opie-powerchord_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/multimedia/powerchord \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet.inc b/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet.inc
new file mode 100644
index 0000000..cf83b28
--- /dev/null
+++ b/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet.inc
@@ -0,0 +1,23 @@
+DESCRIPTION = "Python Quicklaunch Applet"
+SECTION = "opie/applets"
+LICENSE = "GPL"
+APPNAME = "pyquicklaunch"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
diff --git a/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_1.2.5.bb b/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_1.2.5.bb
new file mode 100644
index 0000000..6fb5ccb
--- /dev/null
+++ b/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_pyquicklaunch.tar.bz2;name=split_noncore_applets_pyquicklaunch \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_applets_pyquicklaunch.md5sum] = "13fc17f3262bd39981ad0b4d072a668c"
+SRC_URI[split_noncore_applets_pyquicklaunch.sha256sum] = "249ad5904f6f3d5ea6cf628254f5bc0766e648895c85c79fa1be1d8497fa51e0"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_cvs.bb b/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_cvs.bb
new file mode 100644
index 0000000..26a51ae
--- /dev/null
+++ b/recipes-opie/opie-pyquicklaunchapplet/opie-pyquicklaunchapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/pyquicklaunch \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-qasteroids/opie-qasteroids.inc b/recipes-opie/opie-qasteroids/opie-qasteroids.inc
new file mode 100644
index 0000000..eea8d44
--- /dev/null
+++ b/recipes-opie/opie-qasteroids/opie-qasteroids.inc
@@ -0,0 +1,23 @@
+DESCRIPTION = "Game: shoot the asteroids"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qasteroids"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libqasteroids.so* bin/qasteroids apps/Games/qasteroids.desktop pics/qasteroids/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+ for dir in bits exhaust missile powerups rock2 rock3 shield ship
+ do
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/$dir/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/$dir/*.png ${D}${palmtopdir}/pics/${APPNAME}/$dir/
+ done
+}
+
diff --git a/recipes-opie/opie-qasteroids/opie-qasteroids_1.2.5.bb b/recipes-opie/opie-qasteroids/opie-qasteroids_1.2.5.bb
new file mode 100644
index 0000000..22659e1
--- /dev/null
+++ b/recipes-opie/opie-qasteroids/opie-qasteroids_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_qasteroids.tar.bz2;name=split_noncore_games_qasteroids \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_qasteroids.md5sum] = "73055b65ec001106ba100e4448ce6947"
+SRC_URI[split_noncore_games_qasteroids.sha256sum] = "16bff3cda77979655e71834574e9c44523f62e8bb2e5670a67e571d6c9145241"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-qasteroids/opie-qasteroids_cvs.bb b/recipes-opie/opie-qasteroids/opie-qasteroids_cvs.bb
new file mode 100644
index 0000000..fcb209e
--- /dev/null
+++ b/recipes-opie/opie-qasteroids/opie-qasteroids_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/qasteroids \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-qcop/files/unbreak-logging.patch b/recipes-opie/opie-qcop/files/unbreak-logging.patch
new file mode 100644
index 0000000..d2b5228
--- /dev/null
+++ b/recipes-opie/opie-qcop/files/unbreak-logging.patch
@@ -0,0 +1,16 @@
+Index: opie/core/apps/qcop/qcopimpl.cpp
+===================================================================
+RCS file: /cvs/opie/core/apps/qcop/qcopimpl.cpp,v
+retrieving revision 1.2
+diff -u -r1.2 qcopimpl.cpp
+--- qcop/qcopimpl.cpp 2 Mar 2005 19:23:54 -0000 1.2
++++ qcop/qcopimpl.cpp 3 May 2007 03:09:36 -0000
+@@ -46,7 +46,7 @@
+
+ int doqcopimpl (int argc, char *argv[])
+ {
+- qInstallMsgHandler( disableqdebug );
++ //qInstallMsgHandler( disableqdebug );
+
+ if ( argc > 1 ) {
+ QString opt = argv[1];
diff --git a/recipes-opie/opie-qcop/opie-qcop.inc b/recipes-opie/opie-qcop/opie-qcop.inc
new file mode 100644
index 0000000..b9b0309
--- /dev/null
+++ b/recipes-opie/opie-qcop/opie-qcop.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Opie QCOP IPC Client"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+S = "${WORKDIR}/qcop"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/qcop ${D}${bindir}/qcop
+}
diff --git a/recipes-opie/opie-qcop/opie-qcop_1.2.5.bb b/recipes-opie/opie-qcop/opie-qcop_1.2.5.bb
new file mode 100644
index 0000000..c499d7c
--- /dev/null
+++ b/recipes-opie/opie-qcop/opie-qcop_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_apps_qcop.tar.bz2;name=split_core_apps_qcop \
+ file://unbreak-logging.patch"
+SRC_URI[split_core_apps_qcop.md5sum] = "9afc33ac0e5205de5008bf13b22117b2"
+SRC_URI[split_core_apps_qcop.sha256sum] = "59cf36bb4c192a36855819771eb3d986588b4c786f799b232b01bc33c0377516"
diff --git a/recipes-opie/opie-qcop/opie-qcop_cvs.bb b/recipes-opie/opie-qcop/opie-qcop_cvs.bb
new file mode 100644
index 0000000..61abdb0
--- /dev/null
+++ b/recipes-opie/opie-qcop/opie-qcop_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r3"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/apps/qcop \
+ file://unbreak-logging.patch"
diff --git a/recipes-opie/opie-qss/opie-qss.inc b/recipes-opie/opie-qss/opie-qss.inc
new file mode 100644
index 0000000..1e7ea3a
--- /dev/null
+++ b/recipes-opie/opie-qss/opie-qss.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Opie Sound Sever Daemon"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+S = "${WORKDIR}/qss"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/qss ${D}${bindir}/qss
+}
diff --git a/recipes-opie/opie-qss/opie-qss_1.2.5.bb b/recipes-opie/opie-qss/opie-qss_1.2.5.bb
new file mode 100644
index 0000000..ea0a426
--- /dev/null
+++ b/recipes-opie/opie-qss/opie-qss_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_apps_qss.tar.bz2;name=split_core_apps_qss"
+SRC_URI[split_core_apps_qss.md5sum] = "093627fc686e1e82c63f4a871d7be1d6"
+SRC_URI[split_core_apps_qss.sha256sum] = "243ad89cbeff81f414d7286199c2e43020ce23cc92ed2b1ab16a2e60783f0f7b"
diff --git a/recipes-opie/opie-qss/opie-qss_cvs.bb b/recipes-opie/opie-qss/opie-qss_cvs.bb
new file mode 100644
index 0000000..ae3eb3a
--- /dev/null
+++ b/recipes-opie/opie-qss/opie-qss_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/apps/qss"
diff --git a/recipes-opie/opie-quicklauncher/opie-quicklauncher.inc b/recipes-opie/opie-quicklauncher/opie-quicklauncher.inc
new file mode 100644
index 0000000..e205728
--- /dev/null
+++ b/recipes-opie/opie-quicklauncher/opie-quicklauncher.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "The Opie Quick Launcher Loader"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+S = "${WORKDIR}/quicklauncher"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 quicklauncher ${D}${bindir}/
+}
diff --git a/recipes-opie/opie-quicklauncher/opie-quicklauncher_1.2.5.bb b/recipes-opie/opie-quicklauncher/opie-quicklauncher_1.2.5.bb
new file mode 100644
index 0000000..35c2b13
--- /dev/null
+++ b/recipes-opie/opie-quicklauncher/opie-quicklauncher_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_tools_quicklauncher.tar.bz2;name=split_core_tools_quicklauncher"
+SRC_URI[split_core_tools_quicklauncher.md5sum] = "8f8916d23bb78cd83d2b294d33e6b115"
+SRC_URI[split_core_tools_quicklauncher.sha256sum] = "1bc74a2967b47f3c65bbf71bd854ed7e8a9b84a9073aeca1e1f9aa3d5f275cb4"
diff --git a/recipes-opie/opie-quicklauncher/opie-quicklauncher_cvs.bb b/recipes-opie/opie-quicklauncher/opie-quicklauncher_cvs.bb
new file mode 100644
index 0000000..c0e4145
--- /dev/null
+++ b/recipes-opie/opie-quicklauncher/opie-quicklauncher_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/tools/quicklauncher"
diff --git a/recipes-opie/opie-rdesktop/opie-rdesktop.inc b/recipes-opie/opie-rdesktop/opie-rdesktop.inc
new file mode 100644
index 0000000..547907a
--- /dev/null
+++ b/recipes-opie/opie-rdesktop/opie-rdesktop.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Remote Desktop Protocol (RDP) Client"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "openssl"
+I18N_FILES = "ordesktop.ts"
+APPNAME = "ordesktop"
+APPTYPE = "binary"
+
+
+S = "${WORKDIR}/opierdesktop"
+
+inherit opie
+
+# FILES bin/ordesktop pics/opierdesktop apps/Applications/opierdesktop.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/opierdesktop/
+ install -m 0644 ${WORKDIR}/pics/opierdesktop/*.png ${D}${palmtopdir}/pics/opierdesktop/
+}
diff --git a/recipes-opie/opie-rdesktop/opie-rdesktop_1.2.5.bb b/recipes-opie/opie-rdesktop/opie-rdesktop_1.2.5.bb
new file mode 100644
index 0000000..6f96cbe
--- /dev/null
+++ b/recipes-opie/opie-rdesktop/opie-rdesktop_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opierdesktop.tar.bz2;name=split_noncore_net_opierdesktop \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_net_opierdesktop.md5sum] = "62cdf63ca0c53f2790313c62b48e8c83"
+SRC_URI[split_noncore_net_opierdesktop.sha256sum] = "15ea40c6ff7e074debca90dd71a307b427e8b80beae2cb95ae6321da3f09afa5"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-rdesktop/opie-rdesktop_cvs.bb b/recipes-opie/opie-rdesktop/opie-rdesktop_cvs.bb
new file mode 100644
index 0000000..8777f30
--- /dev/null
+++ b/recipes-opie/opie-rdesktop/opie-rdesktop_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opierdesktop \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-reader/files/qt4.patch b/recipes-opie/opie-reader/files/qt4.patch
new file mode 100644
index 0000000..f19000f
--- /dev/null
+++ b/recipes-opie/opie-reader/files/qt4.patch
@@ -0,0 +1,2572 @@
+diff --git a/Aportis.cpp b/Aportis.cpp
+index 37dcc99..03c26ea 100644
+--- a/Aportis.cpp
++++ b/Aportis.cpp
+@@ -443,8 +443,7 @@ unsuspend();
+ gotorecordnumber(tgtrec);
+ UInt8* imgbuffer = new UInt8[reclen];
+ fread(imgbuffer, 1, reclen, fin);
+- QByteArray arr;
+- arr.assign((const char*)imgbuffer, reclen);
++ QByteArray arr((const char*)imgbuffer, reclen);
+
+ QImage* qimage = new QImage(arr);
+ fseek(fin, cur, SEEK_SET);
+diff --git a/Bkmks.cpp b/Bkmks.cpp
+index 45aa045..c67db9e 100644
+--- a/Bkmks.cpp
++++ b/Bkmks.cpp
+@@ -32,8 +32,7 @@ Bkmk::Bkmk(const Bkmk& rhs) :
+ m_annolen(0),
+ m_position(0)
+ {
+- init(rhs.name(), sizeof(tchar)*(ustrlen(rhs.name())+1), rhs.anno(),
+- sizeof(tchar)*(ustrlen(rhs.anno())+1), rhs.value());
++ *this = rhs;
+ }
+
+ Bkmk::Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p) : m_position(_p)
+diff --git a/BuffDoc.cpp b/BuffDoc.cpp
+index 355d14d..170ed43 100644
+--- a/BuffDoc.cpp
++++ b/BuffDoc.cpp
+@@ -23,6 +23,8 @@
+ #include "Reb.h"
+ #endif
+
++#include "uqtcommon.h"
++
+
+ linkType BuffDoc::hyperlink(unsigned int n, unsigned int noff, QString& wrd, QString& nm)
+ {
+@@ -674,35 +676,19 @@ int BuffDoc::openfile(QWidget* _parent, const char *src)
+ }
+ // //qDebug("Doing final open:%x:%x",exp,filt);
+ #else
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString codecpath(getenv("OPIEDIR"));
+-#else
+- QString codecpath(getenv("QTDIR"));
+-#endif
+- codecpath += "/plugins/reader/codecs";
+-#else
+- QString codecpath(getenv("READERDIR"));
+- codecpath += "/codecs";
+-#endif
+- QDir d(codecpath, "*.so");
++ QDir d(uqt_codecspath(), "*.so");
+
+ if (d.exists())
+ {
+
+- const QFileInfoList *list = d.entryInfoList();
+- QFileInfoListIterator it( *list ); // create list iterator
+- QFileInfo *fi; // pointer for traversing
+-
++ QFileInfoList list = d.entryInfoList();
+ int ret = -1;
+- while ( ret != 0 && (fi=it.current()) )
+- { // for each file...
++ for(QFileInfoListIterator it=list.begin();ret && it!=list.end();++it) {
+ if (exp != NULL) delete exp;
+- qDebug("Trying %s", (const char*)fi->fileName());
+- exp = new ebookcodec(fi->fileName());
++ qDebug("Trying %s", (const char*)it->fileName());
++ exp = new ebookcodec(it->fileName());
+ ret = exp->openfile(src);
+- ++it;
+- }
++ }
+ qDebug("Buffdoc:Finished opening");
+ if (ret != 0)
+ {
+diff --git a/ButtonPrefs.cpp b/ButtonPrefs.cpp
+index 762de55..2c4cad7 100644
+--- a/ButtonPrefs.cpp
++++ b/ButtonPrefs.cpp
+@@ -17,7 +17,7 @@
+ #include <qtooltip.h>
+ #include <qwhatsthis.h>
+ #include <qbuttongroup.h>
+-#include <qmultilineedit.h>
++#include <Qt3Support/Q3MultiLineEdit>
+ #ifdef USECOMBO
+ #include <qcombobox.h>
+ #else
+@@ -26,12 +26,14 @@
+ #include <qfontdatabase.h>
+
+ #include <qlistview.h>
++#include <Qt3Support/Q3ListViewItem>
++#include <QtGui/QKeyEvent>
+
+-class MyQListViewItem : public QListViewItem
++class MyQListViewItem : public Q3ListViewItem
+ {
+ orKey o;
+ public:
+- MyQListViewItem(const orKey& _o, QListView* p, const QString& c1, const QString& c2, const QString& c3) : QListViewItem(p, c1, c2, c3), o(_o) { }
++ MyQListViewItem(const orKey& _o, Q3ListView* p, const QString& c1, const QString& c2, const QString& c3) : Q3ListViewItem(p, c1, c2, c3), o(_o) { }
+ orKey getKey() { return o; }
+ };
+
+@@ -43,7 +45,7 @@ void CButtonPrefs::mapkey(Qt::ButtonState st, int _key)
+ void CButtonPrefs::mapkey(Qt::ButtonState st, int _key, int act)
+ {
+ orKey key(st, _key, ((act == cesScrollMore) || (act == cesScrollLess)));
+- QMap<orKey,QListViewItem*>::Iterator iter = listmap.find(key);
++ QMap<orKey,Q3ListViewItem*>::Iterator iter = listmap.find(key);
+ if (iter != listmap.end())
+ {
+ lb->takeItem(iter.data());
+@@ -112,7 +114,7 @@ CButtonPrefs::CButtonPrefs( QMap<orKey, int>* _kmap, QWidget* parent, const cha
+ {
+ QVBoxLayout* vo = new QVBoxLayout(this);
+ QHBoxLayout* lo = new QHBoxLayout();
+- setFocusPolicy(QWidget::StrongFocus);
++ setFocusPolicy(Qt::StrongFocus);
+ #ifdef USECOMBO
+ action = new QComboBox( this );
+ #else
+@@ -123,17 +125,17 @@ CButtonPrefs::CButtonPrefs( QMap<orKey, int>* _kmap, QWidget* parent, const cha
+
+
+
+- QMultiLineEdit* TextLabel1 = new QMultiLineEdit( this );
++ Q3MultiLineEdit* TextLabel1 = new Q3MultiLineEdit( this );
+ TextLabel1->setText( tr( "Press the key(s) you want assigned to the highlighted function.\n\nPress the delete button to unmap the key.\n\nUse the \"Close\" button (not the [x]) to finish." ) );
+ TextLabel1->setReadOnly(true);
+- TextLabel1->setWordWrap(QMultiLineEdit::WidgetWidth);
++ TextLabel1->setWordWrap(Q3MultiLineEdit::WidgetWidth);
+
+ // lo->addWidget(TextLabel, 0, Qt::AlignTop);
+ // lo->addWidget(action, 0, Qt::AlignTop);
+ lo->addWidget(TextLabel1);
+ lo->addWidget(action);
+ vo->addLayout(lo);
+- lb = new QListView(this);
++ lb = new Q3ListView(this);
+ lb->addColumn( tr( "Key" ) );
+ lb->addColumn( tr( "Function" ) );
+ lb->addColumn( tr( "Scroll" ) );
+diff --git a/ButtonPrefs.h b/ButtonPrefs.h
+index 9af04e1..f09ad02 100644
+--- a/ButtonPrefs.h
++++ b/ButtonPrefs.h
+@@ -11,11 +11,13 @@
+
+ #include <qvariant.h>
+ #include <qwidget.h>
+-#include <qtabdialog.h>
++#include <Qt3Support/Q3TabDialog>
+ #include <qtabwidget.h>
+ #include <qspinbox.h>
+ #include <qcheckbox.h>
+ #include <qlineedit.h>
++#include <qnamespace.h>
++using namespace Qt;
+
+ #define USECOMBO
+
+@@ -33,18 +35,18 @@ class QGridLayout;
+ //class QCheckBox;
+ class QLabel;
+ //class QSpinBox;
+-class QListViewItem;
++class Q3ListViewItem;
+
+-class QListView;
+-class QListViewItem;
++class Q3ListView;
++class Q3ListViewItem;
+
+ class CButtonPrefs : public QWidget
+ {
+ Q_OBJECT
+
+ QMap<orKey, int> *kmap;
+- QMap<orKey, QListViewItem*> listmap;
+- QListView* lb;
++ QMap<orKey, Q3ListViewItem*> listmap;
++ Q3ListView* lb;
+ void keyPressEvent(QKeyEvent* e);
+ #ifdef USECOMBO
+ void populate(QComboBox*);
+diff --git a/CAnnoEdit.cpp b/CAnnoEdit.cpp
+index 35821ed..6ee1321 100644
+--- a/CAnnoEdit.cpp
++++ b/CAnnoEdit.cpp
+@@ -83,8 +83,8 @@ CAnnoEdit::CAnnoEdit(QWidget *parent, const char *name, WFlags f) :
+ {
+ QVBoxLayout* grid = new QVBoxLayout(this);
+ m_name = new QLineEdit(this, "Name");
+- m_anno = new QMultiLineEdit(this, "Annotation");
+- m_anno->setWordWrap(QMultiLineEdit::WidgetWidth);
++ m_anno = new Q3MultiLineEdit(this, "Annotation");
++ m_anno->setWordWrap(Q3MultiLineEdit::WidgetWidth);
+ QPushButton* exitButton = new QPushButton("Okay", this);
+ connect(exitButton, SIGNAL( clicked() ), this, SLOT( slotOkay() ) );
+ QPushButton* cancelButton = new QPushButton("Cancel", this);
+diff --git a/CAnnoEdit.h b/CAnnoEdit.h
+index 78d3eeb..c74c560 100644
+--- a/CAnnoEdit.h
++++ b/CAnnoEdit.h
+@@ -4,15 +4,17 @@
+ #include <qlayout.h>
+ #include <qpushbutton.h>
+ #include <qlineedit.h>
+-#include <qmultilineedit.h>
++#include <Qt3Support/Q3MultiLineEdit>
+ #include <qcombobox.h>
++#include <qnamespace.h>
++using namespace Qt;
+
+ class CAnnoEdit : public QWidget
+ {
+ Q_OBJECT
+
+ QLineEdit* m_name;
+- QMultiLineEdit* m_anno;
++ Q3MultiLineEdit* m_anno;
+ size_t m_posn, m_posn2;
+ QComboBox* colorbox;
+ public:
+diff --git a/CFilter.cpp b/CFilter.cpp
+index a4ea60a..84fa451 100644
+--- a/CFilter.cpp
++++ b/CFilter.cpp
+@@ -9,6 +9,7 @@
+ #include "CDrawBuffer.h"
+ #include "CFilter.h"
+ #include "hrule.h"
++#include "uqtcommon.h"
+
+ #include <qregexp.h>
+ #include <qimage.h>
+@@ -665,17 +666,8 @@ class ErrorFilter : public CFilter
+ #ifndef __STATIC
+ ExternFilter::ExternFilter(const QString& nm, const QString& optional) : filt(NULL), handle(NULL)
+ {
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString filterpath(getenv("OPIEDIR"));
+-#else
+- QString filterpath(getenv("QTDIR"));
+-#endif
+- filterpath += "/plugins/reader/filters/lib";
+-#else
+- QString filterpath(getenv("READERDIR"));
+- filterpath += "/filters/lib";
+-#endif
++ QString filterpath = uqt_filterspath();
++ filterpath += "lib";
+ filterpath += nm;
+ filterpath += ".so";
+ if (QFile::exists(filterpath))
+diff --git a/CHM.cpp b/CHM.cpp
+index ace5abc..3c325bb 100644
+--- a/CHM.cpp
++++ b/CHM.cpp
+@@ -335,7 +335,7 @@ int CHM::getch() {
+ #else
+ QChar letter = chmBuffer[bufpos++];
+ #endif
+- return (int)(char)letter;
++ return letter.unicode();
+ }
+
+ void CHM::getch(tchar& ch, CStyle& sty)
+diff --git a/CloseDialog.cpp b/CloseDialog.cpp
+index 741fa67..62ae906 100644
+--- a/CloseDialog.cpp
++++ b/CloseDialog.cpp
+@@ -5,7 +5,7 @@ CCloseDialog::CCloseDialog(const QString& fname, bool fs, QWidget* parent, const
+ {
+ setCaption(tr("Tidy-up"));
+ QVBoxLayout *tmp = new QVBoxLayout(this);
+- QVButtonGroup* vb = new QVButtonGroup(tr("Delete"), this);
++ Q3VButtonGroup* vb = new Q3VButtonGroup(tr("Delete"), this);
+ tmp->addWidget(vb);
+ QString filestring = tr("Delete") + " " + fname;
+ file = new QCheckBox(filestring, vb);
+diff --git a/CloseDialog.h b/CloseDialog.h
+index 54aaf1c..84609f5 100644
+--- a/CloseDialog.h
++++ b/CloseDialog.h
+@@ -11,14 +11,17 @@
+
+ #include <qvariant.h>
+ #include <qwidget.h>
+-#include <qtabdialog.h>
++#include <Qt3Support/Q3TabDialog>
+ #include <qtabwidget.h>
+ #include <qspinbox.h>
+ #include <qcheckbox.h>
+ #include <qcombobox.h>
+ #include <qlineedit.h>
+ //#include <qpe/menubutton.h>
+-#include <qvbuttongroup.h>
++#include <Qt3Support/Q3VButtonGroup>
++#include <QtGui/QKeyEvent>
++#include <qnamespace.h>
++using namespace Qt;
+
+ class QVBoxLayout;
+ class QHBoxLayout;
+diff --git a/FontControl.cpp b/FontControl.cpp
+index 08b8c52..0be54ba 100644
+--- a/FontControl.cpp
++++ b/FontControl.cpp
+@@ -1,4 +1,5 @@
+ #include <qfontdatabase.h>
++#include <Qt3Support/Q3ValueList>
+
+ #include "FontControl.h"
+
+@@ -33,9 +34,9 @@ int FontControl::gzoom()
+
+ bool FontControl::ChangeFont(QString& n, int tgt)
+ {
+- QValueList<int>::Iterator it;
++ Q3ValueList<int>::Iterator it;
+ QFontDatabase fdb;
+- QValueList<int> sizes = fdb.pointSizes(n);
++ Q3ValueList<int> sizes = fdb.pointSizes(n);
+ if (sizes.count() == 0)
+ {
+ return false;
+@@ -65,3 +66,25 @@ bool FontControl::ChangeFont(QString& n, int tgt)
+ }
+ return true;
+ }
++
++void FontControl::setCourier() {
++ setCourier(m_fontname);
++}
++void FontControl::setCourier(const QString fn) {
++ QFontDatabase fdb;
++ QStringList fl = fdb.families();
++ setCourier(fn,fl);
++}
++void FontControl::setCourier(const QString fn,const QStringList fl) {
++ QString fp;
++ int sp = fn.indexOf(' ');
++ if(sp>=0) fp = fn.left(sp);
++ for(QStringList::const_iterator i=fl.begin();i!=fl.end();++i) {
++ if(
++ ( i->startsWith(fn,Qt::CaseInsensitive)
++ || ( (!fp.isEmpty()) && i->startsWith(fp,Qt::CaseInsensitive) ) )
++ && ( i->endsWith("mono",Qt::CaseInsensitive)
++ || i->endsWith("Fixed") ) )
++ hasCourier(true,*i);
++ }
++}
+diff --git a/FontControl.h b/FontControl.h
+index 563e1a8..c7a54ab 100644
+--- a/FontControl.h
++++ b/FontControl.h
+@@ -2,6 +2,7 @@
+ #define __FONTCONTROL_H
+
+ #include <qfontmetrics.h>
++#include <QFontDatabase>
+ #include "StyleConsts.h"
+
+ class FontControl
+@@ -32,6 +33,7 @@ class FontControl
+ m_fontsizes(NULL), m_hasCourier(false), m_leading(0), m_extraspace(0), m_fixgraphics(true)
+ {
+ ChangeFont(n, size);
++ setCourier();
+ }
+ ~FontControl()
+ {
+@@ -167,6 +169,10 @@ class FontControl
+ {
+ return m_extraspace;
+ }
++
++ void setCourier();
++ void setCourier(const QString fn);
++ void setCourier(const QString fn,const QStringList fl);
+ };
+
+ #endif
+diff --git a/GraphicWin.h b/GraphicWin.h
+index 70d5f7e..a6c556a 100644
+--- a/GraphicWin.h
++++ b/GraphicWin.h
+@@ -1,14 +1,16 @@
+ #ifndef __GRAPHICWIN_H
+ #define __GRAPHICWIN_H
+
+-#include <qscrollview.h>
++#include <Qt3Support/Q3ScrollView>
+ #include <qpixmap.h>
+ #include <qimage.h>
+ #include <qpushbutton.h>
+ #include <qlayout.h>
+ #include <qwmatrix.h>
++#include <qnamespace.h>
++using namespace Qt;
+
+-class GraphicScroll : public QScrollView
++class GraphicScroll : public Q3ScrollView
+ {
+ Q_OBJECT
+ QWidget* m_picture;
+@@ -19,7 +21,7 @@ class GraphicScroll : public QScrollView
+ }
+ public:
+ GraphicScroll( QWidget *parent=0, const char *name=0, WFlags f = 0)
+- : QScrollView(parent, name, f)
++ : Q3ScrollView(parent, name, f)
+ {
+ m_picture = new QWidget(viewport());
+ addChild(m_picture);
+diff --git a/Prefs.cpp b/Prefs.cpp
+index 6c4d45b..d20dc00 100644
+--- a/Prefs.cpp
++++ b/Prefs.cpp
+@@ -7,6 +7,7 @@
+ ** WARNING! All changes made in this file will be lost!
+ ****************************************************************************/
+ #include "Prefs.h"
++#include "uqtcommon.h"
+
+ #include <stdlib.h>
+
+@@ -27,6 +28,7 @@
+ #include <qpe/menubutton.h>
+ #endif
+ #include <qfontdatabase.h>
++#include <Qt3Support/Q3ButtonGroup>
+
+ #ifdef USECOMBO
+ void populate_colours(QComboBox *mb)
+@@ -58,7 +60,7 @@ CLayoutPrefs::CLayoutPrefs( QWidget* parent, const char* name, WFlags fl )
+ : QWidget( parent, name, fl )
+ {
+ QHBoxLayout* hb = new QHBoxLayout(this);
+- QButtonGroup* bg = new QButtonGroup(2, Qt::Horizontal, "Text", this);
++ Q3ButtonGroup* bg = new Q3ButtonGroup(2, Qt::Horizontal, "Text", this);
+ hb->addWidget(bg);
+
+ StripCR = new QCheckBox( bg );
+@@ -592,7 +594,7 @@ CMiscPrefs::CMiscPrefs( QWidget* parent, const char* name, WFlags fl )
+ vl->setMargin( 0 );
+ hl->setMargin( 0 );
+
+- QGroupBox* gb = new QGroupBox(1, Qt::Horizontal, "Select Action", this);
++ Q3GroupBox* gb = new Q3GroupBox(1, Qt::Horizontal, "Select Action", this);
+ hl->addWidget( gb );
+
+ annotation = new QCheckBox( gb );
+@@ -607,7 +609,7 @@ CMiscPrefs::CMiscPrefs( QWidget* parent, const char* name, WFlags fl )
+ boutput = new QCheckBox( gb );
+ boutput->setText( tr( "Output" ) );
+
+- QButtonGroup* bg = new QButtonGroup(1, Qt::Horizontal, "Plucker", this);
++ Q3ButtonGroup* bg = new Q3ButtonGroup(1, Qt::Horizontal, "Plucker", this);
+ hl->addWidget( bg );
+
+ Depluck = new QCheckBox( bg );
+@@ -618,7 +620,7 @@ CMiscPrefs::CMiscPrefs( QWidget* parent, const char* name, WFlags fl )
+
+ Continuous = new QCheckBox( bg );
+ Continuous->setText( tr( "Continuous" ) );
+- bg = new QButtonGroup(2, Qt::Horizontal, "Background", this);
++ bg = new Q3ButtonGroup(2, Qt::Horizontal, "Background", this);
+ vl->addWidget( bg );
+
+ // QLabel* TextLabel = new QLabel( bg );
+@@ -662,7 +664,7 @@ CScrollPrefs::CScrollPrefs( QWidget* parent, const char* name, WFlags fl )
+
+ hl->setMargin( 0 );
+
+- QButtonGroup* bg = new QButtonGroup(2, Qt::Horizontal, "Scroll", this);
++ Q3ButtonGroup* bg = new Q3ButtonGroup(2, Qt::Horizontal, "Scroll", this);
+ hl->addWidget( bg );
+
+ // scrollinplace = new QCheckBox( bg );
+@@ -707,18 +709,8 @@ CScrollPrefs::CScrollPrefs( QWidget* parent, const char* name, WFlags fl )
+ #else
+ outcodec = new MenuButton( this);
+ #endif
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString codecpath(getenv("OPIEDIR"));
+-#else
+- QString codecpath(getenv("QTDIR"));
+-#endif
+- codecpath += "/plugins/reader/outcodecs";
+-#else
+- QString codecpath(getenv("READERDIR"));
+- codecpath += "/outcodecs";
+-#endif
+- QDir ocd(codecpath, "lib*.so");
++ QString codecpath = uqt_outcodecspath();
++ QDir ocd(uqt_outcodecspath(), "lib*.so");
+ for (int i = 0; i < ocd.count(); ++i)
+ {
+ QString tmp(ocd[i]);
+@@ -772,7 +764,7 @@ CInterPrefs::CInterPrefs( QWidget* parent, const char* name, WFlags fl )
+ {
+ QHBoxLayout* hb = new QHBoxLayout(this);
+
+- QGroupBox* gb = new QGroupBox(1, Qt::Horizontal, tr("International"), this);
++ Q3GroupBox* gb = new Q3GroupBox(1, Qt::Horizontal, tr("International"), this);
+
+ hb->addWidget(gb);
+
+@@ -784,7 +776,7 @@ CInterPrefs::CInterPrefs( QWidget* parent, const char* name, WFlags fl )
+ TextLabel = new QLabel( gb );
+ TextLabel->setText( tr( "Ideogram Width" ) );
+ ideogramwidth = new QSpinBox( gb );
+- ideogramwidth->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
++ // ideogramwidth->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+ ideogramwidth->setRange(1,200);
+
+ propfontchange = new QCheckBox( gb );
+@@ -809,7 +801,7 @@ CInterPrefs::CInterPrefs( QWidget* parent, const char* name, WFlags fl )
+
+ QVBoxLayout* vb = new QVBoxLayout;
+
+- gb = new QGroupBox(1, Qt::Horizontal, "Dictionary", this);
++ gb = new Q3GroupBox(1, Qt::Horizontal, "Dictionary", this);
+
+ TextLabel = new QLabel( gb );
+ TextLabel->setText( tr( "Application" ) );
+diff --git a/Prefs.h b/Prefs.h
+index 103484e..a499506 100644
+--- a/Prefs.h
++++ b/Prefs.h
+@@ -11,11 +11,14 @@
+
+ #include <qvariant.h>
+ #include <qwidget.h>
+-#include <qtabdialog.h>
++#include <Qt3Support/Q3TabDialog>
+ #include <qtabwidget.h>
+ #include <qspinbox.h>
+ #include <qcheckbox.h>
+ #include <qlineedit.h>
++#include <qnamespace.h>
++using namespace Qt;
++#include <QtGui/QKeyEvent>
+
+ #define USECOMBO
+
+diff --git a/QFloatBar.h b/QFloatBar.h
+index cc98233..0144fce 100644
+--- a/QFloatBar.h
++++ b/QFloatBar.h
+@@ -1,10 +1,11 @@
+ #ifndef __QFLOATBAR_H
+ #define __QFLOATBAR_H
+
+-#include <qtoolbar.h>
+-#include <qmainwindow.h>
++#include <Qt3Support/Q3ToolBar>
++#include <Qt3Support/Q3MainWindow>
++#include <qnamespace.h>
+
+-class QFloatBar : public QToolBar
++class QFloatBar : public Q3ToolBar
+ {
+ Q_OBJECT
+ virtual void hideEvent(QHideEvent* e)
+@@ -12,7 +13,7 @@ class QFloatBar : public QToolBar
+ /*if (e->spontaneous())*/ emit OnHide();
+ }
+ public:
+- QFloatBar(char* t, QMainWindow* mw, QMainWindow::ToolBarDock td, bool f) : QToolBar(t, mw, td, f) {}
++ QFloatBar(char* t, Q3MainWindow* mw, Qt::ToolBarDock td, bool f) : Q3ToolBar(t, mw, td, f) {}
+ signals:
+ void OnHide();
+ };
+diff --git a/QTReader.cpp b/QTReader.cpp
+index 75da8ac..2c698ba 100644
+--- a/QTReader.cpp
++++ b/QTReader.cpp
+@@ -1999,6 +1999,7 @@ void QTReader::drawFonts()
+ }
+ }
+ emitRedraw();
++ update();
+ }
+ /*
+ else
+@@ -2221,7 +2222,7 @@ void QTReader::init()
+ setBackgroundColor( m_bg );
+ buffdoc.setfilter(getfilter());
+ ChangeFont(m_textsize);
+- setFocusPolicy(QWidget::StrongFocus);
++ setFocusPolicy(Qt::StrongFocus);
+ timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), this, SLOT(doscroll()));
+ #ifdef USETIMER
+@@ -3096,7 +3097,7 @@ void QTReader::blitRot(int dx, int dy, int sw, int sh, CDrawBuffer* txt)
+
+ QPixmap pm(sw, sh);
+
+- QPainter pd(&pm, this);
++ QPainter pd(&pm); // , this);
+ if (m_bgpm.isNull())
+ {
+ pd.eraseRect(pm.rect());
+@@ -3136,7 +3137,7 @@ void QTReader::blitRot(int dx, int dy, int sw, int sh, CDrawBuffer* txt)
+ /*
+ p.drawPixmap(QPoint(dx, dy), rp);
+ */
+- bitBlt(this, dx, dy, &rp, 0, 0, -1, -1, CopyROP);
++ bitBlt(this, dx, dy, &rp, 0, 0, -1, -1, QPainter::CompositionMode_Source);
+ }
+
+ QString QTReader::about()
+diff --git a/QTReader.h b/QTReader.h
+index 9daa07a..6afa3e7 100644
+--- a/QTReader.h
++++ b/QTReader.h
+@@ -8,6 +8,9 @@
+ #include "BuffDoc.h"
+ #include "FontControl.h"
+
++#include <qnamespace.h>
++using namespace Qt;
++
+ //#include <qtimer.h>
+
+ class CDrawBuffer;
+diff --git a/QTReaderApp.cpp b/QTReaderApp.cpp
+index b985094..529ec9e 100644
+--- a/QTReaderApp.cpp
++++ b/QTReaderApp.cpp
+@@ -20,7 +20,9 @@
+
+ #include <qregexp.h>
+ #include <qclipboard.h>
+-#include <qwidgetstack.h>
++#include <QStackedWidget>
++#include <Qt3Support/Q3Action>
++#include <qdesktopwidget.h>
+ #ifdef USEQPE
+ #include <qpe/qpemenubar.h>
+ #include <qpe/qpetoolbar.h>
+@@ -31,13 +33,12 @@
+ #include <qpe/menubutton.h>
+ #endif
+ #include <qcombobox.h>
+-#include <qpopupmenu.h>
++#include <Qt3Support/Q3PopupMenu>
+ #include <qaction.h>
+ #include <qapplication.h>
+ #include <qlineedit.h>
+ #include <qtoolbutton.h>
+ #include <qspinbox.h>
+-#include <qobjectlist.h>
+ #include <qstatusbar.h>
+ #ifdef USEQPE
+ #include <qpe/global.h>
+@@ -66,6 +67,7 @@
+ #include "FixedFont.h"
+ #include "URLDialog.h"
+ #include "util.h"
++#include "uqtcommon.h"
+ #include <qfontdatabase.h>
+
+ #ifdef USEQPE
+@@ -103,18 +105,10 @@ bool CheckVersion(int&, int&, char&, QWidget*);
+ #define USEMSGS
+ #define PICDIR "opie-reader/"
+ #else
+-//#define PICDIR "/home/tim/uqtreader/pics/"
+-QString picdir()
+-{
+- QString hd(getenv("READERDIR"));
+- return hd + "/pics";
+-}
+-#define PICDIR picdir()
++#define PICDIR uqt_picspath()
+ #endif
+ #endif
+
+-unsigned long QTReaderApp::m_uid = 0;
+-
+ void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); }
+
+ #ifdef USEQPE
+@@ -156,16 +150,9 @@ void QTReaderApp::listBkmkFiles()
+ d.setFilter( QDir::Files | QDir::NoSymLinks );
+ // d.setSorting( QDir::Size | QDir::Reversed );
+
+- const QFileInfoList *list = d.entryInfoList();
+- QFileInfoListIterator it( *list ); // create list iterator
+- QFileInfo *fi; // pointer for traversing
+- while ( (fi=it.current()) ) { // for each file...
+-
+- bkmkselector->insertItem(fi->fileName(), cnt++);
+-
+- //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
+- ++it; // goto next list element
+- }
++ QFileInfoList list = d.entryInfoList();
++ for(QFileInfoListIterator it=list.begin();it!=list.end();++it)
++ bkmkselector->insertItem(it->fileName(), cnt++);
+
+ #else /* USEQPE */
+ int cnt = 0;
+@@ -192,7 +179,7 @@ void QTReaderApp::listBkmkFiles()
+ //tjw menu->hide();
+
+
+- editorStack->raiseWidget( bkmkselector );
++ editorStack->setCurrentWidget( bkmkselector );
+ hidetoolbars();
+ m_nBkmkAction = cRmBkmkFile;
+ }
+@@ -207,6 +194,8 @@ void QTReaderApp::hidetoolbars()
+
+ #if defined(USEQPE)
+ menubar->hide();
++#else
++ mb->hide();
+ #endif
+
+ if (m_scrollbar != NULL) m_scrollbar->hide();
+@@ -233,7 +222,7 @@ void QTReaderApp::hidetoolbars()
+ }
+
+ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+- : QMainWindow( parent, name, f ), m_dontSave(false),
++ : Q3MainWindow( parent, name, f ), m_dontSave(false),
+ fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL), m_scrollbar(NULL), m_localscroll(2), m_hidebars(false), m_kmapchanged(false)
+ {
+ {
+@@ -337,41 +326,41 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ // QToolBar* markBar = new QToolBar("File", this);
+
+ #if defined(USEQPE)
+- menubar = new QToolBar("Menus", this, m_tbposition);
++ menubar = new Q3ToolBar("Menus", this, m_tbposition);
+ mb = new QPEMenuBar( menubar );
+ #else
+ mb = new QMenuBar( this );
+ #endif
+
+ #if defined(USEQPE)
+- QPopupMenu* tmp = new QPopupMenu(mb);
++ Q3PopupMenu* tmp = new Q3PopupMenu(mb);
+ mb->insertItem( geticon( "AppsIcon" ), tmp );
+ #else
+ QMenuBar* tmp = mb;
+ #endif
+
+- QPopupMenu *file = new QPopupMenu( mb );
++ Q3PopupMenu *file = new Q3PopupMenu( mb );
+ tmp->insertItem( tr( "File" ), file );
+
+- QPopupMenu *navigation = new QPopupMenu(mb);
++ Q3PopupMenu *navigation = new Q3PopupMenu(mb);
+ tmp->insertItem( tr( "Navigation" ), navigation );
+
+- QPopupMenu *view = new QPopupMenu( mb );
++ Q3PopupMenu *view = new Q3PopupMenu( mb );
+ tmp->insertItem( tr( "View" ), view );
+
+- QPopupMenu *marks = new QPopupMenu( this );
++ Q3PopupMenu *marks = new Q3PopupMenu( this );
+ tmp->insertItem( tr( "Marks" ), marks );
+
+- QPopupMenu *settings = new QPopupMenu( this );
++ Q3PopupMenu *settings = new Q3PopupMenu( this );
+ tmp->insertItem( tr( "Settings" ), settings );
+
+ // addToolBar(menubar, "Menus",QMainWindow::Top);
+ // addToolBar(fileBar, "Toolbar",QMainWindow::Top);
+
+- // QPopupMenu *edit = new QPopupMenu( this );
++ // Q3PopupMenu *edit = new Q3PopupMenu( this );
+
+ /*
+- QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 );
++ Q3Action *a = new Q3Action( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) );
+ a->addTo( bar );
+ a->addTo( file );
+@@ -379,34 +368,35 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ QWidget* widge = new QWidget(this);
+ setCentralWidget( widge );
+ QVBoxLayout* vlayout = new QVBoxLayout(widge);
++ vlayout->setMargin(0);
+ m_layout = new QBoxLayout(QBoxLayout::LeftToRight);
+ m_prog = new QLabel(widge);
+ vlayout->addLayout(m_layout, 1);
+ vlayout->addWidget(m_prog);
+
+- editorStack = new QWidgetStack( widge );
++ editorStack = new QStackedWidget( widge );
+ // setCentralWidget( editorStack );
+
+ searchVisible = FALSE;
+ regVisible = FALSE;
+ m_fontVisible = false;
+
+- m_buttonprefs = new CButtonPrefs(&kmap, this);
+- editorStack->addWidget(m_buttonprefs, get_unique_id());
++ m_buttonprefs = new CButtonPrefs(&kmap, editorStack);
++ editorStack->addWidget(m_buttonprefs);
+ connect( m_buttonprefs, SIGNAL( Closed() ), this, SLOT( infoClose() ) );
+
+
+ m_annoWin = new CAnnoEdit(editorStack);
+- editorStack->addWidget(m_annoWin, get_unique_id());
++ editorStack->addWidget(m_annoWin);
+ connect( m_annoWin, SIGNAL( finished(const QString&, const QString&) ), this, SLOT( addAnno(const QString&, const QString&) ) );
+ connect( m_annoWin, SIGNAL( cancelled() ), this, SLOT( infoClose() ) );
+
+ m_infoWin = new infowin(editorStack);
+- editorStack->addWidget(m_infoWin, get_unique_id());
++ editorStack->addWidget(m_infoWin);
+ connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) );
+
+ m_graphicwin = new GraphicWin(editorStack);
+- editorStack->addWidget(m_graphicwin, get_unique_id());
++ editorStack->addWidget(m_graphicwin);
+ connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) );
+
+ // bkmkselector = new QListBox(editorStack, "Bookmarks");
+@@ -414,7 +404,7 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) );
+ connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) );
+ connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) );
+- editorStack->addWidget( bkmkselector, get_unique_id() );
++ editorStack->addWidget( bkmkselector);
+
+ /*
+ importSelector = new FileSelector( "*", editorStack, "importselector", false );
+@@ -572,139 +562,139 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ connect( reader, SIGNAL( HandleKeyRequest(QKeyEvent*) ), this, SLOT( handlekey(QKeyEvent*) ) );
+ connect( reader, SIGNAL( SetScrollState(bool) ), this, SLOT( setScrollState(bool) ) );
+ connect( reader, SIGNAL(RefreshBitmap()), this, SLOT(setBackgroundBitmap()));
+- editorStack->addWidget( reader, get_unique_id() );
++ editorStack->addWidget( reader );
+
+- m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL);
++ m_preferences_action = new Q3Action( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL);
+ connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) );
+ m_preferences_action->addTo( settings );
+
+- m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL);
++ m_saveconfig_action = new Q3Action( tr( "Save Config" ), QString::null, 0, this, NULL);
+ connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) );
+ m_saveconfig_action->addTo( settings );
+
+- m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL);
++ m_loadconfig_action = new Q3Action( tr( "Load Config" ), QString::null, 0, this, NULL);
+ connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) );
+ m_loadconfig_action->addTo( settings );
+
+- m_tidyconfig_action = new QAction( tr( "Delete Config" ), QString::null, 0, this, NULL);
++ m_tidyconfig_action = new Q3Action( tr( "Delete Config" ), QString::null, 0, this, NULL);
+ connect( m_tidyconfig_action, SIGNAL( activated() ), this, SLOT( TidyConfig() ) );
+ m_tidyconfig_action->addTo( settings );
+
+ settings->insertSeparator();
+- m_toolbarprefs_action = new QAction( tr( "Toolbars" ), QString::null, 0, this, NULL);
++ m_toolbarprefs_action = new Q3Action( tr( "Toolbars" ), QString::null, 0, this, NULL);
+ connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) );
+ m_toolbarprefs_action->addTo( settings );
+
+- m_buttonprefs_action = new QAction( tr( "Buttons" ), QString::null, 0, this, NULL);
++ m_buttonprefs_action = new Q3Action( tr( "Buttons" ), QString::null, 0, this, NULL);
+ connect( m_buttonprefs_action, SIGNAL( activated() ), this, SLOT( showbuttonprefs() ) );
+ m_buttonprefs_action->addTo( settings );
+
+- m_loadtheme_action = new QAction( tr( "Load Theme" ), QString::null, 0, this, NULL);
++ m_loadtheme_action = new Q3Action( tr( "Load Theme" ), QString::null, 0, this, NULL);
+ connect( m_loadtheme_action, SIGNAL( activated() ), this, SLOT( LoadTheme() ) );
+ m_loadtheme_action->addTo( settings );
+
+- m_repara_action = new QAction( tr( "EOP Marker" ), QString::null, 0, this, NULL);
++ m_repara_action = new Q3Action( tr( "EOP Marker" ), QString::null, 0, this, NULL);
+ connect( m_repara_action, SIGNAL( activated() ), this, SLOT( reparastring() ) );
+ m_repara_action->addTo(settings);
+
+ #ifdef USEQPE
+- m_grab_action = new QAction( tr( "Grab Buttons" ), QString::null, 0, this, NULL, true );
++ m_grab_action = new Q3Action( tr( "Grab Buttons" ), QString::null, 0, this, NULL, true );
+ connect( m_grab_action, SIGNAL( toggled(bool) ), this, SLOT( setgrab(bool) ) );
+ m_grab_action->setOn(m_grabkeyboard);
+ m_grab_action->addTo( settings );
+ #endif
+
+- m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 );
++ m_open_action = new Q3Action( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 );
+ connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) );
+ m_open_action->addTo( file );
+
+- m_close_action = new QAction( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 );
++ m_close_action = new Q3Action( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 );
+ connect( m_close_action, SIGNAL( activated() ), this, SLOT( fileClose() ) );
+ m_close_action->addTo( file );
+
+ #ifdef _SCRIPT
+- a = new QAction( tr( "Run Script" ), QString::null, 0, this, NULL);
++ a = new Q3Action( tr( "Run Script" ), QString::null, 0, this, NULL);
+ connect( a, SIGNAL( activated() ), this, SLOT( RunScript() ) );
+ a->addTo( file );
+ #endif
+ /*
+- a = new QAction( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 );
++ a = new Q3Action( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( fileRevert() ) );
+ a->addTo( file );
+
+- a = new QAction( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 );
++ a = new Q3Action( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) );
+ a->addTo( filebar() );
+ a->addTo( edit );
+ */
+
+- m_info_action = new QAction( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL);
++ m_info_action = new Q3Action( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL);
+ connect( m_info_action, SIGNAL( activated() ), this, SLOT( showinfo() ) );
+ m_info_action->addTo( file );
+
+- m_touch_action = new QAction( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true );
++ m_touch_action = new Q3Action( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true );
+ connect( m_touch_action, SIGNAL( toggled(bool) ), this, SLOT( setTwoTouch(bool) ) );
+ m_touch_action->setOn(m_twoTouch);
+ m_touch_action->addTo( file );
+
+- m_find_action = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL);
++ m_find_action = new Q3Action( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL);
+ connect( m_find_action, SIGNAL( activated() ), this, SLOT( editFind() ) );
+ file->insertSeparator();
+ // a->addTo( bar );
+ m_find_action->addTo( file );
+
+- m_exportlinks_action = new QAction( tr( "Export Links" ), QString::null, 0, this, NULL);
++ m_exportlinks_action = new Q3Action( tr( "Export Links" ), QString::null, 0, this, NULL);
+ connect( m_exportlinks_action, SIGNAL( activated() ), this, SLOT( ExportLinks() ) );
+ m_exportlinks_action->addTo( file );
+
+- m_scrollButton = new QAction( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true );
++ m_scrollButton = new Q3Action( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true );
+ connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) );
+ m_scrollButton->addTo(navigation);
+ m_scrollButton->setOn(false);
+
+- m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL);
++ m_start_action = new Q3Action( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL);
+ connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) );
+ m_start_action->addTo(navigation);
+
+- m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL);
++ m_end_action = new Q3Action( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL);
+ connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) );
+ m_end_action->addTo(navigation);
+
+- m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL);
++ m_jump_action = new Q3Action( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL);
+ connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) );
+ m_jump_action->addTo(navigation);
+
+- m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true );
++ m_pageline_action = new Q3Action( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true );
+ connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) );
+ m_pageline_action->addTo(navigation);
+ m_pageline_action->setOn(reader->m_bpagemode);
+
+- m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 );
++ m_pageup_action = new Q3Action( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 );
+ connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) );
+ m_pageup_action->addTo( navigation );
+
+- m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 );
++ m_pagedn_action = new Q3Action( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 );
+ connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) );
+ m_pagedn_action->addTo( navigation );
+
+- m_back_action = new QAction( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 );
++ m_back_action = new Q3Action( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 );
+ connect( m_back_action, SIGNAL( activated() ), reader, SLOT( goBack() ) );
+ m_back_action->addTo( navigation );
+
+- m_home_action = new QAction( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 );
++ m_home_action = new Q3Action( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 );
+ connect( m_home_action, SIGNAL( activated() ), reader, SLOT( goHome() ) );
+ m_home_action->addTo( navigation );
+
+- m_forward_action = new QAction( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 );
++ m_forward_action = new Q3Action( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 );
+ connect( m_forward_action, SIGNAL( activated() ), reader, SLOT( goForward() ) );
+ m_forward_action->addTo( navigation );
+
+ /*
+- a = new QAction( tr( "Find" ), QString::null, 0, this, NULL, true );
++ a = new Q3Action( tr( "Find" ), QString::null, 0, this, NULL, true );
+ // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) );
+ a->addTo( file );
+
+- a = new QAction( tr( "Find Again" ), QString::null, 0, this, NULL, true );
++ a = new Q3Action( tr( "Find Again" ), QString::null, 0, this, NULL, true );
+ // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) );
+ a->addTo( file );
+ */
+@@ -715,13 +705,13 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+
+ QActionGroup* ag = new QActionGroup(this);
+ ag->setExclusive(false);
+- spacemenu = new QPopupMenu(this);
++ spacemenu = new Q3PopupMenu(this);
+ file->insertItem( tr( "Scrolling" ), spacemenu );
+
+- a = new QAction( tr( "Set Target" ), QString::null, 0, ag, NULL);
++ a = new Q3Action( tr( "Set Target" ), QString::null, 0, ag, NULL);
+ connect( a, SIGNAL( activated() ), this, SLOT( setpipetarget() ) );
+
+- a = new QAction( tr( "Pause Paras" ), QString::null, 0, ag, NULL, true );
++ a = new Q3Action( tr( "Pause Paras" ), QString::null, 0, ag, NULL, true );
+ connect( a, SIGNAL( toggled(bool) ), this, SLOT( setpause(bool) ) );
+ a->setOn(reader->m_pauseAfterEachPara);
+
+@@ -731,64 +721,64 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ #endif
+
+ /*
+- a = new QAction( tr( "Import" ), QString::null, 0, this, NULL );
++ a = new Q3Action( tr( "Import" ), QString::null, 0, this, NULL );
+ connect( a, SIGNAL( activated() ), this, SLOT( importFiles() ) );
+ a->addTo( file );
+ */
+
+ /*
+- a = new QAction( tr( "Paste" ), geticon( "paste" ), QString::null, 0, this, 0 );
++ a = new Q3Action( tr( "Paste" ), geticon( "paste" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) );
+ a->addTo( fileBar );
+ a->addTo( edit );
+ */
+
+-// a = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, 0 );
++// a = new Q3Action( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, 0 );
+
+ m_fullscreen = false;
+- m_actFullscreen = new QAction( tr( "Fullscreen" ), geticon( "fullscreen" ), QString::null, 0, this, NULL, true );
++ m_actFullscreen = new Q3Action( tr( "Fullscreen" ), geticon( "fullscreen" ), QString::null, 0, this, NULL, true );
+ connect( m_actFullscreen, SIGNAL( toggled(bool) ), this, SLOT( setfullscreen(bool) ) );
+ m_actFullscreen->setOn(m_fullscreen);
+ m_actFullscreen->addTo( view );
+
+- m_rotate_action = new QAction( tr( "Rotate" ), geticon( "repeat" ), QString::null, 0, this, NULL, true );
++ m_rotate_action = new Q3Action( tr( "Rotate" ), geticon( "repeat" ), QString::null, 0, this, NULL, true );
+ connect( m_rotate_action, SIGNAL( toggled(bool) ), this, SLOT( setrotated(bool) ) );
+ m_rotate_action->setOn(reader->m_rotated);
+ m_rotate_action->addTo( view );
+
+- m_inverse_action = new QAction( tr( "Invert" ), getmyicon( "invert" ), QString::null, 0, this, NULL, true );
++ m_inverse_action = new Q3Action( tr( "Invert" ), getmyicon( "invert" ), QString::null, 0, this, NULL, true );
+ connect( m_inverse_action, SIGNAL( toggled(bool) ), this, SLOT( setinverted(bool) ) );
+ m_inverse_action->setOn(reader->bInverse);
+ m_inverse_action->addTo( view );
+
+ view->insertSeparator();
+
+- m_zoomin_action = new QAction( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this);
++ m_zoomin_action = new Q3Action( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this);
+ connect( m_zoomin_action, SIGNAL( activated() ), this, SLOT( zoomin() ) );
+ m_zoomin_action->addTo( view );
+
+- m_zoomout_action = new QAction( tr( "Zoom Out" ), geticon( "mag" ), QString::null, 0, this);
++ m_zoomout_action = new Q3Action( tr( "Zoom Out" ), geticon( "mag" ), QString::null, 0, this);
+ connect( m_zoomout_action, SIGNAL( activated() ), this, SLOT( zoomout() ) );
+ m_zoomout_action->addTo( view );
+
+ view->insertSeparator();
+- m_setfont_action = new QAction( tr( "Set Font" ), getmyicon( "font" ), QString::null, 0, this);
++ m_setfont_action = new Q3Action( tr( "Set Font" ), getmyicon( "font" ), QString::null, 0, this);
+ connect( m_setfont_action, SIGNAL( activated() ), this, SLOT( setfont() ) );
+ m_setfont_action->addTo( view );
+
+ view->insertSeparator();
+- m_setenc_action = new QAction( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this);
++ m_setenc_action = new Q3Action( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this);
+ connect( m_setenc_action, SIGNAL( activated() ), this, SLOT( chooseencoding() ) );
+ m_setenc_action->addTo( view );
+
+- m_setmono_action = new QAction( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true);
++ m_setmono_action = new Q3Action( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true);
+ connect( m_setmono_action, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) );
+ m_setmono_action->addTo( view );
+ m_setmono_action->setOn(reader->m_bMonoSpaced);
+
+
+- // a = new QAction( tr( "Zoom" ), QString::null, 0, this, NULL, true );
+- // a = new QAction( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 );
++ // a = new Q3Action( tr( "Zoom" ), QString::null, 0, this, NULL, true );
++ // a = new Q3Action( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 );
+
+
+
+@@ -796,57 +786,57 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ // view->insertSeparator();
+
+ /*
+- a = new QAction( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true );
++ a = new Q3Action( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true );
+ connect( a, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) );
+ a->setOn(reader->m_bMonoSpaced);
+ a->addTo( view );
+ */
+ /*
+- a = new QAction( tr( "Set Width" ), QString::null, 0, this, NULL);
++ a = new Q3Action( tr( "Set Width" ), QString::null, 0, this, NULL);
+ connect( a, SIGNAL( activated() ), this, SLOT( setspacing() ) );
+ a->addTo( view );
+ */
+
+- m_mark_action = new QAction( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL);
++ m_mark_action = new Q3Action( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL);
+ connect( m_mark_action, SIGNAL( activated() ), this, SLOT( addbkmk() ) );
+ m_mark_action->addTo( marks );
+
+- m_annotate_action = new QAction( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL);
++ m_annotate_action = new Q3Action( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL);
+ connect( m_annotate_action, SIGNAL( activated() ), this, SLOT( addanno() ) );
+ m_annotate_action->addTo( marks );
+
+- m_goto_action = new QAction( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false );
++ m_goto_action = new Q3Action( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false );
+ connect( m_goto_action, SIGNAL( activated() ), this, SLOT( do_gotomark() ) );
+ m_goto_action->addTo( marks );
+
+- m_delete_action = new QAction( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL);
++ m_delete_action = new Q3Action( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL);
+ connect( m_delete_action, SIGNAL( activated() ), this, SLOT( do_delmark() ) );
+ m_delete_action->addTo( marks );
+
+- m_autogen_action = new QAction( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false );
++ m_autogen_action = new Q3Action( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false );
+ connect( m_autogen_action, SIGNAL( activated() ), this, SLOT( do_autogen() ) );
+ marks->insertSeparator();
+ m_autogen_action->addTo( marks );
+
+- m_clear_action = new QAction( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL);
++ m_clear_action = new Q3Action( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL);
+ connect( m_clear_action, SIGNAL( activated() ), this, SLOT( clearBkmkList() ) );
+ m_clear_action->addTo( marks );
+
+- m_save_action = new QAction( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL );
++ m_save_action = new Q3Action( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL );
+ connect( m_save_action, SIGNAL( activated() ), this, SLOT( savebkmks() ) );
+ m_save_action->addTo( marks );
+
+- m_tidy_action = new QAction( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL);
++ m_tidy_action = new Q3Action( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL);
+ connect( m_tidy_action, SIGNAL( activated() ), this, SLOT( listBkmkFiles() ) );
+ marks->insertSeparator();
+ m_tidy_action->addTo( marks );
+
+- m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL);
++ m_startBlock_action = new Q3Action( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL);
+ connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) );
+ marks->insertSeparator();
+ m_startBlock_action->addTo( marks );
+
+- m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL);
++ m_endBlock_action = new Q3Action( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL);
+ connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) );
+ m_endBlock_action->addTo( marks );
+
+@@ -868,10 +858,10 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ }
+
+
+- pbar = new QProgressBar(this);
++ pbar = new Q3ProgressBar(this);
+ pbar->hide();
+
+- searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE );
++ searchBar = new QFloatBar( "Search", this, Qt::Top, TRUE );
+
+ searchBar->setHorizontalStretchable( TRUE );
+
+@@ -890,17 +880,17 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ connect( searchEdit, SIGNAL( returnPressed( ) ),
+ this, SLOT( search( ) ) );
+ #endif
+- QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 );
++ Q3Action*a = new Q3Action( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) );
+ a->addTo( searchBar );
+
+- a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 );
++ a = new Q3Action( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) );
+ a->addTo( searchBar );
+
+ searchBar->hide();
+
+- regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE );
++ regBar = new QFloatBar( "Autogen", this, Qt::Top, TRUE );
+ connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() ));
+
+ regBar->setHorizontalStretchable( TRUE );
+@@ -913,17 +903,17 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ connect( regEdit, SIGNAL( returnPressed( ) ),
+ this, SLOT( do_regaction() ) );
+
+- a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 );
++ a = new Q3Action( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) );
+ a->addTo( regBar );
+
+- a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 );
++ a = new Q3Action( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) );
+ a->addTo( regBar );
+
+ regBar->hide();
+
+- m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE );
++ m_fontBar = new Q3ToolBar( "Autogen", this, Qt::Top, TRUE );
+
+ m_fontBar->setHorizontalStretchable( TRUE );
+
+@@ -940,9 +930,9 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ {
+ realfont = true;
+ }
+- if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm);
+ }
+ if (!realfont) reader->m_fontname = flist[0];
++ reader->m_fontControl.setCourier(reader->m_fontname,flist);
+ } // delete the FontDatabase!!!
+ connect( m_fontSelector, SIGNAL( activated(const QString& ) ),
+ this, SLOT( do_setfont(const QString&) ) );
+@@ -965,7 +955,7 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+
+ m_scrollbar->setVerticalStretchable( TRUE );
+ */
+- scrollbar = m_scrollbar = new QScrollBar(QScrollBar::Vertical, widge);
++ scrollbar = m_scrollbar = new QScrollBar(Qt::Vertical, widge);
+ m_layout->addWidget(scrollbar);
+ scrollbar->setTracking(false);
+ // connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) );
+@@ -1226,7 +1216,7 @@ void QTReaderApp::addtoolbars(Config* config)
+ {
+ if (m_bkmkAvail == NULL)
+ {
+- m_bkmkAvail = new QAction( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 );
++ m_bkmkAvail = new Q3Action( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 );
+ connect( m_bkmkAvail, SIGNAL( activated() ), this, SLOT( showAnnotation() ) );
+
+ m_bkmkAvail->setEnabled(false);
+@@ -1253,7 +1243,7 @@ bool QTReaderApp::checkbar(Config* _config, const QString& key)
+ }
+
+
+-QToolBar* QTReaderApp::filebar()
++Q3ToolBar* QTReaderApp::filebar()
+ {
+ if (fileBar == NULL)
+ {
+@@ -1270,21 +1260,21 @@ QToolBar* QTReaderApp::filebar()
+ case cesMenuTool:
+ case cesMultiple:
+ // qDebug("Creating new file bar");
+- fileBar = new QToolBar("File", this, m_tbposition);
++ fileBar = new Q3ToolBar("File", this, m_tbposition);
+ break;
+ }
+ // fileBar->setHorizontalStretchable( true );
+ }
+ return fileBar;
+ }
+-QToolBar* QTReaderApp::viewbar()
++Q3ToolBar* QTReaderApp::viewbar()
+ {
+ if (viewBar == NULL)
+ {
+ switch (m_tbpol)
+ {
+ case cesMultiple:
+- viewBar = new QToolBar("View", this, m_tbposition);
++ viewBar = new Q3ToolBar("View", this, m_tbposition);
+ break;
+ default:
+ qDebug("Incorrect toolbar policy set");
+@@ -1298,7 +1288,7 @@ QToolBar* QTReaderApp::viewbar()
+ }
+ return viewBar;
+ }
+-QToolBar* QTReaderApp::navbar()
++Q3ToolBar* QTReaderApp::navbar()
+ {
+ if (navBar == NULL)
+ {
+@@ -1306,7 +1296,7 @@ QToolBar* QTReaderApp::navbar()
+ {
+ case cesMultiple:
+ // qDebug("Creating new nav bar");
+- navBar = new QToolBar("Navigation", this, m_tbposition);
++ navBar = new Q3ToolBar("Navigation", this, m_tbposition);
+ break;
+ default:
+ qDebug("Incorrect toolbar policy set");
+@@ -1321,14 +1311,14 @@ QToolBar* QTReaderApp::navbar()
+ }
+ return navBar;
+ }
+-QToolBar* QTReaderApp::markbar()
++Q3ToolBar* QTReaderApp::markbar()
+ {
+ if (markBar == NULL)
+ {
+ switch (m_tbpol)
+ {
+ case cesMultiple:
+- markBar = new QToolBar("Marks", this, m_tbposition);
++ markBar = new Q3ToolBar("Marks", this, m_tbposition);
+ break;
+ default:
+ qDebug("Incorrect toolbar policy set");
+@@ -1343,26 +1333,26 @@ QToolBar* QTReaderApp::markbar()
+ return markBar;
+ }
+
+-void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a)
++void QTReaderApp::addfilebar(Config* _config, const QString& key, Q3Action* a)
+ {
+ if (_config->readBoolEntry(key, false)) a->addTo( filebar() );
+ }
+-void QTReaderApp::addnavbar(Config* _config, const QString& key, QAction* a)
++void QTReaderApp::addnavbar(Config* _config, const QString& key, Q3Action* a)
+ {
+ if (_config->readBoolEntry(key, false)) a->addTo( navbar() );
+ }
+-void QTReaderApp::addmarkbar(Config* _config, const QString& key, QAction* a)
++void QTReaderApp::addmarkbar(Config* _config, const QString& key, Q3Action* a)
+ {
+ if (_config->readBoolEntry(key, false)) a->addTo( markbar() );
+ }
+-void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a)
++void QTReaderApp::addviewbar(Config* _config, const QString& key, Q3Action* a)
+ {
+ if (_config->readBoolEntry(key, false)) a->addTo( viewbar() );
+ }
+
+ void QTReaderApp::suspend() { reader->suspend(); }
+
+-void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data)
++void QTReaderApp::msgHandler(const Q3CString& _msg, const QByteArray& _data)
+ {
+ #ifndef USEMSGS
+ return;
+@@ -1787,7 +1777,7 @@ void QTReaderApp::setfullscreen(bool sfs)
+ reader->update();
+ }
+ /*
+-void QTReaderApp::buttonActionSelected(QAction* _a)
++void QTReaderApp::buttonActionSelected(Q3Action* _a)
+ {
+ //// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text()));
+ m_spaceTarget = ActNameToInt(_a->text());
+@@ -2007,14 +1997,14 @@ QString QTReaderApp::usefilebrowser()
+ void QTReaderApp::showgraphic(QImage& pm)
+ {
+ m_graphicwin->setImage(pm);
+- editorStack->raiseWidget( m_graphicwin );
++ editorStack->setCurrentWidget( m_graphicwin );
+ hidetoolbars();
+ m_graphicwin->setFocus();
+ }
+
+ void QTReaderApp::showbuttonprefs()
+ {
+- editorStack->raiseWidget( m_buttonprefs );
++ editorStack->setCurrentWidget( m_buttonprefs );
+ hidetoolbars();
+ m_buttonprefs->setFocus();
+ m_kmapchanged = true;
+@@ -2366,7 +2356,7 @@ void QTReaderApp::showinfo()
+ }
+ m_infoWin->setZoom(reader->m_fontControl.currentsize()*10);
+ m_infoWin->setAbout(QString("\nApplication (c) Tim Wentford\n")+reader->about());
+- editorStack->raiseWidget( m_infoWin );
++ editorStack->setCurrentWidget( m_infoWin );
+ hidetoolbars();
+ m_infoWin->setFocus();
+ }
+@@ -2482,7 +2472,7 @@ void QTReaderApp::addanno()
+ m_annoWin->setAnno("");
+ m_annoWin->setPosn(reader->pagelocate());
+ m_annoIsEditing = true;
+- editorStack->raiseWidget( m_annoWin );
++ editorStack->setCurrentWidget( m_annoWin );
+ hidetoolbars();
+ #ifdef USEQPE
+ Global::showInputMethod();
+@@ -2658,7 +2648,7 @@ void QTReaderApp::findNext()
+ #ifdef __ISEARCH
+ QString arg = searchEdit->text();
+ #else
+- QRegExp arg = searchEdit->text();
++ QRegExp arg(searchEdit->text());
+ #endif
+ CDrawBuffer test(&(reader->m_fontControl));
+ size_t start = reader->pagelocate();
+@@ -2722,7 +2712,7 @@ bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg)
+ while (strstr(test.data(),(const tchar*)arg) == NULL)
+ #else
+ #ifdef _UNICODE
+- while ((offset = arg.match(toQString(test.data()))) == -1)
++ while ((offset = arg.exactMatch(toQString(test.data()))) == -1)
+ #else
+ while (arg.match(test.data()) == -1)
+ #endif
+@@ -2962,7 +2952,7 @@ void QTReaderApp::handlekey(QKeyEvent* e)
+ #if defined(USEQPE) && defined(USENEWFULLSCREEN)
+ void QTReaderApp::focusInEvent(QFocusEvent *)
+ {
+- if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader))
++ if (m_usenewfullscreen && m_fullscreen && (editorStack->currentWidget() == reader))
+ {
+ m_usenewfullscreen = false;
+ reader->bDoUpdates = false;
+@@ -2975,7 +2965,7 @@ void QTReaderApp::focusInEvent(QFocusEvent *)
+
+ void QTReaderApp::resizeEvent(QResizeEvent *)
+ {
+- if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader))
++ if (m_usenewfullscreen && m_fullscreen && (editorStack->currentWidget() == reader))
+ {
+ m_usenewfullscreen = false;
+ reader->bDoUpdates = false;
+@@ -3078,7 +3068,7 @@ void QTReaderApp::showEditTools()
+ // qDebug("uc");
+ updateCaption();
+ // qDebug("rw");
+- editorStack->raiseWidget( reader );
++ editorStack->setCurrentWidget( reader );
+ // qDebug("sf");
+ reader->setFocus();
+ // qDebug("ref");
+@@ -3156,7 +3146,7 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
+ showEditTools();
+ e->ignore();
+ }
+- else if (editorStack->visibleWidget() == m_buttonprefs)
++ else if (editorStack->currentWidget() == m_buttonprefs)
+ {
+ int ret = QMessageBox::warning(this, PROGNAME,
+ tr("Do you wish to map this key?\n\nIf you proceed you will map\nthe escape key and you will\nneed to press the close box\ntwice to exit this program\n\nContinue?"), tr("Yes"), tr("No"), QString::null, 0, 1);
+@@ -3172,7 +3162,7 @@ tr("Do you wish to map this key?\n\nIf you proceed you will map\nthe escape key
+ }
+ else
+ {
+- if (editorStack->visibleWidget() == reader)
++ if (editorStack->currentWidget() == reader)
+ {
+ if ((kmap.find(orKey(Qt::NoButton,Key_Escape,false)) != kmap.end()) && m_bcloseDisabled)
+ {
+@@ -3277,7 +3267,7 @@ bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab, bool presel)
+ if (cnt > 0)
+ {
+ hidetoolbars();
+- editorStack->raiseWidget( bkmkselector );
++ editorStack->setCurrentWidget( bkmkselector );
+ if (slt != -1) bkmkselector->setCurrentItem(slt);
+ return true;
+ }
+@@ -3799,7 +3789,7 @@ void QTReaderApp::do_autogen(const QString& regText)
+ }
+ i = reader->buffdoc.getpara(buff);
+ #ifdef _UNICODE
+- if (re.match(toQString(buff.data())) != -1)
++ if (re.exactMatch(toQString(buff.data())) != -1)
+ #else
+ if (re.match(buff.data()) != -1)
+ #endif
+@@ -4113,7 +4103,7 @@ void QTReaderApp::showAnnotation()
+ #ifdef USEQPE
+ Global::showInputMethod();
+ #endif
+- editorStack->raiseWidget( m_annoWin );
++ editorStack->setCurrentWidget( m_annoWin );
+ hidetoolbars();
+ m_annoWin->setFocus();
+ }
+@@ -4152,7 +4142,7 @@ void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, size_t posn2,
+ #ifdef USEQPE
+ Global::showInputMethod();
+ #endif
+- editorStack->raiseWidget( m_annoWin );
++ editorStack->setCurrentWidget( m_annoWin );
+ hidetoolbars();
+ }
+ #ifdef USEQPE
+@@ -4738,17 +4728,9 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs)
+ d.setFilter( ((usedirs) ? QDir::Dirs : QDir::Files) | QDir::NoSymLinks );
+ // d.setSorting( QDir::Size | QDir::Reversed );
+
+- const QFileInfoList *list = d.entryInfoList();
+- QFileInfoListIterator it( *list ); // create list iterator
+- QFileInfo *fi; // pointer for traversing
+-
+- while ( (fi=it.current()) ) { // for each file...
+-
+- bkmkselector->insertItem(fi->fileName(), cnt++);
+-
+- //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
+- ++it; // goto next list element
+- }
++ QFileInfoList list = d.entryInfoList();
++ for(QFileInfoListIterator it=list.begin();it!=list.end();++it)
++ bkmkselector->insertItem(it->fileName(), cnt++);
+
+ #else /* USEQPE */
+ int cnt = 0;
+@@ -4782,7 +4764,7 @@ void QTReaderApp::LoadTheme()
+ {
+ if (PopulateConfig("Themes", true))
+ {
+- editorStack->raiseWidget( bkmkselector );
++ editorStack->setCurrentWidget( bkmkselector );
+ hidetoolbars();
+ m_nBkmkAction = cLdTheme;
+ }
+@@ -4794,7 +4776,7 @@ void QTReaderApp::LoadConfig()
+ {
+ if (PopulateConfig("configs"))
+ {
+- editorStack->raiseWidget( bkmkselector );
++ editorStack->setCurrentWidget( bkmkselector );
+ hidetoolbars();
+ m_nBkmkAction = cLdConfig;
+ }
+@@ -4806,7 +4788,7 @@ void QTReaderApp::TidyConfig()
+ {
+ if (PopulateConfig("configs"))
+ {
+- editorStack->raiseWidget( bkmkselector );
++ editorStack->setCurrentWidget( bkmkselector );
+ hidetoolbars();
+ m_nBkmkAction = cRmConfig;
+ }
+@@ -4818,7 +4800,7 @@ void QTReaderApp::ExportLinks()
+ {
+ if (PopulateConfig("urls"))
+ {
+- editorStack->raiseWidget( bkmkselector );
++ editorStack->setCurrentWidget( bkmkselector );
+ hidetoolbars();
+ m_nBkmkAction = cExportLinks;
+ }
+diff --git a/QTReaderApp.h b/QTReaderApp.h
+index ab1b7ad..502079f 100644
+--- a/QTReaderApp.h
++++ b/QTReaderApp.h
+@@ -35,7 +35,15 @@
+ #include <qmap.h>
+ #include <qlineedit.h>
+ #include <qstack.h>
+-#include <qlistbox.h>
++#include <Qt3Support/Q3ListBox>
++#include <Qt3Support/Q3CString>
++#include <Qt3Support/Q3ProgressBar>
++#include <Qt3Support/Q3MainWindow>
++#include <Qt3Support/Q3Action>
++#include <QStackedWidget>
++#include <qcombobox.h>
++#include <qnamespace.h>
++using namespace Qt;
+ #ifdef USEQPE
+ #include <qpe/qpeapplication.h>
+ #endif
+@@ -126,7 +134,7 @@ struct searchrecord
+ class infowin;
+ class GraphicWin;
+
+-class QTReaderApp : public QMainWindow
++class QTReaderApp : public Q3MainWindow
+ {
+ Q_OBJECT
+
+@@ -180,7 +188,7 @@ class QTReaderApp : public QMainWindow
+
+ protected:
+ void setfontHelper(const QString& lcn, int size = 0);
+- QAction* m_bkmkAvail, *m_actFullscreen;
++ Q3Action* m_bkmkAvail, *m_actFullscreen;
+ CAnnoEdit* m_annoWin;
+ Bkmk* m_anno;
+ int m_scrollcolor, m_scrollbarcolor, m_background, m_foreground;
+@@ -262,8 +270,8 @@ private slots:
+ void showAnnotation();
+ void do_setencoding(int i);
+ void do_setfont(const QString&);
+- // void buttonActionSelected(QAction*);
+- void msgHandler(const QCString&, const QByteArray&);
++ // void buttonActionSelected(Q3Action*);
++ void msgHandler(const Q3CString&, const QByteArray&);
+ void monospace(bool);
+ void jump();
+ void reparastring();
+@@ -346,35 +354,35 @@ private slots:
+ void setscrollcolour();
+ void setscrollbarcolour();
+ void writeUrl(const QString& file, const QString& href);
+- QAction *m_preferences_action, *m_open_action, *m_close_action;
+- QAction *m_info_action, *m_touch_action, *m_find_action, *m_start_action;
+- QAction *m_end_action, *m_jump_action, *m_pageline_action;
+- QAction *m_pageup_action, *m_pagedn_action, *m_back_action;
+- QAction *m_home_action, *m_forward_action, *m_zoomin_action;
+- QAction *m_zoomout_action, *m_setfont_action, *m_mark_action;
+- QAction *m_annotate_action, *m_goto_action, *m_delete_action;
+- QAction *m_autogen_action, *m_clear_action, *m_save_action;
+- QAction *m_tidy_action, *m_startBlock_action, *m_endBlock_action;
+- QAction *m_setenc_action, *m_setmono_action, *m_saveconfig_action;
+- QAction *m_loadconfig_action, *m_loadtheme_action, *m_toolbarprefs_action, *m_tidyconfig_action;
+- QAction *m_exportlinks_action, *m_rotate_action, *m_buttonprefs_action, *m_inverse_action;
+- QAction *m_repara_action;
++ Q3Action *m_preferences_action, *m_open_action, *m_close_action;
++ Q3Action *m_info_action, *m_touch_action, *m_find_action, *m_start_action;
++ Q3Action *m_end_action, *m_jump_action, *m_pageline_action;
++ Q3Action *m_pageup_action, *m_pagedn_action, *m_back_action;
++ Q3Action *m_home_action, *m_forward_action, *m_zoomin_action;
++ Q3Action *m_zoomout_action, *m_setfont_action, *m_mark_action;
++ Q3Action *m_annotate_action, *m_goto_action, *m_delete_action;
++ Q3Action *m_autogen_action, *m_clear_action, *m_save_action;
++ Q3Action *m_tidy_action, *m_startBlock_action, *m_endBlock_action;
++ Q3Action *m_setenc_action, *m_setmono_action, *m_saveconfig_action;
++ Q3Action *m_loadconfig_action, *m_loadtheme_action, *m_toolbarprefs_action, *m_tidyconfig_action;
++ Q3Action *m_exportlinks_action, *m_rotate_action, *m_buttonprefs_action, *m_inverse_action;
++ Q3Action *m_repara_action;
+ #ifdef USEQPE
+- QAction *m_grab_action;
++ Q3Action *m_grab_action;
+ #endif
+ void addtoolbars(Config* config);
+ ToolbarPolicy m_tbpol, m_tbpolsave;
+ ToolBarDock m_tbposition;
+ bool m_tbmove, m_tbmovesave;
+- QToolBar* filebar();
+- QToolBar* viewbar();
+- QToolBar* navbar();
+- QToolBar* markbar();
++ Q3ToolBar* filebar();
++ Q3ToolBar* viewbar();
++ Q3ToolBar* navbar();
++ Q3ToolBar* markbar();
+ void hidetoolbars();
+- void addfilebar(Config* _config, const QString& key, QAction* a);
+- void addviewbar(Config* _config, const QString& key, QAction* a);
+- void addnavbar(Config* _config, const QString& key, QAction* a);
+- void addmarkbar(Config* _config, const QString& key, QAction* a);
++ void addfilebar(Config* _config, const QString& key, Q3Action* a);
++ void addviewbar(Config* _config, const QString& key, Q3Action* a);
++ void addnavbar(Config* _config, const QString& key, Q3Action* a);
++ void addmarkbar(Config* _config, const QString& key, Q3Action* a);
+ bool checkbar(Config* _config, const QString& key);
+ #ifdef _SCRIPT
+ void SaveScript(const char* sname);
+@@ -401,9 +409,9 @@ private slots:
+
+ private:
+
+- QAction* m_scrollButton;
++ Q3Action* m_scrollButton;
+
+- QAction* m_buttonAction[MAX_ACTIONS];
++ Q3Action* m_buttonAction[MAX_ACTIONS];
+
+ CBkmkSelector* bkmkselector;
+
+@@ -418,27 +426,25 @@ private slots:
+ #else
+ bool dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg);
+ #endif
+- QWidgetStack *editorStack;
++ QStackedWidget *editorStack;
+ QTReader* reader;
+ QComboBox* m_fontSelector;
+ // QPEToolBar /* *menu,*/ *fileBar;
+ #if defined(USEQPE)
+- QToolBar *menubar;
++ Q3ToolBar *menubar;
+ #endif
+- QToolBar *fileBar, *navBar, *viewBar, *markBar;
++ Q3ToolBar *fileBar, *navBar, *viewBar, *markBar;
+ #if defined(USEQPE)
+ QPEMenuBar *mb;
+ #else
+ QMenuBar *mb;
+ #endif
+ QFloatBar *searchBar, *regBar/*, *m_fontBar*/;
+- QToolBar /* *searchBar, *regBar,*/ *m_fontBar;
++ Q3ToolBar /* *searchBar, *regBar,*/ *m_fontBar;
+ QLineEdit *searchEdit, *regEdit;
+ bool searchVisible;
+ bool regVisible;
+ bool m_fontVisible, m_twoTouch;
+- static unsigned long m_uid;
+- long unsigned get_unique_id() { return m_uid++; }
+ /*
+ void resizeEvent( QResizeEvent * r)
+ {
+@@ -451,7 +457,7 @@ private slots:
+ CList<Bkmk>* pOpenlist;
+ infowin* m_infoWin;
+ GraphicWin* m_graphicwin;
+- QProgressBar* pbar;
++ Q3ProgressBar* pbar;
+ bool m_fBkmksChanged;
+ // int m_nRegAction;
+ regedit_type m_nRegAction;
+diff --git a/QtrListView.cpp b/QtrListView.cpp
+index 67040f8..e73a395 100644
+--- a/QtrListView.cpp
++++ b/QtrListView.cpp
+@@ -1,4 +1,7 @@
+ #include "QtrListView.h"
++#include <QtGui/QKeyEvent>
++#include <qnamespace.h>
++using namespace Qt;
+
+ void QtrListView::keyPressEvent(QKeyEvent* e)
+ {
+@@ -19,6 +22,6 @@ void QtrListView::keyPressEvent(QKeyEvent* e)
+ emit OnCancelButton();
+ break;
+ default:
+- QListView::keyPressEvent(e);
++ Q3ListView::keyPressEvent(e);
+ }
+ }
+diff --git a/QtrListView.h b/QtrListView.h
+index c1b7f4d..02a74cc 100644
+--- a/QtrListView.h
++++ b/QtrListView.h
+@@ -2,18 +2,19 @@
+ #define __QTRLISTVIEW_H
+
+ #include <qlistview.h>
++#include <Qt3Support/Q3ListViewItem>
+
+-class QtrListView : public QListView
++class QtrListView : public Q3ListView
+ {
+ Q_OBJECT
+
+ virtual void keyPressEvent(QKeyEvent* e);
+ public:
+- QtrListView(QWidget* parent, char* name) : QListView(parent, name) {};
++ QtrListView(QWidget* parent, char* name) : Q3ListView(parent, name) {};
+
+ signals:
+- void OnOKButton(QListViewItem*);
+- void OnCentreButton(QListViewItem*);
++ void OnOKButton(Q3ListViewItem*);
++ void OnCentreButton(Q3ListViewItem*);
+ void OnCancelButton();
+ };
+
+diff --git a/Reb.cpp b/Reb.cpp
+index 65de9f6..9e6e552 100644
+--- a/Reb.cpp
++++ b/Reb.cpp
+@@ -105,8 +105,7 @@ QImage* CReb::getPicture(const QString& ref)
+ char* imgbuffer = new char[rs.len];
+ fseek(fin, page2pos(iter.data()), SEEK_SET);
+ fread(imgbuffer, rs.len, 1, fin);
+- QByteArray arr;
+- arr.assign((const char*)imgbuffer, rs.len);
++ QByteArray arr((const char*)imgbuffer, rs.len);
+ QImage* qimage = new QImage(arr);
+ return qimage;
+ }
+@@ -581,7 +580,7 @@ void RBPage::startpage(UInt32 pos, UInt32 _cp, bool _isCompressed, UInt32 _len)
+ int CReb::getch()
+ {
+ if (tagoffset < tagstring.length())
+- return tagstring[tagoffset++].unicode();
++ return tagstring.at(tagoffset++).unicode();
+ else
+ return currentpage.getch(this);
+ }
+diff --git a/TableDialog.cpp b/TableDialog.cpp
+index b67d534..d0748d6 100644
+--- a/TableDialog.cpp
++++ b/TableDialog.cpp
+@@ -4,7 +4,7 @@ CTableDialog::CTableDialog(const QFont& f, const QString& tabtext, bool fs, QWid
+ {
+ setCaption("Table View");
+ QVBoxLayout *tmp = new QVBoxLayout(this);
+- QTextView* qtv = new QTextView(this);
++ Q3TextView* qtv = new Q3TextView(this);
+ qtv->setFont(f);
+ tmp->addWidget(qtv);
+ qtv->setText(tabtext);
+diff --git a/TableDialog.h b/TableDialog.h
+index 2257a81..14b1cf2 100644
+--- a/TableDialog.h
++++ b/TableDialog.h
+@@ -2,8 +2,11 @@
+ #define __TABLEDIALOG_H
+
+ #include <qdialog.h>
+-#include <qtextview.h>
++#include <Qt3Support/Q3TextView>
++#include <QtGui/QKeyEvent>
+ #include <qlayout.h>
++#include <qnamespace.h>
++using namespace Qt;
+
+ class CTableDialog : public QDialog
+ {
+diff --git a/ToolbarPrefs.cpp b/ToolbarPrefs.cpp
+index 56c4e9b..10fc6ec 100644
+--- a/ToolbarPrefs.cpp
++++ b/ToolbarPrefs.cpp
+@@ -22,6 +22,7 @@
+ #ifdef USEQPE
+ #include <qpe/menubutton.h>
+ #endif
++#include <Qt3Support/Q3GroupBox>
+
+ CBarPrefs::CBarPrefs(const QString& appdir, bool fs, QWidget* parent, const char* name) : QDialog(parent, name, true), config( appdir )
+ {
+@@ -222,7 +223,7 @@ CFileBarPrefs::CFileBarPrefs( Config& _config, QWidget* parent, const char* nam
+ config.setGroup( "Toolbar" );
+ QVBoxLayout* vb = new QVBoxLayout(this);
+
+- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "File", this);
++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "File", this);
+ vb->addWidget(bg);
+
+ open = new QCheckBox( tr("Open"), bg );
+@@ -263,7 +264,7 @@ CNavBarPrefs::CNavBarPrefs( Config& _config, QWidget* parent, const char* name,
+ config.setGroup( "Toolbar" );
+ QVBoxLayout* vb = new QVBoxLayout(this);
+
+- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "Navigation", this);
++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "Navigation", this);
+ vb->addWidget(bg);
+ scroll = new QCheckBox( tr("Scroll"), bg );
+ scroll->setChecked(config.readBoolEntry( "Scroll", false ));
+@@ -324,7 +325,7 @@ CViewBarPrefs::CViewBarPrefs( Config& _config, QWidget* parent, const char* nam
+ {
+ QVBoxLayout* vb = new QVBoxLayout(this);
+
+- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "View", this);
++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "View", this);
+ vb->addWidget(bg);
+
+ config.setGroup( "Toolbar" );
+@@ -381,7 +382,7 @@ CMarkBarPrefs::CMarkBarPrefs( Config& _config, QWidget* parent, const char* nam
+ {
+ QVBoxLayout* vb = new QVBoxLayout(this);
+
+- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "Marks", this);
++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "Marks", this);
+ vb->addWidget(bg);
+ mark = new QCheckBox( tr("Bookmark"), bg );
+ mark->setChecked(config.readBoolEntry( "Mark", false ));
+@@ -443,13 +444,13 @@ CMiscBarPrefs::CMiscBarPrefs( QWidget* parent, const char* name, WFlags fl )
+
+ hl->setMargin( 0 );
+
+- QGroupBox* gb = new QGroupBox(1, Qt::Horizontal, "Dialogs", this);
++ Q3GroupBox* gb = new Q3GroupBox(1, Qt::Horizontal, "Dialogs", this);
+ floating = new QCheckBox(gb);
+ floating->setText(tr("Floating"));
+ hl->addWidget( gb, 0, 0 );
+
+
+- gb = new QGroupBox(1, Qt::Horizontal, "Bars (Restart)", this);
++ gb = new Q3GroupBox(1, Qt::Horizontal, "Bars (Restart)", this);
+
+ // QLabel* ql = new QLabel("Restart to apply changes", gb);
+ // TextLabel = new QLabel( gb );
+@@ -485,7 +486,7 @@ CMiscBarPrefs::CMiscBarPrefs( QWidget* parent, const char* name, WFlags fl )
+
+ hl->addWidget(gb, 0, 1);
+
+- gb = new QGroupBox(1, Qt::Horizontal, "QT Scroll Bar", this);
++ gb = new Q3GroupBox(1, Qt::Horizontal, "QT Scroll Bar", this);
+
+ #ifdef USECOMBO
+ qtscroll = new QComboBox(gb);
+@@ -497,7 +498,7 @@ CMiscBarPrefs::CMiscBarPrefs( QWidget* parent, const char* name, WFlags fl )
+ qtscroll->insertItem(tr("Left"));
+
+ hl->addWidget(gb, 1, 0);
+- gb = new QGroupBox(1, Qt::Horizontal, "Miniscroll", this);
++ gb = new Q3GroupBox(1, Qt::Horizontal, "Miniscroll", this);
+
+ #ifdef USECOMBO
+ localscroll = new QComboBox(gb);
+@@ -527,7 +528,7 @@ CIndBarPrefs::CIndBarPrefs( Config& _config, QWidget* parent, const char* name,
+ {
+ QVBoxLayout* vb = new QVBoxLayout(this);
+
+- QGroupBox* bg = new QGroupBox(1, Qt::Horizontal, "Indicators", this);
++ Q3GroupBox* bg = new Q3GroupBox(1, Qt::Horizontal, "Indicators", this);
+ vb->addWidget(bg);
+ indannotate = new QCheckBox( tr("Annotation"), bg );
+ indannotate->setChecked(config.readBoolEntry( "Annotation indicator", false ));
+diff --git a/ToolbarPrefs.h b/ToolbarPrefs.h
+index 9df8940..2a9d5cd 100644
+--- a/ToolbarPrefs.h
++++ b/ToolbarPrefs.h
+@@ -11,12 +11,14 @@
+
+ #include <qvariant.h>
+ #include <qwidget.h>
+-#include <qtabdialog.h>
++#include <Qt3Support/Q3TabDialog>
+ #include <qtabwidget.h>
+ #include <qspinbox.h>
+ #include <qcheckbox.h>
+ #include <qcombobox.h>
+ #include <qlineedit.h>
++#include <qnamespace.h>
++using namespace Qt;
+ #ifdef USEQPE
+ #include <qpe/menubutton.h>
+ #include <qpe/config.h>
+@@ -25,6 +27,8 @@
+ #endif
+ #define USECOMBO
+
++#include <QtGui/QKeyEvent>
++
+ class QVBoxLayout;
+ class QHBoxLayout;
+ class QGridLayout;
+diff --git a/URLDialog.cpp b/URLDialog.cpp
+index dd4568b..9497979 100644
+--- a/URLDialog.cpp
++++ b/URLDialog.cpp
+@@ -5,7 +5,7 @@ CURLDialog::CURLDialog(const QString& fname, bool fs, QWidget* parent, const cha
+ {
+ setCaption(tr("Save URL"));
+ QVBoxLayout *tmp = new QVBoxLayout(this);
+- QVButtonGroup* vb = new QVButtonGroup(fname, this);
++ Q3VButtonGroup* vb = new Q3VButtonGroup(fname, this);
+ tmp->addWidget(vb);
+ m_clipboard = new QCheckBox(tr("Clipboard"), vb);
+ m_localfile = new QCheckBox(tr("Local file"), vb);
+diff --git a/URLDialog.h b/URLDialog.h
+index 792d13a..fffaf2b 100644
+--- a/URLDialog.h
++++ b/URLDialog.h
+@@ -11,14 +11,17 @@
+
+ #include <qvariant.h>
+ #include <qwidget.h>
+-#include <qtabdialog.h>
++#include <Qt3Support/Q3TabDialog>
+ #include <qtabwidget.h>
+ #include <qspinbox.h>
+ #include <qcheckbox.h>
+ #include <qcombobox.h>
+ #include <qlineedit.h>
+ //#include <qpe/menubutton.h>
+-#include <qvbuttongroup.h>
++#include <Qt3Support/Q3VButtonGroup>
++#include <QtGui/QKeyEvent>
++#include <qnamespace.h>
++using namespace Qt;
+
+ class QVBoxLayout;
+ class QHBoxLayout;
+diff --git a/arrierego.cpp b/arrierego.cpp
+index be2a3fa..b4f857f 100644
+--- a/arrierego.cpp
++++ b/arrierego.cpp
+@@ -114,8 +114,7 @@ void CArriere::setlink(QString& fn, const QString& wrd)
+
+ QImage* CArriere::imagefromdata(UInt8* imgbuffer, UInt32 imgsize)
+ {
+- QByteArray arr;
+- arr.assign((const char*)imgbuffer, imgsize);
++ QByteArray arr((const char*)imgbuffer, imgsize);
+
+ QImage* qimage = new QImage(arr);
+
+diff --git a/cbkmkselector.h b/cbkmkselector.h
+index ec0c6e8..e36d31a 100644
+--- a/cbkmkselector.h
++++ b/cbkmkselector.h
+@@ -1,13 +1,15 @@
+ #include <qwidget.h>
+-#include <qlistbox.h>
++#include <Qt3Support/Q3ListBox>
+ #include <qpushbutton.h>
+ #include <qlayout.h>
++#include <qnamespace.h>
++using namespace Qt;
+
+-class CBkmkSelectorItem : public QListBoxText
++class CBkmkSelectorItem : public Q3ListBoxText
+ {
+ int m_ref;
+ public:
+- CBkmkSelectorItem(const QString& _t, int ref) : QListBoxText(_t), m_ref(ref)
++ CBkmkSelectorItem(const QString& _t, int ref) : Q3ListBoxText(_t), m_ref(ref)
+ {
+ }
+ int reference() { return m_ref; }
+@@ -18,7 +20,7 @@ class CBkmkSelector : public QWidget
+
+ Q_OBJECT
+
+- QListBox* bkmkselector;
++ Q3ListBox* bkmkselector;
+ QPushButton* exitButton;
+ /*
+ void keyPressEvent ( QKeyEvent * e )
+@@ -38,7 +40,7 @@ signals:
+ void selected(int i);
+ void cancelled();
+ private slots:
+- void slotSelected(QListBoxItem* t)
++ void slotSelected(Q3ListBoxItem* t)
+ {
+ if (t != NULL)
+ {
+@@ -64,13 +66,13 @@ public:
+
+ QVBoxLayout* grid = new QVBoxLayout(this);
+ QHBoxLayout* hgrid = new QHBoxLayout();
+- bkmkselector = new QListBox(this, tr("Bookmarks"));
++ bkmkselector = new Q3ListBox(this, tr("Bookmarks"));
+ QPushButton* _sort = new QPushButton(tr("Sort"), this);
+ connect(_sort, SIGNAL(clicked()), this, SLOT( slotSort() ) );
+ exitButton = new QPushButton(tr("Cancel"), this);
+ // connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( slotSelected(int) ) );
+- connect(bkmkselector, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( slotSelected(QListBoxItem*) ) );
+- connect(bkmkselector, SIGNAL( returnPressed(QListBoxItem*) ), this, SLOT( slotSelected(QListBoxItem*) ) );
++ connect(bkmkselector, SIGNAL( clicked(Q3ListBoxItem*) ), this, SLOT( slotSelected(Q3ListBoxItem*) ) );
++ connect(bkmkselector, SIGNAL( returnPressed(Q3ListBoxItem*) ), this, SLOT( slotSelected(Q3ListBoxItem*) ) );
+ connect(exitButton, SIGNAL( clicked() ), this, SLOT( slotCancel() ) );
+ grid->addWidget(bkmkselector,1);
+ grid->addLayout(hgrid);
+diff --git a/decompress.cpp b/decompress.cpp
+index 6034e01..979b642 100644
+--- a/decompress.cpp
++++ b/decompress.cpp
+@@ -2,6 +2,7 @@
+ #include "decompress.h"
+ #include <zlib.h>
+ #include <stdlib.h>
++#include "uqtcommon.h"
+
+ size_t UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize)
+ {
+@@ -60,17 +61,7 @@ size_t (*getdecompressor(char* _s))(UInt8*, size_t, UInt8*, size_t)
+
+ size_t (*getdecompressor(char* _s))(UInt8*, size_t, UInt8*, size_t)
+ {
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString codecpath(getenv("OPIEDIR"));
+-#else
+- QString codecpath(getenv("QTDIR"));
+-#endif
+- codecpath += "/plugins/reader/support/libpluckerdecompress.so";
+-#else
+- QString codecpath(getenv("READERDIR"));
+- codecpath += "/support/libpluckerdecompress.so";
+-#endif
++ QString codecpath = uqt_supportpath()+"/libpluckerdecompress.so";
+ qDebug("Codec:%s", (const char*)codecpath);
+ if (QFile::exists(codecpath))
+ {
+diff --git a/ebookcodec.h b/ebookcodec.h
+index 4229fb9..091894a 100644
+--- a/ebookcodec.h
++++ b/ebookcodec.h
+@@ -1,4 +1,5 @@
+ #include "CExpander.h"
++#include "uqtcommon.h"
+
+ #include <qfileinfo.h>
+ #include <qdir.h>
+@@ -22,17 +23,7 @@ class ebookcodec : public CExpander_Interface
+ }
+ ebookcodec(const QString& _s) : codec(NULL), handle(NULL), status(0)
+ {
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString codecpath(getenv("OPIEDIR"));
+-#else
+- QString codecpath(getenv("QTDIR"));
+-#endif
+- codecpath += "/plugins/reader/codecs/";
+-#else
+- QString codecpath(getenv("READERDIR"));
+- codecpath += "/codecs/";
+-#endif
++ QString codecpath = uqt_codecspath();
+ codecpath += _s;
+ if (QFile::exists(codecpath))
+ {
+diff --git a/fileBrowser.cpp b/fileBrowser.cpp
+index c8c371a..688f035 100644
+--- a/fileBrowser.cpp
++++ b/fileBrowser.cpp
+@@ -53,18 +53,18 @@ fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, boo
+ ListView->addColumn( tr( "Name" ) );
+ ListView->setSorting( 2, FALSE);
+ ListView->addColumn( tr( "Size" ) );
+- ListView->setSelectionMode(QListView::Single);
++ ListView->setSelectionMode(Q3ListView::Single);
+ ListView->setAllColumnsShowFocus( TRUE );
+- ListView->setColumnWidthMode(0, ((modal) ? QListView::Manual : QListView::Maximum));
+- ListView->setColumnWidthMode(1, QListView::Manual);
++ ListView->setColumnWidthMode(0, ((modal) ? Q3ListView::Manual : Q3ListView::Maximum));
++ ListView->setColumnWidthMode(1, Q3ListView::Manual);
+
+ // signals and slots connections
+ connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) );
+ connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) );
+- connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) );
+- connect( ListView, SIGNAL(clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
+- connect( ListView, SIGNAL(OnOKButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
+- connect( ListView, SIGNAL(OnCentreButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
++ connect( ListView, SIGNAL(doubleClicked( Q3ListViewItem*)), SLOT(listDoubleClicked(Q3ListViewItem *)) );
++ connect( ListView, SIGNAL(clicked( Q3ListViewItem*)), SLOT(listClicked(Q3ListViewItem *)) );
++ connect( ListView, SIGNAL(OnOKButton( Q3ListViewItem*)), SLOT(listClicked(Q3ListViewItem *)) );
++ connect( ListView, SIGNAL(OnCentreButton( Q3ListViewItem*)), SLOT(listClicked(Q3ListViewItem *)) );
+ connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) );
+
+ QVBoxLayout* grid = new QVBoxLayout(this);
+@@ -143,16 +143,13 @@ void fileBrowser::populateList()
+ currentDir.setNameFilter(filterStr);
+ // currentDir.setNameFilter("*.txt;*.etx");
+ QString fileL, fileS;
+- const QFileInfoList *list = currentDir.entryInfoList();
+- QFileInfoListIterator it(*list);
+- QFileInfo *fi;
+- while ( (fi=it.current()) )
+- {
+- if (fi->fileName() != ".")
++ QFileInfoList list = currentDir.entryInfoList();
++ for(QFileInfoListIterator it=list.begin();it!=list.end();++it) {
++ if (it->fileName() != ".")
+ {
+- fileS.sprintf( "%10li", fi->size() );
+- fileL.sprintf( "%s",fi->fileName().data() );
+- if( fi->isDir() )
++ fileS.sprintf( "%10li", it->size() );
++ fileL.sprintf( "%s",it->fileName().data() );
++ if( it->isDir() )
+ {
+ fileL+="/";
+ }
+@@ -160,9 +157,8 @@ void fileBrowser::populateList()
+ {
+ //// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL);
+ }
+- new QListViewItem( ListView,fileL,fileS );
++ new Q3ListViewItem( ListView,fileL,fileS );
+ }
+- ++it;
+ }
+ ListView->setSorting( 2, FALSE);
+ dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath());
+@@ -174,7 +170,7 @@ void fileBrowser::upDir()
+ //// qDebug(currentDir.canonicalPath());
+ }
+
+-void fileBrowser::listClicked(QListViewItem *selectedItem)
++void fileBrowser::listClicked(Q3ListViewItem *selectedItem)
+ {
+ if (selectedItem == NULL) return;
+ QString strItem=selectedItem->text(0);
+@@ -196,12 +192,12 @@ void fileBrowser::listClicked(QListViewItem *selectedItem)
+
+ if(QDir(strItem).exists())
+ {
+- currentDir.cd(strItem, TRUE);
++ currentDir.cd(strItem);
+ populateList();
+ }
+ } else
+ {
+- QListViewItem *selectedItem = ListView->selectedItem();
++ Q3ListViewItem *selectedItem = ListView->selectedItem();
+ if (selectedItem == NULL)
+ {
+ filename = "";
+@@ -218,7 +214,7 @@ void fileBrowser::listClicked(QListViewItem *selectedItem)
+ }
+
+ // you may want to switch these 2 functions. I like single clicks
+-void fileBrowser::listDoubleClicked(QListViewItem *selectedItem)
++void fileBrowser::listDoubleClicked(Q3ListViewItem *selectedItem)
+ {
+ }
+
+@@ -253,7 +249,7 @@ void fileBrowser::setHidden(bool _hidden)
+
+ void fileBrowser::onReturn()
+ {
+- QListViewItem *selectedItem = ListView->selectedItem();
++ Q3ListViewItem *selectedItem = ListView->selectedItem();
+ if (selectedItem == NULL)
+ {
+ filename = m_filename->text();
+@@ -282,7 +278,7 @@ void fileBrowser::onHome()
+
+ void fileBrowser::setdir(const QString& s)
+ {
+- currentDir.cd(s, TRUE);
++ currentDir.cd(s);
+ populateList();
+ chdir(s);
+ }
+diff --git a/fileBrowser.h b/fileBrowser.h
+index c536e96..959e866 100644
+--- a/fileBrowser.h
++++ b/fileBrowser.h
+@@ -22,6 +22,9 @@ blah,blah,blah
+ #include <qstringlist.h>
+ #include <qlabel.h>
+ #include <qstring.h>
++#include <qnamespace.h>
++using namespace Qt;
++#include <Qt3Support/Q3ListViewItem>
+
+ class QVBoxLayout;
+ class QHBoxLayout;
+@@ -50,7 +53,7 @@ class fileBrowser : public QDialog
+ QFile file;
+ QString getCurrentFile();
+ QLineEdit* m_filename;
+- int filterspec;
++ QDir::Filters filterspec;
+ // QDir::FilterSpec filterspec;
+
+ //QListViewItem * item;
+@@ -60,8 +63,8 @@ class fileBrowser : public QDialog
+ QString filename;
+ private slots:
+ void upDir();
+- void listDoubleClicked(QListViewItem *);
+- void listClicked(QListViewItem *);
++ void listDoubleClicked(Q3ListViewItem *);
++ void listClicked(Q3ListViewItem *);
+ void OnRoot();
+ void OnCancel();
+ void setHidden(bool);
+diff --git a/hrule.cpp b/hrule.cpp
+index d697acb..4705057 100644
+--- a/hrule.cpp
++++ b/hrule.cpp
+@@ -1,4 +1,5 @@
+ #include <qimage.h>
++#include <qpixmap.h>
+
+ QImage* hRule(int w, int h, unsigned char r, unsigned char g, unsigned char b)
+ {
+diff --git a/infowin.cpp b/infowin.cpp
+index 816a09f..0a25571 100644
+--- a/infowin.cpp
++++ b/infowin.cpp
+@@ -1,7 +1,7 @@
+ #include "infowin.h"
+ #include "version.h"
+ #include <stdio.h>
+-#include <qmultilineedit.h>
++#include <Qt3Support/Q3MultiLineEdit>
+ #include <qlayout.h>
+ #include <qpushbutton.h>
+ #include "names.h"
+@@ -20,9 +20,9 @@ infowin::infowin( QWidget *parent, const char *name, WFlags f) :
+ QWidget(parent, name, f)
+ {
+ QVBoxLayout* vl = new QVBoxLayout(this);
+- aboutbox = new QMultiLineEdit(this);
++ aboutbox = new Q3MultiLineEdit(this);
+ aboutbox->setReadOnly(true);
+- aboutbox->setWordWrap(QMultiLineEdit::WidgetWidth);
++ aboutbox->setWordWrap(Q3MultiLineEdit::WidgetWidth);
+ //grid->addWidget(l, 5, 0);
+ vl->addWidget(aboutbox);
+ QGridLayout* grid = new QGridLayout(vl, 10, 2);
+diff --git a/infowin.h b/infowin.h
+index c003998..92cff3a 100644
+--- a/infowin.h
++++ b/infowin.h
+@@ -2,6 +2,9 @@
+ #define __INFOWIN_H
+
+ #include <qlabel.h>
++#include <Qt3Support/Q3MultiLineEdit>
++#include <qnamespace.h>
++using namespace Qt;
+ class QString;
+ class QMultiLineEdit;
+
+@@ -17,7 +20,7 @@ Q_OBJECT
+ QLabel* docSize;
+ QLabel* docLocation;
+ QLabel* zoom;
+- QMultiLineEdit* aboutbox;
++ Q3MultiLineEdit* aboutbox;
+ public:
+ infowin( QWidget *parent=0, const char *name=0, WFlags f = 0);
+ void setFileSize(int sz) { fileSize->setNum(sz); }
+diff --git a/opiedir/include.pro b/opiedir/include.pro
+new file mode 100644
+index 0000000..44c572b
+--- /dev/null
++++ b/opiedir/include.pro
+@@ -0,0 +1,15 @@
++DEFINES -= OPIE USEQPE
++DEFINES += QT3_SUPPORT
++
++LIBS -= -lopiecore2 -lopieui2 -lqpe
++LIBS += -L${OPIEDIR}/lib
++
++QT += core gui qt3support
++
++isEmpty(UQT_LIBDIR) {
++ UQT_LIBDIR = /usr/lib/uqtreader
++}
++isEmpty(UQT_DATADIR) {
++ UQT_DATADIR = /usr/share/uqtreader
++}
++DEFINES += UQT_LIBDIR='\\"$$UQT_LIBDIR\\"' UQT_DATADIR='\\"$$UQT_DATADIR\\"'
+diff --git a/outputcodec.h b/outputcodec.h
+index 727575c..dfba5a2 100644
+--- a/outputcodec.h
++++ b/outputcodec.h
+@@ -2,6 +2,8 @@
+ #include <qfileinfo.h>
+ #include <qdir.h>
+
++#include "uqtcommon.h"
++
+ #ifdef USEQPE
+ #include <qpe/global.h>
+ #endif
+@@ -29,17 +31,8 @@ class outputcodec : public COutput
+ }
+ outputcodec(const QString& _s) : codec(NULL), handle(NULL), status(-1)
+ {
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString codecpath(getenv("OPIEDIR"));
+-#else
+- QString codecpath(getenv("QTDIR"));
+-#endif
+- codecpath += "/plugins/reader/outcodecs/lib";
+-#else
+- QString codecpath(getenv("READERDIR"));
+- codecpath += "/outcodecs/lib";
+-#endif
++ QString codecpath = uqt_outcodecspath();
++ codecpath += "lib";
+ codecpath += _s;
+ codecpath += ".so";
+ if (QFile::exists(codecpath))
+diff --git a/preferences.cpp b/preferences.cpp
+index 67960ed..044a003 100755
+--- a/preferences.cpp
++++ b/preferences.cpp
+@@ -14,7 +14,7 @@ Config::Config(const QString& _fn) : fname(_fn)
+ {
+ QTextStream t(&fl);
+ QString key, value;
+- while (!t.eof())
++ while (!t.atEnd())
+ {
+ QString data = t.readLine();
+ int colon = data.find(':');
+diff --git a/reader/reader.pro b/reader/reader.pro
+index dc6a5dd..7552bd1 100644
+--- a/reader/reader.pro
++++ b/reader/reader.pro
+@@ -51,7 +51,8 @@ HEADERS = Aportis.h \
+ util.h \
+ utypes.h \
+ version.h \
+- ztxt.h
++ ztxt.h \
++ preferences.h
+
+ SOURCES = BuffDoc.cpp \
+ ButtonPrefs.cpp \
+@@ -76,7 +77,8 @@ SOURCES = BuffDoc.cpp \
+ main.cpp \
+ orkey.cpp \
+ util.cpp \
+- version.cpp
++ version.cpp \
++ preferences.cpp
+
+ INTERFACES =
+ DESTDIR = $(OPIEDIR)/bin
+diff --git a/striphtml.cpp b/striphtml.cpp
+index a2ad56b..1346dc3 100644
+--- a/striphtml.cpp
++++ b/striphtml.cpp
+@@ -8,6 +8,7 @@
+ #include "CDrawBuffer.h"
+ #include "striphtml.h"
+ #include "hrule.h"
++#include "uqtcommon.h"
+
+ #include <qregexp.h>
+ #include <qimage.h>
+@@ -209,14 +210,14 @@ QString striphtml::dehtml(const QString& _info)
+ QString info;
+ for (int i = 0; i < _info.length(); i++)
+ {
+- tchar ch = _info[i];
++ tchar ch = _info[i].unicode();
+ if (ch == '%')
+ {
+ ch = 0;
+ for (int j = 0; j < 2; j++)
+ {
+ ch <<= 4;
+- tchar ch1 = _info[++i];
++ tchar ch1 = _info[++i].unicode();
+ if ('0' <= ch1 && ch1 <= '9')
+ {
+ ch += ch1 - '0';
+@@ -285,7 +286,7 @@ bool striphtml::findanchor(const QString& _info)
+ while (1)
+ {
+ // qApp->processEvents();
+- if ((offset = name.match(toQString(test.data()))) != -1) break;
++ if ((offset = name.exactMatch(toQString(test.data()))) != -1) break;
+ #ifdef USEQPE
+ if ((offset = id.match(toQString(test.data()))) != -1) break;
+ #endif
+@@ -325,17 +326,7 @@ striphtml::~striphtml()
+ void striphtml::initentmap()
+ {
+ entmap = new QMap<QString, tchar>;
+-#ifdef USEQPE
+-#ifdef OPIE
+- QString fname(getenv("OPIEDIR"));
+-#else
+- QString fname(getenv("QTDIR"));
+-#endif
+- fname += "/plugins/reader/data";
+-#else
+- QString fname(getenv("READERDIR"));
+- fname += "/data";
+-#endif
++ QString fname = uqt_datapath();
+ QFileInfo fi;
+ fi.setFile(fname, "HTMLentities");
+ if (fi.exists())
+@@ -347,7 +338,7 @@ void striphtml::initentmap()
+ {
+ QTextStream t(&fl);
+ QString key, value;
+- while (!t.eof())
++ while (!t.atEnd())
+ {
+ QString data = t.readLine();
+ int colon = data.find(':');
+diff --git a/uqtcommon.h b/uqtcommon.h
+new file mode 100644
+index 0000000..e551740
+--- /dev/null
++++ b/uqtcommon.h
+@@ -0,0 +1,57 @@
++#ifndef __UQTCOMMON_H
++#define __UQTCOMMON_H
++
++#include <qstring.h>
++
++#ifdef USEQPE
++# ifdef OPIE
++# define Q_DIR_ENV "OPIEDIR"
++# else
++# define Q_DIR_ENV "QTDIR"
++# endif
++#endif
++
++inline QString uqt_libdir() {
++# ifdef USEQPE
++ return QString(getenv(Q_DIR_ENV))+"/plugins/reader";
++# else
++ const char *rd = getenv("READERDIR");
++ if(rd) return rd;
++ return UQT_LIBDIR;
++# endif
++}
++inline QString uqt_datadir() {
++# ifdef USEQPE
++ return QString(geenv(Q_DIR_ENV));
++# else
++ const char *rd = getenv("READERDIR");
++ if(rd) return rd;
++ return UQT_DATADIR;
++# endif
++}
++
++inline QString uqt_codecspath() {
++ return uqt_libdir()+"/codecs/";
++}
++inline QString uqt_outcodecspath() {
++ return uqt_libdir()+"/outcodecs/";
++}
++inline QString uqt_filterspath() {
++ return uqt_libdir()+"/filters/";
++}
++inline QString uqt_supportpath() {
++ return uqt_libdir()+"/support/";
++}
++
++inline QString uqt_picspath() {
++ return uqt_datadir()+"/pics/";
++}
++inline QString uqt_datapath() {
++# ifdef QPE
++ return uqt_datadir()+"/plugins/reader/data";
++# else
++ return uqt_datadir()+"/data";
++# endif
++}
++
++#endif /* __UQTCOMMON_H */
+diff --git a/version.cpp b/version.cpp
+index aafb3d8..743ef38 100644
+--- a/version.cpp
++++ b/version.cpp
+@@ -2,9 +2,9 @@
+ #include "names.h"
+ #include <qmessagebox.h>
+
+-#include <qmultilineedit.h>
++#include <Qt3Support/Q3MultiLineEdit>
+ #include <qlayout.h>
+-#include <qtextview.h>
++#include <Qt3Support/Q3TextView>
+ class versionbox : public QDialog
+ {
+ public:
+@@ -19,7 +19,7 @@ public:
+ box->setWordWrap(QMultiLineEdit::WidgetWidth);
+ box->setText(txt);
+ */
+- QTextView* box = new QTextView(this);
++ Q3TextView* box = new Q3TextView(this);
+ v->addWidget(box);
+ box->setText(txt);
+ #ifdef USEQPE
diff --git a/recipes-opie/opie-reader/opie-reader.inc b/recipes-opie/opie-reader/opie-reader.inc
new file mode 100644
index 0000000..937fc39
--- /dev/null
+++ b/recipes-opie/opie-reader/opie-reader.inc
@@ -0,0 +1,64 @@
+DESCRIPTION = "E-Book reader"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-reader"
+APPTYPE = "binary"
+DEPENDS = "flite"
+RRECOMMENDS_PN = "opie-reader-filter-htmlfilter, opie-reader-codec-weasel, opie-reader-codec-reb, \
+ opie-reader-codec-isilo, opie-reader-codec-aportis, opie-reader-codec-ppms, opie-reader-codec-chm, \
+ opie-reader-codec-plucker, opie-reader-codec-arrierego"
+RSUGGESTS_PN = "opie-reader-output-flitedyn16, opie-reader-output-flitecmd, opie-reader-output-flitedyn"
+INC_PR = "r5"
+
+S = "${WORKDIR}/opie-reader"
+
+EXTRA_QMAKEVARS_POST += "LIBS+=-L${S}"
+PARALLEL_MAKE = ""
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += " SUBDIRS+=FliteDyn SUBDIRS+=FliteDyn16 INCLUDEPATH+=${STAGING_INCDIR}/flite"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/lib/
+ install -d ${D}${palmtopdir}/plugins/reader/data/
+ install -d ${D}${palmtopdir}/plugins/reader/filters/
+ install -d ${D}${palmtopdir}/plugins/reader/support/
+ install -d ${D}${palmtopdir}/plugins/reader/outcodecs/
+ install -d ${D}${palmtopdir}/plugins/reader/codecs/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+ for f in libAportis libCHM libPlucker libReb libWeasel libiSilo libppms libArriereGo
+ do
+ install -m 644 ${S}/$f.so ${D}${palmtopdir}/plugins/reader/codecs/
+ done
+
+ for f in libreader_codec libreader_pdb libreader_pluckerbase pluckerdecompress
+ do
+ oe_libinstall -so -C ${S}/ $f ${D}${palmtopdir}/lib/
+ done
+
+ install -m 644 ${S}/libHTMLfilter.so ${D}${palmtopdir}/plugins/reader/filters/
+ install -m 644 ${S}/libpluckerdecompress.so ${D}${palmtopdir}/plugins/reader/support/
+
+ for f in libflitecmd libflitedyn libflitedyn16
+ do
+ install -m 644 ${S}/$f.so ${D}${palmtopdir}/plugins/reader/outcodecs
+ done
+
+ install -m 0644 ${S}/HTMLentities ${D}${palmtopdir}/plugins/reader/data/
+}
+
+python populate_packages_prepend () {
+ print "opie-reader:", bb.data.getVar( 'RDEPENDS_opie-reader', d )
+ plugindir = bb.data.expand('${palmtopdir}/plugins/reader', d)
+ for dir, type in [ ( 'codecs', 'codec' ), ( 'filters', 'filter' ), ( 'outcodecs', 'output' ) ]:
+ dir = plugindir + '/' + dir
+ do_split_packages(d, dir,
+ '^lib(.*)\.so$', 'opie-reader-' + type + '-%s',
+ 'Opie reader %s ' + type,
+ prepend=True)
+
+}
diff --git a/recipes-opie/opie-reader/opie-reader_1.2.5.bb b/recipes-opie/opie-reader/opie-reader_1.2.5.bb
new file mode 100644
index 0000000..76bc75c
--- /dev/null
+++ b/recipes-opie/opie-reader/opie-reader_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_opie-reader.tar.bz2;name=split_noncore_apps_opie-reader \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_opie-reader.md5sum] = "73659a51c96ce3365c2255685142c6f7"
+SRC_URI[split_noncore_apps_opie-reader.sha256sum] = "657c03bc8ccb28c0cc8fbc0c46612cbaddbe47ac9ee2856015c38f9712b3a020"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+
diff --git a/recipes-opie/opie-reader/opie-reader_cvs.bb b/recipes-opie/opie-reader/opie-reader_cvs.bb
new file mode 100644
index 0000000..cb25629
--- /dev/null
+++ b/recipes-opie/opie-reader/opie-reader_cvs.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "${INC_PR}.0"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/opie-reader \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
+
diff --git a/recipes-opie/opie-reader/uqtreader_1.2.5.bb b/recipes-opie/opie-reader/uqtreader_1.2.5.bb
new file mode 100644
index 0000000..ba117fd
--- /dev/null
+++ b/recipes-opie/opie-reader/uqtreader_1.2.5.bb
@@ -0,0 +1,76 @@
+DESCRIPTION = "qt4-x11 opie-reader ebook reader port"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+RRECOMMENDS_${PN} = "${PN}-filter-html"
+
+SRCDATE = "20070601"
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_opie-reader.tar.bz2;name=split_noncore_apps_opie-reader \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ file://qt4.patch"
+SRC_URI[split_noncore_apps_opie-reader.md5sum] = "73659a51c96ce3365c2255685142c6f7"
+SRC_URI[split_noncore_apps_opie-reader.sha256sum] = "657c03bc8ccb28c0cc8fbc0c46612cbaddbe47ac9ee2856015c38f9712b3a020"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+S = "${WORKDIR}/opie-reader"
+
+export OPIEDIR="${S}/opiedir"
+
+inherit qt4x11
+
+do_configure() {
+ ${OE_QMAKE_QMAKE} -recursive opie-reader.pro UQT_DATADIR="${datadir}/${PN}" UQT_LIBDIR="${libdir}/${PN}"
+}
+do_compile() {
+ oe_runmake
+}
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/opiedir/bin/opie-reader ${D}${bindir}/uqtreader
+ install -d ${D}${libdir}/${PN}
+ cp -Rpd ${S}/opiedir/lib/lib*.so.* ${D}${libdir}
+ for so in ${S}/opiedir/plugins/reader/{codecs,filters,outcodecs,support}/lib*.so ; do
+ soso="${so#${S}/opiedir/plugins/reader/}"
+ dd="${D}${libdir}/${PN}/$(dirname "$soso")"
+ install -d "$dd"
+ install -m 0755 "$so" "${dd}/$(basename "$soso")"
+ done
+ install -d ${D}${datadir}/${PN}
+ cp -Rpd ${S}/opiedir/plugins/reader/data ${D}${datadir}/${PN}
+ install -d ${D}${datadir}/${PN}/pics
+ cp \
+ ${WORKDIR}/pics/opie-reader/*.png \
+ ${WORKDIR}/pics/inline/{AppsIcon,SettingsIcon,fileopen,close,cut,UtilsIcon,1to1,find,start,finish,rotate,up,down,back,home,forward,paste,fullscreen,repeat,zoom,mag,exec,new,copy,next,enter}.png \
+ ${D}${datadir}/${PN}/pics/
+ install -d ${D}${datadir}/applications
+ sed <${WORKDIR}/apps/Applications/opie-reader.desktop \
+ -e '/^CanFastLoad/d' -e 's,^Icon=.*,Icon=${datadir}/${PN}/pics/OpieReader.png,g' \
+ -e 's,^Exec=.*,Exec=${bindir}/uqtreader,g' \
+ -e '$aType=Application' -e 'aCategories=Applications' \
+ -e '/^Name/s/Opie/UQT/g' \
+ >${D}${datadir}/applications/uqtreader.desktop
+}
+PACKAGES += "${PN}-pdblib ${PN}-codeclib \
+ ${PN}-codec-aportis ${PN}-codec-arrierego ${PN}-codec-chm ${PN}-codec-plucker ${PN}-codec-reb ${PN}-codec-weasel ${PN}-codec-isilo ${PN}-codec-ppms \
+ ${PN}-filter-html ${PN}-output-flitecmd"
+
+FILES_${PN}-pdblib = "${libdir}/libreader_pdb.so.*"
+FILES_${PN}-codeclib = "${libdir}/libreader_codec.so.*"
+FILES_${PN}-codec-aportis = "${libdir}/uqtreader/codecs/libAportis.so"
+FILES_${PN}-codec-arrierego = "${libdir}/uqtreader/codecs/libArriereGo.so"
+FILES_${PN}-codec-chm = "${libdir}/uqtreader/codecs/libCHM.so"
+DEBIAN_NOAUTONAME_${PN}-codec-plucker = 1
+FILES_${PN}-codec-plucker = "${libdir}/uqtreader/codecs/libPlucker.so ${libdir}/lib*plucker*.so.* ${libdir}/uqtreader/support/libpluckerdecompress.so"
+FILES_${PN}-codec-reb = "${libdir}/uqtreader/codecs/libReb.so"
+FILES_${PN}-codec-weasel = "${libdir}/uqtreader/codecs/libWeasel.so"
+FILES_${PN}-codec-isilo = "${libdir}/uqtreader/codecs/libiSilo.so"
+FILES_${PN}-codec-ppms = "${libdir}/uqtreader/codecs/libppms.so"
+FILES_${PN}-filter-html = "${libdir}/uqtreader/filters/libHTMLfilter.so"
+FILES_${PN}-output-flitecmd = "${libdir}/uqtreader/outcodecs/libflitecmd.so"
+FILES_${PN} = "${bindir}/uqtreader ${datadir}/uqtreader/data/* ${datadir}/uqtreader/pics/* ${datadir}/applications/*.desktop"
diff --git a/recipes-opie/opie-reader/uqtreader_cvs.bb b/recipes-opie/opie-reader/uqtreader_cvs.bb
new file mode 100644
index 0000000..fe6a799
--- /dev/null
+++ b/recipes-opie/opie-reader/uqtreader_cvs.bb
@@ -0,0 +1,72 @@
+DESCRIPTION = "qt4-x11 opie-reader ebook reader port"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+RRECOMMENDS_${PN} = "${PN}-filter-html"
+
+SRCDATE = "20070601"
+PV = "1.2.2opie+cvs${SRCDATE}"
+PR = "r4"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/opie-reader \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ file://qt4.patch"
+S = "${WORKDIR}/opie-reader"
+
+export OPIEDIR="${S}/opiedir"
+
+inherit qt4x11
+
+do_configure() {
+ ${OE_QMAKE_QMAKE} -recursive opie-reader.pro UQT_DATADIR="${datadir}/${PN}" UQT_LIBDIR="${libdir}/${PN}"
+}
+do_compile() {
+ oe_runmake
+}
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/opiedir/bin/opie-reader ${D}${bindir}/uqtreader
+ install -d ${D}${libdir}/${PN}
+ cp -Rpd ${S}/opiedir/lib/lib*.so.* ${D}${libdir}
+ for so in ${S}/opiedir/plugins/reader/{codecs,filters,outcodecs,support}/lib*.so ; do
+ soso="${so#${S}/opiedir/plugins/reader/}"
+ dd="${D}${libdir}/${PN}/$(dirname "$soso")"
+ install -d "$dd"
+ install -m 0755 "$so" "${dd}/$(basename "$soso")"
+ done
+ install -d ${D}${datadir}/${PN}
+ cp -Rpd ${S}/opiedir/plugins/reader/data ${D}${datadir}/${PN}
+ install -d ${D}${datadir}/${PN}/pics
+ cp \
+ ${WORKDIR}/pics/opie-reader/*.png \
+ ${WORKDIR}/pics/inline/{AppsIcon,SettingsIcon,fileopen,close,cut,UtilsIcon,1to1,find,start,finish,rotate,up,down,back,home,forward,paste,fullscreen,repeat,zoom,mag,exec,new,copy,next,enter}.png \
+ ${D}${datadir}/${PN}/pics/
+ install -d ${D}${datadir}/applications
+ sed <${WORKDIR}/apps/Applications/opie-reader.desktop \
+ -e '/^CanFastLoad/d' -e 's,^Icon=.*,Icon=${datadir}/${PN}/pics/OpieReader.png,g' \
+ -e 's,^Exec=.*,Exec=${bindir}/uqtreader,g' \
+ -e '$aType=Application' -e 'aCategories=Applications' \
+ -e '/^Name/s/Opie/UQT/g' \
+ >${D}${datadir}/applications/uqtreader.desktop
+}
+PACKAGES += "${PN}-pdblib ${PN}-codeclib \
+ ${PN}-codec-aportis ${PN}-codec-arrierego ${PN}-codec-chm ${PN}-codec-plucker ${PN}-codec-reb ${PN}-codec-weasel ${PN}-codec-isilo ${PN}-codec-ppms \
+ ${PN}-filter-html ${PN}-output-flitecmd"
+
+
+FILES_${PN}-pdblib = "${libdir}/libreader_pdb.so.*"
+FILES_${PN}-codeclib = "${libdir}/libreader_codec.so.*"
+FILES_${PN}-codec-aportis = "${libdir}/uqtreader/codecs/libAportis.so"
+FILES_${PN}-codec-arrierego = "${libdir}/uqtreader/codecs/libArriereGo.so"
+FILES_${PN}-codec-chm = "${libdir}/uqtreader/codecs/libCHM.so"
+DEBIAN_NOAUTONAME_${PN}-codec-plucker = 1
+FILES_${PN}-codec-plucker = "${libdir}/uqtreader/codecs/libPlucker.so ${libdir}/lib*plucker*.so.* ${libdir}/uqtreader/support/libpluckerdecompress.so"
+FILES_${PN}-codec-reb = "${libdir}/uqtreader/codecs/libReb.so"
+FILES_${PN}-codec-weasel = "${libdir}/uqtreader/codecs/libWeasel.so"
+FILES_${PN}-codec-isilo = "${libdir}/uqtreader/codecs/libiSilo.so"
+FILES_${PN}-codec-ppms = "${libdir}/uqtreader/codecs/libppms.so"
+FILES_${PN}-filter-html = "${libdir}/uqtreader/filters/libHTMLfilter.so"
+FILES_${PN}-output-flitecmd = "${libdir}/uqtreader/outcodecs/libflitecmd.so"
+FILES_${PN} = "${bindir}/uqtreader ${datadir}/uqtreader/data/* ${datadir}/uqtreader/pics/* ${datadir}/applications/*.desktop"
diff --git a/recipes-opie/opie-recorder/opie-recorder.inc b/recipes-opie/opie-recorder/opie-recorder.inc
new file mode 100644
index 0000000..1c2d722
--- /dev/null
+++ b/recipes-opie/opie-recorder/opie-recorder.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Audio sampling recorder"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opierec"
+
+
+S = "${WORKDIR}/opierec"
+
+inherit opie
+
+# FILES bin/opierec pics/opierec apps/Applications/opierec.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-recorder/opie-recorder_1.2.5.bb b/recipes-opie/opie-recorder/opie-recorder_1.2.5.bb
new file mode 100644
index 0000000..bb1fbc1
--- /dev/null
+++ b/recipes-opie/opie-recorder/opie-recorder_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+PR = "r1"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_multimedia_opierec.tar.bz2;name=split_noncore_multimedia_opierec \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_multimedia_opierec.md5sum] = "4119fdefa6d3dfeb633a3ab340976976"
+SRC_URI[split_noncore_multimedia_opierec.sha256sum] = "dfefb722950f3532d5b066b3edffdd0edbc60102dd3e96aea2ea999cf2904607"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+
diff --git a/recipes-opie/opie-recorder/opie-recorder_cvs.bb b/recipes-opie/opie-recorder/opie-recorder_cvs.bb
new file mode 100644
index 0000000..b647414
--- /dev/null
+++ b/recipes-opie/opie-recorder/opie-recorder_cvs.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/multimedia/opierec \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
+
+DEPENDS = "libopiecore2 libopieui2 libopiemm2"
diff --git a/recipes-opie/opie-remote/opie-remote.inc b/recipes-opie/opie-remote/opie-remote.inc
new file mode 100644
index 0000000..b710cb4
--- /dev/null
+++ b/recipes-opie/opie-remote/opie-remote.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "A remote control"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "lirc"
+APPNAME = "remote"
+APPTYPE = "binary"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/remote apps/Applications/remote.desktop pics/remote/*.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-remote/opie-remote_1.2.5.bb b/recipes-opie/opie-remote/opie-remote_1.2.5.bb
new file mode 100644
index 0000000..030e82a
--- /dev/null
+++ b/recipes-opie/opie-remote/opie-remote_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_remote.tar.bz2;name=split_noncore_tools_remote \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_tools_remote.md5sum] = "85062b521984ce205f2b09df57cd56f0"
+SRC_URI[split_noncore_tools_remote.sha256sum] = "84b5b90a04c86d6b66b3b4519a7bacbeadb2b413a3bcc1daf4fc1d498fb5536b"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-remote/opie-remote_cvs.bb b/recipes-opie/opie-remote/opie-remote_cvs.bb
new file mode 100644
index 0000000..f70a6a8
--- /dev/null
+++ b/recipes-opie/opie-remote/opie-remote_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/remote \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-restartapplet/opie-restartapplet.inc b/recipes-opie/opie-restartapplet/opie-restartapplet.inc
new file mode 100644
index 0000000..86c1f4c
--- /dev/null
+++ b/recipes-opie/opie-restartapplet/opie-restartapplet.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Restart Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "restartapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/applets/librestartapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-restartapplet/opie-restartapplet2_1.2.5.bb b/recipes-opie/opie-restartapplet/opie-restartapplet2_1.2.5.bb
new file mode 100644
index 0000000..93cedc6
--- /dev/null
+++ b/recipes-opie/opie-restartapplet/opie-restartapplet2_1.2.5.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Restart Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "restartapplet"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_restartapplet2.tar.bz2;name=split_core_applets_restartapplet2 \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_restartapplet2.md5sum] = "d5fedf3676bc08e865cc12750c11467a"
+SRC_URI[split_core_applets_restartapplet2.sha256sum] = "85a622e7ad4767b065f6ea3464af7d9f839f440bc8fa6bbeab6571a7ab66623f"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+
+S = "${WORKDIR}/restartapplet2"
+
+inherit opie
+
+# FILES plugins/applets/librestartapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-restartapplet/opie-restartapplet2_cvs.bb b/recipes-opie/opie-restartapplet/opie-restartapplet2_cvs.bb
new file mode 100644
index 0000000..507f06d
--- /dev/null
+++ b/recipes-opie/opie-restartapplet/opie-restartapplet2_cvs.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Restart Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PV = "${OPIE_GIT_PV}"
+APPNAME = "restartapplet"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/restartapplet2 \
+ ${OPIE_GIT};protocol=git;subpath=apps"
+
+S = "${WORKDIR}/restartapplet2"
+
+inherit opie
+
+# FILES plugins/applets/librestartapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-restartapplet/opie-restartapplet_1.2.5.bb b/recipes-opie/opie-restartapplet/opie-restartapplet_1.2.5.bb
new file mode 100644
index 0000000..22600a2
--- /dev/null
+++ b/recipes-opie/opie-restartapplet/opie-restartapplet_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_restartapplet.tar.bz2;name=split_core_applets_restartapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_restartapplet.md5sum] = "2d327d372cf085ccf0f932086ab5df63"
+SRC_URI[split_core_applets_restartapplet.sha256sum] = "d15e939a2d28fddbaa939828efeb134d135269316a7c5ceea354fd25e3836995"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-restartapplet/opie-restartapplet_cvs.bb b/recipes-opie/opie-restartapplet/opie-restartapplet_cvs.bb
new file mode 100644
index 0000000..500ce4d
--- /dev/null
+++ b/recipes-opie/opie-restartapplet/opie-restartapplet_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/restartapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-restartapplet2/opie-restartapplet2.inc b/recipes-opie/opie-restartapplet2/opie-restartapplet2.inc
new file mode 100644
index 0000000..9fa011f
--- /dev/null
+++ b/recipes-opie/opie-restartapplet2/opie-restartapplet2.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Restart Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "restartapplet2"
+I18N_FILES = "librestartapplet2.ts"
+
+
+S = "${WORKDIR}/restartapplet2"
+
+inherit opie
+
+# FILES plugins/applets/librestartapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-restartapplet2/opie-restartapplet2_1.2.5.bb b/recipes-opie/opie-restartapplet2/opie-restartapplet2_1.2.5.bb
new file mode 100644
index 0000000..15f4900
--- /dev/null
+++ b/recipes-opie/opie-restartapplet2/opie-restartapplet2_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_restartapplet2.tar.bz2;name=split_core_applets_restartapplet2 \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_restartapplet2.md5sum] = "d5fedf3676bc08e865cc12750c11467a"
+SRC_URI[split_core_applets_restartapplet2.sha256sum] = "85a622e7ad4767b065f6ea3464af7d9f839f440bc8fa6bbeab6571a7ab66623f"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-restartapplet2/opie-restartapplet2_cvs.bb b/recipes-opie/opie-restartapplet2/opie-restartapplet2_cvs.bb
new file mode 100644
index 0000000..b6f241f
--- /dev/null
+++ b/recipes-opie/opie-restartapplet2/opie-restartapplet2_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/restartapplet2 \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-rotateapplet/opie-rotateapplet.inc b/recipes-opie/opie-rotateapplet/opie-rotateapplet.inc
new file mode 100644
index 0000000..ae84083
--- /dev/null
+++ b/recipes-opie/opie-rotateapplet/opie-rotateapplet.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Rotate Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "rotateapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES
+do_install() {
+}
diff --git a/recipes-opie/opie-rotateapplet/opie-rotateapplet_1.2.5.bb b/recipes-opie/opie-rotateapplet/opie-rotateapplet_1.2.5.bb
new file mode 100644
index 0000000..28b689e
--- /dev/null
+++ b/recipes-opie/opie-rotateapplet/opie-rotateapplet_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_rotateapplet.tar.bz2;name=split_core_applets_rotateapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_rotateapplet.md5sum] = "b8efa8491e7d53430328e55ee6fec62d"
+SRC_URI[split_core_applets_rotateapplet.sha256sum] = "b8dab51b515f41ad72a935f99f8bb466f4999d27a75c2505e9fde06bbe1d572b"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-rotateapplet/opie-rotateapplet_cvs.bb b/recipes-opie/opie-rotateapplet/opie-rotateapplet_cvs.bb
new file mode 100644
index 0000000..30edbcd
--- /dev/null
+++ b/recipes-opie/opie-rotateapplet/opie-rotateapplet_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/rotateapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-screenshotapplet/opie-screenshotapplet.inc b/recipes-opie/opie-screenshotapplet/opie-screenshotapplet.inc
new file mode 100644
index 0000000..b8c9406
--- /dev/null
+++ b/recipes-opie/opie-screenshotapplet/opie-screenshotapplet.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Screenshot Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "screenshotapplet"
+
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then false; fi
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+}
+
+# FILES plugins/applets/libscreenshotapplet.so*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
diff --git a/recipes-opie/opie-screenshotapplet/opie-screenshotapplet_1.2.5.bb b/recipes-opie/opie-screenshotapplet/opie-screenshotapplet_1.2.5.bb
new file mode 100644
index 0000000..7ed3f54
--- /dev/null
+++ b/recipes-opie/opie-screenshotapplet/opie-screenshotapplet_1.2.5.bb
@@ -0,0 +1,13 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_screenshotapplet.tar.bz2;name=split_core_applets_screenshotapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_core_applets_screenshotapplet.md5sum] = "bf1f9df175489791b222900b6b4f208c"
+SRC_URI[split_core_applets_screenshotapplet.sha256sum] = "2c2e0991c20676f33e4fe9f1b7599d49d726c236dddd980fd5132233c1146fb5"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-screenshotapplet/opie-screenshotapplet_cvs.bb b/recipes-opie/opie-screenshotapplet/opie-screenshotapplet_cvs.bb
new file mode 100644
index 0000000..ae749ea
--- /dev/null
+++ b/recipes-opie/opie-screenshotapplet/opie-screenshotapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/screenshotapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=pics "
diff --git a/recipes-opie/opie-search/opie-search.inc b/recipes-opie/opie-search/opie-search.inc
new file mode 100644
index 0000000..ad35da8
--- /dev/null
+++ b/recipes-opie/opie-search/opie-search.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Search through all PIM data"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "osearch"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libosearch.so* bin/osearch apps/1Pim/osearch.desktop pics/osearch/*.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-search/opie-search_1.2.5.bb b/recipes-opie/opie-search/opie-search_1.2.5.bb
new file mode 100644
index 0000000..e0d3ce2
--- /dev/null
+++ b/recipes-opie/opie-search/opie-search_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_osearch.tar.bz2;name=split_core_pim_osearch \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_pim_osearch.md5sum] = "1bac07d39b8515f119f6c6b512540aca"
+SRC_URI[split_core_pim_osearch.sha256sum] = "89bfdad2e39939e4331e0abe0b81be545ec36f668e6b19ac26d9ad1909d8ccc3"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-search/opie-search_cvs.bb b/recipes-opie/opie-search/opie-search_cvs.bb
new file mode 100644
index 0000000..1f8f9e8
--- /dev/null
+++ b/recipes-opie/opie-search/opie-search_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/osearch \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-security/opie-security.inc b/recipes-opie/opie-security/opie-security.inc
new file mode 100644
index 0000000..b707ff8
--- /dev/null
+++ b/recipes-opie/opie-security/opie-security.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "Security settings dialog for the Opie environment."
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "security"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libsecurity.so* bin/security apps/Settings/Security.desktop pics/security
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+
+ for icon in Security.png lock.png multiauth.png sync.png users.png ownerinfo.png;
+ do
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/$icon ${D}${palmtopdir}/pics/${APPNAME}/
+ done
+}
+
diff --git a/recipes-opie/opie-security/opie-security_1.2.5.bb b/recipes-opie/opie-security/opie-security_1.2.5.bb
new file mode 100644
index 0000000..b20474a
--- /dev/null
+++ b/recipes-opie/opie-security/opie-security_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+PR = "r1"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_settings_security.tar.bz2;name=split_core_settings_security \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_settings_security.md5sum] = "95465832fcb269e25eed2e244f719c62"
+SRC_URI[split_core_settings_security.sha256sum] = "307c72dbcdd16c85e126d7e807d3776c046ae98ffc13e4e77cffb21f29062dc8"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+
diff --git a/recipes-opie/opie-security/opie-security_cvs.bb b/recipes-opie/opie-security/opie-security_cvs.bb
new file mode 100644
index 0000000..d22767d
--- /dev/null
+++ b/recipes-opie/opie-security/opie-security_cvs.bb
@@ -0,0 +1,19 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/settings/security \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
+
+# FILES plugins/application/libsecurity.so* bin/security apps/Settings/Security.desktop pics/security
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+
+ for icon in Security.png lock.png multiauth.png sync.png users.png ownerinfo.png;
+ do
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/$icon ${D}${palmtopdir}/pics/${APPNAME}/
+ done
+}
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-blueping.inc b/recipes-opie/opie-securityplugins/opie-securityplugin-blueping.inc
new file mode 100644
index 0000000..e2cd58b
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-blueping.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Blueping plugin for opie-security authentication. \
+This is a bluetooth-based authentication plugin (you need \
+to have another Bluetooth device around to use it)."
+RDEPENDS_${PN} += "bluez-utils"
+APPNAME = "multiauthbluepingplugin"
+
+include opie-securityplugin.inc
+
+S = "${WORKDIR}/blueping"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/security/
+ install -m 0644 ${WORKDIR}/pics/security/bluepingplugin.png ${D}${palmtopdir}/pics/security/
+}
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-blueping_1.2.5.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-blueping_1.2.5.bb
new file mode 100644
index 0000000..7e918ff
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-blueping_1.2.5.bb
@@ -0,0 +1,9 @@
+require opie-securityplugin-blueping.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_securityplugins_blueping.tar.bz2;name=split_noncore_securityplugins_blueping \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_securityplugins_blueping.md5sum] = "20a9af22fe099a9fcd8e8d749f27a230"
+SRC_URI[split_noncore_securityplugins_blueping.sha256sum] = "e544629f3c345beab01f3de78a339ad51d6626f91b90fd093c551cd627888423"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-blueping_cvs.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-blueping_cvs.bb
new file mode 100644
index 0000000..37e661f
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-blueping_cvs.bb
@@ -0,0 +1,7 @@
+require opie-securityplugin-blueping.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/securityplugins/blueping \
+ ${OPIE_GIT};protocol=git;subpath=pics "
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-dummy.inc b/recipes-opie/opie-securityplugins/opie-securityplugin-dummy.inc
new file mode 100644
index 0000000..bb0a9b9
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-dummy.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Dummy plugin for opie-security authentication. \
+This is a very simple authentication plugin (you just have \
+to press a button basically), for demonstration purpose."
+APPNAME = "multiauthdummyplugin"
+
+include opie-securityplugin.inc
+
+S = "${WORKDIR}/dummy"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/security
+ install -m 0644 ${WORKDIR}/pics/security/dummyplugin.png ${D}${palmtopdir}/pics/security/
+}
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-dummy_1.2.5.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-dummy_1.2.5.bb
new file mode 100644
index 0000000..6648004
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-dummy_1.2.5.bb
@@ -0,0 +1,9 @@
+require opie-securityplugin-dummy.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_securityplugins_dummy.tar.bz2;name=split_noncore_securityplugins_dummy \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_securityplugins_dummy.md5sum] = "2c8ba44f90144a143338fc599854e68e"
+SRC_URI[split_noncore_securityplugins_dummy.sha256sum] = "27c031c34bc6bfe6603b3d5bb0af3d8275839387577dfea4cd435faa080191f6"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-dummy_cvs.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-dummy_cvs.bb
new file mode 100644
index 0000000..0bb50d6
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-dummy_cvs.bb
@@ -0,0 +1,7 @@
+require opie-securityplugin-dummy.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/securityplugins/dummy \
+ ${OPIE_GIT};protocol=git;subpath=pics "
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-notice.inc b/recipes-opie/opie-securityplugins/opie-securityplugin-notice.inc
new file mode 100644
index 0000000..09a4025
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-notice.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Notice plugin for opie-security authentication. \
+It allows you to display, for example, a notice from your legal departement."
+APPNAME = "multiauthnoticeplugin"
+
+include opie-securityplugin.inc
+
+S = "${WORKDIR}/notice"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/security/
+ install -m 0644 ${WORKDIR}/pics/security/noticeplugin*.png ${D}${palmtopdir}/pics/security/
+}
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-notice_1.2.5.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-notice_1.2.5.bb
new file mode 100644
index 0000000..de5903f
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-notice_1.2.5.bb
@@ -0,0 +1,9 @@
+require opie-securityplugin-notice.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_securityplugins_notice.tar.bz2;name=split_noncore_securityplugins_notice \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_securityplugins_notice.md5sum] = "073e2ae5527adfb56c52ab9d59eac0a1"
+SRC_URI[split_noncore_securityplugins_notice.sha256sum] = "62526d7010759c8a148a14fe0076e88202c7d7acd127c90ec5cef3ef6fa1368c"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-notice_cvs.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-notice_cvs.bb
new file mode 100644
index 0000000..93df53c
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-notice_cvs.bb
@@ -0,0 +1,7 @@
+require opie-securityplugin-notice.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/securityplugins/notice \
+ ${OPIE_GIT};protocol=git;subpath=pics "
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-pin.inc b/recipes-opie/opie-securityplugins/opie-securityplugin-pin.inc
new file mode 100644
index 0000000..6286d8a
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-pin.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "PIN plugin for opie-security authentication. \
+It implements the same kind of widgets as opie-security package, \
+but this implementation can be used along with other authentication \
+methods in the Opie Multi-Authentication Framework."
+APPNAME = "multiauthpinplugin"
+
+include opie-securityplugin.inc
+
+S = "${WORKDIR}/pin"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/security/
+ install -m 0644 ${WORKDIR}/pics/security/pinplugin.png ${D}${palmtopdir}/pics/security/
+}
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-pin_1.2.5.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-pin_1.2.5.bb
new file mode 100644
index 0000000..b512681
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-pin_1.2.5.bb
@@ -0,0 +1,9 @@
+require opie-securityplugin-pin.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_securityplugins_pin.tar.bz2;name=split_noncore_securityplugins_pin \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_securityplugins_pin.md5sum] = "c1a8ae2e824e4b52971b1a1020013b6d"
+SRC_URI[split_noncore_securityplugins_pin.sha256sum] = "7694bc6538883ed58864aa5798d5510e39b895a2a2ee17ddb2b78af55549601c"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin-pin_cvs.bb b/recipes-opie/opie-securityplugins/opie-securityplugin-pin_cvs.bb
new file mode 100644
index 0000000..4b6f7f8
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin-pin_cvs.bb
@@ -0,0 +1,7 @@
+require opie-securityplugin-pin.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/securityplugins/pin \
+ ${OPIE_GIT};protocol=git;subpath=pics "
+
diff --git a/recipes-opie/opie-securityplugins/opie-securityplugin.inc b/recipes-opie/opie-securityplugins/opie-securityplugin.inc
new file mode 100644
index 0000000..231c201
--- /dev/null
+++ b/recipes-opie/opie-securityplugins/opie-securityplugin.inc
@@ -0,0 +1,7 @@
+SECTION = "opie/security"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-security"
+I18N_FILES = "lib${APPNAME}.ts"
+
+inherit opie
diff --git a/recipes-opie/opie-sfcave/opie-sfcave.inc b/recipes-opie/opie-sfcave/opie-sfcave.inc
new file mode 100644
index 0000000..bb39fa7
--- /dev/null
+++ b/recipes-opie/opie-sfcave/opie-sfcave.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "SFCave for the Zaurus. Fly the dot though the cave avoiding the walls."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "sfcave"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/sfcave apps/Games/sfcave.desktop pics/sfcave
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-sfcave/opie-sfcave_1.2.5.bb b/recipes-opie/opie-sfcave/opie-sfcave_1.2.5.bb
new file mode 100644
index 0000000..1bbb556
--- /dev/null
+++ b/recipes-opie/opie-sfcave/opie-sfcave_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_sfcave.tar.bz2;name=split_noncore_games_sfcave \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_sfcave.md5sum] = "fd4ac764650eb3d7a420d57fc973faee"
+SRC_URI[split_noncore_games_sfcave.sha256sum] = "3a90cf66abe4d1a08991f479abd60a596d857963b83917e6ccc31e60959deeb8"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-sfcave/opie-sfcave_cvs.bb b/recipes-opie/opie-sfcave/opie-sfcave_cvs.bb
new file mode 100644
index 0000000..7dbb824
--- /dev/null
+++ b/recipes-opie/opie-sfcave/opie-sfcave_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/sfcave \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-sh-snes/files/opie-sh-snes.sh b/recipes-opie/opie-sh-snes/files/opie-sh-snes.sh
new file mode 100644
index 0000000..0d5c3e0
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/files/opie-sh-snes.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+#Path to your Roms if you want to disable the menu
+#LOCATION=/mnt/card/games/snes
+
+# Give a default
+if test -e /root/Settings/opie-sh-snes.conf
+then
+ LOCATION="`cat /root/Settings/opie-sh-snes.conf`"
+else
+ echo "/mnt/card/games/snes" > /root/Settings/opie-sh-snes.conf
+ #Enable Menu Rom Finder
+ LOCATION="` opie-sh -i -t "Path to Roms" -g -E -l -F /root/Settings/opie-sh-snes.conf `"
+ ! test -z "$LOCATION" && echo $LOCATION > /root/Settings/opie-sh-snes.conf
+fi
+
+echo "LOCATION = [$LOCATION]"
+if [ "$LOCATION" = "" ]; then exit; fi
+
+
+#Load a game from your list
+ROM=` cd "$LOCATION" ; ls -1 *.zip \
+ | opie-sh -i -l -t "Snes9x" -F -g `
+if [ "$ROM" = "" ]; then exit; fi
+
+echo "ROM = [$ROM]"
+
+#Enable Sound Button
+setsound () {
+ opie-sh -m -t "Sound" \
+ -M "Do you want sound?" \
+ -g -0 Yes -1 No
+RETURNCODE=$?
+
+case $RETURNCODE in
+ 0) SOUND="-sound" ;;
+ 1) SOUND="-nosound" ;;
+esac
+
+echo "SOUND = [$SOUND] / RC = [$?]"
+}
+
+
+setsound
+
+
+
+if [ "$SOUND" = "" ]; then exit; fi
+
+
+snes9x $SOUND "$LOCATION/$ROM"
diff --git a/recipes-opie/opie-sh-snes/files/snes.desktop b/recipes-opie/opie-sh-snes/files/snes.desktop
new file mode 100644
index 0000000..3139498
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/files/snes.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Name=Snes9x
+Icon=snes
+Exec=opie-sh-snes.sh
+Comment=Displays a list of games for use with snes9x
+Type=Application
diff --git a/recipes-opie/opie-sh-snes/files/snes.png b/recipes-opie/opie-sh-snes/files/snes.png
new file mode 100644
index 0000000..2c0abfe
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/files/snes.png
Binary files differ
diff --git a/recipes-opie/opie-sh-snes/opie-sh-snes.inc b/recipes-opie/opie-sh-snes/opie-sh-snes.inc
new file mode 100644
index 0000000..15a8ac0
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/opie-sh-snes.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Displays a list of available ROMs for use with snes9x."
+SECTION = "opie/shell"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+RDEPENDS_${PN} = "opie-sh"
+
+inherit opie
+
+FILES_${PN} = "/opt/QtPalmtop"
+
+SRC_URI = "file://snes.desktop \
+ file://snes.png \
+ file://opie-sh-snes.sh"
+
+
+do_install() {
+
+ for dir in apps apps/Games bin pics
+ do
+ install -d ${D}${palmtopdir}/$dir
+ done
+
+ install -m 755 ${WORKDIR}/opie-sh-snes.sh ${D}${palmtopdir}/bin
+ install -m 644 ${WORKDIR}/*.png ${D}${palmtopdir}/pics
+ install -m 644 ${WORKDIR}/*.desktop ${D}${palmtopdir}/apps/Games
+}
diff --git a/recipes-opie/opie-sh-snes/opie-sh-snes_0.2.bb b/recipes-opie/opie-sh-snes/opie-sh-snes_0.2.bb
new file mode 100644
index 0000000..5e709e4
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/opie-sh-snes_0.2.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Displays a list of available ROMs for use with snes9x."
+SECTION = "opie/shell"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+RDEPENDS_${PN} = "opie-sh"
+
+
+PR = "r3"
+
+FILES_${PN} = "/opt/QtPalmtop"
+
+SRC_URI = "file://snes.desktop \
+ file://snes.png \
+ file://opie-sh-snes.sh"
+
+
+do_install() {
+
+ for dir in apps apps/Games bin pics
+ do
+ install -d ${D}${palmtopdir}/$dir
+ done
+
+ install -m 755 ${WORKDIR}/opie-sh-snes.sh ${D}${palmtopdir}/bin
+ install -m 644 ${WORKDIR}/*.png ${D}${palmtopdir}/pics
+ install -m 644 ${WORKDIR}/*.desktop ${D}${palmtopdir}/apps/Games
+}
diff --git a/recipes-opie/opie-sh-snes/opie-sh-snes_1.2.5.bb b/recipes-opie/opie-sh-snes/opie-sh-snes_1.2.5.bb
new file mode 100644
index 0000000..9a48668
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/opie-sh-snes_1.2.5.bb
@@ -0,0 +1,3 @@
+require ${PN}.inc
+
+PR = "r0"
diff --git a/recipes-opie/opie-sh-snes/opie-sh-snes_cvs.bb b/recipes-opie/opie-sh-snes/opie-sh-snes_cvs.bb
new file mode 100644
index 0000000..7788d32
--- /dev/null
+++ b/recipes-opie/opie-sh-snes/opie-sh-snes_cvs.bb
@@ -0,0 +1,4 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
diff --git a/recipes-opie/opie-sh/files/opie-sh-path.patch b/recipes-opie/opie-sh/files/opie-sh-path.patch
new file mode 100644
index 0000000..f4ea0c1
--- /dev/null
+++ b/recipes-opie/opie-sh/files/opie-sh-path.patch
@@ -0,0 +1,214 @@
+Index: opie-sh/scripts/diskfree.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/diskfree.sh,v
+retrieving revision 1.3
+diff -u -d -r1.3 diskfree.sh
+--- opie-sh/scripts/diskfree.sh 14 Aug 2004 12:05:39 -0000 1.3
++++ opie-sh/scripts/diskfree.sh 21 Sep 2008 13:22:55 -0000
+@@ -17,7 +17,7 @@
+ # 20020524-5 - bugfix
+ # 20020524-1 - initial release
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ # there must be a better way to do this with sed, but i had no time
+ # time to look into this yet...
+Index: opie-sh/scripts/filesystem_mounter.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/filesystem_mounter.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 filesystem_mounter.sh
+--- opie-sh/scripts/filesystem_mounter.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/filesystem_mounter.sh 21 Sep 2008 13:22:55 -0000
+@@ -22,7 +22,7 @@
+ # 20020517-1 - nicer fullscreen, added about, tried icon
+ #
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ ######################################################################
+ # subroutines
+Index: opie-sh/scripts/killproc.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/killproc.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 killproc.sh
+--- opie-sh/scripts/killproc.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/killproc.sh 21 Sep 2008 13:22:55 -0000
+@@ -18,7 +18,7 @@
+ # 20020519-1 - added icon to output
+ # 20020517-1 - nicer fullscreen, added about, tried icon
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ ######################################################################
+ # subroutines
+Index: opie-sh/scripts/launcher_refresh.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/launcher_refresh.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 launcher_refresh.sh
+--- opie-sh/scripts/launcher_refresh.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/launcher_refresh.sh 21 Sep 2008 13:22:55 -0000
+@@ -14,7 +14,7 @@
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ # GNU General Public License for more details.
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ launcher_refresh() {
+ ( echo "<img src=$OPIEDIR/pics/opie-sh-scripts/launcher_refresh.png>"
+@@ -36,9 +36,9 @@
+ #
+ # main
+
+-$OPIEDIR/bin/qcop QPE/TaskBar "reloadInputMethods()"
+-#$OPIEDIR/bin/qcop QPE/System "restart()"
+-$OPIEDIR/bin/qcop QPE/System "linkChanged(QString)"
++/usr/bin/qcop QPE/TaskBar "reloadInputMethods()"
++#/usr/bin/qcop QPE/System "restart()"
++/usr/bin/qcop QPE/System "linkChanged(QString)"
+
+ launcher_refresh
+ cleanup
+Index: opie-sh/scripts/logviewer.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/logviewer.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 logviewer.sh
+--- opie-sh/scripts/logviewer.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/logviewer.sh 21 Sep 2008 13:22:55 -0000
+@@ -17,7 +17,7 @@
+ # 20020526-1a - initial release...
+ #
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+ INITPATH=/etc/init.d
+
+ ######################################################################
+Index: opie-sh/scripts/microkbd.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/microkbd.sh,v
+retrieving revision 1.1
+diff -u -d -r1.1 microkbd.sh
+--- opie-sh/scripts/microkbd.sh 18 Oct 2004 22:00:20 -0000 1.1
++++ opie-sh/scripts/microkbd.sh 21 Sep 2008 13:22:55 -0000
+@@ -19,7 +19,7 @@
+ # 20020517-2 - bugfixed fullscreen, added info about ifconfig
+ # 20020517-1 - added about, fullscreen and icon
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ ######################################################################
+ # subroutines
+Index: opie-sh/scripts/opie-sh-ssh-askpass.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/opie-sh-ssh-askpass.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 opie-sh-ssh-askpass.sh
+--- opie-sh/scripts/opie-sh-ssh-askpass.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/opie-sh-ssh-askpass.sh 21 Sep 2008 13:22:55 -0000
+@@ -2,7 +2,7 @@
+
+ # opie-sh-ssh-askpass -- ssh-askpass utility using opie-sh
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ exec $OPIE_SH -i -p -t "OpenSSH" -g -L "<SMALL>$@" 2>/dev/null
+
+Index: opie-sh/scripts/opie-sh-wavelanchooser.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/opie-sh-wavelanchooser.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 opie-sh-wavelanchooser.sh
+--- opie-sh/scripts/opie-sh-wavelanchooser.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/opie-sh-wavelanchooser.sh 21 Sep 2008 13:22:55 -0000
+@@ -19,7 +19,7 @@
+ # 20020524-1 - initial working release planned
+ #
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ about() {
+ ( echo "<img src=$OPIEDIR/pics/opie-sh-scripts/qtwavelan.png>"
+Index: opie-sh/scripts/rsyncme.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/rsyncme.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 rsyncme.sh
+--- opie-sh/scripts/rsyncme.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/rsyncme.sh 21 Sep 2008 13:22:55 -0000
+@@ -18,7 +18,7 @@
+ #
+
+ CFG=$OPIEDIR/share/config/rsyncme.cfg
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ update_cfg() {
+ # check if dir is in CFG and if not add it
+Index: opie-sh/scripts/service_manager.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/service_manager.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 service_manager.sh
+--- opie-sh/scripts/service_manager.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/service_manager.sh 21 Sep 2008 13:22:55 -0000
+@@ -19,7 +19,7 @@
+ # 20020517-1 - added about and fullscreen
+ #
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+ INITPATH=/etc/init.d
+
+ ######################################################################
+Index: opie-sh/scripts/stowctrl.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/stowctrl.sh,v
+retrieving revision 1.2
+diff -u -d -r1.2 stowctrl.sh
+--- opie-sh/scripts/stowctrl.sh 14 Aug 2004 12:05:39 -0000 1.2
++++ opie-sh/scripts/stowctrl.sh 21 Sep 2008 13:22:55 -0000
+@@ -19,7 +19,7 @@
+ # 20020517-2 - bugfixed fullscreen, added info about ifconfig
+ # 20020517-1 - added about, fullscreen and icon
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ ######################################################################
+ # subroutines
+Index: opie-sh/scripts/usbnetctrl.sh
+===================================================================
+RCS file: /cvs/opie/noncore/tools/opie-sh/scripts/usbnetctrl.sh,v
+retrieving revision 1.3
+diff -u -d -r1.3 usbnetctrl.sh
+--- opie-sh/scripts/usbnetctrl.sh 14 Aug 2004 12:05:39 -0000 1.3
++++ opie-sh/scripts/usbnetctrl.sh 21 Sep 2008 13:22:55 -0000
+@@ -18,7 +18,7 @@
+ # 20020517-2 - bugfixed fullscreen, added info about ifconfig
+ # 20020517-1 - added about, fullscreen and icon
+
+-OPIE_SH=$OPIEDIR/bin/opie-sh
++OPIE_SH=opie-sh
+
+ ######################################################################
+ # subroutines
+@@ -30,7 +30,7 @@
+ echo "activate / deactivate the usbnet-driver (on ipaq)"
+ echo "<p>"
+ echo "To use it at first, you need to change the ifconfig"
+- echo "line in $OPIEDIR/bin/usbnetctrl.sh."
++ echo "line in $0."
+ ) | $OPIE_SH -t "usbnet control" -f &
+ SCREENCLEAN=$!
+ sleep 1
diff --git a/recipes-opie/opie-sh/opie-sh.inc b/recipes-opie/opie-sh/opie-sh.inc
new file mode 100644
index 0000000..3818a21
--- /dev/null
+++ b/recipes-opie/opie-sh/opie-sh.inc
@@ -0,0 +1,64 @@
+DESCRIPTION = "A QDialog shell frontend"
+SECTION = "opie/shell"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-sh"
+APPTYPE = "binary"
+PR = "r3"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/opie-sh apps/Opie-SH/opie-sh.desktop pics/opie-sh/*.png help/opie-sh/*.html
+do_install() {
+ install -d ${D}${palmtopdir}/bin
+ install -m 0755 ${WORKDIR}/${APPNAME}/scripts/*.sh ${D}${palmtopdir}/bin/
+ install -m 0755 ${WORKDIR}/bin/opie-sh-howto.sh ${D}${palmtopdir}/bin/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/pics/opie-sh-scripts/
+ install -m 0644 ${WORKDIR}/pics/opie-sh-scripts/*.png ${D}${palmtopdir}/pics/opie-sh-scripts/
+ install -d ${D}${palmtopdir}/apps/Opie-SH/
+ install -m 0644 ${WORKDIR}/apps/Opie-SH/*.desktop ${D}${palmtopdir}/apps/Opie-SH/
+ install -d ${D}${palmtopdir}/help/${APPNAME}/
+ install -m 0644 ${WORKDIR}/help/${APPNAME}/*.html ${D}${palmtopdir}/help/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/config
+ install -m 0644 ${WORKDIR}/share/config/*.cfg ${D}${palmtopdir}/share/config/
+ rm -f ${D}${palmtopdir}/pics/opie-sh-scripts/kbdctrl.png
+}
+
+PACKAGES += " opie-sh-microkbd opie-sh-diskfree opie-sh-fsmounter opie-sh-hostlist \
+opie-sh-killproc opie-sh-launcher-refresh opie-sh-logviewer opie-sh-rsynchelper \
+opie-sh-servicemanager opie-sh-ssh-askpass opie-sh-stowawayctrl opie-sh-usbnetctrl \
+opie-sh-wavelanchooser "
+
+RDEPENDS_opie-sh-microkbd = "opie-sh"
+RDEPENDS_opie-sh-diskfree = "opie-sh"
+RDEPENDS_opie-sh-fsmounter = "opie-sh"
+RDEPENDS_opie-sh-hostlist = "opie-sh"
+RDEPENDS_opie-sh-killproc = "opie-sh"
+RDEPENDS_opie-sh-launcher-refresh = "opie-sh"
+RDEPENDS_opie-sh-logviewer = "opie-sh"
+RDEPENDS_opie-sh-rsynchelper = "opie-sh"
+RDEPENDS_opie-sh-servicemanager = "opie-sh"
+RDEPENDS_opie-sh-ssh-askpass = "opie-sh"
+RDEPENDS_opie-sh-stowawayctrl = "opie-sh"
+RDEPENDS_opie-sh-usbnetctrl = "opie-sh"
+RDEPENDS_opie-sh-wavelanchooser = "opie-sh"
+
+FILES_opie-sh-microkbd = " ${palmtopdir}/bin/microkbd.sh ${palmtopdir}/apps/Opie-SH/microkbd.desktop ${palmtopdir}/pics/opie-sh-scripts/keyz-cfg.png"
+FILES_opie-sh-diskfree = " ${palmtopdir}/bin/diskfree.sh ${palmtopdir}/apps/Opie-SH/diskfree.desktop ${palmtopdir}/pics/opie-sh-scripts/diskfree.png"
+FILES_opie-sh-fsmounter = " ${palmtopdir}/bin/filesystem_mounter.sh ${palmtopdir}/pics/opie-sh-scripts/fsmounter.png ${palmtopdir}/apps/Opie-SH/filesystem_mounter.desktop"
+FILES_opie-sh-hostlist = " ${palmtopdir}/bin/hostlist.sh ${palmtopdir}/pics/opie-sh-scripts/hostlist.png ${palmtopdir}/apps/Opie-SH/hostlist.desktop ${palmtopdir}/share/config/hostlist.cfg"
+FILES_opie-sh-killproc = " ${palmtopdir}/bin/killproc.sh ${palmtopdir}/apps/Opie-SH/killproc.desktop ${palmtopdir}/pics/opie-sh-scripts/killproc.png"
+FILES_opie-sh-launcher-refresh = " ${palmtopdir}/bin/launcher_refresh.sh ${palmtopdir}/pics/opie-sh-scripts/launcher_refresh.png ${palmtopdir}/apps/Opie-SH/launcher_refresh.desktop"
+FILES_opie-sh-logviewer = " ${palmtopdir}/bin/logviewer.sh ${palmtopdir}/apps/Opie-SH/logviewer.desktop ${palmtopdir}/pics/opie-sh-scripts/logviewer.png"
+FILES_opie-sh-rsynchelper = " ${palmtopdir}/bin/rsyncme.sh ${palmtopdir}/apps/Opie-SH/rsyncme.desktop ${palmtopdir}/pics/opie-sh-scripts/rsyncme.png ${palmtopdir}/share/config/rsyncme.cfg"
+FILES_opie-sh-servicemanager = " ${palmtopdir}/bin/service_manager.sh ${palmtopdir}/apps/Opie-SH/service_manager.desktop ${palmtopdir}/pics/opie-sh-scripts/service_manager.png"
+FILES_opie-sh-ssh-askpass = " ${palmtopdir}/bin/opie-sh-ssh-askpass.sh"
+FILES_opie-sh-stowawayctrl = " ${palmtopdir}/bin/stowctrl.sh ${palmtopdir}/apps/Opie-SH/stowctrl.desktop ${palmtopdir}/pics/opie-sh-scripts/stowctrl.png"
+FILES_opie-sh-usbnetctrl = " ${palmtopdir}/bin/usbnetctrl.sh ${palmtopdir}/apps/Opie-SH/usbnetctrl.desktop ${palmtopdir}/pics/opie-sh-scripts/usbnetctrl.png"
+FILES_opie-sh-wavelanchooser = " ${palmtopdir}/bin/opie-sh-wavelanchooser.sh ${palmtopdir}/apps/Opie-SH/opie-sh-wavelanchooser.desktop ${palmtopdir}/pics/opie-sh-scripts/qtwavelan.png"
+FILES_${PN} = " ${palmtopdir}/bin/opie-sh-howto.sh ${bindir}/opie-sh ${palmtopdir}/apps/Opie-SH/opie-sh.desktop ${palmtopdir}/pics/opie-sh/*.png ${palmtopdir}/help/opie-sh/*.html"
+
diff --git a/recipes-opie/opie-sh/opie-sh_1.2.5.bb b/recipes-opie/opie-sh/opie-sh_1.2.5.bb
new file mode 100644
index 0000000..92f11bc
--- /dev/null
+++ b/recipes-opie/opie-sh/opie-sh_1.2.5.bb
@@ -0,0 +1,21 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_tools_opie-sh.tar.bz2;name=split_noncore_tools_opie-sh \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_help.tar.bz2;name=split_help \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_bin.tar.bz2;name=split_bin \
+ file://opie-sh-path.patch"
+SRC_URI[split_noncore_tools_opie-sh.md5sum] = "93f44cbe6ccfd11ac68a934f623604ae"
+SRC_URI[split_noncore_tools_opie-sh.sha256sum] = "fc1d5ad1de203dbf6c81c7d863f524c8abe81f5a6d5c736f97ea8cc99bb208a5"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_help.md5sum] = "43393aaa1840e4f6e2c2a3397e451e2a"
+SRC_URI[split_help.sha256sum] = "6e4e3e7d626611a78e34343f88ebd8a6e5e7255be23859b7cd166b2575cbb632"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_bin.md5sum] = "1de9fd3614f11496ef9d4cfa37c1ad80"
+SRC_URI[split_bin.sha256sum] = "f386414463138249c6f335d167beaebdf797de214727789ab2ada732e02f71a2"
diff --git a/recipes-opie/opie-sh/opie-sh_cvs.bb b/recipes-opie/opie-sh/opie-sh_cvs.bb
new file mode 100644
index 0000000..915376c
--- /dev/null
+++ b/recipes-opie/opie-sh/opie-sh_cvs.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/tools/opie-sh \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=help \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=bin \
+ file://opie-sh-path.patch"
diff --git a/recipes-opie/opie-sheet/opie-sheet.inc b/recipes-opie/opie-sheet/opie-sheet.inc
new file mode 100644
index 0000000..d7ff7d3
--- /dev/null
+++ b/recipes-opie/opie-sheet/opie-sheet.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Opie Sheet"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-sheet"
+
+
+S = "${WORKDIR}/opie-sheet"
+
+inherit opie
+
+# FILES plugins/application/libsheetqt.so* bin/sheetqt apps/Applications/opie-sheet.desktop help/en/html/sheetqt.html pics/opie-sheet/*.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-sheet/opie-sheet_1.2.5.bb b/recipes-opie/opie-sheet/opie-sheet_1.2.5.bb
new file mode 100644
index 0000000..dc6cf4b
--- /dev/null
+++ b/recipes-opie/opie-sheet/opie-sheet_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_opie-sheet.tar.bz2;name=split_noncore_apps_opie-sheet \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_opie-sheet.md5sum] = "5fcf3f47de7affabcdb131035ced865a"
+SRC_URI[split_noncore_apps_opie-sheet.sha256sum] = "1caad16f7ce60aea909505d9b642cc302c67fa9ffce0888c6f5421ee4eed4d22"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-sheet/opie-sheet_cvs.bb b/recipes-opie/opie-sheet/opie-sheet_cvs.bb
new file mode 100644
index 0000000..13d6c58
--- /dev/null
+++ b/recipes-opie/opie-sheet/opie-sheet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/opie-sheet \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-snake/opie-snake.inc b/recipes-opie/opie-snake/opie-snake.inc
new file mode 100644
index 0000000..cd980a0
--- /dev/null
+++ b/recipes-opie/opie-snake/opie-snake.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Game: control the snake"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "snake"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libsnake.so* bin/snake apps/Games/snake.desktop pics/snake
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.xpm ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-snake/opie-snake_1.2.5.bb b/recipes-opie/opie-snake/opie-snake_1.2.5.bb
new file mode 100644
index 0000000..da9c505
--- /dev/null
+++ b/recipes-opie/opie-snake/opie-snake_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_snake.tar.bz2;name=split_noncore_games_snake \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_snake.md5sum] = "658fa6c340be514e0c34e720cf557788"
+SRC_URI[split_noncore_games_snake.sha256sum] = "5560cecb73cca15196c67fa37b4b589c3f5d2010202f048b61ade13059ce9a09"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-snake/opie-snake_cvs.bb b/recipes-opie/opie-snake/opie-snake_cvs.bb
new file mode 100644
index 0000000..93e3d7e
--- /dev/null
+++ b/recipes-opie/opie-snake/opie-snake_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/snake \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-solitaire/opie-solitaire.inc b/recipes-opie/opie-solitaire/opie-solitaire.inc
new file mode 100644
index 0000000..fa340b3
--- /dev/null
+++ b/recipes-opie/opie-solitaire/opie-solitaire.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Game: solitaire card games"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "patience"
+
+
+S = "${WORKDIR}/solitaire"
+
+inherit opie
+
+# FILES plugins/application/libpatience.so* bin/patience apps/Games/patience.desktop pics/cards
+do_install() {
+ install -d ${D}${palmtopdir}/pics/cards/
+ install -m 0644 ${WORKDIR}/pics/cards/*.png ${D}${palmtopdir}/pics/cards/
+}
+
+
diff --git a/recipes-opie/opie-solitaire/opie-solitaire_1.2.5.bb b/recipes-opie/opie-solitaire/opie-solitaire_1.2.5.bb
new file mode 100644
index 0000000..9d54d98
--- /dev/null
+++ b/recipes-opie/opie-solitaire/opie-solitaire_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_solitaire.tar.bz2;name=split_noncore_games_solitaire \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_solitaire.md5sum] = "ed104d1dbc58b824fb965a7d7d4c1d96"
+SRC_URI[split_noncore_games_solitaire.sha256sum] = "8ca1459a633dc66295f074d6e37fcaccb593fa617fd5c0daf3d4ac25035a2b6b"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-solitaire/opie-solitaire_cvs.bb b/recipes-opie/opie-solitaire/opie-solitaire_cvs.bb
new file mode 100644
index 0000000..469c374
--- /dev/null
+++ b/recipes-opie/opie-solitaire/opie-solitaire_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/solitaire \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-sounds/opie-sounds.inc b/recipes-opie/opie-sounds/opie-sounds.inc
new file mode 100644
index 0000000..aa39e6e
--- /dev/null
+++ b/recipes-opie/opie-sounds/opie-sounds.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Common Opie Sounds"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+S = "${WORKDIR}/sounds"
+
+SOUNDS = "alarm touchsound keysound"
+
+do_install() {
+ install -d ${D}${palmtopdir}/sounds/
+ for i in ${SOUNDS}
+ do
+ install $i.wav ${D}${palmtopdir}/sounds/$i.wav
+ done
+}
+
+FILES_${PN} = "${palmtopdir}"
diff --git a/recipes-opie/opie-sounds/opie-sounds_1.2.5.bb b/recipes-opie/opie-sounds/opie-sounds_1.2.5.bb
new file mode 100644
index 0000000..ad38275
--- /dev/null
+++ b/recipes-opie/opie-sounds/opie-sounds_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_sounds.tar.bz2;name=split_sounds"
+SRC_URI[split_sounds.md5sum] = "b0f2bee8c158f54162e5e74d4d9594df"
+SRC_URI[split_sounds.sha256sum] = "55441675b28209cb2e34ffc0875c6d47aee27bd65dbdb40a223e5fa05c5a7c06"
diff --git a/recipes-opie/opie-sounds/opie-sounds_cvs.bb b/recipes-opie/opie-sounds/opie-sounds_cvs.bb
new file mode 100644
index 0000000..77efe49
--- /dev/null
+++ b/recipes-opie/opie-sounds/opie-sounds_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+OPIE_GIT_PV ?= "1.2.2+cvs${SRCDATE}"
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=sounds"
diff --git a/recipes-opie/opie-sshkeys/opie-sshkeys.inc b/recipes-opie/opie-sshkeys/opie-sshkeys.inc
new file mode 100644
index 0000000..f8d7bee
--- /dev/null
+++ b/recipes-opie/opie-sshkeys/opie-sshkeys.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Utility for managing ssh-agent keys"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "ssh opie-sh-ssh-askpass"
+APPNAME = "sshkeys"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES bin/sshkeys apps/Settings/sshkeys.desktop pics/sshkeys/sshkeys.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-sshkeys/opie-sshkeys_1.2.5.bb b/recipes-opie/opie-sshkeys/opie-sshkeys_1.2.5.bb
new file mode 100644
index 0000000..27b8540
--- /dev/null
+++ b/recipes-opie/opie-sshkeys/opie-sshkeys_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_sshkeys.tar.bz2;name=split_noncore_settings_sshkeys \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_sshkeys.md5sum] = "155773a2314f69566f3a853816af3ed4"
+SRC_URI[split_noncore_settings_sshkeys.sha256sum] = "a844bfcc0848aaffa822a9687e0c3715f8e50261fe3ee1ca4f260a4660ded9b5"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-sshkeys/opie-sshkeys_cvs.bb b/recipes-opie/opie-sshkeys/opie-sshkeys_cvs.bb
new file mode 100644
index 0000000..7099c35
--- /dev/null
+++ b/recipes-opie/opie-sshkeys/opie-sshkeys_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/sshkeys \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-stumbler/files/opiestumbler.png b/recipes-opie/opie-stumbler/files/opiestumbler.png
new file mode 100644
index 0000000..8ca7b4b
--- /dev/null
+++ b/recipes-opie/opie-stumbler/files/opiestumbler.png
Binary files differ
diff --git a/recipes-opie/opie-stumbler/opie-stumbler.inc b/recipes-opie/opie-stumbler/opie-stumbler.inc
new file mode 100644
index 0000000..50843a3
--- /dev/null
+++ b/recipes-opie/opie-stumbler/opie-stumbler.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "A Wireless Network Scanner"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RRECOMMENDS_${PN} = "manufacturers"
+APPNAME = "opiestumbler"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/opiestumbler.png ${D}${palmtopdir}/pics/
+}
diff --git a/recipes-opie/opie-stumbler/opie-stumbler_1.2.5.bb b/recipes-opie/opie-stumbler/opie-stumbler_1.2.5.bb
new file mode 100644
index 0000000..b21454b
--- /dev/null
+++ b/recipes-opie/opie-stumbler/opie-stumbler_1.2.5.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_opiestumbler.tar.bz2;name=split_noncore_net_opiestumbler \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ file://opiestumbler.png"
+SRC_URI[split_noncore_net_opiestumbler.md5sum] = "99f1b7741b9c31212596221fe6fbf110"
+SRC_URI[split_noncore_net_opiestumbler.sha256sum] = "14e88b8954dab367334683a5436a7af08bfcd3f18b68268240f3b41fd26e577a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-stumbler/opie-stumbler_cvs.bb b/recipes-opie/opie-stumbler/opie-stumbler_cvs.bb
new file mode 100644
index 0000000..7be8587
--- /dev/null
+++ b/recipes-opie/opie-stumbler/opie-stumbler_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/opiestumbler \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ file://opiestumbler.png"
diff --git a/recipes-opie/opie-style-flat/opie-style-flat.inc b/recipes-opie/opie-style-flat/opie-style-flat.inc
new file mode 100644
index 0000000..f94573b
--- /dev/null
+++ b/recipes-opie/opie-style-flat/opie-style-flat.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Simple, flat widget style for Opie"
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "flatstyle"
+
+
+S = "${WORKDIR}/flat"
+
+inherit opie
diff --git a/recipes-opie/opie-style-flat/opie-style-flat_1.2.5.bb b/recipes-opie/opie-style-flat/opie-style-flat_1.2.5.bb
new file mode 100644
index 0000000..28a53fd
--- /dev/null
+++ b/recipes-opie/opie-style-flat/opie-style-flat_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_flat.tar.bz2;name=split_noncore_styles_flat"
+SRC_URI[split_noncore_styles_flat.md5sum] = "6634da3092dd7c09814ef689a33938bf"
+SRC_URI[split_noncore_styles_flat.sha256sum] = "226310019d74a7715f2603bde2f5209e1f4b29843102fa68330f48efe171dc86"
diff --git a/recipes-opie/opie-style-flat/opie-style-flat_cvs.bb b/recipes-opie/opie-style-flat/opie-style-flat_cvs.bb
new file mode 100644
index 0000000..508dcc6
--- /dev/null
+++ b/recipes-opie/opie-style-flat/opie-style-flat_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/flat "
diff --git a/recipes-opie/opie-style-fresh/opie-style-fresh.inc b/recipes-opie/opie-style-fresh/opie-style-fresh.inc
new file mode 100644
index 0000000..386c5ac
--- /dev/null
+++ b/recipes-opie/opie-style-fresh/opie-style-fresh.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Opie widget style"
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "freshstyle"
+
+
+S = "${WORKDIR}/fresh"
+
+inherit opie
+
+# FILES plugins/styles/libfreshstyle.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-style-fresh/opie-style-fresh_1.2.5.bb b/recipes-opie/opie-style-fresh/opie-style-fresh_1.2.5.bb
new file mode 100644
index 0000000..63de99b
--- /dev/null
+++ b/recipes-opie/opie-style-fresh/opie-style-fresh_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_fresh.tar.bz2;name=split_noncore_styles_fresh"
+SRC_URI[split_noncore_styles_fresh.md5sum] = "92b32f2ea3773c9b010b322e725c5c42"
+SRC_URI[split_noncore_styles_fresh.sha256sum] = "d25f5ae33658cc19621639041b2ada0e1ed0815aa06eb387c292e3c95be94579"
diff --git a/recipes-opie/opie-style-fresh/opie-style-fresh_cvs.bb b/recipes-opie/opie-style-fresh/opie-style-fresh_cvs.bb
new file mode 100644
index 0000000..70bbae9
--- /dev/null
+++ b/recipes-opie/opie-style-fresh/opie-style-fresh_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/fresh "
diff --git a/recipes-opie/opie-style-liquid/opie-style-liquid.inc b/recipes-opie/opie-style-liquid/opie-style-liquid.inc
new file mode 100644
index 0000000..364b61f
--- /dev/null
+++ b/recipes-opie/opie-style-liquid/opie-style-liquid.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Liquid style by Mosfet"
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = " libqtaux2"
+APPNAME = "liquid"
+
+
+S = "${WORKDIR}/liquid"
+
+inherit opie
+
+# FILES
+do_install() {
+}
+
diff --git a/recipes-opie/opie-style-liquid/opie-style-liquid_1.2.5.bb b/recipes-opie/opie-style-liquid/opie-style-liquid_1.2.5.bb
new file mode 100644
index 0000000..21ddbbc
--- /dev/null
+++ b/recipes-opie/opie-style-liquid/opie-style-liquid_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_liquid.tar.bz2;name=split_noncore_styles_liquid"
+SRC_URI[split_noncore_styles_liquid.md5sum] = "caef2a48c6e1df128fc44e91efe6d347"
+SRC_URI[split_noncore_styles_liquid.sha256sum] = "ef4df761ca2057475c8a4206b21cc94d831b0ca115effb6af3a982664fcb4b7c"
diff --git a/recipes-opie/opie-style-liquid/opie-style-liquid_cvs.bb b/recipes-opie/opie-style-liquid/opie-style-liquid_cvs.bb
new file mode 100644
index 0000000..bb33645
--- /dev/null
+++ b/recipes-opie/opie-style-liquid/opie-style-liquid_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/liquid "
diff --git a/recipes-opie/opie-style-metal/opie-style-metal.inc b/recipes-opie/opie-style-metal/opie-style-metal.inc
new file mode 100644
index 0000000..cef2f2a
--- /dev/null
+++ b/recipes-opie/opie-style-metal/opie-style-metal.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Metal Style by Trolltech"
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "metal"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES
+do_install() {
+}
+
diff --git a/recipes-opie/opie-style-metal/opie-style-metal_1.2.5.bb b/recipes-opie/opie-style-metal/opie-style-metal_1.2.5.bb
new file mode 100644
index 0000000..735a395
--- /dev/null
+++ b/recipes-opie/opie-style-metal/opie-style-metal_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_metal.tar.bz2;name=split_noncore_styles_metal"
+SRC_URI[split_noncore_styles_metal.md5sum] = "744e6b771370925cf596ce50b1b241f5"
+SRC_URI[split_noncore_styles_metal.sha256sum] = "cbf227964810f89fee4d86ecf56fa877bd5a156cdb1da94cfe0eed9a472099da"
diff --git a/recipes-opie/opie-style-metal/opie-style-metal_cvs.bb b/recipes-opie/opie-style-metal/opie-style-metal_cvs.bb
new file mode 100644
index 0000000..6e2e33c
--- /dev/null
+++ b/recipes-opie/opie-style-metal/opie-style-metal_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/metal "
diff --git a/recipes-opie/opie-style-phase/opie-style-phase.inc b/recipes-opie/opie-style-phase/opie-style-phase.inc
new file mode 100644
index 0000000..95ca2d8
--- /dev/null
+++ b/recipes-opie/opie-style-phase/opie-style-phase.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Opie Phase disguishes oneself through its' simple, clean and slick look. \
+It is based on http://www.usermode.org/code.html Phase 0.4."
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "phasestyle"
+
+S = "${WORKDIR}/phase"
+
+inherit opie
diff --git a/recipes-opie/opie-style-phase/opie-style-phase_1.2.5.bb b/recipes-opie/opie-style-phase/opie-style-phase_1.2.5.bb
new file mode 100644
index 0000000..4776602
--- /dev/null
+++ b/recipes-opie/opie-style-phase/opie-style-phase_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_phase.tar.bz2;name=split_noncore_styles_phase"
+SRC_URI[split_noncore_styles_phase.md5sum] = "1277a508c641c9c031c328fe33c7cd5d"
+SRC_URI[split_noncore_styles_phase.sha256sum] = "f9bfab751be7bf779f1564756b46db8119caae81db5e1112e605b0c7a90a98cc"
diff --git a/recipes-opie/opie-style-phase/opie-style-phase_cvs.bb b/recipes-opie/opie-style-phase/opie-style-phase_cvs.bb
new file mode 100644
index 0000000..00eee54
--- /dev/null
+++ b/recipes-opie/opie-style-phase/opie-style-phase_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/phase"
diff --git a/recipes-opie/opie-style-web/opie-style-web.inc b/recipes-opie/opie-style-web/opie-style-web.inc
new file mode 100644
index 0000000..0579e3a
--- /dev/null
+++ b/recipes-opie/opie-style-web/opie-style-web.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "A flatter widget style than flat :)"
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "webstyle"
+
+S = "${WORKDIR}/web"
+
+inherit opie
diff --git a/recipes-opie/opie-style-web/opie-style-web_1.2.5.bb b/recipes-opie/opie-style-web/opie-style-web_1.2.5.bb
new file mode 100644
index 0000000..be5f526
--- /dev/null
+++ b/recipes-opie/opie-style-web/opie-style-web_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_web.tar.bz2;name=split_noncore_styles_web"
+SRC_URI[split_noncore_styles_web.md5sum] = "8355646e8df0e04866152c7cfa7449dc"
+SRC_URI[split_noncore_styles_web.sha256sum] = "5cadd510d0a42b4bd05cfdf344b90a36ad14f8a478ba4dcce2e2a25900f08dd0"
diff --git a/recipes-opie/opie-style-web/opie-style-web_cvs.bb b/recipes-opie/opie-style-web/opie-style-web_cvs.bb
new file mode 100644
index 0000000..2fcc901
--- /dev/null
+++ b/recipes-opie/opie-style-web/opie-style-web_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/web"
diff --git a/recipes-opie/opie-suspendapplet/opie-suspendapplet.inc b/recipes-opie/opie-suspendapplet/opie-suspendapplet.inc
new file mode 100644
index 0000000..cd0d917
--- /dev/null
+++ b/recipes-opie/opie-suspendapplet/opie-suspendapplet.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Suspend Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "suspendapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES
+do_install() {
+}
+
diff --git a/recipes-opie/opie-suspendapplet/opie-suspendapplet_1.2.5.bb b/recipes-opie/opie-suspendapplet/opie-suspendapplet_1.2.5.bb
new file mode 100644
index 0000000..df0544c
--- /dev/null
+++ b/recipes-opie/opie-suspendapplet/opie-suspendapplet_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_suspendapplet.tar.bz2;name=split_core_applets_suspendapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_suspendapplet.md5sum] = "7f176081678fff567bb4e60363ae8930"
+SRC_URI[split_core_applets_suspendapplet.sha256sum] = "57becbd351e51e4cd5f80cc2a3469f3b79353076514eb64a1de36c7df29c3de8"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-suspendapplet/opie-suspendapplet_cvs.bb b/recipes-opie/opie-suspendapplet/opie-suspendapplet_cvs.bb
new file mode 100644
index 0000000..05887b8
--- /dev/null
+++ b/recipes-opie/opie-suspendapplet/opie-suspendapplet_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/suspendapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-symlinker/opie-symlinker.inc b/recipes-opie/opie-symlinker/opie-symlinker.inc
new file mode 100644
index 0000000..713ead3
--- /dev/null
+++ b/recipes-opie/opie-symlinker/opie-symlinker.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Enables apps on external media"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-update-symlinks"
+APPTYPE = "binary"
+
+
+S = "${WORKDIR}/symlinker"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/
+ install -m 0755 ${S}/opie-update-symlinks ${D}${palmtopdir}/bin/
+}
+
diff --git a/recipes-opie/opie-symlinker/opie-symlinker_1.2.5.bb b/recipes-opie/opie-symlinker/opie-symlinker_1.2.5.bb
new file mode 100644
index 0000000..64e10a4
--- /dev/null
+++ b/recipes-opie/opie-symlinker/opie-symlinker_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_symlinker.tar.bz2;name=split_core_symlinker"
+SRC_URI[split_core_symlinker.md5sum] = "d3be755591dfcd4a45e1de337a05a43b"
+SRC_URI[split_core_symlinker.sha256sum] = "7d5c5b02f1623aadc2af2134f7bb53ef8d8fbc8a264eff74618f65aab6c44aef"
diff --git a/recipes-opie/opie-symlinker/opie-symlinker_cvs.bb b/recipes-opie/opie-symlinker/opie-symlinker_cvs.bb
new file mode 100644
index 0000000..334a1dc
--- /dev/null
+++ b/recipes-opie/opie-symlinker/opie-symlinker_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/symlinker "
diff --git a/recipes-opie/opie-sysinfo/opie-sysinfo.inc b/recipes-opie/opie-sysinfo/opie-sysinfo.inc
new file mode 100644
index 0000000..0b03db7
--- /dev/null
+++ b/recipes-opie/opie-sysinfo/opie-sysinfo.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "System Information dialog for the Opie environment"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "sysinfo"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/sysinfo/
+ install -m 0644 ${WORKDIR}/share/sysinfo/results ${D}${palmtopdir}/share/sysinfo/results
+}
+
diff --git a/recipes-opie/opie-sysinfo/opie-sysinfo_1.2.5.bb b/recipes-opie/opie-sysinfo/opie-sysinfo_1.2.5.bb
new file mode 100644
index 0000000..319096f
--- /dev/null
+++ b/recipes-opie/opie-sysinfo/opie-sysinfo_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_sysinfo.tar.bz2;name=split_noncore_settings_sysinfo \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share"
+SRC_URI[split_noncore_settings_sysinfo.md5sum] = "a451202461d0b467568b5b076c502e73"
+SRC_URI[split_noncore_settings_sysinfo.sha256sum] = "6704ae28eaf824e2e8338eaf49981761fbab60dde4f4ddeb829baf99a9dc3808"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
diff --git a/recipes-opie/opie-sysinfo/opie-sysinfo_cvs.bb b/recipes-opie/opie-sysinfo/opie-sysinfo_cvs.bb
new file mode 100644
index 0000000..bb6aafc
--- /dev/null
+++ b/recipes-opie/opie-sysinfo/opie-sysinfo_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/sysinfo \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=share"
diff --git a/recipes-opie/opie-systemtime/opie-systemtime.inc b/recipes-opie/opie-systemtime/opie-systemtime.inc
new file mode 100644
index 0000000..e91d971
--- /dev/null
+++ b/recipes-opie/opie-systemtime/opie-systemtime.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "Set the system time - utilizing ntpdate, if available."
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RRECOMMENDS_${PN} = "ntpdate"
+
+APPNAME = "systemtime"
+
+
+S = "${WORKDIR}/netsystemtime"
+
+inherit opie
+
+# FILES plugins/application/libsystemtime.so* bin/systemtime apps/Settings/systemtime.desktop etc/ntpservers pics/netsystemtime
+do_install() {
+ install -d ${D}${palmtopdir}/pics/netsystemtime/
+ install -d ${D}${palmtopdir}/etc
+ install -m 0644 ${WORKDIR}/pics/netsystemtime/*.png ${D}${palmtopdir}/pics/netsystemtime/
+ install -m 0644 ${WORKDIR}/etc/ntpservers ${D}${palmtopdir}/etc
+}
+
+FILES_opie-systemtime_append = " /etc/ntpservers"
diff --git a/recipes-opie/opie-systemtime/opie-systemtime_1.2.5.bb b/recipes-opie/opie-systemtime/opie-systemtime_1.2.5.bb
new file mode 100644
index 0000000..f131f8e
--- /dev/null
+++ b/recipes-opie/opie-systemtime/opie-systemtime_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_netsystemtime.tar.bz2;name=split_noncore_settings_netsystemtime \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_etc.tar.bz2;name=split_etc \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_netsystemtime.md5sum] = "bbfa0a8f09ad0bb657295084a316877d"
+SRC_URI[split_noncore_settings_netsystemtime.sha256sum] = "a603be217bd52eeb7b032c362e01e3c70d6dd71edab97fec8b761c1505ee78ab"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_etc.md5sum] = "74ef523ef12e242155bbb745072434d9"
+SRC_URI[split_etc.sha256sum] = "eef55ea2248b4f45f3a07beb6012e431dd71d4eefa134d39cc50b4d194c53087"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-systemtime/opie-systemtime_cvs.bb b/recipes-opie/opie-systemtime/opie-systemtime_cvs.bb
new file mode 100644
index 0000000..9a65f01
--- /dev/null
+++ b/recipes-opie/opie-systemtime/opie-systemtime_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/netsystemtime \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=etc \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-tableviewer/opie-tableviewer.inc b/recipes-opie/opie-tableviewer/opie-tableviewer.inc
new file mode 100644
index 0000000..86a9f3f
--- /dev/null
+++ b/recipes-opie/opie-tableviewer/opie-tableviewer.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "XML database browsers"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "tableviewer"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libtableviewer.so* bin/tableviewer apps/Applications/tableviewer.desktop
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-tableviewer/opie-tableviewer_1.2.5.bb b/recipes-opie/opie-tableviewer/opie-tableviewer_1.2.5.bb
new file mode 100644
index 0000000..f8b83d3
--- /dev/null
+++ b/recipes-opie/opie-tableviewer/opie-tableviewer_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_tableviewer.tar.bz2;name=split_noncore_apps_tableviewer \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_tableviewer.md5sum] = "9671efbba1bd5483a97b64c2569da026"
+SRC_URI[split_noncore_apps_tableviewer.sha256sum] = "dc6c48d93bc0770a76e133eb38eda5d42590a25ceaab58e92445f0dfbe6c41b9"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-tableviewer/opie-tableviewer_cvs.bb b/recipes-opie/opie-tableviewer/opie-tableviewer_cvs.bb
new file mode 100644
index 0000000..3c91ab5
--- /dev/null
+++ b/recipes-opie/opie-tableviewer/opie-tableviewer_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/tableviewer \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-taskbar/opie-taskbar-images.inc b/recipes-opie/opie-taskbar/opie-taskbar-images.inc
new file mode 100644
index 0000000..0286f48
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar-images.inc
@@ -0,0 +1,75 @@
+DESCRIPTION = "Opie Launcher and Taskbar"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qpe"
+
+S = "${WORKDIR}/pics"
+
+inherit opie
+
+# Wallpaper and welcome splash
+PIXMAP_SIZE = ""
+PIXMAP_SIZE_c7x0 = "-640x480"
+PIXMAP_SIZE_spitz = "-640x480"
+PIXMAP_SIZE_akita = "-640x480"
+PIXMAP_SIZE_tosa = "-480x640"
+PIXMAP_SIZE_simpad = "-800x600"
+PIXMAP_SIZE_asus730 = "-480x640"
+PIXMAP_SIZE_htcuniversal= "-480x640"
+PIXMAP_SIZE_hx4700 = "-480x640"
+PIXMAP_SIZE_palmz31 = "-160x160"
+PIXMAP_SIZE_palmz71 = "-320x320"
+PIXMAP_SIZE_palmz72 = "-320x320"
+PIXMAP_SIZE_palmt650 = "-320x320"
+PIXMAP_SIZE_palmt680 = "-320x320"
+PIXMAP_SIZE_palmt3 = "-320x480"
+PIXMAP_SIZE_palmt5 = "-320x480"
+PIXMAP_SIZE_palmtx = "-320x480"
+PIXMAP_SIZE_palmld = "-320x480"
+
+do_configure() {
+ :
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/launcher
+
+ install -m 0644 ${WORKDIR}/pics/launcher/firstuse.jpg ${D}${palmtopdir}/pics/launcher/firstuse-240x320.jpg
+ install -m 0644 ${WORKDIR}/pics/launcher/opie-background.jpg ${D}${palmtopdir}/pics/launcher/opie-background-240x320.jpg
+
+# for res in 320x240 240x320 320x320 320x480 480x320 480x640 640x480 600x800 800x600; do
+ for res in 240x240 320x320 320x480 480x320 480x640 640x480 800x600; do
+ install -m 0644 ${WORKDIR}/pics/launcher/firstuse-${res}.jpg ${D}${palmtopdir}/pics/launcher/firstuse-${res}.jpg
+ install -m 0644 ${WORKDIR}/pics/launcher/opie-background-${res}.jpg ${D}${palmtopdir}/pics/launcher/opie-background-${res}.jpg
+ done
+}
+
+python do_package_prepend () {
+ reslist = ['240x320','320x240', '320x320', '320x480', '480x320', '480x640','640x480', '800x600','600x800']
+ dir = bb.data.expand('${palmtopdir}/pics/launcher/', d)
+ ft = bb.data.expand('${palmtopdir}/pics/*/*-%s.*', d)
+ pn = bb.data.getVar('PN', d, 1)
+ for res in reslist:
+ bb.data.setVar('FILES_%s-%s' % (pn,res), ft % res, d )
+ postinst = ''
+ postinst = 'update-alternatives --install %sfirstuse.jpg opie-firstuse-pixmap %sfirstuse-%s.jpg 50\n' % (dir,dir,res)
+ postinst += 'update-alternatives --install %sopie-background.jpg opie-background-pixmap %sopie-background-%s.jpg 50\n' % (dir,dir,res)
+ bb.data.setVar('pkg_postinst_%s-%s' % (pn,res),postinst, d)
+ prerm = ''
+ prerm = 'update-alternatives --remove opie-firstuse-pixmap %sfirstuse-%s.jpg 50\n' % (dir,res)
+ prerm += 'update-alternatives --remove opie-background-pixmap %sopie-background-%s.jpg 50\n' % (dir,res)
+ bb.data.setVar('pkg_prerm_%s-%s' % (pn,res),prerm, d)
+}
+
+PACKAGE_ARCH = "all"
+PACKAGES = "${PN}-dbg ${PN}-320x480 ${PN}-480x320 ${PN}-480x640 ${PN}-640x480 ${PN}-800x600 ${PN}-600x800 ${PN}-320x240 ${PN}-240x320 ${PN}-320x320"
+RPROVIDES_${PN}-320x480 = "opie-taskbar-images"
+RPROVIDES_${PN}-480x320 = "opie-taskbar-images"
+RPROVIDES_${PN}-480x640 = "opie-taskbar-images"
+RPROVIDES_${PN}-640x480 = "opie-taskbar-images"
+RPROVIDES_${PN}-800x600 = "opie-taskbar-images"
+RPROVIDES_${PN}-600x800 = "opie-taskbar-images"
+RPROVIDES_${PN}-320x240 = "opie-taskbar-images"
+RPROVIDES_${PN}-240x320 = "opie-taskbar-images"
+RPROVIDES_${PN}-320x320 = "opie-taskbar-images"
diff --git a/recipes-opie/opie-taskbar/opie-taskbar-images/firstuse-320x320.jpg b/recipes-opie/opie-taskbar/opie-taskbar-images/firstuse-320x320.jpg
new file mode 100644
index 0000000..67523f1
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar-images/firstuse-320x320.jpg
Binary files differ
diff --git a/recipes-opie/opie-taskbar/opie-taskbar-images/opie-background-320x320.jpg b/recipes-opie/opie-taskbar/opie-taskbar-images/opie-background-320x320.jpg
new file mode 100644
index 0000000..194816f
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar-images/opie-background-320x320.jpg
Binary files differ
diff --git a/recipes-opie/opie-taskbar/opie-taskbar-images_1.2.5.bb b/recipes-opie/opie-taskbar/opie-taskbar-images_1.2.5.bb
new file mode 100644
index 0000000..a64829f
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar-images_1.2.5.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PR = "r0"
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-taskbar/opie-taskbar-images_cvs.bb b/recipes-opie/opie-taskbar/opie-taskbar-images_cvs.bb
new file mode 100644
index 0000000..3a90e79
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar-images_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r8"
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-taskbar/opie-taskbar.inc b/recipes-opie/opie-taskbar/opie-taskbar.inc
new file mode 100644
index 0000000..14a65b2
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar.inc
@@ -0,0 +1,65 @@
+DESCRIPTION = "Opie Launcher and Taskbar"
+SECTION = "opie/base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-libqrsync opie-qss"
+# Unfortunately, ipkg has buggy handling of Rdepends to multiple packages with the same Provides.
+# Instead of seeing if something in package package lists selects needed package among the rest
+# or errors out otherwise, it just install random package which has needed Provides. So, comment
+# this out.
+#RDEPENDS_${PN} = "opie-taskbar-images"
+APPNAME = "qpe"
+
+S = "${WORKDIR}/launcher"
+
+inherit opie
+
+do_configure_prepend() {
+ ln -s ${WORKDIR}/calibrate ${S}/calibrate
+ ln -s ${WORKDIR}/mediummount ${S}/mediummount
+}
+
+SECTIONS = "1Pim Applications Examples Games Opie-SH Python Settings"
+PICS = "opielogo32x32.png start_button.png new_wait.png opielogo16x16.png sidebar.png"
+
+do_install() {
+ install -d ${D}${bindir}
+ for i in ${SECTIONS}
+ do
+ install -d ${D}${palmtopdir}/apps/$i/
+ install -m 0644 ${WORKDIR}/apps/$i/.directory ${D}${palmtopdir}/apps/$i/
+ done
+ install -d ${D}${palmtopdir}/pics/launcher
+ install -d ${D}${palmtopdir}/pics/logo
+ install -d ${D}${palmtopdir}/pics/RoH/star/
+ install -d ${D}${palmtopdir}/etc/colors
+ install -d ${D}${palmtopdir}/etc/skel
+ install -d ${D}${sysconfdir}
+
+ install -m 0755 ${S}/qpe ${D}${bindir}/qpe
+ install -m 0644 ${WORKDIR}/apps/Settings/calibrate.desktop ${D}${palmtopdir}/apps/Settings/
+ install -m 0644 ${WORKDIR}/apps/Settings/quit.desktop ${D}${palmtopdir}/apps/Settings/
+
+ for p in ${PICS}
+ do
+ install -m 0644 ${WORKDIR}/pics/launcher/$p ${D}${palmtopdir}/pics/launcher/$p
+ done
+
+ install -m 0644 ${WORKDIR}/pics/logo/*.* ${D}${palmtopdir}/pics/logo/
+ install -m 0644 ${WORKDIR}/pics/RoH/star/*.png ${D}${palmtopdir}/pics/RoH/star/
+
+ install -m 0644 ${WORKDIR}/etc/colors/*.scheme ${D}${palmtopdir}/etc/colors/
+ install -m 0644 ${WORKDIR}/etc/mime.types ${D}${sysconfdir}/
+
+ install -m 0644 ${WORKDIR}/pics/capslock.xpm ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/pics/numlock.xpm ${D}${palmtopdir}/pics/
+
+ install -d ${D}${includedir}
+ install obexinterface.h ${D}${includedir}/
+
+ install -d ${D}${sysconfdir}/apm/event.d/
+ install -m 0755 ${WORKDIR}/etc/03opiesignal ${D}${sysconfdir}/apm/event.d/
+ install -m 0644 ${WORKDIR}/etc/opie_sysevents.conf ${D}${sysconfdir}/
+}
+
+FILES_opie-taskbar_append = " ${sysconfdir} ${palmtopdir}/apps ${palmtopdir}/pics"
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/firstuse-path.patch b/recipes-opie/opie-taskbar/opie-taskbar/firstuse-path.patch
new file mode 100644
index 0000000..636eb81
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/firstuse-path.patch
@@ -0,0 +1,11 @@
+--- launcher/firstuse.cpp 2007-10-14 12:47:55.000000000 +1300
++++ launcher/firstuse.cpp 2007-10-14 13:58:54.000000000 +1300
+@@ -124,7 +124,7 @@
+ #endif
+
+ for ( int i = 0; settingsTable[i].app; i++ ) {
+- QString file = QPEApplication::qpeDir() + "bin/";
++ QString file = OPIE_BINDIR + QString("/");
+ file += settingsTable[i].app;
+ file += exeSuffix;
+ if ( QFile::exists(file) )
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/force-firstuse-calibrate.patch b/recipes-opie/opie-taskbar/opie-taskbar/force-firstuse-calibrate.patch
new file mode 100644
index 0000000..44d5d25
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/force-firstuse-calibrate.patch
@@ -0,0 +1,20 @@
+diff --git a/core/launcher/firstuse.cpp b/core/launcher/firstuse.cpp
+index 8c02ab0..cf731c2 100644
+--- launcher/firstuse.cpp
++++ launcher/firstuse.cpp
+@@ -175,10 +175,13 @@ FirstUse::FirstUse(QWidget* parent, const char * name, WFlags wf) :
+ m_calHandler = ( QWSServer::mouseHandler() && QWSServer::mouseHandler()->inherits("QCalibratedMouseHandler") ) ? true : false;
+
+ if ( m_calHandler) {
+- if ( !QFile::exists("/etc/pointercal") ) {
++ // Since Angstrom is installing default pointer calibration files
++ // that don't match everyone's devices, we need to force calibration
++ // on first use.
++// if ( !QFile::exists("/etc/pointercal") ) {
+ needCalibrate = TRUE;
+ grabMouse();
+- }
++// }
+ }
+
+ Config config("locale");
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/kbdlocks-runtime.patch b/recipes-opie/opie-taskbar/opie-taskbar/kbdlocks-runtime.patch
new file mode 100644
index 0000000..e356682
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/kbdlocks-runtime.patch
@@ -0,0 +1,35 @@
+--- launcher/taskbar.h.org 2004-08-23 00:35:22.000000000 +0300
++++ launcher/taskbar.h 2007-07-04 19:23:54.000000000 +0300
+@@ -84,6 +84,7 @@
+ LockKeyState* lockState;
+ StartMenu *sm;
+ bool resizeRunningApp;
++ bool showKbdLockState;
+ };
+
+
+--- launcher/taskbar.cpp.org 2005-07-04 01:13:00.000000000 +0300
++++ launcher/taskbar.cpp 2007-07-04 19:24:48.000000000 +0300
+@@ -213,12 +213,9 @@
+ (void)new SafeMode( this );
+ #endif
+
+- // ## make customizable in some way?
+-#ifdef OPIE_TASKBAR_LOCK_KEY_STATE
+- lockState = new LockKeyState( this );
+-#else
+ lockState = 0;
+-#endif
++ if ( showKbdLockState )
++ lockState = new LockKeyState( this );
+
+ #if defined(Q_WS_QWS)
+ #if !defined(QT_NO_COP)
+@@ -388,6 +385,7 @@
+ Config cfg( "Launcher" );
+ cfg.setGroup( "InputMethods" );
+ resizeRunningApp = cfg.readBoolEntry( "Resize", true );
++ showKbdLockState = cfg.readBoolEntry( "ShowKbdLocks", true );
+ }
+
+ #include "taskbar.moc"
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/no-builtin-qss-startup-2.patch b/recipes-opie/opie-taskbar/opie-taskbar/no-builtin-qss-startup-2.patch
new file mode 100644
index 0000000..65b54c9
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/no-builtin-qss-startup-2.patch
@@ -0,0 +1,11 @@
+--- launcher/server.cpp
++++ launcher/server.cpp
+@@ -1111,6 +1111,8 @@ void Server::finishedQueuedRequests()
+
+ void Server::startSoundServer()
+ {
++ owarn << "Sound server (qss) now needs to be started standalone" << oendl;
++ return;
+ if ( !process ) {
+ process = new Opie::Core::OProcess( this );
+ connect(process, SIGNAL(processExited(Opie::Core::OProcess*)),
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/nomax.patch b/recipes-opie/opie-taskbar/opie-taskbar/nomax.patch
new file mode 100644
index 0000000..468038b
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/nomax.patch
@@ -0,0 +1,30 @@
+--- opie-x86/core/launcher/server.cpp~nomax
++++ opie-x86/core/launcher/server.cpp
+@@ -76,7 +76,7 @@
+ return 0;
+ #endif
+ }
+-
++#ifndef OPIE_NO_WINDOWED
+ #define FACTORY(T) \
+ static QWidget *new##T( bool maximized ) { \
+ QWidget *w = new T( 0, 0, QWidget::WDestructiveClose | QWidget::WGroupLeader ); \
+@@ -90,7 +90,18 @@
+ w->show(); \
+ return w; \
+ }
++#else
++#define FACTORY(T) \
++ static QWidget *new##T( bool maximized ) { \
++ QWidget *w = new T( 0, 0, QWidget::WDestructiveClose | QWidget::WGroupLeader ); \
++ if ( maximized ) { \
++ w->showMaximized(); \
++} \
++ w->show(); \
++ return w; \
++}
+
++#endif
+
+ #ifdef SINGLE_APP
+ #define APP(a,b,c,d) FACTORY(b)
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/restart-from-bindir.patch b/recipes-opie/opie-taskbar/opie-taskbar/restart-from-bindir.patch
new file mode 100644
index 0000000..1a73588
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/restart-from-bindir.patch
@@ -0,0 +1,12 @@
+diff --git a/serverapp.cpp b/serverapp.cpp
+index 0e92040..b933340 100644
+--- a/serverapp.cpp
++++ b/serverapp.cpp
+@@ -763,6 +763,7 @@ void ServerApplication::restart()
+ for ( int fd = 3; fd < 100; fd++ )
+ close( fd );
+ execl( ( qpeDir() + "/bin/qpe" ).local8Bit(), "qpe", NULL );
++ execl( OPIE_BINDIR "/qpe", "qpe", NULL );
+ exit( 1 );
+ #endif
+ }
diff --git a/recipes-opie/opie-taskbar/opie-taskbar/server-pro-cvs.patch b/recipes-opie/opie-taskbar/opie-taskbar/server-pro-cvs.patch
new file mode 100644
index 0000000..eb214da
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar/server-pro-cvs.patch
@@ -0,0 +1,69 @@
+--- launcher/server.pro
++++ launcher/server.pro
+@@ -2,7 +2,7 @@ TEMPLATE = app
+
+ CONFIG += qt warn_on
+
+-DESTDIR = $$(OPIEDIR)/bin
++DESTDIR =
+
+ HEADERS += server.h \
+ qrr.h \
+@@ -20,7 +20,7 @@ HEADERS += server.h \
+ shutdownimpl.h \
+ launcher.h \
+ launcherview.h \
+- $$(OPIEDIR)/core/apps/calibrate/calibrate.h \
++ calibrate/calibrate.h \
+ startmenu.h \
+ transferserver.h \
+ qcopbridge.h \
+@@ -31,7 +31,7 @@ HEADERS += server.h \
+ serverapp.h \
+ qprocess.h \
+ screensaver.h \
+- $$(OPIEDIR)/noncore/settings/mediummount/mediumwidget.h \
++ mediummount/mediumwidget.h \
+ mediadlg.h \
+ virtualfs.h \
+ syncaccessmanager.h
+@@ -52,7 +52,7 @@ SOURCES += server.cpp \
+ shutdownimpl.cpp \
+ launcher.cpp \
+ launcherview.cpp \
+- $$(OPIEDIR)/core/apps/calibrate/calibrate.cpp \
++ calibrate/calibrate.cpp \
+ transferserver.cpp \
+ packageslave.cpp \
+ irserver.cpp \
+@@ -65,22 +65,22 @@ SOURCES += server.cpp \
+ qprocess.cpp \
+ qprocess_unix.cpp \
+ screensaver.cpp \
+- $$(OPIEDIR)/noncore/settings/mediummount/mediumwidget.cc \
++ mediummount/mediumwidget.cc \
+ mediadlg.cpp \
+ virtualfs.cpp \
+ syncaccessmanager.cpp
+
+
+-INCLUDEPATH += $(OPIEDIR)/core/apps/calibrate
+-DEPENDPATH += $(OPIEDIR)/core/apps/calibrate
++INCLUDEPATH += calibrate
++DEPENDPATH += calibrate
+
+-INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/rsync
+-DEPENDPATH += $(OPIEDIR)/rsync
++INCLUDEPATH += $(OPIEDIR)/include rsync
++DEPENDPATH += rsync
+
+-INCLUDEPATH += $(OPIEDIR)/noncore/settings/mediummount
+-DEPENDPATH += $(OPIEDIR)/noncore/settings/mediummount
++INCLUDEPATH += mediummount
++DEPENDPATH += mediummount
+
+-LIBS += -lqpe -lopiecore2 -lopieui2 -lopiesecurity2 -lqrsync -lsysfs
++LIBS = -lqpe -lopiecore2 -lopieui2 -lopiesecurity2 -lqrsync -lsysfs
+ TARGET = qpe
+
+ ## not ready for use yet
diff --git a/recipes-opie/opie-taskbar/opie-taskbar_1.2.5.bb b/recipes-opie/opie-taskbar/opie-taskbar_1.2.5.bb
new file mode 100644
index 0000000..ee01b35
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar_1.2.5.bb
@@ -0,0 +1,33 @@
+require ${PN}.inc
+PR = "r1"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_apps_calibrate.tar.bz2;name=split_core_apps_calibrate \
+ http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_mediummount.tar.bz2;name=split_noncore_settings_mediummount \
+ http://sources.openembedded.org/opie-1.2.5-split_core_launcher.tar.bz2;name=split_core_launcher \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ http://sources.openembedded.org/opie-1.2.5-split_root.tar.bz2;name=split_root \
+ http://sources.openembedded.org/opie-1.2.5-split_etc.tar.bz2;name=split_etc \
+ file://nomax.patch;striplevel=3 \
+ file://no-builtin-qss-startup-2.patch \
+ file://kbdlocks-runtime.patch \
+ file://restart-from-bindir.patch \
+ file://server-pro-cvs.patch \
+ file://firstuse-path.patch \
+ file://force-firstuse-calibrate.patch \
+ "
+SRC_URI[split_core_apps_calibrate.md5sum] = "ee5e06b781e92f01271d883f91f101b0"
+SRC_URI[split_core_apps_calibrate.sha256sum] = "5e0164a195a166fd15451164edf8a44d8f3a9f81dcf3edc3a8975f24bd4b45b6"
+SRC_URI[split_noncore_settings_mediummount.md5sum] = "5309e48475c721a9cda3c9a1701789cd"
+SRC_URI[split_noncore_settings_mediummount.sha256sum] = "8554f74b00f5a3425a8a3d667eda5f0edd8f197bc33e78a59f3231eacd8c4f5c"
+SRC_URI[split_core_launcher.md5sum] = "cd3708a2d074f108d81ffea590995725"
+SRC_URI[split_core_launcher.sha256sum] = "fca1501398f1e4d0690455b145b17a68287de422592bca73c2afdf6762d021ce"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+SRC_URI[split_root.md5sum] = "47b2ea2c59ac34b3df21d43c53baaccd"
+SRC_URI[split_root.sha256sum] = "0fb78622bb7ab459860aaa65fbea6145c45141195c1981164b40807b884628eb"
+SRC_URI[split_etc.md5sum] = "74ef523ef12e242155bbb745072434d9"
+SRC_URI[split_etc.sha256sum] = "eef55ea2248b4f45f3a07beb6012e431dd71d4eefa134d39cc50b4d194c53087"
+
diff --git a/recipes-opie/opie-taskbar/opie-taskbar_cvs.bb b/recipes-opie/opie-taskbar/opie-taskbar_cvs.bb
new file mode 100644
index 0000000..9036e72
--- /dev/null
+++ b/recipes-opie/opie-taskbar/opie-taskbar_cvs.bb
@@ -0,0 +1,20 @@
+require ${PN}.inc
+PV = "${OPIE_GIT_PV}"
+PR = "r22"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/apps/calibrate \
+ ${OPIE_GIT};protocol=git;subpath=noncore/settings/mediummount \
+ ${OPIE_GIT};protocol=git;subpath=core/launcher \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ ${OPIE_GIT};protocol=git;subpath=root \
+ ${OPIE_GIT};protocol=git;subpath=etc \
+ file://nomax.patch;striplevel=3 \
+ file://no-builtin-qss-startup-2.patch \
+ file://kbdlocks-runtime.patch \
+ file://restart-from-bindir.patch \
+ file://server-pro-cvs.patch \
+ file://firstuse-path.patch \
+ file://force-firstuse-calibrate.patch \
+ "
+
diff --git a/recipes-opie/opie-tetrix/opie-tetrix.inc b/recipes-opie/opie-tetrix/opie-tetrix.inc
new file mode 100644
index 0000000..12d7f6f
--- /dev/null
+++ b/recipes-opie/opie-tetrix/opie-tetrix.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Game: control falling blocks"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "tetrix"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libtetrix.so* bin/tetrix apps/Games/tetrix.desktop pics/tetrix/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-tetrix/opie-tetrix_1.2.5.bb b/recipes-opie/opie-tetrix/opie-tetrix_1.2.5.bb
new file mode 100644
index 0000000..6b51536
--- /dev/null
+++ b/recipes-opie/opie-tetrix/opie-tetrix_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_tetrix.tar.bz2;name=split_noncore_games_tetrix \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_tetrix.md5sum] = "18d45b2eb87ecc2817e9bc2bc7088b01"
+SRC_URI[split_noncore_games_tetrix.sha256sum] = "3febf4e359d40df3e7d6a22ac996a2f7f4e6003bef98c392cbba07d2d31ffe17"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-tetrix/opie-tetrix_cvs.bb b/recipes-opie/opie-tetrix/opie-tetrix_cvs.bb
new file mode 100644
index 0000000..93d4396
--- /dev/null
+++ b/recipes-opie/opie-tetrix/opie-tetrix_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/tetrix \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-textedit/opie-textedit.inc b/recipes-opie/opie-textedit/opie-textedit.inc
new file mode 100644
index 0000000..1cc78ec
--- /dev/null
+++ b/recipes-opie/opie-textedit/opie-textedit.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Opie Text Editor"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "textedit"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-textedit/opie-textedit_1.2.5.bb b/recipes-opie/opie-textedit/opie-textedit_1.2.5.bb
new file mode 100644
index 0000000..1fb8fe1
--- /dev/null
+++ b/recipes-opie/opie-textedit/opie-textedit_1.2.5.bb
@@ -0,0 +1,15 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SECTION = "opie/applications"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_apps_${APPNAME}.tar.bz2;name=split_core_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_apps_appname.md5sum] = "cba4c63da60887bd00f0794068491a88"
+SRC_URI[split_core_apps_appname.sha256sum] = "e61be5e261f502ad836852c2cb9b991667656e8f9dd1d9cca57c568423317bdb"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-textedit/opie-textedit_cvs.bb b/recipes-opie/opie-textedit/opie-textedit_cvs.bb
new file mode 100644
index 0000000..cbf9f46
--- /dev/null
+++ b/recipes-opie/opie-textedit/opie-textedit_cvs.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SECTION = "opie/applications"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-theme/opie-theme.inc b/recipes-opie/opie-theme/opie-theme.inc
new file mode 100644
index 0000000..0017154
--- /dev/null
+++ b/recipes-opie/opie-theme/opie-theme.inc
@@ -0,0 +1,45 @@
+DESCRIPTION = "Themed style"
+SECTION = "opie/styles"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "theme"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/styles/libtheme.so*
+do_install() {
+ install -d ${D}${palmtopdir}/plugins/styles/pixmaps/
+ install -d ${D}${palmtopdir}/plugins/styles/themes/
+ for t in cleannsimple GradE8 ixpe luna
+ do
+ install -d ${D}${palmtopdir}/plugins/styles/pixmaps/$t/
+ for f in ../styles/pixmaps/$t/*
+ do
+ [ -f $f ] && install -m 0644 $f ${D}${palmtopdir}/plugins/styles/pixmaps/$t/
+ done
+ install -m 0644 ../styles/themes/$t.themerc ${D}${palmtopdir}/plugins/styles/themes/
+ done
+ for t in lumonmarble lumonwave
+ do
+ install -d ${D}${palmtopdir}/plugins/styles/pixmaps/lumon/
+ for f in ../styles/pixmaps/lumon/*
+ do
+ [ -f $f ] && install -m 0644 $f ${D}${palmtopdir}/plugins/styles/pixmaps/lumon/
+ done
+ install -m 0644 ../styles/themes/$t.themerc ${D}${palmtopdir}/plugins/styles/themes/
+ done
+}
+
+PACKAGES += " opie-theme-cleannsimple opie-theme-grade8 opie-theme-ixpe opie-theme-lumonmarble \
+ opie-theme-lumonwave opie-theme-luna "
+
+FILES_opie-theme = " ${palmtopdir}/plugins/styles/libtheme.so*"
+FILES_opie-theme-cleannsimple = " ${palmtopdir}/plugins/styles/themes/cleannsimple.themerc ${palmtopdir}/plugins/styles/pixmaps/cleannsimple/*.png"
+FILES_opie-theme-grade8 = " ${palmtopdir}/plugins/styles/themes/GradE8.themerc ${palmtopdir}/plugins/styles/pixmaps/GradE8/*.png"
+FILES_opie-theme-ixpe = " ${palmtopdir}/plugins/styles/themes/ixpe.themerc ${palmtopdir}/plugins/styles/pixmaps/ixpe/*.png"
+FILES_opie-theme-lumonmarble = " ${palmtopdir}/plugins/styles/themes/lumonmarble.themerc ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowleft.png ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowright.png ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowup.png ${palmtopdir}/plugins/styles/pixmaps/lumon/backgroundwhitemarble.png ${palmtopdir}/plugins/styles/pixmaps/lumon/backgroundbluemarble.png ${palmtopdir}/plugins/styles/pixmaps/lumon/button.png ${palmtopdir}/plugins/styles/pixmaps/lumon/buttonborder.png ${palmtopdir}/plugins/styles/pixmaps/lumon/buttonborderdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/buttondown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/checkbox.png ${palmtopdir}/plugins/styles/pixmaps/lumon/checkboxdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/hscrollgroove.png ${palmtopdir}/plugins/styles/pixmaps/lumon/menubar.png ${palmtopdir}/plugins/styles/pixmaps/lumon/menuitemdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/radio.png ${palmtopdir}/plugins/styles/pixmaps/lumon/radiodown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/scrollbutton.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowleft.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowright.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowup.png ${palmtopdir}/plugins/styles/pixmaps/lumon/tab.png ${palmtopdir}/plugins/styles/pixmaps/lumon/tabdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/vscrollgroove.png"
+FILES_opie-theme-lumonwave = " ${palmtopdir}/plugins/styles/themes/lumonwave.themerc ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowleft.png ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowright.png ${palmtopdir}/plugins/styles/pixmaps/lumon/arrowup.png ${palmtopdir}/plugins/styles/pixmaps/lumon/backgroundwave.png ${palmtopdir}/plugins/styles/pixmaps/lumon/backgroundwaveblue.png ${palmtopdir}/plugins/styles/pixmaps/lumon/button.png ${palmtopdir}/plugins/styles/pixmaps/lumon/buttonborder.png ${palmtopdir}/plugins/styles/pixmaps/lumon/buttonborderdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/buttondown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/checkbox.png ${palmtopdir}/plugins/styles/pixmaps/lumon/checkboxdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/hscrollgroove.png ${palmtopdir}/plugins/styles/pixmaps/lumon/menubar.png ${palmtopdir}/plugins/styles/pixmaps/lumon/menuitemdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/radio.png ${palmtopdir}/plugins/styles/pixmaps/lumon/radiodown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/scrollbutton.png ${palmtopdir}/plugins/styles/pixmaps/lumon/splitter.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowleft.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowright.png ${palmtopdir}/plugins/styles/pixmaps/lumon/sunkenarrowup.png ${palmtopdir}/plugins/styles/pixmaps/lumon/tab.png ${palmtopdir}/plugins/styles/pixmaps/lumon/tabdown.png ${palmtopdir}/plugins/styles/pixmaps/lumon/vscrollgroove.png"
+FILES_opie-theme-luna = " ${palmtopdir}/plugins/styles/themes/luna.themerc ${palmtopdir}/plugins/styles/pixmaps/luna/*.png"
diff --git a/recipes-opie/opie-theme/opie-theme_1.2.5.bb b/recipes-opie/opie-theme/opie-theme_1.2.5.bb
new file mode 100644
index 0000000..d7707d6
--- /dev/null
+++ b/recipes-opie/opie-theme/opie-theme_1.2.5.bb
@@ -0,0 +1,9 @@
+require ${PN}.inc
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_styles_theme.tar.bz2;name=split_noncore_styles_theme \
+ http://sources.openembedded.org/opie-1.2.5-split_plugins_styles.tar.bz2;name=split_plugins_styles"
+SRC_URI[split_noncore_styles_theme.md5sum] = "c20ee13eb4ab10fe9b8ca1750e112cd9"
+SRC_URI[split_noncore_styles_theme.sha256sum] = "a5c478b7001938a5a1250c0a05d56b8cf673df9a2b75726b5ce27264c1170d2d"
+SRC_URI[split_plugins_styles.md5sum] = "4d09f3be9e8b904412d368763d974d50"
+SRC_URI[split_plugins_styles.sha256sum] = "cecf5695ea1297f899efba863af5e8de6156181ff56e1b4a68fef8289e247446"
diff --git a/recipes-opie/opie-theme/opie-theme_cvs.bb b/recipes-opie/opie-theme/opie-theme_cvs.bb
new file mode 100644
index 0000000..c3a1161
--- /dev/null
+++ b/recipes-opie/opie-theme/opie-theme_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+PR = "r1"
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/styles/theme \
+ ${OPIE_GIT};protocol=git;subpath=plugins/styles "
diff --git a/recipes-opie/opie-tictac/opie-tictac.inc b/recipes-opie/opie-tictac/opie-tictac.inc
new file mode 100644
index 0000000..1b0f7c9
--- /dev/null
+++ b/recipes-opie/opie-tictac/opie-tictac.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Tic Tac Toe game."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "tictac"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libtictac.so* bin/tictac apps/Games/tictac.desktop pics/tictac
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-tictac/opie-tictac_1.2.5.bb b/recipes-opie/opie-tictac/opie-tictac_1.2.5.bb
new file mode 100644
index 0000000..e09c525
--- /dev/null
+++ b/recipes-opie/opie-tictac/opie-tictac_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_tictac.tar.bz2;name=split_noncore_games_tictac \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_tictac.md5sum] = "d96ef27b196649c037f7b98af2f2db3d"
+SRC_URI[split_noncore_games_tictac.sha256sum] = "7dee29f28489bc3e07d63fc8955436bb25a0709be7762c4f61e7e85d7a2b3132"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-tictac/opie-tictac_cvs.bb b/recipes-opie/opie-tictac/opie-tictac_cvs.bb
new file mode 100644
index 0000000..ab10eec
--- /dev/null
+++ b/recipes-opie/opie-tictac/opie-tictac_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/tictac \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-tinykate/opie-tinykate.inc b/recipes-opie/opie-tinykate/opie-tinykate.inc
new file mode 100644
index 0000000..fdec301
--- /dev/null
+++ b/recipes-opie/opie-tinykate/opie-tinykate.inc
@@ -0,0 +1,40 @@
+DESCRIPTION = "The Kate Text Editor for Opie"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libqtaux2"
+APPNAME = "tinykate"
+PR = "r2"
+
+S = "${WORKDIR}/tinykate"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += " LIBS+=-L.."
+PARALLEL_MAKE = ""
+
+# FILES plugins/application/libkate.so* bin/kate apps/Applications/tinykate.desktop pics/tinykate lib/libtinykate.so*
+do_install() {
+ install -d ${D}${palmtopdir}/lib/
+ oe_soinstall libkate.so.1.0.0 ${D}${palmtopdir}/lib/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/${APPNAME}/syntax/
+ install -m 0644 ${WORKDIR}/share/${APPNAME}/syntax/*.* ${D}${palmtopdir}/share/${APPNAME}/syntax/
+}
+
+PACKAGES += " \
+ opie-tinykate-syntax-commondev \
+ opie-tinykate-syntax-documentation \
+ opie-tinykate-syntax-misc \
+ opie-tinykate-syntax-miscdev \
+ opie-tinykate-syntax-unix \
+ opie-tinykate-syntax-web "
+
+
+FILES_opie-tinykate-syntax-commondev = " ${palmtopdir}/share/tinykate/syntax/c.xml ${palmtopdir}/share/tinykate/syntax/cpp.xml ${palmtopdir}/share/tinykate/syntax/gnuassembler.xml ${palmtopdir}/share/tinykate/syntax/kbasic.xml ${palmtopdir}/share/tinykate/syntax/pascal.xml ${palmtopdir}/share/tinykate/syntax/perl.xml ${palmtopdir}/share/tinykate/syntax/php.xml ${palmtopdir}/share/tinykate/syntax/python.xml ${palmtopdir}/share/tinykate/syntax/ruby.xml ${palmtopdir}/share/tinykate/syntax/sql.xml ${palmtopdir}/share/tinykate/syntax/tcl.xml ${palmtopdir}/share/tinykate/syntax/xml.xml ${palmtopdir}/share/tinykate/syntax/xmldebug.xml ${palmtopdir}/share/tinykate/syntax/java.xml"
+FILES_opie-tinykate-syntax-documentation = " ${palmtopdir}/share/tinykate/syntax/latex.xml ${palmtopdir}/share/tinykate/syntax/postscript.xml ${palmtopdir}/share/tinykate/syntax/sgml.xml"
+FILES_opie-tinykate-syntax-misc = " ${palmtopdir}/share/tinykate/syntax/idconsole.xml ${palmtopdir}/share/tinykate/syntax/matlab.xml ${palmtopdir}/share/tinykate/syntax/verilog.xml ${palmtopdir}/share/tinykate/syntax/vhdl.xml"
+FILES_opie-tinykate-syntax-miscdev = " ${palmtopdir}/share/tinykate/syntax/ada.xml ${palmtopdir}/share/tinykate/syntax/eiffel.xml ${palmtopdir}/share/tinykate/syntax/ferite.xml ${palmtopdir}/share/tinykate/syntax/fortran.xml ${palmtopdir}/share/tinykate/syntax/haskell.xml ${palmtopdir}/share/tinykate/syntax/literate-haskell.xml ${palmtopdir}/share/tinykate/syntax/objectivec.xml ${palmtopdir}/share/tinykate/syntax/sather.xml ${palmtopdir}/share/tinykate/syntax/scheme.xml"
+FILES_opie-tinykate-syntax-unix = " ${palmtopdir}/share/tinykate/syntax/cs.xml ${palmtopdir}/share/tinykate/syntax/bash.xml ${palmtopdir}/share/tinykate/syntax/changelog.xml ${palmtopdir}/share/tinykate/syntax/desktop.xml ${palmtopdir}/share/tinykate/syntax/diff.xml ${palmtopdir}/share/tinykate/syntax/mab.xml ${palmtopdir}/share/tinykate/syntax/makefile.xml ${palmtopdir}/share/tinykate/syntax/rpmspec.xml ${palmtopdir}/share/tinykate/syntax/sml.xml ${palmtopdir}/share/tinykate/syntax/winehq.xml"
+FILES_opie-tinykate-syntax-web = " ${palmtopdir}/share/tinykate/syntax/css.xml ${palmtopdir}/share/tinykate/syntax/html.xml ${palmtopdir}/share/tinykate/syntax/javascript.xml"
diff --git a/recipes-opie/opie-tinykate/opie-tinykate_1.2.5.bb b/recipes-opie/opie-tinykate/opie-tinykate_1.2.5.bb
new file mode 100644
index 0000000..c504f5f
--- /dev/null
+++ b/recipes-opie/opie-tinykate/opie-tinykate_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_tinykate.tar.bz2;name=split_noncore_apps_tinykate \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_tinykate.md5sum] = "d8f1d5ab492068c8cae591ddf28e1047"
+SRC_URI[split_noncore_apps_tinykate.sha256sum] = "7ebc74b0eff365c18e85d4803e964cff10038ea22ead37e15831906a685bb1de"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-tinykate/opie-tinykate_cvs.bb b/recipes-opie/opie-tinykate/opie-tinykate_cvs.bb
new file mode 100644
index 0000000..93eb450
--- /dev/null
+++ b/recipes-opie/opie-tinykate/opie-tinykate_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/tinykate \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin.inc b/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin.inc
new file mode 100644
index 0000000..8f2f9b0
--- /dev/null
+++ b/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Addressbook plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-today"
+APPNAME = "todayaddressbookplugin"
+
+
+S = "${WORKDIR}/addressbook"
+
+inherit opie
+
diff --git a/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_1.2.5.bb b/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_1.2.5.bb
new file mode 100644
index 0000000..6889398
--- /dev/null
+++ b/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_today_plugins_addressbook.tar.bz2;name=split_core_pim_today_plugins_addressbook"
+SRC_URI[split_core_pim_today_plugins_addressbook.md5sum] = "79d15bd3619a36cd5e8b818729681d74"
+SRC_URI[split_core_pim_today_plugins_addressbook.sha256sum] = "3352fc8968be32f5e3d0439082791358cf8f24bd1853173c7490973759453131"
diff --git a/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_cvs.bb b/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_cvs.bb
new file mode 100644
index 0000000..3d6acb9
--- /dev/null
+++ b/recipes-opie/opie-today-addressbookplugin/opie-today-addressbookplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/today/plugins/addressbook "
diff --git a/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin.inc b/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin.inc
new file mode 100644
index 0000000..4f28b66
--- /dev/null
+++ b/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Datebook plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-today"
+APPNAME = "todaydatebookplugin"
+
+
+S = "${WORKDIR}/datebook"
+
+inherit opie
+
diff --git a/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_1.2.5.bb b/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_1.2.5.bb
new file mode 100644
index 0000000..60edf71
--- /dev/null
+++ b/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_today_plugins_datebook.tar.bz2;name=split_core_pim_today_plugins_datebook"
+SRC_URI[split_core_pim_today_plugins_datebook.md5sum] = "45c0402091d58cb7c0d793ec5c6da4ba"
+SRC_URI[split_core_pim_today_plugins_datebook.sha256sum] = "d834f034a472f1e69d25cecc4065e0c2f5b0011472169539ac859b6caeea54b6"
diff --git a/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_cvs.bb b/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_cvs.bb
new file mode 100644
index 0000000..2c6db8c
--- /dev/null
+++ b/recipes-opie/opie-today-datebookplugin/opie-today-datebookplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/today/plugins/datebook "
diff --git a/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin.inc b/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin.inc
new file mode 100644
index 0000000..6f29feb
--- /dev/null
+++ b/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "'fortune' plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-today libqtaux2"
+RDEPENDS_${PN} = "fortune-mod opie-today"
+APPNAME = "todayfortuneplugin"
+
+S = "${WORKDIR}/fortune"
+
+inherit opie
diff --git a/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_1.2.5.bb b/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_1.2.5.bb
new file mode 100644
index 0000000..a5ee0de
--- /dev/null
+++ b/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_todayplugins_fortune.tar.bz2;name=split_noncore_todayplugins_fortune"
+SRC_URI[split_noncore_todayplugins_fortune.md5sum] = "161e4b97e3a4656d860acae1a5f86f01"
+SRC_URI[split_noncore_todayplugins_fortune.sha256sum] = "22347746e510f1a41b2c73661a935e4a2f8093f655984c99b2891922fdc5676e"
diff --git a/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_cvs.bb b/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_cvs.bb
new file mode 100644
index 0000000..201f0e1
--- /dev/null
+++ b/recipes-opie/opie-today-fortuneplugin/opie-today-fortuneplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/todayplugins/fortune "
diff --git a/recipes-opie/opie-today-mailplugin/opie-today-mailplugin.inc b/recipes-opie/opie-today-mailplugin/opie-today-mailplugin.inc
new file mode 100644
index 0000000..d451964
--- /dev/null
+++ b/recipes-opie/opie-today-mailplugin/opie-today-mailplugin.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Mail plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-today opie-mailapplet"
+RDEPENDS_${PN} = "opie-today opie-mailapplet"
+APPNAME = "todaymailplugin"
+
+
+S = "${WORKDIR}/mail"
+
+inherit opie
diff --git a/recipes-opie/opie-today-mailplugin/opie-today-mailplugin_1.2.5.bb b/recipes-opie/opie-today-mailplugin/opie-today-mailplugin_1.2.5.bb
new file mode 100644
index 0000000..53e0e5a
--- /dev/null
+++ b/recipes-opie/opie-today-mailplugin/opie-today-mailplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_today_plugins_mail.tar.bz2;name=split_core_pim_today_plugins_mail"
+SRC_URI[split_core_pim_today_plugins_mail.md5sum] = "37669d11f41c1ca1761044abe5e631ba"
+SRC_URI[split_core_pim_today_plugins_mail.sha256sum] = "10d318c7bde2bd08dcdb167e0240545293c1f86b824ce60517883388a933a3cc"
diff --git a/recipes-opie/opie-today-mailplugin/opie-today-mailplugin_cvs.bb b/recipes-opie/opie-today-mailplugin/opie-today-mailplugin_cvs.bb
new file mode 100644
index 0000000..0e64987
--- /dev/null
+++ b/recipes-opie/opie-today-mailplugin/opie-today-mailplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/today/plugins/mail "
diff --git a/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin.inc b/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin.inc
new file mode 100644
index 0000000..7fb97e1
--- /dev/null
+++ b/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Stock ticker plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "opie-today libqtaux2"
+APPNAME = "todaystocktickerplugin"
+
+
+S = "${WORKDIR}/stockticker"
+
+inherit opie
+
+# FILES plugins/today/libtodaystocktickerplugin.so* bin/stockticker pics/stockticker/stockticker.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/stockticker/
+ install -m 0644 ${WORKDIR}/pics/stockticker/*.png ${D}${palmtopdir}/pics/stockticker/
+}
+
diff --git a/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_1.2.5.bb b/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_1.2.5.bb
new file mode 100644
index 0000000..f47ad88
--- /dev/null
+++ b/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_todayplugins_stockticker.tar.bz2;name=split_noncore_todayplugins_stockticker \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_todayplugins_stockticker.md5sum] = "6cb8c961f51572bc9c39476e4e78b992"
+SRC_URI[split_noncore_todayplugins_stockticker.sha256sum] = "77a65b971e560b46aedd0575439a27c407b905207d17a6832aea83a6d2404dce"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_cvs.bb b/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_cvs.bb
new file mode 100644
index 0000000..2fc4d9f
--- /dev/null
+++ b/recipes-opie/opie-today-stocktickerplugin/opie-today-stocktickerplugin_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/todayplugins/stockticker \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin.inc b/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin.inc
new file mode 100644
index 0000000..9d2eeac
--- /dev/null
+++ b/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Todo list plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-today"
+APPNAME = "todaytodolistplugin"
+
+
+S = "${WORKDIR}/todolist"
+
+inherit opie
+
diff --git a/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_1.2.5.bb b/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_1.2.5.bb
new file mode 100644
index 0000000..e39f14e
--- /dev/null
+++ b/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_today_plugins_todolist.tar.bz2;name=split_core_pim_today_plugins_todolist"
+SRC_URI[split_core_pim_today_plugins_todolist.md5sum] = "c25f16a66d274e04e17bb58af141948b"
+SRC_URI[split_core_pim_today_plugins_todolist.sha256sum] = "e0258dc7fddf6095f42ed756f6b02f5c7dfce52665ab1cf02440f8b0d3038623"
diff --git a/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_cvs.bb b/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_cvs.bb
new file mode 100644
index 0000000..c13e517
--- /dev/null
+++ b/recipes-opie/opie-today-todolistplugin/opie-today-todolistplugin_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/today/plugins/todolist "
diff --git a/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin.inc b/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin.inc
new file mode 100644
index 0000000..b7718e2
--- /dev/null
+++ b/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Weather plugin for Today"
+SECTION = "opie/today"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libopiecore2 libopiepim2"
+RDEPENDS_${PN} = "opie-today"
+APPNAME = "todayweatherplugin"
+
+
+S = "${WORKDIR}/weather"
+
+inherit opie
+
+# FILES plugins/today/libtodayweatherplugin.so* pics/todayweatherplugin
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_1.2.5.bb b/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_1.2.5.bb
new file mode 100644
index 0000000..61c6010
--- /dev/null
+++ b/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_todayplugins_weather.tar.bz2;name=split_noncore_todayplugins_weather \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics"
+SRC_URI[split_noncore_todayplugins_weather.md5sum] = "4900e1091a1473ef6d8b722ff1cbfb6a"
+SRC_URI[split_noncore_todayplugins_weather.sha256sum] = "990e2ef1ae38ca427abc4c466840ce183c637cb90587f971767b781be5dfebc4"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
diff --git a/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_cvs.bb b/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_cvs.bb
new file mode 100644
index 0000000..64630c8
--- /dev/null
+++ b/recipes-opie/opie-today-weatherplugin/opie-today-weatherplugin_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/todayplugins/weather \
+ ${OPIE_GIT};protocol=git;subpath=pics"
diff --git a/recipes-opie/opie-today/opie-today.inc b/recipes-opie/opie-today/opie-today.inc
new file mode 100644
index 0000000..610883e
--- /dev/null
+++ b/recipes-opie/opie-today/opie-today.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Today screen application"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "today"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libtoday.so* bin/today apps/1Pim/today.desktop pics/today/*
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-today/opie-today_1.2.5.bb b/recipes-opie/opie-today/opie-today_1.2.5.bb
new file mode 100644
index 0000000..d67210a
--- /dev/null
+++ b/recipes-opie/opie-today/opie-today_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_today.tar.bz2;name=split_core_pim_today \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_pim_today.md5sum] = "6d22f6efbf89550dda50bde7918fcd82"
+SRC_URI[split_core_pim_today.sha256sum] = "6a63f1af1de68dfa50c1514db44b33c6694738d202d0cb37d31f8df84b68c615"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-today/opie-today_cvs.bb b/recipes-opie/opie-today/opie-today_cvs.bb
new file mode 100644
index 0000000..2b9e3e7
--- /dev/null
+++ b/recipes-opie/opie-today/opie-today_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/today \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-todo/files/unbreak-logging.patch b/recipes-opie/opie-todo/files/unbreak-logging.patch
new file mode 100644
index 0000000..20e0bd0
--- /dev/null
+++ b/recipes-opie/opie-todo/files/unbreak-logging.patch
@@ -0,0 +1,21 @@
+Index: todo/main.cpp
+===================================================================
+RCS file: /cvs/opie/core/pim/todo/main.cpp,v
+retrieving revision 1.11
+diff -u -r1.11 main.cpp
+--- main.cpp 6 Apr 2005 21:39:47 -0000 1.11
++++ main.cpp 3 May 2007 02:57:14 -0000
+@@ -34,13 +34,8 @@
+
+ #include <qpe/qpeapplication.h>
+
+-void myMessages( QtMsgType, const char* ) {
+-
+-}
+-
+ int main( int argc, char **argv )
+ {
+- qInstallMsgHandler( myMessages );
+ QPEApplication a( argc, argv );
+
+ QTime time;
diff --git a/recipes-opie/opie-todo/opie-todo.inc b/recipes-opie/opie-todo/opie-todo.inc
new file mode 100644
index 0000000..226c8ad
--- /dev/null
+++ b/recipes-opie/opie-todo/opie-todo.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Todo list manager"
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-pics"
+APPNAME = "todolist"
+
+
+S = "${WORKDIR}/todo"
+
+inherit opie
+
+# FILES plugins/application/libtodolist.so* bin/todolist apps/1Pim/todo.desktop
diff --git a/recipes-opie/opie-todo/opie-todo_1.2.5.bb b/recipes-opie/opie-todo/opie-todo_1.2.5.bb
new file mode 100644
index 0000000..d6dcbc4
--- /dev/null
+++ b/recipes-opie/opie-todo/opie-todo_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_pim_todo.tar.bz2;name=split_core_pim_todo \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps \
+ file://unbreak-logging.patch"
+SRC_URI[split_core_pim_todo.md5sum] = "abbb87630f731ed21882c5eba1ae62e8"
+SRC_URI[split_core_pim_todo.sha256sum] = "78efadc5959f3307a75259bf8901d3a582d0105839abb84e537ecfc39039e400"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-todo/opie-todo_cvs.bb b/recipes-opie/opie-todo/opie-todo_cvs.bb
new file mode 100644
index 0000000..cf98d40
--- /dev/null
+++ b/recipes-opie/opie-todo/opie-todo_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/pim/todo \
+ ${OPIE_GIT};protocol=git;subpath=apps \
+ file://unbreak-logging.patch"
diff --git a/recipes-opie/opie-tonleiter/opie-tonleiter.inc b/recipes-opie/opie-tonleiter/opie-tonleiter.inc
new file mode 100644
index 0000000..a3108f0
--- /dev/null
+++ b/recipes-opie/opie-tonleiter/opie-tonleiter.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Music scales for string instruments"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "tonleiter"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-tonleiter/opie-tonleiter_1.2.5.bb b/recipes-opie/opie-tonleiter/opie-tonleiter_1.2.5.bb
new file mode 100644
index 0000000..a9f3633
--- /dev/null
+++ b/recipes-opie/opie-tonleiter/opie-tonleiter_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_multimedia_tonleiter.tar.bz2;name=split_noncore_multimedia_tonleiter \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_multimedia_tonleiter.md5sum] = "0652843221c29c7d71f21aefd63b4b6a"
+SRC_URI[split_noncore_multimedia_tonleiter.sha256sum] = "f85bf94f7c9707807db98f5c16611fce1ec6b71796cdbbfc36c30a362553098b"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-tonleiter/opie-tonleiter_cvs.bb b/recipes-opie/opie-tonleiter/opie-tonleiter_cvs.bb
new file mode 100644
index 0000000..2508bb0
--- /dev/null
+++ b/recipes-opie/opie-tonleiter/opie-tonleiter_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/multimedia/tonleiter \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-ttf-support/files/02qtttffont-update b/recipes-opie/opie-ttf-support/files/02qtttffont-update
new file mode 100644
index 0000000..8f8058f
--- /dev/null
+++ b/recipes-opie/opie-ttf-support/files/02qtttffont-update
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Author: Rolf Leggewie
+
+mkdir -p @@PALMTOPDIR@@/lib/fonts
+
+@@SBINDIR@@/update-qtttffontdir @@DATADIR@@/fonts/truetype > @@PALMTOPDIR@@/lib/fonts/fontdir
diff --git a/recipes-opie/opie-ttf-support/files/fontdir b/recipes-opie/opie-ttf-support/files/fontdir
new file mode 100644
index 0000000..e537066
--- /dev/null
+++ b/recipes-opie/opie-ttf-support/files/fontdir
@@ -0,0 +1,11 @@
+
+DejaVuSans /usr/share/fonts/truetype/DejaVuSans.ttf FT n 50 80 su
+DejaVuSans /usr/share/fonts/truetype/DejaVuSans-Bold.ttf FT n 75 80 su
+DejaVuSans /usr/share/fonts/truetype/DejaVuSans-BoldOblique.ttf FT y 75 80 su
+DejaVuSans /usr/share/fonts/truetype/DejaVuSans-Oblique.ttf FT y 50 80 su
+
+DejaVuMono /usr/share/fonts/truetype/DejaVuSansMono-Roman.ttf FT n 50 80 su
+DejaVuMono /usr/share/fonts/truetype/DejaVuSansMono-Bold.ttf FT n 75 80 su
+DejaVuMono /usr/share/fonts/truetype/DejaVuSansMono-BoldOb.ttf FT y 75 80 su
+DejaVuMono /usr/share/fonts/truetype/DejaVuSansMono-Oblique.ttf FT y 50 80 su
+
diff --git a/recipes-opie/opie-ttf-support/files/update-qtttffontdir.c b/recipes-opie/opie-ttf-support/files/update-qtttffontdir.c
new file mode 100644
index 0000000..fa45e38
--- /dev/null
+++ b/recipes-opie/opie-ttf-support/files/update-qtttffontdir.c
@@ -0,0 +1,127 @@
+/*
+ * Utility to generate 'fontdir' for Qt/Embedded
+ *
+ * (C) 2004-2005 Marcin Juszkiewicz <openembedded@hrw.one.pl>
+ *
+ * License: GPLv2
+ *
+ * History:
+ *
+ * v0.1 2004.10.06 - first version (sent to OPIE devel ML)
+ * v0.2 2005.03.12 - added Oblique fonts support
+ * v1.0 2005.06.29 - switched font style handling to not based on filenames
+ * v1.1 2005.06.29 - fixed filename comparing
+ *
+ */
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+#include <stdio.h>
+#include <dirent.h>
+#include <unistd.h>
+
+
+int main(int argc, char* argv[])
+{
+ DIR *katalog;
+ struct dirent *plik;
+
+ FT_Library library;
+ FT_Face face;
+
+ if(argc == 1)
+ {
+ fprintf(stderr, "Usage: %s <path to TTF fonts>\n", argv[0]);
+ exit(10);
+ }
+
+ if(FT_Init_FreeType(&library))
+ {
+ fprintf(stderr, "Error during initialising FreeType library.\n");
+ exit(5);
+ }
+
+ chdir(argv[1]);
+ if((katalog = opendir(".")))
+ {
+ int found_fixed = 0;
+
+ while((plik = readdir(katalog)))
+ {
+ if(!strstr(plik->d_name, ".ttf"))
+ {
+ continue;
+ }
+
+ if(!FT_New_Face(library, plik->d_name, 0, &face))
+ {
+ /*
+ * change spaces in family_name into _
+ */
+
+ char* ptr;
+
+ for(ptr = strchr(face->family_name,' '); (ptr = strchr(ptr, ' ')); ) *ptr = '_';
+
+ if(
+ face->face_flags & FT_FACE_FLAG_FIXED_WIDTH &&
+ !found_fixed &&
+ !(face->style_flags & FT_STYLE_FLAG_ITALIC) &&
+ !(face->style_flags & FT_STYLE_FLAG_BOLD)
+ )
+ {
+ found_fixed = 1;
+ printf("fixed %s/%s FT", argv[1], plik->d_name);
+
+ if(face->style_flags & FT_STYLE_FLAG_ITALIC)
+ {
+ printf(" y");
+ }
+ else
+ {
+ printf(" n");
+ }
+
+ if(face->style_flags & FT_STYLE_FLAG_BOLD)
+ {
+ printf(" 75");
+ }
+ else
+ {
+ printf(" 50");
+ }
+
+ printf(" 60 su \n");
+ }
+
+ printf("%s %s/%s FT", face->family_name, argv[1], plik->d_name);
+
+ if(face->style_flags & FT_STYLE_FLAG_ITALIC)
+ {
+ printf(" y");
+ }
+ else
+ {
+ printf(" n");
+ }
+
+ if(face->style_flags & FT_STYLE_FLAG_BOLD)
+ {
+ printf(" 75");
+ }
+ else
+ {
+ printf(" 50");
+ }
+
+ printf(" 60 su \n");
+
+ FT_Done_Face(face);
+ }
+ }
+ }
+
+ return 0;
+}
diff --git a/recipes-opie/opie-ttf-support/opie-ttf-support_1.1.bb b/recipes-opie/opie-ttf-support/opie-ttf-support_1.1.bb
new file mode 100644
index 0000000..18ce7ac
--- /dev/null
+++ b/recipes-opie/opie-ttf-support/opie-ttf-support_1.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Meta-package for Opie TTF support"
+SECTION = "opie/fonts"
+DEPENDS = "freetype"
+PR = "r5"
+
+SRC_URI = "file://update-qtttffontdir.c \
+ file://02qtttffont-update"
+S = "${WORKDIR}"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} -I${STAGING_INCDIR}/freetype2 -lfreetype -o update-qtttffontdir update-qtttffontdir.c
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -d ${D}${sysconfdir}/update-fonts-common.d/
+ install -m 0755 update-qtttffontdir ${D}${sbindir}
+ install -m 0755 02qtttffont-update ${D}${sysconfdir}/update-fonts-common.d/
+ sed -i 's!@@SBINDIR@@!${sbindir}!g' ${D}${sysconfdir}/update-fonts-common.d/02qtttffont-update
+ sed -i 's!@@PALMTOPDIR@@!${palmtopdir}!g' ${D}${sysconfdir}/update-fonts-common.d/02qtttffont-update
+ sed -i 's!@@DATADIR@@!${datadir}!g' ${D}${sysconfdir}/update-fonts-common.d/02qtttffont-update
+}
+
+pkg_postinst() {
+ ${sysconfdir}/update-fonts-common.d/02qtttffont-update
+}
diff --git a/recipes-opie/opie-unikeyboard/opie-unikeyboard.inc b/recipes-opie/opie-unikeyboard/opie-unikeyboard.inc
new file mode 100644
index 0000000..7bdf06d
--- /dev/null
+++ b/recipes-opie/opie-unikeyboard/opie-unikeyboard.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Unicode input method"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qunikeyboard"
+
+
+S = "${WORKDIR}/unikeyboard"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+${bindir}/qcop QPE/TaskBar "reloadInputMethods()"
+}
+
+# FILES plugins/inputmethods/libqunikeyboard.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-unikeyboard/opie-unikeyboard_1.2.5.bb b/recipes-opie/opie-unikeyboard/opie-unikeyboard_1.2.5.bb
new file mode 100644
index 0000000..481490c
--- /dev/null
+++ b/recipes-opie/opie-unikeyboard/opie-unikeyboard_1.2.5.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_inputmethods_unikeyboard.tar.bz2;name=split_inputmethods_unikeyboard"
+SRC_URI[split_inputmethods_unikeyboard.md5sum] = "ec4037ab5076d196b0a65cb232a9a7aa"
+SRC_URI[split_inputmethods_unikeyboard.sha256sum] = "3262bf997a9e0f99a07c9b5fdaa387bdcb07506b1a629977c6eae2f215e6758e"
diff --git a/recipes-opie/opie-unikeyboard/opie-unikeyboard_cvs.bb b/recipes-opie/opie-unikeyboard/opie-unikeyboard_cvs.bb
new file mode 100644
index 0000000..d161aa8
--- /dev/null
+++ b/recipes-opie/opie-unikeyboard/opie-unikeyboard_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=inputmethods/unikeyboard "
diff --git a/recipes-opie/opie-vmemo-settings/opie-vmemo-settings.inc b/recipes-opie/opie-vmemo-settings/opie-vmemo-settings.inc
new file mode 100644
index 0000000..291a47d
--- /dev/null
+++ b/recipes-opie/opie-vmemo-settings/opie-vmemo-settings.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Sound settings dialog"
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "sound"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libsound.so* bin/sound apps/Settings/Sound.desktop
diff --git a/recipes-opie/opie-vmemo-settings/opie-vmemo-settings_1.2.5.bb b/recipes-opie/opie-vmemo-settings/opie-vmemo-settings_1.2.5.bb
new file mode 100644
index 0000000..22d74a1
--- /dev/null
+++ b/recipes-opie/opie-vmemo-settings/opie-vmemo-settings_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_settings_sound.tar.bz2;name=split_noncore_settings_sound \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_settings_sound.md5sum] = "e69c67a0306f0d26cd7c8784ce6a492b"
+SRC_URI[split_noncore_settings_sound.sha256sum] = "397769072bd6c20f3493fd98e1b862bf2af33ff93d6dc0c6b6e9f9864b4bd6e4"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-vmemo-settings/opie-vmemo-settings_cvs.bb b/recipes-opie/opie-vmemo-settings/opie-vmemo-settings_cvs.bb
new file mode 100644
index 0000000..472014b
--- /dev/null
+++ b/recipes-opie/opie-vmemo-settings/opie-vmemo-settings_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/settings/sound \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-vmemo/opie-vmemo.inc b/recipes-opie/opie-vmemo/opie-vmemo.inc
new file mode 100644
index 0000000..e2849bd
--- /dev/null
+++ b/recipes-opie/opie-vmemo/opie-vmemo.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Voice Memo Recorder Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "opie-vmemo-settings"
+I18N_FILES = "libvmemoapplet.ts"
+APPNAME = "vmemoapplet"
+
+
+S = "${WORKDIR}/vmemo"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+fi
+ if [ -n "$D" ]; then exit 1; fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then exit 1; fi
+}
+
+# FILES plugins/applets/libvmemoapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-vmemo/opie-vmemo_1.2.5.bb b/recipes-opie/opie-vmemo/opie-vmemo_1.2.5.bb
new file mode 100644
index 0000000..0665028
--- /dev/null
+++ b/recipes-opie/opie-vmemo/opie-vmemo_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+PR = "r1"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_vmemo.tar.bz2;name=split_core_applets_vmemo \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_vmemo.md5sum] = "9fd1ee93874f300c21ece152984583de"
+SRC_URI[split_core_applets_vmemo.sha256sum] = "567fe3ebf2fcd98389706ec67a54f52bdc9b5b429f48963c1dc411c95f0285ac"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
+
diff --git a/recipes-opie/opie-vmemo/opie-vmemo_cvs.bb b/recipes-opie/opie-vmemo/opie-vmemo_cvs.bb
new file mode 100644
index 0000000..6e7f551
--- /dev/null
+++ b/recipes-opie/opie-vmemo/opie-vmemo_cvs.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/vmemo \
+ ${OPIE_GIT};protocol=git;subpath=apps"
+
+DEPENDS = "libopiecore2 libopieui2 libopiemm2"
diff --git a/recipes-opie/opie-volumeapplet/opie-volumeapplet.inc b/recipes-opie/opie-volumeapplet/opie-volumeapplet.inc
new file mode 100644
index 0000000..3bb619f
--- /dev/null
+++ b/recipes-opie/opie-volumeapplet/opie-volumeapplet.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "Volume applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "volumeapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ ${bindir}/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+${bindir}/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+# FILES plugins/applets/libvolumeapplet.so*
+do_install() {
+}
+
diff --git a/recipes-opie/opie-volumeapplet/opie-volumeapplet_1.2.5.bb b/recipes-opie/opie-volumeapplet/opie-volumeapplet_1.2.5.bb
new file mode 100644
index 0000000..e881c36
--- /dev/null
+++ b/recipes-opie/opie-volumeapplet/opie-volumeapplet_1.2.5.bb
@@ -0,0 +1,10 @@
+require ${PN}.inc
+
+PR = "r0"
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_volumeapplet.tar.bz2;name=split_core_applets_volumeapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_volumeapplet.md5sum] = "5ebd5673372d2927afbc9ad1d8cf5d48"
+SRC_URI[split_core_applets_volumeapplet.sha256sum] = "d80c2f63c21f4766c781e87e76033e984282fd19586b4eae3641b6cff5228716"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-volumeapplet/opie-volumeapplet_cvs.bb b/recipes-opie/opie-volumeapplet/opie-volumeapplet_cvs.bb
new file mode 100644
index 0000000..b7671e8
--- /dev/null
+++ b/recipes-opie/opie-volumeapplet/opie-volumeapplet_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+PR = "r1"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/volumeapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-vtapplet/opie-vtapplet.inc b/recipes-opie/opie-vtapplet/opie-vtapplet.inc
new file mode 100644
index 0000000..1a82bd7
--- /dev/null
+++ b/recipes-opie/opie-vtapplet/opie-vtapplet.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "VT Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "vtapplet"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES
+do_install() {
+}
+
diff --git a/recipes-opie/opie-vtapplet/opie-vtapplet_1.2.5.bb b/recipes-opie/opie-vtapplet/opie-vtapplet_1.2.5.bb
new file mode 100644
index 0000000..6c2adbb
--- /dev/null
+++ b/recipes-opie/opie-vtapplet/opie-vtapplet_1.2.5.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_core_applets_vtapplet.tar.bz2;name=split_core_applets_vtapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_core_applets_vtapplet.md5sum] = "820ea3503e75d0bee83ce7d7b0c5549f"
+SRC_URI[split_core_applets_vtapplet.sha256sum] = "4d0cb18cb4386c22d945ae500185705d2e1f576a035ffae2610946e786236f9c"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-vtapplet/opie-vtapplet_cvs.bb b/recipes-opie/opie-vtapplet/opie-vtapplet_cvs.bb
new file mode 100644
index 0000000..d2e259a
--- /dev/null
+++ b/recipes-opie/opie-vtapplet/opie-vtapplet_cvs.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/applets/vtapplet \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-wellenreiter/opie-wellenreiter.inc b/recipes-opie/opie-wellenreiter/opie-wellenreiter.inc
new file mode 100644
index 0000000..d7a2a73
--- /dev/null
+++ b/recipes-opie/opie-wellenreiter/opie-wellenreiter.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "A Wireless Network Monitor"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RRECOMMENDS_${PN} = "manufacturers"
+APPNAME = "wellenreiter"
+APPTYPE = "binary"
+
+S = "${WORKDIR}/wellenreiter"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.* ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-wellenreiter/opie-wellenreiter_1.2.5.bb b/recipes-opie/opie-wellenreiter/opie-wellenreiter_1.2.5.bb
new file mode 100644
index 0000000..b1dc34b
--- /dev/null
+++ b/recipes-opie/opie-wellenreiter/opie-wellenreiter_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_net_wellenreiter.tar.bz2;name=split_noncore_net_wellenreiter \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_net_wellenreiter.md5sum] = "a3ede6cdf3fd11ecbab6905faa6d27fa"
+SRC_URI[split_noncore_net_wellenreiter.sha256sum] = "4146df33cc0c5961e27a441ebc47b0d1f17e1e4d082e60ff03ededb79c3f8d39"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-wellenreiter/opie-wellenreiter_cvs.bb b/recipes-opie/opie-wellenreiter/opie-wellenreiter_cvs.bb
new file mode 100644
index 0000000..9824e44
--- /dev/null
+++ b/recipes-opie/opie-wellenreiter/opie-wellenreiter_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/net/wellenreiter \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-wirelessapplet/opie-wirelessapplet.inc b/recipes-opie/opie-wirelessapplet/opie-wirelessapplet.inc
new file mode 100644
index 0000000..d96ed43
--- /dev/null
+++ b/recipes-opie/opie-wirelessapplet/opie-wirelessapplet.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Wireless Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "wirelessapplet"
+
+EXCLUDE_FROM_WORLD = "1"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+}
diff --git a/recipes-opie/opie-wirelessapplet/opie-wirelessapplet_1.2.5.bb b/recipes-opie/opie-wirelessapplet/opie-wirelessapplet_1.2.5.bb
new file mode 100644
index 0000000..7ea3f17
--- /dev/null
+++ b/recipes-opie/opie-wirelessapplet/opie-wirelessapplet_1.2.5.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_wirelessapplet.tar.bz2;name=split_noncore_applets_wirelessapplet"
+SRC_URI[split_noncore_applets_wirelessapplet.md5sum] = "46874074feb45aa6179250ce39d8f6c6"
+SRC_URI[split_noncore_applets_wirelessapplet.sha256sum] = "dcbb5e1e1462d5ced16575cbc1f3d082931dd48b3bb2062c0729f6ac718a1448"
diff --git a/recipes-opie/opie-wirelessapplet/opie-wirelessapplet_cvs.bb b/recipes-opie/opie-wirelessapplet/opie-wirelessapplet_cvs.bb
new file mode 100644
index 0000000..fafb736
--- /dev/null
+++ b/recipes-opie/opie-wirelessapplet/opie-wirelessapplet_cvs.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/wirelessapplet"
diff --git a/recipes-opie/opie-wordgame/opie-wordgame.inc b/recipes-opie/opie-wordgame/opie-wordgame.inc
new file mode 100644
index 0000000..4510899
--- /dev/null
+++ b/recipes-opie/opie-wordgame/opie-wordgame.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "Crossword game"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "wordgame"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libwordgame.so* bin/wordgame apps/Games/wordgame.desktop pics/wordgame
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.xpm ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-wordgame/opie-wordgame_1.2.5.bb b/recipes-opie/opie-wordgame/opie-wordgame_1.2.5.bb
new file mode 100644
index 0000000..43042e6
--- /dev/null
+++ b/recipes-opie/opie-wordgame/opie-wordgame_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_wordgame.tar.bz2;name=split_noncore_games_wordgame \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_wordgame.md5sum] = "fbd8a628e6ecaaffe899650314ff529e"
+SRC_URI[split_noncore_games_wordgame.sha256sum] = "85ade37894bf4948ba839784e8cdd9b45f392becb5950593d6ee0786b910b5cf"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-wordgame/opie-wordgame_cvs.bb b/recipes-opie/opie-wordgame/opie-wordgame_cvs.bb
new file mode 100644
index 0000000..bf84535
--- /dev/null
+++ b/recipes-opie/opie-wordgame/opie-wordgame_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/wordgame \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-write/opie-write.inc b/recipes-opie/opie-write/opie-write.inc
new file mode 100644
index 0000000..36d6cbf
--- /dev/null
+++ b/recipes-opie/opie-write/opie-write.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Opie Write"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-write"
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
diff --git a/recipes-opie/opie-write/opie-write_1.2.5.bb b/recipes-opie/opie-write/opie-write_1.2.5.bb
new file mode 100644
index 0000000..b04bd14
--- /dev/null
+++ b/recipes-opie/opie-write/opie-write_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_${APPNAME}.tar.bz2;name=split_noncore_apps_appname \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_appname.md5sum] = "49aa2296286a0a1b4ef95c72d99eb969"
+SRC_URI[split_noncore_apps_appname.sha256sum] = "a94d6fb8d06e1ca526ccf07ae8e561a000a7e8fce67799f47030f184f41483d9"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-write/opie-write_cvs.bb b/recipes-opie/opie-write/opie-write_cvs.bb
new file mode 100644
index 0000000..e49a27e
--- /dev/null
+++ b/recipes-opie/opie-write/opie-write_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/${APPNAME} \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-zkbapplet/opie-zkbapplet.inc b/recipes-opie/opie-zkbapplet/opie-zkbapplet.inc
new file mode 100644
index 0000000..3203bce
--- /dev/null
+++ b/recipes-opie/opie-zkbapplet/opie-zkbapplet.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "KeyZ Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "zkbapplet"
+RDEPENDS_${PN} = "opie-pics"
+I18N_FILES = "keyz-cfg.ts"
+
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/share/zkb/
+ install -m 0644 ${WORKDIR}/share/zkb/*xml* ${D}${palmtopdir}/share/zkb/
+ install -m 0644 ${WORKDIR}/share/zkb/zkb.xml.sample ${D}${palmtopdir}/share/zkb/zkb.xml
+ install -d ${D}${palmtopdir}/bin
+ install -m 0755 ${S}/keyz-cfg ${D}${palmtopdir}/bin/
+ install -d ${D}${palmtopdir}/apps/Settings
+ install -m 0644 ${WORKDIR}/apps/Settings/keyz-cfg.desktop ${D}${palmtopdir}/apps/Settings/
+}
diff --git a/recipes-opie/opie-zkbapplet/opie-zkbapplet_1.2.5.bb b/recipes-opie/opie-zkbapplet/opie-zkbapplet_1.2.5.bb
new file mode 100644
index 0000000..c8a4b46
--- /dev/null
+++ b/recipes-opie/opie-zkbapplet/opie-zkbapplet_1.2.5.bb
@@ -0,0 +1,14 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_applets_zkbapplet.tar.bz2;name=split_noncore_applets_zkbapplet \
+ http://sources.openembedded.org/opie-1.2.5-split_share.tar.bz2;name=split_share \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_applets_zkbapplet.md5sum] = "056d4645b48d364e13d9bc9bf7823e86"
+SRC_URI[split_noncore_applets_zkbapplet.sha256sum] = "327a8a0121f9f5ffcd60e894c9356d668aaa702a5750b7fec15029fe31699ed1"
+SRC_URI[split_share.md5sum] = "a715ae54405cae2b17c35d166f161aa8"
+SRC_URI[split_share.sha256sum] = "0b71c8726b41f8c4dfd3a31fbb23f9c533c16d7d9c1f3002ab0d2daea274da7a"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-zkbapplet/opie-zkbapplet_cvs.bb b/recipes-opie/opie-zkbapplet/opie-zkbapplet_cvs.bb
new file mode 100644
index 0000000..ed84d88
--- /dev/null
+++ b/recipes-opie/opie-zkbapplet/opie-zkbapplet_cvs.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/applets/zkbapplet \
+ ${OPIE_GIT};protocol=git;subpath=share \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-zlines/opie-zlines.inc b/recipes-opie/opie-zlines/opie-zlines.inc
new file mode 100644
index 0000000..e0e87e7
--- /dev/null
+++ b/recipes-opie/opie-zlines/opie-zlines.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "ZLines"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "zlines"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libzlines.so* bin/zlines apps/Games/zlines.desktop pics/zlines
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-zlines/opie-zlines_1.2.5.bb b/recipes-opie/opie-zlines/opie-zlines_1.2.5.bb
new file mode 100644
index 0000000..eaefb81
--- /dev/null
+++ b/recipes-opie/opie-zlines/opie-zlines_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_zlines.tar.bz2;name=split_noncore_games_zlines \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_zlines.md5sum] = "bf01db2acf96b64d4693de9249ebca3f"
+SRC_URI[split_noncore_games_zlines.sha256sum] = "9a6983b87a44d7cad8c18a0c76528c288b4304dbf4c27ea306433aef95489e4c"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-zlines/opie-zlines_cvs.bb b/recipes-opie/opie-zlines/opie-zlines_cvs.bb
new file mode 100644
index 0000000..3dc0dc4
--- /dev/null
+++ b/recipes-opie/opie-zlines/opie-zlines_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/zlines \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-zsafe/opie-zsafe.inc b/recipes-opie/opie-zsafe/opie-zsafe.inc
new file mode 100644
index 0000000..0ec2a37
--- /dev/null
+++ b/recipes-opie/opie-zsafe/opie-zsafe.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Password manager program for Opie."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "zsafe"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+QMAKE_PROFILES = "zsafe.pro"
+
+# FILES bin/zsafe apps/Applications/zsafe.desktop pics/zsafe/zsafe.png
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-zsafe/opie-zsafe_1.2.5.bb b/recipes-opie/opie-zsafe/opie-zsafe_1.2.5.bb
new file mode 100644
index 0000000..664e609
--- /dev/null
+++ b/recipes-opie/opie-zsafe/opie-zsafe_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_apps_zsafe.tar.bz2;name=split_noncore_apps_zsafe \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_apps_zsafe.md5sum] = "1266ada3b283de72148c224c16443731"
+SRC_URI[split_noncore_apps_zsafe.sha256sum] = "91f5bf3ef919c2fd748f5242c3cccb219b0465c0a402ec83e2ac3f42d82c0411"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-zsafe/opie-zsafe_cvs.bb b/recipes-opie/opie-zsafe/opie-zsafe_cvs.bb
new file mode 100644
index 0000000..1dddf31
--- /dev/null
+++ b/recipes-opie/opie-zsafe/opie-zsafe_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/apps/zsafe \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/opie-zsame/opie-zsame.inc b/recipes-opie/opie-zsame/opie-zsame.inc
new file mode 100644
index 0000000..d91c2bc
--- /dev/null
+++ b/recipes-opie/opie-zsame/opie-zsame.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "ZSame"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "zsame"
+
+
+S = "${WORKDIR}/${APPNAME}"
+
+inherit opie
+
+# FILES plugins/application/libzsame.so* bin/zsame apps/Games/zsame.desktop pics/zsame
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
diff --git a/recipes-opie/opie-zsame/opie-zsame_1.2.5.bb b/recipes-opie/opie-zsame/opie-zsame_1.2.5.bb
new file mode 100644
index 0000000..b11040b
--- /dev/null
+++ b/recipes-opie/opie-zsame/opie-zsame_1.2.5.bb
@@ -0,0 +1,11 @@
+require ${PN}.inc
+
+SRC_URI = "http://sources.openembedded.org/opie-1.2.5-split_noncore_games_zsame.tar.bz2;name=split_noncore_games_zsame \
+ http://sources.openembedded.org/opie-1.2.5-split_pics.tar.bz2;name=split_pics \
+ http://sources.openembedded.org/opie-1.2.5-split_apps.tar.bz2;name=split_apps"
+SRC_URI[split_noncore_games_zsame.md5sum] = "c44192fb632328185946ca3feb664f21"
+SRC_URI[split_noncore_games_zsame.sha256sum] = "09deee45885f46d30192d110a2e7b703b39ee8b316b575d35eefdfc29f6a55c4"
+SRC_URI[split_pics.md5sum] = "e9b68749d67295f7080a23e39b17335e"
+SRC_URI[split_pics.sha256sum] = "0a7aab6d0bce04d6a9c257d768d8a1a481d38ba527d6e6e50723973789954b4a"
+SRC_URI[split_apps.md5sum] = "c765d13427e4dc8ee396e4dfed2dbe73"
+SRC_URI[split_apps.sha256sum] = "0fea454d8d286f7febc7449e4a06f73e941e8b22e9bab904a32e57f35479862a"
diff --git a/recipes-opie/opie-zsame/opie-zsame_cvs.bb b/recipes-opie/opie-zsame/opie-zsame_cvs.bb
new file mode 100644
index 0000000..a11891c
--- /dev/null
+++ b/recipes-opie/opie-zsame/opie-zsame_cvs.bb
@@ -0,0 +1,7 @@
+require ${PN}.inc
+
+PV = "${OPIE_GIT_PV}"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=noncore/games/zsame \
+ ${OPIE_GIT};protocol=git;subpath=pics \
+ ${OPIE_GIT};protocol=git;subpath=apps"
diff --git a/recipes-opie/tasks/task-opie-16mb.bb b/recipes-opie/tasks/task-opie-16mb.bb
new file mode 100644
index 0000000..859a0f5
--- /dev/null
+++ b/recipes-opie/tasks/task-opie-16mb.bb
@@ -0,0 +1,55 @@
+DESCRIPTION = "Tasks for small OPIE image"
+SECTION = "opie/base"
+LICENSE = "MIT"
+PR = "r3"
+
+inherit task
+
+PACKAGES = "task-opie-16mb-base \
+ task-opie-16mb-applets \
+ task-opie-16mb-inputmethods \
+ task-opie-16mb-settings \
+ task-opie-16mb-apps \
+ task-opie-16mb-pim \
+ "
+
+#
+# Dependencies to get the launcher up and running
+#
+RDEPENDS_task-opie-16mb-base = "opie-init opie-alarm opie-qcop opie-qss opie-quicklauncher \
+ opie-taskbar opie-pics opie-sounds opie-freetype opie-taskbar-images-320x240 \
+ ttf-dejavu-sans ttf-dejavu-sans-mono"
+
+#
+# things for reasonable bootstrap image
+#
+RDEPENDS_task-opie-16mb-applets = "opie-aboutapplet opie-clockapplet opie-suspendapplet \
+ opie-homeapplet opie-rotateapplet \
+ opie-brightnessapplet opie-volumeapplet \
+ opie-screenshotapplet \
+ ${@base_contains("COMBINED_FEATURES", "irda", "opie-irdaapplet", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "apm", "opie-batteryapplet", "",d)} \
+ ${@base_contains("COMBINED_FEATURES", "pcmcia", "opie-cardapplet", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "keyboard", "opie-vtapplet opie-logoutapplet", "",d)}"
+
+PACKAGE_ARCH_task-opie-16mb-applets = "${MACHINE_ARCH}"
+
+#
+# clamshell models can benefit from the autorotate applet
+#
+RDEPENDS_task-opie-16mb-applets_append_c7x0 = " opie-autorotateapplet"
+RDEPENDS_task-opie-16mb-applets_append_spitz = " opie-autorotateapplet"
+RDEPENDS_task-opie-16mb-applets_append_akita = " opie-autorotateapplet"
+
+RDEPENDS_task-opie-16mb-inputmethods = "opie-multikey"
+
+RDEPENDS_task-opie-16mb-settings = "opie-packagemanager opie-light-and-power opie-appearance \
+ opie-systemtime opie-networksettings opie-button-settings \
+ opie-icon-reload opie-launcher-settings opie-security \
+ opie-securityplugin-pin"
+
+RDEPENDS_task-opie-16mb-apps = "opie-console opie-clock opie-backup opie-sysinfo \
+ opie-advancedfm"
+
+RDEPENDS_task-opie-16mb-pim = "opie-addressbook opie-datebook opie-drawpad \
+ opie-search opie-textedit opie-today opie-todo"
diff --git a/recipes-opie/tasks/task-opie-all.bb b/recipes-opie/tasks/task-opie-all.bb
new file mode 100644
index 0000000..e316971
--- /dev/null
+++ b/recipes-opie/tasks/task-opie-all.bb
@@ -0,0 +1,68 @@
+DESCRIPTION = "Tasks for OPIE stuff"
+SECTION = "opie/base"
+LICENSE = "MIT"
+PR = "r3"
+
+inherit task
+
+PACKAGES = "task-opie-applets task-opie-inputmethods task-opie-styles \
+ task-opie-decorations task-opie-multimedia task-opie-wlan \
+ task-opie-settings task-opie-pim task-opie-datebookplugins \
+ task-opie-todayplugins"
+
+#
+# all OPIE stuff
+#
+RDEPENDS_task-opie-applets = "opie-aboutapplet opie-autorotateapplet opie-batteryapplet \
+ opie-bluetoothapplet opie-brightnessapplet \
+ opie-clipboardapplet opie-clockapplet opie-homeapplet \
+ opie-irdaapplet opie-lockapplet opie-logoutapplet \
+ opie-mailapplet opie-memoryapplet opie-multikeyapplet \
+ opie-networkapplet opie-notesapplet opie-cardapplet \
+ opie-pyquicklaunchapplet opie-restartapplet \
+ opie-restartapplet2 opie-rotateapplet \
+ opie-screenshotapplet opie-suspendapplet opie-vmemo \
+ opie-volumeapplet opie-vtapplet opie-zkbapplet \
+ "
+RDEPENDS_task-opie-inputmethods = "opie-dvorak opie-handwriting \
+ opie-handwriting-classicset opie-jumpx opie-keyboard \
+ opie-keyview opie-kjumpx opie-multikey opie-unikeyboard"
+
+RDEPENDS_task-opie-styles = "opie-style-flat opie-style-fresh opie-style-liquid opie-style-metal \
+ opie-style-web opie-style-phase opie-theme"
+
+RDEPENDS_task-opie-decorations = "opie-deco-flat opie-deco-liquid opie-deco-polished"
+
+RDEPENDS_task-opie-multimedia = "opie-mediaplayer1 \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'opie-mediaplayer1-libmadplugin', d)} \
+ opie-mediaplayer1-libmodplugin \
+ opie-mediaplayer1-libtremorplugin \
+ opie-mediaplayer1-libwavplugin \
+ opie-mediaplayer2 \
+ opie-mediaplayer2-skin-default \
+ opie-mediaplayer2-skin-default-landscape \
+ opie-mediaplayer2-skin-pod \
+ opie-mediaplayer2-skin-techno \
+ opie-powerchord opie-recorder opie-tonleiter"
+
+RDEPENDS_task-opie-settings = "opie-appearance opie-aqpkg opie-backup opie-button-settings \
+ opie-citytime opie-confeditor opie-doctab \
+ opie-formatter opie-language opie-launcher-settings \
+ opie-light-and-power opie-mediummount opie-networksettings \
+ opie-packagemanager opie-security opie-sshkeys opie-sysinfo \
+ opie-systemtime opie-icon-reload opie-vmemo-settings"
+
+RDEPENDS_task-opie-pim = "task-opie-base-pim task-opie-todayplugins task-opie-datebookplugins \
+ opie-mail opie-pimconverter"
+
+RDEPENDS_task-opie-datebookplugins = "opie-datebook-birthdayplugin \
+ opie-datebook-chrisholidayplugin \
+ opie-datebook-nationalholidayplugin"
+
+RDEPENDS_task-opie-todayplugins = "opie-today-addressbookplugin opie-today-datebookplugin \
+ opie-today-fortuneplugin opie-today-mailplugin \
+ opie-today-stocktickerplugin opie-today-todolistplugin \
+ opie-today-weatherplugin"
+
+RDEPENDS_task-opie-wlan = "wireless-tools opie-wellenreiter opie-networksettings-wlanplugin"
+
diff --git a/recipes-opie/tasks/task-opie-apps.bb b/recipes-opie/tasks/task-opie-apps.bb
new file mode 100644
index 0000000..f791c21
--- /dev/null
+++ b/recipes-opie/tasks/task-opie-apps.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Tasks for OPIE stuff"
+SECTION = "opie/base"
+LICENSE = "MIT"
+
+inherit task
+
+PACKAGES = "task-opie-apps task-opie-extra-apps"
+
+RDEPENDS_task-opie-apps = "opie-advancedfm opie-bartender opie-calculator \
+ opie-checkbook opie-clock \
+ opie-console opie-embeddedkonsole \
+ opie-euroconv opie-eye opie-ftp opie-gutenbrowser \
+ opie-helpbrowser opie-irc opie-keypebble opie-odict \
+ opie-oxygen opie-rdesktop opie-reader opie-remote \
+ opie-sheet opie-tableviewer opie-tinykate \
+ opie-wellenreiter opie-write opie-zsafe"
+
+#
+# additional things for a >= 24mb distribution
+#
+
+RDEPENDS_task-opie-extra-apps = "opie-calculator opie-checkbook opie-mail opie-eye \
+ opie-rdesktop opie-wellenreiter opie-irc \
+ opie-mediaplayer2 \
+ qpdf2"
+# konqueror-embedded
diff --git a/recipes-opie/tasks/task-opie-games.bb b/recipes-opie/tasks/task-opie-games.bb
new file mode 100644
index 0000000..4449c7a
--- /dev/null
+++ b/recipes-opie/tasks/task-opie-games.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Tasks for OPIE stuff"
+SECTION = "opie/base"
+LICENSE = "MIT"
+PR = "r1"
+
+inherit task
+
+PACKAGES = "task-opie-games task-opie-extra-games"
+
+RDEPENDS_task-opie-games = "opie-backgammon opie-bounce opie-buzzword opie-fifteen \
+ opie-go opie-kbill opie-kcheckers opie-kpacman opie-mindbreaker \
+ opie-minesweep opie-oyatzee opie-parashoot opie-qasteroids \
+ opie-sfcave opie-snake opie-solitaire opie-tetrix opie-tictac \
+ opie-wordgame opie-zlines opie-zsame"
+
+#
+# additional things for a >= 24mb distribution
+#
+
+RDEPENDS_task-opie-extra-games = "opie-parashoot opie-mindbreaker opie-fifteen opie-tictac \
+ opie-tetrix"
+
diff --git a/recipes-opie/tasks/task-opie.bb b/recipes-opie/tasks/task-opie.bb
new file mode 100644
index 0000000..a1daaf6
--- /dev/null
+++ b/recipes-opie/tasks/task-opie.bb
@@ -0,0 +1,99 @@
+DESCRIPTION = "Tasks for OPIE stuff"
+SECTION = "opie/base"
+LICENSE = "MIT"
+
+PR = "r14"
+
+inherit task
+
+PROVIDES = "task-opie-everything"
+
+PACKAGES = "task-opie-base \
+ task-opie-base-applets task-opie-base-apps \
+ task-opie-base-decorations task-opie-base-inputmethods \
+ task-opie-base-pim task-opie-base-settings \
+ task-opie-base-styles task-opie-base-todayplugins \
+ task-opie-extra-settings \
+ task-opie-extra-styles \
+ ${@base_contains("COMBINED_FEATURES", "bluetooth", "task-opie-bluetooth", "",d)} \
+ ${@base_contains("COMBINED_FEATURES", "irda", "task-opie-irda", "",d)} \
+ "
+
+RDEPENDS_task-opie-everything := "${PACKAGES}"
+
+PACKAGES += "task-opie-everything"
+
+#
+# Dependencies to get the launcher up and running
+#
+RDEPENDS_task-opie-base = "opie-init opie-alarm opie-qcop opie-qss opie-quicklauncher \
+ opie-taskbar opie-pics opie-sounds opie-freetype \
+ ttf-dejavu-sans ttf-dejavu-sans-mono"
+# Recommend both landscape and portrait backgrounds
+RRECOMMENDS_task-opie-base = "opie-taskbar-images-${MACHINE_DISPLAY_WIDTH_PIXELS}x${MACHINE_DISPLAY_HEIGHT_PIXELS} \
+ opie-taskbar-images-${MACHINE_DISPLAY_HEIGHT_PIXELS}x${MACHINE_DISPLAY_WIDTH_PIXELS}"
+
+PACKAGE_ARCH_task-opie-base = "${MACHINE_ARCH}"
+
+#
+# things for reasonable bootstrap image
+#
+RDEPENDS_task-opie-base-applets = "opie-aboutapplet opie-clockapplet opie-suspendapplet \
+ opie-homeapplet opie-rotateapplet \
+ opie-brightnessapplet opie-volumeapplet \
+ opie-screenshotapplet \
+ ${@base_contains("COMBINED_FEATURES", "irda", "opie-irdaapplet", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "apm", "opie-batteryapplet", "",d)} \
+ ${@base_contains("COMBINED_FEATURES", "pcmcia", "opie-cardapplet", "",d)} \
+ ${@base_contains("MACHINE_FEATURES", "keyboard", "opie-vtapplet opie-logoutapplet", "",d)}"
+
+PACKAGE_ARCH_task-opie-base-applets = "${MACHINE_ARCH}"
+
+#
+# clamshell models can benefit from the autorotate applet
+#
+RDEPENDS_task-opie-base-applets_append_c7x0 = " opie-autorotateapplet"
+RDEPENDS_task-opie-base-applets_append_spitz = " opie-autorotateapplet"
+RDEPENDS_task-opie-base-applets_append_akita = " opie-autorotateapplet"
+
+RDEPENDS_task-opie-base-inputmethods = "opie-multikey opie-handwriting opie-handwriting-classicset"
+
+RDEPENDS_task-opie-base-apps = "opie-console opie-clock opie-citytime opie-backup opie-sysinfo \
+ opie-advancedfm opie-textedit"
+
+RDEPENDS_task-opie-base-settings = "opie-packagemanager opie-light-and-power opie-appearance \
+ opie-systemtime opie-networksettings opie-button-settings \
+ opie-icon-reload opie-launcher-settings opie-security \
+ opie-securityplugin-pin"
+
+#
+# That settings can be removed and device will be still usable
+#
+RDEPENDS_task-opie-extra-settings = "opie-language opie-doctab opie-mediummount \
+ ${@base_contains("DISTRO_FEATURES", "wifi", "opie-networksettings-wlanplugin", "",d)} \
+ ${@base_contains("DISTRO_FEATURES", "ppp", "opie-networksettings-pppplugin", "",d)} \
+ "
+
+PACKAGE_ARCH_task-opie-extra-settings = "${MACHINE_ARCH}"
+
+RDEPENDS_task-opie-base-decorations = "opie-deco-flat opie-deco-liquid opie-deco-polished"
+
+RDEPENDS_task-opie-base-styles = "opie-style-flat opie-style-fresh opie-style-web opie-style-phase"
+
+#
+# Those styles are big and does not look good on QVGA screen
+#
+RDEPENDS_task-opie-extra-styles = "opie-style-liquid opie-style-metal"
+
+RDEPENDS_task-opie-base-todayplugins = "opie-today-addressbookplugin opie-today-datebookplugin \
+ opie-today-todolistplugin"
+
+RDEPENDS_task-opie-base-pim = "opie-addressbook opie-datebook opie-drawpad \
+ opie-search opie-notes opie-today opie-todo \
+ task-opie-base-todayplugins \
+ opie-datebook-birthdayplugin"
+
+RDEPENDS_task-opie-bluetooth = "bluez-utils obexftp obexpush libopieobex0 \
+ opie-bluepin opie-bluetoothmanager opie-bluetoothapplet"
+
+RDEPENDS_task-opie-irda = "irda-utils libopieobex0 obexftp obexpush"
diff --git a/recipes-opie/tasks/task-xqtlauncher.bb b/recipes-opie/tasks/task-xqtlauncher.bb
new file mode 100644
index 0000000..690d0df
--- /dev/null
+++ b/recipes-opie/tasks/task-xqtlauncher.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Tasks for xqtlauncher stuff"
+SECTION = "opie/base"
+LICENSE = "MIT"
+PR = "r1"
+
+inherit task
+
+PACKAGES = "task-xqtlauncher task-xqtlauncher-blackbox"
+
+#xkbd is currently needed becuse of a bug at xqt2
+RDEPENDS_task-xqtlauncher = "xqtlauncher \
+ xkbd \
+ "
+
+#
+# xqtlauncher with blackbox as wm
+#
+
+RDEPENDS_task-xqtlauncher-blackbox = "xqtlauncher-blackbox-config \
+ "
+
diff --git a/recipes-qt/qmake/files/linux-oe-qmake.conf b/recipes-qt/qmake/files/linux-oe-qmake.conf
new file mode 100644
index 0000000..205b693
--- /dev/null
+++ b/recipes-qt/qmake/files/linux-oe-qmake.conf
@@ -0,0 +1,82 @@
+#
+# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release
+
+QMAKE_CC = $(OE_QMAKE_CC)
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA)
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2)
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = $(OE_QMAKE_CXX)
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA)
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
+QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = $(OE_QMAKE_LINK)
+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
+QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA)
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath-link,
+
+QMAKE_LIBS = $(LIBS_EXTRA)
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
+QMAKE_LIBS_X11SM =
+QMAKE_LIBS_QT = -l$(OE_QMAKE_LIBS_QT)
+QMAKE_LIBS_QT_THREAD = -l$(OE_QMAKE_LIBS_QT)-mt
+QMAKE_LIBS_OPENGL = $(OE_QMAKE_LIBS_OPENGL)
+QMAKE_LIBS_OPENGL_QT = $(OE_QMAKE_LIBS_OPENGL_QT)
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(OE_QMAKE_MOC)
+QMAKE_UIC = $(OE_QMAKE_UIC)
+
+QMAKE_AR = $(OE_QMAKE_AR) cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = $(OE_QMAKE_STRIP)
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
+
diff --git a/recipes-qt/qmake/qmake-native_1.07a.bb b/recipes-qt/qmake/qmake-native_1.07a.bb
new file mode 100644
index 0000000..ac87b45
--- /dev/null
+++ b/recipes-qt/qmake/qmake-native_1.07a.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "TrollTech Makefile Generator"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+SECTION = "devel"
+LICENSE = "GPL QPL"
+PR = "r6"
+
+QTEVER = "qt-embedded-free-3.3.5"
+
+SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/${QTEVER}.tar.bz2 \
+ file://linux-oe-qmake.conf"
+S = "${WORKDIR}/${QTEVER}"
+
+inherit autotools native
+
+export QTDIR = "${S}"
+EXTRA_OEMAKE = "-e"
+
+do_configure() {
+ # Install the OE build templates
+ for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
+ do
+ install -d ${S}/mkspecs/$template
+ install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
+ ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h
+ done
+ QMAKESPEC=
+ PLATFORM=${HOST_OS}-oe-g++
+ export PLATFORM
+ oenote ./configure ${EXTRA_OECONF}
+ echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qt failed"
+}
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 bin/qmake ${D}${bindir}
+ install -d ${D}${datadir}/qmake
+ cp -fPR mkspecs/* ${D}${datadir}/qmake
+}
+
+SRC_URI[md5sum] = "022d7a3c572b554f3c47b12cae71a8a4"
+SRC_URI[sha256sum] = "a97656796c0ef8e87dd83e6138bc406e31830d08f9b213e039d8be39ea65c8e4"
+
+NATIVE_INSTALL_WORKS = "1"
diff --git a/recipes-qt/qte/qte-2.3.10/bidimetrics.patch b/recipes-qt/qte/qte-2.3.10/bidimetrics.patch
new file mode 100644
index 0000000..50990f5
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/bidimetrics.patch
@@ -0,0 +1,2389 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+Index: qt-2.3.10/src/kernel/qgfxraster_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qgfxraster_qws.cpp 2005-05-13 22:22:11.000000000 +0200
++++ qt-2.3.10/src/kernel/qgfxraster_qws.cpp 2005-05-13 22:22:13.000000000 +0200
+@@ -51,6 +51,11 @@
+ #include <fcntl.h>
+ #include <errno.h>
+
++//HAQ bidi patch
++#ifdef USE_BIDI
++#include "qbidi.h"
++#endif
++// end HAQ patch
+
+ extern bool qws_sw_cursor;
+
+@@ -1382,6 +1387,53 @@
+ setAlphaType(BigEndianMask);
+ }
+
++#ifdef USE_BIDI
++ // HAQ do bidi
++ QString n;
++ qApplyBidi(s, n);
++
++ for( loopc=0; loopc < int(n.length()); loopc++ ) {
++ QGlyph glyph = memorymanager->lockGlyph(myfont, n[loopc]);
++ int myw=glyph.metrics->width;
++ srcwidth = myw;
++ srcheight = glyph.metrics->height;
++ setAlphaSource(glyph.data,glyph.metrics->linestep);
++ int myx=x;
++ int myy=y;
++ myx+=glyph.metrics->bearingx;
++ myy-=glyph.metrics->bearingy;
++
++ // HAQ hack to show arabic tashkeel (diacriticals) above
++ // the previous character (which in reversed arabic, as it is here, is the next character)
++
++ QChar c = n[loopc];
++ if (ISTASHKEEL(c.unicode())) {
++ //printf("glyph %d bearingx %d width %d advance %d\n",
++ // c.unicode(),glyph.metrics->bearingx, glyph.metrics->width, glyph.metrics->advance);
++
++ if (loopc < int(n.length()-1)) // if there is a following character then place this glyph over it
++ {
++ QGlyph nextGlyph = memorymanager->lockGlyph(myfont, n[loopc+1]);
++ int nextCharWidth = nextGlyph.metrics->width;
++ myx += nextCharWidth/2 - glyph.metrics->width;
++ // pre-undo the advance in x so that the next glyph is placed over this one
++ x -= glyph.metrics->advance;
++ }
++ }
++
++ if(glyph.metrics->width<1 || glyph.metrics->height<1
++ || glyph.metrics->linestep==0)
++ {
++ // non-printing characters
++ } else {
++ blt(myx,myy,myw,glyph.metrics->height,0,0);
++ }
++ x+=glyph.metrics->advance;
++ // ... unlock glyph
++ }
++
++#else
++
+ for( loopc=0; loopc < int(s.length()); loopc++ ) {
+ QGlyph glyph = memorymanager->lockGlyph(myfont, s[loopc]);
+ int myw=glyph.metrics->width;
+@@ -1402,6 +1454,9 @@
+ x+=glyph.metrics->advance;
+ // ... unlock glyph
+ }
++
++#endif
++
+ #ifdef DEBUG_LOCKS
+ qDebug("unaccelerated drawText unlock");
+ #endif
+Index: qt-2.3.10/src/kernel/qfont_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qfont_qws.cpp 2005-05-13 22:22:11.000000000 +0200
++++ qt-2.3.10/src/kernel/qfont_qws.cpp 2005-05-13 22:22:13.000000000 +0200
+@@ -49,6 +49,12 @@
+ #include "qfontmanager_qws.h"
+ #include "qmemorymanager_qws.h"
+
++//HAQ
++#ifdef USE_BIDI
++#include "qbidi.h"
++#endif
++// end HAQ
++
+ // QFont_Private accesses QFont protected functions
+
+ class QFont_Private : public QFont
+@@ -385,17 +391,46 @@
+
+ int QFontMetrics::width( QChar ch ) const
+ {
++#ifdef USE_BIDI
++
++ int advance;
++ if (ISTASHKEEL(ch.unicode())) {
++ advance = 0;
++ }
++ else
++ advance = memorymanager->lockGlyphMetrics(((QFontMetrics*)this)->internal()->handle(),ch)->advance;
++ return advance;
++
++#else
++
+ return memorymanager->lockGlyphMetrics(((QFontMetrics*)this)->internal()->handle(),ch)->advance;
++
++#endif
+ }
+
+ int QFontMetrics::width( const QString &str, int len ) const
+ {
++#ifdef USE_BIDI
++
++ QString n;
++ qApplyBidi(str, n);
++ if (len < 0) len = n.length();
++ int ret=0;
++ for (int i=0; i<len; i++)
++ ret += width(n[i]);
++ return ret;
++
++#else
++
+ if ( len < 0 )
+ len = str.length();
+ int ret=0;
+ for (int i=0; i<len; i++)
+ ret += width(str[i]);
+ return ret;
++
++#endif
++
+ }
+
+ QRect QFontMetrics::boundingRect( const QString &str, int len ) const
+Index: qt-2.3.10/src/kernel/qbidi.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ qt-2.3.10/src/kernel/qbidi.h 2005-05-13 22:22:13.000000000 +0200
+@@ -0,0 +1,6 @@
++#include "stdio.h"
++#include <qstring.h>
++
++#define ISTASHKEEL(x) ((x >= 0x64B && x<=0x658) || (x>=0x6d6 && x <= 0x6dc) || (x>=0x6df && x <= 0x6e4) || x==0x6e7 || x == 0x6e8 || (x>=0x6ea && x <= 0x6ed) || (x>=0xfe70 && x <= 0xfe7f))
++
++void qApplyBidi(const QString& s, QString& news);
+Index: qt-2.3.10/src/kernel/qbidi.cpp
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ qt-2.3.10/src/kernel/qbidi.cpp 2005-05-13 22:22:13.000000000 +0200
+@@ -0,0 +1,45 @@
++#include <malloc.h>
++#include "qbidi.h"
++
++
++#define BLOCKTYPE unsigned short*
++#define CHARTYPE unsigned short
++
++extern "C" {
++
++int doShape(BLOCKTYPE line, CHARTYPE* to, int from, int count);
++int doBidi(BLOCKTYPE line, int count, int applyShape, int reorderCombining, int removeMarks);
++
++}
++
++void qApplyBidi(const QString& s, QString& news) {
++ //convert to utf16 zero-terminated
++ //printf(": qs length is %d\n",s.length());
++ int loopc;
++ int slength = sizeof(unsigned short) * (s.length());
++ //printf(": slength is %d\n",slength);
++ unsigned short* sutf16 = (unsigned short*)malloc(slength);
++ for( loopc=0; loopc < int(s.length()); loopc++ ) {
++ sutf16[loopc] = s[loopc].unicode();
++ //printf(": char %d is %x\n",loopc,sutf16[loopc]);
++ }
++ //printf(": mark 0\n");
++ ///sutf16[s.length()] = 0;
++
++ unsigned short* sutf16s = (unsigned short*)malloc(slength);
++ doShape(sutf16,sutf16s,0,s.length());
++ //printf(": do bidi\n");
++ doBidi(sutf16s, s.length(),0,0,0);
++ //sutf16s[s.length()] = 0;
++
++ //printf(": back to QString\n");
++ news = "";
++ for( loopc=0; loopc < s.length(); loopc++ ) {
++ QChar newChar((short) sutf16s[loopc]);
++ news = news + newChar;
++ //printf(": add char %x\n",newChar.unicode());
++ }
++
++ free(sutf16);
++ free(sutf16s);
++}
+Index: qt-2.3.10/src/kernel/minibidi.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ qt-2.3.10/src/kernel/minibidi.c 2005-05-13 22:22:13.000000000 +0200
+@@ -0,0 +1,2127 @@
++/************************************************************************
++ * $Id: minibidi.c,v 1.2 2005/04/08 18:01:45 lynch Exp $
++ *
++ * ------------
++ * Description:
++ * ------------
++ * This is an implemention of Unicode's Bidirectional Algorithm
++ * (known as UAX #9).
++ *
++ * http://www.unicode.org/reports/tr9/
++ *
++ * Author: Ahmad Khalifa
++ *
++ * -----------------
++ * Revision Details: (Updated by Revision Control System)
++ * -----------------
++ * $Date: 2005/04/08 18:01:45 $
++ * $Author: lynch $
++ * $Revision: 1.2 $
++ * $Source: /home/arabeyes/cvs/projects/external/qt_e/minibidi.c,v $
++ *
++ * (www.arabeyes.org - under MIT license)
++ *
++ ************************************************************************/
++
++#include <malloc.h> /* malloc() and free() definition */
++
++/*
++ * Datatype Extension Macros
++ */
++#define BLOCKTYPE unsigned short*
++#define CHARTYPE unsigned short
++#define GETCHAR(from,i) from[i]
++
++#define GetType(x) getType(x)
++/*=====TESTING mode===========*/
++//#define GetType(x) getCAPRtl(x)
++
++#define lenof(x) sizeof(x) / sizeof(x[0])
++
++/* character types */
++enum
++{
++ /* Strong Char Types */
++ L, /* Left-to-Right char */
++ LRE, /* Left-to-Right Embedding */
++ LRO, /* Left-to-Right Override */
++ R, /* Right-to-Left char */
++ AL, /* Right-to-Left Arabic char */
++ RLE, /* Right-to-Left Embedding */
++ RLO, /* Right-to-Left Override */
++ /* Weak Char Types */
++ PDF, /* Pop Directional Format */
++ EN, /* European Number */
++ ES, /* European Number Separator */
++ ET, /* European Number Terminator */
++ AN, /* Arabic Number */
++ CS, /* Common Number Separator */
++ NSM, /* Non Spacing Mark */
++ BN, /* Boundary Neutral */
++ /* Neutral Char Types */
++ B, /* Paragraph Separator */
++ S, /* Segment Separator */
++ WS, /* Whitespace */
++ ON, /* Other Neutrals */
++};
++
++/* Shaping Types */
++enum
++{
++ SL, /* Left-Joining, doesnt exist in U+0600 - U+06FF */
++ SR, /* Right-Joining, ie has Isolated, Final */
++ SD, /* Dual-Joining, ie has Isolated, Final, Initial, Medial */
++ SU, /* Non-Joining */
++ SC /* Join-Causing, like U+0640 (TATWEEL) */
++};
++
++#define odd(x) (x%2)
++/* Returns the first odd/even value greater than x */
++#define leastGreaterOdd(x) odd(x) ? (x+2) : (x+1)
++#define leastGreaterEven(x) odd(x) ? (x+1) : (x+2)
++
++/* Shaping Helpers */
++#define STYPE(xh) ((xh >= SHAPE_FIRST) && (xh <= SHAPE_LAST)) ? \
++ shapetypes[xh-SHAPE_FIRST].type : SU
++#define SISOLATED(xh) shapetypes[xh-SHAPE_FIRST].form_b
++#define SFINAL(xh) xh+1
++#define SINITIAL(xh) xh+2
++#define SMEDIAL(xh) xh+3
++
++
++/* function declarations */
++int findIndexOfRun(unsigned char* level , int start, int count, int tlevel);
++unsigned char getType(CHARTYPE ch);
++unsigned char getCAPRtl(CHARTYPE ch);
++void doMirror(BLOCKTYPE ch);
++
++typedef struct{
++ unsigned char type;
++ unsigned short form_b;
++} shape_node;
++
++/* Kept near the actual table, for verification. */
++#define SHAPE_FIRST 0x621
++#define SHAPE_LAST 0x668
++/* very bad Memory alignment for 32-bit machines
++ * could split it to 2 arrays or promote type to 2 bytes type
++ */
++shape_node shapetypes[] = {
++/* index, Typ, Iso */
++/* 621 */ {SU, 0xFE80},
++/* 622 */ {SR, 0xFE81},
++/* 623 */ {SR, 0xFE83},
++/* 624 */ {SR, 0xFE85},
++/* 625 */ {SR, 0xFE87},
++/* 626 */ {SD, 0xFE89},
++/* 627 */ {SR, 0xFE8D},
++/* 628 */ {SD, 0xFE8F},
++/* 629 */ {SR, 0xFE93},
++/* 62A */ {SD, 0xFE95},
++/* 62B */ {SD, 0xFE99},
++/* 62C */ {SD, 0xFE9D},
++/* 62D */ {SD, 0xFEA1},
++/* 62E */ {SD, 0xFEA5},
++/* 62F */ {SR, 0xFEA9},
++/* 630 */ {SR, 0xFEAB},
++/* 631 */ {SR, 0xFEAD},
++/* 632 */ {SR, 0xFEAF},
++/* 633 */ {SD, 0xFEB1},
++/* 634 */ {SD, 0xFEB5},
++/* 635 */ {SD, 0xFEB9},
++/* 636 */ {SD, 0xFEBD},
++/* 637 */ {SD, 0xFEC1},
++/* 638 */ {SD, 0xFEC5},
++/* 639 */ {SD, 0xFEC9},
++/* 63A */ {SD, 0xFECD},
++/* 63B */ {SU, 0x0},
++/* 63C */ {SU, 0x0},
++/* 63D */ {SU, 0x0},
++/* 63E */ {SU, 0x0},
++/* 63F */ {SU, 0x0},
++/* 640 */ {SC, 0x0},
++/* 641 */ {SD, 0xFED1},
++/* 642 */ {SD, 0xFED5},
++/* 643 */ {SD, 0xFED9},
++/* 644 */ {SD, 0xFEDD},
++/* 645 */ {SD, 0xFEE1},
++/* 646 */ {SD, 0xFEE5},
++/* 647 */ {SD, 0xFEE9},
++/* 648 */ {SR, 0xFEED},
++/* 649 */ {SR, 0xFEEF}, /* SD */
++/* 64A */ {SD, 0xFEF1},
++/* 64B */ {SU, 0xFEF1},
++/* 64C */ {SU, 0xFEF1},
++/* 64D */ {SU, 0xFEF1},
++/* 64E */ {SU, 0xFEF1},
++/* 64F */ {SU, 0xFEF1},
++/* 650 */ {SU,0xFEF1},
++/* 651 */ {SU,0xFEF1},
++/* 652 */ {SU,0xFEF1},
++/* 653 */ {SU, 0xFEF1},
++/* 654 */ {SU, 0xFEF1},
++/* 655 */ {SU, 0xFEF1},
++/* 656 */ {SU, 0xFEF1},
++/* 657 */ {SU, 0xFEF1},
++/* 658 */ {SU, 0xFEF1},
++/* 659 */ {SU, 0xFEF1},
++/* 65a */ {SU, 0xFEF1},
++/* 65b */ {SU, 0xFEF1},
++/* 65c */ {SU, 0xFEF1},
++/* 65d */ {SU, 0xFEF1},
++/* 65e */ {SU, 0xFEF1},
++/* 65f */ {SU, 0xFEF1},
++/* 660 */ {SU, 0xFEF1},
++/* 661 */ {SU, 0xFEF1},
++/* 662 */ {SU, 0xFEF1},
++/* 663 */ {SU, 0xFEF1},
++/* 664 */ {SU, 0xFEF1},
++/* 665 */ {SU, 0xFEF1},
++/* 666 */ {SU, 0xFEF1},
++/* 667 */ {SU, 0xFEF1},
++/* 668 */ {SU, 0xFEF1}
++};
++
++/*
++ * Flips the text buffer, according to max level, and
++ * all higher levels
++ *
++ * Input:
++ * from: text buffer, on which to apply flipping
++ * level: resolved levels buffer
++ * max: the maximum level found in this line (should be unsigned char)
++ * count: line size in wchar_t
++ */
++void flipThisRun(BLOCKTYPE from, unsigned char* level, int max, int count)
++{
++ int i, j, rcount, tlevel;
++ CHARTYPE temp;
++
++
++ j = i = 0;
++ while(i<count && j<count)
++ {
++
++ /* find the start of the run of level=max */
++ tlevel = max;
++ i = j = findIndexOfRun(level, i, count, max);
++ /* find the end of the run */
++ while((tlevel <= level[i]) && (i < count))
++ {
++ i++;
++ }
++ rcount = i-j;
++ for(; rcount>((i-j)/2); rcount--)
++ {
++ temp = GETCHAR(from, j+rcount-1);
++ GETCHAR(from, j+rcount-1) = GETCHAR(from, i-rcount);
++ GETCHAR(from, i-rcount) = temp;
++ }
++ }
++}
++
++/*
++ * Finds the index of a run with level equals tlevel
++ */
++int findIndexOfRun(unsigned char* level , int start, int count, int tlevel)
++{
++ int i;
++ for(i=start; i<count; i++)
++ {
++ if(tlevel <= level[i])
++ {
++ return i;
++ }
++ }
++ return count;
++}
++
++unsigned char GetParagraphLevel(BLOCKTYPE line, int count)
++{
++ int i;
++ for( i=0; i<count ; i++)
++ {
++ if(GetType(GETCHAR(line, i)) == R || GetType(/*line[i]*/ GETCHAR(line, i)) == AL)
++ return 1;
++ else if(GetType(GETCHAR(line, i)) == L)
++ return 0;
++ }
++ return 0; /* Compiler Nag-Stopper */
++}
++
++/*
++ * Returns character type of ch, by calling RLE table lookup
++ * function
++ */
++unsigned char getCAPRtl(CHARTYPE ch)
++{
++/* CAPRtl Charset */
++int TypesFromChar[] =
++{
++//0 1 2 3 4 5 6 7 8 9 a b c d e f
++ ON, ON, ON, ON, L, R, ON, ON, ON, ON, ON, ON, ON, B, RLO,RLE, /*00-0f*/
++ LRO,LRE,PDF,WS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, /*10-1f*/
++
++ WS, ON, ON, ON, ET, ON, ON, ON, ON, ON, ON, ET, CS, ON, ES, ES, /*20-2f*/
++ EN, EN, EN, EN, EN, EN, AN, AN, AN, AN, LRE, RLE, RLO, PDF, LRO, ON, /*30-3f*/
++ R, AL, AL, AL, AL, AL, AL, R, R, R, R, R, R, R, R, R, /*40-4f*/
++ R, R, R, R, R, R, R, R, R, R, R, ON, B, ON, ON, ON, /*50-5f*/
++ NSM, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, /*60-6f*/
++ L, L, L, L, L, L, L, L, L, L, L, ON, S, ON, ON, ON, /*70-7f*/
++};
++
++//0 1 2 3 4 5 6 7 8 9 a b c d e f
++// ON, ON, ON, ON, L, R, ON, ON, ON, ON, ON, ON, ON, B, RLO,RLE, /*00-0f*/
++//LRO,LRE,PDF,WS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, /*10-1f*/
++
++// WS, ON, ON, ON, ET, ON, ON, ON, ON, ON, ON, ET, CS, ON, ES, ES, /*20-2f*/
++// EN, EN, EN, EN, EN, EN, AN, AN, AN, AN, CS, ON, ON, ON, ON, ON, /*30-3f*/
++// R, AL, AL, AL, AL, AL, AL, R, R, R, R, R, R, R, R, R, /*40-4f*/
++// R, R, R, R, R, R, R, R, R, R, R, ON, B, ON, ON, ON, /*50-5f*/
++// NSM, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, /*60-6f*/
++// L, L, L, L, L, L, L, L, L, L, L, ON, S, ON, ON, ON, /*70-7f*/
++//};
++ if(ch <0x7f)
++ return TypesFromChar[ch];
++ else
++ return R;
++}
++
++unsigned char getType(CHARTYPE ch)
++{
++ static const struct {
++ CHARTYPE first, last, type;
++ } lookup[] = {
++ {0x0000, 0x0008, BN},
++ {0x0009, 0x0009, S},
++ {0x000a, 0x000a, B},
++ {0x000b, 0x000b, S},
++ {0x000c, 0x000c, WS},
++ {0x000d, 0x000d, B},
++ {0x000e, 0x001b, BN},
++ {0x001c, 0x001e, B},
++ {0x001f, 0x001f, S},
++ {0x0020, 0x0020, WS},
++ {0x0023, 0x0025, ET},
++ {0x002b, 0x002b, ES},
++ {0x002c, 0x002c, CS},
++ {0x002d, 0x002d, ES},
++ {0x002e, 0x002f, CS},
++ {0x0030, 0x0039, EN},
++ {0x003a, 0x003a, CS},
++ {0x0041, 0x005a, L},
++ {0x0061, 0x007a, L},
++ {0x007f, 0x0084, BN},
++ {0x0085, 0x0085, B},
++ {0x0086, 0x009f, BN},
++ {0x00a0, 0x00a0, CS},
++ {0x00a2, 0x00a5, ET},
++ {0x00aa, 0x00aa, L},
++ {0x00ad, 0x00ad, BN},
++ {0x00b0, 0x00b1, ET},
++ {0x00b2, 0x00b3, EN},
++ {0x00b5, 0x00b5, L},
++ {0x00b9, 0x00b9, EN},
++ {0x00ba, 0x00ba, L},
++ {0x00c0, 0x00d6, L},
++ {0x00d8, 0x00f6, L},
++ {0x00f8, 0x0236, L},
++ {0x0250, 0x02b8, L},
++ {0x02bb, 0x02c1, L},
++ {0x02d0, 0x02d1, L},
++ {0x02e0, 0x02e4, L},
++ {0x02ee, 0x02ee, L},
++ {0x0300, 0x0357, NSM},
++ {0x035d, 0x036f, NSM},
++ {0x037a, 0x037a, L},
++ {0x0386, 0x0386, L},
++ {0x0388, 0x038a, L},
++ {0x038c, 0x038c, L},
++ {0x038e, 0x03a1, L},
++ {0x03a3, 0x03ce, L},
++ {0x03d0, 0x03f5, L},
++ {0x03f7, 0x03fb, L},
++ {0x0400, 0x0482, L},
++ {0x0483, 0x0486, NSM},
++ {0x0488, 0x0489, NSM},
++ {0x048a, 0x04ce, L},
++ {0x04d0, 0x04f5, L},
++ {0x04f8, 0x04f9, L},
++ {0x0500, 0x050f, L},
++ {0x0531, 0x0556, L},
++ {0x0559, 0x055f, L},
++ {0x0561, 0x0587, L},
++ {0x0589, 0x0589, L},
++ {0x0591, 0x05a1, NSM},
++ {0x05a3, 0x05b9, NSM},
++ {0x05bb, 0x05bd, NSM},
++ {0x05be, 0x05be, R},
++ {0x05bf, 0x05bf, NSM},
++ {0x05c0, 0x05c0, R},
++ {0x05c1, 0x05c2, NSM},
++ {0x05c3, 0x05c3, R},
++ {0x05c4, 0x05c4, NSM},
++ {0x05d0, 0x05ea, R},
++ {0x05f0, 0x05f4, R},
++ {0x0600, 0x0603, AL},
++ {0x060c, 0x060c, CS},
++ {0x060d, 0x060d, AL},
++ {0x0610, 0x0615, NSM},
++ {0x061b, 0x061b, AL},
++ {0x061f, 0x061f, AL},
++ {0x0621, 0x063a, AL},
++ {0x0640, 0x064a, AL},
++ {0x064b, 0x0658, NSM},
++ {0x0660, 0x0669, AN},
++ {0x066a, 0x066a, ET},
++ {0x066b, 0x066c, AN},
++ {0x066d, 0x066f, AL},
++ {0x0670, 0x0670, NSM},
++ {0x0671, 0x06d5, AL},
++ {0x06d6, 0x06dc, NSM},
++ {0x06dd, 0x06dd, AL},
++ {0x06de, 0x06e4, NSM},
++ {0x06e5, 0x06e6, AL},
++ {0x06e7, 0x06e8, NSM},
++ {0x06ea, 0x06ed, NSM},
++ {0x06ee, 0x06ef, AL},
++ {0x06f0, 0x06f9, EN},
++ {0x06fa, 0x070d, AL},
++ {0x070f, 0x070f, BN},
++ {0x0710, 0x0710, AL},
++ {0x0711, 0x0711, NSM},
++ {0x0712, 0x072f, AL},
++ {0x0730, 0x074a, NSM},
++ {0x074d, 0x074f, AL},
++ {0x0780, 0x07a5, AL},
++ {0x07a6, 0x07b0, NSM},
++ {0x07b1, 0x07b1, AL},
++ {0x0901, 0x0902, NSM},
++ {0x0903, 0x0939, L},
++ {0x093c, 0x093c, NSM},
++ {0x093d, 0x0940, L},
++ {0x0941, 0x0948, NSM},
++ {0x0949, 0x094c, L},
++ {0x094d, 0x094d, NSM},
++ {0x0950, 0x0950, L},
++ {0x0951, 0x0954, NSM},
++ {0x0958, 0x0961, L},
++ {0x0962, 0x0963, NSM},
++ {0x0964, 0x0970, L},
++ {0x0981, 0x0981, NSM},
++ {0x0982, 0x0983, L},
++ {0x0985, 0x098c, L},
++ {0x098f, 0x0990, L},
++ {0x0993, 0x09a8, L},
++ {0x09aa, 0x09b0, L},
++ {0x09b2, 0x09b2, L},
++ {0x09b6, 0x09b9, L},
++ {0x09bc, 0x09bc, NSM},
++ {0x09bd, 0x09c0, L},
++ {0x09c1, 0x09c4, NSM},
++ {0x09c7, 0x09c8, L},
++ {0x09cb, 0x09cc, L},
++ {0x09cd, 0x09cd, NSM},
++ {0x09d7, 0x09d7, L},
++ {0x09dc, 0x09dd, L},
++ {0x09df, 0x09e1, L},
++ {0x09e2, 0x09e3, NSM},
++ {0x09e6, 0x09f1, L},
++ {0x09f2, 0x09f3, ET},
++ {0x09f4, 0x09fa, L},
++ {0x0a01, 0x0a02, NSM},
++ {0x0a03, 0x0a03, L},
++ {0x0a05, 0x0a0a, L},
++ {0x0a0f, 0x0a10, L},
++ {0x0a13, 0x0a28, L},
++ {0x0a2a, 0x0a30, L},
++ {0x0a32, 0x0a33, L},
++ {0x0a35, 0x0a36, L},
++ {0x0a38, 0x0a39, L},
++ {0x0a3c, 0x0a3c, NSM},
++ {0x0a3e, 0x0a40, L},
++ {0x0a41, 0x0a42, NSM},
++ {0x0a47, 0x0a48, NSM},
++ {0x0a4b, 0x0a4d, NSM},
++ {0x0a59, 0x0a5c, L},
++ {0x0a5e, 0x0a5e, L},
++ {0x0a66, 0x0a6f, L},
++ {0x0a70, 0x0a71, NSM},
++ {0x0a72, 0x0a74, L},
++ {0x0a81, 0x0a82, NSM},
++ {0x0a83, 0x0a83, L},
++ {0x0a85, 0x0a8d, L},
++ {0x0a8f, 0x0a91, L},
++ {0x0a93, 0x0aa8, L},
++ {0x0aaa, 0x0ab0, L},
++ {0x0ab2, 0x0ab3, L},
++ {0x0ab5, 0x0ab9, L},
++ {0x0abc, 0x0abc, NSM},
++ {0x0abd, 0x0ac0, L},
++ {0x0ac1, 0x0ac5, NSM},
++ {0x0ac7, 0x0ac8, NSM},
++ {0x0ac9, 0x0ac9, L},
++ {0x0acb, 0x0acc, L},
++ {0x0acd, 0x0acd, NSM},
++ {0x0ad0, 0x0ad0, L},
++ {0x0ae0, 0x0ae1, L},
++ {0x0ae2, 0x0ae3, NSM},
++ {0x0ae6, 0x0aef, L},
++ {0x0af1, 0x0af1, ET},
++ {0x0b01, 0x0b01, NSM},
++ {0x0b02, 0x0b03, L},
++ {0x0b05, 0x0b0c, L},
++ {0x0b0f, 0x0b10, L},
++ {0x0b13, 0x0b28, L},
++ {0x0b2a, 0x0b30, L},
++ {0x0b32, 0x0b33, L},
++ {0x0b35, 0x0b39, L},
++ {0x0b3c, 0x0b3c, NSM},
++ {0x0b3d, 0x0b3e, L},
++ {0x0b3f, 0x0b3f, NSM},
++ {0x0b40, 0x0b40, L},
++ {0x0b41, 0x0b43, NSM},
++ {0x0b47, 0x0b48, L},
++ {0x0b4b, 0x0b4c, L},
++ {0x0b4d, 0x0b4d, NSM},
++ {0x0b56, 0x0b56, NSM},
++ {0x0b57, 0x0b57, L},
++ {0x0b5c, 0x0b5d, L},
++ {0x0b5f, 0x0b61, L},
++ {0x0b66, 0x0b71, L},
++ {0x0b82, 0x0b82, NSM},
++ {0x0b83, 0x0b83, L},
++ {0x0b85, 0x0b8a, L},
++ {0x0b8e, 0x0b90, L},
++ {0x0b92, 0x0b95, L},
++ {0x0b99, 0x0b9a, L},
++ {0x0b9c, 0x0b9c, L},
++ {0x0b9e, 0x0b9f, L},
++ {0x0ba3, 0x0ba4, L},
++ {0x0ba8, 0x0baa, L},
++ {0x0bae, 0x0bb5, L},
++ {0x0bb7, 0x0bb9, L},
++ {0x0bbe, 0x0bbf, L},
++ {0x0bc0, 0x0bc0, NSM},
++ {0x0bc1, 0x0bc2, L},
++ {0x0bc6, 0x0bc8, L},
++ {0x0bca, 0x0bcc, L},
++ {0x0bcd, 0x0bcd, NSM},
++ {0x0bd7, 0x0bd7, L},
++ {0x0be7, 0x0bf2, L},
++ {0x0bf9, 0x0bf9, ET},
++ {0x0c01, 0x0c03, L},
++ {0x0c05, 0x0c0c, L},
++ {0x0c0e, 0x0c10, L},
++ {0x0c12, 0x0c28, L},
++ {0x0c2a, 0x0c33, L},
++ {0x0c35, 0x0c39, L},
++ {0x0c3e, 0x0c40, NSM},
++ {0x0c41, 0x0c44, L},
++ {0x0c46, 0x0c48, NSM},
++ {0x0c4a, 0x0c4d, NSM},
++ {0x0c55, 0x0c56, NSM},
++ {0x0c60, 0x0c61, L},
++ {0x0c66, 0x0c6f, L},
++ {0x0c82, 0x0c83, L},
++ {0x0c85, 0x0c8c, L},
++ {0x0c8e, 0x0c90, L},
++ {0x0c92, 0x0ca8, L},
++ {0x0caa, 0x0cb3, L},
++ {0x0cb5, 0x0cb9, L},
++ {0x0cbc, 0x0cbc, NSM},
++ {0x0cbd, 0x0cc4, L},
++ {0x0cc6, 0x0cc8, L},
++ {0x0cca, 0x0ccb, L},
++ {0x0ccc, 0x0ccd, NSM},
++ {0x0cd5, 0x0cd6, L},
++ {0x0cde, 0x0cde, L},
++ {0x0ce0, 0x0ce1, L},
++ {0x0ce6, 0x0cef, L},
++ {0x0d02, 0x0d03, L},
++ {0x0d05, 0x0d0c, L},
++ {0x0d0e, 0x0d10, L},
++ {0x0d12, 0x0d28, L},
++ {0x0d2a, 0x0d39, L},
++ {0x0d3e, 0x0d40, L},
++ {0x0d41, 0x0d43, NSM},
++ {0x0d46, 0x0d48, L},
++ {0x0d4a, 0x0d4c, L},
++ {0x0d4d, 0x0d4d, NSM},
++ {0x0d57, 0x0d57, L},
++ {0x0d60, 0x0d61, L},
++ {0x0d66, 0x0d6f, L},
++ {0x0d82, 0x0d83, L},
++ {0x0d85, 0x0d96, L},
++ {0x0d9a, 0x0db1, L},
++ {0x0db3, 0x0dbb, L},
++ {0x0dbd, 0x0dbd, L},
++ {0x0dc0, 0x0dc6, L},
++ {0x0dca, 0x0dca, NSM},
++ {0x0dcf, 0x0dd1, L},
++ {0x0dd2, 0x0dd4, NSM},
++ {0x0dd6, 0x0dd6, NSM},
++ {0x0dd8, 0x0ddf, L},
++ {0x0df2, 0x0df4, L},
++ {0x0e01, 0x0e30, L},
++ {0x0e31, 0x0e31, NSM},
++ {0x0e32, 0x0e33, L},
++ {0x0e34, 0x0e3a, NSM},
++ {0x0e3f, 0x0e3f, ET},
++ {0x0e40, 0x0e46, L},
++ {0x0e47, 0x0e4e, NSM},
++ {0x0e4f, 0x0e5b, L},
++ {0x0e81, 0x0e82, L},
++ {0x0e84, 0x0e84, L},
++ {0x0e87, 0x0e88, L},
++ {0x0e8a, 0x0e8a, L},
++ {0x0e8d, 0x0e8d, L},
++ {0x0e94, 0x0e97, L},
++ {0x0e99, 0x0e9f, L},
++ {0x0ea1, 0x0ea3, L},
++ {0x0ea5, 0x0ea5, L},
++ {0x0ea7, 0x0ea7, L},
++ {0x0eaa, 0x0eab, L},
++ {0x0ead, 0x0eb0, L},
++ {0x0eb1, 0x0eb1, NSM},
++ {0x0eb2, 0x0eb3, L},
++ {0x0eb4, 0x0eb9, NSM},
++ {0x0ebb, 0x0ebc, NSM},
++ {0x0ebd, 0x0ebd, L},
++ {0x0ec0, 0x0ec4, L},
++ {0x0ec6, 0x0ec6, L},
++ {0x0ec8, 0x0ecd, NSM},
++ {0x0ed0, 0x0ed9, L},
++ {0x0edc, 0x0edd, L},
++ {0x0f00, 0x0f17, L},
++ {0x0f18, 0x0f19, NSM},
++ {0x0f1a, 0x0f34, L},
++ {0x0f35, 0x0f35, NSM},
++ {0x0f36, 0x0f36, L},
++ {0x0f37, 0x0f37, NSM},
++ {0x0f38, 0x0f38, L},
++ {0x0f39, 0x0f39, NSM},
++ {0x0f3e, 0x0f47, L},
++ {0x0f49, 0x0f6a, L},
++ {0x0f71, 0x0f7e, NSM},
++ {0x0f7f, 0x0f7f, L},
++ {0x0f80, 0x0f84, NSM},
++ {0x0f85, 0x0f85, L},
++ {0x0f86, 0x0f87, NSM},
++ {0x0f88, 0x0f8b, L},
++ {0x0f90, 0x0f97, NSM},
++ {0x0f99, 0x0fbc, NSM},
++ {0x0fbe, 0x0fc5, L},
++ {0x0fc6, 0x0fc6, NSM},
++ {0x0fc7, 0x0fcc, L},
++ {0x0fcf, 0x0fcf, L},
++ {0x1000, 0x1021, L},
++ {0x1023, 0x1027, L},
++ {0x1029, 0x102a, L},
++ {0x102c, 0x102c, L},
++ {0x102d, 0x1030, NSM},
++ {0x1031, 0x1031, L},
++ {0x1032, 0x1032, NSM},
++ {0x1036, 0x1037, NSM},
++ {0x1038, 0x1038, L},
++ {0x1039, 0x1039, NSM},
++ {0x1040, 0x1057, L},
++ {0x1058, 0x1059, NSM},
++ {0x10a0, 0x10c5, L},
++ {0x10d0, 0x10f8, L},
++ {0x10fb, 0x10fb, L},
++ {0x1100, 0x1159, L},
++ {0x115f, 0x11a2, L},
++ {0x11a8, 0x11f9, L},
++ {0x1200, 0x1206, L},
++ {0x1208, 0x1246, L},
++ {0x1248, 0x1248, L},
++ {0x124a, 0x124d, L},
++ {0x1250, 0x1256, L},
++ {0x1258, 0x1258, L},
++ {0x125a, 0x125d, L},
++ {0x1260, 0x1286, L},
++ {0x1288, 0x1288, L},
++ {0x128a, 0x128d, L},
++ {0x1290, 0x12ae, L},
++ {0x12b0, 0x12b0, L},
++ {0x12b2, 0x12b5, L},
++ {0x12b8, 0x12be, L},
++ {0x12c0, 0x12c0, L},
++ {0x12c2, 0x12c5, L},
++ {0x12c8, 0x12ce, L},
++ {0x12d0, 0x12d6, L},
++ {0x12d8, 0x12ee, L},
++ {0x12f0, 0x130e, L},
++ {0x1310, 0x1310, L},
++ {0x1312, 0x1315, L},
++ {0x1318, 0x131e, L},
++ {0x1320, 0x1346, L},
++ {0x1348, 0x135a, L},
++ {0x1361, 0x137c, L},
++ {0x13a0, 0x13f4, L},
++ {0x1401, 0x1676, L},
++ {0x1680, 0x1680, WS},
++ {0x1681, 0x169a, L},
++ {0x16a0, 0x16f0, L},
++ {0x1700, 0x170c, L},
++ {0x170e, 0x1711, L},
++ {0x1712, 0x1714, NSM},
++ {0x1720, 0x1731, L},
++ {0x1732, 0x1734, NSM},
++ {0x1735, 0x1736, L},
++ {0x1740, 0x1751, L},
++ {0x1752, 0x1753, NSM},
++ {0x1760, 0x176c, L},
++ {0x176e, 0x1770, L},
++ {0x1772, 0x1773, NSM},
++ {0x1780, 0x17b6, L},
++ {0x17b7, 0x17bd, NSM},
++ {0x17be, 0x17c5, L},
++ {0x17c6, 0x17c6, NSM},
++ {0x17c7, 0x17c8, L},
++ {0x17c9, 0x17d3, NSM},
++ {0x17d4, 0x17da, L},
++ {0x17db, 0x17db, ET},
++ {0x17dc, 0x17dc, L},
++ {0x17dd, 0x17dd, NSM},
++ {0x17e0, 0x17e9, L},
++ {0x180b, 0x180d, NSM},
++ {0x180e, 0x180e, WS},
++ {0x1810, 0x1819, L},
++ {0x1820, 0x1877, L},
++ {0x1880, 0x18a8, L},
++ {0x18a9, 0x18a9, NSM},
++ {0x1900, 0x191c, L},
++ {0x1920, 0x1922, NSM},
++ {0x1923, 0x1926, L},
++ {0x1927, 0x192b, NSM},
++ {0x1930, 0x1931, L},
++ {0x1932, 0x1932, NSM},
++ {0x1933, 0x1938, L},
++ {0x1939, 0x193b, NSM},
++ {0x1946, 0x196d, L},
++ {0x1970, 0x1974, L},
++ {0x1d00, 0x1d6b, L},
++ {0x1e00, 0x1e9b, L},
++ {0x1ea0, 0x1ef9, L},
++ {0x1f00, 0x1f15, L},
++ {0x1f18, 0x1f1d, L},
++ {0x1f20, 0x1f45, L},
++ {0x1f48, 0x1f4d, L},
++ {0x1f50, 0x1f57, L},
++ {0x1f59, 0x1f59, L},
++ {0x1f5b, 0x1f5b, L},
++ {0x1f5d, 0x1f5d, L},
++ {0x1f5f, 0x1f7d, L},
++ {0x1f80, 0x1fb4, L},
++ {0x1fb6, 0x1fbc, L},
++ {0x1fbe, 0x1fbe, L},
++ {0x1fc2, 0x1fc4, L},
++ {0x1fc6, 0x1fcc, L},
++ {0x1fd0, 0x1fd3, L},
++ {0x1fd6, 0x1fdb, L},
++ {0x1fe0, 0x1fec, L},
++ {0x1ff2, 0x1ff4, L},
++ {0x1ff6, 0x1ffc, L},
++ {0x2000, 0x200a, WS},
++ {0x200b, 0x200d, BN},
++ {0x200e, 0x200e, L},
++ {0x200f, 0x200f, R},
++ {0x2028, 0x2028, WS},
++ {0x2029, 0x2029, B},
++ {0x202a, 0x202a, LRE},
++ {0x202b, 0x202b, RLE},
++ {0x202c, 0x202c, PDF},
++ {0x202d, 0x202d, LRO},
++ {0x202e, 0x202e, RLO},
++ {0x202f, 0x202f, WS},
++ {0x2030, 0x2034, ET},
++ {0x2044, 0x2044, CS},
++ {0x205f, 0x205f, WS},
++ {0x2060, 0x2063, BN},
++ {0x206a, 0x206f, BN},
++ {0x2070, 0x2070, EN},
++ {0x2071, 0x2071, L},
++ {0x2074, 0x2079, EN},
++ {0x207a, 0x207b, ET},
++ {0x207f, 0x207f, L},
++ {0x2080, 0x2089, EN},
++ {0x208a, 0x208b, ET},
++ {0x20a0, 0x20b1, ET},
++ {0x20d0, 0x20ea, NSM},
++ {0x2102, 0x2102, L},
++ {0x2107, 0x2107, L},
++ {0x210a, 0x2113, L},
++ {0x2115, 0x2115, L},
++ {0x2119, 0x211d, L},
++ {0x2124, 0x2124, L},
++ {0x2126, 0x2126, L},
++ {0x2128, 0x2128, L},
++ {0x212a, 0x212d, L},
++ {0x212e, 0x212e, ET},
++ {0x212f, 0x2131, L},
++ {0x2133, 0x2139, L},
++ {0x213d, 0x213f, L},
++ {0x2145, 0x2149, L},
++ {0x2160, 0x2183, L},
++ {0x2212, 0x2213, ET},
++ {0x2336, 0x237a, L},
++ {0x2395, 0x2395, L},
++ {0x2488, 0x249b, EN},
++ {0x249c, 0x24e9, L},
++ {0x2800, 0x28ff, L},
++ {0x3000, 0x3000, WS},
++ {0x3005, 0x3007, L},
++ {0x3021, 0x3029, L},
++ {0x302a, 0x302f, NSM},
++ {0x3031, 0x3035, L},
++ {0x3038, 0x303c, L},
++ {0x3041, 0x3096, L},
++ {0x3099, 0x309a, NSM},
++ {0x309d, 0x309f, L},
++ {0x30a1, 0x30fa, L},
++ {0x30fc, 0x30ff, L},
++ {0x3105, 0x312c, L},
++ {0x3131, 0x318e, L},
++ {0x3190, 0x31b7, L},
++ {0x31f0, 0x321c, L},
++ {0x3220, 0x3243, L},
++ {0x3260, 0x327b, L},
++ {0x327f, 0x32b0, L},
++ {0x32c0, 0x32cb, L},
++ {0x32d0, 0x32fe, L},
++ {0x3300, 0x3376, L},
++ {0x337b, 0x33dd, L},
++ {0x33e0, 0x33fe, L},
++ {0x3400, 0x4db5, L},
++ {0x4e00, 0x9fa5, L},
++ {0xa000, 0xa48c, L},
++ {0xac00, 0xd7a3, L},
++ {0xd800, 0xfa2d, L},
++ {0xfa30, 0xfa6a, L},
++ {0xfb00, 0xfb06, L},
++ {0xfb13, 0xfb17, L},
++ {0xfb1d, 0xfb1d, R},
++ {0xfb1e, 0xfb1e, NSM},
++ {0xfb1f, 0xfb28, R},
++ {0xfb29, 0xfb29, ET},
++ {0xfb2a, 0xfb36, R},
++ {0xfb38, 0xfb3c, R},
++ {0xfb3e, 0xfb3e, R},
++ {0xfb40, 0xfb41, R},
++ {0xfb43, 0xfb44, R},
++ {0xfb46, 0xfb4f, R},
++ {0xfb50, 0xfbb1, AL},
++ {0xfbd3, 0xfd3d, AL},
++ {0xfd50, 0xfd8f, AL},
++ {0xfd92, 0xfdc7, AL},
++ {0xfdf0, 0xfdfc, AL},
++ {0xfe00, 0xfe0f, NSM},
++ {0xfe20, 0xfe23, NSM},
++ {0xfe50, 0xfe50, CS},
++ {0xfe52, 0xfe52, CS},
++ {0xfe55, 0xfe55, CS},
++ {0xfe5f, 0xfe5f, ET},
++ {0xfe62, 0xfe63, ET},
++ {0xfe69, 0xfe6a, ET},
++ {0xfe70, 0xfe74, AL},
++ {0xfe76, 0xfefc, AL},
++ {0xfeff, 0xfeff, BN},
++ {0xff03, 0xff05, ET},
++ {0xff0b, 0xff0b, ET},
++ {0xff0c, 0xff0c, CS},
++ {0xff0d, 0xff0d, ET},
++ {0xff0e, 0xff0e, CS},
++ {0xff0f, 0xff0f, ES},
++ {0xff10, 0xff19, EN},
++ {0xff1a, 0xff1a, CS},
++ {0xff21, 0xff3a, L},
++ {0xff41, 0xff5a, L},
++ {0xff66, 0xffbe, L},
++ {0xffc2, 0xffc7, L},
++ {0xffca, 0xffcf, L},
++ {0xffd2, 0xffd7, L},
++ {0xffda, 0xffdc, L},
++ {0xffe0, 0xffe1, ET},
++ {0xffe5, 0xffe6, ET},
++ };
++
++ int i, j, k;
++
++ i = -1;
++ j = lenof(lookup);
++
++ while (j - i > 1) {
++ k = (i + j) / 2;
++ if (ch < lookup[k].first)
++ j = k;
++ else if (ch > lookup[k].last)
++ i = k;
++ else
++ return (unsigned char)lookup[k].type;
++ }
++
++ /*
++ * If we reach here, the character was not in any of the
++ * intervals listed in the lookup table. This means we return
++ * ON (`Other Neutrals'). This is the appropriate code for any
++ * character genuinely not listed in the Unicode table, and
++ * also the table above has deliberately left out any
++ * characters _explicitly_ listed as ON (to save space!).
++ */
++ return ON;
++}
++
++unsigned char getPreviousLevel(unsigned char* types, unsigned char* level, int from)
++{
++ int skip = 0;
++
++ while(--from > 0)
++ {
++
++ switch(types[from])
++ {
++ case LRE:
++ case LRO:
++ case RLE:
++ case RLO:
++ if(skip>0)
++ {
++ skip--;
++ break;
++ }else
++ return level[from-1];
++ case PDF:
++ skip++;
++ break;
++ }
++ }
++ return 0; /* Compiler Nag-Stopper */
++}
++
++unsigned char getPreviousOverride(unsigned char* types, unsigned char* level, int from)
++{
++ int skip = 1;
++
++ from--;
++ while(from-- > 0)
++ {
++ switch(types[from])
++ {
++ case LRE:
++ case RLE:
++ skip++;
++ break;
++
++ case LRO:
++ if(skip>0)
++ {
++ skip--;
++ break;
++ }else
++ return L;
++ case RLO:
++ if(skip>0)
++ {
++ skip--;
++ break;
++ }else
++ return R;
++ case PDF:
++ skip++;
++ break;
++ }
++ }
++ return ON;
++}
++
++
++
++/* The Main shaping function, and the only one to be used
++ * by the outside world.
++ *
++ * line: buffer to apply shaping to. this must be passed by doBidi() first
++ * to: output buffer for the shaped data
++ * from: start bidi at this index
++ * count: number of characters in line
++ */
++int doShape(BLOCKTYPE line, CHARTYPE* to, int from, int count)
++{
++ int i, j, ligFlag;
++ unsigned char prevTemp, nextTemp;
++ CHARTYPE tempChar;
++
++ ligFlag = 0;
++ prevTemp = SU;
++ nextTemp = SU;
++ for(i=from; i<count; i++)
++ {
++ /* Get Previous and next Characters type */
++ j=i;
++ while(--j >= 0)
++ {
++ //assert(j<count);
++ //assert(i<count);
++ if(GetType(GETCHAR(line, j)) != NSM)
++ {
++ prevTemp = STYPE(GETCHAR(line, j));
++ break;
++ }
++ }
++ j=i;
++ while(++j < count)
++ {
++ //assert(j<count);
++ //assert(i<count);
++ if(GetType(GETCHAR(line, j)) != NSM)
++ {
++ nextTemp = STYPE(GETCHAR(line, j));
++ break;
++ //HAQ
++ } else if(j == count-1) {
++ nextTemp = SU;
++ break;
++ }
++ }
++
++ switch(STYPE(GETCHAR(line, i)))
++ {
++ case SC:
++ case SU:
++ to[i] = GETCHAR(line, i);
++ break;
++
++ case SR:
++ if(prevTemp == SD || prevTemp == SC)
++ to[i] = SFINAL(SISOLATED(GETCHAR(line, i)));
++ else
++ to[i] = SISOLATED(GETCHAR(line, i));
++ break;
++
++ case SD:
++ /* Make Ligatures */
++ if(GETCHAR(line, i) == 0x644)
++ {
++ j=i;
++ while(j++<count)
++ {
++ if(GetType(GETCHAR(line, j)) != NSM)
++ {
++ tempChar = GETCHAR(line, j);
++ break;
++ }
++ }
++ switch(tempChar)
++ {
++ case 0x622:
++ ligFlag = 1;
++ if(prevTemp == SD || prevTemp == SC)
++ to[i] = 0xFEF6;
++ else
++ to[i] = 0xFEF5;
++ break;
++ case 0x623:
++ ligFlag = 1;
++ if(prevTemp == SD || prevTemp == SC)
++ to[i] = 0xFEF8;
++ else
++ to[i] = 0xFEF7;
++ break;
++ case 0x625:
++ ligFlag = 1;
++ if(prevTemp == SD || prevTemp == SC)
++ to[i] = 0xFEFA;
++ else
++ to[i] = 0xFEF9;
++ break;
++ case 0x627:
++ ligFlag = 1;
++ if(prevTemp == SD || prevTemp == SC)
++ to[i] = 0xFEFC;
++ else
++ to[i] = 0xFEFB;
++ break;
++ }
++ if(ligFlag)
++ {
++ to[j] = 0x20;
++ i = j;
++ ligFlag = 0;
++ break;
++ }
++ }
++ //assert(j<count);
++ //assert(i<count);
++ if((prevTemp == SD) || (prevTemp == SC))
++ {
++ if(nextTemp == SR || nextTemp == SD || nextTemp == SC)
++ to[i] = SMEDIAL(SISOLATED(GETCHAR(line, i)));
++ else
++ to[i] = SFINAL(SISOLATED(GETCHAR(line, i)));
++ break;
++ }else
++ {
++ if(nextTemp == SR || nextTemp == SD || nextTemp == SC)
++ to[i] = SINITIAL(SISOLATED(GETCHAR(line, i)));
++ else
++ to[i] = SISOLATED(GETCHAR(line, i));
++ break;
++ }
++
++ }
++ nextTemp = SU;
++ }
++ return 1;
++}
++
++/* Rule (X1), (X2), (X3), (X4), (X5), (X6), (X7), (X8), (X9) */
++void doTypes(BLOCKTYPE line, unsigned char paragraphLevel, unsigned char* types,
++ unsigned char* levels, int count, int fX)
++{
++
++ unsigned char tempType;
++ unsigned char currentEmbedding = paragraphLevel;
++ unsigned char currentOverride = ON;
++ int i;
++
++ if(fX)
++ {
++ for( i=0; i<count; i++)
++ {
++ tempType = GetType(GETCHAR(line, i));
++ switch(tempType)
++ {
++ case RLE:
++ currentEmbedding = levels[i] = leastGreaterOdd(currentEmbedding);
++ currentOverride = ON;
++ types[i] = BN;
++ break;
++
++ case LRE:
++ currentEmbedding = levels[i] = leastGreaterEven(currentEmbedding);
++ currentOverride = ON;
++ types[i] = BN;
++ break;
++
++ case RLO:
++ currentEmbedding = levels[i] = leastGreaterOdd(currentEmbedding);
++ currentOverride = R;
++ types[i] = BN;
++ break;
++
++ case LRO:
++ currentEmbedding = levels[i] = leastGreaterEven(currentEmbedding);
++ currentOverride = L;
++ types[i] = BN;
++ break;
++
++ case PDF:
++ levels[i] = currentEmbedding;
++ currentEmbedding = getPreviousLevel(types, levels, i);
++ currentOverride = getPreviousOverride(types, levels, i);
++ types[i] = BN;
++ break;
++
++ /* Whitespace is treated as neutral for now */
++ case WS:
++ case B:
++ case S:
++ levels[i] = currentEmbedding;
++ tempType = ON;
++ if(currentOverride != ON)
++ tempType = currentOverride;
++ break;
++
++ default:
++ levels[i] = currentEmbedding;
++ if(currentOverride != ON)
++ tempType = currentOverride;
++ break;
++
++ }
++ types[i] = tempType;
++ }
++ }else
++ {
++ for( i=0; i<count; i++)
++ {
++ tempType = GetType(GETCHAR(line, i));
++ switch(tempType)
++ {
++ case WS:
++ case B:
++ case S:
++ levels[i] = currentEmbedding;
++ tempType = ON;
++ if(currentOverride != ON)
++ tempType = currentOverride;
++ break;
++
++ default:
++ levels[i] = currentEmbedding;
++ if(currentOverride != ON)
++ tempType = currentOverride;
++ break;
++
++ }
++ types[i] = tempType;
++ }
++
++ }
++
++}
++
++/* Rule (W3) */
++void doALtoR(unsigned char* types, int count)
++{
++ int i=0;
++ for(; i<count; i++)
++ {
++ if(types[i] == AL)
++ types[i] = R;
++ }
++
++}
++/*
++ * The Main Bidi Function, and the only function that should
++ * be used by the outside world.
++ *
++ * line: a buffer of size count containing text to apply
++ * the Bidirectional algorithm to.
++ */
++int doBidi(BLOCKTYPE line, int count, int applyShape, int reorderCombining, int removeMarks)
++{
++ unsigned char* types;
++ unsigned char* levels;
++ unsigned char paragraphLevel;
++ unsigned char tempType, tempTypeSec;
++ int i, j, imax, fX, fAL, fET, fNSM;
++ CHARTYPE* shapeTo;
++
++
++ fX = fAL = fET = fNSM = 0;
++ for(i=0; i<count; i++)
++ {
++ switch(GetType(line[i]))
++ {
++ case AL:
++ case R:
++ fAL = 1;
++ break;
++ case LRE:
++ case LRO:
++ case RLE:
++ case RLO:
++ case PDF:
++ case BN:
++ fX = 1;
++ break;
++ case ET:
++ fET = 1;
++ break;
++ case NSM:
++ fNSM = 1;
++ break;
++ }
++ }
++
++ if(!fAL && !fX)
++ return 0;
++
++ /* Initialize types, levels */
++ types = (unsigned char*)malloc(sizeof(unsigned char) * count);
++ levels = (unsigned char*)malloc(sizeof(unsigned char) * count);
++ if(applyShape)
++ shapeTo = (CHARTYPE*)malloc(sizeof(CHARTYPE) * count);
++
++ /* Rule (P1) NOT IMPLEMENTED
++ * P1. Split the text into separate paragraphs. A paragraph separator is
++ * kept with the previous paragraph. Within each paragraph, apply all the
++ * other rules of this algorithm.
++ */
++
++ /* Rule (P2), (P3)
++ * P2. In each paragraph, find the first character of type L, AL, or R.
++ * P3. If a character is found in P2 and it is of type AL or R, then set
++ * the paragraph embedding level to one; otherwise, set it to zero.
++ */
++ paragraphLevel = GetParagraphLevel(line, count);
++
++ /* Rule (X1), (X2), (X3), (X4), (X5), (X6), (X7), (X8), (X9)
++ * X1. Begin by setting the current embedding level to the paragraph
++ * embedding level. Set the directional override status to neutral.
++ * X2. With each RLE, compute the least greater odd embedding level.
++ * X3. With each LRE, compute the least greater even embedding level.
++ * X4. With each RLO, compute the least greater odd embedding level.
++ * X5. With each LRO, compute the least greater even embedding level.
++ * X6. For all types besides RLE, LRE, RLO, LRO, and PDF:
++ * a. Set the level of the current character to the current
++ * embedding level.
++ * b. Whenever the directional override status is not neutral,
++ * reset the current character type to the directional
++ * override status.
++ * X7. With each PDF, determine the matching embedding or override code.
++ * If there was a valid matching code, restore (pop) the last
++ * remembered (pushed) embedding level and directional override.
++ * X8. All explicit directional embeddings and overrides are completely
++ * terminated at the end of each paragraph. Paragraph separators are not
++ * included in the embedding. (Useless here) NOT IMPLEMENTED
++ * X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes.
++ * Here, they're converted to BN.
++ */
++
++ doTypes(line, paragraphLevel, types, levels, count, fX);
++
++
++ /* Rule (W1)
++ * W1. Examine each non-spacing mark (NSM) in the level run, and change
++ * the type of the NSM to the type of the previous character. If the NSM
++ * is at the start of the level run, it will get the type of sor.
++ */
++
++ /*
++ * Clear BNs first
++ */
++ if(fX)
++ {
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == BN)
++ {
++ j=i;
++ while(types[--j] == ON);
++ levels[i] = levels[j];
++
++ j=i;
++ while(types[++j] == BN);
++
++ if(levels[j] > levels[i])
++ levels[i] = levels[j];
++
++
++
++ if((levels[i] % 2) == 0)
++ {
++ types[i] = L;
++ }
++ else
++ {
++ types[i] = R;
++ }
++
++ }
++ }
++ }
++
++
++ if(fNSM)
++ {
++ if(types[0] == NSM)
++ types[0] = paragraphLevel;
++
++ for(i=1; i<count; i++)
++ {
++ if(types[i] == NSM)
++ types[i] = types[i-1];
++ /* Is this a safe assumption?
++ * I assumed the previous, IS a character.
++ */
++ }
++ }
++
++ /* BN TYPES !!!! */
++
++ if(fX)
++ {
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == BN)
++ {
++ j=i;
++ while(--j>=0 && types[j] == ON);
++ tempType = types[j];
++ j=i;
++ while(++j<count && types[j] == BN || types[j] == ON);
++ if(tempType != types[j])
++ types[i] = tempType;
++
++ }
++ }
++ }
++
++
++ /* Rule (W2)
++ * W2. Search backwards from each instance of a European number until the
++ * first strong type (R, L, AL, or sor) is found. If an AL is found,
++ * change the type of the European number to Arabic number.
++ */
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == EN)
++ {
++ j=i;
++ while(--j >= 0)
++ {
++ if(types[j] == AL)
++ {
++ types[i] = AN;
++ break;
++ }
++ else if(types[j] == R || types[j] == L)
++ {
++ break;
++ }
++ }
++ }
++ }
++
++ /* Rule (W3)
++ * W3. Change all ALs to R.
++ *
++ * Optimization: on Rule Xn, we might set a flag on AL type
++ * to prevent this loop in L R lines only...
++ */
++ doALtoR(types, count);
++
++ /* Rule (W4)
++ * W4. A single European separator between two European numbers changes
++ * to a European number. A single common separator between two numbers
++ * of the same type changes to that type.
++ */
++ for( i=0; i<(count-1); i++)
++ {
++ if(types[i] == ES)
++ {
++ if(types[i-1] == EN && types[i+1] == EN)
++ types[i] = EN;
++ }else if(types[i] == CS)
++ {
++ if(types[i-1] == EN && types[i+1] == EN)
++ types[i] = EN;
++ else if(types[i-1] == AN && types[i+1] == AN)
++ types[i] = AN;
++ }
++ }
++
++ /* Rule (W5)
++ * W5. A sequence of European terminators adjacent to European numbers
++ * changes to all European numbers.
++ *
++ * Optimization: lots here... else ifs need rearrangement
++ */
++ if(fET)
++ {
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == ET)
++ {
++ if(types[i-1] == EN)
++ {
++ types[i] = EN;
++ continue;
++ }else if(types[i+1] == EN)
++ {
++ types[i] = EN;
++ continue;
++ }else if(types[i+1] == ET)
++ {
++ j=i;
++ while(j <count && types[j] == ET)
++ {
++ j++;
++ }
++ if(types[j] == EN)
++ types[i] = EN;
++ }
++ }
++ }
++ }
++
++ /* Rule (W6)
++ * W6. Otherwise, separators and terminators change to Other Neutral:
++ */
++ for(i=0; i<count; i++)
++ {
++ switch(types[i])
++ {
++ case ES:
++ case ET:
++ case CS:
++ types[i] = ON;
++ break;
++ }
++ }
++
++ /* Rule (W7)
++ * W7. Search backwards from each instance of a European number until
++ * the first strong type (R, L, or sor) is found. If an L is found,
++ * then change the type of the European number to L.
++ */
++
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == EN)
++ {
++ j=i;
++ while(--j >= 0)
++ {
++ if(types[j] == L)
++ {
++ types[i] = L;
++ break;
++ }
++ else if(types[j] == R || types[j] == AL)
++ {
++ break;
++ }
++
++ }
++ }
++ }
++
++
++ /* Rule (N1)
++ * N1. A sequence of neutrals takes the direction of the surrounding
++ * strong text if the text on both sides has the same direction. European
++ * and Arabic numbers are treated as though they were R.
++ */
++ tempType = paragraphLevel;
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == ON)
++ {
++ if(types[i-1] == R || types[i-1] == EN || types[i-1] == AN)
++ tempType = R;
++ else
++ tempType = L;
++ j=i;
++
++ while(j < count)
++ {
++ tempTypeSec = types[j];
++ if(tempTypeSec == ON || tempTypeSec == BN)
++ j++;
++ else
++ break;
++ }
++
++ if(((types[j] == L || types[j] == LRE) && (tempType == L)) ||
++ (((types[j] == R) || (types[j] == EN) || (types[j] == AN)) && (tempType == R)))
++ {
++ while(i<j)
++ {
++ types[i++] = tempType;
++ }
++ }
++ }
++ }
++
++
++ /* Rule (N2)
++ * N2. Any remaining neutrals take the embedding direction.
++ */
++ for(i=0; i<count; i++)
++ {
++ if(types[i] == ON || types[i] == BN)
++ {
++ if((levels[i] % 2) == 0)
++ types[i] = L;
++ else
++ types[i] = R;
++ }
++ }
++
++ /* Rule (I1)
++ * I1. For all characters with an even (left-to-right) embedding
++ * direction, those of type R go up one level and those of type AN or
++ * EN go up two levels.
++ */
++ for(i=0; i<count; i++)
++ {
++ if((levels[i] % 2) == 0)
++ {
++ if(types[i] == R)
++ levels[i] += 1;
++ else if((types[i] == AN) || (types[i] == EN))
++ levels[i] += 2;
++ }else
++ {
++ if((types[i] == L) ||
++ (types[i] == EN) ||
++ (types[i] == AN))
++ levels[i] += 1;
++ }
++ }
++
++ /* Rule (I2)
++ * I2. For all characters with an odd (right-to-left) embedding direction,
++ * those of type L, EN or AN go up one level.
++ */
++/*
++ for(i=0; i<count; i++)
++ {
++ if((levels[i] % 2) == 1)
++ {
++ if(types[i] == L || types[i] == EN || types[i] == AN)
++ levels[i] += 1;
++ }
++ }
++*/
++ /* Rule (L1)
++ * L1. On each line, reset the embedding level of the following characters
++ * to the paragraph embedding level:
++ * (1)segment separators, (2)paragraph separators,
++ * (3)any sequence of whitespace characters preceding
++ * a segment separator or paragraph separator,
++ * (4)and any sequence of white space characters
++ * at the end of the line.
++ * The types of characters used here are the original types, not those
++ * modified by the previous phase.
++ */
++
++
++
++ j=count-1;
++ while(j>0 && (GetType(GETCHAR(line, j)) == WS))
++ {
++ j--;
++ }
++ if(j < (count-1))
++ {
++ for(j++; j<count; j++)
++ levels[j] = paragraphLevel;
++ }
++
++ for(i=0; i<count; i++)
++ {
++ tempType = GetType(GETCHAR(line, i));
++ if(tempType == WS)
++ {
++ j=i;
++ while((++j < count) && ((tempType == WS) || (tempType == RLE)) )
++ {
++ tempType = GetType(line[j]);
++ }
++
++ if(GetType(GETCHAR(line, j)) == B || GetType(GETCHAR(line, j)) == S)
++ {
++ for(j--; j>=i ; j--)
++ {
++ levels[j] = paragraphLevel;
++ }
++ }
++ }else if(tempType == B || tempType == S)
++ levels[i] = paragraphLevel;
++ }
++
++ /* Rule (L4)
++ * L4. A character that possesses the mirrored property as specified by
++ * Section 4.7, Mirrored, must be depicted by a mirrored glyph if the
++ * resolved directionality of that character is R.
++ */
++ /* Note: this is implemented before L2 for efficiency */
++ for(i=0; i<count; i++)
++ {
++ if((levels[i] % 2) == 1)
++ doMirror(&line[i]);
++ }
++
++
++
++ /* Rule (L3)
++ * L3. Combining marks applied to a right-to-left base character will at
++ * this point precede their base character. If the rendering engine
++ * expects them to follow the base characters in the final display
++ * process, then the ordering of the marks and the base character must
++ * be reversed.
++ * Combining marks are reordered to the right of each character on an
++ * odd level.
++ */
++
++ if(fNSM && reorderCombining)
++ {
++ CHARTYPE temp;
++ int it;
++ for(i=0; i<count; i++)
++ {
++ if(GetType(GETCHAR(line, i)) == NSM && odd(levels[i]))
++ {
++ j=i;
++ while((++j < count) && (GetType(GETCHAR(line, j)) == NSM));
++ j--; i--;
++ for(it=j; j>i; i++, j--)
++ {
++ temp = GETCHAR(line, i);
++ GETCHAR(line, i) = GETCHAR(line, j);
++ GETCHAR(line, j) = temp;
++ }
++ i=it+1;
++ }
++ }
++ }
++
++ /* Shaping
++ * Shaping is Applied to each run of levels separately....
++ */
++
++ if(applyShape)
++ {
++
++ for(i=0; i<count; i++)
++ {
++ shapeTo[i] = GETCHAR(line, i);
++ }
++
++ j=i=0;
++ while(j < count)
++ {
++ if(GetType(GETCHAR(line, j)) == AL)
++ {
++ if(j<count && j >= i )
++ {
++ tempType = levels[j];
++ i=j;
++ while((i++ < count) && (levels[i] == tempType));
++ doShape(line, shapeTo, j, i);
++ j=i;
++ tempType = levels[j];
++
++ }
++ }
++ j++;
++ }
++ for(i=0; i<count; i++)
++ {
++ GETCHAR(line, i) = shapeTo[i];
++ }
++ free(shapeTo);
++ }
++
++
++
++ /* Rule (L2)
++ * L2. From the highest level found in the text to the lowest odd level on
++ * each line, including intermediate levels not actually present in the
++ * text, reverse any contiguous sequence of characters that are at that
++ * level or higher
++ */
++ /* we flip the character string and leave the level array */
++ imax = 0;
++ i=0;
++ tempType = levels[0];
++ while(i < count)
++ {
++ if(levels[i] > tempType)
++ {
++ tempType = levels[i];
++ imax=i;
++ }
++ i++;
++ }
++ /* maximum level in tempType, its index in imax. */
++ while(tempType > 0) /* loop from highest level to the least odd, */
++ { /* which i assume is 1 */
++ flipThisRun(line, levels, tempType, count);
++ tempType--;
++ }
++
++ /* The line should be reordered correctly, check for Explicits marks
++ * and remove them if removeMarks
++ */
++ if(fX && removeMarks)
++ {
++ if(!GetParagraphLevel(line, count))
++ {
++ for(i=0, j=0; i<count; i++)
++ {
++ tempType = GetType(GETCHAR(line, i));
++ if(tempType != RLE &&
++ tempType != LRE &&
++ tempType != RLO &&
++ tempType != LRO &&
++ tempType != PDF)
++ GETCHAR(line, j++) = GETCHAR(line, i);
++ }
++ for(i=j; j<count; j++)
++ GETCHAR(line, j) = 0x20;
++ }else
++ {
++ for(j=i=count-1; i>=0; i--)
++ {
++ tempType = GetType(GETCHAR(line, i));
++ if(tempType != RLE &&
++ tempType != LRE &&
++ tempType != RLO &&
++ tempType != LRO &&
++ tempType != PDF)
++ GETCHAR(line, j--) = GETCHAR(line, i);
++ }
++ for(i=j; j>=0; j--)
++ GETCHAR(line, j) = 0x20;
++ }
++ }
++
++
++ free(types);
++ free(levels);
++ /* if removeMarks is 1 and there were actual marks then return the new size */
++ if(fX && removeMarks) return i;
++ return count;
++}
++
++
++/*
++ * Bad, Horrible function
++ * takes a pointer to a character that is checked for
++ * having a mirror glyph.
++ */
++void doMirror(CHARTYPE* ch)
++{
++ if ((*ch & 0xFF00) == 0) {
++ switch (*ch) {
++ case 0x0028: *ch = 0x0029; break;
++ case 0x0029: *ch = 0x0028; break;
++ case 0x003C: *ch = 0x003E; break;
++ case 0x003E: *ch = 0x003C; break;
++ case 0x005B: *ch = 0x005D; break;
++ case 0x005D: *ch = 0x005B; break;
++ case 0x007B: *ch = 0x007D; break;
++ case 0x007D: *ch = 0x007B; break;
++ case 0x00AB: *ch = 0x00BB; break;
++ case 0x00BB: *ch = 0x00AB; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x2000) {
++ switch (*ch) {
++ case 0x2039: *ch = 0x203A; break;
++ case 0x203A: *ch = 0x2039; break;
++ case 0x2045: *ch = 0x2046; break;
++ case 0x2046: *ch = 0x2045; break;
++ case 0x207D: *ch = 0x207E; break;
++ case 0x207E: *ch = 0x207D; break;
++ case 0x208D: *ch = 0x208E; break;
++ case 0x208E: *ch = 0x208D; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x2200) {
++ switch (*ch) {
++ case 0x2208: *ch = 0x220B; break;
++ case 0x2209: *ch = 0x220C; break;
++ case 0x220A: *ch = 0x220D; break;
++ case 0x220B: *ch = 0x2208; break;
++ case 0x220C: *ch = 0x2209; break;
++ case 0x220D: *ch = 0x220A; break;
++ case 0x2215: *ch = 0x29F5; break;
++ case 0x223C: *ch = 0x223D; break;
++ case 0x223D: *ch = 0x223C; break;
++ case 0x2243: *ch = 0x22CD; break;
++ case 0x2252: *ch = 0x2253; break;
++ case 0x2253: *ch = 0x2252; break;
++ case 0x2254: *ch = 0x2255; break;
++ case 0x2255: *ch = 0x2254; break;
++ case 0x2264: *ch = 0x2265; break;
++ case 0x2265: *ch = 0x2264; break;
++ case 0x2266: *ch = 0x2267; break;
++ case 0x2267: *ch = 0x2266; break;
++ case 0x2268: *ch = 0x2269; break;
++ case 0x2269: *ch = 0x2268; break;
++ case 0x226A: *ch = 0x226B; break;
++ case 0x226B: *ch = 0x226A; break;
++ case 0x226E: *ch = 0x226F; break;
++ case 0x226F: *ch = 0x226E; break;
++ case 0x2270: *ch = 0x2271; break;
++ case 0x2271: *ch = 0x2270; break;
++ case 0x2272: *ch = 0x2273; break;
++ case 0x2273: *ch = 0x2272; break;
++ case 0x2274: *ch = 0x2275; break;
++ case 0x2275: *ch = 0x2274; break;
++ case 0x2276: *ch = 0x2277; break;
++ case 0x2277: *ch = 0x2276; break;
++ case 0x2278: *ch = 0x2279; break;
++ case 0x2279: *ch = 0x2278; break;
++ case 0x227A: *ch = 0x227B; break;
++ case 0x227B: *ch = 0x227A; break;
++ case 0x227C: *ch = 0x227D; break;
++ case 0x227D: *ch = 0x227C; break;
++ case 0x227E: *ch = 0x227F; break;
++ case 0x227F: *ch = 0x227E; break;
++ case 0x2280: *ch = 0x2281; break;
++ case 0x2281: *ch = 0x2280; break;
++ case 0x2282: *ch = 0x2283; break;
++ case 0x2283: *ch = 0x2282; break;
++ case 0x2284: *ch = 0x2285; break;
++ case 0x2285: *ch = 0x2284; break;
++ case 0x2286: *ch = 0x2287; break;
++ case 0x2287: *ch = 0x2286; break;
++ case 0x2288: *ch = 0x2289; break;
++ case 0x2289: *ch = 0x2288; break;
++ case 0x228A: *ch = 0x228B; break;
++ case 0x228B: *ch = 0x228A; break;
++ case 0x228F: *ch = 0x2290; break;
++ case 0x2290: *ch = 0x228F; break;
++ case 0x2291: *ch = 0x2292; break;
++ case 0x2292: *ch = 0x2291; break;
++ case 0x2298: *ch = 0x29B8; break;
++ case 0x22A2: *ch = 0x22A3; break;
++ case 0x22A3: *ch = 0x22A2; break;
++ case 0x22A6: *ch = 0x2ADE; break;
++ case 0x22A8: *ch = 0x2AE4; break;
++ case 0x22A9: *ch = 0x2AE3; break;
++ case 0x22AB: *ch = 0x2AE5; break;
++ case 0x22B0: *ch = 0x22B1; break;
++ case 0x22B1: *ch = 0x22B0; break;
++ case 0x22B2: *ch = 0x22B3; break;
++ case 0x22B3: *ch = 0x22B2; break;
++ case 0x22B4: *ch = 0x22B5; break;
++ case 0x22B5: *ch = 0x22B4; break;
++ case 0x22B6: *ch = 0x22B7; break;
++ case 0x22B7: *ch = 0x22B6; break;
++ case 0x22C9: *ch = 0x22CA; break;
++ case 0x22CA: *ch = 0x22C9; break;
++ case 0x22CB: *ch = 0x22CC; break;
++ case 0x22CC: *ch = 0x22CB; break;
++ case 0x22CD: *ch = 0x2243; break;
++ case 0x22D0: *ch = 0x22D1; break;
++ case 0x22D1: *ch = 0x22D0; break;
++ case 0x22D6: *ch = 0x22D7; break;
++ case 0x22D7: *ch = 0x22D6; break;
++ case 0x22D8: *ch = 0x22D9; break;
++ case 0x22D9: *ch = 0x22D8; break;
++ case 0x22DA: *ch = 0x22DB; break;
++ case 0x22DB: *ch = 0x22DA; break;
++ case 0x22DC: *ch = 0x22DD; break;
++ case 0x22DD: *ch = 0x22DC; break;
++ case 0x22DE: *ch = 0x22DF; break;
++ case 0x22DF: *ch = 0x22DE; break;
++ case 0x22E0: *ch = 0x22E1; break;
++ case 0x22E1: *ch = 0x22E0; break;
++ case 0x22E2: *ch = 0x22E3; break;
++ case 0x22E3: *ch = 0x22E2; break;
++ case 0x22E4: *ch = 0x22E5; break;
++ case 0x22E5: *ch = 0x22E4; break;
++ case 0x22E6: *ch = 0x22E7; break;
++ case 0x22E7: *ch = 0x22E6; break;
++ case 0x22E8: *ch = 0x22E9; break;
++ case 0x22E9: *ch = 0x22E8; break;
++ case 0x22EA: *ch = 0x22EB; break;
++ case 0x22EB: *ch = 0x22EA; break;
++ case 0x22EC: *ch = 0x22ED; break;
++ case 0x22ED: *ch = 0x22EC; break;
++ case 0x22F0: *ch = 0x22F1; break;
++ case 0x22F1: *ch = 0x22F0; break;
++ case 0x22F2: *ch = 0x22FA; break;
++ case 0x22F3: *ch = 0x22FB; break;
++ case 0x22F4: *ch = 0x22FC; break;
++ case 0x22F6: *ch = 0x22FD; break;
++ case 0x22F7: *ch = 0x22FE; break;
++ case 0x22FA: *ch = 0x22F2; break;
++ case 0x22FB: *ch = 0x22F3; break;
++ case 0x22FC: *ch = 0x22F4; break;
++ case 0x22FD: *ch = 0x22F6; break;
++ case 0x22FE: *ch = 0x22F7; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x2300) {
++ switch (*ch) {
++ case 0x2308: *ch = 0x2309; break;
++ case 0x2309: *ch = 0x2308; break;
++ case 0x230A: *ch = 0x230B; break;
++ case 0x230B: *ch = 0x230A; break;
++ case 0x2329: *ch = 0x232A; break;
++ case 0x232A: *ch = 0x2329; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x2700) {
++ switch (*ch) {
++ case 0x2768: *ch = 0x2769; break;
++ case 0x2769: *ch = 0x2768; break;
++ case 0x276A: *ch = 0x276B; break;
++ case 0x276B: *ch = 0x276A; break;
++ case 0x276C: *ch = 0x276D; break;
++ case 0x276D: *ch = 0x276C; break;
++ case 0x276E: *ch = 0x276F; break;
++ case 0x276F: *ch = 0x276E; break;
++ case 0x2770: *ch = 0x2771; break;
++ case 0x2771: *ch = 0x2770; break;
++ case 0x2772: *ch = 0x2773; break;
++ case 0x2773: *ch = 0x2772; break;
++ case 0x2774: *ch = 0x2775; break;
++ case 0x2775: *ch = 0x2774; break;
++ case 0x27D5: *ch = 0x27D6; break;
++ case 0x27D6: *ch = 0x27D5; break;
++ case 0x27DD: *ch = 0x27DE; break;
++ case 0x27DE: *ch = 0x27DD; break;
++ case 0x27E2: *ch = 0x27E3; break;
++ case 0x27E3: *ch = 0x27E2; break;
++ case 0x27E4: *ch = 0x27E5; break;
++ case 0x27E5: *ch = 0x27E4; break;
++ case 0x27E6: *ch = 0x27E7; break;
++ case 0x27E7: *ch = 0x27E6; break;
++ case 0x27E8: *ch = 0x27E9; break;
++ case 0x27E9: *ch = 0x27E8; break;
++ case 0x27EA: *ch = 0x27EB; break;
++ case 0x27EB: *ch = 0x27EA; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x2900) {
++ switch (*ch) {
++ case 0x2983: *ch = 0x2984; break;
++ case 0x2984: *ch = 0x2983; break;
++ case 0x2985: *ch = 0x2986; break;
++ case 0x2986: *ch = 0x2985; break;
++ case 0x2987: *ch = 0x2988; break;
++ case 0x2988: *ch = 0x2987; break;
++ case 0x2989: *ch = 0x298A; break;
++ case 0x298A: *ch = 0x2989; break;
++ case 0x298B: *ch = 0x298C; break;
++ case 0x298C: *ch = 0x298B; break;
++ case 0x298D: *ch = 0x2990; break;
++ case 0x298E: *ch = 0x298F; break;
++ case 0x298F: *ch = 0x298E; break;
++ case 0x2990: *ch = 0x298D; break;
++ case 0x2991: *ch = 0x2992; break;
++ case 0x2992: *ch = 0x2991; break;
++ case 0x2993: *ch = 0x2994; break;
++ case 0x2994: *ch = 0x2993; break;
++ case 0x2995: *ch = 0x2996; break;
++ case 0x2996: *ch = 0x2995; break;
++ case 0x2997: *ch = 0x2998; break;
++ case 0x2998: *ch = 0x2997; break;
++ case 0x29B8: *ch = 0x2298; break;
++ case 0x29C0: *ch = 0x29C1; break;
++ case 0x29C1: *ch = 0x29C0; break;
++ case 0x29C4: *ch = 0x29C5; break;
++ case 0x29C5: *ch = 0x29C4; break;
++ case 0x29CF: *ch = 0x29D0; break;
++ case 0x29D0: *ch = 0x29CF; break;
++ case 0x29D1: *ch = 0x29D2; break;
++ case 0x29D2: *ch = 0x29D1; break;
++ case 0x29D4: *ch = 0x29D5; break;
++ case 0x29D5: *ch = 0x29D4; break;
++ case 0x29D8: *ch = 0x29D9; break;
++ case 0x29D9: *ch = 0x29D8; break;
++ case 0x29DA: *ch = 0x29DB; break;
++ case 0x29DB: *ch = 0x29DA; break;
++ case 0x29F5: *ch = 0x2215; break;
++ case 0x29F8: *ch = 0x29F9; break;
++ case 0x29F9: *ch = 0x29F8; break;
++ case 0x29FC: *ch = 0x29FD; break;
++ case 0x29FD: *ch = 0x29FC; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x2A00) {
++ switch (*ch) {
++ case 0x2A2B: *ch = 0x2A2C; break;
++ case 0x2A2C: *ch = 0x2A2B; break;
++ case 0x2A2D: *ch = 0x2A2C; break;
++ case 0x2A2E: *ch = 0x2A2D; break;
++ case 0x2A34: *ch = 0x2A35; break;
++ case 0x2A35: *ch = 0x2A34; break;
++ case 0x2A3C: *ch = 0x2A3D; break;
++ case 0x2A3D: *ch = 0x2A3C; break;
++ case 0x2A64: *ch = 0x2A65; break;
++ case 0x2A65: *ch = 0x2A64; break;
++ case 0x2A79: *ch = 0x2A7A; break;
++ case 0x2A7A: *ch = 0x2A79; break;
++ case 0x2A7D: *ch = 0x2A7E; break;
++ case 0x2A7E: *ch = 0x2A7D; break;
++ case 0x2A7F: *ch = 0x2A80; break;
++ case 0x2A80: *ch = 0x2A7F; break;
++ case 0x2A81: *ch = 0x2A82; break;
++ case 0x2A82: *ch = 0x2A81; break;
++ case 0x2A83: *ch = 0x2A84; break;
++ case 0x2A84: *ch = 0x2A83; break;
++ case 0x2A8B: *ch = 0x2A8C; break;
++ case 0x2A8C: *ch = 0x2A8B; break;
++ case 0x2A91: *ch = 0x2A92; break;
++ case 0x2A92: *ch = 0x2A91; break;
++ case 0x2A93: *ch = 0x2A94; break;
++ case 0x2A94: *ch = 0x2A93; break;
++ case 0x2A95: *ch = 0x2A96; break;
++ case 0x2A96: *ch = 0x2A95; break;
++ case 0x2A97: *ch = 0x2A98; break;
++ case 0x2A98: *ch = 0x2A97; break;
++ case 0x2A99: *ch = 0x2A9A; break;
++ case 0x2A9A: *ch = 0x2A99; break;
++ case 0x2A9B: *ch = 0x2A9C; break;
++ case 0x2A9C: *ch = 0x2A9B; break;
++ case 0x2AA1: *ch = 0x2AA2; break;
++ case 0x2AA2: *ch = 0x2AA1; break;
++ case 0x2AA6: *ch = 0x2AA7; break;
++ case 0x2AA7: *ch = 0x2AA6; break;
++ case 0x2AA8: *ch = 0x2AA9; break;
++ case 0x2AA9: *ch = 0x2AA8; break;
++ case 0x2AAA: *ch = 0x2AAB; break;
++ case 0x2AAB: *ch = 0x2AAA; break;
++ case 0x2AAC: *ch = 0x2AAD; break;
++ case 0x2AAD: *ch = 0x2AAC; break;
++ case 0x2AAF: *ch = 0x2AB0; break;
++ case 0x2AB0: *ch = 0x2AAF; break;
++ case 0x2AB3: *ch = 0x2AB4; break;
++ case 0x2AB4: *ch = 0x2AB3; break;
++ case 0x2ABB: *ch = 0x2ABC; break;
++ case 0x2ABC: *ch = 0x2ABB; break;
++ case 0x2ABD: *ch = 0x2ABE; break;
++ case 0x2ABE: *ch = 0x2ABD; break;
++ case 0x2ABF: *ch = 0x2AC0; break;
++ case 0x2AC0: *ch = 0x2ABF; break;
++ case 0x2AC1: *ch = 0x2AC2; break;
++ case 0x2AC2: *ch = 0x2AC1; break;
++ case 0x2AC3: *ch = 0x2AC4; break;
++ case 0x2AC4: *ch = 0x2AC3; break;
++ case 0x2AC5: *ch = 0x2AC6; break;
++ case 0x2AC6: *ch = 0x2AC5; break;
++ case 0x2ACD: *ch = 0x2ACE; break;
++ case 0x2ACE: *ch = 0x2ACD; break;
++ case 0x2ACF: *ch = 0x2AD0; break;
++ case 0x2AD0: *ch = 0x2ACF; break;
++ case 0x2AD1: *ch = 0x2AD2; break;
++ case 0x2AD2: *ch = 0x2AD1; break;
++ case 0x2AD3: *ch = 0x2AD4; break;
++ case 0x2AD4: *ch = 0x2AD3; break;
++ case 0x2AD5: *ch = 0x2AD6; break;
++ case 0x2AD6: *ch = 0x2AD5; break;
++ case 0x2ADE: *ch = 0x22A6; break;
++ case 0x2AE3: *ch = 0x22A9; break;
++ case 0x2AE4: *ch = 0x22A8; break;
++ case 0x2AE5: *ch = 0x22AB; break;
++ case 0x2AEC: *ch = 0x2AED; break;
++ case 0x2AED: *ch = 0x2AEC; break;
++ case 0x2AF7: *ch = 0x2AF8; break;
++ case 0x2AF8: *ch = 0x2AF7; break;
++ case 0x2AF9: *ch = 0x2AFA; break;
++ case 0x2AFA: *ch = 0x2AF9; break;
++ }
++ } else if ((*ch & 0xFF00) == 0x3000) {
++ switch (*ch) {
++ case 0x3008: *ch = 0x3009; break;
++ case 0x3009: *ch = 0x3008; break;
++ case 0x300A: *ch = 0x300B; break;
++ case 0x300B: *ch = 0x300A; break;
++ case 0x300C: *ch = 0x300D; break;
++ case 0x300D: *ch = 0x300C; break;
++ case 0x300E: *ch = 0x300F; break;
++ case 0x300F: *ch = 0x300E; break;
++ case 0x3010: *ch = 0x3011; break;
++ case 0x3011: *ch = 0x3010; break;
++ case 0x3014: *ch = 0x3015; break;
++ case 0x3015: *ch = 0x3014; break;
++ case 0x3016: *ch = 0x3017; break;
++ case 0x3017: *ch = 0x3016; break;
++ case 0x3018: *ch = 0x3019; break;
++ case 0x3019: *ch = 0x3018; break;
++ case 0x301A: *ch = 0x301B; break;
++ case 0x301B: *ch = 0x301A; break;
++ }
++ } else if ((*ch & 0xFF00) == 0xFF00) {
++ switch (*ch) {
++ case 0xFF08: *ch = 0xFF09; break;
++ case 0xFF09: *ch = 0xFF08; break;
++ case 0xFF1C: *ch = 0xFF1E; break;
++ case 0xFF1E: *ch = 0xFF1C; break;
++ case 0xFF3B: *ch = 0xFF3D; break;
++ case 0xFF3D: *ch = 0xFF3B; break;
++ case 0xFF5B: *ch = 0xFF5D; break;
++ case 0xFF5D: *ch = 0xFF5B; break;
++ case 0xFF5F: *ch = 0xFF60; break;
++ case 0xFF60: *ch = 0xFF5F; break;
++ case 0xFF62: *ch = 0xFF63; break;
++ case 0xFF63: *ch = 0xFF62; break;
++ }
++ }
++}
+Index: qt-2.3.10/src/qt.pro
+===================================================================
+--- qt-2.3.10.orig/src/qt.pro 2005-01-23 15:00:39.000000000 +0100
++++ qt-2.3.10/src/qt.pro 2005-05-13 22:22:13.000000000 +0200
+@@ -182,6 +182,7 @@
+ $$KERNEL_H/qasyncimageio.h \
+ $$KERNEL_H/qasyncio.h \
+ $$KERNEL_H/qbitmap.h \
++ $$KERNEL_H/qbidi.h \
+ $$KERNEL_H/qbrush.h \
+ $$KERNEL_H/qclipboard.h \
+ $$KERNEL_H/qcolor.h \
+@@ -527,6 +528,8 @@
+ kernel/qapplication.cpp \
+ kernel/qasyncimageio.cpp \
+ kernel/qasyncio.cpp \
++ kernel/qbidi.cpp \
++ kernel/minibidi.cpp \
+ kernel/qbitmap.cpp \
+ kernel/qclipboard.cpp \
+ kernel/qcolor.cpp \
+Index: qt-2.3.10/src/Makefile.in
+===================================================================
+--- qt-2.3.10.orig/src/Makefile.in 2005-05-13 22:22:11.000000000 +0200
++++ qt-2.3.10/src/Makefile.in 2005-05-13 22:29:52.000000000 +0200
+@@ -168,6 +168,8 @@
+ kernel/qabstractlayout.o \
+ kernel/qaccel.o \
+ kernel/qapplication.o \
++ kernel/qbidi.o \
++ kernel/minibidi.o \
+ kernel/qasyncimageio.o \
+ kernel/qasyncio.o \
+ kernel/qbitmap.o \
+@@ -4107,6 +4109,12 @@
+ kernel/qthread.h \
+ tools/qvaluestack.h
+
++kernel/qbidi.o: kernel/qbidi.cpp \
++ kernel/qbidi.h \
++ tools/qstring.h
++
++kernel/minibidi.o: kernel/minibidi.c
++
+ kernel/qasyncimageio.o: kernel/qasyncimageio.cpp \
+ kernel/qasyncimageio.h \
+ kernel/qimage.h \
diff --git a/recipes-qt/qte/qte-2.3.10/c7x0-w100-accel.patch b/recipes-qt/qte/qte-2.3.10/c7x0-w100-accel.patch
new file mode 100644
index 0000000..59a6710
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/c7x0-w100-accel.patch
@@ -0,0 +1,3404 @@
+ATI IMAGEON (W100) Accelerated support
+Manuel Teira <manuel.teira@telefonica.net>
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/configure~w100
++++ qt-2.3.10/configure
+@@ -325,6 +325,9 @@
+ -accel-matrox)
+ QWS_ACCEL_MATROX=y
+ ;;
++ -accel-w100)
++ QWS_ACCEL_W100=y
++ ;;
+ -qvfb)
+ QWS_QVFB=y
+ ;;
+@@ -726,6 +729,10 @@
+ then
+ QT_CXX="$QT_CXX -DQT_NO_QWS_MATROX"
+ fi
++if [ -z "$QWS_ACCEL_W100" -a -n "$EMB" ]
++then
++ QT_CXX="$QT_CXX -DQT_NO_QWS_W100"
++fi
+ if [ -z "$QWS_VNC" -a -n "$EMB" ]
+ then
+ QT_CXX="$QT_CXX -DQT_NO_QWS_VNC"
+@@ -1338,6 +1345,7 @@
+ -accel-voodoo3 ..... Enable Voodoo3 acceleration.
+ -accel-mach64 ...... Enable Mach64 acceleration.
+ -accel-matrox ...... Enable Matrox MGA acceleration.
++ -accel-w100 ........ Enable ATI Imageon w100 acceleration (experimental).
+ -qvfb .............. Enable X11-based Qt Virtual Frame Buffer.
+ -vnc ............... Enable VNC server (requires network module).
+
+@@ -1462,6 +1470,7 @@
+ [ "x$JPEG" = "xyes" ] && QT_LIBS="${QT_LIBS} -ljpeg"
+ [ "x$MNG" = "xyes" ] && QT_LIBS="${QT_LIBS} -lmng -ljpeg" # assume JNG support
+ [ "x$NAS_SOUND" = "xyes" ] && QT_LIBS="${QT_LIBS} -laudio -lXt" # Xt junk in audio library
++[ "x$QWS_ACCEL_W100" = "xy" ] && QT_LIBS="${QT_LIBS} -laticore" # Aticore W100 support
+ QT_LIBS="$L_FLAGS $R_FLAGS $QT_LIBS $l_FLAGS"
+
+
+--- qt-2.3.10/src/kernel/qgfxraster_qws.cpp~w100
++++ qt-2.3.10/src/kernel/qgfxraster_qws.cpp
+@@ -2673,7 +2673,6 @@
+ }
+ #endif
+ // Bresenham algorithm from Graphics Gems
+-
+ int ax=QABS(dx)*2;
+ int ay=QABS(dy)*2;
+ int sy=dy>0 ? 1 : -1;
+@@ -5945,6 +5944,10 @@
+ # include "qgfxmatrox_qws.cpp"
+ #endif
+
++#if !defined(QT_NO_QWS_W100)
++# include "qgfxw100_qws.cpp"
++#endif
++
+ #if !defined(QT_NO_QWS_VFB)
+ # include "qgfxvfb_qws.cpp"
+ #endif
+@@ -5999,6 +6002,9 @@
+ #if !defined(QT_NO_QWS_MATROX)
+ { "Matrox", qt_get_screen_matrox, 1 },
+ #endif
++#if !defined(QT_NO_QWS_W100)
++ { "W100", qt_get_screen_w100, 1 },
++#endif
+ #if !defined(QT_NO_QWS_TRANSFORMED)
+ { "Transformed", qt_get_screen_transformed, 0 },
+ #endif
+@@ -6039,6 +6045,8 @@
+ qt_screen = driverTable[i].qt_get_screen( display_id );
+ if ( qt_screen ) {
+ if ( qt_screen->connect( spec ) ) {
++ printf( "[%d]:Connected to screen '%s'\n",
++ getpid(), driverTable[i].name );
+ return qt_screen;
+ } else {
+ delete qt_screen;
+--- /dev/null
++++ qt-2.3.10/src/3rdparty/kernel/aticore/aticore.h
+@@ -0,0 +1,574 @@
++/*
++ * AtiCore 2D acceleration API
++ *
++ */
++
++#include <inttypes.h>
++#include <sys/types.h>
++
++#ifndef __W100API_H__
++#define __W100API_H__
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#define SolidRop_GXclear 0x00 /* 0 */
++#define SolidRop_GXand 0xa0 /* src AND dst */
++#define SolidRop_GXandReverse 0x50 /* src AND NOT dst */
++#define SolidRop_GXcopy 0xf0 /* src */
++#define SolidRop_GXandInverted 0x0a /* NOT src AND dst */
++#define SolidRop_GXnoop 0xaa /* dst */
++#define SolidRop_GXxor 0x5a /* src XOR dst */
++#define SolidRop_GXor 0xfa /* src OR dst */
++#define SolidRop_GXnor 0x05 /* NOT src AND NOT dst */
++#define SolidRop_GXequiv 0xa5 /* NOT src XOR dst */
++#define SolidRop_GXinvert 0x55 /* NOT dst */
++#define SolidRop_GXorReverse 0xf5 /* src OR NOT dst */
++#define SolidRop_GXcopyInverted 0x0f /* NOT src */
++#define SolidRop_GXorInverted 0xaf /* NOT src OR dst */
++#define SolidRop_GXnand 0x5f /* NOT src OR NOT dst */
++#define SolidRop_GXset 0xff /* 1 */
++
++#define BltRop_GXclear 0x00 /* 0 */
++#define BltRop_GXand 0x88 /* src AND dst */
++#define BltRop_GXandReverse 0x44 /* src AND NOT dst */
++#define BltRop_GXcopy 0xcc /* src */
++#define BltRop_GXandInverted 0x22 /* NOT src AND dst */
++#define BltRop_GXnoop 0xaa /* dst */
++#define BltRop_GXxor 0x66 /* src XOR dst */
++#define BltRop_GXor 0xee /* src OR dst */
++#define BltRop_GXnor 0x11 /* NOT src AND NOT dst */
++#define BltRop_GXequiv 0x99 /* NOT src XOR dst */
++#define BltRop_GXinvert 0x55 /* NOT dst */
++#define BltRop_GXorReverse 0xdd /* src OR NOT dst */
++#define BltRop_GXcopyInverted 0x33 /* NOT src */
++#define BltRop_GXorInverted 0xbb /* NOT src OR dst */
++#define BltRop_GXnand 0x77 /* NOT src OR NOT dst */
++#define BltRop_GXset 0xff /* 1 */
++
++#define DSTTYPE_8BPP 2 //8bpp
++#define DSTTYPE_16BPP_1555 3 //16 bpp aRGB 1555
++#define DSTTYPE_16BPP_444 5 //16 bpp aRGB 4444
++
++#define SRCTYPE_1BPP_OPA 0 //mono (expanded to frgd, bkgd)
++#define SRCTYPE_1BPP_TRA 1 //mono (expanded to frgd, leave_alone)
++#define SRCTYPE_EQU_DST 3 //color (same as DST)
++#define SRCTYPE_SOLID_COLOR_BLT 4 //solid color for Blt (use frgd)
++#define SRCTYPE_4BPP 5 //4 bpp
++#define SRCTYPE_12BPP_PACKED 6 //12 bpp packed
++
++#define ROP3_SRCCOPY 0xcc
++#define ROP3_PATCOPY 0xf0
++
++#define OVLTYPE_YUV420 7
++#define OVLTYPE_RGB565 8
++
++#define DP_BRUSH_8x8MONOOPA 0 //8x8 mono pattern (expanded to frgd, bkgd )
++#define DP_BRUSH_8x8MONOTRA 1 //8x8 mono pattern (expanded to frgd, leave alone )
++#define DP_PEN_32x1MONOOPA 6 //32x1 mono pattern (expanded to frgd, bkgd)
++#define DP_PEN_32x1MONOTRA 7 //32x1 mono pattern (expanded to frgd, leave alone)
++#define DP_BRUSH_8x8COLOR 10 //8x8 color pattern
++#define DP_BRUSH_SOLIDCOLOR 13 //solid color pattern (frgd)
++#define DB_BRUSH_NONE 15 //No brush used
++
++ typedef struct {
++ int16_t XCoord;
++ int16_t YCoord;
++ } ATI_POINT;
++
++ typedef struct {
++ int16_t XCoord;
++ int16_t YCoord;
++ int16_t Width;
++ int16_t Height;
++ } ATI_RECT;
++
++ typedef struct {
++ int16_t X_Top_Left; // x coordinate of top left corner
++ int16_t Y_Top_Left; // y coordinate of top left corner
++ int16_t X_Bottom_Right; // x coordinate of bottom right corner
++ int16_t Y_Bottom_Right; // y coordinate of bottom right corner
++ } ATI_CLIPRECT;
++
++ typedef struct {
++ uint32_t Count;
++ uint8_t ScaleXFactor;
++ uint8_t ScaleYFactor;
++ uint8_t BlendOn;
++ uint8_t dummy1;
++ } ATI_STRETCH;
++
++ typedef struct {
++ uint32_t *lpSrcBitmap; /* ¥µ¡¼¥Õ¥§¥¹¤Î¥ª¥Õ¥»¥Ã¥È */
++ uint16_t XCoord; /* +4 ³ÎÄê:¥µ¡¼¥Õ¥§¥¹Æâ¤ÎxºÂɸ */
++ uint16_t YCoord; /* +6 ³ÎÄê:¥µ¡¼¥Õ¥§¥¹Æâ¤ÎyºÂɸ */
++ uint16_t SrcPitch; /* +8 ³ÎÄê: */
++ uint16_t SrcHeight; /* +10 ³ÎÄê: */
++ uint16_t OverlayWidth; /* ¥ª¡¼¥Ð¥ì¥¤¤ÎÉý(Src¤È°ã¤¦Ãͤˤ·¤Æ¤â¡¢Æ°Åª¤Ë³ÈÂç½Ì¾®¤µ¤ì¤¿¤ê¤Ï¤·¤Ê¤¤¡¢°ÕÌ£¤¢¤ó¤Î¡©) */
++ uint16_t OverlayHeight;
++ uint32_t lpOverlayKey; /* +16 ³ÎÄê:Ææ(¥«¥é¡¼¥­¡¼¡©) */
++ uint8_t OverlayFormat; /* +20 ³ÎÄê */
++ uint8_t dummy1;
++ uint16_t dummy2;
++ } ATI_OVERLAYPROP; /* 24bytes? */
++
++ typedef struct {
++ int HInvert;
++ int VInvert;
++ } ATI_EXTVIDEOPROP;
++
++ typedef struct {
++ ATI_EXTVIDEOPROP ExtVideoProp;
++ } ATI_UNKNOWN1;
++
++ typedef struct {
++ unsigned long clr_cmp_fcn_src :3;
++ unsigned long :5;
++ unsigned long clr_cmp_fcn_dst :3;
++ unsigned long :13;
++ unsigned long clr_cmp_src :2;
++ unsigned long :6;
++ } clr_cmp_cntl_t;
++
++ typedef struct {
++ uint16_t x;
++ uint16_t y;
++ uint16_t w;
++ uint16_t h;
++ clr_cmp_cntl_t cmp_cntl;
++ unsigned long tcolour;
++ } transbitblt_t;
++
++ typedef struct {
++ uint32_t dummy1;
++ uint32_t dummy2;
++ uint8_t HExpansion; /* +8 ³ÎÄê */
++ uint8_t VExpansion; /* +9 ³ÎÄê */
++ uint8_t dummy3;
++ uint8_t dummy4;
++ uint8_t RConversion; /* +12 ³ÎÄê */
++ uint8_t dummy5;
++ uint8_t dummy6;
++ uint8_t dummy7;
++ ATI_UNKNOWN1 x;
++ } ATI_EXTENDEDOVERLAYPROP; /* 16byte? */
++
++ /**
++ * AtiCore initialization.
++ * Sets up the shared memory area
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_ProcessAttach( void );
++
++ /**
++ * AtiCore finish.
++ *
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_ProcessDetach( void );
++
++
++ /**
++ * Allocates a surface on the internal RAM.
++ * Perhaps there's a way to indicate to allocate on the
++ * internal RAM?
++ * @arg handle Reference to the returned surface handle
++ * @arg offset Returned offset of this surface on the video memory
++ * @arg size Size (bytes) to be reserved (16 multiple)
++ * @arg direction
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_AllocateSurface( uint16_t *handle, uint32_t *offset,
++ uint32_t size, uint32_t direction );
++
++ /**
++ * Deallocates a given surface.
++ * @arg handle Handle to the allocated surface
++ * (As returned by AllocateSurface)
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_DestroySurface( uint16_t handle );
++
++ /**
++ * Sets the kind of Raster Operation.
++ * @param rop Raster operation to be performed
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetRopOperation( uint32_t rop );
++
++ /**
++ * Sets the destination type for raster operation.
++ * @param dsttype
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetDstType( uint32_t dsttype );
++
++ /**
++ * Sets the source type for raster operation.
++ * @param srctype
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetSrcType( uint32_t srctype );
++
++ /**
++ * Sets Source clipping rectangle.
++ * @param cliprect Rectangle to perform clipping.
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetSrcClippingRect( ATI_CLIPRECT *cliprect );
++
++ /**
++ * Sets Destination clipping rectangle.
++ * @param cliprect Rectangle to perform clipping.
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetDstClippingRect(ATI_CLIPRECT *cliprect);
++
++ /**
++ * Sets pitch and offset for source in a raster operation.
++ * @param pitch Pitch (line width) of source
++ * @param offset Offset of source
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetSrcPitchOffset( int pitch, int offset );
++
++ /**
++ * Sets pitch and offset destination source in a raster operation.
++ * @param pitch Pitch (line width) of destination
++ * @param offset Offset of destination (memory offset)
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetDstPitchOffset( int pitch, int offset );
++
++ /**
++ * Performs a BitBlt with source rotation.
++ * @param flags Rotation degree
++ * @param dstRect Rectangle for destination Bitblitting
++ * @param srcRect Rectangle for origin bitblitting
++ * @test Tested with specified flags parameter
++ */
++ int AtiCore_BitBltFilpRotate( int flags,
++ ATI_RECT *dstRect,
++ ATI_RECT *srcRect);
++
++ /**
++ * Performs a BitBlt with source stretching.
++ * @param option Unknown
++ * @param point Unknown
++ * @param srcRect Source blitting surface
++ * @test Untested
++ */
++ int AtiCore_StretchBlt( ATI_STRETCH *option,
++ ATI_POINT *point,
++ ATI_RECT *srcRect);
++
++ /**
++ * Waits for the FIFO to be idle at least msecs.
++ * @param msecs Maximum time to wait for FIFO to idle
++ * @return 1:success, 0:fail
++ * @test Untested
++ */
++ int AtiCore_WaitComplete( int msec );
++
++ /**
++ * Allocates a new overlay handle.
++ * @param handle overlay
++ * @return 1:success, 0:fail
++ * @test Yes
++ */
++ int AtiCore_AllocOverlay( uint16_t *handle );
++
++ /**
++ * Deallocates a overlay handle.
++ * @param handle overlay
++ * @return 1:success, 0:fail
++ * @test Yes
++ */
++ int AtiCore_ReleaseOverlay( uint16_t handle );
++
++ /**
++ * Sets up an overlay given a handle an a set of properties.
++ * @param handle Allocated handle to setup the overlay.
++ * @param props Overlay properties struct
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetupOverlay( uint16_t handle, ATI_OVERLAYPROP *props );
++
++ /**
++ * Sets up extended overlay features.
++ * @param handle Allocated handle to an overlay
++ * @param props Extended overlay properties
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetupOverlayExtended( uint16_t handle,
++ ATI_EXTENDEDOVERLAYPROP *props );
++
++ /**
++ * Enable/Disable an overlayed surface.
++ * @param handle Overlay to be enabled/disabled
++ * @param enable 1: Enable, 0: Disable
++ * @return 1:success, 0:fail
++ * @test Tested
++ */
++ int AtiCore_SetOverlayOnOff( uint16_t handle, int enable );
++
++ /**
++ * Sets up the overlay position for a given handle.
++ * @param handle Overlay Handle
++ * @param x X Coordinate (Seems to be a bug with x < 4 )
++ * @param y Y Coordinate
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetOverlayPos( uint16_t handle,
++ uint16_t x,
++ uint16_t y );
++
++ /**
++ * Translates between physical/virtual addresses.
++ * @param offset VRAM offset to be translated
++ * @param viraddr Virtual address for VRAM
++ * @return 1:success,0:fail
++ */
++ int AtiCore_SetupMemoryTransfer( uint32_t offset,
++ uint32_t *viraddr );
++
++ /**
++ * Related with the previous one. It seems to be necesary to be called
++ * but I'm not sure of its function.
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_TerminateMemoryTransfer( void );
++
++ /**
++ * Returns the frontbuffer pitch and offset.
++ * @param pitch Return value for the frontbuffer pitch (width)
++ * @param offset Return value for the frontbuffer offset
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_GetFrontBufferPitchOffset( uint32_t *pitch,
++ uint32_t *offset );
++
++ /**
++ * Changes display brighness ?
++ * @param brightness -64...63
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetDisplayBrightness( int brightness );
++
++ /**
++ * Returns the amount of available internal/external memory.
++ * @param internal Pointer to return internal memory size
++ * @param external Pointer to return external memory size
++ * @return 1:success, 0:fail
++ */
++ int GetAvailableVideoMem( uint32_t *internal,
++ uint32_t *external );
++
++/**
++ *
++ *
++ *
++
++ {
++ (uint32_t) 0
++ (uint32_t) 0
++ (uint16_t) 480
++ (uint16_t) 640
++ (uint16_t) 480
++ (uint16_t) 640
++ (uint32_t) 5
++ */
++
++ typedef struct {
++ uint32_t dummy1;
++ ATI_RECT Size;
++ uint16_t Width;
++ uint16_t Height;
++ uint32_t Flag;
++ } ATI_GRAPHICWINDOW;
++
++ int AtiCore_SetupGraphicWindow(void* );
++
++ /**
++ * It seems to be necessary after AtiCore_ProcessAttach
++ * @param mode: 0xaaab for portrait, 0xaaaa for landscape
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_ProcessAttachSpecialMode( int mode );
++
++ /**
++ * Detach from the special mode. Whatever it means.
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_ProcessDetachSpecialMode( void );
++
++ /**
++ * Sets up the position of the Graphic viewport ?
++ * @param x X coordinate
++ * @param y Y coordinate
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetGraphicWindowPos( int x, int y );
++
++ /**
++ * Get the graphic viewport position.
++ * @param x Pointer to xcoord placeholder
++ * @param y Pointer to ycoord placeholder
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_GetGraphicWindowPos( int *x, int *y );
++
++ /**
++ * Sets up the frontbuffer position.
++ * @param offset VRAM offset to be used.
++ * @param x X Coordinate?
++ * @param y Y Coordinate?
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetFrontBuffer( int offset, int x, int y );
++
++ /**
++ * Enable/Disable the frontbuffer?
++ * @param enable 1 enables/ 0 disables
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetGraphicWindowOnOff( int enable );
++
++ /*
++ * Sets the foreground color.
++ * @param colour Color in 565 format (perhaps depends on the source format)
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetFrgColour( int colour );
++
++ /*
++ * Sets the background colour.
++ * @param colour Colour in 565 format (perhaps depends on the source format)
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_SetBkgColour( int colour );
++
++ /**
++ * Changes the painting brush
++ * @param btype Type of brush to use
++ * 4: Uses the pattern
++ * 6: SolidLine
++ * @param pattern Pointer to a 32 bit pattern
++ * @return 1:success, 0:fail
++ * @test Some values for btype produces a kind of antialiasing line
++ */
++ int AtiCore_BrushType( int btype, unsigned int *pattern );
++
++ /**
++ * Performs a rectangle paint.
++ * @param nrects Number of rectangles to be painted
++ * @param rects Array of rectangles to be painted
++ * @return 1:success, 0:fail
++ * @test Tested with nrects==1
++ */
++ int AtiCore_PaintRect( int nrects ,
++ ATI_RECT rects[] );
++
++ /**
++ * Draws a set of lines.
++ * @param npoints Number of points in the polyline set
++ * @param points Pointer to an array of ATI_POINT
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_Polyline( int npoints, ATI_POINT points[] );
++
++ int AtiCore_GetPitchOffsetProperty( void *, void *);
++
++ int AtiCore_CursorOnOff( int, int );
++
++ /**
++ * Performs a BitBlt ROP operation.
++ * @param unk Unknown (Always set to 1)
++ * @param dstrect Bounding destination rect
++ * @param srcrect Bounding source rect
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_BitBlt( int unk,
++ ATI_RECT *dstrect,
++ ATI_RECT *srcrect );
++
++ /**
++ * Performs a Transparent BitBlt ROP operation.
++ * @param dstrect Transparent DstRect bitblt argument
++ * @param srcrect Transparent SrcRect bitblt argument
++ * @return 1:success, 0:fail
++ * @test Doesn't work. It sets to zero CLR_CMP_CNTL and CLR_CMP_MSK
++ */
++ int AtiCore_TransBitBlt( transbitblt_t *dstrect,
++ transbitblt_t *srcrect );
++
++ int AtiCore_WakeUpCall( void );
++
++ /**
++ * Draws a set of pixels
++ * @param npoints Number of points to draw
++ * @param points Pointer to an array of ATI_POINT
++ * @return 1:success, 0:fail
++ */
++ int AtiCore_DrawPixel( int npoints, ATI_POINT *points );
++
++ int AtiCore_SetSysClk( unsigned short in0 );
++ int AtiCore_SetFastSysClk( unsigned short in0 );
++ int AtiCore_SetSlowSysClk( unsigned short in0 );
++
++ int AtiCore_GetCursorPos( unsigned long in0,
++ unsigned short *x,
++ unsigned short *y );
++
++
++
++/* ================================================================ */
++/* from libqte.so.2.3.2 */
++/*
++AtiCore_AlphaBlend
++
++AtiCore_Flush
++AtiCore_GammaCorrection
++AtiCore_GetCRC
++AtiCore_GetCursorPos
++AtiCore_GetDeviceInfo
++AtiCore_GetGPIO_Data
++AtiCore_GetGraphicExtended
++AtiCore_GetGraphicWindowPos
++AtiCore_GetLargestVideoMemBlock
++AtiCore_GetLastError
++AtiCore_GetMultiCRC
++AtiCore_GetOverlayPos
++AtiCore_Host
++AtiCore_LoadCursorBitMap
++AtiCore_PolyScanline
++AtiCore_ProcessAttachMinimal(void)?
++AtiCore_ProcessDetachMinimal(void)?
++AtiCore_ProcessDetachSpecialMode
++AtiCore_ReadCfgReg
++AtiCore_ReadMem(int, int)?
++AtiCore_ReadReg(int, int)?
++AtiCore_ScanlineShading
++AtiCore_SetApertures
++AtiCore_SetBytePixelOrder
++AtiCore_SetCursorPos
++AtiCore_SetDisplayParameters
++AtiCore_SetDriverBehaviour
++AtiCore_SetGPIO_Data
++AtiCore_SetOverlayPosUsingGraphicWindowXY
++AtiCore_SetPartialCursor
++AtiCore_SetupGraphicExtended
++AtiCore_SetupPM4
++AtiCore_SmallText
++AtiCore_SubmitPM4Packet
++AtiCore_WriteCfgReg
++AtiCore_WriteMem
++AtiCore_WriteReg
++ */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+--- /dev/null
++++ qt-2.3.10/src/kernel/qgfxw100_qws.cpp
+@@ -0,0 +1,2709 @@
++ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil -*- */
++/***************************************************************************
++
++** Imageon driver for qte using libAticore
++** Manuel Teira( 2005 )
++** BUGS
++* - Enable again internal memory surfaces.
++****************************************************************************/
++#include <unistd.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <errno.h>
++#include <string.h>
++#include <dirent.h>
++#include <fcntl.h>
++#include <sys/types.h>
++#include <sys/mman.h>
++#include <sys/time.h>
++#include <time.h>
++
++#include <sys/ipc.h>
++#include <sys/shm.h>
++
++#include <qapplication.h>
++
++#ifndef __sparc__
++#include <sys/io.h>
++#endif
++
++#include "qgfxraster_qws.h"
++#include "qgfxlinuxfb_qws.h"
++#include <aticore/aticore.h>
++
++#include <stdarg.h>
++
++class W100Driver {
++public:
++
++ typedef enum Loglevel {
++ ERROR = 0,
++ WARNING,
++ INFO
++ };
++
++ typedef enum Opcodes {
++ DRAWLINE = 0,
++ DRAWPOINT,
++ DRAWPOINTS,
++ FILLRECT,
++ SCROLL,
++ BITBLT,
++ POLYLINE,
++ EOO
++ };
++
++ typedef enum Retcodes {
++ codOK,
++ codError
++ };
++
++
++ typedef struct Opcode {
++ QString str;
++ int index;
++ bool accelerated;
++ int hits;
++ int misses;
++ };
++
++ static Opcode lOpcodes[];
++
++ static QString level2str( int level )
++ {
++ switch( level ) {
++ case ERROR:
++ return QString( "ERROR" );
++ break;
++ case WARNING:
++ return QString( "WARNING" );
++ break;
++ case INFO:
++ return QString( "INFO" );
++ break;
++ default:
++ return QString( "UNKNOWN" );
++ break;
++ }
++ }
++
++ W100Driver():
++ m_loglevel( 0 ),
++ m_logenabled( 0 ),
++ m_logcount( 0 ),
++ m_attached( false )
++ {
++ m_pid = getpid();
++ m_loglevel = 0;
++ char *var;
++ if ( var = getenv( "W100_DEBUG" ) ) {
++ if ( strtol( var, 0, 0 ) == 1 ) {
++ m_logenabled = 1;
++ }
++ }
++
++ if ( m_logenabled ) {
++ if ( var = getenv( "W100_DEBUGLEVEL" ) ) {
++ if ( ( m_loglevel = strtol( var, 0, 0 ) ) < 0 ) {
++ m_loglevel = 0;
++ }
++ }
++
++ QString path( "/mnt/card/w100/w100debug.log" );
++ if ( var = getenv( "W100_DEBUGPATH" ) ) {
++ path = QString( var ) + "/w100debug.log";
++ }
++ m_logfile = fopen( path.latin1(), "a" );
++ if ( m_logfile == NULL ) m_logenabled = 0;
++ }
++
++ Opcode *opcodePtr = lOpcodes;
++ while ( opcodePtr->index != EOO ) {
++ QString varName = "W100_ACCEL_" + opcodePtr->str;
++ char *varPtr;
++ if ( ( varPtr = getenv( varName.latin1() ) ) ) {
++ if ( ( strtol( varPtr, NULL, 0 ) == 0 ) ||
++ ( strcmp( varPtr, "false" ) == 0 ) ) {
++ opcodePtr->accelerated = false;
++ }
++ }
++ opcodePtr++;
++ }
++ }
++
++ ~W100Driver()
++ {
++ //Dump statistics about any opcode
++ Opcode *opcodePtr = lOpcodes;
++ while ( opcodePtr->index != EOO ) {
++ log( WARNING, "Opcode %s. Accelerated=%s. Hits=%d. Misses=%d",
++ opcodePtr->str.latin1(),
++ opcodePtr->accelerated ? "true" : "false",
++ opcodePtr->hits,
++ opcodePtr->misses );
++ opcodePtr++;
++ }
++ if ( m_logenabled && m_logfile ) {
++ fclose( m_logfile );
++ }
++ }
++
++ bool accelerated( int opcode )
++ {
++ if ( !m_attached ) {
++ log( WARNING, "Asking for accelerated '%s' when not attached",
++ lOpcodes[opcode].str.latin1() );
++ return false;
++ }
++ if ( opcode < EOO ) {
++ if ( lOpcodes[opcode].accelerated ) {
++ return true;
++ } else {
++ log( WARNING, "Not accelerated '%s'",
++ lOpcodes[opcode].str.latin1() );
++ return false;
++ }
++ }
++ return false;
++ }
++
++ void addHit( int opcode )
++ {
++ lOpcodes[opcode].hits++;
++ }
++
++ void addMiss( int opcode )
++ {
++ lOpcodes[opcode].misses++;
++ }
++
++ void log( int level, const char *fmt, ... )
++ {
++ if ( m_logenabled && ( level <= m_loglevel ) ) {
++ timeval tv;
++ char buffer[1024];
++ va_list ap;
++ va_start( ap, fmt );
++ vsnprintf( buffer, 1023, fmt, ap );
++ va_end( ap );
++ gettimeofday( &tv, NULL );
++ fprintf( m_logfile, "(%010u.%06u)%d:%d:%s:%s\n",
++ tv.tv_sec, tv.tv_usec,
++ m_logcount++,
++ m_pid,
++ level2str( level ).latin1(),
++ buffer );
++ fflush( m_logfile );
++ }
++ }
++
++ bool attached( void ) const
++ {
++ return m_attached;
++ }
++
++ int processAttach( void )
++ {
++ if ( !m_attached ) {
++ if ( AtiCore_ProcessAttach() ) {
++ log( WARNING, "Process attached succesfully" );
++ m_attached = true;
++ return codOK;
++ } else {
++ log( WARNING, "Error attaching process" );
++ }
++ } else {
++ log( WARNING, "Process already attached" );
++ }
++ return codError;
++ }
++
++ int processDetach( void )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_ProcessDetach() ) {
++ log( WARNING, "Process detached succesfully" );
++ m_attached = false;
++ return codOK;
++ } else {
++ log( WARNING, "Error detaching process" );
++ }
++ } else {
++ log( WARNING, "Trying to detach while not attached" );
++ }
++ return codError;
++ }
++
++ int allocateSurface( uint16_t *handle, uint32_t *offset,
++ uint32_t size, uint32_t direction )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_AllocateSurface( handle, offset,
++ size, direction ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in allocateSurface" );
++ }
++ } else {
++ log( WARNING, "Trying to allocateSurface while not attached" );
++ }
++ return codError;
++ }
++
++ int destroySurface( uint16_t handle )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_DestroySurface( handle ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in destroySurface" );
++ }
++ } else {
++ log( WARNING, "Trying to destroySurface while not attached" );
++ }
++ return codError;
++ }
++
++ int drawPixel( int npoints, ATI_POINT *points )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_DrawPixel( npoints, points ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in drawPixel" );
++ }
++ } else {
++ log( WARNING, "Trying to drawPixel while not attached" );
++ }
++ return codError;
++ }
++
++ int setRopOperation( uint32_t rop )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetRopOperation( rop ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setRopOperation" );
++ }
++ } else {
++ log( WARNING, "Trying to setRopOperation while not attached" );
++ }
++ return codError;
++ }
++
++ int setDstType( uint32_t dtype )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetDstType( dtype ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setDstType" );
++ }
++ } else {
++ log( WARNING, "Trying to setDstType while not attached" );
++ }
++ return codError;
++ }
++
++ int setSrcType( uint32_t stype )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetSrcType( stype ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setSrcType" );
++ }
++ } else {
++ log( WARNING, "Trying to setSrcType while not attached" );
++ }
++ return codError;
++ }
++
++ int setSrcClippingRect( ATI_CLIPRECT *cliprect )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetSrcClippingRect( cliprect ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setSrcClippingRect" );
++ }
++ } else {
++ log( WARNING, "Trying to setSrcClippingRect while not attached" );
++ }
++ return codError;
++ }
++
++ int setDstClippingRect( ATI_CLIPRECT *cliprect )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetDstClippingRect( cliprect ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setDstClippingRect" );
++ }
++ } else {
++ log( WARNING, "Trying to setDstClippingRect while not attached" );
++ }
++ return codError;
++ }
++
++ int setSrcPitchOffset( int pitch, int offset )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetSrcPitchOffset( pitch, offset ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setSrcPitchOffset" );
++ }
++ } else {
++ log( WARNING, "Trying to setSrcPitchOffset while not attached" );
++ }
++ return codError;
++ }
++
++ int setDstPitchOffset( int pitch, int offset )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetDstPitchOffset( pitch, offset ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setDstPitchOffset" );
++ }
++ } else {
++ log( WARNING, "Trying to setDstPitchOffset while not attached" );
++ }
++ return codError;
++ }
++
++ int bitBltFlipRotate( int rot,
++ ATI_RECT *dstRect,
++ ATI_RECT *srcRect )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_BitBltFilpRotate( rot, dstRect, srcRect ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in bitBltFlipRotate" );
++ }
++ } else {
++ log( WARNING, "Trying to bitBltFlipRotate while not attached" );
++ }
++ return codError;
++ }
++
++ int stretchBlt( ATI_STRETCH *option,
++ ATI_POINT *point,
++ ATI_RECT *srcRect )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_StretchBlt( option, point, srcRect ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in stretchBlt" );
++ }
++ } else {
++ log( WARNING, "Trying to stretchBlt while not attached" );
++ }
++ return codError;
++ }
++
++ int waitComplete( int msec )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_WaitComplete( msec ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in waitComplete" );
++ }
++ } else {
++ log( WARNING, "Trying to waitComplete while not attached" );
++ }
++ return codError;
++ }
++
++ int allocOverlay( uint16_t *handle )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_AllocOverlay( handle ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in allocOverlay" );
++ }
++ } else {
++ log( WARNING, "Trying to allocOverlay while not attached" );
++ }
++ return codError;
++ }
++
++ int releaseOverlay( uint16_t handle )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_ReleaseOverlay( handle ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in releaseOverlay" );
++ }
++ } else {
++ log( WARNING, "Trying to releaseOverlay while not attached" );
++ }
++ return codError;
++ }
++
++ int setupOverlay( uint16_t handle, ATI_OVERLAYPROP *prop )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetupOverlay( handle, prop ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setupOverlay" );
++ }
++ } else {
++ log( WARNING, "Trying to setupOverlay while not attached" );
++ }
++ return codError;
++ }
++
++ int setupOverlayExtended( uint16_t handle,
++ ATI_EXTENDEDOVERLAYPROP *prop )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetupOverlayExtended( handle, prop ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setupOverlayExtended" );
++ }
++ } else {
++ log( WARNING, "Trying to setupOverlayExtended while not attached" );
++ }
++ return codError;
++ }
++
++ int setOverlayOnOff( uint16_t handle, int isShow )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetOverlayOnOff( handle, isShow ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setOverlayOnOff" );
++ }
++ } else {
++ log( WARNING, "Trying to setOverlayOnOff while not attached" );
++ }
++ return codError;
++ }
++
++ int setOverlayPos( uint16_t handle, uint16_t x, uint16_t y )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetOverlayPos( handle, x, y ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setOverlayPos" );
++ }
++ } else {
++ log( WARNING, "Trying to setOverlayPos while not attached" );
++ }
++ return codError;
++ }
++
++ int setupMemoryTransfer( uint32_t offset, uint32_t *regdata )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetupMemoryTransfer( offset, regdata ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setupMemoryTransfer" );
++ }
++ } else {
++ log( WARNING, "Trying to setupMemoryTransfer while not attached" );
++ }
++ return codError;
++ }
++
++ int terminateMemoryTransfer( void )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_TerminateMemoryTransfer() ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in terminateMemoryTransfer" );
++ }
++ } else {
++ log( WARNING, "Trying to terminateMemoryTransfer while not attached" );
++ }
++ return codError;
++ }
++
++ int getFrontBufferPitchOffset( uint32_t *pitch, uint32_t *offset )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_GetFrontBufferPitchOffset( pitch, offset ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in getFrontBufferPitchOffset" );
++ }
++ } else {
++ log( WARNING, "Trying to getFrontBufferPitchOffset while not attached" );
++ }
++ return codError;
++ }
++
++ int setDisplayBrightness( int bri )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetDisplayBrightness( bri ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setDisplayBrightness" );
++ }
++ } else {
++ log( WARNING, "Trying to setDisplayBrighness while not attached" );
++ }
++ return codError;
++ }
++
++ int getAvailableVideoMem( uint32_t *internal, uint32_t *external )
++ {
++ if ( m_attached ) {
++ if ( GetAvailableVideoMem( internal, external ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in getAvailableVideoMem" );
++ }
++ } else {
++ log( WARNING, "Trying to getAvailableVideoMem while not attached" );
++ }
++ return codError;
++ }
++
++ int setupGraphicWindow( ATI_GRAPHICWINDOW *win )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetupGraphicWindow( ( void * ) win ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setupGraphicWindow" );
++ }
++ } else {
++ log( WARNING, "Trying to setupGraphicWindow while not attached" );
++ }
++ return codError;
++ }
++
++ int processAttachSpecialMode( int mode )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_ProcessAttachSpecialMode( mode ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in processAttachSpecialMode" );
++ }
++ } else {
++ log( WARNING, "Trying to processAttachSpecialMode while not attached" );
++ }
++ return codError;
++ }
++
++ int processDetachSpecialMode( void )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_ProcessDetachSpecialMode() ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in processDetachSpecialMode" );
++ }
++ } else {
++ log( WARNING, "Trying to processDetachSpecialMode while not attached" );
++ }
++ return codError;
++ }
++
++ int setGraphicWindowPos( int x, int y )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetGraphicWindowPos( x, y ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setGraphicWindowPos" );
++ }
++ } else {
++ log( WARNING, "Trying to setGraphicWindow while not attached" );
++ }
++ return codError;
++ }
++
++ int setFrontBuffer( int offset, int a, int b )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetFrontBuffer( offset, a, b ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setFrontBuffer" );
++ }
++ } else {
++ log( WARNING, "Trying to setFrontBuffer while not attached" );
++ }
++ return codError;
++ }
++
++ int setGraphicWindowOnOff( int val )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetGraphicWindowOnOff( val ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setGraphicWindowOnOff" );
++ }
++ } else {
++ log( WARNING, "Trying to setGraphicWindowOnOff while not attached" );
++ }
++ }
++
++ static unsigned long ccolor( unsigned int rgb )
++ {
++ unsigned char r = ( rgb & 0xff0000 ) >> 19;
++ unsigned char g = ( rgb & 0xff00 ) >> 10;
++ unsigned char b = ( rgb & 0xff ) >> 3;
++ return ( ( ( ( unsigned short )0x1f & r ) << 11 ) |
++ ( ( ( unsigned short )0x3f & g ) << 5 ) |
++ ( ( ( unsigned short )0x1f & b ) ) );
++ }
++
++ int setFrgColour( int val )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_SetFrgColour( ccolor( val ) ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in setFrgColour" );
++ }
++ } else {
++ log( WARNING, "Trying to setFrgColour while not attached" );
++ }
++ return codError;
++ }
++
++ int brushType( int type, unsigned int pattern )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_BrushType( type, &pattern ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in brushType" );
++ }
++ } else {
++ log( WARNING, "Trying to brushType while not attached" );
++ }
++ return codError;
++ }
++
++ int paintRect( int flags, ATI_RECT *rect )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_PaintRect( flags, rect ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in paintRect" );
++ }
++ } else {
++ log( WARNING, "Trying to paintRect while not attached" );
++ }
++ return codError;
++ }
++
++ int polyline( int npoints, ATI_POINT *points )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_Polyline( npoints, points ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in polyline" );
++ }
++ } else {
++ log( WARNING, "Trying to polyline while not attached" );
++ }
++ return codError;
++ }
++
++ int getPitchOffsetProperty( void *pitch, void *offset )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_GetPitchOffsetProperty( pitch, offset ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in getPitchOffsetProperty" );
++ }
++ } else {
++ log( WARNING, "Trying to getPitchOffsetProperty while not attached" );
++ }
++ return codError;
++ }
++
++ int cursorOnOff( int a, int b )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_CursorOnOff( a, b ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in cursorOnOff" );
++ }
++ } else {
++ log( WARNING, "Trying to cursorOnOff while not attached" );
++ }
++ return codError;
++ }
++
++ int bitBlt( int flags, ATI_RECT *dst, ATI_RECT *src )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_BitBlt( flags, dst, src ) ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in bitBlt" );
++ }
++ } else {
++ log( WARNING, "Trying to bitBlt while not attached" );
++ }
++ return codError;
++ }
++
++ int wakeUpCall( void )
++ {
++ if ( m_attached ) {
++ if ( AtiCore_WakeUpCall() ) {
++ return codOK;
++ } else {
++ log( ERROR, "Error in wakeUpCall" );
++ }
++ } else {
++ log( WARNING, "Trying to wakeupCall while not attached" );
++ }
++ return codError;
++ }
++
++private:
++ FILE *m_logfile;
++ int m_loglevel;
++ bool m_logenabled;
++ bool m_attached;
++ int m_pid;
++ int m_logcount;
++};
++
++W100Driver::Opcode W100Driver::lOpcodes[] = {
++ { "DRAWLINE", W100Driver::DRAWLINE, true, 0, 0 },
++ { "DRAWPOINT", W100Driver::DRAWPOINT, true, 0, 0 },
++ { "DRAWPOINTS", W100Driver::DRAWPOINTS, true, 0, 0 },
++ { "FILLRECT", W100Driver::FILLRECT, true, 0, 0 },
++ { "SCROLL", W100Driver::SCROLL, true, 0, 0 },
++ { "BITBLT", W100Driver::BITBLT, true, 0, 0 },
++ { "POLYLINE", W100Driver::POLYLINE, true, 0, 0 },
++ { "" , W100Driver::EOO, false, 0, 0 }
++};
++
++W100Driver driver;
++
++class QW100Screen;
++static QW100Screen *qt_w100_screen = 0;
++
++class QW100Screen : public QLinuxFbScreen {
++public:
++ class HWSurface {
++ public:
++ HWSurface( void ):
++ m_handle( 0 ),
++ m_offset( 0 ),
++ m_addr( 0 ),
++ m_size( 0 ),
++ m_internal( false ),
++ m_clientid( -1 ) {};
++ HWSurface( unsigned short handle,
++ uint32_t sOffset,
++ unsigned char *localAddr,
++ int amount,
++ bool internal,
++ int clientid ):
++ m_handle( handle ),
++ m_offset( sOffset ),
++ m_addr( localAddr ),
++ m_size( amount ),
++ m_internal( internal ),
++ m_clientid( clientid ) {};
++ HWSurface( uint32_t sOffset,
++ unsigned char *localAddr,
++ bool internal,
++ int amount ):
++ m_handle( 0 ),
++ m_offset( sOffset ),
++ m_addr( localAddr ),
++ m_size( amount ),
++ m_internal( internal ),
++ m_clientid( -1 ) {};
++ bool operator!=( HWSurface &other ) {
++ return( m_offset == other.getSOffset() );
++ };
++ HWSurface &operator=( const HWSurface &c ) {
++ m_handle = c.getHandle();
++ m_offset = c.getSOffset();
++ m_addr = c.getAddr();
++ m_size = c.getSize();
++ m_clientid= c.getCId();
++ m_internal = c.internal();
++ return( *this );
++ };
++ unsigned short getHandle( void ) const { return m_handle; };
++ uint32_t getSOffset( void ) const { return m_offset; };
++ unsigned char *getAddr( void ) const { return m_addr; };
++ unsigned int getSize( void ) const { return m_size; };
++ int getCId( void ) const { return m_clientid; };
++ bool internal( void ) const { return m_internal; };
++
++ private:
++ unsigned short m_handle;
++ uint32_t m_offset;
++ unsigned char *m_addr;
++ int m_size;
++ bool m_internal;
++ int m_clientid;
++ };
++
++ QW100Screen( int display_id );
++ virtual ~QW100Screen();
++ virtual bool connect( const QString &spec );
++ virtual void disconnect( void );
++ virtual bool initDevice();
++ virtual void shutdownDevice();
++ virtual void restore();
++ virtual bool useOffscreen() { return true; }
++ virtual QGfx * createGfx( unsigned char *, int, int, int, int);
++ virtual uchar *cache( int amount, int optim );
++ virtual void uncache( uchar *c );
++ virtual bool onCard( unsigned char *p ) const;
++ virtual bool onCard( unsigned char *p, ulong& offset ) const;
++ QMap< uchar*, HWSurface > *getPSurfaceMap( void ) const;
++ void clearCache( int clientId );
++
++ // Suspend/resume hooks
++ virtual void prepareToSuspend();
++ virtual void prepareToResume();
++ // Rotation stuff
++ enum Transformation { None, Rot90, Rot180, Rot270 };
++ void setTransformation( Transformation t );
++ Transformation transformation() const;
++ virtual bool isTransformed() const { return trans != None; };
++ virtual QSize mapToDevice( const QSize & ) const;
++ virtual QSize mapFromDevice( const QSize & ) const;
++ virtual QPoint mapToDevice( const QPoint &, const QSize & ) const;
++ virtual QPoint mapFromDevice( const QPoint &, const QSize & ) const;
++ virtual QRect mapToDevice( const QRect &, const QSize & ) const;
++ virtual QRect mapFromDevice( const QRect &, const QSize & ) const;
++ virtual QImage mapToDevice( const QImage & ) const;
++ virtual QImage mapFromDevice( const QImage & ) const;
++ virtual QRegion mapToDevice( const QRegion &, const QSize & ) const;
++ virtual QRegion mapFromDevice( const QRegion &, const QSize & ) const;
++ virtual int transformOrientation() const;
++
++protected:
++ bool w100init();
++ void w100shutdown();
++ Transformation trans;
++ static Transformation getTransSpec( const QString &dspec );
++ static void clearCache( QScreen *instance, int clientId );
++ QMap< uchar*, HWSurface > surfaceMap;
++ int vramoffset;
++ bool m_isServer;
++ virtual int pixmapLinestepAlignment() { return 128; }
++};
++
++template <const int depth, const int type>
++class QGfxW100 : public QGfxRaster<depth,type> {
++
++public:
++ QGfxW100( unsigned char *b, int w, int h );
++ virtual void drawLine( int, int, int, int);
++ virtual void fillRect( int, int, int, int);
++ virtual void blt( int, int, int, int, int, int );
++ virtual void sync();
++ virtual void setOffset( int x, int y );
++ virtual void setPen( const QPen & p );
++
++ virtual void drawPolyline( const QPointArray &, int, int );
++ virtual void drawPolygon( const QPointArray &, bool, int, int );
++ virtual void drawPoint( int, int );
++ virtual void drawPoints( const QPointArray &, int, int );
++ virtual void scroll( int, int, int, int, int, int );
++ virtual void tiledBlt( int rx, int ry, int w, int h );
++
++ inline int tx( int x, int y ) {
++ switch ( qt_w100_screen->transformation() ) {
++ case QW100Screen::Rot90:
++ return y - this->xoffs + this->yoffs;
++ case QW100Screen::Rot180:
++ return ( this->width - x - 1) - this->xoffs - this->xoffs;
++ case QW100Screen::Rot270:
++ return ( this->height - y - 1) - this->xoffs - this->yoffs;
++ default:
++ return x;
++ }
++ }
++ inline int ty( int x, int y ) {
++ switch ( qt_w100_screen->transformation() ) {
++ case QW100Screen::Rot90:
++ return (this->width - x - 1) - this->yoffs - this->xoffs;
++ case QW100Screen::Rot180:
++ return (this->height - y - 1) - this->yoffs - this->yoffs;
++ case QW100Screen::Rot270:
++ return x - this->yoffs + this->xoffs;
++ default:
++ return y;
++ }
++ }
++
++protected:
++ bool checkDest( bool setsrc = false );
++ bool checkSourceDest();
++ virtual void setSourceWidgetOffset( int x, int y );
++ void processSpans( int n, QPoint* point, int* width );
++ bool inDraw;
++
++ virtual void dDrawLine( int, int, int, int);
++ virtual void dFillRect( int, int, int, int);
++ virtual void dBlt( int, int, int, int, int, int );
++ void dDrawPolyline( const QPointArray &, int, int );
++ void dDrawPolygon( const QPointArray &, bool, int, int );
++ void dDrawPoint( int, int );
++ void dDrawPoints( const QPointArray &, int, int );
++ void dScroll( int, int, int, int, int, int );
++ void dTiledBlt( int rx, int ry, int w, int h );
++};
++
++template<const int depth,const int type>
++QGfxW100<depth,type>::QGfxW100( unsigned char * b, int w, int h )
++ : QGfxRaster<depth,type>(b, w, h),
++ inDraw( false )
++{
++}
++
++template<const int depth,const int type>
++inline void QGfxW100<depth,type>::setOffset( int x, int y )
++{
++ QGfxRaster<depth,type>::setOffset( x, y );
++}
++
++namespace {
++ QString penStyleStr( const QPen &pen )
++ {
++ QString res;
++ switch( pen.style() ) {
++ case Qt::NoPen:
++ res = "NoPen";
++ break;
++ case Qt::SolidLine:
++ res = "SolidLine";
++ break;
++ case Qt::DashLine:
++ res = "DashLine";
++ break;
++ case Qt::DotLine:
++ res = "DotLine";
++ break;
++ case Qt::DashDotLine:
++ res = "DashDotLine";
++ break;
++ case Qt::DashDotDotLine:
++ res = "DashDotDotLine";
++ break;
++ default:
++ res = "Unknown";
++ }
++ return res;
++ }
++}
++
++template<const int depth, const int type>
++inline void QGfxW100<depth,type>::setPen( const QPen &p )
++{
++ QGfxRaster<depth,type>::setPen( p );
++}
++
++template<const int depth,const int type>
++inline bool QGfxW100<depth,type>::checkSourceDest()
++{
++ if ( !checkDest() ) {
++ return FALSE;
++ }
++
++ int sourcepixelpitch;
++ ulong src_buffer_offset;
++ if ( this->srctype == this->SourcePen ) {
++ src_buffer_offset = -1;
++ return FALSE;
++ } else {
++ if ( !qt_screen->onCard( this->srcbits, src_buffer_offset ) ) {
++ return FALSE;
++ }
++ sourcepixelpitch = ( this->srclinestep * 8 ) / this->srcdepth;
++ driver.setSrcPitchOffset( sourcepixelpitch,
++ src_buffer_offset );
++ }
++ return TRUE;
++}
++
++template< const int depth, const int type>
++inline bool QGfxW100<depth, type>::checkDest( bool setsrc )
++{
++ //Main framebuffer should be registered as a hardware surface
++ ulong buffer_offset;
++ if ( !qt_screen->onCard( this->buffer, buffer_offset ) ) {
++ return FALSE;
++ }
++ int pixelstep = ( this->linestep() * 8 ) / depth;
++ driver.setDstPitchOffset( pixelstep, buffer_offset );
++ if ( setsrc ) {
++ driver.setSrcPitchOffset( pixelstep, buffer_offset );
++ }
++ return TRUE;
++}
++
++template<const int depth,const int type>
++void QGfxW100<depth,type>::drawLine( int x1, int y1, int x2, int y2 )
++{
++ if ( inDraw ) {
++ dDrawLine( x1, y1, x2, y2 );
++ } else {
++ inDraw = true;
++ dDrawLine( tx(x1,y1), ty(x1,y1),
++ tx(x2,y2), ty(x2,y2) );
++ inDraw = false;
++ }
++}
++
++template<const int depth,const int type>
++void QGfxW100<depth,type>::dDrawLine( int x1, int y1, int x2, int y2 )
++{
++ if ( ( this->ncliprect < 1) ||
++ ( this->cpen.style() == this->NoPen ) ) {
++ return;
++ }
++
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::DRAWLINE ) ) {
++ driver.addMiss( W100Driver::DRAWLINE );
++ QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
++ return;
++ }
++
++ // Only handle 'normal' lines
++ if ( ( this->cpen.style() != this->SolidLine ) ||
++ ( this->myrop != this->CopyROP ) ||
++ ( this->cpen.width() > 1 ) ||
++ ( this->dashedLines ) ) {
++ driver.addMiss( W100Driver::DRAWLINE );
++ QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2);
++ return;
++ }
++
++ // Stop anyone else trying to access optype/lastop/the graphics engine
++ // to avoid synchronization problems with other processes
++ QWSDisplay::grab( true );
++ if ( !checkDest() ) {
++ QWSDisplay::ungrab();
++ driver.addMiss( W100Driver::DRAWLINE );
++ QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
++ return;
++ }
++
++
++ // Note that the last operation used the 2d engine
++ ( *optype ) = 1;
++
++ // Add the offset of the gfx - used to make the origin the right
++ // place for windows
++ x1 += this->xoffs;
++ y1 += this->yoffs;
++ x2 += this->xoffs;
++ y2 += this->yoffs;
++
++ QRect boundRect( x1 < x2 ? x1: x2,
++ y1 < y2 ? y1 : y2,
++ QABS( x2 - x1 ) + 1,
++ QABS( y2 - y1 ) + 1 );
++
++ GFX_START( boundRect );
++
++ // The clip region is defined as a series of rectangles
++ // We repeatedly set up the hardware clip rectangle to one of
++ // these rectangles and re-draw the line - an alternative approach
++ // would be to clip to the rectangle in software
++
++ driver.setDstType( DSTTYPE_16BPP_1555 );
++ driver.setSrcType( SRCTYPE_EQU_DST );
++ driver.setRopOperation( ROP3_PATCOPY );
++ driver.brushType( 6, 0 );
++ driver.setFrgColour( this->cpen.color().rgb() );
++ driver.addHit( W100Driver::DRAWLINE );
++
++ //The imageon seems not to write on the edge of the clip
++ //for the polyline op.
++ //We are using a three points array repeating the last point
++ //to get the last single point painted.
++ ATI_POINT points[3];
++ points[0].XCoord = x1;
++ points[0].YCoord = y1;
++ points[1].XCoord = x2;
++ points[1].YCoord = y2;
++ points[2].XCoord = x2;
++ points[2].YCoord = y2;
++ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ if ( boundRect.intersects( this->cliprect[loopc] ) ) {
++ ATI_CLIPRECT clip;
++ clip.X_Top_Left = this->cliprect[loopc].x();
++ clip.Y_Top_Left = this->cliprect[loopc].y();
++ clip.X_Bottom_Right = this->cliprect[loopc].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[loopc].bottom() + 1;
++ driver.setDstClippingRect( &clip );
++ driver.polyline( 3, points );
++ }
++ }
++
++ // Software mouse cursor stuff
++ GFX_END;
++
++ // Release display again - not doing so will cause Qt/Embedded applications
++ // to deadlock
++ QWSDisplay::ungrab();
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::drawPolyline( const QPointArray &a,
++ int index,
++ int npoints )
++{
++ if ( inDraw ) {
++ dDrawPolyline( a, index, npoints );
++ } else {
++ inDraw = true;
++ QPointArray na( npoints );
++
++ for ( int i = 0; i < npoints; i++ ) {
++ int x, y;
++ a.point( i+index, &x, &y );
++ na.setPoint( i, tx(x,y), ty(x,y) );
++ }
++
++ dDrawPolyline( na, 0, npoints );
++ inDraw = false;
++ }
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::dDrawPolyline( const QPointArray &a,
++ int index,
++ int npoints )
++{
++ if ( ( this->ncliprect < 1 ) ||
++ ( npoints < 1 ) ||
++ ( this->cpen.style() == this->NoPen ) ) {
++ return;
++ }
++
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::POLYLINE ) ) {
++ driver.addMiss( W100Driver::POLYLINE );
++ QGfxRaster<depth,type>::drawPolyline( a, index, npoints );
++ return;
++ }
++
++ if ( this->cpen.style() != this->SolidLine ||
++ this->myrop != this->CopyROP ) {
++ driver.addMiss( W100Driver::POLYLINE );
++ QGfxRaster<depth,type>::drawPolyline( a, index, npoints );
++ return;
++ }
++
++ QWSDisplay::grab( TRUE );
++ if ( !checkDest() ) {
++ QWSDisplay::ungrab();
++ driver.addMiss( W100Driver::POLYLINE );
++ QGfxRaster<depth,type>::drawPolyline( a, index, npoints );
++ return;
++ }
++
++ ( *optype ) = 1;
++
++ driver.setDstType( DSTTYPE_16BPP_1555 );
++ driver.setSrcType( SRCTYPE_EQU_DST );
++ driver.setRopOperation( ROP3_PATCOPY );
++ driver.brushType( 6, 0 );
++ driver.setFrgColour( this->cpen.color().rgb() );
++
++ driver.addHit( W100Driver::POLYLINE );
++
++ ATI_POINT *points = new ATI_POINT[ npoints + 1 ];
++
++ for ( int i = 0; i < npoints; i++ ) {
++ points[i].XCoord = a[i+index].x() + this->xoffs;
++ points[i].YCoord = a[i+index].y() + this->yoffs;
++ }
++ //Hack to get the last point of the last line painted
++ points[ npoints ] = points[ npoints - 1 ];
++
++
++ GFX_START( clipbounds );
++ driver.setFrgColour( this->cpen.color().rgb() );
++ driver.setRopOperation( ROP3_PATCOPY );
++ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ ATI_CLIPRECT clip;
++ clip.X_Top_Left = this->cliprect[loopc].x();
++ clip.Y_Top_Left = this->cliprect[loopc].y();
++ clip.X_Bottom_Right = this->cliprect[loopc].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[loopc].bottom() + 1;
++ driver.setDstClippingRect( &clip );
++ driver.polyline( npoints + 1, points );
++ }
++ GFX_END;
++
++ delete [] points;
++
++ QWSDisplay::ungrab();
++}
++
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::drawPolygon( const QPointArray &a,
++ bool w, int index,
++ int npoints )
++{
++ if ( inDraw || this->cpen.style()==this->NoPen || this->patternedbrush ) {
++ //slowpath
++ dDrawPolygon( a, w, index, npoints );
++ } else {
++ inDraw = TRUE;
++ QPointArray na( npoints );
++
++ for ( int i = 0; i < npoints; i++ ) {
++ int x,y;
++ a.point( i+index, &x, &y );
++ na.setPoint( i, tx(x,y), ty(x,y) );
++ }
++ dDrawPolygon( na, w, 0, npoints );
++ inDraw = FALSE;
++ }
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::dDrawPolygon( const QPointArray &a, bool w, int index, int npoints )
++{
++ QGfxRaster<depth,type>::drawPolygon( a, w, index, npoints );
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::drawPoint( int x, int y )
++{
++ dDrawPoint( tx( x, y ), ty( x, y ) );
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::dDrawPoint( int x, int y )
++{
++
++ if ( this->ncliprect < 1 ) {
++ return;
++ }
++
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::DRAWPOINT) ) {
++ driver.addMiss( W100Driver::DRAWPOINT );
++ QGfxRaster<depth,type>::drawPoint( x, y );
++ return;
++ }
++
++ if ( this->cpen.style() != this->SolidLine ||
++ this->myrop != this->CopyROP ) {
++ driver.addMiss( W100Driver::DRAWPOINT );
++ QGfxRaster<depth,type>::drawPoint( x, y );
++ return;
++ }
++
++ QWSDisplay::grab( TRUE );
++ if ( !checkDest() ) {
++ QWSDisplay::ungrab();
++ driver.addMiss( W100Driver::DRAWPOINT );
++ QGfxRaster<depth,type>::drawPoint( x, y );
++ return;
++ }
++
++ driver.addHit( W100Driver::DRAWPOINT );
++ ( *optype ) = 1;
++
++ ATI_POINT point;
++ point.XCoord = x + this->xoffs;
++ point.YCoord = y + this->yoffs;
++
++ GFX_START( clipbounds );
++ driver.setFrgColour( this->cpen.color().rgb() );
++ driver.setRopOperation( ROP3_PATCOPY );
++ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ ATI_CLIPRECT clip;
++ clip.X_Top_Left = this->cliprect[loopc].x();
++ clip.Y_Top_Left = this->cliprect[loopc].y();
++ clip.X_Bottom_Right = this->cliprect[loopc].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[loopc].bottom() + 1;
++ driver.setDstClippingRect( &clip );
++ driver.drawPixel( 1, &point );
++ }
++ GFX_END;
++ QWSDisplay::ungrab();
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::drawPoints( const QPointArray &a,
++ int index,
++ int npoints )
++{
++ QPointArray na( npoints );
++
++ for ( int i = 0; i < npoints; i++ ) {
++ int x, y;
++ a.point( i+index, &x, &y );
++ na.setPoint( i, tx( x, y ), ty( x, y ) );
++ }
++
++ dDrawPoints( na, 0, npoints );
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::dDrawPoints( const QPointArray &a,
++ int index,
++ int npoints )
++{
++ if ( ( this->ncliprect < 1 ) || ( npoints < 1 ) ) {
++ return;
++ }
++
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::DRAWPOINTS ) ) {
++ driver.addMiss( W100Driver::DRAWPOINTS );
++ QGfxRaster<depth,type>::drawPoints( a, index, npoints );
++ return;
++ }
++
++ if ( this->cpen.style() != this->SolidLine ||
++ this->myrop != this->CopyROP ) {
++ driver.addMiss( W100Driver::DRAWPOINTS );
++ QGfxRaster<depth,type>::drawPoints( a, index, npoints );
++ return;
++ }
++
++ QWSDisplay::grab( TRUE );
++ if ( !checkDest() ) {
++ QWSDisplay::ungrab();
++ driver.addMiss( W100Driver::DRAWPOINTS );
++ QGfxRaster<depth,type>::drawPoints( a, index, npoints );
++ return;
++ }
++
++ driver.addHit( W100Driver::DRAWPOINTS );
++ ( *optype ) = 1;
++
++ ATI_POINT *points = new ATI_POINT[ npoints ];
++ for ( int i = 0; i < npoints; i++ ) {
++ points[i].XCoord = a[i+index].x() + this->xoffs;
++ points[i].YCoord = a[i+index].y() + this->yoffs;
++ }
++
++ GFX_START( clipbounds );
++ driver.setFrgColour( this->cpen.color().rgb() );
++ driver.setRopOperation( ROP3_PATCOPY );
++ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ ATI_CLIPRECT clip;
++ clip.X_Top_Left = this->cliprect[loopc].x();
++ clip.Y_Top_Left = this->cliprect[loopc].y();
++ clip.X_Bottom_Right = this->cliprect[loopc].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[loopc].bottom() + 1;
++ driver.setDstClippingRect( &clip );
++ driver.drawPixel( npoints, points );
++ }
++ GFX_END;
++
++ delete [] points;
++ QWSDisplay::ungrab();
++}
++
++template <const int depth, const int type>
++void QGfxW100<depth,type>::scroll( int x, int y, int w, int h, int sx, int sy )
++{
++ if ( w == 0 || h == 0 )
++ return;
++ QRect r;
++ QRect s;
++ if ( inDraw ) {
++ r = QRect( x, y, w, h );
++ s = QRect( sx, sy, w, h );
++ } else {
++ r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
++ s.setCoords( tx(sx,sy), ty(sx,sy), tx(sx+w-1,sy+h-1), ty(sx+w-1,sy+h-1) );
++ r = r.normalize();
++ s = s.normalize();
++ }
++ dScroll( r.x(), r.y(), r.width(), r.height(), s.x(), s.y() );
++}
++
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::dScroll( int rx, int ry,
++ int w, int h,
++ int sx, int sy )
++{
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::SCROLL ) ) {
++ driver.addMiss( W100Driver::SCROLL );
++ QGfxRaster<depth,type>::scroll( rx, ry, w, h, sx, sy );
++ return;
++ }
++
++ if ( this->ncliprect < 1 ) return;
++
++ if ( ( w < 1 ) || ( h < 1 ) ) return;
++
++ int dy = sy - ry;
++ int dx = sx - rx;
++
++ if ( dx == 0 && dy == 0 ) return;
++
++
++ QWSDisplay::grab( TRUE );
++
++ if ( checkDest( true ) ) {
++
++ rx += this->xoffs;
++ sx += this->xoffs;
++ ry += this->yoffs;
++ sy += this->yoffs;
++
++ QRect boundRect( QMIN( rx , sx ),
++ QMIN( ry , sy ),
++ w + QABS( dx ) + 1,
++ h + QABS( dy ) + 1 );
++ GFX_START( boundRect );
++ ( *optype ) = 1;
++
++
++ //if ( driver.lastOp() != W100Driver::SCROLL ) {
++ driver.setRopOperation( ROP3_SRCCOPY );
++ driver.setDstType( DSTTYPE_16BPP_1555 );
++ driver.setSrcType( SRCTYPE_EQU_DST );
++ //}
++
++ driver.addHit( W100Driver::SCROLL );
++
++ ATI_RECT srcrect, dstrect;
++
++ srcrect.XCoord = sx;
++ srcrect.YCoord = sy;
++ srcrect.Width = w;
++ srcrect.Height = h;
++ dstrect.XCoord = rx;
++ dstrect.YCoord = ry;
++ dstrect.Width = w;
++ dstrect.Height = h;
++ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ if ( boundRect.intersects( this->cliprect[loopc] ) ) {
++ ATI_CLIPRECT clip;
++ clip.X_Top_Left = this->cliprect[ loopc ].x();
++ clip.Y_Top_Left = this->cliprect[ loopc ].y();
++ clip.X_Bottom_Right = this->cliprect[ loopc ].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[ loopc ].bottom() + 1;
++ driver.setDstClippingRect( &clip );
++ driver.bitBlt( 1, &dstrect, &srcrect );
++ }
++ }
++ GFX_END;
++ QWSDisplay::ungrab();
++
++ } else {
++ QWSDisplay::ungrab();
++ // software fallback
++ driver.addMiss( W100Driver::SCROLL );
++ QGfxRaster<depth,type>::scroll( rx, ry, w, h, sx, sy );
++ }
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::fillRect( int x, int y, int w, int h )
++{
++ if ( w == 0 || h == 0 )
++ return;
++ QRect r( x, y, w, h );
++ r.setCoords( tx( x, y ), ty( x, y ),
++ tx( x + w - 1, y + h - 1 ), ty( x + w - 1, y + h - 1 ) );
++ r = r.normalize();
++ inDraw = TRUE;
++ dFillRect( r.x(), r.y(), r.width(), r.height() );
++ inDraw = FALSE;
++}
++
++template< const int depth, const int type >
++void QGfxW100< depth, type>::dFillRect( int rx, int ry, int w, int h )
++{
++ if ( w <= 0 || h <= 0 || this->ncliprect < 1 ) return;
++
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::FILLRECT ) ) {
++ driver.addMiss( W100Driver::FILLRECT );
++ QGfxRaster<depth,type>::fillRect( rx, ry, w, h );
++ return;
++ }
++
++ if ( ( this->cbrush.style() != this->NoBrush ) &&
++ ( this->cbrush.style() != this->SolidPattern ) ) {
++ driver.addMiss( W100Driver::FILLRECT );
++ QGfxRaster<depth,type>::fillRect( rx, ry, w, h );
++ return;
++ }
++
++ if ( !checkDest() || ( this->myrop != this->CopyROP ) ) {
++ driver.addMiss( W100Driver::FILLRECT );
++ QGfxRaster<depth,type>::fillRect( rx, ry, w, h );
++ return;
++ }
++
++ QWSDisplay::grab( TRUE );
++ rx += this->xoffs;
++ ry += this->yoffs;
++
++ QRect boundRect( rx, ry, w + 1, h + 1 );
++ GFX_START( boundRect );
++
++ ( *optype ) = 1;
++
++ driver.setDstType( DSTTYPE_16BPP_1555 );
++ driver.setSrcType( SRCTYPE_EQU_DST );
++ driver.setRopOperation( ROP3_PATCOPY );
++ driver.brushType( 6, 0 );
++ driver.setFrgColour( this->cbrush.color().rgb() );
++
++ driver.addHit( W100Driver::FILLRECT );
++
++ if ( this->cbrush.style() != this->NoBrush ) {
++ //Using all the cliprects
++ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ if ( boundRect.intersects( this->cliprect[loopc] ) ) {
++ ATI_CLIPRECT clip;
++ ATI_RECT rect;
++
++ clip.X_Top_Left = this->cliprect[ loopc ].x();
++ clip.Y_Top_Left = this->cliprect[ loopc ].y();
++ clip.X_Bottom_Right = this->cliprect[ loopc ].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[ loopc ].bottom() + 1;
++
++ driver.setDstClippingRect( &clip );
++ rect.XCoord = rx;
++ rect.YCoord = ry;
++ rect.Width = w;
++ rect.Height = h;
++ driver.paintRect( 1, &rect );
++ }
++ }
++ }
++ GFX_END;
++
++ QWSDisplay::ungrab();
++}
++
++template <const int depth, const int type>
++void QGfxW100<depth,type>::blt( int x, int y, int w, int h, int sx, int sy )
++{
++ if ( w == 0 || h == 0 )
++ return;
++ QRect r;
++ int rsx;
++ int rsy;
++ if ( inDraw ) {
++ r = QRect( x, y, w, h );
++ rsx = sx;
++ rsy = sy;
++ } else {
++ r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
++ r = r.normalize();
++ switch ( qt_w100_screen->transformation() ) {
++ case QW100Screen::Rot90:
++ rsx = sy;
++ rsy = this->srcwidth - sx - w;
++ break;
++ case QW100Screen::Rot180:
++ rsx = this->srcwidth - sx - w;
++ rsy = this->srcheight - sy - h;
++ break;
++ case QW100Screen::Rot270:
++ rsx = this->srcheight - sy - h;
++ rsy = sx;
++ break;
++ default:
++ rsx = sx;
++ rsy = sy;
++ break;
++ }
++ }
++ dBlt( r.x(), r.y(), r.width(), r.height(), rsx, rsy );
++}
++
++template< const int depth, const int type >
++inline void QGfxW100< depth, type>::dBlt( int rx, int ry,
++ int w, int h,
++ int sx, int sy )
++{
++ if ( !w || !h || this->ncliprect < 1 ) {
++ return;
++ }
++
++ if ( depth != 16 ||
++ !driver.accelerated( W100Driver::BITBLT ) ) {
++ driver.addMiss( W100Driver::BITBLT );
++ QGfxRaster<depth,type>::blt( rx, ry, w, h, sx, sy );
++ return;
++ }
++
++ if ( this->alphatype == this->BigEndianMask ||
++ this->alphatype == this->LittleEndianMask ||
++ this->alphatype == this->SeparateAlpha ||
++ this->srctype == this->SourcePen ||
++ ( this->myrop != this->CopyROP ) ) {
++ driver.addMiss( W100Driver::BITBLT );
++ QGfxRaster<depth,type>::blt( rx, ry, w, h, sx, sy );
++ return;
++ }
++
++ if ( ( this->srcdepth != 16 ) || this->alphatype != this->IgnoreAlpha ) {
++ driver.addMiss( W100Driver::BITBLT );
++ QGfxRaster<depth,type>::blt( rx, ry, w, h, sx, sy );
++ return;
++ }
++
++ QWSDisplay::grab( TRUE );
++
++ if ( checkSourceDest() ) {
++ QRect boundRect( rx + this->xoffs, ry + this->yoffs,
++ w + 1, h + 1 );
++ GFX_START( boundRect );
++ ( *optype ) = 1;
++
++ driver.setRopOperation( ROP3_SRCCOPY );
++ driver.setDstType( DSTTYPE_16BPP_1555 );
++ driver.setSrcType( SRCTYPE_EQU_DST );
++
++ driver.addHit( W100Driver::BITBLT );
++
++ ATI_RECT rect1;
++ ATI_RECT rect2;
++
++ rx += this->xoffs;
++ ry += this->yoffs;
++
++ rect1.XCoord = this->srcwidgetoffs.x() + sx;
++ rect1.YCoord = this->srcwidgetoffs.y() + sy;
++ rect1.Width = w;
++ rect1.Height = h;
++ rect2.XCoord = rx;
++ rect2.YCoord = ry;
++ rect2.Width = w;
++ rect2.Height = h;
++ for(int loopc = 0; loopc < this->ncliprect; loopc++ ) {
++ if ( boundRect.intersects( this->cliprect[loopc] ) ) {
++ ATI_CLIPRECT clip;
++ clip.X_Top_Left = this->cliprect[ loopc ].x();
++ clip.Y_Top_Left = this->cliprect[ loopc ].y();
++ clip.X_Bottom_Right = this->cliprect[ loopc ].right() + 1;
++ clip.Y_Bottom_Right = this->cliprect[ loopc ].bottom() + 1;
++ driver.setDstClippingRect( &clip );
++ driver.bitBlt( 1, &rect2, &rect1 );
++ }
++ }
++ GFX_END;
++
++ QWSDisplay::ungrab();
++ return;
++ } else {
++ QWSDisplay::ungrab();
++ driver.addMiss( W100Driver::BITBLT );
++ QGfxRaster<depth,type>::blt( rx, ry,
++ w, h, sx, sy );
++ }
++}
++
++
++template <const int depth, const int type>
++void QGfxW100<depth,type>::tiledBlt( int rx,int ry,int w,int h )
++{
++ if ( w <= 0 || h <= 0 )
++ return;
++ QRect r;
++ if ( inDraw ) {
++ r = QRect(rx,ry,w,h);
++ } else {
++ r.setCoords( tx(rx,ry), ty(rx,ry), tx(rx+w-1,ry+h-1), ty(rx+w-1,ry+h-1) );
++ r = r.normalize();
++ }
++
++ inDraw = TRUE;
++
++ QPoint oldBrushOffs = this->brushoffs;
++ int brx, bry;
++ switch ( qt_w100_screen->transformation() ) {
++ case QW100Screen::Rot90:
++ brx = this->brushoffs.y();
++ bry = this->srcwidth - this->brushoffs.x() - w;
++ break;
++ case QW100Screen::Rot180:
++ brx = this->srcwidth - this->brushoffs.x() - w;
++ bry = this->srcheight - this->brushoffs.y() - h;
++ break;
++ case QW100Screen::Rot270:
++ brx = this->srcheight - this->brushoffs.y() - h;
++ bry = this->brushoffs.x();
++ break;
++ default:
++ brx = this->brushoffs.x();
++ bry = this->brushoffs.y();
++ break;
++ }
++ this->brushoffs = QPoint( brx, bry );
++
++ int oldsw = this->srcwidth;
++ int oldsh = this->srcheight;
++ QSize s = qt_screen->mapToDevice( QSize(this->srcwidth,this->srcheight) );
++ this->srcwidth = s.width();
++ this->srcheight = s.height();
++
++ dTiledBlt( r.x(), r.y(), r.width(), r.height() );
++
++ this->srcwidth = oldsw;
++ this->srcheight = oldsh;
++ this->brushoffs = oldBrushOffs;
++ inDraw = FALSE;
++}
++
++
++template <const int depth, const int type>
++void QGfxW100<depth,type>::dTiledBlt( int rx,int ry, int w,int h )
++{
++ if ( this->srcwidth == 0 || this->srcheight == 0 )
++ return;
++ QGfxRaster<depth,type>::tiledBlt( rx, ry, w, h );
++}
++
++template<const int depth,const int type>
++void QGfxW100<depth,type>::sync()
++{
++ driver.waitComplete( -1 );
++}
++
++template <const int depth, const int type>
++void QGfxW100<depth,type>::setSourceWidgetOffset(int x, int y)
++{
++ if ( this->srcbits == this->buffer ) {
++ switch ( qt_w100_screen->transformation() ) {
++ case QW100Screen::Rot90:
++ this->srcwidgetoffs = QPoint( y, this->width - x - this->srcwidth );
++ break;
++ case QW100Screen::Rot180:
++ this->srcwidgetoffs = QPoint( this->width - x - this->srcwidth, this->height - y - this->srcheight );
++ break;
++ case QW100Screen::Rot270:
++ this->srcwidgetoffs = QPoint( this->height - y - this->srcheight, x );
++ break;
++ default:
++ this->srcwidgetoffs = QPoint( x, y );
++ break;
++ }
++ } else {
++ this->srcwidgetoffs = QPoint( x, y );
++ }
++}
++
++template <const int depth, const int type>
++void QGfxW100<depth,type>::processSpans( int n, QPoint* point, int* width )
++{
++ if ( inDraw ||
++ this->patternedbrush &&
++ this->srcwidth != 0 &&
++ this->srcheight != 0 ) {
++ //in the patternedbrush case, we let blt do the transformation
++ // so we leave inDraw false.
++ QGfxRaster<depth,type>::processSpans( n, point, width );
++ } else {
++ inDraw = true;
++ while (n--) {
++ if ( *width > 0 ) {
++ int x=tx(point->x(),point->y())+this->xoffs;
++ int y=ty(point->x(),point->y())+this->yoffs;
++
++ switch( qt_w100_screen->transformation() ) {
++ case QW100Screen::Rot90:
++ this->vline( x, y-(*width-1), y );
++ break;
++ case QW100Screen::Rot180:
++ this->hline( x - (*width-1), x, y );
++ break;
++ case QW100Screen::Rot270:
++ this->vline( x, y, y+*width-1 );
++ break;
++ default:
++ this->hline( x, x+*width-1, y );
++ break;
++ }
++ }
++ point++;
++ width++;
++ }
++ inDraw = false;
++ }
++}
++
++QW100Screen::QW100Screen( int display_id )
++ :QLinuxFbScreen( display_id ),
++ vramoffset( 0 ),
++ m_isServer( false )
++{
++ qt_w100_screen = this;
++ vramoffset = 0;
++ clearCacheFunc = &clearCache;
++ trans = None;
++}
++
++static const char *trans2str( QW100Screen::Transformation t )
++{
++ switch( t ) {
++ case QW100Screen::None:
++ return "None";
++ break;
++ case QW100Screen::Rot90:
++ return "Rot90";
++ break;
++ case QW100Screen::Rot180:
++ return "Rot180";
++ break;
++ case QW100Screen::Rot270:
++ return "Rot270";
++ break;
++ default:
++ return "Unknown";
++ break;
++ }
++}
++
++QW100Screen::Transformation QW100Screen::getTransSpec( const QString &dspec )
++{
++ Transformation mytrans = None;
++ if ( dspec.find( ":Rot270" ) >= 0 ) {
++ mytrans = Rot270;
++ } else if ( dspec.find( ":Rot180" ) >= 0 ) {
++ mytrans = Rot180;
++ } else if ( dspec.find( ":Rot90" ) >= 0 ) {
++ mytrans = Rot90;
++ }
++ return mytrans;
++}
++
++bool QW100Screen::connect( const QString &displaySpec )
++{
++ driver.log( W100Driver::WARNING, "QW100Screen::connect('%s')",
++ displaySpec.latin1() );
++ trans = getTransSpec( displaySpec );
++
++ if ( QLinuxFbScreen::connect( displaySpec ) ) {
++ vramoffset = ( w == 320 ) ? 0 : 0x0f000000;
++ if ( driver.processAttach() == W100Driver::codOK ) {
++ driver.processAttachSpecialMode( ( w == 480 ) ? 0xaaab : 0xaaaa );
++ surfaceMap.clear();
++ surfaceMap.insert( 0, HWSurface( vramoffset,
++ data , false,
++ w*h*d/8 ) );
++ canaccel = true;
++ QSize s = mapFromDevice( QSize( w, h ) );
++ w = s.width();
++ h = s.height();
++ return true;
++ }
++ }
++ return false;
++}
++
++void QW100Screen::disconnect( void )
++{
++ driver.log( W100Driver::WARNING, "QW100Screen::disconnect()" );
++ driver.processDetachSpecialMode();
++ driver.processDetach();
++ QLinuxFbScreen::disconnect();
++ printf( "[%d]QW100Screen disconnected with %d surfaces\n",
++ getpid(), surfaceMap.count() );
++ surfaceMap.clear();
++}
++
++void QW100Screen::prepareToSuspend( void )
++{
++
++ driver.log( W100Driver::WARNING,
++ "QW100Screen::prepareToSuspend. Server = %s",
++ m_isServer ? "true" : "false" );
++
++ QWSDisplay::grab( true );
++ driver.waitComplete( -1 );
++
++ if ( !driver.attached() ) {
++ driver.log( W100Driver::ERROR, "Driver was not attached. " );
++ } else {
++ driver.processDetachSpecialMode();
++ driver.processDetach();
++ }
++ QWSDisplay::ungrab();
++
++ driver.log( W100Driver::WARNING, "prepareToSuspend done" );
++
++}
++
++void QW100Screen::prepareToResume( void )
++{
++
++ driver.log( W100Driver::WARNING,
++ "QW100Screen::prepareToResume. Server = %s",
++ m_isServer ? "true": "false" );
++
++ driver.processAttach();
++ driver.processAttachSpecialMode( ( w == 480 ) ? 0xaaab : 0xaaaa );
++ if ( m_isServer ) {
++ QWSDisplay::grab( true );
++ w100init();
++ QWSDisplay::ungrab();
++ driver.log( W100Driver::WARNING, "W100 restarted" );
++ }
++ driver.log( W100Driver::WARNING, "prepareToResume done" );
++
++}
++
++QW100Screen::~QW100Screen()
++{
++}
++
++bool QW100Screen::w100init()
++{
++ driver.log( W100Driver::WARNING,
++ "QW100Screen::w100init(%dx%d)", dw, dh );
++ ATI_GRAPHICWINDOW win;
++ ATI_CLIPRECT clip;
++ uint16_t overlay;
++
++ win.dummy1 = 0;
++ win.Size.XCoord = 0;
++ win.Size.YCoord = 0;
++ win.Size.Width = dw;
++ win.Size.Height = dh;
++ win.Width = dw > dh ? dh : dw;
++ win.Height = dw > dh ? dw : dh;
++ win.Flag = DSTTYPE_16BPP_444;
++
++ driver.waitComplete( -1 );
++ driver.setGraphicWindowOnOff( 0 );
++
++ driver.setupGraphicWindow( &win );
++ driver.setGraphicWindowPos( 0, 0 );
++
++ driver.setFrontBuffer( vramoffset, 0, 0 );
++ driver.setDstPitchOffset( dw, vramoffset );
++ driver.setDstType( DSTTYPE_16BPP_444 );
++ driver.setSrcPitchOffset( dw, vramoffset );
++ driver.setSrcType( SRCTYPE_SOLID_COLOR_BLT );
++ clip.X_Top_Left = 0;
++ clip.Y_Top_Left = 0;
++ clip.X_Bottom_Right = dw;
++ clip.Y_Bottom_Right = dh;
++ driver.setDstClippingRect( &clip );
++
++ clip.X_Top_Left = 0xE000;
++ clip.Y_Top_Left = 0xE000;
++ clip.X_Bottom_Right = 0x1FFF;
++ clip.Y_Bottom_Right = 0x1FFF;
++
++ driver.setSrcClippingRect( &clip );
++
++ driver.setRopOperation( ROP3_SRCCOPY );
++ driver.setGraphicWindowOnOff( 1 );
++ driver.allocOverlay( &overlay );
++ driver.setOverlayOnOff( overlay, 0 );
++ driver.releaseOverlay( overlay );
++ driver.setDstPitchOffset( dw, vramoffset );
++ driver.setDstClippingRect( NULL );
++ for ( int i = 0; i < dw * dh ; i++ ) {
++ *( data + i ) = 0;
++ }
++ driver.waitComplete( -1 );
++ return true;
++}
++
++void QW100Screen::w100shutdown()
++{
++}
++
++bool QW100Screen::initDevice()
++{
++ QWSDisplay::grab( true );
++ driver.log( W100Driver::WARNING, "initDevice( dw=%d, dh=%d )",
++ dw, dh );
++ m_isServer = true;
++
++ if ( !w100init() ) {
++ QWSDisplay::ungrab();
++ return false;
++ }
++
++ if ( QLinuxFbScreen::initDevice() ) {
++ //HACK
++ //Some sprite corruption seems to be avoided
++ //reserving some upper memory on the offscreen framebuffer memory
++ QLinuxFbScreen::cache( 65535 * 2, 0 );
++ QWSDisplay::ungrab();
++ return true;
++ }
++ QWSDisplay::ungrab();
++ return false;
++}
++
++void QW100Screen::shutdownDevice()
++{
++ driver.log( W100Driver::WARNING, "Shutting down device" );
++ QLinuxFbScreen::shutdownDevice();
++}
++
++void QW100Screen::restore()
++{
++ driver.log( W100Driver::WARNING, "Restoring W100..." );
++ QLinuxFbScreen::restore();
++ driver.log( W100Driver::WARNING, "Restoring done" );
++}
++
++
++QGfx *QW100Screen::createGfx( unsigned char *b,
++ int w, int h, int d, int linestep )
++{
++ //We need ALL the gfx created to be QGfxW100 to allow software
++ //drawing syncing after hardware operations
++ QGfx * ret=0;
++ if ( false ) {
++#ifndef QT_NO_QWS_DEPTH_1
++ } else if ( d == 1 ) {
++ ret = new QGfxW100<1,0>( b, w, h );
++#endif
++#ifndef QT_NO_QWS_DEPTH_4
++ } else if ( d == 4 ) {
++ ret = new QGfxW100<4,0>( b, w, h );
++#endif
++#ifndef QT_NO_QWS_DEPTH_8
++ } else if ( d == 8 ) {
++ ret = new QGfxW100<8,0>( b, w, h );
++#endif
++#ifndef QT_NO_QWS_DEPTH_16
++ } else if ( d == 16 ) {
++ ret = new QGfxW100<16,0>( b, w, h );
++#endif
++#ifndef QT_NO_QWS_DEPTH_24
++ } else if ( d == 24 ) {
++ ret = new QGfxW100<24,0>( b, w, h );
++#endif
++#ifndef QT_NO_QWS_DEPTH_32
++ } else if ( d == 32 ) {
++ ret = new QGfxW100<32,0>( b, w, h );
++#endif
++ } else {
++ qFatal( "Unsupported depth %d\n", d );
++ ret = 0;
++ }
++
++ ret->setLineStep( linestep );
++ return ret;
++}
++
++
++uchar *QW100Screen::cache( int amount, int optim )
++{
++ unsigned short hSurface = 0;
++ uint32_t surfaceOffset = 0;
++ uchar* localAddr = 0;
++ bool internal = false;
++
++ /* The size must have 0xF bit zeroed (16 multiple)*/
++ /* Perhaps this is not needed anymore, after setting
++ * QW100Screen::pixmapLinestepAlignment to 128
++ */
++ amount = ( amount & 0x0F ) ? ( amount | 0x10 ) & ~0x0F : amount;
++
++ /* Experimenting memory corruption with the
++ * internal AtiCore memory allocation routines
++ * disabled for now
++ */
++#if 1
++ if ( !( localAddr = QLinuxFbScreen::cache( amount, optim ) ) ) {
++ return( 0 );
++ }
++ surfaceOffset = vramoffset + ( uint32_t ) localAddr - ( uint32_t )data;
++
++#else
++ int retcode = 0;
++ qt_fbdpy->grab( true );
++ retcode = driver.allocateSurface( &hSurface,
++ &surfaceOffset,
++ amount, 1 );
++ qt_fbdpy->ungrab();
++ if ( retcode ) {
++ internal = true;
++ driver.setupMemoryTransfer( surfaceOffset,
++ (uint32_t*) &localAddr );
++ driver.terminateMemoryTransfer();
++ } else {
++ // Try to use the offscreen framebuffer memory
++ // to allocate the surface. Use the qgfxlinuxfb routines
++ if ( !( localAddr = QLinuxFbScreen::cache( amount, optim ) ) ) {
++ return( 0 );
++ }
++ //Distance between physical vram start and surface should be
++ //the same than distance between logical addresses
++ surfaceOffset = vramoffset + ( uint32_t ) localAddr - ( uint32_t ) data;
++ }
++#endif
++
++ HWSurface surface( hSurface, surfaceOffset,
++ localAddr, amount,
++ internal,
++ qws_client_id );
++ surfaceMap.insert( surface.getAddr(), surface );
++ return( ( uchar* ) localAddr );
++}
++
++void QW100Screen::uncache( uchar *c )
++{
++ QMap< uchar*, HWSurface >::Iterator itr;
++ if ( ( itr = surfaceMap.find( c ) ) != surfaceMap.end() ) {
++ driver.waitComplete( -1 );
++ if ( itr.data().internal() ) {
++ qt_fbdpy->grab( true );
++ driver.destroySurface( itr.data().getHandle() );
++ qt_fbdpy->ungrab();
++ } else {
++ QLinuxFbScreen::uncache( c );
++ }
++ surfaceMap.remove( itr );
++ }
++}
++
++bool QW100Screen::onCard( uchar *p ) const
++{
++ QMap< uchar*, HWSurface >::ConstIterator itr = surfaceMap.begin();
++ for ( ; itr != surfaceMap.end(); itr++ ) {
++ uchar *begin;
++ if ( ( begin = itr.data().getAddr() ) <= p ) {
++ if ( ( itr.data().getSize() + begin ) >= p ) {
++ return TRUE;
++ }
++ }
++ }
++ return FALSE;
++}
++
++bool QW100Screen::onCard( unsigned char *p, ulong& offset ) const
++{
++ QMap< uchar*, HWSurface >::ConstIterator itr;
++ for ( itr = surfaceMap.begin(); itr != surfaceMap.end(); itr++ ) {
++ uchar *begin;
++ if ( ( begin = itr.data().getAddr() ) <= p ) {
++ if ( ( itr.data().getSize() + begin ) >= p ) {
++ offset = itr.data().getSOffset() + ( p - begin );
++ return TRUE;
++ }
++ }
++ }
++ return FALSE;
++}
++
++QMap< uchar*, QW100Screen::HWSurface >
++*QW100Screen::getPSurfaceMap( void ) const
++{
++ return ( QMap<uchar*,HWSurface> *) &surfaceMap;
++}
++
++void QW100Screen::clearCache( int clientId )
++{
++ printf( "[%d] CLEARING CACHE FOR %d\n", getpid(), clientId );
++ driver.log( W100Driver::WARNING, "Cleaning cache for '%d'", clientId );
++ QMap< uchar*, HWSurface >::Iterator itr = surfaceMap.begin();
++ while ( itr != surfaceMap.end() ) {
++ if ( itr.data().getCId() == clientId ) {
++ if ( itr.data().internal() ) {
++ qt_fbdpy->grab();
++ driver.destroySurface( itr.data().getHandle() );
++ qt_fbdpy->ungrab();
++ }
++ surfaceMap.remove( itr );
++ }
++ itr++;
++ }
++ QLinuxFbScreen::clearCache( this, clientId );
++}
++
++void QW100Screen::clearCache( QScreen *instance, int clientId )
++{
++ QW100Screen *screen = reinterpret_cast<QW100Screen *> ( instance );
++ screen->clearCache( clientId );
++}
++
++void QW100Screen::setTransformation( Transformation t )
++{
++ qt_fbdpy->grab( true );
++ trans = t;
++
++ QSize s = mapFromDevice( QSize( dw,dh ) );
++ w = s.width();
++ h = s.height();
++ qt_fbdpy->ungrab();
++}
++
++QW100Screen::Transformation QW100Screen::transformation( void ) const
++{
++ return trans;
++}
++
++QSize QW100Screen::mapToDevice( const QSize &s ) const
++{
++ if ( trans == Rot90 || trans == Rot270 ) {
++ return QSize( s.height(), s.width() );
++ }
++
++ return s;
++}
++
++QSize QW100Screen::mapFromDevice( const QSize &s ) const
++{
++ if ( trans == Rot90 || trans == Rot270 ) {
++ return QSize( s.height(), s.width() );
++ }
++
++ return s;
++}
++
++QPoint QW100Screen::mapToDevice( const QPoint &p, const QSize &s ) const
++{
++ QPoint rp( p );
++
++ switch ( trans ) {
++ case Rot90:
++ rp.setX( p.y() );
++ rp.setY( s.width() - p.x() - 1 );
++ break;
++ case Rot180:
++ rp.setX( s.width() - p.x() - 1 );
++ rp.setY( s.height() - p.y() - 1 );
++ break;
++ case Rot270:
++ rp.setX( s.height() - p.y() - 1 );
++ rp.setY( p.x() );
++ break;
++ default:
++ break;
++ }
++
++ return rp;
++}
++
++QPoint QW100Screen::mapFromDevice( const QPoint &p, const QSize &s ) const
++{
++ QPoint rp( p );
++
++ switch ( trans ) {
++ case Rot90:
++ rp.setX( s.height() - p.y() - 1 );
++ rp.setY( p.x() );
++ break;
++ case Rot180:
++ rp.setX( s.width() - p.x() - 1 );
++ rp.setY( s.height() - p.y() - 1 );
++ break;
++ case Rot270:
++ rp.setX( p.y() );
++ rp.setY( s.width() - p.x() - 1 );
++ break;
++ default:
++ break;
++ }
++
++ return rp;
++}
++
++QRect QW100Screen::mapToDevice( const QRect &r, const QSize &s ) const
++{
++ QRect tr;
++ switch ( trans ) {
++ case Rot90:
++ tr.setCoords( r.y(), s.width() - r.x() - 1,
++ r.bottom(), s.width() - r.right() - 1 );
++ break;
++ case Rot180:
++ tr.setCoords( s.width() - r.x() - 1, s.height() - r.y() - 1,
++ s.width() - r.right() - 1, s.height() - r.bottom() - 1 );
++ break;
++ case Rot270:
++ tr.setCoords( s.height() - r.y() - 1, r.x(),
++ s.height() - r.bottom() - 1, r.right() );
++ break;
++ default:
++ tr = r;
++ break;
++ }
++
++ return tr.normalize();
++}
++
++QRect QW100Screen::mapFromDevice( const QRect &r, const QSize &s ) const
++{
++ QRect tr;
++ switch ( trans ) {
++ case Rot90:
++ tr.setCoords( s.height() - r.y() - 1, r.x(),
++ s.height() - r.bottom() - 1, r.right() );
++ break;
++ case Rot180:
++ tr.setCoords( s.width() - r.x() - 1, s.height() - r.y() - 1,
++ s.width() - r.right() - 1, s.height() - r.bottom() - 1 );
++ break;
++ case Rot270:
++ tr.setCoords( r.y(), s.width() - r.x() - 1,
++ r.bottom(), s.width() - r.right() - 1 );
++ break;
++ default:
++ tr = r;
++ break;
++ }
++
++ return tr.normalize();
++}
++
++template<class T>
++static inline void rotateLoopTemplate( uchar *src, int srcBytesPerLine,
++ uchar *dst, int dstBytesPerLine,
++ int width, int height,
++ QW100Screen::Transformation trans,
++ bool mapToDevice )
++{
++ int dstXAdd = 0;
++ int dstYAdd = 0;
++ int dstXOfs = 0;
++ int dstYOfs = 0;
++ int srcYAdd = srcBytesPerLine - width * sizeof(T);
++
++ if ( !mapToDevice ) {
++ if ( trans == QW100Screen::Rot90 )
++ trans = QW100Screen::Rot270;
++ else if ( trans == QW100Screen::Rot270 )
++ trans = QW100Screen::Rot90;
++ }
++
++ switch ( trans ) {
++ case QW100Screen::Rot90:
++ dstXOfs = 0;
++ dstYOfs = width - 1;
++ dstXAdd = -dstBytesPerLine;
++ dstYAdd = 1 * sizeof(T) + width * dstBytesPerLine;
++ break;
++ case QW100Screen::Rot270:
++ dstXOfs = height - 1;
++ dstYOfs = 0;
++ dstXAdd = dstBytesPerLine;
++ dstYAdd = -1 * sizeof(T) - width * dstBytesPerLine;
++ break;
++ default:
++ dstXOfs = width - 1;
++ dstYOfs = height - 1;
++ dstXAdd = -1 * sizeof(T);
++ dstYAdd = -dstBytesPerLine + width * sizeof(T);
++ break;
++ };
++
++ T *dstPtr = (T *)(dst + dstYOfs * dstBytesPerLine) + dstXOfs;
++ T *srcPtr = (T *)src;
++ for ( int y = 0; y < height; y++ ) {
++ for ( int x = 0; x < width; x++ ) {
++ *dstPtr = *srcPtr++;
++ dstPtr = (T *)((uchar*)dstPtr + dstXAdd); // add dstXAdd number of bytes
++ }
++ srcPtr = (T *)((uchar*)srcPtr + srcYAdd); // add srcYAdd number of bytes
++ dstPtr = (T *)((uchar*)dstPtr + dstYAdd); // add dstYAdd number of bytes
++ }
++}
++
++QImage QW100Screen::mapToDevice( const QImage &img ) const
++{
++ if ( img.isNull() || trans == None )
++ return img;
++
++ int iw = img.width();
++ int ih = img.height();
++ int w = iw;
++ int h = ih;
++ if ( trans == Rot90 || trans == Rot270 ) {
++ w = ih;
++ h = iw;
++ }
++
++ QImage rimg( w, h, img.depth(), img.numColors(), img.bitOrder() );
++
++ for ( int i = 0; i < img.numColors(); i++ ) {
++ rimg.colorTable()[i] = img.colorTable()[i];
++ }
++
++ // Optimized image rotation code for nice bit depths
++ int d = img.depth();
++ if ( d == 8 || d == 16 || d == 32 ) {
++ int srcBytesPerLine = img.bytesPerLine();
++ int dstBytesPerLine = rimg.bytesPerLine();
++ uchar *srcBits = img.bits();
++ uchar *dstBits = rimg.bits();
++ switch ( d ) {
++ case 8:
++ rotateLoopTemplate<uchar>( srcBits, srcBytesPerLine, dstBits, dstBytesPerLine, iw, ih, trans, TRUE );
++ break;
++ case 16:
++ rotateLoopTemplate<ushort>( srcBits, srcBytesPerLine, dstBits, dstBytesPerLine, iw, ih, trans, TRUE );
++ break;
++ case 32:
++ rotateLoopTemplate<uint>( srcBits, srcBytesPerLine, dstBits, dstBytesPerLine, iw, ih, trans, TRUE );
++ break;
++ }
++ rimg.setAlphaBuffer( img.hasAlphaBuffer() );
++ rimg.setOffset( img.offset() );
++ return rimg;
++ }
++
++ // Slower fall back code for image rotation for 1-bit and other depths
++#define ROTATE_LOOP( X, Y, VAL ) \
++ for ( int y = 0; y < ih; y++ ) { \
++ for ( int x = 0; x < iw; x++ ) { \
++ rimg.setPixel( X, Y, VAL ); \
++ } \
++ } \
++ break;
++
++ if ( img.depth() > 8 ) {
++ switch ( trans ) {
++ case Rot90:
++ ROTATE_LOOP( y, iw - x - 1, img.pixel(x, y) )
++ case Rot270:
++ ROTATE_LOOP( ih - y - 1, x, img.pixel(x, y) );
++ default:
++ ROTATE_LOOP( iw - x - 1, ih - y - 1, img.pixel(x, y) );
++ }
++ } else {
++ switch ( trans ) {
++ case Rot90:
++ ROTATE_LOOP( y, iw - x - 1, img.pixelIndex(x, y) );
++ case Rot270:
++ ROTATE_LOOP( ih - y - 1, x, img.pixelIndex(x, y) );
++ default:
++ ROTATE_LOOP( iw - x - 1, ih - y - 1, img.pixelIndex(x, y) );
++ }
++ }
++
++#undef ROTATE_LOOP
++
++ rimg.setAlphaBuffer( img.hasAlphaBuffer() );
++ rimg.setOffset( img.offset() );
++
++ return rimg;
++}
++
++QImage QW100Screen::mapFromDevice( const QImage &img ) const
++{
++ if ( img.isNull() || trans == None )
++ return img;
++
++ int iw = img.width();
++ int ih = img.height();
++ int w = iw;
++ int h = ih;
++ if ( trans == Rot90 || trans == Rot270 ) {
++ w = ih;
++ h = iw;
++ }
++
++ QImage rimg( w, h, img.depth(), img.numColors(), img.bitOrder() );
++
++ for ( int i = 0; i < img.numColors(); i++ ) {
++ rimg.colorTable()[i] = img.colorTable()[i];
++ }
++
++ // Optimized image rotation code for nice bit depths
++ int d = img.depth();
++ if ( d == 8 || d == 16 || d == 32 ) {
++ int srcBytesPerLine = img.bytesPerLine();
++ int dstBytesPerLine = rimg.bytesPerLine();
++ uchar *srcBits = img.bits();
++ uchar *dstBits = rimg.bits();
++ switch ( d ) {
++ case 8:
++ rotateLoopTemplate<uchar>( srcBits, srcBytesPerLine, dstBits, dstBytesPerLine, iw, ih, trans, FALSE );
++ break;
++ case 16:
++ rotateLoopTemplate<ushort>( srcBits, srcBytesPerLine, dstBits, dstBytesPerLine, iw, ih, trans, FALSE );
++ break;
++ case 32:
++ rotateLoopTemplate<uint>( srcBits, srcBytesPerLine, dstBits, dstBytesPerLine, iw, ih, trans, FALSE );
++ break;
++ }
++ rimg.setAlphaBuffer( img.hasAlphaBuffer() );
++ rimg.setOffset( img.offset() );
++ return rimg;
++ }
++
++ // Slower fall back code for image rotation for 1-bit and other depths
++#define ROTATE_LOOP( X, Y, VAL ) \
++ for ( int y = 0; y < ih; y++ ) { \
++ for ( int x = 0; x < iw; x++ ) { \
++ rimg.setPixel( X, Y, VAL ); \
++ } \
++ } \
++ break;
++
++ if ( img.depth() > 8 ) {
++ switch ( trans ) {
++ case Rot90:
++ ROTATE_LOOP( ih - y - 1, x, img.pixel(x, y) );
++ case Rot270:
++ ROTATE_LOOP( y, iw - x - 1, img.pixel(x, y) )
++ default:
++ ROTATE_LOOP( iw - x - 1, ih - y - 1, img.pixel(x, y) );
++ }
++ } else {
++ switch ( trans ) {
++ case Rot90:
++ ROTATE_LOOP( ih - y - 1, x, img.pixelIndex(x, y) );
++ case Rot270:
++ ROTATE_LOOP( y, iw - x - 1, img.pixelIndex(x, y) );
++ default:
++ ROTATE_LOOP( iw - x - 1, ih - y - 1, img.pixelIndex(x, y) );
++ }
++ }
++
++#undef ROTATE_LOOP
++
++ rimg.setAlphaBuffer( img.hasAlphaBuffer() );
++ rimg.setOffset( img.offset() );
++
++ return rimg;
++}
++
++QRegion QW100Screen::mapToDevice( const QRegion &rgn, const QSize &s ) const
++{
++ if ( trans == None )
++ return rgn;
++
++ QRegion trgn;
++ QArray<QRect> a = rgn.rects();
++ QRect tr;
++ const QRect *r = a.data();
++
++ int w = s.width();
++ int h = s.height();
++ int size = a.size();
++
++ switch ( trans ) {
++ case Rot270:
++ for ( int i = 0; i < size; i++, r++ ) {
++ tr.setCoords( h - r->y() - 1, r->x(),
++ h - r->bottom() - 1, r->right() );
++ trgn |= tr.normalize();
++ }
++ break;
++ case Rot90:
++ for ( int i = 0; i < size; i++, r++ ) {
++ tr.setCoords( r->y(), w - r->x() - 1,
++ r->bottom(), w - r->right() - 1 );
++ trgn |= tr.normalize();
++ }
++ break;
++ case Rot180:
++ for ( int i = 0; i < size; i++, r++ ) {
++ tr.setCoords( w - r->x() - 1, h - r->y() - 1,
++ w - r->right() - 1, h - r->bottom() - 1 );
++ trgn |= tr.normalize();
++ }
++ break;
++ default:
++ break;
++ }
++ return trgn;
++}
++
++QRegion QW100Screen::mapFromDevice( const QRegion &rgn, const QSize &s ) const
++{
++ if ( trans == None )
++ return rgn;
++
++ QRegion trgn;
++ QArray<QRect> a = rgn.rects();
++ const QRect *r = a.data();
++ QRect tr;
++
++ int w = s.width();
++ int h = s.height();
++ int size = a.size();
++
++ switch ( trans ) {
++ case Rot270:
++ for ( int i = 0; i < size; i++, r++ ) {
++ tr.setCoords( r->y(), w - r->x() - 1,
++ r->bottom(), w - r->right() - 1 );
++ trgn |= tr.normalize();
++ }
++ break;
++ case Rot90:
++ for ( int i = 0; i < size; i++, r++ ) {
++ tr.setCoords( h - r->y() - 1, r->x(),
++ h - r->bottom() - 1, r->right() );
++ trgn |= tr.normalize();
++ }
++ break;
++ case Rot180:
++ for ( int i = 0; i < size; i++, r++ ) {
++ tr.setCoords( w - r->x() - 1, h - r->y() - 1,
++ w - r->right() - 1, h - r->bottom() - 1 );
++ trgn |= tr.normalize();
++ }
++ break;
++ default:
++ break;
++ }
++
++ return trgn;
++}
++
++/*!
++ 0 = none
++ 1..3 = rotates 90..270
++ 4..7 = mirrored 0..3
++*/
++int QW100Screen::transformOrientation() const
++{
++ return (int)trans;
++}
++
++
++void qws_w100Transformation( int t )
++{
++ if ( qt_w100_screen ) {
++ qt_w100_screen->setTransformation( static_cast<QW100Screen::Transformation>( t ) );
++ }
++}
++
++extern bool qws_accel;
++
++extern "C" QScreen * qt_get_screen_w100( int display_id )
++{
++ return( new QW100Screen( display_id ) );
++}
+--- qt-2.3.10/src/kernel/qapplication_qws.cpp~w100
++++ qt-2.3.10/src/kernel/qapplication_qws.cpp
+@@ -1450,16 +1450,25 @@
+ extern void qws_clearLoadedFonts();
+ #endif
+
++#ifndef QT_NO_QWS_W100
++extern void qws_w100Transformation( int t );
++#endif
++
+ void QWSDisplay::setTransformation( int t )
+ {
+-#ifndef QT_NO_QWS_TRANSFORMED
++#if !defined(QT_NO_QWS_TRANSFORMED) || !defined(QT_NO_QWS_W100)
+ QRect mwr = qt_screen->mapToDevice(qt_maxWindowRect,
+ QSize(qt_screen->width(), qt_screen->height()) );
+
+ QPixmapCache::clear();
+ qws_clearLoadedFonts();
+ qws_mapPixmaps( TRUE );
++#ifndef QT_NO_QWS_TRANSFORMED
+ qws_setScreenTransformation( t );
++#endif
++#ifndef QT_NO_QWS_W100
++ qws_w100Transformation( t );
++#endif
+ qws_mapPixmaps( FALSE );
+
+ if ( qt_fbdpy->d->directServerConnection() ) {
diff --git a/recipes-qt/qte/qte-2.3.10/c7x0-w100-gcc4.patch b/recipes-qt/qte/qte-2.3.10/c7x0-w100-gcc4.patch
new file mode 100644
index 0000000..101f959
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/c7x0-w100-gcc4.patch
@@ -0,0 +1,31 @@
+diff --git a/src/kernel/qgfxw100_qws.cpp b/src/kernel/qgfxw100_qws.cpp
+index cbc42d6..b5dfe31 100644
+--- a/src/kernel/qgfxw100_qws.cpp
++++ b/src/kernel/qgfxw100_qws.cpp
+@@ -1250,7 +1250,7 @@ void QGfxW100< depth, type>::dDrawPolyline( const QPointArray &a,
+ points[ npoints ] = points[ npoints - 1 ];
+
+
+- GFX_START( clipbounds );
++ GFX_START( this->clipbounds );
+ driver.setFrgColour( this->cpen.color().rgb() );
+ driver.setRopOperation( ROP3_PATCOPY );
+ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
+@@ -1341,7 +1341,7 @@ void QGfxW100< depth, type>::dDrawPoint( int x, int y )
+ point.XCoord = x + this->xoffs;
+ point.YCoord = y + this->yoffs;
+
+- GFX_START( clipbounds );
++ GFX_START( this->clipbounds );
+ driver.setFrgColour( this->cpen.color().rgb() );
+ driver.setRopOperation( ROP3_PATCOPY );
+ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
+@@ -1413,7 +1413,7 @@ void QGfxW100< depth, type>::dDrawPoints( const QPointArray &a,
+ points[i].YCoord = a[i+index].y() + this->yoffs;
+ }
+
+- GFX_START( clipbounds );
++ GFX_START( this->clipbounds );
+ driver.setFrgColour( this->cpen.color().rgb() );
+ driver.setRopOperation( ROP3_PATCOPY );
+ for ( int loopc = 0; loopc < this->ncliprect; loopc++ ) {
diff --git a/recipes-qt/qte/qte-2.3.10/daemonize.patch b/recipes-qt/qte/qte-2.3.10/daemonize.patch
new file mode 100644
index 0000000..487a18c
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/daemonize.patch
@@ -0,0 +1,113 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041211/src/kernel/qapplication_qws.cpp~daemonize
++++ qt-2.3.9-snapshot-20041211/src/kernel/qapplication_qws.cpp
+@@ -104,6 +104,7 @@
+ #endif
+
+ #include <sys/time.h>
++#include <syslog.h>
+
+ #if defined(_OS_AIX_) && defined(_CC_GNU_)
+ #include <sys/select.h>
+@@ -163,6 +164,7 @@
+ //these used to be environment variables, they are initialized from
+ //environment variables in
+
++bool qws_daemon = TRUE;
+ bool qws_savefonts = FALSE;
+ bool qws_screen_is_interlaced=FALSE; //### should be detected
+ bool qws_shared_memory = FALSE;
+@@ -1686,6 +1688,10 @@
+ mwGeometry = argv[i];
+ } else if ( arg == "-shared" ) {
+ qws_shared_memory = TRUE;
++ } else if ( arg == "-daemon" ) {
++ qws_daemon = TRUE;
++ } else if ( arg == "-nodaemon" ) {
++ qws_daemon = FALSE;
+ } else if ( arg == "-noshared" ) {
+ qws_shared_memory = FALSE;
+ } else if ( arg == "-savefonts" ) {
+@@ -1742,6 +1748,78 @@
+ qt_appType = type;
+ qws_single_process = TRUE;
+
++ /* Daemonize the server process -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
++ * Added a new command line option which only is relevant if the application is created as a GuiServer.
++ * The option is -daemon respectively -nodaemon. If in daemon mode (which is the default now), the
++ * server will detach from the controlling terminal and continue as a daemon. This is done via the standard
++ * UNIX double fork magic.
++ */
++ if ( qws_daemon )
++ {
++ qWarning( "qt_init() - starting in daemon mode..." );
++
++ int pid1 = fork();
++ if ( pid1 == -1 )
++ {
++ qWarning( "qt_init() - can't perform initial fork: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( pid1 ) _exit( 0 ); // ok, first fork performed
++
++ chdir( "/" );
++ setsid();
++ umask(0);
++ close(0);
++ close(1);
++ close(2);
++
++ int fdnull = ::open( "/dev/null", O_RDWR );
++ if ( fdnull == -1 )
++ {
++ syslog( 3, "qt_init() - can't open /dev/null to redirect std{in|out|err}: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ dup2( fdnull, 0 ); // stdin
++ dup2( fdnull, 1 ); // stdout
++ dup2( fdnull, 2 ); // stderr
++
++ int pid2 = fork();
++ if ( pid2 == -1 )
++ {
++ syslog( 3, "qt_init() - can't perform initial fork: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( pid2 )
++ {
++ syslog( 4, "qt_init() [%d] - successfully entered daemon mode", pid2 );
++ _exit( 0 ); // ok, second fork performed
++ }
++ }
++
++ /*
++ * , ,
++ * /( )`
++ * \ \___ / | B E W A R E !
++ * /- _ `-/ ' We are a DAEMON now!
++ * (/\/ \ \ /\
++ * / / | ` \
++ * O O ) / |
++ * `-^--'`< '
++ * (_.) _ ) /
++ * `.___/` /
++ * `-----' /
++ * <----. __ / __ \
++ * <----|====O)))==) \) /====
++ * <----' `--' `.__,' \
++ * | |
++ * \ /
++ * ______( (_ / \______
++ * (FL) ,' ,-----' | \
++ * `--{__________) \/
++ *
++ */
++
++
+ /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
+ * Added a new command line option which only is relevant if the application is created as a GuiServer.
+ * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server.
diff --git a/recipes-qt/qte/qte-2.3.10/disable-dup-rotation.patch b/recipes-qt/qte/qte-2.3.10/disable-dup-rotation.patch
new file mode 100644
index 0000000..6874ba5
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/disable-dup-rotation.patch
@@ -0,0 +1,13 @@
+--- qte/src/kernel/kernelkeyboard.cpp 2008-05-26 16:25:23.000000000 +0100
++++ qte/src/kernel/kernelkeyboard.cpp 2008-05-26 16:27:52.000000000 +0100
+@@ -627,8 +627,10 @@
+ case Qt::Key_Down:
+ unicode = 0xffff;
+ mod_key = false;
++#if 0
+ if (qt_screen->isTransformed())
+ qtKeyCode = static_cast<Qt::Key>( xform_dirkey(static_cast<int>( qtKeyCode ) ) );
++#endif
+ break;
+ /*
+ * handle lock, we don't handle scroll lock!
diff --git a/recipes-qt/qte/qte-2.3.10/encoding.patch b/recipes-qt/qte/qte-2.3.10/encoding.patch
new file mode 100644
index 0000000..13a4828
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/encoding.patch
@@ -0,0 +1,34 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041211/src/tools/qstring.cpp~encoding
++++ qt-2.3.9-snapshot-20041211/src/tools/qstring.cpp
+@@ -14469,7 +14469,11 @@
+ return qt_winQString2MB( *this );
+ #endif
+ #ifdef _WS_QWS_
+- return utf8(); // ##### if there is ANY 8 bit format supported?
++ QTextCodec* codec = QTextCodec::codecForLocale();
++ return codec
++ ? codec->fromUnicode(*this)
++ : utf8();
++ //return latin1(); // ##### if there is ANY 8 bit format supported?
+ #endif
+ #endif
+ }
+@@ -14515,7 +14519,12 @@
+ return qt_winMB2QString( local8Bit );
+ #endif
+ #ifdef _WS_QWS_
+- return fromUtf8(local8Bit,len);
++ QTextCodec* codec = QTextCodec::codecForLocale();
++ if( len < 0) len = qstrlen(local8Bit);
++ return codec
++ ? codec->toUnicode(local8Bit, len)
++ : QString::fromUtf8(local8Bit,len);
++// return fromLatin1(local8Bit,len);
+ #endif
+ #endif // QT_NO_TEXTCODEC
+ }
diff --git a/recipes-qt/qte/qte-2.3.10/fix-errno-exception-spec.patch b/recipes-qt/qte/qte-2.3.10/fix-errno-exception-spec.patch
new file mode 100644
index 0000000..19a5c13
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-errno-exception-spec.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/kernel/qsoundqss_qws.cpp~fix-errno-exception-spec.patch
++++ qt-2.3.10/src/kernel/qsoundqss_qws.cpp
+@@ -51,8 +51,6 @@
+ #include <sys/ioctl.h>
+ #include <sys/soundcard.h>
+
+-extern int errno;
+-
+ #define QT_QWS_SOUND_16BIT 1 // or 0, or undefined for always 0
+ #define QT_QWS_SOUND_STEREO 1 // or 0, or undefined for always 0
+
diff --git a/recipes-qt/qte/qte-2.3.10/fix-linuxfb-offscreenoverflow.patch b/recipes-qt/qte/qte-2.3.10/fix-linuxfb-offscreenoverflow.patch
new file mode 100644
index 0000000..a604630
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-linuxfb-offscreenoverflow.patch
@@ -0,0 +1,22 @@
+Fix an overflow when the amount of requested cache memory
+is greater than the *lowest value
+Manuel Teira <manuel.teira@telefonica.net>
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp~fix-linuxfb-offscreenoverflow
++++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp
+@@ -610,6 +610,11 @@
+
+ // No free blocks in already-taken memory; get some more
+ // if we can
++ if ( amount >= (*lowest ) ) {
++ //Avoid this overflow
++ qt_fbdpy->ungrab();
++ return 0;
++ }
+ unsigned int newlowest = (*lowest)-amount;
+ if (newlowest % align) {
+ newlowest -= align;
diff --git a/recipes-qt/qte/qte-2.3.10/fix-linuxfb-setmode.patch b/recipes-qt/qte/qte-2.3.10/fix-linuxfb-setmode.patch
new file mode 100644
index 0000000..212463c
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-linuxfb-setmode.patch
@@ -0,0 +1,32 @@
+Set lstep properly on a mode change
+Manuel Teira <manuel.teira@telefonica.net>
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp~fix-linuxfb-setmode
++++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp
+@@ -791,11 +791,6 @@
+ fb_fix_screeninfo finfo;
+ fb_var_screeninfo vinfo;
+
+- if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
+- perror("reading /dev/fb0");
+- qFatal("Error reading fixed information");
+- }
+-
+ if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {
+ qFatal("Error reading variable information in mode change");
+ }
+@@ -812,6 +807,10 @@
+ qFatal("Error reading changed variable information in mode change");
+ }
+
++ if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
++ qFatal("Error reading changed fixed information in mode change");
++ }
++
+ w=vinfo.xres;
+ h=vinfo.yres;
+ d=vinfo.bits_per_pixel;
diff --git a/recipes-qt/qte/qte-2.3.10/fix-native-build.patch b/recipes-qt/qte/qte-2.3.10/fix-native-build.patch
new file mode 100644
index 0000000..7670d44
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-native-build.patch
@@ -0,0 +1,11 @@
+--- qt-2.3.10/src/kernel/qwindowsystem_qws.h.orig 2005-09-19 17:50:39.000000000 +0200
++++ qt-2.3.10/src/kernel/qwindowsystem_qws.h 2005-09-19 17:50:45.000000000 +0200
+@@ -53,6 +53,8 @@
+ class QWSRegionManager;
+ class QGfx;
+ class QWSServerData;
++class QWSInputMethod;
++class QWSGestureMethod;
+
+ class QWSInternalWindowInfo
+ {
diff --git a/recipes-qt/qte/qte-2.3.10/fix-qgfxraster.patch b/recipes-qt/qte/qte-2.3.10/fix-qgfxraster.patch
new file mode 100644
index 0000000..7bc1e2a
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-qgfxraster.patch
@@ -0,0 +1,28 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041211/src/kernel/qgfxraster_qws.cpp~fix-qgfxraster
++++ qt-2.3.9-snapshot-20041211/src/kernel/qgfxraster_qws.cpp
+@@ -4037,13 +4037,14 @@
+ for( loopc2=0;loopc2<frontadd;loopc2++ )
+ *(alphaptr++)=get_value_32(16,(unsigned char **)&temppos);
+
+- PackType temp2;
+- unsigned char * cp;
++ volatile PackType temp2;
++ volatile unsigned short int * cp;
+ for( loopc2=0;loopc2<count;loopc2++ ) {
+- temp2=*((PackType *)temppos);
+- cp=(unsigned char *)&temp2;
+- *(alphaptr++)=get_value_32(16,&cp);
+- *(alphaptr++)=get_value_32(16,&cp);
++ temp2=*reinterpret_cast<PackType *>(temppos);
++ cp=reinterpret_cast<volatile unsigned short int *>(&temp2);
++ *(alphaptr++)=qt_conv16ToRgb(*cp);
++ cp++;
++ *(alphaptr++)=qt_conv16ToRgb(*cp);
+ temppos += 2;
+ }
+
diff --git a/recipes-qt/qte/qte-2.3.10/fix-qscreen-sync.patch b/recipes-qt/qte/qte-2.3.10/fix-qscreen-sync.patch
new file mode 100644
index 0000000..47929ee
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-qscreen-sync.patch
@@ -0,0 +1,17 @@
+Add a sync member to QScreen class
+Manuel Teira <manuel.teira@telefonica.net>
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/kernel/qgfx_qws.h~fix-qscreen-sync
++++ qt-2.3.10/src/kernel/qgfx_qws.h
+@@ -191,6 +191,7 @@
+ virtual int pixmapOffsetAlignment() { return 64; }
+ virtual int pixmapLinestepAlignment() { return 64; }
+
++ virtual void sync() {}
+ virtual bool onCard(unsigned char *) const;
+ virtual bool onCard(unsigned char *, ulong& out_offset) const;
+
diff --git a/recipes-qt/qte/qte-2.3.10/fix-qte-asm-include.patch b/recipes-qt/qte/qte-2.3.10/fix-qte-asm-include.patch
new file mode 100644
index 0000000..951bd82
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/fix-qte-asm-include.patch
@@ -0,0 +1,19 @@
+--- a/src/kernel/qpixmapcache.cpp 2005-01-23 14:00:46.000000000 +0000
++++ b/src/kernel/qpixmapcache.cpp 2009-11-05 22:49:44.000000000 +0000
+@@ -119,13 +119,13 @@
+ #include <time.h>
+ #include <stdio.h>
+ #include <signal.h>
++#include <unistd.h>
+
+ #ifdef THROW_AWAY_UNUSED_PAGES
+ # include <sys/mman.h> // madvise
+-# include <asm/page.h> // PAGE_SIZE,PAGE_MASK,PAGE_ALIGN
+-# ifndef PAGE_ALIGN
++# define PAGE_SIZE getpagesize()
++# define PAGE_MASK (~(PAGE_SIZE-1))
+ # define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
+-# endif // PAGE_ALIGN
+ #endif // THROW_AWAY_UNUSED_PAGES
+
+
diff --git a/recipes-qt/qte/qte-2.3.10/gcc3.patch b/recipes-qt/qte/qte-2.3.10/gcc3.patch
new file mode 100644
index 0000000..fc1656a
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/gcc3.patch
@@ -0,0 +1,27 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041211/src/tools/qcstring.h~gcc3
++++ qt-2.3.9-snapshot-20041211/src/tools/qcstring.h
+@@ -119,7 +119,7 @@
+ // We want to keep source compatibility for 2.x
+ // ### TODO for 4.0: completely remove these and the cstr* functions
+
+-#if !defined(QT_GENUINE_STR)
++#if 0
+
+ #undef strlen
+ #define strlen qstrlen
+--- qt-2.3.9-snapshot-20041211/src/kernel/qwsdecoration_qws.h~gcc3
++++ qt-2.3.9-snapshot-20041211/src/kernel/qwsdecoration_qws.h
+@@ -50,7 +50,7 @@
+ enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
+ TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
+ Close=11, Minimize=12, Maximize=13, Normalize=14,
+- Menu=15, LastRegion=Menu };
++ Menu=15, LastRegion=Menu, UserDefined = 100 };
+
+ virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
+ virtual void close( QWidget * );
diff --git a/recipes-qt/qte/qte-2.3.10/gcc4.patch b/recipes-qt/qte/qte-2.3.10/gcc4.patch
new file mode 100644
index 0000000..550effd
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/gcc4.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.10/src/tools/qvaluestack.h~gcc4 2005-01-23 15:00:47.000000000 +0100
++++ qt-2.3.10/src/tools/qvaluestack.h 2006-03-19 02:32:56.000000000 +0100
+@@ -54,7 +54,7 @@
+ {
+ T elem( this->last() );
+ if ( !this->isEmpty() )
+- remove( this->fromLast() );
++ this->remove( this->fromLast() );
+ return elem;
+ }
+ T& top() { return this->last(); }
diff --git a/recipes-qt/qte/qte-2.3.10/handhelds.patch b/recipes-qt/qte/qte-2.3.10/handhelds.patch
new file mode 100644
index 0000000..f67766a
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/handhelds.patch
@@ -0,0 +1,60 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10-snapshot-20050131/src/widgets/qcommonstyle.cpp~opie
++++ qt-2.3.10-snapshot-20050131/src/widgets/qcommonstyle.cpp
+@@ -572,7 +572,7 @@
+ bool enabled, bool active )
+ {
+ #ifndef QT_NO_MENUBAR
+-#ifndef QT_NO_STYLE_SGI
++#if 1 // #ifndef QT_NO_STYLE_SGI
+ if (draw_menu_bar_impl != 0) {
+ QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
+ (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
+--- qt-2.3.10-snapshot-20050131/src/widgets/qlistview.cpp~opie
++++ qt-2.3.10-snapshot-20050131/src/widgets/qlistview.cpp
+@@ -5051,9 +5051,9 @@
+ l = l->childItem ? l->childItem : l->siblingItem;
+
+ if ( l && l->height() )
+- s.setHeight( s.height() + 10 * l->height() );
+- else
+- s.setHeight( s.height() + 140 );
++ s.setHeight( s.height() + 4 /*10*/ * l->height() );
++ else // ^v much too big for handhelds
++ s.setHeight( s.height() + 30 /*140*/ );
+
+ if ( s.width() > s.height() * 3 )
+ s.setHeight( s.width() / 3 );
+--- qt-2.3.10-snapshot-20050131/src/kernel/qwindowsystem_qws.cpp~opie
++++ qt-2.3.10-snapshot-20050131/src/kernel/qwindowsystem_qws.cpp
+@@ -918,6 +918,18 @@
+ {
+ }
+
++static void catchSegvSignal( int )
++{
++#ifndef QT_NO_QWS_KEYBOARD
++ if ( qwsServer )
++ qwsServer->closeKeyboard();
++#endif
++ QWSServer::closedown();
++ fprintf(stderr, "Segmentation fault.\n");
++ exit(1);
++}
++
++
+ /*!
+ \class QWSServer qwindowsystem_qws.h
+ \brief Server-specific functionality in Qt/Embedded
+@@ -1043,6 +1055,7 @@
+ }
+
+ signal(SIGPIPE, ignoreSignal); //we get it when we read
++ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
+ #endif
+ focusw = 0;
+ mouseGrabber = 0;
diff --git a/recipes-qt/qte/qte-2.3.10/improve-calibration-r0.patch b/recipes-qt/qte/qte-2.3.10/improve-calibration-r0.patch
new file mode 100644
index 0000000..6052510
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/improve-calibration-r0.patch
@@ -0,0 +1,159 @@
+Index: qt-2.3.10/src/kernel/qwsmouse_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qwsmouse_qws.cpp 2005-08-31 13:44:12.000000000 +0000
++++ qt-2.3.10/src/kernel/qwsmouse_qws.cpp 2005-09-01 19:38:27.000000000 +0000
+@@ -14,10 +14,6 @@
+ ** Foundation and appearing in the file LICENSE.GPL included in the
+ ** packaging of this file.
+ **
+-** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+-** licenses for Qt/Embedded may use this file in accordance with the
+-** Qt Embedded Commercial License Agreement provided with the Software.
+-**
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ **
+@@ -30,6 +26,12 @@
+ **
+ **********************************************************************/
+
++/*
++ * The 5 point algorithim in QTSLibHandlerPrivate::calibrate() is
++ * GPL only code and Copyright (C) 2001 Russel King.
++ *
++ * Taken from ts_calibrate.c from tslib
++ */
+ #include "qwindowsystem_qws.h"
+ #include "qsocketnotifier.h"
+ #include "qwsevent_qws.h"
+@@ -1813,6 +1815,7 @@
+
+ void QTSLibHandlerPrivate::calibrate( QWSPointerCalibrationData * cd)
+ {
++#ifdef ORIG_CALIBRATE
+ QPoint dev_tl = cd->devPoints[ QWSPointerCalibrationData::TopLeft ];
+ QPoint dev_br = cd->devPoints[ QWSPointerCalibrationData::BottomRight ];
+ QPoint screen_tl = cd->screenPoints[ QWSPointerCalibrationData::TopLeft ];
+@@ -1843,6 +1846,122 @@
+ {
+ qDebug( "Could not save calibration: %s", calFile.latin1() );
+ }
++
++#else
++ int j;
++ float n, x, y, x2, y2, xy, z, zx, zy;
++ float det, cal_a, cal_b, cal_c, cal_d, cal_e, cal_f, cal_i;
++ float scaling = 65536.0;
++ int cal_x[5], cal_xfb[5], cal_y[5], cal_yfb[5], cal_o[7];
++
++ cal_x[0]=cd->devPoints[ QWSPointerCalibrationData::TopLeft ].x();
++ cal_y[0]=cd->devPoints[ QWSPointerCalibrationData::TopLeft ].y();
++ cal_x[1]=cd->devPoints[ QWSPointerCalibrationData::TopRight ].x();
++ cal_y[1]=cd->devPoints[ QWSPointerCalibrationData::TopRight ].y();
++ cal_x[2]=cd->devPoints[ QWSPointerCalibrationData::BottomLeft ].x();
++ cal_y[2]=cd->devPoints[ QWSPointerCalibrationData::BottomLeft ].y();
++ cal_x[3]=cd->devPoints[ QWSPointerCalibrationData::BottomRight ].x();
++ cal_y[3]=cd->devPoints[ QWSPointerCalibrationData::BottomRight ].y();
++ cal_x[4]=cd->devPoints[ QWSPointerCalibrationData::Center ].x();
++ cal_y[4]=cd->devPoints[ QWSPointerCalibrationData::Center ].y();
++
++ cal_xfb[0]=cd->screenPoints[ QWSPointerCalibrationData::TopLeft ].x();
++ cal_yfb[0]=cd->screenPoints[ QWSPointerCalibrationData::TopLeft ].y();
++ cal_xfb[1]=cd->screenPoints[ QWSPointerCalibrationData::TopRight ].x();
++ cal_yfb[1]=cd->screenPoints[ QWSPointerCalibrationData::TopRight ].y();
++ cal_xfb[2]=cd->screenPoints[ QWSPointerCalibrationData::BottomLeft ].x();
++ cal_yfb[2]=cd->screenPoints[ QWSPointerCalibrationData::BottomLeft ].y();
++ cal_xfb[3]=cd->screenPoints[ QWSPointerCalibrationData::BottomRight ].x();
++ cal_yfb[3]=cd->screenPoints[ QWSPointerCalibrationData::BottomRight ].y();
++ cal_xfb[4]=cd->screenPoints[ QWSPointerCalibrationData::Center ].x();
++ cal_yfb[4]=cd->screenPoints[ QWSPointerCalibrationData::Center ].y();
++
++ //qDebug("Top left : X = %4d Y = %4d", cal_x[0], cal_y[0]);
++ //qDebug("Top right: X = %4d Y = %4d", cal_x[1], cal_y[1]);
++ //qDebug("Bot left : X = %4d Y = %4d", cal_x[2], cal_y[2]);
++ //qDebug("Bot right: X = %4d Y = %4d", cal_x[3], cal_y[3]);
++ //qDebug("Middle: X = %4d Y = %4d", cal_x[4], cal_y[4]);
++
++ // Get sums for matrix
++ n = x = y = x2 = y2 = xy = 0;
++ for(j=0;j<5;j++) {
++ n += 1.0;
++ x += (float)cal_x[j];
++ y += (float)cal_y[j];
++ x2 += (float)(cal_x[j]*cal_x[j]);
++ y2 += (float)(cal_y[j]*cal_y[j]);
++ xy += (float)(cal_x[j]*cal_y[j]);
++ }
++
++ // Get determinant of matrix -- check if determinant is too small
++ det = n*(x2*y2 - xy*xy) + x*(xy*y - x*y2) + y*(x*xy - y*x2);
++ if(det < 0.1 && det > -0.1) {
++ qDebug("determinant is too small -- %f",det);
++ return;// false;
++ }
++
++ // Get elements of inverse matrix
++ cal_a = (x2*y2 - xy*xy)/det;
++ cal_b = (xy*y - x*y2)/det;
++ cal_c = (x*xy - y*x2)/det;
++ cal_e = (n*y2 - y*y)/det;
++ cal_f = (x*y - n*xy)/det;
++ cal_i = (n*x2 - x*x)/det;
++
++ // Get sums for x calibration
++ z = zx = zy = 0;
++ for(j=0;j<5;j++) {
++ z += (float)cal_xfb[j];
++ zx += (float)(cal_xfb[j]*cal_x[j]);
++ zy += (float)(cal_xfb[j]*cal_y[j]);
++ }
++
++ // Now multiply out to get the calibration for framebuffer x coord
++ cal_o[0] = (int)((cal_a*z + cal_b*zx + cal_c*zy)*(scaling));
++ cal_o[1] = (int)((cal_b*z + cal_e*zx + cal_f*zy)*(scaling));
++ cal_o[2] = (int)((cal_c*z + cal_f*zx + cal_i*zy)*(scaling));
++
++ qDebug("%f %f %f",(cal_a*z + cal_b*zx + cal_c*zy), (cal_b*z + cal_e*zx + cal_f*zy), (cal_c*z + cal_f*zx + cal_i*zy));
++
++ // Get sums for y calibration
++ z = zx = zy = 0;
++ for (j=0;j<5;j++) {
++ z += (float)cal_yfb[j];
++ zx += (float)(cal_yfb[j]*cal_x[j]);
++ zy += (float)(cal_yfb[j]*cal_y[j]);
++ }
++
++ // Now multiply out to get the calibration for framebuffer y coord
++ cal_o[3] = (int)((cal_a*z + cal_b*zx + cal_c*zy)*(scaling));
++ cal_o[4] = (int)((cal_b*z + cal_e*zx + cal_f*zy)*(scaling));
++ cal_o[5] = (int)((cal_c*z + cal_f*zx + cal_i*zy)*(scaling));
++
++ qDebug("%f %f %f",(cal_a*z + cal_b*zx + cal_c*zy), (cal_b*z + cal_e*zx + cal_f*zy), (cal_c*z + cal_f*zx + cal_i*zy));
++
++
++ // If we got here, we're OK, so assign scaling to a[6] and return
++ cal_o[6] = (int) scaling;
++
++ qDebug("Calibration constants: %d %d %d %d %d %d %d",
++ cal_o[0], cal_o[1], cal_o[2],
++ cal_o[3], cal_o[4], cal_o[5],
++ cal_o[6]);
++
++ QString calFile = "/etc/pointercal";
++#ifndef QT_NO_TEXTSTREAM
++ QFile file( calFile );
++ if ( file.open( IO_WriteOnly ) ) {
++ QTextStream t( &file );
++ t << cal_o[1] << " " << cal_o[2] << " " << cal_o[0] << " ";
++ t << cal_o[4] << " " << cal_o[5] << " " << cal_o[3] << " " << cal_o[6];
++ file.flush(); closeTs();
++ openTs();
++ } else
++#endif
++ {
++ qDebug( "Could not save calibration: %s", calFile.latin1() );
++ }
++#endif
+ }
+
+ void QTSLibHandlerPrivate::readMouseData()
diff --git a/recipes-qt/qte/qte-2.3.10/increase-qxml-robustness.patch b/recipes-qt/qte/qte-2.3.10/increase-qxml-robustness.patch
new file mode 100644
index 0000000..3a29b4a
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/increase-qxml-robustness.patch
@@ -0,0 +1,17 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/xml/qxml.cpp~xml
++++ qt-2.3.10/src/xml/qxml.cpp
+@@ -809,6 +809,9 @@
+ // ### The input source should not do the encoding detection!
+ void QXmlInputSource::readInput( QByteArray& rawData )
+ {
++ // avoid crash if the array has less than 5 characters (skyhusker@handhelds.org)
++ if ( rawData.size() < 6 )
++ return;
+ QBuffer buf( rawData );
+ buf.open( IO_ReadOnly );
+ QTextStream *stream = new QTextStream( &buf );
diff --git a/recipes-qt/qte/qte-2.3.10/ipaq_sound_fix.patch b/recipes-qt/qte/qte-2.3.10/ipaq_sound_fix.patch
new file mode 100644
index 0000000..af72362
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/ipaq_sound_fix.patch
@@ -0,0 +1,60 @@
+Attention HACK ahead:
+ The OpenSoundSystem is just scary this is a special hack
+ for supporting iPAQ(s) at least h3870.
+
+ Features:
+ -It does not crash when playing a 'null' file
+ -Change sound fragment size to 12
+ -Force stereo on!!! (hardcoded at least uda1341 needs it)
+
+
+
+Index: qt-2.3.10/src/kernel/qsoundqss_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qsoundqss_qws.cpp 2005-03-20 17:11:29.000000000 +0100
++++ qt-2.3.10/src/kernel/qsoundqss_qws.cpp 2005-03-20 23:53:46.403129133 +0100
+@@ -73,7 +73,7 @@
+ };
+
+ #if defined(QT_QWS_IPAQ)
+-static const int sound_fragment_size = 12;
++static const int sound_fragment_size = 14;
+ #else
+ static const int sound_fragment_size = 12;
+ #endif
+@@ -451,8 +451,14 @@
+
+ int devSamples()
+ {
+- int possible = (((max1+max2-out) / ((chunkdata.wBitsPerSample>>3)*chunkdata.channels))
+- *sound_speed)/chunkdata.samplesPerSec;
++ if ( !(chunkdata.wBitsPerSample>>3) ||
++ !chunkdata.channels ||
++ !sound_speed ||
++ !chunkdata.samplesPerSec )
++ return 0;
++
++ int possible = (((max1+max2-out) / ((chunkdata.wBitsPerSample>>3 )*chunkdata.channels))
++ *sound_speed)/chunkdata.samplesPerSec;
+
+ return possible;
+ }
+@@ -1116,12 +1127,14 @@
+ if ( AFMT_U8 != v )
+ qDebug("Want format %d got %d", AFMT_U8, v);
+ #endif
+- v=sound_stereo; if ( ioctl(fd, SNDCTL_DSP_STEREO, &v) )
++ v=1; if ( ioctl(fd, SNDCTL_DSP_STEREO, &v) )
+ qWarning("Could not set stereo %d",v);
+ if ( sound_stereo != v )
+- qDebug("Want stereo %d got %d", sound_stereo, v);
+-#ifdef QT_QWS_SOUND_STEREO
+- sound_stereo=v;
++ qDebug("Want stereo %d got %d", sound_stereo, v);
++#if defined(QT_QWS_IPAQ)
++ sound_stereo=1;
++#elif QT_QWS_SOUND_STEREO
++ sound_stereo=v;
+ #endif
+ v=sound_speed; if ( ioctl(fd, SNDCTL_DSP_SPEED, &sound_speed) )
+ qWarning("Could not set speed %d",v);
diff --git a/recipes-qt/qte/qte-2.3.10/kernel-keymap-corgi.patch b/recipes-qt/qte/qte-2.3.10/kernel-keymap-corgi.patch
new file mode 100644
index 0000000..0fabd78
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/kernel-keymap-corgi.patch
@@ -0,0 +1,23 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20050114/src/kernel/qkeyboard_qws.cpp~kernel-keymap-corgi
++++ qt-2.3.9-snapshot-20050114/src/kernel/qkeyboard_qws.cpp
+@@ -410,6 +410,15 @@
+ { 0x20ac, 0xffff , 0x20ac , 0x20ac }, // 73 Euro sign
+ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 74
+ { Qt::Key_F32, 0xffff , 0xffff , 0xffff }, // 75 Sync
++ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 76
++ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 77
++ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 78
++ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 79
++ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 7a
++ { Qt::Key_Return, 0xffff , 0xffff , 0xffff }, // 7b
++ { Qt::Key_Escape, 0xffff , 0xffff , 0xffff }, // 7c
++ { Qt::Key_Up, 0xffff , 0xffff , 0xffff }, // 7d
++ { Qt::Key_Down, 0xffff , 0xffff , 0xffff }, // 7e
+ { 0, 0xffff , 0xffff , 0xffff }
+ };
+ #else
diff --git a/recipes-qt/qte/qte-2.3.10/kernel-keymap.patch b/recipes-qt/qte/qte-2.3.10/kernel-keymap.patch
new file mode 100644
index 0000000..0111c83
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/kernel-keymap.patch
@@ -0,0 +1,1293 @@
+--- /dev/null 2004-07-13 00:58:01.000000000 +0000
++++ qte/src/kernel/kernelkeyboard.cpp 2007-04-07 01:00:36.000000000 +0000
+@@ -0,0 +1,769 @@
++/*
++
++ Copyright (C) 2003 Chris Larson
++ Copyright (C) 2004, 2005 Holger Hans Peter Freyther
++ All rights reserved.
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++
++ Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ Neither the name Chris Larson nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
++ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++ POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++/*
++ Copyright (C) 2005 ROAD GmbH
++
++ This program is free software; you can redistribute it
++ and/or modify it under the terms of the GNU General Public
++ License as published by the Free Software Foundation;
++ either version 2 of the License, or (at your option) any
++ later version.
++
++ This program is distributed in the hope that it will be
++ useful, but WITHOUT ANY WARRANTY; without even the implied
++ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
++ PURPOSE. See the GNU General Public License for more
++ details.
++
++ You should have received a copy of the GNU General Public
++ License along with this program; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330,
++ Boston, MA 02111-1307 USA
++
++
++ Changes Done:
++ -ShiftL and ShiftR modifier handling
++ -Keypad handling improved
++ -Handle unmapped keys by lookin them up in the first column
++ -Handle AutoRepeat
++ -Handle Keys >127
++ -Handle Increment and Decrement the Console
++ -Handle the Home Key
++ -Fix handling of Function Keys
++ -Fix handling of the unicode value (to fix QPopupMenu,QAction)
++
++ */
++
++/*
++ Paul Sokolovsky, 2007-04:
++
++ 1. Added support for nicely named and extensible key bindings.
++ E.g., in loadkeys do:
++ keycode 155 = F100
++ string F100 = "power"
++ where 155 is keycode a power button happens to have on your machine, F100 is
++ arbitrary function key (please use F100-F120), and "power" is OPIE binding.
++ Currently defined bindings are "power", "backlight", "record"
++ 2. K_DO ("Do") keycode is mapped to OPIE power button by default. Kernel uses
++ K_DO for KEY_POWER input subsystem keycode. So, if your device does the right
++ thing, it will work out of the box.
++ 3. Implemented NumLock handling for numeric keypad.
++ */
++
++/*
++ This is an alternative implementation of the QWSTtyKeyboardHandler
++ of Trolltech's QtE.
++
++ Instead of using a hardcoded incomplete map, this implementation
++ imports the Keymap from a Linux Kernel.
++
++ */
++
++
++//
++// Tty keyboard
++//
++#include "keyboard_linux_to_qt.h"
++
++QWSTtyKeyboardHandler::QWSTtyKeyboardHandler(const QString& device)
++ : current_map(0), modifier( 0 ), numlock( false ), capslock( false )
++{
++ restoreLeds();
++ kbdFD=open(device.isEmpty() ? "/dev/tty0" : device.latin1(), O_RDWR | O_NDELAY, 0);
++
++ if ( kbdFD >= 0 ) {
++ QSocketNotifier *notifier;
++ notifier = new QSocketNotifier( kbdFD, QSocketNotifier::Read, this );
++ connect( notifier, SIGNAL(activated(int)),this,
++ SLOT(readKeyboardData()) );
++
++ // save for restore.
++ tcgetattr( kbdFD, &origTermData );
++
++ struct termios termdata;
++ tcgetattr( kbdFD, &termdata );
++
++#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
++ ioctl(kbdFD, KDSKBMODE, K_MEDIUMRAW);
++#endif
++
++ termdata.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP);
++ termdata.c_oflag = 0;
++ termdata.c_cflag = CREAD | CS8;
++ termdata.c_lflag = 0;
++ termdata.c_cc[VTIME]=0;
++ termdata.c_cc[VMIN]=1;
++ cfsetispeed(&termdata, 9600);
++ cfsetospeed(&termdata, 9600);
++ tcsetattr(kbdFD, TCSANOW, &termdata);
++
++ readUnicodeMap();
++ readKeyboardMap();
++
++ signal(VTSWITCHSIG, vtSwitchHandler);
++
++#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
++ struct vt_mode vtMode;
++ ioctl(kbdFD, VT_GETMODE, &vtMode);
++
++ // let us control VT switching
++ vtMode.mode = VT_PROCESS;
++ vtMode.relsig = VTSWITCHSIG;
++ vtMode.acqsig = VTSWITCHSIG;
++ ioctl(kbdFD, VT_SETMODE, &vtMode);
++
++ struct vt_stat vtStat;
++ ioctl(kbdFD, VT_GETSTATE, &vtStat);
++ vtQws = vtStat.v_active;
++#endif
++ }
++}
++
++QWSTtyKeyboardHandler::~QWSTtyKeyboardHandler()
++{
++ restoreLeds();
++ if (kbdFD >= 0)
++ {
++#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
++ struct vt_mode vtMode;
++ ioctl(kbdFD, VT_GETMODE, &vtMode);
++
++ /* Mickey says: "Better give up control of VT switching.
++ * Hey, I really hate that OS-will-reacquire-resources on process-death
++ * kind of thinking!
++ */
++ vtMode.mode = VT_AUTO;
++ vtMode.relsig = 0;
++ vtMode.acqsig = 0;
++ ioctl(kbdFD, VT_SETMODE, &vtMode);
++
++ signal(VTSWITCHSIG, 0);
++ qDebug( "~QWSTtyKeyboardHandler() - released VT." );
++#endif
++
++#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
++ ioctl(kbdFD, KDSKBMODE, K_XLATE);
++#endif
++ tcsetattr(kbdFD, TCSANOW, &origTermData);
++ ::close(kbdFD);
++ kbdFD = -1;
++ }
++}
++void QWSTtyKeyboardHandler::readUnicodeMap()
++{
++ if (kbdFD < 0)
++ return;
++ if (ioctl(kbdFD,GIO_UNISCRNMAP,acm) != 0)
++ return;
++}
++
++static Qt::Key getSpecialKey(int fKey)
++{
++ struct kbsentry kbs;
++ kbs.kb_func = fKey;
++
++ if (ioctl(kbdFD, KDGKBSENT, &kbs) != 0)
++ return Qt::Key_unknown;
++ const char *str = (const char *)kbs.kb_string;
++
++ if (!strcmp("record", str))
++ return Qt::Key_F24;
++ else if (!strcmp("power", str))
++ return Qt::Key_F34;
++ else if (!strcmp("backlight", str))
++ return Qt::Key_F35;
++
++ return Qt::Key_unknown;
++}
++
++void QWSTtyKeyboardHandler::readKeyboardMap()
++{
++ struct kbentry kbe;
++ if (kbdFD < 0)
++ return;
++
++ for (int map = 0; map < (1<<KG_CAPSSHIFT); ++map) {
++ unsigned short kval;
++ kbe.kb_table = map;
++
++ for (int key = 0; key < NR_KEYS; ++key) {
++ kbe.kb_index = key;
++
++
++ if ( (ioctl(kbdFD, KDGKBENT, &kbe) != 0) ||
++ ((kbe.kb_value == K_HOLE) || (kbe.kb_value == K_NOSUCHMAP)) ) {
++ kernel_map[map][key] = KeyMap( KeyMap::Key_NotMapped, 0 );
++ continue;
++ }
++
++ kval = KVAL(kbe.kb_value);
++ switch (KTYP(kbe.kb_value)) {
++ /*
++ * Map asciis and letters to Qt KeyCodes
++ * via the map (0-255)
++ */
++ case KT_LETTER:
++ case KT_LATIN:
++ case KT_META:
++ kernel_map[map][key] = KeyMap( linux_to_qt[kval], kval );
++ break;
++
++ /*
++ * Handle the F Keys and map them
++ * to Qt
++ */
++ case KT_FN:
++ if ( kval <= 19 )
++ kernel_map[map][key] = KeyMap( static_cast<Qt::Key>( Qt::Key_F1 + kval ), kval );
++ else if ( kval >= 30 && kval <= 44)
++ kernel_map[map][key] = KeyMap( static_cast<Qt::Key>( Qt::Key_F21 + (kval - 30) ), kval );
++ else {
++ Qt::Key specialKey = getSpecialKey(kval);
++ if (specialKey != Qt::Key_unknown) {
++ kernel_map[map][key] = KeyMap( specialKey, kval );
++ }
++ else
++ switch(kbe.kb_value ) {
++ case K_INSERT:
++ kernel_map[map][key] = KeyMap( Qt::Key_Insert, kval );
++ break;
++ case K_REMOVE:
++ kernel_map[map][key] = KeyMap( Qt::Key_Delete, kval ); // right?
++ break;
++ case K_SELECT:
++ kernel_map[map][key] = KeyMap( Qt::Key_End , kval );
++ break;
++ case K_PGUP:
++ kernel_map[map][key] = KeyMap( Qt::Key_Prior, kval );
++ break;
++ case K_PGDN:
++ kernel_map[map][key] = KeyMap( Qt::Key_Next, kval );
++ break;
++ case K_MACRO:
++ kernel_map[map][key] = KeyMap( Qt::Key_Menu, kval );
++ break;
++ case K_HELP:
++ kernel_map[map][key] = KeyMap( Qt::Key_Help, kval );
++ break;
++ case K_PAUSE:
++ kernel_map[map][key] = KeyMap( Qt::Key_Pause, kval );
++ break;
++ case K_FIND:
++ kernel_map[map][key] = KeyMap( Qt::Key_Home, kval );
++ break;
++ case K_DO:
++ kernel_map[map][key] = KeyMap( Qt::Key_F34, kval );
++ break;
++ default:
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ break;
++ }
++ }
++ break;
++
++ case KT_SPEC:
++ switch ( kbe.kb_value ) {
++ case K_ENTER:
++ kernel_map[map][key] = KeyMap( Qt::Key_Enter, kval );
++ break;
++ case K_CAPS:
++ kernel_map[map][key] = KeyMap( Qt::Key_CapsLock, kval );
++ break;
++ case K_NUM:
++ kernel_map[map][key] = KeyMap( Qt::Key_NumLock, kval );
++ break;
++ case K_HOLD:
++ kernel_map[map][key] = KeyMap( Qt::Key_ScrollLock, kval );
++ break;
++ case K_DECRCONSOLE:
++ kernel_map[map][key] = KeyMap( KeyMap::Key_DecConsole, kval );
++ break;
++ case K_INCRCONSOLE:
++ kernel_map[map][key] = KeyMap( KeyMap::Key_IncConsole, kval );
++ break;
++ case K_HOLE:
++ case K_SH_REGS:
++ case K_SH_MEM:
++ case K_SH_STAT:
++ case K_BREAK:
++ case K_CONS:
++ case K_SCROLLFORW:
++ case K_SCROLLBACK:
++ case K_BOOT:
++ case K_CAPSON:
++ case K_COMPOSE:
++ case K_SAK:
++ case K_SPAWNCONSOLE:
++ case K_BARENUMLOCK:
++ default:
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ break;
++ }
++ break;
++ case KT_PAD:
++ /*
++ * Number Values might be wrong
++ */
++ switch(kbe.kb_value ) {
++ case K_P0:
++ kernel_map[map][key] = KeyMap( Qt::Key_0, kbe.kb_value );
++ break;
++ case K_P1:
++ kernel_map[map][key] = KeyMap( Qt::Key_1, kbe.kb_value );
++ break;
++ case K_P2:
++ kernel_map[map][key] = KeyMap( Qt::Key_2, kbe.kb_value );
++ break;
++ case K_P3:
++ kernel_map[map][key] = KeyMap( Qt::Key_3, kbe.kb_value );
++ break;
++ case K_P4:
++ kernel_map[map][key] = KeyMap( Qt::Key_4, kbe.kb_value );
++ break;
++ case K_P5:
++ kernel_map[map][key] = KeyMap( Qt::Key_5, kbe.kb_value );
++ break;
++ case K_P6:
++ kernel_map[map][key] = KeyMap( Qt::Key_6, kbe.kb_value );
++ break;
++ case K_P7:
++ kernel_map[map][key] = KeyMap( Qt::Key_7, kbe.kb_value );
++ break;
++ case K_P8:
++ kernel_map[map][key] = KeyMap( Qt::Key_8, kbe.kb_value );
++ break;
++ case K_P9:
++ kernel_map[map][key] = KeyMap( Qt::Key_9, kbe.kb_value );
++ break;
++ case K_PPLUS:
++ kernel_map[map][key] = KeyMap( Qt::Key_Plus, '+' );
++ break;
++ case K_PMINUS:
++ kernel_map[map][key] = KeyMap( Qt::Key_Minus, '-' );
++ break;
++ case K_PSTAR:
++ kernel_map[map][key] = KeyMap( Qt::Key_multiply, '*' );
++ break;
++ case K_PSLASH:
++ kernel_map[map][key] = KeyMap( Qt::Key_division, '/' );
++ break;
++ case K_PENTER:
++ kernel_map[map][key] = KeyMap( Qt::Key_Enter, kval );
++ break;
++ case K_PCOMMA:
++ kernel_map[map][key] = KeyMap( Qt::Key_Comma, '.' ) ;
++ break;
++ case K_PPLUSMINUS:
++ kernel_map[map][key] = KeyMap( Qt::Key_plusminus, kval );
++ break;
++ case K_PDOT:
++ kernel_map[map][key] = KeyMap( Qt::Key_Comma, '.' ) ;
++ break;
++ case K_PPARENL:
++ kernel_map[map][key] = KeyMap( Qt::Key_ParenLeft, kval );
++ break;
++ case K_PPARENR:
++ kernel_map[map][key] = KeyMap( Qt::Key_ParenRight, kval );
++ break;
++ default:
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ break;
++ }
++ break;
++ case KT_DEAD:
++ switch(kbe.kb_value ) {
++ case K_DGRAVE:
++ case K_DACUTE:
++ case K_DCIRCM:
++ case K_DTILDE:
++ case K_DDIERE:
++ case K_DCEDIL:
++ default:
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ break;
++ }
++ break;
++
++ /*
++ * Console keys
++ */
++ case KT_CONS:
++ if ( kval < 10 )
++ kernel_map[map][key] = KeyMap(static_cast<KeyMap::ExtraKey>( KeyMap::Key_Console1+kval ), kval );
++ else
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ break;
++
++ case KT_CUR:
++ switch(kbe.kb_value ) {
++ case K_DOWN:
++ kernel_map[map][key] = KeyMap( Qt::Key_Down, kval );
++ break;
++ case K_LEFT:
++ kernel_map[map][key] = KeyMap( Qt::Key_Left, kval );
++ break;
++ case K_RIGHT:
++ kernel_map[map][key] = KeyMap( Qt::Key_Right, kval );
++ break;
++ case K_UP:
++ kernel_map[map][key] = KeyMap( Qt::Key_Up, kval );
++ break;
++ }
++ break;
++
++ case KT_SHIFT:
++ switch( kbe.kb_value ) {
++ case K_SHIFT:
++ kernel_map[map][key] = KeyMap( Qt::Key_Shift, kval );
++ break;
++ case K_ALT:
++ kernel_map[map][key] = KeyMap( Qt::Key_Alt, kval );
++ break;
++ case K_CTRL:
++ kernel_map[map][key] = KeyMap( Qt::Key_Control, kval );
++ break;
++ case K_ALTGR:
++ kernel_map[map][key] = KeyMap( KeyMap::Key_AltGr, kval );
++ break;
++ case K_SHIFTL:
++ kernel_map[map][key] = KeyMap( KeyMap::Key_ShiftL, kval );
++ break;
++ case K_SHIFTR:
++ kernel_map[map][key] = KeyMap( KeyMap::Key_ShiftR, kval );
++ break;
++ case K_CTRLL:
++ case K_CTRLR:
++ case K_CAPSSHIFT:
++ default:
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ break;
++ }
++ break;
++ /*
++ * What is this for?
++ */
++ case KT_ASCII:
++ case KT_LOCK:
++ case KT_SLOCK:
++ default:
++ kernel_map[map][key] = KeyMap( Qt::Key_unknown, kval );
++ //qWarning("keycode %d, map %d, type %d, val %d, acm %c\n", key, map, KTYP(kbe.kb_value), kval, acm[kval]);
++ break;
++ }
++ }
++ }
++}
++int QWSTtyKeyboardHandler::map_to_modif()
++{
++ int modifiers = 0;
++
++ if (current_map & (1<<KG_ALT))
++ modifiers |= Qt::AltButton;
++ else if (current_map & (1<<KG_CTRL))
++ modifiers |= Qt::ControlButton;
++ else if (current_map & (1<<KG_SHIFT))
++ modifiers |= Qt::ShiftButton;
++
++ return modifiers;
++}
++
++/*
++ * Handle Extra Keys for VT switching and Quitting
++ */
++void QWSTtyKeyboardHandler::handleExtra( unsigned int key, bool release ) {
++ if ( !release ) {
++ int term = 0;
++ if ( (modifier & (1<<KG_ALT)) && (modifier & (1<<KG_CTRL)) ) {
++ if ( key == Qt::Key_Left || key == KeyMap::Key_DecConsole )
++ term = QMAX(vtQws -1, 1 );
++ else if ( key == Qt::Key_Right || key == KeyMap::Key_IncConsole )
++ term = QMIN(vtQws +1, 12 );
++ }
++
++ if ( key >= KeyMap::Key_Console1 && key <= KeyMap::Key_Console12 )
++ term = key - KeyMap::Key_Console1 + 1;
++
++ if ( term != 0 ) {
++ current_map = modifier = 0;
++ numlock = capslock = false;
++ ioctl(kbdFD, VT_ACTIVATE, term );
++ return;
++ }
++ }
++
++ if ( (modifier & (1<<KG_ALT)) && (modifier & (1<<KG_CTRL) ) )
++ if ( key == Qt::Key_Delete || key == Qt::Key_Backspace ) {
++ qWarning( "Instructed to quit on %d", key );
++ qApp->quit();
++ }
++}
++
++/*
++ * apply modifier
++ */
++void QWSTtyKeyboardHandler::modifyModifier( int map, int modify, bool release ) {
++ if (map != -1) {
++ if (release)
++ current_map &= ~map;
++ else
++ current_map |= map;
++ }
++
++ if ( modify != -1 ) {
++ if (release)
++ modifier &= ~modify;
++ else
++ modifier |= modify;
++ }
++}
++
++static Qt::Key numpad2cursor[NR_PAD] = {
++ Qt::Key_Insert,
++ Qt::Key_End,
++ Qt::Key_Down,
++ Qt::Key_Next,
++ Qt::Key_Left,
++ Qt::Key_5,
++ Qt::Key_Right,
++ Qt::Key_Home,
++ Qt::Key_Up,
++ Qt::Key_Prior,
++};
++
++void QWSTtyKeyboardHandler::handleKey(unsigned int code, bool release)
++{
++ int old_modifier = modifier;
++ bool mod_key = true;
++
++ KeyMap key_map = kernel_map[current_map][code];
++ if( key_map.key == KeyMap::Key_NotMapped ) {
++ qWarning("Unmapped Key Pressed fixing up map:%d modif:%d code:%d", current_map, modifier, code);
++ key_map = kernel_map[0][code];
++ }
++
++ unsigned short unicode = 0xffff;
++ if (key_map.code < 0x100)
++ unicode = acm[key_map.code & 0xff] & 0xff;
++ unsigned int qtKeyCode = key_map.key;
++
++// if ( !release )
++// qWarning( "KeyCode: %d KVAL: %d", qtKeyCode, key_map.code );
++// qWarning( "Alt:%d Ctrl:%d Shift:%d Key = %d", modifier & (1<<KG_ALT),
++// modifier & (1<<KG_CTRL),
++// modifier & (1<<KG_SHIFT), key_map.key );
++// qDebug("code %d, mCode %d, uni '%c', qtKeyCode %d", code, map.code,
++// QChar(unicode ).isPrint() ?
++// unicode : '?' , qtKeyCode);
++
++ // Handle map changes based on press/release of modifiers
++ // hardcoded for now
++ int modif = -1;
++ int map = -1;
++ bool lock = false;
++ switch (qtKeyCode)
++ {
++ case Qt::Key_Alt:
++ unicode = 0xffff;
++ modif = (1<<KG_ALT);
++ map = modif;
++ break;
++ case Qt::Key_Control:
++ unicode = 0xffff;
++ modif = (1<<KG_CTRL);
++ map = modif;
++ break;
++ case Qt::Key_Shift:
++ unicode = 0xffff;
++ modif = (1<<KG_SHIFT);
++ map = modif;
++ break;
++ case KeyMap::Key_AltGr:
++ map = (1<<KG_ALTGR );
++ break;
++ case KeyMap::Key_ShiftL:
++ unicode = 0xfff;
++ map = (1<<KG_SHIFTL);
++ break;
++ case KeyMap::Key_ShiftR:
++ unicode = 0xfff;
++ map = (1<<KG_SHIFTR);
++ break;
++ case Qt::Key_Left:
++ case Qt::Key_Right:
++ case Qt::Key_Up:
++ case Qt::Key_Down:
++ unicode = 0xffff;
++ mod_key = false;
++ if (qt_screen->isTransformed())
++ qtKeyCode = static_cast<Qt::Key>( xform_dirkey(static_cast<int>( qtKeyCode ) ) );
++ break;
++ /*
++ * handle lock, we don't handle scroll lock!
++ */
++ case Qt::Key_CapsLock:
++ case Qt::Key_NumLock:
++ unicode = 0xffff;
++ lock = true;
++ default:
++ mod_key = false;
++ break;
++ }
++
++
++ /*
++ * Change the Map. We handle locks a bit different
++ */
++ if ( lock )
++ modifyLock( qtKeyCode, release );
++ else
++ modifyModifier( map, modif, release );
++
++ handleExtra( qtKeyCode, release );
++
++ // Do NumLock
++ if (KTYP(key_map.code) == KT_PAD) {
++ if (!numlock) {
++ qtKeyCode = numpad2cursor[KVAL(key_map.code)];
++ } else {
++ unicode = KVAL(key_map.code) + '0';
++ }
++ }
++
++ /*
++ * do not repeat modifier keys
++ */
++ if ( modifier == old_modifier && mod_key )
++ return;
++
++ processKeyEvent(unicode, qtKeyCode, map_to_modif(), !release, 0);
++}
++
++
++/*
++ * We will read the keys off the kernel. We have two cases here
++ * 1. ) keycode < 128, bit8 is the down/up bit and the rest is
++ * is the value of the key. we can simply process it
++ * 2. ) keycode > 128, the first byte is either empty or 0x80.
++ * We need to save the status ( press/release ) the following
++ * two bytes.
++ * The difficulty is we might have not read all keys into the
++ * buffer. This makes the reading of highkeys a bit harder and
++ * I've decided against rereading, or adding a special case for
++ * the 'all' buffers in loop instead we have a simple state machine.
++ */
++void QWSTtyKeyboardHandler::readKeyboardData()
++{
++ unsigned char buf[81];
++ unsigned char code;
++ bool release = false;
++ bool release_bit;
++
++ bool highKey = false;
++ unsigned int highKeyCode = 0;
++ unsigned int highNeedMoreKey = 0;
++
++ int n = ::read(kbdFD, buf, 80 );
++ for ( int loop = 0; loop < n; loop++ ) {
++ code = buf[loop] & 0x7f;
++ release_bit = buf[loop] & 0x80;
++
++ if ( highKey ) {
++ if ( highNeedMoreKey == 2 ) {
++ highNeedMoreKey--;
++ highKeyCode = code << 7;
++ }else if ( highNeedMoreKey == 1 ) {
++ highNeedMoreKey = 0;
++ highKeyCode |= code;
++ highKey = false;
++ if ( highKeyCode > 127 && highKeyCode < NR_KEYS )
++ handleKey( highKeyCode, release );
++ }
++ }else if (code == 0) {
++ highKey = true;
++ highNeedMoreKey = 2;
++ release = release_bit;
++ }else {
++ release = release_bit;
++ handleKey(code, release);
++ }
++ }
++}
++
++void QWSTtyKeyboardHandler::modifyLock( unsigned int lock, bool release ) {
++ if ( !release )
++ return;
++
++ if ( lock == Qt::Key_CapsLock ) {
++ toggleLed( LED_CAP );
++ capslock = !capslock;
++ }else if ( lock == Qt::Key_NumLock ) {
++ toggleLed( LED_NUM );
++ numlock = !numlock;
++ }
++}
++
++void QWSTtyKeyboardHandler::restoreLeds() {
++ unsigned int leds;
++ ioctl(kbdFD, KDGETLED, &leds );
++ leds &= ~LED_CAP;
++ leds &= ~LED_NUM;
++ ioctl(kbdFD, KDSETLED, &leds );
++}
++
++void QWSTtyKeyboardHandler::toggleLed(unsigned int led) {
++ unsigned int leds;
++ int ret = ioctl(kbdFD, KDGETLED, &leds );
++ leds = leds & led ? (leds & ~led) : (leds | led);
++ ret = ioctl(kbdFD, KDSETLED, &leds );
++}
++
++void QWSTtyKeyboardHandler::processKeyEvent(int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ) {
++ static int last_unicode = -1;
++ static int last_keycode = -1;
++
++ autoRepeat = false;
++ if( last_unicode == unicode && last_keycode == keycode && isPress )
++ autoRepeat = true;
++
++ QWSPC101KeyboardHandler::processKeyEvent(unicode, keycode, modifiers, isPress, autoRepeat);
++
++ if ( isPress ) {
++ last_unicode = unicode;
++ last_keycode = keycode;
++ } else {
++ last_unicode = last_keycode = -1;
++ }
++}
+Index: src/kernel/qkeyboard_qws.cpp
+===================================================================
+--- qte/src/kernel/qkeyboard_qws.cpp.orig 2006-04-01 23:36:22.499297680 +0200
++++ qte/src/kernel/qkeyboard_qws.cpp 2006-04-01 23:38:19.913448016 +0200
+@@ -45,15 +45,18 @@
+ #include <ctype.h>
+
+ #include <unistd.h>
+-#ifdef _OS_LINUX_
+-#include <linux/kd.h>
+-#endif
++#include <sys/wait.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <signal.h>
++#include <termios.h>
++#ifdef _OS_LINUX_
++#include <linux/kd.h>
++#include <linux/keyboard.h>
++#endif
+
+ #ifdef QT_QWS_TIP2
+ #include <qcopchannel_qws.h>
+@@ -135,17 +138,6 @@
+ };
+
+
+-#ifdef QT_QWS_SL5XXX
+-#include <asm/sharp_char.h>
+-#endif
+-
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+-#define QT_QWS_AUTOREPEAT_MANUALLY
+-#endif
+-
+-
+-
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+ static int dir_keyrot = -1;
+
+ static int xform_dirkey(int key)
+@@ -169,7 +161,6 @@
+ int xf = qt_screen->transformOrientation() + dir_keyrot;
+ return (key-Qt::Key_Left+xf)%4+Qt::Key_Left;
+ }
+-#endif
+
+ #define VTSWITCHSIG SIGUSR2
+
+@@ -643,18 +634,81 @@
+ ioctl(0, KDSETLED, leds);
+ }
+
++/*
++ * This class was extended by:
++ *
++ * Copyright 2002 Chris Larson
++ * Copyright 2004, 2005 Holger Hans Peter Freyther
++ */
+ class QWSTtyKeyboardHandler : public QWSPC101KeyboardHandler
+ {
+ Q_OBJECT
+ public:
+ QWSTtyKeyboardHandler(const QString&);
+ virtual ~QWSTtyKeyboardHandler();
++ void readKeyboardMap();
++ void readUnicodeMap();
++ void handleKey(unsigned int key, bool release);
+
+ private slots:
+ void readKeyboardData();
+
+ private:
++ void modifyModifier( int map, int modify, bool release );
++ void modifyLock( unsigned int lock, bool release );
++ void handleExtra( unsigned int key, bool release );
++ static void restoreLeds();
++ static void toggleLed(unsigned int);
++ int map_to_modif ();
++
++private:
+ struct termios origTermData;
++ unsigned short acm[E_TABSZ];
++ struct KeyMap {
++ enum ExtraKey{
++ Key_AltGr = 0x01ffff,
++ Key_Console1 = 0x02ffff,
++ Key_Console2 = 0x03ffff,
++ Key_Console3 = 0x04ffff,
++ Key_Console4 = 0x05ffff,
++ Key_Console5 = 0x06ffff,
++ Key_Console6 = 0x07ffff,
++ Key_Console7 = 0x08ffff,
++ Key_Console8 = 0x09ffff,
++ Key_Console9 = 0x0affff,
++ Key_Console10 = 0x0bffff,
++ Key_Console11 = 0x0cffff,
++ Key_Console12 = 0x0dffff,
++ Key_NumLock = 0x0effff,
++ Key_ShiftLock = 0x0fffff,
++ Key_CtrlLock = 0x10ffff,
++ Key_AltLock = 0x11ffff,
++ Key_AltGrLock = 0x12ffff,
++ Key_ShiftL = 0x130000,
++ Key_ShiftR = 0x130001,
++ Key_IncConsole= 0x130002,
++ Key_DecConsole= 0x130003,
++ Key_NotMapped = 0x130004,
++ };
++
++ KeyMap( Qt::Key _key = Qt::Key_unknown, unsigned short _code = 0 )
++ : key( _key ), code( _code )
++ {}
++ KeyMap( ExtraKey _key, unsigned short _code )
++ : key( _key ), code( _code )
++ {}
++ unsigned int key; // 16 Bit
++ unsigned short code;
++ };
++
++ KeyMap kernel_map[(1<<KG_CAPSSHIFT)][NR_KEYS];
++ int current_map;
++ int modifier;
++ bool numlock : 1;
++ bool capslock : 1;
++
++protected:
++ void processKeyEvent(int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat );
+ };
+
+
+@@ -814,6 +868,7 @@
+ fn = FALSE;
+
+ numLock = FALSE;
++#if 0
+ sharp_kbdctl_modifstat st;
+ int dev = ::open("/dev/sharp_kbdctl", O_RDWR);
+ if( dev >= 0 ) {
+@@ -825,6 +880,7 @@
+ ::close(dev);
+ }
+ #endif
++#endif
+ #if defined(QT_QWS_IPAQ)
+ // iPAQ Action Key has ScanCode 0x60: 0x60|0x80 = 0xe0 == extended mode 1 !
+ ipaq_return_pressed = FALSE;
+@@ -1250,98 +1306,10 @@
+ //
+ // Tty keyboard
+ //
+-
+-QWSTtyKeyboardHandler::QWSTtyKeyboardHandler(const QString& device)
+-{
+- kbdFD=open(device.isEmpty() ? "/dev/tty0" : device.latin1(), O_RDWR | O_NDELAY, 0);
+-
+- if ( kbdFD >= 0 ) {
+- QSocketNotifier *notifier;
+- notifier = new QSocketNotifier( kbdFD, QSocketNotifier::Read, this );
+- connect( notifier, SIGNAL(activated(int)),this,
+- SLOT(readKeyboardData()) );
+-
+- // save for restore.
+- tcgetattr( kbdFD, &origTermData );
+-
+- struct termios termdata;
+- tcgetattr( kbdFD, &termdata );
+-
+-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
+-# ifdef QT_QWS_USE_KEYCODES
+- ioctl(kbdFD, KDSKBMODE, K_MEDIUMRAW);
+-# else
+- ioctl(kbdFD, KDSKBMODE, K_RAW);
+-# endif
+-#endif
+-
+- termdata.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP);
+- termdata.c_oflag = 0;
+- termdata.c_cflag = CREAD | CS8;
+- termdata.c_lflag = 0;
+- termdata.c_cc[VTIME]=0;
+- termdata.c_cc[VMIN]=1;
+- cfsetispeed(&termdata, 9600);
+- cfsetospeed(&termdata, 9600);
+- tcsetattr(kbdFD, TCSANOW, &termdata);
+-
+- signal(VTSWITCHSIG, vtSwitchHandler);
+-
+-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
+- struct vt_mode vtMode;
+- ioctl(kbdFD, VT_GETMODE, &vtMode);
+-
+- // let us control VT switching
+- vtMode.mode = VT_PROCESS;
+- vtMode.relsig = VTSWITCHSIG;
+- vtMode.acqsig = VTSWITCHSIG;
+- ioctl(kbdFD, VT_SETMODE, &vtMode);
+-
+- struct vt_stat vtStat;
+- ioctl(kbdFD, VT_GETSTATE, &vtStat);
+- vtQws = vtStat.v_active;
+-#endif
+- }
+-}
+-
+-QWSTtyKeyboardHandler::~QWSTtyKeyboardHandler()
+-{
+- if (kbdFD >= 0)
+- {
+-
+-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
+- struct vt_mode vtMode;
+- ioctl(kbdFD, VT_GETMODE, &vtMode);
+-
+- /* Mickey says: "Better give up control of VT switching.
+- * Hey, I really hate that OS-will-reacquire-resources on process-death
+- * kind of thinking!
+- */
+- vtMode.mode = VT_AUTO;
+- vtMode.relsig = 0;
+- vtMode.acqsig = 0;
+- ioctl(kbdFD, VT_SETMODE, &vtMode);
+-
+- signal(VTSWITCHSIG, 0);
+- qDebug( "~QWSTtyKeyboardHandler() - released VT." );
+-#endif
+-
+-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
+- ioctl(kbdFD, KDSKBMODE, K_XLATE);
+-#endif
+- tcsetattr(kbdFD, TCSANOW, &origTermData);
+- ::close(kbdFD);
+- kbdFD = -1;
+- }
+-}
+-
+-void QWSTtyKeyboardHandler::readKeyboardData()
+-{
+- unsigned char buf[81];
+- int n = ::read(kbdFD, buf, 80 );
+- for ( int loop = 0; loop < n; loop++ )
+- doKey(buf[loop]);
+-}
++/*
++ * Include the alternative implementation
++ */
++#include "kernelkeyboard.cpp"
+
+ typedef struct {
+ unsigned short key;
+Index: src/kernel/keyboard_linux_to_qt.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ qte/src/kernel/keyboard_linux_to_qt.h 2006-04-01 23:37:03.928999408 +0200
+@@ -0,0 +1,263 @@
++/*
++ * Generated with a small python utility found at
++ * http://handhelds.org/~zecke/downloads/python_keytable_creator.py
++ */
++
++static const Qt::Key linux_to_qt[] = {
++Qt::Key_At,
++Qt::Key_A,
++Qt::Key_B,
++Qt::Key_C,
++Qt::Key_D,
++Qt::Key_E,
++Qt::Key_F,
++Qt::Key_G,
++Qt::Key_Backspace,
++Qt::Key_Tab,
++Qt::Key_J, // Linefeed
++Qt::Key_K,
++Qt::Key_L,
++Qt::Key_Enter,
++Qt::Key_N,
++Qt::Key_O,
++Qt::Key_P,
++Qt::Key_Q,
++Qt::Key_R,
++Qt::Key_S,
++Qt::Key_T,
++Qt::Key_U,
++Qt::Key_V,
++Qt::Key_W,
++Qt::Key_X,
++Qt::Key_Y,
++Qt::Key_Z,
++Qt::Key_Escape,
++Qt::Key_Backslash,
++Qt::Key_BracketRight,
++Qt::Key_AsciiCircum,
++Qt::Key_Underscore,
++Qt::Key_Space,
++Qt::Key_Exclam,
++Qt::Key_QuoteDbl,
++Qt::Key_NumberSign,
++Qt::Key_Dollar,
++Qt::Key_Percent,
++Qt::Key_Ampersand,
++Qt::Key_Apostrophe,
++Qt::Key_ParenLeft,
++Qt::Key_ParenRight,
++Qt::Key_Asterisk,
++Qt::Key_Plus,
++Qt::Key_Comma,
++Qt::Key_Minus,
++Qt::Key_Period,
++Qt::Key_Slash,
++Qt::Key_0,
++Qt::Key_1,
++Qt::Key_2,
++Qt::Key_3,
++Qt::Key_4,
++Qt::Key_5,
++Qt::Key_6,
++Qt::Key_7,
++Qt::Key_8,
++Qt::Key_9,
++Qt::Key_Colon,
++Qt::Key_Semicolon,
++Qt::Key_Less,
++Qt::Key_Equal,
++Qt::Key_Greater,
++Qt::Key_Question,
++Qt::Key_At,
++Qt::Key_A,
++Qt::Key_B,
++Qt::Key_C,
++Qt::Key_D,
++Qt::Key_E,
++Qt::Key_F,
++Qt::Key_G,
++Qt::Key_H,
++Qt::Key_I,
++Qt::Key_J,
++Qt::Key_K,
++Qt::Key_L,
++Qt::Key_M,
++Qt::Key_N,
++Qt::Key_O,
++Qt::Key_P,
++Qt::Key_Q,
++Qt::Key_R,
++Qt::Key_S,
++Qt::Key_T,
++Qt::Key_U,
++Qt::Key_V,
++Qt::Key_W,
++Qt::Key_X,
++Qt::Key_Y,
++Qt::Key_Z,
++Qt::Key_BracketLeft,
++Qt::Key_Backslash,
++Qt::Key_BracketRight,
++Qt::Key_AsciiCircum,
++Qt::Key_Underscore,
++Qt::Key_QuoteLeft, // grave
++Qt::Key_A,
++Qt::Key_B,
++Qt::Key_C,
++Qt::Key_D,
++Qt::Key_E,
++Qt::Key_F,
++Qt::Key_G,
++Qt::Key_H,
++Qt::Key_I,
++Qt::Key_J,
++Qt::Key_K,
++Qt::Key_L,
++Qt::Key_M,
++Qt::Key_N,
++Qt::Key_O,
++Qt::Key_P,
++Qt::Key_Q,
++Qt::Key_R,
++Qt::Key_S,
++Qt::Key_T,
++Qt::Key_U,
++Qt::Key_V,
++Qt::Key_W,
++Qt::Key_X,
++Qt::Key_Y,
++Qt::Key_Z,
++Qt::Key_BraceLeft,
++Qt::Key_Bar,
++Qt::Key_BraceRight,
++Qt::Key_AsciiTilde,
++Qt::Key_BackSpace,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_unknown,
++Qt::Key_nobreakspace,
++Qt::Key_exclamdown,
++Qt::Key_cent,
++Qt::Key_sterling,
++Qt::Key_currency,
++Qt::Key_yen,
++Qt::Key_brokenbar,
++Qt::Key_section,
++Qt::Key_diaeresis,
++Qt::Key_copyright,
++Qt::Key_ordfeminine,
++Qt::Key_guillemotleft,
++Qt::Key_notsign,
++Qt::Key_hyphen,
++Qt::Key_registered,
++Qt::Key_macron,
++Qt::Key_degree,
++Qt::Key_plusminus,
++Qt::Key_twosuperior,
++Qt::Key_threesuperior,
++Qt::Key_acute,
++Qt::Key_mu,
++Qt::Key_paragraph,
++Qt::Key_periodcentered,
++Qt::Key_cedilla,
++Qt::Key_onesuperior,
++Qt::Key_masculine,
++Qt::Key_guillemotright,
++Qt::Key_onequarter,
++Qt::Key_onehalf,
++Qt::Key_threequarters,
++Qt::Key_questiondown,
++Qt::Key_Agrave,
++Qt::Key_Aacute,
++Qt::Key_Acircumflex,
++Qt::Key_Atilde,
++Qt::Key_Adiaeresis,
++Qt::Key_Aring,
++Qt::Key_AE,
++Qt::Key_Ccedilla,
++Qt::Key_Egrave,
++Qt::Key_Eacute,
++Qt::Key_Ecircumflex,
++Qt::Key_Ediaeresis,
++Qt::Key_Igrave,
++Qt::Key_Iacute,
++Qt::Key_Icircumflex,
++Qt::Key_Idiaeresis,
++Qt::Key_ETH,
++Qt::Key_Ntilde,
++Qt::Key_Ograve,
++Qt::Key_Oacute,
++Qt::Key_Ocircumflex,
++Qt::Key_Otilde,
++Qt::Key_Odiaeresis,
++Qt::Key_multiply,
++Qt::Key_Ooblique,
++Qt::Key_Ugrave,
++Qt::Key_Uacute,
++Qt::Key_Ucircumflex,
++Qt::Key_Udiaeresis,
++Qt::Key_Yacute,
++Qt::Key_THORN,
++Qt::Key_ssharp,
++Qt::Key_agrave,
++Qt::Key_aacute,
++Qt::Key_acircumflex,
++Qt::Key_atilde,
++Qt::Key_adiaeresis,
++Qt::Key_aring,
++Qt::Key_ae,
++Qt::Key_ccedilla,
++Qt::Key_egrave,
++Qt::Key_eacute,
++Qt::Key_ecircumflex,
++Qt::Key_ediaeresis,
++Qt::Key_igrave,
++Qt::Key_iacute,
++Qt::Key_icircumflex,
++Qt::Key_idiaeresis,
++Qt::Key_eth,
++Qt::Key_ntilde,
++Qt::Key_ograve,
++Qt::Key_oacute,
++Qt::Key_ocircumflex,
++Qt::Key_otilde,
++Qt::Key_odiaeresis,
++Qt::Key_division,
++Qt::Key_oslash,
++Qt::Key_ugrave,
++Qt::Key_uacute,
++Qt::Key_ucircumflex,
++Qt::Key_udiaeresis,
++Qt::Key_yacute,
++Qt::Key_thorn,
++Qt::Key_ydiaeresis
++};
diff --git a/recipes-qt/qte/qte-2.3.10/key.patch b/recipes-qt/qte/qte-2.3.10/key.patch
new file mode 100644
index 0000000..d3cf4f7
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/key.patch
@@ -0,0 +1,74 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+Index: qt-2.3.10/src/kernel/qkeyboard_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qkeyboard_qws.cpp 2005-03-31 17:51:14.978609000 -0500
++++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp 2005-03-31 17:54:28.140243968 -0500
+@@ -848,6 +848,9 @@
+ bool release = false;
+ int keypad = 0;
+
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // need autorepeat implemented here?
++ bool repeatable = TRUE;
++
+ #ifndef QT_QWS_USE_KEYCODES
+ #if defined(QT_QWS_IPAQ)
+ // map ipaq 'action' key (0x60, 0xe0)
+@@ -984,9 +987,6 @@
+ if ( currentKey )
+ keyCode = currentKey->key_code;
+
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // need autorepeat implemented here?
+- bool repeatable = TRUE;
+-
+ #if defined(QT_QWS_IPAQ)
+ switch (code) {
+ #if defined(QT_QWS_SL5XXX)
+@@ -1061,25 +1061,23 @@
+ repeatable = FALSE;
+ #endif
+
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+ if ( qt_screen->isTransformed()
+ && keyCode >= Qt::Key_Left && keyCode <= Qt::Key_Down )
+ {
+ keyCode = xform_dirkey(keyCode);
+ }
+-
+-#ifdef QT_QWS_AUTOREPEAT_MANUALLY
+- if ( repeatable && !release )
+- rep->start(prevuni,prevkey,modifiers);
+- else
+- rep->stop();
+ #endif
++
+ #endif
+ /*
+ Translate shift+Key_Tab to Key_Backtab
+ */
+ if (( keyCode == Key_Tab ) && shift )
+ keyCode = Key_Backtab;
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+ }
++#endif
+
+ #ifndef QT_QWS_USE_KEYCODES
+ /*
+@@ -1234,6 +1232,14 @@
+ } else {
+ prevkey = prevuni = 0;
+ }
++
++#ifdef QT_QWS_AUTOREPEAT_MANUALLY
++ if ( repeatable && !release )
++ rep->start(prevuni,prevkey,modifiers);
++ else
++ rep->stop();
++#endif
++
+ }
+ #ifndef QT_QWS_USE_KEYCODES
+ extended = 0;
diff --git a/recipes-qt/qte/qte-2.3.10/keyboardless-buttonmap.patch b/recipes-qt/qte/qte-2.3.10/keyboardless-buttonmap.patch
new file mode 100644
index 0000000..9bea5b6
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/keyboardless-buttonmap.patch
@@ -0,0 +1,19 @@
+--- qt-2.3.10/src/kernel/qkeyboard_qws.cpp.org 2006-09-16 20:54:32.000000000 +0000
++++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp 2006-10-06 13:25:29.000000000 +0000
+@@ -1018,6 +1018,16 @@
+ repeatable = FALSE;
+ break;
+ #endif
++
++ case 0x74: // kernel KEY_POWER
++ keyCode = Key_F34;
++ repeatable = FALSE;
++ break;
++ case 89: // kernel KEY_RO
++ keyCode = Key_F24;
++ repeatable = FALSE;
++ break;
++
+ case 0x78:
+ # if defined(QT_QWS_IPAQ)
+ keyCode = Key_F24; // record
diff --git a/recipes-qt/qte/qte-2.3.10/no-moc.patch b/recipes-qt/qte/qte-2.3.10/no-moc.patch
new file mode 100644
index 0000000..128f8a6
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/no-moc.patch
@@ -0,0 +1,37 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041211/Makefile~no-moc
++++ qt-2.3.9-snapshot-20041211/Makefile
+@@ -8,7 +8,7 @@
+ init: FORCE
+ @$(MAKE) QTDIR=`pwd` all
+
+-all: symlinks src-moc src-mt sub-src sub-tools sub-tutorial sub-examples
++all: symlinks src-mt sub-src sub-tools sub-tutorial sub-examples
+ @echo
+ @echo "The Qt library is now built in ./lib"
+ @echo "The Qt examples are built in the directories in ./examples"
+@@ -31,10 +31,10 @@
+ symlinks: .buildopts
+ @cd include; rm -f q*.h; for i in ../src/*/q*.h ../src/3rdparty/*/q*.h ../extensions/*/src/q*.h; do ln -s $$i .; done; rm -f q*_p.h
+
+-sub-src: src-moc src-mt .buildopts FORCE
++sub-src: src-mt .buildopts FORCE
+ cd src; $(MAKE)
+
+-src-mt: src-moc .buildopts FORCE
++src-mt: .buildopts FORCE
+ $(MAKE) -f src-mt.mk
+
+ sub-tutorial: sub-src FORCE
+@@ -45,7 +45,6 @@
+
+ clean:
+ -rm .buildopts
+- cd src/moc; $(MAKE) clean
+ cd src; $(MAKE) clean
+ -rm src/tmp/*.o src/tmp/*.a src/allmoc.cpp
+ -find src/3rdparty -name '*.o' | xargs rm
diff --git a/recipes-qt/qte/qte-2.3.10/qiconview-speed.patch b/recipes-qt/qte/qte-2.3.10/qiconview-speed.patch
new file mode 100644
index 0000000..bac9b97
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/qiconview-speed.patch
@@ -0,0 +1,122 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp~qiconview-speed
++++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp
+@@ -225,6 +225,7 @@
+ QIconView::SelectionMode selectionMode;
+ QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
+ QRect *rubber;
++ QPixmap *backBuffer;
+ QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
+ *fullRedrawTimer;
+ int rastX, rastY, spacing;
+@@ -2268,6 +2269,7 @@
+ d->currentItem = 0;
+ d->highlightedItem = 0;
+ d->rubber = 0;
++ d->backBuffer = 0;
+ d->scrollTimer = 0;
+ d->startDragItem = 0;
+ d->tmpCurrentItem = 0;
+@@ -2416,6 +2418,8 @@
+ delete item;
+ item = tmp;
+ }
++ delete d->backBuffer;
++ d->backBuffer = 0;
+ delete d->fm;
+ d->fm = 0;
+ #ifndef QT_NO_TOOLTIP
+@@ -2882,6 +2886,48 @@
+ }
+
+ /*!
++ This function grabs all paintevents that otherwise would have been
++ processed by the QScrollView::viewportPaintEvent(). Here we use a
++ doublebuffer to reduce 'on-paint' flickering on QIconView
++ (and of course its childs).
++
++ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
++*/
++
++void QIconView::bufferedPaintEvent( QPaintEvent* pe )
++{
++ QWidget* vp = viewport();
++ QRect r = pe->rect() & vp->rect();
++ int ex = r.x() + contentsX();
++ int ey = r.y() + contentsY();
++ int ew = r.width();
++ int eh = r.height();
++
++ if ( !d->backBuffer )
++ d->backBuffer = new QPixmap(vp->size());
++ if ( d->backBuffer->size() != vp->size() ) {
++ //Resize function (with hysteesis). Uses a good compromise between memory
++ //consumption and speed (number) of resizes.
++ float newWidth = (float)vp->width();
++ float newHeight = (float)vp->height();
++ if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
++ {
++ newWidth *= 1.1892;
++ newHeight *= 1.1892;
++ d->backBuffer->resize( (int)newWidth, (int)newHeight );
++ } else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
++ d->backBuffer->resize( (int)newWidth, (int)newHeight );
++ }
++
++ QPainter p;
++ p.begin(d->backBuffer, vp);
++ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
++ p.end();
++ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
++}
++
++/*!
++
+ \reimp
+ */
+
+@@ -4939,7 +4985,7 @@
+ if ( !d->rubber )
+ drawDragShapes( d->oldDragPos );
+ }
+- viewportPaintEvent( (QPaintEvent*)e );
++ bufferedPaintEvent ((QPaintEvent*)e );
+ if ( d->dragging ) {
+ if ( !d->rubber )
+ drawDragShapes( d->oldDragPos );
+@@ -5377,11 +5423,19 @@
+ return;
+
+ if ( item->d->container1 && d->firstContainer ) {
+- item->d->container1->items.removeRef( item );
++ //Special-case checking of the last item, since this may be
++ //called a few times for the same item.
++ if (item->d->container1->items.last() == item)
++ item->d->container1->items.removeLast();
++ else
++ item->d->container1->items.removeRef( item );
+ }
+ item->d->container1 = 0;
+ if ( item->d->container2 && d->firstContainer ) {
+- item->d->container2->items.removeRef( item );
++ if (item->d->container2->items.last() == item)
++ item->d->container2->items.removeLast();
++ else
++ item->d->container2->items.removeRef( item );
+ }
+ item->d->container2 = 0;
+
+--- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h~qiconview-speed
++++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h
+@@ -444,6 +444,7 @@
+ virtual void contentsDropEvent( QDropEvent *e );
+ #endif
+
++ void bufferedPaintEvent( QPaintEvent* );
+ virtual void resizeEvent( QResizeEvent* e );
+ virtual void keyPressEvent( QKeyEvent *e );
+ virtual void focusInEvent( QFocusEvent *e );
diff --git a/recipes-qt/qte/qte-2.3.10/qpe.patch b/recipes-qt/qte/qte-2.3.10/qpe.patch
new file mode 100644
index 0000000..554c42c
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/qpe.patch
@@ -0,0 +1,105 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- /dev/null
++++ qt-2.3.9-snapshot-20041211/src/tools/qconfig-qpe.h
+@@ -0,0 +1,97 @@
++/**********************************************************************
++** Copyright (C) 2000 Trolltech AS. All rights reserved.
++**
++** This file is part of Qtopia Environment.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++#ifndef QT_H
++#endif // QT_H
++
++// Empty leaves all features enabled. See doc/html/features.html for choices.
++
++// Note that disabling some features will produce a libqt that is not
++// compatible with other libqt builds. Such modifications are only
++// supported on Qt/Embedded where reducing the library size is important
++// and where the application-suite is often a fixed set.
++
++#ifndef QT_DLL
++#define QT_DLL // Internal
++#endif
++
++#undef QT_NO_QWS_CURSOR
++#define QT_NO_QWS_MOUSE_AUTO
++#ifndef QT_NO_CODECS
++#define QT_NO_CODECS
++#endif
++#define QT_NO_UNICODETABLES
++//#define QT_NO_IMAGEIO_BMP
++#define QT_NO_IMAGEIO_PPM
++//#define QT_NO_ASYNC_IO
++//#define QT_NO_ASYNC_IMAGE_IO
++#define QT_NO_FREETYPE
++#define QT_NO_BDF
++//#define QT_NO_FONTDATABASE
++#define QT_NO_DRAGANDDROP
++//#define QT_NO_CLIPBOARD
++#define QT_NO_PROPERTIES
++#define QT_NO_NETWORKPROTOCOL
++
++#define QT_NO_IMAGE_TEXT
++
++//#define QT_NO_TOOLTIP
++#define QT_NO_COLORNAMES
++#define QT_NO_TRANSFORMATIONS
++#define QT_NO_TRANSLATION_BUILDER
++#define QT_NO_COMPLEXTEXT
++#define QT_NO_PRINTER
++#define QT_NO_PICTURE
++//#define QT_NO_ICONVIEW
++#define QT_NO_DIAL
++#define QT_NO_SIZEGRIP
++#define QT_NO_WORKSPACE
++//#define QT_NO_TABLE
++//#define QT_NO_ACTION
++//#define QT_NO_SETTINGS
++#define QT_NO_STYLE_POCKETPC
++#ifndef QT_NO_STYLE_AQUA
++# define QT_NO_STYLE_AQUA
++#endif
++#define QT_NO_STYLE_MOTIF
++#define QT_NO_STYLE_PLATINUM
++#define QT_NO_FILEDIALOG
++#define QT_NO_FONTDIALOG
++#define QT_NO_PRINTDIALOG
++#define QT_NO_COLORDIALOG
++#define QT_NO_INPUTDIALOG
++//#define QT_NO_MESSAGEBOX
++#define QT_NO_PROGRESSDIALOG
++//#define QT_NO_TABDIALOG
++#define QT_NO_WIZARD
++#define QT_NO_EFFECTS
++//#define QT_NO_COMPONENT
++#define QT_NO_DOM
++#define QT_NO_SEMIMODAL
++//#define QT_NO_PROGRESSBAR
++#define QT_NO_SPLITTER
++
++//#define QT_NO_QWS_SAVEFONTS
++//#define QT_NO_QWS_PROPERTIES
++
++#define QT_NO_QWS_BEOS_WM_STYLE
++#define QT_NO_QWS_KDE2_WM_STYLE
++#define QT_NO_QWS_KDE_WM_STYLE
++#define QT_NO_QWS_WINDOWS_WM_STYLE
++
diff --git a/recipes-qt/qte/qte-2.3.10/qt-visibility.patch b/recipes-qt/qte/qte-2.3.10/qt-visibility.patch
new file mode 100644
index 0000000..ccdebb0
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/qt-visibility.patch
@@ -0,0 +1,459 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20050114/configure~qt-visibility
++++ qt-2.3.9-snapshot-20050114/configure
+@@ -409,6 +409,9 @@
+ -tslib)
+ TSLIB=yes
+ ;;
++ -visibility-hidden)
++ VISIBILITY=YES
++ ;;
+ -no-g++-exceptions)
+ GPLUSPLUS_EXCEPTIONS=no
+ ;;
+@@ -1296,6 +1299,9 @@
+ -tslib ............. Enable TSlib (touchscreen library) mouse handler.
+ See http://arm.linux.org.uk
+
++ -visibility-hidden . Use -fvisibility=hidden as default. This requires GCC 4.0
++ or a special patched GCC to support the visibility attribute
++
+ -no-g++-exceptions . Disable exceptions on platforms using the GNU C++
+ compiler by using the -fno-exceptions flag.
+
+@@ -1364,6 +1370,10 @@
+ QT_CXX="${QT_CXX} -DQT_QWS_TSLIB"
+ QT_LIBS="${QT_LIBS} -lts"
+ fi
++if [ "x$VISIBILITY=" = "xyes" ]
++then
++ QT_CXX="${QT_CXX} -DGCC_SUPPORTS_VISIBILITY -fvisibility=hidden"
++fi
+ if [ "x$THREAD" = "xyes" ]
+ then
+ cat >src-mt.mk <<EOF
+--- qt-2.3.9-snapshot-20050114/src/tools/qglobal.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/tools/qglobal.h
+@@ -503,6 +503,12 @@
+ #undef QT_DLL
+ #endif
+
++#ifdef GCC_SUPPORTS_VISIBILITY
++#ifndef Q_EXPORT
++ #define Q_EXPORT __attribute__((visibility("default")))
++#endif
++#endif
++
+ #ifndef Q_EXPORT
+ #define Q_EXPORT
+ #endif
+--- qt-2.3.9-snapshot-20050114/src/widgets/qscrollview.cpp~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/widgets/qscrollview.cpp
+@@ -696,7 +696,7 @@
+ The surrounding environment (or application, if there is no
+ environment, may set this. Requires Qt >= 2.3.8.
+ */
+-bool qt_left_hand_scrollbars = FALSE;
++bool Q_EXPORT qt_left_hand_scrollbars = FALSE;
+
+ /*!
+ Updates scrollbars - all possibilities considered. You should never
+--- qt-2.3.9-snapshot-20050114/src/Makefile.in~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/Makefile.in
+@@ -641,7 +641,7 @@
+ network/qsocket.h \
+ network/qsocketdevice.h
+ echo '#include "kernel/qt.h"' >allmoc.cpp
+- $(CXX) -E -DQT_MOC_CPP $(CXXFLAGS) $(INCPATH) >allmoc.h allmoc.cpp
++ $(CXX) -E -DQT_MOC_CPP -DQ_EXPORT="" $(CXXFLAGS) $(INCPATH) >allmoc.h allmoc.cpp
+ $(MOC) -o allmoc.cpp allmoc.h
+ perl -pi -e 's{"allmoc.h"}{"kernel/qt.h"}' allmoc.cpp
+ rm allmoc.h
+--- qt-2.3.9-snapshot-20050114/src/kernel/qcopchannel_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qcopchannel_qws.h
+@@ -42,7 +42,7 @@
+ class QCopChannelPrivate;
+ class QWSClient;
+
+-class QCopChannel : public QObject
++class Q_EXPORT QCopChannel : public QObject
+ {
+ Q_OBJECT
+ public:
+--- qt-2.3.9-snapshot-20050114/src/kernel/qfontmanager_qws.cpp~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qfontmanager_qws.cpp
+@@ -68,7 +68,7 @@
+ return r;
+ }
+
+-QFontManager * qt_fontmanager=0;
++QFontManager Q_EXPORT *qt_fontmanager=0;
+
+ /*!
+ \class QFontManager qfontmanager_qws.h
+--- qt-2.3.9-snapshot-20050114/src/kernel/qgfx_qws.cpp~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qgfx_qws.cpp
+@@ -38,10 +38,10 @@
+ #include <stdlib.h>
+
+ #ifndef QT_NO_QWS_CURSOR
+-bool qt_sw_cursor=false;
+-QScreenCursor * qt_screencursor=0;
++bool Q_EXPORT qt_sw_cursor=false;
++QScreenCursor Q_EXPORT * qt_screencursor=0;
+ #endif
+-QScreen * qt_screen=0;
++QScreen Q_EXPORT * qt_screen=0;
+
+ extern bool qws_screen_is_interlaced; //### hack, from qapplication_qws.cpp
+
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwindowsystem_qws.cpp~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwindowsystem_qws.cpp
+@@ -89,7 +89,7 @@
+
+ extern void qt_setMaxWindowRect(const QRect& r);
+
+-QWSServer *qwsServer=0;
++QWSServer Q_EXPORT *qwsServer=0;
+
+ #define MOUSE 0
+ #define KEY 1
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwsdecoration_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwsdecoration_qws.h
+@@ -41,7 +41,7 @@
+ /*
+ Implements decoration styles
+ */
+-class QWSDecoration
++class Q_EXPORT QWSDecoration
+ {
+ public:
+ QWSDecoration() {}
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwindowsystem_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwindowsystem_qws.h
+@@ -67,7 +67,7 @@
+
+ struct QWSWindowData;
+
+-class QWSScreenSaver
++class Q_EXPORT QWSScreenSaver
+ {
+ public:
+ virtual ~QWSScreenSaver();
+@@ -75,7 +75,7 @@
+ virtual bool save(int level)=0;
+ };
+
+-class QWSWindow
++class Q_EXPORT QWSWindow
+ {
+ friend class QWSServer;
+ public:
+@@ -169,9 +169,9 @@
+ struct QWSCommandStruct;
+
+ #ifndef QT_NO_QWS_MULTIPROCESS
+-class QWSServer : public QWSServerSocket
++class Q_EXPORT QWSServer : public QWSServerSocket
+ #else
+-class QWSServer : public QObject
++class Q_EXPORT QWSServer : public QObject
+ #endif
+ {
+ friend class QCopChannel;
+@@ -501,7 +501,7 @@
+
+
+ #ifndef QT_NO_QWS_IM
+-class QWSInputMethod : public QObject
++class Q_EXPORT QWSInputMethod : public QObject
+ {
+ public:
+ QWSInputMethod();
+@@ -525,7 +525,7 @@
+ #endif
+
+ #ifndef QT_NO_QWS_FSIM
+-class QWSGestureMethod : public QObject
++class Q_EXPORT QWSGestureMethod : public QObject
+ {
+ public:
+ QWSGestureMethod();
+@@ -573,7 +573,7 @@
+
+ typedef QMap<int, QWSCursor*> QWSCursorMap;
+
+-class QWSClient : public QObject
++class Q_EXPORT QWSClient : public QObject
+ {
+ Q_OBJECT
+ public:
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwsdefaultdecoration_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwsdefaultdecoration_qws.h
+@@ -44,7 +44,7 @@
+
+
+
+-class QWSDefaultDecoration : public QWSDecoration
++class Q_EXPORT QWSDefaultDecoration : public QWSDecoration
+ {
+ public:
+ QWSDefaultDecoration();
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwscommand_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwscommand_qws.h
+@@ -47,8 +47,8 @@
+ *
+ *********************************************************************/
+ #ifndef QT_NO_QWS_MULTIPROCESS
+-void qws_write_command( QWSSocket *socket, int type, char *simpleData, int simpleLen, char *rawData, int rawLen );
+-bool qws_read_command( QWSSocket *socket, char *&simpleData, int &simpleLen, char *&rawData, int &rawLen, int &bytesRead );
++void Q_EXPORT qws_write_command( QWSSocket *socket, int type, char *simpleData, int simpleLen, char *rawData, int rawLen );
++bool Q_EXPORT qws_read_command( QWSSocket *socket, char *&simpleData, int &simpleLen, char *&rawData, int &rawLen, int &bytesRead );
+ #endif
+ /*********************************************************************
+ *
+@@ -57,7 +57,7 @@
+ *********************************************************************/
+
+
+-struct QWSProtocolItem
++struct Q_EXPORT QWSProtocolItem
+ {
+ // ctor - dtor
+ QWSProtocolItem( int t, int len, char *ptr ) : type( t ),
+--- qt-2.3.9-snapshot-20050114/src/kernel/qfont_qws.cpp~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qfont_qws.cpp
+@@ -152,7 +152,7 @@
+ static QFontCache *fontCache = 0; // cache of loaded fonts
+ static QFontDict *fontDict = 0; // dict of all loaded fonts
+
+-void qws_clearLoadedFonts()
++void Q_EXPORT qws_clearLoadedFonts()
+ {
+ QFontDictIt it( *fontDict );
+ while ( it.current() ) {
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwscursor_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwscursor_qws.h
+@@ -37,7 +37,7 @@
+ #include <qimage.h>
+ #endif // QT_H
+
+-class QWSCursor : public Qt
++class Q_EXPORT QWSCursor : public Qt
+ {
+ public:
+ QWSCursor() {}
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwsevent_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwsevent_qws.h
+@@ -40,7 +40,7 @@
+
+ struct QWSMouseEvent;
+
+-struct QWSEvent : QWSProtocolItem {
++struct Q_EXPORT QWSEvent : QWSProtocolItem {
+
+ QWSEvent( int t, int len, char *ptr ) : QWSProtocolItem(t,len,ptr) {}
+
+@@ -71,7 +71,7 @@
+
+ //All events must start with windowID
+
+-struct QWSConnectedEvent : QWSEvent {
++struct Q_EXPORT QWSConnectedEvent : QWSEvent {
+ QWSConnectedEvent()
+ : QWSEvent( QWSEvent::Connected, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -90,7 +90,7 @@
+ char *display;
+ };
+
+-struct QWSMaxWindowRectEvent : QWSEvent {
++struct Q_EXPORT QWSMaxWindowRectEvent : QWSEvent {
+ QWSMaxWindowRectEvent()
+ : QWSEvent( MaxWindowRect, sizeof( simpleData ), (char*)&simpleData ) { }
+ struct SimpleData {
+@@ -99,7 +99,7 @@
+ } simpleData;
+ };
+
+-struct QWSMouseEvent : QWSEvent {
++struct Q_EXPORT QWSMouseEvent : QWSEvent {
+ QWSMouseEvent()
+ : QWSEvent( QWSEvent::Mouse, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -110,7 +110,7 @@
+ } simpleData;
+ };
+
+-struct QWSFocusEvent : QWSEvent {
++struct Q_EXPORT QWSFocusEvent : QWSEvent {
+ QWSFocusEvent()
+ : QWSEvent( QWSEvent::Focus, sizeof( simpleData ), (char*)&simpleData )
+ { memset((char*)&simpleData,0,sizeof(simpleData)); }
+@@ -120,7 +120,7 @@
+ } simpleData;
+ };
+
+-struct QWSKeyEvent: QWSEvent {
++struct Q_EXPORT QWSKeyEvent: QWSEvent {
+ QWSKeyEvent()
+ : QWSEvent( QWSEvent::Key, sizeof( simpleData ),
+ (char*)&simpleData )
+@@ -136,7 +136,7 @@
+ };
+
+
+-struct QWSCreationEvent : QWSEvent {
++struct Q_EXPORT QWSCreationEvent : QWSEvent {
+ QWSCreationEvent()
+ : QWSEvent( QWSEvent::Creation, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -146,7 +146,7 @@
+ };
+
+ #ifndef QT_NO_QWS_PROPERTIES
+-struct QWSPropertyNotifyEvent : QWSEvent {
++struct Q_EXPORT QWSPropertyNotifyEvent : QWSEvent {
+ QWSPropertyNotifyEvent()
+ : QWSEvent( QWSEvent::PropertyNotify, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -162,7 +162,7 @@
+ };
+ #endif
+
+-struct QWSSelectionClearEvent : QWSEvent {
++struct Q_EXPORT QWSSelectionClearEvent : QWSEvent {
+ QWSSelectionClearEvent()
+ : QWSEvent( QWSEvent::SelectionClear, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -171,7 +171,7 @@
+ } simpleData;
+ };
+
+-struct QWSSelectionRequestEvent : QWSEvent {
++struct Q_EXPORT QWSSelectionRequestEvent : QWSEvent {
+ QWSSelectionRequestEvent()
+ : QWSEvent( QWSEvent::SelectionRequest, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -184,7 +184,7 @@
+ } simpleData;
+ };
+
+-struct QWSSelectionNotifyEvent : QWSEvent {
++struct Q_EXPORT QWSSelectionNotifyEvent : QWSEvent {
+ QWSSelectionNotifyEvent()
+ : QWSEvent( QWSEvent::SelectionNotify, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -198,7 +198,7 @@
+
+ //complex events:
+
+-struct QWSRegionModifiedEvent : QWSEvent {
++struct Q_EXPORT QWSRegionModifiedEvent : QWSEvent {
+ QWSRegionModifiedEvent()
+ : QWSEvent( QWSEvent::RegionModified, sizeof( simpleData ),
+ (char*)&simpleData )
+@@ -218,7 +218,7 @@
+ QRect *rectangles;
+ };
+ #ifndef QT_NO_QWS_PROPERTIES
+-struct QWSPropertyReplyEvent : QWSEvent {
++struct Q_EXPORT QWSPropertyReplyEvent : QWSEvent {
+ QWSPropertyReplyEvent()
+ : QWSEvent( QWSEvent::PropertyReply, sizeof( simpleData ),
+ (char*)&simpleData ) {}
+@@ -238,7 +238,7 @@
+ #endif //QT_NO_QWS_PROPERTIES
+
+ #ifndef QT_NO_COP
+-struct QWSQCopMessageEvent : QWSEvent {
++struct Q_EXPORT QWSQCopMessageEvent : QWSEvent {
+ QWSQCopMessageEvent()
+ : QWSEvent( QWSEvent::QCopMessage, sizeof( simpleData ),
+ (char*)&simpleData )
+@@ -268,7 +268,7 @@
+
+ #endif
+
+-struct QWSWindowOperationEvent : QWSEvent {
++struct Q_EXPORT QWSWindowOperationEvent : QWSEvent {
+ QWSWindowOperationEvent()
+ : QWSEvent( WindowOperation, sizeof( simpleData ), (char*)&simpleData ) { }
+
+@@ -280,7 +280,7 @@
+ };
+
+ #ifndef QT_NO_QWS_IM
+-struct QWSIMEvent : QWSEvent {
++struct Q_EXPORT QWSIMEvent : QWSEvent {
+ QWSIMEvent()
+ : QWSEvent( IMEvent, sizeof( simpleData ), (char*)&simpleData ) { }
+
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwsmanager_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwsmanager_qws.h
+@@ -48,7 +48,7 @@
+ class QWSButton;
+ class QWSManager;
+
+-class QWSManager : public QObject
++class Q_EXPORT QWSManager : public QObject
+ {
+ Q_OBJECT
+
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwsmouse_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwsmouse_qws.h
+@@ -38,7 +38,7 @@
+ #include <qpointarray.h>
+ #endif // QT_H
+
+-class QWSPointerCalibrationData
++class Q_EXPORT QWSPointerCalibrationData
+ {
+ public:
+ enum Location { TopLeft = 0, BottomLeft = 1, BottomRight = 2, TopRight = 3,
+@@ -47,7 +47,7 @@
+ QPoint screenPoints[5];
+ };
+
+-class QWSMouseHandler : public QObject {
++class Q_EXPORT QWSMouseHandler : public QObject {
+ Q_OBJECT
+ public:
+ QWSMouseHandler();
+--- qt-2.3.9-snapshot-20050114/src/kernel/qwsproperty_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qwsproperty_qws.h
+@@ -47,7 +47,7 @@
+
+ class QWSPropertyManagerData;
+
+-class QWSPropertyManager
++class Q_EXPORT QWSPropertyManager
+ {
+ public:
+ enum Mode {
+--- qt-2.3.9-snapshot-20050114/src/kernel/qlayoutengine.cpp~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qlayoutengine.cpp
+@@ -70,7 +70,7 @@
+ pos and space give the interval (relative to parentWidget topLeft.)
+ */
+
+-void qGeomCalc( QArray<QLayoutStruct> &chain, int start, int count, int pos,
++void Q_EXPORT qGeomCalc( QArray<QLayoutStruct> &chain, int start, int count, int pos,
+ int space, int spacer )
+ {
+ typedef int fixed;
+--- qt-2.3.9-snapshot-20050114/src/kernel/qfontmanager_qws.h~qt-visibility
++++ qt-2.3.9-snapshot-20050114/src/kernel/qfontmanager_qws.h
+@@ -84,7 +84,7 @@
+ // e.g. Truetype Times, 10 point. There's only one of these though;
+ // we want to share generated glyphs
+
+-class QRenderedFont {
++class Q_EXPORT QRenderedFont {
+
+ public:
+
diff --git a/recipes-qt/qte/qte-2.3.10/qtabbar.patch b/recipes-qt/qte/qte-2.3.10/qtabbar.patch
new file mode 100644
index 0000000..6940ec9
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/qtabbar.patch
@@ -0,0 +1,39 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/widgets/qtabbar.cpp~qtabbar
++++ qt-2.3.10/src/widgets/qtabbar.cpp
+@@ -260,7 +260,6 @@
+ lstatic->insert( index, newTab );
+
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ) );
+
+ #ifndef QT_NO_ACCEL
+@@ -282,7 +281,6 @@
+ l->remove( t );
+ lstatic->remove( t );
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ) );
+ update();
+ }
+@@ -887,6 +885,7 @@
+ }
+ for ( t = lstatic->first(); t; t = lstatic->next() )
+ t->r.setHeight( r.height() );
++ updateArrowButtons();
+ }
+
+ /*!
+@@ -977,7 +976,6 @@
+ d->leftB->setGeometry( width() - 2*arrowWidth, 0, arrowWidth, height() );
+ #endif
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ));
+ }
+
diff --git a/recipes-qt/qte/qte-2.3.10/qte-fix-iconsize.patch b/recipes-qt/qte/qte-2.3.10/qte-fix-iconsize.patch
new file mode 100644
index 0000000..cc14315
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/qte-fix-iconsize.patch
@@ -0,0 +1,99 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/widgets/qpopupmenu.cpp~qte-iconsize
++++ qt-2.3.10/src/widgets/qpopupmenu.cpp
+@@ -820,7 +820,7 @@
+ mi->custom()->setFont( font() );
+ if ( mi->iconSet() != 0)
+ maxPMWidth = QMAX( maxPMWidth,
+- mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4 );
++ mi->iconSet()->pixmap().width() + 4 );
+ }
+
+ int dh = QApplication::desktop()->height();
+--- qt-2.3.10/src/widgets/qtabbar.cpp~qte-iconsize
++++ qt-2.3.10/src/widgets/qtabbar.cpp
+@@ -414,8 +414,8 @@
+ int iw = 0;
+ int ih = 0;
+ if ( t->iconset != 0 ) {
+- iw = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).width();
+- ih = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).height();
++ iw = t->iconset->pixmap().width();
++ ih = t->iconset->pixmap().height();
+ if (!t->label.isEmpty())
+ iw +=2;
+ }
+@@ -442,7 +442,11 @@
+ ? QIconSet::Normal : QIconSet::Disabled;
+ if ( mode == QIconSet::Normal && has_focus )
+ mode = QIconSet::Active;
+- QPixmap pixmap = t->iconset->pixmap( QIconSet::Small, mode );
++ QPixmap pixmap;
++ if ( mode == QIconSet::Disabled )
++ pixmap = t->iconset->pixmap( QIconSet::Automatic, QIconSet::Disabled );
++ else
++ pixmap = t->iconset->pixmap();
+ int pixw = pixmap.width();
+ int pixh = pixmap.height();
+ r.setLeft( r.left() + pixw + 2 );
+@@ -871,8 +875,8 @@
+ int iw = 0;
+ int ih = 0;
+ if ( t->iconset != 0 ) {
+- iw = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).width();
+- ih = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).height();
++ iw = t->iconset->pixmap().width();
++ ih = t->iconset->pixmap().height();
+ if (!t->label.isNull())
+ iw +=2;
+ }
+@@ -915,8 +919,8 @@
+ int iw = 0;
+ int ih = 0;
+ if ( t->iconset != 0 ) {
+- iw = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).width();
+- ih = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).height();
++ iw = t->iconset->pixmap().width();
++ ih = t->iconset->pixmap().height();
+ if (!t->label.isEmpty())
+ iw +=2;
+ }
+@@ -947,8 +951,8 @@
+ int iw = 0;
+ int ih = 0;
+ if ( t->iconset != 0 ) {
+- iw = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).width();
+- ih = t->iconset->pixmap( QIconSet::Small, QIconSet::Normal ).height();
++ iw = t->iconset->pixmap().width();
++ ih = t->iconset->pixmap().height();
+ if (!t->label.isEmpty())
+ iw +=2;
+ }
+--- qt-2.3.10/src/widgets/qwindowsstyle.cpp~qte-iconsize
++++ qt-2.3.10/src/widgets/qwindowsstyle.cpp
+@@ -1182,7 +1182,7 @@
+ h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame;
+
+ if ( !mi->isSeparator() && mi->iconSet() != 0 ) {
+- h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame );
++ h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame );
+ }
+ if ( mi->custom() )
+ h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame );
+@@ -1246,7 +1246,11 @@
+ QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal;
+ if (act && !dis )
+ mode = QIconSet::Active;
+- QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode );
++ QPixmap pixmap;
++ if ( mode == QIconSet::Disabled )
++ pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, QIconSet::Disabled );
++ else
++ pixmap = mi->iconSet()->pixmap();
+ int pixw = pixmap.width();
+ int pixh = pixmap.height();
+ if ( act && !dis ) {
diff --git a/recipes-qt/qte/qte-2.3.10/remove-unused-kbdhandler.patch b/recipes-qt/qte/qte-2.3.10/remove-unused-kbdhandler.patch
new file mode 100644
index 0000000..2bebb02
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/remove-unused-kbdhandler.patch
@@ -0,0 +1,420 @@
+--- qt-2.3.10.orig/src/kernel/qkeyboard_qws.cpp.org 2007-07-19 11:00:39.000000000 +0300
++++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp 2007-07-19 12:14:48.000000000 +0300
+@@ -853,417 +853,6 @@
+
+ void QWSPC101KeyboardHandler::doKey(uchar code)
+ {
+- const QWSServer::KeyMap *currentKey = 0;
+- int keyCode = Qt::Key_unknown;
+- bool release = false;
+- int keypad = 0;
+-
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // need autorepeat implemented here?
+- bool repeatable = TRUE;
+-
+-#ifndef QT_QWS_USE_KEYCODES
+-#if defined(QT_QWS_IPAQ)
+- // map ipaq 'action' key (0x60, 0xe0)
+- if ((code & 0x7f) == 0x60) {
+-#if defined(QT_KEYPAD_MODE)
+- // to keycode for select (keypad mode)
+- code = (code & 0x80) | 116;
+-#else
+- // to keycode for space. (no keypad mode0
+- code = (code & 0x80) | 57;
+-#endif
+- }
+-#endif
+-
+-#if !defined(QT_QWS_SL5XXX)
+- if (code == 224
+-#if defined(QT_QWS_IPAQ)
+- && !ipaq_return_pressed
+-#endif
+- ) {
+- // extended
+- extended = 1;
+- return;
+- }
+- else if (code == 225) {
+- // extended 2
+- extended = 2;
+- return;
+- }
+-#endif
+-#endif
+-
+-
+- /*------------------------------------------------------------------
+- First find the Qt KeyCode
+- ------------------------------------------------------------------*/
+-
+- if (code & 0x80) {
+- release = true;
+- code &= 0x7f;
+- }
+-
+-#ifndef QT_QWS_USE_KEYCODES
+- if (extended == 1) {
+- currentKey = overrideMap ? overrideMap->find( code+0xe000 ) : 0;
+- if ( currentKey )
+- keyCode = currentKey->key_code;
+- else
+- switch (code) {
+- case 72:
+- keyCode = Qt::Key_Up;
+- break;
+- case 75:
+- keyCode = Qt::Key_Left;
+- break;
+- case 77:
+- keyCode = Qt::Key_Right;
+- break;
+- case 80:
+- keyCode = Qt::Key_Down;
+- break;
+- case 82:
+- keyCode = Qt::Key_Insert;
+- break;
+- case 71:
+- keyCode = Qt::Key_Home;
+- break;
+- case 73:
+- keyCode = Qt::Key_Prior;
+- break;
+- case 83:
+- keyCode = Qt::Key_Delete;
+- break;
+- case 79:
+- keyCode = Qt::Key_End;
+- break;
+- case 81:
+- keyCode = Qt::Key_Next;
+- break;
+- case 28:
+- keyCode = Qt::Key_Enter;
+- break;
+- case 53:
+- keyCode = Qt::Key_Slash;
+- break;
+- case 0x1d:
+- keyCode = Qt::Key_Control;
+- break;
+- case 0x2a:
+- keyCode = Qt::Key_SysReq;
+- break;
+- case 0x38:
+- keyCode = Qt::Key_Alt;
+- break;
+- case 0x5b:
+- keyCode = Qt::Key_Super_L;
+- break;
+- case 0x5c:
+- keyCode = Qt::Key_Super_R;
+- break;
+- case 0x5d:
+- keyCode = Qt::Key_Menu;
+- break;
+- }
+- } else if ( extended == 2 ) {
+- switch (code) {
+- case 0x1d:
+- return;
+- case 0x45:
+- keyCode = Qt::Key_Pause;
+- break;
+- }
+- } else
+-#endif
+- {
+-#if defined(QT_QWS_SL5XXX)
+- if ( fn && !meta && (code >= 0x42 && code <= 0x52) ) {
+- ushort unicode=0xffff;
+- int scan=0;
+- if ( code == 0x42 ) { unicode='X'-'@'; scan=Key_X; } // Cut
+- else if ( code == 0x43 ) { unicode='C'-'@'; scan=Key_C; } // Copy
+- else if ( code == 0x44 ) { unicode='V'-'@'; scan=Key_V; } // Paste
+- else if ( code == 0x52 ) { unicode='Z'-'@'; scan=Key_Z; } // Undo
+- if ( scan ) {
+- processKeyEvent( unicode, scan, ControlButton, !release, FALSE );
+- return;
+- }
+- }
+-#endif
+- currentKey = overrideMap ? overrideMap->find( code ) : 0;
+- if ( !currentKey && code < keyMSize ) {
+- currentKey = &QWSServer::keyMap()[code];
+- }
+- if ( currentKey )
+- keyCode = currentKey->key_code;
+-
+-#if defined(QT_QWS_IPAQ)
+- switch (code) {
+-#if defined(QT_QWS_SL5XXX)
+-#if defined(QT_KEYPAD_MODE)
+- case 0x7a:
+- keyCode = Key_Call;
+- repeatable = FALSE;
+- break;
+- case 0x7b:
+- keyCode = Key_Context1;
+- repeatable = FALSE;
+- break;
+- case 0x7c:
+- keyCode = Key_Back;
+- repeatable = FALSE;
+- break;
+- case 0x7d:
+- keyCode = Key_Hangup;
+- repeatable = FALSE;
+- break;
+-#else
+- case 0x7a: case 0x7b: case 0x7c: case 0x7d:
+- keyCode = code - 0x7a + Key_F9;
+- repeatable = FALSE;
+- break;
+-#endif
+- case 0x79:
+- keyCode = Key_F34;
+- repeatable = FALSE;
+- break;
+-#endif
+-
+- case 0x74: // kernel KEY_POWER
+- keyCode = Key_F34;
+- repeatable = FALSE;
+- break;
+- case 89: // kernel KEY_RO
+- keyCode = Key_F24;
+- repeatable = FALSE;
+- break;
+-
+- case 0x78:
+-# if defined(QT_QWS_IPAQ)
+- keyCode = Key_F24; // record
+-# else
+- keyCode = Key_Escape;
+-# endif
+- repeatable = FALSE;
+- break;
+- case 0x60:
+- keyCode = Key_Return;
+-# ifdef QT_QWS_IPAQ
+- ipaq_return_pressed = !release;
+-# endif
+- break;
+- case 0x67:
+- keyCode = Key_Right;
+- break;
+- case 0x69:
+- keyCode = Key_Up;
+- break;
+- case 0x6a:
+- keyCode = Key_Down;
+- break;
+- case 0x6c:
+- keyCode = Key_Left;
+- break;
+- }
+-#endif
+-
+- /*------------------------------------------------------------------
+- Then do special processing of magic keys
+- ------------------------------------------------------------------*/
+-
+-
+-#if defined(QT_QWS_SL5XXX)
+- if ( release && ( keyCode == Key_F34 || keyCode == Key_F35 ) )
+- return; // no release for power and light keys
+- if ( keyCode >= Key_F1 && keyCode <= Key_F35
+- || keyCode == Key_Escape || keyCode == Key_Home
+- || keyCode == Key_Shift || keyCode == Key_Meta )
+- repeatable = FALSE;
+-#endif
+-
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+- if ( qt_screen->isTransformed()
+- && keyCode >= Qt::Key_Left && keyCode <= Qt::Key_Down )
+- {
+- keyCode = xform_dirkey(keyCode);
+- }
+-#endif
+-
+-#endif
+- /*
+- Translate shift+Key_Tab to Key_Backtab
+- */
+- if (( keyCode == Key_Tab ) && shift )
+- keyCode = Key_Backtab;
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+- }
+-#endif
+-
+-#ifndef QT_QWS_USE_KEYCODES
+- /*
+- Keypad consists of extended keys 53 and 28,
+- and non-extended keys 55 and 71 through 83.
+- */
+- if (( extended == 1 ) ? (code == 53 || code == 28) :
+- (code == 55 || ( code >= 71 && code <= 83 )) )
+- keypad = Qt::Keypad;
+-#else
+- if ( code == 55 || code >= 71 && code <= 83 || code == 96
+- || code == 98 || code == 118 )
+- keypad = Qt::Keypad;
+-#endif
+-
+- // Virtual console switching
+- int term = 0;
+- if (ctrl && alt && keyCode >= Qt::Key_F1 && keyCode <= Qt::Key_F10)
+- term = keyCode - Qt::Key_F1 + 1;
+- else if (ctrl && alt && keyCode == Qt::Key_Left)
+- term = QMAX(vtQws - 1, 1);
+- else if (ctrl && alt && keyCode == Qt::Key_Right)
+- term = QMIN(vtQws + 1, 10);
+- if (term && !release) {
+- ctrl = false;
+- alt = false;
+-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
+- ioctl(kbdFD, VT_ACTIVATE, term);
+-#endif
+- return;
+- }
+-
+-#if defined(QT_QWS_SL5XXX)
+- // Ctrl-Alt-Delete exits qws
+- if (ctrl && alt && keyCode == Qt::Key_Delete) {
+- qApp->quit();
+- }
+-#else
+- // Ctrl-Alt-Backspace exits qws
+- if (ctrl && alt && keyCode == Qt::Key_Backspace) {
+- qApp->quit();
+- }
+-#endif
+-
+-#if defined(QT_QWS_SL5XXX)
+- if (keyCode == Qt::Key_F22) { /* Fn key */
+- fn = !release;
+- } else if ( keyCode == Key_NumLock ) {
+- if ( release )
+- numLock = !numLock;
+- } else
+-#endif
+-
+- if (keyCode == Qt::Key_Alt) {
+- alt = !release;
+- } else if (keyCode == Qt::Key_Control) {
+- ctrl = !release;
+- } else if (keyCode == Qt::Key_Shift) {
+- shift = !release;
+-#if defined(QT_QWS_SL5XXX)
+- } else if (keyCode == Qt::Key_Meta) {
+- meta = !release;
+-#endif
+- } else if ( keyCode == Qt::Key_CapsLock && release ) {
+- caps = !caps;
+-#if defined(_OS_LINUX_) && !defined(QT_QWS_SL5XXX)
+- char leds;
+- ioctl(0, KDGETLED, &leds);
+- leds = leds & ~LED_CAP;
+- if ( caps ) leds |= LED_CAP;
+- ioctl(0, KDSETLED, leds);
+-#endif
+- }
+-
+- /*------------------------------------------------------------------
+- Then find the Unicode value and send the event
+- ------------------------------------------------------------------*/
+- //If we map the keyboard to a non-latin1 layout, we may have
+- //valid keys with unknown key codes.
+- if ( currentKey || keyCode != Qt::Key_unknown ) {
+- bool bAlt = alt;
+- bool bCtrl = ctrl;
+- bool bShift = shift;
+- int unicode = 0xffff;
+- if ( currentKey ) {
+-#if !defined(QT_QWS_SL5XXX)
+- bool bCaps = shift ||
+- (caps ? QChar(QWSServer::keyMap()[code].unicode).isLetter() : FALSE);
+-#else
+- bool bCaps = caps ^ shift;
+- if (fn) {
+- if ( shift ) {
+- bCaps = bShift = FALSE;
+- bCtrl = TRUE;
+- }
+- if ( meta ) {
+- bCaps = bShift = TRUE;
+- bAlt = TRUE;
+- }
+- } else if ( meta ) {
+- bCaps = bShift = TRUE;
+- }
+- if ( code > 40 && caps ) {
+- // fn-keys should only react to shift, not caps
+- bCaps = bShift = shift;
+- }
+- if ( numLock ) {
+- if ( keyCode != Key_Space && keyCode != Key_Tab )
+- bCaps = bShift = FALSE;
+- }
+- if ( keyCode == Key_Delete && (bAlt || bCtrl) ) {
+- keyCode = Key_BraceLeft;
+- unicode = '[';
+- bCaps = bShift = bAlt = bCtrl = FALSE;
+- } else if (keyCode == Qt::Key_F31 && bCtrl) {
+- keyCode = Key_QuoteLeft;
+- unicode = '`';
+- } else
+-#endif
+-
+- if (bCtrl)
+- unicode = currentKey->ctrl_unicode;
+- else if (bCaps)
+- unicode = currentKey->shift_unicode;
+- else
+- unicode = currentKey->unicode;
+-#ifndef QT_QWS_USE_KEYCODES
+- } else if ( extended == 1 ) {
+- if ( keyCode == Qt::Key_Slash )
+- unicode = '/';
+- else if ( keyCode == Qt::Key_Enter )
+- unicode = 0xd;
+-#endif
+- }
+-
+- modifiers = 0;
+- if ( bAlt ) modifiers |= AltButton;
+- if ( bCtrl ) modifiers |= ControlButton;
+- if ( bShift ) modifiers |= ShiftButton;
+- if ( keypad ) modifiers |= Keypad;
+-
+- // looks wrong -- WWA
+- bool repeat = FALSE;
+- if (prevuni == unicode && prevkey == keyCode && !release)
+- repeat = TRUE;
+-
+- processKeyEvent( unicode, keyCode, modifiers, !release, repeat );
+-
+- if (!release) {
+- prevuni = unicode;
+- prevkey = keyCode;
+- } else {
+- prevkey = prevuni = 0;
+- }
+-
+-#ifdef QT_QWS_AUTOREPEAT_MANUALLY
+- if ( repeatable && !release )
+- rep->start(prevuni,prevkey,modifiers);
+- else
+- rep->stop();
+-#endif
+-
+- }
+-#ifndef QT_QWS_USE_KEYCODES
+- extended = 0;
+-#endif
+ }
+
+
diff --git a/recipes-qt/qte/qte-2.3.10/sharp_char.h b/recipes-qt/qte/qte-2.3.10/sharp_char.h
new file mode 100644
index 0000000..a70f5f6
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/sharp_char.h
@@ -0,0 +1,309 @@
+/*
+ * linux/include/asm/sharp_char.h
+ *
+ * sharp drivers definitions (SHARP)
+ *
+ * Copyright (C) 2001 SHARP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Change Log
+ * 12-Dec-2002 Sharp Corporation for Poodle and Corgi
+ */
+
+#ifndef __ASM_SHARP_CHAR_H_INCLUDED
+#define __ASM_SHARP_CHAR_H_INCLUDED
+
+/*
+ * If SHARPCHAR_USE_MISCDEV defined , misc driver architecture used instead of sharp_char
+ */
+
+#define SHARPCHAR_USE_MISCDEV
+
+/*
+ * devices defines...
+ */
+
+#ifndef SHARP_DEV_MAJOR
+#define SHARP_DEV_MAJOR 11
+#endif
+
+#ifndef SHARP_DEV_MINOR_START
+#define SHARP_DEV_MINOR_START 210
+#endif
+
+#define SHARP_DEV_MINOR_MAX 4 /* defines last minor number of SHARP device */
+
+#define SHARP_LED_MINOR (SHARP_DEV_MINOR_START+0)
+#define SHARP_BUZZER_MINOR (SHARP_DEV_MINOR_START+1)
+#define SHARP_GSM_MINOR (SHARP_DEV_MINOR_START+2)
+#define SHARP_AUDIOCTL_MINOR (SHARP_DEV_MINOR_START+3)
+#define SHARP_KBDCTL_MINOR (SHARP_DEV_MINOR_START+4)
+
+/*
+ * ioctl defines...
+ */
+
+#define SHARP_DEV_IOCTL_COMMAND_START 0x5680
+
+/* --- for SHARP_LED device --- */
+#define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
+#define SHARP_LED_GETSTATUS (SHARP_LED_IOCTL_START)
+#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1)
+#define SHARP_LED_ISUPPORTED (SHARP_LED_IOCTL_START+2)
+
+typedef struct sharp_led_status {
+ int which; /* select which LED status is wanted. */
+ int status; /* set new led status if you call SHARP_LED_SETSTATUS */
+} sharp_led_status;
+
+#define SHARP_LED_WHICH_MAX 15 /* last number of LED */
+
+/* parameters for 'which' member */
+#define SHARP_LED_PDA 0 /* PDA status */
+#define SHARP_LED_DALARM 1 /* daily alarm */
+#define SHARP_LED_SALARM 2 /* schedule alarm */
+#define SHARP_LED_BATTERY 3 /* main battery status */
+#define SHARP_LED_ACSTATUS 4 /* AC line status */
+#define SHARP_LED_CHARGER 5 /* charger status */
+#define SHARP_LED_PHONE_RSSI 6 /* phone status (RSSI...) */
+#define SHARP_LED_PHONE_DIAL 7 /* phone status (dialing...) */
+#define SHARP_LED_PHONE_IN 8 /* phone status (incoming..) */
+#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */
+#define SHARP_LED_MAIL_SEND 10 /* mail status (sending...) */
+#define SHARP_LED_MAIL_QUEUE 11 /* mail to send is in queue */
+#define SHARP_LED_COLLIE_0 12 /* 1st pri. battery LED control */
+#define SHARP_LED_COLLIE_1 13 /* 1st pri. mail LED control */
+#define SHARP_LED_COMM 14 /* communication status */
+#define SHARP_LED_BROWSER 15 /* WWW browser status */
+
+/* parameters for 'status' member */
+#define LED_PDA_RUNNING 0 /* for SHARP_LED_RUN */
+#define LED_PDA_SUSPENDED 1 /* for SHARP_LED_RUN */
+#define LED_PDA_OFF 2 /* for SHARP_LED_RUN */
+#define LED_PDA_ERROR 3 /* for SHARP_LED_RUN */
+
+#define LED_DALARM_OFF 0 /* for SHARP_LED_DALARM */
+#define LED_DALARM_ON 1 /* for SHARP_LED_DALARM */
+
+#define LED_SALARM_OFF 0 /* for SHARP_LED_SALARM */
+#define LED_SALARM_ON 1 /* for SHARP_LED_SALARM */
+
+#define LED_BATTERY_GOOD 0 /* for SHARP_LED_BATTERY */
+#define LED_BATTERY_LOW 1 /* for SHARP_LED_BATTERY */
+#define LED_BATTERY_VERY_LOW 2 /* for SHARP_LED_BATTERY */
+#define LED_BATTERY_CRITICAL 3 /* for SHARP_LED_BATTERY */
+
+#define LED_CHARGER_OFF 0 /* for SHARP_LED_CHARGER */
+#define LED_CHARGER_CHARGING 1 /* for SHARP_LED_CHARGER */
+#define LED_CHARGER_ERROR 2 /* for SHARP_LED_CHARGER */
+#define LED_CHARGER_FLASH 3
+
+#define LED_AC_NOT_CONNECTED 0 /* for SHARP_LED_ACSTATUS */
+#define LED_AC_CONNECTED 1 /* for SHARP_LED_ACSTATUS */
+
+#define LED_RSSI_OUT 0 /* for SHARP_LED_PHONE_RSSI */
+#define LED_RSSI_IN 1 /* for SHARP_LED_PHONE_RSSI */
+
+#define LED_DIAL_OFF 0 /* for SHARP_LED_PHONE_DIAL */
+#define LED_DIAL_DIALING 1 /* for SHARP_LED_PHONE_DIAL */
+#define LED_DIAL_HOLDING 2 /* for SHARP_LED_PHONE_DIAL */
+
+#define LED_PHONE_WAITING 0 /* for SHARP_LED_PHONE_IN */
+#define LED_PHONE_INCOMING 1 /* for SHARP_LED_PHONE_IN */
+
+#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */
+#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */
+#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */
+
+#define LED_SENDMAIL_OFF 0 /* for SHARP_LED_MAIL_SEND */
+#define LED_SENDMAIL_SENDING 1 /* for SHARP_LED_MAIL_SEND */
+#define LED_SENDMAIL_ERROR 2 /* for SHARP_LED_MAIL_SEND */
+
+#define LED_MAILQUEUE_NOUNREAD 0 /* for SHARP_LED_MAIL_QUEUE */
+#define LED_MAILQUEUE_NEWMAIL 1 /* for SHARP_LED_MAIL_QUEUE */
+#define LED_MAILQUEUE_UNREAD 2 /* for SHARP_LED_MAIL_QUEUE */
+
+#define LED_COLLIE_0_DEFAULT 0 /* for SHARP_LED_COLLIE_0 */
+#define LED_COLLIE_0_OFF 1 /* for SHARP_LED_COLLIE_0 */
+#define LED_COLLIE_0_ON 2 /* for SHARP_LED_COLLIE_0 */
+#define LED_COLLIE_0_FASTBLINK 3 /* for SHARP_LED_COLLIE_0 */
+#define LED_COLLIE_0_SLOWBLINK 4 /* for SHARP_LED_COLLIE_0 */
+
+#define LED_COLLIE_1_DEFAULT 0 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_OFF 1 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_ON 2 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_FLASHON 3 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_FLASHOFF 4 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_VFSTBLINK 5 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_FASTBLINK 6 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_NORMBLINK 7 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_SLOWBLINK 8 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_SOFTBLINK 9 /* for SHARP_LED_COLLIE_1 */
+#define LED_COLLIE_1_SOFTFLASH 10 /* for SHARP_LED_COLLIE_1 */
+
+#define LED_COMM_OFFLINE 0 /* for SHARP_LED_COMM */
+#define LED_COMM_ONLINE 1 /* for SHARP_LED_COMM */
+#define LED_COMM_ERROR 2 /* for SHARP_LED_COMM */
+
+#define LED_BROWSER_OFFLINE 0 /* for SHARP_LED_BROWSER */
+#define LED_BROWSER_ONLINE 1 /* for SHARP_LED_BROWSER */
+#define LED_BROWSER_ERROR 2 /* for SHARP_LED_BROWSER */
+
+
+/* --- for SHARP_BUZZER device --- */
+#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
+#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
+#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
+#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
+#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
+#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
+#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
+#define SHARP_BUZZER_SET_BUFFER (SHARP_BUZZER_IOCTL_START+6)
+
+typedef struct sharp_buzzer_status { /* this struct is used for setvolume/getvolume */
+ int which; /* select which LED status is wanted. */
+ int volume; /* set new buzzer volume if you call SHARP_BUZZER_SETVOLUME */
+ int mute; /* set 1 to MUTE if you call SHARP_BUZZER_SETMUTE */
+} sharp_buzzer_status;
+
+#define SHARP_BUZ_WHICH_MAX 14 /* last number of buzzer */
+
+#define SHARP_BUZ_ALL_SOUNDS -1 /* for setting volumes of ALL sounds at a time */
+
+#define SHARP_BUZ_WRITESOUND 0 /* for sound datas through 'write' calls */
+#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
+#define SHARP_BUZ_KEYSOUND 2 /* key sound */
+#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */
+#define SHARP_PDA_WARNSOUND 4 /* warning occurred */
+#define SHARP_PDA_ERRORSOUND 5 /* error occurred */
+#define SHARP_PDA_CRITICALSOUND 6 /* critical error occurred */
+#define SHARP_PDA_SYSSTARTSOUND 7 /* system start */
+#define SHARP_PDA_SYSTEMENDSOUND 8 /* system shutdown */
+#define SHARP_PDA_APPSTART 9 /* application start */
+#define SHARP_PDA_APPQUIT 10 /* application ends */
+#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
+#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */
+#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */
+#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */
+
+#define SHARP_BUZ_VOLUME_OFF 0
+#define SHARP_BUZ_VOLUME_LOW 33
+#define SHARP_BUZ_VOLUME_MEDIUM 67
+#define SHARP_BUZ_VOLUME_HIGH 100 /* currentry , this is the maximum ... */
+#define SHARP_BUZ_VOLUME_MAX (SHARP_BUZ_VOLUME_HIGH)
+
+/* --- for SHARP_GSM device --- */
+#define SHARP_GSM_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
+#define SHARP_GSM_GETEXTSTATUS (SHARP_GSM_IOCTL_START+16)
+#define SHARP_GSM_INFO_TELL_MODE (SHARP_GSM_IOCTL_START+17)
+#define SHARP_IRIS_GETSYNCSTATUS (SHARP_GSM_IOCTL_START+18)
+#define SHARP_IRIS_RECHECKDEVICE (SHARP_GSM_IOCTL_START+19)
+
+
+#define GSM_PHONE_NO_POWER 0 /* for SHARP_GSM_INFO_TELL_MODE */
+#define GSM_PHONE_NO_CONNECTION 1 /* for SHARP_GSM_INFO_TELL_MODE */
+#define GSM_PHONE_IN_ANALOG_MODE 2 /* for SHARP_GSM_INFO_TELL_MODE */
+#define GSM_PHONE_IN_DATA_MODE 3 /* for SHARP_GSM_INFO_TELL_MODE */
+
+#define IRIS_AUDIO_EXT_IS_NONE 0
+#define IRIS_AUDIO_EXT_IS_HEADPHONEMIC 1
+#define IRIS_AUDIO_EXT_IS_EXTSPEAKER 2
+
+typedef struct sharp_gsmext_status {
+ int carkit; /* be set as 1 , if car-kit is connected */
+ int headphone_mic; /* be set as 1 , if head-phone-microphone is inserted */
+ int external_sp; /* be set as 1 , if external-speaker is inserted */
+} sharp_gsmext_status;
+
+typedef struct sharp_irisext_status { /* for SHARP_IRIS_GETSYNCSTATUS */
+ int usb;
+ int uart;
+ int carkit;
+} sharp_irisext_status;
+
+/* --- for SHARP_AUDIOCTL device --- */
+#define SHARP_AUDIOCTL_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
+#define SHARP_AUDIOCTL_ARCH_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START+0x10)
+#define SHARP_IRIS_AUFIL_GETVAL (SHARP_AUDIOCTL_ARCH_IOCTL_START+0)
+#define SHARP_IRIS_AUFIL_SETVAL (SHARP_AUDIOCTL_ARCH_IOCTL_START+1)
+#define SHARP_IRIS_AMP_EXT_ON (SHARP_AUDIOCTL_ARCH_IOCTL_START+2)
+#define SHARP_IRIS_AMP_EXT_OFF (SHARP_AUDIOCTL_ARCH_IOCTL_START+3)
+
+
+#define SHARP_IRIS_AUFIL_FILTERON 0x01 /* Iris AudioCtl Specific. Enable Audio Filter */
+
+/* --- for SHARP_AUDIOCTL device --- */
+#define SHARP_KBDCTL_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
+#define SHARP_KBDCTL_GETMODIFSTAT (SHARP_KBDCTL_IOCTL_START+0)
+#define SHARP_KBDCTL_TOGGLEMODIFSTAT (SHARP_KBDCTL_IOCTL_START+1)
+#define SHARP_KBDCTL_SETHOLDTH (SHARP_KBDCTL_IOCTL_START+2)
+#define SHARP_KBDCTL_SETHOLDTH_GR (SHARP_KBDCTL_IOCTL_START+3)
+#define SHARP_KBDCTL_HOLDINFO_SETHD (SHARP_KBDCTL_IOCTL_START+4)
+#define SHARP_KBDCTL_HOLDINFO_SETSL (SHARP_KBDCTL_IOCTL_START+5)
+#define SHARP_KBDCTL_HOLDINFO_DELHD (SHARP_KBDCTL_IOCTL_START+6)
+#define SHARP_KBDCTL_HOLDINFO_DELSL (SHARP_KBDCTL_IOCTL_START+7)
+#define SHARP_KBDCTL_HOLDINFO_RESTHD (SHARP_KBDCTL_IOCTL_START+8)
+#define SHARP_KBDCTL_HOLDINFO_RESTSL (SHARP_KBDCTL_IOCTL_START+9)
+#define SHARP_KBDCTL_HOLDINFO_RESTFULL (SHARP_KBDCTL_IOCTL_START+10)
+#define IRIS_KBDCTL_ENABLEKEYBOARD (SHARP_KBDCTL_IOCTL_START+16)
+#define IRIS_KBDCTL_DISABLEKEYBOARD (SHARP_KBDCTL_IOCTL_START+17)
+#define SHARP_KBDCTL_SENDKEY (SHARP_KBDCTL_IOCTL_START+18)
+
+typedef struct sharp_kbdctl_modifstat {
+ int which;
+ int stat;
+} sharp_kbdctl_modifstat;
+
+typedef struct sharp_kbdctl_holdstat {
+ int group;
+ int timeout;
+} sharp_kbdctl_holdstat;
+
+typedef struct sharp_kbdctl_holdcustom {
+ int normal_hardcode;
+ int normal_slcode;
+ int hold_slcode;
+} sharp_kbdctl_holdcustom;
+
+#define SHARP_EXTMODIF_2ND 0x01
+#define SHARP_EXTMODIF_CAPS 0x02
+#define SHARP_EXTMODIF_NUMLOCK 0x03
+
+#define HOLDKEY_GROUP_NORMAL 0
+#define HOLDKEY_GROUP_POWER 1
+
+
+/* --- for AUDIO & REMOCON device --- */
+#define HPJACK_STATE_UNDETECT (-1)
+#define HPJACK_STATE_NONE (0)
+#define HPJACK_STATE_HEADPHONE (1)
+#define HPJACK_STATE_REMOCON (2)
+
+
+#endif /* __ASM_SHARP_CHAR_H_INCLUDED */
+
+
+//#define EXTERNAL_IO_BASE01 0xF8000000
+//#define EXTEND_GPIO_RED_LED (1<<4)
+//#define EXTEND_GPIO_GREEN_LED (1<<5)
+//unsigned short * pwEGPIO1 ;
+//unsigned short gwExtendGpio1;
+// pwEGPIO1 = (unsigned short *) EXTERNAL_IO_BASE01;
+
+
+
+
+
+
+
+
+
diff --git a/recipes-qt/qte/qte-2.3.10/spitz-adhoc-keypad-rotate.patch b/recipes-qt/qte/qte-2.3.10/spitz-adhoc-keypad-rotate.patch
new file mode 100644
index 0000000..a32207d
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/spitz-adhoc-keypad-rotate.patch
@@ -0,0 +1,21 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+Index: qt-2.3.10/src/kernel/kernelkeyboard.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/kernelkeyboard.cpp 2006-04-05 23:04:30.000000000 +0200
++++ qt-2.3.10/src/kernel/kernelkeyboard.cpp 2006-04-05 23:09:40.514650408 +0200
+@@ -568,7 +568,11 @@
+ case Qt::Key_Down:
+ unicode = 0xffff;
+ mod_key = false;
++#if QT_QWS_SLCXK
++ if (qt_screen->transformOrientation() != 3)
++#else
+ if (qt_screen->isTransformed())
++#endif
+ qtKeyCode = static_cast<Qt::Key>( xform_dirkey(static_cast<int>( qtKeyCode ) ) );
+ break;
+ /*
diff --git a/recipes-qt/qte/qte-2.3.10/support_18bpp.patch b/recipes-qt/qte/qte-2.3.10/support_18bpp.patch
new file mode 100644
index 0000000..138c4ce
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/support_18bpp.patch
@@ -0,0 +1,275 @@
+diff -urN qt-2.3.10/configure qt-2.3.10_mod/configure
+--- qt-2.3.10/configure 2005-01-23 08:00:36.000000000 -0600
++++ qt-2.3.10_mod/configure 2006-10-21 23:13:29.000000000 -0500
+@@ -805,7 +805,8 @@
+ echo " 4. 4bpp grayscale - also enables 8bpp"
+ echo " 8. 8bpp"
+ echo " 16. 16bpp"
+- echo " 24. 24bpp - also enables 32bpp"
++ echo " 18. 18bpp - packed into 24bpp, cannot be enabled with 24bpp"
++ echo " 24. 24bpp - also enables 32bpp, cannot be enabled with 18bpp"
+ echo " 32. 32bpp"
+ echo
+ echo "Each depth adds around 100Kb on 80386."
+@@ -830,7 +831,7 @@
+
+ if [ -n "$DEPTHS" ]
+ then
+- DV=;D4=;D8=;D16=;D24=;D32=
++ DV=;D4=;D8=;D16=;D18=;D24=;D32=
+ for D in `echo "$DEPTHS" | sed -e 's/,/ /g'`
+ do
+ case "$D" in
+@@ -838,10 +839,20 @@
+ ;; 4) D4=y; D8=y
+ ;; 8) D8=y
+ ;; 16) D16=y
++ ;; 18) D18=y
+ ;; 24) D24=y; D32=y
+ ;; 32) D32=y
+ esac
+ done
++
++ if [ ! -z "$D18" -a ! -z "$D24" ]
++ then
++ echo
++ echo "WARNING: You have configured with depth 18 and 24."
++ echo " These depths are not compatible. Depth 24"
++ echo " will be disabled."
++ fi
++
+ if [ -z "$DV" ]
+ then
+ QT_CXX="$QT_CXX -DQT_NO_QWS_VGA_16"
+@@ -858,9 +869,19 @@
+ then
+ QT_CXX="$QT_CXX -DQT_NO_QWS_DEPTH_16"
+ fi
++ if [ -z "$D18" ]
++ then
++ QT_CXX="$QT_CXX -DQT_NO_QWS_DEPTH_18"
++ fi
+ if [ -z "$D24" ]
+ then
+ QT_CXX="$QT_CXX -DQT_NO_QWS_DEPTH_24"
++ else
++ # Disable depth 24 if depth 18 enabled
++ if [ ! -z "$D18" ]
++ then
++ QT_CXX="$QT_CXX -DQT_NO_QWS_DEPTH_24"
++ fi
+ fi
+ if [ -z "$D32" ]
+ then
+@@ -1326,7 +1347,7 @@
+ default ($QCONFIG).
+
+ -depths list ....... Comma-separated list of supported bit-per-pixel
+- depths, from: v, 4, 8, 16, 24, and 32. 'v' is VGA16.
++ depths, from: v, 4, 8, 16, 18, 24, and 32. 'v' is VGA16.
+
+ -accel-snap ........ Enable SciTech SNAP Graphics acceleration.
+ -accel-voodoo3 ..... Enable Voodoo3 acceleration.
+diff -urN qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp qt-2.3.10_mod/src/kernel/qgfxlinuxfb_qws.cpp
+--- qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp 2011-04-09 18:48:17.000000000 +0100
++++ qt-2.3.10_mod/src/kernel/qgfxlinuxfb_qws.cpp 2011-04-09 18:54:45.000000000 +0100
+@@ -134,6 +134,10 @@
+ }
+
+ d=vinfo.bits_per_pixel;
++ // 18-bpp-support
++ if ((d == 18) || (d == 19))
++ d = 24;
++ // End of 18-bpp-support
+ lstep=finfo.line_length;
+ int xoff = vinfo.xoffset;
+ int yoff = vinfo.yoffset;
+@@ -427,6 +431,15 @@
+ gbits=6;
+ bbits=5;
+ break;
++ // 18-bpp-support
++ case 18: case 19:
++ rbits=6;
++ gbits=6;
++ bbits=6;
++ vinfo.bits_per_pixel=24;
++ startupd=24;
++ break;
++ // End of 18-bpp-support
+ case 24: case 32:
+ rbits=gbits=bbits=8;
+ break;
+@@ -819,6 +832,10 @@
+ w=vinfo.xres;
+ h=vinfo.yres;
+ d=vinfo.bits_per_pixel;
++ // 18-bpp-support
++ if ((d == 18) || (d == 19))
++ d = 24;
++ // End of 18-bpp-support
+ lstep=finfo.line_length;
+ size=h*lstep;
+ }
+diff -urN qt-2.3.10/src/kernel/qgfxraster_qws.cpp qt-2.3.10_mod/src/kernel/qgfxraster_qws.cpp
+--- qt-2.3.10/src/kernel/qgfxraster_qws.cpp 2005-01-23 08:00:47.000000000 -0600
++++ qt-2.3.10_mod/src/kernel/qgfxraster_qws.cpp 2006-10-22 08:38:38.000000000 -0500
+@@ -161,25 +161,51 @@
+ #endif
+
+ #define MASK4BPP(x) (0xf0 >> (x))
+-
++// 18-bpp-support
+ inline void gfxSetRgb24( unsigned char *d, unsigned int p )
+ {
+- *d = p & 0x0000ff;
++#ifdef QT_NO_QWS_DEPTH_18
++ *d = p & 0x000ff;
+ *(d+1) = (p & 0x00ff00 ) >> 8;
+ *(d+2) = (p & 0xff0000 ) >> 16;
++#else
++ uint b = (p & 0x0000ff) >> 0;
++ uint g = (p & 0x00ff00) >> 8;
++ uint r = (p & 0xff0000) >> 16;
++ uint data = (b>>2) | ((g>>2) << 6) | ((r>>2) << 12);
++ *d = data & 0xff;
++ *(d+1) = (data >> 8) & 0xff;
++ *(d+2) = (data >> 16) & 0xff;
++#endif
+ }
+
+ inline void gfxSetRgb24( unsigned char *d, int r, int g, int b )
+ {
++#ifdef QT_NO_QWS_DEPTH_18
+ *d = b;
+ *(d+1) = g;
+ *(d+2) = r;
++#else
++ uint data = (b>>2) | ((g>>2) << 6) | ((r>>2) << 12);
++ *d = data & 0xff;
++ *(d+1) = (data >> 8) & 0xff;
++ *(d+2) = (data >> 16) & 0xff;
++#endif
+ }
+
+ inline unsigned int gfxGetRgb24( unsigned char *d )
+ {
++#ifdef QT_NO_QWS_DEPTH_18
+ return *d | (*(d+1)<<8) | (*(d+2)<<16);
++#else
++ uint data = *d | (*(d+1)<<8) | (*(d+2)<<16);
++ uint r = ((data >> 10) & 0xfc);
++ uint g = ((data >> 4) & 0xfc);
++ uint b = ((data << 2) & 0xfc);
++ return b | (g << 8) | (r << 16);
++#endif
+ }
++// End of 18-bpp-support
+
+ static bool simple_8bpp_alloc=FALSE;
+
+@@ -1767,11 +1793,12 @@
+ } else {
+ (*srcdata)+=4;
+ }
+-#if !defined( QT_NO_QWS_DEPTH_24 )
++// 18-bpp hack (mlk)
++//#if !defined( QT_NO_QWS_DEPTH_24 )
+ } else if(sdepth==24) {
+ ret = gfxGetRgb24( *srcdata );
+ (*srcdata) += 3;
+-#endif
++//#endif
+ #if !defined( QT_NO_IMAGE_16_BIT ) || !defined( QT_NO_QWS_DEPTH_16 )
+ } else if(sdepth==16) {
+ unsigned short int hold=*((unsigned short int *)(*srcdata));
+@@ -3963,9 +3990,22 @@
+ unsigned char *alphaptr = (unsigned char *)alphabuf;
+ unsigned char *avp = alphas;
+ int loopc;
+-
++// 18-bpp-support
++#ifdef QT_NO_QWS_DEPTH_18
+ memcpy( alphabuf, myptr+x1*3, w*3 );
+-
++#else
++ { uchar *srcptr24 = myptr+x1*3;
++ uchar *dstptr24 = (uchar*)alphabuf;
++ for ( int i = 0; i < w; i++ ) {
++ uint pix = gfxGetRgb24(srcptr24);
++ dstptr24[2] = (pix >> 16) & 0xff;
++ dstptr24[1] = (pix >> 8) & 0xff;
++ dstptr24[0] = (pix >> 0) & 0xff;
++ srcptr24 += 3;
++ dstptr24 += 3;
++ } }
++#endif
++// End of 18-bpp-support
+ // Now blend with source data
+ unsigned char * srcptr=srcdata;
+ unsigned int srcval;
+@@ -5808,10 +5848,10 @@
+ } else if(d==8) {
+ ret = new QGfxRaster<8,0>(bytes,w,h);
+ #endif
+-#ifndef QT_NO_QWS_DEPTH_24
++//#ifndef QT_NO_QWS_DEPTH_24
+ } else if(d==24) {
+ ret = new QGfxRaster<24,0>(bytes,w,h);
+-#endif
++//#endif
+ #ifndef QT_NO_QWS_DEPTH_32
+ } else if(d==32) {
+ ret = new QGfxRaster<32,0>(bytes,w,h);
+diff -urN qt-2.3.10/src/kernel/qgfxtransformed_qws.cpp qt-2.3.10_mod/src/kernel/qgfxtransformed_qws.cpp
+--- qt-2.3.10/src/kernel/qgfxtransformed_qws.cpp 2005-01-23 08:00:46.000000000 -0600
++++ qt-2.3.10_mod/src/kernel/qgfxtransformed_qws.cpp 2006-10-22 00:57:27.000000000 -0500
+@@ -1020,10 +1020,10 @@
+ } else if (d==8) {
+ ret = new QGfxTransformedRaster<8,0>(bytes,w,h);
+ #endif
+-#ifndef QT_NO_QWS_DEPTH_24
++//#ifndef QT_NO_QWS_DEPTH_24
+ } else if (d==24) {
+ ret = new QGfxTransformedRaster<24,0>(bytes,w,h);
+-#endif
++//#endif
+ #ifndef QT_NO_QWS_DEPTH_32
+ } else if (d==32) {
+ ret = new QGfxTransformedRaster<32,0>(bytes,w,h);
+diff -urN qt-2.3.10/src/kernel/qgfxvfb_qws.cpp qt-2.3.10_mod/src/kernel/qgfxvfb_qws.cpp
+--- qt-2.3.10/src/kernel/qgfxvfb_qws.cpp 2005-01-23 08:00:47.000000000 -0600
++++ qt-2.3.10_mod/src/kernel/qgfxvfb_qws.cpp 2006-10-22 00:19:30.000000000 -0500
+@@ -288,10 +288,14 @@
+ d = hdr->depth;
+ lstep = hdr->linestep;
+
+-#ifdef DEBUG
++//#ifdef DEBUG
+ qDebug( "Connected to VFB server: %d x %d x %d", w, h, d );
+-#endif
++//#endif
+
++// 18-bpp-support
++ if ( (d == 18) || (d == 19) )
++ d = 24;
++// End of 18-bpp-support
+ size = lstep * h;
+ mapsize = size;
+ screencols = hdr->numcols;
+@@ -434,6 +438,15 @@
+ else
+ ret = new QGfxRaster<32,0>(bytes,w,h);
+ #endif
++// 18-bpp-support
++//#ifndef QT_NO_QWS_DEPTH_24
++ } else if (d==24) {
++ if ( bytes == qt_screen->base() )
++ ret = new QGfxVFb<24,0>(bytes,w,h);
++ else
++ ret = new QGfxRaster<24,0>(bytes,w,h);
++//#endif
++// 18-bpp-support
+ } else {
+ qFatal("Can't drive depth %d",d);
+ }
diff --git a/recipes-qt/qte/qte-2.3.10/suspend-resume-hooks.patch b/recipes-qt/qte/qte-2.3.10/suspend-resume-hooks.patch
new file mode 100644
index 0000000..c6e9f16
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/suspend-resume-hooks.patch
@@ -0,0 +1,78 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10.foo/src/kernel/qgfx_qws.h~suspend-resume-hooks
++++ qt-2.3.10.foo/src/kernel/qgfx_qws.h
+@@ -192,6 +192,8 @@
+ virtual int pixmapLinestepAlignment() { return 64; }
+
+ virtual void sync() {}
++ virtual void prepareToSuspend() {}
++ virtual void prepareToResume() {}
+ virtual bool onCard(unsigned char *) const;
+ virtual bool onCard(unsigned char *, ulong& out_offset) const;
+
+--- qt-2.3.10.foo/src/kernel/qapplication_qws.cpp~suspend-resume-hooks
++++ qt-2.3.10.foo/src/kernel/qapplication_qws.cpp
+@@ -480,6 +480,7 @@
+ int region_offset_window;
+ #ifndef QT_NO_COP
+ QWSQCopMessageEvent *qcop_response;
++ bool manageAPMMessage( QWSQCopMessageEvent *e );
+ #endif
+ QWSEvent* current_event;
+ QValueList<int> unused_identifiers;
+@@ -840,7 +841,7 @@
+ QWSQCopMessageEvent *pe = (QWSQCopMessageEvent*)e;
+ if ( pe->simpleData.is_response ) {
+ qcop_response = pe;
+- } else {
++ } else if ( !manageAPMMessage( pe ) ) {
+ queue.append(e);
+ }
+ #endif
+@@ -851,6 +852,42 @@
+ }
+ }
+
++#ifndef QT_NO_COP
++bool QWSDisplayData::manageAPMMessage( QWSQCopMessageEvent *e )
++{
++ if ( e->channel.data() != QCString( "QPE/System" ) ) {
++ return FALSE;
++ }
++ if ( e->message.data() == QCString( "aboutToSuspend()" ) ) {
++ if ( qt_screen ) qt_screen->prepareToSuspend();
++ delete e;
++ return TRUE;
++ }
++ if ( e->message.data() == QCString( "returnFromSuspend()" ) ) {
++ if ( qt_screen ) qt_screen->prepareToResume();
++ delete e;
++ QWidgetList *list = QApplication::topLevelWidgets();
++ if ( list ) {
++ QWidgetListIt it( *list );
++ QWidget * w;
++ while ( (w=it.current()) != 0 ) {
++ ++it;
++ if ( !w->testWFlags(Qt::WType_Desktop) ) {
++ QETWidget *etw = (QETWidget*)w;
++ if ( etw->isVisible() ) {
++ etw->repaintHierarchy( etw->geometry(), TRUE );
++ etw->repaintDecoration( qApp->desktop()->rect(), TRUE );
++ }
++ }
++ }
++ delete list;
++ }
++ return TRUE;
++ }
++ return FALSE;
++}
++#endif
++
+ void QWSDisplayData::offsetPendingExpose( int window, const QPoint &offset )
+ {
+ if ( offset.isNull() )
diff --git a/recipes-qt/qte/qte-2.3.10/switches.h b/recipes-qt/qte/qte-2.3.10/switches.h
new file mode 100644
index 0000000..37516b4
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/switches.h
@@ -0,0 +1,74 @@
+/*
+ * linux/include/linux/switches.h
+ *
+ * Copyright (C) 2000 John Dorsey
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 23 October 2000 - created.
+ */
+
+#if !defined(_LINUX_SWITCHES_H)
+#define _LINUX_SWITCHES_H
+
+#define SWITCHES_MASK_SIZE (128)
+
+typedef unsigned long switches_bitfield;
+
+#define SWITCHES_BITS (sizeof(switches_bitfield) * 8)
+#define SWITCHES_NUM_FIELDS (SWITCHES_MASK_SIZE / SWITCHES_BITS)
+#define SWITCHES_FIELD_SELECT(i) ((i) / SWITCHES_BITS)
+#define SWITCHES_FIELD_MASK(i) ((switches_bitfield)(1 << (i) % \
+ SWITCHES_BITS))
+
+typedef struct switches_mask_t {
+ unsigned int count;
+ switches_bitfield events[SWITCHES_NUM_FIELDS];
+ switches_bitfield states[SWITCHES_NUM_FIELDS];
+} switches_mask_t;
+
+#define SWITCHES_ZERO(m) \
+do { \
+ unsigned int sz_i; \
+ (m)->count = 0; \
+ for(sz_i = 0; sz_i < SWITCHES_NUM_FIELDS; ++sz_i) \
+ (m)->events[sz_i] = (m)->states[sz_i] = 0; \
+} while (0)
+
+/* `s' is the state of the switch, either 0 or non-zero: */
+#define SWITCHES_SET(m, i, s) \
+do { \
+ ((m)->events[SWITCHES_FIELD_SELECT((i))] |= \
+ SWITCHES_FIELD_MASK((i))); \
+ if(s) \
+ ((m)->states[SWITCHES_FIELD_SELECT((i))] |= \
+ SWITCHES_FIELD_MASK((i))); \
+ else \
+ ((m)->states[SWITCHES_FIELD_SELECT((i))] &= \
+ ~SWITCHES_FIELD_MASK((i))); \
+ ++((m)->count); \
+} while (0)
+
+/* Should only use to clear an event set by SWITCHES_SET(): */
+#define SWITCHES_CLEAR(m, i) \
+do { \
+ ((m)->events[SWITCHES_FIELD_SELECT((i))] &= \
+ ~SWITCHES_FIELD_MASK((i))); \
+ ((m)->states[SWITCHES_FIELD_SELECT((i))] &= \
+ ~SWITCHES_FIELD_MASK((i))); \
+ --((m)->count); \
+}
+
+#define SWITCHES_COUNT(m) ((m)->count)
+
+/* Returns 0 or non-zero: */
+#define SWITCHES_EVENT(m, i) \
+((m)->events[SWITCHES_FIELD_SELECT((i))] & SWITCHES_FIELD_MASK((i)))
+
+/* Returns 0 or non-zero: */
+#define SWITCHES_STATE(m, i) \
+((m)->states[SWITCHES_FIELD_SELECT((i))] & SWITCHES_FIELD_MASK((i)))
+
+#endif /* !defined(_LINUX_SWITCHES_H) */
diff --git a/recipes-qt/qte/qte-2.3.10/tslib.patch b/recipes-qt/qte/qte-2.3.10/tslib.patch
new file mode 100644
index 0000000..47837d7
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/tslib.patch
@@ -0,0 +1,53 @@
+Index: qt-2.3.10/src/kernel/qwsmouse_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qwsmouse_qws.cpp 2005-02-16 00:53:53.090339898 +0100
++++ qt-2.3.10/src/kernel/qwsmouse_qws.cpp 2005-02-16 00:54:43.059069292 +0100
+@@ -1878,30 +1878,33 @@
+ */
+ void QTSLibHandlerPrivate::interpolateSample() {
+ #ifdef QT_QWS_TSLIB
+- static struct ts_sample samples[25];
+- int index = -1;
++#define TSLIB_MAX_SAMPLES 25
++ static struct ts_sample samples[TSLIB_MAX_SAMPLES];
++ int index = 0;
++ int read_samples = 0;
+ int ret;
+
+ do {
+- /* fill only the last sample again */
+- if ( index >= 25 )
+- index = 24;
+-
++ /* do not access negative arrays */
++ if ( index < 0 )
++ index = 0;
++
+ /* we're opened non-blocking */
+- if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 ) {
++ if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 )
+ /* no event yet, so try again */
+- if (ret==-1 ) {
+- index--;
++ if (ret==-1 )
+ continue;
+- }
+- }
+- }while (samples[index++].pressure != 0);
++
++ read_samples++;
++ index = (index+1)%TSLIB_MAX_SAMPLES;
++ }while (samples[index == 0 ? (TSLIB_MAX_SAMPLES-1) : index-1].pressure != 0);
+
+ /*
+- * index is maximal 25 and we at least one sample
++ * If we've wrapped around each sample is used otherwise
++ * we will use the index
+ */
+- if( index >= 25 )
+- index = 24;
++ index = read_samples >= TSLIB_MAX_SAMPLES ?
++ (TSLIB_MAX_SAMPLES-1 ) : index;
+ int x, y;
+
+ /*
diff --git a/recipes-qt/qte/qte-2.3.10/vt-switch.patch b/recipes-qt/qte/qte-2.3.10/vt-switch.patch
new file mode 100644
index 0000000..4007a5d
--- /dev/null
+++ b/recipes-qt/qte/qte-2.3.10/vt-switch.patch
@@ -0,0 +1,178 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041221/src/kernel/qapplication_qws.cpp~vt-switch.patch
++++ qt-2.3.9-snapshot-20041221/src/kernel/qapplication_qws.cpp
+@@ -124,6 +124,12 @@
+ static int qt_thread_pipe[2];
+ #endif
+
++#if defined(_OS_LINUX_)
++#include <sys/ioctl.h>
++#include <linux/vt.h>
++#include <linux/kd.h>
++#endif
++
+ const int qwsSharedRamSize = 32 * 1024; //Small amount to fit on small devices.
+
+ // These are in qapplication.cpp in qt/main
+@@ -164,6 +170,8 @@
+ bool qws_accel = TRUE; // ### never set
+ const char *qws_display_spec = ":0";
+ int qws_display_id = 0;
++int qws_terminal_id = 0;
++int qws_terminal_old = 0;
+ int qws_client_id = 0;
+ QWidget *qt_pressGrab = 0;
+ QWidget *qt_mouseGrb = 0;
+@@ -1700,6 +1708,15 @@
+ type = QApplication::GuiServer;
+ } else if ( arg == "-interlaced" ) {
+ qws_screen_is_interlaced = TRUE;
++ } else if ( arg == "-terminal" ) {
++ if ( ++i < argc )
++ {
++ if ( ( qws_terminal_id = atoi( argv[i] ) ) < 1 )
++ {
++ qWarning( "Ignoring Invalid Terminal Specification." );
++ qws_terminal_id = 0;
++ }
++ }
+ } else if ( arg == "-display" ) {
+ if ( ++i < argc )
+ qws_display_spec = argv[i];
+@@ -1724,6 +1741,53 @@
+ if ( type == QApplication::GuiServer ) {
+ qt_appType = type;
+ qws_single_process = TRUE;
++
++ /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
++ * Added a new command line option which only is relevant if the application is created as a GuiServer.
++ * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server.
++ * As default in Linux, 0 means the current virtual terminal.
++ */
++ #if defined(_OS_LINUX_)
++ if ( qws_terminal_id )
++ {
++ qDebug( "qt_init() - terminal specification is '%d'.", qws_terminal_id );
++ struct vt_stat console_stat;
++ int console_fd = ::open( QString().sprintf( "/dev/tty%d", qws_terminal_id ).latin1(), O_RDWR );
++ if ( console_fd == -1)
++ {
++ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( ioctl( console_fd, VT_GETSTATE, &console_stat ) == -1 )
++ {
++ qWarning( "qt_init() - can't ioctl(VT_GETSTATE): %s", strerror( errno ) );
++ exit( -1 );
++ }
++ qws_terminal_old = console_stat.v_active;
++ qDebug( "qt_init() - active vt is #%d, switching to #%d as requested...", qws_terminal_old, qws_terminal_id );
++
++ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_id ) == -1 )
++ {
++ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( ioctl( console_fd, VT_WAITACTIVE, qws_terminal_id ) == -1 )
++ {
++ qWarning( "qt_init() - can't ioctl(VT_WAITACTIVE): %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( ioctl( console_fd, KDSETMODE, KD_GRAPHICS ) == -1 )
++ {
++ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_GRAPHICS): %s", strerror( errno ) );
++ exit( -1 );
++ }
++ ::close( console_fd );
++ }
++ else
++ {
++ qDebug( "QWSApplication::qt_init() - current terminal specified." );
++ }
++ #endif
+ QWSServer::startup(flags);
+ setenv("QWS_DISPLAY", qws_display_spec, 0);
+ }
+@@ -1774,7 +1838,36 @@
+ QFontManager::cleanup();
+
+ if ( qws_single_process ) {
+- QWSServer::closedown();
++ qDebug( "qt_cleanup() - shutting down QWSServer..." );
++#ifndef QT_NO_QWS_KEYBOARD
++ if ( qwsServer )
++ qwsServer->closeKeyboard();
++#endif
++ QWSServer::closedown();
++#if defined(_OS_LINUX_)
++ if ( qws_terminal_old > 0 )
++ {
++ qDebug( "qt_cleanup() - switching back to virtual terminal #%d", qws_terminal_old );
++
++ int console_fd = ::open( "/dev/tty0", O_RDWR );
++ if ( console_fd == -1)
++ {
++ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) );
++ }
++ else
++ {
++ if ( ioctl( console_fd, KDSETMODE, KD_TEXT ) == -1 )
++ {
++ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_TEXT): %s", strerror( errno ) );
++ }
++ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_old ) == -1 )
++ {
++ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) );
++ }
++ ::close( console_fd );
++ }
++ }
++#endif
+ }
+ if ( qt_is_gui_used ) {
+ delete qt_fbdpy;
+--- qt-2.3.9-snapshot-20041221/src/kernel/qkeyboard_qws.cpp~vt-switch.patch
++++ qt-2.3.9-snapshot-20041221/src/kernel/qkeyboard_qws.cpp
+@@ -1247,6 +1247,24 @@
+ {
+ if (kbdFD >= 0)
+ {
++
++#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
++ struct vt_mode vtMode;
++ ioctl(kbdFD, VT_GETMODE, &vtMode);
++
++ /* Mickey says: "Better give up control of VT switching.
++ * Hey, I really hate that OS-will-reacquire-resources on process-death
++ * kind of thinking!
++ */
++ vtMode.mode = VT_AUTO;
++ vtMode.relsig = 0;
++ vtMode.acqsig = 0;
++ ioctl(kbdFD, VT_SETMODE, &vtMode);
++
++ signal(VTSWITCHSIG, 0);
++ qDebug( "~QWSTtyKeyboardHandler() - released VT." );
++#endif
++
+ #if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
+ ioctl(kbdFD, KDSKBMODE, K_XLATE);
+ #endif
+--- qt-2.3.9-snapshot-20041221/src/kernel/qgfxlinuxfb_qws.cpp~vt-switch.patch
++++ qt-2.3.9-snapshot-20041221/src/kernel/qgfxlinuxfb_qws.cpp
+@@ -251,9 +251,9 @@
+
+ bool QLinuxFbScreen::initDevice()
+ {
+- // No blankin' screen, no blinkin' cursor!, no cursor!
++ /* Setting up the VT parameters is done in qapplication_qws.cpp
+ const char termctl[]="\033[9;0]\033[?33l\033[?25l";
+- writeTerm(termctl,sizeof(termctl));
++ writeTerm(termctl,sizeof(termctl)); */
+
+ // Grab current mode so we can reset it
+ fb_var_screeninfo vinfo;
diff --git a/recipes-qt/qte/qte-common_2.3.10.inc b/recipes-qt/qte/qte-common_2.3.10.inc
new file mode 100644
index 0000000..75419ac
--- /dev/null
+++ b/recipes-qt/qte/qte-common_2.3.10.inc
@@ -0,0 +1,149 @@
+DESCRIPTION = "Qt/Embedded Version ${PV}"
+SECTION = "libs"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+LICENSE = "GPL"
+DEPENDS = "zlib libpng jpeg tslib uicmoc-native"
+#DEPENDS_append_c7x0 = " sharp-aticore-oss"
+PROVIDES = "virtual/libqte2"
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qte-${PV}"
+
+# Workaround GCC 4.1 issues with -fvisibility-inlines-hidden (see #1521)
+# by disabling it for qpe only. TODO: pinpoint actual issue causing GCC
+# misbehavior.
+#
+# Laibsch: Remove -fno-visibility-inlines-hidden instead of negating it
+# Laibsch: Fixes bug 1631
+#CXXFLAGS += "-fno-visibility-inlines-hidden"
+CXXFLAGS := "${@oe_filter_out('-fvisibility-inlines-hidden', '${CXXFLAGS}', d)}"
+
+SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz;md5sum=1f7ad30113afc500cab7f5b2f4dec0d7 \
+ file://qpe.patch \
+ file://vt-switch.patch \
+ file://daemonize.patch \
+ file://no-moc.patch \
+ file://gcc3.patch \
+ file://gcc4.patch \
+ file://encoding.patch \
+ file://fix-qgfxraster.patch \
+ file://qt-visibility.patch \
+ file://tslib.patch \
+ file://handhelds.patch \
+ file://qiconview-speed.patch \
+ file://qtabbar.patch \
+ file://increase-qxml-robustness.patch \
+ file://qte-fix-iconsize.patch \
+ file://fix-linuxfb-setmode.patch \
+ file://fix-linuxfb-offscreenoverflow.patch \
+ file://fix-qscreen-sync.patch \
+ file://improve-calibration-r0.patch \
+ file://key.patch \
+ file://bidimetrics.patch \
+ file://fix-native-build.patch \
+ file://fix-errno-exception-spec.patch \
+ file://keyboardless-buttonmap.patch \
+ file://kernel-keymap.patch \
+ file://kernel-keymap-corgi.patch \
+ file://remove-unused-kbdhandler.patch \
+ file://disable-dup-rotation.patch \
+ file://fix-qte-asm-include.patch \
+ file://support_18bpp.patch \
+ file://sharp_char.h \
+ file://switches.h "
+
+#
+# add device specific patches here
+#
+
+W100_ACCEL_PATCHES = "file://c7x0-w100-accel.patch \
+ file://c7x0-w100-gcc4.patch \
+ file://suspend-resume-hooks.patch"
+
+#SRC_URI_append_c7x0 = "${W100_ACCEL_PATCHES} "
+#SRC_URI_append_spitz = "file://spitz-adhoc-keypad-rotate.patch "
+#SRC_URI_append_akita = "file://spitz-adhoc-keypad-rotate.patch "
+
+# "ipaqs" used to have this, but later were proven to at least work
+# without it. Review again and see if has interesting bits to be applied
+# universally.
+#SRC_URI_append = "file://ipaq_sound_fix.patch "
+
+
+S = "${WORKDIR}/qt-${PV}"
+export QTDIR = "${S}"
+
+require qte-functions.inc
+QTE_ARCH := "${@qte_arch(d)}"
+
+#
+# add device configuration here
+#
+EXTRA_OECONF_CONFIG = "-qconfig qpe"
+#EXTRA_OECONF_CONFIG_c7x0 = "-qconfig qpe -accel-w100"
+EXTRA_OECONF_CONFIG_native = "-qconfig qpe -qvfb"
+
+EXTRA_OECONF = "-system-jpeg -system-libpng -system-zlib -no-qvfb -no-xft -no-vnc -gif \
+ -xplatform ${TARGET_OS}-${QTE_ARCH}-g++ ${EXTRA_OECONF_CONFIG} -depths 8,16,18,32"
+EXTRA_OEMAKE = "-e"
+
+#
+# add device flags here
+#
+EXTRA_DEFINES = "-DQT_QWS_TSLIB -DQT_QWS_CUSTOM -DQT_QWS_IPAQ"
+#EXTRA_DEFINES_spitz = "-DQT_QWS_TSLIB -DQT_QWS_CUSTOM -DQT_QWS_IPAQ -DQT_QWS_SLCXK"
+#EXTRA_DEFINES_akita = "-DQT_QWS_TSLIB -DQT_QWS_CUSTOM -DQT_QWS_IPAQ -DQT_QWS_SLCXK"
+
+#
+# don't touch anything below here
+#
+export SYSCONF_CC = "${CC}"
+export SYSCONF_CXX = "${CXX}"
+export SYSCONF_LINK = "${CCLD}"
+export SYSCONF_SHLIB = "${CCLD}"
+export SYSCONF_CFLAGS = "${CFLAGS}"
+export SYSCONF_LINK_SHLIB = "${CCLD}"
+export SYSCONF_CXXFLAGS = "${CXXFLAGS} -pipe -DQWS -fno-exceptions -frtti -DNO_DEBUG ${EXTRA_DEFINES} -DUSE_BIDI"
+# enable if gcc supports visibility
+#export SYSCONF_CXXFLAGS = "${CXXFLAGS} -pipe -DQWS -fno-exceptions -frtti -fvisibility=hidden -DGCC_SUPPORTS_VISIBILITY -DNO_DEBUG ${EXTRA_DEFINES} -DUSE_BIDI"
+export SYSCONF_LFLAGS = "${LDFLAGS} -lts"
+export SYSCONF_MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export SYSCONF_UIC = "${STAGING_BINDIR_NATIVE}/uic"
+
+# generate uclibc, eabi and powerpc configurations
+do_configure() {
+ for f in ${S}/configs/linux-*-g++-shared; do
+ sed -e 's,-linux-,-linux-uclibc-,g' < $f \
+ > `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibc-,'`
+ sed -e 's,-linux-,-linux-gnueabi-,g' < $f \
+ > `dirname $f`/`basename $f | sed -e 's,linux-,linux-gnueabi-,'`
+ sed -e 's,-linux-,-linux-uclibceabi-,g' < $f \
+ > `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibceabi-,'`
+ done
+ sed -e 's/arm/powerpc/' ${S}/configs/linux-arm-g++-shared > ${S}/configs/linux-powerpc-g++-shared
+ echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qte failed. EXTRA_OECONF was ${EXTRA_OECONF}"
+}
+
+do_compile() {
+ unset CC LD CCLD CXX RANLIB AR STRIP CFLAGS LDFLAGS CXXFLAGS CPPFLAGS
+ install -d include/asm/
+ install -m 0644 ${WORKDIR}/sharp_char.h include/asm/
+ install -d include/linux/
+ install -m 0644 ${WORKDIR}/switches.h include/linux/
+
+ # Create symlinks first and then compile the library
+ oe_runmake symlinks
+ oe_runmake src-mt sub-src
+}
+
+do_install() {
+ oe_libinstall -so -C lib lib${PN} ${D}${libdir}
+
+ install -d ${D}/${includedir}/qte
+ rm -f include/qxt.h
+ install -m 0644 include/*.h ${D}/${includedir}/qte/
+}
+
+FILES_${PN} = "${libdir}/lib${PN}.so.*"
+FILES_${PN}-dev = "${includedir}/* ${libdir}/lib${PN}.so"
+FILES_${PN}-dbg += "${libdir}/.debug/"
diff --git a/recipes-qt/qte/qte-functions.inc b/recipes-qt/qte/qte-functions.inc
new file mode 100644
index 0000000..f0ffb0e
--- /dev/null
+++ b/recipes-qt/qte/qte-functions.inc
@@ -0,0 +1,11 @@
+def qte_arch(d):
+ import bb, re
+ arch = bb.data.getVar('TARGET_ARCH', d, 1)
+ if re.match("^i.86$", arch):
+ arch = "x86"
+ elif arch == "x86_64":
+ arch = "x86"
+ elif arch == "mipsel":
+ arch = "mips"
+ return arch
+
diff --git a/recipes-qt/qte/qte-mt_2.3.10.bb b/recipes-qt/qte/qte-mt_2.3.10.bb
new file mode 100644
index 0000000..84467f5
--- /dev/null
+++ b/recipes-qt/qte/qte-mt_2.3.10.bb
@@ -0,0 +1,9 @@
+require qte-common_${PV}.inc
+PR = "r31"
+
+EXTRA_OECONF += "-thread"
+
+DEFAULT_PREFERENCE = "1"
+
+SRC_URI[md5sum] = "1f7ad30113afc500cab7f5b2f4dec0d7"
+SRC_URI[sha256sum] = "883363eb0c94de3d1e36f3ab9e09a8f127418d497213cc1a0ed1a1588ecd66b8"
diff --git a/recipes-qt/qte/qte_2.3.10.bb b/recipes-qt/qte/qte_2.3.10.bb
new file mode 100644
index 0000000..7a4376d
--- /dev/null
+++ b/recipes-qt/qte/qte_2.3.10.bb
@@ -0,0 +1,6 @@
+require qte-common_${PV}.inc
+PR = "r56"
+
+
+SRC_URI[md5sum] = "1f7ad30113afc500cab7f5b2f4dec0d7"
+SRC_URI[sha256sum] = "883363eb0c94de3d1e36f3ab9e09a8f127418d497213cc1a0ed1a1588ecd66b8"
diff --git a/recipes-qt/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch b/recipes-qt/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch
new file mode 100644
index 0000000..3cca3e0
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch
@@ -0,0 +1,226 @@
+--- qt-2.3.10/src/kernel/qsharedmemory.cpp~64bit 2005-12-14 12:31:39.000000000 +0000
++++ qt-2.3.10/src/kernel/qsharedmemory.cpp 2005-12-14 13:24:41.000000000 +0000
+@@ -36,6 +36,7 @@
+
+ #include <sys/ipc.h>
+ #include <sys/types.h>
++#include <stdint.h>
+
+ #if defined(QT_POSIX_QSHM)
+ #include <fcntl.h>
+@@ -122,8 +123,8 @@
+ if (shmId == -1)
+ shmId = shmget (key, shmSize, 0);
+
+- shmBase = shmat (shmId, 0, 0);
+- if ((int) shmBase == -1 || shmBase == 0)
++ intptr_t shmBase = (intptr_t) shmat (shmId, 0, 0);
++ if (shmBase == -1 || shmBase == 0)
+ return FALSE;
+ else
+ return TRUE;
+--- qt-2.3.10/src/kernel/qapplication_qws.cpp~64bit 2005-12-14 12:15:42.000000000 +0000
++++ qt-2.3.10/src/kernel/qapplication_qws.cpp 2005-12-14 12:19:39.000000000 +0000
+@@ -87,6 +87,7 @@
+ #include <sys/shm.h>
+ #include <sys/sem.h>
+ #include <sys/socket.h>
++#include <stdint.h>
+ #endif
+
+ #include <stdlib.h>
+@@ -2041,7 +2042,7 @@
+ w = widgetAt(*qt_last_x, *qt_last_y, FALSE);
+ if ( !w )
+ w = desktop();
+- QPaintDevice::qwsDisplay()->selectCursor(w, (int)app_cursor->handle());
++ QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)app_cursor->handle());
+ }
+
+ void QApplication::restoreOverrideCursor()
+@@ -2060,11 +2061,11 @@
+ cursorStack = 0;
+ qws_overrideCursor = FALSE;
+ if ( w->testWState(WState_OwnCursor) )
+- QPaintDevice::qwsDisplay()->selectCursor(w, (int)w->cursor().handle());
++ QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)w->cursor().handle());
+ else
+ QPaintDevice::qwsDisplay()->selectCursor(w, ArrowCursor);
+ } else {
+- QPaintDevice::qwsDisplay()->selectCursor(w, (int)app_cursor->handle());
++ QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)app_cursor->handle());
+ }
+ }
+ #endif// QT_NO_CURSOR
+@@ -2635,7 +2636,7 @@
+ }
+ if ( !qws_overrideCursor ) { // is override cursor active?
+ if (curs)
+- QPaintDevice::qwsDisplay()->selectCursor(widget, (int)curs->handle());
++ QPaintDevice::qwsDisplay()->selectCursor(widget, (intptr_t)curs->handle());
+ else
+ QPaintDevice::qwsDisplay()->selectCursor(widget, ArrowCursor);
+ }
+--- qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp~64bit 2005-01-23 14:00:46.000000000 +0000
++++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp 2005-12-14 12:04:56.000000000 +0000
+@@ -42,6 +42,7 @@
+ #include <sys/mman.h>
+ #include <fcntl.h>
+ #include <errno.h>
++#include <stdint.h>
+
+ #include "qgfxlinuxfb_qws.h"
+ #include "qwindowsystem_qws.h"
+@@ -164,7 +165,7 @@
+ MAP_SHARED, fd, 0);
+ data += dataoffset;
+
+- if ((int)data == -1) {
++ if ((intptr_t)data == -1) {
+ perror("mapping /dev/fb0");
+ qWarning("Error: failed to map framebuffer device to memory.");
+ return FALSE;
+@@ -703,7 +704,7 @@
+ psize += 8; // for alignment
+ psize &= ~0x7; // align
+
+- unsigned int pos=(unsigned int)data;
++ uintptr_t pos=(uintptr_t)data;
+ pos += psize;
+ entryp = ((int *)pos);
+ lowest = ((unsigned int *)pos)+1;
+--- qt-2.3.10/src/kernel/qmemorymanager_qws.h~64bit 2005-01-23 14:00:46.000000000 +0000
++++ qt-2.3.10/src/kernel/qmemorymanager_qws.h 2005-12-14 12:00:32.000000000 +0000
+@@ -33,6 +33,9 @@
+ #ifndef QMEMORYMANAGER_H
+ #define QMEMORYMANAGER_H
+
++/* Needed for uintptr_t to allow 64bit clean pointer handling */
++#include <stdint.h>
++
+ #ifndef QT_H
+ #include <qfontmanager_qws.h>
+ #include <qstring.h>
+@@ -126,8 +129,8 @@
+ // constructs from a memory ptr to where the data after the item starts
+ QSMCacheItemPtr(void *data) {
+ char *ptr = (char*)data;
+- if ( (int)ptr != (((int)ptr+3)&~3) )
+- qDebug("err, passed a non-aligned data ptr %x", (int)ptr);
++ if (intptr_t(data)&3!=0)
++ qDebug("err, passed a non-aligned data ptr %p", ptr);
+ d = (QSMCacheItem*)(ptr - sizeof(QSMCacheItem));
+ }
+ // returns a pointer to the data after the item
+--- qt-2.3.10/src/kernel/qwsregionmanager_qws.cpp~64bit 2005-12-14 13:25:06.000000000 +0000
++++ qt-2.3.10/src/kernel/qwsregionmanager_qws.cpp 2005-12-14 13:25:51.000000000 +0000
+@@ -32,6 +32,7 @@
+ #include "qwsdisplay_qws.h"
+ #include "qwsregionmanager_qws.h"
+ #include <stdlib.h>
++#include <stdint.h>
+
+ #ifndef QT_NO_QWS_MULTIPROCESS
+ #include <sys/types.h>
+@@ -286,7 +287,7 @@
+ data = (unsigned char *)shmat( shmId, 0, SHM_RDONLY );
+ }
+
+- return ( shmId != -1 && (int)data != -1 );
++ return ( shmId != -1 && (intptr_t)data != -1 );
+ #else
+ int dataSize = sizeof(QWSRegionHeader) // header
+ + sizeof(QWSRegionIndex) * QT_MAX_REGIONS // + index
+--- qt-2.3.10/src/kernel/qpixmapcache.cpp~64bit 2005-12-14 13:26:43.000000000 +0000
++++ qt-2.3.10/src/kernel/qpixmapcache.cpp 2005-12-14 13:30:33.000000000 +0000
+@@ -38,6 +38,7 @@
+ #include "qpixmapcache.h"
+ #include "qcache.h"
+ #include "qobject.h"
++#include <stdint.h>
+
+
+ // REVISED: paul
+@@ -519,7 +520,7 @@
+ #endif // DEBUG_SHARED_MEMORY_CACHE
+ }
+
+- if ( shmId == -1 || (int)shm == -1 )
++ if ( shmId == -1 || (intptr_t)shm == -1 )
+ qFatal("Cannot attach to shared memory");
+
+ qt_sharedMemoryData = shm->data;
+@@ -536,8 +537,8 @@
+ shm->tail.setFree(false);
+ shm->tail.setNextFree(QSMemPtr());
+ #ifdef THROW_AWAY_UNUSED_PAGES
+- int freePageStart = PAGE_ALIGN((int)&shm->first + sizeof(QSMemNode));
+- int freePagesLength = PAGE_ALIGN((int)&shm->tail) - freePageStart;
++ intptr_t freePageStart = PAGE_ALIGN((intptr_t)&shm->first + sizeof(QSMemNode));
++ intptr_t freePagesLength = PAGE_ALIGN((intptr_t)&shm->tail) - freePageStart;
+ if ( freePagesLength ) {
+ # ifdef DEBUG_SHARED_MEMORY_CACHE
+ qDebug("Initially marking free pages as not needed");
+@@ -770,8 +771,8 @@
+ node = newFreeNode->next();
+
+ #ifdef THROW_AWAY_UNUSED_PAGES
+- int freePageStart = PAGE_ALIGN((int)newFreeNode+sizeof(QSMemNode));
+- int freePagesLength = PAGE_ALIGN((int)node) - freePageStart;
++ intptr_t freePageStart = PAGE_ALIGN((intptr_t)newFreeNode+sizeof(QSMemNode));
++ intptr_t freePagesLength = PAGE_ALIGN((intptr_t)node) - freePageStart;
+ if ( freePagesLength ) {
+ #ifdef DEBUG_SHARED_MEMORY_CACHE
+ qDebug("Marking pages not needed");
+--- qt-2.3.10/src/kernel/qwidget_qws.cpp~64bit 2005-12-14 12:20:46.000000000 +0000
++++ qt-2.3.10/src/kernel/qwidget_qws.cpp 2005-12-14 12:30:35.000000000 +0000
+@@ -50,6 +50,7 @@
+ #include "qwsmanager_qws.h"
+ #include "qwsregionmanager_qws.h"
+ #include "qinputcontext_p.h"
++#include <stdint.h>
+
+ void qt_insert_sip( QWidget*, int, int ); // defined in qapplication_x11.cpp
+ int qt_sip_count( QWidget* ); // --- "" ---
+@@ -633,7 +634,7 @@
+ qt_mouseGrb->releaseMouse();
+
+ qwsDisplay()->grabMouse(this,TRUE);
+- qwsDisplay()->selectCursor(this, (unsigned int)cursor.handle());
++ qwsDisplay()->selectCursor(this, (uintptr_t)cursor.handle());
+ qt_mouseGrb = this;
+ qt_pressGrab = 0;
+ }
+@@ -1840,11 +1841,11 @@
+ void QWidget::updateCursor( const QRegion &r ) const
+ {
+ if ( qt_last_x && (!QWidget::mouseGrabber() || QWidget::mouseGrabber() == this) &&
+- qt_last_cursor != (WId)cursor().handle() && !qws_overrideCursor ) {
++ qt_last_cursor != (uintptr_t)cursor().handle() && !qws_overrideCursor ) {
+ QSize s( qt_screen->width(), qt_screen->height() );
+ QPoint pos = qt_screen->mapToDevice(QPoint(*qt_last_x, *qt_last_y), s);
+ if ( r.contains(pos) )
+- qwsDisplay()->selectCursor((QWidget*)this, (unsigned int)cursor().handle());
++ qwsDisplay()->selectCursor((QWidget*)this, (uintptr_t)cursor().handle());
+ }
+ }
+ #endif
+--- qt-2.3.10/tools/qvfb/qvfbview.cpp~64bit 2005-12-14 13:32:47.000000000 +0000
++++ qt-2.3.10/tools/qvfb/qvfbview.cpp 2005-12-14 13:33:27.000000000 +0000
+@@ -40,6 +40,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <math.h>
++#include <stdint.h>
+
+
+ QVFbView::QVFbView( int display_id, int _w, int _h, int d, Rotation r, QWidget *parent,
+@@ -136,7 +137,7 @@
+ data = (unsigned char *)shmat( shmId, 0, 0 );
+ }
+
+- if ( (int)data == -1 ){
++ if ( (intptr_t)data == -1 ){
+ ::close(mouseFd);
+ ::close(keyboardFd);
+ qFatal( "Cannot attach to shared memory %d",shmId );
diff --git a/recipes-qt/uicmoc/uicmoc-native-2.3.10/fix-makefile.patch b/recipes-qt/uicmoc/uicmoc-native-2.3.10/fix-makefile.patch
new file mode 100644
index 0000000..5943f0f
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native-2.3.10/fix-makefile.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.7/Makefile~fix-makefile 2003-07-17 03:23:11.000000000 +0200
++++ qt-2.3.7/Makefile 2004-04-23 15:36:25.000000000 +0200
+@@ -29,7 +29,7 @@
+ cd tools; $(MAKE)
+
+ symlinks: .buildopts
+- @cd include; rm -f q*.h; for i in ../src/*/q*.h ../src/3rdparty/*/q*.h ../extensions/*/src/q*.h; do ln -s $$i .; done; rm -f q*_p.h
++ @cd include; rm -f q*.h; for i in ../src/*/q*.h ../src/3rdparty/*/*.h ../extensions/*/src/q*.h; do ln -s $$i .; done; rm -f q*_p.h
+
+ sub-src: src-moc src-mt .buildopts FORCE
+ cd src; $(MAKE)
diff --git a/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc3_4.patch b/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc3_4.patch
new file mode 100644
index 0000000..fc1656a
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc3_4.patch
@@ -0,0 +1,27 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20041211/src/tools/qcstring.h~gcc3
++++ qt-2.3.9-snapshot-20041211/src/tools/qcstring.h
+@@ -119,7 +119,7 @@
+ // We want to keep source compatibility for 2.x
+ // ### TODO for 4.0: completely remove these and the cstr* functions
+
+-#if !defined(QT_GENUINE_STR)
++#if 0
+
+ #undef strlen
+ #define strlen qstrlen
+--- qt-2.3.9-snapshot-20041211/src/kernel/qwsdecoration_qws.h~gcc3
++++ qt-2.3.9-snapshot-20041211/src/kernel/qwsdecoration_qws.h
+@@ -50,7 +50,7 @@
+ enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
+ TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
+ Close=11, Minimize=12, Maximize=13, Normalize=14,
+- Menu=15, LastRegion=Menu };
++ Menu=15, LastRegion=Menu, UserDefined = 100 };
+
+ virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
+ virtual void close( QWidget * );
diff --git a/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4.patch b/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4.patch
new file mode 100644
index 0000000..633fe86
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4.patch
@@ -0,0 +1,12 @@
+--- qt-2.3.10/src/kernel/qwindowsystem_qws.h.orig 2005-07-13 20:23:30.061728456 +0100
++++ qt-2.3.10/src/kernel/qwindowsystem_qws.h 2005-07-13 20:37:57.183905848 +0100
+@@ -168,6 +168,9 @@
+ class QWSMouseHandler;
+ struct QWSCommandStruct;
+
++class QWSInputMethod;
++class QWSGestureMethod;
++
+ #ifndef QT_NO_QWS_MULTIPROCESS
+ class QWSServer : public QWSServerSocket
+ #else
diff --git a/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4_1.patch b/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4_1.patch
new file mode 100644
index 0000000..550effd
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native-2.3.10/gcc4_1.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.10/src/tools/qvaluestack.h~gcc4 2005-01-23 15:00:47.000000000 +0100
++++ qt-2.3.10/src/tools/qvaluestack.h 2006-03-19 02:32:56.000000000 +0100
+@@ -54,7 +54,7 @@
+ {
+ T elem( this->last() );
+ if ( !this->isEmpty() )
+- remove( this->fromLast() );
++ this->remove( this->fromLast() );
+ return elem;
+ }
+ T& top() { return this->last(); }
diff --git a/recipes-qt/uicmoc/uicmoc-native-2.3.10/kernel-asm-page.patch b/recipes-qt/uicmoc/uicmoc-native-2.3.10/kernel-asm-page.patch
new file mode 100644
index 0000000..0d31874
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native-2.3.10/kernel-asm-page.patch
@@ -0,0 +1,20 @@
+diff --git a/src/kernel/qpixmapcache.cpp b/src/kernel/qpixmapcache.cpp
+index c2e7d9b..8d39585 100644
+--- a/src/kernel/qpixmapcache.cpp
++++ b/src/kernel/qpixmapcache.cpp
+@@ -123,9 +123,12 @@ void cleanup_pixmap_cache();
+ #ifdef THROW_AWAY_UNUSED_PAGES
+ # include <sys/mman.h> // madvise
+-# include <asm/page.h> // PAGE_SIZE,PAGE_MASK,PAGE_ALIGN
++# include <unistd.h> // getpagesize()
++# if (!defined(PAGE_ALIGN)) && defined(PAGE_SIZE) && defined(PAGE_MASK)
++# define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
++# endif
+ # ifndef PAGE_ALIGN
+-# define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
+-# endif // PAGE_ALIGN
++# define PAGE_ALIGN(addr) (((addr)+getpagesize()-1)&~(getpagesize()-1))
++# endif
+ #endif // THROW_AWAY_UNUSED_PAGES
+
+
diff --git a/recipes-qt/uicmoc/uicmoc-native_2.3.10.bb b/recipes-qt/uicmoc/uicmoc-native_2.3.10.bb
new file mode 100644
index 0000000..12f10a0
--- /dev/null
+++ b/recipes-qt/uicmoc/uicmoc-native_2.3.10.bb
@@ -0,0 +1,56 @@
+DESCRIPTION = "User Interface Generator and Meta Object Compiler (moc) for Qt(E) 2.x"
+HOMEPAGE = "http://www.trolltech.com"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "GPL QPL"
+PR = "r5"
+
+SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz \
+ file://fix-makefile.patch \
+ file://gcc3_4.patch \
+ file://gcc4.patch \
+ file://gcc4_1.patch \
+ file://64bit-cleanup.patch \
+ file://kernel-asm-page.patch"
+S = "${WORKDIR}/qt-${PV}"
+
+inherit native qmake_base
+
+export QTDIR = "${S}"
+EXTRA_OEMAKE = 'SYSCONF_CXX="${CXX}" SYSCONF_LINK="${CXX}"'
+CXXFLAGS += " -DQWS"
+
+QT_CONFIG_FLAGS = "-depths 8,16 -no-qvfb -no-g++-exceptions -no-jpeg -no-mng \
+ -qt-zlib -qt-libpng -no-xft -no-xkb -no-vnc -no-sm \
+ -no-opengl -static -qconfig oe"
+
+do_configure() {
+ touch src/tools/qconfig-oe.h
+ echo "#define QT_NO_FREETYPE" >> src/tools/qconfig-oe.h
+ echo yes | ./configure ${QT_CONFIG_FLAGS} || die "Configuring qt failed"
+}
+
+do_compile() {
+ oe_runmake symlinks || die "Can't symlink include files"
+ oe_runmake -C src/moc || die "Building moc failed"
+
+ cp src/moc/moc bin/
+
+ oe_runmake -C src || die "Building libqt.a failed"
+ oe_runmake -C tools/designer/util || die "Building libqutil.a failed"
+ oe_runmake -C tools/designer/uic || die "Building uic failed"
+ oe_runmake -C tools/qvfb || die "Building qvfb failed"
+ oe_runmake -C tools/makeqpf || die "Building makeqpf failed"
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 bin/moc ${D}${bindir}
+ install -m 0755 bin/uic ${D}${bindir}
+ install -m 0755 tools/makeqpf/makeqpf ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "1f7ad30113afc500cab7f5b2f4dec0d7"
+SRC_URI[sha256sum] = "883363eb0c94de3d1e36f3ab9e09a8f127418d497213cc1a0ed1a1588ecd66b8"
+
+NATIVE_INSTALL_WORKS = "1"
diff --git a/recipes-qtopia/aliens/aliens_1.0.0.bb b/recipes-qtopia/aliens/aliens_1.0.0.bb
new file mode 100644
index 0000000..ca6e1bb
--- /dev/null
+++ b/recipes-qtopia/aliens/aliens_1.0.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Classic Arcade Shooter for Qt/Embedded based palmtop environments"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "aliens.sdl"
+APPTYPE = "binary"
+PR = "r4"
+
+SRC_URI = "ftp://ftp.billsgames.com/unix/agenda/aliens/src/aliens_V${PV}.tar.gz"
+S = "${WORKDIR}/aliens_V${PV}"
+
+inherit opie
+
+do_compile_prepend() {
+ cd images && make && cd ..
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 aliens.png ${D}${palmtopdir}/pics/aliens.png
+}
+
+SRC_URI[md5sum] = "9d7cde75aecf4b85478c0e47343d4293"
+SRC_URI[sha256sum] = "0aa0084a74f912f4002f1c40a815ce62ac13331ec84787a954d8bea06e1c96c5"
diff --git a/recipes-qtopia/billiardz/billiardz_0.1.4.bb b/recipes-qtopia/billiardz/billiardz_0.1.4.bb
new file mode 100644
index 0000000..f8af487
--- /dev/null
+++ b/recipes-qtopia/billiardz/billiardz_0.1.4.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Billiard Game for Qt/Embedded based palmtop environments w/ SDL."
+HOMEPAGE = "http://www.chipx86.com/projects/billiardz/"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libsdl-qpe libsdl-image"
+PR = "r2"
+
+SRC_URI = "http://www.chipx86.com/packages/ipkg/billiardz-${PV}.tar.gz \
+ file://gcc4.patch"
+
+SRC_URI[md5sum] = "21908ae1ee9e3cb96e9dda6f096ed13f"
+SRC_URI[sha256sum] = "23b70f94a987af6be23108a772b927a2c02060c6137b9589484e28b55c2bdebd"
+
+inherit palmtop
+
+QMAKE_PROFILES = "billiardz.arm.pro"
+EXTRA_QMAKEVARS_POST += "DEFINES-=FPM_INTEL"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/ \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/pics/billiardz
+ install -m 0755 billiardz ${D}${palmtopdir}/bin/billiardz
+ install -m 0644 billiardz.png ${D}${palmtopdir}/pics/billiardz.png
+ cp -pPR images/*.png ${D}${palmtopdir}/pics/billiardz
+
+ echo "[Desktop Entry] " >${D}${palmtopdir}/apps/Games/billiardz.desktop
+ echo "Comment=Billiards for Zaurus" >>${D}${palmtopdir}/apps/Games/billiardz.desktop
+ echo "Exec=billiardz" >>${D}${palmtopdir}/apps/Games/billiardz.desktop
+ echo "Icon=billiardz" >>${D}${palmtopdir}/apps/Games/billiardz.desktop
+ echo "Type=Application" >>${D}${palmtopdir}/apps/Games/billiardz.desktop
+ echo "Name=BilliardZ" >>${D}${palmtopdir}/apps/Games/billiardz.desktop
+}
diff --git a/recipes-qtopia/billiardz/files/gcc4.patch b/recipes-qtopia/billiardz/files/gcc4.patch
new file mode 100644
index 0000000..30d7eda
--- /dev/null
+++ b/recipes-qtopia/billiardz/files/gcc4.patch
@@ -0,0 +1,45 @@
+diff -Naur billiardz-0.1.4-orig/src/ButtonListener.h billiardz-0.1.4/src/ButtonListener.h
+--- billiardz-0.1.4-orig/src/ButtonListener.h 2002-11-05 07:01:51.000000000 +0100
++++ billiardz-0.1.4/src/ButtonListener.h 2007-03-26 21:10:11.000000000 +0200
+@@ -9,6 +9,7 @@
+ {
+ public:
+ virtual void buttonClicked(Button *button) = 0;
++ virtual ~ButtonListener() {}
+ };
+
+ #endif /* _BUTTONLISTENER_H_ */
+diff -Naur billiardz-0.1.4-orig/src/CueStickListener.h billiardz-0.1.4/src/CueStickListener.h
+--- billiardz-0.1.4-orig/src/CueStickListener.h 2002-09-13 02:02:23.000000000 +0200
++++ billiardz-0.1.4/src/CueStickListener.h 2007-03-26 21:11:14.000000000 +0200
+@@ -12,6 +12,7 @@
+ virtual bool cueBallHit(CueStick *stick, Ball *ball) = 0;
+ virtual void stickMoved(CueStick *stick, Fixed oldAngle,
+ Fixed newAngle) = 0;
++ virtual ~CueStickListener() {}
+ };
+
+ #endif /* _CUESTICKLISTENER_H_ */
+diff -Naur billiardz-0.1.4-orig/src/PoolGame.h billiardz-0.1.4/src/PoolGame.h
+--- billiardz-0.1.4-orig/src/PoolGame.h 2002-11-05 07:01:36.000000000 +0100
++++ billiardz-0.1.4/src/PoolGame.h 2007-03-26 21:40:58.000000000 +0200
+@@ -6,6 +6,7 @@
+
+ class Player;
+ class PoolTable;
++class PoolRoom;
+ class Physics;
+ class Rules;
+ class Sprite;
+diff -Naur billiardz-0.1.4-orig/src/main.cpp billiardz-0.1.4/src/main.cpp
+--- billiardz-0.1.4-orig/src/main.cpp 2003-11-03 07:56:29.000000000 +0100
++++ billiardz-0.1.4/src/main.cpp 2007-03-26 23:27:11.000000000 +0200
+@@ -51,7 +51,7 @@
+
+ return interval;
+ }
+-
++#define SDL_main main
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
diff --git a/recipes-qtopia/brickout/brickout-2002.06.09/directories.patch b/recipes-qtopia/brickout/brickout-2002.06.09/directories.patch
new file mode 100644
index 0000000..02b9561
--- /dev/null
+++ b/recipes-qtopia/brickout/brickout-2002.06.09/directories.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- brickout-2002.06.09/brickout.c~directories 2002-06-10 09:47:53.000000000 +0200
++++ brickout-2002.06.09/brickout.c 2004-01-26 16:39:25.000000000 +0100
+@@ -15,6 +15,10 @@
+ May 17, 2001 - June 9, 2002
+ */
+
++#define IMAGEDIR "/opt/QtPalmtop/share/brickout/images/"
++#define SOUNDDIR "/opt/QtPalmtop/share/brickout/sounds/"
++#define MUSICDIR "/opt/QtPalmtop/share/brickout/music/"
++#define THE_IMAGES
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/recipes-qtopia/brickout/brickout_2002.06.09.bb b/recipes-qtopia/brickout/brickout_2002.06.09.bb
new file mode 100644
index 0000000..f0a5377
--- /dev/null
+++ b/recipes-qtopia/brickout/brickout_2002.06.09.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "Clone of the classic arcade game Asteroids for Qt/Embedded based palmtop environments w/ SDL"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libsdl-qpe libsdl-mixer libsdl-image"
+PR = "r4"
+
+SRC_URI = "ftp://ftp.billsgames.com/unix/agenda/brickout/src/brickout-${PV}.tar.gz \
+ file://directories.patch"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += " INCLUDEPATH+=${STAGING_INCDIR}/SDL LIBS+=-lSDL LIBS+=-lSDL_mixer LIBS+=-lSDLmain \
+ LIBS+=-lSDL_image LIBS+=-lpthread TARGET=brickout DEFINES+=USE_SDL "
+
+do_configure_prepend() {
+ qmake -project -o brickout.pro
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/share/brickout/sounds \
+ ${D}${palmtopdir}/share/brickout/music \
+ ${D}${palmtopdir}/share/brickout/images
+ install -D -m 0755 brickout ${D}${palmtopdir}/bin/brickout
+ install -D -m 0644 brickout.png ${D}${palmtopdir}/pics/brickout.png
+
+ cp -pPR sounds/* ${D}${palmtopdir}/share/brickout/sounds/
+ cp -pPR music/* ${D}${palmtopdir}/share/brickout/music/
+ cp -pPR images-sdl/* ${D}${palmtopdir}/share/brickout/images/
+
+ echo "[Desktop Entry]" >${D}${palmtopdir}/apps/Games/brickout.desktop
+ echo "Comment=Arkanoid game" >>${D}${palmtopdir}/apps/Games/brickout.desktop
+ echo "Exec=brickout" >>${D}${palmtopdir}/apps/Games/brickout.desktop
+ echo "Icon=brickout" >>${D}${palmtopdir}/apps/Games/brickout.desktop
+ echo "Type=Application" >>${D}${palmtopdir}/apps/Games/brickout.desktop
+ echo "Name=Brickout" >>${D}${palmtopdir}/apps/Games/brickout.desktop
+}
+
+SRC_URI[md5sum] = "f191a5658e4262e85499e5b69433af89"
+SRC_URI[sha256sum] = "56e0abb8697b62949ab085419a3b6f83dd13db02d322759f4cd6c5e5286c2240"
diff --git a/recipes-qtopia/camera-assistant/ca.desktop b/recipes-qtopia/camera-assistant/ca.desktop
new file mode 100644
index 0000000..b6ab5be
--- /dev/null
+++ b/recipes-qtopia/camera-assistant/ca.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=Camera Assistant
+Exec=ca
+Icon=ca/ca
+Type=Application
+Name=Camera Assistant
diff --git a/recipes-qtopia/camera-assistant/ca.png b/recipes-qtopia/camera-assistant/ca.png
new file mode 100644
index 0000000..d28cfbe
--- /dev/null
+++ b/recipes-qtopia/camera-assistant/ca.png
Binary files differ
diff --git a/recipes-qtopia/camera-assistant/camera-assistant_0.2.0.bb b/recipes-qtopia/camera-assistant/camera-assistant_0.2.0.bb
new file mode 100644
index 0000000..bb4995a
--- /dev/null
+++ b/recipes-qtopia/camera-assistant/camera-assistant_0.2.0.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Camera Assistant aims to be an allround calculator for photographers & Cinematographers. \
+It currently has the following features: \
+ \
+ * Depth of field calculator. \
+ * Inverse Depth of field calculator. (Calculate what aperture you need for a given depth/distance & lens) \
+ * Field of view calculator. \
+ * Variants of the above, calculate distance to object or lens for a given field of view. \
+ * Database of TV cameras, Motion picture cameras and Still photography cameras."
+SECTION = "opie/applications"
+
+
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "zaurus@bredband.net"
+HOMEPAGE = "http://cameraassistant.sourceforge.net/"
+
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/cameraassistant/camera-assistant_0.2.0.tar.gz \
+ file://g++-3.4-compile-fixes.patch \
+ file://ca.desktop \
+ file://ca.png "
+
+
+S = "${WORKDIR}/CameraAssistant"
+
+APPNAME = "ca"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/ca.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
+
+inherit opie
+
+
+SRC_URI[md5sum] = "538e8d4691062524c4181da487d83250"
+SRC_URI[sha256sum] = "9caa3e654af03e55582dd515bfcc9bf5aa93c9d22842af16a87a9a226ec581ed"
diff --git a/recipes-qtopia/camera-assistant/g++-3.4-compile-fixes.patch b/recipes-qtopia/camera-assistant/g++-3.4-compile-fixes.patch
new file mode 100644
index 0000000..383d083
--- /dev/null
+++ b/recipes-qtopia/camera-assistant/g++-3.4-compile-fixes.patch
@@ -0,0 +1,155 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- CameraAssistant/defaultconfig.h~g++-3.4-compile-fixes
++++ CameraAssistant/defaultconfig.h
+@@ -2,76 +2,75 @@
+ #define DEFAULTCONFIG_H
+
+ char defaultConfig[]=
+-"
+-<CameraAssistant>
+- <Settings version=\"0.0.3\">
+- <defaultAdjustments value='1'/>
+- <defaultCameraCategory value='Photo'/>
+- <defaultCameraType value='35mm'/>
+- <defaultAspectRatio value='Full aperture'/>
+- </Settings>
+- <Cameras>
+- <CameraCategory name='Television'>
+- <CameraType name='1/4\"' coc='0.00800' width='3.2' height='2.4' />
+- <CameraType name='1/3\"' coc='0.01100' width='4.8' height='3.6' />
+- <CameraType name='1/2\"' coc='0.01500' width='6.4' height='4.8' />
+- <CameraType name='2/3\"' coc='0.02000' width='8.8' height='6.6'>
+- <AspectRatio name='4:3' />
+- <AspectRatio name='16:9' aspectratio='1.77778' />
+- </CameraType>
+- <CameraType name='1\"' coc='0.03000' width='12.7' height='9.525' />
+- </CameraCategory>
+- <CameraCategory name='Film'>
+- <CameraType name='16mm' coc='0.01524' width='10.2616' height='7.493'>
+- <AspectRatio name='Full aperture' />
+- <AspectRatio name='TV (station)' width='9.652' height='7.2644' />
+- <AspectRatio name='TV (transmitted)' width='9.3472' height='7.0104' />
+- <AspectRatio name='TV (safe action)' width='8.4074' height='6.2992' />
+- <AspectRatio name='TV (safe title)' width='7.4422' height='5.6134' />
+- <AspectRatio name='1.85:1' width='9.602' height='5.207' />
+- </CameraType>
+- <CameraType name='16mm (super)' coc='0.01524' width='12.5222' height='7.4168'>
+- <AspectRatio name='Full aperture' />
+- <AspectRatio name='1.66' width='11.7602' height='7.0866' />
+- <AspectRatio name='1.85' width='11.7602' height='6.3754' />
+- </CameraType>
+- <CameraType name='35mm' coc='0.02540' width='21.9456' height='16.002'>
+- <AspectRatio name='Full aperture' />
+- <AspectRatio name='TV (station)' width='20.7264' height='15.5448' />
+- <AspectRatio name='TV (transmitted)' width='20.1168' height='15.0876' />
+- <AspectRatio name='TV (safe action)' width='18.1102' height='13.589' />
+- <AspectRatio name='TV (safe title)' width='16.002' height='12.085' />
+- <AspectRatio name='1.37:1' width='20.955' height='15.2908' />
+- <AspectRatio name='1.66:1' width='20.955' height='12.6238' />
+- <AspectRatio name='1.75:1' width='20.955' height='11.9634' />
+- <AspectRatio name='1.85:1' width='20.955' height='11.3284' />
+- </CameraType>
+- <CameraType name='35mm (super)' coc='0.02540' width='24.892' height='18.669'>
+- <AspectRatio name='Full aperture' />
+- <AspectRatio name='FLAT 1.85:1' width='24.003' height='12.9794' />
+- <AspectRatio name='2.20:1' width='24.003' height='10.0076' />
+- <AspectRatio name='2.40:1' width='24.003' height='10.922' />
+- </CameraType>
+- <CameraType name='65mm' coc='0.03556' width='52.4764' height='23.0124' />
+- <CameraType name='70mm' coc='0.03556' width='48.5648' height='22.098' />
+- <CameraType name='Omnimax' coc='0.03556' width='37.719' height='25.1714' />
+- </CameraCategory>
+- <CameraCategory name='Photo'>
+- <CameraType name='APS' width='30.2' height='16.7' coc='0.01995'>
+- <AspectRatio name='H' aspectratio='1.80838' />
+- <AspectRatio name='C' aspectratio='-1.49701' />
+- <AspectRatio name='P' aspectratio='3.02' />
+- </CameraType>
+- <CameraType name='35mm' width='36' height='24' coc='0.02501'>
+- <AspectRatio name='Full aperture' />
+- <AspectRatio name='Panorama' aspectratio='2.70677' />
+- </CameraType>
+- <CameraType name='6x4.5' width='56' height='42' coc='0.04335' />
+- <CameraType name='6x6' width='56' height='56' coc='0.04905' />
+- <CameraType name='6x7' width='56' height='69.5' coc='0.05329' />
+- <CameraType name='6x9' width='56' height='84' coc='0.06252' />
+- </CameraCategory>
+- </Cameras>
+-</CameraAssistant>
+-";
++""
++"<CameraAssistant>"
++" <Settings version=\"0.0.3\">"
++" <defaultAdjustments value='1'/>"
++" <defaultCameraCategory value='Photo'/>"
++" <defaultCameraType value='35mm'/>"
++" <defaultAspectRatio value='Full aperture'/>"
++" </Settings>"
++" <Cameras>"
++" <CameraCategory name='Television'>"
++" <CameraType name='1/4\"' coc='0.00800' width='3.2' height='2.4' />"
++" <CameraType name='1/3\"' coc='0.01100' width='4.8' height='3.6' />"
++" <CameraType name='1/2\"' coc='0.01500' width='6.4' height='4.8' />"
++" <CameraType name='2/3\"' coc='0.02000' width='8.8' height='6.6'>"
++" <AspectRatio name='4:3' />"
++" <AspectRatio name='16:9' aspectratio='1.77778' />"
++" </CameraType>"
++" <CameraType name='1\"' coc='0.03000' width='12.7' height='9.525' />"
++" </CameraCategory>"
++" <CameraCategory name='Film'>"
++" <CameraType name='16mm' coc='0.01524' width='10.2616' height='7.493'>"
++" <AspectRatio name='Full aperture' />"
++" <AspectRatio name='TV (station)' width='9.652' height='7.2644' />"
++" <AspectRatio name='TV (transmitted)' width='9.3472' height='7.0104' />"
++" <AspectRatio name='TV (safe action)' width='8.4074' height='6.2992' />"
++" <AspectRatio name='TV (safe title)' width='7.4422' height='5.6134' />"
++" <AspectRatio name='1.85:1' width='9.602' height='5.207' />"
++" </CameraType>"
++" <CameraType name='16mm (super)' coc='0.01524' width='12.5222' height='7.4168'>"
++" <AspectRatio name='Full aperture' />"
++" <AspectRatio name='1.66' width='11.7602' height='7.0866' />"
++" <AspectRatio name='1.85' width='11.7602' height='6.3754' />"
++" </CameraType>"
++" <CameraType name='35mm' coc='0.02540' width='21.9456' height='16.002'>"
++" <AspectRatio name='Full aperture' />"
++" <AspectRatio name='TV (station)' width='20.7264' height='15.5448' />"
++" <AspectRatio name='TV (transmitted)' width='20.1168' height='15.0876' />"
++" <AspectRatio name='TV (safe action)' width='18.1102' height='13.589' />"
++" <AspectRatio name='TV (safe title)' width='16.002' height='12.085' />"
++" <AspectRatio name='1.37:1' width='20.955' height='15.2908' />"
++" <AspectRatio name='1.66:1' width='20.955' height='12.6238' />"
++" <AspectRatio name='1.75:1' width='20.955' height='11.9634' />"
++" <AspectRatio name='1.85:1' width='20.955' height='11.3284' />"
++" </CameraType>"
++" <CameraType name='35mm (super)' coc='0.02540' width='24.892' height='18.669'>"
++" <AspectRatio name='Full aperture' />"
++" <AspectRatio name='FLAT 1.85:1' width='24.003' height='12.9794' />"
++" <AspectRatio name='2.20:1' width='24.003' height='10.0076' />"
++" <AspectRatio name='2.40:1' width='24.003' height='10.922' />"
++" </CameraType>"
++" <CameraType name='65mm' coc='0.03556' width='52.4764' height='23.0124' />"
++" <CameraType name='70mm' coc='0.03556' width='48.5648' height='22.098' />"
++" <CameraType name='Omnimax' coc='0.03556' width='37.719' height='25.1714' />"
++" </CameraCategory>"
++" <CameraCategory name='Photo'>"
++" <CameraType name='APS' width='30.2' height='16.7' coc='0.01995'>"
++" <AspectRatio name='H' aspectratio='1.80838' />"
++" <AspectRatio name='C' aspectratio='-1.49701' />"
++" <AspectRatio name='P' aspectratio='3.02' />"
++" </CameraType>"
++" <CameraType name='35mm' width='36' height='24' coc='0.02501'>"
++" <AspectRatio name='Full aperture' />"
++" <AspectRatio name='Panorama' aspectratio='2.70677' />"
++" </CameraType>"
++" <CameraType name='6x4.5' width='56' height='42' coc='0.04335' />"
++" <CameraType name='6x6' width='56' height='56' coc='0.04905' />"
++" <CameraType name='6x7' width='56' height='69.5' coc='0.05329' />"
++" <CameraType name='6x9' width='56' height='84' coc='0.06252' />"
++" </CameraCategory>"
++" </Cameras>"
++"</CameraAssistant>";
+ #endif // DEFAULTCONFIG_H
diff --git a/recipes-qtopia/corsair/corsair_0.2.6.bb b/recipes-qtopia/corsair/corsair_0.2.6.bb
new file mode 100644
index 0000000..0a566df
--- /dev/null
+++ b/recipes-qtopia/corsair/corsair_0.2.6.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "RSS aggregator for Qtopia"
+SECTION = "opie/applications"
+LICENSE = "GPL"
+AUTHOR = "Joe Rumsey <joe@rumsey.org>"
+HOMEPAGE = "http://corsair.sf.net/"
+RDEPENDS_${PN} = "opie-pics"
+
+PR = "r2"
+
+inherit palmtop
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/corsair/corsair-${PV}.tar.gz \
+ file://corsair-opie.patch"
+
+S = "${WORKDIR}/corsair"
+
+do_configure() {
+}
+
+do_compile() {
+ oe_runmake LIBS="-l${QT_LIBRARY} -lqpe"
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/apps/Applications/
+ install -d ${D}${palmtopdir}/bin
+ install -m 0644 ${S}/Corsair.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/corsair.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${S}/icons/newfeed.png ${S}/icons/get.png ${D}${palmtopdir}/pics/
+ install -m 0755 ${S}/corsair ${D}${palmtopdir}/bin/
+}
+
+SRC_URI[md5sum] = "91dd4c6b5650aef03b293aa9a6f54d49"
+SRC_URI[sha256sum] = "db3782e57882a36ac42b69097a817dc3e2a4031cacb815a4e4a1115da108e519"
diff --git a/recipes-qtopia/corsair/files/corsair-opie.patch b/recipes-qtopia/corsair/files/corsair-opie.patch
new file mode 100644
index 0000000..49f9244
--- /dev/null
+++ b/recipes-qtopia/corsair/files/corsair-opie.patch
@@ -0,0 +1,364 @@
+--- corsair/corsair.cpp~corsair-opie
++++ corsair/corsair.cpp
+@@ -177,7 +177,7 @@
+
+ QString CorsairWindow::homeDir()
+ {
+- QString home = Global::homeDirPath();
++ QString home = QDir::homeDirPath();
+ if(home == "/home" && option("homeReallyIsHome", "false") != "true") {
+ home = "/media";
+ }
+@@ -274,7 +274,8 @@
+ QString corsairDir = topDir();
+
+ // Don't let device power off while downloading. Will be reenabled when download completes.
+- QPEApplication::setTempScreenSaverMode(QPEApplication::DisableSuspend);
++ //QPEApplication::setTempScreenSaverMode(QPEApplication::DisableSuspend);
++ QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend;
+
+ Download *dl = NULL;
+
+@@ -410,7 +410,8 @@
+
+ if(m_runningDownloads.isEmpty()) {
+ emit statusUpdate(res == Download::Success ? "Ready" : "Error");
+- QPEApplication::setTempScreenSaverMode(QPEApplication::Enable);
++ //QPEApplication::setTempScreenSaverMode(QPEApplication::Enable);
++ QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
+ }
+
+ delete dl;
+--- corsair/Makefile 2006-07-12 09:13:51.000000000 +0200
++++ corsair/Makefile.opie 2006-12-31 09:43:08.000000000 +0100
+@@ -13,12 +13,12 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-
+-INCLUDES=-I/opt/Qtopia/include/
+-CXXFLAGS=-O $(INCLUDES) -DQWS -fno-rtti -fno-exceptions
+-LDFLAGS=-L $(QTDIR)/lib/
+-LIBS=-lqte -lqpe -lqtopia -ljpeg -luuid
+-
++
++INCLUDES=-I$(QTDIR)/include
++CXXFLAGS += $(INCLUDES) -DQWS -fno-rtti -fno-exceptions
++LDFLAGS +=-L $(QTDIR)/lib/
++
++
+ SOURCES = main.cpp corsair.cpp feeds.cpp download.cpp info.cpp
+ MOCS = corsair_moc.cpp download_moc.cpp feeds_moc.cpp info_moc.cpp
+
+@@ -28,12 +28,16 @@ ICONS=icons/newfeed.png \
+ icons/play.png
+
+ %_moc.cpp: %.h
+- $(QTDIR)/bin/moc -o $@ $^
++ $(OE_QMAKE_MOC) -o $@ $^
++
++# %.o: %.cpp
++# $(CXX) $(CXXFLAGS) -I$(QTDIR)/include -c -o $@ $^
++
+
+ OBJS = $(SOURCES:.cpp=.o) $(MOCS:.cpp=.o)
+
+ corsair: $(OBJS)
+- $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
+ install: corsair
+ cp corsair.desktop $(QPEDIR)/apps/Applications
+@@ -52,291 +56,4 @@ depend:
+ makedepend $(INCLUDES) $(SOURCES)
+
+ web:
+- rsync -e ssh CHANGELOG FAQ README website/* tinyogre@shell.sourceforge.net:/home/groups/c/co/corsair/htdocs/
+-
+-# DO NOT DELETE
+-
+-main.o: /opt/Qtopia/include/qmainwindow.h /opt/Qtopia/include/qwidget.h
+-main.o: /opt/Qtopia/include/qwindowdefs.h /opt/Qtopia/include/qobjectdefs.h
+-main.o: /opt/Qtopia/include/qglobal.h /opt/Qtopia/include/qconfig.h
+-main.o: /opt/Qtopia/include/qfeatures.h /opt/Qtopia/include/qstring.h
+-main.o: /opt/Qtopia/include/qcstring.h /opt/Qtopia/include/qarray.h
+-main.o: /opt/Qtopia/include/qgarray.h /opt/Qtopia/include/qshared.h
+-main.o: /usr/include/string.h /usr/include/features.h
+-main.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+-main.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
+-main.o: /opt/Qtopia/include/qnamespace.h /usr/include/limits.h
+-main.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
+-main.o: /opt/Qtopia/include/qobject.h /opt/Qtopia/include/qevent.h
+-main.o: /opt/Qtopia/include/qregion.h /opt/Qtopia/include/qrect.h
+-main.o: /opt/Qtopia/include/qsize.h /opt/Qtopia/include/qpoint.h
+-main.o: /opt/Qtopia/include/qmime.h /opt/Qtopia/include/qstringlist.h
+-main.o: /opt/Qtopia/include/qvaluelist.h /opt/Qtopia/include/qdatastream.h
+-main.o: /opt/Qtopia/include/qiodevice.h /opt/Qtopia/include/qregexp.h
+-main.o: /opt/Qtopia/include/qpaintdevice.h /opt/Qtopia/include/qpalette.h
+-main.o: /opt/Qtopia/include/qcolor.h /opt/Qtopia/include/qbrush.h
+-main.o: /opt/Qtopia/include/qcursor.h /opt/Qtopia/include/qfont.h
+-main.o: /opt/Qtopia/include/qfontmetrics.h /opt/Qtopia/include/qfontinfo.h
+-main.o: /opt/Qtopia/include/qstyle.h /opt/Qtopia/include/qsizepolicy.h
+-main.o: /opt/Qtopia/include/qpe/qpeapplication.h
+-main.o: /opt/Qtopia/include/qtopia/qpeglobal.h
+-main.o: /opt/Qtopia/include/qapplication.h /opt/Qtopia/include/qasciidict.h
+-main.o: /opt/Qtopia/include/qgdict.h /opt/Qtopia/include/qcollection.h
+-main.o: /opt/Qtopia/include/qtranslator.h /opt/Qtopia/include/qintdict.h
+-main.o: /opt/Qtopia/include/qdialog.h /opt/Qtopia/include/qtopia/timestring.h
+-main.o: /opt/Qtopia/include/qdatetime.h /opt/Qtopia/include/qmap.h
+-main.o: /opt/Qtopia/include/qtopia/applicationinterface.h
+-main.o: /opt/Qtopia/include/qtopia/qcom.h /opt/Qtopia/include/qtopia/quuid.h
+-main.o: /usr/include/memory.h /opt/Qtopia/include/qmetaobject.h
+-main.o: /opt/Qtopia/include/qconnection.h /opt/Qtopia/include/qstrlist.h
+-main.o: /opt/Qtopia/include/qlist.h /opt/Qtopia/include/qglist.h
+-main.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h corsair.h
+-main.o: feeds.h /opt/Qtopia/include/qxml.h /opt/Qtopia/include/qmodules.h
+-main.o: /opt/Qtopia/include/qtextstream.h /usr/include/stdio.h
+-main.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
+-main.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+-main.o: /usr/include/_G_config.h /usr/include/wchar.h
+-main.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+-main.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+-main.o: /opt/Qtopia/include/qfile.h /opt/Qtopia/include/qvaluestack.h
+-main.o: /opt/Qtopia/include/qlistview.h /opt/Qtopia/include/qscrollview.h
+-main.o: /opt/Qtopia/include/qframe.h /opt/Qtopia/include/qscrollbar.h
+-main.o: /opt/Qtopia/include/qrangecontrol.h /opt/Qtopia/include/qdrawutil.h
+-main.o: /opt/Qtopia/include/qpainter.h /opt/Qtopia/include/qpen.h
+-main.o: /opt/Qtopia/include/qpointarray.h /opt/Qtopia/include/qwmatrix.h
+-main.o: log.h download.h /opt/Qtopia/include/qsocket.h
+-main.o: /opt/Qtopia/include/qsocketdevice.h
+-main.o: /opt/Qtopia/include/qhostaddress.h
+-main.o: /opt/Qtopia/include/qsocketnotifier.h /opt/Qtopia/include/qurl.h
+-main.o: /opt/Qtopia/include/qdir.h /opt/Qtopia/include/qfileinfo.h version.h
+-corsair.o: /opt/Qtopia/include/qmainwindow.h /opt/Qtopia/include/qwidget.h
+-corsair.o: /opt/Qtopia/include/qwindowdefs.h
+-corsair.o: /opt/Qtopia/include/qobjectdefs.h /opt/Qtopia/include/qglobal.h
+-corsair.o: /opt/Qtopia/include/qconfig.h /opt/Qtopia/include/qfeatures.h
+-corsair.o: /opt/Qtopia/include/qstring.h /opt/Qtopia/include/qcstring.h
+-corsair.o: /opt/Qtopia/include/qarray.h /opt/Qtopia/include/qgarray.h
+-corsair.o: /opt/Qtopia/include/qshared.h /usr/include/string.h
+-corsair.o: /usr/include/features.h /usr/include/sys/cdefs.h
+-corsair.o: /usr/include/gnu/stubs.h
+-corsair.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
+-corsair.o: /opt/Qtopia/include/qnamespace.h /usr/include/limits.h
+-corsair.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
+-corsair.o: /opt/Qtopia/include/qobject.h /opt/Qtopia/include/qevent.h
+-corsair.o: /opt/Qtopia/include/qregion.h /opt/Qtopia/include/qrect.h
+-corsair.o: /opt/Qtopia/include/qsize.h /opt/Qtopia/include/qpoint.h
+-corsair.o: /opt/Qtopia/include/qmime.h /opt/Qtopia/include/qstringlist.h
+-corsair.o: /opt/Qtopia/include/qvaluelist.h /opt/Qtopia/include/qdatastream.h
+-corsair.o: /opt/Qtopia/include/qiodevice.h /opt/Qtopia/include/qregexp.h
+-corsair.o: /opt/Qtopia/include/qpaintdevice.h /opt/Qtopia/include/qpalette.h
+-corsair.o: /opt/Qtopia/include/qcolor.h /opt/Qtopia/include/qbrush.h
+-corsair.o: /opt/Qtopia/include/qcursor.h /opt/Qtopia/include/qfont.h
+-corsair.o: /opt/Qtopia/include/qfontmetrics.h /opt/Qtopia/include/qfontinfo.h
+-corsair.o: /opt/Qtopia/include/qstyle.h /opt/Qtopia/include/qsizepolicy.h
+-corsair.o: /opt/Qtopia/include/qpe/qpeapplication.h
+-corsair.o: /opt/Qtopia/include/qtopia/qpeglobal.h
+-corsair.o: /opt/Qtopia/include/qapplication.h
+-corsair.o: /opt/Qtopia/include/qasciidict.h /opt/Qtopia/include/qgdict.h
+-corsair.o: /opt/Qtopia/include/qcollection.h
+-corsair.o: /opt/Qtopia/include/qtranslator.h /opt/Qtopia/include/qintdict.h
+-corsair.o: /opt/Qtopia/include/qdialog.h
+-corsair.o: /opt/Qtopia/include/qtopia/timestring.h
+-corsair.o: /opt/Qtopia/include/qdatetime.h /opt/Qtopia/include/qmap.h
+-corsair.o: /opt/Qtopia/include/qtopia/applicationinterface.h
+-corsair.o: /opt/Qtopia/include/qtopia/qcom.h
+-corsair.o: /opt/Qtopia/include/qtopia/quuid.h /usr/include/memory.h
+-corsair.o: /opt/Qtopia/include/qmetaobject.h
+-corsair.o: /opt/Qtopia/include/qconnection.h /opt/Qtopia/include/qstrlist.h
+-corsair.o: /opt/Qtopia/include/qlist.h /opt/Qtopia/include/qglist.h corsair.h
+-corsair.o: feeds.h /opt/Qtopia/include/qxml.h /opt/Qtopia/include/qmodules.h
+-corsair.o: /opt/Qtopia/include/qtextstream.h /usr/include/stdio.h
+-corsair.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
+-corsair.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+-corsair.o: /usr/include/_G_config.h /usr/include/wchar.h
+-corsair.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+-corsair.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
+-corsair.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+-corsair.o: /opt/Qtopia/include/qfile.h /opt/Qtopia/include/qvaluestack.h
+-corsair.o: /opt/Qtopia/include/qlistview.h /opt/Qtopia/include/qscrollview.h
+-corsair.o: /opt/Qtopia/include/qframe.h /opt/Qtopia/include/qscrollbar.h
+-corsair.o: /opt/Qtopia/include/qrangecontrol.h
+-corsair.o: /opt/Qtopia/include/qdrawutil.h /opt/Qtopia/include/qpainter.h
+-corsair.o: /opt/Qtopia/include/qpen.h /opt/Qtopia/include/qpointarray.h
+-corsair.o: /opt/Qtopia/include/qwmatrix.h log.h download.h
+-corsair.o: /opt/Qtopia/include/qsocket.h /opt/Qtopia/include/qsocketdevice.h
+-corsair.o: /opt/Qtopia/include/qhostaddress.h
+-corsair.o: /opt/Qtopia/include/qsocketnotifier.h /opt/Qtopia/include/qurl.h
+-corsair.o: /opt/Qtopia/include/qdir.h /opt/Qtopia/include/qfileinfo.h
+-corsair.o: version.h /opt/Qtopia/include/qtextbrowser.h
+-corsair.o: /opt/Qtopia/include/qpixmap.h /opt/Qtopia/include/qtextview.h
+-corsair.o: /opt/Qtopia/include/qtoolbar.h /opt/Qtopia/include/qtoolbutton.h
+-corsair.o: /opt/Qtopia/include/qbutton.h /opt/Qtopia/include/qiconset.h
+-corsair.o: /opt/Qtopia/include/qstatusbar.h /opt/Qtopia/include/qlineedit.h
+-corsair.o: /opt/Qtopia/include/qhbox.h /opt/Qtopia/include/qlayout.h
+-corsair.o: /opt/Qtopia/include/qabstractlayout.h /opt/Qtopia/include/qlabel.h
+-corsair.o: /opt/Qtopia/include/qclipboard.h /opt/Qtopia/include/qpushbutton.h
+-corsair.o: /opt/Qtopia/include/qmenubar.h /opt/Qtopia/include/qpopupmenu.h
+-corsair.o: /opt/Qtopia/include/qmenudata.h /opt/Qtopia/include/qprogressbar.h
+-corsair.o: /opt/Qtopia/include/qmessagebox.h /opt/Qtopia/include/qaccel.h
+-corsair.o: /opt/Qtopia/include/qtopia/resource.h /opt/Qtopia/include/qimage.h
+-corsair.o: /opt/Qtopia/include/qbitmap.h /opt/Qtopia/include/qtopia/config.h
+-corsair.o: /opt/Qtopia/include/qtopia/qtopiawinexport.h
+-corsair.o: /opt/Qtopia/include/qtopia/global.h
+-corsair.o: /opt/Qtopia/include/qguardedptr.h
+-corsair.o: /opt/Qtopia/include/qtopia/qcopenvelope_qws.h
+-corsair.o: /opt/Qtopia/include/qcopchannel_qws.h info.h
+-feeds.o: corsair.h feeds.h /opt/Qtopia/include/qstring.h
+-feeds.o: /opt/Qtopia/include/qcstring.h /opt/Qtopia/include/qarray.h
+-feeds.o: /opt/Qtopia/include/qgarray.h /opt/Qtopia/include/qshared.h
+-feeds.o: /opt/Qtopia/include/qglobal.h /opt/Qtopia/include/qconfig.h
+-feeds.o: /opt/Qtopia/include/qfeatures.h /usr/include/string.h
+-feeds.o: /usr/include/features.h /usr/include/sys/cdefs.h
+-feeds.o: /usr/include/gnu/stubs.h
+-feeds.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
+-feeds.o: /opt/Qtopia/include/qlist.h /opt/Qtopia/include/qglist.h
+-feeds.o: /opt/Qtopia/include/qcollection.h /opt/Qtopia/include/qxml.h
+-feeds.o: /opt/Qtopia/include/qmodules.h /opt/Qtopia/include/qtextstream.h
+-feeds.o: /opt/Qtopia/include/qiodevice.h /usr/include/stdio.h
+-feeds.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
+-feeds.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+-feeds.o: /usr/include/_G_config.h /usr/include/wchar.h
+-feeds.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+-feeds.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
+-feeds.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+-feeds.o: /opt/Qtopia/include/qfile.h /opt/Qtopia/include/qstringlist.h
+-feeds.o: /opt/Qtopia/include/qvaluelist.h /opt/Qtopia/include/qdatastream.h
+-feeds.o: /opt/Qtopia/include/qregexp.h /opt/Qtopia/include/qvaluestack.h
+-feeds.o: /opt/Qtopia/include/qmap.h /opt/Qtopia/include/qlistview.h
+-feeds.o: /opt/Qtopia/include/qscrollview.h /opt/Qtopia/include/qframe.h
+-feeds.o: /opt/Qtopia/include/qwidget.h /opt/Qtopia/include/qwindowdefs.h
+-feeds.o: /opt/Qtopia/include/qobjectdefs.h /opt/Qtopia/include/qnamespace.h
+-feeds.o: /usr/include/limits.h
+-feeds.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
+-feeds.o: /opt/Qtopia/include/qobject.h /opt/Qtopia/include/qevent.h
+-feeds.o: /opt/Qtopia/include/qregion.h /opt/Qtopia/include/qrect.h
+-feeds.o: /opt/Qtopia/include/qsize.h /opt/Qtopia/include/qpoint.h
+-feeds.o: /opt/Qtopia/include/qmime.h /opt/Qtopia/include/qpaintdevice.h
+-feeds.o: /opt/Qtopia/include/qpalette.h /opt/Qtopia/include/qcolor.h
+-feeds.o: /opt/Qtopia/include/qbrush.h /opt/Qtopia/include/qcursor.h
+-feeds.o: /opt/Qtopia/include/qfont.h /opt/Qtopia/include/qfontmetrics.h
+-feeds.o: /opt/Qtopia/include/qfontinfo.h /opt/Qtopia/include/qstyle.h
+-feeds.o: /opt/Qtopia/include/qsizepolicy.h /opt/Qtopia/include/qscrollbar.h
+-feeds.o: /opt/Qtopia/include/qrangecontrol.h /opt/Qtopia/include/qdrawutil.h
+-feeds.o: /opt/Qtopia/include/qpainter.h /opt/Qtopia/include/qpen.h
+-feeds.o: /opt/Qtopia/include/qpointarray.h /opt/Qtopia/include/qwmatrix.h
+-feeds.o: /opt/Qtopia/include/qdatetime.h log.h download.h
+-feeds.o: /opt/Qtopia/include/qsocket.h /opt/Qtopia/include/qsocketdevice.h
+-feeds.o: /opt/Qtopia/include/qhostaddress.h
+-feeds.o: /opt/Qtopia/include/qsocketnotifier.h /opt/Qtopia/include/qurl.h
+-feeds.o: /opt/Qtopia/include/qdir.h /opt/Qtopia/include/qstrlist.h
+-feeds.o: /opt/Qtopia/include/qfileinfo.h version.h
+-feeds.o: /opt/Qtopia/include/qmainwindow.h
+-feeds.o: /opt/Qtopia/include/qtopia/resource.h
+-feeds.o: /opt/Qtopia/include/qtopia/qpeglobal.h /opt/Qtopia/include/qimage.h
+-feeds.o: /opt/Qtopia/include/qpixmap.h /opt/Qtopia/include/qbitmap.h
+-feeds.o: /opt/Qtopia/include/qiconset.h opmlparser.h feedparser.h
+-feeds.o: /usr/include/ctype.h /usr/include/endian.h
+-feeds.o: /usr/include/bits/endian.h
+-download.o: corsair.h feeds.h /opt/Qtopia/include/qstring.h
+-download.o: /opt/Qtopia/include/qcstring.h /opt/Qtopia/include/qarray.h
+-download.o: /opt/Qtopia/include/qgarray.h /opt/Qtopia/include/qshared.h
+-download.o: /opt/Qtopia/include/qglobal.h /opt/Qtopia/include/qconfig.h
+-download.o: /opt/Qtopia/include/qfeatures.h /usr/include/string.h
+-download.o: /usr/include/features.h /usr/include/sys/cdefs.h
+-download.o: /usr/include/gnu/stubs.h
+-download.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
+-download.o: /opt/Qtopia/include/qlist.h /opt/Qtopia/include/qglist.h
+-download.o: /opt/Qtopia/include/qcollection.h /opt/Qtopia/include/qxml.h
+-download.o: /opt/Qtopia/include/qmodules.h /opt/Qtopia/include/qtextstream.h
+-download.o: /opt/Qtopia/include/qiodevice.h /usr/include/stdio.h
+-download.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
+-download.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+-download.o: /usr/include/_G_config.h /usr/include/wchar.h
+-download.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+-download.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
+-download.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+-download.o: /opt/Qtopia/include/qfile.h /opt/Qtopia/include/qstringlist.h
+-download.o: /opt/Qtopia/include/qvaluelist.h
+-download.o: /opt/Qtopia/include/qdatastream.h /opt/Qtopia/include/qregexp.h
+-download.o: /opt/Qtopia/include/qvaluestack.h /opt/Qtopia/include/qmap.h
+-download.o: /opt/Qtopia/include/qlistview.h /opt/Qtopia/include/qscrollview.h
+-download.o: /opt/Qtopia/include/qframe.h /opt/Qtopia/include/qwidget.h
+-download.o: /opt/Qtopia/include/qwindowdefs.h
+-download.o: /opt/Qtopia/include/qobjectdefs.h
+-download.o: /opt/Qtopia/include/qnamespace.h /usr/include/limits.h
+-download.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
+-download.o: /opt/Qtopia/include/qobject.h /opt/Qtopia/include/qevent.h
+-download.o: /opt/Qtopia/include/qregion.h /opt/Qtopia/include/qrect.h
+-download.o: /opt/Qtopia/include/qsize.h /opt/Qtopia/include/qpoint.h
+-download.o: /opt/Qtopia/include/qmime.h /opt/Qtopia/include/qpaintdevice.h
+-download.o: /opt/Qtopia/include/qpalette.h /opt/Qtopia/include/qcolor.h
+-download.o: /opt/Qtopia/include/qbrush.h /opt/Qtopia/include/qcursor.h
+-download.o: /opt/Qtopia/include/qfont.h /opt/Qtopia/include/qfontmetrics.h
+-download.o: /opt/Qtopia/include/qfontinfo.h /opt/Qtopia/include/qstyle.h
+-download.o: /opt/Qtopia/include/qsizepolicy.h
+-download.o: /opt/Qtopia/include/qscrollbar.h
+-download.o: /opt/Qtopia/include/qrangecontrol.h
+-download.o: /opt/Qtopia/include/qdrawutil.h /opt/Qtopia/include/qpainter.h
+-download.o: /opt/Qtopia/include/qpen.h /opt/Qtopia/include/qpointarray.h
+-download.o: /opt/Qtopia/include/qwmatrix.h /opt/Qtopia/include/qdatetime.h
+-download.o: log.h download.h /opt/Qtopia/include/qsocket.h
+-download.o: /opt/Qtopia/include/qsocketdevice.h
+-download.o: /opt/Qtopia/include/qhostaddress.h
+-download.o: /opt/Qtopia/include/qsocketnotifier.h /opt/Qtopia/include/qurl.h
+-download.o: /opt/Qtopia/include/qdir.h /opt/Qtopia/include/qstrlist.h
+-download.o: /opt/Qtopia/include/qfileinfo.h version.h
+-download.o: /opt/Qtopia/include/qmainwindow.h
+-info.o: corsair.h feeds.h /opt/Qtopia/include/qstring.h
+-info.o: /opt/Qtopia/include/qcstring.h /opt/Qtopia/include/qarray.h
+-info.o: /opt/Qtopia/include/qgarray.h /opt/Qtopia/include/qshared.h
+-info.o: /opt/Qtopia/include/qglobal.h /opt/Qtopia/include/qconfig.h
+-info.o: /opt/Qtopia/include/qfeatures.h /usr/include/string.h
+-info.o: /usr/include/features.h /usr/include/sys/cdefs.h
+-info.o: /usr/include/gnu/stubs.h
+-info.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
+-info.o: /opt/Qtopia/include/qlist.h /opt/Qtopia/include/qglist.h
+-info.o: /opt/Qtopia/include/qcollection.h /opt/Qtopia/include/qxml.h
+-info.o: /opt/Qtopia/include/qmodules.h /opt/Qtopia/include/qtextstream.h
+-info.o: /opt/Qtopia/include/qiodevice.h /usr/include/stdio.h
+-info.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
+-info.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+-info.o: /usr/include/_G_config.h /usr/include/wchar.h
+-info.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+-info.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
+-info.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+-info.o: /opt/Qtopia/include/qfile.h /opt/Qtopia/include/qstringlist.h
+-info.o: /opt/Qtopia/include/qvaluelist.h /opt/Qtopia/include/qdatastream.h
+-info.o: /opt/Qtopia/include/qregexp.h /opt/Qtopia/include/qvaluestack.h
+-info.o: /opt/Qtopia/include/qmap.h /opt/Qtopia/include/qlistview.h
+-info.o: /opt/Qtopia/include/qscrollview.h /opt/Qtopia/include/qframe.h
+-info.o: /opt/Qtopia/include/qwidget.h /opt/Qtopia/include/qwindowdefs.h
+-info.o: /opt/Qtopia/include/qobjectdefs.h /opt/Qtopia/include/qnamespace.h
+-info.o: /usr/include/limits.h
+-info.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
+-info.o: /opt/Qtopia/include/qobject.h /opt/Qtopia/include/qevent.h
+-info.o: /opt/Qtopia/include/qregion.h /opt/Qtopia/include/qrect.h
+-info.o: /opt/Qtopia/include/qsize.h /opt/Qtopia/include/qpoint.h
+-info.o: /opt/Qtopia/include/qmime.h /opt/Qtopia/include/qpaintdevice.h
+-info.o: /opt/Qtopia/include/qpalette.h /opt/Qtopia/include/qcolor.h
+-info.o: /opt/Qtopia/include/qbrush.h /opt/Qtopia/include/qcursor.h
+-info.o: /opt/Qtopia/include/qfont.h /opt/Qtopia/include/qfontmetrics.h
+-info.o: /opt/Qtopia/include/qfontinfo.h /opt/Qtopia/include/qstyle.h
+-info.o: /opt/Qtopia/include/qsizepolicy.h /opt/Qtopia/include/qscrollbar.h
+-info.o: /opt/Qtopia/include/qrangecontrol.h /opt/Qtopia/include/qdrawutil.h
+-info.o: /opt/Qtopia/include/qpainter.h /opt/Qtopia/include/qpen.h
+-info.o: /opt/Qtopia/include/qpointarray.h /opt/Qtopia/include/qwmatrix.h
+-info.o: /opt/Qtopia/include/qdatetime.h log.h download.h
+-info.o: /opt/Qtopia/include/qsocket.h /opt/Qtopia/include/qsocketdevice.h
+-info.o: /opt/Qtopia/include/qhostaddress.h
+-info.o: /opt/Qtopia/include/qsocketnotifier.h /opt/Qtopia/include/qurl.h
+-info.o: /opt/Qtopia/include/qdir.h /opt/Qtopia/include/qstrlist.h
+-info.o: /opt/Qtopia/include/qfileinfo.h version.h
+-info.o: /opt/Qtopia/include/qmainwindow.h info.h
+-info.o: /opt/Qtopia/include/qtextbrowser.h /opt/Qtopia/include/qpixmap.h
+-info.o: /opt/Qtopia/include/qtextview.h /opt/Qtopia/include/qdialog.h
+-info.o: /opt/Qtopia/include/qlayout.h /opt/Qtopia/include/qabstractlayout.h
+-info.o: /opt/Qtopia/include/qlabel.h /opt/Qtopia/include/qlineedit.h
+-info.o: /opt/Qtopia/include/qhbox.h /opt/Qtopia/include/qcheckbox.h
+-info.o: /opt/Qtopia/include/qbutton.h /opt/Qtopia/include/qtopia/qprocess.h
+-info.o: /opt/Qtopia/include/qtopia/qpeglobal.h
+-info.o: /opt/Qtopia/include/qtopia/qcopenvelope_qws.h
+-info.o: /opt/Qtopia/include/qcopchannel_qws.h
++ rsync -e ssh CHANGELOG FAQ README website/* tinyogre@shell.sourceforge.net:/home/groups/c/co/corsair/htdocs/
diff --git a/recipes-qtopia/cumulus/cumulus/open_max.patch b/recipes-qtopia/cumulus/cumulus/open_max.patch
new file mode 100644
index 0000000..0a7cfcc
--- /dev/null
+++ b/recipes-qtopia/cumulus/cumulus/open_max.patch
@@ -0,0 +1,11 @@
+--- cumulus/gpscon.cpp.old 2008-11-18 23:39:12.000000000 +0000
++++ cumulus/gpscon.cpp 2008-11-18 23:43:32.000000000 +0000
+@@ -416,7 +416,7 @@
+
+ if( maxOpenFds == -1 ) // call failed
+ {
+- maxOpenFds = OPEN_MAX; // normal default from limits.h
++ maxOpenFds = sysconf(_SC_OPEN_MAX);
+ }
+ else
+ {
diff --git a/recipes-qtopia/cumulus/cumulus_1.2.1.bb b/recipes-qtopia/cumulus/cumulus_1.2.1.bb
new file mode 100644
index 0000000..e636a7f
--- /dev/null
+++ b/recipes-qtopia/cumulus/cumulus_1.2.1.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "A flightcomputer application for Qt/E based Palmtop Environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPTYPE = "binary"
+APPNAME = "cumulus"
+APPDESKTOP = "${S}"
+PR = "r1"
+
+SRC_URI = "http://www.kflog.org/fileadmin/user_upload/cumulus_downloads/${PV}/cumulus-${PV}.src.tar.bz2 \
+ file://open_max.patch"
+S = "${WORKDIR}/cumulus_${PV}/cumulus"
+
+inherit opie
+
+export OE_QMAKE_LINK="${CXX}"
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=-I."
+
+#
+# nasty hack since cumulus doesn't obey the qmake standard which requires just one .pro file per directory
+#
+do_compile() {
+ echo "#define SHARP_PDA_WARNSOUND 4" >sharp_char.h
+ qmake -makefile -spec ${QMAKESPEC} -after ${EXTRA_QMAKEVARS_POST} cumulus.pro
+ oe_runmake
+ qmake -makefile -spec ${QMAKESPEC} -after ${EXTRA_QMAKEVARS_POST} gpsClient.pro
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/mapicons \
+ ${D}${palmtopdir}/pics/mapicons/small \
+ ${D}${palmtopdir}/pics/mapicons/windarrows \
+ ${D}${palmtopdir}/bin
+ install -m 0644 ../cumulus.png ${D}${palmtopdir}/pics/cumulus.png
+ install -m 0644 map-icons/*.png ${D}${palmtopdir}/pics/mapicons
+ install -m 0644 map-icons/*.xpm ${D}${palmtopdir}/pics/mapicons
+ install -m 0644 map-icons/small/*.png ${D}${palmtopdir}/pics/mapicons/small
+ install -m 0644 map-icons/small/*.xpm ${D}${palmtopdir}/pics/mapicons/small
+ install -m 0644 map-icons/windarrows/*.png ${D}${palmtopdir}/pics/mapicons/windarrows
+
+ install -m 0755 gpsClient ${D}${palmtopdir}/bin/
+}
+
+SRC_URI[md5sum] = "a13e49376594c51fbfa74067f8d14d45"
+SRC_URI[sha256sum] = "e3ed263ee98971674f3f3cf55e42b7f2e79755b0f931f8a105676108185e8010"
diff --git a/recipes-qtopia/cumulus/cumulus_cvs.bb b/recipes-qtopia/cumulus/cumulus_cvs.bb
new file mode 100644
index 0000000..36c8bff
--- /dev/null
+++ b/recipes-qtopia/cumulus/cumulus_cvs.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "A flightcomputer application for Qt/E based Palmtop Environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPTYPE = "binary"
+APPNAME = "cumulus"
+APPDESKTOP = "${S}"
+PV = "${OPIE_CVS_PV}"
+PR = "r0"
+
+SRC_URI = "http://www.kflog.org/fileadmin/user_upload/cumulus_snapshots/cumulus-snapshot.tbz"
+S = "${WORKDIR}/cumulus/cumulus"
+
+inherit opie
+
+DEFAULT_PREFERENCE = "-1"
+
+export OE_QMAKE_LINK="${CXX}"
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=-I."
+
+#
+# nasty hack since cumulus doesn't obey the qmake standard which requires just one .pro file per directory
+#
+do_compile() {
+ echo "#define SHARP_PDA_WARNSOUND 4" >sharp_char.h
+ qmake -makefile -spec ${QMAKESPEC} -after ${EXTRA_QMAKEVARS_POST} cumulus.pro
+ oe_runmake
+ qmake -makefile -spec ${QMAKESPEC} -after ${EXTRA_QMAKEVARS_POST} gpsClient.pro
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/cumulus \
+ ${D}${palmtopdir}/pics/cumulus/small \
+ ${D}${palmtopdir}/pics/cumulus/windarrows
+ install -m 0644 ../cumulus.png ${D}${palmtopdir}/pics/cumulus/cumulus.png
+ install -m 0644 map-icons/*.png ${D}${palmtopdir}/pics/cumulus
+ install -m 0644 map-icons/*.xpm ${D}${palmtopdir}/pics/cumulus
+ install -m 0644 map-icons/small/*.png ${D}${palmtopdir}/pics/cumulus/small
+ install -m 0644 map-icons/small/*.xpm ${D}${palmtopdir}/pics/cumulus/small
+ install -m 0644 map-icons/windarrows/*.png ${D}${palmtopdir}/pics/cumulus/windarrows
+
+ install -m 0755 gpsClient ${D}${palmtopdir}/bin/
+}
+
+SRC_URI[md5sum] = "c5b0ca7f2164e47ef72889baf23690f6"
+SRC_URI[sha256sum] = "e862f8327a3ba42c7bc756fe846764754b3dab76d8ccbedd5a195b582070b791"
diff --git a/recipes-qtopia/custominput/custominput_1.1.0.bb b/recipes-qtopia/custominput/custominput_1.1.0.bb
new file mode 100644
index 0000000..39358f2
--- /dev/null
+++ b/recipes-qtopia/custominput/custominput_1.1.0.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Custom Keyboard \
+Keyboard that can be customized to include exactly the characters that the user uses, but which is not available on his physical keyboard."
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.blackie.dk/Zaurus/custominput/"
+AUTHOR = "Jesper Kjaer Pedersen <blackie@blackie.dk>"
+
+SRC_URI = "http://www.blackie.dk/Zaurus/custominput/custominput-1.1.0.tgz"
+
+inherit palmtop
+
+QMAKE_PROFILES = "custominput.pro"
+
+EXTRA_QMAKEVARS_POST += "DESTDIR=${S}"
+
+do_configure_prepend() {
+ find ${S} -name Makefile|xargs rm
+}
+
+do_install() {
+
+ install -d ${D}${palmtopdir}/plugins/inputmethods/ \
+ ${D}${palmtopdir}/pics/ \
+ ${D}${palmtopdir}/bin/ \
+ ${D}${palmtopdir}/apps/ \
+ ${D}${palmtopdir}/apps/Settings/ \
+ ${D}${palmtopdir}/help/html/
+
+ install -m 0755 ${S}/customInputConfig ${D}${palmtopdir}/bin/
+ install -m 0644 ${S}/custominput.desktop ${D}${palmtopdir}/apps/Settings/
+ install -m 0644 ${S}/customInputConfig.html ${D}${palmtopdir}/help/html/
+ install -m 0644 ${S}/custominput.png ${D}${palmtopdir}/pics/
+ oe_libinstall -so -C ${S}/ libcustominput ${D}${palmtopdir}/plugins/inputmethods/
+
+}
+
+SRC_URI[md5sum] = "7a0f97339a1caed5695715581306b83e"
+SRC_URI[sha256sum] = "9af88287720701691b58ee13898d248dd9afc63d9c593eb79c1149cc2a7f4e92"
diff --git a/recipes-qtopia/dviviewer/dviviewer_1.0.2.bb b/recipes-qtopia/dviviewer/dviviewer_1.0.2.bb
new file mode 100644
index 0000000..3641dd7
--- /dev/null
+++ b/recipes-qtopia/dviviewer/dviviewer_1.0.2.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "DVI Viewer for Opie/Qtopia"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www013.upp.so-net.ne.jp/hn43o/dviviewer/"
+PR = "r1"
+
+SRC_URI = "http://www013.upp.so-net.ne.jp/hn43o/dviviewer/dviviewer-${PV}.tar.gz"
+S = "${WORKDIR}/dviviewer"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics
+ install -D -m 755 dviviewer ${D}${palmtopdir}/bin/dviviewer
+ install -D -m 644 dviviewer.desktop ${D}${palmtopdir}/Applications/dviviewer.desktop
+ install -d ${D}${palmtopdir}/pics
+ cp -pPR *.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "cc101da3b436607ee2265b5af5001484"
+SRC_URI[sha256sum] = "ab7c305be32708c4ede670e13783b718e6a28e35b5495e6c42c31c35a8b512a6"
diff --git a/recipes-qtopia/flexis-zaurus/flexis-zaurus_1.0.0.bb b/recipes-qtopia/flexis-zaurus/flexis-zaurus_1.0.0.bb
new file mode 100644
index 0000000..c0564a5
--- /dev/null
+++ b/recipes-qtopia/flexis-zaurus/flexis-zaurus_1.0.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A Qtopia/Opie Input Method plugin for the Flexis FX100 Keyboard."
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://www.Vanille.de/mirror/flexis-zaurus-${PV}.tar.bz2"
+S = "${WORKDIR}/flexis-zaurus"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "CONFIG-=qtopia"
+
+do_install() {
+ oe_libinstall libqflexis ${D}${palmtopdir}/plugins/inputmethods/
+}
+
+SRC_URI[md5sum] = "e7737236f1eccadd4cf8cfcc0c82e005"
+SRC_URI[sha256sum] = "ca7653a03f562057098c9fb956de34021a14017c2a44eedd3ab0963dc877e7e5"
diff --git a/recipes-qtopia/freedroid/freedroid-1.0.2/freedroid.png b/recipes-qtopia/freedroid/freedroid-1.0.2/freedroid.png
new file mode 100644
index 0000000..6db9f21
--- /dev/null
+++ b/recipes-qtopia/freedroid/freedroid-1.0.2/freedroid.png
Binary files differ
diff --git a/recipes-qtopia/freedroid/freedroid_1.0.2.bb b/recipes-qtopia/freedroid/freedroid_1.0.2.bb
new file mode 100644
index 0000000..5bf173a
--- /dev/null
+++ b/recipes-qtopia/freedroid/freedroid_1.0.2.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Clone of the classic Paradroid from C64 - SDL version."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://freedroid.sourceforge.net/"
+PR = "r2"
+
+APPIMAGE = "${WORKDIR}/freedroid.png"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/freedroid/freedroid-${PV}.tar.gz \
+ file://freedroid.png"
+
+inherit autotools sdl
+
+do_compile() {
+ oe_runmake pkgdatadir=${datadir}/freedroid
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 src/freedroid ${D}${bindir}
+ install -d ${D}${datadir}/freedroid/
+ cp -pPR graphics map sound ${D}${datadir}/freedroid/
+}
+
+SRC_URI[md5sum] = "585a65f61c2cd308ab45d5c514f695dc"
+SRC_URI[sha256sum] = "0934bd29fb2ad0367ea3bdfdce47537179f9af6aa960cbcc897c40da2e1a0ee3"
diff --git a/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNCanvas.cpp b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNCanvas.cpp
new file mode 100644
index 0000000..6e7f615
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNCanvas.cpp
@@ -0,0 +1,2244 @@
+/* FreeNote for Sharp SLA300, B500, C7x0, C860 Linux PDA
+ Copyright (C) 2003-2005 Joe Kanemori.<kanemori@ymg.urban.ne.jp>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+/*
+2005/06/04 FreeNote 1.11.12pre
+EƒOƒŠƒbƒh‚̘gü‚ðŽÀÛ‚Ì‘I‘ð”͈͂æ‚è‚à‘å‚«‚­•\Ž¦‚·‚é‚悤‚É•ÏXB
+E”͈͑I‘ðAƒOƒŠƒbƒhAƒKƒCƒhAŒrüƒJƒ‰[‚̃JƒXƒ^ƒ}ƒCƒY‚ð‰Â”\‚ÉB
+EƒJƒ‰[ƒsƒbƒJ[ƒ‚[ƒh‚̒ljÁ
+
+2005/06/02 FreeNote 1.11.11Apre
+EƒeƒLƒXƒgˆÚ“®˜g‚Ì•s‹ï‡C³
+EŒrü‚ðƒOƒŠƒbƒh‚Ì‚Q”{‚Å•\Ž¦‚·‚é‚悤‚É•ÏX
+EÁ‚µƒSƒ€Žž‚͈͎̔w’莞‚ÉAƒyƒ“ƒIƒt‚µ‚ăƒ“ƒeƒ“ƒ|‚¨‚¢‚Ä‚©‚ç”͈͊m’è‚·‚é‚悤‚É•ÏX
+
+2005/03/18 FreeNote 1.11.10Bpre
+E•`‰æ‚ÌÅ“K‰»
+
+2005/02/27 FreeNote 1.11.10pre
+EPDF‚Ìo—ÍŒ`Ž®‚ðˆê•”•ÏX
+EƒCƒ“ƒ|[ƒgŽž‚̃oƒOfix
+
+2005/01/04 FreeNote 1.11.6pre
+EƒJ[ƒuƒ‚[ƒh‚Å‚W‚ÌŽš‚ª‚©‚¯‚é‚悤‚É®Œ`ƒGƒ“ƒWƒ“‚ð‰ü‘P
+
+2005/01/04 FreeNote 1.11.5Apre
+EƒoƒOƒtƒBƒbƒNƒX
+
+2004/12/25 FreeNote 1.11.5pre
+EƒŒƒCƒ„[‹@”\’ljÁ
+
+2004/11/24 FreeNote 1.11.0pre
+EƒeƒLƒXƒgƒy[ƒXƒg‹@”\
+
+2004/10/17 FreeNote 1.10.0ƒŠƒŠ[ƒX
+2004/08/26 ver 1.9.3pre
+EŒrü‹@”\‚ð’ljÁ
+
+2004/05/23 ver 1.9.1Apre
+E‰¢•¶ŠÂ‹«‘Ήž
+
+2004/02/16 ver 1.7.3pre
+E•ÒW‹@”\‹­‰»
+
+2004/02/14 ver 1.7.2pre
+EŒŸõ‹@”\’ljÁ
+
+2004/02/12 ver 1.7.1pre
+EƒtƒHƒ“ƒgŽd—l‚Ì•ÏX
+EƒeƒLƒXƒgˆ—‚Ì‚‘¬‰»
+EƒeƒLƒXƒgƒ{ƒbƒNƒX‚Ì‘½‹@”\‰»
+
+2003/02/10 ver 1.7.0pre
+E•¶Žš“ü—Í
+
+2003/12/23 ver 1.6.1
+E•Û‘¶î•ñ‚̃TƒCƒYk¬
+
+2003/12/16-19 ver 1.5.5pre
+Eƒyƒ“ƒTƒCƒY‚̒ljÁ(1-8)
+EƒAƒ“ƒhƒDEƒŠƒhƒD‚ÌŽÀ‘•
+
+2003/12/14 ver 1.5.4pre
+Eƒyƒ“ƒTƒCƒY‚ð‘I‘ð‰Â”\‚ÉB
+
+2003/12/05 ver 1.5.3Apre
+EƒOƒŠƒbƒh‚ÌF‚ðC³
+
+2003/12/04 ver 1.5.3pre
+EƒOƒŠƒbƒh‚Ì•`‰æ‚ðˆê•”C³
+
+2003/11/10 ver 1.5.1pre
+E‹Èü®Œ`ƒ‚[ƒh’ljÁ
+
+2003/11/09 ver 1.5.0pre
+EŽ©“®®Œ`ƒ‚[ƒh’ljÁ
+
+2003/09/03 ver 1.3.4pre
+EUse all quadrant OFFŽž‚É•\Ž¦ˆÊ’u‚ªƒŠƒZƒbƒg‚³‚ê‚éꇂª‚ ‚éƒoƒO‘ΉžB
+
+2003/09/01-03 ver 1.3.3pre
+EƒXƒNƒ[ƒ‹‚̉ü—Ç
+EUse all quadrant(‘SÛŒÀ‚ðŽg—p‚·‚é)ƒƒjƒ…[‚ð’ljÁ
+
+2003/08/31 FreeNote 1.3.2pre
+E‘S•ûŒüƒXƒNƒ[ƒ‹
+
+2003/08/23 FreeNote 1.3.0pre
+ECR“®ì‚ÌC³
+
+2003/08/15 FreeNote 1.2.1‚ðŒöŠJ
+E•Û‘¶Žž‚̃oƒOC³
+EŠ®—¹ƒ_ƒCƒAƒƒO‚ÌŽ©“®Á‹Ž
+EPNGƒtƒ@ƒCƒ‹‚Ö‚Ìo—Í
+
+2003/08/15 FreeNote 1.2‚ðŒöŠJ
+EƒIƒvƒVƒ‡ƒ“’ljÁ
+EƒXƒNƒ[ƒ‹ƒKƒCƒh
+EFreeƒtƒ@ƒCƒ‹ŠÖ˜A•t‚¯
+EƒAƒCƒRƒ“‚Ì•ÏX
+
+2003/08/05 FreeNote 1.1.1pre‚ðŒöŠJ
+E‚‘¬‹N“®Žž‚ɕ‚¶‚½ó‘Ô‚ð•ÛŽ
+E•`‰æƒ‚[ƒhØ‘Ö‚¦Žž‚ÉÁ‚µƒSƒ€•\Ž¦
+E•Û‘¶ŽžŠÔ’Zk
+EViewƒ‚[ƒh‚Ì‹““®‚ð•ÏX
+Eƒƒjƒ…[‚ÌŒ©‚½–Ú‚ð•ÏX
+*/
+#include "fncanvas.h"
+#include <qsjiscodec.h>
+#include <stdio.h>
+#include <qfile.h>
+#include <qmessagebox.h>
+#include <qtextstream.h>
+#include <qpen.h>
+#include <qcolor.h>
+#include <qpoint.h>
+#include <qthread.h>
+#include <qimage.h>
+#include <math.h>
+#include <qtextcodec.h>
+#include <qmultilineedit.h>
+#include <qbitmap.h>
+#include "fnmessagebox.h"
+#include "fmtengine.h"
+#include "fntextdialog.h"
+#include <qfont.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+#include "frmmain.h"
+#include "fnlayerdlg.h"
+#include <stdlib.h>
+
+int snap(int v) {
+ int tv = abs(v);
+ tv = ((int)(tv + SNAP_SIZE / 2) / SNAP_SIZE) * SNAP_SIZE;
+ if (0 > v) {
+ return -tv;
+ } else {
+ return tv;
+ }
+}
+
+FNCanvas::FNCanvas(FNColorDialog* dlg, QWidget* parent, const char* name, WFlags f)
+ :QWidget(parent, name, f),
+ _txtTmp(NULL),
+ _pen(black, 1, SolidLine, RoundCap, RoundJoin),
+ _asMode(AS_NONE),
+ _drawMode(MODE_DRAW),
+ _prevMode(MODE_DRAW),
+ _eraser_l(50),
+ _eraser_s(10),
+ _h_step(100),
+ _v_step(100),
+ _margin(5),
+ _scrollTiming(800),
+ _selIdx(0),
+ _viewMode(false),
+ _isWaiting(false),
+ _isDragging(false),
+ _isDrawing(false),
+ _isHeadingEnables(false),
+ _isShowGuide(false),
+ _isUseAllQuadrant(false),
+ _showRuler(false),
+ _isTinyPaging(false),
+ _scale_x(1.0),
+ _scale_y(1.0),
+ _tboxRect(0, 50, 220, 240),
+ _isEraseWaiting(false),
+ _colorSelector(dlg),
+ _isColorRevision(true)
+{
+ _tracks.setAutoDelete(true);
+ _clipboard.setAutoDelete(true);
+ _current = new FNLayer();
+ _layers.append(_current);
+ _layers.setAutoDelete(true);
+ _undobuf.setAutoDelete(true);
+ _current->Name = "Layer0";
+ this->setBackgroundMode(NoBackground);
+ _timer = new QTimer(this);
+ connect(_timer, SIGNAL(timeout()), this, SLOT(autoScroll()));
+ _dlgFind = new FNFindDialog(this, "Find");
+ connect(_dlgFind, SIGNAL(originChanged(int, int)), this, SLOT(setOrigin(int, int)));
+ connect(_dlgFind, SIGNAL(resetOrigin()), this, SLOT(resetOrigin()));
+
+}
+
+FNCanvas::~FNCanvas()
+{
+ _timer->stop();
+ delete _timer;
+
+ _tracks.clear();
+ _layers.clear();
+ //clearList(_draws);
+
+ delete _dlgFind;
+}
+
+
+void FNCanvas::addLayer()
+{
+ FNLayer* layer = new FNLayer();
+ _current=layer;
+ uint cnt = _layers.count();
+ while (1) {
+ QString name = "Layer";
+ name += QString::number(cnt);
+
+ bool nameExists = false;
+ for (uint i = 0; i < _layers.count(); ++i) {
+ if (_layers.at(i)->Name == name) {
+ nameExists = true;
+ break;
+ }
+ }
+ if (false == nameExists) {
+ layer->Name = name;
+ break;
+ }
+ ++cnt;
+ }
+ _layers.append(layer);
+ _selIdx = _layers.count() - 1;
+ redraw();
+
+}
+
+//•\Ž¦ƒŒƒCƒ„[‚ð‰º‚ÉˆÚ“®‚·‚é
+void FNCanvas::moveAboveLayer()
+{
+ --_selIdx;
+ if (0 > _selIdx) {
+ _selIdx = 0;
+ }
+ _current = _layers.at(_selIdx);
+ redraw();
+}
+
+//•\Ž¦ƒŒƒCƒ„[‚ðã‚Ɉړ®‚·‚é
+void FNCanvas::moveBelowLayer()
+{
+ ++_selIdx;
+ if (_layers.count() - 1 <= (uint)_selIdx) {
+ _selIdx = _layers.count() - 1;
+ }
+ _current = _layers.at(_selIdx);
+ redraw();
+}
+
+
+void FNCanvas::setScrollTiming(int v)
+{
+ _scrollTiming = v;
+}
+
+
+void FNCanvas::setVStep(int v)
+{
+ _v_step = v;
+}
+
+void FNCanvas::setHStep(int v)
+{
+ _h_step = v;
+}
+
+void FNCanvas::setSEraser(int v)
+{
+ _eraser_s = v;
+}
+
+void FNCanvas::setLEraser(int v)
+{
+ _eraser_l = v;
+}
+
+
+void FNCanvas::setMargin(int v)
+{
+ if (v < 3) {
+ v = 3;
+ }
+ _margin = v;
+}
+void FNCanvas::find()
+{
+ if (_viewMode) {
+ return;
+ }
+ _dlgFind->setElements(_layers);
+ _dlgFind->show();
+ _dlgFind->exec();
+}
+
+void FNCanvas::setScrollMode(int as)
+{
+ _asMode = as;
+ redraw();
+}
+
+void FNCanvas::autoScroll()
+{
+ if (MODE_ERASE == _drawMode) {
+ if (0 < _selection.width()) {
+ int hsn = SNAP_SIZE / 2;
+ int qsn = hsn / 2;
+ int x = ((_selection.x() - qsn) / hsn) * hsn;
+ int y = ((_selection.y() - qsn) / hsn) * hsn;
+ int dx = _selection.x() - x;
+ int dy = _selection.y() - y;
+ int w = ((_selection.width() + dx + hsn) / hsn) * hsn;
+ int h = ((_selection.height() + dy + hsn) / hsn) * hsn;
+ _selection.setRect(x, y, w, h);
+ _isSelected = true;
+ }
+ _last = QPoint(-1, -1);
+ _tracks.clear();
+ _isHeadingEnables = false;
+ _isEraseWaiting = false;
+ redraw();
+ } else {
+ if (AS_NONE == _asMode) {
+ setOrigin(_origin.x(), _origin.y(), false);
+ redraw();
+ return;
+ }
+ bool tmp = _isHeadingEnables;
+ int dx = 0;
+ int dy = 0;
+ if (AS_BOTH == _asMode || AS_HORIZONTAL == _asMode) {
+ if (_last.x() > width() * (_margin - 1) / _margin) {
+ dx = _h_step;
+ } else if (_last.x() < width() / _margin) {
+ dx = -_h_step;
+ }
+ }
+ if (AS_BOTH == _asMode || AS_VERTICAL == _asMode) {
+ if (_last.y() > height() * (_margin - 1) / _margin) {
+ dy = _v_step;
+ } else if (_last.y() < height() / _margin) {
+ dy = -_v_step;
+ }
+ }
+ setOrigin(_origin.x() + dx, _origin.y() + dy, false);
+ _isHeadingEnables = tmp;
+ redraw();
+ }
+}
+
+void FNCanvas::drawRect(QPainter& pa, const QRect& r)
+{
+ int w = width();
+ int h = height();
+ int sx = r.left();
+ int sy = r.top();
+ int ex = r.right();
+ int ey = r.bottom();
+ if (0 > sx) {
+ sx = 0;
+ }
+ if (0 > sy) {
+ sy = 0;
+ }
+ if (h < ey) {
+ ey = h;
+ }
+ if (w < ex) {
+ ex = w;
+ }
+ if (0 <= r.left()) {
+ pa.drawLine(sx, sy, sx, ey);
+ }
+ if (0 <= r.top()) {
+ pa.drawLine(sx, sy, ex, sy);
+ }
+ if (w >= r.right()) {
+ pa.drawLine(ex, sy, ex, ey);
+ }
+ if (h >= r.bottom()) {
+ pa.drawLine(sx, ey, ex, ey);
+ }
+}
+
+void FNCanvas::mousePressEvent(QMouseEvent* evt)
+{
+ if (!_current->IsShow) {
+ return;
+ }
+ setFocus();
+ _timer->stop();
+ _tracks.clear();
+ _txtwait = 10;
+ if (_viewMode) {
+ _isWaiting = true;
+ _viewMode = false;
+ setOrigin((int)((evt->x()) / _scale_x) - width() / 2, (int)((evt->y()) / _scale_y) - height() / 2, false);
+ //redraw();
+ emit resetViewMode();
+ } else if (MODE_CPICK == _drawMode) {
+ QRgb c = _buffer.convertToImage().pixel(evt->pos().x(), evt->pos().y());
+ emit pickColor(c);
+ return;
+ } else if (MODE_TEXT == _drawMode) {
+ _txtTmp = NULL;
+// _last = evt->pos();
+ _last = SnapPoint(evt->pos(), SNAP_SIZE / 4);
+ int x = _last.x();
+ int y = _last.y();
+ for (int i = _current->draws.count() - _current->disp_offset() - 1; i >= 0; --i) {
+ FNPolygon* p = _current->draws.at((uint)i);
+ if (FN_TEXT == p->type()) {
+ QRect r = p->boundingRect();
+ if (r.contains(x, y)) {
+ _txtTmp = (FNText*)p;
+ _selection.setRect(0, 0, -1, -1);
+ _tdx = _last.x() - r.x();
+ _tdy = _last.y() - r.y();
+ break;
+ }
+ }
+ }
+ } else if (MODE_ERASE == _drawMode) {
+ if (_isEraseWaiting) {
+ return;
+ }
+ _last = evt->pos();
+
+ if (0 >= _selection.width() || !_selection.contains(_last)) {
+ _isSelected = false;
+ }
+ if (!_isSelected) {
+ _selection = QRect(0, 0, -1, -1);
+ _selected.clear();
+ redraw();
+
+ int w = _eraser_s;
+ if (PENWIDTH_MAX / 2 < _pen.width()) {
+ w = _eraser_l;
+ }
+ // ‘åƒoƒO‘ÎôF
+ // 0 > x‚ÌÀ•W‚ÉAc150ˆÊ‚ÌŽlŠpŒ`‚ð‘‚­‚ÆACŒnƒUƒE‚̃pƒtƒH[ƒ}ƒ“ƒX‚ªŒƒ—Ž‚¿‚µ‚Ü‚·B
+ // ˆÈ~“¯—l‚̃ƒWƒbƒN‚Í‚±‚Ì‘Îô‚Ì‚½‚ß‚Å‚·B
+ QPainter pwin;
+ pwin.begin(this);
+ pwin.setRasterOp(XorROP);
+ pwin.setPen(QPen(white, 1));
+ _preRect.setRect(_last.x() - w / 2, _last.y() - w / 2, w, w);
+ drawRect(pwin, _preRect);
+ pwin.flush();
+ pwin.end();
+ _selection = QRect(0, 0, -1, -1);
+ _selected.clear();
+ } else {
+ QPainter pwin;
+ pwin.begin(this);
+
+ pwin.setRasterOp(XorROP);
+ pwin.setPen(QPen(white, 1));
+ _preRect.setRect(_selection.x(), _selection.y(), _selection.width(), _selection.height());
+ drawRect(pwin, _preRect);
+
+ pwin.flush();
+ pwin.end();
+ QPoint t = SnapPoint(QPoint(_selection.x(), _selection.y()));
+ _last = SnapPoint(_last);
+
+ _tdx = _last.x() - t.x();
+ _tdy = _last.y() - t.y();
+ }
+ } else {
+ _last = evt->pos();
+ _tracks.append(new QPoint(_last));
+ }
+ _isDragging = true;
+}
+
+void FNCanvas::mouseMoveEvent(QMouseEvent* evt)
+{
+ if (!_current->IsShow) {
+ return;
+ }
+ if (_isWaiting) {
+ return;
+ }
+ if (MODE_TEXT == _drawMode) {
+ if (NULL == _txtTmp) {
+ return;
+ }
+ if (0 < _txtwait) {
+ --_txtwait;
+ return;
+ }
+ QPainter pwin;
+ pwin.begin(this);
+ if (-1 != _selection.width()) {
+ pwin.setRasterOp(XorROP);
+ pwin.setPen(QPen(white, 1));
+ drawRect(pwin, _selection);
+ } else {
+ _selection = _txtTmp->boundingRect();
+ }
+ QPoint tmp = SnapPoint(evt->pos(), SNAP_SIZE / 4);
+ tmp.setX(tmp.x() - _tdx);
+ tmp.setY(tmp.y() - _tdy);
+ if (tmp != _last) {
+ _selection.moveTopLeft(tmp);
+ _last = tmp;
+ }
+ drawRect(pwin, _selection);
+ pwin.flush();
+ pwin.end();
+ } else if (MODE_CPICK == _drawMode) {
+ QRgb c = _buffer.convertToImage().pixel(evt->pos().x(), evt->pos().y());
+ emit pickColor(c);
+ return;
+ } else if (MODE_ERASE == _drawMode) {
+ //redraw();
+ if (_last.x() == -1) {
+ return;
+ }
+ if (!_isSelected) {
+ int w = _eraser_s;
+ if (PENWIDTH_MAX / 2 < _pen.width()) {
+ w = _eraser_l;
+ }
+ QPainter pwin;
+ pwin.begin(this);
+
+ pwin.setRasterOp(XorROP);
+ pwin.setPen(QPen(white, 1));
+ drawRect(pwin, _preRect);
+
+ _last = evt->pos();
+
+ _preRect.setRect(_last.x() - w / 2, _last.y() - w / 2, w, w);
+ pwin.setRasterOp(CopyROP);
+ QRect r = QRect(0, 0, width(), height());
+ for (uint i = 0; i < _current->draws.count() - _current->disp_offset(); ++i) {
+ FNPolygon* p = _current->draws.at(i);
+ QRect bounds = p->boundingRect();
+ if (r.intersects(bounds)) {
+ bool f = false;
+ QRect& selected = _preRect;
+ for (uint j = 0; j < p->points().count(); ++j) {
+ QPoint& pts = p->points().at(j);
+ if (selected.contains(pts)) {
+ f = true;
+ if (-1 == _selection.width()) {
+ _selection = bounds;
+ } else {
+ if (bounds.x() < _selection.x()) {
+ _selection.setX(bounds.x());
+ }
+ if (bounds.y() < _selection.y()) {
+ _selection.setY(bounds.y());
+ }
+ if (bounds.right() > _selection.right()) {
+ _selection.setRight(bounds.right());
+ }
+ if (bounds.bottom() > _selection.bottom()) {
+ _selection.setBottom(bounds.bottom());
+ }
+ }
+ break;
+ }
+ }
+ if (f) {
+ if (0 == _selected.contains(p)) {
+ _selected.append(p);
+ }
+ p->drawShape(pwin, f);
+ }
+ }
+ }
+ pwin.setRasterOp(XorROP);
+ pwin.setPen(QPen(white, 1));
+ drawRect(pwin, _preRect);
+ pwin.flush();
+ pwin.end();
+ } else {
+ if (0 >= _selection.width()) {
+ return;
+ }
+ //‘I‘ð’†(ˆÚ“®ˆ—)
+ QPainter pwin;
+ pwin.begin(this);
+ pwin.setRasterOp(XorROP);
+ pwin.setPen(QPen(white, 1));
+ drawRect(pwin, _preRect);
+ _last = SnapPoint(evt->pos(), SNAP_SIZE / 4);
+ _preRect.setRect(_last.x() - _tdx, _last.y() - _tdy, _selection.width(), _selection.height());
+ drawRect(pwin, _preRect);
+ pwin.flush();
+ pwin.end();
+ }
+ } else {
+ QPainter pwin;
+ pwin.begin(this);
+ pwin.setPen(_pen);
+
+ pwin.drawLine(_last, evt->pos());
+ pwin.flush();
+
+ pwin.end();
+ _last = evt->pos();
+ _tracks.append(new QPoint(_last));
+ }
+}
+
+void FNCanvas::mouseReleaseEvent(QMouseEvent* evt)
+{
+ if (!_current->IsShow) {
+ return;
+ }
+ _isDragging = false;
+ if (_isWaiting) {
+ _isWaiting = false;
+ return;
+ }
+ if (MODE_ERASE == _drawMode) {
+ if (_isSelected) {
+ //_last‚ÖˆÚ“®
+ _last = SnapPoint(evt->pos(), SNAP_SIZE / 4);
+ int dx = _last.x() - _tdx - _selection.x();
+ int dy = _last.y() - _tdy - _selection.y();
+ for (uint i = 0; i < _selected.count(); ++i) {
+ FNPolygon* p = _selected.at(i);
+ p->translate(dx, dy);
+ }
+ _selection.moveBy(dx, dy);
+ redraw();
+ } else {
+ if (false == _isEraseWaiting) {
+ _isEraseWaiting = true;
+ }
+ redraw();
+ _timer->start(_scrollTiming, true);
+ }
+ } else if (MODE_CPICK == _drawMode) {
+ QRgb c = _buffer.convertToImage().pixel(evt->pos().x(), evt->pos().y());
+ emit pickColor(c);
+ emit changeMode(_prevMode);
+ return;
+ } else {
+ if (1 < _tracks.count()) {
+ _last = evt->pos();
+ FNPolygon* p = NULL;
+ if (MODE_FORMAT == _drawMode) {
+ p = new FNPolygon(_pen);
+ _tracks = AutoFormat(_tracks);
+ } else if (MODE_CURVE == _drawMode) {
+ QPoint sp = SnapPoint(*_tracks.at(0));
+ QPoint ep = SnapPoint(*_tracks.at(_tracks.count()-1));
+ FNPointList tracks;
+ tracks.setAutoDelete(true);
+ for (uint i = 0; i < _tracks.count(); ++i) {
+ QPoint t = *_tracks.at(i);
+ tracks.append(new QPoint(t.x(), t.y()));
+ }
+ _tracks = AutoCurve(_tracks);
+ bool isEllipse = false;
+ if (sp == ep) {
+ if (0 < _tracks.count()) {
+ int vdconv = 0; //c•ûŒü“]Š·
+ int vdir = 0;
+ int svdir = 0;
+
+ int hdconv = 0; //‰¡•ûŒü“]Š·
+ int hdir = 0;
+ int shdir = 0;
+ QPoint* st = _tracks.at(0);
+ QPoint* l = st;
+ for (uint i = 1; i < _tracks.count(); ++i) {
+ QPoint* p = _tracks.at(i);
+ int thdir = sign(p->x() - l->x());
+ if (l->x() != p->x()) {
+ //…•½•ûŒü“]Š·
+ if (0 != thdir) {
+ if (0 == hdir) {
+ shdir = thdir;
+ } else if (thdir != hdir) {
+ ++hdconv;
+ }
+ hdir = thdir;
+ }
+ }
+ int tvdir = sign(p->y() - l->y());
+ if (l->y() != p->y()) {
+ //‚’¼•ûŒü“]Š·
+ if (0 != tvdir) {
+ if (0 == vdir) {
+ svdir = tvdir;
+ } else if (tvdir != vdir) {
+ ++vdconv;
+ }
+ vdir = tvdir;
+ }
+ }
+ l = p;
+ }
+ if (shdir == hdir) {
+ --hdconv;
+ }
+ if (svdir == vdir) {
+ --vdconv;
+ }
+
+ if (1 >= hdconv && 1 >= vdconv) {
+ isEllipse = true;
+ int dircnt = 0;
+ //‚à‚¤‚P”»’è
+ tracks = AutoFormat(tracks);
+ if (2 < tracks.count()) {
+ int phdir = sign(tracks.at(1)->x() - tracks.at(0)->x());
+ int pvdir = sign(tracks.at(1)->y() - tracks.at(0)->y());
+ l = tracks.at(1);
+ for (uint i = 2; i < tracks.count(); ++i) {
+ QPoint* p = tracks.at(i);
+ int thdir = sign(p->x() - l->x());
+ int tvdir = sign(p->y() - l->y());
+ if ((0 == pvdir && 0 != tvdir && 0 != phdir && 0 == thdir) ||
+ (0 != pvdir && 0 == tvdir && 0 == phdir && 0 != thdir))
+ {
+ if (3 < dircnt) {
+ isEllipse = false;
+ break;
+ }
+ ++dircnt;
+ }
+ l = p;
+ phdir = thdir;
+ pvdir = tvdir;
+ }
+ }
+ }
+ }
+ }
+ if (isEllipse) {
+ QRect r = GetBounds(_tracks);
+ _tracks.clear();
+ sp = SnapPoint(QPoint(r.x(), r.y()));
+ ep = SnapPoint(QPoint(r.x() + r.width(), r.y() + r.height()));
+ _tracks.append(new QPoint(sp.x(), sp.y()));
+ _tracks.append(new QPoint(ep.x(), ep.y()));
+ p = new FNEllipse(_pen);
+ } else if (2 < _tracks.count()) {
+ p = new FNBezier(_pen);
+ } else {
+ p = new FNPolygon(_pen);
+ }
+ } else if (MODE_SMOOTH == _drawMode) {
+ _tracks = Smoothing(_tracks);
+ if (2 < _tracks.count()) {
+ p = new FNBezier(_pen);
+ } else {
+ p = new FNPolygon(_pen);
+ }
+ } else {
+ _tracks = Reduce(_tracks);
+ p = new FNPolygon(_pen);
+ }
+ if (NULL != p) {
+ p->setFill(_fill);
+ if (1 < _tracks.count()) {
+ p->setPoints(_tracks);
+ redobuf_flush();
+ _current->draws.append(p);
+ }
+ }
+ } else if (MODE_TEXT == _drawMode) {
+ if (NULL == _txtTmp) {
+ textEdit(_last.x(), _last.y());
+ } else {
+ QRect r = _txtTmp->boundingRect();
+ if (_selection == r || 0 < _txtwait) {
+ textEdit(r.x(), r.y(), _txtTmp);
+ } else {
+ if (-1 != _selection.width()) {
+ _txtTmp->translate(_last.x() - r.x(), _last.y() - r.y());
+ }
+ }
+ }
+ _txtTmp = NULL;
+ }
+ _tracks.clear();
+ _isHeadingEnables = true;
+ _timer->start(_scrollTiming, true);
+ }
+}
+
+void FNCanvas::textEdit(int x, int y, FNText* obj)
+{
+ FNTextDialog dlg(fontname, _colorSelector, this);
+ dlg.show();
+ /*
+ if (width() < _tboxRect.x()) {
+ _tboxRect.setX(0);
+ }
+ if (50 > _tboxRect.y()) {
+ _tboxRect.setY(50);
+ }
+ if (height() < _tboxRect.height()) {
+ _tboxRect.setHeight(height());
+ }
+ if (width() < _tboxRect.width()) {
+ _tboxRect.setWidth(width());
+ }
+ dlg.move(_tboxRect.x(), _tboxRect.y());
+ dlg.resize(_tboxRect.width(), _tboxRect.height());
+ */
+ dlg.move(width() / 8, height() / 8);
+ dlg.resize(width() * 6 / 8, height() * 6 / 8);
+ QPen pen = _pen;
+ if (NULL != obj) {
+ for (uint i = 0; i < obj->lines.count(); ++i) {
+ dlg.lines->append(obj->lines[i]);
+ }
+ pen = obj->pen();
+ }
+ dlg.setPen(pen);
+
+ int mx = x;
+ int my = y;
+ if (dlg.exec()) {
+ pen = dlg.pen();
+ if (0 < dlg.lines->text().length()) {
+ FNText* p = obj;
+ if (NULL == obj) {
+ p = new FNText(pen);
+ _current->draws.append((FNPolygon*)p);
+ }
+ p->pen() = pen;
+ p->lines.clear();
+ FNPointList l;
+ l.append(new QPoint(x, y));
+ QFont font(fontname);
+ font.setPointSize(FONTSIZE[pen.width()]);
+ QFontMetrics fm(font);
+ int h = fm.height();
+ for (int i = 0; i < dlg.lines->numLines(); ++i) {
+ p->lines.append(dlg.lines->textLine(i));
+ int w = fm.width(dlg.lines->textLine(i)) + x;
+ l.append(new QPoint(w, my));
+ my += h;
+ l.append(new QPoint(w, my));
+ l.append(new QPoint(x, my));
+ if (mx < w) {
+ mx = w;
+ }
+ }
+ p->setPoints(l);
+ redobuf_flush();
+ redraw();
+ } else {
+ if (NULL != obj) {
+ _current->draws.remove(obj);
+ }
+ }
+ }
+ _tboxRect = QRect(dlg.x(), dlg.y(), dlg.width(), dlg.height());
+}
+void FNCanvas::paintEvent(QPaintEvent*)
+{
+ bitBlt(this, 0, 0, &_buffer);
+}
+
+void FNCanvas::resizeEvent(QResizeEvent* evt)
+{
+ QPixmap save(_buffer);
+ _buffer.resize(evt->size());
+ _buffer.fill(white);
+ bitBlt(&_buffer, 0, 0, &save);
+ redraw();
+}
+
+void FNCanvas::setOrigin(QPoint& o)
+{
+ this->setOrigin(o.x(), o.y());
+}
+
+QPoint FNCanvas::getTopLeft()
+{
+ bool hasValue = false;
+ int dx = 0;
+ int dy = 0;
+ if (0 < _current->draws.count()) {
+ dx = ((FNPolygon*)_current->draws.at(0))->boundingRect().x();
+ dy = ((FNPolygon*)_current->draws.at(0))->boundingRect().y();
+ }
+
+ for (uint j = 0; j < _layers.count(); ++j) {
+ FNPolygonList& draws = _layers.at(j)->draws;
+ for (uint i = 0; i < draws.count(); ++i) {
+ FNPolygon* p = draws.at(i);
+ hasValue = true;
+ if (dx > p->boundingRect().x()) {
+ dx = p->boundingRect().x();
+ }
+ if (dy > p->boundingRect().y()) {
+ dy = p->boundingRect().y();
+ }
+ }
+ }
+ if (!hasValue || !_isUseAllQuadrant) {
+ return _origin;
+ }
+ return QPoint(snap(dx), snap(dy));
+}
+
+
+void FNCanvas::rebuild()
+{
+ if (!_isUseAllQuadrant) {
+ return;
+ }
+
+ QPoint d = getTopLeft();
+ d.setX(d.x() - SNAP_SIZE);
+ d.setY(d.y() - SNAP_SIZE);
+ for (uint j = 0; j < _layers.count(); ++j) {
+ FNPolygonList& draws = _layers.at(j)->draws;
+ for (uint i = 0; i < draws.count(); ++i) {
+ FNPolygon* p = draws.at(i);
+ p->translate(-d.x(), -d.y());
+ }
+ }
+ _origin = QPoint(0, 0);
+}
+
+void FNCanvas::resetOrigin()
+{
+ int ox = 0;
+ int oy = 0;
+ _isHeadingEnables = false;
+ _timer->stop();
+
+
+ int dx = 0;
+ int dy = 0;
+ if (!_isUseAllQuadrant) {
+ if (0 > ox) {
+ ox = 0;
+ }
+ if (0 > oy) {
+ oy = 0;
+ }
+ dx = _origin.x() - ox;
+ dy = _origin.y() - oy;
+ } else {
+ dx = _origin.x() - ox;
+ dy = _origin.y() - oy;
+ if (0 > ox) {
+ ox = 0;
+ }
+ if (0 > oy) {
+ oy = 0;
+ }
+ }
+ for (uint i = 0; i < _tracks.count(); ++i) {
+ QPoint* p = _tracks.at(i);
+ p->setX(p->x() + dx);
+ p->setY(p->y() + dy);
+ }
+
+ for (uint i = 0; i < _layers.count(); ++i) {
+ FNPolygonList& draws = _layers.at(i)->draws;
+ for (uint j = 0; j < draws.count(); ++j) {
+ FNPolygon* p = draws.at(j);
+ p->translate(dx, dy);
+ }
+ }
+ _origin = QPoint(ox, oy);
+}
+
+void FNCanvas::setOrigin(int ox, int oy, bool isRedrawEnabled)
+{
+ ox = snap(ox);
+ oy = snap(oy);
+ _isHeadingEnables = false;
+ _timer->stop();
+
+ int dx = 0;
+ int dy = 0;
+ if (!_isUseAllQuadrant) {
+ if (0 > ox) {
+ ox = 0;
+ }
+ if (0 > oy) {
+ oy = 0;
+ }
+ dx = _origin.x() - ox;
+ dy = _origin.y() - oy;
+ } else {
+ dx = _origin.x() - ox;
+ dy = _origin.y() - oy;
+ if (0 > ox) {
+ ox = 0;
+ }
+ if (0 > oy) {
+ oy = 0;
+ }
+ }
+ if (dx == 0 && dy == 0) {
+ return;
+ }
+ for (uint i = 0; i < _tracks.count(); ++i) {
+ QPoint* p = _tracks.at(i);
+ p->setX(p->x() + dx);
+ p->setY(p->y() + dy);
+ }
+
+ for (uint j = 0; j < _layers.count(); ++j) {
+ FNPolygonList& draws = _layers.at(j)->draws;
+ for (uint i = 0; i < draws.count(); ++i) {
+ FNPolygon* p = draws.at(i);
+ p->translate(dx, dy);
+ }
+ }
+ if (-1 != _selection.width()) {
+ _selection.moveBy(dx, dy);
+ }
+
+ _origin = QPoint(ox, oy);
+ emit originChanged(ox, oy);
+ if (isRedrawEnabled) {
+ redraw();
+ }
+}
+
+void FNCanvas::redraw()
+{
+ if (_isDrawing) {
+ return;
+ }
+ if (_isDragging) {
+ return;
+ }
+ if (!this->isVisible()) {
+ return;
+ }
+
+ _isDrawing = true;
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (_isTinyPaging) {
+ if (_current == &layer) {
+ layer.IsShow = true;
+ } else {
+ layer.IsShow = false;
+ }
+ }
+ }
+ int h = height(); //(height() / 40) * 40;
+ _buffer.fill(white);
+ QRect r = QRect(0, 0, width(), height());
+ QPainter pbuf;
+ pbuf.begin(&_buffer);
+ pbuf.setFont(QFont(fontname));
+ pbuf.setClipRect(0, 0, width(), height());
+ if (_viewMode) {
+ float wx = 0;
+ float wy = 0;
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (layer.IsShow) {
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ FNPolygon* p = draws.at(i);
+ QRect r = p->boundingRect();
+ if (wx < r.right()) {
+ wx = r.right();
+ }
+ if (wy < r.bottom()) {
+ wy = r.bottom();
+ }
+ }
+ }
+ }
+ wx += SNAP_SIZE;
+ wy += SNAP_SIZE;
+ wx = snap((int)wx);
+ wy = snap((int)wy);
+ wx = wx + _origin.x();
+ wy = wy + _origin.y();
+ _scale_x = (float)width() / wx;
+ _scale_y = (float)height() / wy;
+ if (1.0f < _scale_x) {
+ _scale_x = 1.0f;
+ }
+ if (1.0f < _scale_y) {
+ _scale_y = 1.0f;
+ }
+ if (_scale_x > _scale_y) {
+ _scale_x = _scale_y;
+ } else if (_scale_x < _scale_y) {
+ _scale_y = _scale_x;
+ }
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (!layer.IsShow) {
+ continue;
+ }
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ FNPolygon* p = draws.at(i);
+ FNPolygon* t = NULL;
+ if (p->type() == FN_BEZIER) {
+ t = new FNBezier(*(FNBezier*)p);
+ } else if (p->type() == FN_ELLIPSE) {
+ t = new FNEllipse(*(FNEllipse*)p);
+ } else if (p->type() == FN_TEXT) {
+ t = new FNText(*(FNText*)p);
+ } else {
+ t = new FNPolygon(*p);
+ }
+ t->translate(-_origin.x(), -_origin.y());
+ for (uint j = 0; j < t->points().count(); ++j) {
+ QPoint& pts = t->points().at(j);
+ int x = (int)(pts.x() * _scale_x);
+ int y = (int)(pts.y() * _scale_y);
+ pts.setX(x);
+ pts.setY(y);
+ }
+ double pensize = t->pen().width();
+ if (_scale_x > _scale_y) {
+ pensize = pensize * _scale_y;
+ } else {
+ pensize = pensize * _scale_x;
+ }
+ if (0 >= pensize) {
+ pensize = 1;
+ }
+ if (p->type() == FN_TEXT) {
+ FNText* tp = (FNText*)t;
+ QPoint& sp = t->points().at(0);
+
+ //default font size checking...
+ QFont f(fontname, FONTSIZE[p->pen().width()]);
+ QFontMetrics fm(f);
+ int h = fm.height();
+ int wx = 0;
+ int wy = 0;
+ for (uint i = 0; i < tp->lines.count(); ++i) {
+ int tw = fm.width(tp->lines[i]);
+ if (tw > wx) {
+ wx = tw;
+ }
+ wy += h;
+ }
+
+ //create default font image...
+ QRect r = tp->boundingRect();
+ QPixmap tmp(wx + 1, wy + 1);
+ tmp.fill(Qt::white);
+ QPainter pt;
+ pt.begin(&tmp);
+ pt.setFont(f);
+ pt.setPen(p->pen());
+ int y = h + 1;
+ for (uint i = 0; i < tp->lines.count(); ++i) {
+ pt.drawText(1, y, tp->lines[i]);
+ y += h;
+ }
+ pt.flush();
+ pt.end();
+
+ //draw to font image
+ tmp = tmp.convertToImage().smoothScale(r.width(), r.height());
+ tmp.setMask(tmp.createHeuristicMask());
+ pbuf.drawPixmap(sp.x(), sp.y(), tmp);
+ pbuf.flush();
+ } else {
+ t->pen().setWidth(pensize);
+ t->drawShape(pbuf);
+ }
+ delete t;
+ }
+ }
+ } else {
+ if (MODE_ERASE == _drawMode || MODE_FORMAT == _drawMode || MODE_CURVE == _drawMode || MODE_TEXT == _drawMode) {
+ //ƒOƒŠƒbƒh•`‰æ
+ //QPen pen2(QColor(0, 0, 0), 1);
+ //pbuf.setPen(QPen(QColor(50, 240, 240), 1));
+ pbuf.setPen(QPen(GridColor));
+ for (int x = 0; x < width() + SNAP_SIZE; x += SNAP_SIZE) {
+ pbuf.drawLine(x - SNAP_SIZE / 2, 0, x - SNAP_SIZE / 2, h);
+ for (int y = 0; y < h + SNAP_SIZE; y += SNAP_SIZE) {
+ pbuf.drawLine(0, y - SNAP_SIZE / 2, width(), y - SNAP_SIZE / 2);
+ pbuf.drawRect(x-1,y-1,2,2);
+ }
+ }
+ }
+ if (MODE_ERASE != _drawMode) {
+ if (!(MODE_FORMAT == _drawMode || MODE_CURVE == _drawMode || MODE_TEXT == _drawMode)) {
+ if (_showRuler) {
+ //Œrü
+ pbuf.setPen(QPen(RulerColor, 1, SolidLine));
+ int step = SNAP_SIZE * 2; //SNAP_SIZE‚Ì‚Q”{‚ÉB
+ for (int i = 0; i < height(); i += step) {
+ pbuf.drawLine(0, i, width(), i);
+ }
+ }
+ }
+
+ if (_isShowGuide) {
+ pbuf.setPen(QPen(GuideColor, 1, DashLine));
+ if (AS_HORIZONTAL == _asMode || AS_BOTH == _asMode) {
+ if (0 != _origin.x() || _isUseAllQuadrant) {
+ pbuf.drawLine(width() / _margin, 0, width() / _margin, h);
+ }
+ pbuf.drawLine(width() * (_margin - 1) / _margin, 0, width() * (_margin - 1) / _margin, h);
+ }
+
+ if (AS_VERTICAL == _asMode || AS_BOTH == _asMode) {
+ if (0 != _origin.y() || _isUseAllQuadrant) {
+ pbuf.drawLine(0, h / _margin, width(), h / _margin);
+ }
+ pbuf.drawLine(0, h * (_margin - 1) / _margin, width(), h * (_margin - 1) / _margin);
+ }
+ }
+
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (layer.IsShow) {
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ FNPolygon* p = draws.at(i);
+ if (r.intersects(p->boundingRect())) {
+ p->drawShape(pbuf);
+ }
+ }
+ }
+ }
+ } else {
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (layer.IsShow) {
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ FNPolygon* p = draws.at(i);
+ if (!_selected.contains(p)) {
+ if (r.intersects(p->boundingRect())) {
+ p->drawShape(pbuf);
+ }
+ }
+ }
+ }
+ }
+ for (uint i = 0; i < _selected.count(); ++i) {
+ _selected.at(i)->drawShape(pbuf, true);
+ }
+ if (_isSelected) {
+ pbuf.setPen(QPen(SelectionFrameColor, 1, DashLine));
+ pbuf.setBrush(NoBrush);
+ pbuf.drawRect(_selection);
+ }
+ }
+ }
+ pbuf.end();
+ _isDrawing = false;
+ repaint();
+}
+
+void FNCanvas::changeColor(QRgb c)
+{
+ _pen.setColor(QColor(c));
+ if (_isSelected && _drawMode == MODE_ERASE) {
+ for (uint i = 0; i < _selected.count(); ++i) {
+ _selected.at(i)->pen().setColor(QColor(c));
+ }
+ }
+}
+
+void FNCanvas::selectionMoveTo(int dx, int dy)
+{
+ if (_isSelected) {
+ for (uint i = 0; i < _selected.count(); ++i) {
+ _selected.at(i)->translate(dx, dy);
+ }
+ _selection.moveBy(dx, dy);
+ }
+ redraw();
+}
+
+void FNCanvas::copy()
+{
+ if (MODE_ERASE != _drawMode || _viewMode) {
+ return;
+ }
+ _clipboard.clear();
+ int size = _selected.count();
+ int a1[size];
+ int a2[size];
+ for (int i = 0; i < size; ++i) {
+ a1[i] = _current->draws.findRef(_selected.at(i));
+ a2[i] = i;
+ }
+
+ //ƒ\[ƒg
+ FNPolygonList tmp;
+ for (int i = 0; i < size; ++i) {
+ int min = i;
+ for (int j = i + 1; j < size; ++j) {
+ if (a1[min] > a1[j]) {
+ min = j;
+ }
+ }
+ tmp.append(_selected.at(a2[min]));
+ a1[min] = a1[i];
+ a2[min] = a2[i];
+ }
+
+ //•À‚ч‚ð•ÛØ‚µ‚ăRƒs[
+ tmp.clone(_clipboard);
+ tmp.clear();
+}
+
+void FNCanvas::paste()
+{
+ if (_viewMode) {
+ return;
+ }
+ if (MODE_ERASE == _drawMode) {
+ _selected.clear();
+ _clipboard.clone(_selected);
+ _selection = QRect(0, 0, -1, -1);
+ for (uint i = 0; i < _selected.count(); ++i) {
+ FNPolygon* o = _selected.at(i);
+ o->translate(10, 10);
+ QRect bounds = o->boundingRect();
+ if (-1 == _selection.width()) {
+ _selection = bounds;
+ } else {
+ if (bounds.x() < _selection.x()) {
+ _selection.setX(bounds.x());
+ }
+ if (bounds.y() < _selection.y()) {
+ _selection.setY(bounds.y());
+ }
+ if (bounds.right() > _selection.right()) {
+ _selection.setRight(bounds.right());
+ }
+ if (bounds.bottom() > _selection.bottom()) {
+ _selection.setBottom(bounds.bottom());
+ }
+ }
+ }
+ _selected.copy(_current->draws);
+ _isSelected = true;
+ } else {
+ int my = 10;
+ int mx = 10;
+ int x = 10;
+ QStringList lines = QStringList::split("\n", QApplication::clipboard()->text());
+ if (0 < lines.count()) {
+ FNText* p = new FNText(_pen);
+ _current->draws.append((FNPolygon*)p);
+ p->lines.clear();
+ FNPointList l;
+ l.append(new QPoint(0, 0));
+ QFont font(fontname);
+ font.setPointSize(FONTSIZE[_pen.width()]);
+ QFontMetrics fm(font);
+ int h = fm.height();
+ for (uint i = 0; i < lines.count(); ++i) {
+ p->lines.append(lines[i]);
+ int w = fm.width(lines[i]) + x;
+ l.append(new QPoint(w, my));
+ my += h;
+ l.append(new QPoint(w, my));
+ l.append(new QPoint(x, my));
+ if (mx < w) {
+ mx = w;
+ }
+ }
+ p->setPoints(l);
+ }
+ }
+ redraw();
+}
+
+void FNCanvas::redo()
+{
+ if (MODE_ERASE != _drawMode) {
+ _current->redo();
+ }
+ redraw();
+}
+
+void FNCanvas::clearList(FNPolygonList& list)
+{
+ list.setAutoDelete(true);
+ list.clear();
+ list.setAutoDelete(false);
+}
+
+void FNCanvas::resetSelection()
+{
+ _selection = QRect(0, 0, -1, -1);
+ _selected.clear();
+ _isSelected = false;
+}
+
+void FNCanvas::clear()
+{
+ resetSelection();
+ _layers.clear();
+ _current = new FNLayer();
+ _layers.append(_current);
+ _current->Name = "Layer0";
+ _selIdx = 0;
+ _isTinyPaging = false;
+ //_undobuf.clear();
+ setOrigin(0, 0);
+ redraw();
+}
+
+void FNCanvas::undo()
+{
+ _timer->stop();
+ if (MODE_ERASE != _drawMode) {
+ _current->undo();
+ } else {
+ _selected.clear();
+ _isSelected = false;
+ _layers.clear();
+ for (uint i = 0; i < _undobuf.count(); ++i) {
+ _layers.append(new FNLayer(*_undobuf.at(i)));
+ }
+ _current = _layers.at(0);
+ _selIdx = 0;
+ }
+ redraw();
+}
+
+void FNCanvas::viewChanged(bool flg)
+{
+ _tracks.clear();
+ _viewMode = flg;
+ if (_viewMode) {
+ if (_isUseAllQuadrant) {
+ rebuild();
+ }
+ setOrigin(0, 0, false);
+ }
+ redraw();
+}
+
+void FNCanvas::redobuf_flush()
+{
+ _current->redobuf_flush();
+}
+
+void FNCanvas::modeChanged(int mode)
+{
+ _tracks.clear();
+ resetSelection();
+ _drawMode = mode;
+ for (uint i = 0; i < _layers.count(); ++i) {
+ FNLayer* p = _layers.at(i);
+ p->modeChanged();
+ }
+ _undobuf.clear();
+ if (MODE_ERASE == mode) {
+ _isEraseWaiting = false;
+ for (uint i = 0; i < _layers.count(); ++i) {
+ _undobuf.append(new FNLayer(*_layers.at(i)));
+ }
+ }
+ if (MODE_CPICK != mode) {
+ _prevMode = mode;
+ }
+ redraw();
+}
+
+QRect FNCanvas::getMatrix(const QRect& r) const
+{
+ int ox = _origin.x();
+ int oy = _origin.y();
+ const int wide = 100;
+
+ int left = r.left() + ox;
+ int top = r.top() + oy;
+ int right = r.right() + ox;
+ int bottom = r.bottom() + oy;
+
+ left = (int)(left / wide) * wide;
+ top = (int)(top / wide) * wide;
+ right = (right % wide == 0 && left != right) ? right : (int)((right + wide) / wide) * wide;
+ bottom = (bottom % wide == 0 && top != bottom) ? bottom : (int)((bottom + wide) / wide) * wide;
+
+ return QRect(left - ox, top - oy, right - left, bottom - top);
+}
+
+void FNCanvas::CR()
+{
+ if (MODE_ERASE == _drawMode) {
+ return;
+ }
+ int h = height(); //(height() / 40) * 40;
+ int step = snap(h) / _margin;
+ if (_isHeadingEnables) {
+ //last‚©‚çA¶•ûŒü‚ÉŒü‚¯‚Ä’Tõ‚·‚éB
+ QRect r = getMatrix(_current->draws.last()->boundingRect());
+ bool isSearching = true;
+ r.moveBy(-100, 0);
+ while (isSearching) {
+ isSearching = false;
+ for (uint i = 0; i < _current->draws.count(); ++i) {
+ FNPolygon* p = _current->draws.at(i);
+ const QRect& r2 = p->boundingRect();
+ if (r.intersects(r2)) {
+ if (r.left() + 100 > r2.left()) {
+ r = getMatrix(r2);
+ r.moveBy(-100, 0);
+ isSearching = true;
+ break;
+ }
+ }
+ }
+ }
+ r.moveBy(100, 0);
+ //last‚ª‰æ–Ê‚Ì4/5ˆÈ‰º‚È‚ç‚ÎAƒXƒNƒ[ƒ‹ƒAƒbƒv‚·‚éB
+ //‚»‚¤‚Å‚È‚¯‚ê‚ÎAƒwƒbƒfƒBƒ“ƒO‚Ì‚ÝB
+ if (_last.y() > h * 4 / 5) {
+ setOrigin(_origin.x() + r.x(), _origin.y() + step);
+ } else {
+ setOrigin(_origin.x() + r.x(), _origin.y());
+ }
+ _isHeadingEnables = false;
+ } else {
+ //last‚ÌŽüˆÍ‚ɉ½‚à–³‚¢ê‡‚ÍAc‚ɃXƒNƒ[ƒ‹‚·‚éB
+ setOrigin(_origin.x(), _origin.y() + step);
+ }
+}
+
+void FNCanvas::erase()
+{
+ if (MODE_ERASE != _drawMode) {
+ return;
+ }
+ FNPolygonList temp;
+ int w = _eraser_s;
+ if (PENWIDTH_MAX / 2 < _pen.width()) {
+ w = _eraser_l;
+ }
+ for (uint i = 0; i < _selected.count(); ++i) {
+ _current->draws.remove(_selected.at(i));
+ //_marks.append(_selected.at(i));
+ }
+ resetSelection();
+ _tracks.clear();
+ _isEraseWaiting = false;
+ redraw();
+}
+
+void FNCanvas::setPensize(int sz)
+{
+ _pen.setWidth(sz);
+ if (_isSelected) {
+ for (uint i = 0; i < _selected.count(); ++i) {
+ if (FN_TEXT != _selected.at(i)->type()) {
+ _selected.at(i)->pen().setWidth(sz);
+ }
+ }
+ }
+}
+
+bool FNCanvas::exportPNG(const QFileInfo& info, QPixmap& buf)
+{
+ if (0 == info.fileName().length()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file name is empty.");
+ return false;
+ }
+ if (info.extension(false) != "png") {
+ QMessageBox::warning(0,"FreeNoteQt", "extension '.png' expected.");
+ return false;
+ }
+
+ bool ret;
+ if (_isColorRevision) {
+ QImage img = buf.convertToImage();
+ int wd = buf.width();
+ int ht = buf.height();
+ for (int i = 0; i < ht; ++i) {
+ for (int j = 0; j < wd; ++j) {
+ QRgb c = img.pixel(j, i);
+ int r = qRed(c) >> 3;
+ int g = qGreen(c) >> 2;
+ int b = qBlue(c) >> 3;
+ r = (r << 3) | (r >> 2);
+ b = (b << 3) | (b >> 2);
+ g = (g << 2) | (g >> 4);
+ //float f1 = 248f / 255f;
+ //float f2 = 252f / 255f;
+ //img.setPixel(qRed(c) * f1, qGreen(c) * f2, qBlue(c) * f1);
+ img.setPixel(j, i, qRgb(r, g, b));
+ }
+ }
+ ret = img.save(info.absFilePath(), "PNG");
+ } else {
+ ret = buf.save(info.absFilePath(), "PNG");
+ }
+ if (ret) {
+ FNMessageBox::information(0,"FreeNoteQt", "export PNG complete.");
+ } else {
+ QMessageBox::warning(0,"FreeNoteQt", "could not export file.");
+ }
+ return ret;
+}
+
+QString FNCanvas::mkPDFscript(FNPolygon* elm, int wy)
+{
+ QString s ="";
+ char buf[1024];
+ float r;
+ float g;
+ float b;
+ if (_isColorRevision) {
+ r = (float)elm->pen().color().red() / 248.0f;
+ g = (float)elm->pen().color().green() / 252.0f;
+ b = (float)elm->pen().color().blue() / 248.0f;
+ } else {
+ r = (float)elm->pen().color().red() / 255.0f;
+ g = (float)elm->pen().color().green() / 255.0f;
+ b = (float)elm->pen().color().blue() / 255.0f;
+ }
+ if (elm->type() == FN_TEXT) {
+ FNText* t = (FNText*)elm;
+ sprintf(buf, "BT\r\n/F1 %d Tf\r\n", FONTSIZE[elm->pen().width()]);
+ s += buf;
+ sprintf(buf, "0 Tr\r\n%f %f %f rg\r\n", r, g, b);
+ s += buf;
+ QRect r = t->boundingRect();
+ r.moveBy(_origin.x(), _origin.y());
+ QFont font(fontname);
+ font.setPointSize(FONTSIZE[elm->pen().width()]);
+ QFontMetrics fm(font);
+ int h = fm.height();
+ int y = r.y() + h;
+ for (uint i = 0; i < t->lines.count(); ++i) {
+ sprintf(buf, "1 0 0 1 %d %d Tm\r\n", r.x() + 3, wy - y);
+ s += buf;
+ y = y + h;
+ s += "<";
+ for (uint j = 0; j < t->lines[i].length(); ++j) {
+ sprintf(buf, "%04X", (t->lines[i].at(j).unicode() & 0x0ffff));
+ s += buf;
+ }
+ s += "> Tj\r\n";
+ }
+ s += "ET\r\n";
+ } else {
+ s += "q\r\n";
+ if (elm->fill()) {
+ sprintf(buf, "%f %f %f rg\r\n", r, g, b);
+ } else {
+ sprintf(buf, "%f %f %f RG\r\n", r, g, b);
+ }
+ s += buf;
+ QPointArray points = elm->points().copy();
+ points.translate(_origin.x(), _origin.y());
+ if (elm->type() == FN_BEZIER) {
+ sprintf(buf, "%d %d m\r\n", points[0].x(), wy - points[0].y());
+ s += buf;
+ for (uint j = 1; j < points.count(); j += 3) {
+ sprintf(buf, "%d %d %d %d %d %d c\r\n",
+ points[j].x(), wy - points[j].y(),
+ points[j + 1].x(), wy - points[j + 1].y(),
+ points[j + 2].x(), wy - points[j + 2].y()
+ );
+ s += buf;
+ }
+ } else if (elm->type() == FN_ELLIPSE) {
+ int x = points[0].x();
+ int y = points[0].y();
+ int ex = points[1].x();
+ int ey = points[1].y();
+ int w = ex - x;
+ int h = ey - y;
+ int cx = x + w/2;
+ int cy = y;
+ int x1 = x + 3*w/4;
+ int y1 = y;
+ int x2 = x + w;
+ int y2 = y + h/4;
+ int x3 = x + w;
+ int y3 = y + h/2;
+
+ sprintf(buf, "%d %d m\r\n%d %d %d %d %d %d c\r\n", cx, wy - cy, x1, wy - y1, x2, wy - y2, x3, wy - y3);
+ s += buf;
+ x1 = x + w;
+ y1 = y + 3 * h / 4;
+ x2 = x + 3 * w / 4;
+ y2 = y + h;
+ x3 = x + w/2;
+ y3 = y + h;
+ sprintf(buf, "%d %d %d %d %d %d c\r\n", x1, wy - y1, x2, wy - y2, x3, wy - y3);
+ s += buf;
+
+ x1 = x + w / 4;
+ y1 = y + h;
+ x2 = x;
+ y2 = y + 3 * h / 4;
+ x3 = x;
+ y3 = y + h / 2;
+ sprintf(buf, "%d %d %d %d %d %d c\r\n", x1, wy - y1, x2, wy - y2, x3, wy - y3);
+ s += buf;
+ x1 = x;
+ y1 = y + h / 4;
+ x2 = x + w / 4;
+ y2 = y;
+ x3 = x + w / 2;
+ y3 = y;
+ sprintf(buf, "%d %d %d %d %d %d c\r\n", x1, wy - y1, x2, wy - y2, x3, wy - y3);
+ s += buf;
+ } else {
+ sprintf(buf, "%d %d m\r\n", points[0].x(), wy - points[0].y());
+ s += buf;
+ for (uint j = 1; j < points.count(); ++j) {
+ sprintf(buf, "%d %d l\r\n", points[j].x(), wy - points[j].y());
+ s += buf;
+ }
+ }
+ sprintf(buf, "%d w\r\n", elm->pen().width());
+ s += buf;
+ if (elm->fill()) {
+ s += "f*\r\n";
+ } else {
+ s += "S\r\n";
+ }
+ s += "Q\r\n";
+ }
+ return s;
+}
+
+bool FNCanvas::exportPDF(const QFileInfo& info)
+{
+ if (0 == info.fileName().length()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file name is empty.");
+ return false;
+ }
+ if (info.extension(false) != "pdf") {
+ QMessageBox::warning(0,"FreeNoteQt", "extension '.pdf' expected.");
+ return false;
+ }
+
+ FILE* fp = NULL;
+ if (!(fp = fopen(info.absFilePath().utf8(), "wt"))) {
+ QMessageBox::warning(0,"FreeNoteQt", "could not export file.");
+ return false;
+ }
+
+ QPoint o = getTopLeft();
+ rebuild();
+ int wx = 595;
+ int wy = 842;
+ char buf[1024];
+ int bias = 0;
+ if (_isUseAllQuadrant) {
+ bias = SNAP_SIZE;
+ }
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ FNPolygon* p = draws.at(i);
+ QRect r = p->boundingRect();
+ r.moveBy(_origin.x(), _origin.y());
+ if (wx < r.right() + bias) {
+ wx = r.right() + bias;
+ }
+ if (wy < r.bottom() + bias) {
+ wy = r.bottom() + bias;
+ }
+ }
+ }
+
+ int len = 0;
+
+ /*
+ sprintf(buf, "1 0 0 -1 0 %d cm\r\n", wy);
+ QString cm = buf;
+ len += cm.length();
+ */
+ QString cm = "";
+
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (layer.IsShow) {
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ QString s = mkPDFscript(draws.at(i), wy);
+ len += s.length();
+ }
+ }
+ }
+
+ //int ref = 0;
+ QString header = "";
+ QStringList xref;
+ xref.append("0000000000 65535 f\r\n");
+
+ header += "%PDF-1.3\r\n";
+ sprintf(buf, "%010d 00000 n\r\n", header.length());
+ xref.append(buf);
+
+ header += "1 0 obj<</Type/Catalog/Outlines 2 0 R/Pages 3 0 R>>\r\n";
+ header += "endobj\r\n";
+ sprintf(buf, "%010d 00000 n\r\n", header.length());
+ xref.append(buf);
+
+
+ header += "2 0 obj<</Type/Outlines/Count 0>>\r\n";
+ header += "endobj\r\n";
+ sprintf(buf, "%010d 00000 n\r\n", header.length());
+ xref.append(buf);
+
+ header += "3 0 obj<</Type/Pages/Kids[4 0 R]/Count 1>>\r\n";
+ header += "endobj\r\n";
+ sprintf(buf, "%010d 00000 n\r\n", header.length());
+ xref.append(buf);
+
+ header += "4 0 obj<</Type/Page/Parent 3 0 R";
+ sprintf(buf, "/MediaBox[0 0 %d %d]", wx, wy);
+ header += buf;
+ header += "/Contents 6 0 R/Resources<</Font<</F1 5 0 R>>/ProcSet[/PDF/Text]>>>>\r\n";
+ header += "endobj\r\n";
+ sprintf(buf, "%010d 00000 n\r\n", header.length());
+ xref.append(buf);
+
+ if (encode == QString("WinAnsiEncoding")) {
+ header += "5 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica/FirstChar 0/LastChar 255/Encoding/WinAnsiEncoding>>\r\n";
+ } else if (encode == QString("UniJIS-UCS2-H")) {
+ header += "5 0 obj<</Type/Font/Encoding/UniJIS-UCS2-H/BaseFont/MSGothic/Subtype/Type0/DescendantFonts[<</W[0[1000] 1 94 500 231 324 500 327 389 500 631 [500] 668 [500]]/Type/Font/BaseFont/MSGothic/Subtype/CIDFontType2/CIDSystemInfo<</Ordering(Japan1)/Registry(Adobe)/Supplement 2>>/FontDescriptor<</Type/FontDescriptor/FontBBox[0 -137 1000 859]/FontName/MSGothic/Flags 32/StemV 92/CapHeight 770/XHeight 543/Ascent 859/Descent -137/ItalicAngle 0>>/DW 1000>>]>>\r\n";
+ }
+ header += "endobj\r\n";
+ sprintf(buf, "%010d 00000 n\r\n", header.length());
+ xref.append(buf);
+
+ sprintf(buf, "6 0 obj<</Length %d>>\r\n", len);
+ header += buf;
+ header += "stream\r\n";
+
+ QString footer = "";
+ footer += "xref\r\n";
+ sprintf(buf, "0 %d\r\n", xref.count());
+ footer += buf;
+ for (uint i = 0; i < xref.count(); ++i) {
+ footer += xref[i];
+ }
+ footer += "trailer\r\n";
+ sprintf(buf, "<</Size %d/Root 1 0 R>>\r\n", xref.count());
+ footer += buf;
+ footer += "startxref\r\n";
+
+ len = cm.length();
+ len += header.length();
+ fputs(header, fp);
+ fputs(cm, fp);
+
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ if (layer.IsShow) {
+ FNPolygonList& draws = layer.draws;
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ QString s = mkPDFscript(draws.at(i), wy);
+ len += s.length();
+ fputs(s, fp);
+ }
+ }
+ }
+ QString streamfooter = "endstream\r\nendobj\r\n";
+ len += streamfooter.length();
+ fputs(streamfooter, fp);
+
+ fputs(footer, fp);
+ sprintf(buf, "%d\r\n", len);
+ fputs(buf, fp);
+ fputs("%%EOF\r\n", fp);
+ fclose(fp);
+ if (_isUseAllQuadrant) {
+ setOrigin(-o.x(), -o.y());
+ }
+ FNMessageBox::information(0,"FreeNoteQt", "export PDF complete.");
+ return true;
+}
+
+bool FNCanvas::save(const QFileInfo& info)
+{
+ if (0 == info.fileName().length()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file name is empty.");
+ return false;
+ }
+ if (info.extension(false) != "free") {
+ QMessageBox::warning(0,"FreeNoteQt", "extension '.free' expected.");
+ return false;
+ }
+ FILE* fp = NULL;
+ if (!(fp = fopen(info.absFilePath().utf8(), "wt"))) {
+ QMessageBox::warning(0,"FreeNoteQt", "could not save file.");
+ return false;
+ }
+ QPoint o = getTopLeft();
+ rebuild();
+ fputs("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", fp);
+ char buf[1024];
+ sprintf(buf, "<freenote version=\"4.1\" pg=%d idx=\"%d\">\n", _isTinyPaging, _selIdx);
+ fputs(buf, fp);
+ for (uint l = 0; l < _layers.count(); ++l) {
+ FNLayer& layer = *_layers.at(l);
+ FNPolygonList& draws = layer.draws;
+ QString s = "<layer v=";
+ if (layer.IsShow) {
+ s += "1 name=\"";
+ } else {
+ s += "0 name=\"";
+ }
+ s += layer.Name;
+ s += "\">\n";
+ fputs(s.utf8(), fp);
+ for (uint i = 0; i < draws.count() - layer.disp_offset(); ++i) {
+ FNPolygon p(*draws.at(i));
+ p.translate(_origin.x(), _origin.y());
+ if (p.type() == FN_BEZIER) {
+ sprintf(buf, "\t<bz color=\"%x\" width=\"%d\" f=\"%d\">\n", (uint)p.pen().color().rgb(), p.pen().width(), p.fill());
+ } else if (p.type() == FN_ELLIPSE) {
+ sprintf(buf, "\t<el color=\"%x\" width=\"%d\" f=\"%d\">\n", (uint)p.pen().color().rgb(), p.pen().width(), p.fill());
+ } else if (p.type() == FN_TEXT) {
+ sprintf(buf, "\t<tx color=\"%x\" width=\"%d\">\n", (uint)p.pen().color().rgb(), p.pen().width());
+ } else {
+ sprintf(buf, "\t<po color=\"%x\" width=\"%d\" f=\"%d\">\n", (uint)p.pen().color().rgb(), p.pen().width(), p.fill());
+ }
+ fputs(buf, fp);
+ QPointArray& points = p.points();
+ for (uint j = 0; j < points.count(); ++j) {
+ QPoint point = points.point(j);
+ sprintf(buf, "\t\t<p x=\"%d\" y=\"%d\"/>\n", point.x(), point.y());
+ fputs(buf, fp);
+ }
+ if (p.type() == FN_BEZIER) {
+ fputs("\t</bz>\n", fp);
+ } else if (p.type() == FN_ELLIPSE) {
+ fputs("\t</el>\n", fp);
+ } else if (p.type() == FN_TEXT) {
+ FNText* tp = (FNText*)draws.at(i);
+ for (uint j = 0; j < tp->lines.count(); ++j) {
+ s = "\t\t<t v=\"";
+ s += tp->lines[j];
+ s += "\"/>\n";
+ fputs(s.utf8(), fp);
+ }
+ fputs("\t</tx>\n", fp);
+ } else {
+ fputs("\t</po>\n", fp);
+ }
+ }
+ fputs("</layer>\n", fp);
+ }
+ fputs("</freenote>\n", fp);
+ fclose(fp);
+ if (_isUseAllQuadrant) {
+ setOrigin(-o.x()+SNAP_SIZE, -o.y()+SNAP_SIZE);
+ }
+ FNMessageBox::information(0, "FreeNoteQt", "save complete.");
+ return true;
+}
+
+bool FNCanvas::load(const QFileInfo& info)
+{
+ if (0 == info.fileName().length()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file name is empty.");
+ return false;
+ }
+ if (!info.exists()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file not exists.");
+ return false;
+ }
+ FILE* fp = NULL;
+ if (!(fp = fopen(info.absFilePath().utf8(), "rt"))) {
+ QMessageBox::warning(0,"FreeNoteQt", "could not open file.");
+ return false;
+ }
+ clear();
+ open(_layers, fp);
+ if ((uint)_selIdx >= _layers.count()) {
+ _selIdx = 0;
+ }
+ _current = _layers.at(_selIdx);
+ fclose(fp);
+
+ redraw();
+ FNMessageBox::information(0,"FreeNoteQt", "load complete.");
+
+ return true;
+}
+
+bool FNCanvas::import(const QFileInfo& info)
+{
+ if (0 == info.fileName().length()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file name is empty.");
+ return false;
+ }
+ if (!info.exists()) {
+ QMessageBox::warning(0,"FreeNoteQt", "file not exists.");
+ return false;
+ }
+ FILE* fp = NULL;
+ if (!(fp = fopen(info.absFilePath().utf8(), "rt"))) {
+ QMessageBox::warning(0,"FreeNoteQt", "could not open file.");
+ return false;
+ }
+ clearList(_clipboard);
+ open(_clipboard, fp);
+ fclose(fp);
+ if (0 < _clipboard.count()) {
+ int x = _clipboard.at(0)->boundingRect().left();
+ int y = _clipboard.at(0)->boundingRect().top();
+ for (uint i = 1; i < _clipboard.count(); ++i) {
+ if (y > _clipboard.at(i)->boundingRect().top()) {
+ y = _clipboard.at(i)->boundingRect().top();
+ }
+ if (x > _clipboard.at(i)->boundingRect().left()) {
+ x = _clipboard.at(i)->boundingRect().left();
+ }
+ }
+ for (uint i = 0; i < _clipboard.count(); ++i) {
+ _clipboard.at(i)->translate(-x, -y);
+ }
+ }
+ FNMessageBox::information(0,"FreeNoteQt", "import complete.");
+
+ return true;
+}
+void FNCanvas::open(FNPolygonList& list, FILE* fp)
+{
+ clearList(list);
+ FNLayerList layers;
+ open(layers, fp);
+ for (uint i = 0; i < layers.count(); ++i) {
+ FNLayer& layer = *layers.at(i);
+ if (layer.IsShow) {
+ layer.draws.clone(list);
+ /*
+ FNPolygonList& elmlst = layer.draws;
+ for (uint j = 0; j < elmlst.count(); ++j) {
+ list.append(elmlst.at(j));
+ }
+ elmlst.clear();
+ */
+ }
+ }
+ layers.clear();
+}
+
+void FNCanvas::open(FNLayerList& layers, FILE* fp)
+{
+ QString line;
+ FNPointList points;
+ points.setAutoDelete(true);
+ int c;
+ int w;
+ QPen pen(Qt::black, 1);
+ FNPolygon* polygon;
+
+ char rdbuf[1024];
+ char buf[1024];
+ QString type = "";
+ QStringList lines;
+ layers.setAutoDelete(true);
+ layers.clear();
+ layers.setAutoDelete(false);
+ FNLayer* layer = new FNLayer();
+ layer->IsShow = true;
+ layer->Name = "Layer0";
+ //_current = layer;
+ layers.append(layer);
+ FNPolygonList* list = &layer->draws;
+ bool isFirstLayer = true;
+ bool fill = false;
+ while (!feof(fp)) {
+ fgets(rdbuf, sizeof(rdbuf), fp);
+ line = rdbuf;
+ if (-1 != line.find("<freenote")) {
+ if (-1 != line.find("pg=1")) {
+ _isTinyPaging = true;
+ } else {
+ _isTinyPaging = false;
+ }
+ int st = line.find("idx=") + 5;
+ int ed = line.find("\"", st);
+ strcpy(buf, line.mid(st, ed - st));
+ sscanf(buf, "%d", &_selIdx);
+ } else if (-1 != line.find("<layer ")) {
+ if (false == isFirstLayer) {
+ layer = new FNLayer();
+ list = &layer->draws;
+ layers.append(layer);
+ }
+ isFirstLayer = false;
+
+ if (-1 != line.find("v=0")) {
+ layer->IsShow = false;
+ } else if (-1 != line.find("v=1")) {
+ layer->IsShow = true;
+ }
+ int st = line.find("name=") + 6;
+ int ed = line.find("\"", st);
+ strcpy(buf, line.mid(st, ed - st));
+ QTextCodec *codec = QTextCodec::codecForName("utf8");
+ layer->Name = codec->toUnicode(buf);
+ } else if (-1 != line.find("<fnpolygon ") ||
+ -1 != line.find("<po ") ||
+ -1 != line.find("<bz ") ||
+ -1 != line.find("<el ") ||
+ -1 != line.find("<tx ")
+ ) {
+ if (-1 != line.find("<el ")) {
+ type = "Ellipse";
+ } else if (-1 != line.find("<bz ")) {
+ type = "Bezier";
+ } else if (-1 != line.find("<tx ")) {
+ type = "Text";
+ lines.clear();
+ } else {
+ type = "Polygon";
+ }
+ fill = false;
+ points.clear();
+ int st = line.find("color") + 7;
+ int ed = line.find("\"", st);
+ strcpy(buf, line.mid(st, ed - st));
+ sscanf(buf, "%x", &c);
+
+ st = line.find("width") + 7;
+ ed = line.find("\"", st);
+ strcpy(buf, line.mid(st, ed - st));
+ sscanf(buf, "%d", &w);
+
+ if (-1 != line.find(" f=\"1\"")) {
+ fill = true;
+ }
+ } else if (-1 != line.find("<point ") ||
+ -1 != line.find("<p ")
+ ) {
+ int st = line.find("x=") + 3;
+ int ed = line.find("\"", st);
+ strcpy(buf, line.mid(st, ed - st));
+ int x;
+ sscanf(buf, "%d", &x);
+
+ st = line.find("y=") + 3;
+ ed = line.find("\"", st);
+ strcpy(buf, line.mid(st, ed - st));
+ int y;
+ sscanf(buf, "%d", &y);
+ points.append(createPts(x, y)); //ƒoƒO‘Îô
+ } else if (-1 != line.find("<t ")) {
+ int st = line.find("v=") + 3;
+ int ed = line.findRev("\"");
+ strcpy(buf, line.mid(st, ed - st));
+ QTextCodec *codec = QTextCodec::codecForName("utf8");
+ lines.append(codec->toUnicode(buf));
+ } else if (-1 != line.find("</fnpolygon") ||
+ -1 != line.find("</bz") ||
+ -1 != line.find("</el") ||
+ -1 != line.find("</po") ||
+ -1 != line.find("</tx")) {
+ pen.setColor((QRgb)c);
+ pen.setWidth(w);
+ if (type == "Bezier") {
+ list->append(polygon = createBezier(pen)); //ƒoƒO‘Îô
+ } else if (type == "Ellipse") {
+ list->append(polygon = createEllipse(pen)); //ƒoƒO‘Îô
+ } else if (type == "Text") {
+ list->append(polygon = createText(pen, lines));
+ } else {
+ list->append(polygon = createPolygon(pen)); //ƒoƒO‘Îô
+ }
+ polygon->setFill(fill);
+ polygon->setPoints(points);
+ points.clear();
+ }
+ }
+}
+
+FNPolygon* FNCanvas::createPolygon(QPen& pen)
+{
+ return new FNPolygon(pen);
+}
+
+FNPolygon* FNCanvas::createBezier(QPen& pen)
+{
+ return new FNBezier(pen);
+}
+
+
+FNPolygon* FNCanvas::createEllipse(QPen& pen)
+{
+ return new FNEllipse(pen);
+}
+
+FNPolygon* FNCanvas::createText(QPen& pen, QStringList& lines)
+{
+ FNText* p = new FNText(pen);
+ p->lines = lines;
+ return p;
+}
+
+QPoint* FNCanvas::createPts(int x, int y)
+{
+ return new QPoint(x, y);
+}
+
+void FNCanvas::setGuide(bool f)
+{
+ _isShowGuide = f;
+ redraw();
+}
+
+void FNCanvas::fillChanged(bool f) {
+ _fill = f;
+ if (_isSelected) {
+ for (uint i = 0; i < _selected.count(); ++i) {
+ _selected.at(i)->setFill(f);
+ }
+ }
+}
diff --git a/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNFindDialog.cpp b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNFindDialog.cpp
new file mode 100644
index 0000000..9d0998a
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNFindDialog.cpp
@@ -0,0 +1,143 @@
+/* FreeNote for Sharp SLA300, B500, C7x0, C860 Linux PDA
+ Copyright (C) 2003-2005 Joe Kanemori.<kanemori@ymg.urban.ne.jp>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+/*
+2005/02/27 FreeNote 1.11.10pre
+EPDF‚Ìo—ÍŒ`Ž®‚ðˆê•”•ÏX
+EƒCƒ“ƒ|[ƒgŽž‚̃oƒOfix
+
+2005/01/04 FreeNote 1.11.6pre
+EƒJ[ƒuƒ‚[ƒh‚Å‚W‚ÌŽš‚ª‚©‚¯‚é‚悤‚É®Œ`ƒGƒ“ƒWƒ“‚ð‰ü‘P
+
+2004/10/17 FreeNote 1.10.0ƒŠƒŠ[ƒX
+2004/02/14 ver 1.7.2pre
+EŒŸõ‹@”\‚̒ljÁ
+*/
+#include "fnfinddialog.h"
+#include "fmtengine.h"
+#include <qlineedit.h>
+#include <stdio.h>
+#include <qregexp.h>
+#include <qcheckbox.h>
+
+FNFindDialog::FNFindDialog( QWidget* parent, const char* name)
+ :FNFindDialogBase(parent, name, true, 0), _idx(0)
+{
+}
+
+void FNFindDialog::setElements(FNLayerList& v)
+{
+ _texts.clear();
+ for (uint i = 0; i < v.count(); ++i) {
+ FNLayer& layer = *v.at(i);
+ if (layer.IsShow) {
+ FNPolygonList& draws = layer.draws;
+ for (uint j = 0; j < draws.count(); ++j) {
+ FNPolygon* p = draws.at(j);
+ if (FN_TEXT == p->type()) {
+ _texts.append(p);
+ }
+ }
+ }
+ }
+ _idx = -1;
+}
+
+void FNFindDialog::findPrev()
+{
+ QString sch = txtSearch->text();
+ QRegExp rex(sch);
+ if (0 == sch.length()) {
+ return;
+ }
+ if (0 > _idx) {
+ _idx = _texts.count() - 1;
+ }
+ if ((uint)_idx >= _texts.count()) {
+ _idx = _texts.count() - 1;
+ }
+ for (; _idx >= 0; --_idx) {
+ FNText* p = (FNText*)_texts.at(_idx);
+ for (uint i = 0; i < p->lines.count(); ++i) {
+ if (ckbIsRegExp->isChecked()) {
+ for (uint i = 0; i < p->lines.count(); ++i) {
+ if (-1 != p->lines[i].find(rex)) {
+ emit resetOrigin();
+ QPoint sp = p->points().point(0);
+ emit originChanged(sp.x() - SNAP_SIZE, sp.y() - SNAP_SIZE);
+ --_idx;
+ return;
+ }
+ }
+ } else {
+ for (uint i = 0; i < p->lines.count(); ++i) {
+ if (-1 != p->lines[i].find(sch)) {
+ emit resetOrigin();
+ QPoint sp = p->points().point(0);
+ emit originChanged(sp.x() - SNAP_SIZE, sp.y() - SNAP_SIZE);
+ --_idx;
+ return;
+ }
+ }
+ }
+ }
+ }
+}
+
+void FNFindDialog::findNext()
+{
+ QString sch = txtSearch->text();
+ QRegExp rex(sch);
+ if (0 == sch.length()) {
+ return;
+ }
+ if (0 > _idx) {
+ _idx = 0;
+ }
+ if ((uint)_idx >= _texts.count()) {
+ _idx = 0;
+ }
+ for (; (uint)_idx < _texts.count(); ++_idx) {
+ FNText* p = (FNText*)_texts.at(_idx);
+ if (ckbIsRegExp->isChecked()) {
+ for (uint i = 0; i < p->lines.count(); ++i) {
+ if (-1 != p->lines[i].find(rex)) {
+ emit resetOrigin();
+ QPoint sp = p->points().point(0);
+ emit originChanged(sp.x() - SNAP_SIZE, sp.y() - SNAP_SIZE);
+ ++_idx;
+ return;
+ }
+ }
+ } else {
+ for (uint i = 0; i < p->lines.count(); ++i) {
+ if (-1 != p->lines[i].find(sch)) {
+ emit resetOrigin();
+ QPoint sp = p->points().point(0);
+ emit originChanged(sp.x() - SNAP_SIZE, sp.y() - SNAP_SIZE);
+ ++_idx;
+ return;
+ }
+ }
+ }
+ }
+}
+
+
+FNFindDialog::~FNFindDialog()
+{
+}
diff --git a/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNMessageBox.cpp b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNMessageBox.cpp
new file mode 100644
index 0000000..1518651
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNMessageBox.cpp
@@ -0,0 +1,243 @@
+/* FreeNote for Sharp SLA300, B500, C7x0, C860 Linux PDA
+ Copyright (C) 2003-2005 Joe Kanemori.<kanemori@ymg.urban.ne.jp>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+/*
+2005/02/27 FreeNote 1.11.10pre
+EPDF‚Ìo—ÍŒ`Ž®‚ðˆê•”•ÏX
+EƒCƒ“ƒ|[ƒgŽž‚̃oƒOfix
+
+2004/10/17 FreeNote 1.10.0ƒŠƒŠ[ƒX
+2003/08/15 FreeNote 1.2.1‚ðŒöŠJ
+E•Û‘¶Žž‚̃oƒOC³
+EŠ®—¹ƒ_ƒCƒAƒƒO‚ÌŽ©“®Á‹Ž
+EPNGƒtƒ@ƒCƒ‹‚Ö‚Ìo—Í
+*/
+#include "fnmessagebox.h"
+int ___fnmessagebox_timing = 1500;
+
+FNMessageBox::FNMessageBox(QWidget *parent, const char* name) : QMessageBox(parent, name)
+{
+ _timer = new QTimer(this);
+ connect(_timer, SIGNAL(timeout()), this, SLOT(timeout()));
+}
+
+FNMessageBox::FNMessageBox(const QString& caption, const QString& text, Icon icon, int button0, int button1, int button2, QWidget* parent, const char* name, bool modal, WFlags f) : QMessageBox(caption, text, icon, button0, button1, button2, parent, name, modal, f)
+{
+ _timer = new QTimer(this);
+ connect(_timer, SIGNAL(timeout()), this, SLOT(timeout()));
+}
+
+FNMessageBox::~FNMessageBox()
+{
+ delete _timer;
+}
+
+int FNMessageBox::information(QWidget* parent, const QString& caption, const QString& text, int button0, int button1, int button2)
+{
+ FNMessageBox dlg(caption, text, QMessageBox::Information, button0, button1, button2, parent);
+ dlg.show();
+ return dlg.exec();
+}
+
+int FNMessageBox::information(QWidget* parent, const QString& caption, const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, int defaultButtonNumber, int escapeButtonNumber)
+{
+ int button0 = 0;
+ int button1 = 0;
+ int button2 = 0;
+ if (QString::null == button0Text) {
+ int id = Ok;
+ if (0 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (0 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button0 = id;
+ }
+ if (QString::null != button1Text) {
+ int id = Cancel;
+ if (1 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (1 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button1 = id;
+ }
+ if (QString::null != button2Text) {
+ int id = Abort;
+ if (2 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (2 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button2 = id;
+ }
+ FNMessageBox dlg(caption, text, QMessageBox::Information, button0, button1, button2, parent);
+ if (0 != button0) {
+ dlg.setButtonText(button0, button0Text);
+ }
+ if (0 != button1) {
+ dlg.setButtonText(button1, button1Text);
+ }
+ if (0 != button2) {
+ dlg.setButtonText(button2, button2Text);
+ }
+ dlg.show();
+ return dlg.exec();
+}
+
+int FNMessageBox::warning(QWidget* parent, const QString& caption, const QString& text, int button0, int button1, int button2)
+{
+ FNMessageBox dlg(caption, text, QMessageBox::Warning, button0, button1, button2, parent);
+ dlg.show();
+ return dlg.exec();
+}
+
+int FNMessageBox::warning(QWidget* parent, const QString& caption, const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, int defaultButtonNumber, int escapeButtonNumber)
+{
+ int button0 = 0;
+ int button1 = 0;
+ int button2 = 0;
+ if (QString::null == button0Text) {
+ int id = Ok;
+ if (0 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (0 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button0 = id;
+ }
+ if (QString::null != button1Text) {
+ int id = Cancel;
+ if (1 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (1 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button1 = id;
+ }
+ if (QString::null != button2Text) {
+ int id = Abort;
+ if (2 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (2 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button2 = id;
+ }
+ FNMessageBox dlg(caption, text, QMessageBox::Warning, button0, button1, button2, parent);
+ if (0 != button0) {
+ dlg.setButtonText(button0, button0Text);
+ }
+ if (0 != button1) {
+ dlg.setButtonText(button1, button1Text);
+ }
+ if (0 != button2) {
+ dlg.setButtonText(button2, button2Text);
+ }
+ dlg.show();
+ return dlg.exec();
+}
+
+int FNMessageBox::critical(QWidget* parent, const QString& caption, const QString& text, int button0, int button1, int button2)
+{
+ FNMessageBox dlg(caption, text, QMessageBox::Critical, button0, button1, button2, parent);
+ dlg.show();
+ return dlg.exec();
+}
+
+int FNMessageBox::critical(QWidget* parent, const QString& caption, const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, int defaultButtonNumber, int escapeButtonNumber)
+{
+ int button0 = 0;
+ int button1 = 0;
+ int button2 = 0;
+ if (QString::null == button0Text) {
+ int id = Ok;
+ if (0 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (0 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button0 = id;
+ }
+ if (QString::null != button1Text) {
+ int id = Cancel;
+ if (1 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (1 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button1 = id;
+ }
+ if (QString::null != button2Text) {
+ int id = Abort;
+ if (2 == defaultButtonNumber) {
+ id += Default;
+ }
+ if (2 == escapeButtonNumber) {
+ id += Escape;
+ }
+ button2 = id;
+ }
+ FNMessageBox dlg(caption, text, QMessageBox::Critical, button0, button1, button2, parent);
+ if (0 != button0) {
+ dlg.setButtonText(button0, button0Text);
+ }
+ if (0 != button1) {
+ dlg.setButtonText(button1, button1Text);
+ }
+ if (0 != button2) {
+ dlg.setButtonText(button2, button2Text);
+ }
+ dlg.show();
+ return dlg.exec();
+}
+
+void FNMessageBox::about(QWidget* parent, const QString& caption, const QString& text)
+{
+ FNMessageBox dlg(caption, text, QMessageBox::NoIcon, 0, 0, 0, parent);
+ dlg.show();
+ dlg.exec();
+}
+
+void FNMessageBox::about(QWidget* parent, const QString& caption)
+{
+ FNMessageBox dlg(caption, QString::null, QMessageBox::NoIcon, 0, 0, 0, parent);
+ dlg.show();
+ dlg.exec();
+}
+
+void FNMessageBox::setTiming(const int v)
+{
+ ___fnmessagebox_timing = v;
+}
+
+void FNMessageBox::timeout() {
+ accept();
+}
+
+void FNMessageBox::showEvent(QShowEvent* ext)
+{
+ _timer->start(___fnmessagebox_timing, true);
+}
diff --git a/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNTextDialog.cpp b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNTextDialog.cpp
new file mode 100644
index 0000000..b4eea54
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FNTextDialog.cpp
@@ -0,0 +1,93 @@
+/* FreeNote for Sharp SLA300, B500, C7x0, C860 Linux PDA
+ Copyright (C) 2003-2005 Joe Kanemori.<kanemori@ymg.urban.ne.jp>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+/*
+2005/02/27 FreeNote 1.11.10pre
+EPDF‚Ìo—ÍŒ`Ž®‚ðˆê•”•ÏX
+EƒCƒ“ƒ|[ƒgŽž‚̃oƒOfix
+
+2005/01/04 FreeNote 1.11.6pre
+EƒJ[ƒuƒ‚[ƒh‚Å‚W‚ÌŽš‚ª‚©‚¯‚é‚悤‚É®Œ`ƒGƒ“ƒWƒ“‚ð‰ü‘P
+
+2004/10/17 FreeNote 1.10.0ƒŠƒŠ[ƒX
+2004/02/12 ver 1.7.1pre
+EƒtƒHƒ“ƒgŽd—l‚Ì•ÏX
+EƒeƒLƒXƒgˆ—‚Ì‚‘¬‰»
+EƒeƒLƒXƒgƒ{ƒbƒNƒX‚Ì‘½‹@”\‰»
+*/
+#include "fntextdialog.h"
+#include <stdio.h>
+#include <qcombobox.h>
+#include <qfontdatabase.h>
+#include <qcolor.h>
+#include <qtoolbutton.h>
+#include <qpalette.h>
+#include <qmultilineedit.h>
+#include "fncolordialog.h"
+
+FNTextDialog::FNTextDialog(const QString& fontname, FNColorDialog* dlg, QWidget* parent, const char* name )
+ :FNTextDialogBase(parent, name, true, 0), _pen(1), _colorSelector(dlg)
+{
+ static QFontDatabase fbase;
+ QValueList<int> sizes = fbase.pointSizes(fontname);
+ char buf[10];
+ for (uint i = 0; i < sizes.count(); ++i) {
+ sprintf(buf, "%d", sizes[i]);
+ cboFontSize->insertItem(buf);
+ }
+ lines->setFont(QFont(fontname, 20));
+}
+
+
+FNTextDialog::~FNTextDialog()
+{
+}
+
+void FNTextDialog::changeColor(QRgb c)
+{
+ fraColor->setBackgroundColor(QColor(c));
+ _pen.setColor(QColor(c));
+}
+
+void FNTextDialog::choose(int v)
+{
+ _pen.setWidth(v);
+}
+
+void FNTextDialog::btnColor_Clicked()
+{
+ _colorSelector->setColor(_pen.color());
+ _colorSelector->show();
+ if (_colorSelector->exec()) {
+ changeColor(_colorSelector->color().rgb());
+ }
+}
+
+void FNTextDialog::setPen(const QPen& pen)
+{
+ _pen = pen;
+ if (cboFontSize->count() <= (int)pen.width()) {
+ _pen.setWidth(cboFontSize->count()-1);
+ }
+ cboFontSize->setCurrentItem(_pen.width());
+ fraColor->setBackgroundColor(_pen.color());
+}
+
+const QPen& FNTextDialog::pen() const
+{
+ return _pen;
+}
diff --git a/recipes-qtopia/freenote/files/FreeNote/FreeNote/FmtEngine.cpp b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FmtEngine.cpp
new file mode 100644
index 0000000..dae8a81
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FmtEngine.cpp
@@ -0,0 +1,512 @@
+/* FreeNote for Sharp SLA300, B500, C7x0, C860 Linux PDA
+ Copyright (C) 2003-2005 Joe Kanemori.<kanemori@ymg.urban.ne.jp>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+/*
+2005/02/27 FreeNote 1.11.10pre
+EPDF‚Ìo—ÍŒ`Ž®‚ðˆê•”•ÏX
+EƒCƒ“ƒ|[ƒgŽž‚̃oƒOfix
+
+2005/01/04 FreeNote 1.11.6pre
+EƒJ[ƒuƒ‚[ƒh‚Å‚W‚ÌŽš‚ª‚©‚¯‚é‚悤‚É®Œ`ƒGƒ“ƒWƒ“‚ð‰ü‘P
+
+2005/01/09 FNViewer ƒWƒFƒXƒ`ƒƒ[—pƒƒWƒbƒN’ljÁ
+2004/10/17 FreeNote 1.10.0ƒŠƒŠ[ƒX
+2003/12/16-19 FreeNote ver 1.5.5pre
+E‹Èü•`‰æƒƒWƒbƒN‚̉ü—Ç
+
+2003/12/14 FreeNote 1.5.4pre
+E‹Èü•`‰æƒƒWƒbƒN‚̉ü—Ç
+
+2003/11/30-2003/12/04 FreeNote 1.5.3pre
+EƒxƒWƒFŠÖ”‚̃Xƒyƒ‹ƒ~ƒX‚ðC³
+
+2003/11/16 FreeNote 1.5.2pre
+E‰~•`‰æ‚̃ƒWƒbƒN‚ð’ljÁ
+
+2003/11/13 FreeNote 1.5.1pre
+EƒXƒ€[ƒWƒ“ƒO’ljÁ
+2003/11/10-12
+E‹Èü®Œ`ƒ‚[ƒh’ljÁ
+2003/11/09 ’ljÁ
+*/
+#include "fmtengine.h"
+#include <qpointarray.h>
+#include <qpe/qmath.h>
+#include <math.h>
+#include <qrect.h>
+#include <stdlib.h>
+
+int SNAP_SIZE = 32;
+int PHASE1_ANGLE = 30;
+int PHASE2_ANGLE = 30;
+double Surface(const QPoint& p1, const QPoint& p2)
+{
+ return 0.5 * abs(p1.x() * p2.y() - p1.y() * p2.x());
+}
+
+bool IsLinear(const QPoint& p1, const QPoint& p2, const QPoint& p3)
+{
+ double s1 = Surface(p1, p2);
+ double s2 = Surface(p2, p3);
+ double s3 = Surface(p1, p3);
+ if (s1 + s2 == s3) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+const double Angle(const QPoint& p1, const QPoint& p2)
+{
+ return qATan2((double)(p2.y() - p1.y()), (double)(p2.x() - p1.x()));
+}
+
+const double DiffAngle(double a1, double a2)
+{
+ if (0.0 > a1) {
+ a1 = 2 * M_PI + a1;
+ }
+ if (0.0 > a2) {
+ a2 = 2 * M_PI + a2;
+ }
+ return fabs(a1 - a2);
+}
+
+const double DiffAngle2(double a1, double a2)
+{
+ if (0.0 > a1) {
+ a1 = 360 + a1;
+ }
+ if (0.0 > a2) {
+ a2 = 360 + a2;
+ }
+ return fabs(a1 - a2);
+}
+
+const double DiffAngle(const QPoint& p1, const QPoint& p2, const QPoint& p3)
+{
+ return DiffAngle(Angle(p1, p2), Angle(p2, p3));
+}
+
+const double ToDegree(double t)
+{
+ return t * 180 / M_PI;
+}
+
+const double ToRadian(double d)
+{
+ return d * M_PI / 180;
+}
+
+const double Distance(const QPoint& p1, const QPoint& p2)
+{
+ return hypot(p1.x() - p2.x(), p1.y() - p2.y());
+}
+
+const QPoint SnapPoint(const QPoint& p, int snap)
+{
+ int x = ((int)(p.x() + snap / 2) / snap) * snap;
+ int y = ((int)(p.y() + snap / 2) / snap) * snap;
+ return QPoint(x, y);
+}
+const QPoint SnapPoint(const QPoint& p)
+{
+ return SnapPoint(p, SNAP_SIZE);
+}
+/*
+const QPoint SnapPoint(const QPoint& p)
+{
+ int x = ((int)(p.x() + SNAP_SIZE / 2) / SNAP_SIZE) * SNAP_SIZE;
+ int y = ((int)(p.y() + SNAP_SIZE / 2) / SNAP_SIZE) * SNAP_SIZE;
+ return QPoint(x, y);
+}
+*/
+
+const QPoint ArrangePoint(const QPoint& p1, const QPoint& p2)
+{
+ int x = p2.x();
+ int y = p2.y();
+ if (p1.x() - SNAP_SIZE / 2 <= x && p1.x() + SNAP_SIZE / 2 >= x) {
+ x = p1.x();
+ }
+ if (p1.y() - SNAP_SIZE / 2 <= y && p1.y() + SNAP_SIZE / 2 >= y) {
+ y = p1.y();
+ }
+ return QPoint(x, y);
+}
+
+FNPointList ReducePoints(FNPointList& p)
+{
+ if (2 >= p.count()) {
+ return p;
+ }
+ FNPointList rt;
+ rt.append(p.first());
+ QPoint* p1 = p.first();
+ QPoint* p2 = p.at(1);
+ QPoint* p3 = NULL;
+ for (uint i = 2; i < p.count(); ++i) {
+ p3 = p.at(i);
+ if (false == IsLinear(*p1, *p2, *p3)) {
+ rt.append(p2);
+ p1 = p2;
+ }
+ p2 = p3;
+ }
+ rt.append(p3);
+ return rt;
+}
+
+FNPointList ExtractAngle2(FNPointList& p, const int deg)
+{
+ FNPointList rt;
+ rt.append(p.first());
+ QPoint* st = p.first();
+ QPoint* mp = p.at(1);
+ QPoint* ed = p.last();
+ for (uint i = 2; i < p.count(); ++i) {
+ ed = p.at(i);
+ if (ToRadian(deg) <= DiffAngle(*st, *mp, *ed)) {
+ st = mp;
+ rt.append(mp);
+ }
+ mp = ed;
+ }
+ rt.append(ed);
+ return rt;
+}
+
+FNPointList ExtractAngle(FNPointList& p, const int deg)
+{
+ FNPointList rt;
+ rt.append(p.first());
+ QPoint* st = p.first();
+ QPoint* mp = p.at(1);
+ QPoint* ed = p.last();
+ for (uint i = 2; i < p.count(); ++i) {
+ ed = p.at(i);
+ if (ToRadian(deg) <= DiffAngle(*st, *mp, *ed)) {
+ st = mp;
+ rt.append(mp);
+ }
+ mp = ed;
+ }
+ if (SNAP_SIZE / 2 > Distance(*p.first(), *p.last()) && 3 < p.count()) {
+ rt.append(p.first());
+ } else {
+ rt.append(ed);
+ }
+ return rt;
+}
+
+FNPointList SumupPoints(FNPointList& p)
+{
+ if (3 >= p.count()) {
+ return p;
+ }
+ FNPointList rt;
+ rt.append(p.first());
+ QPoint* p1 = p.first();
+ QPoint* p2 = NULL;
+ double pred = 0;
+ for (uint i = 1; i < p.count() - 1; ++i) {
+ p2 = p.at(i);
+ double d = Distance(*p1, *p2);
+ if (SNAP_SIZE / 2 < d || pred > d) {
+ rt.append(p2);
+ p1 = p2;
+ d = 0;
+ }
+ pred = d;
+ }
+ rt.append(p.last());
+ return rt;
+}
+
+FNPointList SnapPoints(FNPointList& p)
+{
+ FNPointList rt;
+ for (uint i = 0; i < p.count(); ++i) {
+ QPoint tp = SnapPoint(*p.at(i));
+ p.at(i)->setX(tp.x());
+ p.at(i)->setY(tp.y());
+ rt.append(p.at(i));
+ }
+ return rt;
+}
+
+FNPointList ArrangePoints(FNPointList& p)
+{
+ if (3 >= p.count() && 2 != p.count()) {
+ return p;
+ }
+ FNPointList rt;
+ rt.append(p.first());
+ QPoint* p1 = p.first();
+ QPoint* p2 = NULL;
+ for (uint i = 1; i < p.count(); ++i) {
+ p2 = p.at(i);
+ QPoint tp = ArrangePoint(*p1, *p2);
+ p2->setX(tp.x());
+ p2->setY(tp.y());
+ rt.append(p2);
+ p1 = p2;
+ }
+ if (*p.first() == *p.last()) {
+ QPoint tp = ArrangePoint(*p1, *p.first());
+ rt.first()->setX(tp.x());
+ rt.first()->setY(tp.y());
+ }
+ return rt;
+}
+
+FNPointList TuningPoints(FNPointList& p)
+{
+ FNPointList rt;
+ if (3 >= p.count()) {
+ for (uint i = 0; i < p.count(); ++i) {
+ rt.append(new QPoint(*p.at(i)));
+ }
+ return rt;
+ }
+ rt.append(new QPoint(*p.at(0)));
+ for (uint i = 1; i < p.count() - 1; ++i) {
+ QPoint* p1 = p.at(i);
+ QPoint* p2 = p.at(i + 1);
+ rt.append(new QPoint(*p1));
+ if (i < p.count() - 2) {
+ rt.append(new QPoint((p1->x() + p2->x())/2, (p1->y() + p2->y())/2));
+ }
+ }
+ rt.append(new QPoint(*p.at(p.count()-1)));
+ return rt;
+}
+
+FNPointList ToBezier(FNPointList& p) {
+ FNPointList rt;
+ rt.append(new QPoint(*p.at(0)));
+ for (uint i = 0; i < p.count() - 2; i += 2) {
+ int x1 = p.at(i)->x();
+ int xa = p.at(i + 1)->x();
+ int x4 = p.at(i + 2)->x();
+
+ int x2 = (x1 + xa) / 2;
+ int x3 = (xa + x4) / 2;
+
+ int y1 = p.at(i)->y();
+ int ya = p.at(i + 1)->y();
+ int y4 = p.at(i + 2)->y();
+
+ int y2 = (y1 + ya) / 2;
+ int y3 = (ya + y4) / 2;
+
+ rt.append(new QPoint(x2 ,y2));
+ rt.append(new QPoint(x3 ,y3));
+ rt.append(new QPoint(x4 ,y4));
+ }
+ return rt;
+}
+
+FNPointList ToCurves(FNPointList& p) {
+ if (3 <= p.count()) {
+ //ƒxƒWƒF‚É‚æ‚é•âŠ®
+ return ToBezier(p);
+ } else {
+ FNPointList rt;
+ for (uint i = 0; i < p.count(); ++i) {
+ rt.append(new QPoint(*p.at(i)));
+ }
+ return rt;
+ }
+}
+
+FNPointList AutoFormat(FNPointList& p)
+{
+ FNPointList tp = ExtractAngle(p, PHASE1_ANGLE);
+ uint n;
+ do {
+ n = tp.count();
+ tp = SumupPoints(tp);
+ tp = ExtractAngle(tp, PHASE1_ANGLE);
+ tp = ArrangePoints(tp);
+ } while (n > tp.count());
+ tp = SnapPoints(tp);
+ tp = ReducePoints(tp);
+ FNPointList rt;
+ if (2 == tp.count()) {
+ if (*tp.first() == *tp.last()) {
+ return rt;
+ }
+ }
+ for (uint i = 0; i < tp.count(); ++i) {
+ rt.append(new QPoint(*tp.at(i)));
+ }
+ return rt;
+}
+
+FNPointList ToEllipse(int x, int y, int w, int h) {
+ FNPointList rt;
+ QPointArray pa;
+ pa.makeEllipse(x, y, w, h);
+ for (uint i = 0; i < pa.count(); ++i) {
+ rt.append(new QPoint(pa.point(i)));
+ }
+ return rt;
+}
+
+FNPointList AutoCurve(FNPointList& p)
+{
+ FNPointList tp2;
+ tp2.setAutoDelete(true);
+ FNPointList tp4;
+ tp4.setAutoDelete(true);
+ /*
+ QPoint sp = SnapPoint(*p.at(0));
+ QPoint ep = SnapPoint(*p.at(p.count()-1));
+ if (sp == ep) {
+ //‘ȉ~
+ int sx = p.at(0)->x();
+ int sy = p.at(0)->y();
+ int ex = sx;
+ int ey = sy;
+ for (uint i = 1; i < p.count(); ++i) {
+ QPoint tp = *p.at(i);
+ if (sx > tp.x()) {
+ sx = tp.x();
+ } else if (ex < tp.x()) {
+ ex = tp.x();
+ }
+ if (sy > tp.y()) {
+ sy = tp.y();
+ } else if (ey < tp.y()) {
+ ey = tp.y();
+ }
+ }
+ sp = SnapPoint(QPoint(sx, sy));
+ ep = SnapPoint(QPoint(ex, ey));
+ tp2.append(new QPoint(sp.x(), sp.y()));
+ tp2.append(new QPoint(ep.x(), ep.y()));
+ } else {
+ */
+ FNPointList tp = ExtractAngle2(p, PHASE2_ANGLE);
+ uint n;
+ do {
+ n = tp.count();
+ tp = SumupPoints(tp);
+ tp = ExtractAngle2(tp, PHASE2_ANGLE);
+ tp = SnapPoints(tp);
+ } while (n > tp.count());
+ tp = SumupPoints(tp);
+ tp = ReducePoints(tp);
+ tp4 = TuningPoints(tp);
+ tp2 = ToCurves(tp4);
+ //}
+ FNPointList rt;
+ if (2 == tp2.count()) {
+ if (*tp2.first() == *tp2.last()) {
+ return rt;
+ }
+ }
+ for (uint i = 0; i < tp2.count(); ++i) {
+ rt.append(new QPoint(*tp2.at(i)));
+ }
+ return rt;
+}
+
+FNPointList Smoothing(FNPointList& p)
+{
+ int tsnap = SNAP_SIZE;
+ SNAP_SIZE=8;
+ FNPointList tp = ExtractAngle2(p, PHASE2_ANGLE);
+ tp = SumupPoints(tp);
+ tp = ReducePoints(tp);
+ FNPointList tp4 = TuningPoints(tp);
+ tp4.setAutoDelete(true);
+ FNPointList tp2 = ToCurves(tp4);
+ tp2.setAutoDelete(true);
+ FNPointList rt;
+ for (uint i = 0; i < tp2.count(); ++i) {
+ rt.append(new QPoint(*tp2.at(i)));
+ }
+ SNAP_SIZE = tsnap;
+ return rt;
+}
+
+FNPointList Reduce(FNPointList& p)
+{
+ FNPointList tp = ReducePoints(p);
+ FNPointList rt;
+ for (uint i = 0; i < tp.count(); ++i) {
+ rt.append(new QPoint(*tp.at(i)));
+ }
+ return rt;
+}
+
+QRect GetBounds(FNPointList& v)
+{
+ if (1 > v.count()) {
+ return QRect(0, 0, 1, 1);
+ }
+ QPoint sp = *v.at(0);
+ QPoint ep = sp;
+ for (uint i = 1; i < v.count(); ++i) {
+ QPoint& p = *v.at(i);
+ if (sp.x() > p.x()) {
+ sp.setX(p.x());
+ }
+ if (sp.y() > p.y()) {
+ sp.setY(p.y());
+ }
+ if (ep.x() < p.x()) {
+ ep.setX(p.x());
+ }
+ if (ep.y() < p.y()) {
+ ep.setY(p.y());
+ }
+ }
+ return QRect(sp, ep);
+}
+
+FNPointList Translate(FNPointList& v, int x, int y, double xs, double ys)
+{
+ FNPointList rt;
+ for (uint i = 0; i < v.count(); ++i) {
+ QPoint& p = *v.at(i);
+ int X = (int)((p.x() - x) * xs);
+ int Y = (int)((p.y() - y) * ys);
+ rt.append(new QPoint(X, Y));
+ }
+ return rt;
+}
+
+double ToStrokeDeg(double v)
+{
+ double d = ((int)(v * 10 / 225)) * 22.5;
+ return d;
+}
+
+int sign(int v)
+{
+ if (0 > v) {
+ return -1;
+ } else if (0 < v) {
+ return 1;
+ } else {
+ return 0;
+ }
+};
+
diff --git a/recipes-qtopia/freenote/files/FreeNote/FreeNote/FrmMain.cpp b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FrmMain.cpp
new file mode 100644
index 0000000..1cb4407
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/FreeNote/FrmMain.cpp
@@ -0,0 +1,1442 @@
+/* FreeNote for Sharp SLA300, B500, C7x0, C860 Linux PDA
+ Copyright (C) 2003-2005 Joe Kanemori.<kanemori@ymg.urban.ne.jp>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundatibannwaon; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+/*
+2005/07/12 FreeNote 1.12.0
+EFixƒŠƒŠ[ƒX
+
+2005/06/04 FreeNote 1.11.12pre
+EƒOƒŠƒbƒh‚̘gü‚ðŽÀÛ‚Ì‘I‘ð”͈͂æ‚è‚à‘å‚«‚­•\Ž¦‚·‚é‚悤‚É•ÏXB
+E”͈͑I‘ðAƒOƒŠƒbƒhAƒKƒCƒhAŒrüƒJƒ‰[‚̃JƒXƒ^ƒ}ƒCƒY‚ð‰Â”\‚ÉB
+EƒJƒ‰[ƒsƒbƒJ[ƒ‚[ƒh‚̒ljÁ
+
+2005/06/02 FreeNote 1.11.11Apre
+EƒeƒLƒXƒgˆÚ“®˜g‚Ì•s‹ï‡C³
+EŒrü‚ðƒOƒŠƒbƒh‚Ì‚Q”{‚Å•\Ž¦‚·‚é‚悤‚É•ÏX
+EÁ‚µƒSƒ€Žž‚͈͎̔w’莞‚ÉAƒyƒ“ƒIƒt‚µ‚ăƒ“ƒeƒ“ƒ|‚¨‚¢‚Ä‚©‚ç”͈͊m’è‚·‚é‚悤‚É•ÏX
+
+2005/03/18 FreeNote 1.11.10Bpre
+E•`‰æ‚ÌÅ“K‰»
+
+2005/02/27 FreeNote 1.11.10pre
+EPDF‚Ìo—ÍŒ`Ž®‚ðˆê•”•ÏX
+EƒCƒ“ƒ|[ƒgŽž‚̃oƒOfix
+
+2005/01/04 FreeNote 1.11.6pre
+EƒJ[ƒuƒ‚[ƒh‚Å‚W‚ÌŽš‚ª‚©‚¯‚é‚悤‚É®Œ`ƒGƒ“ƒWƒ“‚ð‰ü‘P
+
+2005/01/04 FreeNote 1.11.5Apre
+EƒoƒOƒtƒBƒbƒNƒX
+
+2004/12/25 FreeNote 1.11.5pre
+EƒŒƒCƒ„[‹@”\’ljÁ
+
+2004/10/17 FreeNote 1.10.0ƒŠƒŠ[ƒX
+Eƒc[ƒ‹‹@”\’Ç2004/08/26 ver 1.9.3Apre
+EŒrü‹@”\‚ÌC³
+
+Eƒc[ƒ‹‹@”\’Ç2004/08/26 ver 1.9.3pre
+EŒrü‹@”\‚ð’ljÁ
+
+2004/06/19-25 ver 1.9.2pre
+Eqcop‘•”õ
+
+2004/05/19 ver 1.9.1pre
+EPDF‚̃eƒLƒXƒg‚ðUnicode‚ÖB
+EƒIƒvƒVƒ‡ƒ“‚ÉPDF::Encode€–Ú‚ð’ljÁB
+
+2004/02/26 ver 1.9.0pre
+EƒCƒ“ƒ|[ƒg‹@”\
+
+2004/02/19 ver 1.8.0 fix.
+2004/02/16 ver 1.7.3pre
+E•ÒW‹@”\‹­‰»
+
+2004/02/14 ver 1.7.2pre
+EŒŸõ‹@”\’ljÁ
+
+2004/02/12 ver 1.7.1pre
+EƒtƒHƒ“ƒgŽd—l‚Ì•ÏX
+EƒeƒLƒXƒgˆ—‚Ì‚‘¬‰»
+EƒeƒLƒXƒgƒ{ƒbƒNƒX‚Ì‘½‹@”\‰»
+
+2004/02/10 ver 1.7.0pre
+E•¶Žš“ü—Í
+
+2003/12/21 ver 1.6.0
+Eƒtƒ[ƒeƒBƒ“ƒOƒpƒŒƒbƒg‚ª–³Œø‚Æ‚È‚Á‚Ä‚¢‚½ƒoƒO‚ðC³
+E‹@”\‚ð‚e‚‰‚˜
+
+2003/12/16-19 ver 1.5.5pre
+Eƒyƒ“•‚ÌŠg’£(1-8)
+EƒAƒ“ƒhƒDAƒŠƒhƒD‚ÌŽÀ‘•
+Eƒƒjƒ…[‚̈—•û–@‚ðˆê•”‰ü—Ç
+E‚‘¬QuitŽÀ‘•
+
+2003/12/14 FreeNote 1.5.4pre
+Eƒyƒ“ƒTƒCƒY‚ð‘I‘ð‰Â”\‚ÉB
+
+2003/11/30-2003/12/04 FreeNote 1.5.3pre
+EExportPNG, ExportPDF‚̉Šúƒtƒ@ƒCƒ‹–¼‚ªfreeƒtƒ@ƒCƒ‹–¼‚ɉˆ‚¤‚悤‚ÉC³
+
+2003/11/16 FreeNote 1.5.2pre
+E‹Èü®Œ`ƒ‚[ƒhC³
+@‰~•`‰æ‚̃ƒWƒbƒN‚ð’ljÁ
+
+2003/11/10-12 ver 1.5.1pre
+E‹Èü®Œ`ƒ‚[ƒh’ljÁ
+
+2003/11/09 ver 1.5.0pre
+EŽ©“®®Œ`ƒ‚[ƒh’ljÁ
+
+2003/09/03 ver 1.3.4pre
+EUse all quadrant OFFŽž‚É•\Ž¦ˆÊ’u‚ªƒŠƒZƒbƒg‚³‚ê‚éꇂª‚ ‚éƒoƒO‘ΉžB
+
+2003/09/01-03 ver 1.3.3pre
+EƒXƒNƒ[ƒ‹‚̉ü—Ç
+EUse all quadrant(‘SÛŒÀ‚ðŽg—p‚·‚é)ƒƒjƒ…[‚ð’ljÁ
+
+2003/08/17-23 ver 1.3.0pre
+Eabout‚ð•t—^
+ECRƒ{ƒ^ƒ“’ljÁ
+EƒXƒNƒ[ƒ‹ƒ‚[ƒh‚Ì•Û‘¶
+EƒKƒCƒhó‘Ô‚Ì•Û‘¶
+
+2003/08/17 FreeNote 1.2.2‚ðŒöŠJ
+EŠg’£Žq.free‚ÌŽ©“®•t—^‚ªŽ¸”s‚·‚éƒP[ƒX‚ðC³
+
+2003/08/15 FreeNote 1.2.1‚ðŒöŠJ
+E•Û‘¶Žž‚̃oƒOC³
+EŠ®—¹ƒ_ƒCƒAƒƒO‚ÌŽ©“®Á‹Ž
+EPNGƒtƒ@ƒCƒ‹‚Ö‚Ìo—Í
+
+2003/08/15 FreeNote 1.2‚ðŒöŠJ
+EƒIƒvƒVƒ‡ƒ“’ljÁ
+EƒXƒNƒ[ƒ‹ƒKƒCƒh
+EFreeƒtƒ@ƒCƒ‹ŠÖ˜A•t‚¯
+EƒAƒCƒRƒ“‚Ì•ÏX
+
+2003/08/05 FreeNote 1.1.1pre‚ðŒöŠJ
+E‚‘¬‹N“®Žž‚ɕ‚¶‚½ó‘Ô‚ð•ÛŽ
+E•`‰æƒ‚[ƒhØ‘Ö‚¦Žž‚ÉÁ‚µƒSƒ€•\Ž¦
+E•Û‘¶ŽžŠÔ’Zk
+EViewƒ‚[ƒh‚Ì‹““®‚ð•ÏX
+Eƒƒjƒ…[‚ÌŒ©‚½–Ú‚ð•ÏX
+*/
+#include "frmmain.h"
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <qpe/global.h>
+#include <qpe/qcopenvelope_qws.h>
+#include <qpe/applnk.h>
+#include <qpe/mimetype.h>
+
+#include <qapplication.h>
+#include <qtoolbutton.h>
+#include <qmessagebox.h>
+#include <qgrid.h>
+#include <qdir.h>
+#include <qstring.h>
+#include <qdatetime.h>
+#include <qtextcodec.h>
+#include <qdatastream.h>
+#include <qpixmap.h>
+
+#include "fnfiledialog.h"
+#include "fniconset.h"
+#include "fmtengine.h"
+#include "fnmessagebox.h"
+#include "fnlayerdlg.h"
+#include "fnpolygon.h"
+
+#define VERSION "1.12.0"
+/*
+ * Constructs a FrmMain which is a child of 'parent', with the
+ * name 'name' and widget flags set to 'f'
+ */
+FrmMain::FrmMain( QWidget* parent, const char* name, WFlags fl )
+ : QMainWindow( parent, name, fl ),
+ _drawMode(MODE_DRAW),
+ _scrollMode(AS_BOTH),
+ _useAllQuadrant(false),
+ _showRuler(false),
+ _isFullscreen(false),
+ _isLocked(true),
+ _isTinyPaging(false),
+ _isTracking(true)
+{
+ connect( qApp, SIGNAL(appMessage( const QCString&, const QByteArray&)), this, SLOT( qcop_receive( const QCString&, const QByteArray& )));
+ init();
+ setup();
+ setTitle();
+}
+
+void FrmMain::setup()
+{
+ _options.load();
+ setOptions(_options);
+}
+
+void FrmMain::qcop_receive(const QCString& msg, const QByteArray& data)
+{
+ QDataStream stream(data, IO_ReadOnly );
+
+ if (msg == "setPensize(int)") {
+ int v;
+ stream >> v;
+ if (0 <= v && v <= 8) {
+ penSelected(v);
+ }
+ } else if (msg == "setup()") {
+ setup();
+ } else if (msg == "modeChanged(int)") {
+ int v;
+ stream >> v;
+ if (0 <= v && v <= MODE_MAX) {
+ modeChanged(v);
+ }
+ } else if (msg == "changeColor(int,int,int)") {
+ int r;
+ int g;
+ int b;
+ stream >> r;
+ stream >> g;
+ stream >> b;
+ if (0 <= r && r <= 255 &&
+ 0 <= g && g <= 255 &&
+ 0 <= b && b <= 255)
+ {
+ changeColor(qRgb(r, g, b));
+ }
+ } else if (msg == "find()") {
+ _canvas->find();
+ } else if (msg == "undo()") {
+ undo();
+ } else if (msg == "redo()") {
+ _canvas->redo();
+ } else if (msg == "erase()") {
+ _canvas->erase();
+ } else if (msg == "copy()") {
+ _canvas->copy();
+ } else if (msg == "paste()") {
+ _canvas->paste();
+ } else if (msg == "clear()") {
+ clear();
+ } else if (msg == "CR()") {
+ hitRet();
+ } else if (msg == "setViewMode(int)") {
+ int v;
+ stream >> v;
+ if (0 == v) {
+ setViewMode(false);
+ } else {
+ setViewMode(true);
+ }
+ } else if (msg == "load(QString)") {
+ QString fname;
+ stream >> fname;
+ _canvas->load(QFileInfo(fname));
+ } else if (msg == "import(QString)") {
+ QString fname;
+ stream >> fname;
+ _canvas->import(QFileInfo(fname));
+ } else if (msg == "save(QString)") {
+ QString fname;
+ stream >> fname;
+ _canvas->save(QFileInfo(fname));
+ } else if (msg == "exportPDF(QString)") {
+ QString fname;
+ stream >> fname;
+ _canvas->exportPDF(QFileInfo(fname));
+ } else if (msg == "exportPNG(QString)") {
+ QString fname;
+ stream >> fname;
+ QPixmap save(_canvas->wbuffer());
+ _canvas->exportPNG(QFileInfo(fname), save);
+ } else if (msg == "tool(int)") {
+ int v;
+ stream >> v;
+ if (1 <= v && v <= 8) {
+ tool(v);
+ }
+ }
+}
+
+
+//•`‰æƒ‚[ƒh‚Ì•ÏX
+void FrmMain::modeChanged(int mode)
+{
+ _drawMode = mode;
+ _btnCopy->setEnabled(false);
+ //_btnPaste->setEnabled(false);
+ _btnPaste->setEnabled(true);
+ _btnRedo->setEnabled(true);
+ _btnUndo->setEnabled(true);
+ switch (_drawMode) {
+ case MODE_DRAW: //•`‰æ
+ _menubar->changeItem(_id_mode, QPixmap((const char**)draw_xpm));
+ break;
+ case MODE_FORMAT: //Ž©“®®Œ`
+ _menubar->changeItem(_id_mode, QPixmap((const char**)format_xpm));
+ break;
+ case MODE_CURVE: //‹Èü®Œ`
+ _menubar->changeItem(_id_mode, QPixmap((const char**)curve_xpm));
+ break;
+ case MODE_SMOOTH: //ƒXƒ€[ƒWƒ“ƒO
+ _menubar->changeItem(_id_mode, QPixmap((const char**)smooth_xpm));
+ break;
+ case MODE_TEXT: //ƒeƒLƒXƒg
+ _menubar->changeItem(_id_mode, QPixmap((const char**)text_xpm));
+ break;
+ case MODE_ERASE: //•ÒWƒ‚[ƒh
+ _btnCopy->setEnabled(true);
+ _btnRedo->setEnabled(false);
+ _menubar->changeItem(_id_mode, QPixmap((const char**)eraser_xpm));
+ break;
+ case MODE_CPICK:
+ _menubar->changeItem(_id_mode, QPixmap((const char**)cpick_xpm));
+ break;
+ }
+ _canvas->modeChanged(_drawMode);
+}
+
+//•`‰æƒ‚[ƒh‚ÌØ‚è‘Ö‚¦
+void FrmMain::modeMenuChanged(int id)
+{
+ modeChanged(_draw_menu->indexOf(id));
+}
+
+void FrmMain::tool(int id)
+{
+ QString home = getenv("HOME");
+ QString cmd = _options.toolScripts[id];
+ if (cmd == "") {
+ return;
+ }
+ QStringList token = QStringList::split(' ', cmd);
+ QDateTime dtime = QDateTime::currentDateTime();
+ QDate dt = dtime.date();
+ QTime tm = dtime.time();
+ char buf[32];
+ sprintf(buf, "%02d%02d%02d%02d%02d%02d", dt.year() % 100, dt.month(), dt.day(), tm.hour(), tm.minute(), tm.second());
+ QString wkdir = _options.wkdir;
+ if (false == QFileInfo(wkdir).isDir()) {
+ wkdir = home;
+ }
+ int st = 0;
+ for (uint i = st; i < token.count(); ++i) {
+ if (token[i] == "%file") {
+ save();
+ if (_prefile == "") {
+ return;
+ }
+ token[i] = _prefile;
+ } else if (token[i] == "%pdf") {
+ exportPDF();
+ if (_prepdf == "") {
+ return;
+ }
+ token[i] = _prepdf;
+ } else if (token[i] == "%png") {
+ exportPNG();
+ if (_prepng == "") {
+ return;
+ }
+ token[i] = _prepng;
+ } else if (token[i] == "%tmpfile") {
+ _canvas->save(QFileInfo(home + "/.tmp.free"));
+ token[i] = home + "/.tmp.free";
+ } else if (token[i] == "%tmppng") {
+ QPixmap save(_canvas->wbuffer());
+ _canvas->exportPNG(QFileInfo(home + "/.tmp.png"), save);
+ token[i] = home + "/.tmp.png";
+ } else if (token[i] == "%tmppdf") {
+ _canvas->exportPDF(QFileInfo(home + "/.tmp.pdf"));
+ token[i] = home + "/.tmp.pdf";
+ } else if (token[i] == "%newfile") {
+ token[i] = wkdir + "/" + buf +".free";
+ _canvas->save(QFileInfo(token[i]));
+ } else if (token[i] == "%newpng") {
+ QPixmap save(_canvas->wbuffer());
+ token[i] = wkdir + "/" + buf +".png";
+ _canvas->exportPNG(QFileInfo(token[i]), save);
+ } else if (token[i] == "%newpdf") {
+ token[i] = wkdir + "/" + buf +".pdf";
+ _canvas->exportPDF(QFileInfo(token[i]));
+ }
+ }
+
+ QFileInfo exefile(token[0]);
+ if (exefile.extension() == "desktop") {
+ const AppLnk *app= new AppLnk(exefile.absFilePath());
+ QStringList args;
+ for (uint i = 1; i < token.count(); ++i) {
+ args << token[i];
+ }
+ app->execute(args);
+ delete app;
+ showMinimized();
+ } else if (token[0] == "qcop") {
+ if (3 <= token.count()) {
+ QCopEnvelope qcop((const char*)token[1], (const char*)token[2]);
+ for (uint i = 3; i < token.count(); ++i) {
+ qcop << token[i];
+ }
+ }
+ } else {
+ QString args = token[0];
+ for (uint i = 1; i < token.count(); ++i) {
+ args += " ";
+ args += token[i];
+ }
+ //Global::invoke(args);
+ Global::execute(args);
+ }
+}
+
+//ƒIƒvƒVƒ‡ƒ“‚ÌÝ’è
+void FrmMain::setOptions(const FNOptionData& o)
+{
+ _tool_menu->changeItem(_id_tool1, "1:" + o.toolNames[0]);
+ _tool_menu->changeItem(_id_tool2, "2:" + o.toolNames[1]);
+ _tool_menu->changeItem(_id_tool3, "3:" + o.toolNames[2]);
+ _tool_menu->changeItem(_id_tool4, "4:" + o.toolNames[3]);
+ _tool_menu->changeItem(_id_tool5, "5:" + o.toolNames[4]);
+ _tool_menu->changeItem(_id_tool6, "6:" + o.toolNames[5]);
+ _tool_menu->changeItem(_id_tool7, "7:" + o.toolNames[6]);
+ _tool_menu->changeItem(_id_tool8, "8:" + o.toolNames[7]);
+
+ _canvas->setScrollTiming(o.timing);
+ _canvas->setVStep(o.v_step);
+ _canvas->setHStep(o.h_step);
+ _canvas->setSEraser(o.eraser_s);
+ _canvas->setLEraser(o.eraser_l);
+ _canvas->setMargin(o.margin);
+
+ _vscb->setPageStep(o.v_step);
+ _vscb->setLineStep(o.grid_size * 2);
+ _hscb->setPageStep(o.h_step);
+ _hscb->setLineStep(o.grid_size * 2);
+
+ SNAP_SIZE = o.grid_size;
+ PHASE1_ANGLE = o.phase1;
+ PHASE2_ANGLE = o.phase2;
+
+ if (o.isLMvAOn) {
+ _btnLMvA->show();
+ } else {
+ _btnLMvA->hide();
+ }
+ if (o.isLMvBOn) {
+ _btnLMvB->show();
+ } else {
+ _btnLMvB->hide();
+ }
+ if (o.isLAddOn) {
+ _btnLAdd->show();
+ } else {
+ _btnLAdd->hide();
+ }
+ if (o.isFindOn) {
+ _btnFind->show();
+ } else {
+ _btnFind->hide();
+ }
+
+ if (o.isMaximizedOn) {
+ _btnMaximized->show();
+ } else {
+ _btnMaximized->hide();
+ }
+
+ if (o.isCopyOn) {
+ _btnCopy->show();
+ } else {
+ _btnCopy->hide();
+ }
+
+ if (o.isPasteOn) {
+ _btnPaste->show();
+ } else {
+ _btnPaste->hide();
+ }
+
+ if (o.isImportOn) {
+ _btnImport->show();
+ } else {
+ _btnImport->hide();
+ }
+
+ if (o.isUndoOn) {
+ _btnUndo->show();
+ } else {
+ _btnUndo->hide();
+ }
+
+ if (o.isRedoOn) {
+ _btnRedo->show();
+ } else {
+ _btnRedo->hide();
+ }
+
+ if (o.isZoomOn) {
+ _btnZoom->show();
+ } else {
+ _btnZoom->hide();
+ }
+
+ if (o.isCROn) {
+ _btnRet->show();
+ } else {
+ _btnRet->hide();
+ }
+
+ if (o.isGuideOn) {
+ _btnGuide->show();
+ } else {
+ _btnGuide->hide();
+ }
+
+ if (o.isNewOn) {
+ _btnNew->show();
+ } else {
+ _btnNew->hide();
+ }
+
+ if (o.isClearOn) {
+ _btnClear->show();
+ } else {
+ _btnClear->hide();
+ }
+
+ if (o.isOpenOn) {
+ _btnLoad->show();
+ } else {
+ _btnLoad->hide();
+ }
+
+ if (o.isSaveOn) {
+ _btnSave->show();
+ } else {
+ _btnSave->hide();
+ }
+
+ if (o.isExportOn) {
+ _btnExportPDF->show();
+ } else {
+ _btnExportPDF->hide();
+ }
+
+ if (o.isExportPNGOn) {
+ _btnExportPNG->show();
+ } else {
+ _btnExportPNG->hide();
+ }
+
+ if (o.isLayerOn) {
+ _btnLayer->show();
+ } else {
+ _btnLayer->hide();
+ }
+
+ if (AS_HORIZONTAL == o.scrollMode) {
+ _as_horz->setOn(true);
+ } else if (AS_VERTICAL == o.scrollMode) {
+ _as_vert->setOn(true);
+ } else if (AS_BOTH == o.scrollMode) {
+ _as_both->setOn(true);
+ }
+ _btnGuide->setOn(o.isAutoScrollEnabled);
+ this->showGuide(o.isAutoScrollEnabled);
+ _canvas->setShowRuler(_showRuler = o.isShowRuler);
+ _canvas->setUseAllQuadrant(_useAllQuadrant = o.useAllQuadrant);
+ _scroll_menu->setItemChecked(_id_quadrant, _useAllQuadrant);
+ if (_useAllQuadrant) {
+ _vscb->setMinValue(-200);
+ _hscb->setMinValue(-200);
+ } else {
+ _vscb->setMinValue(0);
+ _hscb->setMinValue(0);
+ }
+ _scroll_menu->setItemChecked(_id_ruler, _showRuler);
+ _canvas->setEncode(o.encode);
+ _canvas->setFontName(o.fontname);
+ _canvas->setColorRevision(o.isColorRevision);
+ _canvas->setTxtBoxRect(o.txtBoxRect);
+ SelectionLineColor = o.selectionLineColor;
+ SelectionBrushColor = o.selectionBrushColor;
+ SelectionFrameColor = o.selectionFrameColor;
+ RulerColor = o.rulerColor;
+ GuideColor = o.guideColor;
+ GridColor = o.gridColor;
+
+ _canvas->redraw();
+}
+
+//Œrü‚ð•\Ž¦‚·‚éiƒgƒOƒ‹j
+void FrmMain::showRuler()
+{
+ _showRuler = !_showRuler;
+ _canvas->setShowRuler(_showRuler);
+ _options.isShowRuler = _showRuler;
+ _scroll_menu->setItemChecked(_id_ruler, _showRuler);
+ _options.save();
+}
+
+//‘SÛŒÀ‚ðŽg—p‚·‚éiƒgƒOƒ‹j
+void FrmMain::useAllQuadrant()
+{
+ _useAllQuadrant = !_useAllQuadrant;
+ if (_useAllQuadrant) {
+ _vscb->setMinValue(-200);
+ _hscb->setMinValue(-200);
+ } else {
+ _vscb->setMinValue(0);
+ _hscb->setMinValue(0);
+ }
+ _canvas->setUseAllQuadrant(_useAllQuadrant);
+ _scroll_menu->setItemChecked(_id_quadrant, _useAllQuadrant);
+ _options.useAllQuadrant = _useAllQuadrant;
+ _options.save();
+}
+
+//ƒtƒ@ƒCƒ‹‚ð“n‚µ‚ăI[ƒvƒ“
+void FrmMain::setDocument(const QString& fname)
+{
+ this->open(fname);
+}
+
+void FrmMain::showFullScreen()
+{
+ showNormal();
+ _isFullscreen = true;
+ QMainWindow::showFullScreen();
+}
+
+void FrmMain::changeColor(QRgb c)
+{
+ _btnColor->setBGColor(c);
+ _canvas->changeColor(c);
+}
+
+//ƒrƒ…[ƒ‚[ƒh‚ÌØ‚è‘Ö‚¦
+void FrmMain::setViewMode(bool flg)
+{
+ if (MODE_ERASE == _drawMode) {
+ if (flg) {
+ _btnCopy->setEnabled(false);
+ _btnPaste->setEnabled(false);
+ _btnUndo->setEnabled(false);
+ _btnRedo->setEnabled(false);
+ } else {
+ _btnCopy->setEnabled(true);
+ _btnPaste->setEnabled(true);
+ _btnUndo->setEnabled(true);
+ }
+ } else {
+ _btnCopy->setEnabled(false);
+ _btnPaste->setEnabled(true);
+ _btnUndo->setEnabled(true);
+ _btnRedo->setEnabled(true);
+ }
+ _canvas->viewChanged(flg);
+ _vscb->setEnabled(!flg);
+ _hscb->setEnabled(!flg);
+}
+
+//‰ŠúÝ’è
+void FrmMain::init()
+{
+ _colorSelector = new FNColorDialog(this);
+ QGrid* grid = new QGrid(2, this);
+ _canvas = new FNCanvas(_colorSelector, grid);
+ _canvas->resize(240, 320);
+ _vscb = new QScrollBar(0, 960, 10, 100, 0, Qt::Vertical, grid);
+ _hscb = new QScrollBar(0, 960, 10, 100, 0, Qt::Horizontal, grid);
+ this->setCentralWidget(grid);
+ this->setToolBarsMovable(false);
+ connect(_vscb, SIGNAL(valueChanged(int)), this, SLOT(scroll()));
+ connect(_hscb, SIGNAL(valueChanged(int)), this, SLOT(scroll()));
+ connect(_canvas, SIGNAL(originChanged(int, int)), this, SLOT( scrollbarChange(int, int)));
+ //ƒƒjƒ…[‚Ì\’z
+ bool isVGA = false;
+ if (320 < QApplication::desktop()->width()) {
+ isVGA = true;
+ }
+
+ _page_tool = new QPEToolBar(this);
+ _page_tool->setHorizontalStretchable(true);
+
+ _btnColor = new FNColorPalette(black, _page_tool);
+ _chkFill = new QCheckBox(_page_tool);
+ _chkFill->setText("F");
+ _chkFill->setFocusPolicy(NoFocus);
+ _page_tool->addSeparator();
+ if (isVGA) {
+ _btnColor->setMinimumSize(48, 32);
+ _btnColor->setMaximumSize(48, 32);
+ } else {
+ _btnColor->setMinimumSize(24, 18);
+ _btnColor->setMaximumSize(24, 18);
+ }
+ _btnLMvA = newToolButton(_page_tool, (const char**)movetoabove_xpm, "move to above layer", isVGA);
+ _btnLMvB = newToolButton(_page_tool, (const char**)movetobelow_xpm, "move to below layer", isVGA);
+ _btnLAdd = newToolButton(_page_tool, (const char**)addlayer_xpm, "add new layer", isVGA);
+ _btnFind = newToolButton(_page_tool, (const char**)find_xpm, "find", isVGA);
+ _btnMaximized = newToolButton(_page_tool, (const char **)maximized_xpm, "maximized", isVGA);
+ _btnCopy = newToolButton(_page_tool, (const char**)copy_xpm, "copy", isVGA);
+ _btnPaste = newToolButton(_page_tool, (const char**)paste_xpm, "paste", isVGA);
+ _btnImport = newToolButton(_page_tool, (const char**)import_xpm, "import", isVGA);
+ _btnUndo = newToolButton(_page_tool, (const char**)undo_xpm, "undo", isVGA);
+ _btnRedo = newToolButton(_page_tool, (const char**)redo_xpm, "redo", isVGA);
+ //_btnColor = newToolButton(_page_tool, (const char **)color_xpm, "select color", isVGA);
+
+ _btnZoom = newToolButton(_page_tool, (const char **)zoom_xpm, "zoom", isVGA, true, false, 48);
+ _btnRet = newToolButton(_page_tool, (const char**)ret_xpm, "return", isVGA);
+ _btnGuide = newToolButton(_page_tool, (const char **)guide_xpm, "scroll guide", isVGA, true);
+ _btnNew = newToolButton(_page_tool, (const char **)new_xpm, "new page", isVGA);
+ _btnClear = newToolButton(_page_tool, (const char **)clear_xpm, "clear page", isVGA);
+ _btnLoad = newToolButton(_page_tool, (const char **)open_xpm, "load page", isVGA);
+ _btnSave = newToolButton(_page_tool, (const char **)save_xpm, "save page", isVGA);
+ _btnExportPDF = newToolButton(_page_tool, (const char **)pdf_xpm, "export PDF", isVGA);
+ _btnExportPNG = newToolButton(_page_tool, (const char **)png_xpm, "export PNG", isVGA);
+ _btnLayer = newToolButton(_page_tool, (const char**)layer_xpm, "layer on", isVGA);
+
+ connect(_btnLMvA, SIGNAL(clicked()), this, SLOT(moveAboveLayer()));
+ connect(_btnLMvB, SIGNAL(clicked()), this, SLOT(moveBelowLayer()));
+ connect(_btnLAdd, SIGNAL(clicked()), this, SLOT(addLayer()));
+ connect(_btnFind, SIGNAL(clicked()), _canvas, SLOT(find()));
+ connect(_btnColor, SIGNAL(clicked(FNPaletteBase*)), this, SLOT(colorSelectorPopup()));
+
+ connect(_btnRet, SIGNAL(clicked()), this, SLOT(hitRet()));
+ connect(_btnSave, SIGNAL(clicked()), this, SLOT(save()));
+ connect(_btnLoad, SIGNAL(clicked()), this, SLOT(load()));
+ connect(_btnNew, SIGNAL(clicked()), this, SLOT(newPage()));
+ connect(_btnClear, SIGNAL(clicked()), this, SLOT(clear()));
+ connect(_btnExportPDF, SIGNAL(clicked()), this, SLOT(exportPDF()));
+ connect(_btnExportPNG, SIGNAL(clicked()), this, SLOT(exportPNG()));
+ connect(_btnLayer, SIGNAL(clicked()), this, SLOT(showLayer()));
+
+ connect(_btnMaximized, SIGNAL(clicked()), this, SLOT(showFullScreen()));
+ connect(_btnZoom, SIGNAL(toggled(bool)), this, SLOT(setViewMode(bool)));
+ connect(_btnCopy, SIGNAL(clicked()), _canvas, SLOT(copy()));
+ connect(_btnPaste, SIGNAL(clicked()), _canvas, SLOT(paste()));
+ connect(_btnImport, SIGNAL(clicked()), this, SLOT(import()));
+ connect(_btnUndo, SIGNAL(clicked()), this, SLOT(undo()));
+ connect(_btnRedo, SIGNAL(clicked()), _canvas, SLOT(redo()));
+ connect(_btnGuide, SIGNAL(toggled(bool)), this, SLOT(showGuide(bool)));
+ connect(_canvas, SIGNAL(resetViewMode()), _btnZoom, SLOT(toggle()));
+ connect(_chkFill, SIGNAL(toggled(bool)), _canvas, SLOT(fillChanged(bool)));
+ connect(_canvas, SIGNAL(pickColor(QRgb)), this, SLOT(changeColor(QRgb)));
+
+ _scroll_menu = new QPopupMenu();
+ QActionGroup* scroll_action_group = new QActionGroup(_scroll_menu, "scroll actions", true);
+ scroll_action_group->insert(_as_horz = new QAction("horz", "&Horizontal", 0, scroll_action_group, 0, true));
+ scroll_action_group->insert(_as_vert = new QAction("vert", "&Vertical", 0, scroll_action_group, 0, true));
+ scroll_action_group->insert(_as_both = new QAction("both", "&Both", 0, scroll_action_group, 0, true));
+ _as_both->setOn(true);
+ _id_guide = _scroll_menu->insertItem("&Guide", _btnGuide, SLOT(toggle()), CTRL + Key_G);
+ _id_ruler = _scroll_menu->insertItem("show &Ruler", this, SLOT(showRuler()), CTRL + Key_K);
+ _id_quadrant = _scroll_menu->insertItem("&Use all quadrant", this, SLOT(useAllQuadrant()), CTRL + Key_U);
+ _scroll_menu->insertSeparator();
+ scroll_action_group->addTo(_scroll_menu);
+ connect(scroll_action_group, SIGNAL(selected(QAction*)), this, SLOT(scroll_menu_selected(QAction*)));
+
+ _main_menu = new QPopupMenu();
+ _main_menu->setCheckable(true);
+
+ _edit_menu = new QPopupMenu();
+ _edit_menu->insertItem("&Copy", _canvas, SLOT(copy()), CTRL + Key_C);
+ _edit_menu->insertItem("&Paste", _canvas, SLOT(paste()), CTRL + Key_V);
+ _edit_menu->insertItem("&Undo", this, SLOT(undo()), CTRL + Key_Z);
+ _edit_menu->insertItem("&Redo", _canvas, SLOT(redo()), CTRL + Key_Y);
+ _edit_menu->insertItem("&Find", _canvas, SLOT(find()), CTRL + Key_F);
+
+ _main_menu->insertItem("&Edit", _edit_menu);
+
+ _layer_menu = new QPopupMenu();
+ _layer_menu->insertItem("show", this, SLOT(showLayer()), CTRL + Key_B);
+ _layer_menu->insertItem("move above", this, SLOT(moveAboveLayer()), Key_A);
+ _layer_menu->insertItem("move below", this, SLOT(moveBelowLayer()), Key_Z);
+ _layer_menu->insertItem("add layer", this, SLOT(addLayer()), CTRL + Key_A);
+ _id_tinyPaging = _layer_menu->insertItem("tiny paging mode", this, SLOT(toggleTinyPaging()), CTRL + Key_T);
+ _main_menu->insertItem("&Layer", _layer_menu);
+
+
+ _tool_menu = new QPopupMenu();
+ _id_tool1 = _tool_menu->insertItem("1:", this, SLOT(tool1()), CTRL + Key_1);
+ _id_tool2 = _tool_menu->insertItem("2:", this, SLOT(tool2()), CTRL + Key_2);
+ _id_tool3 = _tool_menu->insertItem("3:", this, SLOT(tool3()), CTRL + Key_3);
+ _id_tool4 = _tool_menu->insertItem("4:", this, SLOT(tool4()), CTRL + Key_4);
+ _id_tool5 = _tool_menu->insertItem("5:", this, SLOT(tool5()), CTRL + Key_5);
+ _id_tool6 = _tool_menu->insertItem("6:", this, SLOT(tool6()), CTRL + Key_6);
+ _id_tool7 = _tool_menu->insertItem("7:", this, SLOT(tool7()), CTRL + Key_7);
+ _id_tool8 = _tool_menu->insertItem("8:", this, SLOT(tool8()), CTRL + Key_8);
+ _main_menu->insertItem("&Tool", _tool_menu);
+
+ _main_menu->insertItem("&Zoom", _btnZoom, SLOT(toggle()), Key_Tab);
+ _main_menu->insertItem("&Maximize", this, SLOT(showFullScreen()), CTRL + Key_M);
+ _main_menu->insertItem("&Normalize", this, SLOT(showNormal()), CTRL + Key_R);
+ _main_menu->insertSeparator();
+
+ _main_menu->insertItem("&Scroll", _scroll_menu);
+ _main_menu->insertSeparator();
+
+ _file_menu = new QPopupMenu();
+ _file_menu->setCheckable(true);
+ _file_menu->insertItem("&New", this, SLOT(newPage()), CTRL + Key_N);
+ _file_menu->insertItem("&Clear", this, SLOT(clear()), CTRL + Key_L);
+ _file_menu->insertItem("&Import", this, SLOT(import()), CTRL + Key_I);
+ _file_menu->insertItem("&Load", this, SLOT(load()), CTRL + Key_O);
+ _file_menu->insertItem("&Save", this, SLOT(save()), CTRL + Key_S);
+ _file_menu->insertItem("save &As", this, SLOT(saveAs()));
+ _main_menu->insertItem("&File", _file_menu);
+
+ _export_menu = new QPopupMenu();
+ _export_menu->setCheckable(true);
+ _export_menu->insertItem("PDF", this, SLOT(exportPDF()), CTRL + Key_P);
+ _export_menu->insertItem("PNG", this, SLOT(exportPNG()), CTRL + Key_E);
+ _export_menu->insertSeparator();
+ _id_saveNPdf = _export_menu->insertItem("save with pdf", this, SLOT(toggleSaveNPdf()));
+
+ _main_menu->insertItem("&Export", _export_menu);
+ _main_menu->insertSeparator();
+ _main_menu->insertItem("&Quit", this, SLOT(quit()), Key_Escape);
+ _main_menu->insertSeparator();
+ _main_menu->insertItem("&About", this, SLOT(about()));
+
+ _menubar = new QPEMenuBar(this);
+ _menubar->insertItem("&Menu", _main_menu);
+
+ _draw_menu = new QPopupMenu();
+ int id_draw;
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)draw_xpm)), "&Draw");
+ _draw_menu->setAccel(Key_D, id_draw);
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)format_xpm)), "Auto&Format");
+ _draw_menu->setAccel(Key_F, id_draw);
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)curve_xpm)), "Auto&Curve");
+ _draw_menu->setAccel(Key_C, id_draw);
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)smooth_xpm)), "&Smooth");
+ _draw_menu->setAccel(Key_S, id_draw);
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)text_xpm)), "&Text");
+ _draw_menu->setAccel(Key_T, id_draw);
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)eraser_xpm)), "&Eraser");
+ _draw_menu->setAccel(Key_E, id_draw);
+ id_draw = _draw_menu->insertItem(QIconSet(QPixmap((const char**)cpick_xpm)), "Color&Picker");
+ _draw_menu->setAccel(Key_P, id_draw);
+ _id_mode = _menubar->insertItem(QPixmap((const char**)draw_xpm), _draw_menu);
+ connect(_draw_menu, SIGNAL(activated(int)), this, SLOT(modeMenuChanged(int)));
+ connect(_canvas, SIGNAL(changeMode(int)), this, SLOT(modeChanged(int)));
+
+ _pen_menu = new QPopupMenu();
+ for (int i = 0; i < 8; ++i) {
+ char buf[5];
+ sprintf(buf, "%dpts.", (i + 1));
+ int id = _pen_menu->insertItem(QIconSet(makePenPixmap(i + 1)), buf);
+ _pen_menu->setAccel(Key_1 + i, id);
+ }
+ _id_pen = _menubar->insertItem(makePenPixmap(1), _pen_menu);
+ connect(_pen_menu, SIGNAL(activated(int)), this, SLOT(penSelected(int)));
+ _menubar->insertItem(_page_tool);
+ _btnCopy->setEnabled(false);
+ _btnPaste->setEnabled(true);
+ _title = "";
+}
+
+void FrmMain::undo()
+{
+ _canvas->undo();
+ setTitle();
+}
+
+void FrmMain::addLayer()
+{
+ _canvas->addLayer();
+ setTitle();
+}
+
+void FrmMain::moveAboveLayer()
+{
+ _canvas->moveAboveLayer();
+ setTitle();
+}
+
+void FrmMain::moveBelowLayer()
+{
+ _canvas->moveBelowLayer();
+ setTitle();
+}
+
+//ŠÈˆÕƒy[ƒWƒ‚[ƒh‚ðØ‚è‘Ö‚¦‚é
+void FrmMain::toggleTinyPaging()
+{
+ bool f = _canvas->isTinyPaging();
+ _canvas->setTinyPaging(!f);
+ setTitle();
+}
+
+
+//ƒyƒ“‰æ‘œ‚Ìì¬
+QPixmap FrmMain::makePenPixmap(int n)
+{
+ const char** icons[] = {
+ (const char**)pt1_xpm,
+ (const char**)pt2_xpm,
+ (const char**)pt3_xpm,
+ (const char**)pt4_xpm,
+ (const char**)pt5_xpm,
+ (const char**)pt6_xpm,
+ (const char**)pt7_xpm,
+ (const char**)pt8_xpm,
+ };
+ QPixmap pt(icons[n - 1]);
+ QImage mask = pt.mask()->convertToImage();
+ pt = pt.convertToImage().smoothScale(32/*48*/, 16);
+ QBitmap msk;
+ msk = mask.smoothScale(32/*48*/, 16);
+ pt.setMask(msk);
+ return pt;
+}
+
+//ƒyƒ“‚Ì‘I‘ð
+void FrmMain::penSelected(int id)
+{
+ int idx = _pen_menu->indexOf(id);
+ if (-1 != idx) {
+ _menubar->changeItem(_id_pen, makePenPixmap(idx + 1));
+ _canvas->setPensize(idx + 1);
+ }
+}
+
+//Save with PDF‚ÌØ‚è‘Ö‚¦
+void FrmMain::toggleSaveNPdf()
+{
+ if (_export_menu->isItemChecked(_id_saveNPdf)) {
+ _export_menu->setItemChecked(_id_saveNPdf, false);
+ } else {
+ _export_menu->setItemChecked(_id_saveNPdf, true);
+ }
+}
+
+//ƒc[ƒ‹ƒ{ƒ^ƒ“‚Ìì¬
+QToolButton* FrmMain::newToolButton(QWidget* parent, const char** icon1, const char** icon2, const QString& textLabel, const bool isVGA, const bool isToggle, const bool isOn, const int width)
+{
+ QToolButton* btn = new QToolButton(parent);
+ if (isVGA) {
+ btn->setMinimumSize(width, 32);
+ btn->setMaximumSize(width, 32);
+ } else {
+ btn->setMinimumSize(18, 18);
+ btn->setMaximumSize(18, 18);
+ }
+ btn->setOnIconSet(QIconSet(QPixmap(icon1)));
+ btn->setOffIconSet(QIconSet(QPixmap(icon2)));
+ btn->setToggleButton(isToggle);
+ btn->setOn(isOn);
+ btn->setTextLabel(textLabel);
+ btn->setAutoRaise(false);
+
+ return btn;
+}
+
+//ƒc[ƒ‹ƒ{ƒ^ƒ“‚Ìì¬
+QToolButton* FrmMain::newToolButton(QWidget* parent, const char** icon, const QString& textLabel, const bool isVGA, const bool isToggle, const bool isOn, const int width)
+{
+ QToolButton* btn = new QToolButton(parent);
+ if (isVGA) {
+ btn->setMinimumSize(width, 32);
+ btn->setMaximumSize(width, 32);
+ } else {
+ btn->setMinimumSize(20, 20);
+ btn->setMaximumSize(20, 20);
+ }
+ btn->setPixmap(QPixmap(icon));
+ btn->setToggleButton(isToggle);
+ btn->setOn(isOn);
+ btn->setTextLabel(textLabel);
+ btn->setAutoRaise(false);
+
+ return btn;
+}
+
+//ƒXƒNƒ[ƒ‹ƒƒjƒ…[‚Ì‘I‘ð
+void FrmMain::scroll_menu_selected(QAction* act)
+{
+ if (act->text() == "horz") {
+ _options.scrollMode = _scrollMode = AS_HORIZONTAL;
+ } else if (act->text() == "vert") {
+ _options.scrollMode = _scrollMode = AS_VERTICAL;
+ } else if (act->text() == "both") {
+ _options.scrollMode = _scrollMode = AS_BOTH;
+ }
+ _options.save();
+ if (_btnGuide->isOn()) {
+ _canvas->setScrollMode(_scrollMode);
+ }
+}
+
+//ƒKƒCƒh‚Ì•\Ž¦
+void FrmMain::showGuide(bool flg)
+{
+ _canvas->setGuide(flg);
+ if (flg) {
+ _canvas->setScrollMode(_scrollMode);
+ } else {
+ _canvas->setScrollMode(AS_NONE);
+ }
+ _main_menu->setItemChecked(_id_guide, flg);
+ if (flg != _options.isAutoScrollEnabled) {
+ _options.isAutoScrollEnabled = flg;
+ _options.save();
+ }
+}
+
+//ƒXƒNƒ[ƒ‹ƒo[‚ÌÝ’è
+void FrmMain::scrollbarChange(int x, int y)
+{
+ //*
+ if (_useAllQuadrant) {
+ if (-200 != _vscb->minValue()) {
+ _vscb->setMinValue(-200);
+ }
+ if (-200 != _hscb->minValue()) {
+ _hscb->setMinValue(-200);
+ }
+ } else {
+ if (0 != _vscb->minValue()) {
+ _vscb->setMinValue(0);
+ }
+ if (0 != _hscb->minValue()) {
+ _hscb->setMinValue(0);
+ }
+ }
+ //*/
+ if (_canvas->isShowGuide()) {
+ _isTracking = false;
+ } else {
+ _isTracking = false;
+ }
+ _hscb->setValue(x);
+ _vscb->setValue(y);
+}
+
+//V‹Kƒy[ƒWì¬
+void FrmMain::newPage()
+{
+ if (QMessageBox::warning( this, "FreeNote Qt", "OK to create new page ?", "OK", "Cancel", 0, 1, 1 )) {
+ return;
+ }
+ _hscb->setMaxValue(960);
+ _vscb->setMaxValue(960);
+ _canvas->clear();
+ QDir dir = _file.dir();
+ _file.setFile(dir, "");
+ _title = "";
+ setTitle();
+}
+
+//ƒy[ƒWƒNƒŠƒA
+void FrmMain::clear()
+{
+ if (QMessageBox::warning( this, "FreeNote Qt", "OK to clear this page ?", "OK", "Cancel", 0, 1, 1 )) {
+ return;
+ }
+ _hscb->setMaxValue(960);
+ _vscb->setMaxValue(960);
+ _canvas->clear();
+}
+
+//ƒJƒ‰[ƒZƒŒƒNƒ^‚Ì•\Ž¦
+void FrmMain::colorSelectorPopup()
+{
+ _colorSelector->setColor(_btnColor->color());
+ _colorSelector->show();
+ if (_colorSelector->exec()) {
+ changeColor(_colorSelector->color().rgb());
+ }
+}
+
+//ƒtƒ@ƒCƒ‹ƒI[ƒvƒ“
+void FrmMain::open(const QString& fname)
+{
+ _file.setFile(fname);
+ if (_file.exists()) {
+ _canvas->load(_file.absFilePath());
+ setTitle(&_file);
+ } else {
+ _file.setFile(_file.dir(), "");
+ }
+}
+
+//ƒtƒ@ƒCƒ‹•Û‘¶
+void FrmMain::save()
+{
+ _prefile = "";
+ if (!_file.exists() || _file.isDir() || _file.extension(false) != "free") {
+ return saveAs();
+ } else {
+ Config conf("FreeNoteQt");
+ conf.setGroup("Format");
+ _file.setFile(QDir(conf.readEntry("free", _file.dirPath())), _file.fileName());
+ _canvas->save(_file.absFilePath());
+ _prefile = _file.absFilePath();
+ conf.writeEntry("free", _file.dirPath() + "/");
+ setTitle(&_file);
+ if (_export_menu->isItemChecked(_id_saveNPdf)) {
+ QFileInfo info = _file;
+ QString tmpf = _file.absFilePath();
+ tmpf = tmpf.left(tmpf.findRev(".free"));
+ info.setFile(tmpf + ".pdf");
+ _canvas->exportPDF(info);
+ }
+ }
+}
+
+//•Ê–¼•Û‘¶
+void FrmMain::saveAs()
+{
+ _prefile = "";
+ Config conf("FreeNoteQt");
+ conf.setGroup("Format");
+ if (_file.baseName() == "") {
+ _file.setFile(QDir(conf.readEntry("free", _file.dirPath())), "");
+ } else {
+ _file.setFile(QDir(conf.readEntry("free", _file.dirPath())), _file.fileName());
+ }
+
+ //_frmPalette->close();
+ FNFileDialog dlg(this, "*.free", "FreeNote Qt - save", false);
+ dlg.setCurrentFile(_file);
+ dlg.showMaximized();
+ if (dlg.exec()) {
+ QFileInfo info = dlg.currentFile();
+ if (!info.isDir() && !dlg.isTopDir()) {
+ if (info.extension(false) != "free") {
+ QDir dir = info.dir(true);
+ QString fname = info.fileName();
+ info.setFile(dir, fname + ".free");
+ }
+ if (info.exists()) {
+ if (QMessageBox::warning( this, "FreeNote Qt", "file " + info.fileName() + "\n already exists.\n\n OK to overwrite ?", "OK", "Cancel", 0, 1, 1 )) {
+ return;
+ }
+ }
+ _file = info;
+ if (_canvas->save(_file)) {
+ _prefile = _file.absFilePath();
+ conf.writeEntry("free", _file.dirPath() + "/");
+ setTitle(&_file);
+ if (_export_menu->isItemChecked(_id_saveNPdf)) {
+ QString tmpf = _file.absFilePath();
+ tmpf = tmpf.left(tmpf.findRev(".free"));
+ info.setFile(tmpf + ".pdf");
+ _canvas->exportPDF(info);
+ }
+ }
+ }
+ }
+}
+
+//ƒtƒ@ƒCƒ‹“Ç‚Ýž‚Ý
+void FrmMain::load()
+{
+ Config conf("FreeNoteQt");
+ conf.setGroup("Format");
+ if (_file.fileName() == "") {
+ _file.setFile(QDir(conf.readEntry("free", _file.dirPath())), ".free");
+ } else {
+ _file.setFile(QDir(conf.readEntry("free", _file.dirPath())), _file.fileName());
+ }
+
+ //_frmPalette->close();
+ FNFileDialog dlg(this, "*.free", "FreeNote Qt - load", true);
+ dlg.setCurrentFile(_file);
+ dlg.showMaximized();
+ if (dlg.exec()) {
+ QFileInfo info = dlg.currentFile();
+ if (info.isFile() && info.exists()) {
+ _file = info;
+ if (_canvas->load(_file)) {
+ _prefile = _file.absFilePath();
+ conf.writeEntry("free", _file.dirPath() + "/");
+ setTitle(&_file);
+ }
+ }
+ }
+}
+
+//ƒNƒŠƒbƒvƒ{[ƒh“Ç‚Ýž‚Ý
+void FrmMain::import()
+{
+ Config conf("FreeNoteQt");
+ conf.setGroup("Format");
+ QFileInfo info = _file;
+ if (info.fileName() == "") {
+ info.setFile(QDir(conf.readEntry("import", info.dirPath())), ".free");
+ } else {
+ info.setFile(QDir(conf.readEntry("import", info.dirPath())), info.fileName());
+ }
+
+ //_frmPalette->close();
+ FNFileDialog dlg(this, "*.free", "FreeNote Qt - import", true);
+ dlg.setCurrentFile(info);
+ dlg.showMaximized();
+ if (dlg.exec()) {
+ info = dlg.currentFile();
+ if (info.isFile() && info.exists()) {
+ _canvas->import(info);
+ conf.writeEntry("import", info.dirPath() + "/");
+ }
+ }
+}
+
+//PNG‚Ö‚Ìo—Í
+void FrmMain::exportPNG()
+{
+ _prepng = "";
+ Config conf("FreeNoteQt");
+ conf.setGroup("Format");
+ QFileInfo info = _file;
+ if (info.fileName() == "") {
+ info.setFile(QDir(conf.readEntry("png", info.dirPath())), "");
+ } else {
+ info.setFile(QDir(conf.readEntry("png", info.dirPath())), info.fileName());
+ }
+
+ //_frmPalette->close();
+ QPixmap save(_canvas->wbuffer());
+ FNFileDialog dlg(this, "*.png", "FreeNote Qt - exportPNG", false);
+ if (info.extension()=="free") {
+ QString tmpf = info.absFilePath();
+ tmpf = tmpf.left(tmpf.findRev(".free"));
+ info.setFile(tmpf);
+ } else {
+ info.setFile(info.dir(), "");
+ }
+ dlg.setCurrentFile(info);
+ dlg.showMaximized();
+ if (dlg.exec() && !dlg.isTopDir()) {
+ info = dlg.currentFile();
+ if (!info.isDir() && !dlg.isTopDir()) {
+ if (info.extension(false) != "png") {
+ QDir dir = info.dir(true);
+ QString fname = info.fileName();
+ info.setFile(dir, fname + ".png");
+ }
+ if (info.exists()) {
+ if (QMessageBox::warning( this, "FreeNote Qt", "file " + info.fileName() + "\n already exists.\n\n OK to overwrite ?", "OK", "Cancel", 0, 1, 1 )) {
+ return;
+ }
+ }
+ _canvas->exportPNG(info, save);
+ _prepng = info.absFilePath();
+ conf.writeEntry("png", info.dirPath() + "/");
+ }
+ }
+}
+
+//PDF‚Ö‚Ìo—Í
+void FrmMain::exportPDF()
+{
+ _prepdf = "";
+ Config conf("FreeNoteQt");
+ conf.setGroup("Format");
+
+ QFileInfo info = _file;
+ if (info.fileName() == "") {
+ info.setFile(QDir(conf.readEntry("pdf", info.dirPath())), "");
+ } else {
+ info.setFile(QDir(conf.readEntry("pdf", info.dirPath())), info.fileName());
+ }
+
+ //_frmPalette->close();
+ FNFileDialog dlg(this, "*.pdf", "FreeNote Qt - exportPDF", false);
+ if (info.extension()=="free") {
+ QString tmpf = info.absFilePath();
+ tmpf = tmpf.left(tmpf.findRev(".free"));
+ info.setFile(tmpf);
+ } else {
+ info.setFile(info.dir(), "");
+ }
+
+ dlg.setCurrentFile(info);
+ dlg.showMaximized();
+
+ if (dlg.exec() && !dlg.isTopDir()) {
+ info = dlg.currentFile();
+ if (!info.isDir() && !dlg.isTopDir()) {
+ if (info.extension(false) != "pdf") {
+ QDir dir = info.dir(true);
+ QString fname = info.fileName();
+ info.setFile(dir, fname + ".pdf");
+ }
+ if (info.exists()) {
+ if (QMessageBox::warning( this, "FreeNote Qt", "file " + info.fileName() + "\n already exists.\n\n OK to overwrite ?", "OK", "Cancel", 0, 1, 1 )) {
+ return;
+ }
+ }
+ _canvas->exportPDF(info);
+ _prepdf = info.absFilePath();
+ conf.writeEntry("pdf", info.dirPath() + "/");
+ }
+ }
+}
+
+//ƒXƒNƒ[ƒ‹
+void FrmMain::scroll()
+{
+ if (!_isTracking) {
+ _isTracking = true;
+ return;
+ }
+ if (_canvas->isDrawing()) {
+ return;
+ }
+ int ox = _hscb->value();
+ int oy = _vscb->value();
+ _canvas->setOrigin(ox, oy);
+ int mx = _hscb->maxValue();
+ int my = _vscb->maxValue();
+ if (ox + 50 > mx) {
+ _hscb->setMaxValue(mx + 100);
+ }
+ if (oy + 50 > my) {
+ _vscb->setMaxValue(my + 100);
+ }
+ this->setFocus();
+}
+
+//I—¹
+void FrmMain::quit()
+{
+ _options.txtBoxRect = _canvas->txtBoxRect();
+ _options.save();
+ showNormal();
+ close();
+}
+
+//I—¹‘Oˆ—
+void FrmMain::closeEvent(QCloseEvent* e)
+{
+ if (!_options.isQuitQuickly) {
+ if (QMessageBox::warning( this, "FreeNote Qt", "OK to quit ?", "OK", "Cancel", 0, 1, 1 )) {
+ return;
+ }
+ }
+ e->accept();
+}
+
+//ƒŠƒ^[ƒ“‰Ÿ‰ºˆ—
+void FrmMain::hitRet()
+{
+ _canvas->erase();
+ _canvas->CR();
+}
+
+//ƒL[‰Ÿ‰ºƒCƒxƒ“ƒg
+void FrmMain::keyPressEvent(QKeyEvent* evt)
+{
+ if (!_btnZoom->isOn()) {
+ int key = evt->key();
+ switch (key) {
+ case Qt::Key_Return:
+ case Qt::Key_Space:
+ case Qt::Key_F33:
+ _canvas->erase();
+ _canvas->CR();
+ break;
+ case Qt::Key_Left:
+ if (_canvas->isSelected()) {
+ _canvas->selectionMoveTo(-1, 0);
+ } else {
+ _hscb->subtractPage();
+ scroll();
+ }
+ break;
+ case Qt::Key_Right:
+ if (_canvas->isSelected()) {
+ _canvas->selectionMoveTo(1, 0);
+ } else {
+ _hscb->addPage();
+ scroll();
+ }
+ break;
+ case Qt::Key_Up:
+ if (_canvas->isSelected()) {
+ _canvas->selectionMoveTo(0, -1);
+ } else {
+ _vscb->subtractPage();
+ scroll();
+ }
+ break;
+ case Qt::Key_Down:
+ if (_canvas->isSelected()) {
+ _canvas->selectionMoveTo(0, 1);
+ } else {
+ _vscb->addPage();
+ scroll();
+ }
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+void FrmMain::showLayer()
+{
+ FNLayerDlg dlg(_canvas);
+ _canvas->resetSelection();
+ dlg.show();
+ dlg.exec();
+ setTitle();
+}
+
+/*
+ * Destroys the object and frees any allocated resources
+ */
+FrmMain::~FrmMain()
+{
+ // no need to delete child widgets, Qt does it all for us
+ delete _colorSelector;
+}
+
+//about box‚Ì•\Ž¦
+void FrmMain::about()
+{
+ char buf[1024];
+ sprintf(buf, "FreeNote Qt\nversion %s\nCopyright(c) 2003-2005,jojo3", VERSION);
+ QMessageBox::about(this, "FreeNote Qt", buf);
+}
+
+void FrmMain::setTitle(QFileInfo* file) {
+ if (NULL != file) {
+ _title = file->fileName();
+ }
+ QString t = "FreeNote Qt[";
+ if (_canvas->isTinyPaging()) {
+ _layer_menu->setItemChecked(_id_tinyPaging, true);
+ t += "P:";
+ } else {
+ _layer_menu->setItemChecked(_id_tinyPaging, false);
+ t += "L:";
+ }
+ t += _canvas->currentLayerName();
+ t += "] ";
+ setCaption(t + _title);
+}
diff --git a/recipes-qtopia/freenote/files/FreeNote/apps/Applications/FreeNote.desktop b/recipes-qtopia/freenote/files/FreeNote/apps/Applications/FreeNote.desktop
new file mode 100644
index 0000000..46e24cd
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/apps/Applications/FreeNote.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Comment=
+Exec=FreeNote
+Icon=freenote
+Type=Application
+Name=FreeNoteQt
+Display=640x480/144dpi,480x640/144dpi
+MimeType=application/freenote
+MimeTypeIcons=freenote
+CanFastload=1
diff --git a/recipes-qtopia/freenote/files/FreeNote/apps/Settings/FreeNoteSetup.desktop b/recipes-qtopia/freenote/files/FreeNote/apps/Settings/FreeNoteSetup.desktop
new file mode 100644
index 0000000..e621c90
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/apps/Settings/FreeNoteSetup.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Comment=
+Exec=FreeNoteSetup
+Icon=fnsetup
+Type=Application
+Name=FNSetup
+Name[ja]=FN設定
+Display=640x480/144dpi,480x640/144dpi
+CanFastload=0
diff --git a/recipes-qtopia/freenote/files/FreeNote/pics/fnsetup.png b/recipes-qtopia/freenote/files/FreeNote/pics/fnsetup.png
new file mode 100644
index 0000000..39028e3
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/pics/fnsetup.png
Binary files differ
diff --git a/recipes-qtopia/freenote/files/FreeNote/pics/freenote.png b/recipes-qtopia/freenote/files/FreeNote/pics/freenote.png
new file mode 100644
index 0000000..ebde776
--- /dev/null
+++ b/recipes-qtopia/freenote/files/FreeNote/pics/freenote.png
Binary files differ
diff --git a/recipes-qtopia/freenote/freenote_1.12.0.bb b/recipes-qtopia/freenote/freenote_1.12.0.bb
new file mode 100644
index 0000000..1299127
--- /dev/null
+++ b/recipes-qtopia/freenote/freenote_1.12.0.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Auto-Correction Paint Program for Opie/Qtopia"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "FreeNote"
+APPTYPE = "binary"
+APPDESKTOP = "apps/Applications"
+
+SRC_URI = "http://www.urban.ne.jp/home/kanemori/zaurus/FreeNote_1.12.0.tar.gz \
+ file://FreeNote"
+S = "${WORKDIR}/FreeNote"
+
+inherit opie
+
+do_configure_prepend() {
+ mv -f FreeNote subdir1
+ mv -f FreeNoteSetup subdir2
+ printf "TEMPLATE=subdirs\nSUBDIRS=subdir1 subdir2\n" >> freenote.pro
+ cd ${S}/subdir1 && rm *.pro && qmake -project && echo "TARGET=FreeNote" >> subdir1.pro
+ cd ${S}/subdir2 && rm *.pro && qmake -project && echo "TARGET=FreeNoteSetup" >> subdir2.pro
+ cd ${S}
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/
+ install -m 0755 FreeNoteSetup ${D}${palmtopdir}/bin/
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 pics/freenote.png ${D}${palmtopdir}/pics
+ install -m 0644 pics/fnsetup.png ${D}${palmtopdir}/pics
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -m 0644 apps/Applications/FreeNote.desktop ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/apps/Settings
+ install -m 0644 apps/Settings/FreeNoteSetup.desktop ${D}${palmtopdir}/apps/Settings
+}
+
+SRC_URI[md5sum] = "06b5aeb6cc97107090438a364f0ce89b"
+SRC_URI[sha256sum] = "e6a0a5b674c4803bfd1ffda9660c29f4399294623ed095b0d1c554367c7db73c"
diff --git a/recipes-qtopia/frodo/frodo-4.1b/Frodo.png b/recipes-qtopia/frodo/frodo-4.1b/Frodo.png
new file mode 100644
index 0000000..e346195
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.1b/Frodo.png
Binary files differ
diff --git a/recipes-qtopia/frodo/frodo-4.1b/conffiles b/recipes-qtopia/frodo/frodo-4.1b/conffiles
new file mode 100644
index 0000000..c9a83ab
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.1b/conffiles
@@ -0,0 +1 @@
+/home/root/.frodorc
diff --git a/recipes-qtopia/frodo/frodo-4.1b/frodo-joystick-4state.diff b/recipes-qtopia/frodo/frodo-4.1b/frodo-joystick-4state.diff
new file mode 100644
index 0000000..3234736
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.1b/frodo-joystick-4state.diff
@@ -0,0 +1,77 @@
+diff -u Src/C64_Qtopia.i Src/C64_Qtopia.i
+--- Src/C64_Qtopia.i 2004-07-11 09:28:05.000000000 +0200
++++ Src/C64_Qtopia.i 2004-07-11 09:30:20.000000000 +0200
+@@ -246,10 +246,16 @@
+ }
+
+ // Joystick keyboard emulation
+- if (TheDisplay->NumLock())
++ if (TheDisplay->NumLock() == 1)
+ TheCIA1->Joystick1 &= joykey;
+ else
++ if (TheDisplay->NumLock() == 2)
+ TheCIA1->Joystick2 &= joykey;
++ else
++ if (TheDisplay->NumLock() == 3) {
++ TheCIA1->Joystick1 &= joykey;
++ TheCIA1->Joystick2 &= joykey;
++ }
+
+ // Count TOD clocks
+ TheCIA1->CountTOD();
+diff -u Src/Display.h Src/Display.h
+--- Src/Display.h 2002-01-02 22:31:34.000000000 +0100
++++ Src/Display.h 2004-07-11 09:30:43.000000000 +0200
+@@ -59,7 +59,7 @@
+ #else
+ void PollKeyboard(uint8 *key_matrix, uint8 *rev_matrix, uint8 *joystick);
+ #endif
+- bool NumLock(void);
++ int NumLock(void);
+ void InitColors(uint8 *colors);
+ void NewPrefs(Prefs *prefs);
+
+diff -u Src/Display_QtopiaSDL.i Src/Display_QtopiaSDL.i
+--- Src/Display_QtopiaSDL.i 2004-07-11 09:28:06.000000000 +0200
++++ Src/Display_QtopiaSDL.i 2004-07-11 09:31:47.000000000 +0200
+@@ -17,7 +17,7 @@
+ // Display surface
+ static SDL_Surface *screen = NULL;
+
+-// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2
++// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2, 3 = both
+ static short joy_emu = 0;
+
+ // Keyboard
+@@ -210,6 +210,8 @@
+ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "1", black, fill_gray);
+ else if (joy_emu == 2)
+ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "2", black, fill_gray);
++ else if (joy_emu == 3)
++ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "3", black, fill_gray);
+ draw_string(screen, 24, (screen->h - 17) + 4, speedometer_string, black, fill_gray);
+
+ // Update display
+@@ -500,7 +502,7 @@
+ // fprintf(stderr, "SDL-Key: %d\n", event.key.keysym.sym);
+ if (tab_pressed && event.key.keysym.sym == SDLK_j)
+ {
+- if (joy_emu < 2)
++ if (joy_emu < 3)
+ joy_emu++;
+ else
+ joy_emu = 0;
+@@ -573,11 +575,9 @@
+ * Check if NumLock is down (for switching the joystick keyboard emulation)
+ */
+
+-bool C64Display::NumLock(void)
++int C64Display::NumLock(void)
+ {
+- if (joy_emu == 2)
+- return true;
+- return false;
++ return joy_emu;
+ }
+
+
diff --git a/recipes-qtopia/frodo/frodo-4.1b/frodo-qte.diff b/recipes-qtopia/frodo/frodo-4.1b/frodo-qte.diff
new file mode 100644
index 0000000..c00001d
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.1b/frodo-qte.diff
@@ -0,0 +1,8171 @@
+diff -urN Src/C64.cpp Src/C64.cpp
+--- Src/C64.cpp 2002-01-02 22:18:46.000000000 +0100
++++ Src/C64.cpp 2002-11-21 17:07:04.000000000 +0100
+@@ -600,7 +600,7 @@
+ #ifndef FRODO_SC
+ long vicptr; // File offset of VIC data
+ #endif
+-
++
+ while (c != 10)
+ c = fgetc(f); // Shouldn't be necessary
+ if (fgetc(f) != 0) {
+@@ -698,7 +698,11 @@
+ #endif
+
+ #ifdef __unix
+-#include "C64_x.i"
++# ifdef QTOPIA
++# include "C64_Qtopia.i"
++# else
++# include "C64_x.i"
++# endif
+ #endif
+
+ #ifdef __mac__
+diff -urN Src/C64.h Src/C64.h
+--- Src/C64.h 2002-01-02 22:15:10.000000000 +0100
++++ Src/C64.h 2002-11-21 17:07:02.000000000 +0100
+@@ -22,7 +22,6 @@
+ #include "ROlib.h"
+ #endif
+
+-
+ // false: Frodo, true: FrodoSC
+ extern bool IsFrodoSC;
+
+@@ -142,6 +141,14 @@
+ CmdPipe *gui;
+ #endif
+
++#ifdef QTOPIA
++private:
++ static CmdPipe *staticGUI;
++public:
++ static void StartGUI();
++ static void StopGUI();
++#endif
++
+ #ifdef WIN32
+ private:
+ void CheckTimerChange();
+diff -urN Src/C64_Qtopia.i Src/C64_Qtopia.i
+--- Src/C64_Qtopia.i 1970-01-01 01:00:00.000000000 +0100
++++ Src/C64_Qtopia.i 2002-11-21 17:07:04.000000000 +0100
+@@ -0,0 +1,459 @@
++/*
++ * C64_Qtopia.i - Put the pieces together, X specific stuff
++ *
++ * Frodo (C) 1994-1997,2002 Christian Bauer
++ * Unix stuff by Bernd Schmidt/Lutz Vieweg
++ * Qtopia changes (against C64_x.i) from Bernd Lachner
++ */
++
++#include "main.h"
++
++
++static struct timeval tv_start;
++
++#ifndef HAVE_USLEEP
++/*
++ * NAME:
++ * usleep -- This is the precision timer for Test Set
++ * Automation. It uses the select(2) system
++ * call to delay for the desired number of
++ * micro-seconds. This call returns ZERO
++ * (which is usually ignored) on successful
++ * completion, -1 otherwise.
++ *
++ * ALGORITHM:
++ * 1) We range check the passed in microseconds and log a
++ * warning message if appropriate. We then return without
++ * delay, flagging an error.
++ * 2) Load the Seconds and micro-seconds portion of the
++ * interval timer structure.
++ * 3) Call select(2) with no file descriptors set, just the
++ * timer, this results in either delaying the proper
++ * ammount of time or being interupted early by a signal.
++ *
++ * HISTORY:
++ * Added when the need for a subsecond timer was evident.
++ *
++ * AUTHOR:
++ * Michael J. Dyer Telephone: AT&T 414.647.4044
++ * General Electric Medical Systems GE DialComm 8 *767.4044
++ * P.O. Box 414 Mail Stop 12-27 Sect'y AT&T 414.647.4584
++ * Milwaukee, Wisconsin USA 53201 8 *767.4584
++ * internet: mike@sherlock.med.ge.com GEMS WIZARD e-mail: DYER
++ */
++
++#include <unistd.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <errno.h>
++#include <time.h>
++#include <sys/time.h>
++#include <sys/param.h>
++#include <sys/types.h>
++
++int usleep(unsigned long int microSeconds)
++{
++ unsigned int Seconds, uSec;
++ int nfds, readfds, writefds, exceptfds;
++ struct timeval Timer;
++
++ nfds = readfds = writefds = exceptfds = 0;
++
++ if( (microSeconds == (unsigned long) 0)
++ || microSeconds > (unsigned long) 4000000 )
++ {
++ errno = ERANGE; /* value out of range */
++ perror( "usleep time out of range ( 0 -> 4000000 ) " );
++ return -1;
++ }
++
++ Seconds = microSeconds / (unsigned long) 1000000;
++ uSec = microSeconds % (unsigned long) 1000000;
++
++ Timer.tv_sec = Seconds;
++ Timer.tv_usec = uSec;
++
++ if( select( nfds, &readfds, &writefds, &exceptfds, &Timer ) < 0 )
++ {
++ perror( "usleep (select) failed" );
++ return -1;
++ }
++
++ return 0;
++}
++#endif
++
++CmdPipe *C64::staticGUI = 0;
++
++/*
++ * Static StartGUI method to start gui before SDL initilization
++ */
++
++void C64::StartGUI()
++{
++ // we need to create a potential GUI subprocess here, because we don't want
++ // it to inherit file-descriptors (such as for the audio-device and alike..)
++ if (!staticGUI)
++ {
++ // try to start up FrodoGUI.
++ staticGUI = new CmdPipe("frodogui", "");
++ if (staticGUI)
++ {
++ if (staticGUI->fail)
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ }
++ // wait until the GUI process responds (if it does...)
++ if (staticGUI)
++ {
++ if (5 != staticGUI->ewrite("ping\n",5))
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ else
++ {
++ char c;
++ fd_set set;
++ FD_ZERO(&set);
++ FD_SET(staticGUI->get_read_fd(), &set);
++ struct timeval tv;
++ tv.tv_usec = 0;
++ tv.tv_sec = 5;
++ if (select(FD_SETSIZE, &set, NULL, NULL, &tv) <= 0)
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ else
++ {
++ if (1 != staticGUI->eread(&c, 1))
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ else
++ {
++ if (c != 'o')
++ {
++ delete staticGUI;
++ staticGUI = 0;
++ }
++ }
++ }
++ }
++ }
++ }
++}
++
++/*
++ * Static StopGUI method
++ */
++
++void C64::StopGUI()
++{
++ if (staticGUI)
++ {
++ staticGUI->ewrite("quit\n",5);
++ delete staticGUI;
++ }
++}
++
++/*
++ * Constructor, system-dependent things
++ */
++
++void C64::c64_ctor1(void)
++{
++ // Initialize joystick variables
++ joyfd[0] = joyfd[1] = -1;
++ joy_minx = joy_miny = 32767;
++ joy_maxx = joy_maxy = -32768;
++
++ gui = staticGUI;
++}
++
++void C64::c64_ctor2(void)
++{
++#ifndef __svgalib__
++ if (!gui) {
++ fprintf(stderr,"Alas, master, no preferences window will be available.\n"
++ "If you wish to see one, make sure the 'wish' interpreter\n"
++ "(Tk version >= 4.1) is installed in your path.\n"
++ "You can still use Frodo, though. Use F10 to quit, \n"
++ "F11 to cause an NMI and F12 to reset the C64.\n"
++ "You can change the preferences by editing ~/.frodorc\n");
++ }
++#endif // SVGAlib
++
++ gettimeofday(&tv_start, NULL);
++}
++
++
++/*
++ * Destructor, system-dependent things
++ */
++
++void C64::c64_dtor(void)
++{
++}
++
++
++/*
++ * Start main emulation thread
++ */
++
++void C64::Run(void)
++{
++ // Reset chips
++ TheCPU->Reset();
++ TheSID->Reset();
++ TheCIA1->Reset();
++ TheCIA2->Reset();
++ TheCPU1541->Reset();
++
++ // Patch kernal IEC routines
++ orig_kernal_1d84 = Kernal[0x1d84];
++ orig_kernal_1d85 = Kernal[0x1d85];
++ PatchKernal(ThePrefs.FastReset, ThePrefs.Emul1541Proc);
++
++ quit_thyself = false;
++ thread_func();
++}
++
++
++/*
++ * Vertical blank: Poll keyboard and joysticks, update window
++ */
++
++void C64::VBlank(bool draw_frame)
++{
++ // Poll keyboard
++ TheDisplay->PollKeyboard(TheCIA1->KeyMatrix, TheCIA1->RevMatrix, &joykey);
++ if (TheDisplay->quit_requested)
++ quit_thyself = true;
++
++ // Poll joysticks
++ TheCIA1->Joystick1 = poll_joystick(0);
++ TheCIA1->Joystick2 = poll_joystick(1);
++
++ if (ThePrefs.JoystickSwap) {
++ uint8 tmp = TheCIA1->Joystick1;
++ TheCIA1->Joystick1 = TheCIA1->Joystick2;
++ TheCIA1->Joystick2 = tmp;
++ }
++
++ // Joystick keyboard emulation
++ if (TheDisplay->NumLock())
++ TheCIA1->Joystick1 &= joykey;
++ else
++ TheCIA1->Joystick2 &= joykey;
++
++ // Count TOD clocks
++ TheCIA1->CountTOD();
++ TheCIA2->CountTOD();
++
++ // Update window if needed
++ if (draw_frame) {
++ TheDisplay->Update();
++
++ // Calculate time between VBlanks, display speedometer
++ struct timeval tv;
++ gettimeofday(&tv, NULL);
++ if ((tv.tv_usec -= tv_start.tv_usec) < 0) {
++ tv.tv_usec += 1000000;
++ tv.tv_sec -= 1;
++ }
++ tv.tv_sec -= tv_start.tv_sec;
++ double elapsed_time = (double)tv.tv_sec * 1000000 + tv.tv_usec;
++ speed_index = 20000 / (elapsed_time + 1) * ThePrefs.SkipFrames * 100;
++
++ // Limit speed to 100% if desired
++ if ((speed_index > 100) && ThePrefs.LimitSpeed) {
++ usleep((unsigned long)(ThePrefs.SkipFrames * 20000 - elapsed_time));
++ speed_index = 100;
++ }
++
++ gettimeofday(&tv_start, NULL);
++
++ TheDisplay->Speedometer((int)speed_index);
++ }
++}
++
++
++/*
++ * Open/close joystick drivers given old and new state of
++ * joystick preferences
++ */
++
++void C64::open_close_joysticks(bool oldjoy1, bool oldjoy2, bool newjoy1, bool newjoy2)
++{
++#ifdef HAVE_LINUX_JOYSTICK_H
++ if (oldjoy1 != newjoy1) {
++ joy_minx = joy_miny = 32767; // Reset calibration
++ joy_maxx = joy_maxy = -32768;
++ if (newjoy1) {
++ joyfd[0] = open("/dev/js0", O_RDONLY);
++ if (joyfd[0] < 0)
++ fprintf(stderr, "Couldn't open joystick 1\n");
++ } else {
++ close(joyfd[0]);
++ joyfd[0] = -1;
++ }
++ }
++
++ if (oldjoy2 != newjoy2) {
++ joy_minx = joy_miny = 32767; // Reset calibration
++ joy_maxx = joy_maxy = -32768;
++ if (newjoy2) {
++ joyfd[1] = open("/dev/js1", O_RDONLY);
++ if (joyfd[1] < 0)
++ fprintf(stderr, "Couldn't open joystick 2\n");
++ } else {
++ close(joyfd[1]);
++ joyfd[1] = -1;
++ }
++ }
++#endif
++}
++
++
++/*
++ * Poll joystick port, return CIA mask
++ */
++
++uint8 C64::poll_joystick(int port)
++{
++#ifdef HAVE_LINUX_JOYSTICK_H
++ JS_DATA_TYPE js;
++ uint8 j = 0xff;
++
++ if (joyfd[port] >= 0) {
++ if (read(joyfd[port], &js, JS_RETURN) == JS_RETURN) {
++ if (js.x > joy_maxx)
++ joy_maxx = js.x;
++ if (js.x < joy_minx)
++ joy_minx = js.x;
++ if (js.y > joy_maxy)
++ joy_maxy = js.y;
++ if (js.y < joy_miny)
++ joy_miny = js.y;
++
++ if (joy_maxx-joy_minx < 100 || joy_maxy-joy_miny < 100)
++ return 0xff;
++
++ if (js.x < (joy_minx + (joy_maxx-joy_minx)/3))
++ j &= 0xfb; // Left
++ else if (js.x > (joy_minx + 2*(joy_maxx-joy_minx)/3))
++ j &= 0xf7; // Right
++
++ if (js.y < (joy_miny + (joy_maxy-joy_miny)/3))
++ j &= 0xfe; // Up
++ else if (js.y > (joy_miny + 2*(joy_maxy-joy_miny)/3))
++ j &= 0xfd; // Down
++
++ if (js.buttons & 1)
++ j &= 0xef; // Button
++ }
++ }
++ return j;
++#else
++ return 0xff;
++#endif
++}
++
++
++/*
++ * The emulation's main loop
++ */
++
++void C64::thread_func(void)
++{
++ int linecnt = 0;
++
++#ifdef FRODO_SC
++ while (!quit_thyself) {
++
++ // The order of calls is important here
++ if (TheVIC->EmulateCycle())
++ TheSID->EmulateLine();
++ TheCIA1->CheckIRQs();
++ TheCIA2->CheckIRQs();
++ TheCIA1->EmulateCycle();
++ TheCIA2->EmulateCycle();
++ TheCPU->EmulateCycle();
++
++ if (ThePrefs.Emul1541Proc) {
++ TheCPU1541->CountVIATimers(1);
++ if (!TheCPU1541->Idle)
++ TheCPU1541->EmulateCycle();
++ }
++ CycleCounter++;
++#else
++ while (!quit_thyself) {
++
++ // The order of calls is important here
++ int cycles = TheVIC->EmulateLine();
++ TheSID->EmulateLine();
++#if !PRECISE_CIA_CYCLES
++ TheCIA1->EmulateLine(ThePrefs.CIACycles);
++ TheCIA2->EmulateLine(ThePrefs.CIACycles);
++#endif
++
++ if (ThePrefs.Emul1541Proc) {
++ int cycles_1541 = ThePrefs.FloppyCycles;
++ TheCPU1541->CountVIATimers(cycles_1541);
++
++ if (!TheCPU1541->Idle) {
++ // 1541 processor active, alternately execute
++ // 6502 and 6510 instructions until both have
++ // used up their cycles
++ while (cycles >= 0 || cycles_1541 >= 0)
++ if (cycles > cycles_1541)
++ cycles -= TheCPU->EmulateLine(1);
++ else
++ cycles_1541 -= TheCPU1541->EmulateLine(1);
++ } else
++ TheCPU->EmulateLine(cycles);
++ } else
++ // 1541 processor disabled, only emulate 6510
++ TheCPU->EmulateLine(cycles);
++#endif
++ linecnt++;
++#if !defined(__svgalib__)
++ if ((linecnt & 0xfff) == 0 && gui) {
++
++ // check for command from GUI process
++ // fprintf(stderr,":");
++ while (gui->probe()) {
++ char c;
++ if (gui->eread(&c, 1) != 1) {
++ delete gui;
++ gui = 0;
++ fprintf(stderr,"Oops, GUI process died...\n");
++ } else {
++ // fprintf(stderr,"%c",c);
++ switch (c) {
++ case 'q':
++ quit_thyself = true;
++ break;
++ case 'r':
++ Reset();
++ break;
++ case 'p':{
++ Prefs *np = Frodo::reload_prefs();
++ NewPrefs(np);
++ ThePrefs = *np;
++ break;
++ }
++ default:
++ break;
++ }
++ }
++ }
++ }
++#endif
++ }
++}
+diff -urN Src/configarm Src/configarm
+--- Src/configarm 1970-01-01 01:00:00.000000000 +0100
++++ Src/configarm 2002-11-21 17:07:02.000000000 +0100
+@@ -0,0 +1,2 @@
++configure --host=i386-linux --x-includes=/opt/Qtopia/sharp/include/ --x-libraries=/opt/Qtopia/sharp/lib/ --with-sdl-prefix=/opt/Qtopia/sharp/ --enable-qtopia
++
+diff -urN Src/configure Src/configure
+--- Src/configure 2002-01-02 17:44:11.000000000 +0100
++++ Src/configure 2002-11-21 17:07:03.000000000 +0100
+@@ -1,24 +1,18 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by Autoconf 2.52d.
++# Generated by GNU Autoconf 2.53.
+ #
+-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
++# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ # Free Software Foundation, Inc.
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
++if expr a : '\(a\)' >/dev/null 2>&1; then
++ as_expr=expr
++else
++ as_expr=false
++fi
+
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+ ## --------------------- ##
+ ## M4sh Initialization. ##
+@@ -32,8 +26,165 @@
+ set -o posix
+ fi
+
++# NLS nuisances.
++# Support unset when possible.
++if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
++ as_unset=unset
++else
++ as_unset=false
++fi
++
++(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
++ { $as_unset LANG || test "${LANG+set}" != set; } ||
++ { LANG=C; export LANG; }
++(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
++ { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
++ { LC_ALL=C; export LC_ALL; }
++(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
++ { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
++ { LC_TIME=C; export LC_TIME; }
++(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
++ { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
++ { LC_CTYPE=C; export LC_CTYPE; }
++(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
++ { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
++ { LANGUAGE=C; export LANGUAGE; }
++(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
++ { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
++ { LC_COLLATE=C; export LC_COLLATE; }
++(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
++ { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
++ { LC_NUMERIC=C; export LC_NUMERIC; }
++(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
++ { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
++ { LC_MESSAGES=C; export LC_MESSAGES; }
++
++
+ # Name of the executable.
+-as_me=`echo "$0" |sed 's,.*[\\/],,'`
++as_me=`(basename "$0") 2>/dev/null ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)$' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++ /^X\/\(\/\/\)$/{ s//\1/; q; }
++ /^X\/\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conftest.sh
++ echo "exit 0" >>conftest.sh
++ chmod +x conftest.sh
++ if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conftest.sh
++fi
++
++
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" || {
++ # Find who we are. Look in the path if we contain no path at all
++ # relative or not.
++ case $0 in
++ *[\\/]* ) as_myself=$0 ;;
++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++ ;;
++ esac
++ # We did not find ourselves, most probably we were run as `sh COMMAND'
++ # in which case we are not to be found in the path.
++ if test "x$as_myself" = x; then
++ as_myself=$0
++ fi
++ if test ! -f "$as_myself"; then
++ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
++ { (exit 1); exit 1; }; }
++ fi
++ case $CONFIG_SHELL in
++ '')
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for as_base in sh bash ksh sh5; do
++ case $as_dir in
++ /*)
++ if ("$as_dir/$as_base" -c '
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
++ CONFIG_SHELL=$as_dir/$as_base
++ export CONFIG_SHELL
++ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++ fi;;
++ esac
++ done
++done
++;;
++ esac
++
++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++ # uniformly replaced by the line number. The first 'sed' inserts a
++ # line-number line before each line; the second 'sed' does the real
++ # work. The second script uses 'N' to pair each line-number line
++ # with the numbered line, and appends trailing '-' during
++ # substitution so that $LINENO is not a special case at line end.
++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
++ sed '=' <$as_myself |
++ sed '
++ N
++ s,$,-,
++ : loop
++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++ t loop
++ s,-$,,
++ s,^['$as_cr_digits']*\n,,
++ ' >$as_me.lineno &&
++ chmod +x $as_me.lineno ||
++ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
++ { (exit 1); exit 1; }; }
++
++ # Don't try to exec as it changes $[0], causing all sort of problems
++ # (the dirname of $[0] is not the place where we might find the
++ # original and so on. Autoconf is especially sensible to this).
++ . ./$as_me.lineno
++ # Exit status is that of the last command.
++ exit
++}
++
++
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T=' ' ;;
++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
+
+ if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+@@ -61,22 +212,12 @@
+
+ as_executable_p="test -f"
+
+-# Support unset when possible.
+-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+-# NLS nuisances.
+-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+ # IFS
+ # We need space, tab and new line, in precisely that order.
+@@ -85,7 +226,8 @@
+ IFS=" $as_nl"
+
+ # CDPATH.
+-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
++$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
++
+
+ # Name of the host.
+ # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+@@ -100,7 +242,8 @@
+ ac_default_prefix=/usr/local
+ cross_compiling=no
+ subdirs=
+-MFLAGS= MAKEFLAGS=
++MFLAGS=
++MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+
+ # Maximum number of lines to put in a shell here document.
+@@ -108,6 +251,13 @@
+ # only ac_max_sed_lines should be used.
+ : ${ac_max_here_lines=38}
+
++# Identity of this package.
++PACKAGE_NAME=
++PACKAGE_TARNAME=
++PACKAGE_VERSION=
++PACKAGE_STRING=
++PACKAGE_BUGREPORT=
++
+ ac_unique_file="VIC.cpp"
+ # Factoring default headers for most tests.
+ ac_includes_default="\
+@@ -146,6 +296,7 @@
+ # include <unistd.h>
+ #endif"
+
++
+ # Initialize some variables set by options.
+ ac_init_help=
+ ac_init_version=false
+@@ -184,13 +335,6 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+-# Identity of this package.
+-PACKAGE_NAME=
+-PACKAGE_TARNAME=
+-PACKAGE_VERSION=
+-PACKAGE_STRING=
+-PACKAGE_BUGREPORT=
+-
+ ac_prev=
+ for ac_option
+ do
+@@ -323,7 +467,7 @@
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+- | --no-cr | --no-c)
++ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+@@ -502,7 +646,7 @@
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+- *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+ done
+@@ -514,18 +658,19 @@
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+- *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+ done
+
+ # There might be people who depend on the old broken behavior: `$host'
+ # used to hold the argument of --host etc.
++# FIXME: To remove some day.
+ build=$build_alias
+ host=$host_alias
+ target=$target_alias
+
+-# FIXME: should be removed in autoconf 3.0.
++# FIXME: To remove some day.
+ if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+@@ -541,13 +686,23 @@
+
+ test "$silent" = yes && exec 6>/dev/null
+
++
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+- ac_prog=$0
+- ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
+- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
++ ac_confdir=`(dirname "$0") 2>/dev/null ||
++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$0" : 'X\(//\)[^/]' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$0" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+@@ -680,6 +835,7 @@
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-sdltest Do not try to compile and run a test SDL program
++ --enable-qtopia Make a Qtopia Version (Sharp Zaurus) of Frodo
+ --enable-kbd-lang-de Use german keyboard layout
+ --enable-kbd-lang-us Use american keyboard layout
+
+@@ -711,11 +867,13 @@
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+- cd $ac_dir
+- if test "$ac_dir" != .; then
+- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'`
++ test -d $ac_dir || continue
++ ac_builddir=.
++
++if test "$ac_dir" != .; then
++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+ else
+ ac_dir_suffix= ac_top_builddir=
+ fi
+@@ -735,7 +893,14 @@
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+ esac
++# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
++# absolute.
++ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
++ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
++ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
++ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
++ cd $ac_dir
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ echo
+@@ -758,7 +923,7 @@
+ if $ac_init_version; then
+ cat <<\_ACEOF
+
+-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
++Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+@@ -771,7 +936,7 @@
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by $as_me, which was
+-generated by GNU Autoconf 2.52d. Invocation command line was
++generated by GNU Autoconf 2.53. Invocation command line was
+
+ $ $0 $@
+
+@@ -799,18 +964,28 @@
+ /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+ /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+-PATH = $PATH
+-
+ _ASUNAME
++
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ echo "PATH: $as_dir"
++done
++
+ } >&5
+
+ cat >&5 <<_ACEOF
++
++
+ ## ----------- ##
+ ## Core tests. ##
+ ## ----------- ##
+
+ _ACEOF
+
++
+ # Keep a trace of the command line.
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell meta-characters.
+@@ -820,15 +995,17 @@
+ do
+ case $ac_arg in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+- | --no-cr | --no-c) ;;
++ | --no-cr | --no-c | -n ) continue ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
++ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+- ac_sep=" " ;;
+- *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
+- ac_sep=" " ;;
++ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
++ esac
++ case " $ac_configure_args " in
++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
++ *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
++ ac_sep=" " ;;
+ esac
+ # Get rid of the leading space.
+ done
+@@ -878,7 +1055,8 @@
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+- rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
++ rm -f core core.* *.core &&
++ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+ for ac_signal in 1 2 13 15; do
+@@ -891,6 +1069,33 @@
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo >confdefs.h
+
++# Predefined preprocessor variables.
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_NAME "$PACKAGE_NAME"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_VERSION "$PACKAGE_VERSION"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_STRING "$PACKAGE_STRING"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
++_ACEOF
++
++
+ # Let the site file select an alternate cache file if it wants to.
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+@@ -902,7 +1107,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+- { echo "$as_me:905: loading site script $ac_site_file" >&5
++ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+ echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+@@ -913,7 +1118,7 @@
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+- { echo "$as_me:916: loading cache $cache_file" >&5
++ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -921,7 +1126,7 @@
+ esac
+ fi
+ else
+- { echo "$as_me:924: creating cache $cache_file" >&5
++ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+ fi
+@@ -937,42 +1142,42 @@
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+- { echo "$as_me:940: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+- { echo "$as_me:944: error: \`$ac_var' was not set in the previous run" >&5
++ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+- { echo "$as_me:950: error: \`$ac_var' has changed since the previous run:" >&5
++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+ echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+- { echo "$as_me:952: former value: $ac_old_val" >&5
++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+ echo "$as_me: former value: $ac_old_val" >&2;}
+- { echo "$as_me:954: current value: $ac_new_val" >&5
++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+ echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+- # Pass precious variables to config.status. It doesn't matter if
+- # we pass some twice (in addition to the command line arguments).
++ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
+- ac_configure_args="$ac_configure_args '$ac_arg'"
+- ;;
+- *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
+- ;;
++ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
++ *) ac_arg=$ac_var=$ac_new_val ;;
++ esac
++ case " $ac_configure_args " in
++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
++ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+ done
+ if $ac_cache_corrupted; then
+- { echo "$as_me:973: error: changes in the environment can compromise the build" >&5
++ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- { { echo "$as_me:975: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -983,26 +1188,25 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+- *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T=' ' ;;
+- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-echo "#! $SHELL" >conftest.sh
+-echo "exit 0" >>conftest.sh
+-chmod +x conftest.sh
+-if { (echo "$as_me:995: PATH=\".;.\"; conftest.sh") >&5
+- (PATH=".;."; conftest.sh) 2>&5
+- ac_status=$?
+- echo "$as_me:998: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- ac_path_separator=';'
+-else
+- ac_path_separator=:
+-fi
+-PATH_SEPARATOR="$ac_path_separator"
+-rm -f conftest.sh
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -1012,7 +1216,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:1015: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1020,25 +1224,28 @@
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-echo "$as_me:1030: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_CC="${ac_tool_prefix}gcc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1038: result: $CC" >&5
++ echo "$as_me:$LINENO: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1041: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1047,7 +1254,7 @@
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-echo "$as_me:1050: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1055,25 +1262,28 @@
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="gcc"
+-echo "$as_me:1065: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_CC="gcc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1073: result: $ac_ct_CC" >&5
++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1076: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1086,7 +1296,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:1089: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1094,25 +1304,28 @@
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="${ac_tool_prefix}cc"
+-echo "$as_me:1104: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_CC="${ac_tool_prefix}cc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1112: result: $CC" >&5
++ echo "$as_me:$LINENO: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1115: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1121,7 +1334,7 @@
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1124: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1129,25 +1342,28 @@
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="cc"
+-echo "$as_me:1139: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_CC="cc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1147: result: $ac_ct_CC" >&5
++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1150: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1160,7 +1376,7 @@
+ if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1163: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1169,19 +1385,22 @@
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+ ac_prog_rejected=no
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+- ac_prog_rejected=yes
+- continue
+-fi
+-ac_cv_prog_CC="cc"
+-echo "$as_me:1183: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
++ ac_prog_rejected=yes
++ continue
++ fi
++ ac_cv_prog_CC="cc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ if test $ac_prog_rejected = yes; then
+@@ -1193,7 +1412,7 @@
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+- set dummy "$ac_dir/$ac_word" ${1+"$@"}
++ set dummy "$as_dir/$ac_word" ${1+"$@"}
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+@@ -1202,10 +1421,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1205: result: $CC" >&5
++ echo "$as_me:$LINENO: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1208: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1216,7 +1435,7 @@
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1219: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1224,25 +1443,28 @@
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1234: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1242: result: $CC" >&5
++ echo "$as_me:$LINENO: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1245: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1255,7 +1477,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1258: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1263,25 +1485,28 @@
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="$ac_prog"
+-echo "$as_me:1273: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_CC="$ac_prog"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1281: result: $ac_ct_CC" >&5
++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1284: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1293,32 +1518,33 @@
+
+ fi
+
+-test -z "$CC" && { { echo "$as_me:1296: error: no acceptable cc found in \$PATH" >&5
+-echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
++
++test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
++echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Provide some information about the compiler.
+-echo "$as_me:1301:" \
++echo "$as_me:$LINENO:" \
+ "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1304: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1307: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1309: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1312: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1314: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1317: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1321 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -1340,18 +1566,22 @@
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-echo "$as_me:1343: checking for C compiler default output" >&5
++echo "$as_me:$LINENO: checking for C compiler default output" >&5
+ echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:1346: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+- echo "$as_me:1349: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+ # not robust to junk in `.', hence go to wildcards (a.*) only as a last
+ # resort.
+-for ac_file in `ls a.exe conftest.exe 2>/dev/null;
++
++# Be careful to initialize this variable, since it used to be cached.
++# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
++ac_cv_exeext=
++for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
+ ls a.out conftest 2>/dev/null;
+ ls a.* conftest.* 2>/dev/null`; do
+ case $ac_file in
+@@ -1369,34 +1599,34 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1372: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
+ echo "$as_me: error: C compiler cannot create executables" >&2;}
+ { (exit 77); exit 77; }; }
+ fi
+
+ ac_exeext=$ac_cv_exeext
+-echo "$as_me:1378: result: $ac_file" >&5
++echo "$as_me:$LINENO: result: $ac_file" >&5
+ echo "${ECHO_T}$ac_file" >&6
+
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1383: checking whether the C compiler works" >&5
++echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+- { (eval echo "$as_me:1389: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1392: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+- { { echo "$as_me:1399: error: cannot run C compiled programs.
++ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&5
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&2;}
+@@ -1404,24 +1634,24 @@
+ fi
+ fi
+ fi
+-echo "$as_me:1407: result: yes" >&5
++echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+
+ rm -f a.out a.exe conftest$ac_cv_exeext
+ ac_clean_files=$ac_clean_files_save
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1414: checking whether we are cross compiling" >&5
++echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1416: result: $cross_compiling" >&5
++echo "$as_me:$LINENO: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+
+-echo "$as_me:1419: checking for executable suffix" >&5
+-echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1421: \"$ac_link\"") >&5
++echo "$as_me:$LINENO: checking for suffix of executables" >&5
++echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:1424: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+@@ -1437,25 +1667,25 @@
+ esac
+ done
+ else
+- { { echo "$as_me:1440: error: cannot compute EXEEXT: cannot compile and link" >&5
+-echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
++ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
++echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest$ac_cv_exeext
+-echo "$as_me:1446: result: $ac_cv_exeext" >&5
++echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+ echo "${ECHO_T}$ac_cv_exeext" >&6
+
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-echo "$as_me:1452: checking for object suffix" >&5
+-echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking for suffix of object files" >&5
++echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+ if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1458 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -1473,10 +1703,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1476: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1479: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+@@ -1488,24 +1718,24 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1491: error: cannot compute OBJEXT: cannot compile" >&5
+-echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
++{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
++echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1498: result: $ac_cv_objext" >&5
++echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1502: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1508 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -1526,16 +1756,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1529: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1532: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1535: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1538: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -1547,19 +1777,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:1550: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+ GCC=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="-g"
+-echo "$as_me:1556: checking whether $CC accepts -g" >&5
++echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+ echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1562 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -1577,16 +1807,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1580: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1583: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1586: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1589: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+ else
+@@ -1596,7 +1826,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1599: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+@@ -1623,16 +1853,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1626: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1629: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1632: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1635: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+@@ -1644,7 +1874,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1647 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -1663,16 +1893,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1666: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1669: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1672: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1675: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -1682,7 +1912,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1685 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ #ifdef F77_DUMMY_MAIN
+@@ -1700,16 +1930,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1703: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1706: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1709: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1712: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -1746,7 +1976,7 @@
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1749: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1754,25 +1984,28 @@
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1764: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ CXX=$ac_cv_prog_CXX
+ if test -n "$CXX"; then
+- echo "$as_me:1772: result: $CXX" >&5
++ echo "$as_me:$LINENO: result: $CXX" >&5
+ echo "${ECHO_T}$CXX" >&6
+ else
+- echo "$as_me:1775: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1785,7 +2018,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1788: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1793,25 +2026,28 @@
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+ else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CXX="$ac_prog"
+-echo "$as_me:1803: found $ac_dir/$ac_word" >&5
+-break
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_CXX="$ac_prog"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ fi
+ fi
+ ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+ if test -n "$ac_ct_CXX"; then
+- echo "$as_me:1811: result: $ac_ct_CXX" >&5
++ echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+ echo "${ECHO_T}$ac_ct_CXX" >&6
+ else
+- echo "$as_me:1814: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1822,33 +2058,34 @@
+ CXX=$ac_ct_CXX
+ fi
+
++
+ # Provide some information about the compiler.
+-echo "$as_me:1826:" \
++echo "$as_me:$LINENO:" \
+ "checking for C++ compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1829: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1832: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1834: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1837: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1839: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1842: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+-echo "$as_me:1845: checking whether we are using the GNU C++ compiler" >&5
++echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+ if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1851 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -1869,16 +2106,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1872: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1875: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1878: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1881: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -1890,19 +2127,19 @@
+ ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:1893: result: $ac_cv_cxx_compiler_gnu" >&5
++echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+ GXX=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CXXFLAGS=${CXXFLAGS+set}
+ ac_save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="-g"
+-echo "$as_me:1899: checking whether $CXX accepts -g" >&5
++echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+ echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1905 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -1920,16 +2157,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1923: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1926: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1929: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1932: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+ else
+@@ -1939,7 +2176,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1942: result: $ac_cv_prog_cxx_g" >&5
++echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+ if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+@@ -1966,7 +2203,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1969 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -1985,16 +2222,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1988: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1991: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1994: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1997: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -2004,7 +2241,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2007 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ #ifdef F77_DUMMY_MAIN
+@@ -2022,16 +2259,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2025: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2028: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2031: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2034: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -2058,7 +2295,7 @@
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-echo "$as_me:2061: checking how to run the C preprocessor" >&5
++echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+ echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+@@ -2079,18 +2316,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2082 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2087: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2093: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2113,17 +2350,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2116 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2120: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2126: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2160,7 +2397,7 @@
+ else
+ ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:2163: result: $CPP" >&5
++echo "$as_me:$LINENO: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -2170,18 +2407,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2173 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2178: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2184: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2204,17 +2441,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2207 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2211: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2217: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2242,7 +2479,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:2245: error: C preprocessor \"$CPP\" fails sanity check" >&5
++ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -2253,7 +2490,7 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+-echo "$as_me:2256: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+ if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+@@ -2273,15 +2510,16 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+- echo "$as_me:2276: result: yes" >&5
++ echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+ else
+- echo "$as_me:2280: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+ fi
+
++
+ if [ x"$GXX" = "xyes" ]; then
+ CFLAGS="-O2 -g -fomit-frame-pointer -Wall -Wno-unused -Wno-format"
+ fi
+@@ -2294,10 +2532,13 @@
+ HPUX_REV=`echo $UNAME_RELEASE | sed -e 's/^.*.0B*//' -e 's/\..*$//'`
+ fi
+
+-echo "$as_me:2297: checking for AIX" >&5
++
++
++
++echo "$as_me:$LINENO: checking for AIX" >&5
+ echo $ECHO_N "checking for AIX... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2300 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #ifdef _AIX
+ yes
+@@ -2306,44 +2547,130 @@
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "yes" >/dev/null 2>&1; then
+- echo "$as_me:2309: result: yes" >&5
++ echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ cat >>confdefs.h <<\_ACEOF
+ #define _ALL_SOURCE 1
+ _ACEOF
+
+ else
+- echo "$as_me:2316: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ rm -f conftest*
+
+-echo "$as_me:2321: checking for POSIXized ISC" >&5
+-echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
+-if test -d /etc/conf/kconfig.d &&
+- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+-then
+- echo "$as_me:2326: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- ISC=yes # If later tests want to check for ISC.
+
+-cat >>confdefs.h <<\_ACEOF
+-#define _POSIX_SOURCE 1
++echo "$as_me:$LINENO: checking for library containing strerror" >&5
++echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
++if test "${ac_cv_search_strerror+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_func_search_save_LIBS=$LIBS
++ac_cv_search_strerror=no
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char strerror ();
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++strerror ();
++ ;
++ return 0;
++}
+ _ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_search_strerror="none required"
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++if test "$ac_cv_search_strerror" = no; then
++ for ac_lib in cposix; do
++ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
+
+- if test "$GCC" = yes; then
+- CC="$CC -posix"
+- else
+- CC="$CC -Xp"
+- fi
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char strerror ();
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++strerror ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_search_strerror="-l$ac_lib"
++break
+ else
+- echo "$as_me:2340: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- ISC=
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ done
++fi
++LIBS=$ac_func_search_save_LIBS
+ fi
++echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
++echo "${ECHO_T}$ac_cv_search_strerror" >&6
++if test "$ac_cv_search_strerror" != no; then
++ test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
++
++fi
++
+
+ HAVE_BEBOX=no
+-echo "$as_me:2346: checking for OpenLibrary in -lamiga" >&5
++echo "$as_me:$LINENO: checking for OpenLibrary in -lamiga" >&5
+ echo $ECHO_N "checking for OpenLibrary in -lamiga... $ECHO_C" >&6
+ if test "${ac_cv_lib_amiga_OpenLibrary+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2351,7 +2678,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lamiga $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2354 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -2376,16 +2703,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2379: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2382: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:2385: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2388: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_amiga_OpenLibrary=yes
+ else
+@@ -2396,7 +2723,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:2399: result: $ac_cv_lib_amiga_OpenLibrary" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_amiga_OpenLibrary" >&5
+ echo "${ECHO_T}$ac_cv_lib_amiga_OpenLibrary" >&6
+ if test $ac_cv_lib_amiga_OpenLibrary = yes; then
+ HAVE_AMIGA_LIB=yes
+@@ -2404,7 +2731,7 @@
+ HAVE_AMIGA_LIB=no
+ fi
+
+-echo "$as_me:2407: checking for vga_setmode in -lvga" >&5
++echo "$as_me:$LINENO: checking for vga_setmode in -lvga" >&5
+ echo $ECHO_N "checking for vga_setmode in -lvga... $ECHO_C" >&6
+ if test "${ac_cv_lib_vga_vga_setmode+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2412,7 +2739,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lvga $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2415 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -2437,16 +2764,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2440: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2443: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:2446: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2449: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_vga_vga_setmode=yes
+ else
+@@ -2457,7 +2784,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:2460: result: $ac_cv_lib_vga_vga_setmode" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_vga_vga_setmode" >&5
+ echo "${ECHO_T}$ac_cv_lib_vga_vga_setmode" >&6
+ if test $ac_cv_lib_vga_vga_setmode = yes; then
+ HAVE_SVGA_LIB=yes
+@@ -2465,6 +2792,7 @@
+ HAVE_SVGA_LIB=no
+ fi
+
++
+ # Check whether --with-sdl-prefix or --without-sdl-prefix was given.
+ if test "${with_sdl_prefix+set}" = set; then
+ withval="$with_sdl_prefix"
+@@ -2503,7 +2831,7 @@
+
+ # Extract the first word of "sdl-config", so it can be a program name with args.
+ set dummy sdl-config; ac_word=$2
+-echo "$as_me:2506: checking for $ac_word" >&5
++echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_SDL_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2513,16 +2841,18 @@
+ ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_SDL_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:2523: found $ac_dir/$ac_word" >&5
+- break
+-fi
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
+ done
+
+ test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no"
+@@ -2532,15 +2862,15 @@
+ SDL_CONFIG=$ac_cv_path_SDL_CONFIG
+
+ if test -n "$SDL_CONFIG"; then
+- echo "$as_me:2535: result: $SDL_CONFIG" >&5
++ echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5
+ echo "${ECHO_T}$SDL_CONFIG" >&6
+ else
+- echo "$as_me:2538: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ min_sdl_version=1.2.0
+- echo "$as_me:2543: checking for SDL - version >= $min_sdl_version" >&5
++ echo "$as_me:$LINENO: checking for SDL - version >= $min_sdl_version" >&5
+ echo $ECHO_N "checking for SDL - version >= $min_sdl_version... $ECHO_C" >&6
+ no_sdl=""
+ if test "$SDL_CONFIG" = "no" ; then
+@@ -2565,7 +2895,7 @@
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2568 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -2624,23 +2954,25 @@
+ }
+ }
+
++
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:2629: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2632: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:2634: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2637: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
+ no_sdl=yes
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+@@ -2650,11 +2982,11 @@
+ fi
+ fi
+ if test "x$no_sdl" = x ; then
+- echo "$as_me:2653: result: yes" >&5
++ echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ HAVE_SDL=yes
+ else
+- echo "$as_me:2657: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ if test "$SDL_CONFIG" = "no" ; then
+ echo "*** The sdl-config script installed by SDL could not be found"
+@@ -2669,7 +3001,7 @@
+ CFLAGS="$CFLAGS $SDL_CFLAGS"
+ LIBS="$LIBS $SDL_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2672 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -2690,16 +3022,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2693: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2696: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:2699: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2702: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding SDL or finding the wrong"
+@@ -2728,11 +3060,14 @@
+ HAVE_SDL=no
+ fi
+
++
+ rm -f conf.sdltest
+
+-echo "$as_me:2733: checking for X" >&5
++
++echo "$as_me:$LINENO: checking for X" >&5
+ echo $ECHO_N "checking for X... $ECHO_C" >&6
+
++
+ # Check whether --with-x or --without-x was given.
+ if test "${with_x+set}" = set; then
+ withval="$with_x"
+@@ -2827,17 +3162,17 @@
+ # Guess where to find include files, by looking for Intrinsic.h.
+ # First, try using that file with no special directory specified.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2830 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <X11/Intrinsic.h>
+ _ACEOF
+-if { (eval echo "$as_me:2834: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2840: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2870,7 +3205,7 @@
+ ac_save_LIBS=$LIBS
+ LIBS="-lXt $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2873 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <X11/Intrinsic.h>
+ #ifdef F77_DUMMY_MAIN
+@@ -2888,16 +3223,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2891: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2894: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:2897: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2900: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ LIBS=$ac_save_LIBS
+ # We can link X programs with no special library path.
+@@ -2935,7 +3270,7 @@
+ fi # $with_x != no
+
+ if test "$have_x" != yes; then
+- echo "$as_me:2938: result: $have_x" >&5
++ echo "$as_me:$LINENO: result: $have_x" >&5
+ echo "${ECHO_T}$have_x" >&6
+ no_x=yes
+ else
+@@ -2945,7 +3280,7 @@
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes \
+ ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
+- echo "$as_me:2948: result: libraries $x_libraries, headers $x_includes" >&5
++ echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
+ echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
+ fi
+
+@@ -2969,11 +3304,11 @@
+ # others require no space. Words are not sufficient . . . .
+ case `(uname -sr) 2>/dev/null` in
+ "SunOS 5"*)
+- echo "$as_me:2972: checking whether -R must be followed by a space" >&5
++ echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5
+ echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2976 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -2991,16 +3326,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2994: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2997: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3000: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3003: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_R_nospace=yes
+ else
+@@ -3010,13 +3345,13 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ if test $ac_R_nospace = yes; then
+- echo "$as_me:3013: result: no" >&5
++ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ X_LIBS="$X_LIBS -R$x_libraries"
+ else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3019 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -3034,16 +3369,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3037: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3040: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3043: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3046: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_R_space=yes
+ else
+@@ -3053,11 +3388,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ if test $ac_R_space = yes; then
+- echo "$as_me:3056: result: yes" >&5
++ echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ X_LIBS="$X_LIBS -R $x_libraries"
+ else
+- echo "$as_me:3060: result: neither works" >&5
++ echo "$as_me:$LINENO: result: neither works" >&5
+ echo "${ECHO_T}neither works" >&6
+ fi
+ fi
+@@ -3077,7 +3412,7 @@
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3080 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3102,22 +3437,22 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3105: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3108: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3111: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3114: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:3120: checking for dnet_ntoa in -ldnet" >&5
++echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
+ echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+ if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3125,7 +3460,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldnet $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3128 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3150,16 +3485,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3153: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3156: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3159: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3162: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dnet_dnet_ntoa=yes
+ else
+@@ -3170,14 +3505,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3173: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+ echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+ if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+ fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+- echo "$as_me:3180: checking for dnet_ntoa in -ldnet_stub" >&5
++ echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
+ echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+ if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3185,7 +3520,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldnet_stub $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3188 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3210,16 +3545,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3213: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3216: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3219: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3222: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+ else
+@@ -3230,7 +3565,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3233: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+ echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+ if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+@@ -3249,13 +3584,13 @@
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+- echo "$as_me:3252: checking for gethostbyname" >&5
++ echo "$as_me:$LINENO: checking for gethostbyname" >&5
+ echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+ if test "${ac_cv_func_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3258 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gethostbyname (); below. */
+@@ -3292,16 +3627,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3295: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3298: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3301: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3304: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_gethostbyname=yes
+ else
+@@ -3311,11 +3646,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:3314: result: $ac_cv_func_gethostbyname" >&5
++echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+ echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+
+ if test $ac_cv_func_gethostbyname = no; then
+- echo "$as_me:3318: checking for gethostbyname in -lnsl" >&5
++ echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
+ echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+ if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3323,7 +3658,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lnsl $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3326 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3348,16 +3683,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3351: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3354: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3357: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3360: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_nsl_gethostbyname=yes
+ else
+@@ -3368,14 +3703,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3371: result: $ac_cv_lib_nsl_gethostbyname" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
+ echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+ if test $ac_cv_lib_nsl_gethostbyname = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+ fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+- echo "$as_me:3378: checking for gethostbyname in -lbsd" >&5
++ echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
+ echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3383,7 +3718,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3386 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3408,16 +3743,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3411: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3414: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3417: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3420: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_bsd_gethostbyname=yes
+ else
+@@ -3428,7 +3763,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3431: result: $ac_cv_lib_bsd_gethostbyname" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+ if test $ac_cv_lib_bsd_gethostbyname = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+@@ -3444,13 +3779,13 @@
+ # variants that don't use the nameserver (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+- echo "$as_me:3447: checking for connect" >&5
++ echo "$as_me:$LINENO: checking for connect" >&5
+ echo $ECHO_N "checking for connect... $ECHO_C" >&6
+ if test "${ac_cv_func_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3453 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char connect (); below. */
+@@ -3487,16 +3822,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3490: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3493: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3496: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3499: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_connect=yes
+ else
+@@ -3506,11 +3841,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:3509: result: $ac_cv_func_connect" >&5
++echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
+ echo "${ECHO_T}$ac_cv_func_connect" >&6
+
+ if test $ac_cv_func_connect = no; then
+- echo "$as_me:3513: checking for connect in -lsocket" >&5
++ echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
+ echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+ if test "${ac_cv_lib_socket_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3518,7 +3853,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3521 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3543,16 +3878,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3546: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3549: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3552: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3555: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_socket_connect=yes
+ else
+@@ -3563,7 +3898,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3566: result: $ac_cv_lib_socket_connect" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
+ echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+ if test $ac_cv_lib_socket_connect = yes; then
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+@@ -3572,13 +3907,13 @@
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+- echo "$as_me:3575: checking for remove" >&5
++ echo "$as_me:$LINENO: checking for remove" >&5
+ echo $ECHO_N "checking for remove... $ECHO_C" >&6
+ if test "${ac_cv_func_remove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3581 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char remove (); below. */
+@@ -3615,16 +3950,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3618: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3621: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3624: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3627: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_remove=yes
+ else
+@@ -3634,11 +3969,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:3637: result: $ac_cv_func_remove" >&5
++echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
+ echo "${ECHO_T}$ac_cv_func_remove" >&6
+
+ if test $ac_cv_func_remove = no; then
+- echo "$as_me:3641: checking for remove in -lposix" >&5
++ echo "$as_me:$LINENO: checking for remove in -lposix" >&5
+ echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+ if test "${ac_cv_lib_posix_remove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3646,7 +3981,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lposix $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3649 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3671,16 +4006,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3674: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3677: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3680: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3683: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_posix_remove=yes
+ else
+@@ -3691,7 +4026,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3694: result: $ac_cv_lib_posix_remove" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
+ echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+ if test $ac_cv_lib_posix_remove = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+@@ -3700,13 +4035,13 @@
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+- echo "$as_me:3703: checking for shmat" >&5
++ echo "$as_me:$LINENO: checking for shmat" >&5
+ echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+ if test "${ac_cv_func_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3709 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shmat (); below. */
+@@ -3743,16 +4078,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3746: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3749: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3752: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3755: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shmat=yes
+ else
+@@ -3762,11 +4097,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:3765: result: $ac_cv_func_shmat" >&5
++echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
+ echo "${ECHO_T}$ac_cv_func_shmat" >&6
+
+ if test $ac_cv_func_shmat = no; then
+- echo "$as_me:3769: checking for shmat in -lipc" >&5
++ echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
+ echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+ if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3774,7 +4109,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lipc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3777 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3799,16 +4134,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3802: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3805: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3808: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3811: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_ipc_shmat=yes
+ else
+@@ -3819,7 +4154,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3822: result: $ac_cv_lib_ipc_shmat" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
+ echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+ if test $ac_cv_lib_ipc_shmat = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+@@ -3837,7 +4172,7 @@
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+- echo "$as_me:3840: checking for IceConnectionNumber in -lICE" >&5
++ echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
+ echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+ if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3845,7 +4180,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3848 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3870,16 +4205,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3873: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3876: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3879: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3882: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+ else
+@@ -3890,7 +4225,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:3893: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
++echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+ echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+ if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+@@ -3902,16 +4237,22 @@
+
+ ac_config_headers="$ac_config_headers sysconfig.h"
+
++
++
++
++
++
++
+ ac_header_dirent=no
+ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+-echo "$as_me:3908: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+ echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3914 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -3932,16 +4273,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3935: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3938: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3941: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3944: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+ else
+@@ -3951,7 +4292,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:3954: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+@@ -3964,15 +4305,15 @@
+ done
+ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+ if test $ac_header_dirent = dirent.h; then
+- echo "$as_me:3967: checking for opendir in -ldir" >&5
+-echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+-if test "${ac_cv_lib_dir_opendir+set}" = set; then
++ echo "$as_me:$LINENO: checking for library containing opendir" >&5
++echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
++if test "${ac_cv_search_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-ldir $LIBS"
++ ac_func_search_save_LIBS=$LIBS
++ac_cv_search_opendir=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3975 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -3997,42 +4338,91 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4000: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4003: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4006: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4009: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_dir_opendir=yes
++ ac_cv_search_opendir="none required"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_dir_opendir=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++if test "$ac_cv_search_opendir" = no; then
++ for ac_lib in dir; do
++ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char opendir ();
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++opendir ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_search_opendir="-l$ac_lib"
++break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
+ fi
+-echo "$as_me:4020: result: $ac_cv_lib_dir_opendir" >&5
+-echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+-if test $ac_cv_lib_dir_opendir = yes; then
+- LIBS="$LIBS -ldir"
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ done
++fi
++LIBS=$ac_func_search_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
++echo "${ECHO_T}$ac_cv_search_opendir" >&6
++if test "$ac_cv_search_opendir" != no; then
++ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
++
+ fi
+
+ else
+- echo "$as_me:4027: checking for opendir in -lx" >&5
+-echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+-if test "${ac_cv_lib_x_opendir+set}" = set; then
++ echo "$as_me:$LINENO: checking for library containing opendir" >&5
++echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
++if test "${ac_cv_search_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lx $LIBS"
++ ac_func_search_save_LIBS=$LIBS
++ac_cv_search_opendir=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4035 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -4057,41 +4447,90 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4060: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4063: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4066: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4069: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_x_opendir=yes
++ ac_cv_search_opendir="none required"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_x_opendir=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++if test "$ac_cv_search_opendir" = no; then
++ for ac_lib in x; do
++ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char opendir ();
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++opendir ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_search_opendir="-l$ac_lib"
++break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ done
+ fi
+-echo "$as_me:4080: result: $ac_cv_lib_x_opendir" >&5
+-echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+-if test $ac_cv_lib_x_opendir = yes; then
+- LIBS="$LIBS -lx"
++LIBS=$ac_func_search_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
++echo "${ECHO_T}$ac_cv_search_opendir" >&6
++if test "$ac_cv_search_opendir" != no; then
++ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
++
+ fi
+
+ fi
+
+-echo "$as_me:4088: checking for ANSI C header files" >&5
++echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4094 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -4099,13 +4538,13 @@
+ #include <float.h>
+
+ _ACEOF
+-if { (eval echo "$as_me:4102: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:4108: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4127,7 +4566,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4130 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <string.h>
+
+@@ -4145,7 +4584,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4148 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+
+@@ -4166,7 +4605,7 @@
+ :
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4169 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -4192,28 +4631,29 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:4195: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4198: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:4200: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4203: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
+ ac_cv_header_stdc=no
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+ fi
+-echo "$as_me:4216: result: $ac_cv_header_stdc" >&5
++echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+
+@@ -4225,33 +4665,41 @@
+
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
++
++
++
++
++
++
++
++
+ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:4232: checking for $ac_header" >&5
++echo "$as_me:$LINENO: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4238 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4245: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4248: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4251: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4254: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+ else
+@@ -4261,7 +4709,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:4264: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+@@ -4272,38 +4720,48 @@
+
+ done
+
++
++
++
++
++
++
++
++
++
++
+ for ac_header in unistd.h fcntl.h sys/time.h sys/types.h utime.h string.h strings.h values.h ncurses.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+- echo "$as_me:4279: checking for $ac_header" >&5
++ echo "$as_me:$LINENO: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ fi
+-echo "$as_me:4284: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ else
+ # Is the header compilable?
+-echo "$as_me:4288: checking $ac_header usability" >&5
++echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4291 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4297: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4300: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4303: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4306: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+ else
+@@ -4312,24 +4770,24 @@
+ ac_header_compiler=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:4315: result: $ac_header_compiler" >&5
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ echo "${ECHO_T}$ac_header_compiler" >&6
+
+ # Is the header present?
+-echo "$as_me:4319: checking $ac_header presence" >&5
++echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4322 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:4326: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:4332: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4347,32 +4805,32 @@
+ ac_header_preproc=no
+ fi
+ rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:4350: result: $ac_header_preproc" >&5
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ echo "${ECHO_T}$ac_header_preproc" >&6
+
+ # So? What about this header?
+ case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+- { echo "$as_me:4356: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+- { echo "$as_me:4358: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+ no:yes )
+- { echo "$as_me:4361: WARNING: $ac_header: present but cannot be compiled." >&5
+-echo "$as_me: WARNING: $ac_header: present but cannot be compiled." >&2;}
+- { echo "$as_me:4363: WARNING: $ac_header: check for missing prerequisite headers?" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
++echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+ echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+- { echo "$as_me:4365: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+ esac
+-echo "$as_me:4368: checking for $ac_header" >&5
++echo "$as_me:$LINENO: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ eval "$as_ac_Header=$ac_header_preproc"
+ fi
+-echo "$as_me:4375: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+ fi
+@@ -4385,38 +4843,46 @@
+
+ done
+
++
++
++
++
++
++
++
++
+ for ac_header in sys/vfs.h sys/mount.h sys/select.h sys/param.h sys/statfs.h sys/statvfs.h sys/stat.h linux/joystick.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+- echo "$as_me:4392: checking for $ac_header" >&5
++ echo "$as_me:$LINENO: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ fi
+-echo "$as_me:4397: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ else
+ # Is the header compilable?
+-echo "$as_me:4401: checking $ac_header usability" >&5
++echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4404 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4410: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4413: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4416: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4419: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+ else
+@@ -4425,24 +4891,24 @@
+ ac_header_compiler=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:4428: result: $ac_header_compiler" >&5
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ echo "${ECHO_T}$ac_header_compiler" >&6
+
+ # Is the header present?
+-echo "$as_me:4432: checking $ac_header presence" >&5
++echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4435 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:4439: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:4445: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4460,32 +4926,32 @@
+ ac_header_preproc=no
+ fi
+ rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:4463: result: $ac_header_preproc" >&5
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ echo "${ECHO_T}$ac_header_preproc" >&6
+
+ # So? What about this header?
+ case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+- { echo "$as_me:4469: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+- { echo "$as_me:4471: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+ no:yes )
+- { echo "$as_me:4474: WARNING: $ac_header: present but cannot be compiled." >&5
+-echo "$as_me: WARNING: $ac_header: present but cannot be compiled." >&2;}
+- { echo "$as_me:4476: WARNING: $ac_header: check for missing prerequisite headers?" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
++echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+ echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+- { echo "$as_me:4478: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+ esac
+-echo "$as_me:4481: checking for $ac_header" >&5
++echo "$as_me:$LINENO: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ eval "$as_ac_Header=$ac_header_preproc"
+ fi
+-echo "$as_me:4488: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+ fi
+@@ -4498,13 +4964,14 @@
+
+ done
+
+-echo "$as_me:4501: checking for char" >&5
++
++echo "$as_me:$LINENO: checking for char" >&5
+ echo $ECHO_N "checking for char... $ECHO_C" >&6
+ if test "${ac_cv_type_char+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4507 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4525,16 +4992,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4528: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4531: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4534: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4537: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_char=yes
+ else
+@@ -4544,19 +5011,23 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:4547: result: $ac_cv_type_char" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5
+ echo "${ECHO_T}$ac_cv_type_char" >&6
+
+-echo "$as_me:4550: checking size of char" >&5
++echo "$as_me:$LINENO: checking size of char" >&5
+ echo $ECHO_N "checking size of char... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_char+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$ac_cv_type_char" = yes; then
++ # The cast to unsigned long works around a bug in the HP C Compiler
++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
++ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4559 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4568,27 +5039,29 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (char)) >= 0)]
++static int test_array [1 - 2 * !(((long) (sizeof (char))) >= 0)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4577: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4580: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4583: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4586: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4591 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4600,38 +5073,77 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (char)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4609: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4612: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4615: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4618: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
++ac_lo=`expr $ac_mid + 1`
++ if test $ac_lo -le $ac_mid; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=-1 ac_mid=-1
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++$ac_includes_default
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++static int test_array [1 - 2 * !(((long) (sizeof (char))) < 0)];
++test_array [0] = 0
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4634 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4643,38 +5155,51 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (char)) >= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4652: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4655: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4658: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4661: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
++ac_hi=`expr '(' $ac_mid ')' - 1`
++ if test $ac_mid -le $ac_hi; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo= ac_hi=
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ # Binary search between lo and hi bounds.
+ while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4677 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4686,42 +5211,53 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (char)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4695: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4698: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4701: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4704: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`
++ac_lo=`expr '(' $ac_mid ')' + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+-ac_cv_sizeof_char=$ac_lo
++case $ac_lo in
++?*) ac_cv_sizeof_char=$ac_lo;;
++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77" >&5
++echo "$as_me: error: cannot compute sizeof (char), 77" >&2;}
++ { (exit 1); exit 1; }; } ;;
++esac
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:4717: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4722 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
++long longval () { return (long) (sizeof (char)); }
++unsigned long ulongval () { return (long) (sizeof (char)); }
++#include <stdio.h>
++#include <stdlib.h>
+ #ifdef F77_DUMMY_MAIN
+ # ifdef __cplusplus
+ extern "C"
+@@ -4731,31 +5267,50 @@
+ int
+ main ()
+ {
+-FILE *f = fopen ("conftest.val", "w");
+-if (!f)
+- exit (1);
+-fprintf (f, "%d", (sizeof (char)));
+-fclose (f);
++
++ FILE *f = fopen ("conftest.val", "w");
++ if (! f)
++ exit (1);
++ if (((long) (sizeof (char))) < 0)
++ {
++ long i = longval ();
++ if (i != ((long) (sizeof (char))))
++ exit (1);
++ fprintf (f, "%ld\n", i);
++ }
++ else
++ {
++ unsigned long i = ulongval ();
++ if (i != ((long) (sizeof (char))))
++ exit (1);
++ fprintf (f, "%lu\n", i);
++ }
++ exit (ferror (f) || fclose (f) != 0);
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:4744: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4747: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:4749: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4752: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_char=`cat conftest.val`
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77" >&5
++echo "$as_me: error: cannot compute sizeof (char), 77" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -4765,19 +5320,20 @@
+ ac_cv_sizeof_char=0
+ fi
+ fi
+-echo "$as_me:4768: result: $ac_cv_sizeof_char" >&5
++echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_char" >&6
+ cat >>confdefs.h <<_ACEOF
+ #define SIZEOF_CHAR $ac_cv_sizeof_char
+ _ACEOF
+
+-echo "$as_me:4774: checking for short" >&5
++
++echo "$as_me:$LINENO: checking for short" >&5
+ echo $ECHO_N "checking for short... $ECHO_C" >&6
+ if test "${ac_cv_type_short+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4780 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4798,16 +5354,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4801: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4804: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4807: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4810: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_short=yes
+ else
+@@ -4817,19 +5373,23 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:4820: result: $ac_cv_type_short" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5
+ echo "${ECHO_T}$ac_cv_type_short" >&6
+
+-echo "$as_me:4823: checking size of short" >&5
++echo "$as_me:$LINENO: checking size of short" >&5
+ echo $ECHO_N "checking size of short... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_short+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$ac_cv_type_short" = yes; then
++ # The cast to unsigned long works around a bug in the HP C Compiler
++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
++ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4832 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4841,27 +5401,29 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (short)) >= 0)]
++static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4850: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4853: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4856: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4859: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4864 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4873,38 +5435,77 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (short)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4882: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4885: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4888: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4891: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
++ac_lo=`expr $ac_mid + 1`
++ if test $ac_lo -le $ac_mid; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=-1 ac_mid=-1
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++$ac_includes_default
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)];
++test_array [0] = 0
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4907 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4916,38 +5517,51 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (short)) >= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4925: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4928: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4931: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4934: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
++ac_hi=`expr '(' $ac_mid ')' - 1`
++ if test $ac_mid -le $ac_hi; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo= ac_hi=
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ # Binary search between lo and hi bounds.
+ while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4950 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -4959,42 +5573,53 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (short)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4968: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4971: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4974: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4977: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`
++ac_lo=`expr '(' $ac_mid ')' + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+-ac_cv_sizeof_short=$ac_lo
++case $ac_lo in
++?*) ac_cv_sizeof_short=$ac_lo;;
++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77" >&5
++echo "$as_me: error: cannot compute sizeof (short), 77" >&2;}
++ { (exit 1); exit 1; }; } ;;
++esac
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:4990: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4995 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
++long longval () { return (long) (sizeof (short)); }
++unsigned long ulongval () { return (long) (sizeof (short)); }
++#include <stdio.h>
++#include <stdlib.h>
+ #ifdef F77_DUMMY_MAIN
+ # ifdef __cplusplus
+ extern "C"
+@@ -5004,31 +5629,50 @@
+ int
+ main ()
+ {
+-FILE *f = fopen ("conftest.val", "w");
+-if (!f)
+- exit (1);
+-fprintf (f, "%d", (sizeof (short)));
+-fclose (f);
++
++ FILE *f = fopen ("conftest.val", "w");
++ if (! f)
++ exit (1);
++ if (((long) (sizeof (short))) < 0)
++ {
++ long i = longval ();
++ if (i != ((long) (sizeof (short))))
++ exit (1);
++ fprintf (f, "%ld\n", i);
++ }
++ else
++ {
++ unsigned long i = ulongval ();
++ if (i != ((long) (sizeof (short))))
++ exit (1);
++ fprintf (f, "%lu\n", i);
++ }
++ exit (ferror (f) || fclose (f) != 0);
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5017: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5020: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:5022: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5025: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_short=`cat conftest.val`
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77" >&5
++echo "$as_me: error: cannot compute sizeof (short), 77" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -5038,19 +5682,20 @@
+ ac_cv_sizeof_short=0
+ fi
+ fi
+-echo "$as_me:5041: result: $ac_cv_sizeof_short" >&5
++echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_short" >&6
+ cat >>confdefs.h <<_ACEOF
+ #define SIZEOF_SHORT $ac_cv_sizeof_short
+ _ACEOF
+
+-echo "$as_me:5047: checking for int" >&5
++
++echo "$as_me:$LINENO: checking for int" >&5
+ echo $ECHO_N "checking for int... $ECHO_C" >&6
+ if test "${ac_cv_type_int+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5053 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5071,16 +5716,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5074: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5077: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5080: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5083: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_int=yes
+ else
+@@ -5090,19 +5735,23 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:5093: result: $ac_cv_type_int" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
+ echo "${ECHO_T}$ac_cv_type_int" >&6
+
+-echo "$as_me:5096: checking size of int" >&5
++echo "$as_me:$LINENO: checking size of int" >&5
+ echo $ECHO_N "checking size of int... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_int+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$ac_cv_type_int" = yes; then
++ # The cast to unsigned long works around a bug in the HP C Compiler
++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
++ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5105 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5114,27 +5763,77 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (int)) >= 0)]
++static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5123: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5126: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5129: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5132: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5137 "configure"
++#line $LINENO "configure"
++#include "confdefs.h"
++$ac_includes_default
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
++test_array [0] = 0
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=$ac_mid; break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo=`expr $ac_mid + 1`
++ if test $ac_lo -le $ac_mid; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid + 1`
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5146,38 +5845,29 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (int)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5155: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5158: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5161: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5164: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_hi=$ac_mid; break
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- done
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_hi=-1 ac_mid=-1
++ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5180 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5189,38 +5879,51 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (int)) >= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5198: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5201: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5204: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5207: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
++ac_hi=`expr '(' $ac_mid ')' - 1`
++ if test $ac_mid -le $ac_hi; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo= ac_hi=
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ # Binary search between lo and hi bounds.
+ while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5223 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5232,42 +5935,53 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (int)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5241: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5244: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5247: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5250: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`
++ac_lo=`expr '(' $ac_mid ')' + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+-ac_cv_sizeof_int=$ac_lo
++case $ac_lo in
++?*) ac_cv_sizeof_int=$ac_lo;;
++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77" >&5
++echo "$as_me: error: cannot compute sizeof (int), 77" >&2;}
++ { (exit 1); exit 1; }; } ;;
++esac
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:5263: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5268 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
++long longval () { return (long) (sizeof (int)); }
++unsigned long ulongval () { return (long) (sizeof (int)); }
++#include <stdio.h>
++#include <stdlib.h>
+ #ifdef F77_DUMMY_MAIN
+ # ifdef __cplusplus
+ extern "C"
+@@ -5277,31 +5991,50 @@
+ int
+ main ()
+ {
+-FILE *f = fopen ("conftest.val", "w");
+-if (!f)
+- exit (1);
+-fprintf (f, "%d", (sizeof (int)));
+-fclose (f);
++
++ FILE *f = fopen ("conftest.val", "w");
++ if (! f)
++ exit (1);
++ if (((long) (sizeof (int))) < 0)
++ {
++ long i = longval ();
++ if (i != ((long) (sizeof (int))))
++ exit (1);
++ fprintf (f, "%ld\n", i);
++ }
++ else
++ {
++ unsigned long i = ulongval ();
++ if (i != ((long) (sizeof (int))))
++ exit (1);
++ fprintf (f, "%lu\n", i);
++ }
++ exit (ferror (f) || fclose (f) != 0);
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5290: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5293: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:5295: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5298: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_int=`cat conftest.val`
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77" >&5
++echo "$as_me: error: cannot compute sizeof (int), 77" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -5311,19 +6044,20 @@
+ ac_cv_sizeof_int=0
+ fi
+ fi
+-echo "$as_me:5314: result: $ac_cv_sizeof_int" >&5
++echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_int" >&6
+ cat >>confdefs.h <<_ACEOF
+ #define SIZEOF_INT $ac_cv_sizeof_int
+ _ACEOF
+
+-echo "$as_me:5320: checking for long" >&5
++
++echo "$as_me:$LINENO: checking for long" >&5
+ echo $ECHO_N "checking for long... $ECHO_C" >&6
+ if test "${ac_cv_type_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5326 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5344,16 +6078,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5347: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5350: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5353: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5356: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_long=yes
+ else
+@@ -5363,19 +6097,23 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:5366: result: $ac_cv_type_long" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
+ echo "${ECHO_T}$ac_cv_type_long" >&6
+
+-echo "$as_me:5369: checking size of long" >&5
++echo "$as_me:$LINENO: checking size of long" >&5
+ echo $ECHO_N "checking size of long... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$ac_cv_type_long" = yes; then
++ # The cast to unsigned long works around a bug in the HP C Compiler
++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
++ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5378 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5387,27 +6125,29 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long)) >= 0)]
++static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5396: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5399: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5402: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5405: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5410 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5419,38 +6159,77 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5428: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5431: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5434: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5437: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
++ac_lo=`expr $ac_mid + 1`
++ if test $ac_lo -le $ac_mid; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=-1 ac_mid=-1
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++$ac_includes_default
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
++test_array [0] = 0
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5453 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5462,38 +6241,51 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long)) >= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5471: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5474: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5477: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5480: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
++ac_hi=`expr '(' $ac_mid ')' - 1`
++ if test $ac_mid -le $ac_hi; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo= ac_hi=
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ # Binary search between lo and hi bounds.
+ while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5496 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5505,42 +6297,53 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5514: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5517: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5520: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5523: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`
++ac_lo=`expr '(' $ac_mid ')' + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+-ac_cv_sizeof_long=$ac_lo
++case $ac_lo in
++?*) ac_cv_sizeof_long=$ac_lo;;
++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77" >&5
++echo "$as_me: error: cannot compute sizeof (long), 77" >&2;}
++ { (exit 1); exit 1; }; } ;;
++esac
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:5536: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5541 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
++long longval () { return (long) (sizeof (long)); }
++unsigned long ulongval () { return (long) (sizeof (long)); }
++#include <stdio.h>
++#include <stdlib.h>
+ #ifdef F77_DUMMY_MAIN
+ # ifdef __cplusplus
+ extern "C"
+@@ -5550,31 +6353,50 @@
+ int
+ main ()
+ {
+-FILE *f = fopen ("conftest.val", "w");
+-if (!f)
+- exit (1);
+-fprintf (f, "%d", (sizeof (long)));
+-fclose (f);
++
++ FILE *f = fopen ("conftest.val", "w");
++ if (! f)
++ exit (1);
++ if (((long) (sizeof (long))) < 0)
++ {
++ long i = longval ();
++ if (i != ((long) (sizeof (long))))
++ exit (1);
++ fprintf (f, "%ld\n", i);
++ }
++ else
++ {
++ unsigned long i = ulongval ();
++ if (i != ((long) (sizeof (long))))
++ exit (1);
++ fprintf (f, "%lu\n", i);
++ }
++ exit (ferror (f) || fclose (f) != 0);
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5563: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5566: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:5568: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5571: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_long=`cat conftest.val`
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77" >&5
++echo "$as_me: error: cannot compute sizeof (long), 77" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -5584,19 +6406,20 @@
+ ac_cv_sizeof_long=0
+ fi
+ fi
+-echo "$as_me:5587: result: $ac_cv_sizeof_long" >&5
++echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_long" >&6
+ cat >>confdefs.h <<_ACEOF
+ #define SIZEOF_LONG $ac_cv_sizeof_long
+ _ACEOF
+
+-echo "$as_me:5593: checking for long long" >&5
++
++echo "$as_me:$LINENO: checking for long long" >&5
+ echo $ECHO_N "checking for long long... $ECHO_C" >&6
+ if test "${ac_cv_type_long_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5599 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5617,16 +6440,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5620: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5623: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5626: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5629: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_long_long=yes
+ else
+@@ -5636,19 +6459,23 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:5639: result: $ac_cv_type_long_long" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5
+ echo "${ECHO_T}$ac_cv_type_long_long" >&6
+
+-echo "$as_me:5642: checking size of long long" >&5
++echo "$as_me:$LINENO: checking size of long long" >&5
+ echo $ECHO_N "checking size of long long... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_long_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$ac_cv_type_long_long" = yes; then
++ # The cast to unsigned long works around a bug in the HP C Compiler
++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
++ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5651 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5660,27 +6487,29 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long long)) >= 0)]
++static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= 0)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5669: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5672: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5675: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5678: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5683 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5692,38 +6521,77 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long long)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5701: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5704: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5707: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5710: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
++ac_lo=`expr $ac_mid + 1`
++ if test $ac_lo -le $ac_mid; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=-1 ac_mid=-1
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++$ac_includes_default
++#ifdef F77_DUMMY_MAIN
++# ifdef __cplusplus
++ extern "C"
++# endif
++ int F77_DUMMY_MAIN() { return 1; }
++#endif
++int
++main ()
++{
++static int test_array [1 - 2 * !(((long) (sizeof (long long))) < 0)];
++test_array [0] = 0
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5726 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5735,38 +6603,51 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long long)) >= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5744: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5747: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5750: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5753: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
++ac_hi=`expr '(' $ac_mid ')' - 1`
++ if test $ac_mid -le $ac_hi; then
++ ac_lo= ac_hi=
++ break
++ fi
++ ac_mid=`expr 2 '*' $ac_mid`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo= ac_hi=
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ # Binary search between lo and hi bounds.
+ while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5769 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -5778,42 +6659,53 @@
+ int
+ main ()
+ {
+-int _array_ [1 - 2 * !((sizeof (long long)) <= $ac_mid)]
++static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)];
++test_array [0] = 0
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5787: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5790: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5793: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5796: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_lo=`expr $ac_mid + 1`
++ac_lo=`expr '(' $ac_mid ')' + 1`
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+-ac_cv_sizeof_long_long=$ac_lo
++case $ac_lo in
++?*) ac_cv_sizeof_long_long=$ac_lo;;
++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77" >&5
++echo "$as_me: error: cannot compute sizeof (long long), 77" >&2;}
++ { (exit 1); exit 1; }; } ;;
++esac
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:5809: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5814 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
++long longval () { return (long) (sizeof (long long)); }
++unsigned long ulongval () { return (long) (sizeof (long long)); }
++#include <stdio.h>
++#include <stdlib.h>
+ #ifdef F77_DUMMY_MAIN
+ # ifdef __cplusplus
+ extern "C"
+@@ -5823,31 +6715,50 @@
+ int
+ main ()
+ {
+-FILE *f = fopen ("conftest.val", "w");
+-if (!f)
+- exit (1);
+-fprintf (f, "%d", (sizeof (long long)));
+-fclose (f);
++
++ FILE *f = fopen ("conftest.val", "w");
++ if (! f)
++ exit (1);
++ if (((long) (sizeof (long long))) < 0)
++ {
++ long i = longval ();
++ if (i != ((long) (sizeof (long long))))
++ exit (1);
++ fprintf (f, "%ld\n", i);
++ }
++ else
++ {
++ unsigned long i = ulongval ();
++ if (i != ((long) (sizeof (long long))))
++ exit (1);
++ fprintf (f, "%lu\n", i);
++ }
++ exit (ferror (f) || fclose (f) != 0);
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5836: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5839: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:5841: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5844: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_long_long=`cat conftest.val`
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77" >&5
++echo "$as_me: error: cannot compute sizeof (long long), 77" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+@@ -5857,13 +6768,15 @@
+ ac_cv_sizeof_long_long=0
+ fi
+ fi
+-echo "$as_me:5860: result: $ac_cv_sizeof_long_long" >&5
++echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6
+ cat >>confdefs.h <<_ACEOF
+ #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
+ _ACEOF
+
+-echo "$as_me:5866: checking for $CC option to accept ANSI C" >&5
++
++
++echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+ echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5871,7 +6784,7 @@
+ ac_cv_prog_cc_stdc=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5874 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -5926,16 +6839,16 @@
+ do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5929: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5932: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5935: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5938: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+ break
+@@ -5952,21 +6865,21 @@
+
+ case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+- echo "$as_me:5955: result: none needed" >&5
++ echo "$as_me:$LINENO: result: none needed" >&5
+ echo "${ECHO_T}none needed" >&6 ;;
+ *)
+- echo "$as_me:5958: result: $ac_cv_prog_cc_stdc" >&5
++ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+ esac
+
+-echo "$as_me:5963: checking for an ANSI C-conforming const" >&5
++echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5969 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -6030,16 +6943,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6033: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6036: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6039: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6042: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+ else
+@@ -6049,7 +6962,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6052: result: $ac_cv_c_const" >&5
++echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+
+@@ -6059,7 +6972,7 @@
+
+ fi
+
+-echo "$as_me:6062: checking for inline" >&5
++echo "$as_me:$LINENO: checking for inline" >&5
+ echo $ECHO_N "checking for inline... $ECHO_C" >&6
+ if test "${ac_cv_c_inline+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6067,7 +6980,7 @@
+ ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6070 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #ifndef __cplusplus
+ static $ac_kw int static_foo () {return 0; }
+@@ -6076,16 +6989,16 @@
+
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6079: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6082: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6085: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6088: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_inline=$ac_kw; break
+ else
+@@ -6096,7 +7009,7 @@
+ done
+
+ fi
+-echo "$as_me:6099: result: $ac_cv_c_inline" >&5
++echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+ echo "${ECHO_T}$ac_cv_c_inline" >&6
+ case $ac_cv_c_inline in
+ inline | yes) ;;
+@@ -6111,13 +7024,13 @@
+ ;;
+ esac
+
+-echo "$as_me:6114: checking for mode_t" >&5
++echo "$as_me:$LINENO: checking for mode_t" >&5
+ echo $ECHO_N "checking for mode_t... $ECHO_C" >&6
+ if test "${ac_cv_type_mode_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6120 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -6138,16 +7051,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6141: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6144: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6147: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6150: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_mode_t=yes
+ else
+@@ -6157,7 +7070,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6160: result: $ac_cv_type_mode_t" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
+ echo "${ECHO_T}$ac_cv_type_mode_t" >&6
+ if test $ac_cv_type_mode_t = yes; then
+ :
+@@ -6169,13 +7082,13 @@
+
+ fi
+
+-echo "$as_me:6172: checking for off_t" >&5
++echo "$as_me:$LINENO: checking for off_t" >&5
+ echo $ECHO_N "checking for off_t... $ECHO_C" >&6
+ if test "${ac_cv_type_off_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6178 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -6196,16 +7109,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6199: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6202: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6205: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6208: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_off_t=yes
+ else
+@@ -6215,7 +7128,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6218: result: $ac_cv_type_off_t" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+ echo "${ECHO_T}$ac_cv_type_off_t" >&6
+ if test $ac_cv_type_off_t = yes; then
+ :
+@@ -6227,13 +7140,13 @@
+
+ fi
+
+-echo "$as_me:6230: checking for pid_t" >&5
++echo "$as_me:$LINENO: checking for pid_t" >&5
+ echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+ if test "${ac_cv_type_pid_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6236 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -6254,16 +7167,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6257: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6260: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6263: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6266: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_pid_t=yes
+ else
+@@ -6273,7 +7186,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6276: result: $ac_cv_type_pid_t" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
+ echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+ if test $ac_cv_type_pid_t = yes; then
+ :
+@@ -6285,13 +7198,13 @@
+
+ fi
+
+-echo "$as_me:6288: checking for struct stat.st_blocks" >&5
++echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5
+ echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6
+ if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6294 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -6311,16 +7224,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6314: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6317: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6320: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6323: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_blocks=yes
+ else
+@@ -6330,7 +7243,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6333: result: $ac_cv_member_struct_stat_st_blocks" >&5
++echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5
+ echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6
+ if test $ac_cv_member_struct_stat_st_blocks = yes; then
+
+@@ -6338,6 +7251,7 @@
+ #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+ _ACEOF
+
++
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ST_BLOCKS 1
+ _ACEOF
+@@ -6346,13 +7260,14 @@
+ LIBOBJS="$LIBOBJS fileblocks.$ac_objext"
+ fi
+
+-echo "$as_me:6349: checking whether time.h and sys/time.h may both be included" >&5
++
++echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+ echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+ if test "${ac_cv_header_time+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6355 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -6374,16 +7289,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6377: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6380: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6383: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6386: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_time=yes
+ else
+@@ -6393,7 +7308,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6396: result: $ac_cv_header_time" >&5
++echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+
+@@ -6403,13 +7318,13 @@
+
+ fi
+
+-echo "$as_me:6406: checking whether struct tm is in sys/time.h or time.h" >&5
++echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+ echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6
+ if test "${ac_cv_struct_tm+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6412 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <time.h>
+@@ -6429,16 +7344,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6432: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6435: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6438: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6441: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_struct_tm=time.h
+ else
+@@ -6448,7 +7363,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6451: result: $ac_cv_struct_tm" >&5
++echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+ echo "${ECHO_T}$ac_cv_struct_tm" >&6
+ if test $ac_cv_struct_tm = sys/time.h; then
+
+@@ -6458,15 +7373,16 @@
+
+ fi
+
++
+ if test $ac_cv_c_compiler_gnu = yes; then
+- echo "$as_me:6462: checking whether $CC needs -traditional" >&5
++ echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+ echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+ if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_pattern="Autoconf.*'x'"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6469 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+ Autoconf TIOCGETP
+@@ -6479,9 +7395,10 @@
+ fi
+ rm -f conftest*
+
++
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6484 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+ Autoconf TCGETA
+@@ -6494,14 +7411,14 @@
+
+ fi
+ fi
+-echo "$as_me:6497: result: $ac_cv_prog_gcc_traditional" >&5
++echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
+ echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+ if test $ac_cv_prog_gcc_traditional = yes; then
+ CC="$CC -traditional"
+ fi
+ fi
+
+-echo "$as_me:6504: checking for working memcmp" >&5
++echo "$as_me:$LINENO: checking for working memcmp" >&5
+ echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6
+ if test "${ac_cv_func_memcmp_working+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6510,7 +7427,7 @@
+ ac_cv_func_memcmp_working=no
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6513 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #ifdef F77_DUMMY_MAIN
+@@ -6552,37 +7469,38 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6555: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6558: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6560: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6563: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_memcmp_working=yes
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
+ ac_cv_func_memcmp_working=no
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:6575: result: $ac_cv_func_memcmp_working" >&5
++echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
+ echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6
+ test $ac_cv_func_memcmp_working = no && LIBOBJS="$LIBOBJS memcmp.$ac_objext"
+
+-echo "$as_me:6579: checking return type of signal handlers" >&5
++echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+ echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+ if test "${ac_cv_type_signal+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6585 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -6610,16 +7528,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6613: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6616: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6619: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6622: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_signal=void
+ else
+@@ -6629,14 +7547,15 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6632: result: $ac_cv_type_signal" >&5
++echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+ echo "${ECHO_T}$ac_cv_type_signal" >&6
+
+ cat >>confdefs.h <<_ACEOF
+ #define RETSIGTYPE $ac_cv_type_signal
+ _ACEOF
+
+-echo "$as_me:6639: checking whether utime accepts a null argument" >&5
++
++echo "$as_me:$LINENO: checking whether utime accepts a null argument" >&5
+ echo $ECHO_N "checking whether utime accepts a null argument... $ECHO_C" >&6
+ if test "${ac_cv_func_utime_null+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6647,7 +7566,7 @@
+ ac_cv_func_utime_null=no
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6650 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #ifdef F77_DUMMY_MAIN
+@@ -6670,28 +7589,29 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6673: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6676: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6678: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6681: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_utime_null=yes
+ else
+ echo "$as_me: program exited with status $ac_status" >&5
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++( exit $ac_status )
+ ac_cv_func_utime_null=no
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f core core.* *.core
+ fi
+-echo "$as_me:6694: result: $ac_cv_func_utime_null" >&5
++echo "$as_me:$LINENO: result: $ac_cv_func_utime_null" >&5
+ echo "${ECHO_T}$ac_cv_func_utime_null" >&6
+ if test $ac_cv_func_utime_null = yes; then
+
+@@ -6702,16 +7622,25 @@
+ fi
+ rm -f conftest.data
+
++
++
++
++
++
++
++
++
++
+ for ac_func in gettimeofday sigaction mkdir rmdir select strerror strstr statfs usleep
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:6708: checking for $ac_func" >&5
++echo "$as_me:$LINENO: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6714 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -6748,16 +7677,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6751: \"$ac_link\"") >&5
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6754: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6757: \"$ac_try\"") >&5
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6760: \$? = $ac_status" >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -6767,7 +7696,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6770: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+@@ -6777,6 +7706,14 @@
+ fi
+ done
+
++
++QTOPIA=no
++# Check whether --enable-qtopia or --disable-qtopia was given.
++if test "${enable_qtopia+set}" = set; then
++ enableval="$enable_qtopia"
++ QTOPIA=yes
++fi;
++
+ KBD_LANG=0
+ # Check whether --enable-kbd-lang-de or --disable-kbd-lang-de was given.
+ if test "${enable_kbd_lang_de+set}" = set; then
+@@ -6789,44 +7726,48 @@
+ KBD_LANG=0
+ fi;
+
+-echo "$as_me:6792: checking which target to use" >&5
++echo "$as_me:$LINENO: checking which target to use" >&5
+ echo $ECHO_N "checking which target to use... $ECHO_C" >&6
+ if [ x"$HAVE_BEBOX" = "xyes" ]; then
+- echo "$as_me:6795: result: BeBox" >&5
++ echo "$as_me:$LINENO: result: BeBox" >&5
+ echo "${ECHO_T}BeBox" >&6
+ TARGET=be
+ elif [ x"$HAVE_AMIGA_LIB" = "xyes" ]; then
+- echo "$as_me:6799: result: AmigaOS" >&5
++ echo "$as_me:$LINENO: result: AmigaOS" >&5
+ echo "${ECHO_T}AmigaOS" >&6
+ TARGET=amigaos
+ elif [ x"$no_x" = "xyes" ]; then
+ if [ x"$HAVE_SVGA_LIB" = "xyes" ]; then
+- echo "$as_me:6804: result: SVGAlib" >&5
++ echo "$as_me:$LINENO: result: SVGAlib" >&5
+ echo "${ECHO_T}SVGAlib" >&6
+ TARGET=svgalib
+ CFLAGS="$CFLAGS -D__svgalib__"
+ LIBS="$LIBS -lvga"
+ else
+- echo "$as_me:6810: result: Ummm..." >&5
++ echo "$as_me:$LINENO: result: Ummm..." >&5
+ echo "${ECHO_T}Ummm..." >&6
+- { { echo "$as_me:6812: error: Neither X nor SVGAlib found, don't know what target to use." >&5
++ { { echo "$as_me:$LINENO: error: Neither X nor SVGAlib found, don't know what target to use." >&5
+ echo "$as_me: error: Neither X nor SVGAlib found, don't know what target to use." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ elif [ x"$HAVE_SDL" = "xyes" ]; then
+- echo "$as_me:6817: result: SDL" >&5
++ echo "$as_me:$LINENO: result: SDL" >&5
+ echo "${ECHO_T}SDL" >&6
+ TARGET=sdl
+ CFLAGS="$CFLAGS $SDL_CFLAGS -DHAVE_SDL"
+ LIBS="$LIBS $SDL_LIBS"
++ if [ x"$QTOPIA" = "xyes" ]; then
++ CFLAGS="$CFLAGS -DQTOPIA"
++ fi
+ else
+- echo "$as_me:6823: result: X Window System" >&5
++ echo "$as_me:$LINENO: result: X Window System" >&5
+ echo "${ECHO_T}X Window System" >&6
+ TARGET=x11
+ CFLAGS="$CFLAGS $X_CFLAGS -I$ac_cv_x_include"
+ LIBS="$LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS"
+ fi
+
++
+ HAVEGCC27=n
+ HAVEI386=n
+
+@@ -6889,6 +7830,12 @@
+
+ CC=$CXX
+
++
++
++
++
++
++
+ ac_config_files="$ac_config_files Makefile"
+
+ cat >confcache <<\_ACEOF
+@@ -6967,14 +7914,15 @@
+
+ DEFS=-DHAVE_CONFIG_H
+
++
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:6973: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+-# Generated automatically by $as_me.
++# Generated by $as_me.
+ # Run this file to recreate the current configuration.
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in config.log if it exists.
+@@ -6997,8 +7945,167 @@
+ set -o posix
+ fi
+
++# NLS nuisances.
++# Support unset when possible.
++if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
++ as_unset=unset
++else
++ as_unset=false
++fi
++
++(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
++ { $as_unset LANG || test "${LANG+set}" != set; } ||
++ { LANG=C; export LANG; }
++(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
++ { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
++ { LC_ALL=C; export LC_ALL; }
++(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
++ { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
++ { LC_TIME=C; export LC_TIME; }
++(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
++ { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
++ { LC_CTYPE=C; export LC_CTYPE; }
++(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
++ { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
++ { LANGUAGE=C; export LANGUAGE; }
++(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
++ { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
++ { LC_COLLATE=C; export LC_COLLATE; }
++(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
++ { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
++ { LC_NUMERIC=C; export LC_NUMERIC; }
++(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
++ { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
++ { LC_MESSAGES=C; export LC_MESSAGES; }
++
++
+ # Name of the executable.
+-as_me=`echo "$0" |sed 's,.*[\\/],,'`
++as_me=`(basename "$0") 2>/dev/null ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)$' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++ /^X\/\(\/\/\)$/{ s//\1/; q; }
++ /^X\/\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conftest.sh
++ echo "exit 0" >>conftest.sh
++ chmod +x conftest.sh
++ if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conftest.sh
++fi
++
++
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" || {
++ # Find who we are. Look in the path if we contain no path at all
++ # relative or not.
++ case $0 in
++ *[\\/]* ) as_myself=$0 ;;
++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++ ;;
++ esac
++ # We did not find ourselves, most probably we were run as `sh COMMAND'
++ # in which case we are not to be found in the path.
++ if test "x$as_myself" = x; then
++ as_myself=$0
++ fi
++ if test ! -f "$as_myself"; then
++ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
++echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++ case $CONFIG_SHELL in
++ '')
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for as_base in sh bash ksh sh5; do
++ case $as_dir in
++ /*)
++ if ("$as_dir/$as_base" -c '
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
++ CONFIG_SHELL=$as_dir/$as_base
++ export CONFIG_SHELL
++ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++ fi;;
++ esac
++ done
++done
++;;
++ esac
++
++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++ # uniformly replaced by the line number. The first 'sed' inserts a
++ # line-number line before each line; the second 'sed' does the real
++ # work. The second script uses 'N' to pair each line-number line
++ # with the numbered line, and appends trailing '-' during
++ # substitution so that $LINENO is not a special case at line end.
++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
++ sed '=' <$as_myself |
++ sed '
++ N
++ s,$,-,
++ : loop
++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++ t loop
++ s,-$,,
++ s,^['$as_cr_digits']*\n,,
++ ' >$as_me.lineno &&
++ chmod +x $as_me.lineno ||
++ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
++echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
++ { (exit 1); exit 1; }; }
++
++ # Don't try to exec as it changes $[0], causing all sort of problems
++ # (the dirname of $[0] is not the place where we might find the
++ # original and so on. Autoconf is especially sensible to this).
++ . ./$as_me.lineno
++ # Exit status is that of the last command.
++ exit
++}
++
++
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T=' ' ;;
++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
+
+ if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+@@ -7026,22 +8133,12 @@
+
+ as_executable_p="test -f"
+
+-# Support unset when possible.
+-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+-# NLS nuisances.
+-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+ # IFS
+ # We need space, tab and new line, in precisely that order.
+@@ -7050,7 +8147,7 @@
+ IFS=" $as_nl"
+
+ # CDPATH.
+-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
++$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+ exec 6>&1
+
+@@ -7061,19 +8158,19 @@
+ {
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+-## Running \$as_me. ##
++## Running $as_me. ##
+ _ASBOX
+ } >&5
+ cat >&5 <<_CSEOF
+
+ This file was extended by $as_me, which was
+-generated by GNU Autoconf 2.52d. Invocation command line was
++generated by GNU Autoconf 2.53. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+- $ $@
++ $ $0 $@
+
+ _CSEOF
+ echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+@@ -7126,7 +8223,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF
+ ac_cs_version="\\
+ config.status
+-configured by $0, generated by GNU Autoconf 2.52d,
++configured by $0, generated by GNU Autoconf 2.53,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+@@ -7169,7 +8266,7 @@
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+- { { echo "$as_me:7172: error: ambiguous option: $1
++ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -7188,7 +8285,7 @@
+ ac_need_defaults=false;;
+
+ # This is an error.
+- -*) { { echo "$as_me:7191: error: unrecognized option: $1
++ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -7202,6 +8299,10 @@
+
+ _ACEOF
+
++
++
++
++
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ for ac_config_target in $ac_config_targets
+ do
+@@ -7209,7 +8310,7 @@
+ # Handling of arguments.
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "sysconfig.h" ) CONFIG_HEADERS="$CONFIG_HEADERS sysconfig.h" ;;
+- *) { { echo "$as_me:7212: error: invalid argument: $ac_config_target" >&5
++ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+@@ -7261,6 +8362,12 @@
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+ s,@SHELL@,$SHELL,;t t
++s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
++s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
++s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
++s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
++s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
++s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+ s,@exec_prefix@,$exec_prefix,;t t
+ s,@prefix@,$prefix,;t t
+ s,@program_transform_name@,$program_transform_name,;t t
+@@ -7276,19 +8383,13 @@
+ s,@oldincludedir@,$oldincludedir,;t t
+ s,@infodir@,$infodir,;t t
+ s,@mandir@,$mandir,;t t
+-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+ s,@build_alias@,$build_alias,;t t
+ s,@host_alias@,$host_alias,;t t
+ s,@target_alias@,$target_alias,;t t
++s,@DEFS@,$DEFS,;t t
+ s,@ECHO_C@,$ECHO_C,;t t
+ s,@ECHO_N@,$ECHO_N,;t t
+ s,@ECHO_T@,$ECHO_T,;t t
+-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+-s,@DEFS@,$DEFS,;t t
+ s,@LIBS@,$LIBS,;t t
+ s,@CC@,$CC,;t t
+ s,@CFLAGS@,$CFLAGS,;t t
+@@ -7372,7 +8473,8 @@
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+@@ -7396,17 +8498,19 @@
+ as_incr_dir=$as_incr_dir/$as_mkdir_dir
+ test -d "$as_incr_dir" ||
+ mkdir "$as_incr_dir" ||
+- { { echo "$as_me:7399: error: cannot create \"$ac_dir\"" >&5
++ { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+ echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ done; }
+
+- if test "$ac_dir" != .; then
+- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'`
++ ac_builddir=.
++
++if test "$ac_dir" != .; then
++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+ else
+ ac_dir_suffix= ac_top_builddir=
+ fi
+@@ -7426,17 +8530,30 @@
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+ esac
++# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
++# absolute.
++ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
++ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
++ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
++ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
++
++
+
+ if test x"$ac_file" != x-; then
+- { echo "$as_me:7431: creating $ac_file" >&5
++ { echo "$as_me:$LINENO: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+- # /* config.h. Generated automatically by config.status. */
+- configure_input="Generated automatically from `echo $ac_file_in |
+- sed 's,.*/,,'` by configure."
++ # /* config.h. Generated by config.status. */
++ if test x"$ac_file" = x-; then
++ configure_input=
++ else
++ configure_input="$ac_file. "
++ fi
++ configure_input=$configure_input"Generated from `echo $ac_file_in |
++ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+@@ -7446,7 +8563,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:7449: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -7459,7 +8576,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:7462: error: cannot find input file: $f" >&5
++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -7475,7 +8592,13 @@
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+ s,@configure_input@,$configure_input,;t t
+ s,@srcdir@,$ac_srcdir,;t t
++s,@abs_srcdir@,$ac_abs_srcdir,;t t
+ s,@top_srcdir@,$ac_top_srcdir,;t t
++s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
++s,@builddir@,$ac_builddir,;t t
++s,@abs_builddir@,$ac_abs_builddir,;t t
++s,@top_builddir@,$ac_top_builddir,;t t
++s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+ " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+@@ -7519,7 +8642,7 @@
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+- test x"$ac_file" != x- && { echo "$as_me:7522: creating $ac_file" >&5
++ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+@@ -7530,7 +8653,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:7533: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -7543,7 +8666,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:7546: error: cannot find input file: $f" >&5
++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -7573,7 +8696,7 @@
+ s,[\\$`],\\&,g
+ t clear
+ : clear
+-s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+ t end
+ s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+ : end
+@@ -7650,20 +8773,21 @@
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+- # /* config.h. Generated automatically by config.status. */
++ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+- echo "/* Generated automatically by configure. */" >$tmp/config.h
++ echo "/* Generated by configure. */" >$tmp/config.h
+ else
+- echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h
++ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+- { echo "$as_me:7663: $ac_file is unchanged" >&5
++ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+@@ -7687,7 +8811,7 @@
+ as_incr_dir=$as_incr_dir/$as_mkdir_dir
+ test -d "$as_incr_dir" ||
+ mkdir "$as_incr_dir" ||
+- { { echo "$as_me:7690: error: cannot create \"$ac_dir\"" >&5
++ { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+ echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -7711,6 +8835,7 @@
+ chmod +x $CONFIG_STATUS
+ ac_clean_files=$ac_clean_files_save
+
++
+ # configure is writing to config.log, and then calls config.status.
+ # config.status does its own redirection, appending to config.log.
+ # Unfortunately, on DOS this fails, as config.log is still kept open
+@@ -7729,5 +8854,6 @@
+ $ac_cs_success || { (exit 1); exit 1; }
+ fi
+
++
+ echo
+ echo "Configuration done. Now type \"make\"."
+diff -urN Src/configure.in Src/configure.in
+--- Src/configure.in 2002-01-02 17:43:53.000000000 +0100
++++ Src/configure.in 2002-11-21 17:07:04.000000000 +0100
+@@ -63,6 +63,9 @@
+ AC_FUNC_UTIME_NULL
+ AC_CHECK_FUNCS(gettimeofday sigaction mkdir rmdir select strerror strstr statfs usleep)
+
++QTOPIA=no
++AC_ARG_ENABLE(qtopia,[ --enable-qtopia Make a Qtopia Version (Sharp Zaurus) of Frodo],[QTOPIA=yes],[])
++
+ KBD_LANG=0
+ AC_ARG_ENABLE(kbd-lang-de,[ --enable-kbd-lang-de Use german keyboard layout],[KBD_LANG=1],[])
+ AC_ARG_ENABLE(kbd-lang-us,[ --enable-kbd-lang-us Use american keyboard layout],[KBD_LANG=0],[])
+@@ -89,6 +92,9 @@
+ TARGET=sdl
+ CFLAGS="$CFLAGS $SDL_CFLAGS -DHAVE_SDL"
+ LIBS="$LIBS $SDL_LIBS"
++ if [[ x"$QTOPIA" = "xyes" ]]; then
++ CFLAGS="$CFLAGS -DQTOPIA"
++ fi
+ else
+ AC_MSG_RESULT([X Window System])
+ TARGET=x11
+@@ -96,7 +102,7 @@
+ LIBS="$LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS"
+ fi
+
+-dnl Find out some things about the system
++dnl Find out some things about the system
+ dnl - whether we have GCC 2.7 or better.
+ dnl - what CPU we have (to use some assembly hacks on the x86)
+
+@@ -161,7 +167,7 @@
+ fi
+
+ CC=$CXX
+-
++
+ AC_SUBST(TARGET)
+ AC_SUBST(SET_MAKE)
+ AC_SUBST(top_srcdir)
+diff -urN Src/Display.cpp Src/Display.cpp
+--- Src/Display.cpp 2002-01-02 22:19:10.000000000 +0100
++++ Src/Display.cpp 2002-11-21 17:07:04.000000000 +0100
+@@ -12,7 +12,7 @@
+
+
+ // LED states
+-enum {
++enum {
+ LED_OFF, // LED off
+ LED_ON, // LED on (green)
+ LED_ERROR_ON, // LED blinking (red), currently on
+@@ -28,7 +28,7 @@
+ const uint8 palette_red[16] = {
+ 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0xff, 0x40, 0x80, 0x80, 0x80, 0xc0
+ };
+-
++
+ const uint8 palette_green[16] = {
+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x80, 0x40, 0x80, 0x40, 0x80, 0xff, 0x80, 0xc0
+ };
+@@ -73,7 +73,11 @@
+ #elif defined(AMIGA)
+ #include "Display_Amiga.i"
+ #elif defined(HAVE_SDL)
+-#include "Display_SDL.i"
++# ifdef QTOPIA
++# include "Display_QtopiaSDL.i"
++# else
++# include "Display_SDL.i"
++# endif
+ #elif defined(__unix)
+ # ifdef __svgalib__
+ # include "Display_svga.i"
+diff -urN Src/Display_QtopiaSDL.i Src/Display_QtopiaSDL.i
+--- Src/Display_QtopiaSDL.i 1970-01-01 01:00:00.000000000 +0100
++++ Src/Display_QtopiaSDL.i 2003-04-03 19:10:35.000000000 +0200
+@@ -0,0 +1,619 @@
++/*
++ * Display_QtopiaSDL.i - C64 graphics display, emulator window handling,
++ * SDL specific stuff
++ *
++ * Frodo (C) 1994-1997,2002 Christian Bauer
++ * Qtopia changes (against Display_SDL.i) from Bernd Lachner
++ */
++
++#include "C64.h"
++#include "SAM.h"
++#include "Version.h"
++
++#define QWS
++#include <SDL.h>
++
++
++// Display surface
++static SDL_Surface *screen = NULL;
++
++// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2
++static short joy_emu = 0;
++
++// Keyboard
++static bool tab_pressed = false;
++
++// For LED error blinking
++static C64Display *c64_disp;
++static struct sigaction pulse_sa;
++static itimerval pulse_tv;
++
++// Colors for speedometer/drive LEDs
++enum
++{
++ black = 0,
++ white = 1,
++ fill_gray = 16,
++ shine_gray = 17,
++ shadow_gray = 18,
++ red = 19,
++ green = 20,
++ PALETTE_SIZE = 21
++};
++
++/*
++ C64 keyboard matrix:
++
++ Bit 7 6 5 4 3 2 1 0
++ 0 CUD F5 F3 F1 F7 CLR RET DEL
++ 1 SHL E S Z 4 A W 3
++ 2 X T F C 6 D R 5
++ 3 V U H B 8 G Y 7
++ 4 N O K M 0 J I 9
++ 5 , @ : . - L P +
++ 6 / ^ = SHR HOM ; * £
++ 7 R/S Q C= SPC 2 CTL <- 1
++*/
++
++#define MATRIX(a,b) (((a) << 3) | (b))
++
++
++/*
++ * Open windo'
++ 'ß9087654 12q3w4eruiopü+#*/
++
++char *buffer;
++
++int init_graphics(void)
++{
++ // Init SDL
++ fprintf(stderr, "Init SDL\n");
++ if (SDL_Init(SDL_INIT_VIDEO) < 0)
++ {
++ fprintf(stderr, "Couldn't initialize SDL (%s)\n", SDL_GetError());
++ return 0;
++ }
++
++ buffer = new char[DISPLAY_X*DISPLAY_Y];
++ // Open window
++ SDL_WM_SetCaption(VERSION_STRING, "Frodo");
++ screen = SDL_SetVideoMode(320, 240, 8, SDL_DOUBLEBUF);
++ if (screen == NULL)
++ {
++ fprintf(stderr, "SDL Couldn't set video mode to %d x %d\n", DISPLAY_X, DISPLAY_Y+17);
++ }
++ else
++ {
++ fprintf(stderr, "SDL Set video mode to %d x %d\n", DISPLAY_X, DISPLAY_Y+17);
++ }
++ return 1;
++}
++
++
++
++/*
++ * Display constructor
++ */
++
++C64Display::C64Display(C64 *the_c64) : TheC64(the_c64)
++{
++ quit_requested = false;
++ speedometer_string[0] = 0;
++
++ // LEDs off
++ for (int i=0; i<4; i++)
++ led_state[i] = old_led_state[i] = LED_OFF;
++
++ // Start timer for LED error blinking
++ c64_disp = this;
++ pulse_sa.sa_handler = (void (*)(int))pulse_handler;
++ pulse_sa.sa_flags = 0;
++ sigemptyset(&pulse_sa.sa_mask);
++ sigaction(SIGALRM, &pulse_sa, NULL);
++ pulse_tv.it_interval.tv_sec = 0;
++ pulse_tv.it_interval.tv_usec = 400000;
++ pulse_tv.it_value.tv_sec = 0;
++ pulse_tv.it_value.tv_usec = 400000;
++ setitimer(ITIMER_REAL, &pulse_tv, NULL);
++}
++
++
++/*
++ * Display destructor
++ */
++
++C64Display::~C64Display()
++{
++ SDL_Quit();
++ delete[] buffer;
++}
++
++
++/*
++ * Prefs may have changed
++ */
++
++void C64Display::NewPrefs(Prefs *prefs)
++{
++}
++
++
++/*
++ * Redraw bitmap
++ */
++
++void C64Display::Update(void)
++{
++ if (screen == NULL)
++ return;
++ int iOffsetX = (DISPLAY_X - screen->w) / 2;
++ int iOffsetY = (DISPLAY_Y - screen->h) / 2;
++ for (int j=0; j < screen->h - 17; j++)
++ {
++ memcpy(static_cast<char*>(screen->pixels)+screen->w*j, buffer+iOffsetX+DISPLAY_X*(j+iOffsetY), screen->w);
++ }
++ // Draw speedometer/LEDs
++ SDL_Rect r = {0, (screen->h - 17), DISPLAY_X, 15};
++ SDL_FillRect(screen, &r, fill_gray);
++ r.w = DISPLAY_X; r.h = 1;
++ SDL_FillRect(screen, &r, shine_gray);
++ r.y = (screen->h - 17) + 14;
++ SDL_FillRect(screen, &r, shadow_gray);
++ r.w = 16;
++ for (int i=2; i<5; i++)
++ {
++ r.x = DISPLAY_X * i/5 - 24; r.y = (screen->h - 17) + 4;
++ SDL_FillRect(screen, &r, shadow_gray);
++ r.y = (screen->h - 17) + 10;
++ SDL_FillRect(screen, &r, shine_gray);
++ }
++ r.y = (screen->h - 17); r.w = 1; r.h = 15;
++ for (int i=0; i<4; i++)
++ {
++ r.x = DISPLAY_X * i / 5;
++ SDL_FillRect(screen, &r, shine_gray);
++ r.x = DISPLAY_X * (i+1) / 5 - 1;
++ SDL_FillRect(screen, &r, shadow_gray);
++ }
++ r.y = (screen->h - 17) + 4; r.h = 7;
++ for (int i=2; i<5; i++)
++ {
++ r.x = DISPLAY_X * i/5 - 24;
++ SDL_FillRect(screen, &r, shadow_gray);
++ r.x = DISPLAY_X * i/5 - 9;
++ SDL_FillRect(screen, &r, shine_gray);
++ }
++ r.y = (screen->h - 17) + 5; r.w = 14; r.h = 5;
++ for (int i=0; i<3; i++)
++ {
++ r.x = DISPLAY_X * (i+2) / 5 - 23;
++ int c;
++ switch (led_state[i])
++ {
++ case LED_ON:
++ c = green;
++ break;
++ case LED_ERROR_ON:
++ c = red;
++ break;
++ default:
++ c = black;
++ break;
++ }
++ SDL_FillRect(screen, &r, c);
++ }
++
++ draw_string(screen, DISPLAY_X * 1/5 + 8, (screen->h - 17) + 4, "D\x12 8", black, fill_gray);
++ draw_string(screen, DISPLAY_X * 2/5 + 8, (screen->h - 17) + 4, "D\x12 9", black, fill_gray);
++ draw_string(screen, DISPLAY_X * 3/5 + 8, (screen->h - 17) + 4, "D\x12 10", black, fill_gray);
++ if (joy_emu == 1)
++ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "1", black, fill_gray);
++ else if (joy_emu == 2)
++ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "2", black, fill_gray);
++ draw_string(screen, 24, (screen->h - 17) + 4, speedometer_string, black, fill_gray);
++
++ // Update display
++ SDL_Flip(screen);
++}
++
++
++/*
++ * Draw string into surface using the C64 ROM font
++ */
++
++void C64Display::draw_string(SDL_Surface *s, int x, int y, const char *str, uint8 front_color, uint8 back_color)
++{
++ uint8 *pb = (uint8 *)s->pixels + s->pitch*y + x;
++ char c;
++ while ((c = *str++) != 0)
++ {
++ uint8 *q = TheC64->Char + c*8 + 0x800;
++ uint8 *p = pb;
++ for (int y=0; y<8; y++)
++ {
++ uint8 v = *q++;
++ p[0] = (v & 0x80) ? front_color : back_color;
++ p[1] = (v & 0x40) ? front_color : back_color;
++ p[2] = (v & 0x20) ? front_color : back_color;
++ p[3] = (v & 0x10) ? front_color : back_color;
++ p[4] = (v & 0x08) ? front_color : back_color;
++ p[5] = (v & 0x04) ? front_color : back_color;
++ p[6] = (v & 0x02) ? front_color : back_color;
++ p[7] = (v & 0x01) ? front_color : back_color;
++ p += s->pitch;
++ }
++ pb += 8;
++ }
++}
++
++
++/*
++ * LED error blink
++ */
++
++void C64Display::pulse_handler(...)
++{
++ for (int i=0; i<4; i++)
++ switch (c64_disp->led_state[i])
++ {
++ case LED_ERROR_ON:
++ c64_disp->led_state[i] = LED_ERROR_OFF;
++ break;
++ case LED_ERROR_OFF:
++ c64_disp->led_state[i] = LED_ERROR_ON;
++ break;
++ }
++}
++
++
++/*
++ * Draw speedometer
++ */
++
++void C64Display::Speedometer(int speed)
++{
++ static int delay = 0;
++
++ if (delay >= 20)
++ {
++ delay = 0;
++ sprintf(speedometer_string, "%d%%", speed);
++ }
++ else
++ delay++;
++}
++
++
++/*
++ * Return pointer to bitmap data
++ */
++
++uint8 *C64Display::BitmapBase(void)
++{
++ //return (uint8 *)screen->pixels;
++ return (uint8 *)buffer;
++}
++
++
++/*
++ * Return number of bytes per row
++ */
++
++int C64Display::BitmapXMod(void)
++{
++ //return screen->pitch;
++ return DISPLAY_X;
++}
++
++
++/*
++ * Poll the keyboard
++ */
++
++static void translate_key(SDLKey key, bool key_up, uint8 *key_matrix, uint8 *rev_matrix, uint8 *joystick)
++{
++ int c64_key = -1;
++ if (tab_pressed)
++ {
++ // Function and run/stop key emulation on Zaurus keyboard
++ switch (key)
++ {
++ case SDLK_q: c64_key = MATRIX(0,4); break;
++ case SDLK_w: c64_key = MATRIX(0,4) | 0x80; break;
++ case SDLK_e: c64_key = MATRIX(0,5); break;
++ case SDLK_r: c64_key = MATRIX(0,5) | 0x80; break;
++ case SDLK_t: c64_key = MATRIX(0,6); break;
++ case SDLK_z: c64_key = MATRIX(0,6) | 0x80; break;
++ case SDLK_u: c64_key = MATRIX(0,3); break;
++ case SDLK_i: c64_key = MATRIX(0,3) | 0x80; break;
++ case SDLK_o: c64_key = MATRIX(7,7); break;
++ }
++ }
++ else
++ {
++ switch (key)
++ {
++ case SDLK_a: c64_key = MATRIX(1,2); break;
++ case SDLK_b: c64_key = MATRIX(3,4); break;
++ case SDLK_c: c64_key = MATRIX(2,4); break;
++ case SDLK_d: c64_key = MATRIX(2,2); break;
++ case SDLK_e: c64_key = MATRIX(1,6); break;
++ case SDLK_f: c64_key = MATRIX(2,5); break;
++ case SDLK_g: c64_key = MATRIX(3,2); break;
++ case SDLK_h: c64_key = MATRIX(3,5); break;
++ case SDLK_i: c64_key = MATRIX(4,1); break;
++ case SDLK_j: c64_key = MATRIX(4,2); break;
++ case SDLK_k: c64_key = MATRIX(4,5); break;
++ case SDLK_l: c64_key = MATRIX(5,2); break;
++ case SDLK_m: c64_key = MATRIX(4,4); break;
++ case SDLK_n: c64_key = MATRIX(4,7); break;
++ case SDLK_o: c64_key = MATRIX(4,6); break;
++ case SDLK_p: c64_key = MATRIX(5,1); break;
++ case SDLK_q: c64_key = MATRIX(7,6); break;
++ case SDLK_r: c64_key = MATRIX(2,1); break;
++ case SDLK_s: c64_key = MATRIX(1,5); break;
++ case SDLK_t: c64_key = MATRIX(2,6); break;
++ case SDLK_u: c64_key = MATRIX(3,6); break;
++ case SDLK_v: c64_key = MATRIX(3,7); break;
++ case SDLK_w: c64_key = MATRIX(1,1); break;
++ case SDLK_x: c64_key = MATRIX(2,7); break;
++ case SDLK_y: c64_key = MATRIX(3,1); break;
++ case SDLK_z: c64_key = MATRIX(1,4); break;
++
++ case SDLK_0: c64_key = MATRIX(4,3); break;
++ case SDLK_1: c64_key = MATRIX(7,0); break;
++ case SDLK_2: c64_key = MATRIX(7,3); break;
++ case SDLK_3: c64_key = MATRIX(1,0); break;
++ case SDLK_4: c64_key = MATRIX(1,3); break;
++ case SDLK_5: c64_key = MATRIX(2,0); break;
++ case SDLK_6: c64_key = MATRIX(2,3); break;
++ case SDLK_7: c64_key = MATRIX(3,0); break;
++ case SDLK_8: c64_key = MATRIX(3,3); break;
++ case SDLK_9: c64_key = MATRIX(4,0); break;
++
++ case SDLK_SPACE: c64_key = MATRIX(7,4); break;
++ case SDLK_BACKQUOTE: c64_key = MATRIX(7,1); break;
++ case SDLK_BACKSLASH: c64_key = MATRIX(6,6); break;
++ case SDLK_COMMA: c64_key = MATRIX(5,7); break;
++ case SDLK_PERIOD: c64_key = MATRIX(5,4); break;
++ case SDLK_MINUS: c64_key = MATRIX(5,0); break;
++ case SDLK_EQUALS: c64_key = MATRIX(5,3); break;
++ case SDLK_LEFTBRACKET: c64_key = MATRIX(5,6); break;
++ case SDLK_RIGHTBRACKET: c64_key = MATRIX(6,1); break;
++ case SDLK_SEMICOLON: c64_key = MATRIX(5,5); break;
++ case SDLK_QUOTE: c64_key = MATRIX(6,2); break;
++ case SDLK_SLASH: c64_key = MATRIX(6,7); break;
++
++ case SDLK_ESCAPE: c64_key = MATRIX(7,7); break;
++ case SDLK_RETURN: c64_key = MATRIX(0,1); break;
++ case SDLK_BACKSPACE: case SDLK_DELETE: c64_key = MATRIX(0,0); break;
++ case SDLK_INSERT: c64_key = MATRIX(6,3); break;
++ case SDLK_HOME: c64_key = MATRIX(6,3); break;
++ case SDLK_END: c64_key = MATRIX(6,0); break;
++ case SDLK_PAGEUP: c64_key = MATRIX(6,0); break;
++ case SDLK_PAGEDOWN: c64_key = MATRIX(6,5); break;
++
++ case SDLK_LCTRL: c64_key = MATRIX(7,2); break;
++ case SDLK_RCTRL: c64_key = MATRIX(7,5); break;
++ case SDLK_LSHIFT: c64_key = MATRIX(1,7); break;
++ case SDLK_RSHIFT: c64_key = MATRIX(6,4); break;
++ case SDLK_LALT: case SDLK_LMETA: c64_key = MATRIX(7,5); break;
++ case SDLK_RALT: case SDLK_RMETA: c64_key = MATRIX(7,5); break;
++
++ case SDLK_UP: c64_key = MATRIX(0,7)| 0x80; break;
++ case SDLK_DOWN: c64_key = MATRIX(0,7); break;
++ case SDLK_LEFT: c64_key = MATRIX(0,2) | 0x80; break;
++ case SDLK_RIGHT: c64_key = MATRIX(0,2); break;
++
++ case SDLK_F1: c64_key = MATRIX(0,4); break;
++ case SDLK_F2: c64_key = MATRIX(0,4) | 0x80; break;
++ case SDLK_F3: c64_key = MATRIX(0,5); break;
++ case SDLK_F4: c64_key = MATRIX(0,5) | 0x80; break;
++ case SDLK_F5: c64_key = MATRIX(0,6); break;
++ case SDLK_F6: c64_key = MATRIX(0,6) | 0x80; break;
++ case SDLK_F7: c64_key = MATRIX(0,3); break;
++ case SDLK_F8: c64_key = MATRIX(0,3) | 0x80; break;
++
++ case SDLK_KP0: case SDLK_KP5: c64_key = 0x10 | 0x40; break;
++ case SDLK_KP1: c64_key = 0x06 | 0x40; break;
++ case SDLK_KP2: c64_key = 0x02 | 0x40; break;
++ case SDLK_KP3: c64_key = 0x0a | 0x40; break;
++ case SDLK_KP4: c64_key = 0x04 | 0x40; break;
++ case SDLK_KP6: c64_key = 0x08 | 0x40; break;
++ case SDLK_KP7: c64_key = 0x05 | 0x40; break;
++ case SDLK_KP8: c64_key = 0x01 | 0x40; break;
++ case SDLK_KP9: c64_key = 0x09 | 0x40; break;
++
++ case SDLK_KP_DIVIDE: c64_key = MATRIX(6,7); break;
++ case SDLK_KP_ENTER: c64_key = MATRIX(0,1); break;
++
++ // Support for Zaurus/Qtopia
++ case SDLK_QUOTEDBL: c64_key = MATRIX(7,3) | 0x80; break;
++ case SDLK_ASTERISK: c64_key = MATRIX(6,1); break;
++ case SDLK_DOLLAR: c64_key = MATRIX(1,3) | 0x80; break;
++ case SDLK_COLON: c64_key = MATRIX(5,5); break;
++ case SDLK_AT: c64_key = MATRIX(5,6); break;
++ }
++ }
++ if (c64_key < 0)
++ return;
++
++ // Zaurus/Qtopia joystick emulation
++ if (joy_emu != 0)
++ {
++ switch (key)
++ {
++ case SDLK_SPACE: c64_key = 0x10 | 0x40; break;
++ case SDLK_UP: c64_key = 0x01 | 0x40; break;
++ case SDLK_DOWN: c64_key = 0x02 | 0x40; break;
++ case SDLK_LEFT: c64_key = 0x04 | 0x40; break;
++ case SDLK_RIGHT: c64_key = 0x08 | 0x40; break;
++ }
++ }
++
++ // Handle joystick emulation
++ if (c64_key & 0x40)
++ {
++ c64_key &= 0x1f;
++ if (key_up)
++ *joystick |= c64_key;
++ else
++ *joystick &= ~c64_key;
++ return;
++ }
++
++ // Handle other keys
++ bool shifted = c64_key & 0x80;
++ int c64_byte = (c64_key >> 3) & 7;
++ int c64_bit = c64_key & 7;
++ if (key_up)
++ {
++ if (shifted)
++ {
++ key_matrix[6] |= 0x10;
++ rev_matrix[4] |= 0x40;
++ }
++ key_matrix[c64_byte] |= (1 << c64_bit);
++ rev_matrix[c64_bit] |= (1 << c64_byte);
++ }
++ else
++ {
++ if (shifted)
++ {
++ key_matrix[6] &= 0xef;
++ rev_matrix[4] &= 0xbf;
++ }
++ key_matrix[c64_byte] &= ~(1 << c64_bit);
++ rev_matrix[c64_bit] &= ~(1 << c64_byte);
++ }
++}
++
++void C64Display::PollKeyboard(uint8 *key_matrix, uint8 *rev_matrix, uint8 *joystick)
++{
++ SDL_Event event;
++ while (SDL_PollEvent(&event))
++ {
++ switch (event.type)
++ {
++ // Key pressed
++ case SDL_KEYDOWN:
++// fprintf(stderr, "SDL-Key: %d\n", event.key.keysym.sym);
++ if (tab_pressed && event.key.keysym.sym == SDLK_j)
++ {
++ if (joy_emu < 2)
++ joy_emu++;
++ else
++ joy_emu = 0;
++ }
++ if (tab_pressed && event.key.keysym.sym == SDLK_p)
++ {
++ // NMI (Restore)
++ TheC64->NMI();
++ }
++ else
++ {
++ switch (event.key.keysym.sym)
++ {
++ case SDLK_TAB:
++ tab_pressed = true;
++ break;
++
++ case SDLK_F9: // F9: Invoke SAM
++ SAM(TheC64);
++ break;
++
++ case SDLK_F11: // F10: Quit
++ // Iconify not implemented in Qtopia SDL yet. Quit instead show gui.
++ //SDL_WM_IconifyWindow();
++ quit_requested = true;
++ break;
++
++ case SDLK_F12: // F12: Reset
++ TheC64->Reset();
++ break;
++
++ case SDLK_KP_PLUS: // '+' on keypad: Increase SkipFrames
++ ThePrefs.SkipFrames++;
++ break;
++
++ case SDLK_KP_MINUS: // '-' on keypad: Decrease SkipFrames
++ if (ThePrefs.SkipFrames > 1)
++ ThePrefs.SkipFrames--;
++ break;
++
++ case SDLK_KP_MULTIPLY: // '*' on keypad: Toggle speed limiter
++ ThePrefs.LimitSpeed = !ThePrefs.LimitSpeed;
++ break;
++
++ default:
++ translate_key(event.key.keysym.sym, false, key_matrix, rev_matrix, joystick);
++ break;
++ }
++ }
++ break;
++
++ // Key released
++ case SDL_KEYUP:
++ if (event.key.keysym.sym == SDLK_TAB)
++ tab_pressed = false;
++ else
++ translate_key(event.key.keysym.sym, true, key_matrix, rev_matrix, joystick);
++ break;
++
++ // Quit Frodo
++ case SDL_QUIT:
++ quit_requested = true;
++ break;
++ }
++ }
++}
++
++
++/*
++ * Check if NumLock is down (for switching the joystick keyboard emulation)
++ */
++
++bool C64Display::NumLock(void)
++{
++ if (joy_emu == 2)
++ return true;
++ return false;
++}
++
++
++/*
++ * Allocate C64 colors
++ */
++
++void C64Display::InitColors(uint8 *colors)
++{
++ SDL_Color palette[PALETTE_SIZE];
++ for (int i=0; i<16; i++)
++ {
++ palette[i].r = palette_red[i];
++ palette[i].g = palette_green[i];
++ palette[i].b = palette_blue[i];
++ }
++ palette[fill_gray].r = palette[fill_gray].g = palette[fill_gray].b = 0xd0;
++ palette[shine_gray].r = palette[shine_gray].g = palette[shine_gray].b = 0xf0;
++ palette[shadow_gray].r = palette[shadow_gray].g = palette[shadow_gray].b = 0x80;
++ palette[red].r = 0xf0;
++ palette[red].g = palette[red].b = 0;
++ palette[green].g = 0xf0;
++ palette[green].r = palette[green].b = 0;
++ SDL_SetColors(screen, palette, 0, PALETTE_SIZE);
++
++ for (int i=0; i<256; i++)
++ colors[i] = i & 0x0f;
++}
++
++
++/*
++ * Show a requester (error message)
++ */
++
++long int ShowRequester(char *a,char *b,char *)
++{
++ printf("%s: %s\n", a, b);
++ return 1;
++}
+diff -urN Src/main.cpp Src/main.cpp
+--- Src/main.cpp 2002-01-02 22:19:06.000000000 +0100
++++ Src/main.cpp 2002-11-21 17:07:04.000000000 +0100
+@@ -4,6 +4,8 @@
+ * Frodo (C) 1994-1997,2002 Christian Bauer
+ */
+
++ extern "C" int main(int argc, char *argv[]);
++
+ #include "sysdeps.h"
+
+ #include "main.h"
+@@ -13,6 +15,7 @@
+ #include "SAM.h"
+
+
++
+ // Global variables
+ char AppDirPath[1024]; // Path of application directory
+
+@@ -61,7 +64,7 @@
+ fclose(file);
+ } else {
+ ShowRequester("Can't find 'Kernal ROM'.", "Quit");
+- return false;
++ return false;
+ }
+
+ // Load Char ROM
+@@ -102,7 +105,11 @@
+ #endif
+
+ #ifdef __unix
+-#include "main_x.i"
++# ifdef QTOPIA
++# include "main_Qtopia.i"
++# else
++# include "main_x.i"
++# endif
+ #endif
+
+ #ifdef __mac__
+@@ -120,3 +127,4 @@
+ #ifdef __PSXOS__
+ #include "main_PSX.i"
+ #endif
++
+diff -urN Src/main_Qtopia.i Src/main_Qtopia.i
+--- Src/main_Qtopia.i 1970-01-01 01:00:00.000000000 +0100
++++ Src/main_Qtopia.i 2002-11-21 17:07:04.000000000 +0100
+@@ -0,0 +1,101 @@
++/*
++ * main_Qtopia.i - Main program, X specific stuff
++ *
++ * Frodo (C) 1994-1997,2002 Christian Bauer
++ * Qtopia changes (against main_x.i) from Bernd Lachner
++ */
++
++#include "Version.h"
++
++ extern "C" int main(int argc, char *argv[]);
++extern int init_graphics(void);
++
++
++// Global variables
++char Frodo::prefs_path[256] = "";
++
++
++/*
++ * Create application object and start it
++ */
++
++int main(int argc, char *argv[])
++{
++ Frodo *the_app;
++
++ timeval tv;
++ gettimeofday(&tv, NULL);
++ srand(tv.tv_usec);
++
++ printf("%s by Christian Bauer\n", VERSION_STRING);
++// Disabled because switching eumlator <-> gui with current SDl not possible
++// C64::StartGUI();
++
++ if (!init_graphics())
++ return 0;
++ fflush(stdout);
++
++ the_app = new Frodo();
++ the_app->ArgvReceived(argc, argv);
++ the_app->ReadyToRun();
++ delete the_app;
++
++// C64::StopGUI();
++ return 0;
++}
++
++
++/*
++ * Constructor: Initialize member variables
++ */
++
++Frodo::Frodo()
++{
++ TheC64 = NULL;
++}
++
++
++/*
++ * Process command line arguments
++ */
++
++void Frodo::ArgvReceived(int argc, char **argv)
++{
++ if (argc == 2)
++ strncpy(prefs_path, argv[1], 255);
++}
++
++
++/*
++ * Arguments processed, run emulation
++ */
++
++void Frodo::ReadyToRun(void)
++{
++ getcwd(AppDirPath, 256);
++
++ // Load preferences
++ if (!prefs_path[0]) {
++ char *home = getenv("HOME");
++ if (home != NULL && strlen(home) < 240) {
++ strncpy(prefs_path, home, 200);
++ strcat(prefs_path, "/");
++ }
++ strcat(prefs_path, ".frodorc");
++ }
++ ThePrefs.Load(prefs_path);
++
++ // Create and start C64
++ TheC64 = new C64;
++ if (load_rom_files())
++ TheC64->Run();
++ delete TheC64;
++}
++
++
++Prefs *Frodo::reload_prefs(void)
++{
++ static Prefs newprefs;
++ newprefs.Load(prefs_path);
++ return &newprefs;
++}
+diff -urN Src/setarmenv Src/setarmenv
+--- Src/setarmenv 1970-01-01 01:00:00.000000000 +0100
++++ Src/setarmenv 2002-11-21 17:07:03.000000000 +0100
+@@ -0,0 +1,5 @@
++export CXX=arm-linux-g++
++export CC=arm-linux-gcc
++export LD=arm-linux-ld
++export LDFLAGS="-L/opt/Qtopia/sharp/lib/ -L/opt/Embedix/tools/arm-linux/lib"
++export CPPFLAGS="-DQTOPIA"
diff --git a/recipes-qtopia/frodo/frodo-4.1b/frodo.desktop b/recipes-qtopia/frodo/frodo-4.1b/frodo.desktop
new file mode 100644
index 0000000..4179396
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.1b/frodo.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=C64 emulator Frodo.
+Exec=Frodo
+Icon=Frodo
+Type=Application
+Name=Frodo
diff --git a/recipes-qtopia/frodo/frodo-4.1b/frodorc b/recipes-qtopia/frodo/frodo-4.1b/frodorc
new file mode 100644
index 0000000..41492fd
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.1b/frodorc
@@ -0,0 +1,26 @@
+NormalCycles = 63
+BadLineCycles = 23
+CIACycles = 63
+FloppyCycles = 64
+SkipFrames = 4
+DriveType8 = DIR
+DrivePath8 = /home/root/Documents
+DriveType9 = D64
+DrivePath9 =
+DriveType10 = D64
+DrivePath10 =
+DriveType11 = D64
+DrivePath11 =
+SIDType = NONE
+SpritesOn = TRUE
+SpriteCollisions = TRUE
+Joystick1On = FALSE
+Joystick2On = TRUE
+JoystickSwap = FALSE
+LimitSpeed = FALSE
+FastReset = FALSE
+CIAIRQHack = FALSE
+MapSlash = TRUE
+Emul1541Proc = FALSE
+ShowOptions = TRUE
+SIDFilters = TRUE
diff --git a/recipes-qtopia/frodo/frodo-4.2/Frodo.png b/recipes-qtopia/frodo/frodo-4.2/Frodo.png
new file mode 100644
index 0000000..e346195
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.2/Frodo.png
Binary files differ
diff --git a/recipes-qtopia/frodo/frodo-4.2/configure.patch b/recipes-qtopia/frodo/frodo-4.2/configure.patch
new file mode 100644
index 0000000..1fc26f4
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.2/configure.patch
@@ -0,0 +1,51 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- Src/configure.ac~configure 2004-01-13 20:52:49.000000000 +0100
++++ Src/configure.ac 2004-01-21 01:08:08.000000000 +0100
+@@ -4,7 +4,7 @@
+ AC_CONFIG_SRCDIR(main.cpp)
+ AC_PREREQ(2.52)
+ AC_CONFIG_HEADER(sysconfig.h)
+-
++AM_INIT_AUTOMAKE(Frodo, 4.2, [Christian.Bauer@uni-mainz.de], Frodo)
+ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_CXX
+@@ -24,10 +24,6 @@
+ AC_CHECK_LIB(vga, vga_setmode, HAVE_SVGA_LIB=yes, HAVE_SVGA_LIB=no)
+ AM_PATH_SDL(1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
+ HAVE_GLADE=no
+-PKG_CHECK_MODULES(GLADE, libglade-2.0 libgnomeui-2.0 >= 1.110.0, HAVE_GLADE=yes)
+-if [[ $HAVE_GLADE = yes ]]; then
+- AC_DEFINE(HAVE_GLADE, 1, [Glade support is enabled])
+-fi
+
+ AC_PATH_XTRA
+
+--- Src/Makefile.in~configure 2004-01-13 20:52:48.000000000 +0100
++++ Src/Makefile.in 2004-01-21 01:10:56.000000000 +0100
+@@ -16,10 +16,10 @@
+ DESTDIR =
+
+ CXX = @CXX@
+-CFLAGS = @CFLAGS@ @GLADE_CFLAGS@ -I./ -DKBD_LANG=@KBD_LANG@
++CFLAGS = @CFLAGS@ -I./ -DKBD_LANG=@KBD_LANG@
+ DEFS = @DEFS@ -DDATADIR=\"$(datadir)/frodo/\" -DBINDIR=\"$(bindir)/\"
+ LDFLAGS = @LDFLAGS@
+-LIBS = @LIBS@ @GLADE_LIBS@
++LIBS = @LIBS@
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_DATA = @INSTALL_DATA@
+@@ -54,7 +54,7 @@
+ $(INSTALL_PROGRAM) FrodoSC $(DESTDIR)$(bindir)/FrodoSC
+ $(INSTALL_PROGRAM) Frodo_GUI.tcl $(DESTDIR)$(bindir)/Frodo_GUI.tcl
+ $(INSTALL_DATA) ../Kernal\ ROM $(DESTDIR)$(datadir)/frodo/Kernal\ ROM
+- $(INSTALL_DATA) glade/Frodo.glade $(DESTDIR)$(datadir)/frodo/Frodo.glade
++ #$(INSTALL_DATA) glade/Frodo.glade $(DESTDIR)$(datadir)/frodo/Frodo.glade
+
+ installdirs:
+ $(SHELL) mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/frodo
diff --git a/recipes-qtopia/frodo/frodo-4.2/frodo.desktop b/recipes-qtopia/frodo/frodo-4.2/frodo.desktop
new file mode 100644
index 0000000..4179396
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.2/frodo.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=C64 emulator Frodo.
+Exec=Frodo
+Icon=Frodo
+Type=Application
+Name=Frodo
diff --git a/recipes-qtopia/frodo/frodo-4.2/frodorc b/recipes-qtopia/frodo/frodo-4.2/frodorc
new file mode 100644
index 0000000..41492fd
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo-4.2/frodorc
@@ -0,0 +1,26 @@
+NormalCycles = 63
+BadLineCycles = 23
+CIACycles = 63
+FloppyCycles = 64
+SkipFrames = 4
+DriveType8 = DIR
+DrivePath8 = /home/root/Documents
+DriveType9 = D64
+DrivePath9 =
+DriveType10 = D64
+DrivePath10 =
+DriveType11 = D64
+DrivePath11 =
+SIDType = NONE
+SpritesOn = TRUE
+SpriteCollisions = TRUE
+Joystick1On = FALSE
+Joystick2On = TRUE
+JoystickSwap = FALSE
+LimitSpeed = FALSE
+FastReset = FALSE
+CIAIRQHack = FALSE
+MapSlash = TRUE
+Emul1541Proc = FALSE
+ShowOptions = TRUE
+SIDFilters = TRUE
diff --git a/recipes-qtopia/frodo/frodo_4.1b.bb b/recipes-qtopia/frodo/frodo_4.1b.bb
new file mode 100644
index 0000000..daf2d51
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo_4.1b.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "A C64 emulator based on SDL."
+SECTION = "opie/applications"
+DEPENDS = "libsdl-qpe"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://frodo.cebix.net/downloads/FrodoV4_1b.Src.tar.gz \
+ file://frodo-qte.diff \
+ file://frodo-joystick-4state.diff \
+ file://frodorc \
+ file://Frodo.png \
+ file://frodo.desktop"
+S = "${WORKDIR}/Frodo-${PV}/Src"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-sdltest --enable-qtopia"
+
+do_configure() {
+ gnu-configize
+ oe_runconf
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics
+ install -m 0644 ${WORKDIR}/Frodo.png ${D}${palmtopdir}/pics/Frodo.png
+ install -m 0644 ${WORKDIR}/frodo.desktop ${D}${palmtopdir}/apps/Games/frodo.desktop
+ # start script and executable
+ install -d ${D}${palmtopdir}/bin/${PN}
+ install -m 0755 Frodo ${D}${palmtopdir}/bin/${PN}/Frodo
+ cat <<STARTER_EOF > ${D}${palmtopdir}/bin/${PN}/frodostart
+#!/bin/sh
+cd ${palmtopdir}/bin/${PN}
+./Frodo
+STARTER_EOF
+ chmod 0755 ${D}${palmtopdir}/bin/${PN}/frodostart
+ ln -sf ${PN}/frodostart ${D}${palmtopdir}/bin/Frodo
+ # conffiles
+ install -d ${D}${sysconfdir}
+ install -m 644 ${WORKDIR}/frodorc ${D}${sysconfdir}/frodorc
+}
+
+FILES_${PN} = "${palmtopdir} ${sysconfdir}"
+
+#FIXME: Add postinst which copies /etc/frodorc into $HOME/.frodorc
+
+SRC_URI[md5sum] = "095b9f21c03204cc13f7f249e8866cd9"
+SRC_URI[sha256sum] = "ffae146dc20458698acf5ccc384dc32317cea1df0c95b44b5d47cca8b26bc986"
diff --git a/recipes-qtopia/frodo/frodo_4.2.bb b/recipes-qtopia/frodo/frodo_4.2.bb
new file mode 100644
index 0000000..4bc3b39
--- /dev/null
+++ b/recipes-qtopia/frodo/frodo_4.2.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "C64 Emulator based on SDL"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+DEPENDS = "libsdl-qpe"
+LICENSE = "GPL"
+SRCDATE = "20040801"
+PR = "r2"
+
+SRC_URI = "cvs://anoncvs:anoncvs@cvs.cebix.net/home/cvs/cebix;module=Frodo4 \
+ file://configure.patch \
+ file://frodorc \
+ file://Frodo.png \
+ file://frodo.desktop"
+
+S = "${WORKDIR}/Frodo4/Src"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-sdltest --enable-qtopia"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics
+ install -m 0644 ${WORKDIR}/Frodo.png ${D}${palmtopdir}/pics/Frodo.png
+ install -m 0644 ${WORKDIR}/frodo.desktop ${D}${palmtopdir}/apps/Games/frodo.desktop
+ # start script and executable
+ install -d ${D}${palmtopdir}/bin/${PN}
+ install -m 0755 Frodo ${D}${palmtopdir}/bin/${PN}/Frodo
+ cat <<STARTER_EOF > ${D}${palmtopdir}/bin/${PN}/frodostart
+#!/bin/sh
+cd ${palmtopdir}/bin/${PN}
+./Frodo
+STARTER_EOF
+ chmod 0755 ${D}${palmtopdir}/bin/${PN}/frodostart
+ ln -sf ${PN}/frodostart ${D}${palmtopdir}/bin/Frodo
+ # conffiles
+ install -d ${D}${sysconfdir}
+ install -m 644 ${WORKDIR}/frodorc ${D}${sysconfdir}/frodorc
+}
+
+FILES_${PN} = "${palmtopdir} ${sysconfdir}"
+
+#FIXME: Add postinst which copies /etc/frodorc into $HOME/.frodorc
diff --git a/recipes-qtopia/froot/froot_0.7.1.bb b/recipes-qtopia/froot/froot_0.7.1.bb
new file mode 100644
index 0000000..f71d516
--- /dev/null
+++ b/recipes-qtopia/froot/froot_0.7.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Froot is a game like frozen bubbles"
+SECTION = "opie/games"
+APPNAME = "froot"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "http://www.cs.unc.edu/~scheuerm/froot/froot-${PV}.tar.gz"
+S = "${WORKDIR}/froot-${PV}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/help/html
+ install -d ${D}${palmtopdir}/pics/froot
+ install -m 0644 Froot.png ${D}${palmtopdir}/pics/
+ install -m 0644 help/html/froot.html ${D}${palmtopdir}/help/html/
+ install -m 0644 pics/froot/*.png ${D}${palmtopdir}/pics/froot/
+}
+
+SRC_URI[md5sum] = "ac310580a6a54b692b977e11a0e80242"
+SRC_URI[sha256sum] = "210a55754c4ff0fa4143c22334a22bb2768f0c8ded2f6efa60144ea1b0abed6a"
diff --git a/recipes-qtopia/gnuplot/files/gnuplot.desktop b/recipes-qtopia/gnuplot/files/gnuplot.desktop
new file mode 100644
index 0000000..f67df9e
--- /dev/null
+++ b/recipes-qtopia/gnuplot/files/gnuplot.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Gnuplot
+Comment=Plot data and function graphs
+Exec=x-terminal-emulator -e gnuplot
+Terminal=false
+Type=Application
+Icon=gnuplot
+Categories=Science;
diff --git a/recipes-qtopia/gnuplot/files/gnuplot.png b/recipes-qtopia/gnuplot/files/gnuplot.png
new file mode 100644
index 0000000..054cd9e
--- /dev/null
+++ b/recipes-qtopia/gnuplot/files/gnuplot.png
Binary files differ
diff --git a/recipes-qtopia/gnuplot/files/qtopia.trm b/recipes-qtopia/gnuplot/files/qtopia.trm
new file mode 100644
index 0000000..b52f9bb
--- /dev/null
+++ b/recipes-qtopia/gnuplot/files/qtopia.trm
@@ -0,0 +1,483 @@
+/*
+ * $Id: dumb.trm,v 1.16 2004/04/13 17:24:16 broeker Exp $
+ *
+ */
+
+/* GNUPLOT - qtopia.trm */
+
+/*[
+ * Copyright 1991 - 1993, 1998, 2004 Thomas Williams, Colin Kelley
+ *
+ * Permission to use, copy, and distribute this software and its
+ * documentation for any purpose with or without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.
+ *
+ * Permission to modify the software is granted, but not the right to
+ * distribute the complete modified source code. Modifications are to
+ * be distributed as patches to the released version. Permission to
+ * distribute binaries produced by compiling modified sources is granted,
+ * provided you
+ * 1. distribute the corresponding source modifications from the
+ * released version in the form of a patch file along with the binaries,
+ * 2. add special version identification to distinguish your version
+ * in addition to the base release version number,
+ * 3. provide your name and address as the primary contact for the
+ * support of your modified version, and
+ * 4. retain our contact information in regard to use of the base
+ * software.
+ * Permission to distribute the released version of the source code along
+ * with corresponding source modifications in the form of a patch file is
+ * granted with same provisions 2 through 4 for binary distributions.
+ *
+ * This software is provided "as is" without express or implied warranty
+ * to the extent permitted by applicable law.
+]*/
+
+/*
+ * This file is included by ../term.c.
+ *
+ * This terminal driver supports:
+ * qtopia terminals
+ *
+ * AUTHORS
+ * Michael Neuroth, 2004-05-16
+ * INTERNET: michael.neuroth@freenet.de
+ *
+ * send your comments or suggestions to (gnuplot-info@lists.sourceforge.net).
+ *
+ */
+#include "driver.h"
+
+#define NO_QTOPIA_ENHANCED_SUPPORT
+
+#ifdef TERM_REGISTER
+register_term(qtopia_driver)
+#endif
+
+#ifdef TERM_PROTO
+TERM_PUBLIC void QTOPIA_options __PROTO((void));
+TERM_PUBLIC void QTOPIA_init __PROTO((void));
+TERM_PUBLIC void QTOPIA_graphics __PROTO((void));
+TERM_PUBLIC void QTOPIA_text __PROTO((void));
+TERM_PUBLIC void QTOPIA_reset __PROTO((void));
+TERM_PUBLIC void QTOPIA_linetype __PROTO((int linetype));
+TERM_PUBLIC void QTOPIA_move __PROTO((unsigned int x, unsigned int y));
+TERM_PUBLIC void QTOPIA_point __PROTO((unsigned int x, unsigned int y,
+ int point));
+TERM_PUBLIC void QTOPIA_vector __PROTO((unsigned int x, unsigned int y));
+TERM_PUBLIC void QTOPIA_put_text __PROTO((unsigned int x, unsigned int y,
+ const char *str));
+TERM_PUBLIC void QTOPIA_arrow __PROTO((unsigned int sx, unsigned int sy,
+ unsigned int ex, unsigned int ey,
+ int head));
+
+#define ENHqtopia_put_text NULL
+
+
+#define QTOPIA_XMAX 4096
+#define QTOPIA_YMAX 4096
+
+#ifdef ZAURUS
+#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
+#define QTOPIA_HCHAR (QTOPIA_XMAX/40)
+#define QTOPIA_VTIC (QTOPIA_YMAX/50)
+#define QTOPIA_HTIC (QTOPIA_XMAX/40)
+#else
+#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
+#define QTOPIA_HCHAR (QTOPIA_XMAX/50)
+#define QTOPIA_VTIC (QTOPIA_YMAX/100)
+#define QTOPIA_HTIC (QTOPIA_XMAX/150)
+#endif
+
+#endif /* TERM_PROTO */
+
+#ifdef TERM_BODY
+
+/*#include <winsock2.h>*/
+/* needs: ws2_32.lib */
+#ifndef _MSC_VER
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#endif
+
+#define QTOPIA_MAX_BUFFER 512
+#define QTOPIA_MAX_DELAY_COUNT 20 /* * 100 ms = 2 s */
+
+#ifdef _MSC_VER
+#define QTOPIA_BAD_SOCKET INVALID_SOCKET /* -1 */
+#define QTOPIA_BAD_CONNECT SOCKET_ERROR
+#else
+#define QTOPIA_BAD_SOCKET -1
+#define QTOPIA_BAD_CONNECT -1
+#endif
+#define QTOPIA_PORT_NO 5050
+
+static int qtopia_client_socket = QTOPIA_BAD_SOCKET;
+static unsigned short qtopia_port_no = QTOPIA_PORT_NO;
+static char qtopia_host_name[QTOPIA_MAX_BUFFER+1] = { "localhost" };
+
+static int OpenClient __PROTO(( int test));
+static void CloseClient();
+
+static void MySleep( delay )
+int delay;
+{
+#ifdef _MSC_VER
+ Sleep( delay );
+#else
+ usleep( delay );
+#endif
+}
+
+static void InitSockets()
+{
+#ifdef _MSC_VER
+ WORD wVersionRequested;
+ WSADATA wsaData;
+ int err;
+
+ wVersionRequested = MAKEWORD( 2, 2 );
+
+ err = WSAStartup( wVersionRequested, &wsaData );
+#endif
+}
+
+static void ExitSockets()
+{
+#ifdef _MSC_VER
+ WSACleanup();
+#endif
+}
+
+static int CheckForQtplot( count )
+int count;
+{
+ /* test (via sockets) if qtplot is allready running */
+ if( !OpenClient( 1 ) )
+ {
+ /* give qtplot a litle bit time to start... */
+ if( count < QTOPIA_MAX_DELAY_COUNT )
+ {
+ if( count == 0 )
+ {
+#ifdef _MSC_VER
+ system( "start qtplot" );
+#else
+ system( "qtplot&" );
+#endif
+ }
+
+ MySleep(100);
+
+ return CheckForQtplot( count+1 );
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ else
+ {
+ CloseClient();
+
+ return 1;
+ }
+}
+
+static int OpenClient( test )
+int test;
+{
+ int len;
+ struct sockaddr_in address;
+ int result;
+
+ /* Create a socket for the client. */
+
+ qtopia_client_socket = socket(AF_INET, SOCK_STREAM, 0);
+
+ if( qtopia_client_socket != QTOPIA_BAD_SOCKET )
+ {
+ /* Name the socket, as agreed with the server. */
+
+ address.sin_family = AF_INET;
+ address.sin_addr.s_addr = inet_addr(/*qtopia_host_name*/"127.0.0.1"); /* localhost */
+ address.sin_port = htons(qtopia_port_no);
+ len = sizeof(address);
+
+ /* Now connect our socket to the server's socket. */
+
+ result = connect(qtopia_client_socket, (struct sockaddr *)&address, len);
+
+ if( result == QTOPIA_BAD_SOCKET )
+ {
+ /* mark this socket as bad */
+
+ close( qtopia_client_socket );
+
+ qtopia_client_socket = QTOPIA_BAD_SOCKET;
+
+ if( !test )
+ {
+ fprintf( gpoutfile, "error connecting to server !\n" );
+ }
+ return 0; /* something went wrong */
+ }
+ }
+ else
+ {
+ if( !test )
+ {
+ fprintf( gpoutfile, "error creating socket !\n" );
+ }
+ return 0; /* something went wrong */
+ }
+
+ return 1; /* everything ist ok ! */
+}
+
+static void CloseClient()
+{
+ close( qtopia_client_socket );
+}
+
+static int IsClientOk()
+{
+ return qtopia_client_socket != QTOPIA_BAD_SOCKET;
+}
+
+static void SendDataToSocket( sLine )
+const char * sLine;
+{
+ if( IsClientOk() )
+ {
+ int send_count;
+
+ send_count = send( qtopia_client_socket, sLine, strlen( sLine ), 0 );
+
+ if( send_count <= 0 )
+ {
+ fprintf( gpoutfile, "error writing to socket str=%s!\n", sLine );
+ }
+ /*
+ else
+ {
+ fprintf( gpoutfile, "wrote %d bytes\n", send_count );
+ }
+ */
+ }
+ else
+ {
+ /* for testing... */
+ /*fprintf( gpoutfile, sLine );*/
+ }
+}
+
+/* ************************************************** */
+
+enum QTOPIA_id { QTOPIA_PORT, QTOPIA_HOST, QTOPIA_OTHER };
+
+static struct gen_table QTOPIA_opts[] =
+{
+ { "po$rt", QTOPIA_PORT },
+ { "ho$st", QTOPIA_HOST },
+ { NULL, QTOPIA_OTHER }
+};
+
+TERM_PUBLIC void
+QTOPIA_options()
+{
+ /* this is not for the qtopia terminal ! */
+ /*SendDataToSocket( "qtd options\n" );*/
+
+ int x, y;
+ struct value a;
+
+ while (!END_OF_COMMAND)
+ {
+ switch(lookup_table(&QTOPIA_opts[0],c_token))
+ {
+ case QTOPIA_PORT:
+ c_token++;
+ if (END_OF_COMMAND)
+ int_error(c_token, "expecting port number");
+ qtopia_port_no = (int) real(const_express(&a));
+ break;
+ case QTOPIA_HOST:
+ c_token++;
+ if (END_OF_COMMAND)
+ int_error(c_token, "expecting host name");
+ if (isstring(c_token))
+ quote_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
+ else
+ copy_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
+ c_token++;
+ break;
+ case QTOPIA_OTHER:
+ default:
+ break;
+ }
+ }
+
+ sprintf(term_options, "host=%s port=%d",qtopia_host_name,qtopia_port_no);
+}
+
+
+TERM_PUBLIC void
+QTOPIA_init()
+{
+ /* initialize lib (if necassary) */
+ InitSockets();
+ CheckForQtplot( 0 );
+ OpenClient( 0 );
+
+ SendDataToSocket( "qtd init\n" );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_graphics()
+{
+ SendDataToSocket( "qtd graphics\n" );
+}
+
+TERM_PUBLIC void
+QTOPIA_text()
+{
+ SendDataToSocket( "qtd text\n" );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_reset()
+{
+ SendDataToSocket( "qtd reset\n" );
+
+ /* give the qtplot a litle bit time to shutdown */
+ MySleep(100);
+
+ CloseClient();
+ ExitSockets();
+}
+
+
+TERM_PUBLIC void
+QTOPIA_linetype(linetype)
+int linetype;
+{
+ char sBuffer[QTOPIA_MAX_BUFFER];
+
+ sprintf( sBuffer, "qtd linetype type=%d\n",linetype );
+
+ SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_move(x, y)
+unsigned int x, y;
+{
+ char sBuffer[QTOPIA_MAX_BUFFER];
+
+ sprintf( sBuffer, "qtd move x=%d y=%d\n",x,y );
+
+ SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_point(x, y, point)
+unsigned int x, y;
+int point;
+{
+ char sBuffer[QTOPIA_MAX_BUFFER];
+
+ sprintf( sBuffer, "qtd point x=%d y=%d point=%d\n",x,y,point );
+
+ SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_vector(_x, _y)
+unsigned int _x, _y;
+{
+ char sBuffer[QTOPIA_MAX_BUFFER];
+
+ sprintf( sBuffer, "qtd vector x=%d y=%d\n",_x,_y );
+
+ SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_put_text(x, y, str)
+unsigned int x, y;
+const char *str;
+{
+ char sBuffer[QTOPIA_MAX_BUFFER];
+
+ sprintf( sBuffer, "qtd put_text x=%d y=%d str=%s\n",x,y,str );
+
+ SendDataToSocket( sBuffer );
+}
+
+/* not suported yet ! */
+TERM_PUBLIC void
+QTOPIA_arrow(sx, sy, ex, ey, head)
+ unsigned int sx, sy, ex, ey;
+ int head; /* ignored */
+{
+ char sBuffer[QTOPIA_MAX_BUFFER];
+
+ sprintf( sBuffer, "qtd arrow sx=%d sy=%d ex=%d ey=%d head=%d\n",sx,sy,ex,ey,head );
+
+ SendDataToSocket( sBuffer );
+}
+
+
+#endif /* TERM_BODY */
+
+#ifdef TERM_TABLE
+TERM_TABLE_START(qtopia_driver)
+ "qtopia", "qtopia or Qt",
+ QTOPIA_XMAX, QTOPIA_YMAX, QTOPIA_VCHAR, QTOPIA_HCHAR,
+ QTOPIA_VTIC, QTOPIA_HTIC, QTOPIA_options, QTOPIA_init, QTOPIA_reset,
+ QTOPIA_text, null_scale, QTOPIA_graphics, QTOPIA_move, QTOPIA_vector,
+ QTOPIA_linetype, QTOPIA_put_text, null_text_angle,
+ null_justify_text, QTOPIA_point, /*QTOPIA_arrow*/0, set_font_null,
+ 0, /* pointsize */
+ TERM_CAN_MULTIPLOT,
+ NULL, NULL, NULL, NULL
+#ifdef USE_MOUSE
+ , NULL, NULL, NULL, NULL, NULL
+#endif
+#ifdef PM3D
+ , NULL, NULL, NULL, NULL
+#endif
+TERM_TABLE_END(qtopia_driver)
+
+#undef LAST_TERM
+#define LAST_TERM qtopia_driver
+
+#endif /* TERM_TABLE */
+
+#ifdef TERM_HELP
+START_HELP(qtopia)
+"1 qtopia",
+"?commands set terminal qtopia",
+"?set terminal qtopia",
+"?set term qtopia",
+"?terminal qtopia",
+"?term qtopia",
+"?qtopia",
+" The `qtopia` terminal driver has no additional options.",
+"",
+" Syntax:",
+" set terminal qtopia",
+""
+END_HELP(qtopia)
+#endif /* TERM_HELP */
diff --git a/recipes-qtopia/gnuplot/files/subdirs.patch b/recipes-qtopia/gnuplot/files/subdirs.patch
new file mode 100644
index 0000000..8c7d1f0
--- /dev/null
+++ b/recipes-qtopia/gnuplot/files/subdirs.patch
@@ -0,0 +1,11 @@
+--- /tmp/Makefile.am 2007-08-23 13:10:15.560659023 +0200
++++ gnuplot-4.2.0/Makefile.am 2007-08-23 13:10:34.961764629 +0200
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in -*-Makefile-*-
+ AUTOMAKE_OPTIONS = foreign 1.2h
+
+-SUBDIRS = config m4 term src docs $(LISPDIR) man demo tutorial share
++SUBDIRS = config m4 term src $(LISPDIR) man share
+
+ EXTRA_DIST = BUGS CodeStyle Copyright FAQ GNUmakefile INSTALL INSTALL.gnu \
+ Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST README.exp \
diff --git a/recipes-qtopia/gnuplot/files/term.patch b/recipes-qtopia/gnuplot/files/term.patch
new file mode 100644
index 0000000..41aa8e7
--- /dev/null
+++ b/recipes-qtopia/gnuplot/files/term.patch
@@ -0,0 +1,20 @@
+--- gnuplot-4.2.0/src/term.h.old 2007-11-16 01:21:09.000000000 -0600
++++ gnuplot-4.2.0/src/term.h 2007-11-16 01:22:45.000000000 -0600
+@@ -70,6 +70,7 @@
+ */
+ #ifdef SHORT_TERMLIST
+ # include "dumb.trm" /* dumb terminal */
++# include "qtopia.trm" /* QTopia terminal */
+
+ # ifdef GP_ENH_EST
+ # include "estimate.trm" /* used for enhanced text processing */
+@@ -436,6 +437,9 @@
+ /* TeXDraw drawing package for LaTeX */
+ #include "texdraw.trm"
+
++/* Qtopia */
++#include "qtopia.trm"
++
+ /* METAFONT */
+ #include "metafont.trm"
+
diff --git a/recipes-qtopia/gnuplot/gnuplot-4.0.0/debian-separate-x11-package.patch b/recipes-qtopia/gnuplot/gnuplot-4.0.0/debian-separate-x11-package.patch
new file mode 100644
index 0000000..7afa0ee
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot-4.0.0/debian-separate-x11-package.patch
@@ -0,0 +1,59 @@
+--- gnuplot-4.0.0.orig/src/term.c
++++ gnuplot-4.0.0/src/term.c
+@@ -1278,6 +1278,33 @@
+ return (t);
+ }
+
++#ifdef X11
++int
++x11driver_found()
++{
++ char *binname = "/gnuplot_x11";
++ char *fullname;
++ struct stat buf;
++
++ fullname = (char*)malloc(sizeof(X11_DRIVER_DIR) + sizeof(binname) + 1);
++ strcat(fullname, X11_DRIVER_DIR);
++ strcat(fullname, binname);
++
++ /* exists? */
++ if (stat(fullname, &buf)) {
++ free(fullname);
++ return 0;
++ }
++
++ free(fullname);
++ /* executable? */
++ if (buf.st_mode && S_IXOTH)
++ return 1;
++
++ return 0;
++}
++#endif
++
+ /*
+ * Routine to detect what terminal is being used (or do anything else
+ * that would be nice). One anticipated (or allowed for) side effect
+@@ -1356,12 +1383,18 @@
+ env_term = getenv("TERM"); /* try $TERM */
+ if (term_name == (char *) NULL
+ && env_term != (char *) NULL && strcmp(env_term, "xterm") == 0)
+- term_name = "x11";
++ term_name = "x11";
+ display = getenv("DISPLAY");
+ if (term_name == (char *) NULL && display != (char *) NULL)
+- term_name = "x11";
++ term_name = "x11";
+ if (X11_Display)
+- term_name = "x11";
++ term_name = "x11";
++ /* if x11 was selected check for driver */
++ if (term_name && (strcmp(term_name, "x11") == 0) && !x11driver_found() && isatty(fileno(stdin))) {
++ printf("*** X11 output driver not found, switching to dumb terminal!\n");
++ printf("*** If you want to use the X11 output, please install the ""gnuplot-x11"" package\n");
++ term_name = "dumb";
++ };
+ #endif /* x11 */
+
+ #ifdef AMIGA
+
diff --git a/recipes-qtopia/gnuplot/gnuplot-4.0.0/matrix.patch b/recipes-qtopia/gnuplot/gnuplot-4.0.0/matrix.patch
new file mode 100644
index 0000000..10f56d9
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot-4.0.0/matrix.patch
@@ -0,0 +1,17 @@
+--- gnuplot-4.0.0/src/matrix.c.old 2004-04-13 18:23:58.000000000 +0100
++++ gnuplot-4.0.0/src/matrix.c 2005-03-01 12:38:07.068232748 +0000
+@@ -290,9 +290,12 @@
+ *d = 1.0;
+ for (ar = a, lim = &(a[n]); ar < lim; ar++) {
+ large = 0.0;
+- for (ac = *ar, limc = &(ac[n]); ac < limc;)
+- if ((temp = fabs(*ac++)) > large)
++ for (ac = *ar, limc = &(ac[n]); ac < limc;){
++ temp = *ac++;
++ temp = fabs(temp);
++ if (temp > large)
+ large = temp;
++ }
+ if (large == 0.0)
+ int_error(NO_CARET, "Singular matrix in LU-DECOMP");
+ *dp++ = 1 / large;
diff --git a/recipes-qtopia/gnuplot/gnuplot-4.0.0/subdirs.patch b/recipes-qtopia/gnuplot/gnuplot-4.0.0/subdirs.patch
new file mode 100644
index 0000000..69c7753
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot-4.0.0/subdirs.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- gnuplot-4.0.0/Makefile.am~nodocs
++++ gnuplot-4.0.0/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in -*-Makefile-*-
+ AUTOMAKE_OPTIONS = foreign 1.2h
+
+-SUBDIRS = config m4 term src docs lisp man demo tutorial
++SUBDIRS = config m4 term src man tutorial
+
+ EXTRA_DIST = BUGS CodeStyle Copyright FAQ GNUmakefile INSTALL INSTALL.gnu \
+ Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST README.exp \
diff --git a/recipes-qtopia/gnuplot/gnuplot-4.0.0/term.patch b/recipes-qtopia/gnuplot/gnuplot-4.0.0/term.patch
new file mode 100644
index 0000000..2979b5e
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot-4.0.0/term.patch
@@ -0,0 +1,20 @@
+--- gnuplot-4.0.0/src/term.h.old 2005-03-01 15:17:46.424111687 +0000
++++ gnuplot-4.0.0/src/term.h 2005-03-01 15:18:50.961405665 +0000
+@@ -54,6 +54,7 @@
+ */
+ #ifdef SHORT_TERMLIST
+ # include "dumb.trm" /* dumb terminal */
++# include "qtopia.trm" /* QTopia terminal */
+ # include "post.trm" /* postscript */
+ # include "table.trm" /* built-in, but used for the documentation */
+ # if !(defined(OS2) || defined(MSDOS) || defined(_Windows) || defined(ATARI) || defined(MTOS) || defined(AMIGA))
+@@ -432,6 +433,9 @@
+ /* TeXDraw drawing package for LaTeX */
+ #include "texdraw.trm"
+
++/* Qtopia */
++#include "qtopia.trm"
++
+ /* METAFONT */
+ #include "metafont.trm"
+
diff --git a/recipes-qtopia/gnuplot/gnuplot.inc b/recipes-qtopia/gnuplot/gnuplot.inc
new file mode 100644
index 0000000..30affad
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot.inc
@@ -0,0 +1,35 @@
+DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
+(text or binary) and function plotting utility."
+HOMEPAGE = "http://www.gnuplot.info/"
+SECTION = "console/scientific"
+LICENSE = "BSD-4"
+PRIORITY = "optional"
+DEPENDS = "virtual/libx11 gd cairo readline"
+
+inherit autotools
+
+acpaths = ""
+
+EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR}/.. \
+ --without-lisp-files \
+ --without-tutorial \
+ --disable-wxwidgets"
+
+do_compile_prepend() {
+ install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
+}
+
+do_install_append() {
+ install -d ${D}${datadir}/applications/
+ install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps/
+ install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
+}
+
+PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
+DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
+SECTION_${PN}-x11 = "x11/scientific"
+FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
+
+FILES_${PN} += "${datadir}/texmf"
+FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"
diff --git a/recipes-qtopia/gnuplot/gnuplot_4.0.0.bb b/recipes-qtopia/gnuplot/gnuplot_4.0.0.bb
new file mode 100644
index 0000000..c0b79c7
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot_4.0.0.bb
@@ -0,0 +1,17 @@
+require gnuplot.inc
+
+PR = "r5"
+
+SRC_URI = "ftp://ftp.gnuplot.info/pub/gnuplot/gnuplot-${PV}.tar.gz;name=archive \
+ file://subdirs.patch \
+ file://debian-separate-x11-package.patch \
+ http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+ file://matrix.patch \
+ file://term.patch \
+ file://gnuplot.desktop \
+ file://gnuplot.png"
+
+SRC_URI[archive.md5sum] = "66258443d9f93cc4f46b147dac33e63a"
+SRC_URI[archive.sha256sum] = "a77ad7cb08b2551dacbaa0bb02e561fddb6b9f4a0f3d45eb1c38be219955ea48"
+SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/recipes-qtopia/gnuplot/gnuplot_4.2.4.bb b/recipes-qtopia/gnuplot/gnuplot_4.2.4.bb
new file mode 100644
index 0000000..3621727
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot_4.2.4.bb
@@ -0,0 +1,15 @@
+require gnuplot.inc
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${PN}-${PV}.tar.gz;name=archive \
+ http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+ file://subdirs.patch \
+ file://term.patch \
+ file://gnuplot.desktop \
+ file://gnuplot.png"
+
+SRC_URI[archive.md5sum] = "3cde3b9232a2d81715bbaf75e1c87ecc"
+SRC_URI[archive.sha256sum] = "2a20701410a21307c404a9d10ad9fdf699bb92fa0a919797213208d80b080913"
+SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/recipes-qtopia/gnuplot/gnuplot_4.4.0.bb b/recipes-qtopia/gnuplot/gnuplot_4.4.0.bb
new file mode 100644
index 0000000..bc4727d
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot_4.4.0.bb
@@ -0,0 +1,14 @@
+require gnuplot.inc
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${PN}-${PV}.tar.gz;name=archive \
+ http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz \
+ file://subdirs.patch \
+ file://gnuplot.desktop \
+ file://gnuplot.png"
+
+SRC_URI[archive.md5sum] = "e708665bd512153ad5c35252fe499059"
+SRC_URI[archive.sha256sum] = "00de2c54a05920a5d2dc68f668990b0b84a96105d92a932d91600dd53f156b2a"
+
+
+SRC_URI[md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/recipes-qtopia/gnuplot/gnuplot_cvs.bb b/recipes-qtopia/gnuplot/gnuplot_cvs.bb
new file mode 100644
index 0000000..212164c
--- /dev/null
+++ b/recipes-qtopia/gnuplot/gnuplot_cvs.bb
@@ -0,0 +1,23 @@
+require gnuplot.inc
+
+SRCDATE = "20080328"
+PV = "4.3.0+cvs${SRCDATE}"
+PR = "r0"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "cvs://anonymous@gnuplot.cvs.sourceforge.net/cvsroot/${PN};module=${PN} \
+ http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+ file://subdirs.patch \
+ file://term.patch \
+ file://gnuplot.desktop \
+ file://gnuplot.png"
+
+S = "${WORKDIR}/${PN}"
+
+do_configure_prepend() {
+ ./prepare
+}
+
+SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/recipes-qtopia/gnuplot/qtplot_0.2.bb b/recipes-qtopia/gnuplot/qtplot_0.2.bb
new file mode 100644
index 0000000..da75440
--- /dev/null
+++ b/recipes-qtopia/gnuplot/qtplot_0.2.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "QT Gnuplot is a front end for Gnuplot. Install Opie-Embedded \
+console to enable the Launch Gnuplot menu option."
+HOMEPAGE = "http://www.mneuroth.de/privat/zaurus/gnuplot.html"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "gnuplot"
+RDEPDENDS_${PN} = "gnuplot"
+
+PR = "r1"
+
+SRC_URI = "http://www.mneuroth.de/privat/zaurus/qtplot-${PV}.tar.gz"
+
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+inherit opie
+
+do_install_prepend() {
+ install -d ${D}${palmtopdir}/pics
+ install -d ${D}${palmtopdir}/help/html
+
+ install -m 644 Qtplot.png ${D}${palmtopdir}/pics/
+ install -m 644 qtplot.html ${D}${palmtopdir}/help/html/
+}
+
+SRC_URI[md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/recipes-qtopia/hotplug-qcop/hotplug-qcop_cvs.bb b/recipes-qtopia/hotplug-qcop/hotplug-qcop_cvs.bb
new file mode 100644
index 0000000..cb2e9e2
--- /dev/null
+++ b/recipes-qtopia/hotplug-qcop/hotplug-qcop_cvs.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "HotPlug -> QCOP Event Bridge"
+SECTION = "opie/base"
+RDEPENDS_${PN} = "opie-qcop hotplug"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=core/tools/hotplug-qcop"
+S = "${WORKDIR}/hotplug-qcop"
+
+inherit opie
+
+sbindir="/sbin"
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 hotplug-qcop ${D}${sbindir}
+
+ install -d ${D}${sysconfdir}/hotplug.d/default/
+ ln -sf /sbin/hotplug-qcop ${D}${sysconfdir}/hotplug.d/default/11-qcop.hotplug
+}
+
+FILES_${PN} = "${sysconfdir} ${sbindir}"
diff --git a/recipes-qtopia/iaimaster/files/iaimaster.desktop b/recipes-qtopia/iaimaster/files/iaimaster.desktop
new file mode 100755
index 0000000..0874168
--- /dev/null
+++ b/recipes-qtopia/iaimaster/files/iaimaster.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Comment=pen action mini game. you fight evil Iai-Master and must survive. (Iai is a kind of the samurai fighting style)
+Exec=iaimaster
+Icon=iaimaster
+Type=Application
+Name=IaiMaster
+CanFastload=0
diff --git a/recipes-qtopia/iaimaster/files/iaimaster.png b/recipes-qtopia/iaimaster/files/iaimaster.png
new file mode 100755
index 0000000..b197afc
--- /dev/null
+++ b/recipes-qtopia/iaimaster/files/iaimaster.png
Binary files differ
diff --git a/recipes-qtopia/iaimaster/iaimaster_0.5.bb b/recipes-qtopia/iaimaster/iaimaster_0.5.bb
new file mode 100644
index 0000000..5b0d5e5
--- /dev/null
+++ b/recipes-qtopia/iaimaster/iaimaster_0.5.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Pen action mini game. You fight evil Iai-Master and must survive. \
+(Iai is a kind of the samurai fighting style)"
+SECTION = "opie/games"
+LICENSE = "GPL"
+APPNAME = "${PN}"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+
+SRC_URI = "http://www.urban.ne.jp/home/kanemori/zaurus/IaiMaster_${PV}.tar.gz \
+ file://iaimaster.desktop \
+ file://iaimaster.png"
+S = "${WORKDIR}/IaiMaster"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "TARGET=${PN}"
+
+do_configure_prepend() {
+ qmake -project
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/iaimaster.png ${D}${palmtopdir}/pics/
+}
+
+
+SRC_URI[md5sum] = "6e3992e261e1fb7fbae08530d45886b7"
+SRC_URI[sha256sum] = "bb837de5130cdbe2c1f4dd7ded8c890ef11f37979526e480afd82b364605563b"
diff --git a/recipes-qtopia/inkwp/inkwp_0.1.1.bb b/recipes-qtopia/inkwp/inkwp_0.1.1.bb
new file mode 100644
index 0000000..9f1e495
--- /dev/null
+++ b/recipes-qtopia/inkwp/inkwp_0.1.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Inkwp - a handwriting note take application for Qt/Embedded based palmtop environments."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.geocities.co.jp/SiliconValley-Oakland/4550/inkwp.html"
+
+SRC_URI = "http://www.geocities.co.jp/SiliconValley-Oakland/4550/inkwp-${PV}.tar.gz"
+S = "${WORKDIR}/inkwp"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Applications/
+ install -d ${D}${palmtopdir}/bin/
+ install -d ${D}${palmtopdir}/pics/inkwp/
+ install -m 0755 inkwp ${D}${palmtopdir}/bin/
+ install -m 0644 InkWp.png ${D}${palmtopdir}/pics/
+ install -m 0644 *.png ${D}${palmtopdir}/pics/inkwp/
+ install -m 0644 inkwp.desktop ${D}${palmtopdir}/apps/Applications/
+}
+
+SRC_URI[md5sum] = "a19896b756f1b29a33411a1fb2842c4b"
+SRC_URI[sha256sum] = "4afa4f4ddfdc40a32ef2c6034b2fa3bca415088b7eac4b7ad2b814202153f1e0"
diff --git a/recipes-qtopia/insttrain/files/gcc3.patch b/recipes-qtopia/insttrain/files/gcc3.patch
new file mode 100644
index 0000000..c2e2af0
--- /dev/null
+++ b/recipes-qtopia/insttrain/files/gcc3.patch
@@ -0,0 +1,33 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- src/top.cpp~gcc3
++++ src/top.cpp
+@@ -18,6 +18,7 @@
+ //static char rcsid[] = "$Id: top.cpp,v 1.1 2002/10/06 04:17:00 bjj Rel $";
+
+ #include "top.h"
++#include <qapplication.h>
+ #include <qmenubar.h>
+ #include <qpopupmenu.h>
+ #include <qframe.h>
+@@ -90,7 +91,7 @@
+ }
+
+
+-Top::Top(QWidget *parent = 0, const char *name = 0, WFlags f = WType_TopLevel)
++Top::Top(QWidget *parent, const char *name, WFlags f)
+ : QMainWindow(parent, name, f)
+ {
+ setCaption("Instrument Trainer");
+@@ -172,7 +173,7 @@
+ void
+ Top::Exit()
+ {
+- exit(0);
++ qApp->quit();
+ }
+
+ void
diff --git a/recipes-qtopia/insttrain/insttrain_1.0.5.bb b/recipes-qtopia/insttrain/insttrain_1.0.5.bb
new file mode 100644
index 0000000..313f3d9
--- /dev/null
+++ b/recipes-qtopia/insttrain/insttrain_1.0.5.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Simulates any 2 of: DG, CDI for VOR1, CDI for VOR2, ADF, RMI \
+while you drag an NDB, 2 VORs and an airplane around in an overhead view."
+SECTION = "opie/applications"
+LICENSE = "GPL"
+APPTYPE = "binary"
+APPDESKTOP = "../Qtopia/opt/QtPalmtop/apps/Applications"
+
+inherit opie
+
+SRC_URI = "http://www.Vanille.de/mirror/insttrain-${PV}.tgz \
+ file://gcc3.patch"
+S = "${WORKDIR}/insttrain-${PV}/src"
+
+QMAKE_PROFILES = "rmi.pro"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 ../Qtopia/opt/QtPalmtop/pics/*.png ${D}${palmtopdir}/pics/
+}
+
+
+SRC_URI[md5sum] = "2cec5b79969d0fc64c510edfe7113319"
+SRC_URI[sha256sum] = "2dd29e066dece7062cb30daeedad7e5baa0b5cb993c67ba700ebacd6e0212487"
diff --git a/recipes-qtopia/iqnotes/files/pro.patch b/recipes-qtopia/iqnotes/files/pro.patch
new file mode 100644
index 0000000..b2e5d88
--- /dev/null
+++ b/recipes-qtopia/iqnotes/files/pro.patch
@@ -0,0 +1,10 @@
+--- iqnotes/iqnotes.pro.orig 2005-12-30 13:38:24.000000000 +0100
++++ iqnotes/iqnotes.pro 2005-12-30 13:39:01.000000000 +0100
+@@ -1,6 +1,5 @@
+ TEMPLATE = app
+-#CONFIG = qt warn_on pda
+-CONFIG = qt warn_on debug desktop
++CONFIG = qt warn_on pda
+ DEFINES = TOOLBAR_BIG_ICONS
+ pda:INCLUDEPATH += $(QPEDIR)/include
+ DESTDIR = ../bin
diff --git a/recipes-qtopia/iqnotes/iqnotes-2.0.2/md5.diff b/recipes-qtopia/iqnotes/iqnotes-2.0.2/md5.diff
new file mode 100644
index 0000000..1cc7520
--- /dev/null
+++ b/recipes-qtopia/iqnotes/iqnotes-2.0.2/md5.diff
@@ -0,0 +1,20 @@
+--- iqnotes/md5.cpp.orig 2004-02-08 19:34:32.000000000 +0000
++++ iqnotes/md5.cpp 2004-03-27 23:21:58.349894440 +0000
+@@ -151,7 +151,7 @@
+
+ while (stream.good())
+ {
+- stream.read(buffer, 1024); // note that return value of read is unusable.
++ stream.read((char *)buffer, 1024); // note that return value of read is unusable.
+ len=stream.gcount();
+ update(buffer, len);
+ }
+@@ -174,7 +174,7 @@
+
+ while (stream.good())
+ {
+- stream.read(buffer, 1024); // note that return value of read is unusable.
++ stream.read((char *)buffer, 1024); // note that return value of read is unusable.
+ len=stream.gcount();
+ update(buffer, len);
+ }
diff --git a/recipes-qtopia/iqnotes/iqnotes-2.0.2/qt2310-fontbug.patch b/recipes-qtopia/iqnotes/iqnotes-2.0.2/qt2310-fontbug.patch
new file mode 100644
index 0000000..043b98d
--- /dev/null
+++ b/recipes-qtopia/iqnotes/iqnotes-2.0.2/qt2310-fontbug.patch
@@ -0,0 +1,11 @@
+--- iqnotes/preferences.cpp.orig 2005-02-23 14:36:04 +0100
++++ iqnotes/preferences.cpp 2005-02-23 14:35:59 +0100
+@@ -106,7 +106,7 @@
+ {
+ QFontDatabase fontDB;
+ int currentSize = -1;
+-#ifdef DEBUG
++#if defined(DEBUG) || QT_VERSION >= 239
+ int f = 1;
+ #else
+ int f = 10;
diff --git a/recipes-qtopia/iqnotes/iqnotes.inc b/recipes-qtopia/iqnotes/iqnotes.inc
new file mode 100644
index 0000000..f26e8cc
--- /dev/null
+++ b/recipes-qtopia/iqnotes/iqnotes.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "IQNotes is notes kept in a hierarchical(tree like) manner. \
+It handles todo, events, sketching. It can acts as a contact, password, \
+credit card manager and even more, because is highly configurable. \
+Data can be crypted by strong AES algorithm."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://iqnotes.berlios.de"
+AUTHOR = "Peter Vrabel <kybu@kybu.org>"
+
+S = "${WORKDIR}/iqnotes/iqnotes"
+
+inherit palmtop
+
+QMAKE_PROFILES = "iqnotes.pro"
+export OE_QMAKE_LINK="${CXX}"
+
+do_install() {
+ install -d ${D}${palmtopdir}/help/html \
+ ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics/iqnotes/items \
+ ${D}${palmtopdir}/iqnotes/icons
+ install -m 0755 ${S}/../bin/iqnotes ${D}${palmtopdir}/bin/
+ install -m 0644 ${S}/../apps/Applications/*.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${S}/../pics/iqnotes/*.png ${D}${palmtopdir}/pics/iqnotes/
+ install -m 0644 ${S}/../help/html/iqnotes.html ${D}${palmtopdir}/help/html/
+ install -m 0644 ${S}/../pics/*.xpm ${D}${palmtopdir}/pics/
+}
diff --git a/recipes-qtopia/iqnotes/iqnotes_2.0.2.bb b/recipes-qtopia/iqnotes/iqnotes_2.0.2.bb
new file mode 100644
index 0000000..95cf9ae
--- /dev/null
+++ b/recipes-qtopia/iqnotes/iqnotes_2.0.2.bb
@@ -0,0 +1,10 @@
+require iqnotes.inc
+
+PR = "r5"
+
+SRC_URI = "http://www.vanille.de/mirror/iqnotes-2.0.2-src.tar.bz2 \
+ file://md5.diff \
+ file://qt2310-fontbug.patch"
+
+SRC_URI[md5sum] = "9d9504055b37247ece87b31895eb2e5b"
+SRC_URI[sha256sum] = "27badd5d9f3167443099c6b6cf66b05b9e32cc71f03d692cff474c2279c4f4cd"
diff --git a/recipes-qtopia/iqnotes/iqnotes_2.0.99-2.1.0rc1.bb b/recipes-qtopia/iqnotes/iqnotes_2.0.99-2.1.0rc1.bb
new file mode 100644
index 0000000..f4a7aea
--- /dev/null
+++ b/recipes-qtopia/iqnotes/iqnotes_2.0.99-2.1.0rc1.bb
@@ -0,0 +1,15 @@
+require iqnotes.inc
+
+#upstream version
+UPV = "2.1.0rc1"
+PR = "r2"
+
+SRC_URI = "http://download.berlios.de/iqnotes/iqnotes-${UPV}.tar.bz2 \
+ file://pro.patch"
+
+S = "${WORKDIR}/iqnotes-${UPV}/iqnotes/"
+
+EXTRA_QMAKEVARS_POST += "CONFIG-=desktop CONFIG-=debug CONFIG+=pda LIBS-=-lqtopia"
+
+SRC_URI[md5sum] = "6b4bbf1b97d1fe777c881c0576e4cb65"
+SRC_URI[sha256sum] = "e3c0d1991f6a35f789bf305bc56971e2ced6208d19443ccea8d1d64417a90faf"
diff --git a/recipes-qtopia/irk/files/install-default-conf.patch b/recipes-qtopia/irk/files/install-default-conf.patch
new file mode 100644
index 0000000..a55992a
--- /dev/null
+++ b/recipes-qtopia/irk/files/install-default-conf.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- irk/irk.cpp~install-default-config
++++ irk/irk.cpp
+@@ -470,6 +470,10 @@
+
+ void CGIRK::readConfig()
+ {
++ // check if the config is there, if not copy it from default location
++ // FIXME: Do it properly once confirmed that it works :D
++ ::system( "if [ ! -e \"$HOME/Settings/IRK.conf\" ]; then cat $OPIEDIR/etc/skel/IRK.conf >$HOME/Settings/IRK.conf; fi" );
++
+ // clear the keyboard list ready for the new one to be loaded in
+ m_keyboardList.clear();
+ #if !POCKETOP_BUILD
diff --git a/recipes-qtopia/irk/irk-belkin_0.11.bb b/recipes-qtopia/irk/irk-belkin_0.11.bb
new file mode 100644
index 0000000..3de38f3
--- /dev/null
+++ b/recipes-qtopia/irk/irk-belkin_0.11.bb
@@ -0,0 +1,12 @@
+require irk.inc
+
+DESCRIPTION += "(version with Belkin support)"
+RCONFLICTS_${PN} = "irk-targus"
+RREPLACES_${PN} = "irk-targus"
+PR = "r4"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/irk-current.tgz \
+ file://install-default-conf.patch"
+
+SRC_URI[md5sum] = "a77eaea6930b9af5bbcd59bf9f8859c8"
+SRC_URI[sha256sum] = "942240421710da8a04fa6c7071f50f0737ab7198e31c1d96f1e0b73330e0d066"
diff --git a/recipes-qtopia/irk/irk-targus_0.11.0.bb b/recipes-qtopia/irk/irk-targus_0.11.0.bb
new file mode 100644
index 0000000..252b2c9
--- /dev/null
+++ b/recipes-qtopia/irk/irk-targus_0.11.0.bb
@@ -0,0 +1,14 @@
+require irk.inc
+PR = "r3"
+
+DESCRIPTION += "(version with Targus support)"
+HOMEPAGE = "http://angela1.data-uncertain.co.uk/~zaurus/irk.php"
+
+RCONFLICTS_${PN} = "irk-belkin"
+RREPLACES_${PN} = "irk-belkin"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/irk-${PV}.tgz \
+ file://install-default-conf.patch"
+
+SRC_URI[md5sum] = "5b39a7fb06fd24edfb543a3a0130065c"
+SRC_URI[sha256sum] = "5eeba81a5e5163e0b0b92b5e5aaf91c07b412a743a98f59975c75d28c133a85f"
diff --git a/recipes-qtopia/irk/irk.inc b/recipes-qtopia/irk/irk.inc
new file mode 100644
index 0000000..b00583c
--- /dev/null
+++ b/recipes-qtopia/irk/irk.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "IRK provides a Qtopia/Opie Input Method plugin that allows you to use external infrared keyboards with the Zaurus."
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://angela1.data-uncertain.co.uk/~zaurus/irk.php"
+DEPENDS = "lirc"
+
+S = "${WORKDIR}/irk"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "CONFIG-=qtopia INCLUDEPATH+=${STAGING_INCDIR}/lirc"
+
+do_install() {
+ install -d ${D}${sysconfdir}/
+ install -d ${D}${palmtopdir}/etc/skel/
+ install -d ${D}${palmtopdir}/plugins/inputmethods/
+
+ install -m 0644 chicony.conf ${D}${sysconfdir}/lircd.conf
+ install -m 0644 IRK.conf ${D}${palmtopdir}/etc/skel/
+ oe_libinstall -so libirk ${D}${palmtopdir}/plugins/inputmethods
+}
+
+FILES_${PN} += "${sysconfdir}"
diff --git a/recipes-qtopia/jards/jards_1.0.bb b/recipes-qtopia/jards/jards_1.0.bb
new file mode 100644
index 0000000..e9e9eff
--- /dev/null
+++ b/recipes-qtopia/jards/jards_1.0.bb
@@ -0,0 +1,58 @@
+DESCRIPTION = "Reference and training tool for students of Japanese"
+AUTHOR = "Johnny Andersson"
+HOMEPAGE = "http://gakusei.sf.net"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "virtual-japanese-font qte-mt libpng (>= 1) kpengine"
+PR = "r9"
+
+# stuff that still needs fixing
+#) is the RDEPENDS_${PN} line correct and sufficient?
+#) upon execution there is a message that /usr/lib/libpng12.so.0 does not have version information
+#) desktop icon missing
+#) Desktop png file an falscher Stelle, daher kein Icon
+#) remove .debug dir
+#) es fehlen: ./opt/QtPalmtop/bin/kpengine, ./opt/QtPalmtop/jardsmob/edict.jardsdic, ./opt/QtPalmtop/jardsmob/kanjidic.jardskdic
+#) exec muß jardsmob_bin heißen
+#) Programm geht oft in 100% CPU schleife -> unbenutzbar
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gakusei/jards_gakusei.cvs.sourceforge.net__20070212.tar.gz"
+#SRC_URI = "cvs://anonymous@gakusei.cvs.sourceforge.net/cvsroot/gakusei;method=pserver;module=jards"
+
+inherit opie
+
+OE_QMAKE_CXXFLAGS := "${@oe_filter_out('-fno-rtti', '${OE_QMAKE_CXXFLAGS}', d)}"
+
+S = "${WORKDIR}/${PN}/"
+export OE_QMAKE_LINK="${CXX}"
+
+# read opie.bbclass
+#APPDESKTOP = "${S}"
+APPTYPE = "binary"
+APPNAME = "jardsmob"
+
+FILES_${PN}-dbg += "${D}${palmtopdir}/bin/.debug/"
+
+PARALLEL_MAKE = ""
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/
+ install -d ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/${APPNAME}/images
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -m 0644 ${S}dat/images/jardsmob.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}dat/images/*.png ${D}${palmtopdir}/${APPNAME}/images/
+ install -m 0755 ${S}jardsmob_bin ${D}${palmtopdir}/bin/
+ install -m 0644 ${WORKDIR}/jards/jards.desktop ${D}${palmtopdir}/apps/Applications/
+
+ # what about the following files: edict.jardsdic kanjidic.jardskdic?
+ for f in markers romkana.utf8 strokedata wordfreq_ck raddat.utf8
+ do
+ install -m 0644 ${S}dat/$f ${D}${palmtopdir}/${APPNAME}/
+ done
+}
+
+
+SRC_URI[md5sum] = "1282913edd226bc9e865f39d79573117"
+SRC_URI[sha256sum] = "3c884982ebf40aade899379902ec92c41782d18c19506cf0ec40bcf6a7df8e3b"
diff --git a/recipes-qtopia/justreader/files/correct-settings-path.patch b/recipes-qtopia/justreader/files/correct-settings-path.patch
new file mode 100644
index 0000000..695edc1
--- /dev/null
+++ b/recipes-qtopia/justreader/files/correct-settings-path.patch
@@ -0,0 +1,17 @@
+upstream: http://sf.net/tracker/?func=detail&aid=1115394&group_id=61928&atid=498857
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- TextReader2/qpex/config.cpp~correct-settings-path
++++ TextReader2/qpex/config.cpp
+@@ -109,7 +109,7 @@
+ case User: {
+ QString homeDirPath = QDir::homeDirPath();
+
+- QDir dir = (homeDirPath + "/Choices/common");
++ QDir dir = (homeDirPath + "/Settings");
+ if ( !dir.exists() )
+ #ifndef Q_OS_WIN32
+ mkdir(dir.path().local8Bit(),0700);
diff --git a/recipes-qtopia/justreader/files/missing-include.patch b/recipes-qtopia/justreader/files/missing-include.patch
new file mode 100644
index 0000000..4831f38
--- /dev/null
+++ b/recipes-qtopia/justreader/files/missing-include.patch
@@ -0,0 +1,10 @@
+--- a/shcm.cpp 2009-05-25 09:07:19.928704817 +0200
++++ b/shcm.cpp 2009-05-25 09:07:38.225747505 +0200
+@@ -19,6 +19,7 @@
+ ****************************************************************************/
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <vector>
+
+ #include "shcm.h"
diff --git a/recipes-qtopia/justreader/justreader_2.0k.bb b/recipes-qtopia/justreader/justreader_2.0k.bb
new file mode 100644
index 0000000..9df89fa
--- /dev/null
+++ b/recipes-qtopia/justreader/justreader_2.0k.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "An E-Books reader for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://justreader.sourceforge.net/"
+PR = "r3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/justreader/justreader_${PV}.tgz \
+file://correct-settings-path.patch \
+file://missing-include.patch"
+
+S = "${WORKDIR}/TextReader2"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += 'INCLUDEPATH+="${STAGING_INCDIR}/qpe" LIBS+=-lqpe'
+export OE_QMAKE_LINK="${CXX}"
+
+do_configure_prepend() {
+ find . -name "Makefile"|xargs rm -f
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/pics/${PN}/ \
+ ${D}${palmtopdir}/apps/Applications
+ install -m 0644 apps/Applications/justreader.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0755 bin/justreader ${D}${palmtopdir}/bin/
+ install -m 0644 pics/* ${D}${palmtopdir}/pics/justreader/
+}
+
+SRC_URI[md5sum] = "74b2b89b12668cbbbb093b6343e9f52d"
+SRC_URI[sha256sum] = "55b0dd7ac3f9860a4cba0797213fdaa898b77f3228612e3499d54e6fe6144514"
diff --git a/recipes-qtopia/kaffe/kaffe-qt_cvs.bb b/recipes-qtopia/kaffe/kaffe-qt_cvs.bb
new file mode 100644
index 0000000..37085e6
--- /dev/null
+++ b/recipes-qtopia/kaffe/kaffe-qt_cvs.bb
@@ -0,0 +1,24 @@
+BROKEN = "1"
+
+SRCDATE = "20060814"
+PV = "1.1.4+cvs${SRCDATE}"
+SRC_URI = "cvs://readonly:readonly@cvs.kaffe.org/cvs/kaffe;module=kaffe"
+S = "${WORKDIR}/kaffe"
+
+require kaffe.inc
+
+DEPENDS += "libqpe-opie"
+
+CXXFLAGS += " -DQPE "
+EXTRA_OEMAKE += "MOC=${STAGING_BINDIR_NATIVE}/moc"
+EXTRA_OECONF += " --with-qtdir=$QTDIR \
+ --with-awt=qt \
+ --enable-pure-java-math \
+ --without-x \
+ --without-classpath-gtk-awt \
+ --without-kaffe-x-awt \
+ --with-kaffe-qt-awt"
+
+do_configure_prepend() {
+ rm -f m4/libtool.m4
+}
diff --git a/recipes-qtopia/kaffe/kaffe.inc b/recipes-qtopia/kaffe/kaffe.inc
new file mode 100644
index 0000000..d0997de
--- /dev/null
+++ b/recipes-qtopia/kaffe/kaffe.inc
@@ -0,0 +1,86 @@
+DESCRIPTION = "Kaffe is a clean room implementation of the Java Virtual Machine"
+HOMEPAGE = "http://www.kaffe.org/"
+LICENSE = "GPL LGPL W3C Classpath BSD"
+
+DEPENDS = "virtual/javac-native fastjar-native libffi zip-native libart-lgpl"
+RDEPENDS_${PN} = "${PN}-common (>= ${PV})"
+
+SRC_URI += "file://disable-automake-checks.patch"
+
+inherit autotools gettext
+
+EXTRA_OECONF = "--with-engine=intrp \
+ --with-libffi \
+ --with-threads=unix-pthreads \
+ --disable-alsatest \
+ --disable-esdtest \
+ --disable-sound \
+ --with-jikes"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+# kaffe installs to non-standard locations. apply a similar workaround to
+# the one used in debian. i.e. override prefix
+oe_runconf () {
+ if [ -x ${S}/configure ] ; then
+ cfgcmd="${S}/configure \
+ --build=${BUILD_SYS} \
+ --host=${HOST_SYS} \
+ --target=${TARGET_SYS} \
+ --prefix=${libdir}/${PN} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir}/${PN} \
+ --includedir=${includedir} \
+ --oldincludedir=${oldincludedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ ${EXTRA_OECONF} \
+ $@"
+ oenote "Running $cfgcmd..."
+ $cfgcmd || oefatal "oe_runconf failed"
+ else
+ oefatal "no configure script found"
+ fi
+}
+
+do_install () {
+ autotools_do_install
+
+ # move partially duplicate stuff to a single location
+ mv -f ${D}${libdir}/${PN}/bin/* ${D}${libdir}/${PN}/jre/bin
+ rmdir ${D}${libdir}/${PN}/bin
+ cd ${D}${libdir}/${PN} && ln -s jre/bin
+}
+
+# use update-alternatives for the various wrapper scripts
+alternative_names = "appletviewer \
+install-jar \
+jar \
+java \
+javac \
+javadoc \
+javah \
+javap \
+kaffe \
+kaffeh \
+native2ascii \
+rmic \
+rmiregistry \
+serialver"
+
+pkg_postinst_${PN} () {
+ for name in ${alternative_names}; do
+ update-alternatives --install ${bindir}/$name $name ${libdir}/${PN}/jre/bin/$name 300
+ done
+}
+
+pkg_postrm_${PN} () {
+ for name in ${alternative_names}; do
+ update-alternatives --remove $name ${libdir}/${PN}/jre/bin/$name
+ done
+}
+
+PACKAGES =+ "${PN}-common"
+FILES_${PN} += "${libdir}/${PN}"
+FILES_${PN}-common = "${libdir}/${PN}/jre/lib/*.jar"
diff --git a/recipes-qtopia/kdepimpi/files/qt-mt.patch b/recipes-qtopia/kdepimpi/files/qt-mt.patch
new file mode 100644
index 0000000..f0a5721
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/files/qt-mt.patch
@@ -0,0 +1,45 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1898924&group_id=104103&atid=636951
+status: upstream is pretty dead
+
+diff --git
+a/microkde/kresources/resource.cpp b/microkde/kresources/resource.cpp
+index cccd485..65d82e2 100644
+--- a/microkde/kresources/resource.cpp
++++ b/microkde/kresources/resource.cpp
+@@ -29,6 +29,23 @@
+
+ using namespace KRES;
+
++namespace fixme {
++ class QMutexLocker {
++ public:
++ QMutexLocker(QMutex *m) : mtx(m) {
++ if(mtx) mtx->lock();
++ }
++ ~QMutexLocker() {
++ if(mtx) mtx->unlock();
++ }
++
++ QMutex *mutex() const { return mtx; }
++ private:
++ QMutex *mtx;
++ };
++}
++using namespace fixme;
++
+ class Resource::ResourcePrivate
+ {
+ public:
+diff --git a/microkde/kresources/resource.h b/microkde/kresources/resource.h
+index ed5af96..997fff6 100644
+--- a/microkde/kresources/resource.h
++++ b/microkde/kresources/resource.h
+@@ -25,7 +25,7 @@
+
+ //US
+ #ifdef QT_THREAD_SUPPORT
+-#include <qmutex.h>
++#include <qthread.h>
+ #endif //QT_THREAD_SUPPORT
+
+ #include <qvaluelist.h>
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-base.inc b/recipes-qtopia/kdepimpi/kdepimpi-base.inc
new file mode 100644
index 0000000..d031a52
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-base.inc
@@ -0,0 +1,162 @@
+DESCRIPTION = "KDE-Pim Platform Independent - port of KDE Pim to PDA"
+DESCRIPTION_kopi = "Korganizer/PI is a powerful calendar and ToDo Tool"
+DESCRIPTION_kopi-applet = "KDE Pim/PI applet"
+DESCRIPTION_kapi = "KAddressbook/PI is a port of KDE addressbook"
+DESCRIPTION_libmicrokdelibs = "KDE Pim/PI library - microkde"
+DESCRIPTION_libmicrokcal = "KDE Pim/PI library - microkcal"
+DESCRIPTION_libmicrokabc = "KDE Pim/PI library - microkabc"
+DESCRIPTION_libmicrokammu = "KDE Pim/PI fork of libGammu"
+DESCRIPTION_kammu = "KDE Pim/PI fork of gammu"
+
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.pi-sync.net/ http://sf.net/projects/kdepimpi/"
+
+# we can't build:
+# kabc/plugins/sharpdtm - wants libsl (Sharp ROM 3.x closed source library)
+# kabc/plugins/ldap - wants ldap libs (?)
+# kabc/plugins/opie - wants libopie1 (we don't plan to have it in OE)
+# kmicromail - conflict with OE libetpan, libmailwrapper/OPIE
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/kdepim"
+
+EXTRA_QMAKEVARS_POST += " \
+INCLUDEPATH+=../ \
+OBJECTS_DIR=obj/ MOC_DIR=moc/ \
+DESTDIR=${S}/dest \
+LIBS+=-L${S}/dest/ \
+LIBS-=-lzlib \
+LIBS+=-lz \
+"
+# That changes will be needed for KMicroMail/PI to get it build with OE libs
+#
+# LIBS-=-lkmicromailwrapper LIBS+=-lmailwrapper LIBS+=-lopiecore2 \
+
+QMAKE_PROFILES= "all.pro"
+
+SUBDIRS="qtcompat libical/src/libical libical/src/libicalss microkde libkcal libkdepim \
+ kabc korganizer kalarmd kaddressbook kabc/plugins/file kabc/plugins/dir \
+ kabc/formats/binary kabc/plugins/qtopia \
+ gammu/emb/common \
+ gammu/emb/gammu \
+# pwmanager/libcrypt/mpi \
+# pwmanager/libcrypt/error \
+# pwmanager/libcrypt/cipher \
+# pwmanager/libcrypt/zlib \
+# pwmanager/pwmanager \
+ "
+
+inherit palmtop
+
+do_configure_prepend() {
+ mv ${S}/kabc/formats/binary/kabcformat_binaryE.pro ${S}/kabc/formats/binary/binaryE.pro
+ printf "TEMPLATE=subdirs\nSUBDIRS=${SUBDIRS}\n" >all.pro
+ for d in ${SUBDIRS}
+ do
+ if [ -f ${d}/`basename ${d}`E.pro ];
+ then
+ mv -f ${d}/`basename ${d}`E.pro ${d}/`basename ${d}`.pro
+ fi
+ done
+}
+
+do_compile() {
+ export KDEPIMDIR=${S}
+ oe_runmake
+}
+
+HEADERS_DIRS = "qtcompat \
+microkde \
+microkde/kdecore \
+microkde/kdeui \
+microkde/kio \
+microkde/kresources \
+microkde/kutils \
+microkde/opie2 \
+kabc \
+libkcal \
+libkdepim "
+
+do_unstage() {
+
+ for dir in ${HEADERS_DIRS};
+ do
+ rm -rf ${STAGING_INCDIR}/kdepimpi/$dir
+ done
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat
+ do
+ rm -f ${STAGING_LIBDIR}/kdepimpi/$f*
+ done
+}
+
+addtask unstage before do_configure
+
+do_stage() {
+
+ for dir in ${HEADERS_DIRS};
+ do
+ install -d ${STAGING_INCDIR}/kdepimpi/$dir
+ install -m 0644 ${S}/$dir/*.h ${STAGING_INCDIR}/kdepimpi/$dir/
+ done
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${STAGING_LIBDIR}/kdepimpi/
+ done
+}
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${palmtopdir}/lib \
+ ${D}${palmtopdir}/apps/1Pim \
+ ${D}${palmtopdir}/pics/kdepim/korganizer/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/korganizer/iconsmini \
+ ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons22 \
+ ${D}${palmtopdir}/plugins/applets
+
+ install -m 0644 ${S}/bin/kdepim/korganizer/ko16.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/bin/kdepim/korganizer/ko24.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/bin/kdepim/korganizer/*.* ${D}${palmtopdir}/pics/kdepim/korganizer
+ install -m 0644 ${S}/bin/kdepim/korganizer/icons16/*.png ${D}${palmtopdir}/pics/kdepim/korganizer/icons16
+ install -m 0644 ${S}/bin/kdepim/korganizer/iconsmini/*.png ${D}${palmtopdir}/pics/kdepim/korganizer/iconsmini
+ install -m 0644 korganizer/korganizer.desktop ${D}${palmtopdir}/apps/1Pim/korganizer.desktop
+
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/*.* ${D}${palmtopdir}/pics/kdepim/kaddressbook
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/icons16/*.png ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons16
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/icons22/*.png ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons22
+ install -m 0644 kaddressbook/kaddressbook.desktop ${D}${palmtopdir}/apps/1Pim/kaddressbook.desktop
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat libmicrokabc_file libmicrokabc_dir libmicrokabcformat_binary libmicrokabc_qtopia
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${D}${palmtopdir}/lib
+ done
+
+ install -m 0755 ${S}/dest/kopi ${D}${bindir}/kopi
+ install -m 0755 ${S}/dest/kapi ${D}${bindir}/kapi
+
+ install -d ${D}${libdir}
+ install -m 0755 ${S}/dest/kammu ${D}${bindir}/kammu
+ oe_libinstall -so -C ${S}/dest/ libmicrokammu ${D}${libdir}
+
+ for f in libkopialarmapplet
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${D}${palmtopdir}/plugins/applets
+ done
+}
+
+
+PACKAGES = "${PN}-dbg libmicrokcal libmicrokabc kopi-applet kopi kapi libmicrokdelibs kammu libmicrokammu ${PN}"
+
+FILES_kopi = "${bindir}/kopi ${palmtopdir}/apps/1Pim/korganizer.desktop ${palmtopdir}/pics/kdepim/korganizer/* "
+FILES_kapi = "${bindir}/kapi ${palmtopdir}/apps/1Pim/kaddressbook.desktop ${palmtopdir}/pics/kdepim/kaddressbook/* ${palmtopdir}/lib/libmicrokabc_* ${palmtopdir}/lib/libmicrokabcformat_binary*"
+FILES_kopi-applet = "${palmtopdir}/plugins/applets/* ${palmtopdir}/pics/ko16.png ${palmtopdir}/pics/ko24.png"
+FILES_libmicrokabc = "${palmtopdir}/lib/libmicrokabc.so.*"
+FILES_libmicrokcal = "${palmtopdir}/lib/libmicrokcal.so.*"
+FILES_libmicrokdelibs = "${palmtopdir}/lib/*.so.*"
+FILES_kammu = "${bindir}/kammu"
+FILES_libmicrokammu = "${libdir}/libmicrokammu*"
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-qte.inc b/recipes-qtopia/kdepimpi/kdepimpi-qte.inc
new file mode 100644
index 0000000..da7f011
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-qte.inc
@@ -0,0 +1,163 @@
+DESCRIPTION = "KDE-Pim Platform Independent - port of KDE Pim to PDA"
+DESCRIPTION_kopi = "Korganizer/PI is a powerful calendar and ToDo Tool"
+DESCRIPTION_kopi-applet = "KDE Pim/PI applet"
+DESCRIPTION_kapi = "KAddressbook/PI is a port of KDE addressbook"
+DESCRIPTION_libmicrokdelibs = "KDE Pim/PI library - microkde"
+DESCRIPTION_libmicrokcal = "KDE Pim/PI library - microkcal"
+DESCRIPTION_libmicrokabc = "KDE Pim/PI library - microkabc"
+DESCRIPTION_libmicrokammu = "KDE Pim/PI fork of libGammu"
+DESCRIPTION_kammu = "KDE Pim/PI fork of gammu"
+
+SECTION = "opie/pim"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.pi-sync.net/ http://sf.net/projects/kdepimpi/"
+MAINTAINER = "Marcin Juszkiewicz <openembedded@hrw.one.pl>"
+
+# we can't build:
+# kabc/plugins/sharpdtm - wants libsl (Sharp ROM 3.x closed source library)
+# kabc/plugins/ldap - wants ldap libs (?)
+# kabc/plugins/opie - wants libopie1 (we don't plan to have it in OE)
+# kmicromail - conflict with OE libetpan, libmailwrapper/OPIE
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/kdepim"
+
+EXTRA_QMAKEVARS_POST += " \
+INCLUDEPATH+=../ \
+OBJECTS_DIR=obj/ MOC_DIR=moc/ \
+DESTDIR=${S}/dest \
+LIBS+=-L${S}/dest/ \
+LIBS-=-lzlib \
+LIBS+=-lz \
+"
+# That changes will be needed for KMicroMail/PI to get it build with OE libs
+#
+# LIBS-=-lkmicromailwrapper LIBS+=-lmailwrapper LIBS+=-lopiecore2 \
+
+QMAKE_PROFILES= "all.pro"
+
+SUBDIRS="qtcompat libical/src/libical libical/src/libicalss microkde libkcal libkdepim \
+ kabc korganizer kalarmd kaddressbook kabc/plugins/file kabc/plugins/dir \
+ kabc/formats/binary kabc/plugins/qtopia \
+ gammu/emb/common \
+ gammu/emb/gammu \
+# pwmanager/libcrypt/mpi \
+# pwmanager/libcrypt/error \
+# pwmanager/libcrypt/cipher \
+# pwmanager/libcrypt/zlib \
+# pwmanager/pwmanager \
+ "
+
+inherit palmtop
+
+do_configure_prepend() {
+ mv ${S}/kabc/formats/binary/kabcformat_binaryE.pro ${S}/kabc/formats/binary/binaryE.pro
+ echo -e "TEMPLATE=subdirs\nSUBDIRS=${SUBDIRS}\n" >all.pro
+ for d in ${SUBDIRS}
+ do
+ if [ -f ${d}/`basename ${d}`E.pro ];
+ then
+ mv -f ${d}/`basename ${d}`E.pro ${d}/`basename ${d}`.pro
+ fi
+ done
+}
+
+do_compile() {
+ export KDEPIMDIR=${S}
+ oe_runmake
+}
+
+HEADERS_DIRS = "qtcompat \
+microkde \
+microkde/kdecore \
+microkde/kdeui \
+microkde/kio \
+microkde/kresources \
+microkde/kutils \
+microkde/opie2 \
+kabc \
+libkcal \
+libkdepim "
+
+do_unstage() {
+
+ for dir in ${HEADERS_DIRS};
+ do
+ rm -rf ${STAGING_INCDIR}/kdepimpi/$dir
+ done
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat
+ do
+ rm -f ${STAGING_LIBDIR}/kdepimpi/$f*
+ done
+}
+
+addtask unstage before do_configure
+
+do_stage() {
+
+ for dir in ${HEADERS_DIRS};
+ do
+ install -d ${STAGING_INCDIR}/kdepimpi/$dir
+ install -m 0644 ${S}/$dir/*.h ${STAGING_INCDIR}/kdepimpi/$dir/
+ done
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${STAGING_LIBDIR}/kdepimpi/
+ done
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/lib \
+ ${D}${palmtopdir}/apps/1Pim \
+ ${D}${palmtopdir}/pics/kdepim/korganizer/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/korganizer/iconsmini \
+ ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons22 \
+ ${D}${palmtopdir}/plugins/applets
+
+ install -m 0644 ${S}/bin/kdepim/korganizer/ko16.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/bin/kdepim/korganizer/ko24.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/bin/kdepim/korganizer/*.* ${D}${palmtopdir}/pics/kdepim/korganizer
+ install -m 0644 ${S}/bin/kdepim/korganizer/icons16/*.png ${D}${palmtopdir}/pics/kdepim/korganizer/icons16
+ install -m 0644 ${S}/bin/kdepim/korganizer/iconsmini/*.png ${D}${palmtopdir}/pics/kdepim/korganizer/iconsmini
+ install -m 0644 korganizer/korganizer.desktop ${D}${palmtopdir}/apps/1Pim/korganizer.desktop
+
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/*.* ${D}${palmtopdir}/pics/kdepim/kaddressbook
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/icons16/*.png ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons16
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/icons22/*.png ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons22
+ install -m 0644 kaddressbook/kaddressbook.desktop ${D}${palmtopdir}/apps/1Pim/kaddressbook.desktop
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat libmicrokabc_file libmicrokabc_dir libmicrokabcformat_binary libmicrokabc_qtopia
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${D}${palmtopdir}/lib
+ done
+
+ install -m 0755 ${S}/dest/kopi ${D}${palmtopdir}/bin/kopi
+ install -m 0755 ${S}/dest/kapi ${D}${palmtopdir}/bin/kapi
+
+ install -d ${D}${bindir} ${D}${libdir}
+ install -m 0755 ${S}/dest/kammu ${D}${bindir}/kammu
+ oe_libinstall -so -C ${S}/dest/ libmicrokammu ${D}${libdir}
+
+ for f in libkopialarmapplet
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${D}${palmtopdir}/plugins/applets
+ done
+}
+
+
+PACKAGES = "libmicrokcal libmicrokabc kopi-applet kopi kapi libmicrokdelibs kammu libmicrokammu ${PN}"
+
+FILES_kopi = "${palmtopdir}/bin/kopi ${palmtopdir}/apps/1Pim/korganizer.desktop ${palmtopdir}/pics/kdepim/korganizer/* "
+FILES_kapi = "${palmtopdir}/bin/kapi ${palmtopdir}/apps/1Pim/kaddressbook.desktop ${palmtopdir}/pics/kdepim/kaddressbook/* ${palmtopdir}/lib/libmicrokabc_* ${palmtopdir}/lib/libmicrokabcformat_binary*"
+FILES_kopi-applet = "${palmtopdir}/plugins/applets/* ${palmtopdir}/pics/ko16.png ${palmtopdir}/pics/ko24.png"
+FILES_libmicrokabc = "${palmtopdir}/lib/libmicrokabc*"
+FILES_libmicrokcal = "${palmtopdir}/lib/libmicrokcal*"
+FILES_libmicrokdelibs = "${palmtopdir}/lib/*"
+FILES_kammu = "${bindir}/kammu"
+FILES_libmicrokammu = "${libdir}/libmicrokammu*"
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11.inc b/recipes-qtopia/kdepimpi/kdepimpi-x11.inc
new file mode 100644
index 0000000..6cf0d38
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11.inc
@@ -0,0 +1,70 @@
+DESCRIPTION = "KDE-Pim Platform Independent - port of KDE Pim to PDA - X11 version"
+DESCRIPTION_kopi-x11 = "Korganizer/PI is a powerful calendar and ToDo Tool - X11 version"
+DESCRIPTION_kopi-applet-x11 = "KDE Pim/PI applet - X11 version"
+DESCRIPTION_kapi-x11 = "KAddressbook/PI is a port of KDE addressbook - X11 version"
+DESCRIPTION_libmicrokdelibs-x11 = "KDE Pim/PI library - microkde - X11 version"
+DESCRIPTION_libmicrokcal-x11 = "KDE Pim/PI library - microkcal - X11 version"
+DESCRIPTION_libmicrokabc-x11 = "KDE Pim/PI library - microkabc - X11 version"
+DESCRIPTION_libmicrokammu-x11 = "KDE Pim/PI fork of libGammu - X11 version"
+DESCRIPTION_kammu-x11 = "KDE Pim/PI fork of gammu - X11 version"
+
+SECTION = "x11/pim"
+
+inherit qmake qt3x11
+
+QMAKE_PROFILES= "kdepim-desktop.pro"
+
+do_install() {
+ oe_runmake install
+}
+
+do_install-broken() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/lib \
+ ${D}${palmtopdir}/apps/1Pim \
+ ${D}${palmtopdir}/pics/kdepim/korganizer/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/korganizer/iconsmini \
+ ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons22 \
+ ${D}${palmtopdir}/plugins/applets
+
+ install -m 0644 ${S}/bin/kdepim/korganizer/ko16.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/bin/kdepim/korganizer/ko24.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/bin/kdepim/korganizer/*.* ${D}${palmtopdir}/pics/kdepim/korganizer
+ install -m 0644 ${S}/bin/kdepim/korganizer/icons16/*.png ${D}${palmtopdir}/pics/kdepim/korganizer/icons16
+ install -m 0644 ${S}/bin/kdepim/korganizer/iconsmini/*.png ${D}${palmtopdir}/pics/kdepim/korganizer/iconsmini
+ install -m 0644 korganizer/korganizer.desktop ${D}${palmtopdir}/apps/1Pim/korganizer.desktop
+
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/*.* ${D}${palmtopdir}/pics/kdepim/kaddressbook
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/icons16/*.png ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons16
+ install -m 0644 ${S}/bin/kdepim/kaddressbook/icons22/*.png ${D}${palmtopdir}/pics/kdepim/kaddressbook/icons22
+ install -m 0644 kaddressbook/kaddressbook.desktop ${D}${palmtopdir}/apps/1Pim/kaddressbook.desktop
+
+ for f in libmicrokde libmicrokdepim libmicrokabc libmicrokcal libmicroqtcompat libmicrokabc_file libmicrokabc_dir libmicrokabcformat_binary libmicrokabc_qtopia
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${D}${palmtopdir}/lib
+ done
+
+ install -m 0755 ${S}/dest/kopi ${D}${palmtopdir}/bin/kopi
+ install -m 0755 ${S}/dest/kapi ${D}${palmtopdir}/bin/kapi
+
+ install -d ${D}${bindir} ${D}${libdir}
+ install -m 0755 ${S}/dest/kammu ${D}${bindir}/kammu
+ oe_libinstall -so -C ${S}/dest/ libmicrokammu ${D}${libdir}
+
+ for f in libkopialarmapplet
+ do
+ oe_libinstall -so -C ${S}/dest/ $f ${D}${palmtopdir}/plugins/applets
+ done
+}
+
+PACKAGES = "libmicrokcal-x11 libmicrokabc-x11 kopi-applet-x11 kopi-x11 kapi-x11 libmicrokdelibs-x11 kammu-x11 libmicrokammu-x11 ${PN}"
+
+FILES_kopi-x11 = "${palmtopdir}/bin/kopi ${palmtopdir}/apps/1Pim/korganizer.desktop ${palmtopdir}/pics/kdepim/korganizer/* "
+FILES_kapi-x11 = "${palmtopdir}/bin/kapi ${palmtopdir}/apps/1Pim/kaddressbook.desktop ${palmtopdir}/pics/kdepim/kaddressbook/* ${palmtopdir}/lib/libmicrokabc_* ${palmtopdir}/lib/libmicrokabcformat_binary*"
+FILES_kopi-applet-x11 = "${palmtopdir}/plugins/applets/* ${palmtopdir}/pics/ko16.png ${palmtopdir}/pics/ko24.png"
+FILES_libmicrokabc-x11 = "${palmtopdir}/lib/libmicrokabc*"
+FILES_libmicrokcal-x11 = "${palmtopdir}/lib/libmicrokcal*"
+FILES_libmicrokdelibs-x11 = "${palmtopdir}/lib/*"
+FILES_kammu-x11 = "${bindir}/kammu"
+FILES_libmicrokammu-x11 = "${libdir}/libmicrokammu*"
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11/kabc.patch b/recipes-qtopia/kdepimpi/kdepimpi-x11/kabc.patch
new file mode 100644
index 0000000..1f57b85
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11/kabc.patch
@@ -0,0 +1,24 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1898924&group_id=104103&atid=636951
+status: upstream is pretty dead
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- kdepim/kaddressbook/kaddressbook.pro~kabc
++++ kdepim/kaddressbook/kaddressbook.pro
+@@ -31,10 +31,10 @@
+ LIBS += ../libical/lib/libicalss.a
+
+ } else {
+-LIBS += ../bin/libmicrokdepim.so
+-LIBS += ../bin/libmicrokde.so
+-LIBS += ../bin/libmicrokabc.so
+-LIBS += ../bin/libmicrokcal.so
++LIBS += $(DESTDIR)/libmicrokdepim.so
++LIBS += $(DESTDIR)/libmicrokde.so
++LIBS += $(DESTDIR)/libmicrokabc.so
++LIBS += $(DESTDIR)/libmicrokcal.so
+ #LIBS += -lldap
+ }
+ OBJECTS_DIR = obj/unix
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11/kammu.patch b/recipes-qtopia/kdepimpi/kdepimpi-x11/kammu.patch
new file mode 100644
index 0000000..b7ccf7c
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11/kammu.patch
@@ -0,0 +1,18 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1898924&group_id=104103&atid=636951
+status: upstream is pretty dead
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- kdepim/gammu/emb/gammu/gammu.pro~kammu
++++ kdepim/gammu/emb/gammu/gammu.pro
+@@ -47,7 +47,7 @@
+ depend/nokia/dct3trac/wmx-util.c \
+ depend/nokia/dct3trac/wmx.c
+ unix : {
+-LIBS += ../../../bin/libmicrogammu.so /usr/lib/libpthread.so
++LIBS += $(DESTDIR)/libmicrogammu.so
+ # bluetooth disabled for now
+ #/usr/lib/libbluetooth.so /usr/lib/libsdp.so
+ OBJECTS_DIR = obj/unix
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11/korganizer.patch b/recipes-qtopia/kdepimpi/kdepimpi-x11/korganizer.patch
new file mode 100644
index 0000000..3537b5c
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11/korganizer.patch
@@ -0,0 +1,24 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1898924&group_id=104103&atid=636951
+status: upstream is pretty dead
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- kdepim/korganizer/korganizer.pro~korganizer
++++ kdepim/korganizer/korganizer.pro
+@@ -34,10 +34,10 @@
+ LIBS += ../libical/lib/libical.a
+ LIBS += ../libical/lib/libicalss.a
+ } else {
+-LIBS += ../bin/libmicrokdepim.so
+-LIBS += ../bin/libmicrokcal.so
+-LIBS += ../bin/libmicrokde.so
+-LIBS += ../bin/libmicrokabc.so
++LIBS += $(DESTDIR)/libmicrokdepim.so
++LIBS += $(DESTDIR)/libmicrokcal.so
++LIBS += $(DESTDIR)/libmicrokde.so
++LIBS += $(DESTDIR)/libmicrokabc.so
+ #LIBS += -lbluetooth
+ #LIBS += -lsdp
+
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11/libkcal.patch b/recipes-qtopia/kdepimpi/kdepimpi-x11/libkcal.patch
new file mode 100644
index 0000000..e226c8c
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11/libkcal.patch
@@ -0,0 +1,16 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1898924&group_id=104103&atid=636951
+status: upstream is pretty dead
+
+--- kdepim/libkcal/libkcal.pro~paths 2005-01-30 00:23:34.000000000 +0100
++++ kdepim/libkcal/libkcal.pro 2005-10-03 11:09:49.000000000 +0200
+@@ -11,8 +11,8 @@
+ DESTDIR = ../bin
+ DEFINES += DESKTOP_VERSION
+ unix: {
+-LIBS += ../libical/lib/libical.a
+-LIBS += ../libical/lib/libicalss.a
++LIBS += ../dest$(LIBICAL_PATH)/libical.a
++LIBS += ../dest$(LIBICAL_PATH)/libicalss.a
+ OBJECTS_DIR = obj/unix
+ MOC_DIR = moc/unix
+ }
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11/nomail.patch b/recipes-qtopia/kdepimpi/kdepimpi-x11/nomail.patch
new file mode 100644
index 0000000..b37ed7b
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11/nomail.patch
@@ -0,0 +1,18 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1898924&group_id=104103&atid=636951
+status: upstream is pretty dead
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- kdepim/kdepim-desktop.pro~nomail
++++ kdepim/kdepim-desktop.pro
+@@ -15,7 +15,7 @@
+ }
+ unix:{
+ !staticlib: {
+-SUBDIRS += libetpan kmicromail/libmailwrapper kmicromail pwmanager/libcrypt/cipher pwmanager/libcrypt/error pwmanager/libcrypt/mpi pwmanager/libcrypt/zlib pwmanager/pwmanager
++SUBDIRS += pwmanager/libcrypt/cipher pwmanager/libcrypt/error pwmanager/libcrypt/mpi pwmanager/libcrypt/zlib pwmanager/pwmanager
+ }
+ }
+
diff --git a/recipes-qtopia/kdepimpi/kdepimpi-x11_2.2.3.bb b/recipes-qtopia/kdepimpi/kdepimpi-x11_2.2.3.bb
new file mode 100644
index 0000000..c565cfc
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi-x11_2.2.3.bb
@@ -0,0 +1,15 @@
+SRC_URI = "${SOURCEFORGE_MIRROR}/kdepimpi/kdepimpi-${PV}.tar.gz \
+file://libkcal.patch \
+file://kabc.patch \
+file://kammu.patch \
+file://korganizer.patch \
+file://nomail.patch \
+"
+
+include kdepimpi-base.inc
+include kdepimpi-x11.inc
+
+PR = "r1"
+
+SRC_URI[md5sum] = "b452510c392d852c7a94bb08547f4e9a"
+SRC_URI[sha256sum] = "d6b21f0dad8277925abbb15d3c9cbc0a58af5b5119bbd1fde8637b600bae0489"
diff --git a/recipes-qtopia/kdepimpi/kdepimpi_2.2.10.bb b/recipes-qtopia/kdepimpi/kdepimpi_2.2.10.bb
new file mode 100644
index 0000000..126c3f1
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kdepimpi_2.2.10.bb
@@ -0,0 +1,9 @@
+SRC_URI = "${SOURCEFORGE_MIRROR}/kdepimpi/kdepimpi-${PV}.tar.gz \
+ file://qt-mt.patch"
+
+require kdepimpi-base.inc
+
+PR = "r0"
+
+SRC_URI[md5sum] = "1b918fa70812b24df0c4de00bb2c8896"
+SRC_URI[sha256sum] = "88f68d15052932ac763c007570a6e12e7be6e0d177706f96ddda7c358adcf871"
diff --git a/recipes-qtopia/kdepimpi/kphonepi_1.0.0.bb b/recipes-qtopia/kdepimpi/kphonepi_1.0.0.bb
new file mode 100644
index 0000000..56707f8
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/kphonepi_1.0.0.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Kphone/Pi is a 'Voice Over Internet' phone which uses the Session Initiation Protocol (SIP)."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.pi-sync.net/html/kp_pi.html"
+DEPENDS ="openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/kdepimpi/kphone_pi_${PV}.tar.gz"
+
+S = "${WORKDIR}/kphone_pi"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "QMAKE_UIC=${STAGING_BINDIR_NATIVE}/uic QMAKE_MOC=${STAGING_BINDIR_NATIVE}/moc QMAKE_RPATH=-Wl,-rpath-link, OBJECTS_DIR=obj/ MOC_DIR=moc/ TARGET=${S}/dest/kppi HEADERS-=kphone/qptrlisth HEADERS+=kphone/qptrlist.h LIBS+=-lstdc++"
+QMAKE_PROFILES= "kphone_piE.pro"
+
+do_configure_prepend() {
+ mkdir ${S}/dest/
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics/kphone/
+
+ install -m 0644 ${S}/bin/kdepim/kphone/*.png ${D}${palmtopdir}/pics/kphone/
+ install -m 0644 ${S}/kphone.desktop ${D}${palmtopdir}/apps/Applications/
+
+ install -m 0755 ${S}/dest/kppi ${D}${palmtopdir}/bin/kppi
+}
+
+SRC_URI[md5sum] = "90d1517db39d4e3f7934af566ea18fca"
+SRC_URI[sha256sum] = "a1b86dc2ef641bc644ff5a206b5e2d3a61dacf58c2c489e0669ba1d71d0534a0"
diff --git a/recipes-qtopia/kdepimpi/ktimetrackerpi_0.9.7.bb b/recipes-qtopia/kdepimpi/ktimetrackerpi_0.9.7.bb
new file mode 100644
index 0000000..4f3ab43
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/ktimetrackerpi_0.9.7.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Time tracking program"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.pi-sync.net"
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/kdepimpi/ktimetracker_pi097.tar.gz"
+
+S = "${WORKDIR}/ktimetracker_pi"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "QMAKE_UIC=${STAGING_BINDIR_NATIVE}/uic QMAKE_MOC=${STAGING_BINDIR_NATIVE}/moc QMAKE_RPATH=-Wl,-rpath-link, OBJECTS_DIR=obj/ MOC_DIR=moc/ TARGET=${S}/dest/ktpi HEADERS-=kphone/qptrlisth HEADERS+=kphone/qptrlist.h LIBS+=-lstdc++"
+QMAKE_PROFILES= "ktimetracker_piE.pro"
+
+do_configure_prepend() {
+ mkdir ${S}/dest/
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/1Pim \
+ ${D}${palmtopdir}/pics/
+
+ install -m 0644 ${S}/ktimetracker.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/ktimetracker.desktop ${D}${palmtopdir}/apps/1Pim/
+
+ install -m 0755 ${S}/dest/ktpi ${D}${palmtopdir}/bin/ktpi
+}
+
+SRC_URI[md5sum] = "c2701d7f8e094b41aa5a7c771b981393"
+SRC_URI[sha256sum] = "204156fadfdefb31f6cbd3d0d7e5cb032af40c037a0682c75651c3191de09150"
diff --git a/recipes-qtopia/kdepimpi/pwmpi.inc b/recipes-qtopia/kdepimpi/pwmpi.inc
new file mode 100644
index 0000000..9e3cd8e
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/pwmpi.inc
@@ -0,0 +1,39 @@
+DEPENDS_append = "kdepimpi-${PV}"
+
+SUBDIRS="pwmanager/libcrypt/mpi \
+ pwmanager/libcrypt/error \
+ pwmanager/libcrypt/cipher \
+ pwmanager/pwmanager \
+ "
+export OE_QMAKE_LINK="${CXX}"
+
+OE_QMAKE_CFLAGS_prepend="-I${S}/pwmanager/libcrypt/crypt "
+EXTRA_QMAKEVARS_POST += " \
+INCLUDEPATH+=${STAGING_INCDIR}/kdepimpi/ \
+LIBS+=-L${STAGING_LIBDIR}/kdepimpi/ \
+"
+
+do_configure_prepend() {
+}
+
+do_stage() {
+}
+
+do_unstage() {
+}
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics/kdepim/pwmanager/icons16 \
+ ${D}${palmtopdir}/pics/kdepim/pwmanager/icons22
+
+ install -m 0644 ${S}/bin/kdepim/pwmanager/*.* ${D}${palmtopdir}/pics/kdepim/pwmanager
+ install -m 0644 ${S}/bin/kdepim/pwmanager/icons16/*.png ${D}${palmtopdir}/pics/kdepim/pwmanager/icons16
+ install -m 0644 ${S}/bin/kdepim/pwmanager/icons22/*.png ${D}${palmtopdir}/pics/kdepim/pwmanager/icons22
+ install -m 0644 pwmanager/pwmanager/pwmanager.desktop ${D}${palmtopdir}/apps/Applications/pwmanager.desktop
+
+ install -m 0755 ${S}/dest/pwmpi ${D}${bindir}
+}
+
+FILES_${PN} = "${palmtopdir} ${bindir}"
diff --git a/recipes-qtopia/kdepimpi/pwmpi_2.2.10.bb b/recipes-qtopia/kdepimpi/pwmpi_2.2.10.bb
new file mode 100644
index 0000000..6e67f5c
--- /dev/null
+++ b/recipes-qtopia/kdepimpi/pwmpi_2.2.10.bb
@@ -0,0 +1,3 @@
+require kdepimpi_${PV}.bb
+
+require pwmpi.inc
diff --git a/recipes-qtopia/keyring/keyring-0.6.8/keyring-0.6.8-datatype.patch b/recipes-qtopia/keyring/keyring-0.6.8/keyring-0.6.8-datatype.patch
new file mode 100644
index 0000000..9f0a236
--- /dev/null
+++ b/recipes-qtopia/keyring/keyring-0.6.8/keyring-0.6.8-datatype.patch
@@ -0,0 +1,93 @@
+diff -Naru Keyring.orig/accountlist.cpp Keyring/accountlist.cpp
+--- Keyring.orig/accountlist.cpp 2002-09-29 17:24:09.000000000 +0200
++++ Keyring/accountlist.cpp 2007-06-05 15:46:59.000000000 +0200
+@@ -314,7 +314,7 @@
+ */
+ void AccountList::resetTimer(){
+ mSeconds=mTimerStart;
+- mStartTime = time(NULL);
++ mStartTime = (time_t*)time(NULL);
+ wLCD->display(mSeconds);
+ }
+
+@@ -390,20 +390,20 @@
+ //if so and it has expired, lock keyring.
+ if(mTimerViewingAC && mTimerEnabled){
+ //Timer has expired
+- if((time(NULL)-mStartTime) > mTimerStart){
++ if((time(NULL)-(time_t)mStartTime) > mTimerStart){
+ lock();
+ } else {
+ //Timer needs to be updated
+ time_t diff=time(NULL)-viewtime;
+ mSeconds=mSeconds-diff;
+- mStartTime = time(NULL)-(mTimerStart-mSeconds);
++ mStartTime = (time_t*)time(NULL)-(mTimerStart-mSeconds);
+ mUpdateTimer->start(500,false);
+ wLCD->display(mSeconds);
+ }
+ } else {
+ if(mTimerEnabled){
+ mUpdateTimer->start(500,false);
+- mStartTime = time(NULL)-(mTimerStart-mSeconds);
++ mStartTime = (time_t*)time(NULL)-(mTimerStart-mSeconds);
+ }
+ }
+
+@@ -432,7 +432,7 @@
+ if(mTimerEnabled)
+ mUpdateTimer->start(500,false);
+ mSeconds=mTimerStart;
+- mStartTime = time(NULL);
++ mStartTime = (time_t*)time(NULL);
+ updateCountDown();
+
+ //Let's be a bastard and bitch if the
+@@ -463,11 +463,11 @@
+ void AccountList::updateCountDown(){
+ wLCD->display(mSeconds);
+ if(mSeconds==0 ||
+- (((time(NULL)-mStartTime) > mTimerStart) && mTimerPowerOff)){
++ (((time(NULL)-(time_t)mStartTime) > mTimerStart) && mTimerPowerOff)){
+ lock();
+ return;
+ }
+- mSeconds=mTimerStart-(time(NULL)-mStartTime);
++ mSeconds=mTimerStart-(time(NULL)-(time_t)mStartTime);
+ }
+
+ void AccountList::selectionChanged(QListViewItem *item){
+@@ -548,20 +548,20 @@
+ //if so and it has expired, lock keyring.
+ if(mTimerViewingAC && mTimerEnabled){
+ //Timer has expired
+- if((time(NULL)-mStartTime) > mTimerStart){
++ if((time(NULL)-(time_t)mStartTime) > mTimerStart){
+ lock();
+ } else {
+ //Timer needs to be updated
+- time_t diff=time(NULL)-viewtime;
++ time_t diff = time(NULL)-(time_t)viewtime;
+ mSeconds=mSeconds-diff;
+- mStartTime = time(NULL)-(mTimerStart-mSeconds);
++ mStartTime = (time_t*)time(NULL)-(mTimerStart-mSeconds);
+ mUpdateTimer->start(500,false);
+ wLCD->display(mSeconds);
+ }
+ } else {
+ if(mTimerEnabled){
+ mUpdateTimer->start(500,false);
+- mStartTime = time(NULL)-(mTimerStart-mSeconds);
++ mStartTime = (time_t*)time(NULL)-(mTimerStart-mSeconds);
+ }
+ }
+ delete qd;
+@@ -627,7 +627,7 @@
+
+ if(mTimerEnabled){
+ mUpdateTimer->start(500,false);
+- mStartTime = time(NULL)-(mTimerStart-mSeconds);
++ mStartTime = (time_t*)time(NULL)-(mTimerStart-mSeconds);
+ }
+
+ showAccountList();
diff --git a/recipes-qtopia/keyring/keyring_0.6.8.bb b/recipes-qtopia/keyring/keyring_0.6.8.bb
new file mode 100644
index 0000000..3908006
--- /dev/null
+++ b/recipes-qtopia/keyring/keyring_0.6.8.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Stores accounts and passwords in an encrypted file."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "gdbm"
+PR = "r2"
+
+SRC_URI = "http://www.scrypt.net/~celer/kweb/Keyring-0.6.8.tgz \
+ file://keyring-0.6.8-datatype.patch"
+S = "${WORKDIR}/Keyring"
+
+inherit palmtop
+
+QPEDIR = "${OPIEDIR}"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics/keyring
+ install -m 0755 keyring ${D}${palmtopdir}/bin/
+ install -m 0644 keyring.desktop \
+ ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${S}/Keyring.png \
+ ${S}/keyring-pwlist.png \
+ ${D}${palmtopdir}/pics/
+
+ # The following should appear in an assoicated DOC package.
+
+ install -d ${D}${palmtopdir}/help/html
+ install -m 0644 ${S}/*.html ${D}${palmtopdir}/help/html/
+}
+
+PACKAGES = "${PN}-dbg ${PN} ${PN}-help"
+FILES_${PN} = " ${palmtopdir}${base_bindir} ${palmtopdir}/apps ${palmtopdir}/pics"
+FILES_${PN}-help = " ${palmtopdir}/help/html"
+
+
+SRC_URI[md5sum] = "0f429212fdcfd99efe6bfd3904adece8"
+SRC_URI[sha256sum] = "272ddac7f039d12938f50c281f42941d6dea7ab940f1b3b3dd5ab28572678bd4"
diff --git a/recipes-qtopia/klimt/klimt_0.6.2.bb b/recipes-qtopia/klimt/klimt_0.6.2.bb
new file mode 100644
index 0000000..f8384e7
--- /dev/null
+++ b/recipes-qtopia/klimt/klimt_0.6.2.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Klimt is a software OpenGL rendering library for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/klimt/klimt-src-${PV}.zip"
+do_unpack[depends] += "unzip-native:do_populate_sysroot"
+S = "${WORKDIR}/klimt/build/LinuxQTE"
+
+EXTRA_QMAKEVARS_POST += " QMAKE_CXXFLAGS+=-fpermissive"
+
+inherit opie
+
+do_install() {
+ oe_libinstall -so libKlimt ${D}${palmtopdir}/lib
+ cp -pPR ${S}/../../include/* ${D}${palmtopdir}/include
+}
+SRC_URI[md5sum] = "78e39bf91d9f1df0b996b4fb19216883"
+SRC_URI[sha256sum] = "52611d3b99f1031c241f9728ccd207ab661946e4c4204b9610373cfff87a2475"
+
diff --git a/recipes-qtopia/knights/knights-1.14/gcc3.patch b/recipes-qtopia/knights/knights-1.14/gcc3.patch
new file mode 100644
index 0000000..be6a065
--- /dev/null
+++ b/recipes-qtopia/knights/knights-1.14/gcc3.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- knights/knights/knights.cpp~gcc3 2002-09-01 14:06:29.000000000 +0200
++++ knights/knights/knights.cpp 2004-01-16 00:30:04.000000000 +0100
+@@ -24,7 +24,7 @@
+ #include <qpe/qpeapplication.h>
+ #include <qpe/applnk.h>
+ #include "aboutdialog.h"
+-Knights::Knights(QWidget *parent, const char *name, const QString &args="") : QMainWindow(parent, name)
++Knights::Knights(QWidget *parent, const char *name, const QString &args) : QMainWindow(parent, name)
+ {
+ setCaption("Knights");
+ InitAll = TRUE;
diff --git a/recipes-qtopia/knights/knights-1.14/libqpe-opie.patch b/recipes-qtopia/knights/knights-1.14/libqpe-opie.patch
new file mode 100644
index 0000000..ca47227
--- /dev/null
+++ b/recipes-qtopia/knights/knights-1.14/libqpe-opie.patch
@@ -0,0 +1,26 @@
+--- knights/knights/core.cpp~knights-opie 2002-09-01 12:02:49.000000000 +0200
++++ knights/knights/core.cpp 2003-06-24 14:38:11.000000000 +0200
+@@ -24,9 +24,8 @@
+ #include <qmessagebox.h>
+ #include <qpe/fileselector.h>
+ #include "core.h"
+-#include "qinputdialog.h"
++#include <qtcompat/qinputdialog.h>
+ #include <unistd.h>
+-#include "qinputdialog.h"
+
+ ///////////////////////////////////////
+ //
+@@ -864,9 +863,9 @@
+ if (fileSelectorDialog->exec()==QDialog::Accepted)
+ {
+
+- const DocLnk *d = selector->selected();
+- load(*d);
+- delete d;
++ // const DocLnk *d = selector->selected();
++ // load(*d);
++ // delete d;
+ }
+ delete fileSelectorDialog;
+
diff --git a/recipes-qtopia/knights/knights_1.14.bb b/recipes-qtopia/knights/knights_1.14.bb
new file mode 100644
index 0000000..f1589f8
--- /dev/null
+++ b/recipes-qtopia/knights/knights_1.14.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Chess Game for Qt/Embedded based palmtop environments. \
+Uses the Phalanx chess engine."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "phalanx"
+RDEPENDS_${PN} = "phalanx"
+PR = "r3"
+
+SRC_URI = "http://www.openzaurus.org/mirror/knights.tar.gz \
+ file://libqpe-opie.patch \
+ file://gcc3.patch"
+S = "${WORKDIR}/knights"
+
+inherit palmtop
+
+QMAKE_PROFILES = "knights.pro"
+
+do_configure_prepend() {
+ printf "TEMPLATE=subdirs\nSUBDIRS=qtcompat microkde knights\n" >knights.pro
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics
+ install -D -m 755 knights/knights ${D}${palmtopdir}/bin/knights
+ install -D -m 644 knights.desktop ${D}${palmtopdir}/apps/Games/knights.desktop
+ install -d ${D}${palmtopdir}/pics
+ cp -pPR pics/knights ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "fea3047d5501a1abea868bb661cbc0c8"
+SRC_URI[sha256sum] = "1f6d50b3602f01b852810ab1e62f3328edee5130fe3ba21fd868f376c89e66fd"
diff --git a/recipes-qtopia/konqueror/files/fix_KDE_LDPATH_HACK.patch b/recipes-qtopia/konqueror/files/fix_KDE_LDPATH_HACK.patch
new file mode 100644
index 0000000..c38ed5c
--- /dev/null
+++ b/recipes-qtopia/konqueror/files/fix_KDE_LDPATH_HACK.patch
@@ -0,0 +1,27 @@
+diff -Nur kdenox.vanilla/acinclude.m4 kdenox/acinclude.m4
+--- kdenox.vanilla/acinclude.m4 2009-02-18 16:57:28.000000000 +0100
++++ kdenox/acinclude.m4 2009-02-18 16:59:44.000000000 +0100
+@@ -1887,16 +1887,17 @@
+ AC_SUBST(kde_libraries)
+ AC_SUBST(kde_includes)
+
+-if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
++#if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+-else
+- KDE_INCLUDES="-I$kde_includes"
+- all_includes="$KDE_INCLUDES $all_includes"
+-fi
++#else
++# KDE_INCLUDES="-I$kde_includes"
++# all_includes="$KDE_INCLUDES $all_includes"
++#fi
+
+ KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+
+-KDE_LDFLAGS="-L$kde_libraries"
++#KDE_LDFLAGS="-L$kde_libraries"
++KDE_LDFLAGS=""
+ if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then
+ all_libraries="$KDE_LDFLAGS $all_libraries"
+ fi
diff --git a/recipes-qtopia/konqueror/files/fix_acinclude.patch b/recipes-qtopia/konqueror/files/fix_acinclude.patch
new file mode 100644
index 0000000..c8d0909
--- /dev/null
+++ b/recipes-qtopia/konqueror/files/fix_acinclude.patch
@@ -0,0 +1,5897 @@
+--- a/acinclude.m4.vanilla 2009-02-15 21:57:59.000000000 +0100
++++ b/acinclude.m4 2009-02-15 22:16:01.000000000 +0100
+@@ -5906,5894 +5906,3 @@
+ KDE_USE_PIE="-pie"
+ fi
+ ])
+-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+-## Free Software Foundation, Inc.
+-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-##
+-## This program is free software; you can redistribute it and/or modify
+-## it under the terms of the GNU General Public License as published by
+-## the Free Software Foundation; either version 2 of the License, or
+-## (at your option) any later version.
+-##
+-## This program is distributed in the hope that it will be useful, but
+-## WITHOUT ANY WARRANTY; without even the implied warranty of
+-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-## General Public License for more details.
+-##
+-## You should have received a copy of the GNU General Public License
+-## along with this program; if not, write to the Free Software
+-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-##
+-## As a special exception to the GNU General Public License, if you
+-## distribute this file as part of a program that contains a
+-## configuration script generated by Autoconf, you may include it under
+-## the same distribution terms that you use for the rest of that program.
+-
+-# serial 47 AC_PROG_LIBTOOL
+-
+-
+-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+-# -----------------------------------------------------------
+-# If this macro is not defined by Autoconf, define it here.
+-m4_ifdef([AC_PROVIDE_IFELSE],
+- [],
+- [m4_define([AC_PROVIDE_IFELSE],
+- [m4_ifdef([AC_PROVIDE_$1],
+- [$2], [$3])])])
+-
+-
+-# AC_PROG_LIBTOOL
+-# ---------------
+-AC_DEFUN([AC_PROG_LIBTOOL],
+-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+- AC_PROVIDE_IFELSE([AC_PROG_CXX],
+- [AC_LIBTOOL_CXX],
+- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+- ])])
+-dnl And a similar setup for Fortran 77 support
+- AC_PROVIDE_IFELSE([AC_PROG_F77],
+- [AC_LIBTOOL_F77],
+- [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+-])])
+-
+-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+- AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+- [AC_LIBTOOL_GCJ],
+- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+- [AC_LIBTOOL_GCJ],
+- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+- [AC_LIBTOOL_GCJ],
+- [ifdef([AC_PROG_GCJ],
+- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+- ifdef([A][M_PROG_GCJ],
+- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+- ifdef([LT_AC_PROG_GCJ],
+- [define([LT_AC_PROG_GCJ],
+- defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+-])])# AC_PROG_LIBTOOL
+-
+-
+-# _AC_PROG_LIBTOOL
+-# ----------------
+-AC_DEFUN([_AC_PROG_LIBTOOL],
+-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+-
+-# This can be used to rebuild libtool when needed
+-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+-
+-# Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+-AC_SUBST(LIBTOOL)dnl
+-
+-# Prevent multiple expansion
+-define([AC_PROG_LIBTOOL], [])
+-])# _AC_PROG_LIBTOOL
+-
+-
+-# AC_LIBTOOL_SETUP
+-# ----------------
+-AC_DEFUN([AC_LIBTOOL_SETUP],
+-[AC_PREREQ(2.50)dnl
+-AC_REQUIRE([AC_ENABLE_SHARED])dnl
+-AC_REQUIRE([AC_ENABLE_STATIC])dnl
+-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_PROG_LD])dnl
+-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+-AC_REQUIRE([AC_PROG_NM])dnl
+-
+-AC_REQUIRE([AC_PROG_LN_S])dnl
+-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+-AC_REQUIRE([AC_OBJEXT])dnl
+-AC_REQUIRE([AC_EXEEXT])dnl
+-dnl
+-
+-AC_LIBTOOL_SYS_MAX_CMD_LEN
+-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+-AC_LIBTOOL_OBJDIR
+-
+-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+-_LT_AC_PROG_ECHO_BACKSLASH
+-
+-case $host_os in
+-aix3*)
+- # AIX sometimes has problems with the GCC collect2 program. For some
+- # reason, if we set the COLLECT_NAMES environment variable, the problems
+- # vanish in a puff of smoke.
+- if test "X${COLLECT_NAMES+set}" != Xset; then
+- COLLECT_NAMES=
+- export COLLECT_NAMES
+- fi
+- ;;
+-esac
+-
+-# Sed substitution that helps us do robust quoting. It backslashifies
+-# metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e s/^X//'
+-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+-
+-# Same as above, but do not quote variable references.
+-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+-
+-# Sed substitution to delay expansion of an escaped shell variable in a
+-# double_quote_subst'ed string.
+-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+-
+-# Sed substitution to avoid accidental globbing in evaled expressions
+-no_glob_subst='s/\*/\\\*/g'
+-
+-# Constants:
+-rm="rm -f"
+-
+-# Global variables:
+-default_ofile=libtool
+-can_build_shared=yes
+-
+-# All known linkers require a `.a' archive for static linking (except M$VC,
+-# which needs '.lib').
+-libext=a
+-ltmain="$ac_aux_dir/ltmain.sh"
+-ofile="$default_ofile"
+-with_gnu_ld="$lt_cv_prog_gnu_ld"
+-
+-AC_CHECK_TOOL(AR, ar, false)
+-AC_CHECK_TOOL(RANLIB, ranlib, :)
+-AC_CHECK_TOOL(STRIP, strip, :)
+-
+-old_CC="$CC"
+-old_CFLAGS="$CFLAGS"
+-
+-# Set sane defaults for various variables
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
+-test -z "$AS" && AS=as
+-test -z "$CC" && CC=cc
+-test -z "$LTCC" && LTCC=$CC
+-test -z "$DLLTOOL" && DLLTOOL=dlltool
+-test -z "$LD" && LD=ld
+-test -z "$LN_S" && LN_S="ln -s"
+-test -z "$MAGIC_CMD" && MAGIC_CMD=file
+-test -z "$NM" && NM=nm
+-test -z "$SED" && SED=sed
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-test -z "$RANLIB" && RANLIB=:
+-test -z "$STRIP" && STRIP=:
+-test -z "$ac_objext" && ac_objext=o
+-
+-# Determine commands to create old-style static archives.
+-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
+-old_postuninstall_cmds=
+-
+-if test -n "$RANLIB"; then
+- case $host_os in
+- openbsd*)
+- old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+- ;;
+- *)
+- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+- ;;
+- esac
+- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+-fi
+-
+-# Only perform the check for file, if the check method requires it
+-case $deplibs_check_method in
+-file_magic*)
+- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+- AC_PATH_MAGIC
+- fi
+- ;;
+-esac
+-
+-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+-enable_win32_dll=yes, enable_win32_dll=no)
+-
+-AC_ARG_ENABLE([libtool-lock],
+- [AC_HELP_STRING([--disable-libtool-lock],
+- [avoid locking (might break parallel builds)])])
+-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+-
+-AC_ARG_WITH([pic],
+- [AC_HELP_STRING([--with-pic],
+- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+- [pic_mode="$withval"],
+- [pic_mode=default])
+-test -z "$pic_mode" && pic_mode=default
+-
+-# Use C for the default configuration in the libtool script
+-tagname=
+-AC_LIBTOOL_LANG_C_CONFIG
+-_LT_AC_TAGCONFIG
+-])# AC_LIBTOOL_SETUP
+-
+-
+-# _LT_AC_SYS_COMPILER
+-# -------------------
+-AC_DEFUN([_LT_AC_SYS_COMPILER],
+-[AC_REQUIRE([AC_PROG_CC])dnl
+-
+-# If no C compiler was specified, use CC.
+-LTCC=${LTCC-"$CC"}
+-
+-# Allow CC to be a program name with arguments.
+-compiler=$CC
+-])# _LT_AC_SYS_COMPILER
+-
+-
+-# _LT_AC_SYS_LIBPATH_AIX
+-# ----------------------
+-# Links a minimal program and checks the executable
+-# for the system default hardcoded library path. In most cases,
+-# this is /usr/lib:/lib, but when the MPI compilers are used
+-# the location of the communication and MPI libs are included too.
+-# If we don't find anything, use the default library path according
+-# to the aix ld manual.
+-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+-}'`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+-}'`; fi],[])
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+-])# _LT_AC_SYS_LIBPATH_AIX
+-
+-
+-# _LT_AC_SHELL_INIT(ARG)
+-# ----------------------
+-AC_DEFUN([_LT_AC_SHELL_INIT],
+-[ifdef([AC_DIVERSION_NOTICE],
+- [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+- [AC_DIVERT_PUSH(NOTICE)])
+-$1
+-AC_DIVERT_POP
+-])# _LT_AC_SHELL_INIT
+-
+-
+-# _LT_AC_PROG_ECHO_BACKSLASH
+-# --------------------------
+-# Add some code to the start of the generated configure script which
+-# will find an echo command which doesn't interpret backslashes.
+-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+-[_LT_AC_SHELL_INIT([
+-# Check that we are running under the correct shell.
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-
+-case X$ECHO in
+-X*--fallback-echo)
+- # Remove one level of quotation (which was required for Make).
+- ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+- ;;
+-esac
+-
+-echo=${ECHO-echo}
+-if test "X[$]1" = X--no-reexec; then
+- # Discard the --no-reexec flag, and continue.
+- shift
+-elif test "X[$]1" = X--fallback-echo; then
+- # Avoid inline document here, it may be left over
+- :
+-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+- # Yippee, $echo works!
+- :
+-else
+- # Restart under the correct shell.
+- exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+-fi
+-
+-if test "X[$]1" = X--fallback-echo; then
+- # used as fallback echo
+- shift
+- cat <<EOF
+-[$]*
+-EOF
+- exit 0
+-fi
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-if test -z "$ECHO"; then
+-if test "X${echo_test_string+set}" != Xset; then
+-# find a string as large as possible, as long as the shell can cope with it
+- for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+- if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+- echo_test_string="`eval $cmd`" &&
+- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+- then
+- break
+- fi
+- done
+-fi
+-
+-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- :
+-else
+- # The Solaris, AIX, and Digital Unix default echo programs unquote
+- # backslashes. This makes it impossible to quote backslashes using
+- # echo "$something" | sed 's/\\/\\\\/g'
+- #
+- # So, first we look for a working echo in the user's PATH.
+-
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+- for dir in $PATH /usr/ucb; do
+- IFS="$lt_save_ifs"
+- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- echo="$dir/echo"
+- break
+- fi
+- done
+- IFS="$lt_save_ifs"
+-
+- if test "X$echo" = Xecho; then
+- # We didn't find a better echo, so look for alternatives.
+- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- # This shell has a builtin print -r that does the trick.
+- echo='print -r'
+- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+- test "X$CONFIG_SHELL" != X/bin/ksh; then
+- # If we have ksh, try running configure again with it.
+- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+- export ORIGINAL_CONFIG_SHELL
+- CONFIG_SHELL=/bin/ksh
+- export CONFIG_SHELL
+- exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+- else
+- # Try using printf.
+- echo='printf %s\n'
+- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- # Cool, printf works
+- :
+- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+- test "X$echo_testing_string" = 'X\t' &&
+- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+- export CONFIG_SHELL
+- SHELL="$CONFIG_SHELL"
+- export SHELL
+- echo="$CONFIG_SHELL [$]0 --fallback-echo"
+- elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+- test "X$echo_testing_string" = 'X\t' &&
+- echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- echo="$CONFIG_SHELL [$]0 --fallback-echo"
+- else
+- # maybe with a smaller string...
+- prev=:
+-
+- for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+- then
+- break
+- fi
+- prev="$cmd"
+- done
+-
+- if test "$prev" != 'sed 50q "[$]0"'; then
+- echo_test_string=`eval $prev`
+- export echo_test_string
+- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+- else
+- # Oops. We lost completely, so just stick with echo.
+- echo=echo
+- fi
+- fi
+- fi
+- fi
+-fi
+-fi
+-
+-# Copy echo and quote the copy suitably for passing to libtool from
+-# the Makefile, instead of quoting the original, which is used later.
+-ECHO=$echo
+-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+- ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+-fi
+-
+-AC_SUBST(ECHO)
+-])])# _LT_AC_PROG_ECHO_BACKSLASH
+-
+-
+-# _LT_AC_LOCK
+-# -----------
+-AC_DEFUN([_LT_AC_LOCK],
+-[AC_ARG_ENABLE([libtool-lock],
+- [AC_HELP_STRING([--disable-libtool-lock],
+- [avoid locking (might break parallel builds)])])
+-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+-
+-# Some flags need to be propagated to the compiler or linker for good
+-# libtool support.
+-case $host in
+-ia64-*-hpux*)
+- # Find out which ABI we are using.
+- echo 'int i;' > conftest.$ac_ext
+- if AC_TRY_EVAL(ac_compile); then
+- case `/usr/bin/file conftest.$ac_objext` in
+- *ELF-32*)
+- HPUX_IA64_MODE="32"
+- ;;
+- *ELF-64*)
+- HPUX_IA64_MODE="64"
+- ;;
+- esac
+- fi
+- rm -rf conftest*
+- ;;
+-*-*-irix6*)
+- # Find out which ABI we are using.
+- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+- if AC_TRY_EVAL(ac_compile); then
+- if test "$lt_cv_prog_gnu_ld" = yes; then
+- case `/usr/bin/file conftest.$ac_objext` in
+- *32-bit*)
+- LD="${LD-ld} -melf32bsmip"
+- ;;
+- *N32*)
+- LD="${LD-ld} -melf32bmipn32"
+- ;;
+- *64-bit*)
+- LD="${LD-ld} -melf64bmip"
+- ;;
+- esac
+- else
+- case `/usr/bin/file conftest.$ac_objext` in
+- *32-bit*)
+- LD="${LD-ld} -32"
+- ;;
+- *N32*)
+- LD="${LD-ld} -n32"
+- ;;
+- *64-bit*)
+- LD="${LD-ld} -64"
+- ;;
+- esac
+- fi
+- fi
+- rm -rf conftest*
+- ;;
+-
+-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+- # Find out which ABI we are using.
+- echo 'int i;' > conftest.$ac_ext
+- if AC_TRY_EVAL(ac_compile); then
+- case "`/usr/bin/file conftest.o`" in
+- *32-bit*)
+- LINUX_64_MODE="32"
+- case $host in
+- x86_64-*linux*)
+- LD="${LD-ld} -m elf_i386"
+- ;;
+- ppc64-*linux*)
+- LD="${LD-ld} -m elf32ppclinux"
+- ;;
+- s390x-*linux*)
+- LD="${LD-ld} -m elf_s390"
+- ;;
+- sparc64-*linux*)
+- LD="${LD-ld} -m elf32_sparc"
+- ;;
+- esac
+- ;;
+- *64-bit*)
+- LINUX_64_MODE="64"
+- case $host in
+- x86_64-*linux*)
+- LD="${LD-ld} -m elf_x86_64"
+- ;;
+- ppc*-*linux*|powerpc*-*linux*)
+- LD="${LD-ld} -m elf64ppc"
+- ;;
+- s390*-*linux*)
+- LD="${LD-ld} -m elf64_s390"
+- ;;
+- sparc*-*linux*)
+- LD="${LD-ld} -m elf64_sparc"
+- ;;
+- esac
+- ;;
+- esac
+- fi
+- rm -rf conftest*
+- ;;
+-
+-*-*-sco3.2v5*)
+- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+- SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -belf"
+- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+- [AC_LANG_PUSH(C)
+- AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+- AC_LANG_POP])
+- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+- CFLAGS="$SAVE_CFLAGS"
+- fi
+- ;;
+-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+- AC_CHECK_TOOL(AS, as, false)
+- AC_CHECK_TOOL(OBJDUMP, objdump, false)
+- ;;
+- ])
+-esac
+-
+-need_locks="$enable_libtool_lock"
+-
+-])# _LT_AC_LOCK
+-
+-
+-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+-# ----------------------------------------------------------------
+-# Check whether the given compiler option works
+-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+-[AC_REQUIRE([LT_AC_PROG_SED])
+-AC_CACHE_CHECK([$1], [$2],
+- [$2=no
+- ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+- lt_compiler_flag="$3"
+- # Insert the option either (1) after the last *FLAGS variable, or
+- # (2) before a word containing "conftest.", or (3) at the end.
+- # Note that $ac_compile itself does not contain backslashes and begins
+- # with a dollar sign (not a hyphen), so the echo should work correctly.
+- # The option is referenced via a variable to avoid confusing sed.
+- lt_compile=`echo "$ac_compile" | $SED \
+- -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+- -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+- (eval "$lt_compile" 2>conftest.err)
+- ac_status=$?
+- cat conftest.err >&AS_MESSAGE_LOG_FD
+- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+- if (exit $ac_status) && test -s "$ac_outfile"; then
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test ! -s conftest.err; then
+- $2=yes
+- fi
+- fi
+- $rm conftest*
+-])
+-
+-if test x"[$]$2" = xyes; then
+- ifelse([$5], , :, [$5])
+-else
+- ifelse([$6], , :, [$6])
+-fi
+-])# AC_LIBTOOL_COMPILER_OPTION
+-
+-
+-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+-# [ACTION-SUCCESS], [ACTION-FAILURE])
+-# ------------------------------------------------------------
+-# Check whether the given compiler option works
+-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+-[AC_CACHE_CHECK([$1], [$2],
+- [$2=no
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS $3"
+- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test -s conftest.err; then
+- # Append any errors to the config.log.
+- cat conftest.err 1>&AS_MESSAGE_LOG_FD
+- else
+- $2=yes
+- fi
+- fi
+- $rm conftest*
+- LDFLAGS="$save_LDFLAGS"
+-])
+-
+-if test x"[$]$2" = xyes; then
+- ifelse([$4], , :, [$4])
+-else
+- ifelse([$5], , :, [$5])
+-fi
+-])# AC_LIBTOOL_LINKER_OPTION
+-
+-
+-# AC_LIBTOOL_SYS_MAX_CMD_LEN
+-# --------------------------
+-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+-[# find the maximum length of command line arguments
+-AC_MSG_CHECKING([the maximum length of command line arguments])
+-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+- i=0
+- testring="ABCD"
+-
+- case $build_os in
+- msdosdjgpp*)
+- # On DJGPP, this test can blow up pretty badly due to problems in libc
+- # (any single argument exceeding 2000 bytes causes a buffer overrun
+- # during glob expansion). Even if it were fixed, the result of this
+- # check would be larger than it should be.
+- lt_cv_sys_max_cmd_len=12288; # 12K is about right
+- ;;
+-
+- gnu*)
+- # Under GNU Hurd, this test is not required because there is
+- # no limit to the length of command line arguments.
+- # Libtool will interpret -1 as no limit whatsoever
+- lt_cv_sys_max_cmd_len=-1;
+- ;;
+-
+- cygwin* | mingw*)
+- # On Win9x/ME, this test blows up -- it succeeds, but takes
+- # about 5 minutes as the teststring grows exponentially.
+- # Worse, since 9x/ME are not pre-emptively multitasking,
+- # you end up with a "frozen" computer, even though with patience
+- # the test eventually succeeds (with a max line length of 256k).
+- # Instead, let's just punt: use the minimum linelength reported by
+- # all of the supported platforms: 8192 (on NT/2K/XP).
+- lt_cv_sys_max_cmd_len=8192;
+- ;;
+-
+- *)
+- # If test is not a shell built-in, we'll probably end up computing a
+- # maximum length that is only half of the actual maximum length, but
+- # we can't tell.
+- while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
+- = "XX$testring") >/dev/null 2>&1 &&
+- new_result=`expr "X$testring" : ".*" 2>&1` &&
+- lt_cv_sys_max_cmd_len=$new_result &&
+- test $i != 17 # 1/2 MB should be enough
+- do
+- i=`expr $i + 1`
+- testring=$testring$testring
+- done
+- testring=
+- # Add a significant safety factor because C++ compilers can tack on massive
+- # amounts of additional arguments before passing them to the linker.
+- # It appears as though 1/2 is a usable value.
+- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+- ;;
+- esac
+-])
+-if test -n $lt_cv_sys_max_cmd_len ; then
+- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+-else
+- AC_MSG_RESULT(none)
+-fi
+-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+-
+-
+-# _LT_AC_CHECK_DLFCN
+-# --------------------
+-AC_DEFUN([_LT_AC_CHECK_DLFCN],
+-[AC_CHECK_HEADERS(dlfcn.h)dnl
+-])# _LT_AC_CHECK_DLFCN
+-
+-
+-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+-# ------------------------------------------------------------------
+-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+-if test "$cross_compiling" = yes; then :
+- [$4]
+-else
+- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+- lt_status=$lt_dlunknown
+- cat > conftest.$ac_ext <<EOF
+-[#line __oline__ "configure"
+-#include "confdefs.h"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-# define LT_DLGLOBAL RTLD_GLOBAL
+-#else
+-# ifdef DL_GLOBAL
+-# define LT_DLGLOBAL DL_GLOBAL
+-# else
+-# define LT_DLGLOBAL 0
+-# endif
+-#endif
+-
+-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+- find out it does not work in some platform. */
+-#ifndef LT_DLLAZY_OR_NOW
+-# ifdef RTLD_LAZY
+-# define LT_DLLAZY_OR_NOW RTLD_LAZY
+-# else
+-# ifdef DL_LAZY
+-# define LT_DLLAZY_OR_NOW DL_LAZY
+-# else
+-# ifdef RTLD_NOW
+-# define LT_DLLAZY_OR_NOW RTLD_NOW
+-# else
+-# ifdef DL_NOW
+-# define LT_DLLAZY_OR_NOW DL_NOW
+-# else
+-# define LT_DLLAZY_OR_NOW 0
+-# endif
+-# endif
+-# endif
+-# endif
+-#endif
+-
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+-void fnord() { int i=42;}
+-int main ()
+-{
+- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+- int status = $lt_dlunknown;
+-
+- if (self)
+- {
+- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+- /* dlclose (self); */
+- }
+-
+- exit (status);
+-}]
+-EOF
+- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+- (./conftest; exit; ) 2>/dev/null
+- lt_status=$?
+- case x$lt_status in
+- x$lt_dlno_uscore) $1 ;;
+- x$lt_dlneed_uscore) $2 ;;
+- x$lt_unknown|x*) $3 ;;
+- esac
+- else :
+- # compilation failed
+- $3
+- fi
+-fi
+-rm -fr conftest*
+-])# _LT_AC_TRY_DLOPEN_SELF
+-
+-
+-# AC_LIBTOOL_DLOPEN_SELF
+-# -------------------
+-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+-if test "x$enable_dlopen" != xyes; then
+- enable_dlopen=unknown
+- enable_dlopen_self=unknown
+- enable_dlopen_self_static=unknown
+-else
+- lt_cv_dlopen=no
+- lt_cv_dlopen_libs=
+-
+- case $host_os in
+- beos*)
+- lt_cv_dlopen="load_add_on"
+- lt_cv_dlopen_libs=
+- lt_cv_dlopen_self=yes
+- ;;
+-
+- mingw* | pw32*)
+- lt_cv_dlopen="LoadLibrary"
+- lt_cv_dlopen_libs=
+- ;;
+-
+- cygwin*)
+- lt_cv_dlopen="dlopen"
+- lt_cv_dlopen_libs=
+- ;;
+-
+- darwin*)
+- # if libdl is installed we need to link against it
+- AC_CHECK_LIB([dl], [dlopen],
+- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+- lt_cv_dlopen="dyld"
+- lt_cv_dlopen_libs=
+- lt_cv_dlopen_self=yes
+- ])
+- ;;
+-
+- *)
+- AC_CHECK_FUNC([shl_load],
+- [lt_cv_dlopen="shl_load"],
+- [AC_CHECK_LIB([dld], [shl_load],
+- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+- [AC_CHECK_FUNC([dlopen],
+- [lt_cv_dlopen="dlopen"],
+- [AC_CHECK_LIB([dl], [dlopen],
+- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+- [AC_CHECK_LIB([svld], [dlopen],
+- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+- [AC_CHECK_LIB([dld], [dld_link],
+- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+- ])
+- ])
+- ])
+- ])
+- ])
+- ;;
+- esac
+-
+- if test "x$lt_cv_dlopen" != xno; then
+- enable_dlopen=yes
+- else
+- enable_dlopen=no
+- fi
+-
+- case $lt_cv_dlopen in
+- dlopen)
+- save_CPPFLAGS="$CPPFLAGS"
+- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+-
+- save_LDFLAGS="$LDFLAGS"
+- eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+-
+- save_LIBS="$LIBS"
+- LIBS="$lt_cv_dlopen_libs $LIBS"
+-
+- AC_CACHE_CHECK([whether a program can dlopen itself],
+- lt_cv_dlopen_self, [dnl
+- _LT_AC_TRY_DLOPEN_SELF(
+- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+- ])
+-
+- if test "x$lt_cv_dlopen_self" = xyes; then
+- LDFLAGS="$LDFLAGS $link_static_flag"
+- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+- lt_cv_dlopen_self_static, [dnl
+- _LT_AC_TRY_DLOPEN_SELF(
+- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+- ])
+- fi
+-
+- CPPFLAGS="$save_CPPFLAGS"
+- LDFLAGS="$save_LDFLAGS"
+- LIBS="$save_LIBS"
+- ;;
+- esac
+-
+- case $lt_cv_dlopen_self in
+- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+- *) enable_dlopen_self=unknown ;;
+- esac
+-
+- case $lt_cv_dlopen_self_static in
+- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+- *) enable_dlopen_self_static=unknown ;;
+- esac
+-fi
+-])# AC_LIBTOOL_DLOPEN_SELF
+-
+-
+-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+-# ---------------------------------
+-# Check to see if options -c and -o are simultaneously supported by compiler
+-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+- $rm -r conftest 2>/dev/null
+- mkdir conftest
+- cd conftest
+- mkdir out
+- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+-
+- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+- # that will create temporary files in the current directory regardless of
+- # the output directory. Thus, making CWD read-only will cause this test
+- # to fail, enabling locking or at least warning the user not to do parallel
+- # builds.
+- chmod -w .
+-
+- lt_compiler_flag="-o out/conftest2.$ac_objext"
+- # Insert the option either (1) after the last *FLAGS variable, or
+- # (2) before a word containing "conftest.", or (3) at the end.
+- # Note that $ac_compile itself does not contain backslashes and begins
+- # with a dollar sign (not a hyphen), so the echo should work correctly.
+- lt_compile=`echo "$ac_compile" | $SED \
+- -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+- -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+- (eval "$lt_compile" 2>out/conftest.err)
+- ac_status=$?
+- cat out/conftest.err >&AS_MESSAGE_LOG_FD
+- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+- if (exit $ac_status) && test -s out/conftest2.$ac_objext
+- then
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test ! -s out/conftest.err; then
+- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+- fi
+- fi
+- chmod u+w .
+- $rm conftest* out/*
+- rmdir out
+- cd ..
+- rmdir conftest
+- $rm conftest*
+-])
+-])# AC_LIBTOOL_PROG_CC_C_O
+-
+-
+-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+-# -----------------------------------------
+-# Check to see if we can do hard links to lock some files if needed
+-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+-[AC_REQUIRE([_LT_AC_LOCK])dnl
+-
+-hard_links="nottested"
+-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+- # do not overwrite the value of need_locks provided by the user
+- AC_MSG_CHECKING([if we can lock with hard links])
+- hard_links=yes
+- $rm conftest*
+- ln conftest.a conftest.b 2>/dev/null && hard_links=no
+- touch conftest.a
+- ln conftest.a conftest.b 2>&5 || hard_links=no
+- ln conftest.a conftest.b 2>/dev/null && hard_links=no
+- AC_MSG_RESULT([$hard_links])
+- if test "$hard_links" = no; then
+- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+- need_locks=warn
+- fi
+-else
+- need_locks=no
+-fi
+-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+-
+-
+-# AC_LIBTOOL_OBJDIR
+-# -----------------
+-AC_DEFUN([AC_LIBTOOL_OBJDIR],
+-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+-[rm -f .libs 2>/dev/null
+-mkdir .libs 2>/dev/null
+-if test -d .libs; then
+- lt_cv_objdir=.libs
+-else
+- # MS-DOS does not allow filenames that begin with a dot.
+- lt_cv_objdir=_libs
+-fi
+-rmdir .libs 2>/dev/null])
+-objdir=$lt_cv_objdir
+-])# AC_LIBTOOL_OBJDIR
+-
+-
+-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+-# ----------------------------------------------
+-# Check hardcoding attributes.
+-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+-[AC_MSG_CHECKING([how to hardcode library paths into programs])
+-_LT_AC_TAGVAR(hardcode_action, $1)=
+-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+- test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+- test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+-
+- # We can hardcode non-existant directories.
+- if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+- # If the only mechanism to avoid hardcoding is shlibpath_var, we
+- # have to relink, otherwise we might link with an installed library
+- # when we should be linking with a yet-to-be-installed one
+- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+- test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+- # Linking always hardcodes the temporary library directory.
+- _LT_AC_TAGVAR(hardcode_action, $1)=relink
+- else
+- # We can link without hardcoding, and we can hardcode nonexisting dirs.
+- _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+- fi
+-else
+- # We cannot hardcode anything, or else we can only hardcode existing
+- # directories.
+- _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+-fi
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+-
+-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+- # Fast installation is not supported
+- enable_fast_install=no
+-elif test "$shlibpath_overrides_runpath" = yes ||
+- test "$enable_shared" = no; then
+- # Fast installation is not necessary
+- enable_fast_install=needless
+-fi
+-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+-
+-
+-# AC_LIBTOOL_SYS_LIB_STRIP
+-# ------------------------
+-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+-[striplib=
+-old_striplib=
+-AC_MSG_CHECKING([whether stripping libraries is possible])
+-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+- AC_MSG_RESULT([yes])
+-else
+-# FIXME - insert some real tests, host_os isn't really good enough
+- case $host_os in
+- darwin*)
+- if test -n "$STRIP" ; then
+- striplib="$STRIP -x"
+- AC_MSG_RESULT([yes])
+- else
+- AC_MSG_RESULT([no])
+-fi
+- ;;
+- *)
+- AC_MSG_RESULT([no])
+- ;;
+- esac
+-fi
+-])# AC_LIBTOOL_SYS_LIB_STRIP
+-
+-
+-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+-# -----------------------------
+-# PORTME Fill in your ld.so characteristics
+-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+-[AC_MSG_CHECKING([dynamic linker characteristics])
+-library_names_spec=
+-libname_spec='lib$name'
+-soname_spec=
+-shrext=".so"
+-postinstall_cmds=
+-postuninstall_cmds=
+-finish_cmds=
+-finish_eval=
+-shlibpath_var=
+-shlibpath_overrides_runpath=unknown
+-version_type=none
+-dynamic_linker="$host_os ld.so"
+-sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-need_lib_prefix=unknown
+-hardcode_into_libs=no
+-
+-# when you set need_version to no, make sure it does not cause -set_version
+-# flags to be left without arguments
+-need_version=unknown
+-
+-case $host_os in
+-aix3*)
+- version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+- shlibpath_var=LIBPATH
+-
+- # AIX 3 has no versioning support, so we append a major version to the name.
+- soname_spec='${libname}${release}${shared_ext}$major'
+- ;;
+-
+-aix4* | aix5*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- hardcode_into_libs=yes
+- if test "$host_cpu" = ia64; then
+- # AIX 5 supports IA64
+- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- else
+- # With GCC up to 2.95.x, collect2 would create an import file
+- # for dependence libraries. The import file would start with
+- # the line `#! .'. This would cause the generated library to
+- # depend on `.', always an invalid library. This was fixed in
+- # development snapshots of GCC prior to 3.0.
+- case $host_os in
+- aix4 | aix4.[[01]] | aix4.[[01]].*)
+- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+- echo ' yes '
+- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+- :
+- else
+- can_build_shared=no
+- fi
+- ;;
+- esac
+- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+- # soname into executable. Probably we can add versioning support to
+- # collect2, so additional links can be useful in future.
+- if test "$aix_use_runtimelinking" = yes; then
+- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+- # instead of lib<name>.a to let people know that these are not
+- # typical AIX shared libraries.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- else
+- # We preserve .a as extension for shared libraries through AIX4.2
+- # and later when we are not doing run time linking.
+- library_names_spec='${libname}${release}.a $libname.a'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- fi
+- shlibpath_var=LIBPATH
+- fi
+- ;;
+-
+-amigaos*)
+- library_names_spec='$libname.ixlibrary $libname.a'
+- # Create ${libname}_ixlibrary.a entries in /sys/libs.
+- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+- ;;
+-
+-beos*)
+- library_names_spec='${libname}${shared_ext}'
+- dynamic_linker="$host_os ld.so"
+- shlibpath_var=LIBRARY_PATH
+- ;;
+-
+-bsdi4*)
+- version_type=linux
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+- # the default ld.so.conf also contains /usr/contrib/lib and
+- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+- # libtool to hard-code these into programs
+- ;;
+-
+-cygwin* | mingw* | pw32*)
+- version_type=windows
+- shrext=".dll"
+- need_version=no
+- need_lib_prefix=no
+-
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32*)
+- library_names_spec='$libname.dll.a'
+- # DLL is installed to $(libdir)/../bin by postinstall_cmds
+- postinstall_cmds='base_file=`basename \${file}`~
+- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+- dldir=$destdir/`dirname \$dlpath`~
+- test -d \$dldir || mkdir -p \$dldir~
+- $install_prog $dir/$dlname \$dldir/$dlname'
+- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+- dlpath=$dir/\$dldll~
+- $rm \$dlpath'
+- shlibpath_overrides_runpath=yes
+-
+- case $host_os in
+- cygwin*)
+- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+- ;;
+- mingw*)
+- # MinGW DLLs use traditional 'lib' prefix
+- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+- if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+- # It is most probably a Windows format PATH printed by
+- # mingw gcc, but we are running on Cygwin. Gcc prints its search
+- # path with ; separators, and with drive letters. We can handle the
+- # drive letters (cygwin fileutils understands them), so leave them,
+- # especially as we might pass files found there to a mingw objdump,
+- # which wouldn't understand a cygwinified path. Ahh.
+- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+- else
+- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+- fi
+- ;;
+- pw32*)
+- # pw32 DLLs use 'pw' prefix rather than 'lib'
+- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+- ;;
+- esac
+- ;;
+-
+- *)
+- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+- ;;
+- esac
+- dynamic_linker='Win32 ld.exe'
+- # FIXME: first we should search . and the directory the executable is in
+- shlibpath_var=PATH
+- ;;
+-
+-darwin* | rhapsody*)
+- dynamic_linker="$host_os dyld"
+- version_type=darwin
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+- soname_spec='${libname}${release}${major}$shared_ext'
+- shlibpath_overrides_runpath=yes
+- shlibpath_var=DYLD_LIBRARY_PATH
+- shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+- if test "$GCC" = yes; then
+- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+- else
+- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+- fi
+- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+- ;;
+-
+-dgux*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-freebsd1*)
+- dynamic_linker=no
+- ;;
+-
+-kfreebsd*-gnu*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=no
+- hardcode_into_libs=yes
+- dynamic_linker='GNU ld.so'
+- ;;
+-
+-freebsd*)
+- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+- version_type=freebsd-$objformat
+- case $version_type in
+- freebsd-elf*)
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+- need_version=no
+- need_lib_prefix=no
+- ;;
+- freebsd-*)
+- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+- need_version=yes
+- ;;
+- esac
+- shlibpath_var=LD_LIBRARY_PATH
+- case $host_os in
+- freebsd2*)
+- shlibpath_overrides_runpath=yes
+- ;;
+- freebsd3.[01]* | freebsdelf3.[01]*)
+- shlibpath_overrides_runpath=yes
+- hardcode_into_libs=yes
+- ;;
+- *) # from 3.2 on
+- shlibpath_overrides_runpath=no
+- hardcode_into_libs=yes
+- ;;
+- esac
+- ;;
+-
+-gnu*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- hardcode_into_libs=yes
+- ;;
+-
+-hpux9* | hpux10* | hpux11*)
+- # Give a soname corresponding to the major version so that dld.sl refuses to
+- # link against other versions.
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- case "$host_cpu" in
+- ia64*)
+- shrext='.so'
+- hardcode_into_libs=yes
+- dynamic_linker="$host_os dld.so"
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- if test "X$HPUX_IA64_MODE" = X32; then
+- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+- else
+- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+- fi
+- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+- ;;
+- hppa*64*)
+- shrext='.sl'
+- hardcode_into_libs=yes
+- dynamic_linker="$host_os dld.sl"
+- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+- ;;
+- *)
+- shrext='.sl'
+- dynamic_linker="$host_os dld.sl"
+- shlibpath_var=SHLIB_PATH
+- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- ;;
+- esac
+- # HP-UX runs *really* slowly unless shared libraries are mode 555.
+- postinstall_cmds='chmod 555 $lib'
+- ;;
+-
+-irix5* | irix6* | nonstopux*)
+- case $host_os in
+- nonstopux*) version_type=nonstopux ;;
+- *)
+- if test "$lt_cv_prog_gnu_ld" = yes; then
+- version_type=linux
+- else
+- version_type=irix
+- fi ;;
+- esac
+- need_lib_prefix=no
+- need_version=no
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+- case $host_os in
+- irix5* | nonstopux*)
+- libsuff= shlibsuff=
+- ;;
+- *)
+- case $LD in # libtool.m4 will add one of these switches to LD
+- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+- libsuff= shlibsuff= libmagic=32-bit;;
+- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+- libsuff=32 shlibsuff=N32 libmagic=N32;;
+- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+- libsuff=64 shlibsuff=64 libmagic=64-bit;;
+- *) libsuff= shlibsuff= libmagic=never-match;;
+- esac
+- ;;
+- esac
+- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+- shlibpath_overrides_runpath=no
+- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+- hardcode_into_libs=yes
+- ;;
+-
+-# No shared lib support for Linux oldld, aout, or coff.
+-linux*oldld* | linux*aout* | linux*coff*)
+- dynamic_linker=no
+- ;;
+-
+-# This must be Linux ELF.
+-linux*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+- libsuff=
+- if test "x$LINUX_64_MODE" = x64; then
+- # Some platforms are per default 64-bit, so there's no /lib64
+- if test -d /lib64; then
+- libsuff=64
+- fi
+- fi
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=no
+- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+- # This implies no fast_install, which is unacceptable.
+- # Some rework will be needed to allow for fast_install
+- # before this can be enabled.
+- hardcode_into_libs=yes
+-
+- # We used to test for /lib/ld.so.1 and disable shared libraries on
+- # powerpc, because MkLinux only supported shared libraries with the
+- # GNU dynamic linker. Since this was broken with cross compilers,
+- # most powerpc-linux boxes support dynamic linking these days and
+- # people can always --disable-shared, the test was removed, and we
+- # assume the GNU/Linux dynamic linker is in use.
+- dynamic_linker='GNU/Linux ld.so'
+- ;;
+-
+-netbsd*)
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+- dynamic_linker='NetBSD (a.out) ld.so'
+- else
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- dynamic_linker='NetBSD ld.elf_so'
+- fi
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- hardcode_into_libs=yes
+- ;;
+-
+-newsos6)
+- version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- ;;
+-
+-nto-qnx*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- ;;
+-
+-openbsd*)
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+- case $host_os in
+- openbsd2.[[89]] | openbsd2.[[89]].*)
+- shlibpath_overrides_runpath=no
+- ;;
+- *)
+- shlibpath_overrides_runpath=yes
+- ;;
+- esac
+- else
+- shlibpath_overrides_runpath=yes
+- fi
+- ;;
+-
+-os2*)
+- libname_spec='$name'
+- shrext=".dll"
+- need_lib_prefix=no
+- library_names_spec='$libname${shared_ext} $libname.a'
+- dynamic_linker='OS/2 ld.exe'
+- shlibpath_var=LIBPATH
+- ;;
+-
+-osf3* | osf4* | osf5*)
+- version_type=osf
+- need_lib_prefix=no
+- need_version=no
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+- ;;
+-
+-sco3.2v5*)
+- version_type=osf
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-solaris*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- hardcode_into_libs=yes
+- # ldd complains unless libraries are executable
+- postinstall_cmds='chmod +x $lib'
+- ;;
+-
+-sunos4*)
+- version_type=sunos
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- if test "$with_gnu_ld" = yes; then
+- need_lib_prefix=no
+- fi
+- need_version=yes
+- ;;
+-
+-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- case $host_vendor in
+- sni)
+- shlibpath_overrides_runpath=no
+- need_lib_prefix=no
+- export_dynamic_flag_spec='${wl}-Blargedynsym'
+- runpath_var=LD_RUN_PATH
+- ;;
+- siemens)
+- need_lib_prefix=no
+- ;;
+- motorola)
+- need_lib_prefix=no
+- need_version=no
+- shlibpath_overrides_runpath=no
+- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+- ;;
+- esac
+- ;;
+-
+-sysv4*MP*)
+- if test -d /usr/nec ;then
+- version_type=linux
+- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+- soname_spec='$libname${shared_ext}.$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- fi
+- ;;
+-
+-uts4*)
+- version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-*)
+- dynamic_linker=no
+- ;;
+-esac
+-AC_MSG_RESULT([$dynamic_linker])
+-test "$dynamic_linker" = no && can_build_shared=no
+-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+-
+-
+-# _LT_AC_TAGCONFIG
+-# ----------------
+-AC_DEFUN([_LT_AC_TAGCONFIG],
+-[AC_ARG_WITH([tags],
+- [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+- [include additional configurations @<:@automatic@:>@])],
+- [tagnames="$withval"])
+-
+-if test -f "$ltmain" && test -n "$tagnames"; then
+- if test ! -f "${ofile}"; then
+- AC_MSG_WARN([output file `$ofile' does not exist])
+- fi
+-
+- if test -z "$LTCC"; then
+- eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+- if test -z "$LTCC"; then
+- AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+- else
+- AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+- fi
+- fi
+-
+- # Extract list of available tagged configurations in $ofile.
+- # Note that this assumes the entire list is on one line.
+- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+-
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for tagname in $tagnames; do
+- IFS="$lt_save_ifs"
+- # Check whether tagname contains only valid characters
+- case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+- "") ;;
+- *) AC_MSG_ERROR([invalid tag name: $tagname])
+- ;;
+- esac
+-
+- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+- then
+- AC_MSG_ERROR([tag name \"$tagname\" already exists])
+- fi
+-
+- # Update the list of available tags.
+- if test -n "$tagname"; then
+- echo appending configuration tag \"$tagname\" to $ofile
+-
+- case $tagname in
+- CXX)
+- if test -n "$CXX" && test "X$CXX" != "Xno"; then
+- AC_LIBTOOL_LANG_CXX_CONFIG
+- else
+- tagname=""
+- fi
+- ;;
+-
+- F77)
+- if test -n "$F77" && test "X$F77" != "Xno"; then
+- AC_LIBTOOL_LANG_F77_CONFIG
+- else
+- tagname=""
+- fi
+- ;;
+-
+- GCJ)
+- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+- AC_LIBTOOL_LANG_GCJ_CONFIG
+- else
+- tagname=""
+- fi
+- ;;
+-
+- RC)
+- AC_LIBTOOL_LANG_RC_CONFIG
+- ;;
+-
+- *)
+- AC_MSG_ERROR([Unsupported tag name: $tagname])
+- ;;
+- esac
+-
+- # Append the new tag name to the list of available tags.
+- if test -n "$tagname" ; then
+- available_tags="$available_tags $tagname"
+- fi
+- fi
+- done
+- IFS="$lt_save_ifs"
+-
+- # Now substitute the updated list of available tags.
+- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+- mv "${ofile}T" "$ofile"
+- chmod +x "$ofile"
+- else
+- rm -f "${ofile}T"
+- AC_MSG_ERROR([unable to update list of available tagged configurations.])
+- fi
+-fi
+-])# _LT_AC_TAGCONFIG
+-
+-
+-# AC_LIBTOOL_DLOPEN
+-# -----------------
+-# enable checks for dlopen support
+-AC_DEFUN([AC_LIBTOOL_DLOPEN],
+- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+-])# AC_LIBTOOL_DLOPEN
+-
+-
+-# AC_LIBTOOL_WIN32_DLL
+-# --------------------
+-# declare package support for building win32 dll's
+-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+-])# AC_LIBTOOL_WIN32_DLL
+-
+-
+-# AC_ENABLE_SHARED([DEFAULT])
+-# ---------------------------
+-# implement the --enable-shared flag
+-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+-AC_DEFUN([AC_ENABLE_SHARED],
+-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE([shared],
+- [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+- [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+- [p=${PACKAGE-default}
+- case $enableval in
+- yes) enable_shared=yes ;;
+- no) enable_shared=no ;;
+- *)
+- enable_shared=no
+- # Look at the argument we got. We use all the common list separators.
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for pkg in $enableval; do
+- IFS="$lt_save_ifs"
+- if test "X$pkg" = "X$p"; then
+- enable_shared=yes
+- fi
+- done
+- IFS="$lt_save_ifs"
+- ;;
+- esac],
+- [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+-])# AC_ENABLE_SHARED
+-
+-
+-# AC_DISABLE_SHARED
+-# -----------------
+-#- set the default shared flag to --disable-shared
+-AC_DEFUN([AC_DISABLE_SHARED],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_SHARED(no)
+-])# AC_DISABLE_SHARED
+-
+-
+-# AC_ENABLE_STATIC([DEFAULT])
+-# ---------------------------
+-# implement the --enable-static flag
+-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+-AC_DEFUN([AC_ENABLE_STATIC],
+-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE([static],
+- [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+- [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+- [p=${PACKAGE-default}
+- case $enableval in
+- yes) enable_static=yes ;;
+- no) enable_static=no ;;
+- *)
+- enable_static=no
+- # Look at the argument we got. We use all the common list separators.
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for pkg in $enableval; do
+- IFS="$lt_save_ifs"
+- if test "X$pkg" = "X$p"; then
+- enable_static=yes
+- fi
+- done
+- IFS="$lt_save_ifs"
+- ;;
+- esac],
+- [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+-])# AC_ENABLE_STATIC
+-
+-
+-# AC_DISABLE_STATIC
+-# -----------------
+-# set the default static flag to --disable-static
+-AC_DEFUN([AC_DISABLE_STATIC],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_STATIC(no)
+-])# AC_DISABLE_STATIC
+-
+-
+-# AC_ENABLE_FAST_INSTALL([DEFAULT])
+-# ---------------------------------
+-# implement the --enable-fast-install flag
+-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE([fast-install],
+- [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+- [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+- [p=${PACKAGE-default}
+- case $enableval in
+- yes) enable_fast_install=yes ;;
+- no) enable_fast_install=no ;;
+- *)
+- enable_fast_install=no
+- # Look at the argument we got. We use all the common list separators.
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for pkg in $enableval; do
+- IFS="$lt_save_ifs"
+- if test "X$pkg" = "X$p"; then
+- enable_fast_install=yes
+- fi
+- done
+- IFS="$lt_save_ifs"
+- ;;
+- esac],
+- [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+-])# AC_ENABLE_FAST_INSTALL
+-
+-
+-# AC_DISABLE_FAST_INSTALL
+-# -----------------------
+-# set the default to --disable-fast-install
+-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_FAST_INSTALL(no)
+-])# AC_DISABLE_FAST_INSTALL
+-
+-
+-# AC_LIBTOOL_PICMODE([MODE])
+-# --------------------------
+-# implement the --with-pic flag
+-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+-AC_DEFUN([AC_LIBTOOL_PICMODE],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-pic_mode=ifelse($#,1,$1,default)
+-])# AC_LIBTOOL_PICMODE
+-
+-
+-# AC_PROG_EGREP
+-# -------------
+-# This is predefined starting with Autoconf 2.54, so this conditional
+-# definition can be removed once we require Autoconf 2.54 or later.
+-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+- then ac_cv_prog_egrep='grep -E'
+- else ac_cv_prog_egrep='egrep'
+- fi])
+- EGREP=$ac_cv_prog_egrep
+- AC_SUBST([EGREP])
+-])])
+-
+-
+-# AC_PATH_TOOL_PREFIX
+-# -------------------
+-# find a file program which can recognise shared library
+-AC_DEFUN([AC_PATH_TOOL_PREFIX],
+-[AC_REQUIRE([AC_PROG_EGREP])dnl
+-AC_MSG_CHECKING([for $1])
+-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+-[case $MAGIC_CMD in
+-[[\\/*] | ?:[\\/]*])
+- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+- ;;
+-*)
+- lt_save_MAGIC_CMD="$MAGIC_CMD"
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-dnl $ac_dummy forces splitting on constant user-supplied paths.
+-dnl POSIX.2 word splitting is done only on the output of word expansions,
+-dnl not every word. This closes a longstanding sh security hole.
+- ac_dummy="ifelse([$2], , $PATH, [$2])"
+- for ac_dir in $ac_dummy; do
+- IFS="$lt_save_ifs"
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/$1; then
+- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+- if test -n "$file_magic_test_file"; then
+- case $deplibs_check_method in
+- "file_magic "*)
+- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+- $EGREP "$file_magic_regex" > /dev/null; then
+- :
+- else
+- cat <<EOF 1>&2
+-
+-*** Warning: the command libtool uses to detect shared libraries,
+-*** $file_magic_cmd, produces output that libtool cannot recognize.
+-*** The result is that libtool may fail to recognize shared libraries
+-*** as such. This will affect the creation of libtool libraries that
+-*** depend on shared libraries, but programs linked with such libtool
+-*** libraries will work regardless of this problem. Nevertheless, you
+-*** may want to report the problem to your system manager and/or to
+-*** bug-libtool@gnu.org
+-
+-EOF
+- fi ;;
+- esac
+- fi
+- break
+- fi
+- done
+- IFS="$lt_save_ifs"
+- MAGIC_CMD="$lt_save_MAGIC_CMD"
+- ;;
+-esac])
+-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+-if test -n "$MAGIC_CMD"; then
+- AC_MSG_RESULT($MAGIC_CMD)
+-else
+- AC_MSG_RESULT(no)
+-fi
+-])# AC_PATH_TOOL_PREFIX
+-
+-
+-# AC_PATH_MAGIC
+-# -------------
+-# find a file program which can recognise a shared library
+-AC_DEFUN([AC_PATH_MAGIC],
+-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+-if test -z "$lt_cv_path_MAGIC_CMD"; then
+- if test -n "$ac_tool_prefix"; then
+- AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+- else
+- MAGIC_CMD=:
+- fi
+-fi
+-])# AC_PATH_MAGIC
+-
+-
+-# AC_PROG_LD
+-# ----------
+-# find the pathname to the GNU or non-GNU linker
+-AC_DEFUN([AC_PROG_LD],
+-[AC_ARG_WITH([gnu-ld],
+- [AC_HELP_STRING([--with-gnu-ld],
+- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+- [test "$withval" = no || with_gnu_ld=yes],
+- [with_gnu_ld=no])
+-AC_REQUIRE([LT_AC_PROG_SED])dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-ac_prog=ld
+-if test "$GCC" = yes; then
+- # Check if gcc -print-prog-name=ld gives a path.
+- AC_MSG_CHECKING([for ld used by $CC])
+- case $host in
+- *-*-mingw*)
+- # gcc leaves a trailing carriage return which upsets mingw
+- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+- *)
+- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+- esac
+- case $ac_prog in
+- # Accept absolute paths.
+- [[\\/]]* | ?:[[\\/]]*)
+- re_direlt='/[[^/]][[^/]]*/\.\./'
+- # Canonicalize the pathname of ld
+- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+- done
+- test -z "$LD" && LD="$ac_prog"
+- ;;
+- "")
+- # If it fails, then pretend we aren't using GCC.
+- ac_prog=ld
+- ;;
+- *)
+- # If it is relative, then search for the first ld in PATH.
+- with_gnu_ld=unknown
+- ;;
+- esac
+-elif test "$with_gnu_ld" = yes; then
+- AC_MSG_CHECKING([for GNU ld])
+-else
+- AC_MSG_CHECKING([for non-GNU ld])
+-fi
+-AC_CACHE_VAL(lt_cv_path_LD,
+-[if test -z "$LD"; then
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+- for ac_dir in $PATH; do
+- IFS="$lt_save_ifs"
+- test -z "$ac_dir" && ac_dir=.
+- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+- lt_cv_path_LD="$ac_dir/$ac_prog"
+- # Check to see if the program is GNU ld. I'd rather use --version,
+- # but apparently some GNU ld's only accept -v.
+- # Break only if it was the GNU/non-GNU ld that we prefer.
+- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+- *GNU* | *'with BFD'*)
+- test "$with_gnu_ld" != no && break
+- ;;
+- *)
+- test "$with_gnu_ld" != yes && break
+- ;;
+- esac
+- fi
+- done
+- IFS="$lt_save_ifs"
+-else
+- lt_cv_path_LD="$LD" # Let the user override the test with a path.
+-fi])
+-LD="$lt_cv_path_LD"
+-if test -n "$LD"; then
+- AC_MSG_RESULT($LD)
+-else
+- AC_MSG_RESULT(no)
+-fi
+-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+-AC_PROG_LD_GNU
+-])# AC_PROG_LD
+-
+-
+-# AC_PROG_LD_GNU
+-# --------------
+-AC_DEFUN([AC_PROG_LD_GNU],
+-[AC_REQUIRE([AC_PROG_EGREP])dnl
+-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+-case `$LD -v 2>&1 </dev/null` in
+-*GNU* | *'with BFD'*)
+- lt_cv_prog_gnu_ld=yes
+- ;;
+-*)
+- lt_cv_prog_gnu_ld=no
+- ;;
+-esac])
+-with_gnu_ld=$lt_cv_prog_gnu_ld
+-])# AC_PROG_LD_GNU
+-
+-
+-# AC_PROG_LD_RELOAD_FLAG
+-# ----------------------
+-# find reload flag for linker
+-# -- PORTME Some linkers may need a different reload flag.
+-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+-[AC_CACHE_CHECK([for $LD option to reload object files],
+- lt_cv_ld_reload_flag,
+- [lt_cv_ld_reload_flag='-r'])
+-reload_flag=$lt_cv_ld_reload_flag
+-case $reload_flag in
+-"" | " "*) ;;
+-*) reload_flag=" $reload_flag" ;;
+-esac
+-reload_cmds='$LD$reload_flag -o $output$reload_objs'
+-])# AC_PROG_LD_RELOAD_FLAG
+-
+-
+-# AC_DEPLIBS_CHECK_METHOD
+-# -----------------------
+-# how to check for library dependencies
+-# -- PORTME fill in with the dynamic library characteristics
+-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+-[AC_CACHE_CHECK([how to recognise dependent libraries],
+-lt_cv_deplibs_check_method,
+-[lt_cv_file_magic_cmd='$MAGIC_CMD'
+-lt_cv_file_magic_test_file=
+-lt_cv_deplibs_check_method='unknown'
+-# Need to set the preceding variable on all platforms that support
+-# interlibrary dependencies.
+-# 'none' -- dependencies not supported.
+-# `unknown' -- same as none, but documents that we really don't know.
+-# 'pass_all' -- all dependencies passed with no checks.
+-# 'test_compile' -- check by making test program.
+-# 'file_magic [[regex]]' -- check by looking for files in library path
+-# which responds to the $file_magic_cmd with a given extended regex.
+-# If you have `file' or equivalent on your system and you're not sure
+-# whether `pass_all' will *always* work, you probably want this one.
+-
+-case $host_os in
+-aix4* | aix5*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-beos*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-bsdi4*)
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+- lt_cv_file_magic_cmd='/usr/bin/file -L'
+- lt_cv_file_magic_test_file=/shlib/libc.so
+- ;;
+-
+-cygwin*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-mingw* | pw32*)
+- # win32_libid is a shell function defined in ltmain.sh
+- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+- lt_cv_file_magic_cmd='win32_libid'
+- ;;
+-
+-darwin* | rhapsody*)
+- # this will be overwritten by pass_all, but leave it in just in case
+- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+- lt_cv_file_magic_cmd='/usr/bin/file -L'
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+- ;;
+- *) # Darwin 1.3 on
+- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+- ;;
+- esac
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-freebsd* | kfreebsd*-gnu)
+- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+- case $host_cpu in
+- i*86 )
+- # Not sure whether the presence of OpenBSD here was a mistake.
+- # Let's accept both of them until this is cleared up.
+- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+- lt_cv_file_magic_cmd=/usr/bin/file
+- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+- ;;
+- esac
+- else
+- lt_cv_deplibs_check_method=pass_all
+- fi
+- ;;
+-
+-gnu*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-hpux10.20* | hpux11*)
+- lt_cv_file_magic_cmd=/usr/bin/file
+- case "$host_cpu" in
+- ia64*)
+- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+- ;;
+- hppa*64*)
+- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+- ;;
+- *)
+- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+- lt_cv_file_magic_test_file=/usr/lib/libc.sl
+- ;;
+- esac
+- ;;
+-
+-irix5* | irix6* | nonstopux*)
+- case $host_os in
+- irix5* | nonstopux*)
+- # this will be overridden with pass_all, but let us keep it just in case
+- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+- ;;
+- *)
+- case $LD in
+- *-32|*"-32 ") libmagic=32-bit;;
+- *-n32|*"-n32 ") libmagic=N32;;
+- *-64|*"-64 ") libmagic=64-bit;;
+- *) libmagic=never-match;;
+- esac
+- # this will be overridden with pass_all, but let us keep it just in case
+- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+- ;;
+- esac
+- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-# This must be Linux ELF.
+-linux*)
+- case $host_cpu in
+- alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+- lt_cv_deplibs_check_method=pass_all ;;
+- # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+- arm* )
+- lt_cv_deplibs_check_method=pass_all ;;
+- *)
+- # glibc up to 2.1.1 does not perform some relocations on ARM
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+- esac
+- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+- ;;
+-
+-netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+- else
+- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+- fi
+- ;;
+-
+-newos6*)
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+- lt_cv_file_magic_cmd=/usr/bin/file
+- lt_cv_file_magic_test_file=/usr/lib/libnls.so
+- ;;
+-
+-nto-qnx*)
+- lt_cv_deplibs_check_method=unknown
+- ;;
+-
+-openbsd*)
+- lt_cv_file_magic_cmd=/usr/bin/file
+- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+- else
+- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+- fi
+- ;;
+-
+-osf3* | osf4* | osf5*)
+- # this will be overridden with pass_all, but let us keep it just in case
+- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+- lt_cv_file_magic_test_file=/shlib/libc.so
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-sco3.2v5*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-solaris*)
+- lt_cv_deplibs_check_method=pass_all
+- lt_cv_file_magic_test_file=/lib/libc.so
+- ;;
+-
+-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- case $host_vendor in
+- motorola)
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+- ;;
+- ncr)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+- sequent)
+- lt_cv_file_magic_cmd='/bin/file'
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+- ;;
+- sni)
+- lt_cv_file_magic_cmd='/bin/file'
+- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+- lt_cv_file_magic_test_file=/lib/libc.so
+- ;;
+- siemens)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+- esac
+- ;;
+-
+-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-esac
+-])
+-file_magic_cmd=$lt_cv_file_magic_cmd
+-deplibs_check_method=$lt_cv_deplibs_check_method
+-test -z "$deplibs_check_method" && deplibs_check_method=unknown
+-])# AC_DEPLIBS_CHECK_METHOD
+-
+-
+-# AC_PROG_NM
+-# ----------
+-# find the pathname to a BSD-compatible name lister
+-AC_DEFUN([AC_PROG_NM],
+-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+-[if test -n "$NM"; then
+- # Let the user override the test.
+- lt_cv_path_NM="$NM"
+-else
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+- IFS="$lt_save_ifs"
+- test -z "$ac_dir" && ac_dir=.
+- tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+- # Check to see if the nm accepts a BSD-compat flag.
+- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+- # nm: unknown option "B" ignored
+- # Tru64's nm complains that /dev/null is an invalid object file
+- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+- */dev/null* | *'Invalid file or object type'*)
+- lt_cv_path_NM="$tmp_nm -B"
+- break
+- ;;
+- *)
+- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+- */dev/null*)
+- lt_cv_path_NM="$tmp_nm -p"
+- break
+- ;;
+- *)
+- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+- continue # so that we can try to find one that supports BSD flags
+- ;;
+- esac
+- esac
+- fi
+- done
+- IFS="$lt_save_ifs"
+- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+-fi])
+-NM="$lt_cv_path_NM"
+-])# AC_PROG_NM
+-
+-
+-# AC_CHECK_LIBM
+-# -------------
+-# check for math library
+-AC_DEFUN([AC_CHECK_LIBM],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-LIBM=
+-case $host in
+-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+- # These system don't have libm, or don't need it
+- ;;
+-*-ncr-sysv4.3*)
+- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+- ;;
+-*)
+- AC_CHECK_LIB(m, cos, LIBM="-lm")
+- ;;
+-esac
+-])# AC_CHECK_LIBM
+-
+-
+-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+-# -----------------------------------
+-# sets LIBLTDL to the link flags for the libltdl convenience library and
+-# LTDLINCL to the include flags for the libltdl header and adds
+-# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL
+-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+-# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will
+-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+-# '${top_srcdir}/' (note the single quotes!). If your package is not
+-# flat and you're not using automake, define top_builddir and
+-# top_srcdir appropriately in the Makefiles.
+-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+- case $enable_ltdl_convenience in
+- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+- "") enable_ltdl_convenience=yes
+- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+- esac
+- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+- # For backwards non-gettext consistent compatibility...
+- INCLTDL="$LTDLINCL"
+-])# AC_LIBLTDL_CONVENIENCE
+-
+-
+-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+-# -----------------------------------
+-# sets LIBLTDL to the link flags for the libltdl installable library and
+-# LTDLINCL to the include flags for the libltdl header and adds
+-# --enable-ltdl-install to the configure arguments. Note that LIBLTDL
+-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+-# DIRECTORY is not provided and an installed libltdl is not found, it is
+-# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/'
+-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+-# quotes!). If your package is not flat and you're not using automake,
+-# define top_builddir and top_srcdir appropriately in the Makefiles.
+-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+- AC_CHECK_LIB(ltdl, lt_dlinit,
+- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+- [if test x"$enable_ltdl_install" = xno; then
+- AC_MSG_WARN([libltdl not installed, but installation disabled])
+- else
+- enable_ltdl_install=yes
+- fi
+- ])
+- if test x"$enable_ltdl_install" = x"yes"; then
+- ac_configure_args="$ac_configure_args --enable-ltdl-install"
+- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+- else
+- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+- LIBLTDL="-lltdl"
+- LTDLINCL=
+- fi
+- # For backwards non-gettext consistent compatibility...
+- INCLTDL="$LTDLINCL"
+-])# AC_LIBLTDL_INSTALLABLE
+-
+-
+-# AC_LIBTOOL_CXX
+-# --------------
+-# enable support for C++ libraries
+-AC_DEFUN([AC_LIBTOOL_CXX],
+-[AC_REQUIRE([_LT_AC_LANG_CXX])
+-])# AC_LIBTOOL_CXX
+-
+-
+-# _LT_AC_LANG_CXX
+-# ---------------
+-AC_DEFUN([_LT_AC_LANG_CXX],
+-[AC_REQUIRE([AC_PROG_CXX])
+-AC_REQUIRE([AC_PROG_CXXCPP])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+-])# _LT_AC_LANG_CXX
+-
+-
+-# AC_LIBTOOL_F77
+-# --------------
+-# enable support for Fortran 77 libraries
+-AC_DEFUN([AC_LIBTOOL_F77],
+-[AC_REQUIRE([_LT_AC_LANG_F77])
+-])# AC_LIBTOOL_F77
+-
+-
+-# _LT_AC_LANG_F77
+-# ---------------
+-AC_DEFUN([_LT_AC_LANG_F77],
+-[AC_REQUIRE([AC_PROG_F77])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+-])# _LT_AC_LANG_F77
+-
+-
+-# AC_LIBTOOL_GCJ
+-# --------------
+-# enable support for GCJ libraries
+-AC_DEFUN([AC_LIBTOOL_GCJ],
+-[AC_REQUIRE([_LT_AC_LANG_GCJ])
+-])# AC_LIBTOOL_GCJ
+-
+-
+-# _LT_AC_LANG_GCJ
+-# ---------------
+-AC_DEFUN([_LT_AC_LANG_GCJ],
+-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+-])# _LT_AC_LANG_GCJ
+-
+-
+-# AC_LIBTOOL_RC
+-# --------------
+-# enable support for Windows resource files
+-AC_DEFUN([AC_LIBTOOL_RC],
+-[AC_REQUIRE([LT_AC_PROG_RC])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+-])# AC_LIBTOOL_RC
+-
+-
+-# AC_LIBTOOL_LANG_C_CONFIG
+-# ------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+-[lt_save_CC="$CC"
+-AC_LANG_PUSH(C)
+-
+-# Source file extension for C test sources.
+-ac_ext=c
+-
+-# Object file extension for compiled C test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='int main(){return(0);}\n'
+-
+-_LT_AC_SYS_COMPILER
+-
+-#
+-# Check for any special shared library compilation flags.
+-#
+-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+-if test "$GCC" = no; then
+- case $host_os in
+- sco3.2v5*)
+- _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+- ;;
+- esac
+-fi
+-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+- AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+- if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then :
+- else
+- AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+- _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+- fi
+-fi
+-
+-
+-#
+-# Check to make sure the static flag actually works.
+-#
+-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+- $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+- [],
+- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+-
+-
+-## CAVEAT EMPTOR:
+-## There is no encapsulation within the following macros, do not change
+-## the running order or otherwise move them around unless you know exactly
+-## what you are doing...
+-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-AC_LIBTOOL_DLOPEN_SELF($1)
+-
+-# Report which librarie types wil actually be built
+-AC_MSG_CHECKING([if libtool supports shared libraries])
+-AC_MSG_RESULT([$can_build_shared])
+-
+-AC_MSG_CHECKING([whether to build shared libraries])
+-test "$can_build_shared" = "no" && enable_shared=no
+-
+-# On AIX, shared libraries and static libraries use the same namespace, and
+-# are all built from PIC.
+-case "$host_os" in
+-aix3*)
+- test "$enable_shared" = yes && enable_static=no
+- if test -n "$RANLIB"; then
+- archive_cmds="$archive_cmds~\$RANLIB \$lib"
+- postinstall_cmds='$RANLIB $lib'
+- fi
+- ;;
+-
+-aix4*)
+- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+- test "$enable_shared" = yes && enable_static=no
+- fi
+- ;;
+- darwin* | rhapsody*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+- ;;
+- *) # Darwin 1.3 on
+- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- else
+- case ${MACOSX_DEPLOYMENT_TARGET} in
+- 10.[012])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- ;;
+- 10.*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+- ;;
+- esac
+- fi
+- ;;
+- esac
+- output_verbose_link_cmd='echo'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-esac
+-AC_MSG_RESULT([$enable_shared])
+-
+-AC_MSG_CHECKING([whether to build static libraries])
+-# Make sure either enable_shared or enable_static is yes.
+-test "$enable_shared" = yes || enable_static=yes
+-AC_MSG_RESULT([$enable_static])
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_POP
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_C_CONFIG
+-
+-
+-# AC_LIBTOOL_LANG_CXX_CONFIG
+-# --------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+-[AC_LANG_PUSH(C++)
+-AC_REQUIRE([AC_PROG_CXX])
+-AC_REQUIRE([AC_PROG_CXXCPP])
+-
+-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+-_LT_AC_TAGVAR(always_export_symbols, $1)=no
+-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_direct, $1)=no
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+-_LT_AC_TAGVAR(module_cmds, $1)=
+-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_AC_TAGVAR(no_undefined_flag, $1)=
+-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Dependencies to place before and after the object being linked:
+-_LT_AC_TAGVAR(predep_objects, $1)=
+-_LT_AC_TAGVAR(postdep_objects, $1)=
+-_LT_AC_TAGVAR(predeps, $1)=
+-_LT_AC_TAGVAR(postdeps, $1)=
+-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+-
+-# Source file extension for C++ test sources.
+-ac_ext=cc
+-
+-# Object file extension for compiled C++ test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC=$CC
+-lt_save_LD=$LD
+-lt_save_GCC=$GCC
+-GCC=$GXX
+-lt_save_with_gnu_ld=$with_gnu_ld
+-lt_save_path_LD=$lt_cv_path_LD
+-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+-else
+- unset lt_cv_prog_gnu_ld
+-fi
+-if test -n "${lt_cv_path_LDCXX+set}"; then
+- lt_cv_path_LD=$lt_cv_path_LDCXX
+-else
+- unset lt_cv_path_LD
+-fi
+-test -z "${LDCXX+set}" || LD=$LDCXX
+-CC=${CXX-"c++"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+-
+-# We don't want -fno-exception wen compiling C++ code, so set the
+-# no_builtin_flag separately
+-if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+-else
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+-fi
+-
+-if test "$GXX" = yes; then
+- # Set up default GNU C++ configuration
+-
+- AC_PROG_LD
+-
+- # Check if GNU C++ uses GNU ld as the underlying linker, since the
+- # archiving commands below assume that GNU ld is being used.
+- if test "$with_gnu_ld" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-
+- # If archive_cmds runs LD, not CC, wlarc should be empty
+- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+- # investigate it a little bit more. (MM)
+- wlarc='${wl}'
+-
+- # ancient GNU ld didn't support --whole-archive et. al.
+- if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+- grep 'no-whole-archive' > /dev/null; then
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+- else
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+- fi
+- else
+- with_gnu_ld=no
+- wlarc=
+-
+- # A generic and very simple default shared library creation
+- # command for GNU C++ for the case where it uses the native
+- # linker, instead of GNU ld. If possible, this setting should
+- # overridden to take advantage of the native linker features on
+- # the platform it is being used on.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib'
+- fi
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+-
+-else
+- GXX=no
+- with_gnu_ld=no
+- wlarc=
+-fi
+-
+-# PORTME: fill in a description of your system's C++ link characteristics
+-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+-case $host_os in
+- aix3*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- aix4* | aix5*)
+- if test "$host_cpu" = ia64; then
+- # On IA64, the linker does run time linking by default, so we don't
+- # have to do anything special.
+- aix_use_runtimelinking=no
+- exp_sym_flag='-Bexport'
+- no_entry_flag=""
+- else
+- # KDE requires run time linking. Make it the default.
+- aix_use_runtimelinking=yes
+- exp_sym_flag='-bexport'
+- no_entry_flag='-bnoentry'
+- fi
+-
+- # When large executables or shared objects are built, AIX ld can
+- # have problems creating the table of contents. If linking a library
+- # or program results in "error TOC overflow" add -mminimal-toc to
+- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+-
+- _LT_AC_TAGVAR(archive_cmds, $1)=''
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+-
+- if test "$GXX" = yes; then
+- case $host_os in aix4.[012]|aix4.[012].*)
+- # We only want to do this on AIX 4.2 and lower, the check
+- # below for broken collect2 doesn't work under 4.3+
+- collect2name=`${CC} -print-prog-name=collect2`
+- if test -f "$collect2name" && \
+- strings "$collect2name" | grep resolve_lib_name >/dev/null
+- then
+- # We have reworked collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- else
+- # We have old collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+- # It fails to find uninstalled libraries when the uninstalled
+- # path is not listed in the libpath. Setting hardcode_minus_L
+- # to unsupported forces relinking
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+- fi
+- esac
+- shared_flag='-shared'
+- else
+- # not using gcc
+- if test "$host_cpu" = ia64; then
+- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+- # chokes on -Wl,-G. The following line is correct:
+- shared_flag='-G'
+- else
+- if test "$aix_use_runtimelinking" = yes; then
+- shared_flag='-qmkshrobj ${wl}-G'
+- else
+- shared_flag='-qmkshrobj'
+- fi
+- fi
+- fi
+-
+- # Let the compiler handle the export list.
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- if test "$aix_use_runtimelinking" = yes; then
+- # Warning - without using the other runtime loading flags (-brtl),
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+-
+- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+- else
+- if test "$host_cpu" = ia64; then
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+- else
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+- # Warning - without using the other run time loading flags,
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+- # -bexpall does not export symbols beginning with underscore (_)
+- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+- # Exported symbols can be pulled into shared objects from archives
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+- # This is similar to how AIX traditionally builds it's shared libraries.
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+- fi
+- fi
+- ;;
+- chorus*)
+- case $cc_basename in
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+-
+- cygwin* | mingw* | pw32*)
+- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+- # as there is no search path for DLLs.
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+-
+- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- # If the export-symbols file already is a .def file (1st line
+- # is EXPORTS), use it as is; otherwise, prepend...
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- cp $export_symbols $output_objdir/$soname.def;
+- else
+- echo EXPORTS > $output_objdir/$soname.def;
+- cat $export_symbols >> $output_objdir/$soname.def;
+- fi~
+- $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- darwin* | rhapsody*)
+- if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+- ;;
+- *) # Darwin 1.3 on
+- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- else
+- case ${MACOSX_DEPLOYMENT_TARGET} in
+- 10.[012])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- ;;
+- 10.*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+- ;;
+- esac
+- fi
+- ;;
+- esac
+- lt_int_apple_cc_single_mod=no
+- output_verbose_link_cmd='echo'
+- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+- lt_int_apple_cc_single_mod=yes
+- fi
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+- fi
+- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+-
+- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- else
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- fi
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- dgux*)
+- case $cc_basename in
+- ec++)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- ghcx)
+- # Green Hills C++ Compiler
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- freebsd[12]*)
+- # C++ shared libraries reported to be fairly broken before switch to ELF
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- freebsd-elf*)
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- ;;
+- freebsd* | kfreebsd*-gnu)
+- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+- # conventions
+- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+- ;;
+- gnu*)
+- ;;
+- hpux9*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+- # but as the default
+- # location of the library.
+-
+- case $cc_basename in
+- CC)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- aCC)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- hpux10*|hpux11*)
+- if test $with_gnu_ld = no; then
+- case "$host_cpu" in
+- hppa*64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+- ia64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- ;;
+- *)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- ;;
+- esac
+- fi
+- case "$host_cpu" in
+- hppa*64*)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+- ia64*)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+- # but as the default
+- # location of the library.
+- ;;
+- *)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+- # but as the default
+- # location of the library.
+- ;;
+- esac
+-
+- case $cc_basename in
+- CC)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- aCC)
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+- ;;
+- esac
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes; then
+- if test $with_gnu_ld = no; then
+- case "$host_cpu" in
+- ia64*|hppa*64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+- ;;
+- esac
+- fi
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- irix5* | irix6*)
+- case $cc_basename in
+- CC)
+- # SGI C++
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-
+- # Archives containing C++ object files must be created using
+- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+- # necessary to make sure instantiated templates are included
+- # in the archive.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+- ;;
+- *)
+- if test "$GXX" = yes; then
+- if test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+- fi
+- fi
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- ;;
+- esac
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+- linux*)
+- case $cc_basename in
+- KCC)
+- # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+- # KCC will only create a shared library if the output file
+- # ends with ".so" (or ".sl" for HP-UX), so rename the library
+- # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-
+- # Archives containing C++ object files must be created using
+- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+- ;;
+- icpc)
+- # Intel C++
+- with_gnu_ld=yes
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+- ;;
+- cxx)
+- # Compaq C++
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+-
+- runpath_var=LD_RUN_PATH
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- esac
+- ;;
+- lynxos*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- m88k*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- mvs*)
+- case $cc_basename in
+- cxx)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+- wlarc=
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- fi
+- # Workaround some broken pre-1.5 toolchains
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+- ;;
+- osf3*)
+- case $cc_basename in
+- KCC)
+- # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+- # KCC will only create a shared library if the output file
+- # ends with ".so" (or ".sl" for HP-UX), so rename the library
+- # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Archives containing C++ object files must be created using
+- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+-
+- ;;
+- RCC)
+- # Rational C++ 2.4.1
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- cxx)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+-
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- osf4* | osf5*)
+- case $cc_basename in
+- KCC)
+- # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+- # KCC will only create a shared library if the output file
+- # ends with ".so" (or ".sl" for HP-UX), so rename the library
+- # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Archives containing C++ object files must be created using
+- # the KAI C++ compiler.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+- ;;
+- RCC)
+- # Rational C++ 2.4.1
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- cxx)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+- echo "-hidden">> $lib.exp~
+- $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+- $rm $lib.exp'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+-
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- psos*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- sco*)
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case $cc_basename in
+- CC)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- sunos4*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.x
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- lcc)
+- # Lucid
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- solaris*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.2, 5.x and Centerline C++
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- case $host_os in
+- solaris2.[0-5] | solaris2.[0-5].*) ;;
+- *)
+- # The C++ compiler is used as linker so we must use $wl
+- # flag to pass the commands to the underlying system
+- # linker.
+- # Supported since Solaris 2.6 (maybe 2.5.1?)
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+- ;;
+- esac
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+-
+- # Archives containing C++ object files must be created using
+- # "CC -xar", where "CC" is the Sun C++ compiler. This is
+- # necessary to make sure instantiated templates are included
+- # in the archive.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+- ;;
+- gcx)
+- # Green Hills C++ Compiler
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+-
+- # The C++ compiler must be used to create the archive.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+- ;;
+- *)
+- # GNU C++ compiler with Solaris linker
+- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+- if $CC --version | grep -v '^2\.7' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+- else
+- # g++ 2.7 appears to require `-G' NOT `-shared' on this
+- # platform.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+- fi
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+- fi
+- ;;
+- esac
+- ;;
+- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- ;;
+- tandem*)
+- case $cc_basename in
+- NCC)
+- # NonStop-UX NCC 3.20
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- vxworks*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-esac
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-_LT_AC_TAGVAR(GCC, $1)="$GXX"
+-_LT_AC_TAGVAR(LD, $1)="$LD"
+-
+-## CAVEAT EMPTOR:
+-## There is no encapsulation within the following macros, do not change
+-## the running order or otherwise move them around unless you know exactly
+-## what you are doing...
+-AC_LIBTOOL_POSTDEP_PREDEP($1)
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-AC_LIBTOOL_DLOPEN_SELF($1)
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_POP
+-CC=$lt_save_CC
+-LDCXX=$LD
+-LD=$lt_save_LD
+-GCC=$lt_save_GCC
+-with_gnu_ldcxx=$with_gnu_ld
+-with_gnu_ld=$lt_save_with_gnu_ld
+-lt_cv_path_LDCXX=$lt_cv_path_LD
+-lt_cv_path_LD=$lt_save_path_LD
+-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+-])# AC_LIBTOOL_LANG_CXX_CONFIG
+-
+-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+-# ------------------------
+-# Figure out "hidden" library dependencies from verbose
+-# compiler output when linking a shared library.
+-# Parse the compiler output and extract the necessary
+-# objects, libraries and library flags.
+-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+-dnl we can't use the lt_simple_compile_test_code here,
+-dnl because it contains code intended for an executable,
+-dnl not a library. It's possible we should let each
+-dnl tag define a new lt_????_link_test_code variable,
+-dnl but it's only used here...
+-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+-int a;
+-void foo (void) { a = 0; }
+-EOF
+-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+-class Foo
+-{
+-public:
+- Foo (void) { a = 0; }
+-private:
+- int a;
+-};
+-EOF
+-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+- subroutine foo
+- implicit none
+- integer*4 a
+- a=0
+- return
+- end
+-EOF
+-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+-public class foo {
+- private int a;
+- public void bar (void) {
+- a = 0;
+- }
+-};
+-EOF
+-])
+-dnl Parse the compiler output and extract the necessary
+-dnl objects, libraries and library flags.
+-if AC_TRY_EVAL(ac_compile); then
+- # Parse the compiler output and extract the necessary
+- # objects, libraries and library flags.
+-
+- # Sentinel used to keep track of whether or not we are before
+- # the conftest object file.
+- pre_test_object_deps_done=no
+-
+- # The `*' in the case matches for architectures that use `case' in
+- # $output_verbose_cmd can trigger glob expansion during the loop
+- # eval without this substitution.
+- output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+-
+- for p in `eval $output_verbose_link_cmd`; do
+- case $p in
+-
+- -L* | -R* | -l*)
+- # Some compilers place space between "-{L,R}" and the path.
+- # Remove the space.
+- if test $p = "-L" \
+- || test $p = "-R"; then
+- prev=$p
+- continue
+- else
+- prev=
+- fi
+-
+- if test "$pre_test_object_deps_done" = no; then
+- case $p in
+- -L* | -R*)
+- # Internal compiler library paths should come after those
+- # provided the user. The postdeps already come after the
+- # user supplied libs so there is no need to process them.
+- if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+- else
+- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+- fi
+- ;;
+- # The "-l" case would never come before the object being
+- # linked, so don't bother handling this case.
+- esac
+- else
+- if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+- _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+- else
+- _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+- fi
+- fi
+- ;;
+-
+- *.$objext|*.$libext)
+- # This assumes that the test object file only shows up
+- # once in the compiler output.
+- if test "$p" = "conftest.$objext"; then
+- pre_test_object_deps_done=yes
+- continue
+- fi
+-
+- if test "$pre_test_object_deps_done" = no; then
+- if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+- _LT_AC_TAGVAR(predep_objects, $1)="$p"
+- else
+- _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+- fi
+- else
+- if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+- _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+- else
+- _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+- fi
+- fi
+- ;;
+-
+- *) ;; # Ignore the rest.
+-
+- esac
+- done
+-
+- # Clean up.
+- rm -f a.out a.exe
+-else
+- echo "libtool.m4: error: problem compiling $1 test program"
+-fi
+-
+-$rm -f confest.$objext
+-
+-case " $_LT_AC_TAGVAR(postdeps, $1) " in
+-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+-esac
+-])# AC_LIBTOOL_POSTDEP_PREDEP
+-
+-# AC_LIBTOOL_LANG_F77_CONFIG
+-# ------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+-[AC_REQUIRE([AC_PROG_F77])
+-AC_LANG_PUSH(Fortran 77)
+-
+-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+-_LT_AC_TAGVAR(always_export_symbols, $1)=no
+-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_direct, $1)=no
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+-_LT_AC_TAGVAR(module_cmds, $1)=
+-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_AC_TAGVAR(no_undefined_flag, $1)=
+-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Source file extension for f77 test sources.
+-ac_ext=f
+-
+-# Object file extension for compiled f77 test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code=" program t\n end\n"
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-CC=${F77-"f77"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+-
+-AC_MSG_CHECKING([if libtool supports shared libraries])
+-AC_MSG_RESULT([$can_build_shared])
+-
+-AC_MSG_CHECKING([whether to build shared libraries])
+-test "$can_build_shared" = "no" && enable_shared=no
+-
+-# On AIX, shared libraries and static libraries use the same namespace, and
+-# are all built from PIC.
+-case "$host_os" in
+-aix3*)
+- test "$enable_shared" = yes && enable_static=no
+- if test -n "$RANLIB"; then
+- archive_cmds="$archive_cmds~\$RANLIB \$lib"
+- postinstall_cmds='$RANLIB $lib'
+- fi
+- ;;
+-aix4*)
+- test "$enable_shared" = yes && enable_static=no
+- ;;
+-esac
+-AC_MSG_RESULT([$enable_shared])
+-
+-AC_MSG_CHECKING([whether to build static libraries])
+-# Make sure either enable_shared or enable_static is yes.
+-test "$enable_shared" = yes || enable_static=yes
+-AC_MSG_RESULT([$enable_static])
+-
+-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-_LT_AC_TAGVAR(GCC, $1)="$G77"
+-_LT_AC_TAGVAR(LD, $1)="$LD"
+-
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_POP
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_F77_CONFIG
+-
+-
+-# AC_LIBTOOL_LANG_GCJ_CONFIG
+-# --------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+-[AC_LANG_SAVE
+-
+-# Source file extension for Java test sources.
+-ac_ext=java
+-
+-# Object file extension for compiled Java test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="class foo {}\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-CC=${GCJ-"gcj"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-
+-# GCJ did not exist at the time GCC didn't implicitly link libc in.
+-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+-
+-## CAVEAT EMPTOR:
+-## There is no encapsulation within the following macros, do not change
+-## the running order or otherwise move them around unless you know exactly
+-## what you are doing...
+-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-AC_LIBTOOL_DLOPEN_SELF($1)
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_RESTORE
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_GCJ_CONFIG
+-
+-
+-# AC_LIBTOOL_LANG_RC_CONFIG
+-# --------------------------
+-# Ensure that the configuration vars for the Windows resource compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+-[AC_LANG_SAVE
+-
+-# Source file extension for RC test sources.
+-ac_ext=rc
+-
+-# Object file extension for compiled RC test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code="$lt_simple_compile_test_code"
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-CC=${RC-"windres"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_RESTORE
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_RC_CONFIG
+-
+-
+-# AC_LIBTOOL_CONFIG([TAGNAME])
+-# ----------------------------
+-# If TAGNAME is not passed, then create an initial libtool script
+-# with a default configuration from the untagged config vars. Otherwise
+-# add code to config.status for appending the configuration named by
+-# TAGNAME from the matching tagged config vars.
+-AC_DEFUN([AC_LIBTOOL_CONFIG],
+-[# The else clause should only fire when bootstrapping the
+-# libtool distribution, otherwise you forgot to ship ltmain.sh
+-# with your package, and you will get complaints that there are
+-# no rules to generate ltmain.sh.
+-if test -f "$ltmain"; then
+- # See if we are running on zsh, and set the options which allow our commands through
+- # without removal of \ escapes.
+- if test -n "${ZSH_VERSION+set}" ; then
+- setopt NO_GLOB_SUBST
+- fi
+- # Now quote all the things that may contain metacharacters while being
+- # careful not to overquote the AC_SUBSTed values. We take copies of the
+- # variables and quote the copies for generation of the libtool script.
+- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+- deplibs_check_method reload_flag reload_cmds need_locks \
+- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+- lt_cv_sys_global_symbol_to_c_name_address \
+- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+- old_postinstall_cmds old_postuninstall_cmds \
+- _LT_AC_TAGVAR(compiler, $1) \
+- _LT_AC_TAGVAR(CC, $1) \
+- _LT_AC_TAGVAR(LD, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+- _LT_AC_TAGVAR(old_archive_cmds, $1) \
+- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+- _LT_AC_TAGVAR(predep_objects, $1) \
+- _LT_AC_TAGVAR(postdep_objects, $1) \
+- _LT_AC_TAGVAR(predeps, $1) \
+- _LT_AC_TAGVAR(postdeps, $1) \
+- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+- _LT_AC_TAGVAR(archive_cmds, $1) \
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+- _LT_AC_TAGVAR(postinstall_cmds, $1) \
+- _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+- _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+- _LT_AC_TAGVAR(no_undefined_flag, $1) \
+- _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+- _LT_AC_TAGVAR(hardcode_automatic, $1) \
+- _LT_AC_TAGVAR(module_cmds, $1) \
+- _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+- _LT_AC_TAGVAR(exclude_expsyms, $1) \
+- _LT_AC_TAGVAR(include_expsyms, $1); do
+-
+- case $var in
+- _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+- _LT_AC_TAGVAR(archive_cmds, $1) | \
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+- _LT_AC_TAGVAR(module_cmds, $1) | \
+- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+- extract_expsyms_cmds | reload_cmds | finish_cmds | \
+- postinstall_cmds | postuninstall_cmds | \
+- old_postinstall_cmds | old_postuninstall_cmds | \
+- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+- # Double-quote double-evaled strings.
+- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+- ;;
+- *)
+- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+- ;;
+- esac
+- done
+-
+- case $lt_echo in
+- *'\[$]0 --fallback-echo"')
+- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+- ;;
+- esac
+-
+-ifelse([$1], [],
+- [cfgfile="${ofile}T"
+- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+- $rm -f "$cfgfile"
+- AC_MSG_NOTICE([creating $ofile])],
+- [cfgfile="$ofile"])
+-
+- cat <<__EOF__ >> "$cfgfile"
+-ifelse([$1], [],
+-[#! $SHELL
+-
+-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+-#
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+-# Free Software Foundation, Inc.
+-#
+-# This file is part of GNU Libtool:
+-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-#
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful, but
+-# WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-# General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-# As a special exception to the GNU General Public License, if you
+-# distribute this file as part of a program that contains a
+-# configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# A sed program that does not truncate output.
+-SED=$lt_SED
+-
+-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+-Xsed="$SED -e s/^X//"
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-# The names of the tagged configurations supported by this script.
+-available_tags=
+-
+-# ### BEGIN LIBTOOL CONFIG],
+-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+-
+-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+-
+-# Shell to use when invoking shell scripts.
+-SHELL=$lt_SHELL
+-
+-# Whether or not to build shared libraries.
+-build_libtool_libs=$enable_shared
+-
+-# Whether or not to build static libraries.
+-build_old_libs=$enable_static
+-
+-# Whether or not to add -lc for building shared libraries.
+-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+-
+-# Whether or not to disallow shared libs when runtime libs are static
+-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+-
+-# Whether or not to optimize for fast installation.
+-fast_install=$enable_fast_install
+-
+-# The host system.
+-host_alias=$host_alias
+-host=$host
+-
+-# An echo program that does not interpret backslashes.
+-echo=$lt_echo
+-
+-# The archiver.
+-AR=$lt_AR
+-AR_FLAGS=$lt_AR_FLAGS
+-
+-# A C compiler.
+-LTCC=$lt_LTCC
+-
+-# A language-specific compiler.
+-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+-
+-# Is the compiler the GNU C compiler?
+-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+-
+-# An ERE matcher.
+-EGREP=$lt_EGREP
+-
+-# The linker used to build libraries.
+-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+-
+-# Whether we need hard or soft links.
+-LN_S=$lt_LN_S
+-
+-# A BSD-compatible nm program.
+-NM=$lt_NM
+-
+-# A symbol stripping program
+-STRIP=$STRIP
+-
+-# Used to examine libraries when file_magic_cmd begins "file"
+-MAGIC_CMD=$MAGIC_CMD
+-
+-# Used on cygwin: DLL creation program.
+-DLLTOOL="$DLLTOOL"
+-
+-# Used on cygwin: object dumper.
+-OBJDUMP="$OBJDUMP"
+-
+-# Used on cygwin: assembler.
+-AS="$AS"
+-
+-# The name of the directory that contains temporary libtool files.
+-objdir=$objdir
+-
+-# How to create reloadable object files.
+-reload_flag=$lt_reload_flag
+-reload_cmds=$lt_reload_cmds
+-
+-# How to pass a linker flag through the compiler.
+-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+-
+-# Object file suffix (normally "o").
+-objext="$ac_objext"
+-
+-# Old archive suffix (normally "a").
+-libext="$libext"
+-
+-# Shared library suffix (normally ".so").
+-shrext='$shrext'
+-
+-# Executable file suffix (normally "").
+-exeext="$exeext"
+-
+-# Additional compiler flags for building library objects.
+-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+-pic_mode=$pic_mode
+-
+-# What is the maximum length of a command?
+-max_cmd_len=$lt_cv_sys_max_cmd_len
+-
+-# Does compiler simultaneously support -c and -o options?
+-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+-
+-# Must we lock files when doing compilation ?
+-need_locks=$lt_need_locks
+-
+-# Do we need the lib prefix for modules?
+-need_lib_prefix=$need_lib_prefix
+-
+-# Do we need a version for libraries?
+-need_version=$need_version
+-
+-# Whether dlopen is supported.
+-dlopen_support=$enable_dlopen
+-
+-# Whether dlopen of programs is supported.
+-dlopen_self=$enable_dlopen_self
+-
+-# Whether dlopen of statically linked programs is supported.
+-dlopen_self_static=$enable_dlopen_self_static
+-
+-# Compiler flag to prevent dynamic linking.
+-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+-
+-# Compiler flag to turn off builtin functions.
+-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+-
+-# Compiler flag to allow reflexive dlopens.
+-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+-
+-# Compiler flag to generate shared objects directly from archives.
+-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+-
+-# Compiler flag to generate thread-safe objects.
+-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+-
+-# Library versioning type.
+-version_type=$version_type
+-
+-# Format of library name prefix.
+-libname_spec=$lt_libname_spec
+-
+-# List of archive names. First name is the real one, the rest are links.
+-# The last name is the one that the linker finds with -lNAME.
+-library_names_spec=$lt_library_names_spec
+-
+-# The coded name of the library, if different from the real name.
+-soname_spec=$lt_soname_spec
+-
+-# Commands used to build and install an old-style archive.
+-RANLIB=$lt_RANLIB
+-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+-old_postinstall_cmds=$lt_old_postinstall_cmds
+-old_postuninstall_cmds=$lt_old_postuninstall_cmds
+-
+-# Create an old-style archive from a shared archive.
+-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+-
+-# Create a temporary old-style archive to link instead of a shared archive.
+-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+-
+-# Commands used to build and install a shared archive.
+-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+-postinstall_cmds=$lt_postinstall_cmds
+-postuninstall_cmds=$lt_postuninstall_cmds
+-
+-# Commands used to build a loadable module (assumed same as above if empty)
+-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+-
+-# Commands to strip libraries.
+-old_striplib=$lt_old_striplib
+-striplib=$lt_striplib
+-
+-# Dependencies to place before the objects being linked to create a
+-# shared library.
+-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+-
+-# Dependencies to place after the objects being linked to create a
+-# shared library.
+-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+-
+-# Dependencies to place before the objects being linked to create a
+-# shared library.
+-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+-
+-# Dependencies to place after the objects being linked to create a
+-# shared library.
+-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+-
+-# The library search path used internally by the compiler when linking
+-# a shared library.
+-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+-
+-# Method to check whether dependent libraries are shared objects.
+-deplibs_check_method=$lt_deplibs_check_method
+-
+-# Command to use when deplibs_check_method == file_magic.
+-file_magic_cmd=$lt_file_magic_cmd
+-
+-# Flag that allows shared libraries with undefined symbols to be built.
+-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+-
+-# Flag that forces no undefined symbols.
+-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+-
+-# Commands used to finish a libtool library installation in a directory.
+-finish_cmds=$lt_finish_cmds
+-
+-# Same as above, but a single script fragment to be evaled but not shown.
+-finish_eval=$lt_finish_eval
+-
+-# Take the output of nm and produce a listing of raw symbols and C names.
+-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+-
+-# Transform the output of nm in a proper C declaration
+-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+-
+-# Transform the output of nm in a C name address pair
+-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+-
+-# This is the shared library runtime path variable.
+-runpath_var=$runpath_var
+-
+-# This is the shared library path variable.
+-shlibpath_var=$shlibpath_var
+-
+-# Is shlibpath searched before the hard-coded library search path?
+-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+-
+-# How to hardcode a shared library path into an executable.
+-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+-
+-# Whether we should hardcode library paths into libraries.
+-hardcode_into_libs=$hardcode_into_libs
+-
+-# Flag to hardcode \$libdir into a binary during linking.
+-# This must work even if \$libdir does not exist.
+-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+-
+-# If ld is used when linking, flag to hardcode \$libdir into
+-# a binary during linking. This must work even if \$libdir does
+-# not exist.
+-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+-
+-# Whether we need a single -rpath flag with a separated argument.
+-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+-
+-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+-
+-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+-
+-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+-# the resulting binary.
+-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+-
+-# Set to yes if building a shared library automatically hardcodes DIR into the library
+-# and all subsequent libraries and executables linked against it.
+-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+-
+-# Variables whose values should be saved in libtool wrapper scripts and
+-# restored at relink time.
+-variables_saved_for_relink="$variables_saved_for_relink"
+-
+-# Whether libtool must link a program against all its dependency libraries.
+-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+-
+-# Compile-time system search path for libraries
+-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+-
+-# Run-time system search path for libraries
+-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+-
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+-
+-# Set to yes if exported symbols are required.
+-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+-
+-# The commands to list exported symbols.
+-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+-
+-# The commands to extract the exported symbol list from a shared archive.
+-extract_expsyms_cmds=$lt_extract_expsyms_cmds
+-
+-# Symbols that should not be listed in the preloaded symbols.
+-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+-
+-# Symbols that must always be exported.
+-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+-
+-ifelse([$1],[],
+-[# ### END LIBTOOL CONFIG],
+-[# ### END LIBTOOL TAG CONFIG: $tagname])
+-
+-__EOF__
+-
+-ifelse([$1],[], [
+- case $host_os in
+- aix3*)
+- cat <<\EOF >> "$cfgfile"
+-
+-# AIX sometimes has problems with the GCC collect2 program. For some
+-# reason, if we set the COLLECT_NAMES environment variable, the problems
+-# vanish in a puff of smoke.
+-if test "X${COLLECT_NAMES+set}" != Xset; then
+- COLLECT_NAMES=
+- export COLLECT_NAMES
+-fi
+-EOF
+- ;;
+- esac
+-
+- # We use sed instead of cat because bash on DJGPP gets confused if
+- # if finds mixed CR/LF and LF-only lines. Since sed operates in
+- # text mode, it properly converts lines to CR/LF. This bash problem
+- # is reportedly fixed, but why not run on old versions too?
+- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" || \
+- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+- chmod +x "$ofile"
+-])
+-else
+- # If there is no Makefile yet, we rely on a make rule to execute
+- # `config.status --recheck' to rerun these tests and create the
+- # libtool script then.
+- test -f Makefile && make "$ltmain"
+-fi
+-])# AC_LIBTOOL_CONFIG
+-
+-
+-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+-# -------------------------------------------
+-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+-
+-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+-
+-if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+-
+- AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+- lt_cv_prog_compiler_rtti_exceptions,
+- [-fno-rtti -fno-exceptions], [],
+- [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+-fi
+-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+-
+-
+-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+-# ---------------------------------
+-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+-[AC_REQUIRE([AC_CANONICAL_HOST])
+-AC_REQUIRE([AC_PROG_NM])
+-AC_REQUIRE([AC_OBJEXT])
+-# Check for command to grab the raw symbol name followed by C symbol from nm.
+-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+-[
+-# These are sane defaults that work on at least a few old systems.
+-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+-
+-# Character class describing NM global symbol codes.
+-symcode='[[BCDEGRST]]'
+-
+-# Regexp to match symbols that can be accessed directly from C.
+-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+-
+-# Transform the above into a raw symbol and a C symbol.
+-symxfrm='\1 \2\3 \3'
+-
+-# Transform an extracted symbol line into a proper C declaration
+-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+-
+-# Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+-
+-# Define system-specific variables.
+-case $host_os in
+-aix*)
+- symcode='[[BCDT]]'
+- ;;
+-cygwin* | mingw* | pw32*)
+- symcode='[[ABCDGISTW]]'
+- ;;
+-hpux*) # Its linker distinguishes data from code symbols
+- if test "$host_cpu" = ia64; then
+- symcode='[[ABCDEGRST]]'
+- fi
+- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+- ;;
+-irix* | nonstopux*)
+- symcode='[[BCDEGRST]]'
+- ;;
+-osf*)
+- symcode='[[BCDEGQRST]]'
+- ;;
+-solaris* | sysv5*)
+- symcode='[[BDT]]'
+- ;;
+-sysv4)
+- symcode='[[DFNSTU]]'
+- ;;
+-esac
+-
+-# Handle CRLF in mingw tool chain
+-opt_cr=
+-case $build_os in
+-mingw*)
+- opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+- ;;
+-esac
+-
+-# If we're using GNU nm, then use its standard symbol codes.
+-case `$NM -V 2>&1` in
+-*GNU* | *'with BFD'*)
+- symcode='[[ABCDGISTW]]' ;;
+-esac
+-
+-# Try without a prefix undercore, then with it.
+-for ac_symprfx in "" "_"; do
+-
+- # Write the raw and C identifiers.
+- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+-
+- # Check to see that the pipe works correctly.
+- pipe_works=no
+-
+- rm -f conftest*
+- cat > conftest.$ac_ext <<EOF
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-char nm_test_var;
+-void nm_test_func(){}
+-#ifdef __cplusplus
+-}
+-#endif
+-int main(){nm_test_var='a';nm_test_func();return(0);}
+-EOF
+-
+- if AC_TRY_EVAL(ac_compile); then
+- # Now try to grab the symbols.
+- nlist=conftest.nm
+- if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+- # Try sorting and uniquifying the output.
+- if sort "$nlist" | uniq > "$nlist"T; then
+- mv -f "$nlist"T "$nlist"
+- else
+- rm -f "$nlist"T
+- fi
+-
+- # Make sure that we snagged all the symbols we need.
+- if grep ' nm_test_var$' "$nlist" >/dev/null; then
+- if grep ' nm_test_func$' "$nlist" >/dev/null; then
+- cat <<EOF > conftest.$ac_ext
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-EOF
+- # Now generate the symbol file.
+- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+-
+- cat <<EOF >> conftest.$ac_ext
+-#if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
+-#else
+-# define lt_ptr_t char *
+-# define const
+-#endif
+-
+-/* The mapping between symbol names and symbols. */
+-const struct {
+- const char *name;
+- lt_ptr_t address;
+-}
+-lt_preloaded_symbols[[]] =
+-{
+-EOF
+- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+- cat <<\EOF >> conftest.$ac_ext
+- {0, (lt_ptr_t) 0}
+-};
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-EOF
+- # Now try linking the two files.
+- mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
+- LIBS="conftstm.$ac_objext"
+- CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+- pipe_works=yes
+- fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
+- else
+- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+- fi
+- else
+- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+- fi
+- else
+- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+- fi
+- else
+- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+- cat conftest.$ac_ext >&5
+- fi
+- rm -f conftest* conftst*
+-
+- # Do not use the global_symbol_pipe unless it works.
+- if test "$pipe_works" = yes; then
+- break
+- else
+- lt_cv_sys_global_symbol_pipe=
+- fi
+-done
+-])
+-if test -z "$lt_cv_sys_global_symbol_pipe"; then
+- lt_cv_sys_global_symbol_to_cdecl=
+-fi
+-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+- AC_MSG_RESULT(failed)
+-else
+- AC_MSG_RESULT(ok)
+-fi
+-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+-
+-
+-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+-# ---------------------------------------
+-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+-
+-AC_MSG_CHECKING([for $compiler option to produce PIC])
+- ifelse([$1],[CXX],[
+- # C++ specific cases for pic, static, wl, etc.
+- if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-
+- case $host_os in
+- aix*)
+- # All AIX code is PIC.
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- fi
+- ;;
+- amigaos*)
+- # FIXME: we need at least 68020 code to build shared libraries, but
+- # adding the `-m68020' flag to GCC prevents building anything better,
+- # like `-m68040'.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+- ;;
+- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+- # PIC is the default for these OSes.
+- ;;
+- mingw* | os2* | pw32*)
+- # This hack is so that the source file can tell whether it is being
+- # built for inclusion in a dll (and should export symbols for example).
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+- ;;
+- darwin* | rhapsody*)
+- # PIC is the default on this platform
+- # Common symbols not allowed in MH_DYLIB files
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+- ;;
+- *djgpp*)
+- # DJGPP does not support shared libraries at all
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- ;;
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+- fi
+- ;;
+- hpux*)
+- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+- # not for PA HP-UX.
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- else
+- case $host_os in
+- aix4* | aix5*)
+- # All AIX code is PIC.
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- else
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+- fi
+- ;;
+- chorus*)
+- case $cc_basename in
+- cxch68)
+- # Green Hills C++ Compiler
+- # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+- ;;
+- esac
+- ;;
+- dgux*)
+- case $cc_basename in
+- ec++)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- ;;
+- ghcx)
+- # Green Hills C++ Compiler
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- freebsd* | kfreebsd*-gnu)
+- # FreeBSD uses GNU C++
+- ;;
+- hpux9* | hpux10* | hpux11*)
+- case $cc_basename in
+- CC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+- if test "$host_cpu" != ia64; then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+- fi
+- ;;
+- aCC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- # +Z the default
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+- ;;
+- esac
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- irix5* | irix6* | nonstopux*)
+- case $cc_basename in
+- CC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- # CC pic flag -KPIC is the default.
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- linux*)
+- case $cc_basename in
+- KCC)
+- # KAI C++ Compiler
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- icpc)
+- # Intel C++
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+- ;;
+- cxx)
+- # Compaq C++
+- # Make sure the PIC flag is empty. It appears that all Alpha
+- # Linux and Compaq Tru64 Unix objects are PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- lynxos*)
+- ;;
+- m88k*)
+- ;;
+- mvs*)
+- case $cc_basename in
+- cxx)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- netbsd*)
+- ;;
+- osf3* | osf4* | osf5*)
+- case $cc_basename in
+- KCC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+- ;;
+- RCC)
+- # Rational C++ 2.4.1
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- ;;
+- cxx)
+- # Digital/Compaq C++
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # Make sure the PIC flag is empty. It appears that all Alpha
+- # Linux and Compaq Tru64 Unix objects are PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- psos*)
+- ;;
+- sco*)
+- case $cc_basename in
+- CC)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- solaris*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.2, 5.x and Centerline C++
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+- ;;
+- gcx)
+- # Green Hills C++ Compiler
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- sunos4*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.x
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+- lcc)
+- # Lucid
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- tandem*)
+- case $cc_basename in
+- NCC)
+- # NonStop-UX NCC 3.20
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- unixware*)
+- ;;
+- vxworks*)
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+- ;;
+- esac
+- fi
+-],
+-[
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-
+- case $host_os in
+- aix*)
+- # All AIX code is PIC.
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- fi
+- ;;
+-
+- amigaos*)
+- # FIXME: we need at least 68020 code to build shared libraries, but
+- # adding the `-m68020' flag to GCC prevents building anything better,
+- # like `-m68040'.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+- ;;
+-
+- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+- # PIC is the default for these OSes.
+- ;;
+-
+- mingw* | pw32* | os2*)
+- # This hack is so that the source file can tell whether it is being
+- # built for inclusion in a dll (and should export symbols for example).
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+- ;;
+-
+- darwin* | rhapsody*)
+- # PIC is the default on this platform
+- # Common symbols not allowed in MH_DYLIB files
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+- ;;
+-
+- msdosdjgpp*)
+- # Just because we use GCC doesn't mean we suddenly get shared libraries
+- # on systems that don't support them.
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+- enable_shared=no
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+- fi
+- ;;
+-
+- hpux*)
+- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+- # not for PA HP-UX.
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- # +Z the default
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- ;;
+-
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- else
+- # PORTME Check for flag to pass linker flags through the system compiler.
+- case $host_os in
+- aix*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- else
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+- fi
+- ;;
+-
+- mingw* | pw32* | os2*)
+- # This hack is so that the source file can tell whether it is being
+- # built for inclusion in a dll (and should export symbols for example).
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+- ;;
+-
+- hpux9* | hpux10* | hpux11*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+- # not for PA HP-UX.
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- # +Z the default
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+- ;;
+- esac
+- # Is there a better lt_prog_compiler_static that works with the bundled CC?
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+- ;;
+-
+- irix5* | irix6* | nonstopux*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # PIC (with -KPIC) is the default.
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+-
+- newsos6)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- linux*)
+- case $CC in
+- icc* | ecc*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+- ;;
+- ccc*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # All Alpha code is PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+- esac
+- ;;
+-
+- osf3* | osf4* | osf5*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # All OSF/1 code is PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+-
+- sco3.2v5*)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+- ;;
+-
+- solaris*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- sunos4*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec ;then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- fi
+- ;;
+-
+- uts4*)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+- ;;
+- esac
+- fi
+-])
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+-
+-#
+-# Check to make sure the PIC flag actually works.
+-#
+-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+- _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+- [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+- [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+- "" | " "*) ;;
+- *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+- esac],
+- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+-fi
+-case "$host_os" in
+- # For platforms which do not support PIC, -DPIC is meaningless:
+- *djgpp*)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+- ;;
+-esac
+-])
+-
+-
+-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+-# ------------------------------------
+-# See if the linker supports building shared libraries.
+-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+-ifelse([$1],[CXX],[
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- case $host_os in
+- aix4* | aix5*)
+- # If we're using GNU nm, then we don't want the "-C" option.
+- # -C means demangle to AIX nm, but means don't demangle with GNU nm
+- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- else
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- fi
+- ;;
+- pw32*)
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+- ;;
+- cygwin* | mingw*)
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
+- *)
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
+- esac
+-],[
+- runpath_var=
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+- _LT_AC_TAGVAR(archive_cmds, $1)=
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+- _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+- _LT_AC_TAGVAR(module_cmds, $1)=
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- # include_expsyms should be a list of space-separated symbols to be *always*
+- # included in the symbol list
+- _LT_AC_TAGVAR(include_expsyms, $1)=
+- # exclude_expsyms can be an extended regexp of symbols to exclude
+- # it will be wrapped by ` (' and `)$', so one must not match beginning or
+- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+- # as well as any symbol that contains `d'.
+- _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+- # platforms (ab)use it in PIC code, but their linkers get confused if
+- # the symbol is explicitly referenced. Since portable code cannot
+- # rely on this symbol name, it's probably fine to never include it in
+- # preloaded symbol tables.
+- extract_expsyms_cmds=
+-
+- case $host_os in
+- cygwin* | mingw* | pw32*)
+- # FIXME: the MSVC++ port hasn't been tested in a loooong time
+- # When not using gcc, we currently assume that we are using
+- # Microsoft Visual C++.
+- if test "$GCC" != yes; then
+- with_gnu_ld=no
+- fi
+- ;;
+- openbsd*)
+- with_gnu_ld=no
+- ;;
+- esac
+-
+- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+- if test "$with_gnu_ld" = yes; then
+- # If archive_cmds runs LD, not CC, wlarc should be empty
+- wlarc='${wl}'
+-
+- # See if GNU ld supports shared libraries.
+- case $host_os in
+- aix3* | aix4* | aix5*)
+- # On AIX/PPC, the GNU linker is very broken
+- if test "$host_cpu" != ia64; then
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- cat <<EOF 1>&2
+-
+-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+-*** to be unable to reliably create shared libraries on AIX.
+-*** Therefore, libtool is disabling shared libraries support. If you
+-*** really care for shared libraries, you may want to modify your PATH
+-*** so that a non-GNU linker is found, and then restart.
+-
+-EOF
+- fi
+- ;;
+-
+- amigaos*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+-
+- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+- # that the semantics of dynamic libraries on AmigaOS, at least up
+- # to version 4, is to share data among multiple programs linked
+- # with the same dynamic library. Since this doesn't match the
+- # behavior of shared libraries on other platforms, we can't use
+- # them.
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-
+- beos*)
+- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+- # support --undefined. This deserves some investigation. FIXME
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- cygwin* | mingw* | pw32*)
+- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+- # as there is no search path for DLLs.
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+-
+- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- # If the export-symbols file already is a .def file (1st line
+- # is EXPORTS), use it as is; otherwise, prepend...
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- cp $export_symbols $output_objdir/$soname.def;
+- else
+- echo EXPORTS > $output_objdir/$soname.def;
+- cat $export_symbols >> $output_objdir/$soname.def;
+- fi~
+- $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- else
+- ld_shlibs=no
+- fi
+- ;;
+-
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+- wlarc=
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- fi
+- ;;
+-
+- solaris* | sysv5*)
+- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- cat <<EOF 1>&2
+-
+-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+-*** create shared libraries on Solaris systems. Therefore, libtool
+-*** is disabling shared libraries support. We urge you to upgrade GNU
+-*** binutils to release 2.9.1 or newer. Another option is to modify
+-*** your PATH or compiler configuration so that the native linker is
+-*** used, and then restart.
+-
+-EOF
+- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- sunos4*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+- wlarc=
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- *)
+- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+-
+- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+- runpath_var=LD_RUN_PATH
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+- # ancient GNU ld didn't support --whole-archive et. al.
+- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+- else
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+- fi
+- fi
+- else
+- # PORTME fill in a description of your system's linker (not GNU ld)
+- case $host_os in
+- aix3*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+- # Note: this linker hardcodes the directories in LIBPATH if there
+- # are no directories specified by -L.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- if test "$GCC" = yes && test -z "$link_static_flag"; then
+- # Neither direct hardcoding nor static linking is supported with a
+- # broken collect2.
+- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+- fi
+- ;;
+-
+- aix4* | aix5*)
+- if test "$host_cpu" = ia64; then
+- # On IA64, the linker does run time linking by default, so we don't
+- # have to do anything special.
+- aix_use_runtimelinking=no
+- exp_sym_flag='-Bexport'
+- no_entry_flag=""
+- else
+- # If we're using GNU nm, then we don't want the "-C" option.
+- # -C means demangle to AIX nm, but means don't demangle with GNU nm
+- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- else
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- fi
+-
+- # KDE requires run time linking. Make it the default.
+- aix_use_runtimelinking=yes
+- exp_sym_flag='-bexport'
+- no_entry_flag='-bnoentry'
+- fi
+-
+- # When large executables or shared objects are built, AIX ld can
+- # have problems creating the table of contents. If linking a library
+- # or program results in "error TOC overflow" add -mminimal-toc to
+- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+-
+- _LT_AC_TAGVAR(archive_cmds, $1)=''
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+-
+- if test "$GCC" = yes; then
+- case $host_os in aix4.[012]|aix4.[012].*)
+- # We only want to do this on AIX 4.2 and lower, the check
+- # below for broken collect2 doesn't work under 4.3+
+- collect2name=`${CC} -print-prog-name=collect2`
+- if test -f "$collect2name" && \
+- strings "$collect2name" | grep resolve_lib_name >/dev/null
+- then
+- # We have reworked collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- else
+- # We have old collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+- # It fails to find uninstalled libraries when the uninstalled
+- # path is not listed in the libpath. Setting hardcode_minus_L
+- # to unsupported forces relinking
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+- fi
+- esac
+- shared_flag='-shared'
+- else
+- # not using gcc
+- if test "$host_cpu" = ia64; then
+- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+- # chokes on -Wl,-G. The following line is correct:
+- shared_flag='-G'
+- else
+- if test "$aix_use_runtimelinking" = yes; then
+- shared_flag='-qmkshrobj ${wl}-G'
+- else
+- shared_flag='-qmkshrobj'
+- fi
+- fi
+- fi
+-
+- # Let the compiler handle the export list.
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- if test "$aix_use_runtimelinking" = yes; then
+- # Warning - without using the other runtime loading flags (-brtl),
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+- else
+- if test "$host_cpu" = ia64; then
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+- else
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+- # Warning - without using the other run time loading flags,
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+- # -bexpall does not export symbols beginning with underscore (_)
+- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+- # Exported symbols can be pulled into shared objects from archives
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+- # This is similar to how AIX traditionally builds it's shared libraries.
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+- fi
+- fi
+- ;;
+-
+- amigaos*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- # see comment about different semantics on the GNU ld section
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-
+- bsdi4*)
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+- ;;
+-
+- cygwin* | mingw* | pw32*)
+- # When not using gcc, we currently assume that we are using
+- # Microsoft Visual C++.
+- # hardcode_libdir_flag_spec is actually meaningless, as there is
+- # no search path for DLLs.
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+- # FIXME: Should let the user specify the lib program.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+- ;;
+-
+- darwin* | rhapsody*)
+- if test "$GXX" = yes ; then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+- ;;
+- *) # Darwin 1.3 on
+- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- else
+- case ${MACOSX_DEPLOYMENT_TARGET} in
+- 10.[012])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- ;;
+- 10.*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+- ;;
+- esac
+- fi
+- ;;
+- esac
+- lt_int_apple_cc_single_mod=no
+- output_verbose_link_cmd='echo'
+- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+- lt_int_apple_cc_single_mod=yes
+- fi
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+- fi
+- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- else
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- fi
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- dgux*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- freebsd1*)
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-
+- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+- # support. Future versions do this automatically, but an explicit c++rt0.o
+- # does not break anything, and helps significantly (at the cost of a little
+- # extra space).
+- freebsd2.2*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+- freebsd2*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+- freebsd* | kfreebsd*-gnu)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- hpux9*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+-
+- # hardcode_minus_L: Not really in the search PATH,
+- # but as the default location of the library.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- ;;
+-
+- hpux10* | hpux11*)
+- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+- ;;
+- esac
+- else
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+- ;;
+- esac
+- fi
+- if test "$with_gnu_ld" = no; then
+- case "$host_cpu" in
+- hppa*64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+- ia64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+-
+- # hardcode_minus_L: Not really in the search PATH,
+- # but as the default location of the library.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- ;;
+- *)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-
+- # hardcode_minus_L: Not really in the search PATH,
+- # but as the default location of the library.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- ;;
+- esac
+- fi
+- ;;
+-
+- irix5* | irix6* | nonstopux*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- ;;
+-
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- newsos6)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- openbsd*)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- else
+- case $host_os in
+- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- ;;
+- esac
+- fi
+- ;;
+-
+- os2*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+- _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+- ;;
+-
+- osf3*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+- else
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+-
+- osf4* | osf5*) # as osf3* with the addition of -msym flag
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- else
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+-
+- # Both c and cxx compiler support -rpath directly
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+-
+- sco3.2v5*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+- runpath_var=LD_RUN_PATH
+- hardcode_runpath_var=yes
+- ;;
+-
+- solaris*)
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- case $host_os in
+- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+- esac
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- ;;
+-
+- sunos4*)
+- if test "x$host_vendor" = xsequent; then
+- # Use $CC to link under sequent, because it throws in some extra .o
+- # files that make .init and .fini sections work.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- sysv4)
+- case $host_vendor in
+- sni)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+- ;;
+- siemens)
+- ## LD is ld it makes a PLAMLIB
+- ## CC just makes a GrossModule.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- ;;
+- motorola)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+- ;;
+- esac
+- runpath_var='LD_RUN_PATH'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- sysv4.3*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- runpath_var=LD_RUN_PATH
+- hardcode_runpath_var=yes
+- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+- fi
+- ;;
+-
+- sysv4.2uw2*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- hardcode_runpath_var=yes
+- runpath_var=LD_RUN_PATH
+- ;;
+-
+- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- fi
+- runpath_var='LD_RUN_PATH'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- sysv5*)
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+- # $CC -shared without GNU ld will not create a library from C++
+- # object files and a static libstdc++, better avoid it by now
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- runpath_var='LD_RUN_PATH'
+- ;;
+-
+- uts4*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- *)
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- fi
+-])
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+-if test "$GCC" = yes; then
+- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+-fi
+-
+-#
+-# Do we need to explicitly link libc?
+-#
+-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+-x|xyes)
+- # Assume -lc should be added
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+-
+- if test "$enable_shared" = yes && test "$GCC" = yes; then
+- case $_LT_AC_TAGVAR(archive_cmds, $1) in
+- *'~'*)
+- # FIXME: we may have to deal with multi-command sequences.
+- ;;
+- '$CC '*)
+- # Test whether the compiler implicitly links with -lc since on some
+- # systems, -lgcc has to come before -lc. If gcc already passes -lc
+- # to ld, don't add -lc before -lgcc.
+- AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+- $rm conftest*
+- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+-
+- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+- soname=conftest
+- lib=conftest
+- libobjs=conftest.$ac_objext
+- deplibs=
+- wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+- compiler_flags=-v
+- linker_flags=-v
+- verstring=
+- output_objdir=.
+- libname=conftest
+- lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+- if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+- then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- else
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+- fi
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+- else
+- cat conftest.err 1>&5
+- fi
+- $rm conftest*
+- AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+- ;;
+- esac
+- fi
+- ;;
+-esac
+-])# AC_LIBTOOL_PROG_LD_SHLIBS
+-
+-
+-# _LT_AC_FILE_LTDLL_C
+-# -------------------
+-# Be careful that the start marker always follows a newline.
+-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+-# /* ltdll.c starts here */
+-# #define WIN32_LEAN_AND_MEAN
+-# #include <windows.h>
+-# #undef WIN32_LEAN_AND_MEAN
+-# #include <stdio.h>
+-#
+-# #ifndef __CYGWIN__
+-# # ifdef __CYGWIN32__
+-# # define __CYGWIN__ __CYGWIN32__
+-# # endif
+-# #endif
+-#
+-# #ifdef __cplusplus
+-# extern "C" {
+-# #endif
+-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+-# #ifdef __cplusplus
+-# }
+-# #endif
+-#
+-# #ifdef __CYGWIN__
+-# #include <cygwin/cygwin_dll.h>
+-# DECLARE_CYGWIN_DLL( DllMain );
+-# #endif
+-# HINSTANCE __hDllInstance_base;
+-#
+-# BOOL APIENTRY
+-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+-# {
+-# __hDllInstance_base = hInst;
+-# return TRUE;
+-# }
+-# /* ltdll.c ends here */
+-])# _LT_AC_FILE_LTDLL_C
+-
+-
+-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+-# ---------------------------------
+-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+-
+-
+-# old names
+-AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+-AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+-AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+-AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+-AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+-
+-# This is just to silence aclocal about the macro not being used
+-ifelse([AC_DISABLE_FAST_INSTALL])
+-
+-AC_DEFUN([LT_AC_PROG_GCJ],
+-[AC_CHECK_TOOL(GCJ, gcj, no)
+- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+- AC_SUBST(GCJFLAGS)
+-])
+-
+-AC_DEFUN([LT_AC_PROG_RC],
+-[AC_CHECK_TOOL(RC, windres, no)
+-])
+-
+-############################################################
+-# NOTE: This macro has been submitted for inclusion into #
+-# GNU Autoconf as AC_PROG_SED. When it is available in #
+-# a released version of Autoconf we should remove this #
+-# macro and use it instead. #
+-############################################################
+-# LT_AC_PROG_SED
+-# --------------
+-# Check for a fully-functional sed program, that truncates
+-# as few characters as possible. Prefer GNU sed if found.
+-AC_DEFUN([LT_AC_PROG_SED],
+-[AC_MSG_CHECKING([for a sed that does not truncate output])
+-AC_CACHE_VAL(lt_cv_path_SED,
+-[# Loop through the user's path and test for sed and gsed.
+-# Then use that list of sed's as ones to test for truncation.
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for lt_ac_prog in sed gsed; do
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+- fi
+- done
+- done
+-done
+-lt_ac_max=0
+-lt_ac_count=0
+-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+-# along with /bin/sed that truncates output.
+-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+- test ! -f $lt_ac_sed && break
+- cat /dev/null > conftest.in
+- lt_ac_count=0
+- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+- # Check for GNU sed and select it if it is found.
+- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+- lt_cv_path_SED=$lt_ac_sed
+- break
+- fi
+- while true; do
+- cat conftest.in conftest.in >conftest.tmp
+- mv conftest.tmp conftest.in
+- cp conftest.in conftest.nl
+- echo >>conftest.nl
+- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+- cmp -s conftest.out conftest.nl || break
+- # 10000 chars as input seems more than enough
+- test $lt_ac_count -gt 10 && break
+- lt_ac_count=`expr $lt_ac_count + 1`
+- if test $lt_ac_count -gt $lt_ac_max; then
+- lt_ac_max=$lt_ac_count
+- lt_cv_path_SED=$lt_ac_sed
+- fi
+- done
+-done
+-])
+-SED=$lt_cv_path_SED
+-AC_MSG_RESULT([$SED])
+-])
diff --git a/recipes-qtopia/konqueror/files/gcc4.patch b/recipes-qtopia/konqueror/files/gcc4.patch
new file mode 100644
index 0000000..8873524
--- /dev/null
+++ b/recipes-qtopia/konqueror/files/gcc4.patch
@@ -0,0 +1,16 @@
+
+#
+# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+--- kdenox/konq-embed/dropin/kapplication.h~gcc4
++++ kdenox/konq-embed/dropin/kapplication.h
+@@ -122,7 +122,7 @@
+ // required since kdelibs 3.4
+ void updateUserTimestamp(unsigned long = 0) {}
+
+- static int KApplication::startDragDistance();
++ static int startDragDistance();
+
+ signals:
+ // required by KHTMLView
diff --git a/recipes-qtopia/konqueror/files/inject-extraflags.patch b/recipes-qtopia/konqueror/files/inject-extraflags.patch
new file mode 100644
index 0000000..1b8b02d
--- /dev/null
+++ b/recipes-qtopia/konqueror/files/inject-extraflags.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- kdenox/konq-embed/src/Makefile.am~fixit
++++ kdenox/konq-embed/src/Makefile.am
+@@ -49,7 +49,7 @@
+ $(top_builddir)/konq-embed/kdesrc/kssl/libkssl.la
+
+
+-konqueror_LDFLAGS = $(KONQ_SSL_LDFLAGS) $(all_libraries) -export-dynamic
++konqueror_LDFLAGS = $(KONQ_SSL_LDFLAGS) $(all_libraries) -export-dynamic $(EXTRA_LDFLAGS)
+ konqueror_METASOURCES = AUTO
+ konqueror_DEPENDENCIES = $(LIB_KJSHTML) $(LIB_KHTML) $(LIB_ADDONS)
+ BUILT_SOURCES = init.inc
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/cachepath.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/cachepath.patch
new file mode 100644
index 0000000..7d51520
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/cachepath.patch
@@ -0,0 +1,13 @@
+diff -uNr konq.orig/konq-embed/kdesrc/kio/http/http.cc konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc
+--- konq.orig/konq-embed/kdesrc/kio/http/http.cc 2005-01-26 15:23:13.357226175 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc 2005-01-26 15:24:15.887127980 +0100
+@@ -203,5 +203,8 @@
+ m_bUseCookiejar = config()->readBoolEntry("Cookies", true);
+ m_bUseCache = config()->readBoolEntry("UseCache", true);
+- m_strCacheDir = config()->readEntry("CacheDir", "/tmp/");
++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/konq/");
++ if(m_strCacheDir.isEmpty() || m_strCacheDir == "/")
++ m_strCacheDir = "/tmp/konq/";
++ mkdir(m_strCacheDir.latin1(), 0777);
+ m_maxCacheAge = config()->readNumEntry("MaxCacheAge");
+ m_request.window = config()->readEntry("window-id");
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/gcc4.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/gcc4.patch
new file mode 100644
index 0000000..54e3fe6
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/gcc4.patch
@@ -0,0 +1,15 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/src/bookmarks.h~gcc4 2002-12-05 16:39:43.000000000 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/bookmarks.h 2006-03-20 18:58:49.000000000 +0100
+@@ -16,6 +16,7 @@
+ class XMLElement;
+ class ActionMenu;
+ class KAction;
++class BookmarkFolder;
+
+ class BookmarkAction: public QAction
+ {
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/include_qconfig.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/include_qconfig.patch
new file mode 100644
index 0000000..245d031
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/include_qconfig.patch
@@ -0,0 +1,14 @@
+We need to have the defines available before
+we try to evaluate them
+
+
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/src/popuphandler.cc~ 2002-12-05 13:47:07.000000000 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/popuphandler.cc 2004-08-22 17:10:44.000000000 +0200
+@@ -1,3 +1,6 @@
++
++#include <qnamespace.h>
++
+ #include "popuphandler.h"
+
+ #if defined(_WS_QWS_) && defined(QT_NO_QWS_CURSOR)
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch
new file mode 100644
index 0000000..d5c1a9a
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch
@@ -0,0 +1,2924 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp
+@@ -1,8 +1,8 @@
+ /* This file is part of the KDE File Manager
+
+- Copyright (C) 1998,1999,2000,2001 Waldo Bastian (bastian@kde.org)
+- Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org)
+-
++ Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org)
++ Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org)
++
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+@@ -22,17 +22,18 @@
+ */
+ //----------------------------------------------------------------------------
+ //
+-// KDE HTTP Cookie Manager
+-// $Id: kcookiejar.cpp,v 1.58.2.5 2001/11/04 04:21:39 adawit Exp $
++// KDE File Manager -- HTTP Cookies
++// $Id: kcookiejar.cpp,v 1.117 2004/07/20 15:29:24 waba Exp $
+
+ //
+ // The cookie protocol is a mess. RFC2109 is a joke since nobody seems to
+-// use it. Apart from that it is badly written. We try to implement Netscape
+-// Cookies and try to behave according to RFC2109 as much as we can.
++// use it. Apart from that it is badly written.
++// We try to implement Netscape Cookies and try to behave us according to
++// RFC2109 as much as we can.
++//
++// We assume cookies do not contain any spaces (Netscape spec.)
++// According to RFC2109 this is allowed though.
+ //
+-// We assume cookies do not contain any spaces (Netscape spec.) According to
+-// RFC2109 this is allowed though.
+-
+
+ #include <config.h>
+ #include <sys/types.h>
+@@ -44,12 +45,23 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
++
++#ifdef USE_SOLARIS
++#include <strings.h>
++#endif
++
+ #include <stdlib.h>
+
++//#include <netinet/in.h>
++//#include <arpa/inet.h>
++
+ #include <qstring.h>
+ #include <qstrlist.h>
+ #include <qlist.h>
+ #include <qdict.h>
++#include <qfile.h>
++#include <qdir.h>
++#include <qregexp.h>
+
+ #include <kurl.h>
+ #include <krfcdate.h>
+@@ -61,6 +73,13 @@
+
+ #define READ_BUFFER_SIZE 8192
+
++// Note with respect to QString::fromLatin1( )
++// Cookies are stored as 8 bit data and passed to kio_http as
++// latin1 regardless of their actual encoding.
++
++// L1 is used to indicate latin1 constants
++#define L1(x) QString::fromLatin1(x)
++
+ template class QList<KHttpCookie>;
+ template class QDict<KHttpCookieList>;
+
+@@ -68,10 +87,10 @@
+ {
+ switch( _advice )
+ {
+- case KCookieAccept: return "Accept";
+- case KCookieReject: return "Reject";
+- case KCookieAsk: return "Ask";
+- default: return "Dunno";
++ case KCookieAccept: return L1("Accept");
++ case KCookieReject: return L1("Reject");
++ case KCookieAsk: return L1("Ask");
++ default: return L1("Dunno");
+ }
+ }
+
+@@ -80,7 +99,7 @@
+ if (_str.isEmpty())
+ return KCookieDunno;
+
+- QString advice = _str.lower();
++ QCString advice = _str.lower().latin1();
+
+ if (advice == "accept")
+ return KCookieAccept;
+@@ -105,17 +124,20 @@
+ const QString &_value,
+ time_t _expireDate,
+ int _protocolVersion,
+- bool _secure) :
++ bool _secure,
++ bool _httpOnly,
++ bool _explicitPath) :
+ mHost(_host),
+ mDomain(_domain),
+- mPath(_path),
++ mPath(_path.isEmpty() ? QString::null : _path),
+ mName(_name),
+ mValue(_value),
+ mExpireDate(_expireDate),
+ mProtocolVersion(_protocolVersion),
+- mSecure(_secure)
++ mSecure(_secure),
++ mHttpOnly(_httpOnly),
++ mExplicitPath(_explicitPath)
+ {
+- nextCookie = 0;
+ }
+
+ //
+@@ -135,16 +157,17 @@
+
+ if (useDOMFormat || (mProtocolVersion == 0))
+ {
+- result = mName + "=" + mValue;
++ if ( !mName.isEmpty() )
++ result = mName + '=';
++ result += mValue;
+ }
+ else
+ {
+- result.sprintf("$Version=\"%d\"; ", mProtocolVersion);
+- result += mName + "=\"" + mValue + "\"";
+- if (!mPath.isEmpty())
+- result += "; $Path=\""+ mPath + "\"";
++ result = mName + '=' + mValue;
++ if (mExplicitPath)
++ result += L1("; $Path=\"") + mPath + L1("\"");
+ if (!mDomain.isEmpty())
+- result += "; $Domain=\""+ mDomain + "\"";
++ result += L1("; $Domain=\"") + mDomain + L1("\"");
+ }
+ return result;
+ }
+@@ -157,8 +180,7 @@
+ // Cookie domain match check
+ if (mDomain.isEmpty())
+ {
+- // No domain set, check hostname.
+- if (fqdn != mHost)
++ if (fqdn != mHost)
+ return false;
+ }
+ else if (!domains.contains(mDomain))
+@@ -167,17 +189,30 @@
+ return false;
+
+ // Maybe the domain needs an extra dot.
+- QString domain = "." + mDomain;
++ QString domain = '.' + mDomain;
+ if ( !domains.contains( domain ) )
+ if ( fqdn != mDomain )
+ return false;
+ }
+
+ // Cookie path match check
+- if( !path.isEmpty() && !path.startsWith(mPath) )
+- return false; // Path of URL does not start with cookie-path
++ if (mPath.isEmpty())
++ return true;
+
+- return true;
++ // According to the netscape spec both http://www.acme.com/foobar,
++ // http://www.acme.com/foo.bar and http://www.acme.com/foo/bar
++ // match http://www.acme.com/foo.
++ // We only match http://www.acme.com/foo/bar
++
++ if( path.startsWith(mPath) &&
++ (
++ (path.length() == mPath.length() ) || // Paths are exact match
++ (path[mPath.length()-1] == '/') || // mPath ended with a slash
++ (path[mPath.length()] == '/') // A slash follows.
++ ))
++ return true; // Path of URL starts with cookie-path
++
++ return false;
+ }
+
+ // KHttpCookieList
+@@ -188,9 +223,9 @@
+ int pathLen1 = ((KHttpCookie *)item1)->path().length();
+ int pathLen2 = ((KHttpCookie *)item2)->path().length();
+ if (pathLen1 > pathLen2)
+- return 1;
+- if (pathLen1 < pathLen2)
+ return -1;
++ if (pathLen1 < pathLen2)
++ return 1;
+ return 0;
+ }
+
+@@ -205,10 +240,18 @@
+ //
+ KCookieJar::KCookieJar()
+ {
+- cookieDomains.setAutoDelete( true );
+- globalAdvice = KCookieDunno;
+- configChanged = false;
+- cookiesChanged = false;
++ m_cookieDomains.setAutoDelete( true );
++ m_globalAdvice = KCookieDunno;
++ m_configChanged = false;
++ m_cookiesChanged = false;
++
++ QString twoLevelTLD="name,ai,au,bd,bh,ck,eg,et,fk,il,in,kh,kr,mk,mt,na,np,nz,pg,pk,qa,sa,sb,sg,sv,ua,ug,uk,uy,vn,za,zw";
++ QStringList countries = QStringList::split(',', twoLevelTLD);
++ for(QStringList::ConstIterator it = countries.begin();
++ it != countries.end(); ++it)
++ {
++ m_twoLevelTLD.replace(*it, (int *) 1);
++ }
+ }
+
+ //
+@@ -221,89 +264,184 @@
+ // Not much to do here
+ }
+
++static void removeDuplicateFromList(KHttpCookieList *list, KHttpCookie *cookiePtr, bool nameMatchOnly=false, bool updateWindowId=false)
++{
++ QString domain1 = cookiePtr->domain();
++ if (domain1.isEmpty())
++ domain1 = cookiePtr->host();
++
++ for ( KHttpCookiePtr cookie=list->first(); cookie != 0; )
++ {
++ QString domain2 = cookie->domain();
++ if (domain2.isEmpty())
++ domain2 = cookie->host();
++
++ if (
++ (cookiePtr->name() == cookie->name()) &&
++ (
++ nameMatchOnly ||
++ ( (domain1 == domain2) && (cookiePtr->path() == cookie->path()) )
++ )
++ )
++ {
++ if (updateWindowId)
++ {
++ for(QValueList<long>::ConstIterator it = cookie->windowIds().begin();
++ it != cookie->windowIds().end(); ++it)
++ {
++ long windowId = *it;
++ if (windowId && (cookiePtr->windowIds().find(windowId) == cookiePtr->windowIds().end()))
++ {
++ cookiePtr->windowIds().append(windowId);
++ }
++ }
++ }
++ KHttpCookiePtr old_cookie = cookie;
++ cookie = list->next();
++ list->removeRef( old_cookie );
++ break;
++ }
++ else
++ {
++ cookie = list->next();
++ }
++ }
++}
++
++
+ //
+ // Looks for cookies in the cookie jar which are appropriate for _url.
+ // Returned is a string containing all appropriate cookies in a format
+ // which can be added to a HTTP-header without any additional processing.
+ //
+-QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat)
++QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies)
+ {
+ QString cookieStr;
+ QStringList domains;
+ QString fqdn;
+ QString path;
+ KHttpCookiePtr cookie;
+- int protVersion = 1;
+- int cookieCount = 0;
++ KCookieAdvice advice = m_globalAdvice;
+
+ if (!parseURL(_url, fqdn, path))
+- {
+ return cookieStr;
+- }
++
++ bool secureRequest = (_url.find( L1("https://"), 0, false) == 0 ||
++ _url.find( L1("webdavs://"), 0, false) == 0);
+
+ extractDomains(fqdn, domains);
+- bool secureRequest = (_url.find( "https://", 0, false) == 0);
++
++ KHttpCookieList allCookies;
++
+ for(QStringList::ConstIterator it = domains.begin();
+- it != domains.end();
++ true;
+ ++it)
+ {
+- KHttpCookieList *cookieList = cookieDomains[(*it)];
++ KHttpCookieList *cookieList;
++ if (it == domains.end())
++ {
++ cookieList = pendingCookies; // Add pending cookies
++ pendingCookies = 0;
++ if (!cookieList)
++ break;
++ }
++ else
++ {
++ QString key = (*it).isNull() ? L1("") : (*it);
++ cookieList = m_cookieDomains[key];
++ if (!cookieList)
++ continue; // No cookies for this domain
++ }
+
+- if (!cookieList)
+- continue; // No cookies for this domain
++ if (cookieList->getAdvice() != KCookieDunno)
++ advice = cookieList->getAdvice();
++
++ // Do not send cookies for this domain if policy is set to reject
++ // and we are not setup to automatically accept all cookies as
++ // session cookies...
++ if (advice == KCookieReject &&
++ !(m_ignoreCookieExpirationDate && m_autoAcceptSessionCookies))
++ {
++ if (it == domains.end())
++ break; // Finished.
++ continue;
++ }
+
+ for ( cookie=cookieList->first(); cookie != 0; cookie=cookieList->next() )
+ {
+- if (!cookie->match(fqdn, domains, path) && cookie->domain().isEmpty())
+- {
+- // The following code is added because RFC 2109 is completely
+- // ambigious when it comes what needs to be done when cookies
+- // with empty "domain=" fields are present! The following code
+- // makes such cookies available to all the domains/hosts under
+- // the TLD of the cookie in question!
+- QStringList cookieDomainList;
+- extractDomains( cookie->host(), cookieDomainList );
+-
+- int fqdnCount = domains.count();
+- int cookieDomainCount = cookieDomainList.count();
+-
+- if ( domains[fqdnCount-2] != cookieDomainList[cookieDomainCount-2] &&
+- domains[fqdnCount-1] != cookieDomainList[cookieDomainCount-1] )
+- continue;
+- }
++ if (!cookie->match(fqdn, domains, path))
++ continue;
+
+ if( cookie->isSecure() && !secureRequest )
+ continue;
+
+- // Use first cookie to determine protocol version
+- if (cookieCount == 0)
++ if( cookie->isHttpOnly() && useDOMFormat )
++ continue;
++
++ // Do not send expired cookies.
++ if ( cookie->isExpired (time(0)) )
+ {
+- protVersion = cookie->protocolVersion();
++ // Note there is no need to actually delete the cookie here
++ // since the cookieserver will invoke ::saveCookieJar because
++ // of the state change below. This will then do the job of
++ // deleting the cookie for us.
++ m_cookiesChanged = true;
++ continue;
+ }
+- if (useDOMFormat)
++
++ if (windowId && (cookie->windowIds().find(windowId) == cookie->windowIds().end()))
+ {
+- if (cookieCount > 0)
+- cookieStr += "; ";
+- cookieStr += cookie->cookieStr(true);
++ cookie->windowIds().append(windowId);
+ }
+- else if (protVersion == 0)
++
++ if (it == domains.end()) // Only needed when processing pending cookies
++ removeDuplicateFromList(&allCookies, cookie);
++
++ allCookies.append(cookie);
++ }
++ if (it == domains.end())
++ break; // Finished.
++ }
++
++
++ int cookieCount = 0;
++
++ int protVersion=0;
++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() )
++ {
++ if (cookie->protocolVersion() > protVersion)
++ protVersion = cookie->protocolVersion();
++ }
++
++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() )
++ {
++ if (useDOMFormat)
++ {
++ if (cookieCount > 0)
++ cookieStr += L1("; ");
++ cookieStr += cookie->cookieStr(true);
++ }
++ else
++ {
++ if (cookieCount == 0)
+ {
+- if (cookieCount == 0)
+- cookieStr += "Cookie: ";
+- else
+- cookieStr += "; ";
+- cookieStr += cookie->cookieStr(false);
++ cookieStr += L1("Cookie: ");
++ if (protVersion > 0)
++ {
++ QString version;
++ version.sprintf("$Version=%d; ", protVersion); // Without quotes
++ cookieStr += version;
++ }
+ }
+ else
+ {
+- if (cookieCount > 0)
+- cookieStr += "\r\n";
+- cookieStr += "Cookie: ";
+- cookieStr += cookie->cookieStr(false);
++ cookieStr += L1("; ");
+ }
+- cookieCount++;
++ cookieStr += cookie->cookieStr(false);
+ }
++ cookieCount++;
+ }
++
+ return cookieStr;
+ }
+
+@@ -323,17 +461,17 @@
+ bool keepQuotes=false)
+ {
+ const char *s = header;
+-
+ // Parse 'my_name' part
+ for(; (*s != '='); s++)
+ {
+ if ((*s=='\0') || (*s==';') || (*s=='\n'))
+ {
+- // End of Name
+- Value = "";
+- Name = header;
+- Name.truncate( s - header );
+- Name = Name.stripWhiteSpace();
++ // No '=' sign -> use string as the value, name is empty
++ // (behavior found in Mozilla and IE)
++ Name = "";
++ Value = QString::fromLatin1(header);
++ Value.truncate( s - header );
++ Value = Value.stripWhiteSpace();
+ return (s);
+ }
+ }
+@@ -366,12 +504,12 @@
+ if ((*s=='\0') || (*s=='\n'))
+ {
+ // End of Name
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate(s - header);
+ return (s);
+ }
+ }
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate( s - header );
+
+ // *s == '\"';
+@@ -390,7 +528,7 @@
+ while ((*s != '\0') && (*s != ';') && (*s != '\n'))
+ s++;
+ // End of Name
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate( s - header );
+ Value = Value.stripWhiteSpace();
+ }
+@@ -398,14 +536,14 @@
+
+ }
+
+-static void stripDomain(const QString &_fqdn, QString &_domain)
++void KCookieJar::stripDomain(const QString &_fqdn, QString &_domain)
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(_fqdn, domains);
++ extractDomains(_fqdn, domains);
+ _domain = domains[0];
+ }
+
+-static QString stripDomain( KHttpCookiePtr cookiePtr)
++QString KCookieJar::stripDomain( KHttpCookiePtr cookiePtr)
+ {
+ QString domain; // We file the cookie under this domain.
+ if (cookiePtr->domain().isEmpty())
+@@ -420,10 +558,18 @@
+ QString &_path)
+ {
+ KURL kurl(_url);
+- if (kurl.isMalformed())
++ if (!kurl.isValid())
+ return false;
+
+ _fqdn = kurl.host().lower();
++ if (kurl.port())
++ {
++ if (((kurl.protocol() == L1("http")) && (kurl.port() != 80)) ||
++ ((kurl.protocol() == L1("https")) && (kurl.port() != 443)))
++ {
++ _fqdn = L1("%1:%2").arg(kurl.port()).arg(_fqdn);
++ }
++ }
+
+ // Cookie spoofing protection. Since there is no way a path separator
+ // or escape encoded character is allowed in the hostname according
+@@ -435,19 +581,44 @@
+
+ _path = kurl.path();
+ if (_path.isEmpty())
+- _path = "/";
++ _path = L1("/");
++
++ QRegExp exp(L1("[\\\\/]\\.\\.[\\\\/]"));
++ // Weird path, cookie stealing attempt?
++ if (_path.find(exp) != -1) {
++ return false; // Deny everything!!
++ }
++
+ return true;
+ }
+
+ void KCookieJar::extractDomains(const QString &_fqdn,
+ QStringList &_domains)
+ {
+- // Use fqdn only if the fqdn consists of numbers.
+- if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9'))
++ // Return numeric IPv6 addresses as is...
++ if (_fqdn[0] == '[')
+ {
+ _domains.append( _fqdn );
+ return;
+ }
++ // Return numeric IPv4 addresses as is...
++ if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9'))
++ {
++ bool allNumeric = true;
++ for(int i = _fqdn.length(); i--;)
++ {
++ if (!strchr("0123456789:.", _fqdn[i].latin1()))
++ {
++ allNumeric = false;
++ break;
++ }
++ }
++ if (allNumeric)
++ {
++ _domains.append( _fqdn );
++ return;
++ }
++ }
+
+ QStringList partList = QStringList::split('.', _fqdn, false);
+
+@@ -458,29 +629,36 @@
+ {
+ if (partList.count() == 1)
+ break; // We only have a TLD left.
+- if (partList.count() == 2)
++
++ if ((partList.count() == 2) && (m_twoLevelTLD[partList[1].lower()]))
++ {
++ // This domain uses two-level TLDs in the form xxxx.yy
++ break;
++ }
++
++ if ((partList.count() == 2) && (partList[1].length() == 2))
+ {
+ // If this is a TLD, we should stop. (e.g. co.uk)
+ // We assume this is a TLD if it ends with .xx.yy or .x.yy
+- if ((partList[0].length() <= 2) &&
+- (partList[1].length() == 2))
++ if (partList[0].length() <= 2)
+ break; // This is a TLD.
++
++ // Catch some TLDs that we miss with the previous check
++ // e.g. com.au, org.uk, mil.co
++ QCString t = partList[0].lower().utf8();
++ if ((t == "com") || (t == "net") || (t == "org") || (t == "gov") || (t == "edu") || (t == "mil") || (t == "int"))
++ break;
+ }
+- QString domain = partList.join(".");
+- _domains.append("." + domain);
++
++ QString domain = partList.join(L1("."));
++ _domains.append('.' + domain);
+ _domains.append(domain);
+ partList.remove(partList.begin()); // Remove part
+ }
+
+- // Only URLs that would get in here are of type
+- // "host.foo" or "host.co.fo" so simply append
+- // a '.' on top to make sure they are stored under
+- // the proper cookie domain.
+- if (_domains.isEmpty())
+- _domains.append( "." + _fqdn );
+-
+ // Always add the FQDN at the end of the list for
+ // hostname == cookie-domainname checks!
++ _domains.append( '.' + _fqdn );
+ _domains.append( _fqdn );
+ }
+
+@@ -492,55 +670,73 @@
+ // cookie_headers should be a concatenation of all lines of a HTTP-header
+ // which start with "Set-Cookie". The lines should be separated by '\n's.
+ //
+-KHttpCookiePtr KCookieJar::makeCookies(const QString &_url,
++KHttpCookieList KCookieJar::makeCookies(const QString &_url,
+ const QCString &cookie_headers,
+ long windowId)
+ {
+- KHttpCookiePtr cookieChain = 0;
++ KHttpCookieList cookieList;
++ KHttpCookieList cookieList2;
+ KHttpCookiePtr lastCookie = 0;
+ const char *cookieStr = cookie_headers.data();
+ QString Name;
+ QString Value;
+ QString fqdn;
+ QString path;
++ bool crossDomain = false;
+
+ if (!parseURL(_url, fqdn, path))
+ {
+ // Error parsing _url
+- return 0;
++ return KHttpCookieList();
+ }
++ QString defaultPath;
++ int i = path.findRev('/');
++ if (i > 0)
++ defaultPath = path.left(i);
+
+ // The hard stuff :)
+ for(;;)
+ {
+ // check for "Set-Cookie"
+- if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0)
++ if (strncmp(cookieStr, "Cross-Domain\n", 13) == 0)
++ {
++ cookieStr += 13;
++ crossDomain = true;
++ }
++ else if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0)
+ {
+ cookieStr = parseNameValue(cookieStr+11, Name, Value, true);
+
+- if (Name.isEmpty())
+- continue;
+-
+ // Host = FQDN
+ // Default domain = ""
+- // Default path = ""
+- KHttpCookie *cookie = new KHttpCookie(fqdn, "", "", Name, Value);
+- cookie->mWindowId = windowId;
++ // Default path according to rfc2109
++
++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value);
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
++ cookie->mCrossDomain = crossDomain;
+
+ // Insert cookie in chain
+- if (lastCookie)
+- lastCookie->nextCookie = cookie;
+- else
+- cookieChain = cookie;
++ cookieList.append(cookie);
+ lastCookie = cookie;
+ }
+- else if (lastCookie && (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0))
++ else if (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0)
+ {
+- // What the fuck is this?
+- // Does anyone invent his own headers these days?
+- // Read the fucking RFC guys! This header is not there!
+- cookieStr +=12;
+- // Continue with lastCookie
++ // Attempt to follow rfc2965
++ cookieStr = parseNameValue(cookieStr+12, Name, Value, true);
++
++ // Host = FQDN
++ // Default domain = ""
++ // Default path according to rfc2965
++
++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value);
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
++ cookie->mCrossDomain = crossDomain;
++
++ // Insert cookie in chain
++ cookieList2.append(cookie);
++ lastCookie = cookie;
+ }
+ else
+ {
+@@ -564,13 +760,12 @@
+ // Name-Value pair follows
+ cookieStr = parseNameValue(cookieStr, Name, Value);
+
+- Name = Name.lower();
+-
+- if (Name == "domain")
++ QCString cName = Name.lower().latin1();
++ if (cName == "domain")
+ {
+ lastCookie->mDomain = Value.lower();
+ }
+- else if (Name == "max-age")
++ else if (cName == "max-age")
+ {
+ int max_age = Value.toInt();
+ if (max_age == 0)
+@@ -578,23 +773,33 @@
+ else
+ lastCookie->mExpireDate = time(0)+max_age;
+ }
+- else if (Name == "expires")
++ else if (cName == "expires")
+ {
+ // Parse brain-dead netscape cookie-format
+ lastCookie->mExpireDate = KRFCDate::parseDate(Value);
+ }
+- else if (Name == "path")
++ else if (cName == "path")
+ {
+- lastCookie->mPath = Value;
++ if (Value.isEmpty())
++ lastCookie->mPath = QString::null; // Catch "" <> QString::null
++ else
++ lastCookie->mPath = KURL::decode_string(Value);
++ lastCookie->mExplicitPath = true;
+ }
+- else if (Name == "version")
++ else if (cName == "version")
+ {
+ lastCookie->mProtocolVersion = Value.toInt();
+ }
+- else if (Name == "secure")
++ else if ((cName == "secure") ||
++ (cName.isEmpty() && Value.lower() == L1("secure")))
+ {
+ lastCookie->mSecure = true;
+ }
++ else if ((cName == "httponly") ||
++ (cName.isEmpty() && Value.lower() == L1("httponly")))
++ {
++ lastCookie->mHttpOnly = true;
++ }
+ }
+
+ if (*cookieStr == '\0')
+@@ -604,7 +809,14 @@
+ cookieStr++;
+ }
+
+- return cookieChain;
++ // RFC2965 cookies come last so that they override netscape cookies.
++ while( !cookieList2.isEmpty() && (lastCookie = cookieList2.take(0)) )
++ {
++ removeDuplicateFromList(&cookieList, lastCookie, true);
++ cookieList.append(lastCookie);
++ }
++
++ return cookieList;
+ }
+
+ /**
+@@ -613,12 +825,12 @@
+ * pairs. Any whitespace before "name" or around '=' is discarded.
+ * If no cookies are found, 0 is returned.
+ */
+-KHttpCookiePtr KCookieJar::makeDOMCookies(const QString &_url,
++KHttpCookieList KCookieJar::makeDOMCookies(const QString &_url,
+ const QCString &cookie_domstring,
+ long windowId)
+ {
+ // A lot copied from above
+- KHttpCookiePtr cookieChain = 0;
++ KHttpCookieList cookieList;
+ KHttpCookiePtr lastCookie = 0;
+
+ const char *cookieStr = cookie_domstring.data();
+@@ -630,7 +842,7 @@
+ if (!parseURL(_url, fqdn, path))
+ {
+ // Error parsing _url
+- return 0;
++ return KHttpCookieList();
+ }
+
+ // This time it's easy
+@@ -638,35 +850,25 @@
+ {
+ cookieStr = parseNameValue(cookieStr, Name, Value);
+
+- if (Name.isEmpty()) {
+- if (*cookieStr != '\0')
+- cookieStr++; // Skip ';' or '\n'
+-
+- continue;
+- }
+-
+ // Host = FQDN
+ // Default domain = ""
+ // Default path = ""
+ KHttpCookie *cookie = new KHttpCookie(fqdn, QString::null, QString::null,
+ Name, Value );
+- cookie->mWindowId = windowId;
+-
+- // Insert cookie in chain
+- if (lastCookie)
+- lastCookie->nextCookie = cookie;
+- else
+- cookieChain = cookie;
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
+
++ cookieList.append(cookie);
+ lastCookie = cookie;
+
+ if (*cookieStr != '\0')
+ cookieStr++; // Skip ';' or '\n'
+ }
+
+- return cookieChain;
++ return cookieList;
+ }
+
++
+ //
+ // This function hands a KHttpCookie object over to the cookie jar.
+ //
+@@ -674,7 +876,6 @@
+ //
+ void KCookieJar::addCookie(KHttpCookiePtr &cookiePtr)
+ {
+- QString domain;
+ QStringList domains;
+ KHttpCookieList *cookieList = 0L;
+
+@@ -686,42 +887,31 @@
+ (it != domains.end() && !cookieList);
+ ++it )
+ {
+- KHttpCookieList *list= cookieDomains[(*it)];
++ QString key = (*it).isNull() ? L1("") : (*it);
++ KHttpCookieList *list= m_cookieDomains[key];
+ if ( !list ) continue;
+
+- for ( KHttpCookiePtr cookie=list->first(); cookie != 0; )
+- {
+- if ( cookiePtr->name() == cookie->name() &&
+- cookie->match(cookiePtr->host(),domains,cookiePtr->path()) )
+- {
+- KHttpCookiePtr old_cookie = cookie;
+- cookie = list->next();
+- list->removeRef( old_cookie );
+- break;
+- }
+- else
+- {
+- cookie = list->next();
+- }
+- }
++ removeDuplicateFromList(list, cookiePtr, false, true);
+ }
+
+- domain = stripDomain( cookiePtr );
+- cookieList = cookieDomains[ domain ];
++ QString domain = stripDomain( cookiePtr );
++ QString key = domain.isNull() ? L1("") : domain;
++ cookieList = m_cookieDomains[ key ];
+ if (!cookieList)
+ {
+ // Make a new cookie list
+ cookieList = new KHttpCookieList();
++ cookieList->setAutoDelete(true);
+
+ // All cookies whose domain is not already
+ // known to us should be added with KCookieDunno.
+ // KCookieDunno means that we use the global policy.
+ cookieList->setAdvice( KCookieDunno );
+
+- cookieDomains.insert( domain, cookieList);
++ m_cookieDomains.insert( domain, cookieList);
+
+ // Update the list of domains
+- domainList.append(domain);
++ m_domainList.append(domain);
+ }
+
+ // Add the cookie to the cookie list
+@@ -729,7 +919,7 @@
+ if (!cookiePtr->isExpired(time(0)))
+ {
+ cookieList->inSort( cookiePtr );
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+ }
+ else
+ {
+@@ -745,12 +935,20 @@
+ KCookieAdvice KCookieJar::cookieAdvice(KHttpCookiePtr cookiePtr)
+ {
+ QStringList domains;
++
++ if (m_rejectCrossDomainCookies && cookiePtr->isCrossDomain())
++ return KCookieReject;
++
++ if (m_autoAcceptSessionCookies && (cookiePtr->expireDate() == 0 ||
++ m_ignoreCookieExpirationDate))
++ return KCookieAccept;
++
+ extractDomains(cookiePtr->host(), domains);
+- bool isEmptyDomain = cookiePtr->domain().isEmpty();
+
+- if (!isEmptyDomain )
++ // If the cookie specifies a domain, check whether it is valid and
++ // correct otherwise.
++ if (!cookiePtr->domain().isEmpty())
+ {
+- // Cookie specifies a domain. Check whether it is valid.
+ bool valid = false;
+
+ // This checks whether the cookie is valid based on
+@@ -764,42 +962,34 @@
+ if (!valid)
+ {
+ // Maybe the domain doesn't start with a "."
+- QString domain = "."+cookiePtr->domain();
++ QString domain = '.' + cookiePtr->domain();
+ if (domains.contains(domain))
+ valid = true;
+ }
+
+ if (!valid)
+ {
+- qWarning("WARNING: Host %s tries to set cookie for domain %s",
+- cookiePtr->host().latin1(), cookiePtr->domain().latin1());
+ cookiePtr->fixDomain(QString::null);
+- isEmptyDomain = true;
+ }
+ }
+
+- // For empty domain use the FQDN to find a
+- // matching advice for the pending cookie.
+- QString domain;
+- if ( isEmptyDomain )
+- domain = domains[0];
+- else
+- domain = cookiePtr->domain();
++ KCookieAdvice advice = KCookieDunno;
+
+- KHttpCookieList *cookieList = cookieDomains[domain];
+- KCookieAdvice advice;
+- if (cookieList)
+- {
+- advice = cookieList->getAdvice();
+- if (advice == KCookieDunno)
+- {
+- advice = globalAdvice;
+- }
+- }
+- else
++ QStringList::Iterator it = domains.fromLast(); // Start with FQDN which is last in the list.
++ while( (advice == KCookieDunno) && (it != domains.end()))
+ {
+- advice = globalAdvice;
++ QString domain = *it;
++ // Check if a policy for the FQDN/domain is set.
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
++ if (cookieList)
++ advice = cookieList->getAdvice();
++ domains.remove(it);
++ it = domains.begin(); // Continue from begin of remaining list
+ }
++
++ if (advice == KCookieDunno)
++ advice = m_globalAdvice;
++
+ return advice;
+ }
+
+@@ -809,7 +999,7 @@
+ //
+ KCookieAdvice KCookieJar::getDomainAdvice(const QString &_domain)
+ {
+- KHttpCookieList *cookieList = cookieDomains[_domain];
++ KHttpCookieList *cookieList = m_cookieDomains[_domain];
+ KCookieAdvice advice;
+
+ if (cookieList)
+@@ -831,13 +1021,13 @@
+ void KCookieJar::setDomainAdvice(const QString &_domain, KCookieAdvice _advice)
+ {
+ QString domain(_domain);
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+
+ if (cookieList)
+ {
+- if (cookieList->getAdvice() != _advice);
++ if (cookieList->getAdvice() != _advice)
+ {
+- configChanged = true;
++ m_configChanged = true;
+ // domain is already known
+ cookieList->setAdvice( _advice);
+ }
+@@ -846,8 +1036,8 @@
+ (_advice == KCookieDunno))
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
+- domainList.remove(domain);
++ m_cookieDomains.remove(domain);
++ m_domainList.remove(domain);
+ }
+ }
+ else
+@@ -856,13 +1046,14 @@
+ if (_advice != KCookieDunno)
+ {
+ // We should create a domain entry
+- configChanged = true;
++ m_configChanged = true;
+ // Make a new cookie list
+ cookieList = new KHttpCookieList();
++ cookieList->setAutoDelete(true);
+ cookieList->setAdvice( _advice);
+- cookieDomains.insert( domain, cookieList);
++ m_cookieDomains.insert( domain, cookieList);
+ // Update the list of domains
+- domainList.append( domain);
++ m_domainList.append( domain);
+ }
+ }
+ }
+@@ -883,9 +1074,9 @@
+ //
+ void KCookieJar::setGlobalAdvice(KCookieAdvice _advice)
+ {
+- if (globalAdvice != _advice)
+- configChanged = true;
+- globalAdvice = _advice;
++ if (m_globalAdvice != _advice)
++ m_configChanged = true;
++ m_globalAdvice = _advice;
+ }
+
+ //
+@@ -893,7 +1084,7 @@
+ //
+ const QStringList& KCookieJar::getDomainList()
+ {
+- return domainList;
++ return m_domainList;
+ }
+
+ //
+@@ -909,7 +1100,7 @@
+ else
+ domain = _domain;
+
+- return cookieDomains[domain];
++ return m_cookieDomains[domain];
+ }
+
+ //
+@@ -919,86 +1110,97 @@
+ void KCookieJar::eatCookie(KHttpCookiePtr cookiePtr)
+ {
+ QString domain = stripDomain(cookiePtr); // We file the cookie under this domain.
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+
+ if (cookieList)
+ {
+ // This deletes cookiePtr!
+ if (cookieList->removeRef( cookiePtr ))
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+
+ if ((cookieList->isEmpty()) &&
+ (cookieList->getAdvice() == KCookieDunno))
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
++ m_cookieDomains.remove(domain);
+
+- domainList.remove(domain);
++ m_domainList.remove(domain);
+ }
+ }
+ }
+
+ void KCookieJar::eatCookiesForDomain(const QString &domain)
+ {
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+ if (!cookieList || cookieList->isEmpty()) return;
+
+ cookieList->clear();
+ if (cookieList->getAdvice() == KCookieDunno)
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
+- domainList.remove(domain);
++ m_cookieDomains.remove(domain);
++ m_domainList.remove(domain);
+ }
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+ }
+
+-void KCookieJar::eatSessionCookies( int winId )
++void KCookieJar::eatSessionCookies( long windowId )
+ {
+- QStringList::Iterator it=domainList.begin();
+- for ( ; it != domainList.end(); ++it )
+- eatSessionCookies( *it, winId, false );
++ if (!windowId)
++ return;
++
++ QStringList::Iterator it=m_domainList.begin();
++ for ( ; it != m_domainList.end(); ++it )
++ eatSessionCookies( *it, windowId, false );
+ }
+
+-void KCookieJar::eatSessionCookies( const QString& fqdn, int winId,
++void KCookieJar::eatAllCookies()
++{
++ for ( QStringList::Iterator it=m_domainList.begin();
++ it != m_domainList.end();)
++ {
++ QString domain = *it++;
++ // This might remove domain from domainList!
++ eatCookiesForDomain(domain);
++ }
++}
++
++void KCookieJar::eatSessionCookies( const QString& fqdn, long windowId,
+ bool isFQDN )
+ {
+ KHttpCookieList* cookieList;
+- if ( isFQDN )
++ if ( !isFQDN )
++ cookieList = m_cookieDomains[fqdn];
++ else
+ {
+ QString domain;
+ stripDomain( fqdn, domain );
+- cookieList = cookieDomains[domain];
++ cookieList = m_cookieDomains[domain];
+ }
+- else
+- cookieList = cookieDomains[fqdn];
+
+ if ( cookieList )
+ {
+ KHttpCookiePtr cookie=cookieList->first();
+ for (; cookie != 0;)
+ {
+- if (cookie->windowId() == winId &&
+- (cookie->expireDate() == 0))
++ if ((cookie->expireDate() != 0) && !m_ignoreCookieExpirationDate)
+ {
+- KHttpCookiePtr old_cookie = cookie;
+- cookie = cookieList->next();
+- cookieList->removeRef( old_cookie );
++ cookie = cookieList->next();
++ continue;
+ }
+- else
+- cookie = cookieList->next();
+- }
+- }
+-}
+-
+
+-void KCookieJar::eatAllCookies()
+-{
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();)
+- {
+- QString domain = *it++;
+- eatCookiesForDomain(domain); // This might remove domain from domainList!
++ QValueList<long> &ids = cookie->windowIds();
++ bool empty = (ids.find(windowId) == ids.end() );
++ ids.remove(windowId);
++ if (!empty || !ids.isEmpty())
++ {
++ cookie = cookieList->next();
++ continue;
++ }
++ KHttpCookiePtr old_cookie = cookie;
++ cookie = cookieList->next();
++ cookieList->removeRef( old_cookie );
++ }
+ }
+ }
+
+@@ -1008,7 +1210,7 @@
+ // On failure 'false' is returned.
+ bool KCookieJar::saveCookies(const QString &_filename)
+ {
+- KSaveFile saveFile(_filename);
++ KSaveFile saveFile(_filename, 0600);
+
+ if (saveFile.status() != 0)
+ return false;
+@@ -1017,31 +1219,31 @@
+
+ time_t curTime = time(0);
+
+- fprintf(fStream, "# KDE Cookie File\n#\n");
++ fprintf(fStream, "# KDE Cookie File v2\n#\n");
+
+- fprintf(fStream, "%-20s %-20s %-12s %-9s %-4s %-10s %s %-4s\n",
+- "# Host", "Domain", "Path", "Exp.date", "Prot", "Name", "Value", "Secure");
++ fprintf(fStream, "%-20s %-20s %-12s %-10s %-4s %-20s %-4s %s\n",
++ "# Host", "Domain", "Path", "Exp.date", "Prot",
++ "Name", "Sec", "Value");
+
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();
+- it++)
++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end();
++ it++ )
+ {
+ const QString &domain = *it;
+ bool domainPrinted = false;
+
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+ KHttpCookiePtr cookie=cookieList->first();
+
+- for (; cookie != 0;)
++ for (; cookie != 0;)
+ {
+ if (cookie->isExpired(curTime))
+- {
+- // Delete expired cookies
++ {
++ // Delete expired cookies
+ KHttpCookiePtr old_cookie = cookie;
+ cookie = cookieList->next();
+ cookieList->removeRef( old_cookie );
+- }
+- else if (cookie->expireDate() != 0)
++ }
++ else if (cookie->expireDate() != 0 && !m_ignoreCookieExpirationDate)
+ {
+ if (!domainPrinted)
+ {
+@@ -1049,25 +1251,26 @@
+ fprintf(fStream, "[%s]\n", domain.local8Bit().data());
+ }
+ // Store persistent cookies
+- QString path("\"");
++ QString path = L1("\"");
+ path += cookie->path();
+- path += "\"";
+- QString domain("\"");
++ path += '"';
++ QString domain = L1("\"");
+ domain += cookie->domain();
+- domain += "\"";
+- fprintf(fStream, "%-20s %-20s %-12s %9lu %2d %-10s %s %-4i\n",
+- cookie->host().local8Bit().data(), domain.local8Bit().data(), path.local8Bit().data(),
+- (unsigned long) cookie->expireDate(), cookie->protocolVersion()+100,
+- cookie->name().local8Bit().data(), cookie->value().local8Bit().data(),
+- cookie->isSecure());
+- cookie = cookieList->next();
+- }
+- else
+- {
+- // Skip session-only cookies
+- cookie = cookieList->next();
+- }
+- }
++ domain += '"';
++ fprintf(fStream, "%-20s %-20s %-12s %10lu %3d %-20s %-4i %s\n",
++ cookie->host().latin1(), domain.latin1(),
++ path.latin1(), (unsigned long) cookie->expireDate(),
++ cookie->protocolVersion(), cookie->name().latin1(),
++ (cookie->isSecure() ? 1 : 0) + (cookie->isHttpOnly() ? 2 : 0) + (cookie->hasExplicitPath() ? 4 : 0),
++ cookie->value().latin1());
++ cookie = cookieList->next();
++ }
++ else
++ {
++ // Skip session-only cookies
++ cookie = cookieList->next();
++ }
++ }
+ }
+
+ return saveFile.close();
+@@ -1080,26 +1283,27 @@
+ char *result;
+ if (!keepQuotes && (*buffer == '\"'))
+ {
+- // Find terminating "
++ // Find terminating "
+ buffer++;
+ result = buffer;
+ while((*buffer != '\"') && (*buffer))
+- buffer++;
++ buffer++;
+ }
+ else
+ {
+ // Find first white space
+ result = buffer;
+ while((*buffer != ' ') && (*buffer != '\t') && (*buffer != '\n') && (*buffer))
+- buffer++;
++ buffer++;
+ }
++
+ if (!*buffer)
+- return result; //
++ return result; //
+ *buffer++ = '\0';
+
+ // Skip white-space
+ while((*buffer == ' ') || (*buffer == '\t') || (*buffer == '\n'))
+- buffer++;
++ buffer++;
+
+ return result;
+ }
+@@ -1124,7 +1328,18 @@
+ bool err = false;
+ err = (fgets(buffer, READ_BUFFER_SIZE, fStream) == 0);
+
+- err = err || (strcmp(buffer, "# KDE Cookie File\n") != 0);
++ int version = 1;
++ if (!err)
++ {
++ if (strcmp(buffer, "# KDE Cookie File\n") == 0)
++ {
++ // version 1
++ }
++ else if (sscanf(buffer, "# KDE Cookie File v%d\n", &version) != 1)
++ {
++ err = true;
++ }
++ }
+
+ if (!err)
+ {
+@@ -1146,13 +1361,31 @@
+ int protVer = (time_t) strtoul(verStr, 0, 10);
+ const char *name( parseField(line) );
+ bool keepQuotes = false;
+- if (protVer >= 100)
++ bool secure = false;
++ bool httpOnly = false;
++ bool explicitPath = false;
++ const char *value = 0;
++ if ((version == 2) || (protVer >= 200))
+ {
+- protVer -= 100;
+- keepQuotes = true;
++ if (protVer >= 200)
++ protVer -= 200;
++ int i = atoi( parseField(line) );
++ secure = i & 1;
++ httpOnly = i & 2;
++ explicitPath = i & 4;
++ line[strlen(line)-1] = '\0'; // Strip LF.
++ value = line;
++ }
++ else
++ {
++ if (protVer >= 100)
++ {
++ protVer -= 100;
++ keepQuotes = true;
++ }
++ value = parseField(line, keepQuotes);
++ secure = atoi( parseField(line) );
+ }
+- const char *value( parseField(line, keepQuotes) );
+- bool secure = atoi( parseField(line) );
+
+ // Parse error
+ if (!value) continue;
+@@ -1161,15 +1394,18 @@
+ if ((expDate == 0) || (expDate < curTime))
+ continue;
+
+- KHttpCookie *cookie = new KHttpCookie(host, domain, path, name,
+- value, expDate, protVer,
+- secure);
+- if ( cookieAdvice( cookie ) )
+- addCookie(cookie);
++ KHttpCookie *cookie = new KHttpCookie(QString::fromLatin1(host),
++ QString::fromLatin1(domain),
++ QString::fromLatin1(path),
++ QString::fromLatin1(name),
++ QString::fromLatin1(value),
++ expDate, protVer,
++ secure, httpOnly, explicitPath);
++ addCookie(cookie);
+ }
+ }
+ delete [] buffer;
+- cookiesChanged = false;
++ m_cookiesChanged = false;
+
+ fclose( fStream);
+ return err;
+@@ -1181,19 +1417,18 @@
+
+ void KCookieJar::saveConfig(KConfig *_config)
+ {
+- if (!configChanged)
++ if (!m_configChanged)
+ return;
+
+- _config->setGroup(QString::null);
+- _config->writeEntry("DefaultRadioButton", defaultRadioButton);
+- _config->writeEntry("ShowCookieDetails", showCookieDetails );
+-
+- QStringList domainSettings;
++ _config->setGroup("Cookie Dialog");
++ _config->writeEntry("PreferredPolicy", m_preferredPolicy);
++ _config->writeEntry("ShowCookieDetails", m_showCookieDetails );
+ _config->setGroup("Cookie Policy");
+- _config->writeEntry("CookieGlobalAdvice", adviceToStr( globalAdvice));
++ _config->writeEntry("CookieGlobalAdvice", adviceToStr( m_globalAdvice));
+
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();
++ QStringList domainSettings;
++ for ( QStringList::Iterator it=m_domainList.begin();
++ it != m_domainList.end();
+ it++ )
+ {
+ const QString &domain = *it;
+@@ -1208,6 +1443,7 @@
+ }
+ _config->writeEntry("CookieDomainAdvice", domainSettings);
+ _config->sync();
++ m_configChanged = false;
+ }
+
+
+@@ -1217,23 +1453,23 @@
+
+ void KCookieJar::loadConfig(KConfig *_config, bool reparse )
+ {
+- QString value;
+- QStringList domainSettings;
+-
+ if ( reparse )
+ _config->reparseConfiguration();
+
+- _config->setGroup(QString::null);
+- defaultRadioButton = _config->readNumEntry( "DefaultRadioButton", 0 );
+- showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" );
++ _config->setGroup("Cookie Dialog");
++ m_showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" );
++ m_preferredPolicy = _config->readNumEntry( "PreferredPolicy", 0 );
+
+ _config->setGroup("Cookie Policy");
+- value = _config->readEntry("CookieGlobalAdvice", "Ask");
+- globalAdvice = strToAdvice(value);
+- domainSettings = _config->readListEntry("CookieDomainAdvice");
++ QStringList domainSettings = _config->readListEntry("CookieDomainAdvice");
++ m_rejectCrossDomainCookies = _config->readBoolEntry( "RejectCrossDomainCookies", true );
++ m_autoAcceptSessionCookies = _config->readBoolEntry( "AcceptSessionCookies", true );
++ m_ignoreCookieExpirationDate = _config->readBoolEntry( "IgnoreExpirationDate", false );
++ QString value = _config->readEntry("CookieGlobalAdvice", L1("Ask"));
++ m_globalAdvice = strToAdvice(value);
+
+ // Reset current domain settings first.
+- for ( QStringList::Iterator it=domainList.begin(); it != domainList.end(); )
++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); )
+ {
+ // Make sure to update iterator before calling setDomainAdvice()
+ // setDomainAdvice() might delete the domain from domainList.
+@@ -1241,16 +1477,19 @@
+ setDomainAdvice(domain, KCookieDunno);
+ }
+
+- // Now apply the
++ // Now apply the domain settings read from config file...
+ for ( QStringList::Iterator it=domainSettings.begin();
+ it != domainSettings.end(); )
+ {
+ const QString &value = *it++;
++
+ int sepPos = value.find(':');
+- if (sepPos <= 0) { continue; }
++
++ if (sepPos <= 0)
++ continue;
++
+ QString domain(value.left(sepPos));
+ KCookieAdvice advice = strToAdvice( value.mid(sepPos + 1) );
+ setDomainAdvice(domain, advice);
+ }
+ }
+-
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h
+@@ -20,7 +20,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookies
+-// $Id: kcookiejar.h,v 1.21.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookiejar.h,v 1.34 2004/07/20 15:29:24 waba Exp $
+
+ #ifndef KCOOKIEJAR_H
+ #define KCOOKIEJAR_H
+@@ -59,10 +59,12 @@
+ QString mValue;
+ time_t mExpireDate;
+ int mProtocolVersion;
+- long mWindowId;
+ bool mSecure;
++ bool mCrossDomain;
++ bool mHttpOnly;
++ bool mExplicitPath;
++ QValueList<long> mWindowIds;
+
+- KHttpCookiePtr nextCookie;
+ QString cookieStr(bool useDOMFormat);
+
+ public:
+@@ -73,28 +75,32 @@
+ const QString &_value=QString::null,
+ time_t _expireDate=0,
+ int _protocolVersion=0,
+- bool _secure = false);
++ bool _secure = false,
++ bool _httpOnly = false,
++ bool _explicitPath = false);
+
+ QString domain(void) { return mDomain; }
+ QString host(void) { return mHost; }
+ QString path(void) { return mPath; }
+ QString name(void) { return mName; }
+ QString value(void) { return mValue; }
+- long windowId(void) { return mWindowId; }
++ QValueList<long> &windowIds(void) { return mWindowIds; }
+ void fixDomain(const QString &domain) { mDomain = domain; }
+ time_t expireDate(void) { return mExpireDate; }
+ int protocolVersion(void) { return mProtocolVersion; }
+ bool isSecure(void) { return mSecure; }
+ bool isExpired(time_t currentDate);
++ bool isCrossDomain(void) { return mCrossDomain; }
++ bool isHttpOnly(void) { return mHttpOnly; }
++ bool hasExplicitPath(void) { return mExplicitPath; }
+ bool match(const QString &fqdn, const QStringList &domainList, const QString &path);
+- KHttpCookiePtr next() { return nextCookie; }
+ };
+
+ class KHttpCookieList : public QList<KHttpCookie>
+ {
+ public:
+ KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno )
+- { setAutoDelete(true); }
++ { }
+ virtual ~KHttpCookieList() { }
+
+ virtual int compareItems( void * item1, void * item2);
+@@ -125,7 +131,7 @@
+ /**
+ * Returns whether the cookiejar has been changed
+ */
+- bool changed() { return cookiesChanged || configChanged; }
++ bool changed() const { return m_cookiesChanged || m_configChanged; }
+
+ /**
+ * Store all the cookies in a safe(?) place
+@@ -154,8 +160,11 @@
+ *
+ * If @p useDOMFormat is true, the string is formatted in a format
+ * in compliance with the DOM standard.
++ * @p pendingCookies contains a list of cookies that have not been
++ * approved yet by the user but that will be included in the result
++ * none the less.
+ */
+- QString findCookies(const QString &_url, bool useDOMFormat);
++ QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0);
+
+ /**
+ * This function parses cookie_headers and returns a linked list of
+@@ -165,17 +174,17 @@
+ * cookie_headers should be a concatenation of all lines of a HTTP-header
+ * which start with "Set-Cookie". The lines should be separated by '\n's.
+ */
+- KHttpCookiePtr makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);
++ KHttpCookieList makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);
+
+ /**
+ * This function parses cookie_headers and returns a linked list of
+ * valid KHttpCookie objects for all cookies found in cookie_headers.
+ * If no cookies could be found 0 is returned.
+ *
+- * cookie_domstr should be a concatenation of "name=value" pairs, seperated
++ * cookie_domstr should be a concatenation of "name=value" pairs, separated
+ * by a semicolon ';'.
+ */
+- KHttpCookiePtr makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);
++ KHttpCookieList makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);
+
+ /**
+ * This function hands a KHttpCookie object over to the cookie jar.
+@@ -279,13 +288,13 @@
+ * Removes all end of session cookies set by the
+ * session @p windId.
+ */
+- void eatSessionCookies( int windId );
++ void eatSessionCookies( long windowId );
+
+ /**
+ * Removes all end of session cookies set by the
+ * session @p windId.
+ */
+- void eatSessionCookies( const QString& fqdn, int windId, bool isFQDN = true );
++ void eatSessionCookies( const QString& fqdn, long windowId, bool isFQDN = true );
+
+ /**
+ * Parses _url and returns the FQDN (_fqdn) and path (_path).
+@@ -297,21 +306,46 @@
+ /**
+ * Returns a list of domains (_domainList) relevant for this host.
+ */
+- static void extractDomains(const QString &_fqdn,
+- QStringList &_domainList);
++ void extractDomains(const QString &_fqdn,
++ QStringList &_domainList);
+
+ static QString adviceToStr(KCookieAdvice _advice);
+ static KCookieAdvice strToAdvice(const QString &_str);
+
+- // Save this in the config file...
+- int defaultRadioButton; // 0 = This cookie, 1 = domain, 2 = all cookies
+- bool showCookieDetails; // true, false
++ /** Returns the */
++ int preferredDefaultPolicy() const { return m_preferredPolicy; }
++
++ /** Returns the */
++ bool showCookieDetails () const { return m_showCookieDetails; }
++
++ /**
++ * Sets the user's default preference cookie policy.
++ */
++ void setPreferredDefaultPolicy (int value) { m_preferredPolicy = value; }
++
++ /**
++ * Sets the user's preference of level of detail displayed
++ * by the cookie dialog.
++ */
++ void setShowCookieDetails (bool value) { m_showCookieDetails = value; }
+
+ protected:
+- QDict<KHttpCookieList> cookieDomains;
+- QStringList domainList;
+- KCookieAdvice globalAdvice;
+- bool configChanged;
+- bool cookiesChanged;
++ void stripDomain(const QString &_fqdn, QString &_domain);
++ QString stripDomain( KHttpCookiePtr cookiePtr);
++
++protected:
++ QStringList m_domainList;
++ KCookieAdvice m_globalAdvice;
++ QDict<KHttpCookieList> m_cookieDomains;
++ QDict<int> m_twoLevelTLD;
++
++ bool m_configChanged;
++ bool m_cookiesChanged;
++ bool m_showCookieDetails;
++ bool m_rejectCrossDomainCookies;
++ bool m_autoAcceptSessionCookies;
++ bool m_ignoreCookieExpirationDate;
++
++ int m_preferredPolicy;
+ };
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp
+@@ -23,25 +23,30 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE Cookie Server
+-// $Id: kcookieserver.cpp,v 1.33.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookieserver.cpp,v 1.52 2004/08/16 14:04:40 lunakl Exp $
+
+ #define SAVE_DELAY 3 // Save after 3 minutes
+
+-#include "kcookieserver.h"
+-#include "kcookiejar.h"
+-#include "kcookiewin.h"
++#include <unistd.h>
+
+-#include <kdebug.h>
+-#include <kapp.h>
+-#include <kcmdlineargs.h>
+-#include <kstddirs.h>
+ #include <qtimer.h>
+-#include <unistd.h>
+ #include <qlist.h>
+ #include <qfile.h>
+
+ #include <dcopclient.h>
++
+ #include <kconfig.h>
++#include <kdebug.h>
++#include <kcmdlineargs.h>
++#include <kstddirs.h>
++
++#ifdef _QT_QPE_
++#include <qpe/qpeapplication.h>
++#endif
++
++#include "kcookiejar.h"
++#include "kcookiewin.h"
++#include "kcookieserver.h"
+
+ // Cookie field indexes
+ enum CookieDetails { CF_DOMAIN=0, CF_PATH, CF_NAME, CF_HOST,
+@@ -53,6 +58,7 @@
+ DCOPClientTransaction *transaction;
+ QString url;
+ bool DOM;
++ long windowId;
+ };
+
+ template class QList<CookieRequest>;
+@@ -68,10 +74,11 @@
+ {
+ mCookieJar = new KCookieJar;
+ mPendingCookies = new KHttpCookieList;
++ mPendingCookies->setAutoDelete(true);
+ mRequestList = new RequestList;
+ mAdvicePending = false;
+ mTimer = 0;
+- mCookieJar->loadConfig( kapp->config());
++ mCookieJar->loadConfig( kapp->config() );
+
+ QString filename = locateLocal("appdata", "cookies");
+
+@@ -89,12 +96,16 @@
+ {
+ mCookieJar->loadCookies( filename);
+ }
++
++ QWidget *wid = qApp->desktop();
++ mBigScreen = (wid->width() > 320 || wid->height() > 320);
+ }
+
+ KCookieServer::~KCookieServer()
+ {
+ if (mCookieJar->changed())
+ slotSave();
++
+ delete mCookieJar;
+ delete mTimer;
+ delete mPendingCookies;
+@@ -125,7 +136,7 @@
+ return 0;
+ }
+
+-bool KCookieServer::cookiesPending( const QString &url )
++bool KCookieServer::cookiesPending( const QString &url, KHttpCookieList *cookieList )
+ {
+ QString fqdn;
+ QStringList domains;
+@@ -136,109 +147,161 @@
+ if (!KCookieJar::parseURL(url, fqdn, path))
+ return false;
+
+- KCookieJar::extractDomains( fqdn, domains );
++ mCookieJar->extractDomains( fqdn, domains );
+ for( KHttpCookie *cookie = mPendingCookies->first();
+ cookie != 0L;
+ cookie = mPendingCookies->next())
+ {
+ if (cookie->match( fqdn, domains, path))
+- return true;
++ {
++ if (!cookieList)
++ return true;
++ cookieList->append(cookie);
++ }
+ }
+- return false;
++ if (!cookieList)
++ return false;
++ return cookieList->isEmpty();
+ }
+
+ void KCookieServer::addCookies( const QString &url, const QCString &cookieHeader,
+ long windowId, bool useDOMFormat )
+ {
+- KHttpCookiePtr cookie = 0;
++ KHttpCookieList cookieList;
+ if (useDOMFormat)
+- cookie = mCookieJar->makeDOMCookies(url, cookieHeader, windowId);
++ cookieList = mCookieJar->makeDOMCookies(url, cookieHeader, windowId);
+ else
+- cookie = mCookieJar->makeCookies(url, cookieHeader, windowId);
++ cookieList = mCookieJar->makeCookies(url, cookieHeader, windowId);
+
+- if (mAdvicePending)
+- {
+- checkCookies(cookie, true);
+- }
+- else
++ checkCookies(&cookieList);
++
++ for(KHttpCookiePtr cookie = cookieList.first(); cookie; cookie = cookieList.first())
++ mPendingCookies->append(cookieList.take());
++
++ if (!mAdvicePending)
+ {
+ mAdvicePending = true;
+- do {
+- checkCookies(cookie, false);
+- cookie = mPendingCookies->count() ? mPendingCookies->take(0) : 0;
++ while (!mPendingCookies->isEmpty())
++ {
++ checkCookies(0);
+ }
+- while (cookie);
+ mAdvicePending = false;
+ }
+-
+ }
+
+-void KCookieServer::checkCookies( KHttpCookie *cookie, bool queue )
++void KCookieServer::checkCookies( KHttpCookieList *cookieList)
+ {
+- QString host;
+- KCookieAdvice userAdvice = KCookieDunno;
+- if (cookie) host = cookie->host();
++ KHttpCookieList *list;
++
++ if (cookieList)
++ list = cookieList;
++ else
++ list = mPendingCookies;
++
++ KHttpCookiePtr cookie = list->first();
+ while (cookie)
+ {
+- KHttpCookiePtr next_cookie = cookie->next();
+ KCookieAdvice advice = mCookieJar->cookieAdvice(cookie);
+- if ((advice == KCookieAsk) || (advice == KCookieDunno))
+- {
+- // We only ask the user once, even if we get multiple
+- // cookies from the same site.
+- if (userAdvice == KCookieDunno)
+- {
+- if (queue)
+- {
+- mPendingCookies->append(cookie);
+- return;
+- }
+- else
+- {
+- mPendingCookies->prepend(cookie);
+- KCookieWin *kw = new KCookieWin( 0L, cookie,
+- mCookieJar->defaultRadioButton,
+- mCookieJar->showCookieDetails );
+- userAdvice = kw->advice(mCookieJar, cookie);
+- delete kw;
+- mPendingCookies->take(0);
+- // Save the cookie config if it has changed
+- mCookieJar->saveConfig( kapp->config() );
+- }
+- }
+- advice = userAdvice;
+- }
+ switch(advice)
+ {
+ case KCookieAccept:
++ list->take();
+ mCookieJar->addCookie(cookie);
++ cookie = list->current();
+ break;
+
+ case KCookieReject:
+- default:
++ list->take();
+ delete cookie;
++ cookie = list->current();
++ break;
++
++ default:
++ cookie = list->next();
+ break;
+ }
+- cookie = next_cookie;
+- if (!cookie && !queue)
++ }
++
++ if (cookieList || list->isEmpty())
++ return;
++
++ KHttpCookiePtr currentCookie = mPendingCookies->first();
++
++ KHttpCookieList currentList;
++ currentList.append(currentCookie);
++ QString currentHost = currentCookie->host();
++
++ cookie = mPendingCookies->next();
++ while (cookie)
++ {
++ if (cookie->host() == currentHost)
+ {
+- // Check if there are cookies on the pending list from the
+- // same host.
+- for( cookie = mPendingCookies->first();
+- cookie;
+- cookie = mPendingCookies->next())
+- {
+- if (cookie->host() == host)
+- break;
+- }
+- if (cookie)
++ currentList.append(cookie);
++ }
++ cookie = mPendingCookies->next();
++ }
++
++ KCookieWin *kw;
++ KScrolledCookieWin *skw= 0L;
++
++ if(!mBigScreen) {
++ qWarning( "Using Scrolled Cookie WIn" );
++ skw = new KScrolledCookieWin(0L, currentList,
++ mCookieJar->preferredDefaultPolicy(),
++ mCookieJar->showCookieDetails() );
++ kw = skw->cookieWindow();
++ }else
++ kw = new KCookieWin( 0L, currentList,
++ mCookieJar->preferredDefaultPolicy(),
++ mCookieJar->showCookieDetails() );
++
++#ifdef _QT_QPE_
++ int result = QPEApplication::execDialog( !mBigScreen ?
++ static_cast<QDialog*>( skw ) :
++ static_cast<QDialog*>( kw ) );
++#else
++ int result = !mBigScreen ? skw->exec() : kw->exec();
++#endif
++
++ KCookieAdvice userAdvice = kw->advice( result, mCookieJar, currentCookie);
++ delete kw;
++ delete skw;
++ // Save the cookie config if it has changed
++ mCookieJar->saveConfig( kapp->config() );
++
++ // Apply the user's choice to all cookies that are currently
++ // queued for this host.
++ cookie = mPendingCookies->first();
++ while (cookie)
++ {
++ if (cookie->host() == currentHost)
++ {
++ switch(userAdvice)
+ {
+- // Found a matching cookie, remove it from the pending list.
+- cookie = mPendingCookies->take();
++ case KCookieAccept:
++ mPendingCookies->take();
++ mCookieJar->addCookie(cookie);
++ cookie = mPendingCookies->current();
++ break;
++
++ case KCookieReject:
++ mPendingCookies->take();
++ delete cookie;
++ cookie = mPendingCookies->current();
++ break;
++
++ default:
++ cookie = mPendingCookies->next();
++ break;
+ }
+ }
++ else
++ {
++ cookie = mPendingCookies->next();
++ }
+ }
+
++
+ // Check if we can handle any request
+ for ( CookieRequest *request = mRequestList->first(); request;)
+ {
+@@ -246,13 +309,13 @@
+ {
+ QCString replyType;
+ QByteArray replyData;
+- QString res = mCookieJar->findCookies( request->url, request->DOM );
++ QString res = mCookieJar->findCookies( request->url, request->DOM, request->windowId );
+
+ QDataStream stream2(replyData, IO_WriteOnly);
+ stream2 << res;
+ replyType = "QString";
+ dcopClient()->endTransaction( request->transaction,
+- replyType, replyData);
++ replyType, replyData);
+ CookieRequest *tmp = request;
+ request = mRequestList->next();
+ mRequestList->removeRef( tmp );
+@@ -271,7 +334,7 @@
+ {
+ delete mTimer;
+ mTimer = 0;
+- QString filename = locateLocal("appdata", "cookies");
++ QString filename = locateLocal("data", "kcookiejar/cookies");
+ mCookieJar->saveCookies(filename);
+ }
+
+@@ -333,8 +396,9 @@
+ return
+ ((hasDomain && c->domain() == domain) ||
+ fqdn == c->host()) &&
+- (c->path() == path) &&
+- (c->name() == name);
++ (c->path() == path) &&
++ (c->name() == name) &&
++ (!c->isExpired(time(0)));
+ }
+ return false;
+ }
+@@ -343,16 +407,30 @@
+ QString
+ KCookieServer::findCookies(QString url)
+ {
++ return findCookies(url, 0);
++}
++
++// DCOP function
++QString
++KCookieServer::findCookies(QString url, long windowId)
++{
+ if (cookiesPending(url))
+ {
+ CookieRequest *request = new CookieRequest;
+ request->transaction = dcopClient()->beginTransaction();
+ request->url = url;
+ request->DOM = false;
++ request->windowId = windowId;
+ mRequestList->append( request );
+ return QString::null; // Talk to you later :-)
+ }
+- return mCookieJar->findCookies(url, false);
++
++ QString cookies = mCookieJar->findCookies(url, false, windowId);
++
++ if (mCookieJar->changed() && !mTimer)
++ saveCookieJar();
++
++ return cookies;
+ }
+
+ // DCOP function
+@@ -409,16 +487,20 @@
+ QString
+ KCookieServer::findDOMCookies(QString url)
+ {
+- if (cookiesPending(url))
+- {
+- CookieRequest *request = new CookieRequest;
+- request->transaction = dcopClient()->beginTransaction();
+- request->url = url;
+- request->DOM = true;
+- mRequestList->append( request );
+- return QString::null; // Talk to you later :-)
+- }
+- return mCookieJar->findCookies(url, true);
++ return findDOMCookies(url, 0);
++}
++
++// DCOP function
++QString
++KCookieServer::findDOMCookies(QString url, long windowId)
++{
++ // We don't wait for pending cookies because it locks up konqueror
++ // which can cause a deadlock if it happens to have a popup-menu up.
++ // Instead we just return pending cookies as if they had been accepted already.
++ KHttpCookieList pendingCookies;
++ cookiesPending(url, &pendingCookies);
++
++ return mCookieJar->findCookies(url, true, windowId, &pendingCookies);
+ }
+
+ // DCOP function
+@@ -459,18 +541,27 @@
+ saveCookieJar();
+ }
+
++
++// Qt function
+ void
+-KCookieServer::deleteSessionCookies( long winId )
++KCookieServer::slotDeleteSessionCookies( long windowId )
+ {
+- mCookieJar->eatSessionCookies( winId );
++ deleteSessionCookies(windowId);
++}
++
++// DCOP function
++void
++KCookieServer::deleteSessionCookies( long windowId )
++{
++ mCookieJar->eatSessionCookies( windowId );
+ if(!mTimer)
+ saveCookieJar();
+ }
+
+ void
+-KCookieServer::deleteSessionCookiesFor(QString fqdn, long winId)
++KCookieServer::deleteSessionCookiesFor(QString fqdn, long windowId)
+ {
+- mCookieJar->eatSessionCookies( fqdn, winId );
++ mCookieJar->eatSessionCookies( fqdn, windowId );
+ if(!mTimer)
+ saveCookieJar();
+ }
+@@ -500,7 +591,7 @@
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ mCookieJar->setDomainAdvice(domains[0],
+ KCookieJar::strToAdvice(advice));
+ }
+@@ -516,7 +607,7 @@
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ advice = mCookieJar->getDomainAdvice(domains[0]);
+ }
+ return KCookieJar::adviceToStr(advice);
+@@ -533,7 +624,7 @@
+ void
+ KCookieServer::shutdown()
+ {
+- quit();
++ quit();
+ }
+
+ #include "kcookieserver.moc"
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h
+@@ -20,7 +20,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE Cookie Server
+-// $Id: kcookieserver.h,v 1.15.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookieserver.h,v 1.24 2003/06/09 10:56:42 waba Exp $
+
+ #ifndef KCOOKIESERVER_H
+ #define KCOOKIESERVER_H
+@@ -33,6 +33,7 @@
+ class KHttpCookie;
+ class QTimer;
+ class RequestList;
++class KConfig;
+
+ class KCookieServer : public KUniqueApplication
+ {
+@@ -46,9 +47,11 @@
+
+ k_dcop:
+ QString findCookies(QString);
++ QString findCookies(QString, long);
+ QStringList findDomains();
+ QStringList findCookies(QValueList<int>,QString,QString,QString,QString);
+ QString findDOMCookies(QString);
++ QString findDOMCookies(QString, long);
+ void addCookies(QString, QCString, long);
+ void deleteCookie(QString, QString, QString, QString);
+ void deleteCookiesFromDomain(QString);
+@@ -62,13 +65,14 @@
+ void shutdown();
+
+ public:
+- bool cookiesPending(const QString &url);
++ bool cookiesPending(const QString &url, KHttpCookieList *cookieList=0);
+ void addCookies(const QString &url, const QCString &cookieHeader,
+ long windowId, bool useDOMFormat);
+- void checkCookies(KHttpCookie *cookie, bool queue);
++ void checkCookies(KHttpCookieList *cookieList);
+
+ public slots:
+ void slotSave();
++ void slotDeleteSessionCookies(long);
+
+ protected:
+ KCookieJar *mCookieJar;
+@@ -82,6 +86,7 @@
+ bool cookieMatches(KHttpCookie*, QString, QString, QString, QString);
+ void putCookie(QStringList&, KHttpCookie*, const QValueList<int>&);
+ void saveCookieJar();
++ bool mBigScreen : 1;
+ };
+
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp
+@@ -1,8 +1,8 @@
+ /*
+ This file is part of KDE
+
+- Copyright (C) 2000 Waldo Bastian <bastian@kde.org>
+- Copyright (C) 2000-2001 Dawit Alemayehu <adawit@kde.org>
++ Copyright (C) 2000- Waldo Bastian <bastian@kde.org>
++ Copyright (C) 2000- Dawit Alemayehu <adawit@kde.org>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+@@ -24,7 +24,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookie Dialogs
+-// $Id: kcookiewin.cpp,v 1.26 2001/05/13 23:36:48 adawit Exp $
++// $Id: kcookiewin.cpp,v 1.55 2004/07/07 15:18:43 waba Exp $
+
+ // The purpose of the QT_NO_TOOLTIP and QT_NO_WHATSTHIS ifdefs is because
+ // this file is also used in Konqueror/Embedded. One of the aims of
+@@ -54,66 +54,77 @@
+ #include <qpushbutton.h>
+ #include <qradiobutton.h>
+ #include <qvbuttongroup.h>
++#include <qscrollview.h>
++
++#ifndef QT_NO_TOOLTIP
++#include <qtooltip.h>
++#endif
++
++#ifndef QT_NO_WHATSTHIS
++#include <qwhatsthis.h>
++#endif
+
+-#include <kapp.h>
+ #include <kwin.h>
+ #include <klocale.h>
+ #include <kglobal.h>
+ #include <kurllabel.h>
++#include <qlineedit.h>
+ #include <kiconloader.h>
+
++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded
++#include <X11/Xlib.h>
++#endif
++
+ #include "kcookiejar.h"
+ #include "kcookiewin.h"
+
+-KCookieWin::KCookieWin( QWidget *parent, KHttpCookie* cookie,
+- int defaultButton, bool showDetails )
+- :KDialog( parent, "cookiealert", true )
++KCookieWin::KCookieWin( QWidget *parent, KHttpCookieList cookieList,
++ int defaultButton, bool showDetails, bool modal )
++ :KDialog( parent, "cookiealert", modal )
+ {
+- KWin::setState( winId(), NET::StaysOnTop );
+- KWin::setOnDesktop(winId(), KWin::currentDesktop());
++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded
+ setCaption( i18n("Cookie Alert") );
+ setIcon( SmallIcon("cookie") );
+-
++ // all cookies in the list should have the same window at this time, so let's take the first
++ if( cookieList.first()->windowIds().count() > 0 )
++ XSetTransientForHint( qt_xdisplay(), winId(), cookieList.first()->windowIds().first());
++#endif
+ // Main widget's layout manager...
+ QVBoxLayout* vlayout = new QVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() );
+- vlayout->setResizeMode( QLayout::Fixed );
+
+ // Cookie image and message to user
+ QHBox* hBox = new QHBox( this );
+ hBox->setSpacing( KDialog::spacingHint() );
+ QLabel* icon = new QLabel( hBox );
+- icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle()) );
++ icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle() ) );
+ icon->setAlignment( Qt::AlignCenter );
+ icon->setFixedSize( 2*icon->sizeHint() );
+
+- int count = 0;
+- KHttpCookie* nextCookie = cookie;
+- while ( nextCookie )
+- {
+- count++;
+- nextCookie = nextCookie->next();
+- }
++ int count = cookieList.count();
+
+ QVBox* vBox = new QVBox( hBox );
+- QString txt = (count == 1) ? i18n("You received a cookie from"):
+- i18n("You received %1 cookies from").arg(count);
++ QString txt = i18n("You received a cookie from",
++ "You received %n cookies from", count);
+ QLabel* lbl = new QLabel( txt, vBox );
+ lbl->setAlignment( Qt::AlignCenter );
++ KHttpCookiePtr cookie = cookieList.first();
+ txt = i18n("<b>%1</b>").arg( cookie->host() );
++ if (cookie->isCrossDomain())
++ txt += i18n(" <b>[Cross Domain!]</b>");
+ lbl = new QLabel( txt, vBox );
+ lbl->setAlignment( Qt::AlignCenter );
+- lbl = new QLabel( i18n("Do you want to accept or reject ?"), vBox );
++ lbl = new QLabel( i18n("Do you want to accept or reject?"), vBox );
+ lbl->setAlignment( Qt::AlignCenter );
+ vlayout->addWidget( hBox, 0, Qt::AlignLeft );
+
+ // Cookie Details dialog...
+- m_detailView = new KCookieDetail( cookie, count, this );
++ m_detailView = new KCookieDetail( cookieList, count, this );
+ vlayout->addWidget( m_detailView );
+ m_showDetails = showDetails;
+ m_showDetails ? m_detailView->show():m_detailView->hide();
+
+ // Cookie policy choice...
+- m_btnGrp = new QVButtonGroup( i18n("Apply choice to"), this );
++ m_btnGrp = new QVButtonGroup( i18n("Apply Choice To"), this );
+ m_btnGrp->setRadioButtonExclusive( true );
+
+ txt = (count == 1)? i18n("&Only this cookie") : i18n("&Only these cookies");
+@@ -128,7 +139,7 @@
+ #ifndef QT_NO_WHATSTHIS
+ QWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from "
+ "this site. Choosing this option will add a new policy for "
+- "the site this cookie originated from. This policy will be "
++ "the site this cookie originated from. This policy will be "
+ "permanent until you manually change it from the Control Center "
+ "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") );
+ #endif
+@@ -146,35 +157,42 @@
+ if ( defaultButton > -1 && defaultButton < 3 )
+ m_btnGrp->setButton( defaultButton );
+ else
+- m_btnGrp->setButton( 0 );
++ m_btnGrp->setButton( 1 );
+
+ // Accept/Reject buttons
++ QWidget* receiver = parent ? parent : this;
+ QWidget* bbox = new QWidget( this );
+ QBoxLayout* bbLay = new QHBoxLayout( bbox );
+ bbLay->setSpacing( KDialog::spacingHint() );
+ QPushButton* btn = new QPushButton( i18n("&Accept"), bbox );
+ btn->setDefault( true );
+- connect( btn, SIGNAL(clicked()), SLOT(accept()) );
++ btn->setFocus();
++ connect( btn, SIGNAL(clicked()), receiver, SLOT(accept()) );
+ bbLay->addWidget( btn );
+ btn = new QPushButton( i18n("&Reject"), bbox );
+- connect( btn, SIGNAL(clicked()), SLOT(reject()) );
++ connect( btn, SIGNAL(clicked()), receiver, SLOT(reject()) );
+ bbLay->addWidget( btn );
+- bbLay->addStretch( 1 );
+- m_button = new QPushButton( bbox );
+- m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") );
+- connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) );
+- bbLay->addWidget( m_button );
++ bbLay->addStretch( 1 );
+ #ifndef QT_NO_ACCEL
+ QAccel* a = new QAccel( this );
+ a->connectItem( a->insertItem(Qt::Key_Escape), btn, SLOT(animateClick()) );
+ #endif
+-
+
++ m_button = new QPushButton( bbox );
++ m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") );
++ connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) );
++ bbLay->addWidget( m_button );
+ #ifndef QT_NO_WHATSTHIS
+- QWhatsThis::add( btn, i18n("See or modify the cookie information") );
++ QWhatsThis::add( m_button, i18n("See or modify the cookie information") );
+ #endif
++
++
+ vlayout->addWidget( bbox );
+- setFixedSize( sizeHint() );
++
++ if ( !parent ) {
++ vlayout->setResizeMode( QLayout::Fixed );
++ setFixedSize( sizeHint() );
++ }
+ }
+
+ KCookieWin::~KCookieWin()
+@@ -201,13 +219,16 @@
+ }
+ }
+
+-KCookieAdvice KCookieWin::advice( KCookieJar *cookiejar, KHttpCookie* cookie )
++KCookieAdvice KCookieWin::advice( int result, KCookieJar *cookiejar, KHttpCookie* cookie )
+ {
+- int result = exec();
++ cookiejar->setShowCookieDetails ( m_showDetails );
++
+ KCookieAdvice advice = (result==QDialog::Accepted) ? KCookieAccept:KCookieReject;
+- cookiejar->defaultRadioButton = m_btnGrp->id( m_btnGrp->selected() );
+- cookiejar->showCookieDetails = m_showDetails;
+- switch ( cookiejar->defaultRadioButton )
++
++ int preferredPolicy = m_btnGrp->id( m_btnGrp->selected() );
++ cookiejar->setPreferredDefaultPolicy( preferredPolicy );
++
++ switch ( preferredPolicy )
+ {
+ case 2:
+ cookiejar->setGlobalAdvice( advice );
+@@ -222,11 +243,11 @@
+ return advice;
+ }
+
+-KCookieDetail::KCookieDetail( KHttpCookie* cookie, int cookieCount,
++KCookieDetail::KCookieDetail( KHttpCookieList cookieList, int cookieCount,
+ QWidget* parent, const char* name )
+ :QGroupBox( parent, name )
+ {
+- setTitle( i18n("Cookie details") );
++ setTitle( i18n("Cookie Details") );
+ QGridLayout* grid = new QGridLayout( this, 9, 2,
+ KDialog::spacingHint(),
+ KDialog::marginHint() );
+@@ -237,8 +258,7 @@
+ grid->addWidget( label, 1, 0 );
+ m_name = new QLineEdit( this );
+ m_name->setReadOnly( true );
+- m_name->setText( cookie->name() );
+- m_name->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_name->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_name, 1 ,1 );
+
+ //Add the value
+@@ -246,46 +266,35 @@
+ grid->addWidget( label, 2, 0 );
+ m_value = new QLineEdit( this );
+ m_value->setReadOnly( true );
+- m_value->setText( cookie->value() );
+- m_value->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_value->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_value, 2, 1);
+
+ label = new QLabel( i18n("Expires:"), this );
+ grid->addWidget( label, 3, 0 );
+ m_expires = new QLineEdit( this );
+ m_expires->setReadOnly( true );
+- QDateTime cookiedate;
+- cookiedate.setTime_t( cookie->expireDate() );
+- if ( cookie->expireDate() )
+- m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) );
+- else
+- m_expires->setText( i18n("Not specified") );
+- m_expires->setMaximumWidth(fontMetrics().width('W') * 25 );
++ m_expires->setMaximumWidth(fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_expires, 3, 1);
+
+ label = new QLabel( i18n("Path:"), this );
+ grid->addWidget( label, 4, 0 );
+ m_path = new QLineEdit( this );
+ m_path->setReadOnly( true );
+- m_path->setText( cookie->path() );
+- m_path->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_path->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_path, 4, 1);
+
+ label = new QLabel( i18n("Domain:"), this );
+ grid->addWidget( label, 5, 0 );
+ m_domain = new QLineEdit( this );
+ m_domain->setReadOnly( true );
+- QString val = cookie->domain();
+- m_domain->setText( val.isEmpty()?i18n("Not specified"):val );
+- m_domain->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_domain->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_domain, 5, 1);
+
+- label = new QLabel( i18n("Is Secure:"), this );
++ label = new QLabel( i18n("Exposure:"), this );
+ grid->addWidget( label, 6, 0 );
+ m_secure = new QLineEdit( this );
+ m_secure->setReadOnly( true );
+- m_secure->setText( cookie->isSecure() ? i18n("True"):i18n("False") );
+- m_secure->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_secure->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_secure, 6, 1 );
+
+ if ( cookieCount > 1 )
+@@ -298,8 +307,9 @@
+ QToolTip::add( btnNext, i18n("Show details of the next cookie") );
+ #endif
+ }
+- m_cookie = cookie;
+- m_cookie_orig = cookie;
++ m_cookieList = cookieList;
++ m_cookie = 0;
++ slotNextCookie();
+ }
+
+ KCookieDetail::~KCookieDetail()
+@@ -308,9 +318,19 @@
+
+ void KCookieDetail::slotNextCookie()
+ {
+- m_cookie = m_cookie->next();
+- if ( !m_cookie )
+- m_cookie = m_cookie_orig;
++ KHttpCookiePtr cookie = m_cookieList.first();
++ if (m_cookie) while(cookie)
++ {
++ if (cookie == m_cookie)
++ {
++ cookie = m_cookieList.next();
++ break;
++ }
++ cookie = m_cookieList.next();
++ }
++ m_cookie = cookie;
++ if (!m_cookie)
++ m_cookie = m_cookieList.first();
+
+ if ( m_cookie )
+ {
+@@ -326,9 +346,52 @@
+ if ( m_cookie->expireDate() )
+ m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) );
+ else
+- m_expires->setText( i18n("Not specified") );
+- m_secure->setText( m_cookie->isSecure() ? i18n("True"):i18n("False") );
++ m_expires->setText( i18n("End of Session") );
++ QString sec;
++ if (m_cookie->isSecure())
++ {
++ if (m_cookie->isHttpOnly())
++ sec = i18n("Secure servers only");
++ else
++ sec = i18n("Secure servers, page scripts");
++ }
++ else
++ {
++ if (m_cookie->isHttpOnly())
++ sec = i18n("Servers");
++ else
++ sec = i18n("Servers, page scripts");
++ }
++ m_secure->setText( sec );
+ }
+ }
+
++
++////////////
++/// The Adapter
++///
++///////////
++KScrolledCookieWin::KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList,
++ int defaultButton, bool showDetails )
++ : KDialog( parent, "scrolled_cookiealert", true )
++{
++ setCaption( i18n("Cookie Alert") );
++ QVBoxLayout *layout = new QVBoxLayout( this );
++ QScrollView *view = new QScrollView( this, "cookie_view" );
++ m_cookieWin = new KCookieWin( this, cookieList, defaultButton,
++ showDetails, false );
++
++ view->setResizePolicy( QScrollView::AutoOneFit );
++ view->setFrameShape( QFrame::NoFrame );
++ view->addChild( m_cookieWin );
++
++ layout->addWidget( view );
++}
++
++KCookieWin* KScrolledCookieWin::cookieWindow()const
++{
++ return m_cookieWin;
++}
++
++
+ #include "kcookiewin.moc"
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h
+@@ -1,8 +1,8 @@
+ /*
+ This file is part of the KDE File Manager
+
+- Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org)
+- Copyright (C) 2000 Dawit Alemayehu (adawit@kde.org)
++ Copyright (C) 1998- Waldo Bastian (bastian@kde.org)
++ Copyright (C) 2000- Dawit Alemayehu (adawit@kde.org)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+@@ -22,7 +22,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookie Dialogs
+-// $Id: kcookiewin.h,v 1.9 2001/04/26 23:45:12 waba Exp $
++// $Id: kcookiewin.h,v 1.12 2002/05/20 05:35:37 adawit Exp $
+
+ #ifndef _KCOOKIEWIN_H_
+ #define _KCOOKIEWIN_H_
+@@ -42,7 +42,7 @@
+ Q_OBJECT
+
+ public :
+- KCookieDetail( KHttpCookie* cookie, int cookieCount, QWidget *parent=0,
++ KCookieDetail( KHttpCookieList cookieList, int cookieCount, QWidget *parent=0,
+ const char *name=0 );
+ ~KCookieDetail();
+
+@@ -54,8 +54,8 @@
+ QLineEdit* m_path;
+ QLineEdit* m_secure;
+
+- KHttpCookie* m_cookie;
+- KHttpCookie* m_cookie_orig;
++ KHttpCookieList m_cookieList;
++ KHttpCookiePtr m_cookie;
+
+ private slots:
+ void slotNextCookie();
+@@ -66,11 +66,11 @@
+ Q_OBJECT
+
+ public :
+- KCookieWin( QWidget *parent, KHttpCookie* cookie, int defaultButton=0,
+- bool showDetails=false );
++ KCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0,
++ bool showDetails=false, bool modal = true );
+ ~KCookieWin();
+
+- KCookieAdvice advice( KCookieJar *cookiejar, KHttpCookie* cookie );
++ KCookieAdvice advice( int result, KCookieJar *cookiejar, KHttpCookie* cookie );
+
+ private :
+ QPushButton* m_button;
+@@ -81,4 +81,21 @@
+ private slots:
+ void slotCookieDetails();
+ };
++
++/**
++ * A small Scrolled Adapter for KCookieWin
++ * to be used on big screen
++ */
++class KScrolledCookieWin : public KDialog
++{
++ Q_OBJECT
++
++public:
++ KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0,
++ bool showDetails=false );
++ KCookieWin* cookieWindow()const;
++
++private:
++ KCookieWin *m_cookieWin;
++};
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp
+@@ -6,18 +6,20 @@
+ **
+ *****************************************************************************/
+
+-#include "./kcookieserver.h"
++#include "kcookieserver.h"
+
+ #include <kdatastream.h>
+ #include <qasciidict.h>
+
+
+-static const int KCookieServer_fhash = 17;
+-static const char* const KCookieServer_ftable[16][3] = {
++static const int KCookieServer_fhash = 19;
++static const char* const KCookieServer_ftable[18][3] = {
+ { "QString", "findCookies(QString)", "findCookies(QString)" },
++ { "QString", "findCookies(QString,long int)", "findCookies(QString,long int)" },
+ { "QStringList", "findDomains()", "findDomains()" },
+ { "QStringList", "findCookies(QValueList<int>,QString,QString,QString,QString)", "findCookies(QValueList<int>,QString,QString,QString,QString)" },
+ { "QString", "findDOMCookies(QString)", "findDOMCookies(QString)" },
++ { "QString", "findDOMCookies(QString,long int)", "findDOMCookies(QString,long int)" },
+ { "void", "addCookies(QString,QCString,long int)", "addCookies(QString,QCString,long int)" },
+ { "void", "deleteCookie(QString,QString,QString,QString)", "deleteCookie(QString,QString,QString,QString)" },
+ { "void", "deleteCookiesFromDomain(QString)", "deleteCookiesFromDomain(QString)" },
+@@ -50,12 +52,22 @@
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findCookies(arg0 );
+ } break;
+- case 1: { // QStringList findDomains()
++ case 1: { // QString findCookies(QString,long int)
++ QString arg0;
++ long int arg1;
++ QDataStream arg( data, IO_ReadOnly );
++ arg >> arg0;
++ arg >> arg1;
+ replyType = KCookieServer_ftable[1][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
++ _replyStream << findCookies(arg0, arg1 );
++ } break;
++ case 2: { // QStringList findDomains()
++ replyType = KCookieServer_ftable[2][0];
++ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findDomains( );
+ } break;
+- case 2: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString)
++ case 3: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString)
+ QValueList<int> arg0;
+ QString arg1;
+ QString arg2;
+@@ -67,19 +79,29 @@
+ arg >> arg2;
+ arg >> arg3;
+ arg >> arg4;
+- replyType = KCookieServer_ftable[2][0];
++ replyType = KCookieServer_ftable[3][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findCookies(arg0, arg1, arg2, arg3, arg4 );
+ } break;
+- case 3: { // QString findDOMCookies(QString)
++ case 4: { // QString findDOMCookies(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[3][0];
++ replyType = KCookieServer_ftable[4][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findDOMCookies(arg0 );
+ } break;
+- case 4: { // void addCookies(QString,QCString,long int)
++ case 5: { // QString findDOMCookies(QString,long int)
++ QString arg0;
++ long int arg1;
++ QDataStream arg( data, IO_ReadOnly );
++ arg >> arg0;
++ arg >> arg1;
++ replyType = KCookieServer_ftable[5][0];
++ QDataStream _replyStream( replyData, IO_WriteOnly );
++ _replyStream << findDOMCookies(arg0, arg1 );
++ } break;
++ case 6: { // void addCookies(QString,QCString,long int)
+ QString arg0;
+ QCString arg1;
+ long int arg2;
+@@ -87,10 +109,10 @@
+ arg >> arg0;
+ arg >> arg1;
+ arg >> arg2;
+- replyType = KCookieServer_ftable[4][0];
++ replyType = KCookieServer_ftable[6][0];
+ addCookies(arg0, arg1, arg2 );
+ } break;
+- case 5: { // void deleteCookie(QString,QString,QString,QString)
++ case 7: { // void deleteCookie(QString,QString,QString,QString)
+ QString arg0;
+ QString arg1;
+ QString arg2;
+@@ -100,37 +122,37 @@
+ arg >> arg1;
+ arg >> arg2;
+ arg >> arg3;
+- replyType = KCookieServer_ftable[5][0];
++ replyType = KCookieServer_ftable[7][0];
+ deleteCookie(arg0, arg1, arg2, arg3 );
+ } break;
+- case 6: { // void deleteCookiesFromDomain(QString)
++ case 8: { // void deleteCookiesFromDomain(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[6][0];
++ replyType = KCookieServer_ftable[8][0];
+ deleteCookiesFromDomain(arg0 );
+ } break;
+- case 7: { // void deleteSessionCookies(long int)
++ case 9: { // void deleteSessionCookies(long int)
+ long int arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[7][0];
++ replyType = KCookieServer_ftable[9][0];
+ deleteSessionCookies(arg0 );
+ } break;
+- case 8: { // void deleteSessionCookiesFor(QString,long int)
++ case 10: { // void deleteSessionCookiesFor(QString,long int)
+ QString arg0;
+ long int arg1;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ arg >> arg1;
+- replyType = KCookieServer_ftable[8][0];
++ replyType = KCookieServer_ftable[10][0];
+ deleteSessionCookiesFor(arg0, arg1 );
+ } break;
+- case 9: { // void deleteAllCookies()
+- replyType = KCookieServer_ftable[9][0];
++ case 11: { // void deleteAllCookies()
++ replyType = KCookieServer_ftable[11][0];
+ deleteAllCookies( );
+ } break;
+- case 10: { // void addDOMCookies(QString,QCString,long int)
++ case 12: { // void addDOMCookies(QString,QCString,long int)
+ QString arg0;
+ QCString arg1;
+ long int arg2;
+@@ -138,38 +160,38 @@
+ arg >> arg0;
+ arg >> arg1;
+ arg >> arg2;
+- replyType = KCookieServer_ftable[10][0];
++ replyType = KCookieServer_ftable[12][0];
+ addDOMCookies(arg0, arg1, arg2 );
+ } break;
+- case 11: { // void setDomainAdvice(QString,QString)
++ case 13: { // void setDomainAdvice(QString,QString)
+ QString arg0;
+ QString arg1;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ arg >> arg1;
+- replyType = KCookieServer_ftable[11][0];
++ replyType = KCookieServer_ftable[13][0];
+ setDomainAdvice(arg0, arg1 );
+ } break;
+- case 12: { // QString getDomainAdvice(QString)
++ case 14: { // QString getDomainAdvice(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[12][0];
++ replyType = KCookieServer_ftable[14][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << getDomainAdvice(arg0 );
+ } break;
+- case 13: { // void reloadPolicy()
+- replyType = KCookieServer_ftable[13][0];
++ case 15: { // void reloadPolicy()
++ replyType = KCookieServer_ftable[15][0];
+ reloadPolicy( );
+ } break;
+- case 14: { // void shutdown()
+- replyType = KCookieServer_ftable[14][0];
++ case 16: { // void shutdown()
++ replyType = KCookieServer_ftable[16][0];
+ shutdown( );
+ } break;
+ default:
+ return KUniqueApplication::process( fun, data, replyType, replyData );
+ }
+- return TRUE;
++ return true;
+ }
+
+ QCStringList KCookieServer::interfaces()
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc
+@@ -200,9 +200,9 @@
+ kdDebug(7103) << "(" << getpid() << ") Proxy URL is now: " << m_proxyURL.url() << endl;
+ }
+
+- m_bUseCookiejar = config()->readBoolEntry("Cookies");
+- m_bUseCache = config()->readBoolEntry("UseCache");
+- m_strCacheDir = config()->readEntry("CacheDir");
++ m_bUseCookiejar = config()->readBoolEntry("Cookies", true);
++ m_bUseCache = config()->readBoolEntry("UseCache", true);
++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/");
+ m_maxCacheAge = config()->readNumEntry("MaxCacheAge");
+ m_request.window = config()->readEntry("window-id");
+
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/konq-embedrc b/recipes-qtopia/konqueror/konqueror-embedded-20030705/konq-embedrc
new file mode 100644
index 0000000..5c476b4
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/konq-embedrc
@@ -0,0 +1,20 @@
+[External Protocols]
+mailto=opiemail
+aj=@http://www.ask.com/main/askJeeves.asp?ask=
+av=@http://www.altavista.com/sites/search/web?q=
+dj=@http://www.deja.com/dnquery.xp?QRY=
+ex=@http://search.excite.com/search.gw?search=
+gg=@http://www.google.com/search?q=
+hb=@http://hotbot.lycos.com/?MT=
+ly=@http://search.lycos.com/main/?query=
+ya=@http://search.yahoo.com/bin/search?p=
+
+[Local Protocols]
+
+[http Settings]
+UseCache=true
+CacheDir=/tmp
+
+[HTML Settings]
+FixedFontSize=0
+
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/malformed.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/malformed.patch
new file mode 100644
index 0000000..542d207
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/malformed.patch
@@ -0,0 +1,19 @@
+diff -uNr konq.orig/konq-embed/src/mainwindowbase.cc konqueror-embedded-snapshot-20030705/konq-embed/src/mainwindowbase.cc
+--- konq.orig/konq-embed/src/mainwindowbase.cc 2005-01-26 14:34:06.335579881 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/mainwindowbase.cc 2005-01-26 14:35:55.839632151 +0100
+@@ -357,12 +357,12 @@
+
+ if ( u.isMalformed() )
+ {
+- if ( QRegExp( "^www" ).match( text ) == 0 )
+- u = KURL( text.prepend( "http://" ) );
+ #if defined(ENABLE_FTP)
+- else if ( QRegExp( "^ftp" ).match( text ) == 0 )
++ if ( QRegExp( "^ftp" ).match( text ) == 0 )
+ u = KURL( text.prepend( "ftp://" ) );
++ else
+ #endif
++ u = KURL( text.prepend( "http://" ) );
+ }
+
+ if ( !u.isMalformed() )
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/opie1.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/opie1.patch
new file mode 100644
index 0000000..de8943a
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/opie1.patch
@@ -0,0 +1,34 @@
+diff -urN konqueror-old/configure konqueror-embedded-snapshot-20030705/configure
+--- konqueror-old/configure 2003-08-03 17:49:31.000000000 -0700
++++ konqueror-embedded-snapshot-20030705/configure 2003-08-03 17:50:02.000000000 -0700
+@@ -24232,14 +24232,14 @@
+ if test "x$want_qpe" = "xyes"; then
+
+
+- if test -z "1.5.0"; then
++ if test -z "1.0.0"; then
+ qtopia_minver_maj=1
+ qtopia_minver_min=5
+ qtopia_minver_pat=0
+ else
+- qtopia_minver_maj=`echo "1.5.0" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
+- qtopia_minver_min=`echo "1.5.0" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
+- qtopia_minver_pat=`echo "1.5.0" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
++ qtopia_minver_maj=`echo "1.0.0" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
++ qtopia_minver_min=`echo "1.0.0" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
++ qtopia_minver_pat=`echo "1.0.0" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
+ fi
+
+ qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
+diff -urN konqueror-old/configure.in konqueror-embedded-snapshot-20030705/configure.in
+--- konqueror-old/configure.in 2003-08-03 17:49:31.000000000 -0700
++++ konqueror-embedded-snapshot-20030705/configure.in 2003-08-03 17:49:47.000000000 -0700
+@@ -53,7 +53,7 @@
+ want_qpe=$enableval,want_qpe=no)
+
+ if test "x$want_qpe" = "xyes"; then
+- AC_PATH_QTOPIA(1.5.0)
++ AC_PATH_QTOPIA(1.0.0)
+ dnl hack
+ CXXFLAGS="$CXXFLAGS -D_QT_QPE_"
+ fi
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/packing.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/packing.patch
new file mode 100644
index 0000000..be3f362
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/packing.patch
@@ -0,0 +1,21 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kjs/ustring.h~packing.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kjs/ustring.h
+@@ -154,11 +154,11 @@
+ /**
+ * @return Lower byte.
+ */
+- unsigned char& low() const { return ref().lo; }
++ unsigned char& low() const { return *((unsigned char*)&ref().lo); }
+ /**
+ * @return Higher byte.
+ */
+- unsigned char& high() const { return ref().hi; }
++ unsigned char& high() const { return *((unsigned char*)&ref().hi); }
+ /**
+ * @return Character converted to lower case.
+ */
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/useragent.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/useragent.patch
new file mode 100644
index 0000000..c2d9a10
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/useragent.patch
@@ -0,0 +1,27 @@
+--- konqueror-embedded-snapshot-20030705/konq-embed/dropin/kio/slavebase.cpp.old 2002-11-17 15:55:22.000000000 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/dropin/kio/slavebase.cpp 2004-08-23 20:47:06.000000000 +0200
+@@ -398,8 +398,8 @@
+
+ if ( m_config.find( key ) != m_config.end() )
+ return true;
+-
+- return false;
++
++ return key == QString::fromLatin1("UserAgent");
+ }
+
+ QString SlaveBase::metaData( const QString &key ) const
+@@ -410,7 +410,12 @@
+ {
+ it = m_config.find( key );
+
+- if ( it == m_config.end() )
++ /*
++ * special case in hasMetaData and metaData
++ */
++ if ( it == m_config.end() && key == QString::fromLatin1("UserAgent") )
++ return KProtocolManager::defaultUserAgent("me");
++ else
+ return QString::null;
+ }
+
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20030705/vit.patch b/recipes-qtopia/konqueror/konqueror-embedded-20030705/vit.patch
new file mode 100644
index 0000000..b45e9e6
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20030705/vit.patch
@@ -0,0 +1,18 @@
+--- konqueror-embedded-snapshot-20030705/konq-embed/src/main.cc~ 2003-07-03 21:37:09.000000000 +0400
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/main.cc 2005-02-21 23:02:24.000000000 +0300
+@@ -369,6 +369,7 @@
+ toplevel->show();
+
+ app.setMainWidget( toplevel );
++#endif
+
+ for ( int i = 1; i < argc; i++ )
+ {
+@@ -382,7 +383,6 @@
+ }
+ }
+ }
+-#endif
+
+ if ( !openedMainWindow )
+ openedMainWindow = toplevel->goSpecialURL( "init" );
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch b/recipes-qtopia/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch
new file mode 100644
index 0000000..9bd89f1
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch
@@ -0,0 +1,62 @@
+--- kdenox/devscripts/acinclude.m4.in.qt2_orig 2006-10-09 23:45:34.000000000 +0000
++++ kdenox/devscripts/acinclude.m4.in.qt2 2006-10-09 23:47:51.000000000 +0000
+@@ -4937,31 +4937,31 @@
+ AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+ KDE_SET_DEFAULT_BINDIRS
+- if test "x$prefix" = "xNONE"; then
++ dnl if test "x$prefix" = "xNONE"; then
+ dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- else
++ dnl KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
++ dnl else
+ dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+- kde_save_PATH="$PATH"
+- PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- PATH="$kde_save_PATH"
+- fi
+-
+- kde_libs_prefix=`$KDECONFIG --prefix`
+- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+- This means it has been moved since you installed it.
+- This won't work. Please recompile kdelibs for the new prefix.
+- ])
+- fi
+- kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+- kde_libs_suffix=`$KDECONFIG --libsuffix`
++ dnl kde_save_PATH="$PATH"
++ dnl PATH="$exec_prefix/bin:$prefix/bin:$PATH"
++ dnl KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
++ dnl PATH="$kde_save_PATH"
++ dnl fi
++
++ dnl kde_libs_prefix=`$KDECONFIG --prefix`
++ dnl if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
++ dnl AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
++ dnl This means it has been moved since you installed it.
++ dnl This won't work. Please recompile kdelibs for the new prefix.
++ dnl ])
++ dnl fi
++ dnl kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
++ dnl kde_libs_suffix=`$KDECONFIG --libsuffix`
+
+ AC_MSG_CHECKING([where to install])
+ if test "x$prefix" = "xNONE"; then
+ prefix=$kde_libs_prefix
+- AC_MSG_RESULT([$prefix (as returned by kde-config)])
++dnl AC_MSG_RESULT([$prefix (as returned by kde-config)])
+ else
+ dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+ given_prefix=$prefix
+@@ -4973,7 +4973,7 @@
+ exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+- AC_SUBST(KDECONFIG)
++ dnl AC_SUBST(KDECONFIG)
+ AC_SUBST(kde_libs_prefix)
+ AC_SUBST(kde_libs_htmldir)
+
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch b/recipes-qtopia/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch
new file mode 100644
index 0000000..c9f40c8
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch
@@ -0,0 +1,43 @@
+--- ./acinclude.m4
++++ ./acinclude.m4
+@@ -4937,31 +4937,11 @@ AC_DEFUN([KDE_SET_PREFIX],
+ AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+ KDE_SET_DEFAULT_BINDIRS
+- if test "x$prefix" = "xNONE"; then
+- dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- else
+- dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+- kde_save_PATH="$PATH"
+- PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- PATH="$kde_save_PATH"
+- fi
+-
+- kde_libs_prefix=`$KDECONFIG --prefix`
+- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+- This means it has been moved since you installed it.
+- This won't work. Please recompile kdelibs for the new prefix.
+- ])
+- fi
+- kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+- kde_libs_suffix=`$KDECONFIG --libsuffix`
+
+ AC_MSG_CHECKING([where to install])
+ if test "x$prefix" = "xNONE"; then
+ prefix=$kde_libs_prefix
+- AC_MSG_RESULT([$prefix (as returned by kde-config)])
++ AC_MSG_RESULT([$prefix (as NOT returned by kde-config)])
+ else
+ dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+ given_prefix=$prefix
+@@ -4973,7 +4953,6 @@ AC_DEFUN([KDE_SET_PREFIX],
+ exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+- AC_SUBST(KDECONFIG)
+ AC_SUBST(kde_libs_prefix)
+ AC_SUBST(kde_libs_htmldir)
+
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20070316/fix_configure.patch b/recipes-qtopia/konqueror/konqueror-embedded-20070316/fix_configure.patch
new file mode 100644
index 0000000..e5411a0
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20070316/fix_configure.patch
@@ -0,0 +1,22 @@
+--- kdenox/configure.in 2008-08-02 19:02:36.000000000 +0100
++++ kdenox/configure.in 2008-08-02 18:59:40.000000000 +0100
+@@ -6,6 +6,8 @@
+ # I lifted it in some mater. (Stephan Kulow)
+ # I used much code from Janos Farkas
+
++m4_pattern_allow([_AC_PATH_X_XMKMF])
++
+ dnl Process this file with autoconf to produce a configure script.
+
+ AC_INIT(acinclude.m4) dnl a source file from your sub dir
+--- kdenox/configure.in.in 2008-08-02 19:02:50.000000000 +0100
++++ kdenox/configure.in.in 2008-08-02 19:03:30.000000000 +0100
+@@ -2,6 +2,8 @@
+ # I lifted it in some mater. (Stephan Kulow)
+ # I used much code from Janos Farkas
+
++m4_pattern_allow([_AC_PATH_X_XMKMF])
++
+ dnl Process this file with autoconf to produce a configure script.
+
+ AC_INIT(acinclude.m4) dnl a source file from your sub dir
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch
new file mode 100644
index 0000000..6feb006
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch
@@ -0,0 +1,12 @@
+diff -Naur kdenox-orig/konq-embed/dropin/kapplication.h kdenox/konq-embed/dropin/kapplication.h
+--- kdenox-orig/konq-embed/dropin/kapplication.h 2007-02-12 10:25:57.000000000 +0100
++++ kdenox/konq-embed/dropin/kapplication.h 2007-03-15 06:07:32.000000000 +0100
+@@ -122,7 +122,7 @@
+ // required since kdelibs 3.4
+ void updateUserTimestamp(unsigned long = 0) {}
+
+- static int KApplication::startDragDistance();
++ static int startDragDistance();
+
+ signals:
+ // required by KHTMLView
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch
new file mode 100644
index 0000000..a662acb
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch
@@ -0,0 +1,756 @@
+diff -urNd --exclude-from=excludelist kdenox/acinclude.m4 kdenox/acinclude.m4
+--- kdenox/acinclude.m4 2007-02-12 22:26:21.000000000 +1300
++++ kdenox/acinclude.m4 2007-02-25 22:00:27.000000000 +1300
+@@ -880,7 +880,7 @@
+ )
+
+ AC_ARG_ENABLE(
+- embedded,
++ rtti-embedded,
+ AC_HELP_STRING([--enable-rtti-embedded],[enable rtti support for Qt-embedded]),
+ kde_use_qt_emb_rtti=$enableval,
+ kde_use_qt_emb_rtti=no
+diff -urNd --exclude-from=excludelist kdenox/configure.in kdenox/configure.in
+--- kdenox/configure.in 2007-02-12 22:26:21.000000000 +1300
++++ kdenox/configure.in 2007-02-25 17:49:59.000000000 +1300
+@@ -60,10 +60,10 @@
+
+
+ if test "x$want_qpe" = "xyes"; then
+- AC_PATH_QTOPIA(2.1.1)
++ AC_PATH_QTOPIA(1.0.0)
+ dnl hack
+ CXXFLAGS="$CXXFLAGS -D_QT_QPE_"
+- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
+ fi
+
+ dnl Checks for header files.
+diff -urNd --exclude-from=excludelist kdenox/configure.in.in kdenox/configure.in.in
+--- kdenox/configure.in.in 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/configure.in.in 2007-02-25 17:49:27.000000000 +1300
+@@ -56,10 +56,10 @@
+
+
+ if test "x$want_qpe" = "xyes"; then
+- AC_PATH_QTOPIA(2.1.1)
++ AC_PATH_QTOPIA(1.0.0)
+ dnl hack
+ CXXFLAGS="$CXXFLAGS -D_QT_QPE_"
+- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
+ fi
+
+ dnl Checks for header files.
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kfiledialog.cpp kdenox/konq-embed/dropin/kfiledialog.cpp
+--- kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-12 22:25:57.000000000 +1300
++++ kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-24 03:29:25.000000000 +1300
+@@ -23,6 +23,7 @@
+
+
+ #include "kfiledialog.h"
++#include "kdebug.h"
+
+ #include <qlayout.h>
+ #include <qconfig.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp
+--- kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-24 03:32:31.000000000 +1300
+@@ -23,7 +23,9 @@
+ */
+
+ #include "kprotocolmanager.h"
++#include <kdebug.h>
+ #include <kglobal.h>
++#include <klocale.h>
+ #include <kconfig.h>
+ #include <ioslave_defaults.h>
+ #include <kdeversion.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/progressbase.cpp kdenox/konq-embed/dropin/kio/progressbase.cpp
+--- kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-12 22:25:56.000000000 +1300
++++ kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-24 03:33:10.000000000 +1300
+@@ -18,6 +18,7 @@
+
+ #include "jobclasses.h"
+ #include "progressbase.h"
++#include <kdebug.h>
+
+ //namespace KIO {
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/ipkg/preinst kdenox/konq-embed/ipkg/preinst
+--- kdenox/konq-embed/ipkg/preinst 1970-01-01 12:00:00.000000000 +1200
++++ kdenox/konq-embed/ipkg/preinst 2007-02-25 21:20:10.000000000 +1300
+@@ -0,0 +1,15 @@
++#!/bin/sh
++
++prefix=/usr/kde/3.5
++prunefiles="lib/libkhtml.la lib/libkhtml.so lib/libkhtml.so.4.0.0"
++prunefiles="$prunefiles lib/libkhtml.so.4"
++prunefiles="$prunefiles lib/kjs_html.la lib/kjs_html.so"
++
++for _file in $prunefiles; do
++ file=$PKG_ROOT/$prefix/$_file;
++ if [ -f $file ]; then
++ echo "found old file $_file from b0rked konqueror ipkg. removing."
++ rm -f $file
++ fi
++done
++
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h
+--- kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-12 21:31:39.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-25 16:15:28.000000000 +1300
+@@ -26,6 +26,8 @@
+ #include <qvaluelist.h>
+ #include "kdelibs_export.h"
+
++#define QPtrList QList
++
+ class KMultipleDragPrivate;
+ /**
+ * This class makes it easy for applications to provide a drag object
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/css/Makefile.am kdenox/konq-embed/kdesrc/khtml/css/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-25 16:36:23.000000000 +1300
+@@ -39,7 +39,7 @@
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+ -I$(top_srcdir)/khtml -I$(top_srcdir)/libltdl -I$(top_srcdir) \
+ -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \
+- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ cssdir = $(kde_datadir)/khtml/css
+ css_DATA = html4.css quirks.css
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-25 16:35:07.000000000 +1300
+@@ -47,7 +47,7 @@
+ # css_extensions.h
+
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+- -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-25 17:24:35.000000000 +1300
+@@ -16,7 +16,7 @@
+ # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ # Boston, MA 02110-1301, USA.
+
+-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ KDE_CXXFLAGS = $(USE_EXCEPTIONS)
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp
+--- kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-25 17:27:39.000000000 +1300
+@@ -38,6 +38,10 @@
+ #include <qobject.h>
+ #include <kdebug.h>
+
++#if (QT_VERSION < 0x030000)
++#include "qt3regexp.h"
++#endif
++
+ #ifdef APPLE_CHANGES
+ #include "KWQLoader.h"
+ #else
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/html/Makefile.am kdenox/konq-embed/kdesrc/khtml/html/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-25 16:39:50.000000000 +1300
+@@ -43,7 +43,7 @@
+ -I$(top_srcdir)/kio/kssl \
+ -I$(top_srcdir)/kjs -I$(top_srcdir)/khtml -I$(top_srcdir) \
+ -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \
+- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ # Use "make doctypes" to regenerate doctypes.cpp from doctypes.gperf
+ doctypes: $(srcdir)/doctypes.gperf $(srcdir)/Makefile.am
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp
+--- kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-25 17:22:46.000000000 +1300
+@@ -3221,14 +3221,14 @@
+ {
+ khtml::RenderTextArea *parent= static_cast<khtml::RenderTextArea *>(obj->parent());
+ s = parent->text();
+- s = s.replace(0xa0, ' ');
++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' ');
+ tmpTextArea = parent;
+ }
+ else if ( renderLineText )
+ {
+ khtml::RenderLineEdit *parentLine= static_cast<khtml::RenderLineEdit *>(obj);
+ s = parentLine->widget()->text();
+- s = s.replace(0xa0, ' ');
++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' ');
+ }
+ else if ( obj->isText() )
+ {
+@@ -3256,7 +3256,7 @@
+ if ( isLink && obj->parent()!=tmpTextArea )
+ {
+ s = static_cast<khtml::RenderText *>(obj)->data().string();
+- s = s.replace(0xa0, ' ');
++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' ');
+ }
+ }
+ else if ( obj->isBR() )
+@@ -6785,9 +6785,9 @@
+ // get selected text and paste to the clipboard
+ #ifndef QT_NO_CLIPBOARD
+ QString text = selectedText();
+- text.replace(QChar(0xa0), ' ');
++ text.replace(QRegExp(QString(QChar(0xa0))), " ");
+ disconnect( kapp->clipboard(), SIGNAL( selectionChanged()), this, SLOT( slotClearSelection()));
+- kapp->clipboard()->setText(text,QClipboard::Selection);
++ kapp->clipboard()->setText(text);
+ connect( kapp->clipboard(), SIGNAL( selectionChanged()), SLOT( slotClearSelection()));
+ #endif
+ //kdDebug( 6000 ) << "selectedText = " << text << endl;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-25 16:33:47.000000000 +1300
+@@ -32,7 +32,7 @@
+ stringit.h htmlhashes.h helper.h shared.h arena.h
+
+ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/dcop -I$(top_srcdir)/kio -I$(top_srcdir)/libltdl \
+- -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-25 16:40:50.000000000 +1300
+@@ -42,7 +42,7 @@
+ render_generated.h enumerate.h
+
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+- -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-12 21:31:42.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-25 16:56:00.000000000 +1300
+@@ -46,12 +46,14 @@
+
+ #include <qcolor.h>
+ #include <qrect.h>
++#include <qtextstream.h>
+ #include <assert.h>
+
+ #include "render_object.h"
+
+ class QScrollBar;
+-template <class T> class QPtrVector;
++template <class T> class QVector;
++#define QPtrVector QVector
+
+ namespace khtml {
+ class RenderStyle;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-25 16:44:58.000000000 +1300
+@@ -46,6 +46,7 @@
+ #include <kdebug.h>
+ #include <kglobal.h>
+ #include <qpainter.h>
++#include <qtextstream.h>
+ #include "khtmlview.h"
+ #include <khtml_part.h>
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-25 16:56:49.000000000 +1300
+@@ -30,6 +30,7 @@
+ #include <qcolor.h>
+ #include <qptrvector.h>
+ #include <qmemarray.h>
++#include <qtextstream.h>
+
+ #include "rendering/render_box.h"
+ #include "rendering/render_block.h"
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-25 16:46:39.000000000 +1300
+@@ -31,6 +31,7 @@
+ #include "rendering/render_line.h"
+
+ #include <qptrvector.h>
++#include <qtextstream.h>
+ #include <assert.h>
+
+ class QPainter;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-25 16:38:27.000000000 +1300
+@@ -37,7 +37,7 @@
+
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+ -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_srcdir)/kwallet/client \
+- -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.cpp kdenox/konq-embed/kdesrc/kjs/dtoa.cpp
+--- kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-25 18:22:33.000000000 +1300
+@@ -1,4 +1,9 @@
+-#ifndef KONQ_EMBEDDED
++#include <config.h>
++
++#ifdef KONQ_EMBEDDED
++#include "stdlib.h"
++extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); }
++#else
+ /****************************************************************
+ *
+ * The author of this software is David M. Gay.
+@@ -175,8 +180,6 @@
+ #undef CONST
+ #endif
+
+-#include <config.h>
+-
+ #include "stdlib.h"
+
+ #ifdef WORDS_BIGENDIAN
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.h kdenox/konq-embed/kdesrc/kjs/dtoa.h
+--- kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-25 18:20:51.000000000 +1300
+@@ -23,14 +23,11 @@
+ #ifndef _KJS_DTOA_H_
+ #define _KJS_DTOA_H_
+
+-#ifndef KONQ_EMBEDDED
+ extern "C" double kjs_strtod(const char *s00, char **se);
++#ifndef KONQ_EMBEDDED
+ extern "C" char *kjs_dtoa(double d, int mode, int ndigits,
+ int *decpt, int *sign, char **rve);
+ extern "C" void kjs_freedtoa(char *s);
+-#else
+-#include "stdlib.h"
+-extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); }
+ #endif
+-
++
+ #endif /* _KJS_DTOA_H */
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/number_object.cpp kdenox/konq-embed/kdesrc/kjs/number_object.cpp
+--- kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-25 18:05:36.000000000 +1300
+@@ -20,6 +20,8 @@
+ *
+ */
+
++#include <config.h>
++
+ #include "value.h"
+ #include "object.h"
+ #include "types.h"
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/ustring.cpp kdenox/konq-embed/kdesrc/kjs/ustring.cpp
+--- kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-25 18:10:22.000000000 +1300
+@@ -21,9 +21,7 @@
+ *
+ */
+
+-#ifdef HAVE_CONFIG_H
+ #include <config.h>
+-#endif
+
+ #include <stdlib.h>
+ #include <stdio.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/actions/konqe.rc kdenox/konq-embed/src/actions/konqe.rc
+--- kdenox/konq-embed/src/actions/konqe.rc 1970-01-01 12:00:00.000000000 +1200
++++ kdenox/konq-embed/src/actions/konqe.rc 2007-02-25 21:20:10.000000000 +1300
+@@ -0,0 +1,107 @@
++<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
++<kpartgui name="konqe" version="1">
++<Create>
++ <Action name="file_new" stdAction="true" icon="filenew.png"/>
++ <Action name="file_open" stdAction="true" icon="fileopen.png"/>
++ <Action name="file_save" stdAction="true" icon="filesave.png"/>
++ <Action name="file_save_as" stdAction="true" icon="filesaveas.png"/>
++ <Action name="file_print" stdAction="true" icon="fileprint.png"/>
++ <Action name="go_home" stdAction="true" icon="gohome.png"/>
++ <Action name="go_back" stdAction="true" icon="back.png"/>
++ <Action name="go_forward" stdAction="true" icon="forward.png"/>
++ <Action name="edit_undo" stdAction="true" icon="undo.png"/>
++ <Action name="edit_redo" stdAction="true" icon="redo.png"/>
++ <Action name="edit_cut" stdAction="true" icon="editcut.png"/>
++ <Action name="edit_copy" stdAction="true" icon="editcopy.png"/>
++ <Action name="edit_paste" stdAction="true" icon="editpaste.png"/>
++ <Action name="edit_find" stdAction="true" icon="find.png"/>
++ <Action name="view_redisplay" stdAction="true" icon="reload.png"/>
++ <Action name="view_zoom" stdAction="true" popupMenu="true" icon="viewmag.png"/>
++ <Action name="bookmark_add" stdAction="true" icon="bookmark_add.png"/>
++ <Action name="bookmark_edit" stdAction="true" accel="" icon="bookmark.png"/>
++ <Action name="options_configure" stdAction="true" icon="configure.png"/>
++</Create>
++<Create>
++ <Action name="windows" popupMenu="true" icon="window_list.png">
++ <text>Windows List</text>
++ </Action>
++ <Action name="view_close" accel="Ctrl+W" icon="fileclose.png">
++ <text>Close View</text>
++ </Action>
++ <Action name="view_next" accel="Ctrl+Tab" icon="2rightarrow.png">
++ <text>Next View</text>
++ </Action>
++ <Action name="view_autoload_images" toggle="true">
++ <text>Autoload Images</text>
++ </Action>
++ <Action name="go_stop" icon="stop.png">
++ <text>Stop Loading</text>
++ </Action>
++ <Action name="info_security" icon="lock.png">
++ <text>Show Security Information</text>
++ </Action>
++ <Action name="options_show_location" accel="F11" toggle="true">
++ <text>Show Location Bar</text>
++ </Action>
++ <Action name="options_show_sidebar" accel="F12" toggle="true">
++ <text>Show Side Bar</text>
++ </Action>
++ <Action name="options_show_statusbar" stdAction="true" accel="F10"/>
++ <Action name="main_menu" popupMenu="true" icon="gear.png">
++ <text>Main Menu</text>
++ </Action>
++ <Action name="view_load_images" icon="images_display.png">
++ <text>Load Images</text>
++ </Action>
++</Create>
++<Menu name="main_menu">
++ <Action name="file_new"/>
++ <Separator/>
++ <Action name="view_autoload_images"/>
++ <Action name="options_show_statusbar"/>
++ <Action name="options_show_location"/>
++ <Action name="options_show_sidebar"/>
++ <Separator/>
++ <Action name="edit_find"/>
++ <Separator/>
++ <Action name="options_configure"/>
++ <Separator/>
++ <Action name="bookmark_add"/>
++ <Action name="bookmark_edit"/>
++ <Action name="bookmarks"/>
++ <Separator/>
++ <Action name="view_next"/>
++ <Action name="view_close"/>
++</Menu>
++<ToolBar name="main_bar">
++ <Action name="main_menu"/>
++ <ToolBar name="browser_bar"/>
++ <ToolBar name="edit_bar"/>
++ <Spacer/>
++ <Action name="windows"/>
++</ToolBar>
++<ToolBar name="browser_bar" newline="true">
++ <Action name="file_print"/>
++ <Action name="go_back"/>
++ <Action name="go_forward"/>
++ <Action name="go_home"/>
++ <Action name="view_redisplay"/>
++ <Action name="go_stop"/>
++ <Separator/>
++ <Action name="info_security"/>
++ <Action name="view_zoom"/>
++ <Action name="view_load_images"/>
++</ToolBar>
++<ToolBar name="edit_bar" newline="true">
++ <Action name="file_open"/>
++ <Action name="file_save"/>
++ <Action name="file_save_as"/>
++ <Action name="file_print"/>
++ <Separator/>
++ <Action name="edit_undo"/>
++ <Action name="edit_redo"/>
++ <Action name="edit_cut"/>
++ <Action name="edit_copy"/>
++ <Action name="edit_paste"/>
++</ToolBar>
++</kpartgui>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditimpl.cc kdenox/konq-embed/src/bookmarkeditimpl.cc
+--- kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-25 19:17:29.000000000 +1300
+@@ -24,6 +24,8 @@
+
+ #include "bookmarkeditimpl.h"
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
+ #include "mainwindowbase.h"
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditor.cc kdenox/konq-embed/src/bookmarkeditor.cc
+--- kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-25 17:40:34.000000000 +1300
+@@ -16,6 +16,8 @@
+ #include <qimage.h>
+ #include <qpixmap.h>
+
++#include <kstandarddirs.h>
++
+ namespace
+ {
+ QPixmap getPngPixmap( const QString &name )
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.cc kdenox/konq-embed/src/bookmarkeditorhierarchical.cc
+--- kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-25 20:46:27.000000000 +1300
+@@ -22,11 +22,20 @@
+
+ */
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
++#include <xmltree.h>
++#include <qtoolbutton.h>
++#include <qlineedit.h>
++#include <qlabel.h>
++
+ #include "bookmarkeditorhierarchical.h"
+ #include <assert.h>
+ #include "bookmarks.h"
++#include "bookmarkeditimpl.h"
++
+
+ //////// HELPER FUNCTIONS /////////////////////////////////
+ namespace {
+@@ -204,7 +213,7 @@
+ void BookmarkEditorHierarchical::newFolder()
+ {
+ BookmarkEdit *edit = new BookmarkEdit( this );
+- edit->setCaption( i18n( "New Folder" ) );
++ edit->setCaption( tr( "New Folder" ) );
+ edit->location->setEnabled(false);
+ edit->location->hide();
+ edit->TextLabel2->hide();
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.h kdenox/konq-embed/src/bookmarkeditorhierarchical.h
+--- kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-25 18:27:17.000000000 +1300
+@@ -22,9 +22,10 @@
+ #ifndef __bookmarkeditorhierarchical_h__
+ #define __bookmarkeditorhierarchical_h__
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
+-#include <config.h>
+ #include "bookmarkeditorimpl.h"
+
+ class XMLElement;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorimpl.cc kdenox/konq-embed/src/bookmarkeditorimpl.cc
+--- kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-25 19:16:40.000000000 +1300
+@@ -23,12 +23,12 @@
+
+ #include "bookmarkeditorimpl.h"
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
+ #include "bookmarkeditimpl.h"
+
+-#include <config.h>
+-
+ #include "bookmarks.h"
+ #include "xmltree.h"
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.cc kdenox/konq-embed/src/bookmarks.cc
+--- kdenox/konq-embed/src/bookmarks.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarks.cc 2007-02-25 18:28:08.000000000 +1300
+@@ -24,6 +24,8 @@
+
+ #if defined(ENABLE_BOOKMARKS)
+
++#warning BOOKMARKS ARE ENABLED
++
+ #include "bookmarks.h"
+ #include "xmltree.h"
+ #include "mainwindowbase.h"
+@@ -39,6 +41,7 @@
+ #include <qstring.h>
+ #include <qwidget.h>
+ #include <qfile.h>
++#include <qtimer.h>
+
+ #include <klocale.h>
+ #include <kstandarddirs.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.h kdenox/konq-embed/src/bookmarks.h
+--- kdenox/konq-embed/src/bookmarks.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarks.h 2007-02-25 18:26:32.000000000 +1300
+@@ -34,6 +34,8 @@
+
+ #include <kurl.h>
+
++#define QPtrList QList
++
+ class QPopupMenu;
+ class XMLElement;
+ class ActionMenu;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.cc kdenox/konq-embed/src/mainwindow_qpe.cc
+--- kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-25 17:46:32.000000000 +1300
+@@ -90,7 +90,7 @@
+ return iconSet;
+ }
+
+-void MainWindowBase::statusJustText( const QString &_msg, bool )
++void MainWindowQPE::statusJustText( const QString &_msg, bool )
+ {
+ QString msg = _msg;
+ msg.replace( QRegExp( "</?qt>" ), QString::null );
+@@ -99,7 +99,7 @@
+ Global::statusMessage( msg );
+ }
+
+-void MainWindowBase::statusMessage( const QString &_msg, bool visible )
++void MainWindowQPE::statusMessage( const QString &_msg, bool visible )
+ {
+ statusJustText( _msg, visible );
+ }
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.h kdenox/konq-embed/src/mainwindow_qpe.h
+--- kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-25 17:47:23.000000000 +1300
+@@ -39,6 +39,10 @@
+
+ protected:
+ virtual QIconSet loadPixmap( const char * const xpm[] );
++
++protected slots:
++ virtual void statusJustText( const QString &msg, bool visible );
++ virtual void statusMessage( const QString &msg, bool visible );
+ };
+
+ #endif
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_road.cc kdenox/konq-embed/src/mainwindow_road.cc
+--- kdenox/konq-embed/src/mainwindow_road.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_road.cc 2007-02-25 20:32:12.000000000 +1300
+@@ -20,10 +20,11 @@
+
+ #ifdef KONQ_GUI_ROAD
+
++#include <config.h>
++
+ #include "mainwindow_road.h"
+ #include "popupaction.h"
+
+-
+ #include <qpopupmenu.h>
+ #include <qtoolbar.h>
+ #include <qaction.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_x11.cc kdenox/konq-embed/src/mainwindow_x11.cc
+--- kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-25 20:33:10.000000000 +1300
+@@ -21,6 +21,8 @@
+
+ // Implementation of the X11 GUI
+
++#include <config.h>
++
+ #include "mainwindow_x11.h"
+ #include "popupaction.h"
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.cc kdenox/konq-embed/src/roadtabbar.cc
+--- kdenox/konq-embed/src/roadtabbar.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/roadtabbar.cc 2007-02-25 17:44:19.000000000 +1300
+@@ -18,6 +18,9 @@
+ Boston, MA 02110-1301, USA.
+ */
+
++#include <qaction.h>
++#include <kconfig.h>
++
+ #include "roadtabbar.h"
+
+ RoadTabParams::RoadTabParams( const QIconSet &defaultIS, const QIconSet &loadingIS,
+@@ -114,12 +117,12 @@
+
+ void RoadTabBar::initContextMenu()
+ {
+- QAction *qa = new QAction( QString::null, i18n( "&Close Tab" ), 0, this, "contextTabClose" );
++ QAction *qa = new QAction( QString::null, tr( "&Close Tab" ), 0, this, "contextTabClose" );
+ connect( qa, SIGNAL( activated() ), this, SLOT( contextClose() ) );
+ qa->addTo( &m_contextMenu );
+ m_contextMenuCloseId = m_contextMenu.idAt( 0 );
+
+- qa = new QAction( QString::null, i18n( "&New tab" ), 0, this, "contextTabNew" );
++ qa = new QAction( QString::null, tr( "&New tab" ), 0, this, "contextTabNew" );
+ connect( qa, SIGNAL( activated() ), this, SIGNAL( requestNewView() ) );
+ qa->addTo( &m_contextMenu );
+ }
+@@ -184,7 +187,7 @@
+ {
+ QString caption( text );
+ if ( caption.isEmpty() )
+- caption = i18n( "Blank" );
++ caption = tr( "Blank" );
+ // the caption may not exceed a given width, so shorten it if necessary
+ // the following is inefficient, but clear, correct, and unlikely to be a bottleneck
+ if ( m_params.fontMetrics.width( caption ) > m_params.maxWidth )
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.h kdenox/konq-embed/src/roadtabbar.h
+--- kdenox/konq-embed/src/roadtabbar.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/roadtabbar.h 2007-02-25 17:42:40.000000000 +1300
+@@ -22,6 +22,9 @@
+ #define __roadtabbar_h__
+
+ #include <qtabbar.h>
++#include <qpopupmenu.h>
++
++#include "view.h"
+
+ struct RoadTabParams
+ {
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/run.cc kdenox/konq-embed/src/run.cc
+--- kdenox/konq-embed/src/run.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/run.cc 2007-02-25 17:34:35.000000000 +1300
+@@ -24,6 +24,7 @@
+ #include "view.h"
+
+ #include <khtml_part.h>
++#include <khtml_ext.h>
+
+ Run::Run( View *view, const KURL &url, const KParts::URLArgs &args )
+ : KHTMLRun( static_cast<KHTMLPart *>(view->part()), 0,
+@@ -48,7 +49,7 @@
+ // if ( isTextExecutable(mimeType) )
+ // mimeType = QString::fromLatin1("text/plain"); // view, don't execute
+ QString suggestedFilename = m_strURL.filename();
+- KHTMLPopupGUIClient::saveURL( part()->widget(), i18n( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type );
++ KHTMLPopupGUIClient::saveURL( part()->widget(), QObject::tr( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type );
+
+ m_bFinished = true;
+ emit error();
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/khtml/khtml_ext.cpp kdenox/konq-embed/dropin/khtml/khtml_ext.cpp
+--- kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-12 22:25:56.000000000 +1300
++++ kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-24 03:38:24.000000000 +1300
+@@ -115,7 +115,8 @@
+ const QString &filter, long cacheId,
+ const QString & suggestedFilename, const QString& mimeType )
+ {
+- QString name = QString::fromLatin1( "index.html" );
++/*
++QString name = QString::fromLatin1( "index.html" );
+ if ( !suggestedFilename.isEmpty() )
+ name = suggestedFilename;
+ else if ( !url.fileName().isEmpty() )
+@@ -166,6 +167,7 @@
+
+ if ( destURL.isValid() )
+ saveURL(url, destURL, metadata, cacheId, f);
++*/
+ }
+
+ void KHTMLPopupGUIClient::saveURL( const KURL &url, const KURL &destURL,
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.desktop b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.desktop
new file mode 100644
index 0000000..cb84c96
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Exec=konqueror
+Icon=konqueror/konqueror
+Type=Application
+Name=Konqueror
+Comment=Konqueror browser
diff --git a/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.png b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.png
new file mode 100644
index 0000000..879d470
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded-20070316/konqueror.png
Binary files differ
diff --git a/recipes-qtopia/konqueror/konqueror-embedded_20030705.bb b/recipes-qtopia/konqueror/konqueror-embedded_20030705.bb
new file mode 100644
index 0000000..264ae7b
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded_20030705.bb
@@ -0,0 +1,59 @@
+DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition"
+HOMEPAGE = "http://www.konqueror.org/embedded"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+DEPENDS = "libqpe-opie openssl libpcre"
+LICENSE = "LGPL GPL"
+PR = "r5"
+
+# Note if this .bb files fails with the error:
+# "No rule to make target `-lpcre', needed by `konqueror'. Stop."
+# a workaround is to install the libpcre3-dev package onto your build
+# machine (Ubuntu/Debain) or your distro's equivalent (FC = pcre-devel).
+
+SRC_URI = "http://devel-home.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-${PV}.tar.gz \
+ file://opie1.patch \
+ file://packing.patch \
+ file://include_qconfig.patch \
+ file://useragent.patch \
+ file://kcookiejar-merge.patch \
+ file://malformed.patch \
+ file://cachepath.patch \
+ file://vit.patch \
+ file://gcc4.patch \
+ file://konq-embedrc"
+S = "${WORKDIR}/konqueror-embedded-snapshot-${PV}"
+
+inherit autotools
+
+FILES_${PN} = "${palmtopdir}"
+
+export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
+export MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export UIC = "${STAGING_BINDIR_NATIVE}/uic"
+
+EXTRA_OECONF = '--prefix=${palmtopdir} --exec-prefix=${palmtopdir} \
+ --enable-static --disable-shared --disable-debug \
+ --with-javascript=static --enable-qpe --enable-qt-embedded \
+ --with-extra-includes=${STAGING_INCDIR} --with-extra-libs=${STAGING_LIBDIR} \
+ --with-ssl-version=0.9.7c --with-ssl-dir=${STAGING_LIBDIR}/.. \
+ --with-qt-dir=${QTDIR} --with-qtopia-dir=${OPIEDIR} \
+ --enable-libsuffix="" '
+
+CXXFLAGS += "-DOPIE_NO_ERASE_RECT_HACKFIX -DOPIE_NEW_MALLOC"
+
+do_compile_prepend() {
+ perl admin/am_edit
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/share/
+ install -d ${D}${palmtopdir}/share/config/
+
+ install -m 0644 ${WORKDIR}/konq-embedrc ${D}${palmtopdir}/share/config/
+
+ autotools_do_install
+}
+
+SRC_URI[md5sum] = "30dc3e109124e8532c7c0ed6ad3ec6fb"
+SRC_URI[sha256sum] = "305a7178d3351ea5e1faad157c2f056b633fbbabc006e19165a55314e9352d7b"
diff --git a/recipes-qtopia/konqueror/konqueror-embedded_20060404.bb b/recipes-qtopia/konqueror/konqueror-embedded_20060404.bb
new file mode 100644
index 0000000..177b5df
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded_20060404.bb
@@ -0,0 +1,82 @@
+DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.konqueror.org/"
+DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native"
+LICENSE = "LGPL GPL"
+PR = "r3"
+
+# this Konqueror needs the KDEDIR set and the font helvetica installed on the target
+
+inherit autotools
+
+SRC_URI = "svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.1;module=kdelibs;date=${PV} \
+ svn://anonsvn.kde.org/home/kde/trunk;module=kdenox;date=${PV} \
+ file://gcc4.patch \
+ file://dont-use-kde-config.patch"
+# uncomment this for a static build
+# file://inject-extraflags.patch"
+S = "${WORKDIR}/kdenox"
+
+export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
+export MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export UIC = "${STAGING_BINDIR_NATIVE}/uic"
+#export exec_prefix = "${palmtopdir}"
+export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS"
+export PCRE_CONFIG = "invalid"
+# uncomment this for a static build
+# EXTRAFLAGS = "-lts"
+# EXTRAFLAGS_c7x0 = "-lts -laticore"
+export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'"
+
+EXTRA_OECONF = '--prefix=${palmtopdir} \
+ --exec-prefix=${palmtopdir} \
+ --includedir=${STAGING_INCDIR} \
+ --with-extra-includes=${STAGING_INCDIR} \
+ --with-extra-libs=${STAGING_LIBDIR} \
+ --with-ssl-version=0.9.7e \
+ --with-ssl-dir=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --with-qt-includes=${STAGING_DIR_HOST}/qt2/include \
+ --with-qt-libraries=${STAGING_DIR_HOST}/qt2/lib \
+ --enable-fontsubs \
+ --with-konq-tmp-prefix=/tmp/kde-cache \
+# --enable-static \
+ --disable-static \
+ --enable-shared \
+ --disable-debug \
+ --with-gui=road \
+ --with-ipv6-lookup=no \
+ --without-xinerama \
+ --disable-scrollbars \
+ --disable-selection \
+ --disable-bookmarks \
+ --with-javascript=static \
+ --enable-debug=yes \
+ --disable-printing \
+ --enable-pcre \
+ --without-arts \
+ --enable-jshostext \
+ --disable-selection \
+ --enable-final \
+ --enable-qt-embedded \
+ --enable-rtti-embedded \
+ --enable-mt \
+ --enable-qt-mt\
+ --enable-fwnewepg=yes \
+ --enable-embedded '
+
+do_configure_prepend() {
+ cd ${S}
+ if ! test -L admin
+ then
+ ln -s ../kdelibs/admin admin
+ fi
+ make -f Makefile.cvs
+}
+
+do_compile_prepend() {
+ perl admin/am_edit
+}
+
+FILES_${PN} = "${palmtopdir} ${datadir}"
+
diff --git a/recipes-qtopia/konqueror/konqueror-embedded_20070316.bb b/recipes-qtopia/konqueror/konqueror-embedded_20070316.bb
new file mode 100644
index 0000000..06d422f
--- /dev/null
+++ b/recipes-qtopia/konqueror/konqueror-embedded_20070316.bb
@@ -0,0 +1,102 @@
+DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.konqueror.org/"
+DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native"
+LICENSE = "LGPL GPL"
+PR = "r7"
+
+# this Konqueror needs the KDEDIR set and the font helvetica installed on the target
+
+inherit autotools
+
+SRC_URI = "http://www.basyskom.de/uploads/175/37/kdenox_snapshot_qt2_20070316.tar.bz2 \
+ file://dont-use-kde-config.patch \
+ file://konqe_new_opie.patch \
+ file://konqe-kapplication.patch \
+ file://fix_configure.patch \
+ file://fix_acinclude.patch \
+ file://fix_KDE_LDPATH_HACK.patch \
+ "
+S = "${WORKDIR}/kdenox"
+
+export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
+export MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export UIC = "${STAGING_BINDIR_NATIVE}/uic"
+#export exec_prefix = "${palmtopdir}"
+#export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS"
+export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DENABLE_BOOKMARKS"
+export PCRE_CONFIG = "invalid"
+# uncomment this for a static build
+# EXTRAFLAGS = "-lts"
+# EXTRAFLAGS_c7x0 = "-lts -laticore"
+export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'"
+
+EXTRA_OECONF = '--prefix=${palmtopdir} \
+ --exec-prefix=${palmtopdir} \
+# --includedir=${STAGING_INCDIR} \
+ --includedir=/usr/include \
+ --with-extra-includes=${STAGING_INCDIR} \
+ --with-extra-libs=${STAGING_LIBDIR} \
+ --with-qtopia-dir=${OPIEDIR} \
+ --with-ssl-version=0.9.7e \
+ --with-ssl-dir=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --with-qt-includes=${STAGING_DIR_HOST}/qt2/include \
+ --with-qt-libraries=${STAGING_DIR_HOST}/qt2/lib \
+ --with-qt-dir=${QTDIR} \
+ --enable-fontsubs \
+ --with-konq-tmp-prefix=/tmp/kde-cache \
+# --enable-static \
+ --disable-static \
+ --enable-shared \
+ --disable-debug \
+ --with-gui=road \
+ --with-ipv6-lookup=no \
+ --without-xinerama \
+# --disable-scrollbars \
+ --disable-selection \
+ --disable-bookmarks \
+ --with-javascript=static \
+ --enable-debug=yes \
+ --disable-printing \
+# --enable-pcre \
+ --disable-pcre \
+ --without-arts \
+ --enable-jshostext \
+ --disable-selection \
+ --enable-final \
+ --enable-qt-embedded \
+ --enable-rtti-embedded \
+ --enable-mt \
+ --enable-qpe \
+ --enable-qt-mt \
+ --enable-fwnewepg=yes \
+ --enable-embedded '
+
+do_configure_prepend() {
+ cd ${S}
+ if ! test -L admin
+ then
+ ln -s ../kdelibs/admin admin
+ fi
+}
+
+do_compile_prepend() {
+ perl admin/am_edit
+}
+
+do_install_append() {
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -m 0644 ${FILESDIR}/konqueror.desktop ${D}${palmtopdir}/apps/Applications/
+ install -d ${D}${palmtopdir}/pics/konqueror
+ install -m 0644 ${FILESDIR}/konqueror.png ${D}${palmtopdir}/pics/konqueror/
+ mv ${D}${palmtopdir}/bin ${D}${bindir}
+ mv ${D}${bindir}/konqueror ${D}${bindir}/konqueror.bin
+ { echo '#!/bin/sh' ; echo "KDEDIR=/usr exec ${bindir}/konqueror.bin" ; } > ${D}${bindir}/konqueror
+ chmod 0755 ${D}${bindir}/konqueror
+}
+
+FILES_${PN} = "${palmtopdir} ${datadir} ${bindir}/konqueror* ${libdir}/libkonq*"
+
+SRC_URI[md5sum] = "3a9e14a245d293d143715c0318e3d0bd"
+SRC_URI[sha256sum] = "63a7d777cfb610c06c3778b4fc780a7e3f4158b5a7125588ccbc0c59f11b48b8"
diff --git a/recipes-qtopia/kstars/kstars-embedded-0.8.5/gcc45-compilation-fixes.patch b/recipes-qtopia/kstars/kstars-embedded-0.8.5/gcc45-compilation-fixes.patch
new file mode 100644
index 0000000..4004ede
--- /dev/null
+++ b/recipes-qtopia/kstars/kstars-embedded-0.8.5/gcc45-compilation-fixes.patch
@@ -0,0 +1,34 @@
+Index: kstars/kstars.cpp
+===================================================================
+--- kstars.orig/kstars.cpp
++++ kstars/kstars.cpp
+@@ -37,9 +37,9 @@
+ #include <qpe/mimetype.h>
+ #include <qpe/applnk.h>
+
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <stream.h>
++#include <cstdio>
++#include <cstdlib>
++#include <iostream>
+
+ #include "timedialog.h"
+ #include "locationdialog.h"
+Index: kstars/skymap.cpp
+===================================================================
+--- kstars.orig/skymap.cpp
++++ kstars/skymap.cpp
+@@ -36,9 +36,9 @@
+ #include <qpe/mimetype.h>
+ #include <qpe/applnk.h>
+
+-#include <math.h>
+-#include <stdlib.h>
+-#include <stream.h>
++#include <cmath>
++#include <cstdlib>
++#include <iostream>
+ #include <unistd.h>
+
+ #include "kstars.h"
diff --git a/recipes-qtopia/kstars/kstars-embedded_0.8.5.bb b/recipes-qtopia/kstars/kstars-embedded_0.8.5.bb
new file mode 100644
index 0000000..a792972
--- /dev/null
+++ b/recipes-qtopia/kstars/kstars-embedded_0.8.5.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "KDE Stars: The Universe, in your hands! QtE based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "kstars"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}/apps/Applications"
+PR = "r2"
+
+SRC_URI = "http://kstars.sourceforge.net/kstars-embedded-${PV}.tar.gz \
+ file://gcc45-compilation-fixes.patch \
+ "
+S = "${WORKDIR}/kstars"
+
+inherit opie
+
+export OE_QMAKE_LINK="${CXX}"
+EXTRA_QMAKEVARS_POST += 'DEFINES+=I18N_NOOP='
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/pics/kstars \
+ ${D}${palmtopdir}/share/apps/kstars
+ cp -pPR ${WORKDIR}/pics ${D}${palmtopdir}
+ cp -pPR ${WORKDIR}/share/apps/kstars ${D}${palmtopdir}/share/apps/
+}
+
+SRC_URI[md5sum] = "ae02647516a4a5c47674316ef8343c11"
+SRC_URI[sha256sum] = "650f0b3ae4d30282b191e456ebf2679a4ec549da83f69667bd4396bad9abf9f5"
diff --git a/recipes-qtopia/mileage/mileage_cvs.bb b/recipes-qtopia/mileage/mileage_cvs.bb
new file mode 100644
index 0000000..2331ded
--- /dev/null
+++ b/recipes-qtopia/mileage/mileage_cvs.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "A Car Mileage Calculator."
+HOMEPAGE = "http://mileage.sourceforge.net"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+#Change to form x.y.z+cvs${SRCDATE} when 4.2.0 changes in PV
+SRCDATE = "20060814"
+PV = "4.2.0-cvs-${SRCDATE}"
+PR = "r2"
+
+SRC_URI = "cvs://anonymous@mileage.cvs.sourceforge.net/cvsroot/mileage;module=mileage"
+S = "${WORKDIR}/mileage"
+
+inherit palmtop
+export OE_QMAKE_LINK="${CXX}"
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Applications/
+ install -d ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/bin/
+ install -m 0755 ${PN} ${D}${palmtopdir}/bin/
+ install -m 0644 ${PN}.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${PN}.png ${D}${palmtopdir}/pics/
+#FIXME: Package and install help files seperatly
+}
+
diff --git a/recipes-qtopia/militaryalphabet/militaryalphabet_0.2.1.bb b/recipes-qtopia/militaryalphabet/militaryalphabet_0.2.1.bb
new file mode 100644
index 0000000..d760a8a
--- /dev/null
+++ b/recipes-qtopia/militaryalphabet/militaryalphabet_0.2.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Militaryalphabet"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "militaryalphabet"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+SRC_URI = "http://sickpeople.wmc-allstars.com/law/files/militaryalphabet/militaryalphabet_${PV}-r0_arm.tar.bz2"
+S = "${WORKDIR}/militaryalphabet"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/militaryalphabet
+ install -d ${D}${palmtopdir}/sounds/militaryalphabet
+ install -m 0755 ${WORKDIR}/militaryalphabet/pics/militaryalphabet.png ${D}${palmtopdir}/pics/
+ install -m 0755 ${WORKDIR}/militaryalphabet/sounds/*.wav ${D}${palmtopdir}/sounds/militaryalphabet/
+}
+
+
+SRC_URI[md5sum] = "7392786df07a2473f3c29b221f3dcbe5"
+SRC_URI[sha256sum] = "e1edc43af77f5fef64dffc30551cd540b1d90eb669b011a02bfedbd6947e3805"
diff --git a/recipes-qtopia/nonworking/qtella/qtella_0.6.5.bb b/recipes-qtopia/nonworking/qtella/qtella_0.6.5.bb
new file mode 100644
index 0000000..382a59c
--- /dev/null
+++ b/recipes-qtopia/nonworking/qtella/qtella_0.6.5.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "A GNet Client for Qtopia/Opie based Palmtop Environments"
+SECTION = "opie"
+PRIORITY = "optional"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qtella/qtella-${PV}.tar.gz"
+
+inherit autotools
+
+EXTRA_OECONF = "--with-qt-dir=${STAGING_LIBDIR}/.. --with-qt-moc=${STAGING_BINDIR_NATIVE}/moc --with-qt-uic=${STAGING_BINDIR_NATIVE}/uic \
+ --with-qt-includes=${STAGING_INCDIR}/ --with-qt-libs=${STAGING_LIBDIR}/ --with-kde=no --enable-sharp"
+
+
+SRC_URI[md5sum] = "210e5f014e348815d5b32cd26b605d9c"
+SRC_URI[sha256sum] = "0505bed70fca7137753c4650ed03981d56caacbf4e1bee773427999c2c1e4da5"
diff --git a/recipes-qtopia/nonworking/zaurss/zaurss_0.4.2.bb b/recipes-qtopia/nonworking/zaurss/zaurss_0.4.2.bb
new file mode 100644
index 0000000..6fd1cef
--- /dev/null
+++ b/recipes-qtopia/nonworking/zaurss/zaurss_0.4.2.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "ZauRSS is an RSS aggregator for Qtopia. It can manage multiple RSS feeds. \
+It can also work with NetFront3, and you can see RDF items with it. "
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.daionet.gr.jp/~knok/software/zaurss/"
+APPNAME = "zaurss"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+PR = "r0"
+
+SRC_URI = "http://www.daionet.gr.jp/~knok/software/zaurss/zaurss-${PV}.tar.gz"
+
+inherit opie
+
+OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/qpe"
+EXTRA_QMAKEVARS_POST = "INCLUDEPATH=dialog \
+ INCLUDEPATH+=qhttp \
+ INCLUDEPATH+=${QTDIR}/include"
+
+do_configure_prepend() {
+ rm -f Makefile
+ find . -name "moc*"|xargs rm -f
+}
+
+do_install () {
+ install -d ${D}/${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/*.png ${D}/${palmtopdir}/pics/
+
+}
+
+SRC_URI[md5sum] = "71c6e08a68aba6ed26cd80480da4160a"
+SRC_URI[sha256sum] = "52e8e83cbf00e4c66dd3e862e87cfa5e468089d8aaa78ca9c2d4e1f873cb1817"
diff --git a/recipes-qtopia/nonworking/zethereal/zethereal_1.0.0.bb b/recipes-qtopia/nonworking/zethereal/zethereal_1.0.0.bb
new file mode 100644
index 0000000..08f97c3
--- /dev/null
+++ b/recipes-qtopia/nonworking/zethereal/zethereal_1.0.0.bb
@@ -0,0 +1,58 @@
+DESCRIPTION = "The network packet dissector Ethereal, Qt/Embedded based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "glib-1.2 openssl"
+HOMEPAGE = "http://www.cartel-info.fr/pbiondi/zaurus/"
+APPNAME = "zethereal"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+PR = "r0"
+
+inherit autotools qmake_base
+
+EXTRA_OECONF = "--disable-ethereal \
+ --enable-tethereal \
+ --disable-editcap \
+ --disable-mergecap \
+ --disable-text2pcap \
+ --disable-idl2eth \
+ --without-ucdsnmp \
+ --disable-usr-local \
+ --with-pcap=${STAGING_LIBDIR}/.. \
+ --with-zlib=${STAGING_LIBDIR}/.. \
+ --without-x"
+
+export GLIB_CONFIG = "${STAGING_BINDIR_CROSS}/glib-config"
+
+CFLAGS += "-I${STAGING_INCDIR}/glib-1.2"
+LIBS += "-lglib-1.2"
+
+SRC_URI = "http://www.cartel-info.fr/pbiondi/zaurus/ethereal-0.9.5.tar.gz;name=ethereal \
+ http://www.cartel-info.fr/pbiondi/zaurus/zethereal-1.0.tar.gz;name=zethereal"
+S = "${WORKDIR}/ethereal-0.9.5"
+
+SRC_URI[ethereal.md5sum] = "a7a02706c0f22e56a45bd8999dbb35e3"
+SRC_URI[ethereal.sha256sum] = "793ee1a770b6388dce98b7f02eae69b31a8b2172dc69ff3b957376f7df6e8d79"
+SRC_URI[zethereal.md5sum] = "d9107c91098f231350c2abf91d4fcb82"
+SRC_URI[zethereal.sha256sum] = "e13b931584a9d27d77186c15fac60a7f3f8934af375d8640c44d2e9bc7adc0b4"
+
+do_compile() {
+ oe_runmake SUBDIRS="wiretap"
+ mv ${WORKDIR}/qtopia .
+ ${AR} r libzethereal.a packet-*.o afn.o asn1.o column.o conditions.o \
+ capture_stop_conditions.o follow.o in_cksum.o ipproto.o pcap-u \
+ til.o prefs.o print.o ps.o ptvcursor.o reassemble.o ringbuffer.o \
+ util.o xdlc.o xmlstub.o register.o
+ cd qtopia
+ qmake -spec ${QMAKESPEC} zethereal.pro && oe_runmake
+}
+
+do_stage() {
+ :
+}
+
+do_install() {
+ :
+}
+
diff --git a/recipes-qtopia/notez/notez-1.1.0/fix-encoding.patch b/recipes-qtopia/notez/notez-1.1.0/fix-encoding.patch
new file mode 100644
index 0000000..54e809b
--- /dev/null
+++ b/recipes-qtopia/notez/notez-1.1.0/fix-encoding.patch
@@ -0,0 +1,18 @@
+--- notez-1.1.0/editWindow.cpp.orig 2002-11-17 17:40:08 +0100
++++ notez-1.1.0/editWindow.cpp 2004-12-22 14:02:13 +0100
+@@ -32,6 +32,7 @@
+ } else {
+
+ QTextStream inStream(&datei);
++ inStream.setEncoding(QTextStream::UnicodeUTF8);
+ editArea->setText(inStream.read());
+ datei.close();
+
+@@ -53,6 +54,7 @@
+ } else {
+
+ QTextStream outStream(&datei);
++ outStream.setEncoding(QTextStream::UnicodeUTF8);
+ outStream << editArea->text();
+ datei.close();
+ this->accept();
diff --git a/recipes-qtopia/notez/notez-1.1.0/use-homedir.patch b/recipes-qtopia/notez/notez-1.1.0/use-homedir.patch
new file mode 100644
index 0000000..375b154
--- /dev/null
+++ b/recipes-qtopia/notez/notez-1.1.0/use-homedir.patch
@@ -0,0 +1,92 @@
+--- notez-1.1.0/mainWindow.cpp.orig 2002-11-17 19:43:34 +0100
++++ notez-1.1.0/mainWindow.cpp 2004-11-21 22:55:06 +0100
+@@ -7,11 +7,11 @@
+
+ // check if the directory plain exists, if not
+ // create it
+- QString d1("Documents/text");
++ QString d1(QDir::homeDirPath() + "/Documents/text");
+ QDir pd1(d1);
+ if (!pd1.exists())
+ {
+- QDir pd1("Documents");
++ QDir pd1(QDir::homeDirPath() + "/Documents");
+ if (!pd1.mkdir("text", FALSE))
+ {
+ QMessageBox::critical( 0, "noteZ",
+@@ -22,11 +22,11 @@
+ }
+ }
+
+- QString d2("Documents/text/plain");
++ QString d2(QDir::homeDirPath() + "/Documents/text/plain");
+ QDir pd2(d2);
+ if (!pd2.exists())
+ {
+- QDir pd2("Documents/text");
++ QDir pd2(QDir::homeDirPath() + "/Documents/text");
+ if (!pd2.mkdir("plain", FALSE))
+ {
+ QMessageBox::critical( 0, "noteZ",
+@@ -40,14 +40,14 @@
+
+ unsigned int item, convertCount = 0;
+ QString strippedName;
+- QDir moveDir("Documents/text");
++ QDir moveDir(QDir::homeDirPath() + "/Documents/text");
+ moveDir.setFilter(QDir::Files);
+ moveDir.setNameFilter("[0-9]*-[0-9]*-[0-9]*-[0-9]*-[0-9]*-[0-9]*.txt");
+
+ for (item = 0; item < moveDir.count(); item++) {
+ strippedName = moveDir[item].left(moveDir[item].find("."));
+- QFile oldFile("Documents/text/" + moveDir[item]);
+- QFile newFile("Documents/text/plain/" + strippedName + ".ntz");
++ QFile oldFile(QDir::homeDirPath() + "/Documents/text/" + moveDir[item]);
++ QFile newFile(QDir::homeDirPath() + "/Documents/text/plain/" + strippedName + ".ntz");
+ if (!oldFile.open(IO_ReadOnly))
+ QMessageBox::warning(0, "File i/o error", "Could not read\nDocuments/text/" + moveDir[item] + "\nfor conversion.");
+
+@@ -104,7 +104,7 @@
+
+ case QMessageBox::Yes:
+ this->selected = notesList->currentItem();
+- QFile::remove("Documents/text/plain/" + fileList[notesList->currentItem()]);
++ QFile::remove(QDir::homeDirPath() + "/Documents/text/plain/" + fileList[notesList->currentItem()]);
+ refreshList(notesList);
+ break;
+
+@@ -146,7 +146,7 @@
+ QDate today(QDate::currentDate());
+ QTime now(QTime::currentTime());
+ QString name;
+- this->editFile(name.sprintf("Documents/text/plain/%4i-%02i-%02i-%02i-%02i-%02i.ntz", today.year(), today.month(), today.day(), now.hour(), now.minute(), now.second()),
++ this->editFile(name.sprintf(QDir::homeDirPath() + "/Documents/text/plain/%4i-%02i-%02i-%02i-%02i-%02i.ntz", today.year(), today.month(), today.day(), now.hour(), now.minute(), now.second()),
+ true );
+
+ }
+@@ -159,7 +159,7 @@
+ if( notesList->count() > 0 )
+ {
+ this->selected = number;
+- this->editFile("Documents/text/plain/" + fileList[number],
++ this->editFile(QDir::homeDirPath() + "/Documents/text/plain/" + fileList[number],
+ false);
+ }
+
+@@ -173,14 +173,14 @@
+
+ liste->clear();
+
+- fileList.setPath("Documents/text/plain/");
++ fileList.setPath(QDir::homeDirPath() + "/Documents/text/plain/");
+ fileList.setFilter(QDir::Files);
+ fileList.setSorting(QDir::Name);
+ fileList.setNameFilter("*.ntz");
+
+ for (item = 0; item < fileList.count(); item++) {
+
+- QFile datei("Documents/text/plain/" + fileList[item]);
++ QFile datei(QDir::homeDirPath() + "/Documents/text/plain/" + fileList[item]);
+
+ if (!datei.open(IO_ReadOnly)) {
+
diff --git a/recipes-qtopia/notez/notez_1.1.0.bb b/recipes-qtopia/notez/notez_1.1.0.bb
new file mode 100644
index 0000000..99fc83a
--- /dev/null
+++ b/recipes-qtopia/notez/notez_1.1.0.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "simple note-taking application"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Henning Holtschneider <hh@holtschneider.com>"
+HOMEPAGE = "http://www.holtschneider.com/notez/"
+APPNAME = "notez"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+PR = "r1"
+
+SRC_URI = "http://www.holtschneider.com/notez/notez-${PV}.tar.gz \
+file://use-homedir.patch \
+file://fix-encoding.patch"
+
+inherit opie
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 notez.png ${D}${palmtopdir}/pics/noteZ.png
+}
+
+
+SRC_URI[md5sum] = "c348a626fc09265fa74a12470c83c113"
+SRC_URI[sha256sum] = "11ee0a660faca7993a2f525d2964391d135b9552d9e94abad6cb6c5f3983f964"
diff --git a/recipes-qtopia/nunome/files/nunome.patch b/recipes-qtopia/nunome/files/nunome.patch
new file mode 100644
index 0000000..450e160
--- /dev/null
+++ b/recipes-qtopia/nunome/files/nunome.patch
@@ -0,0 +1,197 @@
+# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
+--- nunome/dicman/nnmDicman.cpp~nunome.patch
++++ nunome/dicman/nnmDicman.cpp
+@@ -1,75 +1,4 @@
+-/*
+- $Id: nnmDicman.cpp,v 1.1.1.1 2005/06/29 22:24:22 leggewie Exp $
+-
+- Copyright (C) 2001-2002 AXE,Inc. <sg@axe-inc.co.jp>
+-
+- This file is part of Nunome-Qtopia.
+-
+- Nunome-Qtopia is free software; you can redistribute it and/or modify it
+- under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 2, or (at your option)
+- any later version.
+-
+- Nunome-Qtopia is distributed in the hope that it will be useful, but
+- WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Nunome; see the file COPYING. If not, write to
+- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+-
+-/* Dictinary maintenance tool */
+-
+-#include <qpeapplication.h>
+-#include <qlabel.h>
+-#include <qpainter.h>
+-#include <qpixmap.h>
+-#include <qwidget.h>
+-#include <qlayout.h>
+-#include <qpushbutton.h>
+-#include <qlineedit.h>
+-
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <unistd.h>
+-#include <sys/types.h>
+-#include <signal.h>
+-
+-extern "C" {
+-#include "Nnm.h"
+-#include "NnmFeature.h"
+-#include "nnmStub.h"
+-#include "NnmProto.h"
+-}
+-#include "nnmCanvas.h"
+-
+-class uiWidget : public QWidget
+-{
+-Q_OBJECT
+-
+-public:
+- uiWidget( QWidget *parent = 0, const char *name = 0, WFlags f=0 );
+-
+- int serverPID;
+- char *dictionaryPath;
+-
+-private slots:
+- void regist( void );
+- void clear( void );
+- void quit( void );
+-
+- void format( const QString & );
+-
+-private:
+- nnmCanvas *canvas;
+- QLineEdit *input;
+- ulong code;
+-
+- void updateDictionary( void );
+-};
+-
+-#include "moc_nnmDicman.cpp"
++#include "nnmDicman.h"
+
+ uiWidget::uiWidget( QWidget *parent, const char *name, WFlags f )
+ : QWidget( parent, name, f )
+--- nunome/ui/nunome.cpp~nunome.patch
++++ nunome/ui/nunome.cpp
+@@ -22,7 +22,7 @@
+
+ /* Nunome input-method */
+
+-#include <qpeapplication.h>
++#include <qpe/qpeapplication.h>
+ #include <qpainter.h>
+ #include <qpixmap.h>
+ #include <qwidget.h>
+--- nunome/ui/nunome.h~nunome.patch
++++ nunome/ui/nunome.h
+@@ -32,14 +32,14 @@
+ #include "nnmSelect.h"
+ #include "nnmSymbol.h"
+
+-#define PARAMETER_FILE_PATH "/usr/local/share/nunome/.nunome"
++#define PARAMETER_FILE_PATH "/opt/QtPalmtop/share/nunome/.nunome"
+
+-#define DEFAULT_SYSTEM_DICTIONARY "/usr/local/share/nunome/nunome_uni.dic"
+-#define DEFAULT_USER_DICTIONARY "/usr/local/share/nunome/user.dic"
++#define DEFAULT_SYSTEM_DICTIONARY "/opt/QtPalmtop/share/nunome/nunome_uni.dic"
++#define DEFAULT_USER_DICTIONARY "/opt/QtPalmtop/share/nunome/user.dic"
+ #define DEFAULT_TIMEOUT_MSEC 500
+ #define DEFAULT_LEARN_FLAG true
+-#define DEFAULT_SERVER_PROGRAM_PATH "/usr/local/share/nunome/nnmsrv"
+-#define DEFAULT_LEARN_PROGRAM_PATH "/usr/local/share/nunome/nnmDicman"
++#define DEFAULT_SERVER_PROGRAM_PATH "/opt/QtPalmtop/bin/nnmsrv"
++#define DEFAULT_LEARN_PROGRAM_PATH "/opt/QtPalmtop/bin/nnmDicman"
+
+ class nnmParameter
+ {
+--- nunome/ui/nunomeImpl.h~nunome.patch
++++ nunome/ui/nunomeImpl.h
+@@ -23,7 +23,7 @@
+ #ifndef NUNOMEIMPL_H
+ #define NUNOMEIMPL_H
+
+-#include <inputmethodinterface.h>
++#include <qpe/inputmethodinterface.h>
+
+ class Nunome;
+ class QPixmap;
+--- /dev/null
++++ nunome/dicman/nnmDicman.h
+@@ -0,0 +1,70 @@
++/*
++ $Id: nnmDicman.cpp,v 1.1.1.1 2005/06/29 22:24:22 leggewie Exp $
++
++ Copyright (C) 2001-2002 AXE,Inc. <sg@axe-inc.co.jp>
++
++ This file is part of Nunome-Qtopia.
++
++ Nunome-Qtopia is free software; you can redistribute it and/or modify it
++ under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2, or (at your option)
++ any later version.
++
++ Nunome-Qtopia is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with Nunome; see the file COPYING. If not, write to
++ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
++
++/* Dictinary maintenance tool */
++
++#include <qpe/qpeapplication.h>
++#include <qlabel.h>
++#include <qpainter.h>
++#include <qpixmap.h>
++#include <qwidget.h>
++#include <qlayout.h>
++#include <qpushbutton.h>
++#include <qlineedit.h>
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <signal.h>
++
++extern "C" {
++#include "Nnm.h"
++#include "NnmFeature.h"
++#include "nnmStub.h"
++#include "NnmProto.h"
++}
++#include "nnmCanvas.h"
++
++class uiWidget : public QWidget
++{
++Q_OBJECT
++
++public:
++ uiWidget( QWidget *parent = 0, const char *name = 0, WFlags f=0 );
++
++ int serverPID;
++ char *dictionaryPath;
++
++private slots:
++ void regist( void );
++ void clear( void );
++ void quit( void );
++
++ void format( const QString & );
++
++private:
++ nnmCanvas *canvas;
++ QLineEdit *input;
++ ulong code;
++
++ void updateDictionary( void );
++};
diff --git a/recipes-qtopia/nunome/files/timer.patch b/recipes-qtopia/nunome/files/timer.patch
new file mode 100644
index 0000000..ccd6564
--- /dev/null
+++ b/recipes-qtopia/nunome/files/timer.patch
@@ -0,0 +1,21 @@
+diff --git a/ui/nnmCanvas.cpp b/ui/nnmCanvas.cpp
+index a548ddf..3b8e7d4 100755
+--- a/ui/nnmCanvas.cpp
++++ b/ui/nnmCanvas.cpp
+@@ -35,7 +35,7 @@
+
+ nnmCanvas::nnmCanvas( QWidget *parent, int timeoutParam, int initID,
+ const char *name, WFlags f )
+- : QWidget( parent, name, f )
++ : QWidget( parent, name, f ), timer(0)
+ {
+ setFixedSize( NnmCANVAS_DISPLAY_SIZE, NnmCANVAS_DISPLAY_SIZE );
+ init();
+@@ -149,7 +149,7 @@ void nnmCanvas::resizeEvent( QResizeEvent *event )
+
+ void nnmCanvas::init( void )
+ {
+- if ( timeoutMsec > 0 && timer->isActive() ) {
++ if ( timeoutMsec > 0 && timer && timer->isActive() ) {
+ timer->stop();
+ } \ No newline at end of file
diff --git a/recipes-qtopia/nunome/nunome_1.0.2.bb b/recipes-qtopia/nunome/nunome_1.0.2.bb
new file mode 100644
index 0000000..2429a2b
--- /dev/null
+++ b/recipes-qtopia/nunome/nunome_1.0.2.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "Japanese input method plugin"
+HOMEPAGE = "http://www.sikigami.com/nunome-Qtopia-1.0/"
+SECTION = "opie/inputmethods"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "virtual-japanese-font"
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gakusei/nunome-${PV}.tar.bz2 \
+ file://timer.patch \
+ file://nunome.patch"
+S = "${WORKDIR}/nunome"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${S}/Nnmlib INCLUDEPATH+=${S}/ui LIBS+=-L${S}"
+OE_QMAKE_CXXFLAGS := "${@oe_filter_out('-fno-rtti', '${OE_QMAKE_CXXFLAGS}', d)}"
+PARALLEL_MAKE = ""
+
+do_configure_prepend() {
+ sed -i -e 's,/opt/QtPalmtop/bin/,${bindir}/,g' "${S}/ui/nunome.h"
+ sed -i -e 's,/opt/QtPalmtop/,${palmtopdir}/,g' "${S}/ui/nunome.h"
+ printf "TEMPLATE=subdirs\nSUBDIRS=Nnmlib server ui dicman ui\n" >nunome.pro
+ cd Nnmlib && qmake -project -t lib && cd ../
+ cd server && qmake -project && printf "LIBS+=-lNnmlib\nTARGET=server.bin\n" >> server.pro && cd ../
+ cd dicman && qmake -project && printf "LIBS+=-lnunome -lNnmlib\nTARGET=dicman.bin\n" >> dicman.pro && cd ../
+ cd ui && qmake -project -t lib && printf "LIBS+=-lNnmlib\nTARGET=nunome\n" >> ui.pro && cd ../
+ find . -name "moc*"|xargs rm -f
+ find . -name "Makefile"|xargs rm -f
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/lib
+ install -d ${D}${bindir}
+ install -d ${D}${palmtopdir}/i18n/ja
+ install -d ${D}${palmtopdir}/share/nunome
+
+ oe_libinstall -so libNnmlib ${D}${palmtopdir}/lib
+ install -m 644 nunome_uni.dic ${D}${palmtopdir}/share/nunome
+ install -m 755 server.bin ${D}${bindir}/nnmsrv
+ install -m 755 dicman.bin ${D}${bindir}/nnmDicman
+ install -m 644 ui/nunome.qm ${D}${palmtopdir}/i18n/ja
+ install -m 644 dicman/nnmDicman.qm ${D}${palmtopdir}/i18n/ja
+}
+
+SRC_URI[md5sum] = "e5c9d2351de250aaa7abf581a1f2c0f4"
+SRC_URI[sha256sum] = "7bda9302036facd65b323d7042a809b08d55d5b61b38d4d40f22f41f27fec83c"
diff --git a/recipes-qtopia/otpkeygen/otpkeygen_1.3.0.bb b/recipes-qtopia/otpkeygen/otpkeygen_1.3.0.bb
new file mode 100644
index 0000000..479163c
--- /dev/null
+++ b/recipes-qtopia/otpkeygen/otpkeygen_1.3.0.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "OTP S/Key password generator"
+SECTION = "opie/applications"
+HOMEPAGE = "http://www.bitrot.de/pda_otpkeygen.html"
+AUTHOR = "Thomas Driemeyer <thomas@bitrot.de>"
+LICENSE = "GPL"
+APPTYPE="binary"
+PR = "r3"
+
+SRC_URI = "ftp://ftp.bitrot.de/pub/otpkeygen/otpkeygen-src_${PV}.tar.gz"
+
+S = "${WORKDIR}/src/"
+
+inherit palmtop
+
+do_configure_prepend() {
+ cd ${S} && qmake -project
+}
+
+do_install() {
+
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/bin/
+ install -d ${D}${palmtopdir}/pics/
+
+ install -m 0755 ${WORKDIR}/src/src ${D}${palmtopdir}/bin/otpkeygen
+ install -m 0644 ${WORKDIR}/apps/Applications/otpkeygen.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${WORKDIR}/pics/otpkeygen.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "ec1c0a93a586361298faebce4fac9dbd"
+SRC_URI[sha256sum] = "b6129acb788726ab159ed790a85a625651fff5cdff3a2cd0517f19ccd41c2a54"
diff --git a/recipes-qtopia/petitepainture/petitepainture/dialogs.patch b/recipes-qtopia/petitepainture/petitepainture/dialogs.patch
new file mode 100644
index 0000000..009a393
--- /dev/null
+++ b/recipes-qtopia/petitepainture/petitepainture/dialogs.patch
@@ -0,0 +1,308 @@
+diff -ur SPainter/canvas.cpp SPainter.new/canvas.cpp
+--- SPainter/canvas.cpp 2005-05-28 11:09:33.000000000 +0200
++++ SPainter.new/canvas.cpp 2005-10-31 15:57:16.770056657 +0100
+@@ -2380,7 +2380,7 @@
+ void Canvas::set_pen_color_dlg(QColor col) {
+ bool last_fullscreen;
+ // QColor col = brush.color();
+- ColorDialog d(col, "Pen Color");
++ ColorDialog d(this, col, "Pen Color");
+
+ last_fullscreen = fullscreen;
+ fullscreen = FALSE;
+@@ -2400,7 +2400,7 @@
+ void Canvas::setPaperColor(void) {
+ bool last_fullscreen;
+ QColor col = sp->paperColor();
+- ColorDialog d(col, "Paper Color");
++ ColorDialog d(this, col, "Paper Color");
+
+ last_fullscreen = fullscreen;
+ fullscreen = false;
+diff -ur SPainter/colordialog.cpp SPainter.new/colordialog.cpp
+--- SPainter/colordialog.cpp 2004-01-23 14:21:34.000000000 +0100
++++ SPainter.new/colordialog.cpp 2005-10-31 15:56:48.775114835 +0100
+@@ -19,9 +19,9 @@
+
+ ////////// ColorDialog
+
+-ColorDialog::ColorDialog(QColor &col,
++ColorDialog::ColorDialog(QWidget * parent, QColor &col,
+ const char* name)
+- : QDialog(0, name, TRUE)
++ : QDialog(parent, name, TRUE)
+ {
+ setCaption(name);
+
+diff -ur SPainter/colordialog.h SPainter.new/colordialog.h
+--- SPainter/colordialog.h 2004-01-23 14:21:34.000000000 +0100
++++ SPainter.new/colordialog.h 2005-10-31 15:56:32.033747608 +0100
+@@ -21,7 +21,7 @@
+ Q_OBJECT
+
+ public:
+- ColorDialog(QColor &init_col,
++ ColorDialog(QWidget * parent, QColor &init_col,
+ const char* name = 0);
+ ~ColorDialog();
+
+diff -ur SPainter/filedialog.cpp SPainter.new/filedialog.cpp
+--- SPainter/filedialog.cpp 2005-04-21 17:14:09.000000000 +0200
++++ SPainter.new/filedialog.cpp 2005-10-31 15:45:47.179109875 +0100
+@@ -28,8 +28,8 @@
+ QFileInfo FileDialog::fileinfo(QDir::homeDirPath());
+
+ //! construct
+-FileDialog::FileDialog(const char *name, bool input,const QString &path)
+- : QDialog(0, name, TRUE)
++FileDialog::FileDialog(QWidget *parent, const char *name, bool input,const QString &path)
++ : QDialog(parent, name, TRUE)
+ {
+
+ //QDialog
+diff -ur SPainter/filedialog.h SPainter.new/filedialog.h
+--- SPainter/filedialog.h 2004-01-23 14:21:34.000000000 +0100
++++ SPainter.new/filedialog.h 2005-10-31 15:47:36.896960188 +0100
+@@ -17,7 +17,7 @@
+ static QFileInfo fileinfo;
+
+ public://construct/destruct
+- FileDialog(const char *name = 0, bool input = TRUE,const QString &path = QString::null);
++ FileDialog(QWidget *parent, const char *name = 0, bool input = TRUE,const QString &path = QString::null);
+ ~FileDialog();
+
+ public://public function
+Only in SPainter.new: Makefile
+Only in SPainter.new: petitpeintu
+diff -ur SPainter/settings.cpp SPainter.new/settings.cpp
+--- SPainter/settings.cpp 2005-05-28 11:09:33.000000000 +0200
++++ SPainter.new/settings.cpp 2005-10-31 16:00:05.387681649 +0100
+@@ -268,8 +268,8 @@
+ #include <qvbox.h>
+ #include <qcheckbox.h>
+
+-SettingsDialog::SettingsDialog(void) :
+-QDialog(0, "SettingsDialog", true) {
++SettingsDialog::SettingsDialog(QWidget *parent) :
++QDialog(parent, "SettingsDialog", true) {
+ setCaption("Settings");
+
+ main_box = new QVBox(this);
+diff -ur SPainter/settings.h SPainter.new/settings.h
+--- SPainter/settings.h 2005-05-28 11:09:33.000000000 +0200
++++ SPainter.new/settings.h 2005-10-31 16:03:34.136786013 +0100
+@@ -78,7 +78,7 @@
+ QCheckBox *z_color_adjust_check;
+
+ public:
+- SettingsDialog(void);
++ SettingsDialog(QWidget*);
+ ~SettingsDialog(void);
+
+ void setSyncWidth(bool);
+diff -ur SPainter/spainter.cpp SPainter.new/spainter.cpp
+--- SPainter/spainter.cpp 2005-05-28 11:09:33.000000000 +0200
++++ SPainter.new/spainter.cpp 2005-10-31 16:08:01.595664620 +0100
+@@ -217,7 +217,7 @@
+ layer_menu->insertItem("Move Down Current Layer", canvas,
+ SLOT(moveDownCurrentLayer()));
+ layer_menu->insertSeparator();
+- layer_menu->insertItem("Scale Current Layer", this,
++ layer_menu->insertItem("Scale Current Layer...", this,
+ SLOT(scaleLayer()));
+ layer_menu->insertItem(QString("Clear Current Layer"), canvas,
+ SLOT(clearCurrentLayer()));
+@@ -240,7 +240,7 @@
+ tool_menu->insertItem("Mirror Vertical", canvas,
+ SLOT(mirrorVertical()));
+ tool_menu->insertSeparator();
+- tool_menu->insertItem("Resize Canvas", this,
++ tool_menu->insertItem("Resize Canvas...", this,
+ SLOT(setCanvasSize()));
+ tool_menu->insertSeparator();
+ tool_menu->insertItem("Rotate CW", canvas,
+@@ -369,7 +369,7 @@
+
+ void SPainter::setPalette(void) {
+ QString fn = settings.getPaletteFileName();
+- FileDialog dlg("load palette", true, fn);
++ FileDialog dlg(this, "load palette", true, fn);
+
+ if (dlg.exec()) {
+ fn = dlg.filePath();
+@@ -389,7 +389,7 @@
+ }
+
+ void SPainter::penPressure(void) {
+- TSDialog d;
++ TSDialog d(this);
+
+ d.setMinPressure(
+ settings.getPressure(Settings::i_pressure_min));
+@@ -475,7 +475,7 @@
+ }
+
+ void SPainter::showSettings(void) {
+- SettingsDialog d;
++ SettingsDialog d(this);
+
+ d.setSyncWidth(settings.getSyncWidth());
+ d.setLeftRight(settings.getLeftRight());
+@@ -550,7 +550,7 @@
+
+ void SPainter::loadImage(void) {
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("load image", TRUE, editing_fn);
++ FileDialog dlg(this, "load image", TRUE, editing_fn);
+
+ if (dlg.exec()) {
+ QString fn = dlg.filePath();
+@@ -564,7 +564,7 @@
+
+ void SPainter::loadLayer(void) {
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("load to current layer",
++ FileDialog dlg(this, "load to current layer",
+ TRUE, editing_fn);
+
+ if (dlg.exec()) {
+@@ -593,7 +593,7 @@
+
+ void SPainter::saveImage(void) {
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("save image", FALSE, editing_fn);
++ FileDialog dlg(this, "save image", FALSE, editing_fn);
+
+ if (dlg.exec()) {
+ QString fn = dlg.filePath();
+@@ -612,7 +612,7 @@
+
+ void SPainter::savePNG(void) {
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("save PNG image", FALSE, editing_fn);
++ FileDialog dlg(this, "save PNG image", FALSE, editing_fn);
+
+ if (dlg.exec()) {
+ QString fn = dlg.filePath();
+@@ -628,7 +628,7 @@
+
+ void SPainter::saveJPG(void) {
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("save JPEG image", FALSE, editing_fn);
++ FileDialog dlg(this, "save JPEG image", FALSE, editing_fn);
+
+ if (dlg.exec()) {
+ QString fn = dlg.filePath();
+@@ -644,7 +644,7 @@
+
+ void SPainter::saveLayer(void) {
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("save current layer", FALSE, editing_fn);
++ FileDialog dlg(this, "save current layer", FALSE, editing_fn);
+
+ if (dlg.exec()) {
+ QString fn = dlg.filePath();
+@@ -667,7 +667,7 @@
+ return;
+
+ editing_fn = settings.getLastFileName();
+- FileDialog dlg("refresh icons", true, editing_fn);
++ FileDialog dlg(this, "refresh icons", true, editing_fn);
+
+ if (dlg.exec()) {
+ QFileInfo info(dlg.filePath());
+@@ -721,7 +721,7 @@
+
+ w = canvas->canvasWidth();
+ h = canvas->canvasHeight();
+- ScaleDialog d(w, h);
++ ScaleDialog d(this, w, h);
+
+ if (d.exec()) {
+ canvas->scaleLayer(d.x(), d.y());
+@@ -733,7 +733,7 @@
+
+ w = canvas->canvasWidth();
+ h = canvas->canvasHeight();
+- SetCanvasSizeDialog d(w, h);
++ SetCanvasSizeDialog d(this, w, h);
+
+ if (d.exec())
+ canvas->setSize(d.w(), d.h());
+@@ -753,8 +753,8 @@
+ #include <qlabel.h>
+ #include <qradiobutton.h>
+
+-ScaleDialog::ScaleDialog(uint sx, uint sy) :
+-QDialog(0, "ScaleDialog", true) {
++ScaleDialog::ScaleDialog(QWidget *parent, uint sx, uint sy) :
++QDialog(parent, "ScaleDialog", true) {
+ QString sxs, sys;
+
+ setCaption("Scaling");
+@@ -808,8 +808,8 @@
+ ////////////////////////////////////////////////////////////
+ // SetCanvasSizeDialog
+
+-SetCanvasSizeDialog::SetCanvasSizeDialog(uint w, uint h) :
+- QDialog(0, "SetCanvasSizeDialog", true) {
++SetCanvasSizeDialog::SetCanvasSizeDialog(QWidget *parent, uint w, uint h) :
++ QDialog(parent, "SetCanvasSizeDialog", true) {
+
+ setCaption("Resize Canvas");
+ width_ = w;
+diff -ur SPainter/spainter.h SPainter.new/spainter.h
+--- SPainter/spainter.h 2005-01-07 16:17:40.000000000 +0100
++++ SPainter.new/spainter.h 2005-10-31 16:02:29.190242919 +0100
+@@ -111,7 +111,7 @@
+ uint width_, height_;
+
+ public:
+- ScaleDialog(uint, uint);
++ ScaleDialog(QWidget*, uint, uint);
+ ~ScaleDialog(void);
+
+ uint x(void);
+@@ -129,7 +129,7 @@
+ uint width_, height_;
+
+ public:
+- SetCanvasSizeDialog(uint, uint);
++ SetCanvasSizeDialog(QWidget*, uint, uint);
+ ~SetCanvasSizeDialog(void);
+
+ uint w(void);
+diff -ur SPainter/spainter.pro SPainter.new/spainter.pro
+--- SPainter/spainter.pro 2005-05-28 11:09:33.000000000 +0200
++++ SPainter.new/spainter.pro 2005-10-31 14:52:11.000000000 +0100
+@@ -4,5 +4,5 @@
+ SOURCES = main.cpp spainter.cpp colordialog.cpp sketchpainter.cpp layeredpainter.cpp filedialog.cpp canvas.cpp toolpanel.cpp settings.cpp rgb_hsv.cpp ptptformat.cpp tspressure.cpp layerpanel.cpp colorpanel.cpp colorpalette.cpp clipboard.cpp ptpen.cpp z_color_adjust.cpp
+ INCLUDEPATH += $(QPEDIR)/include
+ DEPENDPATH += $(QPEDIR)/include
+-LIBS += -L$(QPEDIR) -lqpe
++LIBS += -L$(QPEDIR)/lib -lqpe
+ TARGET = petitpeintu
+diff -ur SPainter/tspressure.cpp SPainter.new/tspressure.cpp
+--- SPainter/tspressure.cpp 2005-04-21 17:14:10.000000000 +0200
++++ SPainter.new/tspressure.cpp 2005-10-31 16:00:47.304096516 +0100
+@@ -263,7 +263,7 @@
+ unsigned long int TSDialog::mid_pressure = 0;
+ unsigned long int TSDialog::max_pressure = 0;
+
+-TSDialog::TSDialog(void) : QDialog(0, "TSDialog", true) {
++TSDialog::TSDialog(QWidget *parent) : QDialog(parent, "TSDialog", true) {
+ setCaption("Touchscreen Config.");
+
+ // setFixedSize(qApp->desktop()->size());
+diff -ur SPainter/tspressure.h SPainter.new/tspressure.h
+--- SPainter/tspressure.h 2004-02-18 18:03:52.000000000 +0100
++++ SPainter.new/tspressure.h 2005-10-31 16:04:23.246927970 +0100
+@@ -104,7 +104,7 @@
+ void show_values(void);
+
+ public:
+- TSDialog(void);
++ TSDialog(QWidget*);
+ ~TSDialog(void);
+
+ void showValues(void) {show_values();}
diff --git a/recipes-qtopia/petitepainture/petitepainture/petitpeintu.desktop b/recipes-qtopia/petitepainture/petitepainture/petitpeintu.desktop
new file mode 100644
index 0000000..73b0886
--- /dev/null
+++ b/recipes-qtopia/petitepainture/petitepainture/petitpeintu.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Petite Peinture
+Exec=petitpeintu
+Icon=petitpeintu
+Type=Application
+Display=640x480/144dpi,480x640/144dpi
+MimeType=imageptpt/*;image/ptpt
+MimeTypeIcons=image_ptpt
+Comment=a simple painter
diff --git a/recipes-qtopia/petitepainture/petitepainture/petitpeintu.png b/recipes-qtopia/petitepainture/petitepainture/petitpeintu.png
new file mode 100644
index 0000000..da4a9f7
--- /dev/null
+++ b/recipes-qtopia/petitepainture/petitepainture/petitpeintu.png
Binary files differ
diff --git a/recipes-qtopia/petitepainture/petitepainture_1.5.bb b/recipes-qtopia/petitepainture/petitepainture_1.5.bb
new file mode 100644
index 0000000..6e84968
--- /dev/null
+++ b/recipes-qtopia/petitepainture/petitepainture_1.5.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Pressure-Sensitive Paint Program for Opie/Qtopia"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+HOMEPAGE = "http://sun.dhis.portside.net/~sakira/wiki/index.cgi?cmd=view;name=LinuxZaurus%3APetitePeinture+en"
+LICENSE = "GPL"
+APPTYPE = "binary"
+APPNAME = "petitpeintu"
+APPDESKTOP = "${WORKDIR}"
+
+SRC_URI = "http://sun.dhis.portside.net/~sakira/archive/SPainter_1.5_src.tar.gz \
+ file://dialogs.patch \
+ file://petitpeintu.desktop \
+ file://petitpeintu.png "
+S = "${WORKDIR}/SPainter"
+
+inherit opie
+
+QMAKE_PROFILES = "spainter.pro"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 *.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/petitpeintu.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "8bd0e7e1f4d6549baba4cbb2384de2ff"
+SRC_URI[sha256sum] = "4925a4503cf7650e7880740113ee747d1bf828b6783b24580fbcb0ec894c0801"
diff --git a/recipes-qtopia/phalanx/phalanx/capabilities b/recipes-qtopia/phalanx/phalanx/capabilities
new file mode 100644
index 0000000..703cf84
--- /dev/null
+++ b/recipes-qtopia/phalanx/phalanx/capabilities
@@ -0,0 +1,18 @@
+[GENERAL]
+NAME=Phalanx
+VERSION=0.1.2
+exec=phalanx
+cmd=-l- -P /opt/QtPalmtop/chess/engines/Phalanx -S /opt/QtPalmtop/chess/engines/Phalanx
+
+[CAPABILITIES]
+UNDO=1
+EDIT=1
+BOOK=1
+
+[DIFFICULTY]
+level_very_easy_cmd=-e 100
+level_easy_cmd=-e 75
+level_moderate_cmd=-e 42
+level_hard_cmd=-e 15
+level_very_hard_cmd=-e 0
+
diff --git a/recipes-qtopia/phalanx/phalanx/description b/recipes-qtopia/phalanx/phalanx/description
new file mode 100644
index 0000000..945d103
--- /dev/null
+++ b/recipes-qtopia/phalanx/phalanx/description
@@ -0,0 +1,10 @@
+<qt>
+<b>Phalanx</b>
+<hr>
+Phalanx chess engine was written by Dusan Dobes and it is one of the youngest of the
+free chess programs.
+Despite this fact it has managed to become quite strong approaching the level of some
+modern commercial chess software.
+<br>
+This engine supports differing difficulty levels
+</qt>
diff --git a/recipes-qtopia/phalanx/phalanx_22.bb b/recipes-qtopia/phalanx/phalanx_22.bb
new file mode 100644
index 0000000..b456a30
--- /dev/null
+++ b/recipes-qtopia/phalanx/phalanx_22.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Phalanx is a chess playing engine."
+SECTION = "opie/libs"
+PRIORITY = "optional"
+PR = "r5"
+LICENSE = "GPL"
+SRC_URI = "http://ftp.debian.org/debian/pool/main/p/phalanx/phalanx_22+d051004.orig.tar.gz \
+ file://capabilities \
+ file://description"
+S = "${WORKDIR}/Phalanx-XXII/"
+
+do_compile() {
+ oe_runmake CC="${CC}" CFLAGS="${CFLAGS}" STRIP=echo LD="${CC}"
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/chess/engines/Phalanx
+ install -D -m 755 phalanx ${D}${palmtopdir}/chess/engines/Phalanx/phalanx
+ install -D -m 755 pbook.phalanx ${D}${palmtopdir}/chess/engines/Phalanx/pbook.phalanx
+ >${D}${palmtopdir}/chess/engines/Phalanx/sbook.phalanx
+ >${D}${palmtopdir}/chess/engines/Phalanx/learn.phalanx
+ install -D -m 755 ${WORKDIR}/capabilities ${D}${palmtopdir}/chess/engines/Phalanx/capabilities
+ install -D -m 755 ${WORKDIR}/description ${D}${palmtopdir}/chess/engines/Phalanx/description
+}
+
+FILES_${PN} = "${palmtopdir}/chess"
+FILES_${PN}-dbg += "${palmtopdir}/chess/engines/Phalanx/.debug"
+SRC_URI[md5sum] = "24657c063f5fda57e70130483bd45cd0"
+SRC_URI[sha256sum] = "1ec5e8e5f71e199963796462086a6e9a0d8856b7fd4b83324a30a35c25677082"
+
diff --git a/recipes-qtopia/poboxserver/poboxserver/OpenPOBox-1.25.diff b/recipes-qtopia/poboxserver/poboxserver/OpenPOBox-1.25.diff
new file mode 100644
index 0000000..d3add6d
--- /dev/null
+++ b/recipes-qtopia/poboxserver/poboxserver/OpenPOBox-1.25.diff
@@ -0,0 +1,173 @@
+diff -ur OpenPOBox.orig/asearch/Makefile OpenPOBox/asearch/Makefile
+--- OpenPOBox.orig/asearch/Makefile 2001-07-23 16:18:15.000000000 +0900
++++ OpenPOBox/asearch/Makefile 2003-06-14 17:52:12.668859200 +0900
+@@ -2,7 +2,6 @@
+ # $Date: 2004/09/28 03:42:40 $
+ # $Revision: 1.6 $
+ #
+-CC = gcc
+ CFLAGS = -Xcpluscomm
+ WTANGLE = perl ../wtangle/wtangle
+
+diff -ur OpenPOBox.orig/romakana/rklist OpenPOBox/romakana/rklist
+--- OpenPOBox.orig/romakana/rklist 2001-07-23 23:29:06.000000000 +0900
++++ OpenPOBox/romakana/rklist 2003-06-18 10:05:47.358003200 +0900
+@@ -127,7 +127,7 @@
+ na ¥Ê
+ ne ¥Í
+ ni ¥Ë
+-#nn ¥ó
++nn ¥ó
+ no ¥Î
+ nu ¥Ì
+ nya ¥Ë¥ã
+diff -ur OpenPOBox.orig/server/Makefile.in OpenPOBox/server/Makefile.in
+--- OpenPOBox.orig/server/Makefile.in 2002-02-19 09:37:10.000000000 +0900
++++ OpenPOBox/server/Makefile.in 2003-06-14 17:52:12.678873600 +0900
+@@ -10,7 +10,6 @@
+ # CFLAGS = -DUNIX @CFLAGS@ -Xcpluscomm \
+ # -I../asearch -I../romakana -I../include -g
+
+-CC = gcc
+ CFLAGS = -DUNIX @CFLAGS@ \
+ -I/usr/local/include -I/usr/local/lib/glib/include \
+ -I@prefix@/include \
+diff -ur OpenPOBox.orig/server/pbserver.html OpenPOBox/server/pbserver.html
+--- OpenPOBox.orig/server/pbserver.html 2002-02-19 09:37:10.000000000 +0900
++++ OpenPOBox/server/pbserver.html 2003-06-18 10:20:24.779673600 +0900
+@@ -60,8 +60,8 @@
+
+ #define POBOXSERVERPORT 1178
+
+-#define MAXCANDS 100
+-#define MAXWORDLEN 100
++#define MAXCANDS 300
++#define MAXWORDLEN 50
+ unsigned char *cands[MAXCANDS],*candspat[MAXCANDS];
+
+ int process(int);
+@@ -115,7 +115,7 @@
+
+ process(int sock)
+ {
+- unsigned char buf[1000],combuf[BUFSIZE];
++ unsigned char buf[8000],combuf[BUFSIZE];
+
+ unsigned char w[100],p[100];
+ int i,n;
+@@ -135,9 +135,11 @@
+ pobox_usedict(NULL); // save all existing changes
+ return -1; // this makes the server's main routine disconnect
+ case '1':
++#if 0 // delete tolower
+ for(pat=combuf+1;*pat;pat++){
+ if(isupper(*pat)) *pat = tolower(*pat);
+ }
++#endif
+ pat = combuf+1;
+ patlen = strlen(pat);
+ pobox_context(context[sock],strlen(context[sock]));
+diff -ur OpenPOBox.orig/server/poboxlib.html OpenPOBox/server/poboxlib.html
+--- OpenPOBox.orig/server/poboxlib.html 2002-02-19 09:37:10.000000000 +0900
++++ OpenPOBox/server/poboxlib.html 2004-09-28 10:37:22.818192000 +0900
+@@ -557,7 +557,7 @@
+ //
+ /////////////////////////////////////////////////////////////////
+
+-#define MAXCANDS 40
++#define MAXCANDS 300
+ static UCHAR *cands[MAXCANDS];
+ static UCHAR *candspat[MAXCANDS];
+ static int ncands = 0;
+@@ -603,7 +603,7 @@
+ //
+ // $BC18l8!:w(B
+ //
+-POBOX_INT pobox_search(UCHAR *pat)
++POBOX_INT pobox_search(UCHAR *orig_pat)
+ {
+ int i,j;
+ int m;
+@@ -615,12 +615,18 @@
+ UCHAR searchpat[1000];
+ UCHAR kana[MAXWORDLEN];
+
++ UCHAR pat[100];
++
+ Dict *dict;
+ DicEntry de;
+
+ if(pat == NULL || strlen(pat) > 100)
+ return 0;
+
++ for (p = orig_pat, s = pat; *p; p++, s++) {
++ *s = tolower(*p);
++ }
++ *s = '\0';
+ #ifndef USEGC
+ for(i=0;i<ncands;i++){
+ if(cands[i]) free(cands[i]);
+@@ -642,6 +648,8 @@
+ if(*s == 0xa4) *s = 0xa5;
+ }
+ addcand(&de);
++ de.word = orig_pat;
++ addcand(&de);
+ de.word = pat;
+ addcand(&de);
+ }
+@@ -769,7 +777,54 @@
+ }
+ }
+ }
++ }
++#ifdef USELOOKUP
++ else if(dict->poboxdict->type == POBOXDICT_LOOKUP){
++ // $B$"$$$^$$8!:w$O$H$j$"$($:J]N1(B
++ // $BAw$j2>L>8!:w(B
++printf("okurigana == pat=[%s]\n",pat);
++ strcpy(searchpat, pat);
++ while (ncands == 0 && !exact && *searchpat != '\0') {
++ int i, l;
++
++printf("okurigana searchpat=[%s]\n",searchpat);
++ if(lookup_search(dict->lookup,searchpat)){
++ char *line, *s;
++ UCHAR wordbuf[100];
++ for(;(line = lookup_get_next_line(dict->lookup)) && ncands < MAXCANDS;){
++ de.pat = line;
++ for(s = line;*s && *s != '\t';s++);
++ *s++ = '\0';
++ if (strncmp(de.pat, searchpat, strlen(de.pat)) != 0) {
++ /* $BF~NO$,FI$_$G;O$^$C$F$$$J$$>l9g$O8uJd$+$i30$9(B */
++ free(line);
++ continue;
++ }
++
++ de.word = s;
++ for(;*s && *s != '\t' && *s != '\n' && *s != '\r';s++);
++ *s = '\0';
++ strcpy(wordbuf, de.word);
++ Roma2Kana(pat+strlen(de.pat)-1,kana,rktable);
++ strcat(wordbuf,kana);
++ de.word = wordbuf;
++
++ de.context = NULL;
++ addcand(&de);
++ free(line);
++printf("okurigana cand=[%s]\n",s);
++ }
++ }
++ // delete vowels
++ l = strlen(searchpat);
++ searchpat[l - 1] = '\0';
++ for (i = l - 2; i >= 0 && !consonant(searchpat[i]); i--) {
++ searchpat[i] = '\0';
++ }
++ }
+ }
++#endif
++
+ }
+
+ if(ncands+3 < MAXCANDS){
diff --git a/recipes-qtopia/poboxserver/poboxserver/pbserver.sh b/recipes-qtopia/poboxserver/poboxserver/pbserver.sh
new file mode 100644
index 0000000..e6067ed
--- /dev/null
+++ b/recipes-qtopia/poboxserver/poboxserver/pbserver.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+killproc()
+{
+ pid=`/bin/ps -e x |
+ /bin/grep $1 |
+ /bin/grep -v grep |
+ /bin/sed -e 's/^ *//' -e 's/ .*//'`
+ [ "$pid" != "" ] && kill $pid
+}
+
+usage()
+{
+ echo "Usage: $0 {start|stop}"
+}
+
+if [ $# -lt 1 ] ; then usage ; exit ; fi
+
+case "$1" in
+start)
+ echo -n "Start pbserver"
+ # make sure lo interface is configured (otherwise qpobox will not bind to pbserver)
+ ifconfig lo|grep 127.0.0.1 >/dev/null || ifconfig lo 127.0.0.1
+ cd @palmtopdir@/pobox; ./pbserver > /dev/null &
+ echo
+ sleep 1
+ ;;
+
+stop)
+ echo -n "Stop pbserver"
+ killproc pbserver
+ echo
+ ;;
+
+esac
+
+exit 0
+
diff --git a/recipes-qtopia/poboxserver/poboxserver/remove-local-includes.patch b/recipes-qtopia/poboxserver/poboxserver/remove-local-includes.patch
new file mode 100644
index 0000000..10f9d31
--- /dev/null
+++ b/recipes-qtopia/poboxserver/poboxserver/remove-local-includes.patch
@@ -0,0 +1,16 @@
+
+#
+# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+--- OpenPOBox/server/Makefile.in~remove-local-includes
++++ OpenPOBox/server/Makefile.in
+@@ -11,8 +11,6 @@
+ # -I../asearch -I../romakana -I../include -g
+
+ CFLAGS = -DUNIX @CFLAGS@ \
+- -I/usr/local/include -I/usr/local/lib/glib/include \
+- -I@prefix@/include \
+ -I../asearch -I../romakana -I../include -g
+
+ pbserver: pbserver.o server.o poboxlib.o romakana_he.o lookup.o
diff --git a/recipes-qtopia/poboxserver/poboxserver/unicode.patch b/recipes-qtopia/poboxserver/poboxserver/unicode.patch
new file mode 100644
index 0000000..df6b08f
--- /dev/null
+++ b/recipes-qtopia/poboxserver/poboxserver/unicode.patch
@@ -0,0 +1,13 @@
+diff --git pbserver/Makefile pbserver/Makefile
+index 27847c1..d6ffff3 100755
+--- pbserver/Makefile
++++ pbserver/Makefile
+@@ -15,7 +15,7 @@ configure:
+ dic: staticdic learndic
+
+ staticdic: fugodic.txt
+- nkf -e $< | ruby dicfilter.rb | sort |uniq > $@
++ nkf -w $< | ruby dicfilter.rb | sort |uniq > $@
+
+ learndic:
+ touch $@
diff --git a/recipes-qtopia/poboxserver/poboxserver_1.2.5.bb b/recipes-qtopia/poboxserver/poboxserver_1.2.5.bb
new file mode 100644
index 0000000..2a6305e
--- /dev/null
+++ b/recipes-qtopia/poboxserver/poboxserver_1.2.5.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "OpenPOBox is an open source implementation of a 'Predictive Operation Based On eXample'"
+SECTION = "inputmethods"
+LICENSE = "GPL"
+DEPENDS = "perl-native ruby-native nkf-native"
+PR = "r8"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gakusei/pobox-${PV}.tar.bz2;name=archive \
+ http://www.vanille.de/mirror/pbserver-${PV}.tar.gz;name=pbserver \
+ file://OpenPOBox-1.25.diff \
+ file://remove-local-includes.patch \
+ file://unicode.patch;patchdir=${WORKDIR}/pbserver \
+ file://pbserver.sh"
+
+S = "${WORKDIR}/OpenPOBox"
+
+inherit autotools update-rc.d
+
+INITSCRIPT_NAME = "pbserver"
+INITSCRIPT_PARAMS = "start 99 5 . stop 01 0 ."
+
+EXTRA_OECONF = "--enable-lookup"
+PARALLEL_MAKE = ""
+
+do_compile() {
+ oe_runmake
+ cp ${S}/dict/data/fugodic ${WORKDIR}/pbserver/fugodic.txt
+ oe_runmake -C ${WORKDIR}/pbserver dic
+ #patch -p1
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pobox/
+ install -m 0755 ${S}/server/pbserver ${D}${palmtopdir}/pobox/
+ install -m 0644 ${WORKDIR}/pbserver/staticdic ${D}${palmtopdir}/pobox/
+ install -m 0644 ${WORKDIR}/pbserver/learndic ${D}${palmtopdir}/pobox/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/pbserver.sh ${D}${sysconfdir}/init.d/pbserver
+ sed -i -e 's,@palmtopdir@,${palmtopdir},g' ${D}${sysconfdir}/init.d/pbserver
+}
+
+FILES_${PN}-dbg += "${palmtopdir}/pobox/.debug"
+FILES_${PN} += "${palmtopdir}/pobox/*"
+
+SRC_URI[archive.md5sum] = "d1c988c2ac06d3111f80d59d30bb8bbb"
+SRC_URI[archive.sha256sum] = "73bbc333d2a51d0e1cd73030012f2727ac26f5b1d41333994b01a47486fc16db"
+SRC_URI[pbserver.md5sum] = "7afe4cb20d36b7d00002a522cbe724a8"
+SRC_URI[pbserver.sha256sum] = "c64986ede63deda10a4b0aa5fd3fda1ae7fcd28d91ecc149fceec4ccffd9c620"
diff --git a/recipes-qtopia/poboxserver/qpobox/qpobox-0.5.4-opie.patch b/recipes-qtopia/poboxserver/qpobox/qpobox-0.5.4-opie.patch
new file mode 100644
index 0000000..91b9db7
--- /dev/null
+++ b/recipes-qtopia/poboxserver/qpobox/qpobox-0.5.4-opie.patch
@@ -0,0 +1,595 @@
+diff -Naur qpobox.orig/candlist.cpp qpobox/candlist.cpp
+--- qpobox.orig/candlist.cpp 2005-01-09 14:53:44.000000000 +0900
++++ qpobox/candlist.cpp 2006-04-12 23:28:06.000000000 +0900
+@@ -24,7 +24,7 @@
+
+ #include <qpainter.h>
+
+-CandList::CandList(QWidget *parent, WFlags f = 0)
++CandList::CandList(QWidget *parent, WFlags f)
+ : QLabel(parent, "CandList", f)
+ {
+ clear();
+diff -Naur qpobox.orig/icon/qpobox.xpm qpobox/icon/qpobox.xpm
+--- qpobox.orig/icon/qpobox.xpm 2003-06-15 04:58:27.000000000 +0900
++++ qpobox/icon/qpobox.xpm 2006-04-13 16:50:57.000000000 +0900
+@@ -1,97 +1,246 @@
+ /* XPM */
+-static char *magick[] = {
+-/* columns rows colors chars-per-pixel */
+-"56 26 65 1",
+-" c gray0",
+-". c gray5",
+-"X c #0c0d13",
+-"o c #161616",
+-"O c #191714",
+-"+ c gray11",
+-"@ c #131929",
+-"# c gray14",
+-"$ c #322a33",
+-"% c #303529",
+-"& c #3d3131",
+-"* c #3c3c3c",
+-"= c #1f2842",
+-"- c #3f4535",
+-"; c #2c4071",
+-": c #364472",
+-"> c #543d3d",
+-", c #544848",
+-"< c #5c4a4a",
+-"1 c #505050",
+-"2 c #545850",
+-"3 c #5f6951",
+-"4 c #6a4f4f",
+-"5 c gray42",
+-"6 c #747474",
+-"7 c gray49",
+-"8 c #102cba",
+-"9 c #4a5a81",
+-"0 c #5572b9",
+-"q c #4e71c7",
+-"w c #5d85ea",
+-"e c #6b8cde",
+-"r c #6087e9",
+-"t c #658ae7",
+-"y c #618bf4",
+-"u c #638efa",
+-"i c #6591ff",
+-"p c #6994fc",
+-"a c #a30463",
+-"s c #b12170",
+-"d c #bd387c",
+-"f c #8f6969",
+-"g c #c24281",
+-"h c #cc568a",
+-"j c #96a57f",
+-"k c gray54",
+-"l c #9b9b9b",
+-"z c #869fbb",
+-"x c #8997bc",
+-"c c #ba8b8b",
+-"v c #a3b18d",
+-"b c #bbbbbb",
+-"n c #88a9ef",
+-"m c #a3bbe3",
+-"M c #bbce9f",
+-"N c #e98fa5",
+-"B c #eb92a7",
+-"V c #e8abab",
+-"C c #ffbaba",
+-"Z c #cce0ad",
+-"A c #cee1b1",
+-"S c #d1e6b1",
+-"D c #d9eeb8",
+-"F c #def4bc",
+-"G c #fcf7bd",
+-/* pixels */
+-" ",
+-" +#l ",
+-" o . o7 ",
+-" . oCCCCCVX .* ",
+-" +. oCCCCCCCCCCCCo .+b ",
+-" o .+CCCCCNaaaaaaaNCCCC+. ok ",
+-" ,X .cCCCCCCCaaaBCCCBaaaCCCCCCC. o1 ",
+-" o oCCCCCCCCCCaaNCCCdsshNadCCCCCCCCCo # ",
+-" o ,CCCCCCCCCaaaBCCCgaaadsBCCCCC< .$ ",
+-" ooFS- >CCCCCCCNaaaaaaaBCCCCC< qip ",
+-" ooFFFFFv cCCCCCCCCCCCCf X=;yiiiip ",
+-" ooFFFFFFFFFM% 4CCCC& @wiiiiiiiiip ",
+-" ooFFFFFF888zFFFZ3 O+ :wiiiGGGGiiiiiii ",
+-" ooFFFFFF88z88zFFFFFF iiiiiiGGimGGiiiiii ",
+-" ooFFFFFF88FFz8zFFFFF iiiiiGGniiGGiiiiip ",
+-" ooFFFFFF88FFF88FFFFF iiiiiGGiiiGGiiiiii ",
+-" ooFFFFFF888zF88FFFFF pppiiGGiiiGGiiiiii ",
+-" ooFFFFFF88z888FFFFFF piiiiGGnimGiiiiiii ",
+-" o.FFFFFF88FFFFFFFFFF iiiiipGGGGiipiio 9 ",
+-" 6. oFFFFFFFFFFFFFFF iiiiiiiiiiir. .op ",
+-" 2. ovFFFFFFFFFFF ppiiiipi+o otp ",
+-" 5o .+FFFFFFFF piiipo .#x ",
+-" b+. oFFFFF p0. X*i ",
+-" F. oFF ot ",
+-" Ao. p ",
+-" "
+-};
++static char * qpobox_xpm[] = {
++"37 17 226 2",
++" c None",
++". c #191515",
++"+ c #271D1D",
++"@ c #151414",
++"# c #291F1F",
++"$ c #433232",
++"% c #221B1B",
++"& c #553F3F",
++"* c #B28383",
++"= c #FFBABA",
++"- c #FCB8B8",
++"; c #AB7F7F",
++"> c #231C1C",
++", c #372C2C",
++"' c #211D1D",
++") c #241B1B",
++"! c #5E4848",
++"~ c #B78686",
++"{ c #DDA2A2",
++"] c #F7ABB2",
++"^ c #D36491",
++"/ c #C03F7F",
++"( c #C34381",
++"_ c #C24281",
++": c #BE3A7D",
++"< c #E688A2",
++"[ c #DA9C9F",
++"} c #241E1E",
++"| c #261C1C",
++"1 c #201C1C",
++"2 c #3D2D2D",
++"3 c #211C1C",
++"4 c #563F3F",
++"5 c #775959",
++"6 c #E7AAAA",
++"7 c #EC96A8",
++"8 c #B22171",
++"9 c #C54783",
++"0 c #ED97A9",
++"a c #F19EAD",
++"b c #DD7699",
++"c c #B93078",
++"d c #C54883",
++"e c #FBB2B6",
++"f c #7B5B5B",
++"g c #413030",
++"h c #0D0D0C",
++"i c #161311",
++"j c #110E0E",
++"k c #4D3B3B",
++"l c #C49090",
++"m c #E5A7A7",
++"n c #FAB6B6",
++"o c #F5A6B0",
++"p c #BB347A",
++"q c #BA3178",
++"r c #E07D9D",
++"s c #DC7498",
++"t c #B32573",
++"u c #B62B75",
++"v c #BA3279",
++"w c #D36390",
++"x c #F9AEB4",
++"y c #EBACAC",
++"z c #E1A4A4",
++"A c #C59191",
++"B c #503C3C",
++"C c #251C1D",
++"D c #19151A",
++"E c #030303",
++"F c #1B1B1A",
++"G c #DBF1B9",
++"H c #9AA982",
++"I c #666B54",
++"J c #2E2723",
++"K c #0C0909",
++"L c #5F4645",
++"M c #815E5E",
++"N c #936B6B",
++"O c #EEAEAE",
++"P c #FDB6B8",
++"Q c #E17E9D",
++"R c #CD588B",
++"S c #F09CAC",
++"T c #E3A6A6",
++"U c #906969",
++"V c #2F2526",
++"W c #1B1619",
++"X c #3A3547",
++"Y c #334069",
++"Z c #597FDF",
++"` c #6490FE",
++" . c #07090F",
++".. c #25355D",
++"+. c #DEF4BC",
++"@. c #CCE0AF",
++"#. c #94A593",
++"$. c #929F90",
++"%. c #696C5A",
++"&. c #211F1A",
++"*. c #372B29",
++"=. c #372928",
++"-. c #4E3A3A",
++";. c #C69191",
++">. c #D89D9D",
++",. c #BE8B8B",
++"'. c #473536",
++"). c #433131",
++"!. c #2E2223",
++"~. c #28242B",
++"{. c #737CA3",
++"]. c #6E85C0",
++"^. c #6284DA",
++"/. c #638EFB",
++"(. c #6591FF",
++"_. c #CBE1BB",
++":. c #102CBA",
++"<. c #3D57BA",
++"[. c #5F78BA",
++"}. c #ABC2BB",
++"|. c #DAEFB8",
++"1. c #A2B289",
++"2. c #747A60",
++"3. c #5C564C",
++"4. c #020202",
++"5. c #424050",
++"6. c #47588F",
++"7. c #5C81E2",
++"8. c #B8C9DA",
++"9. c #D1DACF",
++"0. c #D6DDCD",
++"a. c #D0D9CF",
++"b. c #6B95FC",
++"c. c #A2B9BB",
++"d. c #A4BCBB",
++"e. c #425DBA",
++"f. c #AAC1BB",
++"g. c #ABC0A5",
++"h. c #557AD6",
++"i. c #A9BFE0",
++"j. c #E2E5C8",
++"k. c #799FF5",
++"l. c #8EADEC",
++"m. c #FCF7BD",
++"n. c #729AF9",
++"o. c #5F79BA",
++"p. c #C4DABB",
++"q. c #3C57BA",
++"r. c #6F88BA",
++"s. c #AAC0A5",
++"t. c #B6C7DB",
++"u. c #DBE1CB",
++"v. c #87A8EF",
++"w. c #181817",
++"x. c #6983BA",
++"y. c #516BBA",
++"z. c #556FBA",
++"A. c #D1E7BB",
++"B. c #A3BBE3",
++"C. c #E3E6C7",
++"D. c #92AFEB",
++"E. c #A0B9E4",
++"F. c #6692FE",
++"G. c #5375CB",
++"H. c #4D6FC4",
++"I. c #0A0E17",
++"J. c #2E406F",
++"K. c #1B1D19",
++"L. c #5D664E",
++"M. c #6F795F",
++"N. c #D5ECBB",
++"O. c #869FBB",
++"P. c #C9E0BB",
++"Q. c #6691FE",
++"R. c #9DB7E6",
++"S. c #A4BCE3",
++"T. c #96B2E9",
++"U. c #638DF7",
++"V. c #354A7D",
++"W. c #2B3E6D",
++"X. c #111316",
++"Y. c #27365C",
++"Z. c #3F599B",
++"`. c #BDCFA0",
++" + c #5C6550",
++".+ c #4C5340",
++"++ c #34382E",
++"@+ c #8C9A78",
++"#+ c #A3B38B",
++"$+ c #C1D4A4",
++"%+ c #597FDD",
++"&+ c #4B6BBB",
++"*+ c #32426B",
++"=+ c #1C2231",
++"-+ c #243358",
++";+ c #344775",
++">+ c #5B82E4",
++",+ c #5A81E3",
++"'+ c #849172",
++")+ c #838F6F",
++"!+ c #2F322A",
++"~+ c #30342A",
++"{+ c #565F49",
++"]+ c #9CAA85",
++"^+ c #5376CE",
++"/+ c #445E9D",
++"(+ c #293A64",
++"_+ c #1B2337",
++":+ c #374D83",
++"<+ c #405B9E",
++"[+ c #4D6AB3",
++"}+ c #CEE3AF",
++"|+ c #BACD9E",
++"1+ c #484E3E",
++"2+ c #454C3B",
++"3+ c #575E4B",
++"4+ c #758473",
++"5+ c #010101",
++"6+ c #1D2A49",
++"7+ c #29375A",
++"8+ c #577BD6",
++"9+ c #5F89F0",
++"0+ c #828F6F",
++"a+ c #87977D",
++"b+ c #5C7499",
++"c+ c #8CACD3",
++" ",
++" . + @ # . ",
++" $ % & * = = - ; & > , ",
++" ' ) > ! ~ { ] ^ / ( _ : < [ ~ ! } | 1 ",
++" 2 3 4 5 6 = = = 7 8 9 0 a b _ c d e = = = f 4 } g ",
++" h i j k l m n = = o p q r 7 s t u v w x y z A B C D E ",
++" F G H I J K L M N O P Q R R R R S T U M V W X Y Z ` ... ",
++" F +.+.+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(.(.(. ... ",
++" F +.+.+._.:.<.[.}.|.1.2.3.4.5.6.7.(.8.9.0.a.b.(.(.(. ... ",
++" F +.+.+._.:.c.d.e.f.+.+.g.4.h.(.(.i.j.k.l.m.n.(.(.(. ... ",
++" F +.+.+._.:.o.p.q.r.+.+.s.4.h.(.(.t.u.(.v.m.n.(.(.(. ... ",
++" w.+.+.+._.:.x.y.z.A.+.+.s.4.h.(.(.B.C.D.t.E.F.(.G.H.I.J. ",
++" K.L.M.+.N.O.P.+.+.+.+.+.s.4.h.(.(.Q.R.S.T.U.V.W.X.Y.Z. ",
++" `. +.+++@+#+$++.+.+.+.s.4.h.(.(.%+&+*+=+-+;+>+,+ ",
++" '+)+!+~+{+]++.+.s.4.^+/+(+_+:+<+[+ ",
++" }+|+1+2+3+4+5+6+7+8+9+ ",
++" 0+a+b+c+ "};
+diff -Naur qpobox.orig/poboximpl.cpp qpobox/poboximpl.cpp
+--- qpobox.orig/poboximpl.cpp 2003-06-15 04:58:25.000000000 +0900
++++ qpobox/poboximpl.cpp 2006-04-13 16:52:54.000000000 +0900
+@@ -27,106 +27,7 @@
+ #include "poboximpl.h"
+ #include "poboxpanel.h"
+
+-/* XPM */
+-/* XPM */
+-static char * logo1_xpm[] = {
+-"52 28 66 1",
+-" c None",
+-". c gray5",
+-"X c #0c0d13",
+-"o c #161616",
+-"O c #191714",
+-"+ c gray11",
+-"@ c #131929",
+-"# c gray14",
+-"$ c #322a33",
+-"% c #303529",
+-"& c #3d3131",
+-"* c #3c3c3c",
+-"= c #1f2842",
+-"- c #3f4535",
+-"; c #2c4071",
+-": c #364472",
+-"> c #543d3d",
+-", c #544848",
+-"< c #5c4a4a",
+-"1 c #505050",
+-"2 c #545850",
+-"3 c #5f6951",
+-"4 c #6a4f4f",
+-"5 c gray42",
+-"6 c #747474",
+-"7 c gray49",
+-"8 c #102cba",
+-"9 c #4a5a81",
+-"0 c #5572b9",
+-"q c #4e71c7",
+-"w c #5d85ea",
+-"e c #6b8cde",
+-"r c #6087e9",
+-"t c #658ae7",
+-"y c #618bf4",
+-"u c #638efa",
+-"i c #6591ff",
+-"p c #6994fc",
+-"a c #a30463",
+-"s c #b12170",
+-"d c #bd387c",
+-"f c #8f6969",
+-"g c #c24281",
+-"h c #cc568a",
+-"j c #96a57f",
+-"k c gray54",
+-"l c #9b9b9b",
+-"z c #869fbb",
+-"x c #8997bc",
+-"c c #ba8b8b",
+-"v c #a3b18d",
+-"b c #bbbbbb",
+-"n c #88a9ef",
+-"m c #a3bbe3",
+-"M c #bbce9f",
+-"N c #e98fa5",
+-"B c #eb92a7",
+-"V c #e8abab",
+-"C c #ffbaba",
+-"Z c #cce0ad",
+-"A c #cee1b1",
+-"S c #d1e6b1",
+-"D c #d9eeb8",
+-"F c #def4bc",
+-"G c #fcf7bd",
+-"H c #070707",
+-/* pixels */
+-" ",
+-" ",
+-" +#l ",
+-" oHHH.HHo7 ",
+-" .HHoCCCCCVXHH.* ",
+-" +.HHoCCCCCCCCCCCCoHH.+b ",
+-" oHH.+CCCCCNaaaaaaaNCCCC+.HHok ",
+-" ,XHH.cCCCCCCCaaaBCCCBaaaCCCCCCC.HHo1 ",
+-" oHHoCCCCCCCCCCaaNCCCdsshNadCCCCCCCCCoHHH# ",
+-" oHHHHH,CCCCCCCCCaaaBCCCgaaadsBCCCCC<H.$HHH ",
+-" ooFS-HHHH>CCCCCCCNaaaaaaaBCCCCC<HHHHHqipHH ",
+-" ooFFFFFvHHHHHHcCCCCCCCCCCCCfHHHX=;yiiiipHH ",
+-" ooFFFFFFFFFM%HHHHH4CCCC&HHHH@wiiiiiiiiipHH ",
+-" ooFFFFFF888zFFFZ3HO+HHHH:wiiiGGGGiiiiiiiHH ",
+-" ooFFFFFF88z88zFFFFFFHHiiiiiiGGimGGiiiiiiHH ",
+-" ooFFFFFF88FFz8zFFFFFHHiiiiiGGniiGGiiiiipHH ",
+-" ooFFFFFF88FFF88FFFFFHHiiiiiGGiiiGGiiiiiiHH ",
+-" ooFFFFFF888zF88FFFFFHHpppiiGGiiiGGiiiiiiHH ",
+-" ooFFFFFF88z888FFFFFFHHpiiiiGGnimGiiiiiiiHH ",
+-" o.FFFFFF88FFFFFFFFFFHHiiiiipGGGGiipiioHHH9 ",
+-" 6.HHoFFFFFFFFFFFFFFFHHiiiiiiiiiiir.HH.op ",
+-" 2.HHovFFFFFFFFFFFHHppiiiipi+oHHotp ",
+-" 5oHH.+FFFFFFFFHHpiiipoHH.#x ",
+-" b+.HHoFFFFFHHp0.HHX*i ",
+-" F.HHoFFHHHHot ",
+-" Ao.HHHp ",
+-" ",
+-" ",
+-};
++#include "icon/qpobox.xpm"
+
+ POBoxImpl::POBoxImpl()
+ : input(0), icn(0), ref(0)
+@@ -156,7 +57,7 @@
+ QPixmap *POBoxImpl::icon()
+ {
+ if (!icn)
+- icn = new QPixmap((const char **)logo1_xpm);
++ icn = new QPixmap((const char **)qpobox_xpm);
+ return icn;
+ }
+
+diff -Naur qpobox.orig/poboxpanel.cpp qpobox/poboxpanel.cpp
+--- qpobox.orig/poboxpanel.cpp 2006-04-07 23:51:22.000000000 +0900
++++ qpobox/poboxpanel.cpp 2006-04-13 22:33:07.000000000 +0900
+@@ -24,7 +24,7 @@
+ #include "qpoboxconfig.h"
+ #include "pbclient.h"
+ #include "candlist.h"
+-#include "lib/fepmonitor.h"
++//#include "lib/fepmonitor.h"
+
+ #include <qpe/global.h>
+ #include <qapplication.h>
+@@ -32,7 +32,8 @@
+ #include <qclipboard.h>
+ #include <qtimer.h>
+ #include <qfile.h>
+-#include <sl/jpnfeputil.h>
++//#include <sl/jpnfeputil.h>
++#include <opie2/okeyfilter.h>
+
+ #include <stdlib.h>
+
+@@ -88,7 +89,7 @@
+ connect(m_channel, SIGNAL(received(const QCString&, const QByteArray&)),
+ this, SLOT(appMessage(const QCString&, const QByteArray&)));
+
+- m_fep_monitor = new FepMonitor(this);
++// m_fep_monitor = new FepMonitor(this);
+ }
+
+ POBoxPanel::~POBoxPanel()
+@@ -123,12 +124,14 @@
+ m_pobox->deleteWord(word, input);
+ }
+
++#if 0
+ if (is_hide && isVisible()) {
+ JpnFep::hideInputMethod();
+ }
+ if (is_show) {
+ JpnFep::changeInputMethod(im);
+ }
++#endif
+ }
+
+ void POBoxPanel::candidateClicked()
+@@ -222,9 +225,11 @@
+ m_processed_keycode = keycode;
+
+ if (m_im_mode) {
++#if 0
+ if (m_fep_monitor->isActive()) {
+ thru = true;
+ }
++#endif
+ if (func == F_IM_MODE) {
+ keycode = Key_F25;
+ m_im_mode = false;
+@@ -381,10 +386,10 @@
+ case F_IM_MODE:
+ fixCandidate();
+ m_im_mode = true;
+- if (!m_fep_monitor->isActive()) {
++// if (!m_fep_monitor->isActive()) {
+ keycode = Key_F25;
+ thru = true;
+- }
++// }
+ m_cand->setText(tr("IM mode"));
+ break;
+ case F_THRU_MODE:
+@@ -625,7 +630,8 @@
+ void POBoxPanel::showEvent(QShowEvent *e)
+ {
+ if (!e->spontaneous()) {
+- QWSServer::setKeyboardFilter(m_keyFilter);
++// QWSServer::setKeyboardFilter(m_keyFilter);
++ Opie::Core::OKeyFilter::inst()->addHandler(m_keyFilter);
+ }
+
+ QFontMetrics fm(m_inputline->font());
+@@ -639,16 +645,19 @@
+ m_cand->setMaxDispCand(m_cfg->m_maxDispCand);
+ requestCandidate(true);
+
++#if 0
+ if (m_fep_monitor->isActive()) {
+ emit keyPress(-1, Qt::Key_F25, 0, 1, 0);
+ }
++#endif
+ }
+
+ // disable KeyboardFilter
+ void POBoxPanel::hideEvent(QHideEvent *e)
+ {
+ if (!e->spontaneous()) {
+- QWSServer::setKeyboardFilter(NULL);
++// QWSServer::setKeyboardFilter(NULL);
++ Opie::Core::OKeyFilter::inst()->remHandler(m_keyFilter);
+ }
+
+ m_pobox->saveDictionary();
+diff -Naur qpobox.orig/qpobox.pro qpobox/qpobox.pro
+--- qpobox.orig/qpobox.pro 2003-07-26 01:12:27.000000000 +0900
++++ qpobox/qpobox.pro 2006-04-13 22:07:25.000000000 +0900
+@@ -1,9 +1,9 @@
+ TEMPLATE = lib
+ CONFIG += qt warn_on release
+-HEADERS = poboximpl.h poboxpanel.h pbclient.h qpoboxconfig.h candlist.h lib/fepmonitor.h lib/KeyNames.h
++HEADERS = poboximpl.h poboxpanel.h pbclient.h qpoboxconfig.h candlist.h lib/KeyNames.h
+ SOURCES = poboximpl.cpp poboxpanel.cpp pbclient.cpp qpoboxconfig.cpp candlist.cpp lib/KeyNames.cpp
+ TARGET = qpobox
+ INCLUDEPATH += $(QPEDIR)/include
+-LIBS += -lqpe -lsl
++LIBS += -lqpe -lopiecore2
+ VERSION = 1.0.0
+
diff --git a/recipes-qtopia/poboxserver/qpobox/qpobox.patch b/recipes-qtopia/poboxserver/qpobox/qpobox.patch
new file mode 100644
index 0000000..9ed8f6c
--- /dev/null
+++ b/recipes-qtopia/poboxserver/qpobox/qpobox.patch
@@ -0,0 +1,57 @@
+diff -Naur qpobox.orig/pbclient.cpp qpobox/pbclient.cpp
+--- qpobox.orig/pbclient.cpp 2003-06-21 04:56:31.000000000 +0200
++++ qpobox/pbclient.cpp 2006-05-11 22:49:00.000000000 +0200
+@@ -28,7 +28,8 @@
+ m_address(address), m_port(port)
+ {
+ m_sock = new QSocket(this);
+- m_conv = QTextCodec::codecForName("EUC-JP");
++ //m_conv = QTextCodec::codecForName("EUC-JP");
++ m_conv = QTextCodec::codecForName("utf8");
+
+ connect(m_sock, SIGNAL(readyRead()), this, SLOT(socketReadyRead()));
+ connect(m_sock, SIGNAL(error(int)), this, SLOT(socketError(int)));
+diff -Naur qpobox.orig/qpobox.key qpobox/qpobox.key
+--- qpobox.orig/qpobox.key 2003-08-12 22:23:15.000000000 +0200
++++ qpobox/qpobox.key 2006-05-12 23:27:19.000000000 +0200
+@@ -1,15 +1,15 @@
+ [INIT]
+ Shift+Space = THRU
+ Space = NEXT
+- Shift+Return = THRU_MODE
++ Shift+Enter = THRU_MODE
+ F21 = CLOSE
+ F25 = IM_MODE
+
+ [INPUT]
+ Shift+Space = PREV
+ Space = NEXT
+- Shift+Return = FIX
+- Return = EXACT
++ Shift+Enter = FIX
++ Enter = EXACT
+ BackSpace = BS
+ Delete = DELETE
+ Left = SHRINK
+@@ -22,7 +22,7 @@
+ [SELECT]
+ Shift+Space = PREV
+ Space = NEXT
+- Return = FIX
++ Enter = FIX
+ BackSpace = BS
+ Delete = NOP
+ Left = PREV
+diff -Naur qpobox.orig/qpoboxconfig.cpp qpobox/qpoboxconfig.cpp
+--- qpobox.orig/qpoboxconfig.cpp 2005-01-09 06:53:44.000000000 +0100
++++ qpobox/qpoboxconfig.cpp 2006-05-11 22:38:22.000000000 +0200
+@@ -224,7 +224,8 @@
+ if (t != m_key_loaded) {
+ if (f.open(IO_ReadOnly)) {
+ QTextStream ts(&f);
+- QTextCodec *codec=QTextCodec::codecForName("UTF-8");
++ //QTextCodec *codec=QTextCodec::codecForName("UTF-8");
++ QTextCodec *codec=QTextCodec::codecForName("eucJP");
+ ts.setCodec(codec);
+ poboxmode_t mode = MODE_INIT;
+
diff --git a/recipes-qtopia/poboxserver/qpobox_0.5.4.bb b/recipes-qtopia/poboxserver/qpobox_0.5.4.bb
new file mode 100644
index 0000000..76f5d63
--- /dev/null
+++ b/recipes-qtopia/poboxserver/qpobox_0.5.4.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A japanese inputmethod for Qt/Embedded based palmtop environments."
+SECTION = "opie/inputmethods"
+RDEPENDS_${PN} = "poboxserver virtual-japanese-font"
+LICENSE = "GPL"
+HOMEPAGE = "http://takahr.dhis.portside.net/cgi-bin/rwiki.cgi?cmd=view;name=QPOBox"
+PR = "r3"
+
+SRC_URI = "http://www.vanille.de/mirror/qpobox-${PV}.tar.gz \
+ file://qpobox-0.5.4-opie.patch \
+ file://qpobox.patch"
+S = "${WORKDIR}/qpobox"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/share
+ install -m 644 qpobox.key ${D}${palmtopdir}/share
+}
+
+SRC_URI[md5sum] = "45a7f9baeaaf638c6fcd0aa6f1f78080"
+SRC_URI[sha256sum] = "405538793e33bf959cfc53955544615e691da8e37538e79855532d64dad5a95b"
diff --git a/recipes-qtopia/pocketcellar/pocketcellar-1.1/cellardb.patch b/recipes-qtopia/pocketcellar/pocketcellar-1.1/cellardb.patch
new file mode 100644
index 0000000..ff55044
--- /dev/null
+++ b/recipes-qtopia/pocketcellar/pocketcellar-1.1/cellardb.patch
@@ -0,0 +1,88 @@
+#
+#Try to remove hardcoded /home path
+#
+--- pocketcellar-1.1/cellardb.cpp.old 2005-02-28 13:43:19.000000000 +0000
++++ pocketcellar-1.1/cellardb.cpp 2005-02-28 13:42:55.000000000 +0000
+@@ -19,6 +19,7 @@
+
+ #include "cellardb.h"
+ #include <qfile.h>
++#include <qdir.h>
+ #include <qdatastream.h>
+ #include "winedb.h"
+
+@@ -55,16 +56,16 @@
+
+
+ bool CellarDB::load(QListView *parent, QListView *wines, int loc) {
+- QString path("/home");
+-
++ QString path(QDir::homeDirPath());
++
+ if (loc == 1)
+- path = "/usr/mnt.rom/cf";
++ path = "/media/cf";
+ else if (loc == 2)
+- path = "/usr/mnt.rom/card";
++ path = "/media/card";
+
+- mkdir(QString(path + "/QtPalmtop/data/PocketCellar").ascii(), 755);
++ mkdir(QString(path + "/Documents/application/PocketCellar").ascii(), 755);
+
+- QFile f(path+"/QtPalmtop/data/PocketCellar/PCellarDB");
++ QFile f(path+"/Documents/application/PocketCellar/PCellarDB");
+
+ if (!f.open(IO_ReadOnly))
+ return false;
+@@ -102,28 +103,28 @@
+
+ f.close();
+
+- if (loc != 0)
++/* if (loc != 0)
+ unlink("/home/QtPalmtop/data/PocketCellar/PCellarDB");
+ if (loc != 1)
+ unlink("/usr/mnt.rom/cf/QtPalmtop/data/PocketCellar/PCellarDB");
+ if (loc != 2)
+- unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCellarDB");
++ unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCellarDB");*/
+
+ return true;
+ }
+
+
+ bool CellarDB::save(QListView *parent, int loc) {
+- QString path("/home");
+-
++ QString path(QDir::homeDirPath());
++
+ if (loc == 1)
+- path = "/usr/mnt.rom/cf";
++ path = "/media/cf";
+ else if (loc == 2)
+- path = "/usr/mnt.rom/card";
++ path = "/media/card";
+
+- mkdir(QString(path + "/QtPalmtop/data/PocketCellar").ascii(), 755);
++ mkdir(QString(path + "/Documents/application/PocketCellar").ascii(), 755);
+
+- QFile f(path+"/QtPalmtop/data/PocketCellar/PCellarDB");
++ QFile f(path+"/Documents/application/PocketCellar/PCellarDB");
+
+ //qDebug("Filename %s\n", (path+"/QtPalmtop/data/PocketCellar/PCellarDB").latin1());
+ if (!f.open(IO_WriteOnly))
+@@ -143,12 +144,12 @@
+
+ f.close();
+
+- if (loc != 0)
++/* if (loc != 0)
+ unlink("/home/QtPalmtop/data/PocketCellar/PCellarDB");
+ if (loc != 1)
+ unlink("/usr/mnt.rom/cf/QtPalmtop/data/PocketCellar/PCellarDB");
+ if (loc != 2)
+- unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCellarDB");
++ unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCellarDB");*/
+
+ return true;
+ }
diff --git a/recipes-qtopia/pocketcellar/pocketcellar-1.1/gcc3.patch b/recipes-qtopia/pocketcellar/pocketcellar-1.1/gcc3.patch
new file mode 100644
index 0000000..634944a
--- /dev/null
+++ b/recipes-qtopia/pocketcellar/pocketcellar-1.1/gcc3.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- pocketcellar-1.1/wineentry.cpp~gcc3 2002-11-15 02:06:44.000000000 +0100
++++ pocketcellar-1.1/wineentry.cpp 2004-02-11 14:27:26.000000000 +0100
+@@ -35,7 +35,7 @@
+ #include "winedb.h"
+
+
+-WineEditor::WineEditor(QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0)
++WineEditor::WineEditor(QWidget* parent, const char* name, bool modal, WFlags fl)
+ : WineEditorBase(parent, name, modal, fl), _databaseList(0)
+ {
+ }
diff --git a/recipes-qtopia/pocketcellar/pocketcellar-1.1/pocketcellar.patch b/recipes-qtopia/pocketcellar/pocketcellar-1.1/pocketcellar.patch
new file mode 100644
index 0000000..a34f9d1
--- /dev/null
+++ b/recipes-qtopia/pocketcellar/pocketcellar-1.1/pocketcellar.patch
@@ -0,0 +1,14 @@
+--- pocketcellar-1.1/pocketcellar.cpp.old
++++ pocketcellar-1.1/pocketcellar.cpp
+@@ -395,9 +395,9 @@
+ _wines->setText(QString::number(stats._wines));
+ _bottles->setText(QString::number(stats._bottles));
+ QString tmp;
+- tmp.sprintf(tr("$%.2f"), stats._totalPrice);
++ tmp.sprintf(tr("%.2f"), stats._totalPrice);
+ _value->setText(tmp);
+- tmp.sprintf(tr("$%.2f ... $%.2f, avg $%.2f"),
++ tmp.sprintf(tr("%.2f ... %.2f, avg %.2f"),
+ stats._minPrice <= stats._maxPrice ?
+ stats._minPrice : 0.0,
+ stats._maxPrice, stats._bottles > 0 ?
diff --git a/recipes-qtopia/pocketcellar/pocketcellar-1.1/winedb.patch b/recipes-qtopia/pocketcellar/pocketcellar-1.1/winedb.patch
new file mode 100644
index 0000000..885a23a
--- /dev/null
+++ b/recipes-qtopia/pocketcellar/pocketcellar-1.1/winedb.patch
@@ -0,0 +1,92 @@
+#
+# Try to remove hardcoded /home path
+#
+--- pocketcellar-1.1/winedb.cpp.old 2005-02-28 13:43:30.000000000 +0000
++++ pocketcellar-1.1/winedb.cpp 2005-02-28 13:40:55.000000000 +0000
+@@ -141,6 +141,7 @@
+ #include <qdatastream.h>
+ #include <qtextstream.h>
+ #include <qfile.h>
++#include <qdir.h>
+
+
+ QDataStream& operator>>(QDataStream& s, Wine& w) {
+@@ -209,15 +210,15 @@
+
+
+ bool WineDB::load(QListView *parent, int loc) {
+- QString path("/home");
++ QString path(QDir::homeDirPath());
+
+ if (loc == 1)
+- path = "/usr/mnt.rom/cf";
++ path = "/media/cf";
+ else if (loc == 2)
+- path = "/usr/mnt.rom/card";
++ path = "/media/card";
+
+- mkdir(QString(path + "/QtPalmtop/data/PocketCellar").ascii(), 755);
+- QFile f(path + "/QtPalmtop/data/PocketCellar/PCWineDB");
++ mkdir(QString(path + "/Documents/application/PocketCellar").ascii(), 755);
++ QFile f(path + "/Documents/application/PocketCellar/PCWineDB");
+
+ if (!f.open(IO_ReadOnly))
+ return false;
+@@ -240,26 +241,26 @@
+
+ f.close();
+
+- if (loc != 0)
++/* if (loc != 0)
+ unlink("/home/QtPalmtop/data/PocketCellar/PCWineDB");
+ if (loc != 1)
+ unlink("/usr/mnt.rom/cf/QtPalmtop/data/PocketCellar/PCWineDB");
+ if (loc != 2)
+- unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCWineDB");
++ unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCWineDB");*/
+ return true;
+ }
+
+
+ bool WineDB::save(QListView *parent, int loc) {
+- QString path("/home");
++ QString path(QDir::homeDirPath());
+
+ if (loc == 1)
+- path = "/usr/mnt.rom/cf";
++ path = "/media/cf";
+ else if (loc == 2)
+- path = "/usr/mnt.rom/card";
++ path = "/media/card";
+
+- mkdir(QString(path + "/QtPalmtop/data/PocketCellar").ascii(), 755);
+- QFile f(path + "/QtPalmtop/data/PocketCellar/PCWineDB");
++ mkdir(QString(path + "/Documents/application/PocketCellar").ascii(), 755);
++ QFile f(path + "/Documents/application/PocketCellar/PCWineDB");
+
+ if (!f.open(IO_WriteOnly))
+ return false;
+@@ -277,12 +278,12 @@
+
+ f.close();
+
+- if (loc != 0)
++/* if (loc != 0)
+ unlink("/home/QtPalmtop/data/PocketCellar/PCWineDB");
+ if (loc != 1)
+ unlink("/usr/mnt.rom/cf/QtPalmtop/data/PocketCellar/PCWineDB");
+ if (loc != 2)
+- unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCWineDB");
++ unlink("/usr/mnt.rom/card/QtPalmtop/data/PocketCellar/PCWineDB");*/
+ return true;
+ }
+
+@@ -290,7 +291,7 @@
+ QStringList WineDB::grapeList;
+
+ bool WineDB::loadGrapeList() {
+- QFile f("/home/QtPalmtop/data/PocketCellar/grapelist.txt");
++ QFile f("/opt/QtPalmtop/data/PocketCellar/grapelist.txt");
+
+ if (!f.open(IO_ReadOnly))
+ return false;
diff --git a/recipes-qtopia/pocketcellar/pocketcellar_1.1.bb b/recipes-qtopia/pocketcellar/pocketcellar_1.1.bb
new file mode 100644
index 0000000..8c0ebec
--- /dev/null
+++ b/recipes-qtopia/pocketcellar/pocketcellar_1.1.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Wine cellar manager. Allows you to record details of wines and \
+those you have in your cellar. The Food Assistant will make suggestions of wines \
+suitable for your meal, and indicate those in your cellar that match."
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r3"
+
+SRC_URI = "http://www.staikos.net/~staikos/pocketcellar/pocketcellar-${PV}.tar.gz \
+ file://winedb.patch \
+ file://cellardb.patch \
+ file://pocketcellar.patch \
+ file://gcc3.patch"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += " DESTDIR=pkg-cellar/home/QtPalmtop/bin/"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/data/PocketCellar
+
+ install -m 644 pkg-pcellar/home/QtPalmtop/data/PocketCellar/* ${D}${palmtopdir}/data/PocketCellar/
+ install -m 755 pkg-cellar/home/QtPalmtop/bin/pocketcellar ${D}${palmtopdir}/bin/
+ install -m 644 pocketcellar.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 644 pocketcellar.png ${D}${palmtopdir}/pics/
+ install -m 644 pkg-pcellar/home/root/Settings/foodassist.conf ${D}${palmtopdir}/data/PocketCellar/
+}
+
+FILES_${PN} = "/"
+
+SRC_URI[md5sum] = "ef65260b37a0c11898c680a576846c94"
+SRC_URI[sha256sum] = "5ae5e9816bc8503b768f831f058bd1c379bb821e8c0776015ffeb998e1d912f8"
diff --git a/recipes-qtopia/poqetpresenter/poqetpresenter_0.0.6.bb b/recipes-qtopia/poqetpresenter/poqetpresenter_0.0.6.bb
new file mode 100644
index 0000000..f2f9cdd
--- /dev/null
+++ b/recipes-qtopia/poqetpresenter/poqetpresenter_0.0.6.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "OpenOffice.org Impress presentation viewer for Qt/E based Palmtop environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://poqetp.sourceforge.net/"
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/poqetp/poqetp_${PV}_src.tar.gz"
+S = "${WORKDIR}/poqetp"
+
+inherit palmtop
+
+do_configure_prepend() {
+ find . -name "Makefile"|xargs rm -f # force regenerating Makefiles
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics
+ install -D -m 0755 poqetp/poqetp ${D}${palmtopdir}/bin/poqetp
+ install -D -m 0644 poqetp.desktop ${D}${palmtopdir}/apps/Applications/poqetp.desktop
+ install -d ${D}${palmtopdir}/pics/poqetp
+ cp -pPR pics/* ${D}${palmtopdir}/pics/poqetp/
+}
+
+SRC_URI[md5sum] = "b003614237445d23b512cb9571565524"
+SRC_URI[sha256sum] = "4347a70fe84bd2ccecc90738fb121d28298cf0bfdb4963ceee088c56d3109899"
diff --git a/recipes-qtopia/portabase/metakit-2.4.9.3/metakit-2.4.9.3.patch b/recipes-qtopia/portabase/metakit-2.4.9.3/metakit-2.4.9.3.patch
new file mode 100644
index 0000000..35babe2
--- /dev/null
+++ b/recipes-qtopia/portabase/metakit-2.4.9.3/metakit-2.4.9.3.patch
@@ -0,0 +1,108 @@
+diff -Naur metakit-2.4.9.3/include/mk4.h metakit-2.4.9.3-patched/include/mk4.h
+--- metakit-2.4.9.3/include/mk4.h 2004-01-26 04:54:45.000000000 -0500
++++ metakit-2.4.9.3-patched/include/mk4.h 2004-02-28 21:07:34.000000000 -0500
+@@ -217,6 +217,9 @@
+ bool operator< (const t4_i64 a_, const t4_i64 b_);
+ #endif
+
++typedef int ((*StringCompareFunc)(const char*, const char*));
++typedef int ((*Win32FileOpenFunc)(const char*, int));
++
+ //---------------------------------------------------------------------------
+
+ class c4_View
+@@ -330,6 +333,7 @@
+ friend bool operator> (const c4_View&, const c4_View&);
+ friend bool operator<= (const c4_View&, const c4_View&);
+ friend bool operator>= (const c4_View&, const c4_View&);
++ static StringCompareFunc stringCompareFunc;
+
+ protected:
+ void _IncSeqRef();
+@@ -554,6 +558,8 @@
+ bool LoadFrom(c4_Stream&);
+ void SaveTo(c4_Stream&);
+
++ static Win32FileOpenFunc win32FileOpenFunc;
++
+ //DROPPED: c4_Storage (const char* filename_, const char* description_);
+ //DROPPED: c4_View Store(const char* name_, const c4_View& view_);
+ //DROPPED: c4_HandlerSeq& RootTable() const;
+diff -Naur metakit-2.4.9.3/src/fileio.cpp metakit-2.4.9.3-patched/src/fileio.cpp
+--- metakit-2.4.9.3/src/fileio.cpp 2003-11-22 20:42:51.000000000 -0500
++++ metakit-2.4.9.3-patched/src/fileio.cpp 2004-02-28 21:07:34.000000000 -0500
+@@ -321,7 +321,7 @@
+
+ #if q4_WIN32 && !q4_BORC && !q4_WINCE
+ int flags = _O_BINARY | _O_NOINHERIT | (mode_ > 0 ? _O_RDWR : _O_RDONLY);
+- int fd = _open(fname_, flags);
++ int fd = (*c4_Storage::win32FileOpenFunc)(fname_, flags);
+ if (fd != -1)
+ _cleanup = _file = _fdopen(fd, mode_ > 0 ? "r+b" : "rb");
+ #else
+@@ -339,7 +339,8 @@
+
+ if (mode_ > 0) {
+ #if q4_WIN32 && !q4_BORC && !q4_WINCE
+- fd = _open(fname_, flags | _O_CREAT, _S_IREAD | _S_IWRITE);
++ flags = flags | _O_CREAT, _S_IREAD | _S_IWRITE;
++ fd = (*c4_Storage::win32FileOpenFunc)(fname_, flags);
+ if (fd != -1)
+ _cleanup = _file = _fdopen(fd, "w+b");
+ #else
+diff -Naur metakit-2.4.9.3/src/format.cpp metakit-2.4.9.3-patched/src/format.cpp
+--- metakit-2.4.9.3/src/format.cpp 2004-01-19 17:49:43.000000000 -0500
++++ metakit-2.4.9.3-patched/src/format.cpp 2004-02-28 21:07:35.000000000 -0500
+@@ -923,7 +923,7 @@
+ c4_String v1 ((const char*) b1_.Contents(), b1_.Size());
+ c4_String v2 ((const char*) b2_.Contents(), b2_.Size());
+
+- return v1.CompareNoCase(v2);
++ return (*c4_View::stringCompareFunc)(v1, v2);
+ }
+
+ void c4_FormatS::Insert(int index_, const c4_Bytes& buf_, int count_)
+diff -Naur metakit-2.4.9.3/src/store.cpp metakit-2.4.9.3-patched/src/store.cpp
+--- metakit-2.4.9.3/src/store.cpp 2003-11-22 20:42:51.000000000 -0500
++++ metakit-2.4.9.3-patched/src/store.cpp 2004-02-28 21:09:26.000000000 -0500
+@@ -18,6 +18,10 @@
+ #if !q4_INLINE
+ #include "store.inl"
+ #endif
++
++#if q4_WIN32
++#include <io.h>
++#endif
+
+ /////////////////////////////////////////////////////////////////////////////
+
+@@ -426,6 +430,17 @@
+ c4_Persist::Save(&stream_, Persist()->Root());
+ }
+
++int f4_Latin1OpenFunc(const char *fname_, int mode_)
++{
++#if q4_WIN32
++ return _open(fname_, mode_);
++#else
++ return -1;
++#endif
++}
++
++Win32FileOpenFunc c4_Storage::win32FileOpenFunc = f4_Latin1OpenFunc;
++
+ /////////////////////////////////////////////////////////////////////////////
+
+ c4_DerivedSeq::c4_DerivedSeq (c4_Sequence& seq_)
+diff -Naur metakit-2.4.9.3/src/view.cpp metakit-2.4.9.3-patched/src/view.cpp
+--- metakit-2.4.9.3/src/view.cpp 2003-11-22 20:42:51.000000000 -0500
++++ metakit-2.4.9.3-patched/src/view.cpp 2004-02-28 21:07:35.000000000 -0500
+@@ -1005,6 +1005,8 @@
+ return na == nb ? 0 : i < na ? +1 : -1;
+ }
+
++StringCompareFunc c4_View::stringCompareFunc = strcmp;
++
+ /////////////////////////////////////////////////////////////////////////////
+
+ /** @class c4_Cursor
diff --git a/recipes-qtopia/portabase/metakit_2.4.9.3.bb b/recipes-qtopia/portabase/metakit_2.4.9.3.bb
new file mode 100644
index 0000000..f193871
--- /dev/null
+++ b/recipes-qtopia/portabase/metakit_2.4.9.3.bb
@@ -0,0 +1,68 @@
+SECTION = "libs"
+DESCRIPTION = "Metakit is an efficient embedded database library with a small \
+footprint. It fills the gap between flat-file, relational, object-oriented, and \
+tree-structured databases, supporting relational joins, serialization, nested structures,\
+and instant schema evolution."
+LICENSE = "MetaKit"
+HOMEPAGE = "http://www.equi4.com/metakit.html"
+
+SRC_URI = "http://www.equi4.com/pub/mk/metakit-${PV}.tar.gz \
+ file://metakit-2.4.9.3.patch"
+PR = "r3"
+
+FILES_${PN} += " ${libdir}/*.so"
+
+do_configure_prepend() {
+
+# cp ${STAGING_DATADIR}/libtool/*.* ${S}/unix/scripts/
+
+}
+
+do_configure () {
+
+ cd builds
+ ../unix/configure \
+ --build=${BUILD_SYS} \
+ --host=${HOST_SYS} \
+ --target=${TARGET_SYS} \
+ --prefix=${prefix} \
+ --exec_prefix=${exec_prefix} \
+ --bindir=${bindir} \
+ --sbindir=${sbindir} \
+ --libexecdir=${libexecdir} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir} \
+ --localstatedir=${localstatedir} \
+ --libdir=${libdir} \
+ --includedir=${includedir} \
+ --oldincludedir=${oldincludedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ ${EXTRA_OECONF} \
+ $@;
+
+}
+
+do_stage() {
+ oe_libinstall -a -so -C builds/.libs libmk4 ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/
+ for X in mk4.h mk4.inl
+ do
+ install -m 0644 include/${X} ${STAGING_INCDIR}/${X}
+ done
+
+}
+
+do_compile () {
+ cd builds
+ oe_runmake
+}
+
+do_install() {
+ oe_libinstall -so -C builds/.libs libmk4 ${D}${libdir}
+}
+
+
+SRC_URI[md5sum] = "89a25775fee5db536937f36deb5223f6"
+SRC_URI[sha256sum] = "4d6c46289b1f1dea4e8bbc78332901491bde0c552727c27431ca9cb0234658da"
diff --git a/recipes-qtopia/portabase/portabase-1.9/fileselector.patch b/recipes-qtopia/portabase/portabase-1.9/fileselector.patch
new file mode 100644
index 0000000..7f70c34
--- /dev/null
+++ b/recipes-qtopia/portabase/portabase-1.9/fileselector.patch
@@ -0,0 +1,128 @@
+diff -urN portabase.orig/fileselector.cpp portabase/fileselector.cpp
+--- portabase.orig/fileselector.cpp 2004-09-02 20:06:38.000000000 +0200
++++ portabase/fileselector.cpp 2004-09-02 20:59:22.000000000 +0200
+@@ -43,8 +43,8 @@
+
+ bool PBFileSelector::duplicate()
+ {
+- const DocLnk *selection = selected();
+- if (selection == 0) {
++ DocLnk selection(selectedDocument());
++ if (!selection.isValid()) {
+ return FALSE;
+ }
+ bool ok;
+@@ -56,7 +56,7 @@
+ DocLnk copy;
+ configureDocLnk(copy, name);
+ FileManager fm;
+- ok = fm.copyFile(*selection, copy);
++ ok = fm.copyFile(selection, copy);
+ }
+ if (ok) {
+ reread();
+@@ -65,14 +65,13 @@
+ QMessageBox::warning(this, QQDialog::tr("PortaBase"),
+ tr("Unable to create new file"));
+ }
+- delete selection;
+ return ok;
+ }
+
+ bool PBFileSelector::rename()
+ {
+- const DocLnk *selection = selected();
+- if (selection == 0) {
++ DocLnk selection(selectedDocument());
++ if (!selection.isValid()) {
+ return FALSE;
+ }
+ bool ok;
+@@ -88,9 +87,9 @@
+ configureDocLnk(copy, name);
+ // actual moving would be more efficient, but harder to implement...
+ FileManager fm;
+- if (fm.copyFile(*selection, copy)) {
+- QFile::remove(selection->file());
+- QFile::remove(selection->linkFile());
++ if (fm.copyFile(selection, copy)) {
++ QFile::remove(selection.file());
++ QFile::remove(selection.linkFile());
+ ok = TRUE;
+ }
+ else {
+@@ -104,7 +103,6 @@
+ QMessageBox::warning(this, QQDialog::tr("PortaBase"),
+ tr("Unable to rename the file"));
+ }
+- delete selection;
+ return ok;
+ }
+
+diff -urN portabase.orig/importdialog.cpp portabase/importdialog.cpp
+--- portabase.orig/importdialog.cpp 2004-09-02 20:06:38.000000000 +0200
++++ portabase/importdialog.cpp 2004-09-02 20:54:47.000000000 +0200
+@@ -130,14 +130,13 @@
+ int result = QDialog::exec();
+ if (result && !importDone) {
+ // "OK" was clicked...see if there is a selected file
+- const DocLnk *f = selector->selected();
+- if (!f) {
++ DocLnk f(selector->selectedDocument());
++ if (!f.isValid()) {
+ return QDialog::Rejected;
+ }
+- if (!import(f->file())) {
++ if (!import(f.file())) {
+ result = QDialog::Rejected;
+ }
+- delete f;
+ }
+ return result;
+ }
+diff -urN portabase.orig/portabase.cpp portabase/portabase.cpp
+--- portabase.orig/portabase.cpp 2004-09-02 20:06:38.000000000 +0200
++++ portabase/portabase.cpp 2004-09-02 20:56:58.000000000 +0200
+@@ -527,12 +527,11 @@
+
+ void PortaBase::openFile()
+ {
+- const DocLnk *selection = fileSelector->selected();
+- if (selection == 0) {
++ DocLnk selection (fileSelector->selectedDocument());
++ if (!selection.isValid()) {
+ return;
+ }
+- openFile(*selection);
+- delete selection;
++ openFile(selection);
+ }
+
+ void PortaBase::openFile(const QString &f)
+@@ -591,21 +590,19 @@
+
+ void PortaBase::deleteFile()
+ {
+- const DocLnk *selection = fileSelector->selected();
+- if (selection == 0) {
++ DocLnk selection(fileSelector->selectedDocument());
++ if (!selection.isValid()) {
+ return;
+ }
+ if (QMessageBox::warning(this, QQDialog::tr("PortaBase"), tr("Delete")
+- + " \"" + selection->name() + "\"\n"
++ + " \"" + selection.name() + "\"\n"
+ + tr("Are you sure?"),
+ QObject::tr("Yes"), QObject::tr("No"),
+ QString::null, 1) > 0) {
+- delete selection;
+ return;
+ }
+- QFile::remove(selection->file());
+- QFile::remove(selection->linkFile());
+- delete selection;
++ QFile::remove(selection.file());
++ QFile::remove(selection.linkFile());
+ fileSelector->reread();
+ }
+
diff --git a/recipes-qtopia/portabase/portabase-1.9/qt2310-fontbug.patch b/recipes-qtopia/portabase/portabase-1.9/qt2310-fontbug.patch
new file mode 100644
index 0000000..3999ca3
--- /dev/null
+++ b/recipes-qtopia/portabase/portabase-1.9/qt2310-fontbug.patch
@@ -0,0 +1,11 @@
+--- portabase/preferences.cpp.orig 2005-02-13 22:48:10 +0100
++++ portabase/preferences.cpp 2005-02-13 22:48:06 +0100
+@@ -154,7 +154,7 @@
+ {
+ QWidget *appearanceTab = new QWidget(tabs);
+ QVBoxLayout *layout = new QVBoxLayout(appearanceTab);
+-#if defined(Q_WS_QWS)
++#if defined(Q_WS_QWS) && QT_VERSION <= 239
+ sizeFactor = 10;
+ #else
+ sizeFactor = 1;
diff --git a/recipes-qtopia/portabase/portabase-1.9/qtopia.patch b/recipes-qtopia/portabase/portabase-1.9/qtopia.patch
new file mode 100644
index 0000000..a3a8077
--- /dev/null
+++ b/recipes-qtopia/portabase/portabase-1.9/qtopia.patch
@@ -0,0 +1,70 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- portabase/portabase.pro~qtopia
++++ portabase/portabase.pro
+@@ -7,7 +7,7 @@
+ portabase_zh_TW.ts
+ # determine which version to compile for
+ # options are desktop, qtopia, or sharp (add "test" for the test environment)
+-CONFIG += desktop
++CONFIG += qtopia
+
+ # Files common between all versions
+ HEADERS = portabase.h \
+@@ -120,7 +120,7 @@
+ metakitfuncs.cpp
+
+ # Stuff for all Linux/UNIX versions
+-unix:LIBS += -lm -lmk4 -lbeecrypt -ljpeg
++unix:LIBS += -lm -lmk4 -lbeecrypt -ljpeg -lstdc++
+
+ # Stuff for older Zaurus ROMs
+ qtopia:CONFIG += zaurus
+@@ -155,44 +155,3 @@
+ dynamicedit.cpp \
+ inputdialog.cpp
+
+-# Stuff for the Qtopia test environment
+-test:TMAKE_CC = gcc-2.95
+-test:TMAKE_CXX = g++-2.95
+-
+-# Stuff for all desktop versions
+-desktop:CONFIG += thread
+-desktop:HEADERS += desktop/QtaDatePicker.h \
+- desktop/applnk.h \
+- desktop/config.h \
+- desktop/dynamicedit.h \
+- desktop/filemanager.h \
+- desktop/fileselector.h \
+- desktop/helpbrowser.h \
+- desktop/importdialog.h \
+- desktop/newfiledialog.h \
+- desktop/oldconfig.h \
+- desktop/qpeapplication.h \
+- desktop/resource.h \
+- desktop/timestring.h
+-desktop:SOURCES += desktop/QtaDatePicker.cpp \
+- desktop/applnk.cpp \
+- desktop/config.cpp \
+- desktop/dynamicedit.cpp \
+- desktop/filemanager.cpp \
+- desktop/fileselector.cpp \
+- desktop/helpbrowser.cpp \
+- desktop/importdialog.cpp \
+- desktop/newfiledialog.cpp \
+- desktop/oldconfig.cpp \
+- desktop/qpeapplication.cpp \
+- desktop/resource.cpp \
+- desktop/timestring.cpp
+-
+-# Stuff for Windows
+-win32:LIBS += mk4vc60s.lib beecrypt.lib libjpeg.lib
+-win32:DEFINES += QT_DLL
+-win32:RC_FILE = portabase.rc
+-win32:QMAKE_CXXFLAGS_RELEASE += /MD
+-win32:INCLUDEPATH += D:\Devel\metakit-2.4.9.3\include \
+- D:\Devel\jpeg-6b \
+- D:\Devel
diff --git a/recipes-qtopia/portabase/portabase-1.9/qtversion.patch b/recipes-qtopia/portabase/portabase-1.9/qtversion.patch
new file mode 100644
index 0000000..e7e93d0
--- /dev/null
+++ b/recipes-qtopia/portabase/portabase-1.9/qtversion.patch
@@ -0,0 +1,101 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- /dev/null
++++ portabase/packages/portabase/portabase-1.9/qtversion.patch
+@@ -0,0 +1,49 @@
++
++#
++# Patch managed by http://www.holgerschurig.de/patcher.html
++#
++
++--- portabase/datewidget.cpp~qtversion.patch
+++++ portabase/datewidget.cpp
++@@ -21,7 +21,7 @@
++ #include "desktop/resource.h"
++ #endif
++
++-#if QT_VERSION >= 300
+++#if QT_VERSION >= 0x030000
++ #include "desktop/QtaDatePicker.h"
++ #else
++ #include "QtaDatePicker.h"
++--- portabase/metakitfuncs.cpp~qtversion.patch
+++++ portabase/metakitfuncs.cpp
++@@ -19,7 +19,7 @@
++
++ int compareStrings(const QString &s1, const QString &s2)
++ {
++-#if QT_VERSION >= 300
+++#if QT_VERSION >= 0x030000
++ return s1.localeAwareCompare(s2);
++ #else
++ // do the right thing for null and empty
++--- portabase/roweditor.cpp~qtversion.patch
+++++ portabase/roweditor.cpp
++@@ -26,7 +26,7 @@
++ #include "roweditor.h"
++ #include "timewidget.h"
++
++-#if QT_VERSION >= 300
+++#if QT_VERSION >= 0x030000
++ #include "desktop/dynamicedit.h"
++ #else
++ #include "dynamicedit.h"
++--- portabase/shadedlistitem.cpp~qtversion.patch
+++++ portabase/shadedlistitem.cpp
++@@ -45,7 +45,7 @@
++ void ShadedListItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment)
++ {
++ QColorGroup colors(cg);
++-#if QT_VERSION >=300
+++#if QT_VERSION >= 0x030000
++ const QWidget::BackgroundMode bgmode = lv->viewport()->backgroundMode();
++ const QColorGroup::ColorRole crole = QPalette::backgroundRoleFromMode(bgmode);
++ #else
+--- portabase/datewidget.cpp~qtversion
++++ portabase/datewidget.cpp
+@@ -21,7 +21,7 @@
+ #include "desktop/resource.h"
+ #endif
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ #include "desktop/QtaDatePicker.h"
+ #else
+ #include "QtaDatePicker.h"
+--- portabase/roweditor.cpp~qtversion
++++ portabase/roweditor.cpp
+@@ -26,7 +26,7 @@
+ #include "roweditor.h"
+ #include "timewidget.h"
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ #include "desktop/dynamicedit.h"
+ #else
+ #include "dynamicedit.h"
+--- portabase/shadedlistitem.cpp~qtversion
++++ portabase/shadedlistitem.cpp
+@@ -45,7 +45,7 @@
+ void ShadedListItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment)
+ {
+ QColorGroup colors(cg);
+-#if QT_VERSION >=300
++#if QT_VERSION >= 0x030000
+ const QWidget::BackgroundMode bgmode = lv->viewport()->backgroundMode();
+ const QColorGroup::ColorRole crole = QPalette::backgroundRoleFromMode(bgmode);
+ #else
+--- portabase/metakitfuncs.cpp~qtversion
++++ portabase/metakitfuncs.cpp
+@@ -19,7 +19,7 @@
+
+ int compareStrings(const QString &s1, const QString &s2)
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ return s1.localeAwareCompare(s2);
+ #else
+ // do the right thing for null and empty
diff --git a/recipes-qtopia/portabase/portabase_1.9.bb b/recipes-qtopia/portabase/portabase_1.9.bb
new file mode 100644
index 0000000..6c08432
--- /dev/null
+++ b/recipes-qtopia/portabase/portabase_1.9.bb
@@ -0,0 +1,132 @@
+DESCRIPTION = "Portabase is a small database program for creating, browsing, \
+and editing custom tables of data."
+SECTION = "opie/applications"
+LICENSE = "GPL"
+HOMEPAGE = "http://portabase.sourceforge.net/"
+DEPENDS = "metakit beecrypt"
+APPNAME = "portabase"
+PR = "r4"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/portabase/portabase_${PV}.tar.gz \
+ file://qtopia.patch \
+ file://fileselector.patch \
+ file://qtversion.patch \
+ file://qt2310-fontbug.patch"
+
+S = "${WORKDIR}/portabase"
+
+inherit palmtop
+
+do_configure_prepend() {
+ find . -name "Makefile"|xargs rm -f
+}
+
+QMAKE_PROFILES = "portabase.pro"
+QPEDIR = "${OPIEDIR}"
+EXTRA_QMAKEVARS_POST += "CONFIG-=desktop"
+
+# lrelease portabase.pro
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics/${APPNAME} \
+ ${D}${palmtopdir}/help/en
+ install -D -m 0755 ${APPNAME} ${D}${palmtopdir}/bin/${APPNAME}
+ install -m 0644 package/${APPNAME}.desktop ${D}${palmtopdir}/apps/Applications/${APPNAME}.desktop
+
+ install -D -m 0644 pics/PortaBase.png ${D}${palmtopdir}/pics/PortaBase.png
+ for f in calculator.png checked.png image.png note.png save.png save_disabled.png unchecked.png calendar.xpm QtaDatePickerNext.xpm QtaDatePickerPrev.xpm
+ do
+ install -D -m 0644 pics/$f ${D}${palmtopdir}/pics/${APPNAME}/$f
+ done
+
+ install -D -m 0644 help/html/${APPNAME}.html ${D}${palmtopdir}/help/en/html/${APPNAME}.html
+}
+
+
+pkg_postinst() {
+#!/bin/sh
+
+NEWTYPE=application/portabase
+EXT=pob
+
+T=${NEWTYPE%/*}
+S=${NEWTYPE#*/}
+
+grep $EXT $QPEDIR/etc/mime.types |
+(
+ read TYPE EXTS
+ if [ -z "$TYPE" ]
+ then
+ if grep -q "^$NEWTYPE[ ]" $QPEDIR/etc/mime.types || grep -q "^$NEWTYPE$" $QPEDIR/etc/mime.types
+ then
+ if sed -e '/^'$T"\\/"$S'[ ]/ s/$/ '$EXT'/' <$QPEDIR/etc/mime.types >$QPEDIR/etc/mime.types.new ||
+ sed -e '/^'$T"\\/"$S'$/ s/$/ '$EXT'/' <$QPEDIR/etc/mime.types >$QPEDIR/etc/mime.types.new
+ then
+ mv $QPEDIR/etc/mime.types.new $QPEDIR/etc/mime.types
+ exit 0
+ else
+ echo >&2 "Internal MIME type update error"
+ exit 1
+ fi
+ else
+ echo "" >>$QPEDIR/etc/mime.types
+ sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba' $QPEDIR/etc/mime.types >$QPEDIR/etc/mime.types.new
+ mv $QPEDIR/etc/mime.types.new $QPEDIR/etc/mime.types
+ echo "$NEWTYPE $EXT" >>$QPEDIR/etc/mime.types
+ exit 0
+ fi
+ elif [ "$TYPE" = "$NEWTYPE" ]
+ then
+ #echo "Already done"
+ exit 0
+ else
+ echo >&2 "$EXT already assigned to $TYPE"
+ exit 1
+ fi
+)
+
+NEWTYPE=text/x-csv
+EXT=csv
+
+T=${NEWTYPE%/*}
+S=${NEWTYPE#*/}
+
+grep $EXT $QPEDIR/etc/mime.types |
+(
+ read TYPE EXTS
+ if [ -z "$TYPE" ]
+ then
+ if grep -q "^$NEWTYPE[ ]" $QPEDIR/etc/mime.types || grep -q "^$NEWTYPE$" $QPEDIR/etc/mime.types
+ then
+ if sed -e '/^'$T"\\/"$S'[ ]/ s/$/ '$EXT'/' <$QPEDIR/etc/mime.types >$QPEDIR/etc/mime.types.new ||
+ sed -e '/^'$T"\\/"$S'$/ s/$/ '$EXT'/' <$QPEDIR/etc/mime.types >$QPEDIR/etc/mime.types.new
+ then
+ mv $QPEDIR/etc/mime.types.new $QPEDIR/etc/mime.types
+ exit 0
+ else
+ echo >&2 "Internal MIME type update error"
+ exit 1
+ fi
+ else
+ echo "" >>$QPEDIR/etc/mime.types
+ sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba' $QPEDIR/etc/mime.types >$QPEDIR/etc/mime.types.new
+ mv $QPEDIR/etc/mime.types.new $QPEDIR/etc/mime.types
+ echo "$NEWTYPE $EXT" >>$QPEDIR/etc/mime.types
+ exit 0
+ fi
+ elif [ "$TYPE" = "$NEWTYPE" ]
+ then
+ #echo "Already done"
+ exit 0
+ else
+ echo >&2 "$EXT already assigned to $TYPE"
+ exit 1
+ fi
+)
+}
+
+
+SRC_URI[md5sum] = "3319e8eff133de0bc9e8fe810e052202"
+SRC_URI[sha256sum] = "6b3d91811b098fb9e1a0f91d11a6c935c2d7e41d4431f022023d606d270fe0fc"
diff --git a/recipes-qtopia/powermanga/powermanga-0.79/linuxroutines.cpp b/recipes-qtopia/powermanga/powermanga-0.79/linuxroutines.cpp
new file mode 100644
index 0000000..39394eb
--- /dev/null
+++ b/recipes-qtopia/powermanga/powermanga-0.79/linuxroutines.cpp
@@ -0,0 +1,845 @@
+//*****************************************************************************
+// copyright (c) 1998-2003 TLK Games all rights reserved
+//-----------------------------------------------------------------------------
+// file : "linuxroutines.cpp"
+// created : 1999-08-19
+// updates : 2004-08-01
+//------------------------------------------------------------------------------
+// functions : int mem_initialise(unsigned int _iNombreZones)
+// char* reserveMemoire(unsigned int _iTailleMemoire)
+// void libereMemoire(char* _pMemoire)
+// void mem_libereTous()
+// int load_pcx(char*, char*) ;
+// sDescriptionGfx* load_pcx(char*) ;
+// unsigned int littleWord(char* _pMem) ;
+// short litMot16bits(short* _pMem) ;
+// int litMot32bits(int* _pMem) ;
+// int chaine_cmp(char* _pChaine1, char* _pChaine2, unsigned int _iTaille) ;
+// char* chargeFichier(char* _pNomFichier)
+// char* chargeFichier(char* _pNomFichier, unsigned int* pTaille)
+// int chargeFichier(char* _pNomFichier, char* _pMemoire)
+// void fps_init()
+// void fps_affiche()
+// void afficheErreur(char* _pErreur1, char* _pErreur2)
+// int synchro_processusPause(int _iTemps)
+// int synchro_CalculDifference()
+// int synchro_CalculDifference2()
+//-----------------------------------------------------------------------------
+// This program is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free Software
+// Foundation; either version 2 of the License, or (at your option) any later
+// version.
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+// details.
+//
+// You should have received a copy of the GNU General Public License along with
+// this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+// Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+//*****************************************************************************
+
+#include "powermanga.hpp"
+#include <errno.h>
+
+#ifndef SDL_TLK
+#include <sys/types.h>
+#include <sys/stat.h>
+#endif
+
+//..............................................................................
+extern unsigned int iVerbeux; //1=affiche les arguments / 1=verbose mode
+
+//gestion de la memoire .........................................................
+typedef struct
+{ char *pMemoire; //pointeur sur la zone memoire / pointer to memory zone
+ int iTailleMemoire; //taille de la zone en octets / size of memory zone in bytes
+}
+sListeMemoire;
+char *pZoneListeMemoire;
+sListeMemoire *pZoneListeBase;
+sListeMemoire *pZoneListeLibre;
+unsigned int iTailleListe; //taille de la liste memoire / size of memory table
+unsigned int iNombreZonesMaximum; //nombre de zones memoires maxi / number maximum of memory zone
+unsigned int iNombreZones; //nombre de zone actuelle / number of memroy zone
+unsigned int iOctetsTotal; //taille prise en octets / total memory size allocated
+unsigned int iNombreZonesMax; //nombre maximum de zones reserves
+
+//..............................................................................
+unsigned int iCompteurBoucle;
+#ifdef SDL_TLK
+Uint32 time_begin;
+Uint32 temps_actuel;
+Uint32 temps_sauve;
+Uint32 temps_actuel2;
+Uint32 temps_sauve2;
+#else
+static struct timeval time_begin;
+static struct timeval temps_actuel;
+static struct timeval temps_sauve;
+static struct timeval temps_actuel2;
+static struct timeval temps_sauve2;
+#endif
+
+//..............................................................................
+short litMot16bitsBig(short *_pMem);
+unsigned short litMot16bits(unsigned short *_pMem);
+extern const char nomprefix[];
+extern unsigned int iFrame3;
+//------------------------------------------------------------------------------
+// initialise la liste memoire / initialise memory table
+// input => _iNombreZones : nombre de zones memoire possibles au maximum / number maximum of memory zone
+// ouput <= 0=erreur / 0=error
+//------------------------------------------------------------------------------
+int mem_initialise(unsigned int _iNombreZones)
+{
+ unsigned int _iIndex;
+ iNombreZones = 0; // nombre de zones reservees a zero
+ pZoneListeMemoire = 0;
+ iNombreZonesMaximum = _iNombreZones; // nombre maximum de zones pouvant etre reservees
+ iNombreZonesMax = 0;
+ iTailleListe = iNombreZonesMaximum * sizeof(sListeMemoire);
+ iOctetsTotal = iTailleListe;
+ pZoneListeMemoire = (char *)malloc(iTailleListe);
+ if(!pZoneListeMemoire)
+ { afficheErreur("malloc() failed", "linuxroutines/mem_initialise()");
+ return 0;
+ }
+ pZoneListeBase = (sListeMemoire *) pZoneListeMemoire;
+ pZoneListeLibre = pZoneListeBase;
+ sListeMemoire *_pMem = pZoneListeBase;
+
+ for(_iIndex = 0; _iIndex < iNombreZonesMaximum; _iIndex++, _pMem++) //clean memory table
+ { _pMem->pMemoire = 0x0;
+ _pMem->iTailleMemoire = 0x0;
+ }
+ return 1;
+}
+
+//------------------------------------------------------------------------------
+// reserve une zone memoire / allocate memory
+// input => _iTailleMemoire : taille memoire en octets souhaitee / size of bytes
+// output <= _pMem : adresse memoire (0=erreur) / pointer to memory
+//------------------------------------------------------------------------------
+char *reserveMemoire(unsigned int _iTailleMemoire)
+{
+ char *_pMem = 0x0;
+ char *_pMemoire = 0x0;
+ char _cZero = 0;
+ unsigned int _iIndex;
+ if(iNombreZones >= iNombreZonesMaximum)
+ { printf ("linuxroutines.cpp/reserveMemoire(unsigned int) : table overflow ; size request %i bytes ; total allocate : % i in %i zones\n", _iTailleMemoire, iOctetsTotal, iNombreZones);
+ return 0;
+ }
+ _pMem = (char *)malloc(_iTailleMemoire);
+ if(!_pMem)
+ { printf ("linuxroutines.cpp/reserveMemoire(unsigned int) : malloc(int) return 0 ; size request %i bytes ; total allocate : % i in %i zones\n", _iTailleMemoire, iOctetsTotal, iNombreZones);
+ return 0;
+ }
+ iOctetsTotal += _iTailleMemoire;
+ pZoneListeLibre->pMemoire = _pMem; //pointeur memoire
+ pZoneListeLibre->iTailleMemoire = _iTailleMemoire; //taille en octets
+ pZoneListeLibre += 1;
+ iNombreZones++;
+ if(iNombreZones > iNombreZonesMax)
+ iNombreZonesMax = iNombreZones;
+ _pMemoire = _pMem;
+ for(_iIndex = 0; _iIndex < _iTailleMemoire; _iIndex++)
+ *(_pMemoire++) = _cZero; //efface memoire
+ return (_pMem);
+}
+
+//------------------------------------------------------------------------------
+// liberation d'une zone memoire / free memory
+// input => _pMemoire : adresse de la zone a liberer / pointer to memory
+//------------------------------------------------------------------------------
+void libereMemoire(char *_pMemoire)
+{
+ sListeMemoire *_pListeMem;
+ sListeMemoire *_pListeMemSource;
+ unsigned int _iCompteur;
+ if(_pMemoire)
+ { _pListeMem = pZoneListeBase;
+ for(_iCompteur = 0; _iCompteur < iNombreZones; _iCompteur++, _pListeMem++)
+ { if(_pListeMem->pMemoire == _pMemoire) //on a trouve l'adresse dans la table ?
+ { free(_pMemoire); //oui, libere la memoire
+ _pListeMemSource = _pListeMem + 1;
+ iOctetsTotal -= _pListeMem->iTailleMemoire;
+ iNombreZones--;
+ pZoneListeLibre--;
+ while (_iCompteur < iNombreZones)
+ { _pListeMem->pMemoire = _pListeMemSource->pMemoire;
+ _pListeMem->iTailleMemoire = _pListeMemSource->iTailleMemoire;
+ _iCompteur++;
+ _pListeMem++;
+ _pListeMemSource++;
+ }
+ _pListeMem->pMemoire = 0x0;
+ _pListeMem->iTailleMemoire = 0x0;
+ _pMemoire = 0;
+ break;
+ }
+ }
+ if(_pMemoire > 0)
+ { fprintf(stderr, "libereMemoire() : can't release the address %x\n", (int)_pMemoire);
+ }
+ }
+ else
+ { fprintf(stderr, "libereMemoire() : try to release a null address!\n");
+ }
+}
+
+//------------------------------------------------------------------------------
+// retourne la taille d'une adresse memoire reservee / get memory zone's size
+// input => _pMem : pointeur sur une zone memoire / pointer to memory
+//------------------------------------------------------------------------------
+int mem_retourneTaille(char *_pMem)
+{
+ unsigned int _iCompteur;
+ sListeMemoire *_pListeMem = pZoneListeBase;
+ if(_pMem)
+ { for(_iCompteur = 0; _iCompteur < iNombreZones; _iCompteur++, _pListeMem++)
+ { if(_pListeMem->pMemoire == _pMem)
+ return _pListeMem->iTailleMemoire;
+ }
+ }
+ return 0;
+}
+
+//------------------------------------------------------------------------------
+// libere toutes les zones memoires / free all memory
+//------------------------------------------------------------------------------
+void mem_libereTous()
+{
+ unsigned int _iCompteur;
+ char *_pMemoire;
+ sListeMemoire *_pListeMem = pZoneListeBase;
+#ifdef _VERBEUX_
+ if(iVerbeux > 0)
+ fprintf(stdout, "> linuxroutines.cpp/mem_libereTous(): maximum of memory which were allocated during the game : %i\n", iNombreZonesMax);
+#endif
+ if(iNombreZones >0)
+ {
+#ifdef _VERBEUX_
+ if(iVerbeux > 0)
+ fprintf(stdout, "> linuxroutines.cpp/mem_libereTous() : %i zones were not released.\n", iNombreZones);
+#endif
+ for(_iCompteur = 0; _iCompteur < iNombreZones; _iCompteur++, _pListeMem++)
+ { _pMemoire = _pListeMem->pMemoire;
+ if(_pMemoire)
+ { /* fprintf(stderr, "mem_libereTous: adresseMem =%x ; taille_mem=%ld\n",
+ (int)_pListeMem->pMemoire, _pListeMem->iTailleMemoire); */
+ free(_pMemoire); //libere la memoire
+ _pListeMem->pMemoire = 0;
+ _pListeMem->iTailleMemoire = 0;
+ }
+ }
+ if(pZoneListeMemoire)
+ { free(pZoneListeMemoire);
+ pZoneListeMemoire = 0x0;
+ }
+ iNombreZones = 0;
+ }
+}
+
+//------------------------------------------------------------------------------
+// decompress pcx file
+// input => _pFichier : filename
+// output <= _pStructureGfx : pointer to the "sDescriptionGfx" structure / 0=error
+//------------------------------------------------------------------------------
+sDescriptionGfx *load_pcx(char *_pNomFichier)
+{
+ unsigned int iLongeur;
+ unsigned int ptr = 128;
+ unsigned char nbr_bytes;
+ unsigned char val;
+ unsigned int i1, i, total;
+ unsigned char *_pFichier, *_pAdresseMem;
+ sDescriptionGfx *_pDescripGfx = 0x0;
+ _pFichier = (unsigned char *)chargeFichier(_pNomFichier, &iLongeur); //load file in memory
+ if(!_pFichier) return 0;
+ unsigned short *_p16 = (unsigned short *)_pFichier;
+ unsigned int _iLarge = (litMot16bits(_p16 + 4) - litMot16bits(_p16 + 2)) + 1; //image width
+ unsigned int _iHaut = (litMot16bits(_p16 + 5) - litMot16bits(_p16 + 3)) + 1; //image height
+ unsigned int _iProfondeur = _pFichier[3]; //bits per pixel
+
+ _pDescripGfx = (sDescriptionGfx *) reserveMemoire(sizeof(sDescriptionGfx)); //allocate structure memory
+ if(!_pDescripGfx)
+ { afficheErreur("_pDescripGfx out of memory", "linuxroutines.cpp/load_pcx()");
+ return 0;
+ }
+ _pDescripGfx->iLargeur = _iLarge;
+ _pDescripGfx->iHauteur = _iHaut;
+ _pDescripGfx->iProfond = _iProfondeur;
+ _pDescripGfx->iTaille = _iLarge * _iHaut * (_iProfondeur >> 3);
+ _pDescripGfx->pAdresse = reserveMemoire(_pDescripGfx->iTaille); //allocate image memory
+ if(!_pDescripGfx->pAdresse)
+ { libereMemoire((char *)_pDescripGfx);
+ printf("linuxroutines.cpp/load_pcx() : height=%i / width=%i \n", _iLarge, _iHaut);
+ afficheErreur("_pDescripGfx->iTaille : out of memory\n", "linuxroutines.cpp/reserveMemoire()");
+ return 0;
+ }
+ //decompress rle
+ _pAdresseMem = (unsigned char *)_pDescripGfx->pAdresse;
+ total = 0;
+ i = iLongeur - 768;
+ while (ptr < i)
+ { if((_pFichier[ptr] & 0xC0) == 0xC0)
+ { nbr_bytes = _pFichier[ptr] & 0x3F;
+ ptr++;
+ }
+ else
+ nbr_bytes = 1;
+ val = _pFichier[ptr];
+ total += nbr_bytes; // Samuel Hocevar
+ if(total >= _pDescripGfx->iTaille)
+ break;
+ for(i1 = 0; i1 < nbr_bytes; i1++)
+ { *_pAdresseMem = val;
+ _pAdresseMem++;
+ }
+ ptr++;
+ }
+ libereMemoire((char *)_pFichier);
+#ifdef _VERBEUX_
+ if(iVerbeux > 0)
+ fprintf (
+ stdout,
+ "> linuxroutines.cpp/load_pcx(): \"%s\"; height=%i; width=%i; size=%i\n",
+ _pNomFichier,
+ _iLarge,
+ _iHaut,
+ _pDescripGfx->iTaille);
+#endif
+ return _pDescripGfx;
+}
+
+//------------------------------------------------------------------------------
+// lecture d'un mot de 16 bits code en memoire en little-endian
+// input => _pMem : pointeur sur le mot en memoire
+// output <= _iValeur : valeur utilisale
+//------------------------------------------------------------------------------
+unsigned int littleWord(char *_pMem)
+{
+ unsigned short *t = (unsigned short *)_pMem;
+ return *t;
+}
+
+//------------------------------------------------------------------------------
+// lecture d'un long mot signe de 16 bits little-endian (compatible little-endian/big-endian)
+// input => _pMem : pointeur sur le mot en memoire
+// output <= _iValeur : valeur utilisale
+//------------------------------------------------------------------------------
+short litMot16bits(short *_pMem)
+{
+ short _iValeur = 0;
+ unsigned char *_pMemoire = (unsigned char *)_pMem;
+ _iValeur = _pMemoire[1]; //lit du little endian pour un powerpc
+ _iValeur <<= 8;
+ _iValeur += _pMemoire[0];
+ return (_iValeur);
+}
+
+//------------------------------------------------------------------------------
+// lecture d'un long mot signe de 16 bits little-endian (compatible little-endian/big-endian)
+// input => _pMem : pointeur sur le mot en memoire
+// output <= _iValeur : valeur utilisale
+//------------------------------------------------------------------------------
+unsigned short litMot16bits(unsigned short *_pMem)
+{
+ unsigned short _iValeur = 0;
+ unsigned char *_pMemoire = (unsigned char *)_pMem;
+ _iValeur = _pMemoire[1]; //lit du little endian pour un powerpc
+ _iValeur <<= 8;
+ _iValeur += _pMemoire[0];
+ return (_iValeur);
+}
+
+//------------------------------------------------------------------------------
+// lecture d'un long mot signe de 16 bits big-endian (compatible little-endian/big-endian)
+// input => _pMem : pointeur sur le mot en memoire
+// output <= _iValeur : valeur utilisale
+//------------------------------------------------------------------------------
+short litMot16bitsBig(short *_pMem)
+{
+ short _iValeur = 0;
+ unsigned char *_pMemoire = (unsigned char *)_pMem;
+ _iValeur = _pMemoire[0]; //lit du big endian pour un 80x86
+ _iValeur <<= 8;
+ _iValeur += _pMemoire[1];
+ return (_iValeur);
+}
+
+//------------------------------------------------------------------------------
+//lecture d'un long mot signe de 32 bits little-endian(compatible little-endian/big-endian)
+// input => _pMem : pointeur sur le mot 32 bits en memoire
+// output <= _iValeur : valeur utilisale
+//------------------------------------------------------------------------------
+int litMot32bits(int *_pMem)
+{
+ int _iValeur = 0;
+ unsigned char *_pMemoire = (unsigned char *)_pMem;
+ _iValeur = _pMemoire[3];
+ _iValeur <<= 8;
+ _iValeur += _pMemoire[2];
+ _iValeur <<= 8;
+ _iValeur = _pMemoire[1];
+ _iValeur <<= 8;
+ _iValeur += _pMemoire[0];
+ return (_iValeur);
+}
+
+//------------------------------------------------------------------------------
+// convertit un long mot de 32 bits en memoire little-endian => big-endian
+//------------------------------------------------------------------------------
+void convert32bits_2bigendian (unsigned char* memory)
+{ unsigned char b0, b1, b2, b3;
+ b0 = memory[1];
+ b1 = memory[0];
+ b2 = memory[3];
+ b3 = memory[2];
+ memory[0] = b2;
+ memory[1] = b3;
+ memory[2] = b0;
+ memory[3] = b1;
+}
+
+//------------------------------------------------------------------------------
+//comparaison de deux chaines de caracteres
+// input => _pChaine1 : pointeur sur la premiere chaine
+// => _pChaine1 : pointeur sur la deuxieme chaine
+// => _iTaille : longeurs en octets de chaines
+// output <= 0les chaines ont au moins une difference / 1=les chaines sont identiques
+//------------------------------------------------------------------------------
+int chaine_cmp(char *_pChaine1, char *_pChaine2, unsigned int _iTaille)
+{
+ unsigned int _iLongeur = _iTaille;
+ char *_pMem1 = _pChaine1;
+ char *_pMem2 = _pChaine2;
+ unsigned int _iIndex;
+ char _cOctet1, _cOctet2;
+ for(_iIndex = 0; _iIndex < _iLongeur; _iIndex++)
+ { _cOctet1 = _pMem1[_iIndex];
+ _cOctet2 = _pMem2[_iIndex];
+ if(_cOctet2 != _cOctet1)
+ return (0);
+ }
+ return (1);
+}
+
+//------------------------------------------------------------------------------
+// locate a file under one of the data directories (thanx to Andre Majorel :-)
+// input => name : name of file relative to data directory
+// output <= 0 : could not locate file (not found, or not enough
+// memory, or the name given was absolute)
+// other : pointer to a malloc'd buffer containing the name
+// under which the file was found. free()-ing the
+// buffer is the responsibility of the caller.
+//------------------------------------------------------------------------------
+static const char *data_directories[]=
+{ ".", // Normally unused, except when running from the source directory...
+ "/opt/QtPalmtop/share/games/powermanga/",
+ 0 // Special value meaning "$(PREFIX)/share/games/powermanga/"
+ // Also marks end of list
+};
+static char pathstring[256];
+
+char *locate_data_file(const char *const name)
+{
+
+ for(int i = 0; i < 256; i++)
+ pathstring[i] = 0;
+
+ if(name == 0) return 0;
+ if(*name == '/') return strdup(name); // Guillaume Cottenceau (2001-03-15) replace "return 0;" by "strdup(name);"
+ // En effet, nous sommes dans le cas ou le programme recherche dans /usr/share/games/powermanga
+ for(const char **p = data_directories;; p++)
+ { char *pathname;
+ if(*p == 0)
+ { const char *subdir = "/share/games/powermanga/";
+ pathname = &pathstring[0];
+ /*pathname=(char *)malloc(strlen(nomprefix) + strlen(subdir) + strlen(name) + 1);
+ if(pathname == 0)
+ { fflush(stdout);
+ fprintf(stderr, "powermanga: not enough memory\n");
+ return 0;
+ }*/
+ strcpy(pathname, nomprefix);
+ strcat(pathname, subdir);
+ strcat(pathname, name);
+ }
+ else if(**p == '~') // Not used anymore
+ { static const char bogus = '\0';
+ static const char *home_dir = &bogus;
+ if(home_dir == &bogus) home_dir = getenv("HOME");
+ if(home_dir == 0) continue; // $HOME not set. Skip this directory.
+ pathname = &pathstring[0];
+
+ /*pathname = (char *)malloc(strlen(home_dir) + 1 + strlen(*p + 1) + 1 + strlen(name) + 1);
+ if(pathname == 0)
+ { fflush(stdout);
+ fprintf(stderr, "powermanga: not enough memory\n");
+ return 0;
+ }*/
+ strcpy(pathname, home_dir);
+ strcat(pathname, *p + 1);
+ strcat(pathname, "/");
+ strcat(pathname, name);
+ }
+ else
+ {
+ pathname = &pathstring[0];
+ /*pathname = (char *)malloc(strlen(*p) + 1 + strlen(name) + 1);
+ if(pathname == 0)
+ { fflush(stdout);
+ fprintf(stderr, "powermanga: not enough memory\n");
+ return 0;
+ }*/
+ strcpy(pathname, *p);
+ strcat(pathname, "/");
+ strcat(pathname, name);
+ }
+ //puts(pathname); // DEBUG
+#ifdef WIN32
+ struct _stat s;
+ if(_stat(pathname, &s) == 0 && !_S_ISDIR(s.st_mode))
+ return pathname;
+#else
+ struct stat s;
+ if(stat(pathname, &s) == 0 && !S_ISDIR(s.st_mode))
+ return pathname;
+#endif
+ //free(pathname);
+ if(*p == 0) break;
+ }
+ return 0; // Not found.
+}
+
+//------------------------------------------------------------------------------
+// load a file in memory / charge un fichier en memoire
+// input => _pNomFichier : nom du fichier
+// _pAdresse : adresse de chargemebt
+// _iTaille : taille a lire
+// output <= 1 : tout c'est bien passe
+// 0 : erreur
+//------------------------------------------------------------------------------
+char *chargeFichier(char *_pNomFichier)
+{
+ unsigned int _pTaille;
+ return chargeFichier(_pNomFichier, &_pTaille);
+}
+
+//------------------------------------------------------------------------------
+// load a file in memory
+// input => _pNomFichier : filename
+// sortie <= _pMemoire : ptr/integer
+//------------------------------------------------------------------------------
+char *chargeFichier(char *_pNomFichier, unsigned int *pTaille)
+{
+ int _iHandle;
+ char *_pMemoire;
+ struct stat sDescriptionFichier;
+ char *pathname = locate_data_file(_pNomFichier);
+ if(pathname == 0)
+ { printf("linuxroutines/chargeFichier() : can't locate file : %s\n\n", _pNomFichier);
+ return 0;
+ }
+#ifdef WIN32
+ _iHandle = open(pathname, O_RDONLY | O_BINARY, 0);
+#else
+ _iHandle = open(pathname, O_RDONLY, 0);
+#endif
+ if(_iHandle == -1)
+ { printf("linuxroutines/chargeFichier() : can't open file : %s (%s)\n\n", pathname, strerror(errno));
+ //free(pathname);
+ return 0;
+ }
+ if(fstat(_iHandle, &sDescriptionFichier))
+ { printf("linuxroutines/chargeFichier() : can't stat file : %s (%s)\n\n", pathname, strerror(errno));
+ close(_iHandle);
+ //free(pathname);
+ return 0;
+ }
+ (*pTaille) = sDescriptionFichier.st_size; //sauve taille
+ _pMemoire = reserveMemoire(sDescriptionFichier.st_size); //reserve la place en memoire pour lire le fichier
+ if(!_pMemoire)
+ { printf("linuxroutines/chargeFichier() %s : out of memory\n\n", pathname);
+ close(_iHandle);
+ //free(pathname);
+ return 0;
+ }
+ if(read(_iHandle, _pMemoire, sDescriptionFichier.st_size) != sDescriptionFichier.st_size)
+ { libereMemoire(_pMemoire);
+ printf("linuxroutines/chargeFichier() can't read file %s (%s)\n\n", pathname, strerror(errno));
+ close(_iHandle);
+ //free(pathname);
+ return 0;
+ }
+ close(_iHandle);
+#ifdef _VERBEUX_
+ if(iVerbeux > 1)
+ printf("linuxroutines/chargeFichier : file %s was loaded in memory\n", pathname);
+#endif
+ //free(pathname);
+ return _pMemoire;
+}
+
+//------------------------------------------------------------------------------
+// load a file in memory / charge un fichier en memoire
+// input => _pNomFichier : filename / nom du fichier
+// => _pMemoire : pointer to memory / pointeur sur la memoire
+// output <= 1 : 0 error/erreur
+//------------------------------------------------------------------------------
+int chargeFichier(char *_pNomFichier, char *_pMemoire)
+{
+ int _iHandle;
+ struct stat sDescriptionFichier;
+ char *pathname = locate_data_file(_pNomFichier);
+ if(pathname == 0)
+ { printf("linuxroutines/chargeFichier() : can't locate file : %s\n\n", _pNomFichier);
+ return 0;
+ }
+#ifdef WIN32
+ _iHandle = open(pathname, O_RDONLY | O_BINARY, 0);
+#else
+ _iHandle = open(pathname, O_RDONLY, 0);
+#endif
+ if(_iHandle == -1)
+ { printf ("linuxroutines.cpp/chargeFichier() : can't open file : %s (%s)\n\n", pathname, strerror(errno));
+ //free(pathname);
+ return 0;
+ }
+ if(fstat(_iHandle, &sDescriptionFichier))
+ { printf ("linuxroutines.cpp/chargeFichier() : can't stat file : %s (%s)\n\n", pathname, strerror(errno));
+ close(_iHandle);
+ //free(pathname);
+ return 0;
+ }
+ if(read(_iHandle, _pMemoire, sDescriptionFichier.st_size) != sDescriptionFichier.st_size)
+ { printf("linuxroutines.cpp/chargeFichier() can't read file %s (%s)\n\n", pathname, strerror(errno));
+ close(_iHandle);
+ //free(pathname);
+ return 0;
+ }
+ close(_iHandle);
+#ifdef _VERBEUX_
+ if(iVerbeux > 1) printf("linuxroutines/chargeFichier : file %s was loaded in memory\n", pathname);
+#endif
+ //free(pathname);
+ return 1;
+}
+
+//------------------------------------------------------------------------------
+// initialise le compteur de boucle et l'heure de depart du programme
+//------------------------------------------------------------------------------
+void fps_init()
+{
+#ifdef SDL_TLK
+ time_begin = SDL_GetTicks();
+ temps_sauve = SDL_GetTicks();
+ temps_sauve2 = SDL_GetTicks();
+#else
+ gettimeofday(&time_begin, NULL);
+ gettimeofday(&temps_sauve, NULL);
+ gettimeofday(&temps_sauve2, NULL);
+#endif
+ iCompteurBoucle = 0;
+}
+
+//------------------------------------------------------------------------------
+// affiche information sur le systeme
+//------------------------------------------------------------------------------
+void fps_affiche()
+{
+
+#ifdef SDL_TLK
+ double fps;
+ unsigned long duration;
+ Sint32 time_end;
+ time_end = SDL_GetTicks();
+ duration = time_end - time_begin;
+ fps = (1000.0 * iCompteurBoucle) / duration;
+ if(iVerbeux > 0)
+ { printf("> linuxroutines.cpp/number of loops : %i\n", iCompteurBoucle);
+ printf("> linuxroutines.cpp/running time : %li\n", duration);
+ printf("> linuxroutines.cpp/fps_affiche() : frames per seconde : %g \n", fps);
+ }
+#else
+ struct utsname kernel;
+ struct stat statmem;
+ unsigned long duration;
+ double fps;
+ double mem;
+ char os_name[32];
+ char os_vers[32];
+ char cpu[64];
+ char freq[32];
+ FILE *cpuinfo;
+ char txt[256];
+ static struct timeval time_end;
+
+ //calcul le temps total d'execution ............................................
+ gettimeofday(&time_end, NULL);
+ duration = (time_end.tv_sec - time_begin.tv_sec) * 1000 + (time_end.tv_usec - time_begin.tv_usec) / 1000;
+ fps = (1000.0 * iCompteurBoucle) / duration;
+
+ //version du systeme d'exploitation ............................................
+ if(uname(&kernel) < 0)
+ { strcpy(os_name, "?");
+ strcpy(os_vers, "");
+ }
+ else
+ { strncpy(os_name, kernel.sysname, 32);
+ strncpy(os_vers, kernel.release, 32);
+ }
+ //processeur & memoire physique du systeme .....................................
+ stat("/proc/kcore", &statmem);
+ mem = ((float)statmem.st_size) / 1024 / 1024;
+ strcpy(cpu, "Unknown");
+ strcpy(freq, "Unknown");
+ cpuinfo = fopen("/proc/cpuinfo", "r");
+ if(cpuinfo != NULL)
+ { while (fgets(txt, 255, cpuinfo))
+ { if(!strncmp(txt, "model", 5))
+ { int i = 0;
+ while (txt[i] != ':') i++;
+ i += 2;
+ for(int j = 0; j < 64;)
+ { if(txt[i++] != '\n') cpu[j++] = txt[i - 1];
+ }
+ }
+ if(!strncmp(txt, "cpu MHz", 7))
+ { int i = 0;
+ while (txt[i] != ':') i++;
+ i += 2;
+ sprintf(freq, "%d", atoi(txt + i));
+ }
+ }
+ }
+ //processeur & memoire physique du systeme .....................................
+ if(iVerbeux > 0)
+ { printf("operating system : %s %s\n", os_name, os_vers);
+ printf("processor : %s at %s Mhz with %.0f RAM\n", cpu, freq, mem);
+ printf("number of loops : %i\n", iCompteurBoucle);
+ printf("running time : %li\n", duration);
+ printf("frames per seconde : %g \n", fps);
+ //printf ( "Compilateur : %s\n" , COMPILO );
+ }
+#endif
+}
+
+//------------------------------------------------------------------------------
+// display error message
+// input => _Message : message
+//------------------------------------------------------------------------------
+void afficheMessage(char *_Message)
+{
+ printf("%s\n", _Message);
+}
+
+//------------------------------------------------------------------------------
+// display error message
+// input => _Message1 : message 1
+// => _Message2 : message 2
+//------------------------------------------------------------------------------
+void afficheMessage(char *_Message1, char *_Message2)
+{
+ printf("%s %s\n", _Message1, _Message2);
+}
+
+//------------------------------------------------------------------------------
+// display error message
+// input => _pErreur1 : error message
+// => _pErreur2 : title error
+//------------------------------------------------------------------------------
+void afficheErreur(char *_pErreur1, char *_pErreur2)
+{
+ printf("%s %s\n", _pErreur2, _pErreur1);
+}
+
+//------------------------------------------------------------------------------
+// display error message
+// input => _pErreur1 : error message
+// => _pErreur2 : title error
+// => _pErreur3 : error message
+//------------------------------------------------------------------------------
+void afficheErreur(char *_pErreur1, char *_pErreur2, char *_pErreur3)
+{
+ printf("%s %s %s\n", _pErreur2, _pErreur1, _pErreur3);
+}
+
+//------------------------------------------------------------------------------
+// display error message
+// input => _pErreur1 : error message
+// => _pErreur2 : title error
+// => _iErreur : error number
+//------------------------------------------------------------------------------
+void afficheErreur(char *_pErreur1, char *_pErreur2, int _iErreur)
+{
+ printf("%s %s error=%i\n", _pErreur2, _pErreur1, _iErreur);
+}
+
+//------------------------------------------------------------------------------
+// sleep process
+// input => i : time
+//------------------------------------------------------------------------------
+int synchro_processusPause(int _iTemps)
+{
+#ifdef SDL_TLK
+ if(_iTemps > (int)iFrame3)
+ _iTemps = iFrame3;
+ if(_iTemps > 0)
+ SDL_Delay(_iTemps);
+ return (_iTemps > 0 ? _iTemps : 0);
+#else
+ struct timeval temps;
+ if(_iTemps > (int)iFrame3)
+ _iTemps = iFrame3;
+ if(_iTemps > 0)
+ { temps.tv_usec = _iTemps % (unsigned long)1000000;
+ temps.tv_sec = _iTemps / (unsigned long)1000000;
+ //sleep for a time interval
+ select(0, NULL, NULL, NULL, &temps);
+ }
+ return (_iTemps > 0 ? _iTemps : 0);
+#endif
+}
+
+#ifdef SDL_TLK
+int synchro_CalculDifference()
+{
+ int _iDifference;
+ temps_actuel = SDL_GetTicks();
+ _iDifference = temps_actuel - temps_sauve;
+ temps_sauve = temps_actuel;
+ return _iDifference;
+}
+#else
+//------------------------------------------------------------------------------
+// calcul la difference entre deux heure differentes
+// sortie <= : _iDifference
+//------------------------------------------------------------------------------
+int synchro_CalculDifference()
+{
+ int _iDifference;
+ gettimeofday(&temps_actuel, NULL);
+ _iDifference = (1000000 * (temps_actuel.tv_sec - temps_sauve.tv_sec)) + (temps_actuel.tv_usec - temps_sauve.tv_usec);
+ temps_sauve = temps_actuel;
+ return _iDifference;
+}
+
+//------------------------------------------------------------------------------
+// calcul la difference entre deux heure differentes
+// sortie <= : _iDifference
+//------------------------------------------------------------------------------
+int synchro_CalculDifference2()
+{
+ int _iDifference;
+ gettimeofday(&temps_actuel2, NULL);
+ _iDifference = (1000000 * (temps_actuel2.tv_sec - temps_sauve2.tv_sec)) + (temps_actuel2.tv_usec - temps_sauve2.tv_usec);
+ temps_sauve2 = temps_actuel2;
+ return _iDifference;
+}
+#endif
diff --git a/recipes-qtopia/powermanga/powermanga-0.79/pda-tweaks.patch b/recipes-qtopia/powermanga/powermanga-0.79/pda-tweaks.patch
new file mode 100644
index 0000000..971eff9
--- /dev/null
+++ b/recipes-qtopia/powermanga/powermanga-0.79/pda-tweaks.patch
@@ -0,0 +1,24 @@
+--- powermanga-0.79/src/main.cpp~pda-tweaks
++++ powermanga-0.79/src/main.cpp
+@@ -211,8 +211,8 @@
+ { iVerbeux = 1;
+ }
+ else
+- { if(strcmp(_pArguments[_iIndex], "--320") == 0)
+- { vmode = 0;
++ { if(strcmp(_pArguments[_iIndex], "--640") == 0)
++ { vmode = 1;
+ }
+ else
+ { if(strcmp(_pArguments[_iIndex], "--window") == 0)
+--- powermanga-0.79/src/sdl_tlk.cpp~pda-tweaks
++++ powermanga-0.79/src/sdl_tlk.cpp
+@@ -46,7 +46,7 @@
+ unsigned int iLargeurEcran = 0; //largeur de notre fenetre
+ unsigned int iHauteurEcran = 0; //hauteur de notre fenetre
+ unsigned int iLargeurEcranTotal = 0; //taille d'une ligne du buffer 'ecran_ram'
+-int vmode = 1; //0=resolution de 320x200 / 1=640*400 / 2=640*400 (double pixels)
++int vmode = 0; //0=resolution de 320x200 / 1=640*400 / 2=640*400 (double pixels)
+
+ //...............................................................................
+ int fullscreen = 1; //1=marche en plein ecran
diff --git a/recipes-qtopia/powermanga/powermanga-0.79/powermanga.desktop b/recipes-qtopia/powermanga/powermanga-0.79/powermanga.desktop
new file mode 100644
index 0000000..afc0da2
--- /dev/null
+++ b/recipes-qtopia/powermanga/powermanga-0.79/powermanga.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=Powermanga is an arcade 2D shoot-em-up game with 41 levels and more than 200 sprites.
+Exec=powermanga
+Icon=powermanga
+Type=Application
+Name=Powermanga
diff --git a/recipes-qtopia/powermanga/powermanga-0.79/powermanga.png b/recipes-qtopia/powermanga/powermanga-0.79/powermanga.png
new file mode 100644
index 0000000..5a8ca1c
--- /dev/null
+++ b/recipes-qtopia/powermanga/powermanga-0.79/powermanga.png
Binary files differ
diff --git a/recipes-qtopia/powermanga/powermanga-0.79/powermanga.pro b/recipes-qtopia/powermanga/powermanga-0.79/powermanga.pro
new file mode 100644
index 0000000..d6c9029
--- /dev/null
+++ b/recipes-qtopia/powermanga/powermanga-0.79/powermanga.pro
@@ -0,0 +1,64 @@
+TEMPLATE = app
+CONFIG = qt warn_on release
+HEADERS = \
+ src/caractere.hpp \
+ src/cercle.hpp \
+ src/chaine.hpp \
+ src/etbfonte1.hpp \
+ src/gfxroutines.hpp \
+ src/linux.hpp \
+ src/powermanga.hpp \
+ src/score.hpp
+
+SOURCES = \
+ src/afficheEtoiles.cpp \
+ src/bonus.cpp \
+ src/caractere.cpp \
+ src/chaine.cpp \
+ src/congratulations.cpp \
+ src/courbe.cpp \
+ src/displayFonte.cpp \
+ src/eclairExecution.cpp \
+ src/ennemis_execution.cpp \
+ src/etbfonte1.cpp \
+ src/explosionExecution.cpp \
+ src/fntscrol.cpp \
+ src/gardien12.cpp \
+ src/gardien13.cpp \
+ src/gardien14.cpp \
+ src/gardiens.cpp \
+ src/gfxbase.cpp \
+ src/gfxroutines.cpp \
+ src/grille.cpp \
+ src/initialiseGameOver.cpp \
+ src/inits_game.cpp \
+ src/keymap.cpp \
+ src/linuxroutines.cpp \
+ src/main.cpp \
+ src/menu.cpp \
+ src/metors.cpp \
+ src/onde.cpp \
+ src/options.cpp \
+ src/playanim.cpp \
+ src/powermanga.cpp \
+ src/powmangasub1.cpp \
+ src/powmangasub2.cpp \
+ src/score.cpp \
+ src/sdl_mixer.cpp \
+ src/sdl_tlk.cpp \
+ src/special_enemy.cpp \
+ src/tirsExecutions.cpp \
+ src/tirsJoueur.cpp \
+ src/touchesTriches.cpp \
+ src/vaisseau.cpp \
+ src/xwindow.cpp
+
+INCLUDEPATH += $(QPEDIR)/include
+DEPENDPATH += $(QPEDIR)/include
+
+CFLAGS += `$(QPEDIR)/bin/sdl-config --cflags`
+LIBS += -lSDLmain -lSDL -lSDL_mixer -lpthread -lqpe
+OBJECTS_DIR = obj
+MOC_DIR = moc
+TARGET = powermanga
+VERSION = 0.79
diff --git a/recipes-qtopia/powermanga/powermanga_0.79.bb b/recipes-qtopia/powermanga/powermanga_0.79.bb
new file mode 100644
index 0000000..579ed90
--- /dev/null
+++ b/recipes-qtopia/powermanga/powermanga_0.79.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Powermanga is an arcade 2D shoot-em-up game with 41 levels and more than 200 sprites."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libsdl-qpe libsdl-mixer"
+PR = "r1"
+
+SRC_URI = "http://linux.tlk.fr/games/Powermanga/download/powermanga-0.79.tgz \
+ file://linuxroutines.cpp \
+ file://pda-tweaks.patch \
+ file://powermanga.pro \
+ file://powermanga.png \
+ file://powermanga.desktop"
+
+S = "${WORKDIR}/${PN}-${PV}/"
+
+inherit palmtop
+
+do_configure_prepend() {
+ mv ${WORKDIR}/linuxroutines.cpp ${S}/src/
+ mv ${WORKDIR}/powermanga.pro ${S}/
+ rm -f `find ${S}/ -name Makefile\*`
+ rm -f `find ${S}/ -name config\*`
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/share/games/powermanga/graphics \
+ ${D}${palmtopdir}/share/games/powermanga/sounds
+ install -m 0755 ${S}/src/powermanga ${D}${palmtopdir}/bin/powermanga
+ install -m 0644 ${WORKDIR}/powermanga.png ${D}${palmtopdir}/pics/powermanga.png
+ install -m 0644 ${WORKDIR}/powermanga.desktop ${D}${palmtopdir}/apps/Games/powermanga.desktop
+ install -m 0644 ${S}/graphics/* ${D}${palmtopdir}/share/games/powermanga/graphics/
+ install -m 0644 ${S}/sounds/* ${D}${palmtopdir}/share/games/powermanga/sounds/
+}
+
+SRC_URI[md5sum] = "3a4f00658496921b7327413ac476c1b7"
+SRC_URI[sha256sum] = "99a9737480224be47362387d2d2389bee61d7685510b3a161b2b1db6c0556c26"
diff --git a/recipes-qtopia/prboom/files/prboom.desktop b/recipes-qtopia/prboom/files/prboom.desktop
new file mode 100644
index 0000000..23b9b72
--- /dev/null
+++ b/recipes-qtopia/prboom/files/prboom.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Comment=Doom Emulator
+Exec=prboom.sh
+Icon=prboom
+Type=Application
+Name=PrBoom
+
diff --git a/recipes-qtopia/prboom/files/prboom.png b/recipes-qtopia/prboom/files/prboom.png
new file mode 100644
index 0000000..91e89a4
--- /dev/null
+++ b/recipes-qtopia/prboom/files/prboom.png
Binary files differ
diff --git a/recipes-qtopia/prboom/files/prboom.sh b/recipes-qtopia/prboom/files/prboom.sh
new file mode 100755
index 0000000..636b178
--- /dev/null
+++ b/recipes-qtopia/prboom/files/prboom.sh
@@ -0,0 +1,17 @@
+#/bin/sh
+
+model="`cat /proc/cpuinfo | sed -n "/Hardware/s/.*\:\ \(.*\)/\1/p"`"
+
+case $model in
+*Collie) par="-height 240";;
+*Poodle) par="-height 240";;
+*00) par="-height 240";;
+*) par="";;
+esac
+
+test -e /usr/share/games/doom/prboom.cfg && par="$par -config /usr/share/games/doom/prboom.cfg"
+
+echo "Model: [$model]"
+echo "Launching prboom $par $*"
+
+prboom $par $*
diff --git a/recipes-qtopia/prboom/prboom-2.5.0/gnu_source_for_sched_h.patch b/recipes-qtopia/prboom/prboom-2.5.0/gnu_source_for_sched_h.patch
new file mode 100644
index 0000000..e77917a
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-2.5.0/gnu_source_for_sched_h.patch
@@ -0,0 +1,12 @@
+Upstream: http://sourceforge.net/mailarchive/forum.php?thread_name=4CB2549C.2030100%40gmail.com&forum_name=prboom-devel
+
+--- prboom-2.5.0/src/SDL/i_system.c.orig 2010-10-11 09:58:02.000000000 +1030
++++ prboom-2.5.0/src/SDL/i_system.c 2010-10-11 09:59:16.000000000 +1030
+@@ -33,6 +33,7 @@
+ *-----------------------------------------------------------------------------
+ */
+
++#define _GNU_SOURCE
+ #include <stdio.h>
+
+ #include <stdarg.h>
diff --git a/recipes-qtopia/prboom/prboom-devconfig.bb b/recipes-qtopia/prboom/prboom-devconfig.bb
new file mode 100644
index 0000000..063742c
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-devconfig.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Device specific configuration for prboom"
+SECTION = "games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "file://prboom.cfg"
+
+S = "${WORKDIR}/${PN}"
+
+FILES_${PN} = "/usr/share/games/doom/prboom.cfg"
+
+do_install() {
+ install -d ${D}/usr/share/games/doom/
+
+ install -m 644 ${WORKDIR}/prboom.cfg ${D}/usr/share/games/doom/
+}
diff --git a/recipes-qtopia/prboom/prboom-devconfig/akita/prboom.cfg b/recipes-qtopia/prboom/prboom-devconfig/akita/prboom.cfg
new file mode 100644
index 0000000..cd17d0b
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-devconfig/akita/prboom.cfg
@@ -0,0 +1,313 @@
+# Doom config file
+# Format:
+# variable value
+
+# Misc settings
+default_compatibility_level -1
+realtic_clock_rate 100
+max_player_corpse 32
+flashing_hom 0
+demo_insurance 2
+endoom_mode 0x5
+level_precache 0
+
+# Files
+wadfile_1 "prboom.wad"
+wadfile_2 ""
+dehfile_1 ""
+dehfile_2 ""
+
+# Game settings
+default_skill 2
+weapon_recoil 0
+doom_weapon_toggles 1
+player_bobbing 1
+monsters_remember 1
+monster_infighting 1
+monster_backing 0
+monster_avoid_hazards 1
+monkeys 0
+monster_friction 1
+help_friends 1
+player_helpers 0
+friend_distance 128
+dog_jumping 1
+sts_always_red 1
+sts_pct_always_gray 0
+sts_traditional_keys 0
+traditional_menu 1
+show_messages 1
+autorun 0
+
+# Compatibility settings
+comp_zombie 0
+comp_infcheat 0
+comp_stairs 0
+comp_telefrag 0
+comp_dropoff 0
+comp_falloff 0
+comp_staylift 0
+comp_doorstuck 0
+comp_pursuit 0
+comp_vile 0
+comp_pain 0
+comp_skull 0
+comp_blazing 0
+comp_doorlight 0
+comp_god 0
+comp_skymap 0
+comp_floors 0
+comp_model 0
+comp_zerotags 0
+comp_moveblock 0
+comp_sound 0
+
+# Sound settings
+sound_card -1
+music_card -1
+pitched_sounds 0
+samplerate 22050
+sfx_volume 8
+music_volume 8
+mus_pause_opt 2
+sounddev "/dev/dsp"
+snd_channels 8
+
+# Video settings
+screen_width 540
+screen_height 380
+fake_contrast 1
+use_fullscreen 1
+use_doublebuffer 1
+translucency 1
+tran_filter_pct 66
+screenblocks 10
+usegamma 3
+X_options 0x0
+
+# Mouse settings
+use_mouse 1
+mouse_sensitivity_horiz 10
+mouse_sensitivity_vert 10
+mouseb_fire 0
+mouseb_strafe 1
+mouseb_forward 2
+
+# Key bindings
+key_right 0xae
+key_left 0xac
+key_up 0xad
+key_down 0xaf
+key_menu_right 0xae
+key_menu_left 0xac
+key_menu_up 0xad
+key_menu_down 0xaf
+key_menu_backspace 0x7f
+key_menu_escape 0x1b
+key_menu_enter 0x10d
+key_strafeleft 0x2c
+key_straferight 0x2e
+key_fire 0x10d
+key_use 0x20
+key_strafe 0xb8
+key_speed 0xb6
+key_savegame 0xbc
+key_loadgame 0xbd
+key_soundvolume 0xbe
+key_hud 0xbf
+key_quicksave 0xc0
+key_endgame 0xc1
+key_messages 0xc2
+key_quickload 0xc3
+key_quit 0xc4
+key_gamma 0xd7
+key_spy 0xd8
+key_pause 0xff
+key_autorun 0xba
+key_chat 0x74
+key_backspace 0x7f
+key_enter 0xd
+key_map 0x9
+key_map_right 0xae
+key_map_left 0xac
+key_map_up 0xad
+key_map_down 0xaf
+key_map_zoomin 0x3d
+key_map_zoomout 0x2d
+key_map_gobig 0x30
+key_map_follow 0x66
+key_map_mark 0x6d
+key_map_clear 0x63
+key_map_grid 0x67
+key_map_rotate 0x72
+key_map_overlay 0x6f
+key_reverse 0x2f
+key_zoomin 0x3d
+key_zoomout 0x2d
+key_chatplayer1 0x67
+key_chatplayer2 0x69
+key_chatplayer3 0x62
+key_chatplayer4 0x72
+key_weapontoggle 0x30
+key_weapon1 0x31
+key_weapon2 0x32
+key_weapon3 0x33
+key_weapon4 0x34
+key_weapon5 0x35
+key_weapon6 0x36
+key_weapon7 0x37
+key_weapon8 0x38
+key_weapon9 0x39
+key_screenshot 0x2a
+
+# Joystick settings
+use_joystick 0
+joy_left 0
+joy_right 0
+joy_up 0
+joy_down 0
+joyb_fire 0
+joyb_strafe 1
+joyb_speed 2
+joyb_use 3
+
+# Chat macros
+chatmacro0 "No"
+chatmacro1 "I'm ready to kick butt!"
+chatmacro2 "I'm OK."
+chatmacro3 "I'm not looking too good!"
+chatmacro4 "Help!"
+chatmacro5 "You suck!"
+chatmacro6 "Next time, scumbag..."
+chatmacro7 "Come here!"
+chatmacro8 "I'll take care of it."
+chatmacro9 "Yes"
+
+# Automap settings
+mapcolor_back 0xf7
+mapcolor_grid 0x68
+mapcolor_wall 0x17
+mapcolor_fchg 0x37
+mapcolor_cchg 0xd7
+mapcolor_clsd 0xd0
+mapcolor_rkey 0xaf
+mapcolor_bkey 0xcc
+mapcolor_ykey 0xe7
+mapcolor_rdor 0xaf
+mapcolor_bdor 0xcc
+mapcolor_ydor 0xe7
+mapcolor_tele 0x77
+mapcolor_secr 0xfc
+mapcolor_exit 0x0
+mapcolor_unsn 0x68
+mapcolor_flat 0x58
+mapcolor_sprt 0x70
+mapcolor_item 0xe7
+mapcolor_hair 0xd0
+mapcolor_sngl 0xd0
+mapcolor_me 0x70
+mapcolor_frnd 0x70
+map_secret_after 0
+map_point_coord 0
+automapmode 0x0
+
+# Heads-up display settings
+hudcolor_titl 5
+hudcolor_xyco 3
+hudcolor_mesg 6
+hudcolor_chat 5
+hudcolor_list 5
+hud_msg_lines 1
+hud_list_bgon 0
+hud_distributed 0
+health_red 25
+health_yellow 50
+health_green 100
+armor_red 25
+armor_yellow 50
+armor_green 100
+ammo_red 25
+ammo_yellow 50
+hud_active 2
+hud_displayed 0
+hud_nosecrets 0
+
+# Weapon preferences
+weapon_choice_1 6
+weapon_choice_2 9
+weapon_choice_3 4
+weapon_choice_4 3
+weapon_choice_5 2
+weapon_choice_6 8
+weapon_choice_7 5
+weapon_choice_8 7
+weapon_choice_9 1
+
+# Music
+mus_e1m1 "e1m1.mp3"
+mus_e1m2 "e1m2.mp3"
+mus_e1m3 "e1m3.mp3"
+mus_e1m4 "e1m4.mp3"
+mus_e1m5 "e1m5.mp3"
+mus_e1m6 "e1m6.mp3"
+mus_e1m7 "e1m7.mp3"
+mus_e1m8 "e1m8.mp3"
+mus_e1m9 "e1m9.mp3"
+mus_e2m1 "e2m1.mp3"
+mus_e2m2 "e2m2.mp3"
+mus_e2m3 "e2m3.mp3"
+mus_e2m4 "e2m4.mp3"
+mus_e2m5 "e1m7.mp3"
+mus_e2m6 "e2m6.mp3"
+mus_e2m7 "e2m7.mp3"
+mus_e2m8 "e2m8.mp3"
+mus_e2m9 "e3m1.mp3"
+mus_e3m1 "e3m1.mp3"
+mus_e3m2 "e3m2.mp3"
+mus_e3m3 "e3m3.mp3"
+mus_e3m4 "e1m8.mp3"
+mus_e3m5 "e1m7.mp3"
+mus_e3m6 "e1m6.mp3"
+mus_e3m7 "e2m7.mp3"
+mus_e3m8 "e3m8.mp3"
+mus_e3m9 "e1m9.mp3"
+mus_inter "e2m3.mp3"
+mus_intro "intro.mp3"
+mus_bunny "bunny.mp3"
+mus_victor "victor.mp3"
+mus_introa "intro.mp3"
+mus_runnin "runnin.mp3"
+mus_stalks "stalks.mp3"
+mus_countd "countd.mp3"
+mus_betwee "betwee.mp3"
+mus_doom "doom.mp3"
+mus_the_da "the_da.mp3"
+mus_shawn "shawn.mp3"
+mus_ddtblu "ddtblu.mp3"
+mus_in_cit "in_cit.mp3"
+mus_dead "dead.mp3"
+mus_stlks2 "stalks.mp3"
+mus_theda2 "the_da.mp3"
+mus_doom2 "doom.mp3"
+mus_ddtbl2 "ddtblu.mp3"
+mus_runni2 "runnin.mp3"
+mus_dead2 "dead.mp3"
+mus_stlks3 "stalks.mp3"
+mus_romero "romero.mp3"
+mus_shawn2 "shawn.mp3"
+mus_messag "messag.mp3"
+mus_count2 "countd.mp3"
+mus_ddtbl3 "ddtblu.mp3"
+mus_ampie "ampie.mp3"
+mus_theda3 "the_da.mp3"
+mus_adrian "adrian.mp3"
+mus_messg2 "messag.mp3"
+mus_romer2 "romero.mp3"
+mus_tense "tense.mp3"
+mus_shawn3 "shawn.mp3"
+mus_openin "openin.mp3"
+mus_evil "evil.mp3"
+mus_ultima "ultima.mp3"
+mus_read_m "read_m.mp3"
+mus_dm2ttl "dm2ttl.mp3"
+mus_dm2int "dm2int.mp3"
diff --git a/recipes-qtopia/prboom/prboom-devconfig/collie/prboom.cfg b/recipes-qtopia/prboom/prboom-devconfig/collie/prboom.cfg
new file mode 100644
index 0000000..67703ac
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-devconfig/collie/prboom.cfg
@@ -0,0 +1,313 @@
+# Doom config file
+# Format:
+# variable value
+
+# Misc settings
+default_compatibility_level -1
+realtic_clock_rate 100
+max_player_corpse 32
+flashing_hom 0
+demo_insurance 2
+endoom_mode 0x5
+level_precache 0
+
+# Files
+wadfile_1 "prboom.wad"
+wadfile_2 ""
+dehfile_1 ""
+dehfile_2 ""
+
+# Game settings
+default_skill 3
+weapon_recoil 1
+doom_weapon_toggles 1
+player_bobbing 1
+monsters_remember 1
+monster_infighting 1
+monster_backing 1
+monster_avoid_hazards 1
+monkeys 1
+monster_friction 1
+help_friends 1
+player_helpers 0
+friend_distance 128
+dog_jumping 1
+sts_always_red 0
+sts_pct_always_gray 1
+sts_traditional_keys 0
+traditional_menu 0
+show_messages 1
+autorun 1
+
+# Compatibility settings
+comp_zombie 0
+comp_infcheat 0
+comp_stairs 0
+comp_telefrag 1
+comp_dropoff 0
+comp_falloff 0
+comp_staylift 0
+comp_doorstuck 0
+comp_pursuit 0
+comp_vile 0
+comp_pain 0
+comp_skull 0
+comp_blazing 0
+comp_doorlight 0
+comp_god 0
+comp_skymap 0
+comp_floors 0
+comp_model 0
+comp_zerotags 0
+comp_moveblock 0
+comp_sound 0
+
+# Sound settings
+sound_card -1
+music_card -1
+pitched_sounds 0
+samplerate 22050
+sfx_volume 8
+music_volume 8
+mus_pause_opt 2
+sounddev "/dev/dsp"
+snd_channels 8
+
+# Video settings
+screen_width 320
+screen_height 240
+fake_contrast 1
+use_fullscreen 1
+use_doublebuffer 1
+translucency 1
+tran_filter_pct 66
+screenblocks 10
+usegamma 4
+X_options 0x0
+
+# Mouse settings
+use_mouse 1
+mouse_sensitivity_horiz 10
+mouse_sensitivity_vert 10
+mouseb_fire 0
+mouseb_strafe 1
+mouseb_forward 2
+
+# Key bindings
+key_right 0xae
+key_left 0xac
+key_up 0xad
+key_down 0xaf
+key_menu_right 0xae
+key_menu_left 0xac
+key_menu_up 0xad
+key_menu_down 0xaf
+key_menu_backspace 0x7f
+key_menu_escape 0x1b
+key_menu_enter 0x20
+key_strafeleft 0x2c
+key_straferight 0x2e
+key_fire 0x20
+key_use 0xc3
+key_strafe 0xb8
+key_speed 0xb6
+key_savegame 0xbc
+key_loadgame 0xbd
+key_soundvolume 0xbe
+key_hud 0xbf
+key_quicksave 0xc0
+key_endgame 0xc1
+key_messages 0xc2
+key_quickload 0xd
+key_quit 0xc4
+key_gamma 0xd7
+key_spy 0xd8
+key_pause 0xff
+key_autorun 0xba
+key_chat 0x74
+key_backspace 0x7f
+key_enter 0xd
+key_map 0x126
+key_map_right 0xad
+key_map_left 0xaf
+key_map_up 0xac
+key_map_down 0xae
+key_map_zoomin 0x3d
+key_map_zoomout 0x2d
+key_map_gobig 0x30
+key_map_follow 0x66
+key_map_mark 0x6d
+key_map_clear 0x63
+key_map_grid 0x67
+key_map_rotate 0x72
+key_map_overlay 0x6f
+key_reverse 0x2f
+key_zoomin 0x3d
+key_zoomout 0x2d
+key_chatplayer1 0x67
+key_chatplayer2 0x69
+key_chatplayer3 0x62
+key_chatplayer4 0x72
+key_weapontoggle 0x30
+key_weapon1 0x31
+key_weapon2 0x32
+key_weapon3 0x33
+key_weapon4 0x34
+key_weapon5 0x35
+key_weapon6 0x36
+key_weapon7 0x37
+key_weapon8 0x38
+key_weapon9 0x39
+key_screenshot 0x2a
+
+# Joystick settings
+use_joystick 0
+joy_left 0
+joy_right 0
+joy_up 0
+joy_down 0
+joyb_fire 0
+joyb_strafe 1
+joyb_speed 2
+joyb_use 3
+
+# Chat macros
+chatmacro0 "No"
+chatmacro1 "I'm ready to kick butt!"
+chatmacro2 "I'm OK."
+chatmacro3 "I'm not looking too good!"
+chatmacro4 "Help!"
+chatmacro5 "You suck!"
+chatmacro6 "Next time, scumbag..."
+chatmacro7 "Come here!"
+chatmacro8 "I'll take care of it."
+chatmacro9 "Yes"
+
+# Automap settings
+mapcolor_back 0xf7
+mapcolor_grid 0x68
+mapcolor_wall 0x17
+mapcolor_fchg 0x37
+mapcolor_cchg 0xd7
+mapcolor_clsd 0xd0
+mapcolor_rkey 0xaf
+mapcolor_bkey 0xcc
+mapcolor_ykey 0xe7
+mapcolor_rdor 0xaf
+mapcolor_bdor 0xcc
+mapcolor_ydor 0xe7
+mapcolor_tele 0x77
+mapcolor_secr 0xfc
+mapcolor_exit 0x0
+mapcolor_unsn 0x68
+mapcolor_flat 0x58
+mapcolor_sprt 0x70
+mapcolor_item 0xe7
+mapcolor_hair 0xd0
+mapcolor_sngl 0xd0
+mapcolor_me 0x70
+mapcolor_frnd 0x70
+map_secret_after 0
+map_point_coord 0
+automapmode 0x0
+
+# Heads-up display settings
+hudcolor_titl 5
+hudcolor_xyco 3
+hudcolor_mesg 6
+hudcolor_chat 5
+hudcolor_list 5
+hud_msg_lines 1
+hud_list_bgon 0
+hud_distributed 0
+health_red 25
+health_yellow 50
+health_green 100
+armor_red 25
+armor_yellow 50
+armor_green 100
+ammo_red 25
+ammo_yellow 50
+hud_active 2
+hud_displayed 0
+hud_nosecrets 0
+
+# Weapon preferences
+weapon_choice_1 6
+weapon_choice_2 9
+weapon_choice_3 4
+weapon_choice_4 3
+weapon_choice_5 2
+weapon_choice_6 8
+weapon_choice_7 5
+weapon_choice_8 7
+weapon_choice_9 1
+
+# Music
+mus_e1m1 "e1m1.mp3"
+mus_e1m2 "e1m2.mp3"
+mus_e1m3 "e1m3.mp3"
+mus_e1m4 "e1m4.mp3"
+mus_e1m5 "e1m5.mp3"
+mus_e1m6 "e1m6.mp3"
+mus_e1m7 "e1m7.mp3"
+mus_e1m8 "e1m8.mp3"
+mus_e1m9 "e1m9.mp3"
+mus_e2m1 "e2m1.mp3"
+mus_e2m2 "e2m2.mp3"
+mus_e2m3 "e2m3.mp3"
+mus_e2m4 "e2m4.mp3"
+mus_e2m5 "e1m7.mp3"
+mus_e2m6 "e2m6.mp3"
+mus_e2m7 "e2m7.mp3"
+mus_e2m8 "e2m8.mp3"
+mus_e2m9 "e3m1.mp3"
+mus_e3m1 "e3m1.mp3"
+mus_e3m2 "e3m2.mp3"
+mus_e3m3 "e3m3.mp3"
+mus_e3m4 "e1m8.mp3"
+mus_e3m5 "e1m7.mp3"
+mus_e3m6 "e1m6.mp3"
+mus_e3m7 "e2m7.mp3"
+mus_e3m8 "e3m8.mp3"
+mus_e3m9 "e1m9.mp3"
+mus_inter "e2m3.mp3"
+mus_intro "intro.mp3"
+mus_bunny "bunny.mp3"
+mus_victor "victor.mp3"
+mus_introa "intro.mp3"
+mus_runnin "runnin.mp3"
+mus_stalks "stalks.mp3"
+mus_countd "countd.mp3"
+mus_betwee "betwee.mp3"
+mus_doom "doom.mp3"
+mus_the_da "the_da.mp3"
+mus_shawn "shawn.mp3"
+mus_ddtblu "ddtblu.mp3"
+mus_in_cit "in_cit.mp3"
+mus_dead "dead.mp3"
+mus_stlks2 "stalks.mp3"
+mus_theda2 "the_da.mp3"
+mus_doom2 "doom.mp3"
+mus_ddtbl2 "ddtblu.mp3"
+mus_runni2 "runnin.mp3"
+mus_dead2 "dead.mp3"
+mus_stlks3 "stalks.mp3"
+mus_romero "romero.mp3"
+mus_shawn2 "shawn.mp3"
+mus_messag "messag.mp3"
+mus_count2 "countd.mp3"
+mus_ddtbl3 "ddtblu.mp3"
+mus_ampie "ampie.mp3"
+mus_theda3 "the_da.mp3"
+mus_adrian "adrian.mp3"
+mus_messg2 "messag.mp3"
+mus_romer2 "romero.mp3"
+mus_tense "tense.mp3"
+mus_shawn3 "shawn.mp3"
+mus_openin "openin.mp3"
+mus_evil "evil.mp3"
+mus_ultima "ultima.mp3"
+mus_read_m "read_m.mp3"
+mus_dm2ttl "dm2ttl.mp3"
+mus_dm2int "dm2int.mp3"
diff --git a/recipes-qtopia/prboom/prboom-devconfig/prboom.cfg b/recipes-qtopia/prboom/prboom-devconfig/prboom.cfg
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-devconfig/prboom.cfg
@@ -0,0 +1 @@
+
diff --git a/recipes-qtopia/prboom/prboom-devconfig/spitz/prboom.cfg b/recipes-qtopia/prboom/prboom-devconfig/spitz/prboom.cfg
new file mode 100644
index 0000000..cd17d0b
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-devconfig/spitz/prboom.cfg
@@ -0,0 +1,313 @@
+# Doom config file
+# Format:
+# variable value
+
+# Misc settings
+default_compatibility_level -1
+realtic_clock_rate 100
+max_player_corpse 32
+flashing_hom 0
+demo_insurance 2
+endoom_mode 0x5
+level_precache 0
+
+# Files
+wadfile_1 "prboom.wad"
+wadfile_2 ""
+dehfile_1 ""
+dehfile_2 ""
+
+# Game settings
+default_skill 2
+weapon_recoil 0
+doom_weapon_toggles 1
+player_bobbing 1
+monsters_remember 1
+monster_infighting 1
+monster_backing 0
+monster_avoid_hazards 1
+monkeys 0
+monster_friction 1
+help_friends 1
+player_helpers 0
+friend_distance 128
+dog_jumping 1
+sts_always_red 1
+sts_pct_always_gray 0
+sts_traditional_keys 0
+traditional_menu 1
+show_messages 1
+autorun 0
+
+# Compatibility settings
+comp_zombie 0
+comp_infcheat 0
+comp_stairs 0
+comp_telefrag 0
+comp_dropoff 0
+comp_falloff 0
+comp_staylift 0
+comp_doorstuck 0
+comp_pursuit 0
+comp_vile 0
+comp_pain 0
+comp_skull 0
+comp_blazing 0
+comp_doorlight 0
+comp_god 0
+comp_skymap 0
+comp_floors 0
+comp_model 0
+comp_zerotags 0
+comp_moveblock 0
+comp_sound 0
+
+# Sound settings
+sound_card -1
+music_card -1
+pitched_sounds 0
+samplerate 22050
+sfx_volume 8
+music_volume 8
+mus_pause_opt 2
+sounddev "/dev/dsp"
+snd_channels 8
+
+# Video settings
+screen_width 540
+screen_height 380
+fake_contrast 1
+use_fullscreen 1
+use_doublebuffer 1
+translucency 1
+tran_filter_pct 66
+screenblocks 10
+usegamma 3
+X_options 0x0
+
+# Mouse settings
+use_mouse 1
+mouse_sensitivity_horiz 10
+mouse_sensitivity_vert 10
+mouseb_fire 0
+mouseb_strafe 1
+mouseb_forward 2
+
+# Key bindings
+key_right 0xae
+key_left 0xac
+key_up 0xad
+key_down 0xaf
+key_menu_right 0xae
+key_menu_left 0xac
+key_menu_up 0xad
+key_menu_down 0xaf
+key_menu_backspace 0x7f
+key_menu_escape 0x1b
+key_menu_enter 0x10d
+key_strafeleft 0x2c
+key_straferight 0x2e
+key_fire 0x10d
+key_use 0x20
+key_strafe 0xb8
+key_speed 0xb6
+key_savegame 0xbc
+key_loadgame 0xbd
+key_soundvolume 0xbe
+key_hud 0xbf
+key_quicksave 0xc0
+key_endgame 0xc1
+key_messages 0xc2
+key_quickload 0xc3
+key_quit 0xc4
+key_gamma 0xd7
+key_spy 0xd8
+key_pause 0xff
+key_autorun 0xba
+key_chat 0x74
+key_backspace 0x7f
+key_enter 0xd
+key_map 0x9
+key_map_right 0xae
+key_map_left 0xac
+key_map_up 0xad
+key_map_down 0xaf
+key_map_zoomin 0x3d
+key_map_zoomout 0x2d
+key_map_gobig 0x30
+key_map_follow 0x66
+key_map_mark 0x6d
+key_map_clear 0x63
+key_map_grid 0x67
+key_map_rotate 0x72
+key_map_overlay 0x6f
+key_reverse 0x2f
+key_zoomin 0x3d
+key_zoomout 0x2d
+key_chatplayer1 0x67
+key_chatplayer2 0x69
+key_chatplayer3 0x62
+key_chatplayer4 0x72
+key_weapontoggle 0x30
+key_weapon1 0x31
+key_weapon2 0x32
+key_weapon3 0x33
+key_weapon4 0x34
+key_weapon5 0x35
+key_weapon6 0x36
+key_weapon7 0x37
+key_weapon8 0x38
+key_weapon9 0x39
+key_screenshot 0x2a
+
+# Joystick settings
+use_joystick 0
+joy_left 0
+joy_right 0
+joy_up 0
+joy_down 0
+joyb_fire 0
+joyb_strafe 1
+joyb_speed 2
+joyb_use 3
+
+# Chat macros
+chatmacro0 "No"
+chatmacro1 "I'm ready to kick butt!"
+chatmacro2 "I'm OK."
+chatmacro3 "I'm not looking too good!"
+chatmacro4 "Help!"
+chatmacro5 "You suck!"
+chatmacro6 "Next time, scumbag..."
+chatmacro7 "Come here!"
+chatmacro8 "I'll take care of it."
+chatmacro9 "Yes"
+
+# Automap settings
+mapcolor_back 0xf7
+mapcolor_grid 0x68
+mapcolor_wall 0x17
+mapcolor_fchg 0x37
+mapcolor_cchg 0xd7
+mapcolor_clsd 0xd0
+mapcolor_rkey 0xaf
+mapcolor_bkey 0xcc
+mapcolor_ykey 0xe7
+mapcolor_rdor 0xaf
+mapcolor_bdor 0xcc
+mapcolor_ydor 0xe7
+mapcolor_tele 0x77
+mapcolor_secr 0xfc
+mapcolor_exit 0x0
+mapcolor_unsn 0x68
+mapcolor_flat 0x58
+mapcolor_sprt 0x70
+mapcolor_item 0xe7
+mapcolor_hair 0xd0
+mapcolor_sngl 0xd0
+mapcolor_me 0x70
+mapcolor_frnd 0x70
+map_secret_after 0
+map_point_coord 0
+automapmode 0x0
+
+# Heads-up display settings
+hudcolor_titl 5
+hudcolor_xyco 3
+hudcolor_mesg 6
+hudcolor_chat 5
+hudcolor_list 5
+hud_msg_lines 1
+hud_list_bgon 0
+hud_distributed 0
+health_red 25
+health_yellow 50
+health_green 100
+armor_red 25
+armor_yellow 50
+armor_green 100
+ammo_red 25
+ammo_yellow 50
+hud_active 2
+hud_displayed 0
+hud_nosecrets 0
+
+# Weapon preferences
+weapon_choice_1 6
+weapon_choice_2 9
+weapon_choice_3 4
+weapon_choice_4 3
+weapon_choice_5 2
+weapon_choice_6 8
+weapon_choice_7 5
+weapon_choice_8 7
+weapon_choice_9 1
+
+# Music
+mus_e1m1 "e1m1.mp3"
+mus_e1m2 "e1m2.mp3"
+mus_e1m3 "e1m3.mp3"
+mus_e1m4 "e1m4.mp3"
+mus_e1m5 "e1m5.mp3"
+mus_e1m6 "e1m6.mp3"
+mus_e1m7 "e1m7.mp3"
+mus_e1m8 "e1m8.mp3"
+mus_e1m9 "e1m9.mp3"
+mus_e2m1 "e2m1.mp3"
+mus_e2m2 "e2m2.mp3"
+mus_e2m3 "e2m3.mp3"
+mus_e2m4 "e2m4.mp3"
+mus_e2m5 "e1m7.mp3"
+mus_e2m6 "e2m6.mp3"
+mus_e2m7 "e2m7.mp3"
+mus_e2m8 "e2m8.mp3"
+mus_e2m9 "e3m1.mp3"
+mus_e3m1 "e3m1.mp3"
+mus_e3m2 "e3m2.mp3"
+mus_e3m3 "e3m3.mp3"
+mus_e3m4 "e1m8.mp3"
+mus_e3m5 "e1m7.mp3"
+mus_e3m6 "e1m6.mp3"
+mus_e3m7 "e2m7.mp3"
+mus_e3m8 "e3m8.mp3"
+mus_e3m9 "e1m9.mp3"
+mus_inter "e2m3.mp3"
+mus_intro "intro.mp3"
+mus_bunny "bunny.mp3"
+mus_victor "victor.mp3"
+mus_introa "intro.mp3"
+mus_runnin "runnin.mp3"
+mus_stalks "stalks.mp3"
+mus_countd "countd.mp3"
+mus_betwee "betwee.mp3"
+mus_doom "doom.mp3"
+mus_the_da "the_da.mp3"
+mus_shawn "shawn.mp3"
+mus_ddtblu "ddtblu.mp3"
+mus_in_cit "in_cit.mp3"
+mus_dead "dead.mp3"
+mus_stlks2 "stalks.mp3"
+mus_theda2 "the_da.mp3"
+mus_doom2 "doom.mp3"
+mus_ddtbl2 "ddtblu.mp3"
+mus_runni2 "runnin.mp3"
+mus_dead2 "dead.mp3"
+mus_stlks3 "stalks.mp3"
+mus_romero "romero.mp3"
+mus_shawn2 "shawn.mp3"
+mus_messag "messag.mp3"
+mus_count2 "countd.mp3"
+mus_ddtbl3 "ddtblu.mp3"
+mus_ampie "ampie.mp3"
+mus_theda3 "the_da.mp3"
+mus_adrian "adrian.mp3"
+mus_messg2 "messag.mp3"
+mus_romer2 "romero.mp3"
+mus_tense "tense.mp3"
+mus_shawn3 "shawn.mp3"
+mus_openin "openin.mp3"
+mus_evil "evil.mp3"
+mus_ultima "ultima.mp3"
+mus_read_m "read_m.mp3"
+mus_dm2ttl "dm2ttl.mp3"
+mus_dm2int "dm2int.mp3"
diff --git a/recipes-qtopia/prboom/prboom-opie_2.2.6.bb b/recipes-qtopia/prboom/prboom-opie_2.2.6.bb
new file mode 100644
index 0000000..6acd997
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom-opie_2.2.6.bb
@@ -0,0 +1,25 @@
+require prboom_${PV}.bb
+
+PR = "r6"
+
+S = "${WORKDIR}/prboom-${PV}"
+
+SRC_URI_append = " file://prboom.png \
+ file://prboom.desktop \
+ file://prboom.sh "
+
+
+
+do_install_append() {
+ install -d ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics \
+
+ install -m 0755 ${WORKDIR}/prboom.sh ${D}${bindir}
+ install -m 0644 ${WORKDIR}/prboom.png ${D}${palmtopdir}/pics/prboom.png
+ install -m 0644 ${WORKDIR}/prboom.desktop ${D}${palmtopdir}/apps/Games/prboom.desktop
+}
+
+FILES_${PN}_append = " ${palmtopdir}"
+
+SRC_URI[md5sum] = "ef0abe0aad017514857552434b5c6aaa"
+SRC_URI[sha256sum] = "200d3c50b082ae46be8c014bb576b4e2d23b1704508fd528c47e3e2b3b04759e"
diff --git a/recipes-qtopia/prboom/prboom_2.2.6.bb b/recipes-qtopia/prboom/prboom_2.2.6.bb
new file mode 100644
index 0000000..9c3ced1
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom_2.2.6.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "A Doom Clone based on SDL"
+SECTION = "games"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libsdl-mixer libsdl-net"
+LICENSE = "GPL"
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/prboom/prboom-${PV}.tar.gz"
+
+inherit autotools
+
+EXTRA_OECONF = "--without-x --disable-sdltest"
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${datadir}/games/doom
+
+ install -m 0755 src/prboom ${D}${bindir}/prboom
+ install -m 0644 data/prboom.wad ${D}${datadir}/games/doom/
+}
+
+FILES_${PN} += "${datadir}/games/doom/prboom.wad"
+
+SRC_URI[md5sum] = "ef0abe0aad017514857552434b5c6aaa"
+SRC_URI[sha256sum] = "200d3c50b082ae46be8c014bb576b4e2d23b1704508fd528c47e3e2b3b04759e"
diff --git a/recipes-qtopia/prboom/prboom_2.3.1.bb b/recipes-qtopia/prboom/prboom_2.3.1.bb
new file mode 100644
index 0000000..f4a61d9
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom_2.3.1.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "A Doom Clone based on SDL"
+SECTION = "opie/games"
+PRIORITY = "optional"
+DEPENDS = "libsdl-qpe libsdl-mixer libsdl-net"
+LICENSE = "GPL"
+
+# This version can be started w/ -height 240 but it
+# a) doesn't load doom1.wad (crash)
+# b) crahes a few seconds after starting w/ doom2.wad
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/prboom/prboom-${PV}.tar.gz \
+ file://prboom.png \
+ file://prboom.desktop"
+
+inherit autotools
+
+EXTRA_OECONF = "--without-x --disable-sdltest"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics \
+ ${D}${datadir}/games/doom
+ install -m 0755 src/prboom ${D}${palmtopdir}/bin/prboom
+ install -m 0644 data/prboom.wad ${D}${datadir}/games/doom/
+ install -m 0644 ${WORKDIR}/prboom.png ${D}${palmtopdir}/pics/prboom.png
+ install -m 0644 ${WORKDIR}/prboom.desktop ${D}${palmtopdir}/apps/Games/prboom.desktop
+}
+
+FILES_${PN} = "${palmtopdir} ${datadir}/games/doom/prboom.wad"
+
+SRC_URI[md5sum] = "c53231604fe6cf7352e73911ad44c90d"
+SRC_URI[sha256sum] = "6465b37ef96c04d95dcb887f907da1af43a33783e8c5e80527bceda97202876a"
diff --git a/recipes-qtopia/prboom/prboom_2.4.7.bb b/recipes-qtopia/prboom/prboom_2.4.7.bb
new file mode 100644
index 0000000..312ebcf
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom_2.4.7.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "A Doom Clone based on SDL"
+SECTION = "games"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libsdl-mixer libsdl-net"
+LICENSE = "GPL"
+
+PR = "r2"
+RRECOMMENDS_${PN} = "freedoom"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/prboom/prboom-${PV}.tar.gz \
+ "
+
+inherit autotools
+
+EXTRA_OECONF = " --disable-gl --disable-cpu-opt --without-x --disable-sdltest"
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${datadir}/games/doom
+
+ install -m 0755 src/prboom ${D}${bindir}/prboom
+ install -m 0644 data/prboom.wad ${D}${datadir}/games/doom/
+}
+
+FILES_${PN} += "${datadir}/games/doom/prboom.wad"
+
+SRC_URI[md5sum] = "9942f521764d7f89df2218a456da4f02"
+SRC_URI[sha256sum] = "de22dbaacd25a0f0b16c507aa2326a90b7f5dcfcf862c3dc7076996c6187cd2f"
diff --git a/recipes-qtopia/prboom/prboom_2.5.0.bb b/recipes-qtopia/prboom/prboom_2.5.0.bb
new file mode 100644
index 0000000..ef6bb57
--- /dev/null
+++ b/recipes-qtopia/prboom/prboom_2.5.0.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "A Doom Clone based on SDL"
+SECTION = "games"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libsdl-mixer libsdl-net"
+LICENSE = "GPL"
+
+PR = "r4"
+RRECOMMENDS_${PN} = "freedoom"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/prboom/prboom-${PV}.tar.gz \
+ file://gnu_source_for_sched_h.patch \
+ "
+
+inherit autotools
+
+EXTRA_OECONF = " --disable-gl --disable-cpu-opt --without-x --disable-sdltest \
+ SDL_CONFIG=${STAGING_BINDIR_CROSS}/sdl-config"
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${datadir}/games/doom
+
+ install -m 0755 src/prboom ${D}${bindir}/prboom
+ install -m 0644 data/prboom.wad ${D}${datadir}/games/doom/
+}
+
+FILES_${PN} += "${datadir}/games/doom/prboom.wad"
+
+SRC_URI[md5sum] = "a8a15f61fa2626ab98051ab2703378c4"
+SRC_URI[sha256sum] = "226c1c470f8cc983327536404f405a1d026cf0a5188c694a1243cc8630014bae"
diff --git a/recipes-qtopia/puzz-le/puzz-le-2.0.0/gcc3.patch b/recipes-qtopia/puzz-le/puzz-le-2.0.0/gcc3.patch
new file mode 100644
index 0000000..9435dc5
--- /dev/null
+++ b/recipes-qtopia/puzz-le/puzz-le-2.0.0/gcc3.patch
@@ -0,0 +1,24 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- puzzle_arm/OptionsDialog.cpp~gcc3 2002-07-16 04:01:12.000000000 +0200
++++ puzzle_arm/OptionsDialog.cpp 2004-02-19 21:10:32.000000000 +0100
+@@ -24,14 +24,14 @@
+
+ int OptionsDialog::sOptions[5]={60,50,40,30,20};
+
+-OptionsDialog::OptionsDialog(QString *currLevel,QString *th, bool *se,bool *ar,bool *tl, int *gs, QWidget *parent=0,const char *name=0):QDialog(parent,name,true,WStyle_Customize|WStyle_NoBorderEx )
++OptionsDialog::OptionsDialog(QString *currLevel,QString *th, bool *se,bool *ar,bool *tlx, int *gs, QWidget *parent,const char *name):QDialog(parent,name,true,WStyle_Customize|WStyle_NoBorderEx )
+ {
+ the=th;
+ ile=currLevel;
+ ise=se;
+ iar=ar;
+ igs=gs;
+- itl=tl;
++ itl=tlx;
+
+ QFont f=font();
+ f.setBold(true);
diff --git a/recipes-qtopia/puzz-le/puzz-le_2.0.0.bb b/recipes-qtopia/puzz-le/puzz-le_2.0.0.bb
new file mode 100644
index 0000000..a2fb02e
--- /dev/null
+++ b/recipes-qtopia/puzz-le/puzz-le_2.0.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Puzz-le is a colorful arcade logic game for Qt/Embedded based Palmtop Environments."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+PR = "r1"
+
+SRC_URI = "http://www.warmi.net/zaurus/files/puzz-le_${PV}.tar.gz \
+ file://gcc3.patch"
+S = "${WORKDIR}/puzzle_arm"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin
+ install -m 0755 puzz-le ${D}${palmtopdir}/bin/
+ cp -pPR Qtopia/puzz-le/opt/QtPalmtop/* ${D}${palmtopdir}/
+}
+
+SRC_URI[md5sum] = "76535893b779926874f618d3fbf3e92b"
+SRC_URI[sha256sum] = "e4b4217b81ab0885db11cf7e0f18afdeaa969392fc15647a10c2aab9cbf583d8"
diff --git a/recipes-qtopia/qclockchange/files/qclockchange.desktop b/recipes-qtopia/qclockchange/files/qclockchange.desktop
new file mode 100644
index 0000000..9463623
--- /dev/null
+++ b/recipes-qtopia/qclockchange/files/qclockchange.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment= Changes the CPU frequency
+Exec=qclockchange
+Icon=qclockchange
+Type=Application
+Name=Qclockchange
diff --git a/recipes-qtopia/qclockchange/files/qclockchange.png b/recipes-qtopia/qclockchange/files/qclockchange.png
new file mode 100644
index 0000000..861fe2e
--- /dev/null
+++ b/recipes-qtopia/qclockchange/files/qclockchange.png
Binary files differ
diff --git a/recipes-qtopia/qclockchange/qclockchange_0.1b.bb b/recipes-qtopia/qclockchange/qclockchange_0.1b.bb
new file mode 100644
index 0000000..b2f7898
--- /dev/null
+++ b/recipes-qtopia/qclockchange/qclockchange_0.1b.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Program that allows you to set the CCCR registers on PXA Zauruses."
+SECTION = "opie/settings"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "piro <piro400@occn.zaq.ne.jp>"
+HOMEPAGE = "http://piro.sytes.net/~piro/zaurus/"
+APPTYPE="binary"
+PR = "r0"
+
+SRC_URI = "http://piro.sytes.net/~piro/zaurus/etc/qclockchange-${PV}.tar.gz \
+ file://qclockchange.png \
+ file://qclockchange.desktop "
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/ \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/apps/Settings
+
+ install -m 0755 bin/qclockchange ${D}${palmtopdir}/bin/qclockchange
+ install -m 0644 ${WORKDIR}/qclockchange.png ${D}${palmtopdir}/pics/qclockchange.png
+ install -m 0644 ${WORKDIR}/qclockchange.desktop ${D}${palmtopdir}/apps/Settings/qclockchange.desktop
+}
+
+SRC_URI[md5sum] = "4131497c414c7fedae1df58cab2ddfa3"
+SRC_URI[sha256sum] = "8cb7000f55ab124d5fe928960c3c9a059faf4f374981b88e74ac0cdb7904c98a"
diff --git a/recipes-qtopia/qcoptest/files/qcoptest.desktop b/recipes-qtopia/qcoptest/files/qcoptest.desktop
new file mode 100644
index 0000000..df668f6
--- /dev/null
+++ b/recipes-qtopia/qcoptest/files/qcoptest.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment = qcoptest
+Exec = qcoptest
+Icon = qcoptest
+Name = qcoptest
+Type = Application
diff --git a/recipes-qtopia/qcoptest/files/qcoptest.png b/recipes-qtopia/qcoptest/files/qcoptest.png
new file mode 100644
index 0000000..f235577
--- /dev/null
+++ b/recipes-qtopia/qcoptest/files/qcoptest.png
Binary files differ
diff --git a/recipes-qtopia/qcoptest/qcoptest_0.1.1.bb b/recipes-qtopia/qcoptest/qcoptest_0.1.1.bb
new file mode 100644
index 0000000..873df3a
--- /dev/null
+++ b/recipes-qtopia/qcoptest/qcoptest_0.1.1.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "QCop test"
+SECTION = "opie/applications"
+AUTHOR = "Ikezawa Masakazu <ikezawa@gol.com>"
+HOMEPAGE = "http://www2.gol.com/users/ikezawa/zaurus/qcoptest.html"
+LICENSE = "GPL"
+
+APPNAME = "qcoptest"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+
+SRC_URI = "http://www2.gol.com/users/ikezawa/zaurus/qcoptest_0.1.1.tar.gz \
+file://qcoptest.png \
+file://qcoptest.desktop"
+
+S = "${WORKDIR}"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/${APPNAME}.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "a31f12647c5bb5f93c81465b4e5ff25a"
+SRC_URI[sha256sum] = "5795b9d619142e2d01016130c7ac71298aa1cabda4806f11762bb8fd489293af"
diff --git a/recipes-qtopia/qfish/qfish2_1.1.0.bb b/recipes-qtopia/qfish/qfish2_1.1.0.bb
new file mode 100644
index 0000000..fe16a9b
--- /dev/null
+++ b/recipes-qtopia/qfish/qfish2_1.1.0.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "A Game with fishes, Qt/Embedded based Palmtop Environments Edition"
+SECTION = "opie/games"
+LICENSE = "GPL"
+PRIORITY = "optional"
+PR = "r2"
+
+SRC_URI = "http://taiga0818.hp.infoseek.co.jp/rpms/qfish2-${PV}.tar.gz"
+S = "${WORKDIR}/qfish"
+
+inherit palmtop
+
+MACHTYPE = "sl300"
+MACHTYPE_c7x0 = "sl700"
+MACHTYPE_tosa = "sl700"
+
+do_configure_append() {
+ ln -v -f -s config/config-${MACHTYPE}.h config.h
+ ln -v -f -s config/config.mk-${MACHTYPE} config.mk
+ if [ "${MACHTYPE}" = "sl300" ]
+ then
+ ln -vfs bigFishSize.h areaSize.h
+ else
+ ln -vfs smallFishSize.h areaSize.h
+ fi
+ ln -v -f -s HiScoreRegConfig-${MACHTYPE}.h HiScoreRegConfig.h
+}
+
+do_compile_prepend() {
+ cd images && oe_runmake && cd ${S}
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Games
+ install -m 0644 desktop/qfish-${MACHTYPE}.desktop ${D}${palmtopdir}/apps/Games/qfish2.desktop
+ install -d ${D}${palmtopdir}/bin
+ install -m 0755 qfish ${D}${palmtopdir}/bin/qfish2
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 desktop/qfish2.png ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/sounds/qfish2
+ install -m 0644 sounds/*.wav ${D}${palmtopdir}/sounds/qfish2/
+ install -d ${D}${palmtopdir}/help/html/
+ install -m 0644 desktop/qfish.html ${D}${palmtopdir}/help/html/qfish2.html
+}
+
+SRC_URI[md5sum] = "2a8219bcb375fac66cea66394c3c36fa"
+SRC_URI[sha256sum] = "1e097fdccda0fc914c8229aab7d83964c5944cc95eb053fd69e357dca69461b9"
diff --git a/recipes-qtopia/qmatrix/qmatrix_1.1.0.bb b/recipes-qtopia/qmatrix/qmatrix_1.1.0.bb
new file mode 100644
index 0000000..e2c00e4
--- /dev/null
+++ b/recipes-qtopia/qmatrix/qmatrix_1.1.0.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "A matrix Game, Qt/Embedded based Palmtop Environments Edition"
+SECTION = "opie/games"
+LICENSE = "GPL"
+PRIORITY = "optional"
+PR = "r2"
+
+SRC_URI = "http://www.geocities.co.jp/SiliconValley-Oakland/8074/src/qmatrix-${PV}.tar.gz"
+S = "${WORKDIR}/qmatrix"
+
+inherit palmtop
+
+MACHTYPE = "sl300"
+MACHTYPE_c7x0 = "sl700"
+MACHTYPE_tosa = "sl700"
+
+do_configure_append() {
+ ln -v -f -s config/config-${MACHTYPE}.h config.h
+ ln -v -f -s config/config.mk-${MACHTYPE} config.mk
+ if [ "${MACHTYPE}" = "sl300" ]
+ then
+ ln -vfs bigFishSize.h areaSize.h
+ else
+ ln -vfs smallFishSize.h areaSize.h
+ fi
+ ln -v -f -s HiScoreRegConfig-${MACHTYPE}.h HiScoreRegConfig.h
+}
+
+do_compile_prepend() {
+ cd images && oe_runmake && cd ${S}
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Games
+ install -m 0644 desktop/qmatrix-${MACHTYPE}.desktop ${D}${palmtopdir}/apps/Games/qmatrix.desktop
+ install -d ${D}${palmtopdir}/bin
+ install -m 0755 qmatrix ${D}${palmtopdir}/bin/qmatrix
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 desktop/qmatrix.png ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/help/html/
+ install -m 0644 desktop/qmatrix.html ${D}${palmtopdir}/help/html/qmatrix.html
+}
+
+SRC_URI[md5sum] = "03c874e403fcf1566d96a9a064cf73c9"
+SRC_URI[sha256sum] = "57d9c0be4714f9973ce50f70d77c68b874cc5456cab2d210861a4b1ee32cb67f"
diff --git a/recipes-qtopia/qpdf2/files/fix-sigsegv.patch b/recipes-qtopia/qpdf2/files/fix-sigsegv.patch
new file mode 100644
index 0000000..33e9599
--- /dev/null
+++ b/recipes-qtopia/qpdf2/files/fix-sigsegv.patch
@@ -0,0 +1,22 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qpdf2_2.2.1/qpdf.cpp~fix-sigsegv
++++ qpdf2_2.2.1/qpdf.cpp
+@@ -42,10 +42,10 @@
+ {
+ QPEApplication app ( argc, argv );
+
+- if (argc >= 1
+- && strcmp(argv[1],"-d") == 0) {
+- qpdf_debug_level = atoi(argv[2]);
+- }
++// if (argc >= 1
++// && strcmp(argv[1],"-d") == 0) {
++// qpdf_debug_level = atoi(argv[2]);
++// }
+
+ // read config file
+ globalParams = new GlobalParams ( "" );
diff --git a/recipes-qtopia/qpdf2/files/fix_qtversion_check.patch b/recipes-qtopia/qpdf2/files/fix_qtversion_check.patch
new file mode 100644
index 0000000..4dcb32d
--- /dev/null
+++ b/recipes-qtopia/qpdf2/files/fix_qtversion_check.patch
@@ -0,0 +1,11 @@
+--- qpdf2_2.2.1/QOutputDev.cpp.orig 2005-01-31 10:57:03.000000000 +0000
++++ qpdf2_2.2.1/QOutputDev.cpp 2005-01-31 10:57:36.000000000 +0000
+@@ -1083,7 +1083,7 @@
+ tmp. setPoints ( 4, lrint ( x0 ), lrint ( y0 ), lrint ( x1 ), lrint ( y1 ),
+ lrint ( x2 ), lrint ( y2 ), lrint ( x3 ), lrint ( y3 ));
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ tmp = tmp. quadBezier ( );
+
+ for ( uint loop = 0; loop < tmp. count ( ); loop++ ) {
diff --git a/recipes-qtopia/qpdf2/files/gcc4.patch b/recipes-qtopia/qpdf2/files/gcc4.patch
new file mode 100644
index 0000000..5e90302
--- /dev/null
+++ b/recipes-qtopia/qpdf2/files/gcc4.patch
@@ -0,0 +1,31 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qpdf2_2.2.1/qdocnotes.h~gcc4 2004-02-17 18:13:18.000000000 +0100
++++ qpdf2_2.2.1/qdocnotes.h 2006-03-20 19:16:38.000000000 +0100
+@@ -1,6 +1,6 @@
+ #include "xmlparser.h"
+ #include <qmap.h>
+-
++class QDocNotes;
+ class QDocNote {
+ public:
+ friend class QDocNotes;
+--- qpdf2_2.2.1/xpdf/TextOutputDev.h~gcc4 2004-02-17 18:13:18.000000000 +0100
++++ qpdf2_2.2.1/xpdf/TextOutputDev.h 2006-03-20 19:19:47.000000000 +0100
+@@ -139,6 +139,13 @@
+ //------------------------------------------------------------------------
+ // TextPool
+ //------------------------------------------------------------------------
++class TextPool;
++class TextLine;
++class TextBlock;
++class TextFlow;
++class TextWordList;
++class TextPage;
++class TextLineFrag;
+
+ class TextPool {
+ public:
diff --git a/recipes-qtopia/qpdf2/files/hack-the-hack.patch b/recipes-qtopia/qpdf2/files/hack-the-hack.patch
new file mode 100644
index 0000000..52fc488
--- /dev/null
+++ b/recipes-qtopia/qpdf2/files/hack-the-hack.patch
@@ -0,0 +1,173 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qpdf2_2.2.1/qpdfview.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/qpdfview.cpp
+@@ -4,7 +4,7 @@
+ #ifdef __GNUC__
+ #pragma implementation
+ #endif
+-
++#define private public
+ #include "aconf.h"
+
+ #include "qpdf.h"
+--- qpdf2_2.2.1/qpdf.h~hack-the-hack.patch
++++ qpdf2_2.2.1/qpdf.h
+@@ -1,3 +1,4 @@
++#define private public
+ #ifndef __QPDF_H__
+ #define __QPDF_H__
+
+@@ -12,6 +13,8 @@
+
+ #include "signal.h"
+
++#define private public
++#include <qobject.h>
+ #include <qpe/qpeapplication.h>
+ #include <qpe/resource.h>
+ #include <qpe/applnk.h>
+--- qpdf2_2.2.1/qpdf.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/qpdf.cpp
+@@ -12,11 +12,11 @@
+ //
+ //========================================================================
+
+-
++#define private public
+ #include "qpdf.h"
+ #include <qpe/qpemenubar.h>
+ #include <qdir.h>
+-
++#include <errno.h>
+ #ifdef AUTOTEST
+ #define MAX_ZOOM 1.2
+ #else
+@@ -2636,15 +2636,6 @@
+ setRenameBar( false );
+ }
+
+-
+-#ifdef ARM
+-extern int errno;
+-#else
+-extern "C" {
+- int errno;
+-};
+-#endif
+-
+ void
+ QPDFWindow::writeConfig()
+ {
+--- qpdf2_2.2.1/textedit.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/textedit.cpp
+@@ -19,7 +19,7 @@
+ **********************************************************************/
+
+ #include <stdlib.h> //getenv
+-
++#define private public
+ #include <qpe/global.h>
+ #include <qpe/fileselector.h>
+ #include <qpe/applnk.h>
+--- qpdf2_2.2.1/autotest.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/autotest.cpp
+@@ -7,7 +7,7 @@
+ qobject.h - make the activate_xxx functions public
+
+ */
+-
++#define private public
+ #include "qpdf.h"
+ #ifdef AUTOTEST
+ //#define MEM_LEAKS_EVENT_COUNT 50000
+--- qpdf2_2.2.1/qpdffileselector.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/qpdffileselector.cpp
+@@ -3,7 +3,7 @@
+
+
+ */
+-
++#define private public
+ #include "qpdf.h"
+
+ #include <qwmatrix.h>
+--- qpdf2_2.2.1/qpdfconfig.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/qpdfconfig.cpp
+@@ -1,3 +1,4 @@
++#define private public
+ #include "qpdf.h"
+ #include <qpushbutton.h>
+ #include <qradiobutton.h>
+--- qpdf2_2.2.1/qqimage.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/qqimage.cpp
+@@ -8,7 +8,7 @@
+ "protected:" and add "friend class QQImage" to class QImage.
+
+ */
+-
++#define private public
+
+ /****************************************************************************
+ ** $Id: qt/src/kernel/qimage.cpp 2.3.8-snapshot-20040114 edited 2003-12-29 $
+--- qpdf2_2.2.1/qdocnotes.cpp~hack-the-hack.patch
++++ qpdf2_2.2.1/qdocnotes.cpp
+@@ -5,7 +5,7 @@
+ #include <qpe/stringutil.h>
+ #include <qfile.h>
+ #include <qfileinfo.h>
+-
++#include <errno.h>
+ #define assert(X)
+
+ QDocNote::QDocNote()
+@@ -698,18 +698,6 @@
+ return(save(m_filepath, state));
+ }
+
+-
+-#ifdef ARM
+-extern int errno;
+-extern char *strerror(int);
+-#else
+-extern "C" {
+- int errno;
+- extern char *strerror(int);
+-}
+-#endif
+-
+-
+ bool
+ QDocNotes::save(const QString &filepath, QDocState *state)
+ {
+--- qpdf2_2.2.1/xpdf/PDFDoc.cc~hack-the-hack.patch
++++ qpdf2_2.2.1/xpdf/PDFDoc.cc
+@@ -7,7 +7,7 @@
+ //========================================================================
+
+ #include <aconf.h>
+-
++#include <errno.h>
+ #ifdef USE_GCC_PRAGMAS
+ #pragma implementation
+ #endif
+@@ -205,16 +205,6 @@
+ }
+ }
+
+-#ifdef ARM
+-extern int errno;
+-extern char *strerror(int);
+-#else
+-extern "C" {
+- int errno;
+- extern char *strerror(int);
+-}
+-#endif
+-
+ void PDFDoc::displayPage(OutputDev *out, int page, fouble hDPI, fouble vDPI,
+ int rotate, GBool doLinks,
+ GBool (*abortCheckCbk)(void *data),
diff --git a/recipes-qtopia/qpdf2/qpdf2_2.2.1.bb b/recipes-qtopia/qpdf2/qpdf2_2.2.1.bb
new file mode 100644
index 0000000..7232637
--- /dev/null
+++ b/recipes-qtopia/qpdf2/qpdf2_2.2.1.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "QPDF2 is a Viewer for PDF documents. An unnecessary fork based on opie-qpdf."
+PRIORITY = "optional"
+SECTION = "opie/applications"
+HOMEPAGE = "http://qpdf2.sf.net"
+LICENSE = "GPL"
+DEPENDS = "t1lib freetype"
+APPNAME = "qpdf"
+APPTYPE = "binary"
+APPDESKTOP = "${S}/ipkg-render-freetype/opt/QtPalmtop/apps/Applications"
+PR = "r3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qpdf2/qpdf2_2.2.1_20040217b.tgz \
+ file://hack-the-hack.patch \
+ file://fix-sigsegv.patch \
+ file://fix_qtversion_check.patch \
+ file://gcc4.patch"
+S = "${WORKDIR}/qpdf2_${PV}"
+
+inherit opie
+
+QMAKE_PROFILES = "qpdf_render-freetype.pro"
+EXTRA_QMAKEVARS_POST += "TARGET=qpdf"
+export OE_QMAKE_LINK="${CXX}"
+
+do_configure_prepend() {
+ find . -name "Makefile"|xargs rm -f
+ find . -name "*.o"|xargs rm -f
+ find . -name "*.a"|xargs rm -f
+ find . -name "*.la"|xargs rm -f
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/qpdf
+ install -m 0644 ipkg-render-freetype/opt/QtPalmtop/pics/qpdf/*.* ${D}${palmtopdir}/pics/qpdf/
+}
+
+
+SRC_URI[md5sum] = "6b94eda9bd8e2b884c753d70fee04b3f"
+SRC_URI[sha256sum] = "3378f7a92f3afbc3663cce8c99790092282eb01101ba21aed4709736cf875ad5"
diff --git a/recipes-qtopia/qpe-gaim/files/buzzer-notification.patch b/recipes-qtopia/qpe-gaim/files/buzzer-notification.patch
new file mode 100644
index 0000000..2aefe1d
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/files/buzzer-notification.patch
@@ -0,0 +1,48 @@
+#
+# with this patch qpe-gaim also notifies if it is minimized to the taskbar.
+# this could be nice if you have more apps open
+#
+# Author: Patrick Steiner <patrick.steiner@a1.ner>
+# Version: 1.01 (20050328)
+#
+
+Index: qpe-gaim/src/QGaimConvWindow.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimConvWindow.cpp 2005-04-03 19:57:31.924379043 +0200
++++ qpe-gaim/src/QGaimConvWindow.cpp 2005-04-03 20:02:03.281769318 +0200
+@@ -175,24 +175,20 @@
+ win = gaim_conversation_get_window(conv);
+ activeConv = gaim_conv_window_get_active_conversation(win);
+
+- if (conv != activeConv ||
+- win != qGaimGetMainWindow()->getLastActiveConvWindow())
+- {
+- const char *prefName;
++ const char *prefName;
+
+- if (gaim_conversation_get_type(conv) == GAIM_CONV_CHAT)
+- prefName = "/gaim/qpe/notify/incoming_chat";
+- else
+- prefName = "/gaim/qpe/notify/incoming_im";
++ if (gaim_conversation_get_type(conv) == GAIM_CONV_CHAT)
++ prefName = "/gaim/qpe/notify/incoming_chat";
++ else
++ prefName = "/gaim/qpe/notify/incoming_im";
+
+- if (gaim_prefs_get_bool(prefName))
+- {
+- if (notifying)
+- qGaimNotifyUserStop();
++ if (gaim_prefs_get_bool(prefName))
++ {
++ if (notifying)
++ qGaimNotifyUserStop();
+
+- qGaimNotifyUser();
+- notifying = true;
+- }
++ qGaimNotifyUser();
++ notifying = true;
+ }
+ }
+ }
diff --git a/recipes-qtopia/qpe-gaim/files/dont-look-for-gtk.patch b/recipes-qtopia/qpe-gaim/files/dont-look-for-gtk.patch
new file mode 100644
index 0000000..889a6ae
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/files/dont-look-for-gtk.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- libgaim/configure.ac~dont-look-for-gtk
++++ libgaim/configure.ac
+@@ -253,10 +253,6 @@
+ *** GLib 2.0 is required to build Gaim; please make sure you have the GLib
+ *** development headers installed. The latest version of GLib is
+ *** always available at http://www.gtk.org/.]))
+-AM_PATH_GTK_2_0(2.0.0,,AC_MSG_ERROR([
+-*** GTK+ 2.0 is required to build Gaim; please make sure you have the GTK+
+-*** development headers installed. The latest version of GTK+ is
+-*** always available at http://www.gtk.org/.]))
+
+ AC_PATH_PROG(gaimpath, gaim)
+ AC_SUBST(GTK_CFLAGS)
diff --git a/recipes-qtopia/qpe-gaim/files/libgaim.patch b/recipes-qtopia/qpe-gaim/files/libgaim.patch
new file mode 100644
index 0000000..f7042c3
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/files/libgaim.patch
@@ -0,0 +1,408 @@
+Index: gaim-1.3.0/src/status.c
+===================================================================
+--- gaim-1.3.0.orig/src/status.c 2005-02-10 01:07:25.000000000 +0100
++++ gaim-1.3.0/src/status.c 2005-06-05 02:21:59.000000000 +0200
+@@ -24,10 +24,13 @@
+ #include "internal.h"
+ #include "debug.h"
+ #include "util.h"
++#include "away.h"
+
+ /* XXX CORE/UI */
++#if 0
+ #include "away.h"
+ #include "gtkgaim.h"
++#endif
+
+
+ /* for people like myself who are too lazy to add an away msg :) */
+Index: gaim-1.3.0/plugins/Makefile.am
+===================================================================
+--- gaim-1.3.0.orig/plugins/Makefile.am 2005-04-29 19:01:57.000000000 +0200
++++ gaim-1.3.0/plugins/Makefile.am 2005-06-05 02:24:20.000000000 +0200
+@@ -13,46 +13,29 @@
+ endif
+
+ SUBDIRS = \
+- docklet gaim-remote $(GEVOLUTION_DIR) gestures \
+- $(PERL_DIR) $(TCL_DIR) ssl ticker
++ $(GEVOLUTION_DIR) \
++ $(PERL_DIR) $(TCL_DIR) ssl
+
+ plugindir = $(libdir)/gaim
+
+ autorecon_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
+ extplacement_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
+-history_la_LDFLAGS = -module -avoid-version $(GTK_LIBS)
+-iconaway_la_LDFLAGS = -module -avoid-version $(GTK_LIBS)
+ idle_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
+-notify_la_LDFLAGS = -module -avoid-version $(GTK_LIBS)
+ relnot_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
+-spellchk_la_LDFLAGS = -module -avoid-version $(GTK_LIBS)
+ statenotify_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
+-timestamp_la_LDFLAGS = -module -avoid-version $(GTK_LIBS)
+
+ if PLUGINS
+
+ plugin_LTLIBRARIES = \
+ autorecon.la \
+- extplacement.la \
+- history.la \
+- iconaway.la \
+ idle.la \
+- notify.la \
+ relnot.la \
+- spellchk.la \
+- statenotify.la \
+- timestamp.la
++ statenotify.la
+
+ autorecon_la_SOURCES = autorecon.c
+-extplacement_la_SOURCES = extplacement.c
+-history_la_SOURCES = history.c
+-iconaway_la_SOURCES = iconaway.c
+ idle_la_SOURCES = idle.c
+-notify_la_SOURCES = notify.c
+ relnot_la_SOURCES = relnot.c
+-spellchk_la_SOURCES = spellchk.c
+ statenotify_la_SOURCES = statenotify.c
+-timestamp_la_SOURCES = timestamp.c
+
+ endif # PLUGINS
+
+@@ -74,7 +57,7 @@
+ -DVERSION=\"$(VERSION)\" \
+ -I$(top_srcdir)/src \
+ $(DEBUG_CFLAGS) \
+- $(GTK_CFLAGS) \
++ $(GLIB_CFLAGS) \
+ $(PLUGIN_CFLAGS)
+
+ #
+Index: gaim-1.3.0/src/gaim.h
+===================================================================
+--- gaim-1.3.0.orig/src/gaim.h 2004-08-08 07:37:58.000000000 +0200
++++ gaim-1.3.0/src/gaim.h 2005-06-05 02:21:59.000000000 +0200
+@@ -27,6 +27,10 @@
+
+ #include "connection.h"
+
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* Globals in main.c */
+ extern int opt_away;
+ extern char *opt_away_arg;
+@@ -36,7 +40,28 @@
+ extern GSList *unread_message_queue;
+ extern GSList *away_time_queue;
+
++
++/* copied from gtkdialog.h */
++struct queued_message {
++ char name[80];
++ char alias[80];
++ char *message;
++ time_t tm;
++ GaimAccount *account;
++ GaimMessageFlags flags;
++};
++
+ /* Functions in idle.c */
+ extern gint check_idle(gpointer);
+
++/* Variable in .. */
++extern int docklet_count;
++
++/* implemented by gtkutils.h and used by server.c */
++extern char *stylize(const gchar *text, int length);
++
++#ifdef __cplusplus
++}
++#endif
++
+ #endif /* _GAIM_H_ */
+Index: gaim-1.3.0/src/Makefile.am
+===================================================================
+--- gaim-1.3.0.orig/src/Makefile.am 2005-04-11 22:59:21.000000000 +0200
++++ gaim-1.3.0/src/Makefile.am 2005-06-05 02:21:59.000000000 +0200
+@@ -61,6 +61,8 @@
+
+ SUBDIRS = protocols
+
++lib_LTLIBRARIES = libgaim.la
++
+ gaim_coresources = \
+ account.c \
+ accountopt.c \
+@@ -112,6 +114,7 @@
+ debug.h \
+ eventloop.h \
+ ft.h \
++ gaim.h \
+ imgstore.h \
+ log.h \
+ md5.h \
+@@ -139,101 +142,21 @@
+ version.h \
+ xmlnode.h
+
+-bin_PROGRAMS = gaim gaim-remote
+-
+-gaim_SOURCES = \
+- $(gaim_coresources) \
+- away.c \
+- dnd-hints.c \
+- gaim-disclosure.c \
+- gtkaccount.c \
+- gtkcellrendererprogress.c \
+- gtkblist.c \
+- gtkconn.c \
+- gtkconv.c \
+- gtkdebug.c \
+- gtkdialogs.c \
+- gtkeventloop.c \
+- gtkft.c \
+- gtkimhtml.c \
+- gtkimhtmltoolbar.c \
+- gtklog.c \
+- gtknotify.c \
+- gtkplugin.c \
+- gtkpluginpref.c \
+- gtkprefs.c \
+- gtkprivacy.c \
+- gtkpounce.c \
+- gtkrequest.c \
+- gtkroomlist.c \
+- gtksound.c \
+- gtksourceiter.c \
+- gtkutils.c \
+- idle.c \
+- main.c \
+- session.c \
+- stock.c \
+- themes.c
+-
+-gaim_headers = \
+- $(gaim_coreheaders) \
+- dnd-hints.h \
+- gaim.h \
+- gaim-disclosure.h \
+- gtkaccount.h \
+- gtkcellrendererprogress.h \
+- gtkblist.h \
+- gtkconn.h \
+- gtkconv.h \
+- gtkdebug.h \
+- gtkdialogs.h \
+- gtkeventloop.h \
+- gtkft.h \
+- gtkgaim.h \
+- gtkimhtml.h \
+- gtkimhtmltoolbar.h \
+- gtklog.h \
+- gtknotify.h \
+- gtkplugin.h \
+- gtkpluginpref.h \
+- gtkprefs.h \
+- gtkprivacy.h \
+- gtkpounce.h \
+- gtkrequest.h \
+- gtkroomlist.h \
+- gtksound.h \
+- gtksourceiter.h \
+- gtkutils.h \
+- internal.h \
+- stock.h
+
+ gaimincludedir=$(includedir)/gaim
+ gaiminclude_HEADERS = \
+- $(gaim_coreheaders) \
+- $(gaim_headers)
++ $(gaim_coreheaders)
+
+-gaim_DEPENDENCIES = @LIBOBJS@ $(STATIC_LINK_LIBS)
+-gaim_LDFLAGS = -export-dynamic
+-gaim_LDADD = \
+- @LIBOBJS@ \
+- $(GTK_LIBS) \
+- $(SOUND_LIBS) \
+- $(STATIC_LINK_LIBS) \
+- $(XSS_LIBS) \
+- $(SM_LIBS) \
+- $(INTLLIBS) \
+- $(GTKSPELL_LIBS) \
+- $(STARTUP_NOTIFICATION_LIBS)
+-
+-gaim_remote_SOURCES = \
+- gaim-remote.c \
+- prefix.c \
+- prefix.h
++libgaim_la_SOURCES = \
++ $(gaim_coresources)
+
+-gaim_remote_DEPENDENCIES = @LIBOBJS@
+-gaim_remote_LDADD = \
+- @LIBOBJS@ $(GLIB_LIBS) $(INTLLIBS) \
+- $(top_builddir)/plugins/gaim-remote/libgaim-remote.la
++libgaim_la_DEPENDENCIES = @LIBOBJS@ $(STATIC_LINK_LIBS)
++libgaim_la_LDFLAGS = -version-info 0:0:0
++libgaim_la_LIBDADD = \
++ @LIBOBJS@
++ $(GLIB_LIBS) \
++ $(STATIC_LINK_LIBS) \
++ $(INTLLIBS)
+
+ AM_CPPFLAGS = \
+ -DBR_PTHREADS=0 \
+@@ -242,9 +165,5 @@
+ -DLOCALEDIR=\"$(datadir)/locale\" \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -I$(top_srcdir)/plugins \
+- $(AUDIOFILE_CFLAGS) \
+- $(AO_CFLAGS) \
+ $(DEBUG_CFLAGS) \
+- $(GTK_CFLAGS) \
+- $(GTKSPELL_CFLAGS) \
+- $(STARTUP_NOTIFICATION_CFLAGS)
++ $(GLIB_CFLAGS)
+Index: gaim-1.3.0/plugins/extplacement.c
+===================================================================
+--- gaim-1.3.0.orig/plugins/extplacement.c 2004-09-03 23:34:03.000000000 +0200
++++ gaim-1.3.0/plugins/extplacement.c 2005-06-05 02:21:59.000000000 +0200
+@@ -21,10 +21,12 @@
+ */
+
+ #include "internal.h"
++#if 0
+ #include "gtkgaim.h"
++#include "gtkplugin.h"
++#endif
+ #include "conversation.h"
+ #include "version.h"
+-#include "gtkplugin.h"
+
+ static void
+ conv_placement_by_number(GaimConversation *conv)
+Index: gaim-1.3.0/src/away.h
+===================================================================
+--- gaim-1.3.0.orig/src/away.h 2004-08-20 07:11:29.000000000 +0200
++++ gaim-1.3.0/src/away.h 2005-06-05 02:21:59.000000000 +0200
+@@ -25,7 +25,7 @@
+ #ifndef _GAIM_AWAY_H_
+ #define _GAIM_AWAY_H_
+
+-#include "gtkgaim.h"
++#include "gaim.h"
+
+ /* XXX CUI: away messages aren't really anything more than char* but we need two char*'s
+ * for the UI so that people can name their away messages when they save them. So these
+@@ -36,6 +36,23 @@
+ char message[2048];
+ };
+
++
++
++extern GSList *away_messages;
++extern struct away_message *awaymessage;
++extern void *awaymenu;
++extern void *awayqueue;
++extern void *awayqueuestore;
++
++extern void rem_away_mess(void *, struct away_message *);
++extern void do_away_message(void *, struct away_message *);
++extern void do_away_menu();
++extern void toggle_away_queue();
++extern void purge_away_queue(GSList **);
++extern void do_im_back(void *, void*);
++void create_away_mess(void *, void *);
++
++#if 0
+ extern GSList *away_messages;
+ extern struct away_message *awaymessage;
+ extern GtkWidget *awaymenu;
+@@ -49,5 +66,6 @@
+ extern void purge_away_queue(GSList **);
+ extern void do_im_back(GtkWidget *, GtkWidget *);
+ void create_away_mess(GtkWidget *, void *);
++#endif
+
+ #endif /* _GAIM_AWAY_H_ */
+Index: gaim-1.3.0/src/server.c
+===================================================================
+--- gaim-1.3.0.orig/src/server.c 2005-04-14 21:17:50.000000000 +0200
++++ gaim-1.3.0/src/server.c 2005-06-05 02:21:59.000000000 +0200
+@@ -32,13 +32,17 @@
+ #include "server.h"
+ #include "sound.h"
+ #include "util.h"
++#include "gaim.h"
++#include "away.h"
+
++#if 0
+ /* XXX UI Stuff */
+ #include "away.h"
+ #include "gtkdialogs.h"
+ #include "gaim.h"
+ #include "gtkimhtml.h"
+ #include "gtkutils.h"
++#endif
+
+ #define SECS_BEFORE_RESENDING_AUTORESPONSE 600
+ #define SEX_BEFORE_RESENDING_AUTORESPONSE "Only after you're married"
+@@ -805,6 +809,8 @@
+ gchar *temp;
+ gint i = 0;
+ gboolean valid;
++
++#if 0
+ GtkTreeIter iter;
+
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(awayqueuestore), &iter);
+@@ -817,6 +823,7 @@
+ i++;
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(awayqueuestore), &iter);
+ }
++#endif
+
+ return -1;
+ }
+@@ -828,7 +835,7 @@
+
+ templist = message_queue;
+
+- while (templist) {
++ while (templist) {
+ struct queued_message *qm = (struct queued_message *)templist->data;
+ if ((qm->flags & GAIM_MESSAGE_RECV) && !strcmp(name, qm->name))
+ i++;
+@@ -964,6 +971,7 @@
+ qm->flags = msgflags;
+
+ if (queue_to_away) {
++#if 0
+ GtkTreeIter iter;
+ gchar path[10];
+
+@@ -992,6 +1000,7 @@
+ 2, _("(1 message)"),
+ -1);
+ }
++#endif
+ } else /* queue_to_docklet */
+ unread_message_queue = g_slist_append(unread_message_queue, qm);
+ } else {
+@@ -1049,7 +1058,12 @@
+ lar->sent = t;
+
+ /* apply default fonts and colors */
++ #if 0
+ tmpmsg = stylize(gc->away, MSG_LEN);
++ #else
++ tmpmsg = (gchar*)g_malloc(MSG_LEN);
++ g_snprintf(tmpmsg, MSG_LEN, "%s", gc->away);
++ #endif
+
+ /* Move this to oscar.c! */
+ buffy = gaim_str_sub_away_formatters(tmpmsg, alias);
diff --git a/recipes-qtopia/qpe-gaim/files/qpe-gaim.patch b/recipes-qtopia/qpe-gaim/files/qpe-gaim.patch
new file mode 100644
index 0000000..8ab6a6a
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/files/qpe-gaim.patch
@@ -0,0 +1,721 @@
+Nur in qpe-gaim: gaim.
+diff -ur qpe-gaim.old/gaim.pro qpe-gaim/gaim.pro
+--- qpe-gaim.old/gaim.pro 2004-10-30 20:08:11.000000000 +0200
++++ qpe-gaim/gaim.pro 2005-03-03 23:04:20.000000000 +0100
+@@ -159,19 +159,22 @@
+ mktarball.sh
+
+ INCLUDEPATH += \
+- $(QPEDIR)/include \
++ $(OPIEDIR)/include \
++ /home/ich/programming/oe/gaim/libgaim_install/include \
+ /usr/include/glib-2.0 \
+ /usr/lib/glib-2.0/include
+
+-DEPENDPATH += $(QPEDIR)/include
++DEPENDPATH += $(OPIEDIR)/include
+ LIBS += \
+ -lqpe \
+- -lopie \
+- -ljpeg \
+- -lpng12 \
++ -lopiecore2 \
++ -lopieui2 \
+ -lgaim \
+ -lglib-2.0 \
+ -lgmodule-2.0
+
++LIBRARYPATH += $(OPIEDIR)/lib
++LIBPATH += $(OPIEDIR)/lib
++
+ OBJECTS_DIR = obj
+ MOC_DIR = moc
+diff -ur qpe-gaim.old/src/main.cpp qpe-gaim/src/main.cpp
+--- qpe-gaim.old/src/main.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/main.cpp 2005-02-28 23:57:59.000000000 +0100
+@@ -20,7 +20,37 @@
+ */
+ #include "QGaimMainWindow.h"
+
+-#include <qpe/qpeapplication.h>
+-#include <opie/oapplicationfactory.h>
++
++extern "C" {
++/*
++ * Variables needed to be defined
++ */
++GSList *away_messages = NULL;
++GSList *unread_message_queue = NULL;
++GSList *message_queue = NULL;
++int docklet_count = 0;
++struct away_message *awaymessage = NULL;
++int opt_debug = 0;
++
++void *awayqueue = NULL;
++void *awayquestore = NULL;
++
++gint check_idle(gpointer data)
++{
++ return FALSE;
++}
++
++}
++
++char *stylize(const gchar *text, int length)
++{
++ gchar *buf = (gchar*)g_malloc(length);
++ g_snprintf(buf, length, "%s", text );
++
++ return buf;
++}
++
++#include <opie2/oapplicationfactory.h>
++using namespace Opie::Core;
+
+ OPIE_EXPORT_APP(OApplicationFactory<QGaimMainWindow>)
+Nur in qpe-gaim/src: main.cpp~.
+diff -ur qpe-gaim.old/src/QGaimAccountBox.cpp qpe-gaim/src/QGaimAccountBox.cpp
+--- qpe-gaim.old/src/QGaimAccountBox.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimAccountBox.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #include "QGaimAccountBox.h"
+ #include "QGaimProtocolUtils.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ #include <qpixmap.h>
+
+diff -ur qpe-gaim.old/src/QGaimAccountBox.h qpe-gaim/src/QGaimAccountBox.h
+--- qpe-gaim.old/src/QGaimAccountBox.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimAccountBox.h 2005-02-28 23:21:30.000000000 +0100
+@@ -23,7 +23,7 @@
+
+ #include <qcombobox.h>
+
+-#include <libgaim/account.h>
++#include <gaim/account.h>
+
+ class QGaimAccountBox : public QComboBox
+ {
+diff -ur qpe-gaim.old/src/QGaimAccountEditor.cpp qpe-gaim/src/QGaimAccountEditor.cpp
+--- qpe-gaim.old/src/QGaimAccountEditor.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimAccountEditor.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -25,8 +25,8 @@
+ #include "QGaimTabWidget.h"
+ #include "base.h"
+
+-#include <libgaim/accountopt.h>
+-#include <libgaim/debug.h>
++#include <gaim/accountopt.h>
++#include <gaim/debug.h>
+
+ #include <qcheckbox.h>
+ #include <qcombobox.h>
+diff -ur qpe-gaim.old/src/QGaimAccountEditor.h qpe-gaim/src/QGaimAccountEditor.h
+--- qpe-gaim.old/src/QGaimAccountEditor.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimAccountEditor.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,9 +21,9 @@
+ #ifndef _QGAIM_ACCOUNT_EDITOR_H_
+ #define _QGAIM_ACCOUNT_EDITOR_H_
+
+-#include <libgaim/account.h>
+-#include <libgaim/plugin.h>
+-#include <libgaim/prpl.h>
++#include <gaim/account.h>
++#include <gaim/plugin.h>
++#include <gaim/prpl.h>
+
+ #include <qdialog.h>
+ #include <qlist.h>
+diff -ur qpe-gaim.old/src/QGaimAccountsWindow.cpp qpe-gaim/src/QGaimAccountsWindow.cpp
+--- qpe-gaim.old/src/QGaimAccountsWindow.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimAccountsWindow.cpp 2005-03-03 23:03:50.000000000 +0100
+@@ -27,8 +27,8 @@
+ #include "QGaimMainWindow.h"
+ #include "base.h"
+
+-#include <libgaim/prpl.h>
+-#include <libgaim/signals.h>
++#include <gaim/prpl.h>
++#include <gaim/signals.h>
+
+ #include <qpe/resource.h>
+ #include <qaction.h>
+@@ -417,6 +417,10 @@
+ void
+ QGaimAccountsWindow::connectToAccount()
+ {
++ if ( !accountsView->selectedItem() )
++ return;
++
++
+ QGaimAccountListItem *item;
+
+ connectButton->setEnabled(false);
+@@ -431,6 +435,9 @@
+ void
+ QGaimAccountsWindow::disconnectFromAccount()
+ {
++ if ( !accountsView->selectedItem() )
++ return;
++
+ QGaimAccountListItem *item;
+
+ item = (QGaimAccountListItem *)accountsView->selectedItem();
+Nur in qpe-gaim/src: QGaimAccountsWindow.cpp~.
+diff -ur qpe-gaim.old/src/QGaimAccountsWindow.h qpe-gaim/src/QGaimAccountsWindow.h
+--- qpe-gaim.old/src/QGaimAccountsWindow.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimAccountsWindow.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_ACCOUNTS_WINDOW_H_
+ #define _QGAIM_ACCOUNTS_WINDOW_H_
+
+-#include <libgaim/prpl.h>
++#include <gaim/prpl.h>
+
+ #include <qvariant.h>
+ #include <qwidget.h>
+diff -ur qpe-gaim.old/src/QGaimBListWindow.cpp qpe-gaim/src/QGaimBListWindow.cpp
+--- qpe-gaim.old/src/QGaimBListWindow.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimBListWindow.cpp 2005-02-28 23:22:29.000000000 +0100
+@@ -26,11 +26,10 @@
+ #include "QGaimMainWindow.h"
+ #include "base.h"
+
+-#include <libgaim/debug.h>
+-#include <libgaim/multi.h>
+-#include <libgaim/prefs.h>
+-#include <libgaim/request.h>
+-#include <libgaim/signals.h>
++#include <gaim/debug.h>
++#include <gaim/prefs.h>
++#include <gaim/request.h>
++#include <gaim/signals.h>
+
+ #include <qpe/resource.h>
+
+diff -ur qpe-gaim.old/src/QGaimBListWindow.h qpe-gaim/src/QGaimBListWindow.h
+--- qpe-gaim.old/src/QGaimBListWindow.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimBListWindow.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_BLIST_WIN_H_
+ #define _QGAIM_BLIST_WIN_H_
+
+-#include <libgaim/blist.h>
++#include <gaim/blist.h>
+
+ #include <qiconset.h>
+ #include <qmainwindow.h>
+diff -ur qpe-gaim.old/src/QGaimBuddyList.cpp qpe-gaim/src/QGaimBuddyList.cpp
+--- qpe-gaim.old/src/QGaimBuddyList.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimBuddyList.cpp 2005-02-28 23:24:27.000000000 +0100
+@@ -23,11 +23,10 @@
+ #include "QGaimProtocolUtils.h"
+ #include "QGaimImageUtils.h"
+
+-#include <libgaim/debug.h>
+-#include <libgaim/multi.h>
+-#include <libgaim/prefs.h>
+-#include <libgaim/request.h>
+-#include <libgaim/server.h>
++#include <gaim/debug.h>
++#include <gaim/prefs.h>
++#include <gaim/request.h>
++#include <gaim/server.h>
+
+ #include <qpe/qpeapplication.h>
+ #include <qpe/resource.h>
+@@ -132,7 +131,7 @@
+ setText(1, text);
+ }
+
+- setText(0, gaim_get_buddy_alias(buddy));
++ setText(0, gaim_buddy_get_alias(buddy));
+ }
+ else if (GAIM_BLIST_NODE_IS_BUDDY(node))
+ {
+@@ -166,7 +165,7 @@
+ }
+
+ setPixmap(0, QGaimBuddyList::getBuddyStatusIcon(node, pixmapSize));
+- setText(0, gaim_get_buddy_alias(buddy));
++ setText(0, gaim_buddy_get_alias(buddy));
+ setText(1, text);
+ }
+ else if (GAIM_BLIST_NODE_IS_CHAT(node))
+@@ -328,7 +327,7 @@
+ if (contact != NULL && !isExpanded() && contact->alias != NULL)
+ topText = contact->alias;
+ else
+- topText = gaim_get_buddy_alias(buddy);
++ topText = gaim_buddy_get_alias(buddy);
+
+ bottomText = statusText + idleTime + warning;
+
+diff -ur qpe-gaim.old/src/QGaimBuddyList.h qpe-gaim/src/QGaimBuddyList.h
+--- qpe-gaim.old/src/QGaimBuddyList.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimBuddyList.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,8 +21,8 @@
+ #ifndef _QGAIM_BUDDY_LIST_H_
+ #define _QGAIM_BUDDY_LIST_H_
+
+-#include <libgaim/account.h>
+-#include <libgaim/blist.h>
++#include <gaim/account.h>
++#include <gaim/blist.h>
+
+ #include <qlistview.h>
+
+diff -ur qpe-gaim.old/src/QGaimConnectionMeter.cpp qpe-gaim/src/QGaimConnectionMeter.cpp
+--- qpe-gaim.old/src/QGaimConnectionMeter.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimConnectionMeter.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #include "QGaimConnectionMeter.h"
+ #include "QGaimProtocolUtils.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ #include <qpushbutton.h>
+ #include <qlabel.h>
+diff -ur qpe-gaim.old/src/QGaimConnectionMeter.h qpe-gaim/src/QGaimConnectionMeter.h
+--- qpe-gaim.old/src/QGaimConnectionMeter.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimConnectionMeter.h 2005-02-28 23:21:30.000000000 +0100
+@@ -28,7 +28,7 @@
+ #include <qvariant.h>
+ #include <qvbox.h>
+
+-#include <libgaim/connection.h>
++#include <gaim/connection.h>
+
+ class QProgressBar;
+ class QVBox;
+diff -ur qpe-gaim.old/src/QGaimConvButton.cpp qpe-gaim/src/QGaimConvButton.cpp
+--- qpe-gaim.old/src/QGaimConvButton.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimConvButton.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -24,8 +24,8 @@
+ #include "QGaimMainWindow.h"
+ #include "base.h"
+
+-#include <libgaim/debug.h>
+-#include <libgaim/signals.h>
++#include <gaim/debug.h>
++#include <gaim/signals.h>
+
+ #include <qpe/resource.h>
+ #include <qpopupmenu.h>
+diff -ur qpe-gaim.old/src/QGaimConvButton.h qpe-gaim/src/QGaimConvButton.h
+--- qpe-gaim.old/src/QGaimConvButton.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimConvButton.h 2005-02-28 23:21:30.000000000 +0100
+@@ -25,7 +25,7 @@
+ #include <qwidget.h>
+ #include <qtoolbutton.h>
+
+-#include <libgaim/conversation.h>
++#include <gaim/conversation.h>
+
+ class QPopupMenu;
+
+diff -ur qpe-gaim.old/src/QGaimConvWindow.cpp qpe-gaim/src/QGaimConvWindow.cpp
+--- qpe-gaim.old/src/QGaimConvWindow.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimConvWindow.cpp 2005-02-28 23:34:33.000000000 +0100
+@@ -30,8 +30,8 @@
+ #include "QGaimMainWindow.h"
+ #include "base.h"
+
+-#include <libgaim/debug.h>
+-#include <libgaim/prefs.h>
++#include <gaim/debug.h>
++#include <gaim/prefs.h>
+
+ #include <qpe/resource.h>
+ #include <qpe/qpeapplication.h>
+@@ -1260,7 +1260,7 @@
+ }
+
+ static void
+-qGaimConvChatAddUser(GaimConversation *conv, const char *user)
++qGaimConvChatAddUser(GaimConversation *conv, const char *user, gboolean)
+ {
+ QGaimConvChat *qchat = (QGaimConvChat *)conv->ui_data;
+
+@@ -1321,6 +1321,7 @@
+ qGaimConvChatRemoveUsers,
+ NULL,
+ NULL,
++ NULL,
+ qGaimConvUpdated
+ };
+
+diff -ur qpe-gaim.old/src/QGaimConvWindow.h qpe-gaim/src/QGaimConvWindow.h
+--- qpe-gaim.old/src/QGaimConvWindow.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimConvWindow.h 2005-02-28 23:21:30.000000000 +0100
+@@ -25,7 +25,7 @@
+ #include <qwidget.h>
+ #include <qmainwindow.h>
+
+-#include <libgaim/conversation.h>
++#include <gaim/conversation.h>
+
+ class QAction;
+ class QGaimMultiLineEdit;
+diff -ur qpe-gaim.old/src/QGaimDebugWindow.cpp qpe-gaim/src/QGaimDebugWindow.cpp
+--- qpe-gaim.old/src/QGaimDebugWindow.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimDebugWindow.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -20,7 +20,7 @@
+ */
+ #include "QGaimDebugWindow.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ #include <glib.h>
+ #include <stdio.h>
+diff -ur qpe-gaim.old/src/QGaimDebugWindow.h qpe-gaim/src/QGaimDebugWindow.h
+--- qpe-gaim.old/src/QGaimDebugWindow.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimDebugWindow.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_DEBUG_WIN_H_
+ #define _QGAIM_DEBUG_WIN_H_
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ GaimDebugUiOps *qGaimGetDebugUiOps(void);
+
+diff -ur qpe-gaim.old/src/QGaimDialogs.cpp qpe-gaim/src/QGaimDialogs.cpp
+--- qpe-gaim.old/src/QGaimDialogs.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimDialogs.cpp 2005-02-28 23:38:32.000000000 +0100
+@@ -21,11 +21,10 @@
+ #include "QGaimDialogs.h"
+ #include "QGaimAccountBox.h"
+
+-#include <libgaim/blist.h>
+-#include <libgaim/conversation.h>
+-#include <libgaim/multi.h>
+-#include <libgaim/notify.h>
+-#include <libgaim/prpl.h>
++#include <gaim/blist.h>
++#include <gaim/conversation.h>
++#include <gaim/notify.h>
++#include <gaim/prpl.h>
+
+ #include <qcombobox.h>
+ #include <qframe.h>
+@@ -336,7 +335,7 @@
+ }
+ else
+ {
+- QLineEdit *edit = new QLineEdit(pce->def, widgetsFrame);
++ QLineEdit *edit = new QLineEdit(pce->identifier, widgetsFrame);
+
+ grid->addWidget(edit, row, 1);
+
+@@ -614,7 +613,7 @@
+ }
+ else
+ {
+- QLineEdit *edit = new QLineEdit(pce->def, widgetsFrame);
++ QLineEdit *edit = new QLineEdit(pce->identifier, widgetsFrame);
+
+ grid->addWidget(edit, row, 1);
+
+diff -ur qpe-gaim.old/src/QGaimDialogs.h qpe-gaim/src/QGaimDialogs.h
+--- qpe-gaim.old/src/QGaimDialogs.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimDialogs.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_DIALOGS_H_
+ #define _QGAIM_DIALOGS_H_
+
+-#include <libgaim/account.h>
++#include <gaim/account.h>
+
+ #include <qdialog.h>
+ #include <qlist.h>
+diff -ur qpe-gaim.old/src/QGaimEventLoop.cpp qpe-gaim/src/QGaimEventLoop.cpp
+--- qpe-gaim.old/src/QGaimEventLoop.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimEventLoop.cpp 2005-03-03 22:59:49.000000000 +0100
+@@ -38,8 +38,8 @@
+ static guint nextSourceId = 0;
+ static QIntDict<QGaimSourceInfo> sources;
+
+-QGaimTimer::QGaimTimer(guint sourceId, GSourceFunc func, gpointer data)
+- : QTimer(), sourceId(sourceId), func(func), userData(data)
++QGaimTimer::QGaimTimer(guint _sourceId, GSourceFunc func, gpointer data)
++ : QTimer(), sourceId(_sourceId), func(func), userData(data)
+ {
+ connect(this, SIGNAL(timeout()),
+ this, SLOT(update()));
+Nur in qpe-gaim/src: QGaimEventLoop.cpp~.
+diff -ur qpe-gaim.old/src/QGaimEventLoop.h qpe-gaim/src/QGaimEventLoop.h
+--- qpe-gaim.old/src/QGaimEventLoop.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimEventLoop.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_EVENT_LOOP_H_
+ #define _QGAIM_EVENT_LOOP_H_
+
+-#include <libgaim/eventloop.h>
++#include <gaim/eventloop.h>
+
+ #include <qtimer.h>
+ #include <qsocketnotifier.h>
+diff -ur qpe-gaim.old/src/QGaimImageUtils.cpp qpe-gaim/src/QGaimImageUtils.cpp
+--- qpe-gaim.old/src/QGaimImageUtils.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimImageUtils.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -20,7 +20,7 @@
+ */
+ #include "QGaimImageUtils.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ #include <glib.h>
+
+diff -ur qpe-gaim.old/src/QGaimMainWindow.cpp qpe-gaim/src/QGaimMainWindow.cpp
+--- qpe-gaim.old/src/QGaimMainWindow.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimMainWindow.cpp 2005-03-01 00:31:54.000000000 +0100
+@@ -25,13 +25,13 @@
+ #include <qvbox.h>
+ #include <qpe/qpeapplication.h>
+
+-#include <libgaim/prefs.h>
+-#include <libgaim/conversation.h>
+-#include <libgaim/core.h>
+-#include <libgaim/proxy.h>
+-#include <libgaim/sound.h>
+-#include <libgaim/pounce.h>
+-#include <libgaim/plugin.h>
++#include <gaim/prefs.h>
++#include <gaim/conversation.h>
++#include <gaim/core.h>
++#include <gaim/proxy.h>
++#include <gaim/sound.h>
++#include <gaim/pounce.h>
++#include <gaim/plugin.h>
+
+ #include "QGaimConnectionMeter.h"
+ #include "QGaimConvWindow.h"
+@@ -145,7 +145,7 @@
+ void
+ QGaimMainWindow::initCore()
+ {
+- char *plugin_search_paths[1];
++ char *plugin_search_paths[2];
+
+ gaim_core_set_ui_ops(qGaimGetCoreUiOps());
+ gaim_eventloop_set_ui_ops(qGaimGetEventLoopUiOps());
+@@ -155,11 +155,8 @@
+ "Please report this!\n"));
+ }
+
+-#ifdef LOCAL_COMPILE
+ plugin_search_paths[0] = "/opt/Qtopia/lib/gaim";
+-#else
+- plugin_search_paths[0] = "/usr/lib/gaim";
+-#endif
++ plugin_search_paths[1] = "/usr/lib/gaim";
+
+ gaim_plugins_set_search_paths(sizeof(plugin_search_paths) /
+ sizeof(*plugin_search_paths),
+diff -ur qpe-gaim.old/src/QGaimMainWindow.h qpe-gaim/src/QGaimMainWindow.h
+--- qpe-gaim.old/src/QGaimMainWindow.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimMainWindow.h 2005-02-28 23:21:30.000000000 +0100
+@@ -24,7 +24,7 @@
+ #include <qmainwindow.h>
+ #include <qwidgetstack.h>
+
+-#include <libgaim/conversation.h>
++#include <gaim/conversation.h>
+
+ #include "QGaimBListWindow.h"
+
+diff -ur qpe-gaim.old/src/QGaimNotify.cpp qpe-gaim/src/QGaimNotify.cpp
+--- qpe-gaim.old/src/QGaimNotify.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimNotify.cpp 2005-02-28 23:42:01.000000000 +0100
+@@ -20,7 +20,7 @@
+ */
+ #include "QGaimNotify.h"
+
+-#include <libgaim/prefs.h>
++#include <gaim/prefs.h>
+
+ #include <qdialog.h>
+ #include <qlabel.h>
+@@ -28,9 +28,9 @@
+ #include <qmessagebox.h>
+ #include <qtextview.h>
+
+-#include <opie/odevice.h>
++#include <opie2/odevice.h>
+
+-using namespace Opie;
++using namespace Opie::Core;
+
+ static int notifyActiveCount = 0;
+
+@@ -215,7 +215,7 @@
+ if (!gaim_prefs_get_bool("/gaim/qpe/notify/use_buzzer"))
+ return;
+
+- ODevice::inst()->alarmSound();
++ ODevice::inst()->playAlarmSound();
+ }
+
+ void
+Nur in qpe-gaim/src: QGaimNotify.cpp.rej.
+diff -ur qpe-gaim.old/src/QGaimNotify.h qpe-gaim/src/QGaimNotify.h
+--- qpe-gaim.old/src/QGaimNotify.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimNotify.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_NOTIFY_H_
+ #define _QGAIM_NOTIFY_H_
+
+-#include <libgaim/notify.h>
++#include <gaim/notify.h>
+
+ GaimNotifyUiOps *qGaimGetNotifyUiOps();
+
+diff -ur qpe-gaim.old/src/QGaimPrefsDialog.cpp qpe-gaim/src/QGaimPrefsDialog.cpp
+--- qpe-gaim.old/src/QGaimPrefsDialog.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimPrefsDialog.cpp 2005-02-28 23:42:01.000000000 +0100
+@@ -21,8 +21,8 @@
+ #include "QGaimPrefsDialog.h"
+ #include "QGaimMainWindow.h"
+
+-#include <libgaim/debug.h>
+-#include <libgaim/prefs.h>
++#include <gaim/debug.h>
++#include <gaim/prefs.h>
+
+ #include <qcheckbox.h>
+ #include <qlabel.h>
+@@ -30,8 +30,8 @@
+ #include <qvbox.h>
+ #include <qvgroupbox.h>
+
+-#include <opie/otabwidget.h>
+-#include <opie/owait.h>
++#include <opie2/otabwidget.h>
++#include <opie2/owait.h>
+
+ #include <qpe/resource.h>
+
+@@ -306,7 +306,7 @@
+ layout = new QVBoxLayout(this);
+ layout->setAutoAdd(true);
+
+- tabs = new OTabWidget(this, "pref tabs");
++ tabs = new Opie::Ui::OTabWidget(this, "pref tabs");
+
+ blistPage = new QGaimBlistPrefPage(this, "blist page");
+ notifyPage = new QGaimNotifyPrefPage(this, "notify page");
+@@ -332,7 +332,7 @@
+ void
+ QGaimPrefsDialog::accept()
+ {
+- OWait wait(this);
++ Opie::Ui::OWait wait(this);
+
+ wait.show();
+
+diff -ur qpe-gaim.old/src/QGaimPrefsDialog.h qpe-gaim/src/QGaimPrefsDialog.h
+--- qpe-gaim.old/src/QGaimPrefsDialog.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimPrefsDialog.h 2005-02-28 23:42:01.000000000 +0100
+@@ -22,8 +22,8 @@
+ #define _QGAIM_PREFS_DIALOG_H_
+
+ #include <qdialog.h>
++#include <opie2/otabwidget.h>
+
+-class OTabWidget;
+ class QCheckBox;
+
+ class QGaimPrefPage : public QWidget
+@@ -150,7 +150,7 @@
+ void buildInterface();
+
+ private:
+- OTabWidget *tabs;
++ Opie::Ui::OTabWidget *tabs;
+
+ QGaimPrefPage *blistPage;
+ QGaimPrefPage *convPage;
+diff -ur qpe-gaim.old/src/QGaimProtocolBox.cpp qpe-gaim/src/QGaimProtocolBox.cpp
+--- qpe-gaim.old/src/QGaimProtocolBox.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimProtocolBox.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #include "QGaimProtocolBox.h"
+ #include "QGaimProtocolUtils.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ #include <qpixmap.h>
+
+diff -ur qpe-gaim.old/src/QGaimProtocolBox.h qpe-gaim/src/QGaimProtocolBox.h
+--- qpe-gaim.old/src/QGaimProtocolBox.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimProtocolBox.h 2005-02-28 23:21:30.000000000 +0100
+@@ -24,7 +24,7 @@
+ #include <qvariant.h>
+ #include <qcombobox.h>
+
+-#include <libgaim/prpl.h>
++#include <gaim/prpl.h>
+
+ class QGaimProtocolBox : public QComboBox
+ {
+diff -ur qpe-gaim.old/src/QGaimProtocolUtils.h qpe-gaim/src/QGaimProtocolUtils.h
+--- qpe-gaim.old/src/QGaimProtocolUtils.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimProtocolUtils.h 2005-02-28 23:21:30.000000000 +0100
+@@ -23,9 +23,9 @@
+
+ #include <qvariant.h>
+
+-#include <libgaim/account.h>
+-#include <libgaim/plugin.h>
+-#include <libgaim/prpl.h>
++#include <gaim/account.h>
++#include <gaim/plugin.h>
++#include <gaim/prpl.h>
+
+ #include "QGaimImageUtils.h"
+
+diff -ur qpe-gaim.old/src/QGaimRequest.cpp qpe-gaim/src/QGaimRequest.cpp
+--- qpe-gaim.old/src/QGaimRequest.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimRequest.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -22,7 +22,7 @@
+ #include "QGaimInputDialog.h"
+ #include "QGaimMainWindow.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ #include <qmessagebox.h>
+
+diff -ur qpe-gaim.old/src/QGaimRequest.h qpe-gaim/src/QGaimRequest.h
+--- qpe-gaim.old/src/QGaimRequest.h 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimRequest.h 2005-02-28 23:21:30.000000000 +0100
+@@ -21,7 +21,7 @@
+ #ifndef _QGAIM_REQUEST_H_
+ #define _QGAIM_REQUEST_H_
+
+-#include <libgaim/request.h>
++#include <gaim/request.h>
+
+ GaimRequestUiOps *qGaimGetRequestUiOps();
+
+diff -ur qpe-gaim.old/src/QGaimTabBar.cpp qpe-gaim/src/QGaimTabBar.cpp
+--- qpe-gaim.old/src/QGaimTabBar.cpp 2004-10-30 20:08:06.000000000 +0200
++++ qpe-gaim/src/QGaimTabBar.cpp 2005-02-28 23:21:30.000000000 +0100
+@@ -20,7 +20,7 @@
+ */
+ #include "QGaimTabBar.h"
+
+-#include <libgaim/debug.h>
++#include <gaim/debug.h>
+
+ /**************************************************************************
+ * QGaimTabBar
+Nur in qpe-gaim/src: semantic.cache.
+Nur in qpe-gaim/src: semantic.cache~.
diff --git a/recipes-qtopia/qpe-gaim/files/vit.patch b/recipes-qtopia/qpe-gaim/files/vit.patch
new file mode 100644
index 0000000..fa48050
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/files/vit.patch
@@ -0,0 +1,327 @@
+Index: qpe-gaim/src/QGaimAccountsWindow.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimAccountsWindow.cpp 2005-03-06 21:16:47.098868556 +0100
++++ qpe-gaim/src/QGaimAccountsWindow.cpp 2005-03-06 21:16:47.353832369 +0100
+@@ -40,6 +40,7 @@
+ #include <qtimer.h>
+ #include <qtoolbar.h>
+ #include <qtoolbutton.h>
++#include <qmessagebox.h>
+
+ /**************************************************************************
+ * QGaimAccountListItem
+@@ -525,7 +526,7 @@
+ if (meter == NULL)
+ meter = meters->addConnection(gc);
+
+- meter->update(QString(text), step, step_count);
++ meter->update(QString::fromUtf8(text), step, step_count);
+ }
+
+ static void
+@@ -553,11 +554,19 @@
+ }
+
+ static void
++qGaimReportDisconnected(GaimConnection *gc, const char *text)
++{
++// if (QMessageBox::critical (NULL, "Disconnected", QString("<p>")+text+QString("</p>"), "Retry", "Cancel") == 0)
++ QMessageBox::critical (NULL, "Disconnected", QString("<p>")+text+QString("</p>"));
++}
++
++static void
+ qGaimConnNotice(GaimConnection *gc, const char *text)
+ {
+ /* XXX */
+ gc = NULL;
+ text = NULL;
++// QMessageBox::information (NULL, "Notice", QString::fromUtf8(text));
+ }
+
+ static GaimConnectionUiOps connUiOps =
+@@ -566,7 +575,7 @@
+ qGaimConnConnected,
+ qGaimConnDisconnected,
+ qGaimConnNotice,
+- NULL
++ qGaimReportDisconnected
+ };
+
+ GaimConnectionUiOps *
+Index: qpe-gaim/src/QGaimBListWindow.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimBListWindow.cpp 2005-03-06 21:16:47.099868414 +0100
++++ qpe-gaim/src/QGaimBListWindow.cpp 2005-03-06 21:16:47.354832227 +0100
+@@ -428,7 +428,7 @@
+ dialog = new QGaimAddBuddyDialog(this, "", true);
+
+ if (group != NULL)
+- dialog->setGroup(group->name);
++ dialog->setGroup(QString::fromUtf8(group->name));
+
+ dialog->showMaximized();
+ }
+@@ -469,7 +469,7 @@
+ dialog = new QGaimAddChatDialog(this, "", true);
+
+ if (group != NULL)
+- dialog->setGroup(group->name);
++ dialog->setGroup(QString::fromUtf8(group->name));
+
+ dialog->showMaximized();
+ }
+Index: qpe-gaim/src/QGaimBuddyList.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimBuddyList.cpp 2005-03-06 21:16:47.101868130 +0100
++++ qpe-gaim/src/QGaimBuddyList.cpp 2005-03-06 21:18:39.073975291 +0100
+@@ -131,7 +131,7 @@
+ setText(1, text);
+ }
+
+- setText(0, gaim_buddy_get_alias(buddy));
++ setText(0, QString::fromUtf8(gaim_buddy_get_alias(buddy)));
+ }
+ else if (GAIM_BLIST_NODE_IS_BUDDY(node))
+ {
+@@ -164,8 +164,8 @@
+ text += idle;
+ }
+
+- setPixmap(0, QGaimBuddyList::getBuddyStatusIcon(node, pixmapSize));
+- setText(0, gaim_buddy_get_alias(buddy));
++ setPixmap(0, QGaimBuddyList::getBuddyStatusIcon(node, pixmapSize));
++ setText(0, QString::fromUtf8(gaim_buddy_get_alias(buddy)));
+ setText(1, text);
+ }
+ else if (GAIM_BLIST_NODE_IS_CHAT(node))
+@@ -325,9 +325,9 @@
+ statusText = QObject::tr("Offline ");
+
+ if (contact != NULL && !isExpanded() && contact->alias != NULL)
+- topText = contact->alias;
++ topText = QString::fromUtf8(contact->alias);
+ else
+- topText = gaim_buddy_get_alias(buddy);
++ topText = QString::fromUtf8(gaim_buddy_get_alias(buddy));
+
+ bottomText = statusText + idleTime + warning;
+
+@@ -401,7 +401,7 @@
+ QString groupName, detail;
+ QFont f = p->font();
+
+- groupName = group->name;
++ groupName = QString::fromUtf8(group->name);
+
+ if (gaim_prefs_get_bool("/gaim/qpe/blist/show_group_count"))
+ {
+Index: qpe-gaim/src/QGaimConnectionMeter.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimConnectionMeter.cpp 2005-03-06 21:16:47.101868130 +0100
++++ qpe-gaim/src/QGaimConnectionMeter.cpp 2005-03-06 21:16:47.355832086 +0100
+@@ -74,14 +74,12 @@
+ }
+
+ void
+-QGaimConnectionMeter::update(QString, int progress, int totalSteps)
++QGaimConnectionMeter::update(QString str, int progress, int totalSteps)
+ {
+ if (progress == 0)
+ progressBar->setTotalSteps(totalSteps);
+
+ progressBar->setProgress(progress);
+-
+-// progressBar->setIndicator(str, progress, totalSteps);
+ }
+
+ GaimConnection *
+Index: qpe-gaim/src/QGaimConvWindow.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimConvWindow.cpp 2005-03-06 21:16:47.103867846 +0100
++++ qpe-gaim/src/QGaimConvWindow.cpp 2005-03-06 21:16:47.357831802 +0100
+@@ -93,7 +93,7 @@
+ if (flags & GAIM_MESSAGE_SYSTEM)
+ {
+ txt = "<b>";
+- txt += message;
++ txt += QString::fromUtf8(message);
+ txt += "</b><br>\n";
+ }
+ else
+@@ -109,13 +109,13 @@
+ if (meify(newMessage, length))
+ {
+ nick = "***";
+- nick += who;
++ nick += QString::fromUtf8(who);
+ color = "#6C2585";
+ }
+ else
+ {
+ nick = "*";
+- nick += who;
++ nick += QString::fromUtf8(who);
+ nick += "*:";
+ color = "#00FF00";
+ }
+@@ -129,7 +129,7 @@
+ else
+ nick = "***";
+
+- nick += who;
++ nick += QString::fromUtf8(who);
+
+ if (flags & GAIM_MESSAGE_NICK)
+ color = "#AF7F00";
+@@ -138,7 +138,7 @@
+ }
+ else
+ {
+- nick = who;
++ nick = QString::fromUtf8(who);
+
+ if (flags & GAIM_MESSAGE_AUTO_RESP)
+ nick += "&lt;AUTO-REPLY&gt; :";
+@@ -158,7 +158,7 @@
+ txt += nick;
+ txt += "</b></font> ";
+
+- txt += stripFontFace(newMessage);
++ txt += stripFontFace(QString::fromUtf8(newMessage));
+ txt += "<br>\n";
+
+ g_free(newMessage);
+@@ -353,7 +353,7 @@
+ else
+ item->setText(0, " ");
+
+- item->setText(1, user);
++ item->setText(1, QString::fromUtf8(user));
+ userList->insertItem(item);
+ }
+
+@@ -373,9 +373,9 @@
+ item != NULL;
+ item = item->nextSibling())
+ {
+- if (item->text(1) == oldName)
++ if (item->text(1) == QString::fromUtf8(oldName))
+ {
+- item->setText(1, newName);
++ item->setText(1, QString::fromUtf8(newName));
+ break;
+ }
+ }
+@@ -390,7 +390,7 @@
+ item != NULL;
+ item = item->nextSibling())
+ {
+- if (item->text(1) == user)
++ if (item->text(1) == QString::fromUtf8(user))
+ {
+ delete item;
+ break;
+@@ -473,7 +473,7 @@
+ if (text[text.length() - 1] == '\n')
+ text.remove(text.length() - 1, 1);
+
+- gaim_conv_chat_send(GAIM_CONV_CHAT(conv), text);
++ gaim_conv_chat_send(GAIM_CONV_CHAT(conv), text.utf8());
+
+ entry->setText("");
+ }
+@@ -650,7 +650,7 @@
+ if (text[text.length() - 1] == '\n')
+ text.remove(text.length() - 1, 1);
+
+- gaim_conv_im_send(GAIM_CONV_IM(conv), text);
++ gaim_conv_im_send(GAIM_CONV_IM(conv), text.utf8());
+
+ entry->setText("");
+
+@@ -995,7 +995,7 @@
+ int result = QMessageBox::information(this,
+ tr("Remove Buddy"),
+ tr("<p>You are about to remove %1 from your buddy list.</p>\n"
+- "<p>Do you want to continue?</p>").arg(name),
++ "<p>Do you want to continue?</p>").arg(QString::fromUtf8(name)),
+ tr("&Remove Buddy"), tr("&Cancel"),
+ QString::null, 1, 1);
+
+Index: qpe-gaim/src/QGaimDialogs.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimDialogs.cpp 2005-03-06 21:16:47.105867562 +0100
++++ qpe-gaim/src/QGaimDialogs.cpp 2005-03-06 21:16:47.358831660 +0100
+@@ -141,7 +141,7 @@
+ {
+ GaimGroup *g = (GaimGroup *)node;
+
+- groupCombo->insertItem(g->name);
++ groupCombo->insertItem(QString::fromUtf8(g->name));
+ }
+ }
+ }
+@@ -151,9 +151,9 @@
+ QGaimAddBuddyDialog::accept()
+ {
+ GaimConversation *conv;
+- QString screenname = screenNameEntry->text();
+- QString alias = aliasEntry->text();
+- QString group_name = groupCombo->currentText();
++ QString screenname = screenNameEntry->text().utf8();
++ QString alias = aliasEntry->text().utf8();
++ QString group_name = groupCombo->currentText().utf8();
+ GaimAccount *account;
+ GaimBuddy *buddy;
+ GaimGroup *group;
+@@ -290,7 +290,7 @@
+ {
+ GaimGroup *g = (GaimGroup *)node;
+
+- groupCombo->insertItem(g->name);
++ groupCombo->insertItem(QString::fromUtf8(g->name));
+ }
+ }
+ }
+@@ -371,8 +371,8 @@
+ GaimGroup *group;
+ GList *chatInfoList, *l;
+ GHashTable *components;
+- QString alias = aliasEntry->text();
+- QString groupName = groupCombo->currentText();
++ QString alias = aliasEntry->text().utf8();
++ QString groupName = groupCombo->currentText().utf8();
+ QWidget *widget;
+ struct proto_chat_entry *pce;
+
+@@ -495,7 +495,7 @@
+ void
+ QGaimNewImDialog::accept()
+ {
+- QString screenname = screenNameEntry->text();
++ QString screenname = screenNameEntry->text().utf8();
+ GaimAccount *account;
+ GaimConversation *conv;
+
+Index: qpe-gaim/src/QGaimRequest.cpp
+===================================================================
+--- qpe-gaim.orig/src/QGaimRequest.cpp 2005-03-06 21:16:47.109866995 +0100
++++ qpe-gaim/src/QGaimRequest.cpp 2005-03-06 21:16:47.358831660 +0100
+@@ -68,7 +68,7 @@
+ dialog->setInfoText(message);
+
+ if (defaultValue != NULL)
+- dialog->setDefaultValue(defaultValue);
++ dialog->setDefaultValue(QString::fromUtf8(defaultValue));
+
+ if (masked)
+ dialog->setMasked();
+@@ -85,7 +85,7 @@
+ if (result == 1)
+ {
+ if (okCb != NULL)
+- ((GaimRequestInputCb)okCb)(userData, dialog->getText());
++ ((GaimRequestInputCb)okCb)(userData, dialog->getText().utf8());
+ }
+ else if (cancelCb != NULL)
+ ((GaimRequestInputCb)cancelCb)(userData, NULL);
diff --git a/recipes-qtopia/qpe-gaim/qpe-gaim_20041030.bb b/recipes-qtopia/qpe-gaim/qpe-gaim_20041030.bb
new file mode 100644
index 0000000..e856b37
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/qpe-gaim_20041030.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "A multi protocol instant messager application, Qt/Embedded based Palmtop Environments Edition"
+SECTION = "opie/applications"
+DEPENDS = "qpe-libgaim glib-2.0"
+RDEPENDS_${PN} = "libgaim-plugins glibc-gconv-iso8859-1"
+LICENSE = "GPL"
+HOMEPAGE = "http://qpe-gaim.sourceforge.net/"
+APPNAME = "gaim"
+APPTYPE = "binary"
+LICENSE = "GPL"
+APPDESKTOP = "${S}"
+PR = "r3"
+
+SRC_URI = "http://www.vanille.de/mirror/qpe-gaim_20041030.tar.bz2 \
+ file://qpe-gaim.patch \
+ file://buzzer-notification.patch \
+ file://vit.patch"
+S = "${WORKDIR}/qpe-gaim"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST +="INCLUDEPATH-=${includedir}/glib-2.0 \
+ INCLUDEPATH-=${libdir}/glib-2.0/include \
+ INCLUDEPATH+=${STAGING_INCDIR}/glib-2.0 \
+ LIBS-=-lopie LIBS+=-lopiecore2 LIBS+=-lopieui2"
+
+do_configure_prepend() {
+ ln -s ../libgaim/src libgaim
+}
+
+do_install() {
+ for dir in 16x16 32x32 protocols status
+ do
+ install -d ${D}${palmtopdir}/pics/gaim/${dir}
+ install -m 0644 data/images/${dir}/*.png ${D}${palmtopdir}/pics/gaim/${dir}/
+ done
+ install -m 0644 gaim.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "b61c7005301956e231feacff707c7b19"
+SRC_URI[sha256sum] = "0b55004666e3353feef384c5795a05b5bf1a3b69a487aee5b8f8e9d66c133b86"
diff --git a/recipes-qtopia/qpe-gaim/qpe-libgaim_1.5.0.bb b/recipes-qtopia/qpe-gaim/qpe-libgaim_1.5.0.bb
new file mode 100644
index 0000000..4bb687a
--- /dev/null
+++ b/recipes-qtopia/qpe-gaim/qpe-libgaim_1.5.0.bb
@@ -0,0 +1,57 @@
+DESCRIPTION = "A multi protocol instant messager library, Qt/Embedded based Palmtop Environments Edition"
+SECTION = "opie/applications"
+DEPENDS = "glib-2.0 gnutls"
+RDEPENDS_${PN} = "libgaim-plugins"
+LICENSE = "GPL"
+HOMEPAGE = "http://gaim.sourceforge.net/"
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gaim/gaim-${PV}.tar.bz2 \
+ file://dont-look-for-gtk.patch \
+ file://libgaim.patch "
+
+S = "${WORKDIR}/gaim-${PV}"
+
+inherit autotools
+
+EXTRA_OE_CONF = "--disable-audio --disable-gtkspell --disable-perl \
+ --disable-screensaver --disable-sm --disable-glibtest \
+ --disable-gtktest --disable-startup-notification \
+ --disable-gevolution --disable-aotest --disable-audiofiletest \
+ --disable-x --without-x --without-gtk --disable-gtk \
+ --enable-gnutls=y"
+
+CFLAGS_append = " -I${STAGING_INCDIR}/glib-2.0 -I${STAGING_LIBDIR}/glib-2.0/include"
+
+do_stage() {
+ oe_libinstall -so -C src libgaim ${QTDIR}/lib
+
+ # install headers
+ GAIM_DIR=${STAGING_INCDIR}/gaim
+ install -d $GAIM_DIR
+
+ for header in account.h accountopt.h away.h blist.h buddyicon.h cmds.h config.h connection.h conversation.h core.h debug.h eventloop.h ft.h gaim.h imgstore.h log.h md5.h network.h notify.h plugin.h pluginpref.h pounce.h prefix.h prefs.h privacy.h proxy.h prpl.h request.h roomlist.h server.h sha.h signals.h sound.h sslconn.h status.h stringref.h util.h value.h version.h xmlnode.h
+ do
+ if [ -e ${S}/src/$header ]; then
+ install -m 0644 ${S}/src/$header $GAIM_DIR
+ fi
+ if [ -e ${S}/$header ]; then
+ install -m 0644 ${S}/$header $GAIM_DIR
+ fi
+ done
+}
+
+PACKAGES_DYNAMIC = "libgaim-protocol-*"
+
+#FIXME: use do_packages to create individual packages for each of the plugins
+python populate_packages_prepend () {
+ plugindir = bb.data.expand('${libdir}/gaim', d)
+ do_split_packages(d, plugindir, '^lib(.*)\.so$', 'libgaim-protocol-%s', 'GAIM plugin for %s protocol', extra_depends='' )
+}
+
+PACKAGES += "libgaim-plugins"
+FILES_libgaim-plugins = "${libdir}/gaim/autorecon.so ${libdir}/gaim/s*.so"
+
+
+SRC_URI[md5sum] = "9205321ac11fad271c90f2f0d7c5e7ce"
+SRC_URI[sha256sum] = "58e3b0340cfc9e54e46f8d8835e5a02e31201c9ed8820bbb4cea36c59b9682aa"
diff --git a/recipes-qtopia/qpe-games/aliens-qt-1.0.0/Makefile.patch b/recipes-qtopia/qpe-games/aliens-qt-1.0.0/Makefile.patch
new file mode 100644
index 0000000..d8b743b
--- /dev/null
+++ b/recipes-qtopia/qpe-games/aliens-qt-1.0.0/Makefile.patch
@@ -0,0 +1,9 @@
+Nur in aliens_V1.0.0/tools: bin2c.
+diff -ur aliens_V1.0.0.orig/tools/Makefile aliens_V1.0.0/tools/Makefile
+--- aliens_V1.0.0.orig/tools/Makefile 2004-06-16 20:16:16.000000000 +0200
++++ aliens_V1.0.0/tools/Makefile 2004-06-16 20:17:24.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/aliens-qt-1.0.0/aliens.patch b/recipes-qtopia/qpe-games/aliens-qt-1.0.0/aliens.patch
new file mode 100644
index 0000000..ef3ec08
--- /dev/null
+++ b/recipes-qtopia/qpe-games/aliens-qt-1.0.0/aliens.patch
@@ -0,0 +1,12 @@
+diff -ur aliens_V1.0.0.orig/aliens.desktop aliens_V1.0.0/aliens.desktop
+--- aliens_V1.0.0.orig/aliens.desktop 2004-06-16 23:20:02.000000000 +0200
++++ aliens_V1.0.0/aliens.desktop 2004-06-16 23:20:15.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Aliens
+ Name[de]=Aliens
+-Icon=aliens
++Icon=aliens/aliens
+ Exec=aliens
+ Comment=A classic arcade-style shooter.
+ Comment[de]=Ein klassisches Weltraum-Ballerspiel.
diff --git a/recipes-qtopia/qpe-games/aliens-qt_1.0.0.bb b/recipes-qtopia/qpe-games/aliens-qt_1.0.0.bb
new file mode 100644
index 0000000..9555fa7
--- /dev/null
+++ b/recipes-qtopia/qpe-games/aliens-qt_1.0.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Alien ShootOut"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Bill Kendrick"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Aliens.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/aliens_V1.0.0.tar.gz \
+ file://Makefile.patch \
+ file://aliens.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/aliens_V${PV}"
+
+APPNAME = "aliens"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_compile_prepend () {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+
+SRC_URI[md5sum] = "9d7cde75aecf4b85478c0e47343d4293"
+SRC_URI[sha256sum] = "0aa0084a74f912f4002f1c40a815ce62ac13331ec84787a954d8bea06e1c96c5"
diff --git a/recipes-qtopia/qpe-games/atomic-1.0.1/Makefile.patch b/recipes-qtopia/qpe-games/atomic-1.0.1/Makefile.patch
new file mode 100644
index 0000000..76d4e62
--- /dev/null
+++ b/recipes-qtopia/qpe-games/atomic-1.0.1/Makefile.patch
@@ -0,0 +1,14 @@
+diff -ur atomic_V1.0.1.orig/tools/Makefile atomic_V1.0.1/tools/Makefile
+--- atomic_V1.0.1.orig/tools/Makefile 2004-06-16 20:22:38.000000000 +0200
++++ atomic_V1.0.1/tools/Makefile 2004-06-16 20:23:09.000000000 +0200
+@@ -1,8 +1,8 @@
+ all: bin2c level2c
+
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
+ level2c:
+- gcc -O2 -Wall -o level2c level2c.c
++ $(BUILD_CC) -O2 -Wall -o level2c level2c.c
+
diff --git a/recipes-qtopia/qpe-games/atomic-1.0.1/atomic.patch b/recipes-qtopia/qpe-games/atomic-1.0.1/atomic.patch
new file mode 100644
index 0000000..4a2cac4
--- /dev/null
+++ b/recipes-qtopia/qpe-games/atomic-1.0.1/atomic.patch
@@ -0,0 +1,12 @@
+diff -ur atomic_V1.0.1.orig/atomic.desktop atomic_V1.0.1/atomic.desktop
+--- atomic_V1.0.1.orig/atomic.desktop 2004-06-17 00:02:49.000000000 +0200
++++ atomic_V1.0.1/atomic.desktop 2004-06-17 00:03:16.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Atomic
+ Name[de]=Atomic
+-Icon=atomic
++Icon=atomic/atomic
+ Exec=atomic
+ Comment=A port of the KDE game katomic.
+ Comment[de]=Ein Port des KDE Spiels KAtomic
diff --git a/recipes-qtopia/qpe-games/atomic_1.0.1.bb b/recipes-qtopia/qpe-games/atomic_1.0.1.bb
new file mode 100644
index 0000000..b753268
--- /dev/null
+++ b/recipes-qtopia/qpe-games/atomic_1.0.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Atomic"
+SECTION = "opie/games"
+PRIORITY = "optional"
+
+LICENSE = "GPL"
+AUTHOR = "Andre Wuest"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Atomic.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/atomic_V1.0.1.tar.gz \
+ file://atomic.patch"
+
+
+PV = "1.0.1"
+S = "${WORKDIR}/atomic_V${PV}"
+APPNAME = "atomic"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+ oe_runmake -C tools
+ oe_runmake -C levels
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "537dc236f4654dd5760e0f39484222a1"
+SRC_URI[sha256sum] = "818a18c1ace9bc3e5b92bc91db1d62c859023cd16444d41692ecb3606cc6868c"
diff --git a/recipes-qtopia/qpe-games/checkers-1.0.5ern/checkers.patch b/recipes-qtopia/qpe-games/checkers-1.0.5ern/checkers.patch
new file mode 100644
index 0000000..47e57aa
--- /dev/null
+++ b/recipes-qtopia/qpe-games/checkers-1.0.5ern/checkers.patch
@@ -0,0 +1,12 @@
+diff -ur checkers_V1.0.5ern.orig/checkers.desktop checkers_V1.0.5ern/checkers.desktop
+--- checkers_V1.0.5ern.orig/checkers.desktop 2004-06-17 00:06:55.000000000 +0200
++++ checkers_V1.0.5ern/checkers.desktop 2004-06-17 00:07:03.000000000 +0200
+@@ -2,7 +2,7 @@
+ Comment=Checkers (Draughts) for the Zaurus
+ Comment[de]=Das klassische Damespiel
+ Exec=checkers
+-Icon=Checkers
++Icon=checkers/Checkers
+ Type=Application
+ Type[de]=Anwendung
+ Name=Checkers
diff --git a/recipes-qtopia/qpe-games/checkers_1.0.5ern.bb b/recipes-qtopia/qpe-games/checkers_1.0.5ern.bb
new file mode 100644
index 0000000..5817f2b
--- /dev/null
+++ b/recipes-qtopia/qpe-games/checkers_1.0.5ern.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Checkers"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Walter Rawdanik"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Checkers.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/checkers_V1.0.5ern.tar.gz \
+ file://checkers.patch"
+
+PV = "1.0.5ern"
+S = "${WORKDIR}/checkers_V${PV}"
+APPNAME = "checkers"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "82b08b1980ec6fbfc83b4dc0e2df10f7"
+SRC_URI[sha256sum] = "543435cb0988acc90a6e651e424eb331aba3f73361036d7af458bc1233973199"
diff --git a/recipes-qtopia/qpe-games/crossword-0.0.3/crossword.patch b/recipes-qtopia/qpe-games/crossword-0.0.3/crossword.patch
new file mode 100644
index 0000000..ce466a9
--- /dev/null
+++ b/recipes-qtopia/qpe-games/crossword-0.0.3/crossword.patch
@@ -0,0 +1,12 @@
+diff -ur crossword_V0.0.3.orig/crossword.desktop crossword_V0.0.3/crossword.desktop
+--- crossword_V0.0.3.orig/crossword.desktop 2004-06-17 00:13:02.000000000 +0200
++++ crossword_V0.0.3/crossword.desktop 2004-06-17 00:13:11.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Crossword
+ Name[de]=Kreuzwort Rätsel
+-Icon=crossword
++Icon=crossword/crossword
+ Exec=crossword
+ Comment=This is a crossword application that supports .puz and .tpz files
+ Comment[de]=Eine Applikation zum Lösen von Kreuzworträtseln im.puz und .tpz Format
diff --git a/recipes-qtopia/qpe-games/crossword_0.0.3.bb b/recipes-qtopia/qpe-games/crossword_0.0.3.bb
new file mode 100644
index 0000000..5b82438
--- /dev/null
+++ b/recipes-qtopia/qpe-games/crossword_0.0.3.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Checkers"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Crossword.html"
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/crossword_V0.0.3.tar.gz \
+ file://crossword.patch"
+
+PR = "r1"
+
+PV = "0.0.3"
+S = "${WORKDIR}/crossword_V${PV}"
+
+APPNAME = "crossword"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+pkg_postinst() {
+#!/bin/sh
+
+MIMEFILE=/opt/QtPalmtop/etc/mime.types
+
+grep -q application/puz $MIMEFILE 2>/dev/null || printf "application/crossword\t\tpuz tpz\n" >> $MIMEFILE
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "659d5c53cbace53f44fe7acb666bfe33"
+SRC_URI[sha256sum] = "8b718c344cf19417447cbc16867d2e04434654c13b330598b96720ead146b961"
diff --git a/recipes-qtopia/qpe-games/fish-1.1.0/Makefile.patch b/recipes-qtopia/qpe-games/fish-1.1.0/Makefile.patch
new file mode 100644
index 0000000..c7a08e1
--- /dev/null
+++ b/recipes-qtopia/qpe-games/fish-1.1.0/Makefile.patch
@@ -0,0 +1,8 @@
+diff -ur fish_V1.1.0.orig/tools/Makefile fish_V1.1.0/tools/Makefile
+--- fish_V1.1.0.orig/tools/Makefile 2004-06-16 20:35:22.000000000 +0200
++++ fish_V1.1.0/tools/Makefile 2004-06-16 20:35:33.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/fish-1.1.0/fish.patch b/recipes-qtopia/qpe-games/fish-1.1.0/fish.patch
new file mode 100644
index 0000000..c0e4e57
--- /dev/null
+++ b/recipes-qtopia/qpe-games/fish-1.1.0/fish.patch
@@ -0,0 +1,12 @@
+diff -ur fish_V1.1.0.orig/fish.desktop fish_V1.1.0/fish.desktop
+--- fish_V1.1.0.orig/fish.desktop 2004-06-17 00:14:52.000000000 +0200
++++ fish_V1.1.0/fish.desktop 2004-06-17 00:15:10.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Fish
+ Name[de]=Aquarium
+-Icon=fish
++Icon=fish/fish
+ Exec=fish
+ Comment=A fishtank for your Zaurus.
+ Comment[de]=Ein Aquarium am Bildschirm
diff --git a/recipes-qtopia/qpe-games/fish_1.1.0.bb b/recipes-qtopia/qpe-games/fish_1.1.0.bb
new file mode 100644
index 0000000..2959cb2
--- /dev/null
+++ b/recipes-qtopia/qpe-games/fish_1.1.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Fish Amusement"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Fish.html"
+
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/fish_V1.1.0.tar.gz \
+ file://Makefile.patch \
+ file://fish.patch"
+
+PV = "1.1.0"
+S = "${WORKDIR}/fish_V${PV}"
+
+APPNAME = "fish"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "78770f1abce09fbbaa0a46ce8ccc607f"
+SRC_URI[sha256sum] = "9d13db38c065d70f48ce70580c7d8cd940d923192c04bc3cb356cc98879b5788"
diff --git a/recipes-qtopia/qpe-games/glider-1.0.0/Makefile.patch b/recipes-qtopia/qpe-games/glider-1.0.0/Makefile.patch
new file mode 100644
index 0000000..72a5669
--- /dev/null
+++ b/recipes-qtopia/qpe-games/glider-1.0.0/Makefile.patch
@@ -0,0 +1,8 @@
+diff -ur glider_V1.0.0.orig/tools/Makefile glider_V1.0.0/tools/Makefile
+--- glider_V1.0.0.orig/tools/Makefile 2004-06-16 20:38:27.000000000 +0200
++++ glider_V1.0.0/tools/Makefile 2004-06-16 20:38:36.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/glider-1.0.0/glider.patch b/recipes-qtopia/qpe-games/glider-1.0.0/glider.patch
new file mode 100644
index 0000000..a82a0f5
--- /dev/null
+++ b/recipes-qtopia/qpe-games/glider-1.0.0/glider.patch
@@ -0,0 +1,12 @@
+diff -ur glider_V1.0.0.orig/glider.desktop glider_V1.0.0/glider.desktop
+--- glider_V1.0.0.orig/glider.desktop 2004-06-17 00:18:09.000000000 +0200
++++ glider_V1.0.0/glider.desktop 2004-06-17 00:18:19.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Glider
+ Name[de]=Glider
+-Icon=glider
++Icon=glider/glider
+ Exec=glider
+ Comment=Fight evil aliens using your space glider.
+ Comment[de]=Fliege einen Raumgleiter gegen Ausserirdische.
diff --git a/recipes-qtopia/qpe-games/glider_1.0.0.bb b/recipes-qtopia/qpe-games/glider_1.0.0.bb
new file mode 100644
index 0000000..4591007
--- /dev/null
+++ b/recipes-qtopia/qpe-games/glider_1.0.0.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Glider"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Glider.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/glider_V1.0.0.tar.gz \
+ file://Makefile.patch \
+ file://glider.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/glider_V${PV}"
+
+APPNAME = "glider"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "78fe56143bab9a7df232fa15e35a54a6"
+SRC_URI[sha256sum] = "972da0f1c35df459b99b24f5bbed5ddec150b714540e2254b6b37035117167ed"
diff --git a/recipes-qtopia/qpe-games/hexatrolic_1.0beta3.bb b/recipes-qtopia/qpe-games/hexatrolic_1.0beta3.bb
new file mode 100644
index 0000000..604f11e
--- /dev/null
+++ b/recipes-qtopia/qpe-games/hexatrolic_1.0beta3.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Hexatrolic a Ball Game"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Helge Plehn"
+HOMEPAGE = "http://hexatrolic.i-networx.de/"
+APPNAME = "hexatrolic"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/hexatrolic-103beta3-zecke1.tar.bz2"
+
+S = "${WORKDIR}/${APPNAME}"
+
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/apps/Games/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/pics/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/${APPNAME}.desktop ${D}${palmtopdir}/apps/Games
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "1d9420e8b5a6d5fa491c458ffafd4adb"
+SRC_URI[sha256sum] = "b60a5358e56e676529e7d3d655d5107a76b9a2434e38952711fea794f65721ce"
diff --git a/recipes-qtopia/qpe-games/icebloxx-1.0.0/Makefile.patch b/recipes-qtopia/qpe-games/icebloxx-1.0.0/Makefile.patch
new file mode 100644
index 0000000..5d3eed0
--- /dev/null
+++ b/recipes-qtopia/qpe-games/icebloxx-1.0.0/Makefile.patch
@@ -0,0 +1,8 @@
+diff -ur icebloxx_V1.0.0.orig/tools/Makefile icebloxx_V1.0.0/tools/Makefile
+--- icebloxx_V1.0.0.orig/tools/Makefile 2002-07-31 08:38:56.000000000 +0200
++++ icebloxx_V1.0.0/tools/Makefile 2004-06-16 20:50:29.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/icebloxx-1.0.0/icebloxx.patch b/recipes-qtopia/qpe-games/icebloxx-1.0.0/icebloxx.patch
new file mode 100644
index 0000000..69e8bbc
--- /dev/null
+++ b/recipes-qtopia/qpe-games/icebloxx-1.0.0/icebloxx.patch
@@ -0,0 +1,12 @@
+diff -ur icebloxx_V1.0.0.orig/icebloxx.desktop icebloxx_V1.0.0/icebloxx.desktop
+--- icebloxx_V1.0.0.orig/icebloxx.desktop 2004-06-17 00:21:27.000000000 +0200
++++ icebloxx_V1.0.0/icebloxx.desktop 2004-06-17 00:21:44.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Icebloxx
+ Name[de]=Icebloxx
+-Icon=Icebloxx
++Icon=icebloxx/Icebloxx
+ Exec=icebloxx
+ Comment=A clone of the java game Iceblox (Pengo).
+ Comment[de]=Eine C++ Version von Iceblox (Pengo).
diff --git a/recipes-qtopia/qpe-games/icebloxx_1.0.0.bb b/recipes-qtopia/qpe-games/icebloxx_1.0.0.bb
new file mode 100644
index 0000000..6e5ff81
--- /dev/null
+++ b/recipes-qtopia/qpe-games/icebloxx_1.0.0.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "IceBloxx"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-IceBloxx.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/icebloxx_V1.0.0.tar.gz \
+ file://Makefile.patch \
+ file://icebloxx.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/icebloxx_V${PV}"
+
+APPNAME = "icebloxx"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "f134dc7324525cd41aa0096072a25449"
+SRC_URI[sha256sum] = "13a3c3dc16eb6aaa3a5854a80633f4b047a9396cfb92a30c910b460492fe8f26"
diff --git a/recipes-qtopia/qpe-games/labyrinth_0.7.bb b/recipes-qtopia/qpe-games/labyrinth_0.7.bb
new file mode 100644
index 0000000..6f83c9b
--- /dev/null
+++ b/recipes-qtopia/qpe-games/labyrinth_0.7.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "A traditional (german?) boardgame"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Helge Plehn"
+HOMEPAGE = "http://hexatrolic.i-networx.de/"
+APPNAME = "labyrinth"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/labyrinth-0.7-zecke1.tar.gz"
+
+S = "${WORKDIR}/${APPNAME}"
+
+do_install () {
+ install -d ${D}${palmtopdir}/apps/Games/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/share/games/${APPNAME}/
+
+ install -m 0644 ${S}/pics/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/${APPNAME}.desktop ${D}${palmtopdir}/apps/Games
+ install -m 0644 ${S}/labyrinth.record ${D}${palmtopdir}/share/games/${APPNAME}/
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "027e5fd07dd6bd6c1f25161a266a0646"
+SRC_URI[sha256sum] = "547088fbbc3c3f4e60544dca8500c5f7097911427fd7dd04ad082db03f117001"
diff --git a/recipes-qtopia/qpe-games/mahjongg-1.0.0/Makefile.patch b/recipes-qtopia/qpe-games/mahjongg-1.0.0/Makefile.patch
new file mode 100644
index 0000000..3ae1ff9
--- /dev/null
+++ b/recipes-qtopia/qpe-games/mahjongg-1.0.0/Makefile.patch
@@ -0,0 +1,14 @@
+diff -ur mahjongg_V1.0.0.orig/tools/Makefile mahjongg_V1.0.0/tools/Makefile
+--- mahjongg_V1.0.0.orig/tools/Makefile 2004-06-16 20:55:06.000000000 +0200
++++ mahjongg_V1.0.0/tools/Makefile 2004-06-16 20:55:30.000000000 +0200
+@@ -1,8 +1,8 @@
+ all: bin2c layout2c
+
+ bin2c: bin2c.c
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
+ layout2c: layout2c.c
+- gcc -O2 -Wall -o layout2c layout2c.c
++ $(BUILD_CC) -O2 -Wall -o layout2c layout2c.c
+
diff --git a/recipes-qtopia/qpe-games/mahjongg-1.0.0/mahjongg.patch b/recipes-qtopia/qpe-games/mahjongg-1.0.0/mahjongg.patch
new file mode 100644
index 0000000..e189f8b
--- /dev/null
+++ b/recipes-qtopia/qpe-games/mahjongg-1.0.0/mahjongg.patch
@@ -0,0 +1,12 @@
+diff -ur mahjongg_V1.0.0.orig/mahjongg.desktop mahjongg_V1.0.0/mahjongg.desktop
+--- mahjongg_V1.0.0.orig/mahjongg.desktop 2004-06-17 00:23:58.000000000 +0200
++++ mahjongg_V1.0.0/mahjongg.desktop 2004-06-17 00:24:12.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Mahjongg
+ Name[de]=Mahjongg
+-Icon=mahjongg
++Icon=mahjongg/mahjongg
+ Exec=mahjongg
+ Comment=The Mahjongg game with graphics from the KDE project
+ Comment=Mahjongg Spiel mit KDE Grafiken
diff --git a/recipes-qtopia/qpe-games/mahjongg_1.0.0.bb b/recipes-qtopia/qpe-games/mahjongg_1.0.0.bb
new file mode 100644
index 0000000..c889cd3
--- /dev/null
+++ b/recipes-qtopia/qpe-games/mahjongg_1.0.0.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Mahjongg"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Mario Weilguni, Port by Rober Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Mahjongg.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/mahjongg_V1.0.0.tar.gz \
+ file://Makefile.patch \
+ file://mahjongg.patch"
+
+
+PV = "1.0.0"
+S = "${WORKDIR}/mahjongg_V${PV}"
+
+APPNAME = "mahjongg"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+ oe_runmake -C layouts
+ oe_runmake -C tools
+}
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "83587af02f53eb222242d0d84380735a"
+SRC_URI[sha256sum] = "a059a2b0f438140a3bb1e30f410a28863eec61ebbb90c925209c7a473a89b76b"
diff --git a/recipes-qtopia/qpe-games/maki-1.0.4ern/maki.patch b/recipes-qtopia/qpe-games/maki-1.0.4ern/maki.patch
new file mode 100644
index 0000000..5fac6c5
--- /dev/null
+++ b/recipes-qtopia/qpe-games/maki-1.0.4ern/maki.patch
@@ -0,0 +1,12 @@
+diff -ur maki_V1.0.4ern.orig/maki.desktop maki_V1.0.4ern/maki.desktop
+--- maki_V1.0.4ern.orig/maki.desktop 2004-06-17 00:26:00.000000000 +0200
++++ maki_V1.0.4ern/maki.desktop 2004-06-17 00:26:07.000000000 +0200
+@@ -2,7 +2,7 @@
+ Comment=The Game Of Maki / The Same Game
+ Comment[de]=Das Maki Spiel / The Same Game
+ Exec=maki
+-Icon=Maki
++Icon=maki/Maki
+ Type=Application
+ Type[de]=Anwendung
+ Name=Maki
diff --git a/recipes-qtopia/qpe-games/maki_1.0.4ern.bb b/recipes-qtopia/qpe-games/maki_1.0.4ern.bb
new file mode 100644
index 0000000..0c0f786
--- /dev/null
+++ b/recipes-qtopia/qpe-games/maki_1.0.4ern.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Maki"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Henry So, Jr."
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Maki.html"
+
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/maki_V1.0.4ern.tar.gz \
+ file://maki.patch"
+
+PV = "1.0.4ern"
+S = "${WORKDIR}/maki_V${PV}"
+
+APPNAME = "maki"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "cb5e4656fc3b13aa02d94096966ef2a9"
+SRC_URI[sha256sum] = "6d5f1f771de97e08378940070b28dd75ac394ea611965ed1751600adbd099a59"
diff --git a/recipes-qtopia/qpe-games/nmm-0.0.2/Makefile.patch b/recipes-qtopia/qpe-games/nmm-0.0.2/Makefile.patch
new file mode 100644
index 0000000..d5492e6
--- /dev/null
+++ b/recipes-qtopia/qpe-games/nmm-0.0.2/Makefile.patch
@@ -0,0 +1,9 @@
+diff -ur nmm_V0.0.2.orig/tools/Makefile nmm_V0.0.2/tools/Makefile
+--- nmm_V0.0.2.orig/tools/Makefile 2004-06-16 21:11:26.000000000 +0200
++++ nmm_V0.0.2/tools/Makefile 2004-06-16 21:11:43.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
+Nur in nmm_V0.0.2/tools: Makefile.nmm.
diff --git a/recipes-qtopia/qpe-games/nmm-0.0.2/nmm.patch b/recipes-qtopia/qpe-games/nmm-0.0.2/nmm.patch
new file mode 100644
index 0000000..53adcbf
--- /dev/null
+++ b/recipes-qtopia/qpe-games/nmm-0.0.2/nmm.patch
@@ -0,0 +1,12 @@
+diff -ur nmm_V0.0.2.orig/nmm.desktop nmm_V0.0.2/nmm.desktop
+--- nmm_V0.0.2.orig/nmm.desktop 2004-06-17 00:28:23.000000000 +0200
++++ nmm_V0.0.2/nmm.desktop 2004-06-17 00:28:32.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Nine Men's Morris
+ Name[de]=Mühle
+-Icon=nmm
++Icon=nmm/nmm
+ Exec=nmm
+ Comment=A classic board game.
+ Comment[de]=Ein klassisches Brettspiel.
diff --git a/recipes-qtopia/qpe-games/nmm_0.0.2.bb b/recipes-qtopia/qpe-games/nmm_0.0.2.bb
new file mode 100644
index 0000000..5ee0c32
--- /dev/null
+++ b/recipes-qtopia/qpe-games/nmm_0.0.2.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Nime Mens Morris"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Dirk Farin, Port by Rober Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Nine-Mens-Morris.html"
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/nmm_V0.0.2.tar.gz \
+ file://Makefile.patch \
+ file://nmm.patch"
+
+PV = "0.0.2"
+S = "${WORKDIR}/nmm_V${PV}"
+
+APPNAME = "nmm"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+
+SRC_URI[md5sum] = "af4c4ad64196f26a245c385a234f462f"
+SRC_URI[sha256sum] = "5d6c456b30318cc05b19915aa601ea4c2cf46ddf43a39e33948dea6280ac5395"
diff --git a/recipes-qtopia/qpe-games/pairs-1.1.1/pairs.patch b/recipes-qtopia/qpe-games/pairs-1.1.1/pairs.patch
new file mode 100644
index 0000000..7cd744b
--- /dev/null
+++ b/recipes-qtopia/qpe-games/pairs-1.1.1/pairs.patch
@@ -0,0 +1,20 @@
+diff -ur pairs_V1.1.1.orig/pairs.desktop pairs_V1.1.1/pairs.desktop
+--- pairs_V1.1.1.orig/pairs.desktop 2004-06-16 21:50:35.000000000 +0200
++++ pairs_V1.1.1/pairs.desktop 2004-06-16 21:51:00.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Pairs
+ Name[de]=Pairs
+-Icon=Pairs
++Icon=pairs/Pairs
+ Exec=pairs
+ Comment=The Pairs game. Find two matching tiles to score a point.
+ Comment[de]=Das Pairs Spiel. Finde passende Kartenpaare.
+diff -ur pairs_V1.1.1.orig/tools/Makefile pairs_V1.1.1/tools/Makefile
+--- pairs_V1.1.1.orig/tools/Makefile 2004-06-16 21:50:35.000000000 +0200
++++ pairs_V1.1.1/tools/Makefile 2004-06-16 21:51:13.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/pairs_1.1.1.bb b/recipes-qtopia/qpe-games/pairs_1.1.1.bb
new file mode 100644
index 0000000..d6b33fc
--- /dev/null
+++ b/recipes-qtopia/qpe-games/pairs_1.1.1.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Pairs"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Rober Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Pairs.html"
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/pairs_V1.1.1.tar.gz \
+ file://pairs.patch"
+
+PV = "1.1.1"
+S = "${WORKDIR}/pairs_V${PV}"
+
+APPNAME = "pairs"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+
+inherit opie
+
+
+
+SRC_URI[md5sum] = "399e794dde87508b4214f1312cd79d06"
+SRC_URI[sha256sum] = "7526d8de006817e5c6bc79826f810a15490611dcbd2d4fb9d8e9b9991c7ed506"
diff --git a/recipes-qtopia/qpe-games/pdamaze-1.0.0/Makefile.patch b/recipes-qtopia/qpe-games/pdamaze-1.0.0/Makefile.patch
new file mode 100644
index 0000000..2c42e37
--- /dev/null
+++ b/recipes-qtopia/qpe-games/pdamaze-1.0.0/Makefile.patch
@@ -0,0 +1,20 @@
+diff -ur pdamaze_V1.0.0.orig/pdamaze.desktop pdamaze_V1.0.0/pdamaze.desktop
+--- pdamaze_V1.0.0.orig/pdamaze.desktop 2004-06-16 21:33:08.000000000 +0200
++++ pdamaze_V1.0.0/pdamaze.desktop 2004-06-16 21:33:19.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=PDA-Maze
+ Name[de]=PDA-Maze
+-Icon=pdamaze
++Icon=pdamaze/pdamaze
+ Exec=pdamaze
+ Comment=A rewrite of the C/Xlib game pdamaze.
+ Comment[de]=Finde aus einem Labyrinth heraus.
+diff -ur pdamaze_V1.0.0.orig/tools/Makefile pdamaze_V1.0.0/tools/Makefile
+--- pdamaze_V1.0.0.orig/tools/Makefile 2004-06-16 21:33:08.000000000 +0200
++++ pdamaze_V1.0.0/tools/Makefile 2004-06-16 21:33:33.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/pdamaze_1.0.0.bb b/recipes-qtopia/qpe-games/pdamaze_1.0.0.bb
new file mode 100644
index 0000000..cd77b37
--- /dev/null
+++ b/recipes-qtopia/qpe-games/pdamaze_1.0.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "PDA-Maze"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Bill Kendrick, Port by Rober Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-PDA-Maze.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/pdamaze_V1.0.0.tar.gz \
+ file://Makefile.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/pdamaze_V${PV}"
+
+APPNAME = "pdamaze"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+
+
+
+SRC_URI[md5sum] = "bf27dd51fe03c8b475080b74de043a13"
+SRC_URI[sha256sum] = "99d6bc6b360baabd6044e8883d467cc6ed7955f9ab66d8f87f61e3cc757fb97a"
diff --git a/recipes-qtopia/qpe-games/pipeman-1.0.0/pipe.patch b/recipes-qtopia/qpe-games/pipeman-1.0.0/pipe.patch
new file mode 100644
index 0000000..346707e
--- /dev/null
+++ b/recipes-qtopia/qpe-games/pipeman-1.0.0/pipe.patch
@@ -0,0 +1,20 @@
+diff -ur pipeman_V1.0.0.orig/pipeman.desktop pipeman_V1.0.0/pipeman.desktop
+--- pipeman_V1.0.0.orig/pipeman.desktop 2004-06-16 21:56:05.000000000 +0200
++++ pipeman_V1.0.0/pipeman.desktop 2004-06-16 21:56:56.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Pipeman
+ Name[de]=Pipeman
+-Icon=pipeman
++Icon=pipeman/pipeman
+ Exec=pipeman
+ Comment=The Pipeman game. Put the pipe parts so that the water stays in the pipe.
+ Comment[de]=Lege die Rohrteile so, dass kein Wasser ausfliessen kann.
+diff -ur pipeman_V1.0.0.orig/tools/Makefile pipeman_V1.0.0/tools/Makefile
+--- pipeman_V1.0.0.orig/tools/Makefile 2004-06-16 21:56:05.000000000 +0200
++++ pipeman_V1.0.0/tools/Makefile 2004-06-16 21:56:42.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/pipeman_1.0.0.bb b/recipes-qtopia/qpe-games/pipeman_1.0.0.bb
new file mode 100644
index 0000000..2c4d30d
--- /dev/null
+++ b/recipes-qtopia/qpe-games/pipeman_1.0.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Pipeman"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Rober Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-PDA-Pipeman.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/pipeman_V1.0.0.tar.gz \
+ file://pipe.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/pipeman_V${PV}"
+
+APPNAME = "pipeman"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+
+SRC_URI[md5sum] = "8d8a69d0fea184dda5f4a15168039fbb"
+SRC_URI[sha256sum] = "a2d8473577c2b3b51ebf29e2c6cb31463158676a5d5b44438ff0db18e8aab949"
diff --git a/recipes-qtopia/qpe-games/shisensho-1.0.0/shisen.patch b/recipes-qtopia/qpe-games/shisensho-1.0.0/shisen.patch
new file mode 100644
index 0000000..24ef36e
--- /dev/null
+++ b/recipes-qtopia/qpe-games/shisensho-1.0.0/shisen.patch
@@ -0,0 +1,20 @@
+diff -ur shisensho_V1.0.0.orig/shisensho.desktop shisensho_V1.0.0/shisensho.desktop
+--- shisensho_V1.0.0.orig/shisensho.desktop 2004-06-16 22:12:27.000000000 +0200
++++ shisensho_V1.0.0/shisensho.desktop 2004-06-16 22:12:36.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Shisen-Sho
+ Name[de]=Shisen-Sho
+-Icon=shisensho
++Icon=shisensho/shisensho
+ Exec=shisensho
+ Comment=The Shisen-Sho game ported from the KDE project
+ Comment[de}=Das Spiel Shisen-Sho vom KDE Projekt.
+diff -ur shisensho_V1.0.0.orig/tools/Makefile shisensho_V1.0.0/tools/Makefile
+--- shisensho_V1.0.0.orig/tools/Makefile 2004-06-16 22:12:27.000000000 +0200
++++ shisensho_V1.0.0/tools/Makefile 2004-06-16 22:14:46.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/shisensho_1.0.0.bb b/recipes-qtopia/qpe-games/shisensho_1.0.0.bb
new file mode 100644
index 0000000..8823b5d
--- /dev/null
+++ b/recipes-qtopia/qpe-games/shisensho_1.0.0.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Shisensho"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Mario Weilguni"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Shisen-Sho.html"
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/shisensho_V1.0.0.tar.gz \
+ file://shisen.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/shisensho_V${PV}"
+
+APPNAME = "shisensho"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+
+SRC_URI[md5sum] = "001103f5847e71b0198c3a11df7d62d0"
+SRC_URI[sha256sum] = "17cebdc8ae4374c3944a3233d86278f4d09aaf90279b48e98367e9387f7e6acc"
diff --git a/recipes-qtopia/qpe-games/sokoban-1.3.8ern/sokoban.patch b/recipes-qtopia/qpe-games/sokoban-1.3.8ern/sokoban.patch
new file mode 100644
index 0000000..820dcec
--- /dev/null
+++ b/recipes-qtopia/qpe-games/sokoban-1.3.8ern/sokoban.patch
@@ -0,0 +1,20 @@
+diff -ur sokoban_V1.3.8ern.orig/sokoban.desktop sokoban_V1.3.8ern/sokoban.desktop
+--- sokoban_V1.3.8ern.orig/sokoban.desktop 2004-06-16 22:20:31.000000000 +0200
++++ sokoban_V1.3.8ern/sokoban.desktop 2004-06-16 22:21:19.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Sokoban
+ Name[de]=Sokoban
+-Icon=Sokoban
++Icon=sokoban/Sokoban
+ Exec=sokoban
+ Comment=The Sokoban game ported from KDE 3.0.2
+ Comment[de]=Das Kistenschiebeprogramm von KDE
+diff -ur sokoban_V1.3.8ern.orig/tools/Makefile sokoban_V1.3.8ern/tools/Makefile
+--- sokoban_V1.3.8ern.orig/tools/Makefile 2004-06-16 22:20:31.000000000 +0200
++++ sokoban_V1.3.8ern/tools/Makefile 2004-06-16 22:20:44.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
diff --git a/recipes-qtopia/qpe-games/sokoban_1.3.8ern.bb b/recipes-qtopia/qpe-games/sokoban_1.3.8ern.bb
new file mode 100644
index 0000000..0cd69bf
--- /dev/null
+++ b/recipes-qtopia/qpe-games/sokoban_1.3.8ern.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Pairs"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Anders Widell, Steve Dunham, Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Sokoban.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/sokoban_V1.3.8ern.tar.gz \
+ file://sokoban.patch"
+
+PV = "1.3.8ern"
+S = "${WORKDIR}/sokoban_V${PV}"
+
+APPNAME = "sokoban"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_compile_prepend() {
+ oe_runmake -C images
+ oe_runmake -C levels
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+inherit opie
+
+
+SRC_URI[md5sum] = "a362dc3f5f23d785990917103c76a43d"
+SRC_URI[sha256sum] = "084f8286eb945455f3f1567c0a7e7df3a759f2a4e1aab3b881b8ef1bda5bdb21"
diff --git a/recipes-qtopia/qpe-games/tron-1.0.0/tron.patch b/recipes-qtopia/qpe-games/tron-1.0.0/tron.patch
new file mode 100644
index 0000000..f13c111
--- /dev/null
+++ b/recipes-qtopia/qpe-games/tron-1.0.0/tron.patch
@@ -0,0 +1,12 @@
+diff -ur tron_V1.0.0.orig/tron.desktop tron_V1.0.0/tron.desktop
+--- tron_V1.0.0.orig/tron.desktop 2004-06-16 22:43:33.000000000 +0200
++++ tron_V1.0.0/tron.desktop 2004-06-16 22:43:40.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Tron
+ Name[de]=Tron
+-Icon=tron
++Icon=tron/tron
+ Exec=tron
+ Comment=The famous racing game known from the film Tron.
+ Comment[de]=Das bekannte Rennspiel aus dem Film Tron.
diff --git a/recipes-qtopia/qpe-games/tron_1.0.0.bb b/recipes-qtopia/qpe-games/tron_1.0.0.bb
new file mode 100644
index 0000000..04b015f
--- /dev/null
+++ b/recipes-qtopia/qpe-games/tron_1.0.0.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Tron"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Matthias Kiefer"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Tron.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/tron_V1.0.0.tar.gz \
+ file://tron.patch"
+
+PV = "1.0.0"
+S = "${WORKDIR}/tron_V${PV}"
+
+APPNAME = "tron"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "65e8a11836493aacae7b6d3895807efb"
+SRC_URI[sha256sum] = "226cd1c59495349686d82250ff59f40319f3f7f469a3320b837ed3c344bec037"
diff --git a/recipes-qtopia/qpe-games/win4-1.0.1/win4.patch b/recipes-qtopia/qpe-games/win4-1.0.1/win4.patch
new file mode 100644
index 0000000..41b1310
--- /dev/null
+++ b/recipes-qtopia/qpe-games/win4-1.0.1/win4.patch
@@ -0,0 +1,20 @@
+diff -ur win4_V1.0.1.orig/tools/Makefile win4_V1.0.1/tools/Makefile
+--- win4_V1.0.1.orig/tools/Makefile 2004-06-16 22:45:42.000000000 +0200
++++ win4_V1.0.1/tools/Makefile 2004-06-16 22:45:54.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
+diff -ur win4_V1.0.1.orig/win4.desktop win4_V1.0.1/win4.desktop
+--- win4_V1.0.1.orig/win4.desktop 2004-06-16 22:45:42.000000000 +0200
++++ win4_V1.0.1/win4.desktop 2004-06-16 22:46:01.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=Win4
+ Name[de]=Win4
+-Icon=win4
++Icon=win4/win4
+ Exec=win4
+ Comment=Line up four coins to win.
+ Comment[de]=Bring vier Steine in eine Reihe.
diff --git a/recipes-qtopia/qpe-games/win4_1.0.1.bb b/recipes-qtopia/qpe-games/win4_1.0.1.bb
new file mode 100644
index 0000000..87676ac
--- /dev/null
+++ b/recipes-qtopia/qpe-games/win4_1.0.1.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "4 wins"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Anders Widell, Steve Dunham, Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-Win4.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/win4_V1.0.1.tar.gz \
+ file://win4.patch"
+
+PV = "1.0.1"
+S = "${WORKDIR}/win4_V${PV}"
+
+APPNAME = "win4"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/apps/Games/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/${APPNAME}.desktop ${D}${palmtopdir}/apps/Games
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "0817e2606cd87fe2cbead6b7104f7425"
+SRC_URI[sha256sum] = "00b2384e225d6a1cbda4994c63103ac229269bb2946537e9357655e5c5b84333"
diff --git a/recipes-qtopia/qpe-games/ziq-1.1ern/ziq.patch b/recipes-qtopia/qpe-games/ziq-1.1ern/ziq.patch
new file mode 100644
index 0000000..064f0eb
--- /dev/null
+++ b/recipes-qtopia/qpe-games/ziq-1.1ern/ziq.patch
@@ -0,0 +1,12 @@
+diff -ur ziq_V1.1ern.orig/ziq.desktop ziq_V1.1ern/ziq.desktop
+--- ziq_V1.1ern.orig/ziq.desktop 2004-06-16 22:48:46.000000000 +0200
++++ ziq_V1.1ern/ziq.desktop 2004-06-16 22:50:46.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=zIQ
+ Name[de]=zIQ
+-Icon=ziq
++Icon=ziq/ziq
+ Exec=ziq
+ Comment=The IQ game.
+ Comment[de]=Das IQ Spiel (Steckhalma)
diff --git a/recipes-qtopia/qpe-games/ziq_1.1ern.bb b/recipes-qtopia/qpe-games/ziq_1.1ern.bb
new file mode 100644
index 0000000..8c66298
--- /dev/null
+++ b/recipes-qtopia/qpe-games/ziq_1.1ern.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "ZIQ"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Bill Wetter"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-ZIQ.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/ziq_V1.1ern.tar.gz \
+ file://ziq.patch"
+
+PV = "1.1ern"
+PR = "r1"
+S = "${WORKDIR}/ziq_V${PV}"
+
+
+APPNAME = "ziq"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/apps/Games/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -d ${D}${palmtopdir}/apps/Games
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/${APPNAME}.desktop ${D}${palmtopdir}/apps/Games
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "f8c6b4b8b5b6f62ec9fc117e4b35fd53"
+SRC_URI[sha256sum] = "995a52223365ec41ae72ef781bde2c8f2f34e0e5dd19e17245f5f354ac52fb8b"
diff --git a/recipes-qtopia/qpe-games/zrev7-1.0.1/zrev.patch b/recipes-qtopia/qpe-games/zrev7-1.0.1/zrev.patch
new file mode 100644
index 0000000..3adc14e
--- /dev/null
+++ b/recipes-qtopia/qpe-games/zrev7-1.0.1/zrev.patch
@@ -0,0 +1,20 @@
+diff -ur zrev7_V1.0.1.orig/tools/Makefile zrev7_V1.0.1/tools/Makefile
+--- zrev7_V1.0.1.orig/tools/Makefile 2004-06-16 22:07:19.000000000 +0200
++++ zrev7_V1.0.1/tools/Makefile 2004-06-16 22:07:29.000000000 +0200
+@@ -1,3 +1,3 @@
+ bin2c:
+- gcc -O2 -Wall -o bin2c bin2c.c
++ $(BUILD_CC) -O2 -Wall -o bin2c bin2c.c
+
+diff -ur zrev7_V1.0.1.orig/zrev7.desktop zrev7_V1.0.1/zrev7.desktop
+--- zrev7_V1.0.1.orig/zrev7.desktop 2004-06-16 22:07:19.000000000 +0200
++++ zrev7_V1.0.1/zrev7.desktop 2004-06-16 22:07:41.000000000 +0200
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=ZRev7
+ Name[de]=ZRev7
+-Icon=zrev7
++Icon=zrev7/zrev7
+ Exec=zrev7
+ Comment=A port of the KDE game kreversi.
+ Comment[de]=Die Zaurus version vom KDE-Spiel kreversi.
diff --git a/recipes-qtopia/qpe-games/zrev7_1.0.1.bb b/recipes-qtopia/qpe-games/zrev7_1.0.1.bb
new file mode 100644
index 0000000..b2b4429
--- /dev/null
+++ b/recipes-qtopia/qpe-games/zrev7_1.0.1.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Reversi"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Mario Weilguni"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-ZRev7.html"
+PR = "r1"
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/zrev7_V1.0.1.tar.gz \
+ file://zrev.patch"
+S = "${WORKDIR}/zrev7_V${PV}"
+
+APPNAME = "zrev7"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+inherit opie
+
+do_compile_prepend() {
+ oe_runmake -C images
+}
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+}
+
+SRC_URI[md5sum] = "fa339990ee78b0fd1bad994f0b35764c"
+SRC_URI[sha256sum] = "bc3487bf3927f7e3ea46cef770724d20e820883f4173eb7f8a1332c51d9b6431"
diff --git a/recipes-qtopia/qpe-games/zsubhunt_1.0.0ern.bb b/recipes-qtopia/qpe-games/zsubhunt_1.0.0ern.bb
new file mode 100644
index 0000000..d418c8d
--- /dev/null
+++ b/recipes-qtopia/qpe-games/zsubhunt_1.0.0ern.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Sub Marine Hunt"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Kart Bartel, Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-ZSubhunt.html"
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/zsubhunt_V1.0.0ern.tar.gz "
+
+PV = "1.0.0ern"
+S = "${WORKDIR}/zsubhunt_V${PV}"
+
+
+APPNAME = "zsubhunt"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+
+do_install () {
+ install -d ${D}${palmtopdir}/apps/Games/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/pics/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/${APPNAME}.desktop ${D}${palmtopdir}/apps/Games
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "7f1fee1e58d92fbe72ffee34078c6fa2"
+SRC_URI[sha256sum] = "d31c51a3db059c564e77ee8776f441b3ea530089a7b48aa31a49d2ebf7bf9dc9"
diff --git a/recipes-qtopia/qpe-games/ztappy_0.9.3ern.bb b/recipes-qtopia/qpe-games/ztappy_0.9.3ern.bb
new file mode 100644
index 0000000..9b4ede2
--- /dev/null
+++ b/recipes-qtopia/qpe-games/ztappy_0.9.3ern.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "ZTappy"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Kart Bartel, Robert Ernst"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/games-ZTappy.html"
+
+
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/ztappy_V0.9.3ern.tar.gz "
+
+PV = "0.9.3ern"
+S = "${WORKDIR}/ztappy_V${PV}"
+
+
+APPNAME = "ztappy"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_install () {
+ install -d ${D}${palmtopdir}/apps/Games/
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/pics/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/${APPNAME}.desktop ${D}${palmtopdir}/apps/Games
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "2c3881503615d86b78b89ad5f4ec675c"
+SRC_URI[sha256sum] = "006c061dc031e711cc3ccccbb659ffb9b09b74ff3be6c5768aecd7297738b1c0"
diff --git a/recipes-qtopia/qpe-inputhelper/qpe-inputhelper-applet_1.0.0.bb b/recipes-qtopia/qpe-inputhelper/qpe-inputhelper-applet_1.0.0.bb
new file mode 100644
index 0000000..9ff9cc4
--- /dev/null
+++ b/recipes-qtopia/qpe-inputhelper/qpe-inputhelper-applet_1.0.0.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Qtopia/Opie Input helper for USB devices"
+SECTION = "opie/inputmethods"
+HOMEPAGE = "http://tbox.jpn.org/wiki/linuzau/wiki.cgi"
+LICENSE = "GPL"
+PR = "r0"
+APPNAME = "qpeinputhelper"
+
+SRC_URI = "http://tbox.jpn.org/data/inputhelper_${PV}_src.tar.gz"
+S = "${WORKDIR}/src"
+
+inherit opie
+
+do_configure_prepend() {
+ rm -f makefile
+ qmake -project -t lib -o qpeinputhelper.pro
+}
+
+
+SRC_URI[md5sum] = "d99128113077a9b0c8f4aebeaec38d27"
+SRC_URI[sha256sum] = "4bf2d82a434863737cb505d03c7edf4e09ae3dfb3aa2c250079b68a60aaa629f"
diff --git a/recipes-qtopia/qpe-nmap/qpe-nmap_0.02.bb b/recipes-qtopia/qpe-nmap/qpe-nmap_0.02.bb
new file mode 100644
index 0000000..6f51f15
--- /dev/null
+++ b/recipes-qtopia/qpe-nmap/qpe-nmap_0.02.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A frontend for the nmap port scanner, Qt/Embedded Palmtop Environment"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS_${PN} = "nmap"
+PR = "r1"
+
+SRC_URI = "http://www.bluelightning.org/qpe-nmap/files/qpe-nmap-${PV}.tar.bz2"
+
+APPNAME = "qpe-nmap"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+
+S = "${WORKDIR}/qpe-nmap"
+
+inherit opie
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/qpe-nmap/ipk/opt/QtPalmtop/pics/qpe-nmap.png ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${WORKDIR}/qpe-nmap/ipk/opt/QtPalmtop/apps/Applications/qpe-nmap.desktop ${D}${palmtopdir}/apps/Applications/
+}
+
+
+SRC_URI[md5sum] = "82d20f06942324af7fc4ce302efb1028"
+SRC_URI[sha256sum] = "5ea7f9188aa221f004db1688713f35199adf3075d0b54f2bffa2461e9f11ee05"
diff --git a/recipes-qtopia/qpealarmclock/qpealarmclock-1.0.9/fix-compile.patch b/recipes-qtopia/qpealarmclock/qpealarmclock-1.0.9/fix-compile.patch
new file mode 100644
index 0000000..a39c91d
--- /dev/null
+++ b/recipes-qtopia/qpealarmclock/qpealarmclock-1.0.9/fix-compile.patch
@@ -0,0 +1,67 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qpealarmclock/AlarmDetails.h~fix_compile
++++ qpealarmclock/AlarmDetails.h
+@@ -63,26 +63,9 @@
+
+ WEEKDAYS_IGNORE = 0xFF // do not change any days
+ };
+-
+- static const Weekdays flags[] =
+- {
+- WEEKDAYS_MONDAY,
+- WEEKDAYS_TUESDAY,
+- WEEKDAYS_WEDNSDAY,
+- WEEKDAYS_THURSDAY,
+- WEEKDAYS_FRIDAY,
+- WEEKDAYS_SATURDAY,
+- WEEKDAYS_SUNDAY
+- };
+
+- static const Weekdays weekdaysGroups[] =
+- {
+- WEEKDAYS_NONE,
+- WEEKDAYS_ALL,
+- WEEKDAYS_WORKDAYS,
+- WEEKDAYS_WEEKEND,
+- WEEKDAYS_IGNORE
+- };
++ static const Weekdays flags[];
++ static const AlarmDetails::Weekdays weekdaysGroups[];
+
+ AlarmDetails(int alarmNumberInit);
+ ~AlarmDetails();
+
+--- qpealarmclock/AlarmDetails.cpp~fix-compile-2
++++ qpealarmclock/AlarmDetails.cpp
+@@ -22,8 +22,25 @@
+ #include <qimage.h>
+ #include <qpixmap.h>
+
+-const AlarmDetails::Weekdays AlarmDetails::flags[];
+-const AlarmDetails::Weekdays AlarmDetails::weekdaysGroups[];
++const AlarmDetails::Weekdays AlarmDetails::flags[] =
++{
++ WEEKDAYS_MONDAY,
++ WEEKDAYS_TUESDAY,
++ WEEKDAYS_WEDNSDAY,
++ WEEKDAYS_THURSDAY,
++ WEEKDAYS_FRIDAY,
++ WEEKDAYS_SATURDAY,
++ WEEKDAYS_SUNDAY
++};
++
++const AlarmDetails::Weekdays AlarmDetails::weekdaysGroups[] =
++{
++ AlarmDetails::WEEKDAYS_NONE,
++ AlarmDetails::WEEKDAYS_ALL,
++ AlarmDetails::WEEKDAYS_WORKDAYS,
++ AlarmDetails::WEEKDAYS_WEEKEND,
++ AlarmDetails::WEEKDAYS_IGNORE
++};
+
+ AlarmDetails::AlarmDetails(int alarmNumberInit) : alarmNumber(alarmNumberInit)
+ {
diff --git a/recipes-qtopia/qpealarmclock/qpealarmclock_1.0.9.bb b/recipes-qtopia/qpealarmclock/qpealarmclock_1.0.9.bb
new file mode 100644
index 0000000..c79ec50
--- /dev/null
+++ b/recipes-qtopia/qpealarmclock/qpealarmclock_1.0.9.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Alarm Clock"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Dafydd Walters & Anton Maslovsky"
+HOMEPAGE = "http://my-zaurus.narod.ru/"
+
+APPNAME = "qpealarmclock"
+APPTYPE = "binary"
+APPDESKTOP = "${S}/dist/opt/QtPalmtop/apps/Applications"
+
+SRC_URI = "http://my-zaurus.narod.ru/downloads/qpealarmclock-1.0.9.tar.gz \
+ file://fix-compile.patch "
+
+S = "${WORKDIR}/qpealarmclock"
+
+inherit palmtop
+
+do_install () {
+# create dirs
+ install -d ${D}${palmtopdir}/bin
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/pics/qpealarmclock
+# move files
+ install -m 644 ${S}/dist/opt/QtPalmtop/apps/Applications/qpealarmclock.desktop ${D}${palmtopdir}/apps/Applications/qpealarmclock.desktop
+ install -m 755 ${S}/dist/opt/QtPalmtop/bin/qpealarmclock ${D}${palmtopdir}/bin/qpealarmclock
+ install -m 644 ${S}/dist/opt/QtPalmtop/pics/qpealarmclock/frequency.png ${D}${palmtopdir}/pics/qpealarmclock/frequency.png
+ install -m 644 ${S}/dist/opt/QtPalmtop/pics/qpealarmclock/led.png ${D}${palmtopdir}/pics/qpealarmclock/led.png
+ install -m 644 ${S}/dist/opt/QtPalmtop/pics/qpealarmclock/QpeAlarmClock.png ${D}${palmtopdir}/pics/qpealarmclock/QpeAlarmClock.png
+ install -m 644 ${S}/dist/opt/QtPalmtop/pics/qpealarmclock/smallalarm.png ${D}${palmtopdir}/pics/qpealarmclock/smallalarm.png
+ install -m 644 ${S}/dist/opt/QtPalmtop/pics/qpealarmclock/sound.png ${D}${palmtopdir}/pics/qpealarmclock/sound.png
+}
+
+SRC_URI[md5sum] = "1d338397e60b8031458019bf4b322597"
+SRC_URI[sha256sum] = "5925931a046074598009ddee5c2989330f2fce570f6590c08a55ac955d1e64a6"
diff --git a/recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/fix-compile.patch b/recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/fix-compile.patch
new file mode 100644
index 0000000..a39c91d
--- /dev/null
+++ b/recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/fix-compile.patch
@@ -0,0 +1,67 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qpealarmclock/AlarmDetails.h~fix_compile
++++ qpealarmclock/AlarmDetails.h
+@@ -63,26 +63,9 @@
+
+ WEEKDAYS_IGNORE = 0xFF // do not change any days
+ };
+-
+- static const Weekdays flags[] =
+- {
+- WEEKDAYS_MONDAY,
+- WEEKDAYS_TUESDAY,
+- WEEKDAYS_WEDNSDAY,
+- WEEKDAYS_THURSDAY,
+- WEEKDAYS_FRIDAY,
+- WEEKDAYS_SATURDAY,
+- WEEKDAYS_SUNDAY
+- };
+
+- static const Weekdays weekdaysGroups[] =
+- {
+- WEEKDAYS_NONE,
+- WEEKDAYS_ALL,
+- WEEKDAYS_WORKDAYS,
+- WEEKDAYS_WEEKEND,
+- WEEKDAYS_IGNORE
+- };
++ static const Weekdays flags[];
++ static const AlarmDetails::Weekdays weekdaysGroups[];
+
+ AlarmDetails(int alarmNumberInit);
+ ~AlarmDetails();
+
+--- qpealarmclock/AlarmDetails.cpp~fix-compile-2
++++ qpealarmclock/AlarmDetails.cpp
+@@ -22,8 +22,25 @@
+ #include <qimage.h>
+ #include <qpixmap.h>
+
+-const AlarmDetails::Weekdays AlarmDetails::flags[];
+-const AlarmDetails::Weekdays AlarmDetails::weekdaysGroups[];
++const AlarmDetails::Weekdays AlarmDetails::flags[] =
++{
++ WEEKDAYS_MONDAY,
++ WEEKDAYS_TUESDAY,
++ WEEKDAYS_WEDNSDAY,
++ WEEKDAYS_THURSDAY,
++ WEEKDAYS_FRIDAY,
++ WEEKDAYS_SATURDAY,
++ WEEKDAYS_SUNDAY
++};
++
++const AlarmDetails::Weekdays AlarmDetails::weekdaysGroups[] =
++{
++ AlarmDetails::WEEKDAYS_NONE,
++ AlarmDetails::WEEKDAYS_ALL,
++ AlarmDetails::WEEKDAYS_WORKDAYS,
++ AlarmDetails::WEEKDAYS_WEEKEND,
++ AlarmDetails::WEEKDAYS_IGNORE
++};
+
+ AlarmDetails::AlarmDetails(int alarmNumberInit) : alarmNumber(alarmNumberInit)
+ {
diff --git a/recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/missing-files.tar.gz b/recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/missing-files.tar.gz
new file mode 100644
index 0000000..4779ce5
--- /dev/null
+++ b/recipes-qtopia/qpealarmclock/qpealarmclockapplet-1.0.9/missing-files.tar.gz
Binary files differ
diff --git a/recipes-qtopia/qpealarmclock/qpealarmclockapplet_1.0.9.bb b/recipes-qtopia/qpealarmclock/qpealarmclockapplet_1.0.9.bb
new file mode 100644
index 0000000..c553e85
--- /dev/null
+++ b/recipes-qtopia/qpealarmclock/qpealarmclockapplet_1.0.9.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "Alarm Clock Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Anton Maslovsky"
+HOMEPAGE = "http://my-zaurus.narod.ru/"
+RDEPENDS_${PN} = "qpealarmclock"
+RCONFLICTS_${PN} = "opie-clockapplet"
+RREPLACES_${PN} = "opie-clockapplet"
+
+PR = "r2"
+
+APPNAME = "qpealarmclockapplet"
+APPTYPE = "binary"
+
+SRC_URI = "http://my-zaurus.narod.ru/downloads/clockapplet.tar.gz \
+ file://missing-files.tar.gz \
+ file://fix-compile.patch "
+
+S = "${WORKDIR}/clockapplet"
+
+inherit palmtop
+
+pkg_postinst() {
+#!/bin/sh
+if [ -n "$D" ]; then exit 1; fi
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+do_install () {
+# create dirs
+ install -d ${D}${palmtopdir}/plugins/applets
+# libs
+ oe_libinstall -so libclockapplet ${D}${palmtopdir}/plugins/applets
+}
+
+SRC_URI[md5sum] = "7265673901eacb0b72a11cd6732cc698"
+SRC_URI[sha256sum] = "80fd209d065887729fdeb81f5a91638626e7ed31dabab40c446bd12042df9057"
diff --git a/recipes-qtopia/qpegps/files/qpegps.desktop b/recipes-qtopia/qpegps/files/qpegps.desktop
new file mode 100644
index 0000000..de5a93c
--- /dev/null
+++ b/recipes-qtopia/qpegps/files/qpegps.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=Moving Map
+Exec=qpegps
+Icon=qpegps
+Type=Application
+Name=qpeGPS
diff --git a/recipes-qtopia/qpegps/files/qpegps.png b/recipes-qtopia/qpegps/files/qpegps.png
new file mode 100644
index 0000000..211980e
--- /dev/null
+++ b/recipes-qtopia/qpegps/files/qpegps.png
Binary files differ
diff --git a/recipes-qtopia/qpegps/qpegps.inc b/recipes-qtopia/qpegps/qpegps.inc
new file mode 100644
index 0000000..68baf8c
--- /dev/null
+++ b/recipes-qtopia/qpegps/qpegps.inc
@@ -0,0 +1,37 @@
+DESCRIPTION = "A GPS navigation application for the Opie environment"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://qpegps.sourceforge.net/"
+
+DEPENDS = "gpsd"
+RRECOMMENDS_${PN} = "gpsd"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qpegps/qpegps_${PV}_src.zip \
+ file://qpegps.desktop \
+ file://qpegps.png"
+S = "${WORKDIR}/qpegps"
+
+inherit palmtop
+
+QMAKE_PROFILES = "qpegps.pro"
+EXTRA_QMAKEVARS_POST = "LIBS=-lqpe LIBS+=-lgps"
+OE_QMAKE_CFLAGS += " -DQWS "
+OE_QMAKE_LIBS_QT = ${QT_LIBRARY}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/help/html/qpegps_icons \
+ ${D}${palmtopdir}/qpegps/maps \
+ ${D}${palmtopdir}/qpegps/icons \
+ ${D}${palmtopdir}/qpegps/tracks
+ install -m 0755 qpegps ${D}${palmtopdir}/bin/
+ install -m 0644 ${WORKDIR}/qpegps.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${WORKDIR}/qpegps.png ${D}${palmtopdir}/pics/
+ install -m 0644 doc/qpegps.html ${D}${palmtopdir}/help/html/
+ install -m 0644 doc/qpegps_icons/*.png ${D}${palmtopdir}/help/html/qpegps_icons/
+ install -m 0644 icons/*.xpm ${D}${palmtopdir}/qpegps/icons/
+ install -m 0644 datum/*.dat ${D}${palmtopdir}/qpegps/
+}
diff --git a/recipes-qtopia/qpegps/qpegps_0.9.2.3.3.bb b/recipes-qtopia/qpegps/qpegps_0.9.2.3.3.bb
new file mode 100644
index 0000000..7cf6a84
--- /dev/null
+++ b/recipes-qtopia/qpegps/qpegps_0.9.2.3.3.bb
@@ -0,0 +1,6 @@
+require qpegps.inc
+
+PR = "r1"
+
+SRC_URI[md5sum] = "974ff064b13640329da21f565ac351e6"
+SRC_URI[sha256sum] = "5b070799c3eebf1dd94b1d800da0d532d2e9c353e061d4addc3466232e4a3072"
diff --git a/recipes-qtopia/qpegps/qpegps_0.9.3.1.bb b/recipes-qtopia/qpegps/qpegps_0.9.3.1.bb
new file mode 100644
index 0000000..675d33c
--- /dev/null
+++ b/recipes-qtopia/qpegps/qpegps_0.9.3.1.bb
@@ -0,0 +1,11 @@
+require qpegps.inc
+
+PR = "r1"
+
+do_configure_prepend() {
+ mv ${S}/Place.cpp ${S}/place.cpp
+ mv ${S}/Place.h ${S}/place.h
+}
+
+SRC_URI[md5sum] = "71b270b75bd773b81be3aaa0e4fc88cd"
+SRC_URI[sha256sum] = "f186ef1f117d3a9a9374ac19cfc8daad40a522638e5a758ec79fdd79fac351f4"
diff --git a/recipes-qtopia/qpegps/qpegps_svn.bb b/recipes-qtopia/qpegps/qpegps_svn.bb
new file mode 100644
index 0000000..3ae1d58
--- /dev/null
+++ b/recipes-qtopia/qpegps/qpegps_svn.bb
@@ -0,0 +1,15 @@
+require qpegps.inc
+
+PV = "0.0+svn${SRCDATE}"
+PR = "r1"
+
+SRC_URI = "svn://qpegps.svn.sourceforge.net/svnroot/;module=qpegps/trunk/qpegps;proto=https \
+ file://qpegps.desktop \
+ file://qpegps.png "
+
+S = "${WORKDIR}/qpegps/trunk/qpegps"
+
+do_configure_prepend() {
+ mv ${S}/Place.cpp ${S}/place.cpp
+ mv ${S}/Place.h ${S}/place.h
+}
diff --git a/recipes-qtopia/qpenmapfe/files/qpenmapfe.desktop b/recipes-qtopia/qpenmapfe/files/qpenmapfe.desktop
new file mode 100644
index 0000000..eb9648c
--- /dev/null
+++ b/recipes-qtopia/qpenmapfe/files/qpenmapfe.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=nmapfe for the QPE environment
+Exec=qpenmapfe
+Icon=qpenmapfe
+Type=Application
+Name=qpenmapfe
diff --git a/recipes-qtopia/qpenmapfe/files/qpenmapfe.png b/recipes-qtopia/qpenmapfe/files/qpenmapfe.png
new file mode 100644
index 0000000..b65d205
--- /dev/null
+++ b/recipes-qtopia/qpenmapfe/files/qpenmapfe.png
Binary files differ
diff --git a/recipes-qtopia/qpenmapfe/qpenmapfe_1.0.0.bb b/recipes-qtopia/qpenmapfe/qpenmapfe_1.0.0.bb
new file mode 100644
index 0000000..6a0ee5e
--- /dev/null
+++ b/recipes-qtopia/qpenmapfe/qpenmapfe_1.0.0.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "A frontend for the nmap port scanner, Qt/Embedded based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Dennis Webb"
+APPNAME = "qpenmapfe"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+PR = "r0"
+
+SRC_URI = "http://home.midsouth.rr.com/zaurus/qpenmapfe_${PV}_src.tar.gz \
+ file://qpenmapfe.desktop \
+ file://qpenmapfe.png"
+S = "${WORKDIR}/qpe-nmapfe"
+
+inherit opie
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/*.png ${D}${palmtopdir}/pics/
+
+}
+
+SRC_URI[md5sum] = "6e913e436a7b0f7572ec1ac77db41fde"
+SRC_URI[sha256sum] = "ded3abdab8333aaf7f451963f32465ca1451a38afb173ef64e0f898d907a6e02"
diff --git a/recipes-qtopia/qpf-fonts/files/update-qtfontdir b/recipes-qtopia/qpf-fonts/files/update-qtfontdir
new file mode 100755
index 0000000..34f2ffd
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/files/update-qtfontdir
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+usage()
+{
+ echo "usage: $0 [font directory, defaults to \$QTDIR/lib/fonts]"
+ exit 1
+}
+
+setVar()
+{
+ eval "$1='$2'"
+}
+
+getVar()
+{
+ eval "echo \$$1"
+}
+
+handleQPF()
+{
+ base=`basename $1`
+ family=`echo $base|cut -d_ -f1`
+ pt=`echo $base|cut -d_ -f2`
+ weight=`echo $base|cut -d_ -f3|sed -e 's,i$,,'`
+ if (echo $base|cut -d_ -f3|grep -q 'i$'); then
+ italic="y"
+ else
+ italic="n"
+ fi
+ echo "$family $base.qpf QPF $italic $weight $pt u"
+}
+
+if [ "$1" = "-f" ]; then
+ FORCE=1
+ shift
+else
+ FORCE=0
+fi
+
+if [ -z "$1" ]; then
+ if [ -n "$QTDIR" ]; then
+ fontdir=$QTDIR/lib/fonts
+ else
+ fontdir=@palmtopdir@/lib/fonts
+ fi
+else
+ fontdir=$1
+fi
+
+if ! [ -d $fontdir ]; then
+ echo Error: $fontdir not a directory
+ exit 1
+fi
+
+if [ -e $fontdir/fontdir ]; then
+ if find $fontdir -newer $fontdir/fontdir | grep -q "\(qpf\|ttf\)"; then
+ #echo "fontdir needs updating..."
+ :
+ elif [ "$FORCE" = "0" ]; then
+ #echo "fontdir already up to date - exiting"
+ exit 0
+ fi
+ cat $fontdir/fontdir | grep -v '\.qpf' > $fontdir/fontdir.new
+fi
+
+(
+ for file in `ls $fontdir/*.qpf 2>/dev/null |sed -e's,\.qpf$,,; s,_t[^_]*$,,;'|sort -u`; do
+ handleQPF $file
+ done
+) >> $fontdir/fontdir.new
+
+mv $fontdir/fontdir.new $fontdir/fontdir
+
+exit 0
diff --git a/recipes-qtopia/qpf-fonts/qpf-arabic_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-arabic_1.0.bb
new file mode 100644
index 0000000..9a0d22f
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-arabic_1.0.bb
@@ -0,0 +1,11 @@
+require qpf.inc
+
+DESCRIPTION = "Arabic fonts from Arabeyes.org"
+HOMEPAGE = "http://www.arabeyes.org"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/arabeyes/arabic-fonts-${PV}.tar.gz;subdir=${BPN}-${PV}"
+
+SRC_URI[md5sum] = "c6b1aa28bfecdd0c693a2afc43d7679e"
+SRC_URI[sha256sum] = "d5b93fb8dbfa73e4a542bb8ad7d61c8b48dcf79948da26da9e9ef3b1a49c4221"
diff --git a/recipes-qtopia/qpf-fonts/qpf-bitstream-vera-sans-mono_1.10.bb b/recipes-qtopia/qpf-fonts/qpf-bitstream-vera-sans-mono_1.10.bb
new file mode 100644
index 0000000..d84e3f7
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-bitstream-vera-sans-mono_1.10.bb
@@ -0,0 +1,39 @@
+require qpf.inc
+
+DESCRIPTION = "Bitstream Vera Monospaced Font, QPF for Qt/Embedded"
+LICENSE = "Bitstream Vera"
+PR = "r4"
+
+PROVIDES += "qpf-bitstream-vera-sans-mono-small"
+PROVIDES += "qpf-bitstream-vera-sans-mono-larger"
+PROVIDES += "qpf-bitstream-vera-sans-mono-large"
+PROVIDES += "qpf-bitstream-vera-sans-mono-huge"
+
+SRC_URI = "http://openzaurus.org/mirror/fonts-bitstream-vera-sans-mono.tar.gz"
+S = "${WORKDIR}/verasansmono"
+
+FILES_${PN} += "${palmtopdir}"
+
+PACKAGES = "${PN}-dbg \
+qpf-bitstream-vera-sans-mono-small \
+qpf-bitstream-vera-sans-mono-large \
+qpf-bitstream-vera-sans-mono-larger \
+qpf-bitstream-vera-sans-mono-huge ${PN}"
+
+FILES_qpf-bitstream-vera-sans-mono-small = "\
+${palmqtdir}/lib/fonts/verasansmono_10* \
+ ${palmqtdir}/lib/fonts/verasansmono_11* \
+ ${palmqtdir}/lib/fonts/verasansmono_12* \
+ ${palmqtdir}/lib/fonts/verasansmono_13* \
+ ${palmqtdir}/lib/fonts/verasansmono_14*"
+FILES_qpf-bitstream-vera-sans-mono-large = "\
+ ${palmqtdir}/lib/fonts/verasansmono_15*" \
+ ${palmqtdir}/lib/fonts/verasansmono_16* \
+ ${palmqtdir}/lib/fonts/verasansmono_17* \
+ ${palmqtdir}/lib/fonts/verasansmono_18* \
+ ${palmqtdir}/lib/fonts/verasansmono_19*"
+FILES_qpf-bitstream-vera-sans-mono-larger = "${palmqtdir}/lib/fonts/verasansmono_2*"
+FILES_qpf-bitstream-vera-sans-mono-huge = "${palmqtdir}/lib/fonts/verasansmono_3*"
+
+SRC_URI[md5sum] = "890615fa4b3e6c82cd1b9807b106f042"
+SRC_URI[sha256sum] = "42c15ed555719c27f67990454cdda791cbcd26ab98712fd88ca7e20e6ce3f1fd"
diff --git a/recipes-qtopia/qpf-fonts/qpf-bitstream-vera_1.10.bb b/recipes-qtopia/qpf-fonts/qpf-bitstream-vera_1.10.bb
new file mode 100644
index 0000000..29e3f62
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-bitstream-vera_1.10.bb
@@ -0,0 +1,27 @@
+require qpf.inc
+
+DESCRIPTION = "The Bitstream Vera fonts - QPF Edition"
+LICENSE = "Bitstream Vera"
+PR = "r3"
+
+PROVIDES = "qpf-bitstream-vera-small qpf-bitstream-vera-large"
+
+SRC_URI = "http://openzaurus.org/mirror/vera-qpf_1.10-3.tar.gz"
+S = "${WORKDIR}/vera-qpf"
+
+PACKAGES = "${PN}-dbg qpf-bitstream-vera-small qpf-bitstream-vera-large ${PN}"
+
+FILES_qpf-bitstream-vera-small = "${palmqtdir}/lib/fonts/vera_80_50* \
+${palmqtdir}/lib/fonts/vera_80_50i* ${palmqtdir}/lib/fonts/vera_80_75* ${palmqtdir}/lib/fonts/vera_80_75i* \
+${palmqtdir}/lib/fonts/vera_100_50* ${palmqtdir}/lib/fonts/vera_100_50i* ${palmqtdir}/lib/fonts/vera_100_75* \
+${palmqtdir}/lib/fonts/vera_100_75i* ${palmqtdir}/lib/fonts/vera_120_50* ${palmqtdir}/lib/fonts/vera_120_50i* \
+${palmqtdir}/lib/fonts/vera_120_75* ${palmqtdir}/lib/fonts/vera_120_75i*"
+
+FILES_qpf-bitstream-vera-large = "${palmqtdir}/lib/fonts/vera_140_50* ${palmqtdir}/lib/fonts/vera_140_50i* \
+${palmqtdir}/lib/fonts/vera_140_75* \
+${palmqtdir}/lib/fonts/vera_140_75i* ${palmqtdir}/lib/fonts/vera_160_50* ${palmqtdir}/lib/fonts/vera_160_50i* \
+${palmqtdir}/lib/fonts/vera_160_75* ${palmqtdir}/lib/fonts/vera_160_75i* ${palmqtdir}/lib/fonts/vera_180_50* \
+${palmqtdir}/lib/fonts/vera_180_50i* ${palmqtdir}/lib/fonts/vera_180_75* ${palmqtdir}/lib/fonts/vera_180_75i*"
+
+SRC_URI[md5sum] = "13327e7086fa5ceec44550745a914f42"
+SRC_URI[sha256sum] = "1ca61d438f3e5f4b7af853b48e16d68b226d568cd12eda36b94ffbf3cb9458c1"
diff --git a/recipes-qtopia/qpf-fonts/qpf-font-common_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-font-common_1.0.bb
new file mode 100644
index 0000000..ba4f086
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-font-common_1.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Common files for Qt/Embedded fonts"
+LICENSE = "GPL QPL"
+PR = "r4"
+
+SRC_URI = "file://update-qtfontdir"
+S = "${WORKDIR}/qt-${PV}"
+
+do_install() {
+ install -d ${D}${sbindir}/
+ install -m 0755 ${WORKDIR}/update-qtfontdir ${D}${sbindir}/
+ sed -i -e 's,@palmtopdir@,${palmtopdir},g' ${D}${sbindir}/update-qtfontdir
+}
+
+PACKAGE_ARCH = "all"
diff --git a/recipes-qtopia/qpf-fonts/qpf-freemono_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-freemono_1.0.bb
new file mode 100644
index 0000000..f1a5ece
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-freemono_1.0.bb
@@ -0,0 +1,13 @@
+require qpf.inc
+
+DESCRIPTION = "FreeMono font - QPF Edition"
+HOMEPAGE = "http://savannah.nongnu.org/projects/freefont/"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/${PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${PN}"
+
+SRC_URI[md5sum] = "28688d47cd80d3a6bb833adb22292e15"
+SRC_URI[sha256sum] = "5ac0513efe6270d45a2ada5dc653c434677da4282e026d8c1a9c156cd99e11c8"
diff --git a/recipes-qtopia/qpf-fonts/qpf-freeserif_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-freeserif_1.0.bb
new file mode 100644
index 0000000..cd7e7f4
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-freeserif_1.0.bb
@@ -0,0 +1,13 @@
+require qpf.inc
+
+DESCRIPTION = "FreeSerif font - QPF Edition"
+HOMEPAGE = "http://savannah.nongnu.org/projects/freefont/"
+LICENSE = "GPL"
+PR = "r3"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/${PN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${PN}"
+
+SRC_URI[md5sum] = "a7fa0210e02f42d5b14245e260bc72c3"
+SRC_URI[sha256sum] = "c8ee6e5e62b0a182dbee85865e56b1572e6875769b8256b39c75b2334a283e45"
diff --git a/recipes-qtopia/qpf-fonts/qpf-helvetica_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-helvetica_1.0.bb
new file mode 100644
index 0000000..306c116
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-helvetica_1.0.bb
@@ -0,0 +1,12 @@
+require qpf.inc
+
+DESCRIPTION = "Helvetica fonts - QPF Edition"
+HOMEPAGE = "http://www.pobox.sk/~mico/zaurus.html"
+LICENSE = "GPL QPL"
+PR = "r2"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/qpf-helvetica.tar.bz2"
+S = "${WORKDIR}/helvetica"
+
+SRC_URI[md5sum] = "20c040a004f4949b6849658148a78388"
+SRC_URI[sha256sum] = "4b6a122b4f95cf90f9639ca423947e70bba4e567099f9baeada419a51b11924b"
diff --git a/recipes-qtopia/qpf-fonts/qpf-hunkysans_0.3.0.bb b/recipes-qtopia/qpf-fonts/qpf-hunkysans_0.3.0.bb
new file mode 100644
index 0000000..0cef7f6
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-hunkysans_0.3.0.bb
@@ -0,0 +1,13 @@
+require qpf.inc
+
+DESCRIPTION = "Hunky Sans font - QPF Edition"
+HOMEPAGE = "http://www.yoper.com/ariszlo/hunky.html http://sourceforge.net/projects/hunkyfonts"
+LICENSE = "LGPL"
+PR = "r6"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/${PN}-${PV}-r4.tar.bz2"
+
+S = "${WORKDIR}/${PN}"
+
+SRC_URI[md5sum] = "917d7f8f3ad3c5b94c747b37d0a5e74a"
+SRC_URI[sha256sum] = "c3cdd8f234cbc1694af777dc1739ca4439cd472567d85f333dc11264d6bda7c8"
diff --git a/recipes-qtopia/qpf-fonts/qpf-hunkyserif_0.3.0.bb b/recipes-qtopia/qpf-fonts/qpf-hunkyserif_0.3.0.bb
new file mode 100644
index 0000000..e018e0d
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-hunkyserif_0.3.0.bb
@@ -0,0 +1,13 @@
+require qpf.inc
+
+DESCRIPTION = "Hunky Serif font - QPF Edition"
+HOMEPAGE = "http://www.yoper.com/ariszlo/hunky.html http://sourceforge.net/projects/hunkyfonts"
+LICENSE = "LGPL"
+PR = "r6"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/${PN}-${PV}-r4.tar.bz2"
+
+S = "${WORKDIR}/${PN}"
+
+SRC_URI[md5sum] = "02b38aeaf30c17e15b714b9594ca504d"
+SRC_URI[sha256sum] = "3c5890d6b0aee2d4c1e0c6b8101b6b5381985e86bc50dffc338b8601f4aa7ae8"
diff --git a/recipes-qtopia/qpf-fonts/qpf-qte_2.3.10.bb b/recipes-qtopia/qpf-fonts/qpf-qte_2.3.10.bb
new file mode 100644
index 0000000..07b6fbb
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-qte_2.3.10.bb
@@ -0,0 +1,38 @@
+require qpf.inc
+
+DESCRIPTION = "Qt/Embedded fonts version ${PV}"
+HOMEPAGE = "http://www.trolltech.com"
+LICENSE = "GPL QPL"
+PR = "r2"
+
+PROVIDES = "qte-font-helvetica-100 qte-font-helvetica-120"
+PROVIDES += "qte-font-fixed-70 qte-font-fixed-120"
+PROVIDES += "qte-font-helvetica-80 qte-font-helvetica-140 qte-font-helvetica-180 qte-font-helvetica-240"
+PROVIDES += "qte-font-smallsmooth-90"
+PROVIDES += "qte-font-micro-40"
+PROVIDES += "qte-font-japanese-230"
+PROVIDES += "qte-font-smoothmono-90 qte-font-smoothmono-100 qte-font-smoothmono-110 qte-font-smoothmono-120"
+PROVIDES += "qte-font-smoothmono-140 qte-font-smoothmono-180 qte-font-smoothmono-240"
+PROVIDES += "qte-font-smoothsans-90 qte-font-smoothsans-100 qte-font-smoothsans-110 qte-font-smoothsans-120"
+PROVIDES += "qte-font-smoothsans-140 qte-font-smoothsans-180 qte-font-smoothsans-240"
+PROVIDES += "qte-font-smoothserif-90 qte-font-smoothserif-100 qte-font-smoothserif-110 qte-font-smoothserif-120"
+PROVIDES += "qte-font-smoothserif-140 qte-font-smoothserif-180 qte-font-smoothserif-240"
+PROVIDES += "qte-font-smoothtimes-100 qte-font-smoothtimes-160 qte-font-smoothtimes-170"
+PROVIDES += "qte-font-smoothtimes-220 qte-font-smoothtimes-250 qte-font-smoothtimes-440"
+PROVIDES += "qte-font-unifont"
+RPROVIDES_qte-font-unifont += "virtual-japanese-font"
+RPROVIDES_qte-font-japanese += "virtual-japanese-font"
+
+SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz"
+S = "${WORKDIR}/qt-${PV}"
+
+QPF_PKGPATTERN = "qte-font-%s"
+QPF_DESCRIPTION = "Qt/E font %s"
+
+do_install() {
+ install -d ${D}${palmqtdir}/lib/fonts/
+ cp -pPR lib/fonts/* ${D}${palmqtdir}/lib/fonts/
+}
+
+SRC_URI[md5sum] = "1f7ad30113afc500cab7f5b2f4dec0d7"
+SRC_URI[sha256sum] = "883363eb0c94de3d1e36f3ab9e09a8f127418d497213cc1a0ed1a1588ecd66b8"
diff --git a/recipes-qtopia/qpf-fonts/qpf-qte_3.3.5.bb b/recipes-qtopia/qpf-fonts/qpf-qte_3.3.5.bb
new file mode 100644
index 0000000..b467271
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-qte_3.3.5.bb
@@ -0,0 +1,60 @@
+require qpf.inc
+
+DESCRIPTION = "Qt/Embedded fonts version ${PV}"
+HOMEPAGE = "http://www.trolltech.com"
+LICENSE = "GPL QPL"
+PR = "r6"
+
+SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-free-${PV}.tar.bz2"
+S = "${WORKDIR}/qt-embedded-free-${PV}"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ mkdir -p ${D}${sbindir}
+ mkdir -p ${D}${palmtopdir}/lib/fonts
+ cp -pPR lib/fonts/* ${D}${palmtopdir}/lib/fonts
+ # Delete all other font formats, Qt/E would have a dead slow
+ # application start time if it had to use any other font format
+ # as *.qpf ...
+ find ${D}${palmtopdir}/lib/fonts \
+ -name "*.bdf" \
+ -o -name "*.ttf" \
+ -o -name "*.pfa" \
+ -o -name "*.pfb" | xargs rm
+}
+
+PACKAGES = "qte-font-fixed"
+PROVIDES += "qte-font-fixed"
+FILES_qte-font-fixed = "${palmtopdir}/lib/fonts/fixed*"
+
+PACKAGES += "qte-font-helvetica-small"
+PROVIDES += "qte-font-helvetica-small"
+FILES_qte-font-helvetica-small = "${palmtopdir}/lib/fonts/helvetica_80*.qpf \
+ ${palmtopdir}/lib/fonts/helvetica_100*.qpf ${palmtopdir}/lib/fonts/helvetica_120*.qpf"
+
+PACKAGES += "qte-font-helvetica-large"
+PROVIDES += "qte-font-helvetica-large"
+FILES_qte-font-helvetica-large = "${palmtopdir}/lib/fonts/helvetica_140*.qpf \
+ ${palmtopdir}/lib/fonts/helvetica_180*.qpf ${palmtopdir}/lib/fonts/helvetica_240*.qpf"
+
+PACKAGES += "qte-font-smoothtimes"
+PROVIDES += "qte-font-smoothtimes"
+FILES_qte-font-smoothtimes = "${palmtopdir}/lib/fonts/smoothtimes*"
+
+PACKAGES += "qte-font-smallsmooth"
+PROVIDES += "qte-font-smallsmooth"
+FILES_qte-font-smallsmooth = "${palmtopdir}/lib/fonts/smallsmooth*"
+
+PACKAGES += "qte-font-unicode"
+PROVIDES += "qte-font-unicode"
+FILES_qte-font-unicode = "${palmtopdir}/lib/fonts/unifont*.qpf"
+
+PACKAGES += "qte-font-micro"
+PROVIDES += "qte-font-micro"
+FILES_qte-font-micro = "${palmtopdir}/lib/fonts/micro*.qpf"
+
+SRC_URI[md5sum] = "022d7a3c572b554f3c47b12cae71a8a4"
+SRC_URI[sha256sum] = "a97656796c0ef8e87dd83e6138bc406e31830d08f9b213e039d8be39ea65c8e4"
diff --git a/recipes-qtopia/qpf-fonts/qpf-terminus.bb b/recipes-qtopia/qpf-fonts/qpf-terminus.bb
new file mode 100644
index 0000000..cef1425
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-terminus.bb
@@ -0,0 +1,13 @@
+require qpf.inc
+
+DESCRIPTION = "Qt/Embedded terminus font"
+HOMEPAGE = "http://www.is-vn.bg/hamster/jimmy-en.html"
+LICENSE = "GPL"
+PR = "r3"
+
+#SRC_URI = "http://www.mn-solutions.de/downloads/mnci/terminus-fonts.tar.bz2" -> 404 error
+SRC_URI = "http://openzaurus.linuxtogo.org/download/3.5.4/sources/terminus-fonts.tar.bz2"
+S = "${WORKDIR}/terminus-fonts"
+
+SRC_URI[md5sum] = "e7b056a7619cdd460b5db5a7e263cafc"
+SRC_URI[sha256sum] = "cf7becd610e298d23780216f474907745bd29484f7f81308a9d13cf07f2a4e2d"
diff --git a/recipes-qtopia/qpf-fonts/qpf-unifont_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-unifont_1.0.bb
new file mode 100644
index 0000000..5509d63
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-unifont_1.0.bb
@@ -0,0 +1,11 @@
+require qpf.inc
+
+DESCRIPTION = "Unicode fonts - QPF Edition"
+LICENSE = "GPL QPL"
+RPROVIDES_${PN} = "virtual-japanese-font"
+PR = "r3"
+
+SRC_URI = "http://www.openzaurus.org/mirror/qpf-unifont.tar.bz2;subdir=${BPN}-${PV}"
+
+SRC_URI[md5sum] = "92f6df1c5edb26351332df4f576dbb10"
+SRC_URI[sha256sum] = "c1c5b5ab3431896502c9275daeb47610fb2a840faa6d580e140909a3f4ef7391"
diff --git a/recipes-qtopia/qpf-fonts/qpf-unismall_1.0.0.bb b/recipes-qtopia/qpf-fonts/qpf-unismall_1.0.0.bb
new file mode 100644
index 0000000..26fb7ce
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-unismall_1.0.0.bb
@@ -0,0 +1,12 @@
+require qpf.inc
+
+DESCRIPTION = "Lightweight Japanese font in 10 point suitable for 320x240 display"
+HOMEPAGE = "http://sourceforge.jp/projects/zaurus-ja/"
+LICENSE = "GPL"
+RPROVIDES_${PN} = "virtual-japanese-font"
+PR = "r5"
+
+SRC_URI = "http://osdn.dl.sourceforge.jp/zaurus-ja/773/unismall-${PV}.tar.gz;subdir=${BPN}-${PV}"
+
+SRC_URI[md5sum] = "fb608934ab87ad5203aebb85c2d130c7"
+SRC_URI[sha256sum] = "9f60583875713e7d45797f25c321c1bb36f43afbbe3c4ab4fd1f58c157022eb6"
diff --git a/recipes-qtopia/qpf-fonts/qpf-utopia_1.0.bb b/recipes-qtopia/qpf-fonts/qpf-utopia_1.0.bb
new file mode 100644
index 0000000..d936ba7
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf-utopia_1.0.bb
@@ -0,0 +1,12 @@
+require qpf.inc
+
+DESCRIPTION = "Utopia fonts - QPF Edition"
+HOMEPAGE = "http://www.pobox.sk/~mico/zaurus.html"
+LICENSE = "GPL QPL"
+PR = "r2"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/qpf-utopia.tar.bz2"
+S = "${WORKDIR}/utopia"
+
+SRC_URI[md5sum] = "fa2563f3c2332c5bcb05add075908f1e"
+SRC_URI[sha256sum] = "599eed45edc9942f4b37858507c2223cb8decb13fea180cf33c6961ad48a33d1"
diff --git a/recipes-qtopia/qpf-fonts/qpf.inc b/recipes-qtopia/qpf-fonts/qpf.inc
new file mode 100644
index 0000000..c2ff3c1
--- /dev/null
+++ b/recipes-qtopia/qpf-fonts/qpf.inc
@@ -0,0 +1,32 @@
+RDEPENDS_${PN} = "font-update-common qpf-font-common"
+
+do_configure() {
+ :
+}
+
+do_compile() {
+ :
+}
+
+pkg_postinst_fonts() {
+ update-fonts
+}
+
+pkg_postrm_fonts() {
+ update-fonts
+}
+
+python populate_packages_prepend() {
+ postinst = bb.data.getVar('pkg_postinst_fonts', d, 1)
+ postrm = bb.data.getVar('pkg_postrm_fonts', d, 1)
+ fontdir = bb.data.getVar('palmtopdir', d, 1) + '/lib/fonts'
+ pkgregex = "^([a-z-]*_[0-9]*).*.qpf$"
+ pkgpattern = bb.data.getVar('QPF_PKGPATTERN', d, 1) or 'qpf-%s'
+ pkgdescription = bb.data.getVar('QPF_DESCRIPTION', d, 1) or 'QPF font %s'
+
+ do_split_packages(d, root=fontdir, file_regex=pkgregex, output_pattern=pkgpattern,
+ description=pkgdescription, postinst=postinst, postrm=postrm, recursive=True, hook=None,
+ extra_depends='qpf-font-common')
+}
+
+PACKAGE_ARCH = "all"
diff --git a/recipes-qtopia/qplot/qplot/gcc3.patch b/recipes-qtopia/qplot/qplot/gcc3.patch
new file mode 100644
index 0000000..61f17d9
--- /dev/null
+++ b/recipes-qtopia/qplot/qplot/gcc3.patch
@@ -0,0 +1,41 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qplot/qplotmain/calciface.cpp~gcc3 2002-04-18 19:13:29.000000000 +0200
++++ qplot/qplotmain/calciface.cpp 2004-02-19 17:19:37.000000000 +0100
+@@ -38,7 +38,7 @@
+ printf("ibase=%d\n", ibase);
+ }
+ */
+-void sendSpecialVarDecCommand(const char *var, int scale, bool return_to_prev_ibase=true) {
++void sendSpecialVarDecCommand(const char *var, int scale, bool return_to_prev_ibase) {
+ printf("ibase_save=ibase\nibase=ibase_decimal\n");
+ printf("%s=%d\n", var, scale);
+ if( return_to_prev_ibase ) {
+@@ -78,4 +78,4 @@
+ "\n");
+ while ( receiveResult() == NULL )
+ usleep(50);
+-}
+\ Kein Zeilenumbruch am Dateiende.
++}
+--- qplot/qplotmain/calciface.h~gcc3 2002-04-18 19:13:08.000000000 +0200
++++ qplot/qplotmain/calciface.h 2004-02-19 17:21:38.000000000 +0100
+@@ -18,6 +18,9 @@
+ #include <unistd.h>
+ #include <string.h>
+
++#ifndef CALCIFACE_H
++#define CALCIFACE_H
++
+ void resetEngineState ( );
+ void saveIBaseDecimal ( );
+ void saveScaleWorkaround ( bool save);
+@@ -29,3 +32,5 @@
+
+ char * receiveResult ( );
+
++#endif
++
diff --git a/recipes-qtopia/qplot/qplot_2.0.1+cvs20020420.bb b/recipes-qtopia/qplot/qplot_2.0.1+cvs20020420.bb
new file mode 100644
index 0000000..76b422c
--- /dev/null
+++ b/recipes-qtopia/qplot/qplot_2.0.1+cvs20020420.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "QPlot is an Advanced Matematical Calculator for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://qplot.sourceforge.net/"
+SRCDATE = "20020420"
+#Change to form x.y.z+cvs${SRCDATE} when 2.0.1 changes in PV
+PV = "2.0.1-cvs-${SRCDATE}"
+PR = "r1"
+
+SRC_URI = "cvs://anonymous@qplot.cvs.sourceforge.net/cvsroot/qplot;module=qplot \
+ file://gcc3.patch"
+S = "${WORKDIR}/qplot"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/lib \
+ ${D}${palmtopdir}/plugins/inputmethods
+ install -m 755 qplotmain/qplot ${D}${palmtopdir}/bin/qplot
+ install -m 644 qplotmain/qplot.png ${D}${palmtopdir}/pics/
+ install -m 644 qplotmain/qplot-const.b ${D}${palmtopdir}/lib/
+ install -m 644 qplotmain/qplot-math.b ${D}${palmtopdir}/lib/
+ oe_libinstall -so -C qplotmath libqplotmath ${D}${palmtopdir}/plugins/inputmethods/
+ install -m 644 qplot.desktop ${D}${palmtopdir}/apps/Applications/qplot.desktop
+}
diff --git a/recipes-qtopia/qpphoto/files/draw.patch b/recipes-qtopia/qpphoto/files/draw.patch
new file mode 100644
index 0000000..d4f7dd3
--- /dev/null
+++ b/recipes-qtopia/qpphoto/files/draw.patch
@@ -0,0 +1,35 @@
+--- qpPhoto_1.0.2/draw.cpp 2002-10-29 22:19:05.000000000 +0100
++++ qpPhoto_1.0.2/draw.cpp.new 2006-05-12 18:42:08.000000000 +0200
+@@ -16,6 +16,7 @@
+ #include <qspinbox.h>
+ #include <qpainter.h>
+ #include <qlabel.h>
++#include <qlayout.h>
+ #include <qdialog.h>
+ #include <qpe/fontdatabase.h>
+ #include <qstringlist.h>
+@@ -781,7 +782,7 @@
+
+
+
+-Draw::Draw( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 )
++Draw::Draw( QWidget* parent, const char* name, WFlags fl )
+ :DrawWidget(parent, name, fl)
+ {
+ /*currentTool = dtNull;
+@@ -799,9 +800,12 @@
+ FontDatabase fdb;
+ availFonts = fdb.families();
+
+-
+- dv = new DrawView(GrFrame, "dv");
+- dv->setGeometry( QRect( 1, 1, 210, 210) );
++ dv = new DrawView(this, "dv");
++ dv->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, dv->sizePolicy().hasHeightForWidth() ) );
++ dv->setMinimumSize( QSize( 210, 210 ) );
++ dv->setFrameShape( QFrame::WinPanel );
++ dv->setFrameShadow( QFrame::Sunken );
++ Layout7->addWidget( dv );
+
+ dv->font.setFamily(availFonts[0]);
+ dv->font.setPointSize(12);
diff --git a/recipes-qtopia/qpphoto/files/drawview.patch b/recipes-qtopia/qpphoto/files/drawview.patch
new file mode 100644
index 0000000..f64bef3
--- /dev/null
+++ b/recipes-qtopia/qpphoto/files/drawview.patch
@@ -0,0 +1,11 @@
+--- qpPhoto_1.0.2/drawview.cpp 2002-11-23 03:34:46.000000000 +0100
++++ qpPhoto_1.0.2/drawview.cpp.new 2006-05-11 22:33:44.000000000 +0200
+@@ -32,7 +32,7 @@
+ static const int zoomfactors[nzoomfactors] = {1,2,3,4,8,16,32}; // 25% 50% 75% 100% 200% 400% 800%
+ #define ZOOMINDEXNORMAL 3
+
+-DrawView::DrawView(QWidget* parent = 0, const char* name = 0, WFlags fl = 0)
++DrawView::DrawView(QWidget* parent, const char* name, WFlags fl)
+ :QScrollView(parent, name, fl)
+ {
+ viewX = 0;
diff --git a/recipes-qtopia/qpphoto/files/drawwidget.patch b/recipes-qtopia/qpphoto/files/drawwidget.patch
new file mode 100644
index 0000000..95a0a52
--- /dev/null
+++ b/recipes-qtopia/qpphoto/files/drawwidget.patch
@@ -0,0 +1,2414 @@
+--- qpPhoto_1.0.2/drawwidget.ui 2002-08-23 00:42:49.000000000 +0200
++++ qpPhoto_1.0.2/drawwidget.ui.new 2006-05-12 18:32:14.000000000 +0200
+@@ -11,1160 +11,1287 @@
+ <rect>
+ <x>0</x>
+ <y>0</y>
+- <width>238</width>
+- <height>262</height>
++ <width>451</width>
++ <height>294</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>caption</name>
+ <string>DrawWidget</string>
+ </property>
+- <widget>
+- <class>QFrame</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>FrStatus</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>2</x>
+- <y>236</y>
+- <width>232</width>
+- <height>18</height>
+- </rect>
+- </property>
++ <property>
++ <name>layoutMargin</name>
++ </property>
++ <property>
++ <name>layoutSpacing</name>
++ </property>
++ <vbox>
+ <property stdset="1">
+- <name>frameShape</name>
+- <enum>StyledPanel</enum>
++ <name>margin</name>
++ <number>2</number>
+ </property>
+ <property stdset="1">
+- <name>frameShadow</name>
+- <enum>Sunken</enum>
++ <name>spacing</name>
++ <number>2</number>
+ </property>
+ <widget>
++ <class>QLayoutWidget</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Layout6</cstring>
++ </property>
++ <hbox>
++ <property stdset="1">
++ <name>margin</name>
++ <number>0</number>
++ </property>
++ <property stdset="1">
++ <name>spacing</name>
++ <number>6</number>
++ </property>
++ <widget>
++ <class>QLabel</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>TypeLabel</cstring>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string>Font</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QComboBox</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Selection</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizeLimit</name>
++ <number>12</number>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>font</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QLabel</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>SizeLabel</cstring>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string>Size</string>
++ </property>
++ <property stdset="1">
++ <name>alignment</name>
++ <set>AlignVCenter|AlignRight</set>
++ </property>
++ <property>
++ <name>hAlign</name>
++ </property>
++ </widget>
++ <widget>
++ <class>QSpinBox</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Size</cstring>
++ </property>
++ <property stdset="1">
++ <name>maxValue</name>
++ <number>24</number>
++ </property>
++ <property stdset="1">
++ <name>minValue</name>
++ <number>6</number>
++ </property>
++ <property stdset="1">
++ <name>value</name>
++ <number>12</number>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>size</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QComboBox</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Operation</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizeLimit</name>
++ <number>16</number>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Bold</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>28</width>
++ <height>28</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image0</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>flat</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>bold</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Italic</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>28</width>
++ <height>28</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image1</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>flat</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>italic</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Underline</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>28</width>
++ <height>28</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image2</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>flat</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>underline</string>
++ </property>
++ </widget>
++ <spacer>
++ <property>
++ <name>name</name>
++ <cstring>Spacer2</cstring>
++ </property>
++ <property stdset="1">
++ <name>orientation</name>
++ <enum>Horizontal</enum>
++ </property>
++ <property stdset="1">
++ <name>sizeType</name>
++ <enum>Expanding</enum>
++ </property>
++ <property>
++ <name>sizeHint</name>
++ <size>
++ <width>1</width>
++ <height>1</height>
++ </size>
++ </property>
++ </spacer>
++ </hbox>
++ </widget>
++ <widget>
++ <class>QLayoutWidget</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Layout7</cstring>
++ </property>
++ <property>
++ <name>layoutSpacing</name>
++ </property>
++ <hbox>
++ <property stdset="1">
++ <name>margin</name>
++ <number>0</number>
++ </property>
++ <property stdset="1">
++ <name>spacing</name>
++ <number>0</number>
++ </property>
++ <widget>
++ <class>QLayoutWidget</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>Layout3</cstring>
++ </property>
++ <property>
++ <name>layoutSpacing</name>
++ </property>
++ <vbox>
++ <property stdset="1">
++ <name>margin</name>
++ <number>0</number>
++ </property>
++ <property stdset="1">
++ <name>spacing</name>
++ <number>0</number>
++ </property>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbCursor</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image3</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>move selection</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbBrush</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image4</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>paint</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbLine</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image5</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>draw lines</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbPolygon</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image6</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>draw shapes</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbSelect</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image7</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>select region</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbText</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>font</name>
++ <font>
++ <family>abisource-courier new</family>
++ <pointsize>14</pointsize>
++ <bold>1</bold>
++ </font>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image8</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>insert text</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbFill</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image9</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>fill</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbPicker</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image10</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>pick color</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>PbErazor</cstring>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>21</width>
++ <height>21</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>pixmap</name>
++ <pixmap>image11</pixmap>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property stdset="1">
++ <name>toggleButton</name>
++ <bool>true</bool>
++ </property>
++ <property>
++ <name>toolTip</name>
++ <string>erease</string>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>FgColor</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>18</width>
++ <height>16</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>palette</name>
++ <palette>
++ <active>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>192</red>
++ <green>192</green>
++ <blue>192</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ </active>
++ <disabled>
++ <color>
++ <red>128</red>
++ <green>128</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>128</red>
++ <green>128</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>192</red>
++ <green>192</green>
++ <blue>192</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ </disabled>
++ <inactive>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>192</red>
++ <green>192</green>
++ <blue>192</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ </inactive>
++ </palette>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>flat</name>
++ <bool>true</bool>
++ </property>
++ </widget>
++ <widget>
++ <class>QPushButton</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>BgColor</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>18</width>
++ <height>16</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>palette</name>
++ <palette>
++ <active>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>127</red>
++ <green>127</green>
++ <blue>127</blue>
++ </color>
++ <color>
++ <red>170</red>
++ <green>170</green>
++ <blue>170</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>192</red>
++ <green>192</green>
++ <blue>192</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ </active>
++ <disabled>
++ <color>
++ <red>128</red>
++ <green>128</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>127</red>
++ <green>127</green>
++ <blue>127</blue>
++ </color>
++ <color>
++ <red>170</red>
++ <green>170</green>
++ <blue>170</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>128</red>
++ <green>128</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>192</red>
++ <green>192</green>
++ <blue>192</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ </disabled>
++ <inactive>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>127</red>
++ <green>127</green>
++ <blue>127</blue>
++ </color>
++ <color>
++ <red>170</red>
++ <green>170</green>
++ <blue>170</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ <color>
++ <red>192</red>
++ <green>192</green>
++ <blue>192</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>0</blue>
++ </color>
++ <color>
++ <red>0</red>
++ <green>0</green>
++ <blue>128</blue>
++ </color>
++ <color>
++ <red>255</red>
++ <green>255</green>
++ <blue>255</blue>
++ </color>
++ </inactive>
++ </palette>
++ </property>
++ <property stdset="1">
++ <name>text</name>
++ <string></string>
++ </property>
++ <property stdset="1">
++ <name>flat</name>
++ <bool>true</bool>
++ </property>
++ </widget>
++ <spacer>
++ <property>
++ <name>name</name>
++ <cstring>Spacer1</cstring>
++ </property>
++ <property stdset="1">
++ <name>orientation</name>
++ <enum>Vertical</enum>
++ </property>
++ <property stdset="1">
++ <name>sizeType</name>
++ <enum>Expanding</enum>
++ </property>
++ <property>
++ <name>sizeHint</name>
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </vbox>
++ </widget>
++ <widget>
++ <class>QFrame</class>
++ <property stdset="1">
++ <name>name</name>
++ <cstring>GrFrame</cstring>
++ </property>
++ <property stdset="1">
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>0</hsizetype>
++ <vsizetype>7</vsizetype>
++ </sizepolicy>
++ </property>
++ <property stdset="1">
++ <name>minimumSize</name>
++ <size>
++ <width>0</width>
++ <height>0</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>maximumSize</name>
++ <size>
++ <width>1</width>
++ <height>32767</height>
++ </size>
++ </property>
++ <property stdset="1">
++ <name>frameShape</name>
++ <enum>NoFrame</enum>
++ </property>
++ <property stdset="1">
++ <name>frameShadow</name>
++ <enum>Plain</enum>
++ </property>
++ <property stdset="1">
++ <name>lineWidth</name>
++ <number>0</number>
++ </property>
++ </widget>
++ </hbox>
++ </widget>
++ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>StatusLine</cstring>
+ </property>
+ <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>2</x>
+- <y>2</y>
+- <width>228</width>
+- <height>14</height>
+- </rect>
++ <name>sizePolicy</name>
++ <sizepolicy>
++ <hsizetype>5</hsizetype>
++ <vsizetype>0</vsizetype>
++ </sizepolicy>
+ </property>
+ <property stdset="1">
+- <name>text</name>
+- <string>Status</string>
++ <name>frameShape</name>
++ <enum>Box</enum>
++ </property>
++ <property stdset="1">
++ <name>frameShadow</name>
++ <enum>Sunken</enum>
+ </property>
+ <property stdset="1">
+- <name>indent</name>
+- <number>1</number>
++ <name>text</name>
++ <string>Status</string>
+ </property>
+ </widget>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Italic</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>192</x>
+- <y>1</y>
+- <width>20</width>
+- <height>22</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image0</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>flat</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>italic</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QSpinBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Size</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>135</x>
+- <y>0</y>
+- <width>36</width>
+- <height>23</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>maxValue</name>
+- <number>24</number>
+- </property>
+- <property stdset="1">
+- <name>minValue</name>
+- <number>6</number>
+- </property>
+- <property stdset="1">
+- <name>value</name>
+- <number>12</number>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>size</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Bold</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>172</x>
+- <y>1</y>
+- <width>20</width>
+- <height>22</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image1</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>flat</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>bold</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>TypeLabel</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>1</x>
+- <y>3</y>
+- <width>27</width>
+- <height>20</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Font</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Underline</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>212</x>
+- <y>1</y>
+- <width>20</width>
+- <height>22</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image2</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>flat</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>underline</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>FgColor</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>1</x>
+- <y>204</y>
+- <width>18</width>
+- <height>16</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>palette</name>
+- <palette>
+- <active>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>192</red>
+- <green>192</green>
+- <blue>192</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- </active>
+- <disabled>
+- <color>
+- <red>128</red>
+- <green>128</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>128</red>
+- <green>128</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>192</red>
+- <green>192</green>
+- <blue>192</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- </disabled>
+- <inactive>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>192</red>
+- <green>192</green>
+- <blue>192</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- </inactive>
+- </palette>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>flat</name>
+- <bool>true</bool>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>BgColor</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>1</x>
+- <y>219</y>
+- <width>18</width>
+- <height>16</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>palette</name>
+- <palette>
+- <active>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>127</red>
+- <green>127</green>
+- <blue>127</blue>
+- </color>
+- <color>
+- <red>170</red>
+- <green>170</green>
+- <blue>170</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>192</red>
+- <green>192</green>
+- <blue>192</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- </active>
+- <disabled>
+- <color>
+- <red>128</red>
+- <green>128</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>127</red>
+- <green>127</green>
+- <blue>127</blue>
+- </color>
+- <color>
+- <red>170</red>
+- <green>170</green>
+- <blue>170</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>128</red>
+- <green>128</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>192</red>
+- <green>192</green>
+- <blue>192</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- </disabled>
+- <inactive>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>127</red>
+- <green>127</green>
+- <blue>127</blue>
+- </color>
+- <color>
+- <red>170</red>
+- <green>170</green>
+- <blue>170</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- <color>
+- <red>192</red>
+- <green>192</green>
+- <blue>192</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>0</blue>
+- </color>
+- <color>
+- <red>0</red>
+- <green>0</green>
+- <blue>128</blue>
+- </color>
+- <color>
+- <red>255</red>
+- <green>255</green>
+- <blue>255</blue>
+- </color>
+- </inactive>
+- </palette>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>flat</name>
+- <bool>true</bool>
+- </property>
+- </widget>
+- <widget>
+- <class>QLabel</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>SizeLabel</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>111</x>
+- <y>4</y>
+- <width>23</width>
+- <height>16</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string>Size</string>
+- </property>
+- <property stdset="1">
+- <name>alignment</name>
+- <set>AlignVCenter|AlignRight</set>
+- </property>
+- <property>
+- <name>hAlign</name>
+- </property>
+- </widget>
+- <widget>
+- <class>QComboBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Selection</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>32</x>
+- <y>0</y>
+- <width>80</width>
+- <height>23</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>sizeLimit</name>
+- <number>12</number>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>font</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QComboBox</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>Operation</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>171</x>
+- <y>0</y>
+- <width>61</width>
+- <height>22</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>sizeLimit</name>
+- <number>16</number>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbCursor</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>24</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image3</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>move selection</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbBrush</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>44</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image4</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>paint</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbLine</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>64</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image5</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>draw lines</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbPolygon</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>84</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image6</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>draw shapes</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbSelect</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>104</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image7</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>select region</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbText</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>124</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>font</name>
+- <font>
+- <family>abisource-courier new</family>
+- <pointsize>14</pointsize>
+- <bold>1</bold>
+- </font>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image8</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>insert text</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbFill</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>144</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image9</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>fill</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbPicker</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>164</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image10</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>pick color</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QPushButton</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>PbErazor</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>0</x>
+- <y>184</y>
+- <width>21</width>
+- <height>21</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>text</name>
+- <string></string>
+- </property>
+- <property stdset="1">
+- <name>pixmap</name>
+- <pixmap>image11</pixmap>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property stdset="1">
+- <name>toggleButton</name>
+- <bool>true</bool>
+- </property>
+- <property>
+- <name>toolTip</name>
+- <string>erease</string>
+- </property>
+- </widget>
+- <widget>
+- <class>QFrame</class>
+- <property stdset="1">
+- <name>name</name>
+- <cstring>GrFrame</cstring>
+- </property>
+- <property stdset="1">
+- <name>geometry</name>
+- <rect>
+- <x>22</x>
+- <y>24</y>
+- <width>212</width>
+- <height>212</height>
+- </rect>
+- </property>
+- <property stdset="1">
+- <name>frameShape</name>
+- <enum>WinPanel</enum>
+- </property>
+- <property stdset="1">
+- <name>frameShadow</name>
+- <enum>Sunken</enum>
+- </property>
+- </widget>
++ </vbox>
+ </widget>
+ <images>
+ <image>
+ <name>image0</name>
+- <data format="XPM.GZ" length="394">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022230543251d2e253d856405bffcbc54105b19c856360003b0141a40882983009a981e4c884a627021ea882184a822860801147fc08152ad351700811545c3</data>
++ <data format="XPM.GZ" length="394">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022230543251d2e253d856405bffcbc54105b19c856360003b0141a808829c30092981e840b15441183526489619887db5eace629a38be95120866c073c0c90dd871a56b5d65c00316543a8</data>
+ </image>
+ <image>
+ <name>image1</name>
+- <data format="XPM.GZ" length="394">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022230543251d2e253d856405bffcbc54105b19c856360003b0141a808829c30092981e840b15441183526489619887db5eace629a38be95120866c073c0c90dd871a56b5d65c00316543a8</data>
++ <data format="XPM.GZ" length="394">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022230543251d2e253d856405bffcbc54105b19c856360003b0141a40882983009a981e4c884a627021ea882184a822860801147fc08152ad351700811545c3</data>
+ </image>
+ <image>
+ <name>image2</name>
diff --git a/recipes-qtopia/qpphoto/qpphoto_1.0.2.bb b/recipes-qtopia/qpphoto/qpphoto_1.0.2.bb
new file mode 100644
index 0000000..199a5f7
--- /dev/null
+++ b/recipes-qtopia/qpphoto/qpphoto_1.0.2.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Painting program. Small picture editor."
+HOMEPAGE = "http://zaurus.colognearts.de/qpphoto/"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "qpPhoto"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+PR = "r0"
+
+inherit opie
+
+SRC_URI = "http://zaurus.colognearts.de/qpphoto/qpPhoto_1.0.2_src.tar.gz \
+ file://draw.patch \
+ file://drawview.patch \
+ file://drawwidget.patch "
+
+S = "${WORKDIR}/qpPhoto_1.0.2"
+
+do_compile() {
+ export STAGING_BINDIR=${STAGING_BINDIR}
+ oe_runmake clean
+ oe_runmake
+}
+
+do_install() {
+# install -d ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/pics
+# install -d ${D}${bindir}
+
+ install -m 0644 qpPhoto.png ${D}${palmtopdir}/pics
+# install -m 0644 qpPhoto.desktop ${D}${palmtopdir}/apps/Applications
+# install -m 0755 qpPhoto ${D}${bindir}
+}
+
+# FILES_${PN} = " ${palmtopdir}/apps/Applications/qpPhoto.desktop ${palmtopdir}/pics/qpPhoto.png ${bindir}/qpPhoto "
+
+SRC_URI[md5sum] = "c3c806bd2910e6c49617acb230eee306"
+SRC_URI[sha256sum] = "ba2d98c4fabb31a66a66a235a5bbc9cb9e8a2c6f3939e71826d8763a8e7e3c0d"
diff --git a/recipes-qtopia/qscintilla/files/no-external-lexers.patch b/recipes-qtopia/qscintilla/files/no-external-lexers.patch
new file mode 100644
index 0000000..0214a53
--- /dev/null
+++ b/recipes-qtopia/qscintilla/files/no-external-lexers.patch
@@ -0,0 +1,23 @@
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- src/ExternalLexer.cpp~no-external-lexers
++++ src/ExternalLexer.cpp
+@@ -110,7 +110,7 @@
+ // Initialise some members...
+ first = NULL;
+ last = NULL;
+-
++#ifndef ZPATCH
+ // Load the DLL
+ lib = DynamicLibrary::Load(ModuleName);
+ if (lib->IsValid()) {
+@@ -155,6 +155,7 @@
+ }
+ }
+ }
++#endif
+ next = NULL;
+ }
+
diff --git a/recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3.bb b/recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3.bb
new file mode 100644
index 0000000..51e8d98
--- /dev/null
+++ b/recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Qt/Embedded bindings for the Scintilla source code editor component"
+SECTION = "opie/libs"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://www.mneuroth.de/privat/zaurus/qscintilla-${PV}_zaurus.tar.gz"
+S = "${WORKDIR}/qscintilla-${PV}/qt"
+
+inherit opie
+
+QMAKE_PROFILES = "qscintilla.pro"
+
+do_stage() {
+ install -m 0644 qextscintilla*.h ${STAGING_INCDIR}/
+ install -m 0644 libqscintilla.a ${STAGING_LIBDIR}/
+}
+
+SRC_URI[md5sum] = "3823bdfc40af13adcfd5f44e6dae5cf0"
+SRC_URI[sha256sum] = "5df3def9192f704c52ee3ddcf4388a2977f237be1663353a97d836b69cc4f811"
diff --git a/recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3b.bb b/recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3b.bb
new file mode 100644
index 0000000..e6d37f5
--- /dev/null
+++ b/recipes-qtopia/qscintilla/qscintilla_1.60-gpl-1.3b.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Qt/Embedded bindings for the Scintilla source code editor component"
+SECTION = "opie/libs"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://www.mneuroth.de/privat/zaurus/qscintilla-${PV}_zaurus.tar.gz"
+S = "${WORKDIR}/qscintilla-1.60-gpl-1.3/qt"
+
+inherit opie
+
+QMAKE_PROFILES = "qscintilla.pro"
+
+do_stage() {
+ install -m 0644 qextscintilla*.h ${STAGING_INCDIR}/
+ install -m 0644 libqscintilla.a ${STAGING_LIBDIR}/
+}
+
+SRC_URI[md5sum] = "44939519d6623596d874b73695176fef"
+SRC_URI[sha256sum] = "605ce768faedaebcfcff86c3e720c23a114f63850c4f4e975f83de01171a89e0"
diff --git a/recipes-qtopia/qscintilla/qscintilla_1.65-gpl-1.6.bb b/recipes-qtopia/qscintilla/qscintilla_1.65-gpl-1.6.bb
new file mode 100644
index 0000000..1e1b3a4
--- /dev/null
+++ b/recipes-qtopia/qscintilla/qscintilla_1.65-gpl-1.6.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Qt/Embedded bindings for the Scintilla source code editor component"
+SECTION = "opie/libs"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://www.mneuroth.de/privat/zaurus/qscintilla-${PV}_zaurus.tar.gz \
+ file://no-external-lexers.patch;patchdir=..;striplevel=0"
+
+S = "${WORKDIR}/qscintilla-${PV}/qt"
+
+inherit opie
+
+QMAKE_PROFILES = "qscintilla.pro"
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${S}/patches \
+ DEFINES+=ZPATCH DEFINES+=ZAURUS \
+ HEADERS-=qextscintillaprinter.h \
+ SOURCES-=qextscintillaprinter.cpp \
+ SOURCES+=patches/qsettings.cpp \
+ SOURCES+=patches/qsettings_unix.cpp \
+ HEADERS+=patches/qsettings.h"
+
+PARALLEL_MAKE = ""
+
+do_install() {
+ install -d ${D}${libdir} ${D}${includedir}
+ oe_libinstall -so libqscintilla ${D}${libdir}
+ install -m 0644 qextscintilla*.h ${D}${includedir}/
+}
+
+FILES_${PN} = "${libdir}"
+
+SRC_URI[md5sum] = "999d3a8b916cd1ef13a66843f6f26db7"
+SRC_URI[sha256sum] = "e828dc4aaa7948eafee343e70190dd8003498d50d9258d75d47f05f9970683db"
diff --git a/recipes-qtopia/qwt/files/qt2-fix.patch b/recipes-qtopia/qwt/files/qt2-fix.patch
new file mode 100644
index 0000000..821846a
--- /dev/null
+++ b/recipes-qtopia/qwt/files/qt2-fix.patch
@@ -0,0 +1,408 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qwt-4.2.0rc1/include/qwt_global.h~qt2-fix
++++ qwt-4.2.0rc1/include/qwt_global.h
+@@ -58,7 +58,7 @@
+ #define QWT_EXPORT
+ #endif
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ // Use old QArray instead of QMemArray
+ #define QWT_NO_MEMARRAY
+ #endif
+@@ -68,7 +68,7 @@
+ #undef QWT_NO_STL
+ // #define QWT_NO_STL // disable Standard Template Library based classes
+ #if defined(_MSC_VER)
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ // tmake does not produce the missing -GX flag for exception handling
+ #define QWT_NO_STL
+ #else
+--- qwt-4.2.0rc1/include/qwt_picker.h~qt2-fix
++++ qwt-4.2.0rc1/include/qwt_picker.h
+@@ -89,7 +89,7 @@
+ Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
+ Q_PROPERTY(bool isEnabled READ isEnabled WRITE setEnabled)
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ // Unfortunately moc is not aware of #ifdefs. To enable the QPen
+ // attributes as properties uncomment the following lines.
+
+--- qwt-4.2.0rc1/src/qwt_text.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_text.cpp
+@@ -337,7 +337,7 @@
+ //! Set the font
+ void QwtRichText::setFont(const QFont &font)
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ d_doc->setDefaultFont(font);
+ #endif
+ QwtText::setFont(font);
+@@ -359,7 +359,7 @@
+ */
+ int QwtRichText::heightForWidth(int width) const
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ const QFont defaultFont = QFont::defaultFont();
+ QFont::setDefaultFont(font());
+ #endif
+@@ -367,7 +367,7 @@
+ const QwtLayoutMetrics metrics(QwtPainter::metricsMap());
+ const int height = metrics.heightForWidth(*d_doc, width);
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ QFont::setDefaultFont(defaultFont);
+ #endif
+
+@@ -390,7 +390,7 @@
+ painter->save();
+
+ painter->setPen(color());
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ const QFont defaultFont = QFont::defaultFont();
+ QFont::setDefaultFont(font());
+ #else
+@@ -399,7 +399,7 @@
+
+ QwtPainter::drawSimpleRichText(painter, rect, alignment(), *d_doc);
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ QFont::setDefaultFont(defaultFont);
+ #endif
+ painter->restore();
+@@ -407,7 +407,7 @@
+
+ QRect QwtRichText::boundingRect(QPainter *painter) const
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ const QFont defaultFont = QFont::defaultFont();
+ QFont::setDefaultFont(font());
+ #endif
+@@ -415,7 +415,7 @@
+ const QwtLayoutMetrics metrics(QwtPainter::metricsMap());
+ const QRect rect = metrics.boundingRect(*d_doc, alignment(), painter);
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ QFont::setDefaultFont(defaultFont);
+ #endif
+
+@@ -428,7 +428,7 @@
+ QString rich = text;
+
+ // By default QwtSimpleRichText is Qt::AlignLeft
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ if (align & Qt::AlignJustify)
+ {
+ rich.prepend("<div align=\"justify\">");
+--- qwt-4.2.0rc1/src/qwt_push_button.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_push_button.cpp
+@@ -88,7 +88,7 @@
+ !(d_button->alignment() & Qt::AlignCenter))
+ {
+ const QRect contentsRect =
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ d_button->style().subRect(
+ QStyle::SR_PushButtonContents, d_button);
+ #else
+@@ -103,7 +103,7 @@
+ // Many styles move the label right/down
+ // when the button is down.
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ const QRect &r = *((QRect *)param[0].rect);
+ #else
+ const QRect r(*param[0].point, param[1].pixmap->size());
+@@ -133,7 +133,7 @@
+ d_inFilter = TRUE;
+
+ d_button->style().drawItem(painter,
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ pixRect,
+ #else
+ pixRect.x(), pixRect.y(),
+@@ -150,7 +150,7 @@
+ // We save the position of the icon. We need it later
+ // to align the label pixmap. Hope that there are no styles
+ // that paint the pixmap before the icon.
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ d_iconRect = QRect(*param[0].point, param[1].pixmap->size());
+ #else
+ d_iconRect = *param[0].rect;
+@@ -427,7 +427,7 @@
+
+ QPainter picPainter(&paintFilter);
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ // When painting to QPicture the dotted line of the focus rect is
+ // set to solid. ( 06.08.2003 )
+ // So we don´t set the Style_HasFocus flag and paint the focus rect
+@@ -459,7 +459,7 @@
+
+ paintFilter.play(painter);
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ if (hasFocus())
+ {
+ // Paint the focus rect on top of the button label.
+--- qwt-4.2.0rc1/src/qwt_layout_metrics.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_layout_metrics.cpp
+@@ -212,7 +212,7 @@
+ QRect QwtMetricsMap::translate(
+ const QWMatrix &m, const QRect &rect)
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ return m.map(rect.normalize());
+ #else
+ return m.mapRect(rect);
+@@ -227,7 +227,7 @@
+ QPointArray QwtMetricsMap::translate(
+ const QWMatrix &m, const QPointArray &pa)
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ return m.map(pa);
+ #else
+ return m * pa;
+--- qwt-4.2.0rc1/src/qwt_slider.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_slider.cpp
+@@ -353,7 +353,7 @@
+ {
+ const QRect rect = d_sliderRect;
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ style().drawFocusRect(painter, rect, colorGroup());
+ #else
+ style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_counter.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_counter.cpp
+@@ -330,7 +330,7 @@
+ // QLineEdit::minimumSizeHint is for one char. Subtracting
+ // the size for the char we get all the margins, frames ...
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ w += d_valueEdit->minimumSizeHint().width() - fm.maxWidth();
+ #else
+ w += 2 * d_valueEdit->frameWidth() +
+--- qwt-4.2.0rc1/src/qwt_paint
++++ /dev/null
+--- qwt-4.2.0rc1/src/qwt_painter.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_painter.cpp
+@@ -201,7 +201,7 @@
+ QColorGroup cg;
+ cg.setColor(QColorGroup::Text, painter->pen().color());
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ const QFont defaultFont = QFont::defaultFont();
+ QFont::setDefaultFont(painter->font());
+ #endif
+@@ -220,7 +220,7 @@
+
+ text.draw(painter, scaledRect.x(), y, scaledRect, cg);
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ QFont::setDefaultFont(defaultFont);
+ #endif
+ }
+--- qwt-4.2.0rc1/src/qwt_dial.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_dial.cpp
+@@ -491,7 +491,7 @@
+ // because round objects doesn´t cover all pixels.
+
+ QRect br = boundingRect();
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ #ifdef _WS_WIN32_
+ // Qt-230-NC draws ellipses not as nicely as Qt-2.3.x on X Windows
+ br.setTop(br.top()-1);
+@@ -1044,7 +1044,7 @@
+ {
+ if ( isReadOnly() )
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ return;
+@@ -1078,7 +1078,7 @@
+ setValue(maxValue());
+ break;
+ default:;
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ }
+--- qwt-4.2.0rc1/src/qwt_knob.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_knob.cpp
+@@ -279,7 +279,7 @@
+ {
+ QRect r = rect();
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ style().drawFocusRect(painter, r, colorGroup());
+ #else
+ style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_arrbtn.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_arrbtn.cpp
+@@ -58,7 +58,7 @@
+ QRect QwtArrowButton::labelRect() const
+ {
+ QRect r =
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ style().buttonRect(rect().x(), rect().y(),
+ rect().width(), rect().height());
+ #else
+@@ -71,7 +71,7 @@
+ if ( isDown() )
+ {
+ int ph, pv;
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ style().getButtonShift(ph, pv);
+ #else
+ ph = style().pixelMetric(
+@@ -135,7 +135,7 @@
+ }
+ p->restore();
+
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ if ( hasFocus() )
+ {
+ const QRect focusRect =
+@@ -218,7 +218,7 @@
+ if ( d_arrowType == Qt::UpArrow || d_arrowType == Qt::DownArrow )
+ sz.transpose();
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ int bm = style().buttonMargin() - 1;
+ sz += QSize(2 * bm, 2 * bm);
+ #else
+--- qwt-4.2.0rc1/src/qwt_wheel.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_wheel.cpp
+@@ -453,7 +453,7 @@
+ {
+ QRect r = rect();
+
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ style().drawFocusRect(painter, r, colorGroup());
+ #else
+ style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_plot_canvas.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_plot_canvas.cpp
+@@ -195,7 +195,7 @@
+
+ void QwtPlotCanvas::drawFocusIndicator(QPainter *painter, const QRect &rect)
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ style().drawFocusRect(painter, rect, colorGroup());
+ #else
+ style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_sldbase.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_sldbase.cpp
+@@ -115,7 +115,7 @@
+ {
+ if ( isReadOnly() )
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ return;
+@@ -166,7 +166,7 @@
+ {
+ if ( isReadOnly() )
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ return;
+@@ -274,7 +274,7 @@
+ {
+ if ( isReadOnly() )
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ return;
+@@ -304,7 +304,7 @@
+ {
+ if ( isReadOnly() )
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ return;
+@@ -341,7 +341,7 @@
+ {
+ if ( isReadOnly() )
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ return;
+@@ -370,7 +370,7 @@
+ increment = 1;
+ break;
+ default:;
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->ignore();
+ #endif
+ }
+--- qwt-4.2.0rc1/examples/realtime_plot/scrollbar.cpp~qt2-fix
++++ qwt-4.2.0rc1/examples/realtime_plot/scrollbar.cpp
+@@ -154,7 +154,7 @@
+ int ScrollBar::extent() const
+ {
+ int dim;
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ dim = style().pixelMetric(QStyle::PM_ScrollBarExtent, this);
+ #else
+ const QSize sz = style().scrollBarExtent();
+--- qwt-4.2.0rc1/examples/event_filter/colorbar.cpp~qt2-fix
++++ qwt-4.2.0rc1/examples/event_filter/colorbar.cpp
+@@ -48,7 +48,7 @@
+ const QRgb rgb = pm.convertToImage().pixel(e->x(), e->y());
+
+ emit selected(QColor(rgb));
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+ e->accept();
+ #endif
+ }
diff --git a/recipes-qtopia/qwt/qwt.inc b/recipes-qtopia/qwt/qwt.inc
new file mode 100644
index 0000000..62c8656
--- /dev/null
+++ b/recipes-qtopia/qwt/qwt.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Qt Widget Extension for Technical Applications"
+SECTION = "libs"
+PRIORITY = "optional"
+
+# LGPLv2.1 + some exceptions
+LICENSE = "QWTv1.0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qwt/qwt-${PV}.tar.bz2;name=qwt"
+
+S = "${WORKDIR}/qwt-${PV}"
+
+do_configure_prepend() {
+ sed -i -e 's:RELEASE_SUFFIX = :RELEASE_SUFFIX = ${QT_LIBINFIX}:' *.pri
+ sed -i -e s:lqwt:lqwt${QT_LIBINFIX}:g -e s:/usr/local/qwt-$\${QwtVersion}:${prefix}:g *.prf
+ sed -e 's/#CONFIG += QwtExamples/CONFIG += QwtExamples/g' -i qwtconfig.pri
+ sed -i -e s:/usr/local/qwt-${PV}:${D}${prefix}:g ${S}/*.pri
+}
+
+do_install() {
+ oe_runmake -e install
+ install -d ${D}${datadir}/doc/${PN}
+ mv ${D}${prefix}/doc/* ${D}${datadir}/doc/${PN}/
+ cd ${S}/examples
+ install -d ${D}/${bindir}
+ cd bin${QT_LIBINFIX}/
+ for i in * ; do
+ cp -pPR ${i} ${D}/${bindir}/${i}${QT_LIBINFIX}
+ done
+}
+
+PACKAGES_prepend = "${PN}-examples "
+FILES_${PN}-examples = "${bindir}/*"
+
diff --git a/recipes-qtopia/qwt/qwt_4.2.0rc1.bb b/recipes-qtopia/qwt/qwt_4.2.0rc1.bb
new file mode 100644
index 0000000..59a3b29
--- /dev/null
+++ b/recipes-qtopia/qwt/qwt_4.2.0rc1.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Qt Widget Extension for Technical Applications"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "virtual/libqte2"
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qwt/qwt-${PV}.tgz \
+ file://qt2-fix.patch"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "LIBS-=qpe"
+
+do_stage() {
+ oe_libinstall -so -C lib libqwt ${STAGING_LIBDIR}
+ cp -pPR include/* ${STAGING_INCDIR}
+}
+
+do_install() {
+ install -d ${D}${libdir} \
+ ${D}${includedir}
+ oe_libinstall -so -C lib libqwt ${D}${libdir}
+ cp -pPR include/* ${D}${includedir}
+}
+
+FILES_${PN} = "${libdir}"
+
+
+SRC_URI[md5sum] = "142b10ab27e837c3c4603cf9a7e9343b"
+SRC_URI[sha256sum] = "3b6db68d53441119dced27e5bad26ec087294cb9d878d37bcea61e1f1e4849a1"
diff --git a/recipes-qtopia/resistorui/resistorui_0.9.bb b/recipes-qtopia/resistorui/resistorui_0.9.bb
new file mode 100644
index 0000000..f1603ed
--- /dev/null
+++ b/recipes-qtopia/resistorui/resistorui_0.9.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A tool to calculate Ohm resistor values"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.pellicosystems.com/zaurus/applications/index.html"
+APPNAME = "resistorUI"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+PR = "r1"
+
+SRC_URI = "http://www.pellicosystems.com/zaurus/applications/resistorUI_1.5.0-0.9_armSRC.zip"
+S = "${WORKDIR}/ResistorUI"
+
+inherit opie
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 resistorUI.png ${D}${palmtopdir}/pics/
+
+}
+
+SRC_URI[md5sum] = "3ef812023466905883a19a22ead8615c"
+SRC_URI[sha256sum] = "467910e5f6b6e137db93a1ccaf668d4146c3dd27dfa0f368b2a20a0a14a23592"
diff --git a/recipes-qtopia/roadmap/files/cross.patch b/recipes-qtopia/roadmap/files/cross.patch
new file mode 100644
index 0000000..87c8d78
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/cross.patch
@@ -0,0 +1,17 @@
+--- /tmp/options.mk 2007-08-08 12:14:11.000000000 +0200
++++ roadmap/src/options.mk 2007-08-08 12:14:35.688400000 +0200
+@@ -26,13 +26,7 @@
+
+ # if you want to cross-compile, define CROSS in config.mk. you
+ # may also have to add paths to libraries (with -L) in LDFLAGS.
+-CC = $(CROSS)gcc
+-CXX = $(CROSS)g++
+-AS = $(CROSS)as
+-AR = $(CROSS)ar
+-LD = $(CROSS)ld
+-STRIP = $(CROSS)strip
+-RANLIB = $(CROSS)ranlib
++STRIP = echo
+
+
+ # --- Build options ------------------------------------------------
diff --git a/recipes-qtopia/roadmap/files/options.mk.patch b/recipes-qtopia/roadmap/files/options.mk.patch
new file mode 100644
index 0000000..196f16e
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/options.mk.patch
@@ -0,0 +1,34 @@
+--- roadmap-1.1.0/src/options.mk.old 2008-01-09 22:08:00.000000000 -0600
++++ roadmap-1.1.0/src/options.mk 2008-01-09 23:06:29.000000000 -0600
+@@ -177,10 +177,7 @@ ifeq ($(strip $(AGG)),NO)
+ else
+ LIBS += -laggfontfreetype -lagg -lfreetype
+ CFLAGS += -DAGG_PIXFMT=pixfmt_$(AGG) \
+- -I$(TOP)/agg_support \
+- -I/usr/include/agg2 \
+- -I/usr/local/include/agg2 \
+- -I/usr/include/freetype2
++ -I$(TOP)/agg_support
+ CANVAS_OBJS = roadmap_canvas_agg.o \
+ $(TOP)/agg_support/roadmap_canvas.o
+ endif
+@@ -188,7 +185,7 @@ endif
+ # bidirectional text lib
+ ifneq ($(strip $(BIDI)),NO)
+ LIBS += -lfribidi
+- CFLAGS += -DUSE_FRIBIDI -I/usr/include/fribidi
++ CFLAGS += -DUSE_FRIBIDI
+ endif
+
+ # RoadMap internal profiling
+@@ -205,8 +202,8 @@ else
+ endif
+
+
+-CFLAGS += -I$(TOP) -I/usr/local/include -DNDEBUG
++CFLAGS += -I$(TOP) -DNDEBUG
+
+-LIBS := -L/usr/local/lib $(LIBS) -lm
++LIBS := $(LIBS) -lm
+
+ CXXFLAGS = $(CFLAGS)
diff --git a/recipes-qtopia/roadmap/files/qt/qt2-fixes.patch b/recipes-qtopia/roadmap/files/qt/qt2-fixes.patch
new file mode 100644
index 0000000..63c1c96
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/qt/qt2-fixes.patch
@@ -0,0 +1,10 @@
+--- src/qt/Makefile~qt2-fixes.patch
++++ src/qt/Makefile
+@@ -19,7 +19,7 @@
+
+ ifeq ($(DESKTOP),QPE)
+ CFLAGS += -I$(QTDIR)/include -DQWS
+- LIBS += -lqte -lqpe
++ LIBS += -lqpe
+ INSTALLDIR=$(QTDIR)
+ endif
diff --git a/recipes-qtopia/roadmap/files/qt/qt_canvas.patch b/recipes-qtopia/roadmap/files/qt/qt_canvas.patch
new file mode 100644
index 0000000..13c775c
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/qt/qt_canvas.patch
@@ -0,0 +1,20 @@
+--- src/qt/qt_canvas.cc.old 2007-12-08 20:29:52.000000000 -0600
++++ src/qt/qt_canvas.cc 2007-12-13 02:34:22.000000000 -0600
+@@ -122,7 +122,7 @@ void RMapCanvas::getTextExtents(const ch
+ *w = r.width();
+ *ascent = fm.ascent();
+ *descent = fm.descent();
+-#ifdef QT_NO_ROTATE
++#ifdef QT_NO_TRANSFORMATIONS
+ if (can_tilt) *can_tilt = 0;
+ #else
+ if (can_tilt) *can_tilt = 1;
+@@ -169,7 +169,7 @@ void RMapCanvas::drawString(RoadMapGuiPo
+
+ void RMapCanvas::drawStringAngle(RoadMapGuiPoint* position,
+ int center, const char* text, int angle) {
+-#ifndef QT_NO_ROTATE
++#ifndef QT_NO_TRANSFORMATIONS
+ if (!pixmap) {
+ return;
+ }
diff --git a/recipes-qtopia/roadmap/files/qt/qt_main.patch b/recipes-qtopia/roadmap/files/qt/qt_main.patch
new file mode 100644
index 0000000..2f81128
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/qt/qt_main.patch
@@ -0,0 +1,61 @@
+--- src/qt/qt_main.cc.old 2007-12-08 20:32:34.000000000 -0600
++++ src/qt/qt_main.cc 2007-12-08 20:34:38.000000000 -0600
+@@ -27,6 +27,7 @@
+ #include <signal.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
++#include <unistd.h>
+ #include "qt_main.h"
+
+ static int signalFd[2];
+@@ -168,12 +169,6 @@ void RMapMainWindow::addTool(const char*
+ const char* tip,
+ RoadMapCallback callback) {
+
+-#ifndef QWS
+- // For some unknown reason, this toolbar crashes RoadMap
+- // on the Sharp Zaurus.
+- // This should be fixed and the ifndef removed.
+- // Pascal: I believe this has been fixed now.
+-
+ if (toolBar == 0) {
+ addToolbar("");
+ }
+@@ -193,20 +188,13 @@ void RMapMainWindow::addTool(const char*
+
+ connect(b, SIGNAL(clicked()), cb, SLOT(fire()));
+ }
+-#endif
+ }
+
+ void RMapMainWindow::addToolSpace(void) {
+
+-#ifndef QWS
+- // For some unknown reason, this toolbar crashes RoadMap
+- // on the Sharp Zaurus. This should be fixed and the ifndef
+- // removed.
+-
+ addTool (NULL, NULL, NULL, NULL);
+
+ toolBar->addSeparator();
+-#endif
+ }
+
+
+@@ -299,14 +287,14 @@ void RMapMainWindow::closeEvent(QCloseEv
+
+ void RMapMainWindow::signalHandler(int sig)
+ {
+- ::write(signalFd[0], &sig, sizeof(sig));
++ write(signalFd[0], &sig, sizeof(sig));
+ }
+
+ void RMapMainWindow::handleSignal()
+ {
+ snSignal->setEnabled(false);
+ int tmp;
+- ::read(signalFd[1], &tmp, sizeof(tmp));
++ read(signalFd[1], &tmp, sizeof(tmp));
+ QString action;
+ switch (tmp) {
+ case SIGTERM: action="SIGTERM"; break;
diff --git a/recipes-qtopia/roadmap/files/qt/roadmap_main.patch b/recipes-qtopia/roadmap/files/qt/roadmap_main.patch
new file mode 100644
index 0000000..7b16ce2
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/qt/roadmap_main.patch
@@ -0,0 +1,16 @@
+--- src/qt/roadmap_main.cc.old 2007-12-08 15:47:05.000000000 -0600
++++ src/qt/roadmap_main.cc 2007-12-07 20:39:15.000000000 -0600
+@@ -195,11 +195,11 @@ void roadmap_main_set_cursor (int newcur
+ break;
+
+ case ROADMAP_CURSOR_WAIT:
+- mainWindow->setCursor (QCursor(Qt::WaitCursor));
++ mainWindow->setCursor (QCursor(Qt::waitCursor));
+ break;
+
+ case ROADMAP_CURSOR_CROSS:
+- mainWindow->setCursor (QCursor(Qt::CrossCursor));
++ mainWindow->setCursor (QCursor(Qt::crossCursor));
+ break;
+ }
+ }
diff --git a/recipes-qtopia/roadmap/files/roadmap.desktop.patch b/recipes-qtopia/roadmap/files/roadmap.desktop.patch
new file mode 100644
index 0000000..98d5b06
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/roadmap.desktop.patch
@@ -0,0 +1,16 @@
+--- src/roadmap.desktop.old 2007-12-08 23:15:45.000000000 -0600
++++ src/roadmap.desktop 2007-12-08 23:17:48.000000000 -0600
+@@ -1,11 +1,8 @@
+ [Desktop Entry]
+-Comment=RoadMap
+ Comment=Car Navigation System
+ Exec=roadmap
+-Icon=roadmap.png
++Icon=roadmap
+ Type=Application
+ Name=RoadMap
+ GenericName=Map Viewer
+-Categories=Application;Other;VectorGraphics;Graphics;Viewer;GTK;
+-FilePattern=*roadmap;*.rdm
+-
++Categories=VectorGraphics;Graphics;Viewer;GTK;
diff --git a/recipes-qtopia/roadmap/files/roadmap_path.patch b/recipes-qtopia/roadmap/files/roadmap_path.patch
new file mode 100644
index 0000000..7a7ab74
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/roadmap_path.patch
@@ -0,0 +1,57 @@
+--- src/unix/roadmap_path.c.old 2008-01-12 21:08:03.000000000 -0600
++++ src/unix/roadmap_path.c 2008-01-12 21:29:40.000000000 -0600
+@@ -93,23 +93,18 @@ static const char *RoadMapPathConfig[] =
+ "/opt/QtPalmtop/share/roadmap",
+ "/mnt/cf/QtPalmtop/share/roadmap",
+ "/mnt/card/QtPalmtop/share/roadmap",
+-#else
++#endif
+ /* This is for standard Unix configurations. */
+ "/etc/roadmap",
+ "/usr/local/share/roadmap",
+ "/usr/share/roadmap",
+-#endif
+ NULL
+ };
+ static const char *RoadMapPathConfigPreferred =
+ #ifdef ROADMAP_CONFIG_DIR
+ ROADMAP_CONFIG_DIR;
+ #else
+-#ifdef QWS
+- "/mnt/cf/QtPalmtop/share/roadmap";
+-#else
+- "/usr/local/share/roadmap";
+-#endif
++ "/usr/share/roadmap";
+ #endif
+
+
+@@ -123,7 +118,7 @@ static const char *RoadMapPathMaps[] = {
+ "/opt/QtPalmtop/share/roadmap/...",
+ "/mnt/cf/QtPalmtop/share/roadmap/...",
+ "/mnt/card/QtPalmtop/share/roadmap/...",
+-#else
++#endif
+ /* This is for standard Unix configurations. */
+ "&/maps/...",
+ "/var/lib/roadmap/...",
+@@ -134,19 +129,14 @@ static const char *RoadMapPathMaps[] = {
+ */
+ "/usr/local/share/roadmap/...",
+ "/usr/share/roadmap/...",
+-#endif
+ NULL
+ };
+ static const char *RoadMapPathMapsPreferred =
+ #ifdef ROADMAP_MAP_DIR
+ ROADMAP_MAP_DIR;
+ #else
+-#ifdef QWS
+- "/mnt/cf/QtPalmtop/share/roadmap";
+-#else
+ "/var/lib/roadmap";
+ #endif
+-#endif
+
+ /* The default path for the icon files (the "icons" path): */
+ static const char *RoadMapPathIcons[] = {
diff --git a/recipes-qtopia/roadmap/files/zroadgps.png b/recipes-qtopia/roadmap/files/zroadgps.png
new file mode 100644
index 0000000..a77b372
--- /dev/null
+++ b/recipes-qtopia/roadmap/files/zroadgps.png
Binary files differ
diff --git a/recipes-qtopia/roadmap/roadmap.inc b/recipes-qtopia/roadmap/roadmap.inc
new file mode 100644
index 0000000..a7e9544
--- /dev/null
+++ b/recipes-qtopia/roadmap/roadmap.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "RoadMap is a program that provides car navigation for Linux and UNIX."
+AUTHOR = "Paul Fox <pgf@foxharp.boston.ma.us>"
+HOMEPAGE = "http://roadmap.digitalomaha.net/maps.html"
+LICENSE = "GPL"
+DEPENDS = "expat"
+
+FILES_${PN} += "${datadir}/roadmap"
+
+do_compile() {
+ oe_runmake runtime ${TOOLS} icons
+}
+
+do_install() {
+ oe_runmake install
+ install -m 0644 ${WORKDIR}/usdir.rdm ${D}${datadir}/roadmap/
+}
+
+RRECOMMENDS_${PN} = "gpsd flite"
+FILES_${PN} += "${datadir}/roadmap"
diff --git a/recipes-qtopia/roadmap/zroadmap.inc b/recipes-qtopia/roadmap/zroadmap.inc
new file mode 100644
index 0000000..3c99f9d
--- /dev/null
+++ b/recipes-qtopia/roadmap/zroadmap.inc
@@ -0,0 +1,23 @@
+require roadmap.inc
+
+PARALLEL_MAKE = ""
+
+SECTION = "opie/applications"
+
+inherit palmtop
+
+QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte",d)}'
+QT_LIBRARY_append_c7x0 = " -laticore"
+
+EXTRA_OEMAKE = "DESKTOP=QPE MOC=${OE_QMAKE_MOC} UIC=${OE_QMAKE_UIC} QTDIR=${QTDIR} \
+ POPT=NO SCRIPTS= BUILD= INSTALLDIR=/usr DESTDIR=${D} \
+ icondir=${D}${palmtopdir}/pics \
+ desktopdir=${D}${palmtopdir}/apps/Applications \
+ CFLAGS="-DQWS -I${S} ${OE_QMAKE_CFLAGS} -I${OE_QMAKE_INCDIR_QT}" \
+ LDFLAGS="${OE_QMAKE_LDFLAGS} -L${OE_QMAKE_LIBDIR_QT} -Wl,-rpath-link,${OE_QMAKE_LIBDIR_QT}""
+
+do_configure() {
+ echo removing pregenerated stuff
+ find . -name "moc*"|xargs rm -f
+}
+
diff --git a/recipes-qtopia/roadmap/zroadmap_1.1.0.bb b/recipes-qtopia/roadmap/zroadmap_1.1.0.bb
new file mode 100644
index 0000000..815a615
--- /dev/null
+++ b/recipes-qtopia/roadmap/zroadmap_1.1.0.bb
@@ -0,0 +1,21 @@
+require zroadmap.inc
+
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/roadmap/roadmap-${PV}-src.tar.gz;name=archive \
+ file://cross.patch;striplevel=2 \
+ file://options.mk.patch;striplevel=2 \
+ file://qt/qt2-fixes.patch \
+ file://qt/qt_canvas.patch \
+ file://qt/qt_main.patch \
+ file://qt/roadmap_main.patch \
+ file://roadmap_path.patch \
+ file://roadmap.desktop.patch \
+ http://roadmap.digitalomaha.net/maps/usdir.rdm.tar.gz;name=usdir"
+
+S = "${WORKDIR}/roadmap-${PV}/src"
+
+SRC_URI[archive.md5sum] = "773c1e4291177c5b7a887763f6cb83a6"
+SRC_URI[archive.sha256sum] = "bfaa36f246dc01775268644c153a2c65f5e2009b45d19f72e3d06c83c59d3aed"
+SRC_URI[usdir.md5sum] = "d669ae4a3567b0d5d3ff5db6351b4053"
+SRC_URI[usdir.sha256sum] = "651f040408a9dfe3ece1d490cd808fc80e878fd39876f50f6772f9e5f9ee3674"
diff --git a/recipes-qtopia/roadmap/zroadmap_cvs.bb b/recipes-qtopia/roadmap/zroadmap_cvs.bb
new file mode 100644
index 0000000..d2219d2
--- /dev/null
+++ b/recipes-qtopia/roadmap/zroadmap_cvs.bb
@@ -0,0 +1,16 @@
+require zroadmap.inc
+
+PV = "0.0+cvs${SRCDATE}"
+PR = "r0"
+
+SRC_URI = "cvs://anonymous:@roadmap.cvs.sf.net/cvsroot/roadmap;module=roadmap \
+ file://cross.patch;striplevel=2 \
+ file://options.mk.patch;striplevel=2 \
+ file://qt/qt2-fixes.patch \
+ file://roadmap_path.patch \
+ http://roadmap.digitalomaha.net/maps/usdir.rdm.tar.gz;name=usdir"
+
+S = "${WORKDIR}/roadmap/src"
+
+SRC_URI[usdir.md5sum] = "d669ae4a3567b0d5d3ff5db6351b4053"
+SRC_URI[usdir.sha256sum] = "651f040408a9dfe3ece1d490cd808fc80e878fd39876f50f6772f9e5f9ee3674"
diff --git a/recipes-qtopia/scummvm/files/gcc-4.x.x-accept.patch b/recipes-qtopia/scummvm/files/gcc-4.x.x-accept.patch
new file mode 100644
index 0000000..f69eb0f
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/gcc-4.x.x-accept.patch
@@ -0,0 +1,11 @@
+--- scummvm-0.6.1b/configure_orig 2006-07-01 16:42:17.000000000 +0000
++++ scummvm-0.6.1b/configure 2006-07-01 16:48:04.000000000 +0000
+@@ -362,7 +362,7 @@
+ fi
+
+ case $cxx_version in
+- 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
++ 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9]|4.[0-9].[0-9])
+ _cxx_major=`echo $cxx_version | cut -d '.' -f 1`
+ _cxx_minor=`echo $cxx_version | cut -d '.' -f 2`
+ cxx_version="$cxx_version, ok"
diff --git a/recipes-qtopia/scummvm/files/makefile-nostrip.patch b/recipes-qtopia/scummvm/files/makefile-nostrip.patch
new file mode 100644
index 0000000..7f9c8b4
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/makefile-nostrip.patch
@@ -0,0 +1,13 @@
+Index: scummvm-0.9.1/Makefile
+===================================================================
+--- scummvm-0.9.1.orig/Makefile 2007-08-18 13:02:07.000000000 +0200
++++ scummvm-0.9.1/Makefile 2007-08-18 13:02:24.000000000 +0200
+@@ -45,7 +45,7 @@
+
+ install: all
+ $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
+- $(INSTALL) -c -s -m 755 "$(srcdir)/scummvm$(EXEEXT)" "$(DESTDIR)$(BINDIR)/scummvm$(EXEEXT)"
++ $(INSTALL) -c -m 755 "$(srcdir)/scummvm$(EXEEXT)" "$(DESTDIR)$(BINDIR)/scummvm$(EXEEXT)"
+ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6/"
+ $(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.6" "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
+ $(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/pixmaps/"
diff --git a/recipes-qtopia/scummvm/files/mouse.patch b/recipes-qtopia/scummvm/files/mouse.patch
new file mode 100644
index 0000000..1697ac8
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/mouse.patch
@@ -0,0 +1,36 @@
+--- ./backends/sdl/sdl-common.cpp~mouse.patch 2004-03-05 07:23:04.000000000 +1030
++++ ./backends/sdl/sdl-common.cpp 2004-05-16 07:53:24.000000000 +0930
+@@ -866,6 +866,9 @@
+ return true;
+
+ case SDL_MOUSEBUTTONDOWN:
++#ifdef QTOPIA
++ event->event_code = EVENT_LBUTTONDOWN;
++#else
+ if (ev.button.button == SDL_BUTTON_LEFT)
+ event->event_code = EVENT_LBUTTONDOWN;
+ else if (ev.button.button == SDL_BUTTON_RIGHT)
+@@ -878,18 +881,23 @@
+ #endif
+ else
+ break;
++#endif
+
+ fillMouseEvent(*event, ev.button.x, ev.button.y);
+
+ return true;
+
+ case SDL_MOUSEBUTTONUP:
++#ifdef QTOPIA
++ event->event_code = EVENT_LBUTTONUP;
++#else
+ if (ev.button.button == SDL_BUTTON_LEFT)
+ event->event_code = EVENT_LBUTTONUP;
+ else if (ev.button.button == SDL_BUTTON_RIGHT)
+ event->event_code = EVENT_RBUTTONUP;
+ else
+ break;
++#endif
+ fillMouseEvent(*event, ev.button.x, ev.button.y);
+
+ return true;
diff --git a/recipes-qtopia/scummvm/files/no-strip.patch b/recipes-qtopia/scummvm/files/no-strip.patch
new file mode 100644
index 0000000..4df1283
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/no-strip.patch
@@ -0,0 +1,22 @@
+Index: scummvm-0.12.0/ports.mk
+===================================================================
+--- scummvm-0.12.0.orig/ports.mk
++++ scummvm-0.12.0/ports.mk
+@@ -10,7 +10,7 @@
+ #
+ install: all
+ $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
+- $(INSTALL) -c -s -m 755 "$(srcdir)/scummvm$(EXEEXT)" "$(DESTDIR)$(BINDIR)/scummvm$(EXEEXT)"
++ $(INSTALL) -c -m 755 "$(srcdir)/scummvm$(EXEEXT)" "$(DESTDIR)$(BINDIR)/scummvm$(EXEEXT)"
+ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6/"
+ $(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.6" "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
+ $(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/pixmaps/"
+@@ -21,7 +21,7 @@ install: all
+ $(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) "$(DESTDIR)$(DATADIR)/scummvm/"
+ ifdef DYNAMIC_MODULES
+ $(INSTALL) -d "$(DESTDIR)$(LIBDIR)/scummvm/"
+- $(INSTALL) -c -s -m 644 $(DIST_FILES_PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
++ $(INSTALL) -c -m 644 $(DIST_FILES_PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
+ endif
+
+ uninstall:
diff --git a/recipes-qtopia/scummvm/files/om-gta01/openmoko-scummvm b/recipes-qtopia/scummvm/files/om-gta01/openmoko-scummvm
new file mode 100755
index 0000000..e8c5cb3
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/om-gta01/openmoko-scummvm
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Save current AUX Key mapping
+SAVE_KEY="$(xmodmap -pke | grep 'keycode 8')"
+
+# Map AUX Key to F5
+xmodmap -e "keycode 8 = F5"
+
+# Turn LCD feft
+xrandr -o left
+
+# Start the scummvm in fullscreen mode
+scummvm --fullscreen --themepath=/usr/share/scummvm/
+
+# Turn LCD normal
+xrandr -o normal
+
+# Restore the AUX Key mapping
+xmodmap -e "$SAVE_KEY"
diff --git a/recipes-qtopia/scummvm/files/scummvm-targetcheck.patch b/recipes-qtopia/scummvm/files/scummvm-targetcheck.patch
new file mode 100644
index 0000000..6f24529
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/scummvm-targetcheck.patch
@@ -0,0 +1,17 @@
+upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1959138&group_id=37116&atid=418820
+status: accepted in revision 31912 (less than an hour for turnaround, fantastic!)
+origin: adapted from http://bugs.openembedded.net/show_bug.cgi?id=3522
+comment: the strict check for targets needs to be relaxed to compile for some of OE targets
+
+diff -uNr scummvm-0.9.1.vanilla/configure scummvm-0.9.1/configure
+--- scummvm-0.9.1.vanilla/configure 2007-12-23 00:08:23.000000000 +0100
++++ scummvm-0.9.1/configure 2007-12-23 00:08:35.000000000 +0100
+@@ -763,7 +763,7 @@
+ type_2_byte='short'
+ type_4_byte='int'
+ ;;
+- arm-linux|arm-*-linux-gnueabi)
++ arm-linux|arm*-linux-gnueabi|arm-*-linux|*-angstrom-linux)
+ echo "Cross-compiling to $_host, forcing endianness, alignment and type sizes"
+ DEFINES="$DEFINES -DUNIX"
+ #not true for all ARM systems, but the interesting ones are all LE. Most (if not all) BE arm devices don't have a screen
diff --git a/recipes-qtopia/scummvm/files/scummvm.desktop b/recipes-qtopia/scummvm/files/scummvm.desktop
new file mode 100644
index 0000000..5a0f88b
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/scummvm.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=ScummVM
+Name[pl]=ScummVM
+Comment=Interpreter for several adventure games
+Comment[pl]=Interpreter graficznych gier przygodowych
+Exec=scummvm
+Icon=scummvm.xpm
+Terminal=false
+Type=Application
+Categories=Application;Game;AdventureGame;
+StartupNotify=false
diff --git a/recipes-qtopia/scummvm/files/sh3-arch-0.9.0+.patch b/recipes-qtopia/scummvm/files/sh3-arch-0.9.0+.patch
new file mode 100644
index 0000000..3cd0505
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/sh3-arch-0.9.0+.patch
@@ -0,0 +1,18 @@
+--- scummvm-0.9.0/configure_orig 2006-07-01 18:16:04.000000000 +0000
++++ scummvm-0.9.0/configure 2006-07-01 18:19:09.000000000 +0000
+@@ -762,6 +762,15 @@
+ type_2_byte='short'
+ type_4_byte='int'
+ ;;
++ sh3-linux)
++ echo "Cross-compiling to $_host, forcing endianness, aligment and type sizes"
++ DEFINES="$DEFINES -DUNIX"
++ _def_endianness='#define SCUMM_LITTLE_ENDIAN'
++ _def_align='#define SCUMM_NEED_ALIGMENT'
++ type_1_byte='char'
++ type_2_byte='short'
++ type_4_byte='int'
++ ;;
+ ppc-amigaos)
+ echo "Cross-compiling to $_host, forcing endianness, alignment and type sizes"
+ _def_endianness='#define SCUMM_BIG_ENDIAN'
diff --git a/recipes-qtopia/scummvm/files/sh3-linux-new-arch.patch b/recipes-qtopia/scummvm/files/sh3-linux-new-arch.patch
new file mode 100644
index 0000000..b59d727
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/sh3-linux-new-arch.patch
@@ -0,0 +1,18 @@
+--- scummvm-0.6.1b/configure_orig 2006-07-01 17:15:30.000000000 +0000
++++ scummvm-0.6.1b/configure 2006-07-01 17:19:41.000000000 +0000
+@@ -462,6 +462,15 @@
+ type_2_byte='short'
+ type_4_byte='int'
+ ;;
++ sh3-linux)
++ echo "Crosscompiling to $_host, forcing endianess, aligment and type sizes"
++ DEFINES="$DEFINES -DUNIX"
++ _def_endianess='#define SCUMM_LITTLE_ENDIAN'
++ _def_align='#define SCUMM_NEED_ALiGMENT'
++ type_1_byte='char'
++ type_2_byte='short'
++ type_4_byte='int'
++ ;;
+ *)
+ echo "Cross-compiling to unknown target, please add your target to configure."
+ exit 1
diff --git a/recipes-qtopia/scummvm/files/shr/openmoko-scummvm b/recipes-qtopia/scummvm/files/shr/openmoko-scummvm
new file mode 100644
index 0000000..58eb2bb
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/shr/openmoko-scummvm
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Save current AUX Key mapping
+SAVE_KEY="$(xmodmap -pke | grep 'keycode 177')"
+
+# Map AUX Key to F5
+xmodmap -e "keycode 177 = F5"
+
+# Turn LCD feft
+xrandr -o left
+
+# Start the scummvm in fullscreen mode
+scummvm --fullscreen --themepath=/usr/share/scummvm/
+
+# Turn LCD normal
+xrandr -o normal
+
+# Restore the AUX Key mapping
+xmodmap -e "$SAVE_KEY"
diff --git a/recipes-qtopia/scummvm/files/shr/scummvm.desktop b/recipes-qtopia/scummvm/files/shr/scummvm.desktop
new file mode 100644
index 0000000..96c0250
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/shr/scummvm.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=ScummVM
+Name[pl]=ScummVM
+Comment=Interpreter for several adventure games
+Comment[pl]=Interpreter graficznych gier przygodowych
+Exec=openmoko-scummvm
+Icon=scummvm.xpm
+Terminal=false
+Type=Application
+Categories=Application;Game;AdventureGame;
+StartupNotify=false
diff --git a/recipes-qtopia/scummvm/files/tail-obselete-fix.patch b/recipes-qtopia/scummvm/files/tail-obselete-fix.patch
new file mode 100644
index 0000000..1737133
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/tail-obselete-fix.patch
@@ -0,0 +1,11 @@
+--- scummvm-0.6.1b/configure_orig 2006-07-01 16:42:17.000000000 +0000
++++ scummvm-0.6.1b/configure 2006-07-01 16:43:12.000000000 +0000
+@@ -355,7 +355,7 @@
+
+ echocheck "compiler version"
+
+-cxx_name=`( $cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1`
++cxx_name=`( $cc -v ) 2>&1 | tail -n 1 | cut -d ' ' -f 1`
+ cxx_version=`( $CXX -dumpversion ) 2>&1`
+ if test "$?" -gt 0; then
+ cxx_version="not found"
diff --git a/recipes-qtopia/scummvm/files/tremor.patch b/recipes-qtopia/scummvm/files/tremor.patch
new file mode 100644
index 0000000..3acf302
--- /dev/null
+++ b/recipes-qtopia/scummvm/files/tremor.patch
@@ -0,0 +1,32 @@
+--- ./sound/vorbis.cpp.old 2004-05-16 04:23:59.000000000 +0930
++++ ./sound/vorbis.cpp 2004-05-16 04:24:23.000000000 +0930
+@@ -29,7 +29,7 @@
+ #include "sound/audiostream.h"
+ #include "sound/audiocd.h"
+
+-#include <vorbis/vorbisfile.h>
++#include <tremor/ivorbisfile.h>
+
+
+ AudioStream *makeVorbisStream(OggVorbis_File *file, int duration);
+--- ./configure.old 2004-05-16 04:46:47.000000000 +0930
++++ ./configure 2004-05-16 04:50:42.000000000 +0930
+@@ -560,15 +560,15 @@
+ if test "$_vorbis" = auto ; then
+ _vorbis=no
+ cat > $TMPC << EOF
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+ int main(void) { vorbis_packet_blocksize(0,0); return 0; }
+ EOF
+ cc_check $LDFLAGS $CXXFLAGS $OGG_CFLAGS $OGG_LIBS $VORBIS_CFLAGS $VORBIS_LIBS \
+- -lvorbis -logg -lm && _vorbis=yes
++ -lvorbisidec -logg -lm && _vorbis=yes
+ fi
+ if test "$_vorbis" = yes ; then
+ _def_vorbis='#define USE_VORBIS'
+- LIBS="$LIBS $OGG_LIBS $VORBIS_LIBS -lvorbisfile -lvorbis -logg"
++ LIBS="$LIBS $OGG_LIBS $VORBIS_LIBS -lvorbisidec -logg"
+ INCLUDES="$INCLUDES $OGG_CFLAGS $VORBIS_CFLAGS"
+ else
+ _def_vorbis='#undef USE_VORBIS'
diff --git a/recipes-qtopia/scummvm/opie-scummvm_1.0.1.bb b/recipes-qtopia/scummvm/opie-scummvm_1.0.1.bb
new file mode 100644
index 0000000..8142ee3
--- /dev/null
+++ b/recipes-qtopia/scummvm/opie-scummvm_1.0.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "opie-scummvm"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPNAME = "opie-scummvm"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+RDEPENDS_${PN} = "scummvm-qpe"
+PR = "r1"
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/opie-scummvm-${PV}-r0_arm.tar.bz2"
+
+SRC_URI[md5sum] = "a71902804ea20314b7336a3d566f1977"
+SRC_URI[sha256sum] = "9c20af44cc1b9d78f79adf7745716b73adaea0ff28208504f110e7c7520d354a"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}
+ install -m 0755 ${WORKDIR}/${APPNAME}-1.0.1/scummvm.png ${D}${palmtopdir}/pics/
+}
+
diff --git a/recipes-qtopia/scummvm/scummvm-0.6.0/mouse.patch b/recipes-qtopia/scummvm/scummvm-0.6.0/mouse.patch
new file mode 100644
index 0000000..1697ac8
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm-0.6.0/mouse.patch
@@ -0,0 +1,36 @@
+--- ./backends/sdl/sdl-common.cpp~mouse.patch 2004-03-05 07:23:04.000000000 +1030
++++ ./backends/sdl/sdl-common.cpp 2004-05-16 07:53:24.000000000 +0930
+@@ -866,6 +866,9 @@
+ return true;
+
+ case SDL_MOUSEBUTTONDOWN:
++#ifdef QTOPIA
++ event->event_code = EVENT_LBUTTONDOWN;
++#else
+ if (ev.button.button == SDL_BUTTON_LEFT)
+ event->event_code = EVENT_LBUTTONDOWN;
+ else if (ev.button.button == SDL_BUTTON_RIGHT)
+@@ -878,18 +881,23 @@
+ #endif
+ else
+ break;
++#endif
+
+ fillMouseEvent(*event, ev.button.x, ev.button.y);
+
+ return true;
+
+ case SDL_MOUSEBUTTONUP:
++#ifdef QTOPIA
++ event->event_code = EVENT_LBUTTONUP;
++#else
+ if (ev.button.button == SDL_BUTTON_LEFT)
+ event->event_code = EVENT_LBUTTONUP;
+ else if (ev.button.button == SDL_BUTTON_RIGHT)
+ event->event_code = EVENT_RBUTTONUP;
+ else
+ break;
++#endif
+ fillMouseEvent(*event, ev.button.x, ev.button.y);
+
+ return true;
diff --git a/recipes-qtopia/scummvm/scummvm-0.6.0/sword1.patch b/recipes-qtopia/scummvm/scummvm-0.6.0/sword1.patch
new file mode 100644
index 0000000..0c934ef
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm-0.6.0/sword1.patch
@@ -0,0 +1,16 @@
+--- ./sword1/sword1.cpp.old 2004-05-16 03:17:26.000000000 +0930
++++ ./sword1/sword1.cpp 2004-05-16 03:12:42.000000000 +0930
+@@ -1061,8 +1061,11 @@
+ _systemVars.runningFromCd = true;
+ _systemVars.currentCD = 2;
+ test.close();
+- } else
+- error("Unable to find files.\nPlease read the instructions again");
++ } else {
++ _systemVars.runningFromCd = false;
++ _systemVars.playSpeech = false;
++// error("Unable to find files.\nPlease read the instructions again");
++ }
+ }
+ }
+
diff --git a/recipes-qtopia/scummvm/scummvm-0.6.0/tremor.patch b/recipes-qtopia/scummvm/scummvm-0.6.0/tremor.patch
new file mode 100644
index 0000000..3acf302
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm-0.6.0/tremor.patch
@@ -0,0 +1,32 @@
+--- ./sound/vorbis.cpp.old 2004-05-16 04:23:59.000000000 +0930
++++ ./sound/vorbis.cpp 2004-05-16 04:24:23.000000000 +0930
+@@ -29,7 +29,7 @@
+ #include "sound/audiostream.h"
+ #include "sound/audiocd.h"
+
+-#include <vorbis/vorbisfile.h>
++#include <tremor/ivorbisfile.h>
+
+
+ AudioStream *makeVorbisStream(OggVorbis_File *file, int duration);
+--- ./configure.old 2004-05-16 04:46:47.000000000 +0930
++++ ./configure 2004-05-16 04:50:42.000000000 +0930
+@@ -560,15 +560,15 @@
+ if test "$_vorbis" = auto ; then
+ _vorbis=no
+ cat > $TMPC << EOF
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+ int main(void) { vorbis_packet_blocksize(0,0); return 0; }
+ EOF
+ cc_check $LDFLAGS $CXXFLAGS $OGG_CFLAGS $OGG_LIBS $VORBIS_CFLAGS $VORBIS_LIBS \
+- -lvorbis -logg -lm && _vorbis=yes
++ -lvorbisidec -logg -lm && _vorbis=yes
+ fi
+ if test "$_vorbis" = yes ; then
+ _def_vorbis='#define USE_VORBIS'
+- LIBS="$LIBS $OGG_LIBS $VORBIS_LIBS -lvorbisfile -lvorbis -logg"
++ LIBS="$LIBS $OGG_LIBS $VORBIS_LIBS -lvorbisidec -logg"
+ INCLUDES="$INCLUDES $OGG_CFLAGS $VORBIS_CFLAGS"
+ else
+ _def_vorbis='#undef USE_VORBIS'
diff --git a/recipes-qtopia/scummvm/scummvm-1.0.0/no-strip.patch b/recipes-qtopia/scummvm/scummvm-1.0.0/no-strip.patch
new file mode 100644
index 0000000..c69402e
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm-1.0.0/no-strip.patch
@@ -0,0 +1,20 @@
+--- scummvm-1.0.0/ports.mk~ 2009-11-27 12:51:50.000000000 +0100
++++ scummvm-1.0.0/ports.mk 2009-11-27 12:51:50.000000000 +0100
+@@ -10,7 +10,7 @@
+ #
+ install: all
+ $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
+- $(INSTALL) -c -s -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(BINDIR)/$(EXECUTABLE)"
++ $(INSTALL) -c -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(BINDIR)/$(EXECUTABLE)"
+ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6/"
+ $(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.6" "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
+ $(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/pixmaps/"
+@@ -21,7 +21,7 @@
+ $(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) "$(DESTDIR)$(DATADIR)/scummvm/"
+ ifdef DYNAMIC_MODULES
+ $(INSTALL) -d "$(DESTDIR)$(LIBDIR)/scummvm/"
+- $(INSTALL) -c -s -m 644 $(DIST_FILES_PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
++ $(INSTALL) -c -m 644 $(DIST_FILES_PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
+ endif
+
+ uninstall:
diff --git a/recipes-qtopia/scummvm/scummvm-1.1.1/no-strip.patch b/recipes-qtopia/scummvm/scummvm-1.1.1/no-strip.patch
new file mode 100644
index 0000000..02bc71e
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm-1.1.1/no-strip.patch
@@ -0,0 +1,22 @@
+Index: scummvm-1.1.1/ports.mk
+===================================================================
+--- scummvm-1.1.1.orig/ports.mk
++++ scummvm-1.1.1/ports.mk
+@@ -10,7 +10,7 @@
+ #
+ install: all
+ $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
+- $(INSTALL) -c -s -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(BINDIR)/$(EXECUTABLE)"
++ $(INSTALL) -c -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(BINDIR)/$(EXECUTABLE)"
+ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6/"
+ $(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.6" "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
+ $(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/pixmaps/"
+@@ -21,7 +21,7 @@ install: all
+ $(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) "$(DESTDIR)$(DATADIR)/scummvm/"
+ ifdef DYNAMIC_MODULES
+ $(INSTALL) -d "$(DESTDIR)$(LIBDIR)/scummvm/"
+- $(INSTALL) -c -s -m 644 $(PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
++ $(INSTALL) -c -m 644 $(PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
+ endif
+
+ uninstall:
diff --git a/recipes-qtopia/scummvm/scummvm-qpe_0.6.1b.bb b/recipes-qtopia/scummvm/scummvm-qpe_0.6.1b.bb
new file mode 100644
index 0000000..1ff2b0b
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm-qpe_0.6.1b.bb
@@ -0,0 +1,10 @@
+require scummvm.inc
+
+DEPENDS = "libsdl-qpe tremor libogg zlib ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+
+S = "${WORKDIR}/scummvm-${PV}/"
+
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "143dd7cfe0995922c49e1f8a6cdf2055"
+SRC_URI[sha256sum] = "29007f54d9e5a37a3da9f51670de7828dde9a3559beddbdd5c2f59796fb220f6"
diff --git a/recipes-qtopia/scummvm/scummvm.inc b/recipes-qtopia/scummvm/scummvm.inc
new file mode 100644
index 0000000..9f7a4f2
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm.inc
@@ -0,0 +1,28 @@
+DESCRIPTION = "Virtual Machine for several classic graphical point-and-click adventure games"
+HOMEPAGE = "http://www.scummvm.org"
+SECTION = "games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+INC_PR = "r7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/scummvm/scummvm-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--host=${HOST_SYS} \
+ --backend=sdl \
+ --with-sdl-prefix=${STAGING_BINDIR_CROSS} \
+ --disable-alsa \
+ --prefix=${prefix} \
+ --with-ogg-prefix=${STAGING_LIBDIR}/.. \
+ --with-vorbis-prefix=${STAGING_LIBDIR}/.. \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '--disable-mpeg2', '--with-mpeg2-prefix=${STAGING_LIBDIR}/..', d)} \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '--disable-mad', '--with-mad-prefix=${STAGING_LIBDIR}/..', d)} \
+ "
+
+EXTRA_OEMAKE = "MANDIR=${mandir}"
+
+do_configure() {
+ ./configure ${EXTRA_OECONF}
+}
diff --git a/recipes-qtopia/scummvm/scummvm_0.12.0.bb b/recipes-qtopia/scummvm/scummvm_0.12.0.bb
new file mode 100644
index 0000000..cc94a5d
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_0.12.0.bb
@@ -0,0 +1,38 @@
+require scummvm.inc
+
+CCACHE = ""
+
+DEPENDS = "virtual/libsdl libvorbis libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+
+SRC_URI += " file://scummvm.desktop \
+ file://no-strip.patch"
+
+SRC_URI_append_openmoko = " file://openmoko-scummvm "
+SRC_URI_append_shr = " file://openmoko-scummvm "
+
+PR = "${INC_PR}.0"
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
+
+EXTRA_OECONF += " \
+ --disable-scumm-7-8 \
+ --disable-he \
+ "
+
+do_install_append() {
+ if [ -f ${WORKDIR}/openmoko-scummvm ]; then
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/openmoko-scummvm ${D}${bindir}/openmoko-scummvm
+ fi
+ if [ -f ${WORKDIR}/scummvm.desktop ]; then
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/scummvm.desktop ${D}${datadir}/applications
+ fi
+ install -d ${D}${datadir}/scummvm
+ install -m 0644 gui/themes/modern.ini ${D}${datadir}/scummvm/
+ install -m 0644 gui/themes/modern.zip ${D}${datadir}/scummvm/
+}
+
+SRC_URI[md5sum] = "cd5620c57645948c8da0d4d9c9fcffb3"
+SRC_URI[sha256sum] = "db9aa3bbb648d09639d9e16f1872558a105f222dac5e3d0a16370b4cf7c3e699"
diff --git a/recipes-qtopia/scummvm/scummvm_0.6.0.bb b/recipes-qtopia/scummvm/scummvm_0.6.0.bb
new file mode 100644
index 0000000..baf21db
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_0.6.0.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Virtual Machine for LucasArts Adventures for Qt/Embedded based palmtop environments w/ SDL."
+SECTION = "opie/games"
+PRIORITY = "optional"
+DEPENDS = "libsdl-qpe tremor libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+LICENSE = "GPL"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/scummvm/scummvm-${PV}.tar.bz2 \
+ file://sword1.patch \
+ file://tremor.patch \
+ file://mouse.patch "
+PR="r1"
+
+inherit autotools
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+EXTRA_OECONF = "--host=${HOST_SYS} \
+ --backend=sdl \
+ --disable-alsa \
+ --with-ogg-prefix=${STAGING_LIBDIR}/.. \
+ --with-vorbis-prefix=${STAGING_LIBDIR}/.. \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '--disable-mpeg2', '--with-mpeg2-prefix=${STAGING_LIBDIR}/..', d)} \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '--disable-mad', '--with-mad-prefix=${STAGING_BINDIR_CROSS}/..', d)} \
+ "
+do_configure() {
+ ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 scummvm ${D}${bindir}/scummvm
+}
+
+
+SRC_URI[md5sum] = "efc4207a7f10b24e9fc5afa10ed9c455"
+SRC_URI[sha256sum] = "ac22ad70ad6f88c7c8450bc06ba38602331c7470abcafb9e7fe62bfb505b1a3b"
diff --git a/recipes-qtopia/scummvm/scummvm_0.6.1b.bb b/recipes-qtopia/scummvm/scummvm_0.6.1b.bb
new file mode 100644
index 0000000..adc6b20
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_0.6.1b.bb
@@ -0,0 +1,13 @@
+require scummvm.inc
+DEPENDS = "virtual/libsdl tremor libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+SRC_URI += " file://mouse.patch \
+ file://gcc-4.x.x-accept.patch \
+ file://sh3-linux-new-arch.patch \
+ file://tail-obselete-fix.patch \
+ file://tremor.patch"
+
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "143dd7cfe0995922c49e1f8a6cdf2055"
+SRC_URI[sha256sum] = "29007f54d9e5a37a3da9f51670de7828dde9a3559beddbdd5c2f59796fb220f6"
diff --git a/recipes-qtopia/scummvm/scummvm_0.9.0.bb b/recipes-qtopia/scummvm/scummvm_0.9.0.bb
new file mode 100644
index 0000000..474bc5e
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_0.9.0.bb
@@ -0,0 +1,13 @@
+require scummvm.inc
+DEPENDS = "virtual/libsdl libvorbis libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+SRC_URI += "file://sh3-arch-0.9.0+.patch"
+
+EXTRA_OECONF += "--enable-lure \
+ --enable-agi \
+ --enable-cine \
+ "
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "5eede9c97d1883f80770a3e211419783"
+SRC_URI[sha256sum] = "5824f67aa37b00fc8b92ac4fcc413a9a7d868174dcd6df580c4d706807e4545e"
diff --git a/recipes-qtopia/scummvm/scummvm_0.9.1.bb b/recipes-qtopia/scummvm/scummvm_0.9.1.bb
new file mode 100644
index 0000000..7865220
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_0.9.1.bb
@@ -0,0 +1,35 @@
+require scummvm.inc
+
+DEPENDS = "virtual/libsdl libvorbis libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+
+SRC_URI += "file://makefile-nostrip.patch \
+ file://scummvm-targetcheck.patch"
+SRC_URI_append_openmoko = " file://openmoko-scummvm \
+ file://scummvm.desktop"
+
+PR = "${INC_PR}.0"
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
+
+EXTRA_OECONF += "--enable-lure \
+ --enable-agi \
+ --enable-cine \
+ "
+
+do_install_append() {
+ if [ -f ${WORKDIR}/openmoko-scummvm ]; then
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/openmoko-scummvm ${D}${bindir}/openmoko-scummvm
+ fi
+ if [ -f ${WORKDIR}/scummvm.desktop ]; then
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/scummvm.desktop ${D}${datadir}/applications
+ fi
+ install -d ${D}${datadir}/scummvm
+ install -m 0644 gui/themes/modern.ini ${D}${datadir}/scummvm/
+ install -m 0644 gui/themes/modern.zip ${D}${datadir}/scummvm/
+}
+
+SRC_URI[md5sum] = "30a82ad466bae223875e66ee14b94904"
+SRC_URI[sha256sum] = "5cd5d9c06281a4f81d85d9a9f9b0410045d4a764a855f06f574183b528c15d1a"
diff --git a/recipes-qtopia/scummvm/scummvm_1.0.0.bb b/recipes-qtopia/scummvm/scummvm_1.0.0.bb
new file mode 100644
index 0000000..6ab59be
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_1.0.0.bb
@@ -0,0 +1,43 @@
+require scummvm.inc
+
+CCACHE = ""
+
+DEPENDS = "virtual/libsdl libvorbis libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+
+SRC_URI += " file://scummvm.desktop \
+ file://no-strip.patch \
+ "
+PR = "${INC_PR}.0"
+
+SRC_URI_append_openmoko = " file://openmoko-scummvm "
+SRC_URI_append_shr = " file://openmoko-scummvm "
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
+
+EXTRA_OECONF += " \
+ --disable-scumm-7-8 \
+ --disable-he \
+ "
+
+# Workaround, because some env variables aren't recognised correctly
+do_configure_append() {
+ sed -i "s/AS := as/AS := ${AS}/" ${S}/config.mk
+ sed -i "s/AR := ar cru/AR := ${AR} cru/" ${S}/config.mk
+ sed -i "s/STRIP := strip/STRIP := ${STRIP}/" ${S}/config.mk
+ sed -i "s/RANLIB := ranlib/RANLIB := ${RANLIB}/" ${S}/config.mk
+}
+
+do_install_append() {
+ if [ -f ${WORKDIR}/openmoko-scummvm ]; then
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/openmoko-scummvm ${D}${bindir}/openmoko-scummvm
+ fi
+ if [ -f ${WORKDIR}/scummvm.desktop ]; then
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/scummvm.desktop ${D}${datadir}/applications
+ fi
+}
+
+SRC_URI[md5sum] = "11b911937e0fc73c94a7bdc374ab617c"
+SRC_URI[sha256sum] = "920932b9d0cfca019f35c2451d93d94ca3b9f981f0b82c418bfbc864fb8c00ec"
diff --git a/recipes-qtopia/scummvm/scummvm_1.1.1.bb b/recipes-qtopia/scummvm/scummvm_1.1.1.bb
new file mode 100644
index 0000000..90fc136
--- /dev/null
+++ b/recipes-qtopia/scummvm/scummvm_1.1.1.bb
@@ -0,0 +1,41 @@
+require scummvm.inc
+
+DEPENDS = "virtual/libsdl libvorbis libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+
+SRC_URI += " file://scummvm.desktop \
+ file://no-strip.patch \
+ "
+PR = "${INC_PR}.1"
+
+SRC_URI_append_openmoko = " file://openmoko-scummvm "
+SRC_URI_append_shr = " file://openmoko-scummvm "
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
+
+# Make this a plugin enabled build. Bigger binary, less memory usage. Makes more games run on lower end platforms.
+# These plugins are not normal Linux shared libs so will fall foul of the sanity checker.
+INSANE_SKIP_${PN} = True
+EXTRA_OECONF += " --enable-plugins --default-dynamic "
+
+# Workaround, because some env variables aren't recognised correctly
+do_configure_append() {
+ sed -i "s/AS := as/AS := ${AS}/" ${S}/config.mk
+ sed -i "s/AR := ar cru/AR := ${AR} cru/" ${S}/config.mk
+ sed -i "s/STRIP := strip/STRIP := ${STRIP}/" ${S}/config.mk
+ sed -i "s/RANLIB := ranlib/RANLIB := ${RANLIB}/" ${S}/config.mk
+}
+
+do_install_append() {
+ if [ -f ${WORKDIR}/openmoko-scummvm ]; then
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/openmoko-scummvm ${D}${bindir}/openmoko-scummvm
+ fi
+ if [ -f ${WORKDIR}/scummvm.desktop ]; then
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/scummvm.desktop ${D}${datadir}/applications
+ fi
+}
+
+SRC_URI[md5sum] = "ed9098a78022d07fa1482f14325e3ab8"
+SRC_URI[sha256sum] = "9cc865c5690bfc1df4970d35984455031467381180a71d84b08dcc9f51e39d4a"
diff --git a/recipes-qtopia/shopper/shopper-1.2.1/gcc3.patch b/recipes-qtopia/shopper/shopper-1.2.1/gcc3.patch
new file mode 100644
index 0000000..940b4ea
--- /dev/null
+++ b/recipes-qtopia/shopper/shopper-1.2.1/gcc3.patch
@@ -0,0 +1,11 @@
+--- Shopper/shoppingitem.h.orig 2004-03-07 12:02:51.087057272 +0000
++++ Shopper/shoppingitem.h 2004-03-07 12:03:09.285290720 +0000
+@@ -33,7 +33,7 @@
+
+ public:
+ ShoppingItemCheckBox (const QString & text, QWidget * parent,
+- const char * name=0 );
++ const char * name );
+ signals:
+ void edit();
+
diff --git a/recipes-qtopia/shopper/shopper-1.2.1/path_fix.patch b/recipes-qtopia/shopper/shopper-1.2.1/path_fix.patch
new file mode 100644
index 0000000..d8142c7
--- /dev/null
+++ b/recipes-qtopia/shopper/shopper-1.2.1/path_fix.patch
@@ -0,0 +1,23 @@
+--- Shopper/shoplist.cpp 2008-11-17 21:09:26.000000000 +0000
++++ Shopper/shoplist.cpp 2008-11-17 22:21:12.000000000 +0000
+@@ -38,6 +38,7 @@
+ #include <qmessagebox.h>
+ #include <qregexp.h>
+
++#include <stdlib.h>
+
+ // TODO: Somewhere it should say:
+ // if (mode == ShoppingItem::Left && nothing_left) {
+@@ -229,6 +230,12 @@
+ QString fileName = Global::applicationFileName("ShoppingListQt", "shoppinglist.xml");
+
+ QFile file( fileName );
++ if ( ! file.exists() ) {
++ // Ugly hack
++ QString cmd = QString("cp " SHOPPER_DATADIR "/shoppinglist.xml ") + fileName;
++ system(cmd);
++ }
++
+ _startCategory = static_cast<CategoryItem*>(_showAllAction);
+ // If there's a file - read it. If not then we drop through to do
+ // other initialisation.
diff --git a/recipes-qtopia/shopper/shopper_1.2.1.bb b/recipes-qtopia/shopper/shopper_1.2.1.bb
new file mode 100644
index 0000000..67a26d1
--- /dev/null
+++ b/recipes-qtopia/shopper/shopper_1.2.1.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Shopping list manager"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/zaurus-shopper/Shopper-${PV}.tar.gz \
+ file://gcc3.patch \
+ file://path_fix.patch"
+S = "${WORKDIR}/Shopper"
+
+inherit palmtop
+
+SHOPPER_DATADIR = "${palmtopdir}/share/shopper"
+CXXFLAGS_append += " -DSHOPPER_DATADIR='"${SHOPPER_DATADIR}"' "
+
+QMAKE_PROFILES = "Shopper.pro"
+
+pkg_postinst() {
+ /opt/QtPalmtop/bin/qcop QPE/System "linkChanged(QString)" 2>/dev/null
+ if [ -n "$D" ]; then false; fi
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/help/html \
+ ${D}${SHOPPER_DATADIR}
+ install -m 0755 ${S}/Shopper ${D}${palmtopdir}/bin/
+ install -m 0644 ${S}/Shopper.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${S}/Shopper.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/Shopper.html ${D}${palmtopdir}/help/html/
+ install -m 0644 ${S}/shoppinglist.xml ${D}${SHOPPER_DATADIR}/shoppinglist.xml
+}
+
+SRC_URI[md5sum] = "ed4d8ce2227abf7e68de687a8c930fa4"
+SRC_URI[sha256sum] = "0e1ab08b22742d18b9ee0288874f63ddd74591e1b9f29003fe66dd0ba2289bcf"
diff --git a/recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc3.patch b/recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc3.patch
new file mode 100644
index 0000000..b94e26a
--- /dev/null
+++ b/recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc3.patch
@@ -0,0 +1,69 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- sidplayer/sidplayer.cpp~gcc3 2003-09-26 20:28:51.000000000 +0200
++++ sidplayer/sidplayer.cpp 2004-02-12 19:24:33.000000000 +0100
+@@ -83,8 +83,8 @@
+ //============================================================================================
+
+ Sidplayer::Sidplayer( int argc, char **argv, QPEApplication *app,
+- QWidget *parent, const char *name, WFlags f )
+- : TabbedDialog( parent, name, f ),
++ QWidget *parent, const char *name, WFlags flags )
++ : TabbedDialog( parent, name, flags ),
+ application( app ),
+ selectedSong( 1 ),
+ totalSongs( 1 ),
+@@ -710,7 +710,7 @@
+
+ //--------------------------------------------------------------------------------------------
+
+-void Sidplayer::updateListeningMileageLabel( bool forceUpdate = false )
++void Sidplayer::updateListeningMileageLabel( bool forceUpdate )
+ {
+ static int oldSecondsTotal = 0;
+ int secondsTotal = myEmuEngine.getSecondsTotal();
+--- sidplayer/sidplayer_file.cpp~gcc3 2003-09-25 21:56:57.000000000 +0200
++++ sidplayer/sidplayer_file.cpp 2004-02-12 19:24:33.000000000 +0100
+@@ -249,7 +249,7 @@
+ }
+ }
+
+-void Sidplayer::populateFileView( const QString &directory, const QString &selectThis = "" )
++void Sidplayer::populateFileView( const QString &directory, const QString &selectThis )
+ {
+ QDir dir( directory );
+
+--- sidplayer/sidplayer_list.cpp~gcc3 2003-07-09 21:49:28.000000000 +0200
++++ sidplayer/sidplayer_list.cpp 2004-02-12 19:24:33.000000000 +0100
+@@ -172,7 +172,7 @@
+ setAllPlaylistViewItemsOddFlag();
+ }
+
+-void Sidplayer::insertDir_( QString dirpath = "" )
++void Sidplayer::insertDir_( QString dirpath )
+ {
+ if ( dirpath == "" )
+ dirpath = currentDir;
+@@ -225,7 +225,7 @@
+ setAllPlaylistViewItemsOddFlag();
+ }
+
+-void Sidplayer::insertDirRecursive_( QString dirpath = "" )
++void Sidplayer::insertDirRecursive_( QString dirpath )
+ {
+ if ( dirpath == "" )
+ dirpath = currentDir;
+--- sidplayer/volumebarwidget.cpp~gcc3 2003-07-09 22:35:48.000000000 +0200
++++ sidplayer/volumebarwidget.cpp 2004-02-12 19:28:54.000000000 +0100
+@@ -18,7 +18,7 @@
+
+ #include <iostream>
+
+-VolumeBarWidget::VolumeBarWidget( QWidget *parent = 0, const char *name = 0, WFlags f = 0 )
++VolumeBarWidget::VolumeBarWidget( QWidget *parent, const char *name, WFlags f )
+ : QWidget( parent, name, f )
+ {
+ getVolume();
diff --git a/recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc34.patch b/recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc34.patch
new file mode 100644
index 0000000..00598a1
--- /dev/null
+++ b/recipes-qtopia/sidplayer/sidplayer-1.5.0/gcc34.patch
@@ -0,0 +1,40 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- sidplayer/sidplayer.h~gcc34.patch 2004-05-16 20:54:24.000000000 +0200
++++ sidplayer/sidplayer.h 2004-05-16 20:54:24.000000000 +0200
+@@ -36,7 +36,7 @@
+
+ #define SHUTDOWN_TIMER_TIMEOUT 10 // 2 would probably be also long enough
+
+-
++static bool evenFlag = 0;
+ extern bool sidEmuFastForwardReplay( int );
+
+
+--- sidplayer/sidplayer_list.cpp~gcc34.patch 2004-05-16 20:54:24.000000000 +0200
++++ sidplayer/sidplayer_list.cpp 2004-05-16 20:55:40.000000000 +0200
+@@ -23,9 +23,6 @@
+ #include <qpe/config.h>
+
+
+-static bool evenFlag; // This global flag is used to toggle between even and odd list entries
+- // when generating list items (i.e. when populating a list).
+-
+ PlaylistItem::PlaylistItem( QListView *parent, QListViewItem *after, const QFileInfo &fi,
+ const QString &name,
+ const QString &author,
+--- sidplayer/sidplayer_file.cpp~gcc34.patch 2004-05-16 20:54:24.000000000 +0200
++++ sidplayer/sidplayer_file.cpp 2004-05-16 20:56:01.000000000 +0200
+@@ -24,9 +24,6 @@
+ #endif
+
+
+-static bool evenFlag; // This global flag is used to toggle between even and odd list entries
+- // when generating list items (i.e. when populating a list).
+-
+ FileItem::FileItem( QListView *parent, const QFileInfo &fi, int type )
+ : ItemBase( parent ),
+ fileInfo( fi )
diff --git a/recipes-qtopia/sidplayer/sidplayer-1.5.0/use-external-libsidplay.patch b/recipes-qtopia/sidplayer/sidplayer-1.5.0/use-external-libsidplay.patch
new file mode 100644
index 0000000..7c00079
--- /dev/null
+++ b/recipes-qtopia/sidplayer/sidplayer-1.5.0/use-external-libsidplay.patch
@@ -0,0 +1,20 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- sidplayer/sidplayer.h~use-external-libsidplay 2003-09-26 00:28:31.000000000 +0200
++++ sidplayer/sidplayer.h 2004-02-12 18:16:19.000000000 +0100
+@@ -13,9 +13,9 @@
+
+ #include "tabbeddialog.h"
+
+-#include "libsidplay/src/player.h"
+-#include "libsidplay/src/fformat.h"
+-#include "libsidplay/src/myendian.h"
++#include <player.h>
++#include <fformat.h>
++#include <myendian.h>
+ #include "audiodrv.h"
+
+ #include <qpe/qpeapplication.h>
diff --git a/recipes-qtopia/sidplayer/sidplayer_1.5.0.bb b/recipes-qtopia/sidplayer/sidplayer_1.5.0.bb
new file mode 100644
index 0000000..d617ca8
--- /dev/null
+++ b/recipes-qtopia/sidplayer/sidplayer_1.5.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A SID Player for the Qt/Embedded based Palmtop Environments"
+SECTION = "opie/multimedia"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://sidplayer.sourceforge.net/"
+DEPENDS = "libsidplay"
+PR = "r1"
+
+SRC_URI = "http://sidplayer.sourceforge.net/sidplayer.tar.gz \
+ file://use-external-libsidplay.patch \
+ file://gcc3.patch \
+ file://gcc34.patch"
+S = "${WORKDIR}/sidplayer"
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/sidplay"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics
+ cp -pPR ../apps ../bin ../pics ${D}${palmtopdir}/
+}
+
+SRC_URI[md5sum] = "bba4a99e59581066e905c9326a724ba5"
+SRC_URI[sha256sum] = "bc6bfd100c495e74baa651c470252484b19bfc2e6fa8520f591b0c01b9fcfb5d"
diff --git a/recipes-qtopia/slcalc/files/slcalc.png b/recipes-qtopia/slcalc/files/slcalc.png
new file mode 100644
index 0000000..cdbd6c9
--- /dev/null
+++ b/recipes-qtopia/slcalc/files/slcalc.png
Binary files differ
diff --git a/recipes-qtopia/slcalc/files/slcalc2.png b/recipes-qtopia/slcalc/files/slcalc2.png
new file mode 100644
index 0000000..cbf1b2e
--- /dev/null
+++ b/recipes-qtopia/slcalc/files/slcalc2.png
Binary files differ
diff --git a/recipes-qtopia/slcalc/slcalc_1.2.1.bb b/recipes-qtopia/slcalc/slcalc_1.2.1.bb
new file mode 100644
index 0000000..1d88e90
--- /dev/null
+++ b/recipes-qtopia/slcalc/slcalc_1.2.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Scientific calculator with user definable constants and functions."
+HOMEPAGE = "http://homepage3.nifty.com/cam/slcalc.htm"
+SECTION = "opie/applications"
+LICENSE = "GPL"
+PR = "r2"
+
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+SRC_URI = "http://homepage3.nifty.com/cam/slcalc_1.2.1_arm.tar.gz \
+ file://slcalc2.png"
+
+inherit opie
+
+S = "${WORKDIR}/slcalc_source"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 ${WORKDIR}/slcalc2.png ${D}${palmtopdir}/pics/slcalc.png
+}
+
+SRC_URI[md5sum] = "3052050235b4bc8fc14d28b8b5e13e49"
+SRC_URI[sha256sum] = "c7d7f2fb4a3903dd26a90df358f5757f2637c333cd6f6bf511f506a958349fa1"
diff --git a/recipes-qtopia/sliderulez/sliderulez_0.92.bb b/recipes-qtopia/sliderulez/sliderulez_0.92.bb
new file mode 100644
index 0000000..3a48000
--- /dev/null
+++ b/recipes-qtopia/sliderulez/sliderulez_0.92.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Sliderulez is an advanced RPN pocket calculator."
+HOMEPAGE = "http://www.gelhaus.net/cgi-bin/showpage.py?zaurus/+sliderulez.html"
+AUTHOR = "Matthew Gelhaus"
+SECTION = "opie/applications"
+LICENSE = "GPL"
+PR = "r0"
+
+APPTYPE = "binary"
+APPDESKTOP = "pkg/opt/QtPalmtop/apps/Applications"
+
+SRC_URI = "http://www.gelhaus.net/zaurus/sliderulez-${PV}.tar.gz"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "TARGET=sliderulez"
+
+do_configure_prepend() {
+ rm -rf "*.o Makefile"
+}
+
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 pkg/opt/QtPalmtop/pics/SlideRuleZ.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "9b48fc595d7291fa8edddfafba2cb7a9"
+SRC_URI[sha256sum] = "28a6af2d1490374de26084e346bbd227586c0f6232dcf4cfebf80413adc7d932"
diff --git a/recipes-qtopia/snes9x/64bit.patch b/recipes-qtopia/snes9x/64bit.patch
new file mode 100644
index 0000000..a8388de
--- /dev/null
+++ b/recipes-qtopia/snes9x/64bit.patch
@@ -0,0 +1,110 @@
+--- s/offsets.cpp~ 2004-07-11 22:50:59.000000000 +0100
++++ s/offsets.cpp 2008-07-27 10:28:40.000000000 +0100
+@@ -100,30 +100,30 @@
+ #endif
+
+ #define OFFSET(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " CPU + %d\n", (int) &((struct SCPUState *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " CPU + %d\n", &((struct SCPUState *) 0)->F);
+ #define OFFSET2(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " Registers + %d\n", (int) &((struct SRegisters *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " Registers + %d\n", &((struct SRegisters *) 0)->F);
+ #define OFFSET3(F) \
+-fprintf (S9xSTREAM, "#define " #F " Memory + %d\n", (int) &((class CMemory *) 0)->F);
++fprintf (S9xSTREAM, "#define " #F " Memory + %d\n", &((class CMemory *) 0)->F);
+ #define OFFSET4(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " APU + %d\n", (int) &((struct SAPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " APU + %d\n", &((struct SAPU *) 0)->F);
+ #define OFFSET5(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " IAPU + %d\n", (int) &((struct SIAPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " IAPU + %d\n", &((struct SIAPU *) 0)->F);
+ #define OFFSET6(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " ICPU + %d\n", (int) &((struct SICPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " ICPU + %d\n", &((struct SICPU *) 0)->F);
+ #define OFFSET7(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " Settings + %d\n", (int) &((struct SSettings *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " Settings + %d\n", &((struct SSettings *) 0)->F);
+ #define OFFSET8(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " APURegisters + %d\n", (int) &((struct SAPURegisters *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " APURegisters + %d\n", &((struct SAPURegisters *) 0)->F);
+
+ #define OFFSET9(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " PPU + %d\n", (int) &((struct SPPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " PPU + %d\n", &((struct SPPU *) 0)->F);
+ #define OFFSET10(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " IPPU + %d\n", (int) &((struct InternalPPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " IPPU + %d\n", &((struct InternalPPU *) 0)->F);
+ #define OFFSET11(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " SA1 + %d\n", (int) &((struct SSA1 *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " SA1 + %d\n", &((struct SSA1 *) 0)->F);
+ #define OFFSET12(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " SA1Registers + %d\n", (int) &((struct SSA1Registers *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " SA1Registers + %d\n", &((struct SSA1Registers *) 0)->F);
+
+ int main (int /*argc*/, char ** /*argv*/)
+ {
+--- s/getset.h~ 2004-07-11 22:50:58.000000000 +0100
++++ s/getset.h 2008-07-27 10:30:38.000000000 +0100
+@@ -120,7 +120,7 @@
+ return (*(GetAddress + (Address & 0xffff)));
+ }
+
+- switch ((int) GetAddress)
++ switch ((long)GetAddress)
+ {
+ case CMemory::MAP_PPU:
+ return (S9xGetPPU (Address & 0xffff));
+@@ -225,7 +225,7 @@
+ #endif
+ }
+
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_PPU:
+ return (S9xGetPPU (Address & 0xffff) |
+@@ -349,7 +349,7 @@
+ return;
+ }
+
+- switch ((int) SetAddress)
++ switch ((long) SetAddress)
+ {
+ case CMemory::MAP_PPU:
+ S9xSetPPU (Byte, Address & 0xffff);
+@@ -482,7 +482,7 @@
+ return;
+ }
+
+- switch ((int) SetAddress)
++ switch ((long) SetAddress)
+ {
+ case CMemory::MAP_PPU:
+ S9xSetPPU ((uint8) Word, Address & 0xffff);
+@@ -603,7 +603,7 @@
+ {
+ return s7r.bank50;
+ }
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_SPC7110_DRAM:
+ #ifdef SPC7110_DEBUG
+@@ -669,7 +669,7 @@
+ if(Settings.SPC7110&&((Address&0x7FFFFF)==0x4800))
+ return s7r.bank50;
+
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_SPC7110_DRAM:
+ #ifdef SPC7110_DEBUG
+@@ -729,7 +729,7 @@
+ return;
+ }
+
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_PPU:
+ CPU.PCBase = Memory.FillRAM;
diff --git a/recipes-qtopia/snes9x/snes9x-sdl-qpe_1.39.bb b/recipes-qtopia/snes9x/snes9x-sdl-qpe_1.39.bb
new file mode 100644
index 0000000..485c5bc
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x-sdl-qpe_1.39.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Super Nintendo Emulator based on SDL, QtE Palmtop Environments Edition"
+SECTION = "opie/games"
+PRIORITY = "optional"
+DEPENDS = "libsdl-qpe"
+LICENSE = "snes9x"
+PR = "r4"
+
+SRC_URI = "http://www.vanille.de/mirror/snes9x-sdl-${PV}.tar.bz2 \
+ file://compile.patch"
+S = "${WORKDIR}/snes9x-sdl-${PV}"
+
+FILESPATHPKG .= ":snes9x-sdl"
+
+inherit qmake_base
+
+QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte",d)}'
+
+do_compile() {
+ oe_runmake CC="${CC}" CCC="${CXX}" \
+ INCLUDES="-I${STAGING_INCDIR} `sdl-config --cflags`" \
+ LDLIBS="`sdl-config --libs` -L${OE_QMAKE_LIBDIR_QT} -Wl,-rpath-link,${STAGING_LIBDIR} -lqpe -l${QT_LIBRARY}"
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin/
+ install -m 0755 snes9x ${D}${palmtopdir}/bin/snes9x
+}
+
+FILES_${PN} = "${palmtopdir}/bin/snes9x"
+
+SRC_URI[md5sum] = "a7836a9b6eaae433079c1c9d19f2635a"
+SRC_URI[sha256sum] = "489bb2f9fb69922e9befc27ae1b8d19d31c83c586f55b7ecc503cb4f5e767da4"
diff --git a/recipes-qtopia/snes9x/snes9x-sdl/compile.patch b/recipes-qtopia/snes9x/snes9x-sdl/compile.patch
new file mode 100644
index 0000000..b41a30f
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x-sdl/compile.patch
@@ -0,0 +1,275 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- snes9x-sdl-1.39/unix/svga.cpp~compile
++++ snes9x-sdl-1.39/unix/svga.cpp
+@@ -48,7 +48,7 @@
+ #include <stdlib.h>
+ #include <signal.h>
+
+-#include "sdl.h"
++#include <SDL.h>
+
+ #include "snes9x.h"
+ #include "memmap.h"
+--- snes9x-sdl-1.39/unix/unix.cpp~compile
++++ snes9x-sdl-1.39/unix/unix.cpp
+@@ -50,7 +50,7 @@
+ #include <sys/types.h>
+ #include <ctype.h>
+ #include <dirent.h>
+-#include <sdl.h>
++#include <SDL.h>
+ #include "keydef.h"
+
+ #undef USE_THREADS
+@@ -189,8 +189,7 @@
+ }
+
+ /*#include "cheats.h"*/
+-extern "C"
+-int SDL_main (int argc, char **argv)
++int main (int argc, char **argv)
+ {
+ if (argc < 2)
+ S9xUsage ();
+--- /dev/null
++++ snes9x-sdl-1.39/unzip/unzipP.h
+@@ -0,0 +1,124 @@
++#ifndef _UNZIPP_H_
++#define _UNZIPP_H_
++
++#include "unzip.h"
++
++#ifndef local
++#define local static
++#endif
++/* compile with -Dlocal if your debugger can't find static symbols */
++
++
++
++#if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) && \
++ !defined(CASESENSITIVITYDEFAULT_NO)
++#define CASESENSITIVITYDEFAULT_NO
++#endif
++
++
++#ifndef UNZ_BUFSIZE
++#define UNZ_BUFSIZE (16384)
++#endif
++
++#ifndef UNZ_MAXFILENAMEINZIP
++#define UNZ_MAXFILENAMEINZIP (256)
++#endif
++
++#ifndef ALLOC
++#define ALLOC(size) (malloc(size))
++#endif
++#ifndef TRYFREE
++#define TRYFREE(p) {if (p) free(p);}
++#endif
++
++#define SIZECENTRALDIRITEM (0x2e)
++#define SIZEZIPLOCALHEADER (0x1e)
++
++
++/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
++
++#ifndef SEEK_CUR
++#define SEEK_CUR 1
++#endif
++
++#ifndef SEEK_END
++#define SEEK_END 2
++#endif
++
++#ifndef SEEK_SET
++#define SEEK_SET 0
++#endif
++
++/* unz_file_info_interntal contain internal info about a file in zipfile */
++typedef struct unz_file_info_internal_s
++{
++ uLong offset_curfile; /* relative offset of local header 4
++ * bytes */
++} unz_file_info_internal;
++
++
++/*
++ * file_in_zip_read_info_s contain internal information about a file in
++ * zipfile, when reading and decompress it
++ */
++typedef struct
++{
++ char *read_buffer;/* internal buffer for compressed data */
++ z_stream stream; /* zLib stream structure for inflate */
++
++ uLong pos_in_zipfile; /* position in byte on the zipfile,
++ * for fseek */
++ uLong stream_initialised; /* flag set if stream structure is
++ * initialised */
++
++ uLong offset_local_extrafield; /* offset of the local extra
++ * field */
++ uInt size_local_extrafield; /* size of the local extra
++ * field */
++ uLong pos_local_extrafield; /* position in the local
++ * extra field in read */
++
++ uLong crc32; /* crc32 of all data uncompressed */
++ uLong crc32_wait; /* crc32 we must obtain after decompress all */
++ uLong rest_read_compressed; /* number of byte to be
++ * decompressed */
++ uLong rest_read_uncompressed; /* number of byte to be
++ * obtained after decomp */
++ FILE *file; /* io structore of the zipfile */
++ uLong compression_method; /* compression method (0==store) */
++ uLong byte_before_the_zipfile; /* byte before the zipfile,
++ * (>0 for sfx) */
++} file_in_zip_read_info_s;
++
++
++/*
++ * unz_s contain internal information about the zipfile
++ */
++typedef struct
++{
++ FILE *file; /* io structore of the zipfile */
++ unz_global_info gi; /* public global information */
++ uLong byte_before_the_zipfile; /* byte before the zipfile,
++ * (>0 for sfx) */
++ uLong num_file; /* number of the current file in the zipfile */
++ uLong pos_in_central_dir; /* pos of the current file in the
++ * central dir */
++ uLong current_file_ok; /* flag about the usability of the
++ * current file */
++ uLong central_pos;/* position of the beginning of the central
++ * dir */
++
++ uLong size_central_dir; /* size of the central directory */
++ uLong offset_central_dir; /* offset of start of central
++ * directory with respect to the
++ * starting disk number */
++
++ unz_file_info cur_file_info; /* public info about the current file
++ * in zip */
++ unz_file_info_internal cur_file_info_internal; /* private info about it */
++ file_in_zip_read_info_s *pfile_in_zip_read; /* structure about the
++ * current file if we are
++ * decompressing it */
++} unz_s;
++
++#endif
+--- snes9x-sdl-1.39/Makefile~compile
++++ snes9x-sdl-1.39/Makefile
+@@ -53,12 +53,12 @@
+
+ ifdef THREAD_SOUND
+ CPUDEFINES += -DUSE_THREADS
+-EXTRALIBS += -lpthread -L/usr/local/lib -lcygipc
++EXTRALIBS += -lpthread -lcygipc
+ endif
+
+ ifdef GLIDE
+ GLIDEOBJS = unix/glide.o
+-GLIDEDEFINES = -DUSE_GLIDE -I/usr/include/glide
++GLIDEDEFINES = -DUSE_GLIDE
+ GLIDELIBS = -lglide2x
+ GLIDEDEPENDS=use_glide
+ GLIDENO_DEPENDS=no_glide
+@@ -82,14 +82,12 @@
+ CC = gcc
+ NASM = nasm
+
+-INCLUDES=-I/usr/local/include
++INCLUDES=
+
+-OPTIMISE= -D_ZAURUS -Os -ffast-math -fstrict-aliasing -fomit-frame-pointer -mcpu=strongarm1100 -mtune=strongarm1100
++OPTIMISE= -D_ZAURUS -Os -ffast-math -fstrict-aliasing -fomit-frame-pointer
+ CCFLAGS = $(OPTIMISE) \
+--I/opt/Qtopia/include/SDL \
+ -I. \
+ -Iunzip \
+--Isdl \
+ -D__linux \
+ -DZLIB \
+ -DVAR_CYCLES \
+@@ -114,7 +112,7 @@
+
+ .SUFFIXES: .o .cpp .c .cc .h .m .i .S .asm .obj
+
+-LDLIBS = -L/opt/Qtopia/sharp/lib
++LDLIBS=
+
+ ifdef GLIDE
+ all: offsets gsnes9x
+@@ -146,7 +144,7 @@
+ $(RM) $(OPENGLNO_DEPENDS)
+
+ snes9x: $(OBJECTS)
+- $(CCC) $(INCLUDES) -o $@ $(OBJECTS) $(EXTRALIBS) -L/opt/QtPalmtop/lib/ -lSDL -lSDLmain $(LDLIBS) -lqpe -lqte -lpthread
++ $(CC) $(INCLUDES) -o $@ $(OBJECTS) $(EXTRALIBS) $(LDLIBS) -lz -lpthread
+
+ gsnes9x: $(OBJECTS) unix/x11.o unix/glide.o
+ $(CCC) $(INCLUDES) -o $@ $(OBJECTS) unix/x11.o unix/glide.o $(LDLIBS) $(GLIDELIBS) -lXext -lX11 -lXxf86dga -lXxf86vm $(EXTRALIBS) -lz -lm
+--- snes9x-sdl-1.39/snapshot.cpp~compile
++++ snes9x-sdl-1.39/snapshot.cpp
+@@ -671,7 +671,7 @@
+ fields [i].type);
+ }
+
+- uint8 *block = new uint8 [len];
++ uint8 *block = (uint8*) malloc(len);
+ uint8 *ptr = block;
+ uint16 word;
+ uint32 dword;
+@@ -739,7 +739,7 @@
+ }
+
+ FreezeBlock (stream, name, block, len);
+- delete block;
++ free(block);
+ }
+
+ void FreezeBlock (STREAM stream, char *name, uint8 *block, int size)
+@@ -767,7 +767,7 @@
+ fields [i].type);
+ }
+
+- uint8 *block = new uint8 [len];
++ uint8 *block = (uint8*) malloc(len);
+ uint8 *ptr = block;
+ uint16 word;
+ uint32 dword;
+@@ -776,7 +776,7 @@
+
+ if ((result = UnfreezeBlock (stream, name, block, len)) != SUCCESS)
+ {
+- delete block;
++ free(block);
+ return (result);
+ }
+
+@@ -841,7 +841,7 @@
+ }
+ }
+
+- delete block;
++ free(block);
+ return (result);
+ }
+
+@@ -865,9 +865,9 @@
+
+ if (rem)
+ {
+- char *junk = new char [rem];
++ char *junk = (char*) malloc(rem);
+ READ_STREAM (junk, rem, stream);
+- delete junk;
++ free(junk);
+ }
+
+ return (SUCCESS);
diff --git a/recipes-qtopia/snes9x/snes9x-sdl/gcc-4.1.patch b/recipes-qtopia/snes9x/snes9x-sdl/gcc-4.1.patch
new file mode 100644
index 0000000..a63c051
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x-sdl/gcc-4.1.patch
@@ -0,0 +1,28 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- snes9x-sdl-1.39/dsp1.h~gcc-4.1
++++ snes9x-sdl-1.39/dsp1.h
+@@ -233,8 +233,8 @@
+ void S9xResetDSP1 ();
+ uint8 S9xGetDSP (uint16 Address);
+ void S9xSetDSP (uint8 Byte, uint16 Address);
+-END_EXTERN_C
+
+ extern struct SDSP1 DSP1;
++END_EXTERN_C
+
+ #endif
+--- snes9x-sdl-1.39/unix/unix.cpp~gcc-4.1
++++ snes9x-sdl-1.39/unix/unix.cpp
+@@ -1046,7 +1046,7 @@
+ {
+ }
+
+-static uint8 Buf[MAX_BUFFER_SIZE];
++static uint8 Buf[MAX_BUFFER_SIZE] __attribute__((aligned(4)));
+
+ #define FIXED_POINT 0x10000
+ #define FIXED_POINT_SHIFT 16
diff --git a/recipes-qtopia/snes9x/snes9x-sdl_1.39.bb b/recipes-qtopia/snes9x/snes9x-sdl_1.39.bb
new file mode 100644
index 0000000..df712f5
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x-sdl_1.39.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Super Nintendo Emulator based on SDL"
+SECTION = "games"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl zlib"
+LICENSE = "snes9x"
+PR = "r3"
+
+SRC_URI = "http://www.vanille.de/mirror/snes9x-sdl-${PV}.tar.bz2 \
+ file://compile.patch \
+ file://gcc-4.1.patch"
+S = "${WORKDIR}/snes9x-sdl-${PV}"
+
+do_compile() {
+ oe_runmake CC="${CC}" CCC="${CXX} -fno-rtti -fno-exceptions" \
+ INCLUDES="-I${STAGING_INCDIR} `sdl-config --cflags`" \
+ LDLIBS="`sdl-config --libs`"
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 snes9x ${D}${bindir}/snes9x
+}
+
+FILES_${PN} = "${bindir}/snes9x"
+
+SRC_URI[md5sum] = "a7836a9b6eaae433079c1c9d19f2635a"
+SRC_URI[sha256sum] = "489bb2f9fb69922e9befc27ae1b8d19d31c83c586f55b7ecc503cb4f5e767da4"
diff --git a/recipes-qtopia/snes9x/snes9x/configure.patch b/recipes-qtopia/snes9x/snes9x/configure.patch
new file mode 100644
index 0000000..e9fb685
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x/configure.patch
@@ -0,0 +1,12 @@
+--- configure 2009-05-21 15:48:14.000000000 +0100
++++ configure 2009-05-21 15:48:14.000000000 +0100
+@@ -4474,9 +4474,6 @@
+ LIBS="-lX11 -lXext"
+ SYSLIBS="$SYSLIBS -L$x_libraries -lX11 -lXext"
+ fi
+-if test x$x_includes != x ; then
+- XINCLUDES="-I$x_includes"
+-fi
+ echo $ac_n "checking for XDGAQueryVersion in -lXxf86dga""... $ac_c" 1>&6
+ echo "configure:4482: checking for XDGAQueryVersion in -lXxf86dga" >&5
+ ac_lib_var=`echo Xxf86dga'_'XDGAQueryVersion | sed 'y%./+-%__p_%'`
diff --git a/recipes-qtopia/snes9x/snes9x/linkage.patch b/recipes-qtopia/snes9x/snes9x/linkage.patch
new file mode 100644
index 0000000..cc007b5
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x/linkage.patch
@@ -0,0 +1,31 @@
+--- ppu.h~ 2004-07-11 22:50:59.000000000 +0100
++++ ppu.h 2009-05-21 15:54:06.000000000 +0100
+@@ -332,10 +332,14 @@
+ uint8 _5A22;
+ } SnesModel;
+
++START_EXTERN_C
++
+ extern SnesModel* Model;
+ extern SnesModel M1SNES;
+ extern SnesModel M2SNES;
+
++END_EXTERN_C
++
+ #define MAX_5C77_VERSION 0x01
+ #define MAX_5C78_VERSION 0x03
+ #define MAX_5A22_VERSION 0x02
+--- dsp1.h~ 2004-07-11 22:50:57.000000000 +0100
++++ dsp1.h 2009-05-21 15:53:46.000000000 +0100
+@@ -122,9 +122,10 @@
+ void S9xResetDSP1 ();
+ uint8 S9xGetDSP (uint16 Address);
+ void S9xSetDSP (uint8 Byte, uint16 Address);
+-END_EXTERN_C
+
+ extern struct SDSP1 DSP1;
+
++END_EXTERN_C
++
+ #endif
+
diff --git a/recipes-qtopia/snes9x/snes9x/makefile.patch b/recipes-qtopia/snes9x/snes9x/makefile.patch
new file mode 100644
index 0000000..dc99864
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x/makefile.patch
@@ -0,0 +1,39 @@
+--- snes9x-1.43-dev-src/snes9x/Makefile.in.old 2004-10-02 17:34:58.000000000 +0100
++++ snes9x-1.43-dev-src/snes9x/Makefile.in 2004-10-02 17:42:25.000000000 +0100
+@@ -142,7 +142,7 @@
+ #INCLUDES = -I../zlib @XINCLUDES@
+ INCLUDES = @XINCLUDES@
+
+-OPTIMISE = @OPTIMIZE@
++OPTIMISE = $(filter-out @OPTIMIZE@,-pedantic)
+
+ #OPTIMISE=-g -fno-exceptions
+
+@@ -165,7 +165,7 @@
+ $(KREEDDEFINES) \
+ $(SDD1DEFINES) \
+ $(JOYDEFINES) \
+--DNO_INLINE_SET_GET @SYSDEFINES@
++-DNO_INLINE_SET_GET @SYSDEFINES@ $(OECFLAGS)
+
+ #-DOLD_COLOUR_BLENDING
+ #-DSOUND
+@@ -204,15 +204,15 @@
+ #ggisnes9x
+ #xf86snes9x
+
+-offsets: offsets.o
+- $(CCC) $(INCLUDES) -o $@ offsets.o
++offsets: offsets.cpp
++ $(BUILD_CXX) $(INCLUDES) -o $@ $<
+ ./offsets >i386/offsets.h
+
+ #../zlib/libz.a:
+ # cd ../zlib && sh ./configure && make
+
+ snes9x: $(OBJECTS) unix/x11.o $(AIDOOBJS) $(GUIOBJS)
+- $(CCC) $(INCLUDES) -o $@ $(OBJECTS) $(AIDOOBJS) $(GLIDEOBJS) $(OPENGLOBJS) unix/x11.o $(GUIOBJS) $(LDLIBS) $(GLIDELIBS) $(OPENGLLIBS) $(GUILIBS) @SYSLIBS@ -lXext -lX11 $(EXTRALIBS) -lm
++ $(CCC) $(INCLUDES) -o $@ $(OBJECTS) $(AIDOOBJS) $(GLIDEOBJS) $(OPENGLOBJS) unix/x11.o $(GUIOBJS) $(OELDFLAGS) $(LDLIBS) $(GLIDELIBS) $(OPENGLLIBS) $(GUILIBS) @SYSLIBS@ -lXext -lX11 $(EXTRALIBS) -lm
+
+ ssnes9x: $(OBJECTS) unix/svga.o
+ $(CCC) $(INCLUDES) -o $@ $(OBJECTS) $(GLIDEOBJS) unix/svga.o $(LDLIBS) $(GLIDELIBS) -lvga -lvgagl $(EXTRALIBS) -lm
diff --git a/recipes-qtopia/snes9x/snes9x/private.patch b/recipes-qtopia/snes9x/snes9x/private.patch
new file mode 100644
index 0000000..83808f4
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x/private.patch
@@ -0,0 +1,10 @@
+--- unix/x11.cpp.old 2004-10-03 21:27:10.000000000 +0100
++++ unix/x11.cpp 2004-10-03 21:29:02.000000000 +0100
+@@ -154,6 +154,7 @@
+ #if defined (__cplusplus) || defined (c_plusplus)
+ #define private c_private
+ #include <X11/extensions/xf86vmode.h>
++#undef private
+ #endif
+
+ #define ALL_DEVICE_EVENTS 0
diff --git a/recipes-qtopia/snes9x/snes9x_1.43-WIP1.bb b/recipes-qtopia/snes9x/snes9x_1.43-WIP1.bb
new file mode 100644
index 0000000..1b9091c
--- /dev/null
+++ b/recipes-qtopia/snes9x/snes9x_1.43-WIP1.bb
@@ -0,0 +1,32 @@
+SECTION = "x11/games"
+PR = "r4"
+LICENSE = "snes9x"
+DEPENDS = "libxxf86dga libxxf86vm"
+DEPENDS_append_i686 = " nasm-native"
+RDEPENDS_epia = "kernel-module-joydev"
+
+SRC_URI = "http://www.lysator.liu.se/snes9x/1.43-WIP1/snes9x-1.43-WIP1-src.tar.gz \
+ file://makefile.patch;striplevel=2 \
+ file://private.patch;striplevel=0 \
+ file://64bit.patch \
+ file://configure.patch;striplevel=0 \
+ file://linkage.patch;striplevel=0"
+
+S = "${WORKDIR}/snes9x-1.43-dev-src/snes9x"
+
+inherit autotools
+
+export OECFLAGS="${CFLAGS}"
+export OELDFLAGS="${LDFLAGS}"
+
+do_configure() {
+ oe_runconf
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install snes9x ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "caa2ed89fdc643a18310d2a50db1e02c"
+SRC_URI[sha256sum] = "bc14905c7a7967de59b70909c021d2439d9ec1c9bae835b70cdb786e59caa81c"
diff --git a/recipes-qtopia/subapplet/subapplet-1.0.8/toolbar-resize-fix.patch b/recipes-qtopia/subapplet/subapplet-1.0.8/toolbar-resize-fix.patch
new file mode 100644
index 0000000..fede3c7
--- /dev/null
+++ b/recipes-qtopia/subapplet/subapplet-1.0.8/toolbar-resize-fix.patch
@@ -0,0 +1,11 @@
+--- SubApplet-1.0.8/subapplet.cpp.orig 2004-05-04 00:26:22 +0200
++++ SubApplet-1.0.8/subapplet.cpp 2004-12-22 10:11:52 +0100
+@@ -115,6 +115,8 @@
+ setToggleType(QButton::Toggle);
+ setOnIconSet(QIconSet(mPixmapOpen, QIconSet::Small));
+ setOffIconSet(QIconSet(mPixmapClosed, QIconSet::Small));
++ setFixedWidth(mPixmapOpen.width());
++ setFixedHeight(mPixmapOpen.height());
+ setOn(false);
+ setDown(false);
+ setAutoRaise(mUseFlatButton);
diff --git a/recipes-qtopia/subapplet/subapplet_1.0.8.bb b/recipes-qtopia/subapplet/subapplet_1.0.8.bb
new file mode 100644
index 0000000..3ebed9b
--- /dev/null
+++ b/recipes-qtopia/subapplet/subapplet_1.0.8.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "Applet for the Qtopia environment taskbar that provides an extension panel \
+for the taskbar that let's you load lot's of applet's without taking up space \
+in the normal taskbar."
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://sourceforge.net/projects/subapplet/"
+PR = "r7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/subapplet/subapplet-1.0.8.tar.gz \
+ file://toolbar-resize-fix.patch"
+
+S = "${WORKDIR}/SubApplet-1.0.8"
+
+inherit palmtop
+
+QMAKE_PROFILES = "subapplet.pro"
+
+do_install() {
+ install -d ${D}${palmtopdir}/plugins/applets ${D}${palmtopdir}/pics/subapplet/
+ install -m 0644 *.png ${D}${palmtopdir}/pics/subapplet/
+ oe_libinstall -so -C rel/opt/QtPalmtop/plugins/applets libsubapplet ${D}${palmtopdir}/plugins/applets/
+}
+
+pkg_postinst() {
+#!/bin/sh
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+ if [ -n "$D" ]; then false; fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+SRC_URI[md5sum] = "6042daa703d8bd34174b195843e7ffaa"
+SRC_URI[sha256sum] = "4cc4cc703bcd4da0df25e7b87b082bd9d1c836868bc4641b3c960931582dc3d2"
diff --git a/recipes-qtopia/tasklistapplet/tasklistapplet_1.0.5.bb b/recipes-qtopia/tasklistapplet/tasklistapplet_1.0.5.bb
new file mode 100644
index 0000000..0e3079f
--- /dev/null
+++ b/recipes-qtopia/tasklistapplet/tasklistapplet_1.0.5.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "TaskList Applet"
+SECTION = "opie/applets"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://sourceforge.net/projects/subapplet/"
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/subapplet/tasklist-105.tar.gz"
+
+S = "${WORKDIR}/TaskList-1.0.5"
+
+inherit palmtop
+
+#QMAKE_PROFILES = "subapplet.pro"
+
+do_install() {
+ install -d ${D}${palmtopdir}/plugins/applets ${D}${palmtopdir}/pics/tasklist/
+ install -m 0644 icons/*.png ${D}${palmtopdir}/pics/tasklist/
+ oe_libinstall -so -C rel/opt/Qtopia/plugins/applets libtasklistapplet ${D}${palmtopdir}/plugins/applets/
+}
+
+pkg_postinst() {
+#!/bin/sh
+if pidof -s qpe >/dev/null; then
+ /usr/bin/qcop QPE/TaskBar "reloadApplets()"
+else
+ exit 0
+fi
+ if [ -n "$D" ]; then false; fi
+}
+
+pkg_postrm() {
+#!/bin/sh
+/usr/bin/qcop QPE/TaskBar "reloadApplets()"
+ if [ -n "$D" ]; then false; fi
+}
+
+SRC_URI[md5sum] = "dc62a061d83cf72d1eca7e8ae2c8e1a6"
+SRC_URI[sha256sum] = "4078c44beebfd298995983b9e2ea189167a1ab081d96a7c485a67b65a974e878"
diff --git a/recipes-qtopia/temtor/temtor_0.0.1.bb b/recipes-qtopia/temtor/temtor_0.0.1.bb
new file mode 100644
index 0000000..f61c2b3
--- /dev/null
+++ b/recipes-qtopia/temtor/temtor_0.0.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Timetracker to track time spent on different projects"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Martin Henne <martin.henne@web.de>"
+HOMEPAGE = "http://www.martinhenne.de/temtor/"
+APPNAME = "temtor"
+APPTYPE = "binary"
+APPDESKTOP = "${S}/ipk"
+
+SRC_URI = "http://leapingcat.org/martinhenne.de/temtor/files/temtor-0.0.1.tar.gz"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "CONFIG-=qt-mt CONFIG+=qt DEFINES+=NO_DEBUG"
+QMAKE_PROFILES = "temtor.pro"
+
+
+do_install () {
+ install -d ${D}/${palmtopdir}/pics/
+ install -m 0644 src/temtor.png ${D}/${palmtopdir}/pics/
+}
+
+
+SRC_URI[md5sum] = "340bc7fa4a9cad1fe9ecc9b1df49d164"
+SRC_URI[sha256sum] = "1c76d6ac7e80de0ae88cc5cbdad7a2a564eac96788549359b001366dc52fe817"
diff --git a/recipes-qtopia/tickypip/tickypip-levels_1.1.bb b/recipes-qtopia/tickypip/tickypip-levels_1.1.bb
new file mode 100644
index 0000000..74b87a4
--- /dev/null
+++ b/recipes-qtopia/tickypip/tickypip-levels_1.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Tickypip levels from NetWalk Group"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "${PN}"
+SRC_DISTRIBUTE_LICENSES += "${PN}"
+AUTHOR = "NetWalk Group <netwalkgroup@hotmail.com>"
+RDEPENDS_${PN} = "tickypip"
+PACKAGE_ARCH = "all"
+PR = "r2"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/tickypip-levels_${PV}.tar.bz2"
+
+S = "${WORKDIR}/"
+
+#
+# Authors response to LICENSE question:
+#
+# You may distribute them for free provide that you have links to our level
+# packs in PalmGear.
+#
+# Packs available on PalmGear: Pak1, Pak3, Pak8, Pak9, Pak10
+#
+# URL: http://palmgear.com/index.cfm?fuseaction=software.developer&userID=862314499
+#
+# I also got permission to distribute rest of levelpacks which was available
+# from Palm Gaming World:
+# http://www.palmgamingworld.com/add-in/netwalk.shtml
+#
+
+do_install () {
+ install -d ${D}${palmtopdir}/share/tickypip/levels
+ install -m 0644 levels/* ${D}${palmtopdir}/share/tickypip/levels/
+}
+
+FILES_${PN} = "${palmtopdir}/"
+
+SRC_URI[md5sum] = "cfdaae67b3d33351e37021cb0394153c"
+SRC_URI[sha256sum] = "881109774a77e34c61fbf41a839fe02a95cb3e67a0218fe4aebc5e6999cbaa57"
diff --git a/recipes-qtopia/tickypip/tickypip/path_fix.patch b/recipes-qtopia/tickypip/tickypip/path_fix.patch
new file mode 100644
index 0000000..c6e0b32
--- /dev/null
+++ b/recipes-qtopia/tickypip/tickypip/path_fix.patch
@@ -0,0 +1,11 @@
+--- tickypip/src/base.h 2008-11-18 21:49:58.000000000 +0000
++++ tickypip/src/base.h 2008-11-18 21:54:00.000000000 +0000
+@@ -7,7 +7,7 @@
+ #ifdef LOCAL_COMPILE
+ # define DATA_PREFIX "./"
+ #else
+-# define DATA_PREFIX "/opt/QtPalmtop/share/tickypip/"
++# define DATA_PREFIX DATA_BASEDIR "/share/tickypip/"
+ #endif
+
+ #include "BorderLayout.h"
diff --git a/recipes-qtopia/tickypip/tickypip/tickypip.desktop b/recipes-qtopia/tickypip/tickypip/tickypip.desktop
new file mode 100644
index 0000000..40ec2c2
--- /dev/null
+++ b/recipes-qtopia/tickypip/tickypip/tickypip.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Tickypip
+Name[de]=Tickypip
+Icon=tickypip/tickypip
+Exec=tickypip
+Comment=Connect the computers together to form an active network.
+Comment[de]=Verbinde die Computer zu einem Netzwerk.
+Type=Application
+Type[de]=Anwendung
+CanFastLoad=0
diff --git a/recipes-qtopia/tickypip/tickypip/tickypip.png b/recipes-qtopia/tickypip/tickypip/tickypip.png
new file mode 100644
index 0000000..8b64a9e
--- /dev/null
+++ b/recipes-qtopia/tickypip/tickypip/tickypip.png
Binary files differ
diff --git a/recipes-qtopia/tickypip/tickypip_0.1.2.bb b/recipes-qtopia/tickypip/tickypip_0.1.2.bb
new file mode 100644
index 0000000..4cc4be3
--- /dev/null
+++ b/recipes-qtopia/tickypip/tickypip_0.1.2.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Tickypip"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Christian Hammond"
+HOMEPAGE = "http://www.chipx86.com/projects/tickypip/"
+RRECOMMENDS_${PN} = "tickypip-levels"
+PR = "r6"
+
+SRC_URI = "http://www.openzaurus.org/download/3.5.4/sources/tickypip-0.1.2.tar.gz \
+ file://path_fix.patch \
+ file://tickypip.desktop \
+ file://tickypip.png"
+
+APPNAME = "tickypip"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+
+QMAKE_PROFILES = "tickypip.pro"
+EXTRA_QMAKEVARS_POST += "DEFINES-=LOCAL_COMPILE DEFINES+=DATA_BASEDIR='\"${palmtopdir}\"'"
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${S}/images/*.png ${D}${palmtopdir}/pics/${APPNAME}/
+
+# copy share
+ install -d ${D}${palmtopdir}/share/${APPNAME}/levels
+ install -m 0644 ${S}/levels/* ${D}${palmtopdir}/share/${APPNAME}/levels/
+}
+
+
+inherit opie
+
+SRC_URI[md5sum] = "5a085296b1147fe970a256a9b2d0f91f"
+SRC_URI[sha256sum] = "f3b5722c145ebeee3523b4941afdaf75d03a56f1922a9d3662dc1715aa24ca34"
diff --git a/recipes-qtopia/timesleuth/timesleuth_1.0.5.bb b/recipes-qtopia/timesleuth/timesleuth_1.0.5.bb
new file mode 100644
index 0000000..2a41466
--- /dev/null
+++ b/recipes-qtopia/timesleuth/timesleuth_1.0.5.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Time Sleuth"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Dafydd Walters"
+HOMEPAGE = "http://www.linux-solutions.at/projects/zaurus/applications-TimeSleuth.html"
+PR = "r1"
+
+SRC_URI = "http://handhelds.org/~zecke/oe_packages/timesleuth_V1.05ern.tar.gz "
+
+PV = "1.05ern"
+S = "${WORKDIR}/timesleuth_V${PV}"
+
+APPNAME = "timesleuthqpe"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/*.png ${D}${palmtopdir}/pics/
+
+}
+
+inherit opie
+
+SRC_URI[md5sum] = "671e48a9ff01de9cd2853a353b8179cb"
+SRC_URI[sha256sum] = "f353a33e59a35f2667a00ce60998a06fa25948676dcb4a59599cf6518bd02ca6"
diff --git a/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/apps/Applications/txdrug.desktop b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/apps/Applications/txdrug.desktop
new file mode 100644
index 0000000..d3c4510
--- /dev/null
+++ b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/apps/Applications/txdrug.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment = Drug Lookup
+Exec = txdrug
+Type = Application
+Icon = txdrug
+Name = TxDrug
diff --git a/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/etc/txdrug/drugs.db b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/etc/txdrug/drugs.db
new file mode 100755
index 0000000..336fa24
--- /dev/null
+++ b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/etc/txdrug/drugs.db
Binary files differ
diff --git a/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug.png b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug.png
new file mode 100644
index 0000000..9311f65
--- /dev/null
+++ b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug.png
Binary files differ
diff --git a/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/down.png b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/down.png
new file mode 100644
index 0000000..b7aeaae
--- /dev/null
+++ b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/down.png
Binary files differ
diff --git a/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/up.png b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/up.png
new file mode 100644
index 0000000..b637166
--- /dev/null
+++ b/recipes-qtopia/txdrug/txdrug-0.1/opt/QtPalmtop/pics/txdrug/up.png
Binary files differ
diff --git a/recipes-qtopia/txdrug/txdrug_0.1.bb b/recipes-qtopia/txdrug/txdrug_0.1.bb
new file mode 100644
index 0000000..baa9f52
--- /dev/null
+++ b/recipes-qtopia/txdrug/txdrug_0.1.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Tx Drug Database"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "sqlite"
+PR = "r3"
+
+SRC_URI = "http://teax.sourceforge.net/txdrug-${PV}.tar.gz \
+ file://opt/QtPalmtop"
+S = "${WORKDIR}/txdrug-tar"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "LIBS+=-lsqlite TARGET=txdrug"
+
+do_configure_prepend() {
+ rm -f Makefile && qmake -project
+}
+
+do_configure_append() {
+ sed -i "s/\-I\/usr\/include\/sqlite\ //g" Makefile
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}
+ cp -Pfr `ls -dp ${WORKDIR}/opt/QtPalmtop/*|grep -v SCCS` ${D}${palmtopdir}/
+ install -D -m 755 txdrug ${D}${palmtopdir}/bin/txdrug
+}
+
+
+SRC_URI[md5sum] = "c867374392559d6e475eeb03f6a81169"
+SRC_URI[sha256sum] = "ee1044b61fc457ecc6025d06c5b9241994bd19e3d6ce98ae0827842caab00f0f"
diff --git a/recipes-qtopia/tximage/tximage-0.2/gcc3.patch b/recipes-qtopia/tximage/tximage-0.2/gcc3.patch
new file mode 100644
index 0000000..7729603
--- /dev/null
+++ b/recipes-qtopia/tximage/tximage-0.2/gcc3.patch
@@ -0,0 +1,27 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- tximage-0.2/imagelistview.cpp~gcc3 2003-06-21 03:47:29.000000000 +0200
++++ tximage-0.2/imagelistview.cpp 2004-02-10 00:26:31.000000000 +0100
+@@ -88,7 +88,7 @@
+ }
+
+
+-ImageListView::ImageListView(QWidget *parent, const char *name=0)
++ImageListView::ImageListView(QWidget *parent, const char *name)
+ : QListView(parent, name)
+ {
+ addColumn("Name");
+--- tximage-0.2/settingsdialog.cpp~gcc3 2003-06-21 03:05:06.000000000 +0200
++++ tximage-0.2/settingsdialog.cpp 2004-02-10 00:27:25.000000000 +0100
+@@ -37,7 +37,7 @@
+ #include "settingsdialog.h"
+
+
+-SettingsDialog::SettingsDialog(QWidget *parent = 0, const char *name = 0)
++SettingsDialog::SettingsDialog(QWidget *parent, const char *name)
+ : SettingsDialogBase(parent, name, true)
+ {
+ settings = NULL;
diff --git a/recipes-qtopia/tximage/tximage-0.2/gcc4.patch b/recipes-qtopia/tximage/tximage-0.2/gcc4.patch
new file mode 100644
index 0000000..d327754
--- /dev/null
+++ b/recipes-qtopia/tximage/tximage-0.2/gcc4.patch
@@ -0,0 +1,15 @@
+
+#
+# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+--- tximage-0.2/imageviewer.h~gcc4
++++ tximage-0.2/imageviewer.h
+@@ -32,6 +32,7 @@
+ #include "imagereader.h"
+
+ class ImageWidget;
++class ImageViewer;
+ class QString;
+ class QImage;
+ class QScrollView;
diff --git a/recipes-qtopia/tximage/tximage_0.2.bb b/recipes-qtopia/tximage/tximage_0.2.bb
new file mode 100644
index 0000000..ab2a59a
--- /dev/null
+++ b/recipes-qtopia/tximage/tximage_0.2.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Tx Image Viewer"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://community.zaurus.com/projects/tximage/"
+PR = "r2"
+
+SRC_URI = "http://www.openzaurus.org/mirror/tximage-${PV}.tar.gz \
+ file://gcc3.patch \
+ file://gcc4.patch"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/bin
+ install -D -m 755 tximage ${D}${palmtopdir}/bin/tximage
+ install -D -m 644 imageviewer.desktop ${D}${palmtopdir}/apps/Applications/tximage.desktop
+ cp -pPR tximage.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "eca63798136caeeaf7fd4b24c3e10783"
+SRC_URI[sha256sum] = "88b11a3e89db847e1db51e6f2b0c69e2afa0035fb4a47f523d264765eedb2958"
diff --git a/recipes-qtopia/ubahnnav/ubahnnav/gcc45-compilation-fixes.patch b/recipes-qtopia/ubahnnav/ubahnnav/gcc45-compilation-fixes.patch
new file mode 100644
index 0000000..73e46b5
--- /dev/null
+++ b/recipes-qtopia/ubahnnav/ubahnnav/gcc45-compilation-fixes.patch
@@ -0,0 +1,109 @@
+Index: ubahnnav-0.4.1/src/libsubwaymap/baseclasses.cpp
+===================================================================
+--- ubahnnav-0.4.1.orig/src/libsubwaymap/baseclasses.cpp
++++ ubahnnav-0.4.1/src/libsubwaymap/baseclasses.cpp
+@@ -493,7 +493,7 @@ int String::strnicmp(const char *rval, i
+
+
+
+-ostream& operator<<(ostream& os, const String& s)
++std::ostream& operator<<(std::ostream& os, const String& s)
+ {
+ return os << s._string;
+ }
+Index: ubahnnav-0.4.1/src/libsubwaymap/baseclasses.h
+===================================================================
+--- ubahnnav-0.4.1.orig/src/libsubwaymap/baseclasses.h
++++ ubahnnav-0.4.1/src/libsubwaymap/baseclasses.h
+@@ -36,12 +36,14 @@
+ #include <time.h>
+ #include <stdio.h>
+
+-#include <iostream.h>
++#include <iostream>
+
+ #ifdef MPATROL
+ #include <mp/mpatrol.h>
+ #endif
+
++using namespace std;
++
+ class ObjectList;
+ class ObjectListIterator;
+ class ObjectListContainer;
+Index: ubahnnav-0.4.1/src/libsubwaymap/debug.h
+===================================================================
+--- ubahnnav-0.4.1.orig/src/libsubwaymap/debug.h
++++ ubahnnav-0.4.1/src/libsubwaymap/debug.h
+@@ -21,7 +21,7 @@
+ #ifndef __DEBUG_H__
+ #define __DEBUG_H__
+
+-
++using namespace std;
+ #include "baseclasses.h"
+
+ class Debug : public Object
+Index: ubahnnav-0.4.1/src/libsubwaymap/subwaymap/SMXMLWriter.h
+===================================================================
+--- ubahnnav-0.4.1.orig/src/libsubwaymap/subwaymap/SMXMLWriter.h
++++ ubahnnav-0.4.1/src/libsubwaymap/subwaymap/SMXMLWriter.h
+@@ -23,15 +23,15 @@
+
+ #include "baseclasses.h"
+ #include "SMError.h"
+-#include <iostream.h>
+-#include <fstream.h>
++#include <iostream>
++#include <fstream>
+
+
+-class SMXMLWriter : public ofstream
++class SMXMLWriter : public std::ofstream
+ {
+ public:
+- SMXMLWriter(const char *filename) : ofstream(filename) {
+- *this<< "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" << endl <<endl;
++ SMXMLWriter(const char *filename) : std::ofstream(filename) {
++ *this<< "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" << std::endl <<std::endl;
+ }
+ protected:
+
+Index: ubahnnav-0.4.1/src/libsubwaymap/subwaymap/SubwayMap.h
+===================================================================
+--- ubahnnav-0.4.1.orig/src/libsubwaymap/subwaymap/SubwayMap.h
++++ ubahnnav-0.4.1/src/libsubwaymap/subwaymap/SubwayMap.h
+@@ -25,6 +25,7 @@
+ #include "SMError.h"
+ #include "SMXMLWriter.h"
+
++using namespace std;
+
+ enum eDirection {
+ both=0, // search in both directions
+Index: ubahnnav-0.4.1/src/libsubwaymap/subwaymap/XMLBase.h
+===================================================================
+--- ubahnnav-0.4.1.orig/src/libsubwaymap/subwaymap/XMLBase.h
++++ ubahnnav-0.4.1/src/libsubwaymap/subwaymap/XMLBase.h
+@@ -21,7 +21,7 @@
+ #ifndef __XMLBASE_H__
+ #define __XMLBASE_H__
+
+-#include <iostream.h>
++#include <iostream>
+ #include "baseclasses.h"
+
+
+Index: ubahnnav-0.4.1/src/ubahnnav/UBahnNavMain.cpp
+===================================================================
+--- ubahnnav-0.4.1.orig/src/ubahnnav/UBahnNavMain.cpp
++++ ubahnnav-0.4.1/src/ubahnnav/UBahnNavMain.cpp
+@@ -18,7 +18,7 @@
+ #########################################################################
+ */
+
+-#include <iostream.h>
++#include <iostream>
+ #include <qmessagebox.h>
+ #include <qdatetime.h>
+
diff --git a/recipes-qtopia/ubahnnav/ubahnnav/qmake.patch b/recipes-qtopia/ubahnnav/ubahnnav/qmake.patch
new file mode 100644
index 0000000..86c57b2
--- /dev/null
+++ b/recipes-qtopia/ubahnnav/ubahnnav/qmake.patch
@@ -0,0 +1,48 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- /dev/null
++++ ubahnnav-0.3.1/src.pro
+@@ -0,0 +1,3 @@
++TEMPLATE = subdirs
++SUBDIRS = src/libsubwaymap src/ubahnnav
++
+--- /dev/null
++++ ubahnnav-0.3.1/src/libsubwaymap/libsubwaymap.pro
+@@ -0,0 +1,34 @@
++######################################################################
++# Automatically generated by qmake (1.06c) Sat Aug 28 18:47:05 2004
++######################################################################
++
++TEMPLATE = lib
++TARGET = subwaymap
++CONFIG = qt
++INCLUDEPATH += .
++
++# Input
++HEADERS += baseclasses.h \
++ debug.h \
++ Dijkstra.h \
++ Exceptions.h \
++ RouteFinder.h \
++ RouteFinderBase.h \
++ SMError.h \
++ SMXMLSubwayMapParser.h \
++ SMXMLSubwayMapParser_Qt.h \
++ SMXMLWriter.h \
++ SubwayGraph.h \
++ SubwayMap.h \
++ XMLBase.h
++SOURCES += baseclasses.cpp \
++ debug.cpp \
++ Dijkstra.cpp \
++ RouteFinder.cpp \
++ RouteFinderBase.cpp \
++ SMXMLSubwayMapParser.cpp \
++ SMXMLSubwayMapParser_Qt.cpp \
++ SMXMLWriter.cpp \
++ SubwayGraph.cpp \
++ SubwayMap.cpp \
++ XMLBase.cpp
diff --git a/recipes-qtopia/ubahnnav/ubahnnav_0.4.1.bb b/recipes-qtopia/ubahnnav/ubahnnav_0.4.1.bb
new file mode 100644
index 0000000..89d91fb
--- /dev/null
+++ b/recipes-qtopia/ubahnnav/ubahnnav_0.4.1.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "U-Bahn Navigator helps you navigating through foreign public \
+transport networks. It finds the shortest or direct route from a start to a \
+destination station of the loaded subway map. U-Bahn Navigator is extensible \
+to support each public transport network."
+PRIORITY = "optional"
+SECTION = "opie/applications"
+AUTHOR = "Dimitri Brukakis"
+HOMEPAGE = "http://ubahnstation.net"
+LICENSE = "GPL"
+APPNAME = "ubahnnav"
+APPTYPE = "binary"
+APPDESKTOP = "${S}/src/ubahnnav"
+PR = "r1"
+
+SRC_URI = "http://ubahnstation.net/source/ubahnnav-${PV}.tar.gz \
+ file://qmake.patch \
+ file://gcc45-compilation-fixes.patch \
+ "
+S = "${WORKDIR}/ubahnnav-${PV}"
+
+inherit opie
+
+export OE_QMAKE_LINK="${CXX}"
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${S}/src/libsubwaymap LIBS+=-L${S} LIBS-=-lqtopia"
+
+do_configure_prepend() {
+ find . -name "Makefile"|xargs rm -f
+}
+
+do_install() {
+ oe_libinstall -so libsubwaymap ${D}${palmtopdir}/lib
+ install -d ${D}${palmtopdir}/pics
+ install -d ${D}${palmtopdir}/ubahn/maps
+ touch ${D}${palmtopdir}/ubahn/maps/.empty
+ install -m 0644 src/ubahnnav/images/u-logo.png ${D}${palmtopdir}/pics/ubahnnav.png
+}
+
+SRC_URI[md5sum] = "039d1215960b879d5b292e5b713ced8b"
+SRC_URI[sha256sum] = "7007261ad816938ee4824720eb08e9bff4ad6f796965ec928f56acfa3c24a1b9"
diff --git a/recipes-qtopia/uqm/files/build-oe.patch b/recipes-qtopia/uqm/files/build-oe.patch
new file mode 100644
index 0000000..765100b
--- /dev/null
+++ b/recipes-qtopia/uqm/files/build-oe.patch
@@ -0,0 +1,58 @@
+--- build/unix/config_proginfo 2005-01-21 23:55:20.600681568 +1300
++++ build/unix/config_proginfo 2005-01-21 23:55:28.136535944 +1300
+@@ -19,9 +19,9 @@
+
+ # Describe the programs (possibly) used:
+ PROG_gcc_NAME="GNU C compiler"
+-PROG_gcc_FILE="gcc"
++PROG_gcc_FILE="$CC"
+ PROG_gcc_ACTION=""
+-PROG_gcc_VERSION='$(gcc --version)'
++PROG_gcc_VERSION='$($CC --version)'
+
+ PROG_sed_NAME="Sed stream editor"
+ PROG_sed_FILE="sed"
+@@ -60,7 +60,7 @@
+ esac
+ case "$OSNAME" in
+ FreeBSD) LIB_SDL_LDFLAGS='$(sdl11-config --libs)' ;;
+- *) LIB_SDL_LDFLAGS='$(sdl-config --libs)' ;;
++ *) LIB_SDL_LDFLAGS='$(sdl-config --libs) -lts -lpng -ljpeg -lz' ;;
+ esac
+ case "$OSNAME" in
+ FreeBSD) LIB_SDL_VERSION='$(sdl11-config --version)' ;;
+@@ -123,8 +123,8 @@
+ LIB_vorbisfile_LDFLAGS="-lvorbisfile -lvorbis -logg -lm"
+ ;;
+ *)
+- LIB_vorbisfile_CFLAGS=""
+- LIB_vorbisfile_LDFLAGS="-lvorbisfile -lvorbis"
++ LIB_vorbisfile_CFLAGS="-I$STAGING_INCDIR"
++ LIB_vorbisfile_LDFLAGS="-L$STAGING_LIBDIR -lvorbisfile -lvorbis -logg"
+ ;;
+ esac
+ LIB_vorbisfile_VERSION=""
+--- build/unix/build.config 2005-01-21 00:26:04.000000000 +1300
++++ build/unix/build.config 2005-01-21 23:55:25.658912600 +1300
+@@ -7,7 +7,7 @@
+
+
+ # Some requirements:
+-have_program gcc || exit 1
++#have_program gcc || exit 1
+ COMPILE="$PROG_gcc_FILE"
+
+ case "$OSNAME" in
+--- build.vars.in 2005-01-21 21:15:59.058256960 +1300
++++ build.vars.in 2005-01-21 21:16:13.493062536 +1300
+@@ -15,8 +15,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-COMPILE=gcc
+-MKDEPEND="gcc -MM"
++COMPILE=$CC
++MKDEPEND="$CC -MM"
+ MAKE="@MAKE@"
+ uqm_CFLAGS="@CFLAGS@"
+ uqm_LDFLAGS="@LDFLAGS@"
diff --git a/recipes-qtopia/uqm/files/build-opts.sh b/recipes-qtopia/uqm/files/build-opts.sh
new file mode 100644
index 0000000..5648485
--- /dev/null
+++ b/recipes-qtopia/uqm/files/build-opts.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Shamelessly stolen from gentoo ebuild
+cat <<-EOF > config.state
+CHOICE_debug_VALUE='nodebug'
+CHOICE_graphics_VALUE='pure'
+CHOICE_sound_VALUE='mixsdl'
+INPUT_install_prefix_VALUE='$1'
+INPUT_install_bindir_VALUE='$2'
+INPUT_install_libdir_VALUE='$3'
+EOF
+
+# Take out the read so we can be non-interactive.
+sed -i \
+ -e '/read CHOICE/d' build/unix/menu_functions || \
+ echo "sed menu_functions failed"
diff --git a/recipes-qtopia/uqm/uqm-0.5.0/build-oe.patch b/recipes-qtopia/uqm/uqm-0.5.0/build-oe.patch
new file mode 100644
index 0000000..045082a
--- /dev/null
+++ b/recipes-qtopia/uqm/uqm-0.5.0/build-oe.patch
@@ -0,0 +1,40 @@
+Index: build/unix/config_proginfo_build
+===================================================================
+--- build/unix/config_proginfo_build.orig 2008-02-28 10:00:47.000000000 +0000
++++ build/unix/config_proginfo_build 2008-02-28 10:01:38.000000000 +0000
+@@ -37,9 +37,9 @@
+
+ ### gcc ###
+ PROG_gcc_NAME="GNU C compiler"
+-PROG_gcc_FILE="gcc"
++PROG_gcc_FILE="$CC"
+ PROG_gcc_ACTION=""
+-PROG_gcc_VERSION='$(gcc --version)'
++PROG_gcc_VERSION='$($CC --version)'
+
+
+ ### sed ###
+Index: build/unix/config_proginfo_host
+===================================================================
+--- build/unix/config_proginfo_host.orig 2008-02-28 10:00:47.000000000 +0000
++++ build/unix/config_proginfo_host 2008-02-28 10:03:09.000000000 +0000
+@@ -69,7 +69,7 @@
+ ;;
+ *)
+ LIB_SDL_CFLAGS='$(sdl-config --cflags)'
+- LIB_SDL_LDFLAGS='$(sdl-config --libs)'
++ LIB_SDL_LDFLAGS='$(sdl-config --libs) -lts -lpng -ljpeg -lz'
+ LIB_SDL_VERSION='$(sdl-config --version)'
+ ;;
+ esac
+@@ -170,8 +170,8 @@
+ LIB_vorbisfile_LDFLAGS="-lvorbisfile -lvorbis -logg -lm"
+ ;;
+ *)
+- LIB_vorbisfile_CFLAGS=""
+- LIB_vorbisfile_LDFLAGS="-lvorbisfile -lvorbis"
++ LIB_vorbisfile_CFLAGS="-I$STAGING_INCDIR"
++ LIB_vorbisfile_LDFLAGS="-L$STAGING_LIBDIR -lvorbisfile -lvorbis -logg"
+ ;;
+ esac
+ LIB_vorbisfile_VERSION=""
diff --git a/recipes-qtopia/uqm/uqm_0.3.bb b/recipes-qtopia/uqm/uqm_0.3.bb
new file mode 100644
index 0000000..65dbe58
--- /dev/null
+++ b/recipes-qtopia/uqm/uqm_0.3.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Star Control 2 source port using SDL (see sc2.sourceforge.net)"
+SECTION = "games"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libsdl-image libsdl-net libvorbis libogg zlib"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+PR = "r1"
+
+S = "${WORKDIR}/uqm-${PV}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sc2/uqm-${PV}-source.tgz \
+ file://build-opts.sh \
+ file://build-oe.patch;striplevel=0"
+
+do_configure() {
+ install ${WORKDIR}/build-opts.sh ${S}/
+ ./build-opts.sh ${STAGING_DIR_HOST}${layout_prefix} ${STAGING_BINDIR} ${STAGING_LIBDIR}
+}
+
+do_compile() {
+ export ARCH="${TARGET_ARCH}"
+ export CC="${CC}"
+ export STAGING_INCDIR="${STAGING_INCDIR}"
+ export STAGING_LIBDIR="${STAGING_LIBDIR}"
+ ./build.sh uqm
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 uqm ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "6abcdc3caf7efd3bd978332743ee7568"
+SRC_URI[sha256sum] = "e42ac3b45c1c8a3199bbd9b666e9225d76bc18d902339c54cbb4df3a75909e53"
diff --git a/recipes-qtopia/uqm/uqm_0.5.0.bb b/recipes-qtopia/uqm/uqm_0.5.0.bb
new file mode 100644
index 0000000..ad315ea
--- /dev/null
+++ b/recipes-qtopia/uqm/uqm_0.5.0.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Star Control 2 source port using SDL (see sc2.sourceforge.net)"
+SECTION = "games"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libsdl-image libsdl-net libvorbis libogg zlib"
+SECTION = "games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+PR = "r2"
+
+S = "${WORKDIR}/uqm-${PV}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sc2/uqm-${PV}-source.tar.gz \
+ file://build-opts.sh \
+ file://build-oe.patch;striplevel=0 \
+"
+
+do_configure() {
+ install ${WORKDIR}/build-opts.sh ${S}/
+ ./build-opts.sh ${STAGING_DIR_HOST}${layout_prefix} ${STAGING_BINDIR} ${STAGING_LIBDIR}
+}
+
+do_compile() {
+ export ARCH="${TARGET_ARCH}"
+ export CC="${CC}"
+ export STAGING_INCDIR="${STAGING_INCDIR}"
+ export STAGING_LIBDIR="${STAGING_LIBDIR}"
+ ./build.sh uqm
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 uqm ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "9002b1bc2de9285588dd97b618a867a7"
+SRC_URI[sha256sum] = "bdb715784bf0c94825cf40f97c60a5ec83fd3e17e9e186a78cd145781c4d9804"
diff --git a/recipes-qtopia/vectoroids/vectoroids_1.1.0.bb b/recipes-qtopia/vectoroids/vectoroids_1.1.0.bb
new file mode 100644
index 0000000..e6debba
--- /dev/null
+++ b/recipes-qtopia/vectoroids/vectoroids_1.1.0.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Clone of the classic arcade game Asteroids - SDL edition."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r2"
+
+APPIMAGE = "data/images/icon.png"
+APPNAME = "vectoroids-${PV}"
+
+SRC_URI = "ftp://ftp.billsgames.com/unix/x/vectoroids/src/vectoroids-${PV}.tar.gz"
+
+inherit qmake sdl
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/SDL CONFIG-=qt \
+ LIBS+=-lSDL \
+ LIBS+=-lSDL_mixer \
+ LIBS+=-lSDL_image \
+ LIBS+=-lpthread \
+ DEFINES+=DATA_PREFIX=\\"\"${datadir}/vectoroids/\\"\""
+
+do_configure_prepend() {
+ qmake -project vectoroids.pro
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${APPNAME} ${D}${bindir}
+ install -d ${D}${datadir}/vectoroids/
+ cp -pPR data/* ${D}${datadir}/vectoroids/
+}
+
+SRC_URI[md5sum] = "c63ce56b09aa7da9a6e95d804e9ee314"
+SRC_URI[sha256sum] = "8d14dd281767e994108abd77c8e67d5a17718d0ad1e34d37e026911d14697b2e"
diff --git a/recipes-qtopia/visiscript/files/qcleanuphandler.h b/recipes-qtopia/visiscript/files/qcleanuphandler.h
new file mode 100644
index 0000000..90f65b0
--- /dev/null
+++ b/recipes-qtopia/visiscript/files/qcleanuphandler.h
@@ -0,0 +1,127 @@
+/****************************************************************************
+** $Id: qt/qcleanuphandler.h 3.3.3 edited May 27 2003 $
+**
+** ...
+**
+** Copyright (C) 2001-2002 Trolltech AS. All rights reserved.
+**
+** This file is part of the tools module of the Qt GUI Toolkit.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+** information about Qt Commercial License Agreements.
+** See http://www.trolltech.com/qpl/ for QPL licensing information.
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#ifndef QCLEANUPHANDLER_H
+#define QCLEANUPHANDLER_H
+
+#ifndef QT_H
+#include "qptrlist.h"
+#endif // QT_H
+
+template<class Type>
+class QCleanupHandler
+{
+public:
+ QCleanupHandler() : cleanupObjects( 0 ) {}
+ ~QCleanupHandler() { clear(); }
+
+ Type* add( Type **object ) {
+ if ( !cleanupObjects )
+ cleanupObjects = new QPtrList<Type*>;
+ cleanupObjects->insert( 0, object );
+ return *object;
+ }
+
+ void remove( Type **object ) {
+ if ( !cleanupObjects )
+ return;
+ if ( cleanupObjects->findRef( object ) >= 0 )
+ (void) cleanupObjects->take();
+ }
+
+ bool isEmpty() const {
+ return cleanupObjects ? cleanupObjects->isEmpty() : TRUE;
+ }
+
+ void clear() {
+ if ( !cleanupObjects )
+ return;
+ QPtrListIterator<Type*> it( *cleanupObjects );
+ Type **object;
+ while ( ( object = it.current() ) ) {
+ delete *object;
+ *object = 0;
+ cleanupObjects->remove( object );
+ }
+ delete cleanupObjects;
+ cleanupObjects = 0;
+ }
+
+private:
+ QPtrList<Type*> *cleanupObjects;
+};
+
+template<class Type>
+class QSingleCleanupHandler
+{
+public:
+ QSingleCleanupHandler() : object( 0 ) {}
+ ~QSingleCleanupHandler() {
+ if ( object ) {
+ delete *object;
+ *object = 0;
+ }
+ }
+ Type* set( Type **o ) {
+ object = o;
+ return *object;
+ }
+ void reset() { object = 0; }
+private:
+ Type **object;
+};
+
+template<class Type>
+class QSharedCleanupHandler
+{
+public:
+ QSharedCleanupHandler() : object( 0 ) {}
+ ~QSharedCleanupHandler() {
+ if ( object ) {
+ if ( (*object)->deref() )
+ delete *object;
+ *object = 0;
+ }
+ }
+ Type* set( Type **o ) {
+ object = o;
+ return *object;
+ }
+ void reset() { object = 0; }
+private:
+ Type **object;
+};
+
+#endif //QCLEANUPHANDLER_H
diff --git a/recipes-qtopia/visiscript/files/qptrlist.h b/recipes-qtopia/visiscript/files/qptrlist.h
new file mode 100644
index 0000000..9a07e1e
--- /dev/null
+++ b/recipes-qtopia/visiscript/files/qptrlist.h
@@ -0,0 +1,9 @@
+#ifndef QTCOMPAT_QPTRLIST_H
+#define QTCOMPAT_QPTRLIST_H
+
+#include <qlist.h>
+
+#define QPtrList QList
+#define QPtrListIterator QListIterator
+
+#endif
diff --git a/recipes-qtopia/visiscript/visiscript_0.3.2.bb b/recipes-qtopia/visiscript/visiscript_0.3.2.bb
new file mode 100644
index 0000000..17a661e
--- /dev/null
+++ b/recipes-qtopia/visiscript/visiscript_0.3.2.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "VisiScript is a simple graphical frontend for \
+scripting languages like minscript, Python,Ruby, Perl or others. \
+VisiScript runs on the Qtopia desktop environment of the Zaurus."
+SECTION = "opie/applications"
+DEPENDS = "qscintilla"
+LICENSE = "GPL"
+PR = "r1"
+
+APPNAME = "visiscript"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+SRC_URI = "http://www.mneuroth.de/privat/zaurus/visiscript_src_${PV}.tar.gz \
+ file://qptrlist.h file://qcleanuphandler.h"
+S = "${WORKDIR}/visiscript-${PV}"
+
+inherit opie
+
+QMAKE_PROFILES = "zvisiscript.pro"
+
+EXTRA_QMAKEVARS_POST += "LIBS-=../qscintilla-1.60-gpl-1.3/qt/lib/libqscintilla_arm.a LIBS+=-lqscintilla"
+export OE_QMAKE_LINK="${CXX}"
+
+do_compile_prepend() {
+ install -m 0644 ${WORKDIR}/*.h ${S}
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 Visiscript.png ${D}${palmtopdir}/pics
+}
+
+#FIXME: package help and translation
+
+SRC_URI[md5sum] = "c43beaef5817fe525099341620e3584b"
+SRC_URI[sha256sum] = "3ec61d179aa29811f1383bd99c529342aecea1b3b4cffaa8670aecd7486d0c94"
diff --git a/recipes-qtopia/visiscript/visiscript_0.4.3.bb b/recipes-qtopia/visiscript/visiscript_0.4.3.bb
new file mode 100644
index 0000000..6d5b331
--- /dev/null
+++ b/recipes-qtopia/visiscript/visiscript_0.4.3.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "VisiScript is a simple graphical frontend for \
+scripting languages like minscript, Python,Ruby, Perl or others. \
+VisiScript runs on the Qtopia desktop environment of the Zaurus."
+SECTION = "opie/applications"
+DEPENDS = "qscintilla"
+LICENSE = "GPL"
+APPNAME = "visiscript"
+APPTYPE = "binary"
+APPDESKTOP = "${S}"
+
+BROKEN = "1"
+
+SRC_URI = "http://www.mneuroth.de/privat/zaurus/visiscript_src_${PV}.tar.gz \
+ file://qptrlist.h file://qcleanuphandler.h"
+
+S = "${WORKDIR}/visiscript-${PV}"
+
+inherit opie
+
+QMAKE_PROFILES = "zvisiscript.pro"
+PARALLEL_MAKE = ""
+
+EXTRA_QMAKEVARS_POST += "LIBS-=../qscintilla-1.65-gpl-1.6/qt/libqscintilla.a LIBS+=-lqscintilla LIBS+=-ldl"
+export OE_QMAKE_LINK="${CXX}"
+
+do_compile_prepend() {
+ install -m 0644 ${WORKDIR}/*.h ${S}
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 Visiscript.png ${D}${palmtopdir}/pics
+}
+
+#FIXME: package help and translation
+
+SRC_URI[md5sum] = "f625eb9cffa82e35c3c477c58aa98795"
+SRC_URI[sha256sum] = "39f2dfd8aaf41b51aadaa06c862b75d82c8f0ffd268d03d37e5895c038366271"
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bogusincdir.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bogusincdir.patch
new file mode 100644
index 0000000..d5b4c0b
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bogusincdir.patch
@@ -0,0 +1,24 @@
+diff -urN xmms-embedded.orig/xmms/Input/mplayer/mplayer.pro xmms-embedded/xmms/Input/mplayer/mplayer.pro
+--- xmms-embedded.orig/xmms/Input/mplayer/mplayer.pro 2003-04-01 12:55:53.000000000 -0500
++++ xmms-embedded/xmms/Input/mplayer/mplayer.pro 2004-03-28 10:39:36.000000000 -0500
+@@ -4,7 +4,7 @@
+ HEADERS = wav.h
+ SOURCES = wav.c
+
+-INCLUDEPATH = . ../../include ../.. $(INC_PATH)
++INCLUDEPATH = . ../../include ../..
+ LIBS = $(SUB_LIBS) -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Output/OSS/OSS.pro xmms-embedded/xmms/Output/OSS/OSS.pro
+--- xmms-embedded.orig/xmms/Output/OSS/OSS.pro 2003-04-01 12:55:54.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/OSS.pro 2004-03-28 10:39:20.000000000 -0500
+@@ -10,7 +10,7 @@
+ mixer.c \
+ OSS.c
+
+-INCLUDEPATH = . ../../include ../.. $(INC_PATH)
++INCLUDEPATH = . ../../include ../..
+ LIBS = $(SUB_LIBS) -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bufferdefaults.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bufferdefaults.patch
new file mode 100644
index 0000000..2ccb07f
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/bufferdefaults.patch
@@ -0,0 +1,14 @@
+diff -urN xmms-embedded.orig/xmms/Output/OSS/init.c xmms-embedded/xmms/Output/OSS/init.c
+--- xmms-embedded.orig/xmms/Output/OSS/init.c 2003-04-01 12:55:54.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/init.c 2004-03-28 22:17:07.000000000 -0500
+@@ -30,8 +30,8 @@
+
+ oss_cfg.audio_device = 0;
+ oss_cfg.mixer_device = 0;
+- oss_cfg.buffer_size = 3000;
+- oss_cfg.prebuffer = 25;
++ oss_cfg.buffer_size = 3;
++ oss_cfg.prebuffer = 1;
+ oss_cfg.use_alt_audio_device = FALSE;
+ oss_cfg.alt_audio_device = NULL;
+ oss_cfg.use_master=0;
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34-enum.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34-enum.patch
new file mode 100644
index 0000000..ccc7fd8
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34-enum.patch
@@ -0,0 +1,12 @@
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.cc xmms-embedded/xmms/Input/xmms-sid/xmms-sid.cc
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.cc 2002-10-10 13:47:00.000000000 -0400
++++ xmms-embedded/xmms/Input/xmms-sid/xmms-sid.cc 2004-06-23 11:13:32.000000000 -0400
+@@ -190,7 +190,7 @@
+ int fxlen, tn;
+ struct sidTuneInfo sidInf;
+ char *name;
+- enum AFormat fmt = (xs_emuConf.bitsPerSample == 16) ? FMT_S16_LE : FMT_U8;
++ AFormat fmt = (xs_emuConf.bitsPerSample == 16) ? FMT_S16_LE : FMT_U8;
+ gint chn = xs_emuConf.channels;
+
+ tune->getInfo(sidInf);
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34.patch
new file mode 100644
index 0000000..1ea1259
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gcc34.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- xmms-embedded/xmms/Output/OSS/convert.c~gcc34 2003-06-05 00:33:40.000000000 +0200
++++ xmms-embedded/xmms/Output/OSS/convert.c 2004-05-22 18:02:50.000000000 +0200
+@@ -178,7 +178,7 @@
+ break;
+ case AFMT_S16_LE: /*FIXME endiannes */
+ break;
+- default:
++ default:;
+ }
+
+
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/glib2.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/glib2.patch
new file mode 100644
index 0000000..6c3a636
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/glib2.patch
@@ -0,0 +1,196 @@
+diff -urN xmms-embedded.orig/xmms/General/QPEgui/QPEgui.pro xmms-embedded/xmms/General/QPEgui/QPEgui.pro
+--- xmms-embedded.orig/xmms/General/QPEgui/QPEgui.pro 2003-04-01 12:55:53.000000000 -0500
++++ xmms-embedded/xmms/General/QPEgui/QPEgui.pro 2004-03-28 19:04:54.000000000 -0500
+@@ -3,8 +3,8 @@
+ CONFIG = qt warn_on release
+ HEADERS = config.h xmmsgui2.h filebrowser.h inlineedit.h qinputdialog.h moviewin.h xtoolbutton.h
+ SOURCES = song_change.cpp xmmsgui2.cpp filebrowser.cpp inlineedit.cpp qinputdialog.cpp moviewin.cpp xtoolbutton.cpp
+-INCLUDEPATH += . ../.. $(INC_PATH) $(OPIE_INC)
+-LIBS += $(SUB_LIBS) -lpthread -lglib -lqpe
++INCLUDEPATH += . ../.. $(INC_PATH) $(OPIE_INC) $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS += -L$(STAGING_DIR)/lib $(SUB_LIBS) -lpthread -lglib-2.0 -lqpe
+ #INTERFACES = xmmsgui2.ui
+ DESTDIR = ../../../compiled/xmms/General
+ TARGET = QPEgui
+diff -urN xmms-embedded.orig/xmms/General/QPEgui/xmms.pro xmms-embedded/xmms/General/QPEgui/xmms.pro
+--- xmms-embedded.orig/xmms/General/QPEgui/xmms.pro 2002-11-18 05:13:07.000000000 -0500
++++ xmms-embedded/xmms/General/QPEgui/xmms.pro 2004-03-28 19:05:01.000000000 -0500
+@@ -3,8 +3,8 @@
+ CONFIG = qt warn_on release
+ HEADERS = config.h xmmsgui2.h filebrowser.h inlineedit.h qinputdialog.h moviewin.h xtoolbutton.h
+ SOURCES = song_change.cpp xmmsgui2.cpp filebrowser.cpp inlineedit.cpp qinputdialog.cpp moviewin.cpp xtoolbutton.cpp
+-INCLUDEPATH += . ../.. /usr/include/glib-1.2 /usr/lib/glib/include
+-LIBS += -lpthread -lglib -lqpe
++INCLUDEPATH += . ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS += -L$(STAGING_DIR)/lib -lpthread -lglib-2.0 -lqpe
+ #INTERFACES = xmmsgui2.ui
+ DESTDIR = ../../../compiled/xmms/General
+ TARGET = QPEgui
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro 2004-03-28 19:04:48.000000000 -0500
+@@ -12,8 +12,8 @@
+ vcedit.c \
+ vorbis.c
+
+-INCLUDEPATH = . ../../include ../.. ../../../Tremor
+-LIBS = -lglib -lm -ldl -L../../../compiled -lvorbisidec
++INCLUDEPATH = . ../../include ../.. ../../../Tremor $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl -L../../../compiled -lvorbisidec
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/Input/mikmod/mikmod.pro xmms-embedded/xmms/Input/mikmod/mikmod.pro
+--- xmms-embedded.orig/xmms/Input/mikmod/mikmod.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/mikmod/mikmod.pro 2004-03-28 19:04:42.000000000 -0500
+@@ -5,8 +5,8 @@
+ SOURCES = drv_xmms.c \
+ plugin.c
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = -lglib -lm -ldl -lmikmod
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl -lmikmod
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/Input/mplayer/mplayer.pro xmms-embedded/xmms/Input/mplayer/mplayer.pro
+--- xmms-embedded.orig/xmms/Input/mplayer/mplayer.pro 2004-03-28 17:39:52.000000000 -0500
++++ xmms-embedded/xmms/Input/mplayer/mplayer.pro 2004-03-28 19:04:30.000000000 -0500
+@@ -4,8 +4,8 @@
+ HEADERS = wav.h
+ SOURCES = wav.c
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = $(SUB_LIBS) -lglib -lm -ldl
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib $(SUB_LIBS) -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/Input/mplayer/wav.pro xmms-embedded/xmms/Input/mplayer/wav.pro
+--- xmms-embedded.orig/xmms/Input/mplayer/wav.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/mplayer/wav.pro 2004-03-28 19:04:36.000000000 -0500
+@@ -4,8 +4,8 @@
+ HEADERS = wav.h
+ SOURCES = wav.c
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = -lglib -lm -ldl
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/Input/shorten/shorten.pro xmms-embedded/xmms/Input/shorten/shorten.pro
+--- xmms-embedded.orig/xmms/Input/shorten/shorten.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/shorten/shorten.pro 2004-03-28 19:04:25.000000000 -0500
+@@ -16,8 +16,8 @@
+ wave.c
+
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = -lglib -lm -ldl
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/Input/wav/wav.pro xmms-embedded/xmms/Input/wav/wav.pro
+--- xmms-embedded.orig/xmms/Input/wav/wav.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/wav/wav.pro 2004-03-28 19:04:19.000000000 -0500
+@@ -4,8 +4,8 @@
+ HEADERS = wav.h
+ SOURCES = wav.c
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = -lglib -lm -ldl
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.pro xmms-embedded/xmms/Input/xmms-mad/xmms-mad.pro
+--- xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/xmms-mad/xmms-mad.pro 2004-03-28 19:04:12.000000000 -0500
+@@ -11,8 +11,8 @@
+ xing.c \
+ xmms-mad.c
+
+-INCLUDEPATH = . ../..
+-LIBS = -lid3tag -lz -lmad -lglib -ldl -L../../../compiled -lxmms -lm
++INCLUDEPATH = . ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lid3tag -lz -lmad -lglib-2.0 -ldl -L../../../compiled -lxmms -lm
+ #TMAKE_CFLAGS = -O2 -fPIC -DHAVE_CONFIG_H -DPIC
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H -DNOGUI -DSLOWCPU
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.pro xmms-embedded/xmms/Input/xmms-sid/xmms-sid.pro
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Input/xmms-sid/xmms-sid.pro 2004-03-28 19:04:05.000000000 -0500
+@@ -11,8 +11,8 @@
+ xs_init.c \
+ xs_stil.c
+
+-INCLUDEPATH = . ../..
+-LIBS = -lglib -lm -ldl -lsidplay
++INCLUDEPATH = . ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl -lsidplay
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops "-DVERSION=\"1.0.0\""
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
+diff -urN xmms-embedded.orig/xmms/libxmms/libxmms.pro xmms-embedded/xmms/libxmms/libxmms.pro
+--- xmms-embedded.orig/xmms/libxmms/libxmms.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/libxmms/libxmms.pro 2004-03-28 19:03:44.000000000 -0500
+@@ -16,8 +16,8 @@
+ util.c \
+ xmmsctrl.c
+
+-INCLUDEPATH = . ../include
+-LIBS = -lglib -lm -ldl
++INCLUDEPATH = . ../include $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS = -export-dynamic
+ DESTDIR = ../../compiled
+diff -urN xmms-embedded.orig/xmms/Output/OSS/oss.pro xmms-embedded/xmms/Output/OSS/oss.pro
+--- xmms-embedded.orig/xmms/Output/OSS/oss.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/oss.pro 2004-03-28 19:03:59.000000000 -0500
+@@ -10,8 +10,8 @@
+ mixer.c \
+ OSS.c
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = -lglib -lm -ldl
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Output
+diff -urN xmms-embedded.orig/xmms/Output/OSS/OSS.pro xmms-embedded/xmms/Output/OSS/OSS.pro
+--- xmms-embedded.orig/xmms/Output/OSS/OSS.pro 2004-03-28 17:39:52.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/OSS.pro 2004-03-28 19:03:53.000000000 -0500
+@@ -10,8 +10,8 @@
+ mixer.c \
+ OSS.c
+
+-INCLUDEPATH = . ../../include ../..
+-LIBS = $(SUB_LIBS) -lglib -lm -ldl
++INCLUDEPATH = . ../../include ../.. $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib $(SUB_LIBS) -lglib-2.0 -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Output
+diff -urN xmms-embedded.orig/xmms/xmms/xmms.pro xmms-embedded/xmms/xmms/xmms.pro
+--- xmms-embedded.orig/xmms/xmms/xmms.pro 2004-03-28 17:51:10.000000000 -0500
++++ xmms-embedded/xmms/xmms/xmms.pro 2004-03-28 19:03:35.000000000 -0500
+@@ -30,8 +30,8 @@
+ pluginenum.c \
+ urldecode.c \
+ util.c
+-INCLUDEPATH = . .. ../include
+-LIBS = -lglib -L../../compiled -lxmms
++INCLUDEPATH = . .. ../include $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -L../../compiled -lxmms
+ TMAKE_CFLAGS = -g -O2 -Wall -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H -DPLUGIN_DIR=\"/opt/QtPalmtop/lib/xmms\" -DLOCALEDIR=\"/usr/local/share/locale\" -DPLUGINSUBS=\"Output\",\"Input\",\"Effect\",\"General\"
+ TMAKE_LFLAGS = -export-dynamic
+ DESTDIR = ../../compiled/bin
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gtkremoval.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gtkremoval.patch
new file mode 100644
index 0000000..1df8e8d
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/gtkremoval.patch
@@ -0,0 +1,722 @@
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/configure.c xmms-embedded/xmms/Input/fixpvorbis/configure.c
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/configure.c 2002-10-10 13:46:55.000000000 -0400
++++ xmms-embedded/xmms/Input/fixpvorbis/configure.c 2004-03-28 17:39:52.000000000 -0500
+@@ -3,11 +3,13 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <glib.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+
+ #include "vorbis.h"
+ #include "libxmms/configfile.h"
+-#include "libxmms/dirbrowser.h"
++//#include "libxmms/dirbrowser.h"
+ #include "libxmms/titlestring.h"
+ #include "xmms/i18n.h"
+ #include "libxmms/util.h"
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/fileinfo.c xmms-embedded/xmms/Input/fixpvorbis/fileinfo.c
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/fileinfo.c 2002-12-02 17:14:40.000000000 -0500
++++ xmms-embedded/xmms/Input/fixpvorbis/fileinfo.c 2004-03-28 17:39:52.000000000 -0500
+@@ -27,7 +27,9 @@
+ #include <string.h>
+ #include <pthread.h>
+ #include <glib.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include <tremor/ogg.h>
+ #include <tremor/ivorbiscodec.h>
+ #include <tremor/ivorbisfile.h>
+@@ -253,10 +255,11 @@
+ return retval;
+ }
+
+-
++#ifndef NOGUI
+ static void label_set_text(GtkWidget * label, char *str, ...)
+ {
+ }
++#endif
+
+ /***********************************************************************/
+
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro 2002-12-02 15:21:42.000000000 -0500
++++ xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -17,4 +17,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = fixpvorbisplugin
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/http.c xmms-embedded/xmms/Input/fixpvorbis/http.c
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/http.c 2003-06-04 18:33:40.000000000 -0400
++++ xmms-embedded/xmms/Input/fixpvorbis/http.c 2004-03-28 17:39:52.000000000 -0500
+@@ -23,7 +23,9 @@
+ #include <arpa/inet.h>
+ #include <netdb.h>
+ #include <glib.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include <string.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -50,7 +52,9 @@
+ static guint64 buffer_read = 0;
+ static gchar *buffer;
+ static pthread_t thread;
++#ifndef NOGUI
+ static GtkWidget *error_dialog = NULL;
++#endif
+
+ extern vorbis_config_t vorbis_cfg;
+ extern InputPlugin vorbis_ip;
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/vorbis.c xmms-embedded/xmms/Input/fixpvorbis/vorbis.c
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/vorbis.c 2003-06-04 18:33:40.000000000 -0400
++++ xmms-embedded/xmms/Input/fixpvorbis/vorbis.c 2004-03-28 17:39:52.000000000 -0500
+@@ -31,7 +31,9 @@
+ #include <string.h>
+ #include <pthread.h>
+ #include <glib.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include <tremor/ogg.h>
+ #include <tremor/ivorbiscodec.h>
+ #include <tremor/ivorbisfile.h>
+diff -urN xmms-embedded.orig/xmms/Input/mikmod/mikmod-plugin.h xmms-embedded/xmms/Input/mikmod/mikmod-plugin.h
+--- xmms-embedded.orig/xmms/Input/mikmod/mikmod-plugin.h 2002-10-10 13:46:47.000000000 -0400
++++ xmms-embedded/xmms/Input/mikmod/mikmod-plugin.h 2004-03-28 17:39:52.000000000 -0500
+@@ -5,7 +5,9 @@
+ #include <stdio.h>
+ #include <limits.h>
+ #include <pthread.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include "xmms/plugin.h"
+ #include <mikmod.h>
+
+diff -urN xmms-embedded.orig/xmms/Input/mikmod/mikmod.pro xmms-embedded/xmms/Input/mikmod/mikmod.pro
+--- xmms-embedded.orig/xmms/Input/mikmod/mikmod.pro 2002-10-10 13:46:48.000000000 -0400
++++ xmms-embedded/xmms/Input/mikmod/mikmod.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -10,4 +10,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = mikmod
+diff -urN xmms-embedded.orig/xmms/Input/mikmod/plugin.c xmms-embedded/xmms/Input/mikmod/plugin.c
+--- xmms-embedded.orig/xmms/Input/mikmod/plugin.c 2002-12-11 16:26:36.000000000 -0500
++++ xmms-embedded/xmms/Input/mikmod/plugin.c 2004-03-28 17:39:52.000000000 -0500
+@@ -26,7 +26,9 @@
+ #include "libxmms/configfile.h"
+ #include "libxmms/util.h"
+ #include "libxmms/titlestring.h"
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+
+ #include "mikmod.xpm"
+
+@@ -42,7 +44,9 @@
+ static void aboutbox(void);
+ static void get_song_info(char *filename, char **title, int *length);
+ static void configure();
++#ifndef NOGUI
+ static void config_ok(GtkWidget * widget, gpointer data);
++#endif
+
+ static pthread_t decode_thread;
+
+@@ -68,7 +72,9 @@
+
+
+ static void *play_loop(void *arg);
++#ifndef NOGUI
+ static void config_ok(GtkWidget * widget, gpointer data);
++#endif
+
+
+ static void aboutbox()
+@@ -349,11 +355,12 @@
+ configure()
+ {
+ }
+-
++#ifndef NOGUI
+ static void config_ok(GtkWidget * widget, gpointer data)
+ {
+
+ }
++#endif
+
+ InputPlugin mikmod_ip =
+ {
+diff -urN xmms-embedded.orig/xmms/Input/mplayer/mplayer.pro xmms-embedded/xmms/Input/mplayer/mplayer.pro
+--- xmms-embedded.orig/xmms/Input/mplayer/mplayer.pro 2004-03-28 17:18:51.000000000 -0500
++++ xmms-embedded/xmms/Input/mplayer/mplayer.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -9,4 +9,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = mplayer
+diff -urN xmms-embedded.orig/xmms/Input/mplayer/wav.pro xmms-embedded/xmms/Input/mplayer/wav.pro
+--- xmms-embedded.orig/xmms/Input/mplayer/wav.pro 2002-10-10 13:47:06.000000000 -0400
++++ xmms-embedded/xmms/Input/mplayer/wav.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -9,4 +9,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = mplayer
+diff -urN xmms-embedded.orig/xmms/Input/shorten/gtk.c xmms-embedded/xmms/Input/shorten/gtk.c
+--- xmms-embedded.orig/xmms/Input/shorten/gtk.c 2002-10-10 13:47:10.000000000 -0400
++++ xmms-embedded/xmms/Input/shorten/gtk.c 2004-03-28 17:47:14.000000000 -0500
+@@ -24,9 +24,9 @@
+ #include <glib.h>
+ #include <xmms/util.h>
+ #include <libxmms/configfile.h>
+-#include <libxmms/dirbrowser.h>
++//#include <libxmms/dirbrowser.h>
+ #include "shorten.h"
+-
++#ifndef NOGUI
+ static GtkWidget *shn_configurewin = NULL,
+ *about_box,
+ *vbox,
+@@ -53,7 +53,7 @@
+ *ok,
+ *cancel,
+ *apply;
+-
++#endif
+ void display_shn_about(void)
+ {
+ }
+@@ -65,11 +65,11 @@
+ void destroy_path_dirbrowser()
+ {
+ }
+-
++#ifndef NOGUI
+ static void path_browse_cb(GtkWidget * w, gpointer data)
+ {
+ }
+-
++#endif
+ void shn_configurewin_save(void)
+ {
+ }
+diff -urN xmms-embedded.orig/xmms/Input/shorten/shorten.pro xmms-embedded/xmms/Input/shorten/shorten.pro
+--- xmms-embedded.orig/xmms/Input/shorten/shorten.pro 2002-10-10 13:47:06.000000000 -0400
++++ xmms-embedded/xmms/Input/shorten/shorten.pro 2004-03-28 17:44:34.000000000 -0500
+@@ -21,4 +21,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = shorten
+diff -urN xmms-embedded.orig/xmms/Input/wav/wav.pro xmms-embedded/xmms/Input/wav/wav.pro
+--- xmms-embedded.orig/xmms/Input/wav/wav.pro 2002-10-10 13:47:05.000000000 -0400
++++ xmms-embedded/xmms/Input/wav/wav.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -9,4 +9,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = wav
+diff -urN xmms-embedded.orig/xmms/Input/xmms-mad/fileinfo.c xmms-embedded/xmms/Input/xmms-mad/fileinfo.c
+--- xmms-embedded.orig/xmms/Input/xmms-mad/fileinfo.c 2002-11-18 05:13:21.000000000 -0500
++++ xmms-embedded/xmms/Input/xmms-mad/fileinfo.c 2004-03-28 17:39:52.000000000 -0500
+@@ -30,11 +30,11 @@
+ #include "input.h"
+
+ #include <xmms/util.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
+
+ /* #define DEBUG */
+
+-#ifndef NOGUI
+ static GtkWidget *window = 0;
+ static GtkWidget *filename_entry, *id3_frame;
+ static GtkWidget *title_entry, *artist_entry, *album_entry;
+diff -urN xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.c xmms-embedded/xmms/Input/xmms-mad/xmms-mad.c
+--- xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.c 2002-12-03 04:46:37.000000000 -0500
++++ xmms-embedded/xmms/Input/xmms-mad/xmms-mad.c 2004-03-28 17:39:52.000000000 -0500
+@@ -25,7 +25,9 @@
+ #include "libxmms/configfile.h"
+
+ #include <pthread.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include <xmms/util.h>
+ #include <stdarg.h>
+ #include <fcntl.h>
+@@ -41,8 +43,10 @@
+ static pthread_t *decode_thread; /**< the single decoder thread */
+ static struct mad_info_t info; /**< info for current track */
+
++#ifndef NOGUI
+ static GtkWidget *about_window = 0;
+ static GtkWidget *error_dialog = 0;
++#endif
+
+ static void
+ xmmsmad_init ()
+diff -urN xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.pro xmms-embedded/xmms/Input/xmms-mad/xmms-mad.pro
+--- xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.pro 2002-12-02 17:14:40.000000000 -0500
++++ xmms-embedded/xmms/Input/xmms-mad/xmms-mad.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -17,6 +17,7 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H -DNOGUI -DSLOWCPU
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = xmms-mad
+
+
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.pro xmms-embedded/xmms/Input/xmms-sid/xmms-sid.pro
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.pro 2002-10-10 13:47:05.000000000 -0400
++++ xmms-embedded/xmms/Input/xmms-sid/xmms-sid.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -16,4 +16,5 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops "-DVERSION=\"1.0.0\""
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
++DEFINES += NOGUI
+ TARGET = xmms-sid
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xs_about.c xmms-embedded/xmms/Input/xmms-sid/xs_about.c
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xs_about.c 2002-10-10 13:47:04.000000000 -0400
++++ xmms-embedded/xmms/Input/xmms-sid/xs_about.c 2004-03-28 17:39:52.000000000 -0500
+@@ -23,11 +23,14 @@
+ */
+
+ #include "xmms-sid.h"
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include "xmms-sid-logo.xpm"
+
+-
++#ifndef NOGUI
+ static GtkWidget *xs_aboutwin = NULL;
++#endif
+
+
+
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xs_config.c xmms-embedded/xmms/Input/xmms-sid/xs_config.c
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xs_config.c 2002-10-10 13:47:04.000000000 -0400
++++ xmms-embedded/xmms/Input/xmms-sid/xs_config.c 2004-03-28 17:39:52.000000000 -0500
+@@ -23,13 +23,16 @@
+ */
+ #include "xmms-sid.h"
+ #include <libxmms/configfile.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include <stdio.h>
+
+
+ /*
+ * General stuff
+ */
++#ifndef NOGUI
+ static GtkWidget *xs_configwin = NULL;
+ static GtkWidget *xs_fileselector = NULL;
+
+@@ -38,7 +41,7 @@
+ static GtkWidget *cfg_chn_stereo, *cfg_chn_autopan, *cfg_mem_banksw, *cfg_mem_transrom, *cfg_mem_playsid;
+ static GtkWidget *cfg_songnameformat, *cfg_clock_pal, *cfg_clock_ntsc, *cfg_clock_force, *cfg_ok, *cfg_cancel;
+ static GtkWidget *cfg_wav_mos6581, *cfg_wav_mos8580, *cfg_emufilters, *cfg_stil_browse, *cfg_stil_use, *cfg_stil_path;
+-
++#endif
+
+
+ /*
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xs_fileinfo.cc xmms-embedded/xmms/Input/xmms-sid/xs_fileinfo.cc
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xs_fileinfo.cc 2002-10-10 13:47:04.000000000 -0400
++++ xmms-embedded/xmms/Input/xmms-sid/xs_fileinfo.cc 2004-03-28 17:43:11.000000000 -0500
+@@ -23,16 +23,19 @@
+
+
+ #include "xmms-sid.h"
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+ #include <sidplay/sidtune.h>
+ #include <stdio.h>
+ #include <string.h>
+
++#ifndef NOGUI
+ static GtkWidget *xs_fileinfowin = NULL;
+ static GtkWidget *fileinfo_filename, *fileinfo_songname, *fileinfo_composer;
+ static GtkWidget *fileinfo_copyright, *fileinfo_ok, *fileinfo_sub_comment;
+ static GtkWidget *fileinfo_sub_tune, *fileinfo_sub_tune_menu, *fileinfo_sub_artist, *fileinfo_sub_title;
+-
++#endif
+
+
+
+diff -urN xmms-embedded.orig/xmms/libxmms/libxmms.pro xmms-embedded/xmms/libxmms/libxmms.pro
+--- xmms-embedded.orig/xmms/libxmms/libxmms.pro 2002-10-10 13:51:46.000000000 -0400
++++ xmms-embedded/xmms/libxmms/libxmms.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -3,22 +3,23 @@
+
+ HEADERS = configfile.h \
+ config.h \
+-dirbrowser.h \
++#dirbrowser.h \
+ formatter.h \
+ titlestring.h \
+ util.h \
+ xmmsctrl.h
+
+ SOURCES = configfile.c \
+-dirbrowser.c \
++#dirbrowser.c \
+ formatter.c \
+ titlestring.c \
+ util.c \
+ xmmsctrl.c
+
+-INCLUDEPATH = . /usr/include/glib-1.2 /usr/lib/glib/include ../include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . /usr/include/glib-1.2 /usr/lib/glib/include ../include /usr/X11R6/include
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS = -export-dynamic
+ DESTDIR = ../../compiled
++DEFINES += NOGUI
+ TARGET = xmms
+diff -urN xmms-embedded.orig/xmms/libxmms/titlestring.c xmms-embedded/xmms/libxmms/titlestring.c
+--- xmms-embedded.orig/xmms/libxmms/titlestring.c 2002-10-10 13:51:48.000000000 -0400
++++ xmms-embedded/xmms/libxmms/titlestring.c 2004-03-28 17:39:52.000000000 -0500
+@@ -287,8 +287,9 @@
+ {'c', N_("Comment")},
+ };
+
++#ifndef NOGUI
+ GtkWidget* xmms_titlestring_descriptions(char* tags, int columns)
+ {
+ return NULL;
+ }
+-
++#endif
+diff -urN xmms-embedded.orig/xmms/libxmms/titlestring.h xmms-embedded/xmms/libxmms/titlestring.h
+--- xmms-embedded.orig/xmms/libxmms/titlestring.h 2002-10-10 13:51:48.000000000 -0400
++++ xmms-embedded/xmms/libxmms/titlestring.h 2004-03-28 17:39:52.000000000 -0500
+@@ -21,7 +21,9 @@
+ #define XMMS_TITLESTRING_H
+
+ #include <glib.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+
+
+ /*
+@@ -77,7 +79,9 @@
+ #endif
+
+ gchar *xmms_get_titlestring(gchar *fmt, TitleInput *input);
++#ifndef NOGUI
+ GtkWidget* xmms_titlestring_descriptions(char* tags, int rows);
++#endif
+
+ #ifdef __cplusplus
+ };
+diff -urN xmms-embedded.orig/xmms/libxmms/util.c xmms-embedded/xmms/libxmms/util.c
+--- xmms-embedded.orig/xmms/libxmms/util.c 2002-11-18 05:13:24.000000000 -0500
++++ xmms-embedded/xmms/libxmms/util.c 2004-03-28 17:39:52.000000000 -0500
+@@ -1,8 +1,9 @@
+ #if defined(HAVE_CONFIG_H)
+ #include "config.h"
+ #endif
+-
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+
+ #ifdef HAVE_SCHED_H
+ #include <sched.h>
+@@ -33,13 +34,13 @@
+ #endif
+
+ #include "util.h"
+-
++#ifndef NOGUI
+ GtkWidget *xmms_show_message(gchar * title, gchar * text, gchar * button_text, gboolean modal, GtkSignalFunc button_action, gpointer action_data)
+ {
+
+ return NULL;
+ }
+-
++#endif
+ gboolean xmms_check_realtime_priority(void)
+ {
+ #ifdef HAVE_SCHED_SETSCHEDULER
+diff -urN xmms-embedded.orig/xmms/libxmms/util.h xmms-embedded/xmms/libxmms/util.h
+--- xmms-embedded.orig/xmms/libxmms/util.h 2002-11-18 05:13:25.000000000 -0500
++++ xmms-embedded/xmms/libxmms/util.h 2004-03-28 17:39:52.000000000 -0500
+@@ -1,6 +1,9 @@
+ #ifndef XMMS_UTIL_H
+ #define XMMS_UTIL_H
++#include <glib.h>
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+
+ #define MYREMOTEFILE 1
+ #define NOTMYREMOTEFILE 2
+@@ -10,8 +13,9 @@
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+-
++#ifndef NOGUI
+ GtkWidget *xmms_show_message(gchar * title, gchar * text, gchar * button_text, gboolean modal, GtkSignalFunc button_action, gpointer action_data);
++#endif
+ gboolean xmms_check_realtime_priority(void);
+ void xmms_usleep(gint usec);
+ int is_my_remote_file(char *filename, char *pluginid);
+diff -urN xmms-embedded.orig/xmms/Output/OSS/configure.c xmms-embedded/xmms/Output/OSS/configure.c
+--- xmms-embedded.orig/xmms/Output/OSS/configure.c 2002-10-10 13:51:51.000000000 -0400
++++ xmms-embedded/xmms/Output/OSS/configure.c 2004-03-28 17:39:52.000000000 -0500
+@@ -19,10 +19,12 @@
+ #include "xmms/i18n.h"
+ #include "OSS.h"
+
++#ifndef NOGUI
+ static GtkWidget *configure_win = NULL;
+ static GtkWidget *mixer_usemaster_check, *buffer_size_spin, *buffer_pre_spin;
+ static GtkWidget *adevice_use_alt_check, *audio_alt_device_entry;
+ static GtkWidget *mdevice_use_alt_check, *mixer_alt_device_entry;
++#endif
+ static gint audio_device, mixer_device;
+
+
+diff -urN xmms-embedded.orig/xmms/Output/OSS/OSS.h xmms-embedded/xmms/Output/OSS/OSS.h
+--- xmms-embedded.orig/xmms/Output/OSS/OSS.h 2003-04-01 12:55:54.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/OSS.h 2004-03-28 17:39:52.000000000 -0500
+@@ -22,7 +22,7 @@
+
+ #include <unistd.h>
+ #include <inttypes.h>
+-#include <gtk/gtk.h>
++#include <glib.h>
+
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+diff -urN xmms-embedded.orig/xmms/Output/OSS/oss.pro xmms-embedded/xmms/Output/OSS/oss.pro
+--- xmms-embedded.orig/xmms/Output/OSS/oss.pro 2002-10-10 13:51:52.000000000 -0400
++++ xmms-embedded/xmms/Output/OSS/oss.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -10,10 +10,11 @@
+ mixer.c \
+ OSS.c
+
+-INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/X11R6/include
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Output
++DEFINES += NOGUI
+ TARGET = oss
+
+diff -urN xmms-embedded.orig/xmms/Output/OSS/OSS.pro xmms-embedded/xmms/Output/OSS/OSS.pro
+--- xmms-embedded.orig/xmms/Output/OSS/OSS.pro 2004-03-28 17:18:51.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/OSS.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -15,5 +15,6 @@
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Output
++DEFINES += NOGUI
+ TARGET = oss
+
+diff -urN xmms-embedded.orig/xmms/xmms/main.c xmms-embedded/xmms/xmms/main.c
+--- xmms-embedded.orig/xmms/xmms/main.c 2002-12-25 13:24:00.000000000 -0500
++++ xmms-embedded/xmms/xmms/main.c 2004-03-28 17:39:52.000000000 -0500
+@@ -19,11 +19,12 @@
+ */
+ #include "xmms.h"
+ #include "eoss.h"
+-
++#ifndef NOGUI
+ #include <gdk/gdkx.h>
+ #include <gdk/gdk.h>
+ #include <X11/Xlib.h>
+ #include <X11/Xatom.h>
++#endif
+ #include <getopt.h>
+ #include <signal.h>
+ #include <ctype.h>
+diff -urN xmms-embedded.orig/xmms/xmms/titlestring.h xmms-embedded/xmms/xmms/titlestring.h
+--- xmms-embedded.orig/xmms/xmms/titlestring.h 2002-10-10 13:52:48.000000000 -0400
++++ xmms-embedded/xmms/xmms/titlestring.h 2004-03-28 17:39:52.000000000 -0500
+@@ -21,7 +21,10 @@
+ #define XMMS_TITLESTRING_H
+
+ #include <glib.h>
++
++#ifndef NOGUI
+ #include <gtk/gtk.h>
++#endif
+
+
+ /*
+@@ -77,7 +80,9 @@
+ #endif
+
+ gchar *xmms_get_titlestring(gchar *fmt, TitleInput *input);
++#ifndef NOGUI
+ GtkWidget* xmms_titlestring_descriptions(char* tags, int rows);
++#endif
+
+ #ifdef __cplusplus
+ };
+diff -urN xmms-embedded.orig/xmms/xmms/util.c xmms-embedded/xmms/xmms/util.c
+--- xmms-embedded.orig/xmms/xmms/util.c 2002-10-10 13:51:57.000000000 -0400
++++ xmms-embedded/xmms/xmms/util.c 2004-03-28 17:39:52.000000000 -0500
+@@ -18,8 +18,10 @@
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+ #include "xmms.h"
++#ifndef NOGUI
+ #include <gdk/gdkprivate.h>
+ #include <X11/Xlib.h>
++#endif
+ #include <sys/ipc.h>
+ #include <ctype.h>
+ #ifdef HAVE_FTS_H
+@@ -165,11 +167,12 @@
+ #endif /* !HAVE_FTS_H */
+ }
+
++#ifndef NOGUI
+ GdkImage *create_dblsize_image(GdkImage * img)
+ {
+ return NULL;
+ }
+-
++#endif
+ char *read_ini_string(const char *filename, const char *section, const char *key)
+ {
+ FILE *file;
+@@ -331,6 +334,7 @@
+ gint y;
+ };
+
++#ifndef NOGUI
+ static void util_menu_position(GtkMenu *menu, gint *x, gint *y, gpointer data)
+ {
+ }
+@@ -362,12 +366,13 @@
+ util_item_factory_popup_with_data(ifactory, NULL, NULL, x, y,
+ mouse_button, time);
+ }
+-
++#endif
+ static gint util_find_compare_func(gconstpointer a, gconstpointer b)
+ {
+ return strcasecmp(a, b);
+ }
+
++#ifndef NOGUI
+ static void util_add_url_callback(GtkWidget *w, GtkWidget *entry)
+ {
+ }
+@@ -375,7 +380,7 @@
+ GtkWidget* util_create_add_url_window(gchar *caption, GtkSignalFunc ok_func, GtkSignalFunc enqueue_func)
+ {
+ }
+-
++#endif
+ static int int_compare_func(gconstpointer a, gconstpointer b)
+ {
+ if (GPOINTER_TO_INT(a) < GPOINTER_TO_INT(b))
+@@ -386,6 +391,7 @@
+ return 0;
+ }
+
++#ifndef NOGUI
+ static void filebrowser_changed(GtkWidget * w, GtkFileSelection * filesel)
+ {
+ }
+@@ -431,7 +437,7 @@
+ void util_set_cursor(GtkWidget *window)
+ {
+ }
+-
++#endif
+ void util_dump_menu_rc(void)
+ {
+ }
+diff -urN xmms-embedded.orig/xmms/xmms/util.h xmms-embedded/xmms/xmms/util.h
+--- xmms-embedded.orig/xmms/xmms/util.h 2002-10-10 13:51:57.000000000 -0400
++++ xmms-embedded/xmms/xmms/util.h 2004-03-28 17:39:52.000000000 -0500
+@@ -21,17 +21,21 @@
+ #define UTIL_H
+
+ #include "i18n.h"
++#include <glib.h>
++#ifndef NOGUI
+ #include <gdk/gdk.h>
+ #include <gtk/gtk.h>
++#endif
+
+ gchar *find_file_recursively(const char *dirname, const char *file);
+ void del_directory(const char *dirname);
+-GdkImage *create_dblsize_image(GdkImage * img);
+ char *read_ini_string(const char *filename, const char *section, const char *key);
+ GArray *read_ini_array(const gchar * filename, const gchar * section, const gchar * key);
+ GArray *string_to_garray(const gchar * str);
+ void glist_movedown(GList * list);
+ void glist_moveup(GList * list);
++#ifndef NOGUI
++GdkImage *create_dblsize_image(GdkImage * img);
+ void util_item_factory_popup(GtkItemFactory * ifactory, guint x, guint y, guint mouse_button, guint32 time);
+ void util_item_factory_popup_with_data(GtkItemFactory * ifactory, gpointer data, GtkDestroyNotify destroy, guint x, guint y, guint mouse_button, guint32 time);
+ GtkWidget *util_create_add_url_window(gchar *caption, GtkSignalFunc ok_func, GtkSignalFunc enqueue_func);
+@@ -39,6 +43,7 @@
+ gboolean util_filebrowser_is_dir(GtkFileSelection * filesel);
+ GdkFont *util_font_load(gchar *name);
+ void util_set_cursor(GtkWidget *window);
++#endif
+ void util_dump_menu_rc(void);
+ void util_read_menu_rc(void);
+
+diff -urN xmms-embedded.orig/xmms/xmms/xmms.h xmms-embedded/xmms/xmms/xmms.h
+--- xmms-embedded.orig/xmms/xmms/xmms.h 2002-10-10 13:52:24.000000000 -0400
++++ xmms-embedded/xmms/xmms/xmms.h 2004-03-28 17:39:52.000000000 -0500
+@@ -18,10 +18,12 @@
+ #ifndef XMMS_H
+ #define XMMS_H
+
++#ifndef NOGUI
+ #include <gtk/gtk.h>
+ #include <gdk/gdkx.h>
+ #include <gdk/gdkkeysyms.h>
+ #include <X11/Xlib.h>
++#endif
+
+ #include <sys/time.h>
+ #include <sys/types.h>
+diff -urN xmms-embedded.orig/xmms/xmms/xmms.pro xmms-embedded/xmms/xmms/xmms.pro
+--- xmms-embedded.orig/xmms/xmms/xmms.pro 2002-10-10 13:52:48.000000000 -0400
++++ xmms-embedded/xmms/xmms/xmms.pro 2004-03-28 17:39:52.000000000 -0500
+@@ -30,9 +30,10 @@
+ pluginenum.c \
+ urldecode.c \
+ util.c
+-INCLUDEPATH = . .. /usr/include/glib-1.2 /usr/lib/glib/include ../include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . .. /usr/include/glib-1.2 /usr/lib/glib/include ../include /usr/X11R6/include
+ LIBS = -lglib -L../../compiled -lxmms
+ TMAKE_CFLAGS = -g -O2 -Wall -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H -DPLUGIN_DIR=\"/opt/QtPalmtop/lib/xmms\" -DLOCALEDIR=\"/usr/local/share/locale\" -DPLUGINSUBS=\"Output\",\"Input\",\"Effect\",\"General\"
+ TMAKE_LFLAGS = -export-dynamic
+ DESTDIR = ../../compiled/bin
++DEFINES += NOGUI
+ TARGET = xmms
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-endian.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-endian.patch
new file mode 100644
index 0000000..9e3b965
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-endian.patch
@@ -0,0 +1,11 @@
+--- xmms-embedded/xmms/Input/mikmod/drv_xmms.c.orig 2002-10-10 19:46:47 +0200
++++ xmms-embedded/xmms/Input/mikmod/drv_xmms.c 2004-11-02 13:29:06 +0100
+@@ -65,7 +65,7 @@
+ if (!(audiobuffer = (SBYTE *) g_malloc0(buffer_size)))
+ return 1;
+
+- fmt = (md_mode & DMODE_16BITS) ? FMT_S16_LE : FMT_U8;
++ fmt = (md_mode & DMODE_16BITS) ? FMT_S16_NE : FMT_U8;
+ nch = (md_mode & DMODE_STEREO) ? 2 : 1;
+
+ if (audio_open)
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-update.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-update.patch
new file mode 100644
index 0000000..a9d130f
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/mikmod-update.patch
@@ -0,0 +1,11 @@
+--- xmms-embedded/xmms/Input/mikmod/drv_xmms.c.orig 2004-11-02 13:29:06 +0100
++++ xmms-embedded/xmms/Input/mikmod/drv_xmms.c 2004-11-02 13:29:56 +0100
+@@ -150,6 +150,6 @@
+ VC_VoiceStop,
+ VC_VoiceStopped,
+ VC_VoiceGetPosition,
+- VC_VoiceRealVolume,
+- VC_VoiceSetFilter
++ VC_VoiceRealVolume
++
+ };
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/removenativeincdir.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/removenativeincdir.patch
new file mode 100644
index 0000000..0abe148
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/removenativeincdir.patch
@@ -0,0 +1,120 @@
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro 2002-12-02 15:21:42.000000000 -0500
++++ xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro 2004-03-28 17:13:46.000000000 -0500
+@@ -12,7 +12,7 @@
+ vcedit.c \
+ vorbis.c
+
+-INCLUDEPATH = . ../../include ../.. ../../../Tremor /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../../include ../.. ../../../Tremor
+ LIBS = -lglib -lm -ldl -L../../../compiled -lvorbisidec
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Input/mikmod/mikmod.pro xmms-embedded/xmms/Input/mikmod/mikmod.pro
+--- xmms-embedded.orig/xmms/Input/mikmod/mikmod.pro 2002-10-10 13:46:48.000000000 -0400
++++ xmms-embedded/xmms/Input/mikmod/mikmod.pro 2004-03-28 17:13:39.000000000 -0500
+@@ -5,7 +5,7 @@
+ SOURCES = drv_xmms.c \
+ plugin.c
+
+-INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../../include ../..
+ LIBS = -lglib -lm -ldl -lmikmod
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Input/mplayer/wav.pro xmms-embedded/xmms/Input/mplayer/wav.pro
+--- xmms-embedded.orig/xmms/Input/mplayer/wav.pro 2004-03-28 16:59:42.000000000 -0500
++++ xmms-embedded/xmms/Input/mplayer/wav.pro 2004-03-28 17:13:26.000000000 -0500
+@@ -4,7 +4,7 @@
+ HEADERS = wav.h
+ SOURCES = wav.c
+
+-INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../../include ../..
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Input/shorten/shorten.pro xmms-embedded/xmms/Input/shorten/shorten.pro
+--- xmms-embedded.orig/xmms/Input/shorten/shorten.pro 2002-10-10 13:47:06.000000000 -0400
++++ xmms-embedded/xmms/Input/shorten/shorten.pro 2004-03-28 17:13:17.000000000 -0500
+@@ -16,7 +16,7 @@
+ wave.c
+
+
+-INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../../include ../..
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Input/wav/wav.pro xmms-embedded/xmms/Input/wav/wav.pro
+--- xmms-embedded.orig/xmms/Input/wav/wav.pro 2002-10-10 13:47:05.000000000 -0400
++++ xmms-embedded/xmms/Input/wav/wav.pro 2004-03-28 17:13:10.000000000 -0500
+@@ -4,7 +4,7 @@
+ HEADERS = wav.h
+ SOURCES = wav.c
+
+-INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../../include ../..
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.pro xmms-embedded/xmms/Input/xmms-mad/xmms-mad.pro
+--- xmms-embedded.orig/xmms/Input/xmms-mad/xmms-mad.pro 2002-12-02 17:14:40.000000000 -0500
++++ xmms-embedded/xmms/Input/xmms-mad/xmms-mad.pro 2004-03-28 17:13:02.000000000 -0500
+@@ -11,7 +11,7 @@
+ xing.c \
+ xmms-mad.c
+
+-INCLUDEPATH = . ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../..
+ LIBS = -lid3tag -lz -lmad -lglib -ldl -L../../../compiled -lxmms -lm
+ #TMAKE_CFLAGS = -O2 -fPIC -DHAVE_CONFIG_H -DPIC
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H -DNOGUI -DSLOWCPU
+diff -urN xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.pro xmms-embedded/xmms/Input/xmms-sid/xmms-sid.pro
+--- xmms-embedded.orig/xmms/Input/xmms-sid/xmms-sid.pro 2002-10-10 13:47:05.000000000 -0400
++++ xmms-embedded/xmms/Input/xmms-sid/xmms-sid.pro 2004-03-28 17:12:51.000000000 -0500
+@@ -11,7 +11,7 @@
+ xs_init.c \
+ xs_stil.c
+
+-INCLUDEPATH = . ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/include/gtk-1.2 /usr/X11R6/include
++INCLUDEPATH = . ../..
+ LIBS = -lglib -lm -ldl -lsidplay
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops "-DVERSION=\"1.0.0\""
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/libxmms/libxmms.pro xmms-embedded/xmms/libxmms/libxmms.pro
+--- xmms-embedded.orig/xmms/libxmms/libxmms.pro 2004-03-28 16:51:11.000000000 -0500
++++ xmms-embedded/xmms/libxmms/libxmms.pro 2004-03-28 17:11:46.000000000 -0500
+@@ -16,7 +16,7 @@
+ util.c \
+ xmmsctrl.c
+
+-INCLUDEPATH = . /usr/include/glib-1.2 /usr/lib/glib/include ../include /usr/X11R6/include
++INCLUDEPATH = . ../include
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS = -export-dynamic
+diff -urN xmms-embedded.orig/xmms/Output/OSS/oss.pro xmms-embedded/xmms/Output/OSS/oss.pro
+--- xmms-embedded.orig/xmms/Output/OSS/oss.pro 2004-03-28 16:53:38.000000000 -0500
++++ xmms-embedded/xmms/Output/OSS/oss.pro 2004-03-28 17:12:34.000000000 -0500
+@@ -10,7 +10,7 @@
+ mixer.c \
+ OSS.c
+
+-INCLUDEPATH = . ../../include ../.. /usr/include/glib-1.2 /usr/lib/glib/include /usr/X11R6/include
++INCLUDEPATH = . ../../include ../..
+ LIBS = -lglib -lm -ldl
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+diff -urN xmms-embedded.orig/xmms/xmms/xmms.pro xmms-embedded/xmms/xmms/xmms.pro
+--- xmms-embedded.orig/xmms/xmms/xmms.pro 2004-03-28 16:43:27.000000000 -0500
++++ xmms-embedded/xmms/xmms/xmms.pro 2004-03-28 17:11:19.000000000 -0500
+@@ -30,7 +30,7 @@
+ pluginenum.c \
+ urldecode.c \
+ util.c
+-INCLUDEPATH = . .. /usr/include/glib-1.2 /usr/lib/glib/include ../include /usr/X11R6/include
++INCLUDEPATH = . .. ../include
+ LIBS = -lglib -L../../compiled -lxmms
+ TMAKE_CFLAGS = -g -O2 -Wall -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H -DPLUGIN_DIR=\"/opt/QtPalmtop/lib/xmms\" -DLOCALEDIR=\"/usr/local/share/locale\" -DPLUGINSUBS=\"Output\",\"Input\",\"Effect\",\"General\"
+ TMAKE_LFLAGS = -export-dynamic
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/tremorlib.patch b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/tremorlib.patch
new file mode 100644
index 0000000..485d7b7
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/tremorlib.patch
@@ -0,0 +1,12 @@
+diff -urN xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro
+--- xmms-embedded.orig/xmms/Input/fixpvorbis/fixpvorbis.pro 2004-03-28 19:04:48.000000000 -0500
++++ xmms-embedded/xmms/Input/fixpvorbis/fixpvorbis.pro 2004-03-28 19:17:37.000000000 -0500
+@@ -13,7 +13,7 @@
+ vorbis.c
+
+ INCLUDEPATH = . ../../include ../.. ../../../Tremor $(QTDIR)/include $(STAGING_DIR)/include/glib-2.0 $(STAGING_DIR)/include
+-LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl -L../../../compiled -lvorbisidec
++LIBS = -L$(STAGING_DIR)/lib -lglib-2.0 -lm -ldl -L../../../compiled -L$(STAGING_DIR)/lib/tremor -lvorbisidec
+ TMAKE_CFLAGS = -O2 -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops -DHAVE_CONFIG_H
+ TMAKE_LFLAGS =
+ DESTDIR = ../../../compiled/xmms/Input
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/xmms.png b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/xmms.png
new file mode 100644
index 0000000..1fe75e3
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded-20040327/xmms.png
Binary files differ
diff --git a/recipes-qtopia/xmms-embedded/xmms-embedded_20040327.bb b/recipes-qtopia/xmms-embedded/xmms-embedded_20040327.bb
new file mode 100644
index 0000000..baffdb8
--- /dev/null
+++ b/recipes-qtopia/xmms-embedded/xmms-embedded_20040327.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "XMMS embedded - lightweight audio player with video and codec plugins"
+SECTION = "opie/multimedia"
+DEPENDS = "zlib tremor glib-2.0 libmikmod \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libsidplay libmad libid3tag', d)}"
+LICENSE = "GPL"
+PR = "r6"
+
+SRC_URI = "cvs://anonymous@xmms-embedded.cvs.sourceforge.net/cvsroot/xmms-embedded;module=xmms-embedded;date=${PV} \
+ file://bogusincdir.patch \
+ file://gtkremoval.patch \
+ file://removenativeincdir.patch \
+ file://glib2.patch \
+ file://tremorlib.patch \
+ file://bufferdefaults.patch \
+ file://gcc34.patch \
+ file://gcc34-enum.patch \
+ file://mikmod-endian.patch \
+ file://mikmod-update.patch \
+ file://xmms.png"
+S = "${WORKDIR}/xmms-embedded"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += "LIBS+=-Wl,-rpath-link,${STAGING_LIBDIR} DEFINES+=_REENTRANT"
+
+QMAKE_PROFILES = "xmms-e.pro"
+export OE_QMAKE_LINK="${CXX}"
+
+do_configure_prepend() {
+ #remove all Makefiles - build will generate the correct ones using qmake
+ find ${S} -name Makefile | xargs rm -f
+}
+
+do_compile() {
+ oe_runmake "STAGING_DIR=${STAGING_EXECPREFIXDIR}"
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/lib/xmms/Effect \
+ ${D}${palmtopdir}/lib/xmms/General \
+ ${D}${palmtopdir}/lib/xmms/Input \
+ ${D}${palmtopdir}/lib/xmms/Output \
+ ${D}${palmtopdir}/lib/xmms/skin \
+ ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics
+ install -m 0644 xmms/General/QPEgui/xmms.desktop ${D}${palmtopdir}/apps/Applications/xmms.desktop
+ install -m 0644 ${WORKDIR}/xmms.png ${D}${palmtopdir}/pics/xmms.png
+ install -m 0755 compiled/bin/xmms ${D}${palmtopdir}/bin/xmms
+ oe_libinstall -so -C compiled libxmms ${D}${palmtopdir}/lib
+ oe_libinstall -so -C compiled/xmms/General libQPEgui ${D}${palmtopdir}/lib/xmms/General
+ for f in libfixpvorbisplugin libmplayer libshorten \
+ libwav libxmms-mad libxmms-sid libmikmod
+ do
+ oe_libinstall -so -C compiled/xmms/Input $f ${D}${palmtopdir}/lib/xmms/Input
+ done
+ oe_libinstall -so -C compiled/xmms/Output liboss ${D}${palmtopdir}/lib/xmms/Output
+ for f in eject.png fileadd.png main.png norep.png pause.png play.png rew.png \
+ shuf.png stop.png ff.png filedel.png move.png noshuf.png plalap.png \
+ rep.png save.png skinconf urladd.png
+ do
+ install -m 0644 Skins/winamp_xmms/${f} ${D}${palmtopdir}/lib/xmms/skin/${f}
+ done
+}
+
+FILES_${PN}-dbg += "${palmtopdir}/lib/xmms/Input/.debug"
diff --git a/recipes-qtopia/xqt/files/imake-staging.patch b/recipes-qtopia/xqt/files/imake-staging.patch
new file mode 100644
index 0000000..bf2e350
--- /dev/null
+++ b/recipes-qtopia/xqt/files/imake-staging.patch
@@ -0,0 +1,38 @@
+--- xc/config/cf/Imake.tmpl.orig 2004-07-28 04:24:29.000000000 +0100
++++ xc/config/cf/Imake.tmpl 2004-09-14 21:03:06.000000000 +0100
+@@ -2038,11 +2038,11 @@
+ */
+ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+- CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+ LDPRELIB = LdPreLib $(INSTALLED_LIBS)
+ LDPOSTLIB = LdPostLib
+- LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
++ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) $(LD_STAGING)
+ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+
+ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+--- xc/config/cf/Library.tmpl~ 2004-05-24 20:06:57.000000000 +0100
++++ xc/config/cf/Library.tmpl 2004-09-14 21:10:29.000000000 +0100
+@@ -114,7 +114,7 @@
+ STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
+ CDEBUGFLAGS = LibraryCDebugFlags
+ CLIBDEBUGFLAGS = LibraryDebugOpt
+- CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ # if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags)
+ PICFLAGS = LargePositionIndependentCFlags
+ # endif
+--- xc/config/cf/X11.tmpl~ 2004-09-03 17:18:18.000000000 +0100
++++ xc/config/cf/X11.tmpl 2004-09-14 21:30:30.000000000 +0100
+@@ -3359,7 +3359,7 @@
+ FREETYPE2LIBDIR = Freetype2LibDir
+ FREETYPE2INCDIR = Freetype2IncDir
+ #if Freetype2LibDirStandard
+-FREETYPE2LIB = -lfreetype
++FREETYPE2LIB = $(LD_STAGING) -lfreetype
+ #else
+ FREETYPE2LIB = -L$(FREETYPE2LIBDIR) LinkerRuntimeLibraryPathFlag($(FREETYPE2LIBDIR)) -lfreetype
+ #endif
diff --git a/recipes-qtopia/xqt/files/moc_call.patch b/recipes-qtopia/xqt/files/moc_call.patch
new file mode 100644
index 0000000..bde386e
--- /dev/null
+++ b/recipes-qtopia/xqt/files/moc_call.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xc/programs/Xserver/hw/xqt/Imakefile~moc_call
++++ xc/programs/Xserver/hw/xqt/Imakefile
+@@ -12,7 +12,7 @@
+
+ QTDIR = QtDir
+
+-MOC = QtDir/bin/moc
++MOC = MocBin
+
+ INCLUDES = -I. \
+ -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
diff --git a/recipes-qtopia/xqt/xqt_0.0.9.bb b/recipes-qtopia/xqt/xqt_0.0.9.bb
new file mode 100644
index 0000000..df3308e
--- /dev/null
+++ b/recipes-qtopia/xqt/xqt_0.0.9.bb
@@ -0,0 +1,93 @@
+HOMEPAGE = "http://xqt.sourceforge.jp"
+LICENSE = "GPL"
+SECTION = "x11"
+
+PR = "r1"
+
+SRCDATE = "20041111"
+DEPENDS = "freetype libxi libxmu flex-native virtual/libqte2 libqpe-opie"
+
+SRC_URI = "cvs://anonymous@cvs.sourceforge.jp/cvsroot/xqt;module=xc;method=pserver \
+ file://imake-staging.patch \
+ file://moc_call.patch "
+
+inherit palmtop
+
+S = "${WORKDIR}/xc"
+
+do_configure() {
+ #general config
+ echo "#define BuildServersOnly YES" > config/cf/host.def
+ echo "#define ProjectRoot /usr" >> config/cf/host.def
+
+ # do not build these XServers
+ echo "#define XnestServer NO" >> config/cf/host.def
+ echo "#define XdmxServer NO" >> config/cf/host.def
+
+ # build commands
+ echo "#define CcCmd ${CC}" >> config/cf/host.def
+ echo "#define CplusplusCmd ${CXX}" >> config/cf/host.def
+ echo "#define LdCmd ${LD}" >> config/cf/host.def
+
+ # Qt defines
+ echo "#define QtCmnDefs -fno-exceptions -fno-rtti" >> config/cf/host.def
+ echo "#define QtDir ${QTDIR}" >> config/cf/host.def
+ echo "#define QtLibs -lqpe -l${QT_LIBRARY} -lm -lpng -ljpeg -lts -lsupc++" >> config/cf/host.def
+ echo "#define MocBin ${STAGING_BINDIR_NATIVE}/moc" >> config/cf/host.def
+ echo "#define QtDefs -DQWS -DOPIE_NEW_MALLOC -DOPIE_NO_ERASE_RECT_HACKFIX QtCmnDefs" >> config/cf/host.def
+
+ # Build these XServers
+ echo "#define XqtXServer YES" >> config/cf/host.def
+ echo "#define XF86Server NO" >> config/cf/host.def
+ echo "#define TinyXServer YES" >> config/cf/host.def
+ echo "#define KDriveXServer YES" >> config/cf/host.def
+ echo "#define KdriveServerExtraDefines -DDDXOSFATALERROR -DDDXOSVERRORF" >> config/cf/host.def
+
+ # General Config
+ echo "#define SystemUsrIncDir ${STAGING_INCDIR}" >> config/cf/host.def
+ echo "#define IncRoot ${STAGING_INCDIR}" >> config/cf/host.def
+ echo "#define LdPostLib -L${STAGING_LIBDIR}" >> config/cf/host.def
+
+ echo "#undef BuildRandR " >> config/cf/host.def
+ echo "#define BuildRandR YES" >> config/cf/host.def
+ echo "#define BuildLBX YES" >> config/cf/host.def
+
+ # change standard defines
+ if [ ${TARGET_ARCH} = "arm" ]; then
+ echo "#define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE" >> config/cf/host.def
+ echo "#define Arm32Architecture" >> config/cf/host.def
+ fi
+ echo "" > config/cf/date.def
+}
+
+do_compile() {
+ unset CC
+ make -C config/imake -f Makefile.ini CC="${BUILD_CC}" BOOTSTRAPCFLAGS="${BUILD_CFLAGS}" clean imake
+ make CC="${BUILD_CC}" xmakefile
+ make Makefiles
+ make clean
+ #make depend
+ make includes CC="${BUILD_CC}"
+ make -C config/util CC="${BUILD_CC}"
+ for l in font xtrans Xdmcp Xau lbxutil; do make -C lib/$l CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}"; done
+ make -C programs/Xserver CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS=""
+}
+
+do_install() {
+ make -C programs/Xserver DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+ make -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/pics/Xqt
+
+ install -m 0644 programs/Xserver/hw/xqt/Xqt.png ${D}${palmtopdir}/pics/Xqt
+ install -m 0644 IPKG/Xqt.desktop ${D}${palmtopdir}/apps/Applications
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/xserver-xqt
+ install -m 0644 programs/Xserver/hw/xfree86/common/fourcc.h ${STAGING_INCDIR}/xserver-xqt
+}
+
+
+FILES_${PN} = " ${palmtopdir}/apps/Applications/Xqt.desktop ${palmtopdir}/pics/Xqt/Xqt.png ${bindir}/Xqt "
diff --git a/recipes-qtopia/xqt2/files/KeyMap.patch b/recipes-qtopia/xqt2/files/KeyMap.patch
new file mode 100644
index 0000000..2b00dca
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/KeyMap.patch
@@ -0,0 +1,19 @@
+--- xqt2/xfree86/xqt-driver/KeyMap.h 2004-10-16 08:06:07.000000000 +0200
++++ xqt2/xfree86/xqt-driver/KeyMap~.h 2006-05-10 19:41:16.000000000 +0200
+@@ -75,6 +75,7 @@
+ /* [ */ K(BracketLeft, XK_bracketleft, XK_braceleft) // Fn+T
+ /* { */ K(BraceLeft, XK_braceleft, NoSymbol) // ???
+ /* cent */ K(cent, XK_cent, NoSymbol) // Fn+U
++/* Enter */ K(Enter, XK_Return, NoSymbol)
+ /* Return */ K(Return, XK_Return, NoSymbol)
+ /* OK */ K(F33, XK_Return, NoSymbol)
+ /* Control */ K(Control, XK_Control_L, NoSymbol)
+@@ -162,7 +163,7 @@
+ /* F30 */ K(F30, XK_F30, NoSymbol)
+ /* F31 */ K(F31, XK_F31, NoSymbol)
+ /* F32 */ K(F32, XK_F32, NoSymbol)
+-/* F33 */ K(F33, XK_F33, NoSymbol)
++/* F33 */ /* K(F33, XK_F33, NoSymbol) */ // Key already defined as 'ok'
+ /* F34 */ K(F34, XK_F34, NoSymbol)
+ /* F35 */ K(F35, XK_F35, NoSymbol)
+
diff --git a/recipes-qtopia/xqt2/files/cross.patch b/recipes-qtopia/xqt2/files/cross.patch
new file mode 100644
index 0000000..c00068a
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/cross.patch
@@ -0,0 +1,62 @@
+diff -ur xc.org/config/cf/X11.tmpl xc/config/cf/X11.tmpl
+--- xc.org/config/cf/X11.tmpl 2003-02-26 06:57:52.000000000 +0900
++++ xc/config/cf/X11.tmpl 2004-09-16 19:19:46.000000000 +0900
+@@ -1582,9 +1582,9 @@
+ MKFONTDIR = $(CLIENTENVSETUP) $(PRELOADFONTSETUP) $(XBUILDBINDIR)/mkfontdir
+ XCURSORGEN = $(CLIENTENVSETUP) $(PRELOADSETUP) $(XBUILDBINDIR)/xcursorgen
+ # elif UseInstalledOnCrossCompile
+- MKFONTDIR = $(BINDIR)/mkfontdir
+- FONTC = $(BINDIR)/bdftopcf
+- XCURSORGEN = $(BINDIR)/xcursorgen
++ MKFONTDIR = /usr/X11R6/bin/mkfontdir
++ FONTC = /usr/X11R6/bin/bdftopcf
++ XCURSORGEN = /usr/X11R6/bin/xcursorgen
+ # endif
+ # if HasPerl
+ MKHTMLINDEX = RunPerlScript($(CONFIGSRC)/util/mkhtmlindex.pl,)
+diff -ur xc.org/config/cf/cross.def xc/config/cf/cross.def
+--- xc.org/config/cf/cross.def 2002-04-04 23:05:33.000000000 +0900
++++ xc/config/cf/cross.def 2004-09-16 19:19:46.000000000 +0900
+@@ -5,7 +5,7 @@
+ * compiler images. It will have to be edited to reflect these
+ * given your local configuration.
+ */
+-#if 0
++#if 1
+ #undef i386Architecture
+ #define Arm32Architecture
+
+@@ -14,18 +14,18 @@
+ #define ServerCDebugFlags -O2
+ #undef StandardDefines
+ #define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE \
+- -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
++ -D_BSD_SOURCE -D_GNU_SOURCE
+ #undef CcCmd
+-#define StdIncDir /skiff/local/arm-linux/include
++#define StdIncDir $(TOPDIR)/tmp/cross/arm-linux/include
+ #define PreIncDir
+ #undef PostIncDir
+-#define PostIncDir /skiff/local/lib/gcc-lib/arm-linux/2.95.2/include
+-#define CcCmd /skiff/local/bin/arm-linux-gcc
++#define PostIncDir $(TOPDIR)/tmp/cross/lib/gcc-lib/arm-linux/2.95.2/include
++#define CcCmd $(TOPDIR)/tmp/cross/bin/arm-linux-gcc
+ #undef CplusplusCmd
+ #define HasCplusplus YES
+-#define CplusplusCmd /skiff/local/bin/arm-linux-g++
++#define CplusplusCmd $(TOPDIR)/tmp/cross/bin/arm-linux-g++
+ #define DoRanlibCmd YES
+-#define RanlibCmd /skiff/local/bin/arm-linux-ranlib
++#define RanlibCmd $(TOPDIR)/tmp/cross/bin/arm-linux-ranlib
+ #undef ExtraLoadFlags
+ #define ExtraLoadFlags
+ #define FbNoPixelAddrCode
+@@ -33,7 +33,7 @@
+ #define TermcapLibrary -ltermcap
+
+ #undef LdPostLib
+-#define LdPostLib -L/skiff/local/arm-linux/lib
++#define LdPostLib -L$(TOPDIR)/tmp/cross/arm-linux/lib
+
+ #undef ExtensionOSDefines
+ #define ExtensionOSDefines
diff --git a/recipes-qtopia/xqt2/files/fephack.patch b/recipes-qtopia/xqt2/files/fephack.patch
new file mode 100644
index 0000000..c09a7ed
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/fephack.patch
@@ -0,0 +1,32 @@
+diff -ur xc.org/lib/X11/KeyBind.c xc/lib/X11/KeyBind.c
+--- xc.org/lib/X11/KeyBind.c 2001-12-15 04:54:02.000000000 +0900
++++ xc/lib/X11/KeyBind.c 2004-09-16 19:19:46.000000000 +0900
+@@ -545,6 +545,13 @@
+ unsigned int modifiers;
+ KeySym symbol;
+
++ /* X/Qt hack start */
++ if (event->keycode & 0x100) {
++ *buffer = event->keycode & 0xff;
++ return 1;
++ }
++ /* X/Qt hack end */
++
+ if (! _XTranslateKey(event->display, event->keycode, event->state,
+ &modifiers, &symbol))
+ return 0;
+diff -ur xc.org/lib/X11/XlibInt.c xc/lib/X11/XlibInt.c
+--- xc.org/lib/X11/XlibInt.c 2003-02-18 14:15:27.000000000 +0900
++++ xc/lib/X11/XlibInt.c 2004-09-16 19:19:46.000000000 +0900
+@@ -2358,6 +2358,11 @@
+ ev->state = event->u.keyButtonPointer.state;
+ ev->same_screen = event->u.keyButtonPointer.sameScreen;
+ ev->keycode = event->u.u.detail;
++ /* X/Qt hack start */
++ if (event->u.keyButtonPointer.pad1 == 0xff) {
++ ev->keycode |= 0x100;
++ }
++ /* X/Qt hack end */
+ }
+ break;
+ case ButtonPress:
diff --git a/recipes-qtopia/xqt2/files/fix_qtscreen_HACK.patch b/recipes-qtopia/xqt2/files/fix_qtscreen_HACK.patch
new file mode 100644
index 0000000..be7a26e
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/fix_qtscreen_HACK.patch
@@ -0,0 +1,55 @@
+diff -Nur xqt2.vanilla/xfree86/xqt-driver/qtscreen.cc xqt2/xfree86/xqt-driver/qtscreen.cc
+--- xqt2.vanilla/xfree86/xqt-driver/qtscreen.cc 2008-09-25 14:18:44.000000000 +0200
++++ xqt2/xfree86/xqt-driver/qtscreen.cc 2008-09-25 14:28:30.000000000 +0200
+@@ -109,6 +109,7 @@
+ desktopSize = newSize;
+ fullScrSize = desktopSize;
+ normalScrSize = fullScrSize;
++ /* FIXME: get taskbar size from opie
+ if (normalScrSize.height() >= 400) {
+ normalScrSize.setHeight( normalScrSize.height() - 38);
+ } else {
+@@ -117,7 +118,7 @@
+
+ if (!g_fFullScreen) {
+ fullScrSize = normalScrSize;
+- }
++ }*/
+
+ #ifdef DEBUG_SCR
+ normalScrSize.setHeight(640);
+@@ -128,6 +129,7 @@
+ setDisplaySize();
+
+ #ifdef QWS
++ /* FIXME: fix this more general
+ // zaurus hack
+ if (desktopSize.width() > desktopSize.height()) {
+ shadow.setScrRandr(270);
+@@ -136,6 +138,10 @@
+ shadow.setScrRandr(0);
+ qtRandRRotate(0);
+ }
++ */
++ // until that
++ shadow.setScrRandr(0);
++ qtRandRRotate(0);
+ #endif
+ }
+
+@@ -148,6 +154,7 @@
+ *h = fullScrSize.height();
+
+ #ifdef QWS
++ /* FIXME: dix this more general
+ // zaurus hack
+ if (*w > *h) {
+ // rotate!
+@@ -155,6 +162,7 @@
+ *w = *h;
+ *h = sw;
+ }
++ */
+
+ *depth = 16; // 16bpp ¸ÇÄê
+ *bits = NULL;
diff --git a/recipes-qtopia/xqt2/files/fix_seqfault_qtscreen.patch b/recipes-qtopia/xqt2/files/fix_seqfault_qtscreen.patch
new file mode 100644
index 0000000..72c1e6e
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/fix_seqfault_qtscreen.patch
@@ -0,0 +1,13 @@
+--- xqt2.vanilla/xfree86/xqt-driver/qtscreen.cc 2009-02-08 15:47:33.000000000 +0100
++++ xqt2/xfree86/xqt-driver/qtscreen.cc 2009-02-08 15:52:09.000000000 +0100
+@@ -406,7 +406,9 @@
+ //
+ void qtScreen::keyPressEvent(QKeyEvent *ev)
+ {
+- static QTextCodec *codec = QTextCodec::codecForName("eucJP");
++ //static QTextCodec *codec = QTextCodec::codecForName("eucJP");
++ //Better to choose the locale - even better provide a command line switch!
++ static QTextCodec *codec = QTextCodec::codecForLocale();
+
+ #ifdef QWS
+ QCString euc;
diff --git a/recipes-qtopia/xqt2/files/imake-staging.patch b/recipes-qtopia/xqt2/files/imake-staging.patch
new file mode 100644
index 0000000..bf2e350
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/imake-staging.patch
@@ -0,0 +1,38 @@
+--- xc/config/cf/Imake.tmpl.orig 2004-07-28 04:24:29.000000000 +0100
++++ xc/config/cf/Imake.tmpl 2004-09-14 21:03:06.000000000 +0100
+@@ -2038,11 +2038,11 @@
+ */
+ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+- CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+ LDPRELIB = LdPreLib $(INSTALLED_LIBS)
+ LDPOSTLIB = LdPostLib
+- LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
++ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) $(LD_STAGING)
+ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+
+ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+--- xc/config/cf/Library.tmpl~ 2004-05-24 20:06:57.000000000 +0100
++++ xc/config/cf/Library.tmpl 2004-09-14 21:10:29.000000000 +0100
+@@ -114,7 +114,7 @@
+ STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
+ CDEBUGFLAGS = LibraryCDebugFlags
+ CLIBDEBUGFLAGS = LibraryDebugOpt
+- CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ # if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags)
+ PICFLAGS = LargePositionIndependentCFlags
+ # endif
+--- xc/config/cf/X11.tmpl~ 2004-09-03 17:18:18.000000000 +0100
++++ xc/config/cf/X11.tmpl 2004-09-14 21:30:30.000000000 +0100
+@@ -3359,7 +3359,7 @@
+ FREETYPE2LIBDIR = Freetype2LibDir
+ FREETYPE2INCDIR = Freetype2IncDir
+ #if Freetype2LibDirStandard
+-FREETYPE2LIB = -lfreetype
++FREETYPE2LIB = $(LD_STAGING) -lfreetype
+ #else
+ FREETYPE2LIB = -L$(FREETYPE2LIBDIR) LinkerRuntimeLibraryPathFlag($(FREETYPE2LIBDIR)) -lfreetype
+ #endif
diff --git a/recipes-qtopia/xqt2/files/moc_call.patch b/recipes-qtopia/xqt2/files/moc_call.patch
new file mode 100644
index 0000000..b86df1d
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/moc_call.patch
@@ -0,0 +1,11 @@
+--- xqt2/xfree86/xqt-driver/Imakefile 2006-05-09 11:59:07.000000000 +0200
++++ xqt2/xfree86/xqt-driver/Imakefile 2004-09-16 12:40:30.000000000 +0200
+@@ -12,7 +12,7 @@
+
+ QTDIR = QtDir
+
+-MOC = QtDir/bin/moc
++MOC = MocBin
+
+ INCLUDES = -I. \
+ -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
diff --git a/recipes-qtopia/xqt2/files/xchar2b.patch b/recipes-qtopia/xqt2/files/xchar2b.patch
new file mode 100644
index 0000000..5561bc4
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/xchar2b.patch
@@ -0,0 +1,25 @@
+* XChar2b patch
+
+This is *EXTREMELY* important patch to handle strings contains 2-byte character
+correctly on ARM architecture hardware.
+
+On ARM architecture, size of the XChar2b structure will be 4, because gcc
+adds 2 byte padding at the last of the structure. This will breaks the
+XChar2b stream!
+
+This patch makes the size of the structure to 2 byte, with
+__attribute__ ((packed)) declaration.
+
+
+diff -ur xc.org/lib/X11/Xlib.h xc/lib/X11/Xlib.h
+--- xc.org/lib/X11/Xlib.h 2002-06-01 03:45:42.000000000 +0900
++++ xc/lib/X11/Xlib.h 2004-09-16 19:19:46.000000000 +0900
+@@ -1059,7 +1059,7 @@
+ typedef struct { /* normal 16 bit characters are two bytes */
+ unsigned char byte1;
+ unsigned char byte2;
+-} XChar2b;
++} __attribute__ ((packed)) XChar2b;
+
+ typedef struct {
+ XChar2b *chars; /* two byte characters */
diff --git a/recipes-qtopia/xqt2/files/xqt-make.patch b/recipes-qtopia/xqt2/files/xqt-make.patch
new file mode 100644
index 0000000..f031b26
--- /dev/null
+++ b/recipes-qtopia/xqt2/files/xqt-make.patch
@@ -0,0 +1,43 @@
+diff -ur xc.org/programs/Xserver/Imakefile xc/programs/Xserver/Imakefile
+--- xc.org/programs/Xserver/Imakefile 2003-02-18 02:06:40.000000000 +0900
++++ xc/programs/Xserver/Imakefile 2004-09-16 19:37:14.000000000 +0900
+@@ -1350,13 +1350,38 @@
+
+ #endif /* XDarwinServer */
+
++#if defined(XqtXServer)
++XCOMM
++XCOMM Xqt Server Section
++XCOMM
++
++QTDIR = QtDir
++
++KDDIRS = StdKdDirs
++
++XQTDDXDIR = hw/xqt
++SHADOWDIR = miext/shadow
++XQTDIRS = $(STDDIRS) $(KDDIRS) $(XQTDDXDIR) $(SHADOWDIR) $(LAYERDIR) $(DEPDIRS)
++
++XQTLIB = $(XQTDDXDIR)/LibraryTargetName(xqt)
++XQTOBJS =
++
++XQTLIBS = PreFbLibs $(XQTLIB) KdLibs $(SHADOW) $(LAYER) FbPostFbLibs
++XQTSYSLIBS = StdKdSysLibs -L$(QTDIR)/lib QtLibs
++
++/* C++ linker must be used to build Xqt server */
++CCLINK = $(CXXLINK)
++
++ServerTarget(Xqt,$(XQTDIRS),$(XQTOBJS),$(XQTLIBS),$(XQTSYSLIBS))
++#endif /* XqtServer */
++
+
+ CFBDIRS = $(CFB8DIR) $(CFB16DIR) $(CFB24DIR) $(CFB32DIR)
+ MIEXTDIRS = $(SHADOWDIR) $(LAYERDIR)
+ IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR)
+ DDXDIRS = $(DECWSDDXDIR) $(SUNDDXDIR) $(LYNXDDXDIR) \
+ $(HPDDXDIR) $(XFREE86DDXDIR) $(XWINDDXDIR) $(DARWINDDXDIR) \
+- $(XVFBDDXDIR) $(XNESTDDXDIR)
++ $(XVFBDDXDIR) $(XNESTDDXDIR) $(XQTDDXDIR)
+ SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFBDIRS) $(IPLANDIRS) $(ILBMDIR) $(AFBDIR) \
+ $(LMFCFBDIR) $(DDXDIRS) $(FBDIR) $(KDRIVEDIRS) $(MIEXTDIRS) \
+ $(XWINPARSERDIR)
diff --git a/recipes-qtopia/xqt2/xqt2_20060509.bb b/recipes-qtopia/xqt2/xqt2_20060509.bb
new file mode 100644
index 0000000..3435b64
--- /dev/null
+++ b/recipes-qtopia/xqt2/xqt2_20060509.bb
@@ -0,0 +1,123 @@
+DESCRIPTION = "Xqt2 is an X-Server than runs within the Opie environment"
+HOMEPAGE = "http://xqt.sourceforge.jp"
+DEPENDS = "freetype libxi libxmu flex-native virtual/libqte2 libqpe-opie"
+LICENSE = "GPL"
+SECTION = "opie/applications"
+APPTYPE = "binary"
+APPNAME = "Xqt"
+PR = "r5"
+
+inherit palmtop
+
+SRC_URI = "cvs://anonymous@cvs.sourceforge.jp/cvsroot/xqt;module=xqt2;method=pserver;date=${PV} \
+ ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-1.tgz;name=archive1 \
+ ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-2.tgz;name=archive2 \
+ ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-3.tgz;name=archive3 \
+ ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-4.tgz;name=archive4 \
+ ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-5.tgz;name=archive5 \
+ file://imake-staging.patch \
+ file://cross.patch \
+ file://fephack.patch \
+ file://xchar2b.patch \
+ file://xqt-make.patch \
+ file://KeyMap.patch;patchdir=../xqt2 \
+ file://moc_call.patch;patchdir=../xqt2 \
+ file://fix_qtscreen_HACK.patch;patchdir=../xqt2 \
+ file://fix_seqfault_qtscreen.patch;patchdir=../xqt2"
+S = "${WORKDIR}/xc"
+
+QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte",d)}'
+QT_LIBRARY_append_c7x0 = " -laticore"
+
+do_configure() {
+
+ #general config
+ echo "#define BuildServersOnly YES" > config/cf/host.def
+ echo "#define ProjectRoot /usr" >> config/cf/host.def
+
+ # do not build these XServers
+ echo "#define XnestServer NO" >> config/cf/host.def
+ echo "#define XdmxServer NO" >> config/cf/host.def
+
+ # build commands
+ echo "#define CcCmd ${CC}" >> config/cf/host.def
+ echo "#define CplusplusCmd ${CXX}" >> config/cf/host.def
+ echo "#define LdCmd ${LD}" >> config/cf/host.def
+
+ # Qt defines
+ echo "#define QtCmnDefs -fno-exceptions -fno-rtti" >> config/cf/host.def
+ echo "#define QtDir ${QTDIR}" >> config/cf/host.def
+ echo "#define QtLibs -lqpe -l${QT_LIBRARY} -lm -lpng -ljpeg -lts -lsupc++" >> config/cf/host.def
+ echo "#define MocBin ${STAGING_BINDIR_NATIVE}/moc" >> config/cf/host.def
+ echo "#define QtDefs -DQWS -DOPIE_NEW_MALLOC -DOPIE_NO_ERASE_RECT_HACKFIX QtCmnDefs" >> config/cf/host.def
+
+ # Build these XServers
+ echo "#define XqtXServer YES" >> config/cf/host.def
+ echo "#define XF86Server NO" >> config/cf/host.def
+ echo "#define TinyXServer YES" >> config/cf/host.def
+ echo "#define KDriveXServer YES" >> config/cf/host.def
+ echo "#define KdriveServerExtraDefines -DDDXOSFATALERROR -DDDXOSVERRORF" >> config/cf/host.def
+
+ # General Config
+ echo "#define SystemUsrIncDir ${STAGING_INCDIR}" >> config/cf/host.def
+ echo "#define IncRoot ${STAGING_INCDIR}" >> config/cf/host.def
+ echo "#define LdPostLib -L${STAGING_LIBDIR}" >> config/cf/host.def
+
+ echo "#undef BuildRandR " >> config/cf/host.def
+ echo "#define BuildRandR YES" >> config/cf/host.def
+ echo "#define BuildLBX YES" >> config/cf/host.def
+
+ # change standard defines
+ if [ ${TARGET_ARCH} = "arm" ]; then
+ echo "#define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE" >> config/cf/host.def
+ echo "#define Arm32Architecture" >> config/cf/host.def
+ fi
+ echo "" > config/cf/date.def
+}
+
+do_compile() {
+ export TOPDIR=${TOPDIR}
+ mkdir -p programs/Xserver/hw/xqt
+ #cp -R ../xqt-driver/* programs/Xserver/hw/xqt
+ (cd programs/Xserver/hw/xqt && ln -s ../../../../../xqt2/xfree86/xqt-driver/* .)
+ unset CC
+ make -C config/imake -f Makefile.ini CC="${BUILD_CC}" BOOTSTRAPCFLAGS="${BUILD_CFLAGS}" clean imake
+ make CC="${BUILD_CC}" xmakefile
+ make Makefiles
+ make clean
+ #make depend
+ make includes CC="${BUILD_CC}"
+ make -C config/util CC="${BUILD_CC}"
+ for l in font xtrans Xdmcp Xau lbxutil; do make -C lib/$l CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}"; done
+ make -C programs/Xserver CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS=""
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/xserver-xqt
+ install -m 0644 programs/Xserver/hw/xfree86/common/fourcc.h ${STAGING_INCDIR}/xserver-xqt
+}
+
+do_install() {
+ oe_runmake -C programs/Xserver DESTDIR="${D}" CC="${CC}" LD="${LD}" \
+ CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+ oe_runmake -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" \
+ CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+
+ install -d ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 ${WORKDIR}/xqt2/xfree86/files/Xqt.desktop ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/pics
+ install -m 0644 programs/Xserver/hw/xqt/Xqt.png ${D}${palmtopdir}/pics
+}
+
+PACKAGE_ARCH_c7x0 = "${MACHINE_ARCH}"
+
+SRC_URI[archive1.md5sum] = "4f241a4f867363f40efa2b00dca292af"
+SRC_URI[archive1.sha256sum] = "5276b045e154948fce7abba7d686406c65862d90b43b50f2546b33e38378f0d7"
+SRC_URI[archive2.md5sum] = "844c2ee908d21dbf8911fd13115bf8b4"
+SRC_URI[archive2.sha256sum] = "0afbf41d0f4bcaceb1381fc1882b80f62548845b85c83c3eb0f3a9ac7f7f96ef"
+SRC_URI[archive3.md5sum] = "b82a0443e1b7bf860e4343e6b6766cb6"
+SRC_URI[archive3.sha256sum] = "19a830e3657851ad575ca895eb59932f1d90cd03735dec68f900dbc1bb6c3b7f"
+SRC_URI[archive4.md5sum] = "567903747018f2534965ab6cb3976b38"
+SRC_URI[archive4.sha256sum] = "f62081c6f8a70a35fb0b5b210329f6bba7f5e506e9b809e23ceba21a2c35278e"
+SRC_URI[archive5.md5sum] = "4dbdbe9a85c8f7f98dd0ee015a3c7b4f"
+SRC_URI[archive5.sha256sum] = "3b732ed179dd34c17d1ba17867b60a36f20d82a3f0eca7b084fcb5396aa2b30c"
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config.bb b/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config.bb
new file mode 100644
index 0000000..37843a2
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "blackbox configuration for xqtlauncher which integrates X/Qt2 nicely into opie."
+HOMEPAGE = "http://angstrom-distribution.org/"
+LICENSE = "GPL"
+PR = "r1"
+
+RDEPENDS_${PN} = "blackbox xqtlauncher"
+
+SRC_URI = "file://blackboxrc \
+ file://defaultwm"
+
+do_install() {
+ cd ${WORKDIR}
+ install -d ${D}${sysconfdir}
+ install -d ${D}${sysconfdir}/X11
+ install -m 0666 blackboxrc ${D}${sysconfdir}
+ install -m 0666 defaultwm ${D}${sysconfdir}/X11/
+}
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/blackboxrc b/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/blackboxrc
new file mode 100644
index 0000000..6c86a59
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/blackboxrc
@@ -0,0 +1 @@
+session.screen0.toolbar.placement: TopCenter
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/defaultwm b/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/defaultwm
new file mode 100644
index 0000000..a96cb8b
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher-blackbox-config/defaultwm
@@ -0,0 +1 @@
+blackbox -rc /etc/blackboxrc
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher.bb b/recipes-qtopia/xqtlauncher/xqtlauncher.bb
new file mode 100644
index 0000000..b4203d4
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "xqtlauncher integrates X/Qt2 nicely into opie. You can launch applications with it from opies menue"
+HOMEPAGE = "http://angstrom-distribution.org/"
+LICENSE = "GPL"
+PR = "r3"
+
+RDEPENDS_${PN} = "xqt2 xorg-minimal-fonts"
+
+SRC_URI = "file://dot.directory \
+ file://startxqt \
+ file://startxqt-wrapper \
+ file://xqtlauncher-convert.sh \
+ file://xqtlauncher-cleanup.sh \
+ file://convert.desktop \
+ file://cleanup.desktop \
+ file://xqtlauncher "
+
+do_install() {
+ cd ${WORKDIR}
+ install -d ${D}${bindir}
+ install -m 0755 startxqt startxqt-wrapper xqtlauncher ${D}${bindir}
+ install -d ${D}${palmtopdir}/apps/XQt2/
+ install -m 0644 dot.directory ${D}${palmtopdir}/apps/XQt2/.directory
+ install -m 0644 convert.desktop cleanup.desktop ${D}${palmtopdir}/apps/XQt2/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 startxqt startxqt-wrapper xqtlauncher xqtlauncher-cleanup.sh xqtlauncher-convert.sh ${D}${sysconfdir}/init.d/
+ install -d ${D}${sysconfdir}/rc5.d/
+ ln -sf ../init.d/xqtlauncher-convert.sh ${D}${sysconfdir}/rc5.d/S98xqtlauncher-convert
+ ln -sf ../init.d/xqtlauncher-cleanup.sh ${D}${sysconfdir}/rc5.d/S98xqtlauncher-cleanup
+}
+
+FILES_${PN} += "${palmtopdir}/apps/XQt2 \
+ ${palmtopdir}/apps/XQt2/convert.desktop \
+ ${palmtopdir}/apps/XQt2/cleanup.desktop \
+ ${palmtopdir}/apps/XQt2/.directory "
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/cleanup.desktop b/recipes-qtopia/xqtlauncher/xqtlauncher/cleanup.desktop
new file mode 100644
index 0000000..d043617
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/cleanup.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Exec=/etc/init.d/xqtlauncher-cleanup.sh
+Icon=Xqt.png
+Type=Application
+Name=Cleanup Icons
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/convert.desktop b/recipes-qtopia/xqtlauncher/xqtlauncher/convert.desktop
new file mode 100644
index 0000000..ca70c43
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/convert.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Exec=/etc/init.d/xqtlauncher-convert.sh
+Icon=Xqt.png
+Type=Application
+Name=Create Icons
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/dot.directory b/recipes-qtopia/xqtlauncher/xqtlauncher/dot.directory
new file mode 100644
index 0000000..3c63f7f
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/dot.directory
@@ -0,0 +1,3 @@
+[Desktop Entry]
+Icon=Xqt.png
+Name=X/Qt2
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/startxqt b/recipes-qtopia/xqtlauncher/xqtlauncher/startxqt
new file mode 100644
index 0000000..b863c2e
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/startxqt
@@ -0,0 +1,15 @@
+#check if we are already running
+if test -f /var/run/Xqt ;then
+ qcop QPE/TaskBar "message(QString)" "Xqt is already running!"
+else
+ qcop QPE/TaskBar "message(QString)" "start Xqt server..."
+ #create run file
+ touch /var/run/Xqt
+ #setup environment - FIXME: check QTDIR first
+ export QTDIR=/usr/lib/opie
+ export DISPLAY=:0.0
+ #start the server
+ Xqt -fp /usr/lib/X11/fonts/misc
+ #remove run file
+ rm /var/run/Xqt
+fi
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/startxqt-wrapper b/recipes-qtopia/xqtlauncher/xqtlauncher/startxqt-wrapper
new file mode 100644
index 0000000..c0ac2ed
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/startxqt-wrapper
@@ -0,0 +1,5 @@
+startxqt &
+sleep 3
+#read and start defaultwm from /etc/X11/defaultwm
+$(cat /etc/X11/defaultwm) &
+sleep 2
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher b/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher
new file mode 100644
index 0000000..4f2c9f9
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher
@@ -0,0 +1,45 @@
+#set DISPLAY
+export DISPLAY=:0.0
+#check if the application is installed
+if which $1 ; then
+ echo start $1
+ #is Xqt running?
+ if test ! -f /var/run/Xqt ;then
+ #start Xqt
+ startxqt-wrapper
+ fi
+ #do we have atomate access? FIXME: make a function out of this and loop it
+ if test -f /var/lock/xqtlauncher; then
+ qcop QPE/TaskBar "message(QString)" "Was not able to lock access. Try again or remove /var/lock/xqtlauncher"
+ else
+ #lock access
+ touch /var/lock/xqtlauncher
+ if test -f /var/run/xqtlauncher; then
+ #atomate write nuber of applications running in xqt +1
+ echo $(($(cat /var/run/xqtlauncher ) + 1)) > /var/run/xqtlauncher
+ else
+ echo 1 > /var/run/xqtlauncher
+ fi
+ #remove lock
+ rm /var/lock/xqtlauncher
+ #start application
+ $1
+ #do we have atomate access? FIXME: make a function out of this and loop it
+ if test -f /var/lock/xqtlauncher; then
+ qcop QPE/TaskBar "message(QString)" "Was not able to lock access. Try again or remove /var/lock/xqtlauncher"
+ else
+ #lock access
+ touch /var/lock/xqtlauncher
+ COUNTXQT=$(($(cat /var/run/xqtlauncher ) -1))
+ echo $COUNTXQT > /var/run/xqtlauncher
+ if [ $COUNTXQT -le 0 ] ; then
+ #kill Xqt if there is no application running.
+ killall Xqt
+ fi
+ #remove lock
+ rm /var/lock/xqtlauncher
+ fi
+ fi
+else
+ qcop QPE/TaskBar "message(QString)" "Application not found"
+fi
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-cleanup.sh b/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-cleanup.sh
new file mode 100755
index 0000000..3ccf333
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-cleanup.sh
@@ -0,0 +1,21 @@
+#!/bin/ash
+#This program cleans up the mess which convert.sh leaves if you remove a package
+for i in `find /usr/lib/opie/apps/XQt2 -name *.desktop`; do
+ export name=$(echo $i | awk 'BEGIN {FS="."} {gsub("/",".")} {print $(NF-1)}')
+ #don't delete convert and cleanup icons
+ if [ $i != "/usr/lib/opie/apps/XQt2/convert.desktop" ] && [ $i != "/usr/lib/opie/apps/XQt2/cleanup.desktop" ] ; then
+ newfile=$(find /usr/share/applications/ -name $name.desktop)
+ else
+ newfile="donotdelete"
+ fi
+ if [ -z $newfile ] ; then
+ echo $name
+ echo $i
+ icon=$(cat $i | awk 'BEGIN {FS="="} {if ($1 == "Icon") {print $2} }')
+ rm -f /usr/lib/opie/bin/run$name
+ find /usr/lib/opie/pics/ -name $icon.* -exec rm -f {} \;
+ rm -f $i
+ fi
+done
+#update the icons
+/usr/bin/icon-reload.sh
diff --git a/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-convert.sh b/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-convert.sh
new file mode 100755
index 0000000..59efad3
--- /dev/null
+++ b/recipes-qtopia/xqtlauncher/xqtlauncher/xqtlauncher-convert.sh
@@ -0,0 +1,23 @@
+#!/bin/ash
+#This program converts /usr/share/applications/*.desktop in /usr/lib/opie/apps/XQt2/*.desktop files.
+for i in `find /usr/share/applications -name *.desktop`; do
+ export name=$(echo $i | awk 'BEGIN {FS="."} {gsub("/",".")} {print $(NF-1)}')
+ newfile=/usr/lib/opie/apps/XQt2/$name.desktop
+ if [ ! -f $newfile ] ; then
+ #cat $i | awk 'BEGIN {FS="="} {if ($1 == "Exec") {print "Exec=run"ENVIRON["name"]" " $2} else if ($1 == "Icon") {print "Icon=/usr/share/pixmaps/"$2} else {print $0} }' > $newfile
+ cat $i | awk 'BEGIN {FS="="} {if ($1 == "Exec") {print "Exec=/usr/lib/opie/bin/run"ENVIRON["name"]" " $2} else {print $0} }' > $newfile
+ icon=$(cat $i | awk 'BEGIN {FS="="} {if ($1 == "Icon") {print $2} }')
+ ln -sf /usr/bin/xqtlauncher /usr/lib/opie/bin/run$name
+ #We need to make symlinks for the pics because opie can not handle pics with paths :(
+ #Check if it has a leading /!
+ if expr $icon : />/dev/null ; then
+ echo $icon
+ ln -sf $icon /usr/lib/opie/pics/$(echo $icon | awk 'BEGIN {FS="/"} {print $NF}')
+ else
+ echo $icon
+ ln -sf $(find /usr/share/pixmaps -name $icon) /usr/lib/opie/pics/$(echo $icon | awk 'BEGIN {FS="/"} {print $NF}')
+ fi
+ fi
+done
+#update the icons
+/usr/bin/icon-reload.sh
diff --git a/recipes-qtopia/zauralign/zauralign_1.0.2.bb b/recipes-qtopia/zauralign/zauralign_1.0.2.bb
new file mode 100644
index 0000000..c946779
--- /dev/null
+++ b/recipes-qtopia/zauralign/zauralign_1.0.2.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Zauralign - a game for one player. The player has to align pieces to remove them from the \
+board fighting against new pieces which appear after each move."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+SRC_URI = "http://www.Vanille.de/mirror/zauralign-${PV}.tar.gz"
+S = "${WORKDIR}/zauralign"
+
+inherit palmtop
+export OE_QMAKE_LINK="${CXX}"
+
+do_install() {
+ install -d ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics/zauralign \
+ ${D}${palmtopdir}/bin
+ install -m 0755 zauralign ${D}${palmtopdir}/bin/
+ install -m 0644 zauralign.png ${D}${palmtopdir}/pics/
+ install -m 0644 zauralign.desktop ${D}${palmtopdir}/apps/Games/
+ cp -pPR pics/* ${D}${palmtopdir}/pics/zauralign/
+}
+
+SRC_URI[md5sum] = "c159a55ecc3ba800445d4bb73d0925e6"
+SRC_URI[sha256sum] = "f849da3eec59b22599a806d59e81729ba9234fc2318335804d45d9dce23fb532"
diff --git a/recipes-qtopia/zbedic/libbedic_1.1.bb b/recipes-qtopia/zbedic/libbedic_1.1.bb
new file mode 100644
index 0000000..8af2162
--- /dev/null
+++ b/recipes-qtopia/zbedic/libbedic_1.1.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Library to handle bedic dictionary"
+HOMEPAGE = "http://bedic.sourceforge.net/"
+AUTHOR = "Rafal Mantiuk <rafm@users.sourceforge.net>"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "sqlite3"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}/zbedic/misc"
+FILESPATHPKG .= ":zbedic"
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/bedic/libbedic_${PV}-0.tgz;subdir=${BPN}-${PV} \
+ file://include-cstdio.patch \
+ "
+
+inherit palmtop
+# need to override this, because bedic contains exception handling
+# pass VERSION as a string \\"${PV}.0\\"
+export OE_QMAKE_CXXFLAGS="-fexceptions -fno-rtti ${CXXFLAGS} -DVERSION=\\"${PV}.0\\""
+
+do_configure() {
+ qmake -project && qmake -makefile -t lib -spec ${QMAKESPEC} CONFIG=console CONFIG+=staticlib CONFIG+=sharedlib -after \
+ TARGET=bedic \
+ SOURCES-=src/xerox.cpp OBJECTS-=xerox.o \
+ SOURCES-=src/mkbedic.cpp OBJECTS-=mkbedic.o \
+ SOURCES-=src/test_dynamic_dictionary.cpp \
+}
+
+do_install() {
+ install -d ${D}${includedir}
+ install -m 0644 ${S}/include/*.h ${D}${includedir}
+ install -d ${D}${libdir}
+ oe_libinstall -a libbedic ${D}${libdir}
+}
+
+FILES_${PN}-dev = "${includedir} ${libdir}"
+
+SRC_URI[md5sum] = "211ea5a881b5691ec7a1aedbe7fc406c"
+SRC_URI[sha256sum] = "0cb299278f17d4580d9b1b56df8b7c356afb016f2a68ce7d13a8169f74e2a16b"
diff --git a/recipes-qtopia/zbedic/zbedic/include-cstdio.patch b/recipes-qtopia/zbedic/zbedic/include-cstdio.patch
new file mode 100644
index 0000000..f4e1771
--- /dev/null
+++ b/recipes-qtopia/zbedic/zbedic/include-cstdio.patch
@@ -0,0 +1,12 @@
+Index: zbedic/src/shcm.cpp
+===================================================================
+--- zbedic/src/shcm.cpp
++++ zbedic/src/shcm.cpp
+@@ -20,6 +20,7 @@
+
+ #include <stdio.h>
+ #include <vector>
++#include <cstdlib>
+
+ #include "shcm.h"
+ #include "shc.h"
diff --git a/recipes-qtopia/zbedic/zbedic/opie-icons.patch b/recipes-qtopia/zbedic/zbedic/opie-icons.patch
new file mode 100644
index 0000000..cd320b3
--- /dev/null
+++ b/recipes-qtopia/zbedic/zbedic/opie-icons.patch
@@ -0,0 +1,14 @@
+--- zbedic/src/zbedic.cpp.old 2008-09-20 14:36:24.000000000 -0500
++++ zbedic/src/zbedic.cpp 2008-09-20 14:37:21.000000000 -0500
+@@ -142,9 +142,9 @@ ZBEDic::ZBEDic(QWidget *parent, const ch
+ action[TB_SwitchDictionaries] = createAction( tr( "Switch dictionaries" ), "zbedic/switch_dictionary",
+ SLOT(switchToPreviousDict()), CTRL+Key_S );
+ action[TB_ShowHistory] = createAction( tr( "Show history" ), "zbedic/history", SLOT(showHistoryPopup()), CTRL+Key_H );
+- action[TB_Back] = createAction( tr( "Go back" ), "zbedic/back",
++ action[TB_Back] = createAction( tr( "Go back" ), "back",
+ SLOT(navigationPrevious()), Key_End );
+- action[TB_Forward] = createAction( tr( "Go forward" ), "zbedic/forward",
++ action[TB_Forward] = createAction( tr( "Go forward" ), "forward",
+ SLOT(navigationNext()), Key_Home );
+ action[TB_LookupSelection] = createAction( tr( "Lookup selection" ), "zbedic/lookup_selection",
+ SLOT(lookupSelection()), CTRL+Key_L );
diff --git a/recipes-qtopia/zbedic/zbedic/qtopia17.patch b/recipes-qtopia/zbedic/zbedic/qtopia17.patch
new file mode 100644
index 0000000..749fde2
--- /dev/null
+++ b/recipes-qtopia/zbedic/zbedic/qtopia17.patch
@@ -0,0 +1,21 @@
+--- zbedic/src/main.cpp.old 2008-09-20 14:40:57.000000000 -0500
++++ zbedic/src/main.cpp 2008-09-20 14:51:11.000000000 -0500
+@@ -48,8 +48,16 @@ int main( int argc, char **argv )
+
+ #include <qpe/qpeapplication.h>
+
+-QTOPIA_ADD_APPLICATION("zbedic", ZBEDic)
+-QTOPIA_MAIN
++int main(int argc, char** argv)
++{
++ QPEApplication app( argc, argv );
++
++ ZBEDic mainWindow( NULL, NULL );
++ app.setMainWidget( &mainWindow );
++
++ mainWindow.show();
++ return app.exec();
++}
+
+ #endif
+
diff --git a/recipes-qtopia/zbedic/zbedic_1.2.bb b/recipes-qtopia/zbedic/zbedic_1.2.bb
new file mode 100644
index 0000000..216fc00
--- /dev/null
+++ b/recipes-qtopia/zbedic/zbedic_1.2.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "A dictionary application for Qt/E based Palmtop Environments"
+HOMEPAGE = "http://bedic.sourceforge.net/"
+AUTHOR = "Rafal Mantiuk <rafm@users.sourceforge.net>"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libbedic"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}/misc"
+PR = "r3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/bedic/zbedic_${PV}-2.tgz;subdir=${BPN}-${PV} \
+ file://opie-icons.patch \
+ file://qtopia17.patch"
+
+inherit opie
+export OE_QMAKE_LINK="${CXX}"
+export OE_QMAKE_CXXFLAGS=" -DVERSION=\\"${PV}.2\\" -DPREFIX_PATH=\\"/usr\\""
+
+EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/libbedic LIBS+=-lbedic LIBS+=-lsqlite3 TARGET=zbedic"
+
+do_configure_prepend() {
+ rm -f Makefile
+ qmake -project
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/zbedic/
+ install -d ${D}${palmtopdir}/help/html/
+ # we copy small icons - in other way QVGA users will complain
+ install -m 0644 ${S}/misc/small_icons/*.png ${D}${palmtopdir}/pics/zbedic/
+ install -m 0644 ${S}/misc/large_icons/zbedic.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${S}/doc/manual/*.html ${D}${palmtopdir}/help/html/
+ rm ${D}${palmtopdir}/pics/zbedic/zbedic.png
+
+ # those ones are taken from OPIE so they have proper size (depend on device)
+ rm ${D}${palmtopdir}/pics/zbedic/back.png
+ rm ${D}${palmtopdir}/pics/zbedic/forward.png
+}
+
+PACKAGES = "${PN}-dbg ${PN}-doc ${PN} ${PN}-dev"
+
+FILES_${PN}-doc += "${palmtopdir}/help"
+
+SRC_URI[md5sum] = "c7e8e267567a96cff7920a0365978c4d"
+SRC_URI[sha256sum] = "b991cc5635849353081c2a3350142484763323bc58bfa49b62285645aac129b9"
diff --git a/recipes-qtopia/zbench/zbench_2.0.bb b/recipes-qtopia/zbench/zbench_2.0.bb
new file mode 100644
index 0000000..71c7067
--- /dev/null
+++ b/recipes-qtopia/zbench/zbench_2.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Benchmark for Opie/Qtopia"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.aa.alpha-net.ne.jp/satoshic/dw_zbnch.htm"
+PR = "r1"
+
+SRC_URI = "http://www.vanille.de/mirror/zbench-${PV}.tar.bz2"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics
+ install -D -m 755 zbench ${D}${palmtopdir}/bin/zbench
+ install -D -m 644 zbench.desktop ${D}${palmtopdir}/Applications/zbench.desktop
+ cp zbench.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "75beb13ea40ce93b7a141b82fbf4437a"
+SRC_URI[sha256sum] = "b1a1a5d98596fc24225968a480617feb5723390db9175cd6e01828b7fda3a921"
diff --git a/recipes-qtopia/zddice/zddice-1.0.0/qtopia17.patch b/recipes-qtopia/zddice/zddice-1.0.0/qtopia17.patch
new file mode 100644
index 0000000..7aea580
--- /dev/null
+++ b/recipes-qtopia/zddice/zddice-1.0.0/qtopia17.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- zddice-src/zddice_main.cpp~qtopia17 2004-04-15 04:44:10.000000000 +0200
++++ zddice-src/zddice_main.cpp 2004-04-18 12:54:08.000000000 +0200
+@@ -1,5 +1,15 @@
+ #include "zddice.h"
+ #include <qpe/qpeapplication.h>
+
+-QTOPIA_ADD_APPLICATION("zddice", zddice)
+-QTOPIA_MAIN
++//QTOPIA_ADD_APPLICATION("zddice", zddice)
++//QTOPIA_MAIN
++
++int main(int argc, char** argv)
++{
++ QPEApplication a( argc, argv );
++ zddice* w = new zddice();
++ a.showMainWidget( w );
++ a.exec();
++}
++
++
diff --git a/recipes-qtopia/zddice/zddice_1.0.0.bb b/recipes-qtopia/zddice/zddice_1.0.0.bb
new file mode 100644
index 0000000..b8c94ce
--- /dev/null
+++ b/recipes-qtopia/zddice/zddice_1.0.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Zaurus D20 Gaming Dice for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://www.cinlug.org/modules/Static_Docs/data/db/zddice/zddice_${PV}_arm.src.tar.gz \
+ file://qtopia17.patch"
+S = "${WORKDIR}/zddice-src"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += 'TMAKE_LIBS-="-luuid" TMAKE_LIBS+="-lqpe" CONFIG+=qt CONFIG-=qtopia'
+
+do_install() {
+ install -d ${D}${palmtopdir}/{bin,pics,apps/Games}
+ install -m 0755 zddice ${D}${palmtopdir}/bin/
+ install -m 0644 images/zddice.png ${D}${palmtopdir}/pics/
+ install -m 0644 zddice.desktop ${D}${palmtopdir}/apps/Games/
+}
+
+SRC_URI[md5sum] = "791e8986c6e16dcd1c9878126725e06b"
+SRC_URI[sha256sum] = "eba57692dadd21df8d4afaea4daf8db5179c7398e11cd019fd462aa6947f4119"
diff --git a/recipes-qtopia/zgscore/files/qtopia17.patch b/recipes-qtopia/zgscore/files/qtopia17.patch
new file mode 100644
index 0000000..7741ca5
--- /dev/null
+++ b/recipes-qtopia/zgscore/files/qtopia17.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- zgscore-src/zgscore_main.cpp~qtopia17 2004-04-07 16:22:03.000000000 +0200
++++ zgscore-src/zgscore_main.cpp 2004-04-08 16:34:31.000000000 +0200
+@@ -1,5 +1,15 @@
+ #include "zgscore.h"
+ #include <qpe/qpeapplication.h>
+
+-QTOPIA_ADD_APPLICATION("zgs", ZGS)
+-QTOPIA_MAIN
++//QTOPIA_ADD_APPLICATION("zgs", ZGS)
++//QTOPIA_MAIN
++
++int main(int argc, char** argv)
++{
++ QPEApplication a( argc, argv );
++ ZGS* zgs = new ZGS();
++ a.showMainWidget( zgs );
++ a.exec();
++}
++
++
diff --git a/recipes-qtopia/zgscore/zgscore_1.0.2.bb b/recipes-qtopia/zgscore/zgscore_1.0.2.bb
new file mode 100644
index 0000000..ceb2d7a
--- /dev/null
+++ b/recipes-qtopia/zgscore/zgscore_1.0.2.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Zaurus Golf Score Application for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://nuke.cinlug.org/modules/Static_Docs/data/db/zgs/"
+PR = "r0"
+
+SRC_URI = "http://www.cinlug.org/modules/Static_Docs/data/db/zgs/zgscore_${PV}_arm.src.tar.gz \
+ file://qtopia17.patch"
+S = "${WORKDIR}/zgscore-src"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += 'TMAKE_LIBS-="-luuid" TMAKE_LIBS+="-lqpe" CONFIG+=qt CONFIG-=qtopia'
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics
+ install -m 0755 zgscore ${D}${palmtopdir}/bin/zgscore
+ install -m 0755 zgscore.png ${D}${palmtopdir}/pics/
+ install -m 0644 zgscore.desktop ${D}${palmtopdir}/apps/Applications/
+}
+
+SRC_URI[md5sum] = "98e9dd2db54015c0f5193c5427f02d50"
+SRC_URI[sha256sum] = "a2683b8a6a172017f0fe6392fb07d87a5c02fc2714fbff4c98dcae67db588636"
diff --git a/recipes-qtopia/zipsc/zipsc-0.4.3/gcc3.patch b/recipes-qtopia/zipsc/zipsc-0.4.3/gcc3.patch
new file mode 100644
index 0000000..4b2f9a9
--- /dev/null
+++ b/recipes-qtopia/zipsc/zipsc-0.4.3/gcc3.patch
@@ -0,0 +1,961 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- zipsc_0.4.3/MainWindow.cpp~gcc3 2002-07-06 09:46:25.000000000 +0200
++++ zipsc_0.4.3/MainWindow.cpp 2004-02-20 17:23:03.000000000 +0100
+@@ -1,476 +1,477 @@
+-/**********************************************************************
+-** Copyright (C) 2002 Walter Rawdanik. All rights reserved.
+-**
+-** This file is part of zipsc application for Qtopia Environment.
+-**
+-** Issues:
+-** Due to incomplete design of QueryResult which returns pointer instead of object, it needs to be explicitly
+-** deleted after each use. Extremely error-prone and basically pain-in the ass.
+-** I am still no 100% sure I completely understand Qt layouts. It seems that QComboBox grows to the size of the
+-** widest string in it which causes it to go beyond the edge of the screen on Qtopia small screen.
+-** The only solution I could find was to call setMaximumSize() on each with some hard coded magic number that
+-** looks about right - not a good solution.
+-**
+-**
+-** This file may be distributed and/or modified under the terms of the
+-** GPL license appearing in the file LICENSE included in the
+-** packaging of this file.
+-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+-**
+-**********************************************************************/
+-#include <qpe/qpeapplication.h>
+-#include <qpe/config.h>
+-#include <qpe/fileselector.h>
+-#include "MainWindow.h"
+-#include <stdlib.h>
+-#include <stdio.h>
+-#include <ctype.h>
+-#include <qlayout.h>
+-#include <qframe.h>
+-#include <qlistbox.h>
+-#include <qlabel.h>
+-#include <qcombobox.h>
+-#include <qwidgetstack.h>
+-#include <qlineedit.h>
+-#include <qpushbutton.h>
+-#include <qstringlist.h>
+-#include <qmessagebox.h>
+-#include <qtabbar.h>
+-#include <qtoolbutton.h>
+-#include <qtextbrowser.h>
+-#include <qspinbox.h>
+-#include <qpe/menubutton.h>
+-#include <qpe/qpetoolbar.h>
+-#include "InputDialog.h"
+-#include <qdir.h>
+-#include <qfile.h>
+-
+-AboutDialog::AboutDialog(const QPixmap &icon,const QString &caption, const QString &t,const QString &l,QWidget *parent):QDialog(parent,0,true)
+-{
+- setCaption(caption);
+-
+- if ( parent )
+- {
+- setPalette(parent->palette());
+- }
+-
+- setMinimumSize(220,160);
+- QGridLayout *gl= new QGridLayout(this,2,2,4,2);
+- gl->addRowSpacing ( 0,0);
+- pix=new QLabel(this);
+- pix->setPixmap(icon);
+- gl->addWidget(pix,0,0);
+- title=new QLabel(t,this);
+- gl->addWidget(title,0,1);
+- label=new QLabel(l,this);
+- gl->addMultiCellWidget(label,1,1,0,1);
+-
+-}
+-
+-void AboutDialog::displayAbout(const QPixmap &icon,const QString &caption,const QString &t, const QString &text, QWidget *parent)
+-{
+- AboutDialog *dlg=new AboutDialog(icon,caption,t,text,parent);
+- dlg->exec();
+- delete dlg;
+-}
+-
+-MainWindow::MainWindow( QWidget* parent, const char* name, WFlags f )
+-: QMainWindow( parent, name, f )
+-{
+- setCaption("zIPSC");
+-
+- lColor="#f8f8f8";
+- dColor="#e8e8e8";
+- fColor="#848484";
+- memset(&n, 0, sizeof(n));
+- processType=true;
+-
+- QBoxLayout *topLayout=new QVBoxLayout(this,1);
+-
+-
+- //QFrame *topFrame=new QFrame (this);
+- //topFrame->setMaximumWidth(240);
+-
+- QGridLayout *gl= new QGridLayout(this,3,6,2,2);
+- gl->addColSpacing ( 1,4);
+-
+- topLayout->addLayout(gl);
+- gl->setColStretch(0,0);
+- gl->setColStretch(2,10);
+-
+- QLabel *lb=new QLabel("Address:",this);
+- gl->addWidget(lb,0,0);
+- networkAddress= new QComboBox(true,this);
+- gl->addMultiCellWidget(networkAddress,0,0,2,4);
+- go= new QPushButton("Go",this);
+- gl->addWidget(go,0,5);
+- lb=new QLabel("Type:",this);
+- gl->addWidget(lb,1,0);
+-
+- addressType= new MenuButton ( this);
+- addressType->insertItem("Class A (1.x.x.x - 126.x.x.x)");
+- addressType->insertItem("Class B (128.x.x.x - 191.x.x.x)");
+- addressType->insertItem("Class C (192.x.x.x - 223.x.x.x)");
+- gl->addMultiCellWidget(addressType,1,1,2,5);
+-
+- bitsLabel=new QLabel("Subnet bits:",this);
+- gl->addWidget(bitsLabel,2,0);
+- subnetBits= new QSpinBox(this);
+- gl->addWidget(subnetBits,2,2,AlignLeft);
+-
+- saveB=new QToolButton(this);
+- saveB->setAutoRaise(false);
+- saveB->setPixmap(QPixmap(QPEApplication::qpeDir()+"pics/zipsc/filesave.png_"));
+- gl->addWidget(saveB,2,3);
+- copyB=new QToolButton(this);
+- copyB->setAutoRaise(false);
+- copyB->setPixmap(QPixmap(QPEApplication::qpeDir()+"pics/zipsc/editcopy.png_"));
+- gl->addWidget(copyB,2,4);
+- aboutB=new QToolButton(this);
+- aboutB->setAutoRaise(false);
+- aboutB->setPixmap(QPixmap(QPEApplication::qpeDir()+"pics/zipsc/about.png_"));
+- gl->addWidget(aboutB,2,5);
+-
+- topLayout->addSpacing(4);
+-
+- int i;
+-
+- switcher= new QTabBar(this);
+- switcher->setShape(QTabBar::RoundedAbove);
+-
+- const char *tLabels[]={"General","Subnets/Hosts","Host","CIDR"};
+-
+- for ( i=0;i<T_LAST;i++ )
+- {
+- tabValues[i]=switcher->addTab(new QTab(tLabels[i]));
+- }
+- switcher->setCurrentTab(0);
+- topLayout->addWidget(switcher);
+-
+-
+-
+- pageView=new QWidgetStack(this);
+- for ( i=0;i<T_LAST;i++ )
+- {
+- pages[i]=new QTextBrowser(pageView);
+- pages[i]->setHScrollBarMode(QScrollView::AlwaysOff);
+- pageView->addWidget(pages[i],i);
+- }
+-
+- topLayout->addWidget(pageView,10);
+-
+-
+- initVariables();
+- showPage(GENERAL_VIEW);
+-
+-
+- connect(switcher,SIGNAL(selected(int)),SLOT(showPage(int)));
+- connect(networkAddress->lineEdit(),SIGNAL(returnPressed()),SLOT(goButtonClicked()));
+- connect(go,SIGNAL(clicked()),SLOT(goButtonClicked()));
+- connect(addressType,SIGNAL(selected (int)),SLOT(typeButtonPressed(int)));
+- connect(subnetBits,SIGNAL(valueChanged (int)),SLOT(bitsChanged(int)));
+- connect(saveB,SIGNAL(clicked()),SLOT(saveFile()));
+- connect(copyB,SIGNAL(clicked()),SLOT(copyText()));
+- connect(aboutB,SIGNAL(clicked()),SLOT(displayAbout()));
+-
+-
+-}
+-
+-MainWindow::~MainWindow()
+-{
+- saveVariables();
+-}
+-
+-
+-void MainWindow::goButtonClicked()
+-{
+- QString searchTerm=networkAddress->currentText();
+-
+- if ( searchTerm.isEmpty() )
+- return;
+-
+- if ( ipsc_network_init_parse_text(&n, searchTerm) < 0 )
+- {
+- QMessageBox::warning (this,"zIPSC","Incorrect network address",0);
+- }
+-
+- ipsc_network_init_parse_text(&n,searchTerm);
+- updateAll();
+-
+- // implement history .... if selected text already exists, delete it from the list ... if there are more than 10 items delete last used
+- QListBox *lb=networkAddress->listBox();
+-
+- for ( unsigned int i=0;i<lb->count();i++ )
+- {
+- if ( searchTerm.upper()==lb->text(i).upper() )
+- {
+- lb->removeItem(i);
+- break;
+- }
+- }
+- if ( networkAddress->count()>16 )
+- networkAddress->removeItem(networkAddress->count()-1);
+- networkAddress->insertItem(searchTerm,0);
+-
+- processType=false;
+- subnetBits->setValue(n.subnet_bits);
+- addressType->select((int)(tolower(n.nclass)-'a'));
+- processType=true;
+-
+-}
+-
+-void MainWindow::typeButtonPressed(int i)
+-{
+- if ( processType )
+- {
+- char cl='a'+(int)i;
+-
+- ipsc_network_set_class_info(&n, cl, TRUE);
+- ipsc_network_init(&n);
+- updateAll();
+-
+- QString tmp;
+- tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
+- networkAddress->lineEdit()->setText(tmp);
+- }
+-}
+-
+-void MainWindow::bitsChanged(int b)
+-{
+- n.subnet_bits=b;
+- ipsc_network_init(&n);
+- QString tmp;
+- tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
+- networkAddress->lineEdit()->setText(tmp);
+- updateAll();
+-}
+-
+-void MainWindow::showPage(int t)
+-{
+- if ( t==CIDR_VIEW )
+- {
+- bitsLabel->setText("Supnet bits");
+- subnetBits->setMaxValue(31);
+- }
+- else
+- {
+- bitsLabel->setText("Subnet bits");
+- subnetBits->setMaxValue(n.subnet_bits_max);
+- }
+- pageView->raiseWidget(t);
+-
+-}
+-
+-
+-
+-void MainWindow::updateAll()
+-{
+- subnetBits->setMaxValue(n.subnet_bits_max);
+- for ( unsigned int i=0;i<T_LAST;i++ )
+- updatePage(i);
+-
+-}
+-
+-void MainWindow::updatePage(int t)
+-{
+- QString text;
+-
+- text.append("<qt bgcolor="+dColor+">");
+- text.append("<table border=0 width=210>");
+-
+- switch ( t )
+- {
+- case GENERAL_VIEW:
+- updateGPage(text);
+- break;
+- case SUBNETS_VIEW:
+- updateSPage(text);
+- break;
+- case HOST_VIEW:
+- updateHPage(text);
+- break;
+- case CIDR_VIEW:
+- updateCPage(text);
+- break;
+- }
+-
+- text.append("</table></html>");
+-
+- pages[t]->setText(text);
+-
+-}
+-
+-void MainWindow::updateGPage(QString &s)
+-{
+- s.append("<tr><td width=50%><font color="+fColor+">Subnet maximum</font></td><td width=50%><font color="+fColor+">Addresses/Subnet</font></td></tr>");
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString::number(n.subnet_max)+
+- "</td><td bgcolor="+lColor+" width=50%>"+QString::number(n.host_max)+"</td></tr>");
+- s.append("<tr><td width=100% colspan=2><font color="+fColor+">Bitmap (network,subnet,host)</font></td></tr>");
+- s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+QString(n.bitmap)+"</td></tr>");
+- s.append("<tr><td width=50%><font color="+fColor+">Class Mask</font></td><td width=50%><font color="+fColor+">Hex Class Mask</font></td></tr>");
+- QString tmp;
+- int fmask=ipsc_network_get_full_mask(&n);
+- tmp.sprintf("%X",n.mask);
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.mask))+
+- "</td><td bgcolor="+lColor+" width=50%>"+tmp+"</td></tr>");
+- s.append("<tr><td width=50%><font color="+fColor+">Full Subnet Mask</font></td><td width=50%><font color="+fColor+">Full Hex Subnet Mask</font></td></tr>");
+- tmp.sprintf("%X",fmask);
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(fmask))+
+- "</td><td bgcolor="+lColor+" width=50%>"+tmp+"</td></tr>");
+-}
+-
+-void MainWindow::updateSPage(QString &s)
+-{
+- s.append("<tr><th width=10%>Subnet</th><th width=90% >Address range</th></tr>");
+-
+- unsigned int subnet_addr = n.addr;
+- QString tmp;
+-
+- for ( unsigned int i = 0; i < n.subnet_max; i++ )
+- {
+- tmp.sprintf("%s - ",denumberize(subnet_addr));
+- tmp.append(denumberize((subnet_addr + n.host_max-1)));
+- if ( ipsc_host_is_on_subnet(subnet_addr,&n) )
+- {
+- tmp.append(" *");
+- }
+- s.append("<tr><td bgcolor="+lColor+" width=10%>"+ QString::number(i+1)+
+- "</td><td bgcolor="+lColor+" width=90%>"+tmp+"</td></tr>");
+- subnet_addr += n.host_max;
+- if ( i==256 )
+- {
+- s.append("<tr><td colspan=2 bgcolor="+lColor+" width=10%>"+ QString::number(n.subnet_max-i-1)+
+- " more subnets ...</td></tr>");
+- break;
+- }
+- }
+-}
+-
+-void MainWindow::updateHPage(QString &s)
+-{
+- unsigned int lbound = ipsc_network_get_host_subnet_first_host(&n);
+- unsigned int ubound = ipsc_network_get_host_subnet_last_host(&n);
+-
+- QString tmp;
+- tmp.sprintf("%X",n.host_addr);
+- s.append("<tr><td width=50%><font color="+fColor+">IP Address</font></td><td width=50%><font color="+fColor+">Hex IP Address</font></td></tr>");
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.host_addr))+
+- "</td><td bgcolor="+lColor+" width=50%>"+tmp+"</td></tr>");
+- tmp.sprintf("%s - ",denumberize(lbound));
+- tmp.append(denumberize(ubound));
+- s.append("<tr><td width=100% colspan=2><font color="+fColor+">Host Allocation Range</font></td></tr>");
+- s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+tmp+"</td></tr>");
+- s.append("<tr><td width=50%><font color="+fColor+">Subnet Mask</font></td><td width=50%><font color="+fColor+">Subnet ID</font></td></tr>");
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.subnet_mask))+
+- "</td><td bgcolor="+lColor+" width=50%>"+QString(denumberize( ipsc_network_get_subnet_id(&n)))+"</td></tr>");
+- s.append("<tr><td width=50%><font color="+fColor+">Network ID</font></td><td width=50%><font color="+fColor+">Host ID</font></td></tr>");
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize( ipsc_network_get_network_id(&n)))+
+- "</td><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.host_id))+"</td></tr>");
+-}
+-
+-void MainWindow::updateCPage(QString &s)
+-{
+- QString tmp;
+-
+- tmp.sprintf("%s/%d", denumberize(n.addr),ipsc_network_get_prefix_bits(&n));
+-
+- s.append("<tr><td width=50%><font color="+fColor+">CIDR Notation</font></td><td width=50%><font color="+fColor+">Supernet Maximum</font></td></tr>");
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+tmp+
+- "</td><td bgcolor="+lColor+" width=50%>"+QString::number(ipsc_network_get_supernet_max(&n))+"</td></tr>");
+- tmp.sprintf("%s/%d", denumberize(n.addr), n.bits);
+- s.append("<tr><td width=50%><font color="+fColor+">Classful Network</font></td><td width=50%><font color="+fColor+">Cisco Wildcard</font></td></tr>");
+- s.append("<tr><td bgcolor="+lColor+" width=50%>"+tmp+
+- "</td><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.cisco_wildcard))+"</td></tr>");
+- tmp.sprintf("%s / ", denumberize(n.addr));
+- tmp.append(denumberize(ipsc_network_get_full_mask(&n)));
+- s.append("<tr><td width=100% colspan=2><font color="+fColor+">Route/Mask</font></td></tr>");
+- s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+tmp+"</td></tr>");
+- tmp.sprintf("%X / %X", n.addr,ipsc_network_get_full_mask(&n));
+- s.append("<tr><td width=100% colspan=2><font color="+fColor+">Hex Route/Mask</font></td></tr>");
+- s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+tmp+"</td></tr>");
+-
+-
+-}
+-
+-void MainWindow::saveVariables()
+-{
+- Config cfg("zIPSC");
+- cfg.setGroup("zIPSC");
+-
+- QStringList ls;
+-
+- for ( int i=0;i<networkAddress->count();i++ )
+- {
+- ls.append(networkAddress->text(i));
+- }
+- QString tmp;
+- tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
+- cfg.writeEntry("NetAddress",tmp);
+- cfg.writeEntry("SubnetBits",(int)n.subnet_bits);
+- cfg.writeEntry("HItems",ls,'|');
+-}
+-
+-void MainWindow::initVariables()
+-{
+- Config cfg("zIPSC");
+- cfg.setGroup("zIPSC");
+-
+- networkAddress->insertStringList ( cfg.readListEntry("HItems",'|'));
+- QString net=cfg.readEntry("NetAddress","127.0.0.1/8");
+- networkAddress->lineEdit()->setText(net);
+- ipsc_network_init_parse_text(&n,net.latin1());
+- n.subnet_bits=cfg.readNumEntry ("SubnetBits", 0 );
+- ipsc_network_init(&n);
+- subnetBits->setMaxValue(n.subnet_bits_max);
+- subnetBits->setValue(n.subnet_bits);
+- processType=false;
+- addressType->select((int)(tolower(n.nclass)-'a'));
+- processType=true;
+- updateAll();
+-}
+-
+-void MainWindow::saveFile()
+-{
+- QString tmp;
+- tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
+- tmp.replace(QRegExp("[./]"),"_");
+- tmp.append(".txt");
+- QString fileName=InputDialog::getText("zIPSC","Save as ...",tmp,this);
+- if ( fileName.isEmpty() )
+- return;
+- fileName=QDir::home().absFilePath(fileName);
+- FILE *f;
+-
+- if ( (f = fopen((const char *)fileName.latin1() , "a")) == NULL )
+- {
+- QMessageBox::warning (this,"zIPSC","Error creating "+ fileName +".",0);
+- return;
+- }
+- ipsc_network_fprint_general(&n, f);
+- ipsc_network_fprint_host(&n, f);
+- ipsc_network_fprint_cidr(&n, f);
+- fclose(f);
+-
+-}
+-
+-void MainWindow::copyText()
+-{
+- QTextBrowser *tb=(QTextBrowser*)pageView->visibleWidget();
+- if ( tb && tb->hasSelectedText() )
+- {
+- tb->copy();
+- }
+-}
+-
+-void MainWindow::displayAbout()
+-{
+-
+- AboutDialog::displayAbout(QPixmap(QPEApplication::qpeDir()+"pics/zipsc.png"),
+- "zIPSC","<qt><b><h2>zIPSC</h2></b></qt>",
+- "<qt><hr>IP subnet calculator<p>Ported to Qtopia by Walter Rawdanik (zaurus@warmi.net)
+- <p>Based on 'IPSC' (http://ipsc.sourceforge.net/software.html)<p>Licensed under GNU General Public License</qt>",
+- this);}
+-
+-
+-
++/**********************************************************************
++** Copyright (C) 2002 Walter Rawdanik. All rights reserved.
++**
++** This file is part of zipsc application for Qtopia Environment.
++**
++** Issues:
++** Due to incomplete design of QueryResult which returns pointer instead of object, it needs to be explicitly
++** deleted after each use. Extremely error-prone and basically pain-in the ass.
++** I am still no 100% sure I completely understand Qt layouts. It seems that QComboBox grows to the size of the
++** widest string in it which causes it to go beyond the edge of the screen on Qtopia small screen.
++** The only solution I could find was to call setMaximumSize() on each with some hard coded magic number that
++** looks about right - not a good solution.
++**
++**
++** This file may be distributed and/or modified under the terms of the
++** GPL license appearing in the file LICENSE included in the
++** packaging of this file.
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++**********************************************************************/
++#include <qpe/qpeapplication.h>
++#include <qpe/config.h>
++#include <qpe/fileselector.h>
++#include "MainWindow.h"
++#include <stdlib.h>
++#include <stdio.h>
++#include <ctype.h>
++#include <qlayout.h>
++#include <qframe.h>
++#include <qlistbox.h>
++#include <qlabel.h>
++#include <qcombobox.h>
++#include <qwidgetstack.h>
++#include <qlineedit.h>
++#include <qpushbutton.h>
++#include <qstringlist.h>
++#include <qmessagebox.h>
++#include <qtabbar.h>
++#include <qtoolbutton.h>
++#include <qtextbrowser.h>
++#include <qspinbox.h>
++#include <qpe/menubutton.h>
++#include <qpe/qpetoolbar.h>
++#include "InputDialog.h"
++#include <qdir.h>
++#include <qfile.h>
++
++AboutDialog::AboutDialog(const QPixmap &icon,const QString &caption, const QString &t,const QString &l,QWidget *parent):QDialog(parent,0,true)
++{
++ setCaption(caption);
++
++ if ( parent )
++ {
++ setPalette(parent->palette());
++ }
++
++ setMinimumSize(220,160);
++ QGridLayout *gl= new QGridLayout(this,2,2,4,2);
++ gl->addRowSpacing ( 0,0);
++ pix=new QLabel(this);
++ pix->setPixmap(icon);
++ gl->addWidget(pix,0,0);
++ title=new QLabel(t,this);
++ gl->addWidget(title,0,1);
++ label=new QLabel(l,this);
++ gl->addMultiCellWidget(label,1,1,0,1);
++
++}
++
++void AboutDialog::displayAbout(const QPixmap &icon,const QString &caption,const QString &t, const QString &text, QWidget *parent)
++{
++ AboutDialog *dlg=new AboutDialog(icon,caption,t,text,parent);
++ dlg->exec();
++ delete dlg;
++}
++
++MainWindow::MainWindow( QWidget* parent, const char* name, WFlags f )
++: QMainWindow( parent, name, f )
++{
++ setCaption("zIPSC");
++
++ lColor="#f8f8f8";
++ dColor="#e8e8e8";
++ fColor="#848484";
++ memset(&n, 0, sizeof(n));
++ processType=true;
++
++ QBoxLayout *topLayout=new QVBoxLayout(this,1);
++
++
++ //QFrame *topFrame=new QFrame (this);
++ //topFrame->setMaximumWidth(240);
++
++ QGridLayout *gl= new QGridLayout(this,3,6,2,2);
++ gl->addColSpacing ( 1,4);
++
++ topLayout->addLayout(gl);
++ gl->setColStretch(0,0);
++ gl->setColStretch(2,10);
++
++ QLabel *lb=new QLabel("Address:",this);
++ gl->addWidget(lb,0,0);
++ networkAddress= new QComboBox(true,this);
++ gl->addMultiCellWidget(networkAddress,0,0,2,4);
++ go= new QPushButton("Go",this);
++ gl->addWidget(go,0,5);
++ lb=new QLabel("Type:",this);
++ gl->addWidget(lb,1,0);
++
++ addressType= new MenuButton ( this);
++ addressType->insertItem("Class A (1.x.x.x - 126.x.x.x)");
++ addressType->insertItem("Class B (128.x.x.x - 191.x.x.x)");
++ addressType->insertItem("Class C (192.x.x.x - 223.x.x.x)");
++ gl->addMultiCellWidget(addressType,1,1,2,5);
++
++ bitsLabel=new QLabel("Subnet bits:",this);
++ gl->addWidget(bitsLabel,2,0);
++ subnetBits= new QSpinBox(this);
++ gl->addWidget(subnetBits,2,2,AlignLeft);
++
++ saveB=new QToolButton(this);
++ saveB->setAutoRaise(false);
++ saveB->setPixmap(QPixmap(QPEApplication::qpeDir()+"pics/zipsc/filesave.png_"));
++ gl->addWidget(saveB,2,3);
++ copyB=new QToolButton(this);
++ copyB->setAutoRaise(false);
++ copyB->setPixmap(QPixmap(QPEApplication::qpeDir()+"pics/zipsc/editcopy.png_"));
++ gl->addWidget(copyB,2,4);
++ aboutB=new QToolButton(this);
++ aboutB->setAutoRaise(false);
++ aboutB->setPixmap(QPixmap(QPEApplication::qpeDir()+"pics/zipsc/about.png_"));
++ gl->addWidget(aboutB,2,5);
++
++ topLayout->addSpacing(4);
++
++ int i;
++
++ switcher= new QTabBar(this);
++ switcher->setShape(QTabBar::RoundedAbove);
++
++ const char *tLabels[]={"General","Subnets/Hosts","Host","CIDR"};
++
++ for ( i=0;i<T_LAST;i++ )
++ {
++ tabValues[i]=switcher->addTab(new QTab(tLabels[i]));
++ }
++ switcher->setCurrentTab(0);
++ topLayout->addWidget(switcher);
++
++
++
++ pageView=new QWidgetStack(this);
++ for ( i=0;i<T_LAST;i++ )
++ {
++ pages[i]=new QTextBrowser(pageView);
++ pages[i]->setHScrollBarMode(QScrollView::AlwaysOff);
++ pageView->addWidget(pages[i],i);
++ }
++
++ topLayout->addWidget(pageView,10);
++
++
++ initVariables();
++ showPage(GENERAL_VIEW);
++
++
++ connect(switcher,SIGNAL(selected(int)),SLOT(showPage(int)));
++ connect(networkAddress->lineEdit(),SIGNAL(returnPressed()),SLOT(goButtonClicked()));
++ connect(go,SIGNAL(clicked()),SLOT(goButtonClicked()));
++ connect(addressType,SIGNAL(selected (int)),SLOT(typeButtonPressed(int)));
++ connect(subnetBits,SIGNAL(valueChanged (int)),SLOT(bitsChanged(int)));
++ connect(saveB,SIGNAL(clicked()),SLOT(saveFile()));
++ connect(copyB,SIGNAL(clicked()),SLOT(copyText()));
++ connect(aboutB,SIGNAL(clicked()),SLOT(displayAbout()));
++
++
++}
++
++MainWindow::~MainWindow()
++{
++ saveVariables();
++}
++
++
++void MainWindow::goButtonClicked()
++{
++ QString searchTerm=networkAddress->currentText();
++
++ if ( searchTerm.isEmpty() )
++ return;
++
++ if ( ipsc_network_init_parse_text(&n, searchTerm) < 0 )
++ {
++ QMessageBox::warning (this,"zIPSC","Incorrect network address",0);
++ }
++
++ ipsc_network_init_parse_text(&n,searchTerm);
++ updateAll();
++
++ // implement history .... if selected text already exists, delete it from the list ... if there are more than 10 items delete last used
++ QListBox *lb=networkAddress->listBox();
++
++ for ( unsigned int i=0;i<lb->count();i++ )
++ {
++ if ( searchTerm.upper()==lb->text(i).upper() )
++ {
++ lb->removeItem(i);
++ break;
++ }
++ }
++ if ( networkAddress->count()>16 )
++ networkAddress->removeItem(networkAddress->count()-1);
++ networkAddress->insertItem(searchTerm,0);
++
++ processType=false;
++ subnetBits->setValue(n.subnet_bits);
++ addressType->select((int)(tolower(n.nclass)-'a'));
++ processType=true;
++
++}
++
++void MainWindow::typeButtonPressed(int i)
++{
++ if ( processType )
++ {
++ char cl='a'+(int)i;
++
++ ipsc_network_set_class_info(&n, cl, TRUE);
++ ipsc_network_init(&n);
++ updateAll();
++
++ QString tmp;
++ tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
++ networkAddress->lineEdit()->setText(tmp);
++ }
++}
++
++void MainWindow::bitsChanged(int b)
++{
++ n.subnet_bits=b;
++ ipsc_network_init(&n);
++ QString tmp;
++ tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
++ networkAddress->lineEdit()->setText(tmp);
++ updateAll();
++}
++
++void MainWindow::showPage(int t)
++{
++ if ( t==CIDR_VIEW )
++ {
++ bitsLabel->setText("Supnet bits");
++ subnetBits->setMaxValue(31);
++ }
++ else
++ {
++ bitsLabel->setText("Subnet bits");
++ subnetBits->setMaxValue(n.subnet_bits_max);
++ }
++ pageView->raiseWidget(t);
++
++}
++
++
++
++void MainWindow::updateAll()
++{
++ subnetBits->setMaxValue(n.subnet_bits_max);
++ for ( unsigned int i=0;i<T_LAST;i++ )
++ updatePage(i);
++
++}
++
++void MainWindow::updatePage(int t)
++{
++ QString text;
++
++ text.append("<qt bgcolor="+dColor+">");
++ text.append("<table border=0 width=210>");
++
++ switch ( t )
++ {
++ case GENERAL_VIEW:
++ updateGPage(text);
++ break;
++ case SUBNETS_VIEW:
++ updateSPage(text);
++ break;
++ case HOST_VIEW:
++ updateHPage(text);
++ break;
++ case CIDR_VIEW:
++ updateCPage(text);
++ break;
++ }
++
++ text.append("</table></html>");
++
++ pages[t]->setText(text);
++
++}
++
++void MainWindow::updateGPage(QString &s)
++{
++ s.append("<tr><td width=50%><font color="+fColor+">Subnet maximum</font></td><td width=50%><font color="+fColor+">Addresses/Subnet</font></td></tr>");
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString::number(n.subnet_max)+
++ "</td><td bgcolor="+lColor+" width=50%>"+QString::number(n.host_max)+"</td></tr>");
++ s.append("<tr><td width=100% colspan=2><font color="+fColor+">Bitmap (network,subnet,host)</font></td></tr>");
++ s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+QString(n.bitmap)+"</td></tr>");
++ s.append("<tr><td width=50%><font color="+fColor+">Class Mask</font></td><td width=50%><font color="+fColor+">Hex Class Mask</font></td></tr>");
++ QString tmp;
++ int fmask=ipsc_network_get_full_mask(&n);
++ tmp.sprintf("%X",n.mask);
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.mask))+
++ "</td><td bgcolor="+lColor+" width=50%>"+tmp+"</td></tr>");
++ s.append("<tr><td width=50%><font color="+fColor+">Full Subnet Mask</font></td><td width=50%><font color="+fColor+">Full Hex Subnet Mask</font></td></tr>");
++ tmp.sprintf("%X",fmask);
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(fmask))+
++ "</td><td bgcolor="+lColor+" width=50%>"+tmp+"</td></tr>");
++}
++
++void MainWindow::updateSPage(QString &s)
++{
++ s.append("<tr><th width=10%>Subnet</th><th width=90% >Address range</th></tr>");
++
++ unsigned int subnet_addr = n.addr;
++ QString tmp;
++
++ for ( unsigned int i = 0; i < n.subnet_max; i++ )
++ {
++ tmp.sprintf("%s - ",denumberize(subnet_addr));
++ tmp.append(denumberize((subnet_addr + n.host_max-1)));
++ if ( ipsc_host_is_on_subnet(subnet_addr,&n) )
++ {
++ tmp.append(" *");
++ }
++ s.append("<tr><td bgcolor="+lColor+" width=10%>"+ QString::number(i+1)+
++ "</td><td bgcolor="+lColor+" width=90%>"+tmp+"</td></tr>");
++ subnet_addr += n.host_max;
++ if ( i==256 )
++ {
++ s.append("<tr><td colspan=2 bgcolor="+lColor+" width=10%>"+ QString::number(n.subnet_max-i-1)+
++ " more subnets ...</td></tr>");
++ break;
++ }
++ }
++}
++
++void MainWindow::updateHPage(QString &s)
++{
++ unsigned int lbound = ipsc_network_get_host_subnet_first_host(&n);
++ unsigned int ubound = ipsc_network_get_host_subnet_last_host(&n);
++
++ QString tmp;
++ tmp.sprintf("%X",n.host_addr);
++ s.append("<tr><td width=50%><font color="+fColor+">IP Address</font></td><td width=50%><font color="+fColor+">Hex IP Address</font></td></tr>");
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.host_addr))+
++ "</td><td bgcolor="+lColor+" width=50%>"+tmp+"</td></tr>");
++ tmp.sprintf("%s - ",denumberize(lbound));
++ tmp.append(denumberize(ubound));
++ s.append("<tr><td width=100% colspan=2><font color="+fColor+">Host Allocation Range</font></td></tr>");
++ s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+tmp+"</td></tr>");
++ s.append("<tr><td width=50%><font color="+fColor+">Subnet Mask</font></td><td width=50%><font color="+fColor+">Subnet ID</font></td></tr>");
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.subnet_mask))+
++ "</td><td bgcolor="+lColor+" width=50%>"+QString(denumberize( ipsc_network_get_subnet_id(&n)))+"</td></tr>");
++ s.append("<tr><td width=50%><font color="+fColor+">Network ID</font></td><td width=50%><font color="+fColor+">Host ID</font></td></tr>");
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+QString(denumberize( ipsc_network_get_network_id(&n)))+
++ "</td><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.host_id))+"</td></tr>");
++}
++
++void MainWindow::updateCPage(QString &s)
++{
++ QString tmp;
++
++ tmp.sprintf("%s/%d", denumberize(n.addr),ipsc_network_get_prefix_bits(&n));
++
++ s.append("<tr><td width=50%><font color="+fColor+">CIDR Notation</font></td><td width=50%><font color="+fColor+">Supernet Maximum</font></td></tr>");
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+tmp+
++ "</td><td bgcolor="+lColor+" width=50%>"+QString::number(ipsc_network_get_supernet_max(&n))+"</td></tr>");
++ tmp.sprintf("%s/%d", denumberize(n.addr), n.bits);
++ s.append("<tr><td width=50%><font color="+fColor+">Classful Network</font></td><td width=50%><font color="+fColor+">Cisco Wildcard</font></td></tr>");
++ s.append("<tr><td bgcolor="+lColor+" width=50%>"+tmp+
++ "</td><td bgcolor="+lColor+" width=50%>"+QString(denumberize(n.cisco_wildcard))+"</td></tr>");
++ tmp.sprintf("%s / ", denumberize(n.addr));
++ tmp.append(denumberize(ipsc_network_get_full_mask(&n)));
++ s.append("<tr><td width=100% colspan=2><font color="+fColor+">Route/Mask</font></td></tr>");
++ s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+tmp+"</td></tr>");
++ tmp.sprintf("%X / %X", n.addr,ipsc_network_get_full_mask(&n));
++ s.append("<tr><td width=100% colspan=2><font color="+fColor+">Hex Route/Mask</font></td></tr>");
++ s.append("<tr><td width=100% bgcolor="+lColor+" colspan=2>"+tmp+"</td></tr>");
++
++
++}
++
++void MainWindow::saveVariables()
++{
++ Config cfg("zIPSC");
++ cfg.setGroup("zIPSC");
++
++ QStringList ls;
++
++ for ( int i=0;i<networkAddress->count();i++ )
++ {
++ ls.append(networkAddress->text(i));
++ }
++ QString tmp;
++ tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
++ cfg.writeEntry("NetAddress",tmp);
++ cfg.writeEntry("SubnetBits",(int)n.subnet_bits);
++ cfg.writeEntry("HItems",ls,'|');
++}
++
++void MainWindow::initVariables()
++{
++ Config cfg("zIPSC");
++ cfg.setGroup("zIPSC");
++
++ networkAddress->insertStringList ( cfg.readListEntry("HItems",'|'));
++ QString net=cfg.readEntry("NetAddress","127.0.0.1/8");
++ networkAddress->lineEdit()->setText(net);
++ ipsc_network_init_parse_text(&n,net.latin1());
++ n.subnet_bits=cfg.readNumEntry ("SubnetBits", 0 );
++ ipsc_network_init(&n);
++ subnetBits->setMaxValue(n.subnet_bits_max);
++ subnetBits->setValue(n.subnet_bits);
++ processType=false;
++ addressType->select((int)(tolower(n.nclass)-'a'));
++ processType=true;
++ updateAll();
++}
++
++void MainWindow::saveFile()
++{
++ QString tmp;
++ tmp.sprintf("%s/%d", denumberize(n.host_addr),ipsc_network_get_prefix_bits(&n));
++ tmp.replace(QRegExp("[./]"),"_");
++ tmp.append(".txt");
++ QString fileName=InputDialog::getText("zIPSC","Save as ...",tmp,this);
++ if ( fileName.isEmpty() )
++ return;
++ fileName=QDir::home().absFilePath(fileName);
++ FILE *f;
++
++ if ( (f = fopen((const char *)fileName.latin1() , "a")) == NULL )
++ {
++ QMessageBox::warning (this,"zIPSC","Error creating "+ fileName +".",0);
++ return;
++ }
++ ipsc_network_fprint_general(&n, f);
++ ipsc_network_fprint_host(&n, f);
++ ipsc_network_fprint_cidr(&n, f);
++ fclose(f);
++
++}
++
++void MainWindow::copyText()
++{
++ QTextBrowser *tb=(QTextBrowser*)pageView->visibleWidget();
++ if ( tb && tb->hasSelectedText() )
++ {
++ tb->copy();
++ }
++}
++
++void MainWindow::displayAbout()
++{
++
++ AboutDialog::displayAbout(QPixmap(QPEApplication::qpeDir()+"pics/zipsc.png"),
++ "zIPSC","<qt><b><h2>zIPSC</h2></b></qt>",
++ "<qt><hr>IP subnet calculator<p>Ported to Qtopia by Walter Rawdanik (zaurus@warmi.net) "
++ "<p>Based on 'IPSC' (http://ipsc.sourceforge.net/software.html)<p>Licensed under GNU General Public License</qt>",
++ this);
++}
++
++
++
diff --git a/recipes-qtopia/zipsc/zipsc_0.4.3.bb b/recipes-qtopia/zipsc/zipsc_0.4.3.bb
new file mode 100644
index 0000000..1fb5f98
--- /dev/null
+++ b/recipes-qtopia/zipsc/zipsc_0.4.3.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "IP/Subnet calculator for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.warmi.net/zaurus/zipsc.shtml"
+PR = "r2"
+
+SRC_URI = "http://www.warmi.net/zaurus/files/zipsc_${PV}.tar.gz \
+ file://gcc3.patch"
+S = "${WORKDIR}/zipsc_${PV}"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Applications \
+ ${D}${palmtopdir}/pics \
+ ${D}${palmtopdir}/pics/zipsc
+ install -m 0755 zipsc ${D}${palmtopdir}/bin/
+ install -m 0644 Qtopia/opt/QtPalmtop/pics/zipsc.png ${D}${palmtopdir}/pics/
+ install -m 0644 Qtopia/opt/QtPalmtop/pics/zipsc/*.png_ ${D}${palmtopdir}/pics/zipsc/
+ install -m 0644 Qtopia/opt/QtPalmtop/apps/Applications/zipsc.desktop ${D}${palmtopdir}/apps/Applications/
+}
+
+SRC_URI[md5sum] = "84c9037c144cb9a56137e2c218532ee1"
+SRC_URI[sha256sum] = "a5e989f87fd85b66b2cea1246f14577cbef9a618abde2df2c17a04030fb6cda6"
diff --git a/recipes-qtopia/zlapspeed/zlapspeed-1.0.0/qtopia17.patch b/recipes-qtopia/zlapspeed/zlapspeed-1.0.0/qtopia17.patch
new file mode 100644
index 0000000..320ea5e
--- /dev/null
+++ b/recipes-qtopia/zlapspeed/zlapspeed-1.0.0/qtopia17.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- zlaps-src/zlaps_main.cpp~qtopia17 2004-04-15 04:44:10.000000000 +0200
++++ zlaps-src/zlaps_main.cpp 2004-04-18 12:54:08.000000000 +0200
+@@ -1,5 +1,15 @@
+ #include "zlaps.h"
+ #include <qpe/qpeapplication.h>
+
+-QTOPIA_ADD_APPLICATION("zlaps", zlaps)
+-QTOPIA_MAIN
++//QTOPIA_ADD_APPLICATION("zlaps", zlaps)
++//QTOPIA_MAIN
++
++int main(int argc, char** argv)
++{
++ QPEApplication a( argc, argv );
++ zlaps* w = new zlaps();
++ a.showMainWidget( w );
++ a.exec();
++}
++
++
diff --git a/recipes-qtopia/zlapspeed/zlapspeed_1.0.0.bb b/recipes-qtopia/zlapspeed/zlapspeed_1.0.0.bb
new file mode 100644
index 0000000..55cf650
--- /dev/null
+++ b/recipes-qtopia/zlapspeed/zlapspeed_1.0.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Zaurus Race Lap Speed Measuring Application for Qt/Embedded based Palmtop Environments"
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+SRC_URI = "http://www.cinlug.org/modules/Static_Docs/data/db/zlaps/zlaps_${PV}_arm.src.tar.gz \
+ file://qtopia17.patch"
+S = "${WORKDIR}/zlaps-src"
+
+inherit palmtop
+
+EXTRA_QMAKEVARS_POST += 'TMAKE_LIBS-="-luuid" TMAKE_LIBS+="-lqpe" CONFIG+=qt CONFIG-=qtopia'
+
+do_install() {
+ install -d ${D}${palmtopdir}/{bin,pics,apps/Applications}
+ install -m 0755 zlaps ${D}${palmtopdir}/bin/
+ install -m 0755 images/zlaps.png ${D}${palmtopdir}/pics/
+ install -m 0644 zlaps.desktop ${D}${palmtopdir}/apps/Applications/
+}
+
+SRC_URI[md5sum] = "6c3d5a05da141c7d3ceac0db3d587441"
+SRC_URI[sha256sum] = "23252f3d76c863f88daae8384c0c02a93638a883048a084a0f2fcfbd804eb5ae"
diff --git a/recipes-qtopia/zmerlin/zmerlin_0.9.1.bb b/recipes-qtopia/zmerlin/zmerlin_0.9.1.bb
new file mode 100644
index 0000000..573fc20
--- /dev/null
+++ b/recipes-qtopia/zmerlin/zmerlin_0.9.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Puzzle Game for Qt/Embedded based palmtop environments."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "http://user.cs.tu-berlin.de/~karlb/zmerlin/zmerlin.tar.gz"
+S = "${WORKDIR}/zmerlin"
+
+inherit palmtop
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin \
+ ${D}${palmtopdir}/apps/Games \
+ ${D}${palmtopdir}/pics/zmerlin
+ install -m 0755 zmerlin ${D}${palmtopdir}/bin/
+ install -m 0644 ipk/opt/QtPalmtop/apps/Games/zmerlin.desktop ${D}${palmtopdir}/apps/Games/
+ install -m 0644 ipk/opt/QtPalmtop/pics/zmerlin/*.png ${D}${palmtopdir}/pics/zmerlin/
+}
+
+
+SRC_URI[md5sum] = "ae1f9198544d1585f44dab7bab110ae3"
+SRC_URI[sha256sum] = "28e73da5403faad322022e8fb327f99677841d26396a1a1f1e854c768b47cf7c"
diff --git a/recipes-qtopia/zrally/zrally/dir.patch b/recipes-qtopia/zrally/zrally/dir.patch
new file mode 100644
index 0000000..6bc8f3b
--- /dev/null
+++ b/recipes-qtopia/zrally/zrally/dir.patch
@@ -0,0 +1,11 @@
+--- src/zrally.cpp.orig 2003-02-15 17:34:08 +0100
++++ src/zrally.cpp 2004-10-16 00:02:23 +0200
+@@ -69,7 +69,7 @@
+ #ifdef _WIN32
+ picsDirectory = "./";
+ #else
+- picsDirectory = "/home/QtPalmtop/pics/zrally/";
++ picsDirectory = "/opt/QtPalmtop/pics/zrally/";
+ #endif
+ mainWin->setBackgroundColor(QColor (0x00, 0x80, 0x00));
+
diff --git a/recipes-qtopia/zrally/zrally_0.90.bb b/recipes-qtopia/zrally/zrally_0.90.bb
new file mode 100644
index 0000000..b7ad88f
--- /dev/null
+++ b/recipes-qtopia/zrally/zrally_0.90.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "ZRally is a top view race game which offers the player mulitple \
+tracks and multiple skill levels."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Kevin Greenhaw <kevin_greenhaw@email.com>"
+HOMEPAGE = "http://zrally.sourceforge.net/zrally.html"
+APPNAME = "zrally"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/zrally/zrally_0.90_src.tar.gz;subdir=${BPN}-${PV} \
+file://dir.patch;striplevel=0"
+
+inherit opie
+
+do_install () {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/track_pics/
+ install -m 0644 track_pics/*.png ${D}${palmtopdir}/pics/${APPNAME}/track_pics/
+ install -m 0644 track_pics/ZRallyIcon.png ${D}${palmtopdir}/pics/
+}
+
+
+SRC_URI[md5sum] = "7084c0d2b28108563ca45e5ec1533ba1"
+SRC_URI[sha256sum] = "c4fb0477fdc110b63d867ae2a46cca7913fa6a0ca8bf574c7189329bea91dcdf"
diff --git a/recipes-qtopia/zsafe/zsafe_2.1.3.bb b/recipes-qtopia/zsafe/zsafe_2.1.3.bb
new file mode 100644
index 0000000..f417edb
--- /dev/null
+++ b/recipes-qtopia/zsafe/zsafe_2.1.3.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Password manager"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RCONFLICTS_${PN} = "opie-zsafe"
+APPNAME = "zsafe"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+SRC_URI = "http://z-soft.z-portal.info/zsafe/zsafe_2.1.3.tgz"
+S = "${WORKDIR}"
+PR = "r1"
+
+inherit opie
+
+QMAKE_PROFILES = "zsafe.pro"
+
+export OE_QMAKE_LINK="${CXX}"
+
+#FILES bin/zsafe apps/Applications/zsafe.desktop pics/zsafe/zsafe.png
+
+FILES_zsafe = "zsafe"
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/pics/${APPNAME}/*.xpm ${D}${palmtopdir}/pics/${APPNAME}/
+ install -m 0644 ${WORKDIR}/zsafe.png ${D}${palmtopdir}/pics/
+}
+
+SRC_URI[md5sum] = "5e4e10a67de603b04b752ed00311455d"
+SRC_URI[sha256sum] = "0937b15ca5dcd6f49adff04096610cee1f70197e17d461aefa98ed52e5ea0b72"
diff --git a/recipes-qtopia/zshopi/files/zshopi.desktop b/recipes-qtopia/zshopi/files/zshopi.desktop
new file mode 100644
index 0000000..232e06c
--- /dev/null
+++ b/recipes-qtopia/zshopi/files/zshopi.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=Shopping list for the Zaurus.
+Exec=zshopi
+Icon=zshopi
+Type=Application
+Name=ZShopi
diff --git a/recipes-qtopia/zshopi/files/zshopi.png b/recipes-qtopia/zshopi/files/zshopi.png
new file mode 100644
index 0000000..c75f52b
--- /dev/null
+++ b/recipes-qtopia/zshopi/files/zshopi.png
Binary files differ
diff --git a/recipes-qtopia/zshopi/zshopi_0.2.bb b/recipes-qtopia/zshopi/zshopi_0.2.bb
new file mode 100644
index 0000000..8a58a0f
--- /dev/null
+++ b/recipes-qtopia/zshopi/zshopi_0.2.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "Shopping manager"
+SECTION = "opie/applications"
+DEPENDS = "sqlite opie-lrelease-native"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.lachner-net.de/"
+AUTHOR = "Bernd Lachner <dev@lachner-net.de>"
+APPTYPE = "binary"
+APPNAME = "zshopi"
+APPDESKTOP = "${WORKDIR}"
+PR = "r1"
+
+SRC_URI = "http://www.lachner-net.de/old/Frames/Software/zshopi_0.2.tar.bz2 \
+file://zshopi.desktop \
+file://zshopi.png"
+
+S = "${WORKDIR}/${PN}_${PV}/${PN}/"
+
+PACKAGES_prepend = "zshopi-i18n-de "
+
+FILES_zshopi-i18n-de = "/opt/QtPalmtop/i18n/*"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "DEFINES+=QTOPIA LIBS+=-lm LIBS+=-lsqlite LIBS+=-lqpe"
+OE_QMAKE_CXXFLAGS = "-fno-rtti ${CXXFLAGS}"
+
+do_configure_prepend() {
+ qmake -project
+}
+
+do_install() {
+
+ cd "${WORKDIR}/${PN}_${PV}/zshopi"
+ opie-lrelease zshopi.de.ts
+
+
+ install -d ${D}${palmtopdir}/i18n/de
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/zshopi.png ${D}${palmtopdir}/pics/
+ install -m 0644 ${WORKDIR}/${PN}_${PV}/zshopi/zshopi.de.qm ${D}${palmtopdir}/i18n/de/zshopi.qm
+}
+
+SRC_URI[md5sum] = "1343c4de6d586a1b4ed2b5c97d53e717"
+SRC_URI[sha256sum] = "6a136cbc7fdb38c73fe5862f21913e8fe63864063bba833c149c1098d758a12f"
diff --git a/recipes-qtopia/ztappy/ztappy_0.9.1.bb b/recipes-qtopia/ztappy/ztappy_0.9.1.bb
new file mode 100644
index 0000000..e00fa8e
--- /dev/null
+++ b/recipes-qtopia/ztappy/ztappy_0.9.1.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Puzzle Game for Qt/Embedded based palmtop environments."
+SECTION = "opie/games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://user.cs.tu-berlin.de/~karlb/ztappy/ztappy.tar.gz"
+S = "${WORKDIR}/ztappy"
+
+inherit palmtop
+
+do_install() {
+ install -m 0755 ${PN} ${S}/ipk${palmtopdir}/bin/${PN}
+ install -d ${D}${palmtopdir}/
+ cp -pPR ipk/opt/* ${D}/opt
+}
+
+
+SRC_URI[md5sum] = "9bc4d68ba2e17ff91df89452debe2188"
+SRC_URI[sha256sum] = "b23ec333618729edeafbae77b5a73183e6e168c671452b98fac2bf3f13660207"
diff --git a/recipes-qtopia/zten/files/zten.patch b/recipes-qtopia/zten/files/zten.patch
new file mode 100644
index 0000000..3fff27a
--- /dev/null
+++ b/recipes-qtopia/zten/files/zten.patch
@@ -0,0 +1,37 @@
+upstream: no upstream bug tracker. Laibsch contacted author by mail on 2008-02-17.
+
+--- zten/zten.pro.orig 2003-02-16 16:45:44.000000000 +0100
++++ zten/zten.pro 2006-04-23 18:50:19.000000000 +0200
+@@ -1,11 +1,9 @@
+ TEMPLATE = app
+ CONFIG = qt warn_on release
+-HEADERS = pixmap.h \
+- qbookbrowser.h \
++HEADERS = qbookbrowser.h \
+ qbookentry.h \
+ qbookitem.h \
+ qhistorylineedit.h \
+- qlabeledit.h \
+ qlistboxrichtext.h \
+ zpixmap.h \
+ zten.h \
+@@ -29,5 +27,5 @@
+ ztenbookbase.ui \
+ ztencandidatebase.ui \
+ ztenextbase.ui
+-LIBS += -lqpe /opt/Embedix/lib/libeb.a /opt/Embedix/lib/libz.a -L/opt/QtPalmtop/lib -lkakasi
++LIBS += -lqpe -leb -lz -lkakasi
+ TRANSLATIONS = zten.ts
+
+--- zten/qbookentry.cpp.orig 2006-04-23 23:38:00.000000000 +0200
++++ zten/qbookentry.cpp 2006-04-23 23:38:10.000000000 +0200
+@@ -14,7 +14,8 @@
+ }
+
+ static const char* INSERT_MARK = "\a";
+-QTextCodec* g_codec;
++//QTextCodec* g_codec = NULL;
++QTextCodec* g_codec = QTextCodec::codecForName("eucJP");
+ unsigned int last_wide_font = 0;
+ unsigned int last_narrow_font = 0;
+
diff --git a/recipes-qtopia/zten/zten_1.6.2.bb b/recipes-qtopia/zten/zten_1.6.2.bb
new file mode 100644
index 0000000..2250811
--- /dev/null
+++ b/recipes-qtopia/zten/zten_1.6.2.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "EB*/EPWING dictionary browser for Linux Zaurus"
+AUTHOR = "Yuuichi Teranishi <teranisi@gohome.org>"
+HOMEPAGE = "http://www.gohome.org/zten"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "eb kakasi"
+RDEPENDS_${PN} = "virtual-japanese-font"
+RCONFLICTS_${PN} = "ztenv"
+PR = "r2"
+
+SRC_URI = "http://www.gohome.org/cgi-bin/viewcvs.cgi/zten.tar.gz;md5sum=d24f03c8df5c98d510590bd9a63dc932 \
+ file://zten.patch"
+
+S = "${WORKDIR}/zten"
+
+inherit palmtop
+
+CXXFLAGS += " -DQWS"
+
+do_install() {
+ install -d ${D}${palmtopdir}/bin
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -d ${D}${palmtopdir}/pics
+ install -m 0755 zten ${D}${palmtopdir}/bin/zten
+ install -m 0644 zten.desktop ${D}${palmtopdir}/apps/Applications/
+ install -m 0644 Zten.png ${D}${palmtopdir}/pics
+}
+
+
+SRC_URI[md5sum] = "d24f03c8df5c98d510590bd9a63dc932"
+SRC_URI[sha256sum] = "7fa88dcb6da482bc20fc4916f191e9c35d01b3c0f45c9bcd66067029c49cc0b4"
diff --git a/recipes-qtopia/zuc/zuc/fixed-include.patch b/recipes-qtopia/zuc/zuc/fixed-include.patch
new file mode 100644
index 0000000..fc4b809
--- /dev/null
+++ b/recipes-qtopia/zuc/zuc/fixed-include.patch
@@ -0,0 +1,11 @@
+--- a/conv_matrix.cpp 2003-01-27 21:18:45.000000000 +0100
++++ b/conv_matrix.cpp 2009-05-30 00:57:23.311764092 +0200
+@@ -27,7 +27,7 @@
+ #include <qmap.h>
+ #include <qcombobox.h>
+ #include <qpopupmenu.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdlib.h>
+
+
diff --git a/recipes-qtopia/zuc/zuc_1.1.2ern.bb b/recipes-qtopia/zuc/zuc_1.1.2ern.bb
new file mode 100644
index 0000000..0ac2254
--- /dev/null
+++ b/recipes-qtopia/zuc/zuc_1.1.2ern.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "A Unit Conversion Tool"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+APPTYPE = "binary"
+APPNAME = "zuc"
+APPDESKTOP = "${S}"
+PR = "r4"
+
+SRC_URI = "http://www.linux-solutions.at/projects/zaurus/source/zuc_V${PV}.tar.gz;name=archive \
+ http://nick.kreucher.net/zuc/zuc_units;name=units \
+ file://fixed-include.patch"
+
+S = "${WORKDIR}/zuc_V${PV}"
+
+inherit opie
+
+export OE_QMAKE_LINK="${CXX}"
+
+do_configure_append() {
+ echo "#define VERSION \""${PV}"\"" > version.h
+ echo "#define BUILDTIME \""`date +%Y%m%d%H%M`"\"" >> version.h
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 *.png ${D}${palmtopdir}/pics/
+ install -d ${D}${palmtopdir}/etc/
+ install -m 0644 ${WORKDIR}/zuc_units ${D}${palmtopdir}/etc/
+}
+
+SRC_URI[archive.md5sum] = "c4ed24fa825940f4803bd494fd9c12a6"
+SRC_URI[archive.sha256sum] = "8e7d8d05bcc99203f4ca8231647b2a24d51b10abffeb00910cb6eeee85427f86"
+SRC_URI[units.md5sum] = "0d4a28c847829208b0177483e174b3f5"
+SRC_URI[units.sha256sum] = "3bc5735516b47874208b0efe23d498b8d43e51a140b3ff60683d5f1a951f50ac"
diff --git a/recipes-qtopia/zudoku/zudoku/zudoku.desktop b/recipes-qtopia/zudoku/zudoku/zudoku.desktop
new file mode 100644
index 0000000..5b5f9f2
--- /dev/null
+++ b/recipes-qtopia/zudoku/zudoku/zudoku.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Type=Application
+Exec=zudoku
+Icon=zudoku
+Comment=
+Name=Zudoku
diff --git a/recipes-qtopia/zudoku/zudoku/zudoku.html b/recipes-qtopia/zudoku/zudoku/zudoku.html
new file mode 100644
index 0000000..b5ceaac
--- /dev/null
+++ b/recipes-qtopia/zudoku/zudoku/zudoku.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Fig Labs presents &#039;Zudoku&#039;!</title>
+ </head>
+ <p>
+ <h1>Fig Labs presents &#039;Zudoku&#039;!</h1>
+ <h2>About Zudoku</h2>
+ <p>Sudoku, sometimes written Su Doku, is a logic-based placement puzzle, also known as Number Place in the United States. The aim of the puzzle is to enter a numerical digit from 1 to 9 in each cell of a 9x9 grid, starting with various digits given in some cells (the "givens"). The grid is made up of 3x3 subgrids (called "regions"). Each row, column, and region must contain only one instance of each numeral. Completing the puzzle requires patience and logical ability. Although first published in 1979, Sudoku initially caught on in Japan in 1986 and attained international popularity in 2005. Fig Labs Zudoku is a free version of this popular puzzle for your computer.</p>
+ <h2>About Fig Labs</h2>
+ <p>The Fig Labs management team has over 35 years of portable computing experience; between us we've 'done time' at Psion, Symbian, Motorola, Gemplus and Intuwave, building systems software, applications and middleware. So we now feel that we are uniquely placed to tackle the big issue in constrained appliances - complexity - and subsequently make portable technology usable.</p>
+ <h2>Help</h2>
+ <p>You can use Fig Labs Zudoku to:
+ <ul>
+ <li>Generate an unlimited number of puzzles for you to play.</li>
+ <LI>Enter puzzles from newspapers or magazines so that you can play them on your computer.</LI>
+ <li>Create your own puzzles.</li>
+ <li>Help you with solving puzzles, or even solve an entire puzzle for you.</li>
+ <li>Print puzzles out to solve on paper.</li>
+ </ul>
+ </p>
+ <h3><b>Playing a puzzle</b></h3>
+ <p>When you first start Zudoku, it will generate a new 'medium' level puzzle for you. Thereafter, it will always start up from wherever you left it last time.</p>
+ <p>The bold digits are part of the puzzle, the "givens" - you can't change those unless you are designing the puzzle yourself. Digits you enter yourself are italic.</p>
+ <p>You can fill in the blank squares in two ways:
+ <ol><LI>Either: use the cursor keys to move round the grid and press 1-9 to fill in the current square.</LI>
+ <li>Or: click on a square and choose a digit from the pop-up list to fill it in.</li></ol></p>
+ <p>If you fill a square with a digit which breaks the rules of Sudoku, then that digit and those that it clashes with will be highlighted in red.</p>
+ <p>To delete a digit, just use the cursor keys to move to the square and press Spacebar, or click on it and select the blank entry from the pop-up list.</p>
+ <p>To help you solve more difficult puzzles, you can make 'pencil' marks on the board. Choose 'Make pencil marks' from the Game menu. After that, any moves you make will appear as small numbers in a gold colour. You can pencil in several numbers in as many squares as you like. To erase a pencil mark, enter the same number again. To erase all marks in a square, press Spacebar or choose the blank entry from the pop up menu.</p>
+ <p>If you want to start the current puzzle afresh, go to the Game menu and choose Start again.</p>
+ <p>If you want to print the puzzle out, choose Print from the File menu.</p>
+ <h3><b>Creating a new puzzle</b></h3>
+ <p>To start a new puzzle from scratch, go to the Game menu and choose New puzzle. While Zudoku is working, the grid will fill with question marks. When it is ready you will be presented with a brand new puzzle - probably one that has never been seen before!</p>
+ <p>When you start Zudoku, it is set to generate 'medium' level puzzles. To change the level of puzzle generated, go to the Game menu, choose New puzzle level, then pick a new level. If you set the level to Fiendish, sometimes Zudoku can only make a Difficult puzzle. If that happens, just generate again. If you choose 'Unlimited' Zudoku will try and make the hardest puzzle it can.</p>
+ <h3><b>Entering a printed puzzle</b></h3>
+ <p>If you have a printed puzzle, for example in a newspaper, magazine or book, you can enter that into Zudoku. You can then play it or solve it on your computer. To do this, just follow these steps:</p>
+ <p>
+ <ol><LI>Choose Design mode from the Game menu.</LI>
+ <li>Blank out the puzzle by choosing New blank puzzle from the Game menu.</li>
+ <li>Use the cursor keys or the pop-up list to enter digits into the puzzle to match the printed copy.</li>
+ <li>Choose Design mode again from the Game menu to leave Design mode. Zudoku now gives it a difficulty rating and you can start playing.</li></ol></p>
+ <h3><b>Creating your own puzzles</b></h3>
+ <p>Have a go at making your own puzzles - it's harder than it looks! Just go to Design mode as above, and place some digits.</p>
+ <p>If you try and put a digit in an invalid position while in Design mode, Zudoku won't let you do it. Try putting it somewhere else, or changing one of the other digits in the puzzle first.</p>
+ <p>Leave Design mode and see what Zudoku makes of your puzzle. It may tell you that there are Many solutions to the puzzle. In this case, you need to enter some more digits to make sure there is only a single solution. Sometimes Zudoku will think for a while and tell you there is no solution - you probably need to remove some digits to make your puzzle solvable.</p>
+ <h3><b>Helping you solve and design</b></h3>
+ <p>You can ask Zudoku to show you what numbers can possibly go in the empty squares. From the Game menu, choose Show possible moves. Zudoku will fill in small green digits to show the possibilities for each space. If there are 7 or more possible digits, Zudoku just puts an asterisk. If there are no possible digits, Zudoku puts a red exclamation mark.</p>
+ <p>If it all gets too much, or you are just interested to watch, you can ask Zudoku to solve the puzzle for you. Just choose Solve from the Game menu. You will see Zudoku rapidly filling in squares until the grid is full. Where a puzzle has more than one solution, it will simply display the first solution it comes across. If the puzzle is not solvable, Zudoku will try for a while before giving up and telling you.</p>
+ </body>
+</html> \ No newline at end of file
diff --git a/recipes-qtopia/zudoku/zudoku_1.1.bb b/recipes-qtopia/zudoku/zudoku_1.1.bb
new file mode 100644
index 0000000..d7d93bf
--- /dev/null
+++ b/recipes-qtopia/zudoku/zudoku_1.1.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A Sudoku Game for Opie"
+HOMEPAGE = "http://figlabs.com"
+AUTHOR = "FigLabs"
+LICENSE = "GPL"
+SECTION = "opie/games"
+APPTYPE = "binary"
+APPDESKTOP = "${WORKDIR}"
+PR = "r1"
+
+SRC_URI = "http://www.vanille.de/mirror/zudoku-${PV}.tar.gz \
+ file://zudoku.html \
+ file://zudoku.desktop"
+
+inherit opie
+
+EXTRA_QMAKEVARS_POST += "TARGET=zudoku"
+LDFLAGS += "-lstdc++"
+
+do_install() {
+ install -d ${D}${palmtopdir}/help/en/html
+ install -m 0644 ${WORKDIR}/zudoku.html ${D}${palmtopdir}/help/en/html/
+ install -d ${D}${palmtopdir}/pics/
+ install -m 0644 zudoku64x64.png ${D}${palmtopdir}/pics/zudoku.png
+}
+
+SRC_URI[md5sum] = "8f8fd0e106c81897f0c8c3049dbf57de"
+SRC_URI[sha256sum] = "42494c9c712caaf3ca96f8abf59aaeb0fb3dbd2076c21d8642ea4c6cd9a04900"
diff --git a/recipes-support/libetpan/files/libetpan-autoreconf.patch b/recipes-support/libetpan/files/libetpan-autoreconf.patch
new file mode 100644
index 0000000..d05967d
--- /dev/null
+++ b/recipes-support/libetpan/files/libetpan-autoreconf.patch
@@ -0,0 +1,12 @@
+Index: libetpan-0.57/configure.ac
+===================================================================
+--- libetpan-0.57.orig/configure.ac 2008-10-08 19:54:20.000000000 +0000
++++ libetpan-0.57/configure.ac 2008-11-11 16:34:33.000000000 +0000
+@@ -106,6 +106,7 @@
+
+ # Check the C compiler.
+ AC_PROG_CC
++AC_PROG_CXX
+
+ # Compiler flags.
+ AC_ARG_ENABLE(debug, [ --enable-debug setup flags (gcc) for debugging (default=no)],
diff --git a/recipes-support/libetpan/files/libetpan-ldflags.patch b/recipes-support/libetpan/files/libetpan-ldflags.patch
new file mode 100644
index 0000000..438f44f
--- /dev/null
+++ b/recipes-support/libetpan/files/libetpan-ldflags.patch
@@ -0,0 +1,11 @@
+--- libetpan-0.57/configure.ac~ 2009-09-21 23:31:42.000000000 +0200
++++ libetpan-0.57/configure.ac 2009-09-21 23:31:42.000000000 +0200
+@@ -457,7 +457,7 @@
+ LDFLAGS="-$flag $LDFLAGS"
+ AC_TRY_LINK([], [pthread_create();],
+ [pthflag=yes; checkpthread=no],
+- [pthflag=no; LDFLAGS="$OLDCFLAGS"])
++ [pthflag=no; LDFLAGS="$OLDFLAGS"])
+ AC_MSG_RESULT($pthflag)
+ fi
+ done
diff --git a/recipes-support/libetpan/libetpan_0.57.bb b/recipes-support/libetpan/libetpan_0.57.bb
new file mode 100644
index 0000000..c2661bd
--- /dev/null
+++ b/recipes-support/libetpan/libetpan_0.57.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "libetpan is a library for communicating with mail and news servers. \
+It supports the protocols SMTP, POP3, IMAP and NNTP."
+HOMEPAGE = "http://www.etpan.org"
+SECTION = "libs"
+DEPENDS = "gnutls"
+LICENSE = "BSD"
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libetpan/libetpan-${PV}.tar.gz \
+ file://libetpan-autoreconf.patch \
+ file://libetpan-ldflags.patch"
+
+inherit autotools pkgconfig gettext binconfig
+
+EXTRA_OECONF = "--without-openssl --with-gnutls --disable-db"
+
+PARALLEL_MAKE = ""
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev = "${bindir} ${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libdir}/pkgconfig"
+
+
+SRC_URI[md5sum] = "8ce8c6c071e81884a475b12b7f9a9cc0"
+SRC_URI[sha256sum] = "1f3fda5c9e2961d1a6298dc8aadae321493d37727d8db45bc2e8d58f20547011"
diff --git a/recipes-support/manufacturers/manufacturers_20031209.bb b/recipes-support/manufacturers/manufacturers_20031209.bb
new file mode 100644
index 0000000..e7dd48e
--- /dev/null
+++ b/recipes-support/manufacturers/manufacturers_20031209.bb
@@ -0,0 +1,15 @@
+SECTION = "base"
+DESCRIPTION = "Ethernet manufacturer database"
+LICENSE = "PD"
+SRCDATE = "${PV}"
+SRCREV = "ff794de4991efa6403b2368edba6eb4e63d8d449"
+
+PR = "r2"
+
+SRC_URI = "${OPIE_GIT};protocol=git;subpath=etc"
+S = "${WORKDIR}/etc"
+
+do_install() {
+ install -d ${D}${sysconfdir}
+ install -m 0644 manufacturers ${D}${sysconfdir}/
+}
diff --git a/recipes-support/obexftp/obexftp_0.23.bb b/recipes-support/obexftp/obexftp_0.23.bb
new file mode 100644
index 0000000..15710e7
--- /dev/null
+++ b/recipes-support/obexftp/obexftp_0.23.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "OBEX Ftp Client based on openobex."
+SECTION = "console/network"
+HOMEPAGE = "http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp"
+LICENSE = "GPLv2/LGPLv2"
+DEPENDS = "openobex bluez-libs virtual/libusb0 virtual/libiconv"
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/openobex/obexftp-${PV}.tar.bz2 \
+ "
+
+inherit autotools
+
+EXTRA_OECONF += "--enable-bluetooth \
+ --disable-swig \
+ --disable-perl \
+ --disable-python \
+ --disable-tcl \
+ --disable-ruby \
+ --disable-builddocs \
+ --disable-rpath \
+ "
+
+PARALLEL_MAKE = ""
+
+LEAD_SONAME = "libobexftp.so"
+
+
+SRC_URI[md5sum] = "f20762061b68bc921e80be4aebc349eb"
+SRC_URI[sha256sum] = "44a74ff288d38c0f75354d6bc2efe7d6dec10112eaff2e7b10e292b0d2105b36"
diff --git a/recipes-support/obexpush/files/add-obextool.patch b/recipes-support/obexpush/files/add-obextool.patch
new file mode 100644
index 0000000..34a7625
--- /dev/null
+++ b/recipes-support/obexpush/files/add-obextool.patch
@@ -0,0 +1,461 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- obexpush/client/obex_main.c~add-obextool.patch
++++ obexpush/client/obex_main.c
+@@ -221,12 +221,7 @@
+ return NULL;
+ }
+
+-
+- #ifdef OLDLIBOBEX
+- custfunc.userdata = gt->userdata;
+- #else //OLDLIBOBEX
+ custfunc.customdata = gt->userdata;
+- #endif //OLDLIBOBEX
+ custfunc.connect = cobex_connect;
+ custfunc.disconnect = cobex_disconnect;
+ custfunc.write = cobex_write;
+--- /dev/null
++++ obexpush/client/obextool.c
+@@ -0,0 +1,411 @@
++/*
++ *
++ * Bluetooth OBEX tool
++ *
++ * Copyright (C) 2002 Marcel Holtmann <marcel@holtmann.org>
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#include <stdio.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <getopt.h>
++#include <string.h>
++#include <libgen.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/param.h>
++#include <sys/socket.h>
++
++#include <bluetooth/bluetooth.h>
++#include <bluetooth/hci.h>
++#include <bluetooth/hci_lib.h>
++#include <bluetooth/rfcomm.h>
++
++#include <glib.h>
++#include <openobex/obex.h>
++
++
++
++volatile int finished = 0;
++
++struct btobex_context_t {
++ int fd;
++ bdaddr_t bdaddr;
++ uint8_t channel;
++} btobex_context;
++
++
++gint btobex_connect(obex_t *handle, gpointer userdata)
++{
++ struct btobex_context_t *context = userdata;
++ struct sockaddr_rc laddr, raddr;
++ int s;
++
++ if ((s = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)) < 0) {
++ printf("Can't create socket. %s (%d)\n", strerror(errno), errno);
++ return -1;
++ }
++
++ laddr.rc_family = AF_BLUETOOTH;
++ bacpy(&laddr.rc_bdaddr, BDADDR_ANY);
++ laddr.rc_channel = 0;
++ if (bind(s, (struct sockaddr *)&laddr, sizeof(laddr)) < 0) {
++ printf("Can't bind socket. %s (%d)\n", strerror(errno), errno);
++ close(s);
++ return -1;
++ }
++
++ raddr.rc_family = AF_BLUETOOTH;
++ bacpy(&raddr.rc_bdaddr, &context->bdaddr);
++ raddr.rc_channel = context->channel;
++ if (connect(s, (struct sockaddr *)&raddr, sizeof(raddr)) < 0) {
++ printf("Can't connect. %s (%d)\n", strerror(errno), errno);
++ close(s);
++ return -1;
++ }
++
++ context->fd = s;
++
++ return 1;
++}
++
++
++gint btobex_disconnect(obex_t *handle, gpointer userdata)
++{
++ struct btobex_context_t *context = userdata;
++
++ close(context->fd);
++
++ return 1;
++}
++
++
++gint btobex_listen(obex_t *handle, gpointer userdata)
++{
++ printf("The listen command is not implemented\n");
++
++ return -1;
++}
++
++
++gint btobex_write(obex_t *handle, gpointer userdata, guint8 *buffer, gint length)
++{
++ struct btobex_context_t *context = userdata;
++
++ return (write(context->fd, buffer, length));
++}
++
++
++gint btobex_handleinput(obex_t *handle, gpointer userdata, gint timeout)
++{
++ struct btobex_context_t *context = userdata;
++ struct timeval to;
++ fd_set fdset;
++ unsigned char buf[1024];
++ int sel, len;
++
++ to.tv_sec = timeout;
++ to.tv_usec = 0;
++
++ FD_ZERO(&fdset);
++ FD_SET(context->fd, &fdset);
++
++ len = 0;
++
++ if ((sel = select(context->fd + 1, &fdset, NULL, NULL, &to)) > 0) {
++ if ((len = read(context->fd, buf, sizeof(buf))) > 0)
++ OBEX_CustomDataFeed(handle, buf, len);
++ }
++
++ return len;
++}
++
++
++obex_ctrans_t btobex_ctrans = {
++ customdata: &btobex_context,
++ connect: btobex_connect,
++ disconnect: btobex_disconnect,
++ listen: btobex_listen,
++ write: btobex_write,
++ handleinput: btobex_handleinput,
++};
++
++
++void btobex_event(obex_t *handle, obex_object_t *object, gint mode, gint event, gint obex_cmd, gint obex_rsp)
++{
++ switch (event) {
++ case OBEX_EV_PROGRESS:
++ break;
++ case OBEX_EV_ABORT:
++ printf("Request aborted\n");
++ finished = 1;
++ break;
++ case OBEX_EV_REQDONE:
++ finished = 1;
++ break;
++ case OBEX_EV_REQHINT:
++ printf("Request hint\n");
++ break;
++ case OBEX_EV_REQ:
++ printf("Server request\n");
++ break;
++ case OBEX_EV_LINKERR:
++ OBEX_TransportDisconnect(handle);
++ printf("Link broken\n");
++ break;
++ case OBEX_EV_PARSEERR:
++ printf("Parse error\n");
++ break;
++ default:
++ printf("Unknown event 0x%02x\n", event);
++ break;
++ }
++}
++
++
++
++guint8 *btobex_readfile(const char *filename, int *filesize)
++{
++ guint8 *buf;
++ struct stat stats;
++ int fd, fs;
++
++ stat(filename, &stats);
++ fs = stats.st_size;
++
++ if ((fd = open(filename, O_RDONLY, 0)) < 0)
++ return NULL;
++
++ if (!(buf = g_malloc(fs))) {
++ close(fd);
++ return NULL;
++ }
++
++ *filesize = read(fd, buf, fs);
++
++ close(fd);
++
++ return buf;
++}
++
++
++int btobex_push(bdaddr_t *bdaddr, uint8_t channel, char *filename, char *alias)
++{
++ obex_t *handle;
++ obex_object_t *object;
++ obex_headerdata_t hd;
++
++ guint8 namebuf[MAXPATHLEN + 1];
++ int namelen;
++ guint8 *databuf;
++ int datalen;
++
++ int err;
++
++ if (!(handle = OBEX_Init(OBEX_TRANS_CUST, btobex_event, 0))) {
++ printf("Init of OBEX failed. %s (%d)", strerror(errno), errno);
++ return -1;
++ }
++
++ bacpy(&btobex_context.bdaddr, bdaddr);
++ btobex_context.channel = channel;
++
++ OBEX_SetUserData(handle, &btobex_context);
++
++ if (OBEX_RegisterCTransport(handle, &btobex_ctrans) < 0) {
++ printf("Custom transport callback registration failed.");
++ return -1;
++ }
++
++ if (OBEX_TransportConnect(handle, (void *)1, 0) != 1)
++ return -1;
++
++
++ object = OBEX_ObjectNew(handle, OBEX_CMD_CONNECT);
++ err = OBEX_Request(handle, object);
++
++ finished = 0;
++ while (!finished) {
++ if ((err = OBEX_HandleInput(handle, 1)) < 0) {
++ printf("Error while handling input.\n");
++ break;
++ }
++ }
++
++
++ object = OBEX_ObjectNew(handle, OBEX_CMD_PUT);
++
++ namelen = OBEX_CharToUnicode(namebuf, alias, MAXPATHLEN);
++ hd.bs = namebuf;
++ OBEX_ObjectAddHeader(handle, object, OBEX_HDR_NAME, hd, namelen, 0);
++
++ if (!(databuf = btobex_readfile(filename, &datalen))) {
++ OBEX_TransportDisconnect(handle);
++ return -1;
++ }
++
++ hd.bq4 = datalen;
++ OBEX_ObjectAddHeader(handle, object, OBEX_HDR_LENGTH, hd, sizeof(guint32), 0);
++
++ hd.bs = databuf;
++ OBEX_ObjectAddHeader(handle, object, OBEX_HDR_BODY, hd, datalen, 0);
++
++ printf("Sending object ...\n");
++
++ err = OBEX_Request(handle, object);
++
++ finished = 0;
++ while (!finished) {
++ if ((err = OBEX_HandleInput(handle, 1)) < 0) {
++ printf("Error while handling input.\n");
++ break;
++ }
++ }
++
++
++ object = OBEX_ObjectNew(handle, OBEX_CMD_DISCONNECT);
++ err = OBEX_Request(handle, object);
++
++ finished = 0;
++ while (!finished) {
++ if ((err = OBEX_HandleInput(handle, 1)) < 0) {
++ printf("Error while handling input.\n");
++ break;
++ }
++ }
++
++
++ OBEX_TransportDisconnect(handle);
++
++ return 0;
++}
++
++
++
++static void usage(void);
++
++
++void cmd_push(bdaddr_t *local, int argc, char **argv)
++{
++ char *filename;
++ char *alias;
++ bdaddr_t bdaddr;
++ uint8_t channel;
++
++ if (argc < 3) {
++ usage();
++ return;
++ }
++
++ filename = argv[1];
++ alias = basename(filename);
++ str2ba(argv[2], &bdaddr);
++ channel = (argc > 3) ? atoi(argv[3]) : 10;
++
++ btobex_push(&bdaddr, channel, filename, alias);
++}
++
++
++struct {
++ char *cmd;
++ void (*func)(bdaddr_t *bdaddr, int argc, char **argv);
++ char *opt;
++ char *doc;
++} command[] = {
++ { "push", cmd_push, "<file> <bdaddr> [channel]", "Push a file" },
++ { NULL, NULL, 0, 0 }
++};
++
++
++static void usage(void)
++{
++ int i;
++
++ printf("Bluetooth OBEX tool\n\n");
++
++ printf("Usage:\n"
++ "\tobextool [options] <command>\n"
++ "\n");
++
++ printf("Options:\n"
++ "\t-i [hciX|bdaddr] Local HCI device or BD Address\n"
++ "\t-h, --help Display help\n"
++ "\n");
++
++ printf("Commands:\n");
++ for (i = 0; command[i].cmd; i++)
++ printf("\t%-6s %-18s\t%s\n", command[i].cmd,
++ command[i].opt ? command[i].opt : " ",
++ command[i].doc);
++ printf("\n");
++}
++
++
++static struct option main_options[] = {
++ { "help", 0, 0, 'h' },
++ { "device", 1, 0, 'i' },
++ { 0, 0, 0, 0 }
++};
++
++
++int main(int argc, char *argv[])
++{
++ bdaddr_t bdaddr;
++ int i, opt;
++
++ bacpy(&bdaddr, BDADDR_ANY);
++
++ while ((opt = getopt_long(argc, argv, "+i:h", main_options, NULL)) != -1) {
++ switch(opt) {
++ case 'i':
++ if (strncmp(optarg, "hci", 3) == 0)
++ hci_devba(atoi(optarg + 3), &bdaddr);
++ else
++ str2ba(optarg, &bdaddr);
++ break;
++ case 'h':
++ usage();
++ exit(0);
++ default:
++ exit(0);
++ }
++ }
++
++ argc -= optind;
++ argv += optind;
++ optind = 0;
++
++ if (argc < 1) {
++ usage();
++ exit(0);
++ }
++
++ for (i = 0; command[i].cmd; i++) {
++ if (strncmp(command[i].cmd, argv[0], 3))
++ continue;
++ command[i].func(&bdaddr, argc, argv);
++ exit(0);
++ }
++
++ usage();
++
++ return 0;
++}
+--- obexpush/client/Makefile~add-obextool.patch
++++ obexpush/client/Makefile
+@@ -35,11 +35,21 @@
+ #
+
+ ussp-push: obex_main.o obex_socket.o
+- gcc obex_main.o obex_socket.o ${GLIBLIB} ${OBEXLIB} -o ussp-push
++ $(CC) obex_main.o obex_socket.o ${GLIBLIB} ${OBEXLIB} -o ussp-push
+
+ obex_main.o: obex_main.c obex_socket.h
+- gcc ${OBEXINC} ${GLIBINC} -c obex_main.c -o obex_main.o
++ $(CC) ${OBEXINC} ${GLIBINC} -c obex_main.c -o obex_main.o
+
+ obex_socket.o: obex_socket.c obex_socket.h
+- gcc ${OBEXINC} ${GLIBINC} -c obex_socket.c -o obex_socket.o
++ $(CC) ${OBEXINC} ${GLIBINC} -c obex_socket.c -o obex_socket.o
++
++
++
++obextool: obextool.o
++ $(CC) obextool.o ${GLIBLIB} ${OBEXLIB} -lbluetooth -o obextool
++
++obextool.o: obextool.c
++ $(CC) ${OBEXINC} ${GLIBINC} -c obextool.c -o obextool.o
++
++all: ussp-push obextool
+
diff --git a/recipes-support/obexpush/files/init b/recipes-support/obexpush/files/init
new file mode 100644
index 0000000..a9891ef
--- /dev/null
+++ b/recipes-support/obexpush/files/init
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# Start or stop the OBEX Push daemon.
+#
+# Written by Michael Haynie <mbhaynie@zoominternet.net>
+#
+# It might be better to just edit the bluetooth script,
+# since opd depends heavily on it.
+#
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+[ -f /etc/default/opd_args ] && . /etc/default/opd_args
+
+case "$1" in
+ start)
+ echo -n "Starting the OBEX Push daemon: "
+ start-stop-daemon -S -x /usr/sbin/opd -- --daemonize $OPD_ARGS
+ if [ $? = 0 ]; then
+ echo "opd."
+ else
+ echo "(failed.)"
+ fi
+ ;;
+ stop)
+ echo -n "Stopping the OBEX Push daemon: "
+ start-stop-daemon -K \
+ -x /usr/sbin/opd
+ echo "opd."
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ exit
+ ;;
+ *)
+ echo "Usage: " $0 " {start|stop|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0
+
diff --git a/recipes-support/obexpush/files/opd_args b/recipes-support/obexpush/files/opd_args
new file mode 100644
index 0000000..26afc0e
--- /dev/null
+++ b/recipes-support/obexpush/files/opd_args
@@ -0,0 +1 @@
+OPD_ARGS="--mode OBEX --path /var/obexpush --channel 10 --sdp --metadata"
diff --git a/recipes-support/obexpush/obexpush_1.0.0.bb b/recipes-support/obexpush/obexpush_1.0.0.bb
new file mode 100644
index 0000000..5701c28
--- /dev/null
+++ b/recipes-support/obexpush/obexpush_1.0.0.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "Obex Push Utilities"
+HOMEPAGE = "http://www.caside.lancs.ac.uk/java_bt.php"
+SECTION = "console/network"
+LICENSE = "GPL"
+DEPENDS = "glib-2.0 openobex bluez-libs"
+PR = "r7"
+
+SRC_URI = "http://www.caside.lancs.ac.uk/bt/obexpush.tar.gz \
+ file://add-obextool.patch \
+ file://init \
+ file://opd_args"
+S = "${WORKDIR}/obexpush"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "opd"
+INITSCRIPT_PARAMS = "defaults 33 9"
+
+export GLIBINC = "-I${STAGING_INCDIR}/glib-2.0 -I${STAGING_LIBDIR}/glib-2.0/include"
+export GLIBLIB = "-I${STAGING_LIBDIR} -lglib-2.0"
+export OBEXINC = "-I${STAGING_INCDIR}"
+export OBEXLIB = "${LDFLAGS} -lopenobex"
+
+do_configure() {
+ rm -f client/*.o client/ussp-push
+ rm -f opd/*.o opd/opd
+ sed -i 's:gcc:${CC}:' */Makefile
+ sed -i 's:__FUNCTION__::' opd/*.c
+}
+
+do_compile() {
+ oe_runmake -C client ussp-push
+ oe_runmake -C client obextool
+ oe_runmake -C opd
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${sbindir}
+ install -m 0755 client/ussp-push ${D}${bindir}
+ install -m 0755 client/obextool ${D}${bindir}
+ install -m 0755 opd/opd ${D}${sbindir}
+
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/default
+ install -d ${D}/var/obexpush
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/opd
+ install -m 0755 ${WORKDIR}/opd_args ${D}${sysconfdir}/default/opd_args
+}
+
+
+SRC_URI[md5sum] = "edb66ba97fe6c84b6160c670c4bcdea8"
+SRC_URI[sha256sum] = "341c6865aa392b6cf056e1bd9cda53d2f31a942460087ad22d6f6dc91bb0bd0e"