summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/busybox/slingbox-1.3.1/fdisk-readhex.patch20
-rw-r--r--packages/busybox/slingbox_1.3.1.bb7
-rw-r--r--packages/clish/clish_0.7.1.bb6
-rw-r--r--packages/debianutils/debianutils_2.19.bb5
-rw-r--r--packages/display-brightness/display-brightness.sh2
-rw-r--r--packages/display-brightness/display-brightness_1.0.0.bb2
-rw-r--r--packages/linux/linux-epia-2.6.19.2/epia_defconfig109
-rw-r--r--packages/linux/unslung-kernel/defconfig10
-rw-r--r--packages/linux/unslung-kernel_2.4.22.l2.3r63.bb2
-rw-r--r--packages/madwifi/madwifi-ng_r.inc3
-rw-r--r--packages/mesa/mesa-6.5.2/fix-host-compile.patch30
-rw-r--r--packages/mesa/mesa_6.5.2.bb7
-rw-r--r--packages/opie-reader/files/qt4.patch2091
-rw-r--r--packages/opie-reader/uqtreader_cvs.bb71
-rw-r--r--packages/perl/perl-5.8.8/native-ssp.patch14
-rw-r--r--packages/perl/perl-native_5.8.8.bb5
-rw-r--r--packages/python/python-gst_0.10.7.bb5
-rw-r--r--packages/qt/qt4-x11-free_4.3.0.bb7
-rw-r--r--packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch66
-rw-r--r--packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default22
-rwxr-xr-xpackages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init59
-rw-r--r--packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch25
-rw-r--r--packages/rp-pppoe/rp-pppoe-3.8/update-config.patch30
-rw-r--r--packages/rp-pppoe/rp-pppoe_3.8.bb48
-rw-r--r--packages/rt2x00/rt73-k2wrlz_1.0.0.bb19
-rw-r--r--packages/twisted/twisted-2.5.0/.mtn2git_empty0
-rw-r--r--packages/twisted/twisted-2.5.0/remove-zope-check.patch18
-rw-r--r--packages/twisted/twisted_2.5.0.bb180
-rwxr-xr-xpackages/usb-gadget-mode/files/usb-gadget2
-rw-r--r--packages/usb-gadget-mode/usb-gadget-mode.bb17
-rw-r--r--packages/xserver-common/files/sl-cxx00-modmap.patch10
-rw-r--r--packages/xserver-common/xserver-common_1.16.bb2
-rw-r--r--packages/zope/zope_3.3.1.bb41
33 files changed, 2877 insertions, 58 deletions
diff --git a/packages/busybox/slingbox-1.3.1/fdisk-readhex.patch b/packages/busybox/slingbox-1.3.1/fdisk-readhex.patch
new file mode 100644
index 0000000000..d8e32c40e7
--- /dev/null
+++ b/packages/busybox/slingbox-1.3.1/fdisk-readhex.patch
@@ -0,0 +1,20 @@
+--- busybox-1.3.1/util-linux/fdisk.c.orig 2007-06-06 21:18:45.000000000 -0500
++++ busybox-1.3.1/util-linux/fdisk.c 2007-06-06 21:17:20.000000000 -0500
+@@ -331,13 +331,16 @@
+ read_hex(const struct systypes *sys)
+ {
+ unsigned long v;
++ char *e;
+ while (1) {
+ read_nonempty(_("Hex code (type L to list codes): "));
+ if (*line_ptr == 'l' || *line_ptr == 'L') {
+ list_types(sys);
+ continue;
+ }
+- v = bb_strtoul(line_ptr, NULL, 16);
++ v = bb_strtoul(line_ptr, &e, 16);
++ /* Clear out EINVAL code if it's because of the trailing \n */
++ if ((errno == EINVAL) && (*e == '\n')) errno = 0;
+ if (errno || v > 0xff) continue;
+ return v;
+ }
diff --git a/packages/busybox/slingbox_1.3.1.bb b/packages/busybox/slingbox_1.3.1.bb
index 89b189e325..62d150a9fe 100644
--- a/packages/busybox/slingbox_1.3.1.bb
+++ b/packages/busybox/slingbox_1.3.1.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.busybox.net"
LICENSE = "GPL"
SECTION = "base"
PRIORITY = "required"
-PR = "r0"
+PR = "r1"
COMPATIBLE_MACHINE = "nslu2"
SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
@@ -12,12 +12,11 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
file://shadow_h_is_required.patch;patch=1 \
file://df_rootfs.patch;patch=1 \
file://lazy_umount.patch;patch=1 \
- file://halt.patch;patch=1" \
+ file://halt.patch;patch=1 \
+ file://fdisk-readhex.patch;patch=1 \
file://slingbox_name.patch;patch=1 \
file://slingbox.patch;patch=1"
-# file://wget-long-options.patch;patch=1 \
-
S = "${WORKDIR}/busybox-${PV}"
export EXTRA_CFLAGS = "${CFLAGS}"
diff --git a/packages/clish/clish_0.7.1.bb b/packages/clish/clish_0.7.1.bb
index 2fc7020a4c..90757de6dc 100644
--- a/packages/clish/clish_0.7.1.bb
+++ b/packages/clish/clish_0.7.1.bb
@@ -1,10 +1,14 @@
+# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
DESCRIPTION = "modular framework for implementing a CISCO-like CLI on a *NIX system"
LICENSE = "GPL"
SECTION = "console/utils"
-PR="r0"
+PR="r1"
SRC_URI = "${SOURCEFORGE_MIRROR}/clish/clish-0.7.1.tar.gz"
+PARALLEL_MAKE=""
+
S = "${WORKDIR}/clish-${PV}"
inherit autotools
diff --git a/packages/debianutils/debianutils_2.19.bb b/packages/debianutils/debianutils_2.19.bb
new file mode 100644
index 0000000000..30beb5d4ed
--- /dev/null
+++ b/packages/debianutils/debianutils_2.19.bb
@@ -0,0 +1,5 @@
+# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+require debianutils.inc
+PR="r0"
diff --git a/packages/display-brightness/display-brightness.sh b/packages/display-brightness/display-brightness.sh
index 5e1a0e97d4..a82c748309 100644
--- a/packages/display-brightness/display-brightness.sh
+++ b/packages/display-brightness/display-brightness.sh
@@ -28,6 +28,8 @@ if [ "$1" = "up" ]; then
if [ $ACTUAL_BRIGHTNESS -eq $MAX_BRIGHTNESS ]; then
exit 0
else
+
+ test -x /usr/bin/bl && bl on
test "$STEP" -gt "$MAX_BRIGHTNESS" -o "$STEP" -eq "$MAX_BRIGHTNESS" && STEP=1
let CURRENT_BRIGHTNESS=$ACTUAL_BRIGHTNESS+$STEP
echo $CURRENT_BRIGHTNESS >> $BRIGHTNESS_FILE
diff --git a/packages/display-brightness/display-brightness_1.0.0.bb b/packages/display-brightness/display-brightness_1.0.0.bb
index aa3c0995e9..bc46c16631 100644
--- a/packages/display-brightness/display-brightness_1.0.0.bb
+++ b/packages/display-brightness/display-brightness_1.0.0.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "display brightness utility"
AUTHOR = "Patrick Steiner <patrick.steiner@a1.net>"
DEPENDS = ""
PRIORITY = "optional"
-PR = "r2"
+PR = "r3"
LICENSE = "GPLv2"
SRC_URI = "file://display-brightness.sh"
diff --git a/packages/linux/linux-epia-2.6.19.2/epia_defconfig b/packages/linux/linux-epia-2.6.19.2/epia_defconfig
index db84c236cb..4c681d54f5 100644
--- a/packages/linux/linux-epia-2.6.19.2/epia_defconfig
+++ b/packages/linux/linux-epia-2.6.19.2/epia_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.19.2
-# Fri Jan 26 11:55:32 2007
+# Sun May 27 11:25:48 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -464,7 +464,14 @@ CONFIG_BT_HCIUSB_SCO=y
# CONFIG_BT_HCIBPA10X is not set
# CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_WIRELESS_EXT=y
#
# Device Drivers
@@ -850,7 +857,57 @@ CONFIG_VIA_RHINE=y
#
# Wireless LAN (non-hamradio)
#
-# CONFIG_NET_RADIO is not set
+CONFIG_NET_RADIO=y
+# CONFIG_NET_WIRELESS_RTNETLINK is not set
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+CONFIG_STRIP=m
+CONFIG_ARLAN=m
+CONFIG_WAVELAN=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+# CONFIG_IPW2200_RADIOTAP is not set
+# CONFIG_IPW2200_PROMISCUOUS is not set
+# CONFIG_IPW2200_QOS is not set
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_ATMEL=m
+# CONFIG_PCI_ATMEL is not set
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_BCM43XX=m
+CONFIG_BCM43XX_DEBUG=y
+CONFIG_BCM43XX_DMA=y
+CONFIG_BCM43XX_PIO=y
+CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
+# CONFIG_BCM43XX_DMA_MODE is not set
+# CONFIG_BCM43XX_PIO_MODE is not set
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_NET_WIRELESS=y
#
# Wan interfaces
@@ -972,7 +1029,11 @@ CONFIG_PPDEV=m
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
-# CONFIG_HW_RANDOM is not set
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_INTEL=y
+CONFIG_HW_RANDOM_AMD=y
+CONFIG_HW_RANDOM_GEODE=y
+CONFIG_HW_RANDOM_VIA=y
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_GEN_RTC is not set
@@ -1858,7 +1919,45 @@ CONFIG_DOUBLEFAULT=y
#
# Cryptographic options
#
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=m
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_TWOFISH_586 is not set
+# CONFIG_CRYPTO_SERPENT is not set
+CONFIG_CRYPTO_AES=m
+# CONFIG_CRYPTO_AES_586 is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
#
# Library routines
diff --git a/packages/linux/unslung-kernel/defconfig b/packages/linux/unslung-kernel/defconfig
index a5ad6094ae..03247f74b5 100644
--- a/packages/linux/unslung-kernel/defconfig
+++ b/packages/linux/unslung-kernel/defconfig
@@ -758,11 +758,11 @@ CONFIG_SCSI_MULTI_LUN=y
#
# Input core support
#
-# CONFIG_INPUT is not set
+CONFIG_INPUT=m
# CONFIG_INPUT_KEYBDEV is not set
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+CONFIG_INPUT_EVDEV=m
#
# Character devices
@@ -1126,13 +1126,13 @@ CONFIG_USB_PRINTER=m
#
# USB Human Interface Devices (HID)
#
-# CONFIG_USB_HID is not set
+CONFIG_USB_HID=m
#
# Input core support is needed for USB HID input layer or HIDBP support
#
-# CONFIG_USB_HIDINPUT is not set
-# CONFIG_USB_HIDDEV is not set
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
diff --git a/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb b/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb
index df3141725c..cb3f9be78b 100644
--- a/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb
+++ b/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb
@@ -1,7 +1,7 @@
SECTION = "kernel"
DESCRIPTION = "Vendor-compatible Linux kernel for the Linksys NSLU2 device"
LICENSE = "GPL"
-PR = "r18"
+PR = "r19"
COMPATIBLE_HOST = 'arm.*-linux'
COMPATIBLE_MACHINE = "nslu2"
diff --git a/packages/madwifi/madwifi-ng_r.inc b/packages/madwifi/madwifi-ng_r.inc
index 574a8b440a..73c585b0d8 100644
--- a/packages/madwifi/madwifi-ng_r.inc
+++ b/packages/madwifi/madwifi-ng_r.inc
@@ -4,7 +4,7 @@ PRIORITY = "optional"
LICENSE = "GPL"
RDEPENDS = "kernel (${KERNEL_VERSION})"
DEPENDS = "virtual/kernel"
-PR="r4"
+PR="r5"
WACKELF_SRC_URI = ""
WACKELF_SRC_URI_ixp4xx = " file://20-xscale-VFP-wackelf.patch;patch=1"
@@ -23,6 +23,7 @@ inherit module-base
ARCH_efika="powerpc"
ARCH_dht-walnut="ppc"
ARCH_magicbox="ppc"
+ARCH_sequoia="ppc"
EXTRA_OEMAKE = "LDFLAGS= KERNELPATH=${STAGING_KERNEL_DIR} KERNELRELEASE=${KERNEL_VERSION} TOOLPREFIX=${TARGET_PREFIX}"
diff --git a/packages/mesa/mesa-6.5.2/fix-host-compile.patch b/packages/mesa/mesa-6.5.2/fix-host-compile.patch
new file mode 100644
index 0000000000..d24d03d379
--- /dev/null
+++ b/packages/mesa/mesa-6.5.2/fix-host-compile.patch
@@ -0,0 +1,30 @@
+--- /src/mesa/x86/orig-Makefile 2005-07-01 04:54:38.000000000 +0300
++++ /src/mesa/x86/Makefile 2007-06-07 21:52:31.000000000 +0300
+@@ -5,6 +5,7 @@
+
+
+ INCLUDE_DIRS = \
++ -I/usr/include \
+ -I$(TOP)/include/GL \
+ -I$(TOP)/include \
+ -I.. \
+@@ -13,6 +14,10 @@
+ -I../glapi \
+ -I../tnl
+
++OPT_FLAGS_host = -fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os
++
++CFLAGS_host = -Wall -Wmissing-prototypes $(OPT_FLAGS_host) $(PIC_FLAGS) $(ARCH_FLAGS) \
++ $(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
+
+ default: gen_matypes matypes.h
+
+@@ -21,7 +26,7 @@
+
+
+ gen_matypes: gen_matypes.c
+- $(CC) $(INCLUDE_DIRS) $(CFLAGS) gen_matypes.c -o gen_matypes
++ $(CC) $(INCLUDE_DIRS) $(CFLAGS_host) gen_matypes.c -o gen_matypes
+
+ # need some special rules here, unfortunately
+ matypes.h: ../main/mtypes.h ../tnl/t_context.h gen_matypes
diff --git a/packages/mesa/mesa_6.5.2.bb b/packages/mesa/mesa_6.5.2.bb
index 1c245f003b..79993cc1f1 100644
--- a/packages/mesa/mesa_6.5.2.bb
+++ b/packages/mesa/mesa_6.5.2.bb
@@ -1,3 +1,8 @@
-PR = "r0"
+PR = "r1"
include mesa-mesa.inc
+
+SRC_URI_append = " file://fix-host-compile.patch;patch=1 "
+
+
+
diff --git a/packages/opie-reader/files/qt4.patch b/packages/opie-reader/files/qt4.patch
new file mode 100644
index 0000000000..82f3b9fdd1
--- /dev/null
+++ b/packages/opie-reader/files/qt4.patch
@@ -0,0 +1,2091 @@
+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..8c1eadc 100644
+--- a/BuffDoc.cpp
++++ b/BuffDoc.cpp
+@@ -682,7 +682,8 @@ int BuffDoc::openfile(QWidget* _parent, const char *src)
+ #endif
+ codecpath += "/plugins/reader/codecs";
+ #else
+- QString codecpath(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString codecpath(rd?rd:"/usr/lib/uqtreader");
+ codecpath += "/codecs";
+ #endif
+ QDir d(codecpath, "*.so");
+@@ -690,19 +691,14 @@ int BuffDoc::openfile(QWidget* _parent, const char *src)
+ 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..4baa890 100644
+--- a/CFilter.cpp
++++ b/CFilter.cpp
+@@ -673,7 +673,8 @@ ExternFilter::ExternFilter(const QString& nm, const QString& optional) : filt(NU
+ #endif
+ filterpath += "/plugins/reader/filters/lib";
+ #else
+- QString filterpath(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString filterpath(rd?rd:"/usr/lib/uqtreader");
+ filterpath += "/filters/lib";
+ #endif
+ filterpath += nm;
+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..b80dd6e 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;
+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..f3df856 100644
+--- a/Prefs.cpp
++++ b/Prefs.cpp
+@@ -27,6 +27,7 @@
+ #include <qpe/menubutton.h>
+ #endif
+ #include <qfontdatabase.h>
++#include <Qt3Support/Q3ButtonGroup>
+
+ #ifdef USECOMBO
+ void populate_colours(QComboBox *mb)
+@@ -58,7 +59,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 +593,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 +608,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 +619,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 +663,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 );
+@@ -715,7 +716,8 @@ CScrollPrefs::CScrollPrefs( QWidget* parent, const char* name, WFlags fl )
+ #endif
+ codecpath += "/plugins/reader/outcodecs";
+ #else
+- QString codecpath(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString codecpath(rd?rd:"/usr/lib/uqtreader");
+ codecpath += "/outcodecs";
+ #endif
+ QDir ocd(codecpath, "lib*.so");
+@@ -772,7 +774,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 +786,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 +811,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..b525435 100644
+--- a/QTReaderApp.cpp
++++ b/QTReaderApp.cpp
+@@ -20,7 +20,9 @@
+
+ #include <qregexp.h>
+ #include <qclipboard.h>
+-#include <qwidgetstack.h>
++#include <Qt3Support/Q3WidgetStack>
++#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>
+@@ -106,7 +107,8 @@ bool CheckVersion(int&, int&, char&, QWidget*);
+ //#define PICDIR "/home/tim/uqtreader/pics/"
+ QString picdir()
+ {
+- QString hd(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString hd(rd?rd:"/usr/share/uqtreader");
+ return hd + "/pics";
+ }
+ #define PICDIR picdir()
+@@ -156,16 +158,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;
+@@ -207,6 +202,8 @@ void QTReaderApp::hidetoolbars()
+
+ #if defined(USEQPE)
+ menubar->hide();
++#else
++ mb->hide();
+ #endif
+
+ if (m_scrollbar != NULL) m_scrollbar->hide();
+@@ -233,7 +230,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 +334,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 );
+@@ -384,7 +381,7 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ vlayout->addLayout(m_layout, 1);
+ vlayout->addWidget(m_prog);
+
+- editorStack = new QWidgetStack( widge );
++ editorStack = new Q3WidgetStack( widge );
+ // setCentralWidget( editorStack );
+
+ searchVisible = FALSE;
+@@ -574,137 +571,137 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
+ connect( reader, SIGNAL(RefreshBitmap()), this, SLOT(setBackgroundBitmap()));
+ editorStack->addWidget( reader, get_unique_id() );
+
+- 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 +712,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 +728,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 +793,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 +865,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 +887,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 +910,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 );
+
+@@ -965,7 +962,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 +1223,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 +1250,7 @@ bool QTReaderApp::checkbar(Config* _config, const QString& key)
+ }
+
+
+-QToolBar* QTReaderApp::filebar()
++Q3ToolBar* QTReaderApp::filebar()
+ {
+ if (fileBar == NULL)
+ {
+@@ -1270,21 +1267,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 +1295,7 @@ QToolBar* QTReaderApp::viewbar()
+ }
+ return viewBar;
+ }
+-QToolBar* QTReaderApp::navbar()
++Q3ToolBar* QTReaderApp::navbar()
+ {
+ if (navBar == NULL)
+ {
+@@ -1306,7 +1303,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 +1318,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 +1340,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 +1784,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());
+@@ -2658,7 +2655,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 +2719,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
+@@ -3799,7 +3796,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
+@@ -4738,17 +4735,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;
+diff --git a/QTReaderApp.h b/QTReaderApp.h
+index ab1b7ad..26c7695 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 <Qt3Support/Q3WidgetStack>
++#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,21 +426,21 @@ private slots:
+ #else
+ bool dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg);
+ #endif
+- QWidgetStack *editorStack;
++ Q3WidgetStack *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;
+@@ -451,7 +459,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..1c51e5b 100644
+--- a/decompress.cpp
++++ b/decompress.cpp
+@@ -68,7 +68,8 @@ size_t (*getdecompressor(char* _s))(UInt8*, size_t, UInt8*, size_t)
+ #endif
+ codecpath += "/plugins/reader/support/libpluckerdecompress.so";
+ #else
+- QString codecpath(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString codecpath(rd?rd:"/usr/lib/uqtreader");
+ codecpath += "/support/libpluckerdecompress.so";
+ #endif
+ qDebug("Codec:%s", (const char*)codecpath);
+diff --git a/ebookcodec.h b/ebookcodec.h
+index 4229fb9..a7767c7 100644
+--- a/ebookcodec.h
++++ b/ebookcodec.h
+@@ -30,7 +30,8 @@ class ebookcodec : public CExpander_Interface
+ #endif
+ codecpath += "/plugins/reader/codecs/";
+ #else
+- QString codecpath(getenv("READERDIR"));
++ const char *rd = getenv("READER");
++ QString codecpath(rd?rd:"/usr/lib/uqtreader");
+ codecpath += "/codecs/";
+ #endif
+ codecpath += _s;
+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..8e1cc2b
+--- /dev/null
++++ b/opiedir/include.pro
+@@ -0,0 +1,7 @@
++DEFINES -= OPIE USEQPE
++DEFINES += QT3_SUPPORT
++
++LIBS -= -lopiecore2 -lopieui2 -lqpe
++LIBS += -L${OPIEDIR}/lib
++
++QT += core gui qt3support
+diff --git a/outputcodec.h b/outputcodec.h
+index 727575c..6a0bdfe 100644
+--- a/outputcodec.h
++++ b/outputcodec.h
+@@ -37,7 +37,8 @@ class outputcodec : public COutput
+ #endif
+ codecpath += "/plugins/reader/outcodecs/lib";
+ #else
+- QString codecpath(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString codecpath(rd?rd:"/usr/lib/uqtreader");
+ codecpath += "/outcodecs/lib";
+ #endif
+ codecpath += _s;
+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..6dba68e 100644
+--- a/striphtml.cpp
++++ b/striphtml.cpp
+@@ -209,14 +209,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 +285,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
+@@ -333,7 +333,8 @@ void striphtml::initentmap()
+ #endif
+ fname += "/plugins/reader/data";
+ #else
+- QString fname(getenv("READERDIR"));
++ const char *rd = getenv("READERDIR");
++ QString fname(rd?rd:"/usr/share/uqtreader");
+ fname += "/data";
+ #endif
+ QFileInfo fi;
+@@ -347,7 +348,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/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/packages/opie-reader/uqtreader_cvs.bb b/packages/opie-reader/uqtreader_cvs.bb
new file mode 100644
index 0000000000..a19491d92f
--- /dev/null
+++ b/packages/opie-reader/uqtreader_cvs.bb
@@ -0,0 +1,71 @@
+DESCRIPTION = "qt4-x11 opie-reader ebook reader port"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+RRECOMMENDS="${PN}-filter-html"
+
+S = "${WORKDIR}/opie-reader"
+PV = "${OPIE_CVS_PV}"
+PR = "r1"
+
+SRC_URI = "${HANDHELDS_CVS};module=opie/noncore/apps/opie-reader \
+ ${HANDHELDS_CVS};module=opie/pics \
+ ${HANDHELDS_CVS};module=opie/apps \
+ file://qt4.patch;patch=1"
+
+export OPIEDIR="${S}/opiedir"
+
+inherit qmake-base qt4x11
+
+do_configure() {
+ ${OE_QMAKE_QMAKE} -recursive opie-reader.pro
+}
+do_compile() {
+ oe_runmake
+}
+do_install() {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/opiedir/bin/opie-reader ${D}/usr/bin/uqtreader
+ install -d ${D}/usr/lib/uqtreader
+ cp -Rpd ${S}/opiedir/{lib,plugins/reader/support}/lib*.so.* ${D}/usr/lib/
+ for so in ${S}/opiedir/plugins/reader/{codecs,filters,outcodecs}/lib*.so ; do
+ soso="${so#${S}/opiedir/plugins/reader/}"
+ dd="${D}/usr/lib/uqtreader/$(dirname "$soso")"
+ install -d "$dd"
+ install -m 0755 "$so" "${dd}/$(basename "$soso")"
+ done
+ install -d ${D}/usr/share/uqtreader
+ cp -Rpd ${S}/opiedir/plugins/reader/data ${D}/usr/share/uqtreader/
+ install -d ${D}/usr/share/uqtreader/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}/usr/share/uqtreader/pics/
+ install -d ${D}/usr/share/applications
+ sed <${WORKDIR}/apps/Applications/opie-reader.desktop \
+ -e '/^CanFastLoad/d' -e 's,^Icon=.*,Icon=/usr/share/uqtreader/pics/OpieReader.png,g' \
+ -e 's,^Exec=.*,Exec=/usr/bin/uqtreader,g' \
+ -e '$aType=Application' -e 'aCategories=Applications' \
+ -e '/^Name/s/Opie/UQT/g' \
+ >${D}/usr/share/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 = "/usr/lib/libreader_pdb.so.*"
+FILES_${PN}-codeclib = "/usr/lib/libreader_codec.so.*"
+FILES_${PN}-codec-aportis = "/usr/lib/uqtreader/codecs/libAportis.so"
+FILES_${PN}-codec-arrierego = "/usr/lib/uqtreader/codecs/libArriereGo.so"
+FILES_${PN}-codec-chm = "/usr/lib/uqtreader/codecs/libCHM.so"
+FILES_${PN}-codec-plucker = "/usr/lib/uqtreader/codecs/libPlucker.so /usr/lib/lib*plucker*.so.*"
+DEBIAN_NOAUTONAME_${PN}-codec-plucker = 1
+FILES_${PN}-codec-reb = "/usr/lib/uqtreader/codecs/libReb.so"
+FILES_${PN}-codec-weasel = "/usr/lib/uqtreader/codecs/libWeasel.so"
+FILES_${PN}-codec-isilo = "/usr/lib/uqtreader/codecs/libiSilo.so"
+FILES_${PN}-codec-ppms = "/usr/lib/uqtreader/codecs/libppms.so"
+FILES_${PN}-filter-html = "/usr/lib/uqtreader/filters/libHTMLfilter.so"
+FILES_${PN}-output-flitecmd = "/usr/lib/uqtreader/outcodecs/libflitecmd.so"
+FILES_${PN} = "/usr/bin/uqtreader /usr/share/uqtreader/data/* /usr/share/uqtreader/pics/* /usr/share/applications/*.desktop"
diff --git a/packages/perl/perl-5.8.8/native-ssp.patch b/packages/perl/perl-5.8.8/native-ssp.patch
new file mode 100644
index 0000000000..f815aad452
--- /dev/null
+++ b/packages/perl/perl-5.8.8/native-ssp.patch
@@ -0,0 +1,14 @@
+Fix for compiling with ssp enabled gcc:
+See http://bugs.openembedded.org/show_bug.cgi?id=1980
+
+diff -Naur perl-5.8.7.orig/cflags.SH perl-5.8.7/cflags.SH
+--- perl-5.8.7.orig/cflags.SH 2002-09-30 10:59:07.000000000 +0000
++++ perl-5.8.7/cflags.SH 2005-10-02 04:08:39.000000000 +0000
+@@ -165,6 +165,8 @@
+ esac
+
+ : Can we perhaps use $ansi2knr here
++ [[ $file == regcomp ]] && export ccflags="${ccflags} -fno-stack-protector"
++ [[ $file == regexec ]] && export ccflags="${ccflags} -fno-stack-protector"
+ echo "$cc -c -DPERL_CORE $ccflags $optimize $warn"
+ eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn"'
diff --git a/packages/perl/perl-native_5.8.8.bb b/packages/perl/perl-native_5.8.8.bb
index d4896daa12..dd9a581614 100644
--- a/packages/perl/perl-native_5.8.8.bb
+++ b/packages/perl/perl-native_5.8.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "virtual/db-native gdbm-native"
-PR = "r10"
+PR = "r11"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
@@ -14,7 +14,8 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
file://native-nopacklist.patch;patch=1 \
file://native-no-gdbminc.patch;patch=1 \
file://native-perlinc.patch;patch=1 \
- file://native-makedepend-dash.patch;patch=1"
+ file://native-makedepend-dash.patch;patch=1 \
+ file://native-ssp.patch;patch=1"
S = "${WORKDIR}/perl-${PV}"
diff --git a/packages/python/python-gst_0.10.7.bb b/packages/python/python-gst_0.10.7.bb
index d206c0ab12..ef4cac7b6b 100644
--- a/packages/python/python-gst_0.10.7.bb
+++ b/packages/python/python-gst_0.10.7.bb
@@ -1,7 +1,8 @@
DESCRIPTION = "Python Gstreamer bindings"
SECTION = "devel/python"
LICENSE = "LGPL"
-DEPENDS = "gstreamer"
+DEPENDS = "gstreamer python-pygobject"
+PR = "r1"
SRC_URI = "http://gstreamer.freedesktop.org/src/gst-python/gst-python-${PV}.tar.bz2 \
file://python-path.patch;patch=1"
@@ -20,3 +21,5 @@ do_configure_prepend() {
do_stage() {
autotools_stage_all
}
+
+FILES_${PN}-dbg = "${libdir}/python2.4/site-packages/gst-0.10/gst/.debug/"
diff --git a/packages/qt/qt4-x11-free_4.3.0.bb b/packages/qt/qt4-x11-free_4.3.0.bb
index 830b93e229..4ff41fa8fd 100644
--- a/packages/qt/qt4-x11-free_4.3.0.bb
+++ b/packages/qt/qt4-x11-free_4.3.0.bb
@@ -51,11 +51,11 @@ do_configure() {
echo "DEFINES += QT_NO_XIM" >>src/qbase.pri
unset QMAKESPEC
ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
- ln -sf ./linux-g++ mkspecs/linux-gnueabi-g++
+ ln -s linux-g++ mkspecs/${TARGET_OS}-oe-g++
#export QMAKESPEC="linux-oe-g++"
#rm -rf ./mkspecs
#ln -sf ${QMAKE_MKSPEC_PATH} ./mkspecs
- echo yes | ./configure -prefix / -platform ${TARGET_OS}-g++ -crossarch ${QT_ARCH} ${QT_CONFIG_FLAGS} -fast \
+ echo yes | ./configure -prefix / -platform ${TARGET_OS}-oe-g++ -crossarch ${QT_ARCH} ${QT_CONFIG_FLAGS} -fast \
-L${STAGING_LIBDIR} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/freetype2 -I${STAGING_INCDIR}/mysql
}
@@ -85,6 +85,7 @@ do_stage() {
install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${STAGING_QT_DIR}/bin/rcc
install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${STAGING_QT_DIR}/bin/moc
install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${STAGING_QT_DIR}/bin/uic
+ sed -i -e 's,^QMAKE_RPATHDIR.*,QMAKE_RPATHDIR=${STAGING_QT_DIR}/lib,g' ${STAGING_QT_DIR}/mkspecs/qconfig.pri
}
# FIXME: Might want to call oe_runmake install INSTALL_ROOT=${D}/${prefix} as well...
@@ -97,7 +98,7 @@ do_install() {
do
oe_libinstall -so -C lib libQt$part ${D}${libdir}
done
- oe_libinstall -a -C lib libQtUiTools ${STAGING_QT_DIR}
+ oe_libinstall -a -C lib libQtUiTools ${D}${libdir}
cp -pPR include/* ${D}${includedir}
cp -pPR plugins ${D}${libdir}
cp -pPR bin/* ${D}${bindir}
diff --git a/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch b/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch
index 4ea5908737..381a44d303 100644
--- a/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch
+++ b/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch
@@ -1,26 +1,63 @@
---- rp-pppoe-3.8/src/configure.in 2007/04/30 07:21:25 1.1
-+++ rp-pppoe-3.8/src/configure.in 2007/04/30 07:22:06
-@@ -5,6 +5,12 @@
+Index: src/configure.in
+===================================================================
+--- rp-pppoe-3.8.orig/src/configure.in 2006-04-03 00:29:42.000000000 +1000
++++ rp-pppoe-3.8/src/configure.in 2007-06-07 22:19:36.000000000 +1000
+@@ -5,6 +5,13 @@
dnl pppd directory for kernel-mode PPPoE
PPPD_DIR=ppp-2.4.1.pppoe2
+dnl hard code some paths
+PPPD=/usr/sbin/pppd
+ID=/usr/bin/id
++ECHO=/bin/echo
+AC_ARG_VAR(PPPD)
+AC_ARG_VAR(ID)
+
AC_CONFIG_HEADER(config.h)
AC_PREFIX_DEFAULT(/usr)
-@@ -131,15 +137,10 @@
+@@ -44,7 +51,7 @@
+ AC_MSG_RESULT($ac_cv_struct_sockaddr_ll)
+
+ if test "$ac_cv_struct_sockaddr_ll" = yes ; then
+-AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL)
++AC_DEFINE([HAVE_STRUCT_SOCKADDR_LL], [], [Have struct SOCKADDR_LL])
+ fi
+
+ dnl Check for N_HDLC line discipline
+@@ -55,7 +62,7 @@
+ ac_cv_n_hdlc=no)
+ AC_MSG_RESULT($ac_cv_n_hdlc)
+ if test "$ac_cv_n_hdlc" = yes ; then
+-AC_DEFINE(HAVE_N_HDLC)
++AC_DEFINE([HAVE_N_HDLC], [], [Have N_HDLC])
+ fi
+
+ AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no)
+@@ -100,13 +107,13 @@
+ if test "$ac_cv_header_linux_if_pppox_h" = yes ; then
+ if test "$ac_cv_pluginpath" != no ; then
+ LINUX_KERNELMODE_PLUGIN=rp-pppoe.so
+- AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE)
++ AC_DEFINE([HAVE_LINUX_KERNEL_PPPOE], [], [Have kernel PPPoE])
+ PPPD_INCDIR=$ac_cv_pluginpath
+ fi
+ fi
+
+ if test "$ac_cv_debugging" = "yes" ; then
+- AC_DEFINE(DEBUGGING_ENABLED)
++ AC_DEFINE([DEBUGGING_ENABLED], [], [Debugging enabled])
+ fi
+
+ AC_SUBST(LINUX_KERNELMODE_PLUGIN)
+@@ -131,15 +138,8 @@
AC_CHECK_SIZEOF(unsigned int)
AC_CHECK_SIZEOF(unsigned long)
-dnl Check for location of pppd
-AC_PATH_PROG(PPPD, pppd, NOTFOUND, $PATH:/sbin:/usr/sbin:/usr/local/sbin)
- AC_PATH_PROG(ECHO, echo, echo)
-
+-AC_PATH_PROG(ECHO, echo, echo)
+-
-dnl Check for setsid (probably Linux-specific)
-AC_PATH_PROG(SETSID, setsid, "", $PATH:/sbin:/usr/sbin:/usr/local/sbin)
-
@@ -30,7 +67,7 @@
dnl Check for Linux-specific kernel support for PPPoE
AC_MSG_CHECKING(for Linux 2.4.X kernel-mode PPPoE support)
-@@ -183,44 +184,8 @@
+@@ -183,44 +183,8 @@
CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -ansi"
fi
@@ -76,7 +113,7 @@
AC_TRY_RUN([
union foo {
struct bar {
-@@ -245,6 +210,7 @@
+@@ -245,10 +209,11 @@
}
}], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev,
$ECHO "no defaults for cross-compiling"; exit 0)
@@ -84,3 +121,16 @@
if test "$rpppoe_cv_pack_bitfields" = "rev" ; then
AC_MSG_RESULT(reversed)
+- AC_DEFINE(PACK_BITFIELDS_REVERSED)
++ AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields])
+ else
+ AC_MSG_RESULT(normal)
+ fi
+@@ -312,6 +277,7 @@
+ AC_SUBST(RDYNAMIC)
+ AC_SUBST(LIBEVENT)
+ AC_SUBST(ECHO)
++AC_SUBST(HAVE_STRUCT_SOCKADDR_LL)
+
+ datadir_evaluated=`eval echo $datadir`
+ AC_SUBST(datadir_evaluated)
diff --git a/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default
new file mode 100644
index 0000000000..996d57f3cf
--- /dev/null
+++ b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default
@@ -0,0 +1,22 @@
+# PPPoE Server options
+
+# Maximum segment size, not used for in kernel PPPoE
+#MSS=1412
+
+# Device(s) - Space seperated list of devices to listen on
+#DEVICES="eth1"
+
+# Local IP
+#LOCAL_IP=10.0.0.1
+
+# Starting remote IP
+#REMOTE_IP=10.67.15.1
+
+# Service name
+#SERVICE_NAME="acme"
+
+# Maximum number of sessions, default is 16
+#MAX_SESSIONS=64
+
+# Access concentrator name, default is the hostname
+#ACCESS_CONCENTRATOR_NAME="pppoe-rtr-1"
diff --git a/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init
new file mode 100755
index 0000000000..21afe0be39
--- /dev/null
+++ b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init
@@ -0,0 +1,59 @@
+#! /bin/sh
+
+test -f /usr/sbin/pppoe-server || exit 0
+test -f /etc/default/pppoe-server && . /etc/default/pppoe-server
+
+case $1 in
+ start)
+ OPTIONS=""
+ if [ -n "$MSS" ]; then
+ OPTIONS="$OPTIONS -m $MSS"
+ fi
+ if [ -n "$DEVICES" ]; then
+ for i in $DEVICES; do
+ OPTIONS="$OPTIONS -I $i"
+ done
+ fi
+ if [ -n "$LOCAL_IP" ]; then
+ OPTIONS="$OPTIONS -L $LOCAL_IP"
+ fi
+ if [ -n "$REMOTE_IP" ]; then
+ OPTIONS="$OPTIONS -R $REMOTE_IP"
+ fi
+ if [ -n "$SERVICE_NAME" ]; then
+ OPTIONS="$OPTIONS -S $SERVICE_NAME"
+ fi
+ if [ -n "$MAX_SESSIONS" ]; then
+ OPTIONS="$OPTIONS -N $MAX_SESSIONS"
+ fi
+ if [ -n "$ACCESS_CONCENTRATOR_NAME" ]; then
+ OPTIONS="$OPTIONS -C $ACCESS_CONCENTRATOR_NAME"
+ fi
+ echo -n "Starting PPPoE server: pppoe-server"
+ start-stop-daemon --start --quiet --exec /usr/sbin/pppoe-server -- $OPTIONS
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping PPPoE server: pppoe-server"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/pppoe-server -- $OPTIONS
+ echo "."
+ ;;
+ status)
+ pid=$(pidof pppoe-server)
+ if [ -n "$pid" ] ; then
+ echo "Running with pid $pid"
+ else
+ echo "Not running"
+ fi
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/pppoe-server {start|stop|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch b/packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch
new file mode 100644
index 0000000000..e3b0482984
--- /dev/null
+++ b/packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch
@@ -0,0 +1,25 @@
+The autoconf stuff is all in a subdirectory, which is rather annoying
+as OE expects patches to be applied and autoconf stuff to be done in
+S. This adds enough autoconf at the top level to allow it to be
+called there - all it does is run a sub autoconf stuff in the src
+directory.
+
+Index: rp-pppoe-3.8/Makefile.am
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ rp-pppoe-3.8/Makefile.am 2007-06-08 15:58:16.000000000 +1000
+@@ -0,0 +1,5 @@
++PACKAGE = rp-pppoe
++VERSION = 3.8
++
++dnl AM_CFLAGS = -Wall -DDEBUG
++SUBDIRS = src
+Index: rp-pppoe-3.8/configure.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ rp-pppoe-3.8/configure.in 2007-06-08 15:58:16.000000000 +1000
+@@ -0,0 +1,4 @@
++AC_INIT(src/pppoe.c)
++AM_INIT_AUTOMAKE([rp-pppoe], [3.8])
++AC_CONFIG_SUBDIRS(src)
++AC_OUTPUT(Makefile)
diff --git a/packages/rp-pppoe/rp-pppoe-3.8/update-config.patch b/packages/rp-pppoe/rp-pppoe-3.8/update-config.patch
new file mode 100644
index 0000000000..5642e3cfee
--- /dev/null
+++ b/packages/rp-pppoe/rp-pppoe-3.8/update-config.patch
@@ -0,0 +1,30 @@
+Set the timeout to 0 since we don't want pppoe to try reconnecting,
+we want whatever is calling it to reconnect. Lots of odd things
+happen when you have pppoe retrying itself.
+
+The path for the plugin is wrong, it's now part of ppp and is in a
+ppp's plugin lib directory. If no path is specified then that's where
+ppp looks, so that's what we do here.
+
+Index: rp-pppoe-3.8/configs/pppoe.conf
+===================================================================
+--- rp-pppoe-3.8.orig/configs/pppoe.conf 2006-04-03 00:29:41.000000000 +1000
++++ rp-pppoe-3.8/configs/pppoe.conf 2007-06-08 16:02:47.000000000 +1000
+@@ -66,7 +66,7 @@
+ # to connect forever after pppoe-start is called. Otherwise, it will
+ # give out after CONNECT_TIMEOUT seconds and will not attempt to
+ # connect again, making it impossible to reach.
+-CONNECT_TIMEOUT=30
++CONNECT_TIMEOUT=0
+
+ # How often in seconds pppoe-start polls to check if link is up
+ CONNECT_POLL=2
+@@ -115,7 +115,7 @@
+ FIREWALL=NONE
+
+ # Linux kernel-mode plugin for pppd. If you want to try the kernel-mode
+-# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
++# plugin, use LINUX_PLUGIN=rp-pppoe.so
+ LINUX_PLUGIN=
+
+ # Any extra arguments to pass to pppoe. Normally, use a blank string
diff --git a/packages/rp-pppoe/rp-pppoe_3.8.bb b/packages/rp-pppoe/rp-pppoe_3.8.bb
index c4d5ff88d2..6b2084ea4a 100644
--- a/packages/rp-pppoe/rp-pppoe_3.8.bb
+++ b/packages/rp-pppoe/rp-pppoe_3.8.bb
@@ -2,28 +2,56 @@ DESCRIPTION = "A user-mode PPPoE client and server suite for Linux"
HOMEPAGE = "http://www.roaringpenguin.com/en/penguin/openSourceProducts/rpPppoe"
SECTION = "console/network"
LICENSE = "GPLv2"
-RDEPENDS = "ppp"
-PR = "r0"
+RDEPENDS_${PN} = "ppp"
+RDEPENDS_${PN}-server = "${PN}"
+RRECOMMENDS_${PN} = "ppp-oe"
+PR = "r4"
SRC_URI = "http://www.roaringpenguin.com/files/download/${P}.tar.gz \
- file://configure_in_cross.patch;patch=1;pnum=2 \
- file://pppoe-src-restrictions.patch;patch=1;pnum=2"
+ file://top-autoconf.patch;patch=1 \
+ file://configure_in_cross.patch;patch=1 \
+ file://pppoe-src-restrictions.patch;patch=1 \
+ file://update-config.patch;patch=1 \
+ file://pppoe-server.default \
+ file://pppoe-server.init"
-S = "${WORKDIR}/${P}/src"
+S = "${WORKDIR}/${P}"
-inherit autotools
+inherit autotools update-rc.d
do_install() {
- # Set timeout to 0. Fixes lots of reconnect issues
- # Can't patch this in because it's outside of what we have {S} set to.
- sed -i -e 's,\(CONNECT_TIMEOUT=\)30,\10,g' ${S}/../configs/pppoe.conf
+ # Install init script and default settings
+ install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server
+ install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server
# Install
oe_runmake -C ${S} RPM_INSTALL_ROOT=${D} docdir=${docdir} install
}
-pkg_postinst() {
+# Insert server package before main package
+PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc"
+
+FILES_${PN}-server = "${sysconfdir}/default/pppoe-server \
+ ${sysconfdir}/init.d/pppoe-server \
+ ${sbindir}/pppoe-server \
+ ${sysconfdir}/ppp/pppoe-server-options"
+FILES_${PN}-relay = "${sbindir}/pppoe-relay"
+FILES_${PN}-sniff = "${sbindir}/pppoe-sniff"
+
+pkg_postinst_${PN} () {
if [ x"$D" != "x" ]; then
exit 1
fi
chmod 4755 ${sbindir}/pppoe
}
+
+CONFFILES_${PN} = "${sysconfdir}/ppp/pppoe.conf \
+ ${sysconfdir}/ppp/firewall-standalone \
+ ${sysconfdir}/ppp/firewall-masq"
+CONFFILES_${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \
+ ${sysconfdir}/default/pppoe-server"
+
+INITSCRIPT_PACKAGES = "${PN}-server"
+INITSCRIPT_NAME_${PN}-server = "pppoe-server"
+INITSCRIPT_PARAMS_${PN}-server = "defaults 92 08"
+
diff --git a/packages/rt2x00/rt73-k2wrlz_1.0.0.bb b/packages/rt2x00/rt73-k2wrlz_1.0.0.bb
new file mode 100644
index 0000000000..764f779cbd
--- /dev/null
+++ b/packages/rt2x00/rt73-k2wrlz_1.0.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Enhanced Driver for Ralink rt73 USB 802.11g WiFi sticks"
+HOMEPAGE = "http://homepages.tu-darmstadt.de/~p_larbig/wlan"
+SECTION = "kernel/modules"
+LICENSE = "GPL"
+
+SRC_URI= "http://homepages.tu-darmstadt.de/~p_larbig/wlan/rt73-k2wrlz-1.0.0.tar.bz2"
+inherit module
+
+S = "${WORKDIR}/${PN}-${PV}/Module/"
+
+do_compile() {
+ export KERNDIR=${STAGING_KERNEL_DIR}
+ module_do_compile
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra
+ install -m 0644 rt73${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra/
+}
diff --git a/packages/twisted/twisted-2.5.0/.mtn2git_empty b/packages/twisted/twisted-2.5.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/twisted/twisted-2.5.0/.mtn2git_empty
diff --git a/packages/twisted/twisted-2.5.0/remove-zope-check.patch b/packages/twisted/twisted-2.5.0/remove-zope-check.patch
new file mode 100644
index 0000000000..2bd1b191da
--- /dev/null
+++ b/packages/twisted/twisted-2.5.0/remove-zope-check.patch
@@ -0,0 +1,18 @@
+Index: Twisted-2.5.0/TwistedCore-2.5.0/twisted/__init__.py
+===================================================================
+--- Twisted-2.5.0.orig/TwistedCore-2.5.0/twisted/__init__.py 2007-03-05 16:30:08.117422472 +0100
++++ Twisted-2.5.0/TwistedCore-2.5.0/twisted/__init__.py 2007-03-05 16:30:13.810553949 +0100
+@@ -14,13 +14,6 @@
+ raise RuntimeError("Twisted requires Python 2.3 or later.")
+ del sys
+
+-# Ensure zope.interface is installed
+-try:
+- from zope.interface import Interface
+- del Interface
+-except ImportError:
+- raise ImportError("you need zope.interface installed "
+- "(http://zope.org/Products/ZopeInterface/)")
+
+ # Ensure compat gets imported
+ from twisted.python import compat
diff --git a/packages/twisted/twisted_2.5.0.bb b/packages/twisted/twisted_2.5.0.bb
new file mode 100644
index 0000000000..c7620e4b84
--- /dev/null
+++ b/packages/twisted/twisted_2.5.0.bb
@@ -0,0 +1,180 @@
+DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \
+Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \
+(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more."
+HOMEPAGE = "http://www.twistedmatrix.com"
+SECTION = "console/network"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+RDEPENDS = "python-core python-zopeinterface"
+RDEPENDS_python-twisted += "python-twisted-bin python-twisted-conch python-twisted-core \
+ python-twisted-lore python-twisted-mail python-twisted-names \
+ python-twisted-news python-twisted-runner python-twisted-web \
+ python-twisted-words"
+PR = "r6"
+
+SRC_URI = "http://tmrc.mit.edu/mirror/twisted/Twisted/2.5/Twisted-${PV}.tar.bz2 \
+ file://remove-zope-check.patch;patch=1"
+
+S = "${WORKDIR}/Twisted-${PV}"
+
+inherit distutils
+
+PACKAGES += "python-twisted-zsh python-twisted-test python-twisted-protocols \
+ python-twisted-runner-dbg \
+ python-twisted-bin python-twisted-conch python-twisted-lore \
+ python-twisted-mail python-twisted-names python-twisted-news python-twisted-runner \
+ python-twisted-web python-twisted-words python-twisted python-twisted-core \
+ "
+
+ALLOW_EMPTY = "1"
+FILES_${PN} = ""
+FILES_python-twisted = ""
+
+FILES_python-twisted-test = " \
+${libdir}/python2.4/site-packages/twisted/python/web/test \
+"
+
+FILES_python-twisted-protocols = " \
+${libdir}/python2.4/site-packages/twisted/python/protocols/ \
+"
+
+FILES_python-twisted-zsh = " \
+${libdir}/python2.4/site-packages/twisted/python/zsh \
+${libdir}/python2.4/site-packages/twisted/python/zshcomp.* \
+"
+
+FILES_python-twisted-bin = " \
+${libdir}/python2.4/site-packages/twisted/protocols/_c_urlarg.so \
+${libdir}/python2.4/site-packages/twisted/spread/cBanana.so"
+
+FILES_python-twisted-conch = " \
+${bindir}/ckeygen \
+${bindir}/tkconch \
+${bindir}/conch \
+${bindir}/conchftp \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_conch.py \
+${libdir}/python2.4/site-packages/twisted/conch \
+"
+
+FILES_python-twisted-core = " \
+${bindir}/manhole \
+${bindir}/mktap \
+${bindir}/twistd \
+${bindir}/tap2deb \
+${bindir}/tap2rpm \
+${bindir}/tapconvert \
+${bindir}/tkmktap \
+${bindir}/trial \
+${libdir}/python2.4/site-packages/twisted/*.py \
+${libdir}/python2.4/site-packages/twisted/plugins/__init__.py \
+${libdir}/python2.4/site-packages/twisted/plugins/notestplugin.py \
+${libdir}/python2.4/site-packages/twisted/plugins/testplugin.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_ftp.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_inet.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_manhole.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_portforward.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_socks.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_telnet.py \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_trial.py \
+${libdir}/python2.4/site-packages/twisted/plugins/dropin.cache \
+${libdir}/python2.4/site-packages/twisted/application \
+${libdir}/python2.4/site-packages/twisted/cred \
+${libdir}/python2.4/site-packages/twisted/enterprise \
+${libdir}/python2.4/site-packages/twisted/internet \
+${libdir}/python2.4/site-packages/twisted/manhole \
+${libdir}/python2.4/site-packages/twisted/manhole \
+${libdir}/python2.4/site-packages/twisted/persisted \
+${libdir}/python2.4/site-packages/twisted/protocols\
+${libdir}/python2.4/site-packages/twisted/python\
+${libdir}/python2.4/site-packages/twisted/python/timeoutqueue.py \
+${libdir}/python2.4/site-packages/twisted/python/filepath.py \
+${libdir}/python2.4/site-packages/twisted/python/dxprofile.py \
+${libdir}/python2.4/site-packages/twisted/python/plugin.py \
+${libdir}/python2.4/site-packages/twisted/python/htmlizer.py \
+${libdir}/python2.4/site-packages/twisted/python/__init__.py \
+${libdir}/python2.4/site-packages/twisted/python/dispatch.py \
+${libdir}/python2.4/site-packages/twisted/python/hook.py \
+${libdir}/python2.4/site-packages/twisted/python/threadpool.py \
+${libdir}/python2.4/site-packages/twisted/python/otp.py \
+${libdir}/python2.4/site-packages/twisted/python/usage.py \
+${libdir}/python2.4/site-packages/twisted/python/roots.py \
+${libdir}/python2.4/site-packages/twisted/python/versions.py \
+${libdir}/python2.4/site-packages/twisted/python/urlpath.py \
+${libdir}/python2.4/site-packages/twisted/python/util.py \
+${libdir}/python2.4/site-packages/twisted/python/components.py \
+${libdir}/python2.4/site-packages/twisted/python/logfile.py \
+${libdir}/python2.4/site-packages/twisted/python/runtime.py \
+${libdir}/python2.4/site-packages/twisted/python/reflect.py \
+${libdir}/python2.4/site-packages/twisted/python/context.py \
+${libdir}/python2.4/site-packages/twisted/python/threadable.py \
+${libdir}/python2.4/site-packages/twisted/python/rebuild.py \
+${libdir}/python2.4/site-packages/twisted/python/failure.py \
+${libdir}/python2.4/site-packages/twisted/python/lockfile.py \
+${libdir}/python2.4/site-packages/twisted/python/formmethod.py \
+${libdir}/python2.4/site-packages/twisted/python/finalize.py \
+${libdir}/python2.4/site-packages/twisted/python/win32.py \
+${libdir}/python2.4/site-packages/twisted/python/dist.py \
+${libdir}/python2.4/site-packages/twisted/python/shortcut.py \
+${libdir}/python2.4/site-packages/twisted/python/zipstream.py \
+${libdir}/python2.4/site-packages/twisted/python/release.py \
+${libdir}/python2.4/site-packages/twisted/python/syslog.py \
+${libdir}/python2.4/site-packages/twisted/python/log.py \
+${libdir}/python2.4/site-packages/twisted/python/compat.py \
+${libdir}/python2.4/site-packages/twisted/python/zshcomp.py \
+${libdir}/python2.4/site-packages/twisted/python/procutils.py \
+${libdir}/python2.4/site-packages/twisted/python/text.py \
+${libdir}/python2.4/site-packages/twisted/python/_twisted_zsh_stub \
+${libdir}/python2.4/site-packages/twisted/scripts/ \
+${libdir}/python2.4/site-packages/twisted/spread/ \
+${libdir}/python2.4/site-packages/twisted/tap/ \
+${libdir}/python2.4/site-packages/twisted/trial/ \
+${libdir}/python2.4/site-packages/twisted/__init__.py \
+${libdir}/python2.4/site-packages/twisted/_version.py \
+${libdir}/python2.4/site-packages/twisted/copyright.py \
+${libdir}/python2.4/site-packages/twisted/im.py \
+${libdir}/python2.4/site-packages/twisted/plugin.py \
+"
+
+FILES_python-twisted-lore = " \
+${bindir}/bookify \
+${bindir}/lore \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_lore.py \
+${libdir}/python2.4/site-packages/twisted/lore \
+"
+
+FILES_python-twisted-mail = " \
+${bindir}/mailmail \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_mail.py \
+${libdir}/python2.4/site-packages/twisted/mail \
+"
+
+FILES_python-twisted-names = " \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_names.py \
+${libdir}/python2.4/site-packages/twisted/names \
+"
+
+FILES_python-twisted-news = " \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_news.py \
+${libdir}/python2.4/site-packages/twisted/news \
+"
+
+FILES_python-twisted-runner = " \
+${libdir}python2.4/site-packages/twisted/runner/portmap.so \
+${libdir}/python2.4/site-packages/twisted/runner\
+"
+
+FILES_python-twisted-web = " \
+${bindir}/websetroot \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_web.py \
+${libdir}/python2.4/site-packages/twisted/web\
+"
+
+FILES_python-twisted-words = " \
+${bindir}/im \
+${libdir}/python2.4/site-packages/twisted/plugins/twisted_words.py \
+${libdir}/python2.4/site-packages/twisted/words\
+"
+
+FILES_python-twisted-runner-dbg = " \
+${libdir}/python2.4/site-packages/twisted/runner/.debug"
+
diff --git a/packages/usb-gadget-mode/files/usb-gadget b/packages/usb-gadget-mode/files/usb-gadget
index 611703f09d..4fdc429f5b 100755
--- a/packages/usb-gadget-mode/files/usb-gadget
+++ b/packages/usb-gadget-mode/files/usb-gadget
@@ -10,7 +10,7 @@
#
# 20070606 - v0.0.1 - Initial release
-CONF_FILE="/etc/usb-gadget.conf"
+CONF_FILE="/etc/default/usb-gadget"
die() {
echo "ERROR: $1"
diff --git a/packages/usb-gadget-mode/usb-gadget-mode.bb b/packages/usb-gadget-mode/usb-gadget-mode.bb
index 7c2083e99b..3109a4d92e 100644
--- a/packages/usb-gadget-mode/usb-gadget-mode.bb
+++ b/packages/usb-gadget-mode/usb-gadget-mode.bb
@@ -15,7 +15,7 @@ LICENSE = "GPL"
######################################################################################
PV = "0.0.1"
-PR = "r0"
+PR = "r2"
######################################################################################
@@ -30,13 +30,14 @@ SRC_URI = "file://usb-gadget.conf \
######################################################################################
do_install() {
- install -d ${D}/etc
- install -d ${D}/etc/init.d
- install -d ${D}/usr/bin
-
- install -m 0644 ${WORKDIR}/usb-gadget.conf ${D}/etc
- install -m 0755 ${WORKDIR}/usb-gadget.init ${D}/etc/init.d/usb-gadget
- install -m 0755 ${WORKDIR}/usb-gadget ${D}/usr/bin
+ install -d ${D}${sysconfdir}
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${bindir}
+ install -d ${D}${sysconfdir}/default
+
+ install -m 0644 ${WORKDIR}/usb-gadget.conf ${D}${sysconfdir}/default/usb-gadget
+ install -m 0755 ${WORKDIR}/usb-gadget.init ${D}${sysconfdir}/init.d/usb-gadget
+ install -m 0755 ${WORKDIR}/usb-gadget ${D}${bindir}
}
pkg_postinst() {
diff --git a/packages/xserver-common/files/sl-cxx00-modmap.patch b/packages/xserver-common/files/sl-cxx00-modmap.patch
index c5dbebdbbf..057f9880bf 100644
--- a/packages/xserver-common/files/sl-cxx00-modmap.patch
+++ b/packages/xserver-common/files/sl-cxx00-modmap.patch
@@ -102,12 +102,12 @@
+! The Menu key generates F12 when pressed with Fn or Shift.
+
+! "Calendar" label and icon, "Sync" label beneath it:
-+keycode 67 = F13 F14 F14
++keycode 67 = F9 F14 F14
+! "Address" label and icon:
-+keycode 68 = F15 F15 F15
++keycode 68 = F10 F15 F15
+! "Mail" label and icon, "Check" label beneath it:
-+keycode 76 = F16 F17 F17
++keycode 76 = F13 F17 F17
+! "Home" label and icon:
-+keycode 107 = F18 F18 F18
++keycode 107 = F12 F18 F18
+! "Menu" label and icon:
-+keycode 96 = F19 F12 F12
++keycode 96 = F11 F12 F12
diff --git a/packages/xserver-common/xserver-common_1.16.bb b/packages/xserver-common/xserver-common_1.16.bb
index 5a8739e679..ca1c2f09cd 100644
--- a/packages/xserver-common/xserver-common_1.16.bb
+++ b/packages/xserver-common/xserver-common_1.16.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts and support files"
LICENSE = "GPL"
SECTION = "x11"
RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo"
-PR = "r5"
+PR = "r6"
PACKAGE_ARCH = "all"
diff --git a/packages/zope/zope_3.3.1.bb b/packages/zope/zope_3.3.1.bb
new file mode 100644
index 0000000000..156de2134f
--- /dev/null
+++ b/packages/zope/zope_3.3.1.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "A full fledged pluggable content management system with integrated web server and much more."
+SECTION = "console/network"
+PRIORITY = "optional"
+DEPENDS = "python"
+RDEPENDS = "python-core python-shell"
+LICENSE = "ZPL"
+PR = "r2"
+
+SRC_URI = "http://www.zope.org/Products/Zope3/${PV}/Zope-${PV}.tgz"
+
+S = "${WORKDIR}/Zope-${PV}"
+
+do_configure() {
+ ./configure --with-python=${STAGING_BINDIR_NATIVE}/python --prefix=${prefix} --force
+}
+
+do_compile() {
+ oe_runmake HOST_SYS=${HOST_SYS} BUILD_SYS=${BUILD_SYS}
+}
+
+do_install() {
+ oe_runmake install prefix=${D}${prefix} HOST_SYS=${HOST_SYS} BUILD_SYS=${BUILD_SYS}
+}
+
+PACKAGES =+ "python-zopeinterface python-zopeinterface-dbg"
+
+FILES_${PN} = "${prefix}"
+FILES_${PN}_doc = "${prefix}/doc"
+FILES_${PN}-dbg += "\
+${libdir}/python/BTrees/.debug \
+${libdir}/python/persistent/.debug \
+${libdir}/python/zope/proxy/.debug \
+${libdir}/python/zope/thread/.debug \
+${libdir}/python/zope/security/.debug \
+${libdir}/python/zope/hookable/.debug \
+${libdir}/python/zope/app/container/.debug \
+${libdir}/python/zope/i18nmessageid/.debug \
+${libdir}/python/ZODB/.debug"
+FILES_python-zopeinterface-dbg += "${libdir}/python/zope/interface/.debug "
+
+FILES_python-zopeinterface = "${libdir}/python/zope/interface/*.* ${libdir}/python/zope/interface/common"