summaryrefslogtreecommitdiff
authorwimpie <wimpie>2005-01-09 03:02:21 (UTC)
committer wimpie <wimpie>2005-01-09 03:02:21 (UTC)
commit67d1d0b292553af550219d770cbd5c00987d8b8b (patch) (side-by-side diff)
tree517759c7fbda44a40ff733e3b5d5667d90558caa
parent987bc9a2c5b39ddd4dc2a665cea65688bfd2179e (diff)
downloadopie-67d1d0b292553af550219d770cbd5c00987d8b8b.zip
opie-67d1d0b292553af550219d770cbd5c00987d8b8b.tar.gz
opie-67d1d0b292553af550219d770cbd5c00987d8b8b.tar.bz2
CONTROL files : reset version to 'standard' format
(partly rolls back my drastic all-applicatoins-same-version change) now format is x.y(.z)$EXTRAVERSION where x.y (and aptionally .z) are x : major version y : minor version z : application patch and extra version is seconds-since-epoch this value can be used to automatically upgrade versions with minor changes (without manual update of the control file)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Rules.make8
-rw-r--r--core/multimedia/opieplayer/modplug/opie-modplugin.control2
-rw-r--r--core/pim/addressbook/addressbook.cpp2
-rw-r--r--core/pim/today/task-opie-today.control2
-rw-r--r--core/settings/security/demo/multiauth.control2
-rw-r--r--core/tools/quicklauncher/main.cpp3
-rw-r--r--dependencies.in12
-rw-r--r--etc/opie-keytabs.control2
-rw-r--r--libopie2/libopie2.control2
-rw-r--r--libopie2/opiecore/libopiecore2.control2
-rw-r--r--libopie2/opiedb/libopiedb2.control2
-rw-r--r--libopie2/opiemm/libopiemm2.control2
-rw-r--r--libopie2/opienet/libopienet2.control2
-rw-r--r--libopie2/opiepim/libopiepim2.control2
-rw-r--r--libopie2/opiesecurity/libopiesecurity2.control2
-rw-r--r--libopie2/opieui/oresource.cpp1
-rw-r--r--libqtaux/libqtaux.control2
-rw-r--r--noncore/applets/zkbapplet/zkbapplet.control2
-rw-r--r--noncore/apps/dagger/opie-dagger.control2
-rw-r--r--noncore/games/bounce/opie-bounce.control2
-rw-r--r--noncore/games/buzzword/opie-buzzword.control2
-rw-r--r--noncore/games/kbill/opie-kbill.control2
-rw-r--r--noncore/games/kcheckers/opie-kcheckers.control2
-rw-r--r--noncore/games/kpacman/opie-kpacman.control2
-rw-r--r--noncore/multimedia/camera/opie-camera.control2
-rw-r--r--noncore/multimedia/opieplayer2/opie-mediaplayer2-codecs.control2
-rw-r--r--noncore/multimedia/powerchord/opie-powerchord.control2
-rw-r--r--noncore/net/mail/libetpanstuff/libetpan.control2
-rw-r--r--noncore/net/mail/libmailwrapper/libmailwrapper.control2
-rw-r--r--noncore/net/mail/taskbarapplet/opie-mailapplet.control2
-rw-r--r--noncore/net/opierdesktop/opie-rdesktop.control2
-rw-r--r--noncore/net/opietooth/blue-pin/opie-bluepin.control2
-rw-r--r--noncore/net/opietooth/manager/opie-bluetoothmanager.control2
-rw-r--r--noncore/net/wellenreiter/opie-wellenreiter.control2
-rw-r--r--noncore/securityplugins/blueping/bluepingplugin.control2
-rw-r--r--noncore/securityplugins/dummy/dummyplugin.control2
-rw-r--r--noncore/securityplugins/notice/notice.control2
-rw-r--r--noncore/securityplugins/pin/pin.control2
-rw-r--r--noncore/tools/opie-sh/opie-sh.control2
-rw-r--r--noncore/tools/opie-sh/scripts/opie-sh-wavelanchooser.control2
-rw-r--r--noncore/unsupported/gsmtool/opie-gsmtool.control2
-rw-r--r--noncore/unsupported/ubrowser/opie-ubrowser.control2
-rwxr-xr-xscripts/GeneratePackageMake8
-rwxr-xr-xscripts/mkipkg10
-rwxr-xr-xscripts/tothreaded4
45 files changed, 73 insertions, 49 deletions
diff --git a/Rules.make b/Rules.make
index 644a6cf..bdfe6d4 100644
--- a/Rules.make
+++ b/Rules.make
@@ -1,308 +1,316 @@
.phony: force
force:
$(configs) :
$(call makecfg,$@)
$(TOPDIR)/gen.pro : $(TOPDIR)/.config
echo > $@
# added for threaded version
ifneq ($(CONFIG_THREADED),)
echo CONFIG += thread >> $@
else
echo CONFIG -= thread >> $@
endif
+# added for auto stripped build
+ifneq ($(CONFIG_STRIP),)
+ echo CONFIG += strip >> $@
+endif
ifneq ($(CONFIG_DEBUG),)
echo CONFIG += debug >> $@
echo CONFIG -= release >> $@
echo DEFINES += "QT_COMPONENT_DEBUG=2" >> $@
echo DEFINES += QT_DEBUG >> $@
else
echo CONFIG -= debug >> $@
echo CONFIG += release >> $@
echo DEFINES += "OPIE_NO_DEBUG" >> $@
endif
ifeq ($(CONFIG_STATIC),y)
echo !contains\( TARGET,qpe \) \{ >> $@
echo CONFIG += staticlib >> $@
echo \} >> $@
endif
ifeq ($(filter 3.%,$(QTE_VERSION)),) # not qt3
echo CONFIG -= qt3 >> $@
else
echo CONFIG += qt3 >> $@
endif
ifneq ($(CONFIG_QUICK_LAUNCH),)
echo contains\( CONFIG, quick-app \) \{ >> $@
echo CONFIG -= staticlib >> $@
echo CONFIG -= quick-app >> $@
echo CONFIG += quick-app-lib >> $@
echo QUICKLAUNCH_PATH = $(CONFIG_QUICKLAUNCH_PATH) >> $@
echo \} >> $@
else
echo contains\( CONFIG, quick-app \) \{ >> $@
echo CONFIG -= quick-app >> $@
echo CONFIG += quick-app-bin >> $@
echo \} >> $@
endif
ifeq ($(CONFIG_SQL_PIM_BACKEND),y)
echo ENABLE_SQL_PIM_BACKEND=$(CONFIG_SQL_PIM_BACKEND) >> $@
else
echo ENABLE_SQL_PIM_BACKEND=n >> $@
endif
ifeq ($(CONFIG_OPIE_NO_OVERRIDE_QT),y)
echo CONFIG += no-override >> $@
endif
ifeq ($(CONFIG_OPIELOGIN_USEPAM),y)
echo CONFIG += OPIELOGIN_USEPAM >> $@
endif
ifeq ($(CONFIG_LIBQPE_WITHROHFEEDBACK),y)
echo CONFIG += LIBQPE_WITHROHFEEDBACK >> $@
endif
ifeq ($(CONFIG_OPIE_NO_ERASERECT_FIX),y)
echo DEFINES += OPIE_NO_ERASE_RECT_HACKFIX >> $@
endif
ifeq ($(CONFIG_OPIE_NO_BUILTIN_SHUTDOWN),y)
echo DEFINES += OPIE_NO_BUILTIN_SHUTDOWN >> $@
endif
ifeq ($(CONFIG_OPIE_NO_BUILTIN_CALIBRATE),y)
echo DEFINES += OPIE_NO_BUILTIN_CALIBRATE >> $@
endif
ifeq ($(CONFIG_USE_REALTIME_AUDIO_THREAD),y)
echo DEFINES += USE_REALTIME_AUDIO_THREAD >> $@
endif
ifeq ($(CONFIG_USE_FILE_NOTIFICATION),y)
echo DEFINES += USE_FILE_NOTIFICATION >> $@
endif
ifeq ($(CONFIG_QT_QWS_ALLOW_CLOCK),y)
echo DEFINES += QT_QWS_ALLOW_OVERCLOCK >> $@
endif
ifeq ($(CONFIG_OPIE_NEW_ALLOC),y)
echo DEFINES += OPIE_NEW_MALLOC >> $@
endif
ifeq ($(CONFIG_OPIE_NO_SOUND_PCM_READ_BITS),y)
echo DEFINES += OPIE_NO_SOUND_PCM_READ_BITS >> $@
endif
echo DEFINES += OPIE_SOUND_FRAGMENT_SHIFT=$(CONFIG_OPIE_SOUND_FRAGMENT_SHIFT) >> $@
ifeq ($(CONFIG_OPIE_WE_VERSION_OVERRIDE),y)
echo DEFINES += OPIE_WE_VERSION=$(CONFIG_OPIE_WE_VERSION) >> $@
endif
ifeq ($(CONFIG_OPIE_TASKBAR_LOCK_KEY_STATE),y)
echo DEFINES += OPIE_TASKBAR_LOCK_KEY_STATE >> $@
endif
# Write LIB dirs and INC dirs...
ifeq ($(CONFIG_LIBETPAN_DEP),y)
echo LIBETPAN_LIB_DIR = $(CONFIG_LIBETPAN_LIB_DIR) >> $@
echo LIBETPAN_INC_DIR = $(CONFIG_LIBETPAN_INC_DIR) >> $@
endif
ifeq ($(CONFIG_LIBPCAP_DEP),y)
echo LIBPCAP_LIB_DIR = $(CONFIG_LIBPCAP_LIB_DIR) >> $@
echo LIBPCAP_INC_DIR = $(CONFIG_LIBPCAP_INC_DIR) >> $@
endif
ifeq ($(CONFIG_LIBSQLITE_DEP),y)
echo LIBSQLITE_LIB_DIR = $(CONFIG_LIBSQLITE_LIB_DIR) >> $@
echo LIBSQLITE_INC_DIR = $(CONFIG_LIBSQLITE_INC_DIR) >> $@
endif
ifeq ($(CONFIG_LIBXINE_DEP),y)
echo LIBXINE_LIB_DIR = $(CONFIG_LIBXINE_LIB_DIR) >> $@
echo LIBXINE_INC_DIR = $(CONFIG_LIBXINE_INC_DIR) >> $@
endif
+ifeq ($(CONFIG_LIBBLUEZ_DEP),y)
+ echo LIBBLUEZ_LIB_DIR = $(CONFIG_LIBBLUEZ_LIB_DIR) >> $@
+ echo LIBBLUEZ_INC_DIR = $(CONFIG_LIBBLUEZ_INC_DIR) >> $@
+endif
ifeq ($(CONFIG_LIBIPK_DEP),y)
echo LIBIPK_LIB_DIR = $(CONFIG_LIBIPK_LIB_DIR) >> $@
echo LIBIPK_INC_DIR = $(CONFIG_LIBIPK_INC_DIR) >> $@
endif
ifeq ($(CONFIG_LIBSDK_DEP),y)
echo LIBSDL_LIB_DIR = $(CONFIG_LIBSDL_LIB_DIR) >> $@
echo LIBSDL_INC_DIR = $(CONFIG_LIBSDL_INC_DIR) >> $@
endif
ifeq ($(CONFIG_LIBSWORD_DEP),y)
echo LIBSWORD_LIB_DIR = $(CONFIG_LIBSWORD_LIB_DIR) >> $@
echo LIBSWORD_INC_DIR = $(CONFIG_LIBSWORD_INC_DIR) >> $@
endif
$(TOPDIR)/.depends : $(shell if [ -e $(TOPDIR)/config.in ]\; then echo $(TOPDIR)/config.in\; fi\;) $(TOPDIR)/.config $(TOPDIR)/packages
@echo Generating dependency information...
# add to subdir-y, and add descend rules
@cat $(TOPDIR)/packages | grep -v '^#' | \
awk '{print \
".PHONY : " $$2 "\n" \
"subdir-$$(" $$1 ") += " $$2 "\n\n"; \
print $$2 " : " $$2 "/Makefile\n\t+$$(call descend,$$@,$(filter-out $$@,$$(filter-out $$@,$$(MAKECMDGOALS))))\n"; }' > $(TOPDIR)/.depends
cat $(TOPDIR)/packages | grep -v '^#' | \
perl -ne '($$cfg, $$dir, $$pro) = $$_ =~ /^(\S+)\s+(\S+)\s+(\S+)/; if ( -e "$$dir/$$pro" ) { print "$$dir/Makefile : $$dir/$$pro \$$(QMAKE) \$$(OPIEDIR)/gen.pro \$$(OPIEDIR)/.config\n\t\$$(call makefilegen,\$$@)\n\n"; }' \
>> $(TOPDIR)/.depends
# interpackage dependency generation
@cat $(TOPDIR)/packages | \
$(TOPDIR)/scripts/deps.pl >> $(TOPDIR)/.depends
$(TOPDIR)/.depends.cfgs:
# config.in interdependencies
@echo $(configs) | sed -e 's,/config.in,,g' | ( for i in `cat`; do echo $$i; done ) > dirs
@cat dirs | ( for i in `cat`; do if [ "`cat dirs|grep $$i 2>/dev/null|wc -l`" -ne "1" ]; then deps=`cat dirs|grep $$i| grep -v "^$$i$$"|for i in \`cat|sed -e's,^$(TOPDIR)/,$$(TOPDIR)/,g'\`; do echo $$i/config.in; done`; echo `echo $$i/config.in|sed -e 's,^$(TOPDIR)/,$$(TOPDIR)/,'` : $$deps; fi; done ) >> $@
@-rm -f dirs
$(QTDIR)/stamp-headers :
@-rm -f $(QTDIR)/stamp-headers*
( cd $(QTDIR)/include; \
$(patsubst %,ln -sf ../src/kernel/%;,qgfx_qws.h qwsmouse_qws.h \
qcopchannel_qws.h qwindowsystem_qws.h \
qfontmanager_qws.h qwsdefaultdecoration_qws.h))
touch $@
$(QTDIR)/stamp-headers-x11 :
@-rm -f $(QTDIR)/stamp-headers*
cd $(QTDIR)/include; $(patsubst %,ln -sf $(OPIEDIR)/x11/libqpe-x11/qt/%;,qgfx_qws.h qwsmouse_qws.h qcopchannel_qws.h qwindowsystem_qws.h qfontmanager_qws.h qwsdefaultdecoration_qws.h)
touch $@
$(OPIEDIR)/stamp-headers :
@-rm -f $(OPIEDIR)/stamp-headers*
mkdir -p $(TOPDIR)/include/qpe \
$(TOPDIR)/include/qtopia \
$(TOPDIR)/include/opie \
$(TOPDIR)/include/opie2 \
$(TOPDIR)/include/opie2/private \
$(TOPDIR)/include/qtopia/private \
$(TOPDIR)/include/sl
( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; )
( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; )
( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; )
# libopie2
( cd include/opie2 && ln -sf ../../libopie2/opiecore/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiecore/device/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiemm/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiedb/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opienet/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiepim/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiepim/core/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiepim/backend/*.h .; )
( cd include/opie2/private && ln -sf ../../../libopie2/opiepim/private/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiepim/ui/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opieui/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opieui/fileselector/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opieui/big-screen/*.h .; )
( cd include/opie2 && ln -sf ../../libopie2/opiesecurity/*.h .; )
# auxilliary libraries
( cd include/opie2 && ln -sf ../../libqtaux/*.h .; )
( cd include/sl && ln -sf ../../libslcompat/*.h .; )
( cd include/ && ln -sf ../noncore/net/ftplib/*.h .; )
( cd include/ && ln -sf ../inputmethods/pickboard/pickboardcfg.h .; )
( cd include/ && ln -sf ../inputmethods/pickboard/pickboardpicks.h .; )
# all
( cd include/opie2; for generatedHeader in `cd ../../libopie2/opieui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \
ln -sf ../../libopie2/opieui/$$generatedHeader $$generatedHeader; done )
( cd include/opie2; for generatedHeader in `cd ../../libopie2/opiepim/ui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \
ln -sf ../../libopie2/opiepim/ui/$$generatedHeader $$generatedHeader; done )
ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h
touch $@
$(OPIEDIR)/stamp-headers-x11 :
@-rm -f $(OPIEDIR)/stamp-headers*
mkdir -p $(TOPDIR)/include/qpe $(TOPDIR)/include/qtopia \
$(TOPDIR)/include/opie $(TOPDIR)/include/qtopia/private
( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; )
( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; )
( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; )
( cd include/opie && rm -f *.h; ln -sf ../../libopie/*.h .; rm -f *_p.h; )
( cd include/opie && ln -sf ../../libsql/*.h .; )
( cd include/opie && ln -sf ../../libopie/pim/*.h .; )
( cd include/opie; for generatedHeader in `cd ../../libopie; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \
ln -sf ../../libopie/$$generatedHeader $$generatedHeader; done )
ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h
( cd include/qpe; ln -sf ../../x11/libqpe-x11/qpe/*.h .; )
touch $@
$(TOPDIR)/library/custom.h : $(TOPDIR)/.config
@-rm -f $@
@$(if $(patsubst "%",%,$(CONFIG_CUSTOMFILE)),\
ln -sf $(patsubst "%",%,$(CONFIG_CUSTOMFILE)) $@)
@touch $@
$(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf $(TOPDIR)/scripts/kconfig/conf $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/qmake/qmake:
+$(call descend,$(shell dirname $@),$(shell basename $@))
menuconfig: $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf ./config.in
$(TOPDIR)/scripts/kconfig/mconf ./config.in
@touch ./.config.stamp
xconfig: $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in
$(TOPDIR)/scripts/kconfig/qconf ./config.in
@touch .config.stamp
gconfig: $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in
$(TOPDIR)/scripts/kconfig/gconf ./config.in
@touch .config.stamp
config: $(TOPDIR)/scripts/kconfig/conf ./config.in
$(TOPDIR)/scripts/kconfig/conf ./config.in
@touch .config.stamp
oldconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in
$(TOPDIR)/scripts/kconfig/conf -o ./config.in
@touch .config.stamp
randconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in
$(TOPDIR)/scripts/kconfig/conf -r ./config.in
@touch .config.stamp
allyesconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in
$(TOPDIR)/scripts/kconfig/conf -y ./config.in
@touch .config.stamp
allnoconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in
$(TOPDIR)/scripts/kconfig/conf -n ./config.in
@touch .config.stamp
defconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in
$(TOPDIR)/scripts/kconfig/conf -d ./config.in
@touch .config.stamp
$(TOPDIR)/qmake/qmake : $(TOPDIR)/mkspecs/default
$(TOPDIR)/mkspecs/default :
ln -sf linux-g++ $@
$(TOPDIR)/scripts/subst : force
@( \
echo 's,\$$QPE_VERSION,$(QPE_VERSION),g'; \
echo 's,\$$OPIE_VERSION,$(OPIE_VERSION),g'; \
echo 's,\$$QTE_VERSION,$(QTE_VERSION),g'; \
echo 's,\$$QTE_REVISION,$(QTE_REVISION),g'; \
echo 's,\$$SUB_VERSION,$(SUB_VERSION),g'; \
echo 's,\$$EXTRAVERSION,$(EXTRAVERSION),g'; \
echo 's,\$$QTE_BASEVERSION,$(QTE_BASEVERSION),g'; \
) > $@ || ( rm -f $@; exit 1 )
$(TOPDIR)/scripts/filesubst : force
@( \
echo 's,\$$OPIEDIR/root/,/,g'; \
echo 's,$(OPIEDIR)/root/,/,g'; \
echo 's,\$$OPIEDIR,$(prefix),g'; \
echo 's,$(OPIEDIR),$(prefix),g'; \
echo 's,\$$QTDIR,$(prefix),g'; \
echo 's,$(QTDIR),$(prefix),g'; \
echo 's,^\(\./\)*root/,/,g'; \
echo 's,^\(\./\)*etc/,$(prefix)/etc/,g'; \
echo 's,^\(\./\)*lib/,$(prefix)/lib/,g'; \
echo 's,^\(\./\)*bin/,$(prefix)/bin/,g'; \
echo 's,^\(\./\)*pics/,$(prefix)/pics/,g'; \
echo 's,^\(\./\)*sounds/,$(prefix)/sounds/,g'; \
echo 's,^\(\./\)*i18n/,$(prefix)/i18n/,g'; \
echo 's,^\(\./\)*plugins/,$(prefix)/plugins/,g'; \
echo 's,^\(\./\)*apps/,$(prefix)/apps/,g'; \
echo 's,^\(\./\)*share/,$(prefix)/share/,g'; \
echo 's,^\(\./\)*i18n/,$(prefix)/i18n/,g'; \
echo 's,^\(\./\)*help/,$(prefix)/help/,g'; \
) > $@ || ( rm -f $@; exit 1 )
## general rules ##
define descend
$(MAKE) $(if $(QMAKE),QMAKE=$(QMAKE)) -C $(1) $(2)
endef
define makefilegen
cd $(if $(1),$(dir $(1))); $(TOPDIR)/qmake/qmake $(3) -o $(if $(1),$(notdir $(1))) $(word 3,$(shell grep "[[:space:]]$(patsubst %/Makefile,%,$(1))[[:space:]]" $(OPIEDIR)/packages))
endef
define makecfg
$(TOPDIR)/scripts/makecfg.pl $1 $(OPIEDIR)
endef
diff --git a/core/multimedia/opieplayer/modplug/opie-modplugin.control b/core/multimedia/opieplayer/modplug/opie-modplugin.control
index 9e0957b..6e9ad7c 100644
--- a/core/multimedia/opieplayer/modplug/opie-modplugin.control
+++ b/core/multimedia/opieplayer/modplug/opie-modplugin.control
@@ -1,10 +1,10 @@
Package: opie-modplugin
Files: plugins/codecs/libmodplugin.so*
Priority: optional
Section: libs
Maintainer: Simon Hausmann <hausmann@kde.org>, L.J. Potter <lpotter@trolltech.com>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 2.0.2-$EXTRAVERSION
Depends: task-opie-minimal
Description: MOD/XM/S3M/IT plugin using libmodplug
Plugin to play MOD/XM/S3M/IT amiga tracker modules with the mediaplayer in the Opie environment.
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 0654e1a..3f0ac74 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -1,838 +1,838 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
** Copyright (C) 2003 Stefan Eilers (eilers.stefan@epost.de)
**
** This file is part of the Open Palmtop Environment (see www.opie.info).
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
**
**********************************************************************/
#define QTOPIA_INTERNAL_FD
// #include "addresssettings.h"
#include "addressbook.h"
#include <opie2/odebug.h>
#include <opie2/ofileselector.h>
#include <opie2/ofiledialog.h>
#include <opie2/opimcontact.h>
#include <opie2/ocontactaccessbackend_vcard.h>
#include <qpe/resource.h>
#include <qpe/ir.h>
#include <qpe/qpemessagebox.h>
#include <qmenubar.h>
// #include <qtoolbar.h>
// #include <qmenubar.h>
#include <qpe/qpeapplication.h>
#include <qaction.h>
#include <qlayout.h>
#include <qmessagebox.h>
#include <qtoolbutton.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include "picker.h"
#include "configdlg.h"
extern QString addressbookPersonalVCardName();
AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
WFlags f )
: QMainWindow( parent, name, f ),
catMenu (0l),
abEditor(0l),
syncing(FALSE),
m_tableViewButton(0l),
m_cardViewButton(0l)
{
isLoading = true;
m_config.load();
setCaption( tr("Contacts") );
- setIcon( Resource::loadPixmap( "AddressBook" ) );
+ setIcon( Resource::loadPixmap( "addressbook/AddressBook" ) );
// Settings for Main Menu
// setToolBarsMovable( false );
setToolBarsMovable( !m_config.fixedBars() );
setRightJustification( true );
QToolBar *bar = new QToolBar( this );
bar->setHorizontalStretchable( TRUE );
QMenuBar *mbList = new QMenuBar( bar );
mbList->setMargin( 0 );
QPopupMenu *edit = new QPopupMenu( mbList );
mbList->insertItem( tr( "Contact" ), edit );
// Category Menu
catMenu = new QPopupMenu( this );
catMenu->setCheckable( TRUE );
connect( catMenu, SIGNAL(activated(int)), this, SLOT(slotSetCategory(int)) );
mbList->insertItem( tr("View"), catMenu );
// Create Toolbar
listTools = new QToolBar( this, "list operations" );
listTools->setHorizontalStretchable( true );
addToolBar( listTools );
moveToolBar( listTools, m_config.getToolBarPos() );
// View Icons
m_tableViewButton = new QAction( tr( "List" ), Resource::loadPixmap( "addressbook/listview" ),
QString::null, 0, this, 0 );
connect( m_tableViewButton, SIGNAL( activated() ), this, SLOT( slotListView() ) );
m_tableViewButton->setToggleAction( true );
m_tableViewButton->addTo( listTools );
m_cardViewButton = new QAction( tr( "Card" ), Resource::loadPixmap( "addressbook/cardview" ), QString::null, 0, this, 0 );
connect( m_cardViewButton, SIGNAL( activated() ), this, SLOT( slotCardView() ) );
m_cardViewButton->setToggleAction( true );
m_cardViewButton->addTo( listTools );
listTools->addSeparator();
// Other Buttons
QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null,
0, this, 0 );
actionNew = a;
connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) );
a->addTo( edit );
a->addTo( listTools );
a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null,
0, this, 0 );
actionEdit = a;
connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) );
a->addTo( edit );
a->addTo( listTools );
a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null,
0, this, 0 );
actionTrash = a;
connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) );
a->addTo( edit );
a->addTo( listTools );
// make it possible to go directly to businesscard via qcop call
//#if defined(Q_WS_QWS) // Why this ? (se)
#if !defined(QT_NO_COP)
QCopChannel *addressChannel = new QCopChannel("QPE/Addressbook" , this );
connect (addressChannel, SIGNAL( received(const QCString&,const QByteArray&)),
this, SLOT ( appMessage(const QCString&,const QByteArray&) ) );
#endif
// #endif
a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ),
QString::null, 0, this, 0 );
actionFind = a;
connect( a, SIGNAL(activated()), this, SLOT( slotFindOpen()) );
a->addTo( edit );
a->addTo( listTools );
// Much better search widget, taken from QTReader.. (se)
searchBar = new OFloatBar( "Search", this, QMainWindow::Top, TRUE );
searchBar->setHorizontalStretchable( TRUE );
searchBar->hide();
searchEdit = new QLineEdit( searchBar, "searchEdit" );
// QFont f("unifont", 16 /*, QFont::Bold*/);
// searchEdit->setFont( f );
searchBar->setStretchableWidget( searchEdit );
connect( searchEdit, SIGNAL( returnPressed() ),
this, SLOT( slotFind() ) );
a = new QAction( tr( "Start Search" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotFind() ) );
a->addTo( searchBar );
a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) );
a->addTo( searchBar );
a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "addressbook/sendmail" ),
QString::null, 0, this, 0 );
//a->setEnabled( FALSE ); we got support for it now :) zecke
actionMail = a;
connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) );
a->addTo( edit );
a->addTo( listTools );
if ( Ir::supported() ) {
a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null,
0, this, 0 );
actionBeam = a;
connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) );
a->addTo( edit );
a->addTo( listTools );
}
edit->insertSeparator();
a = new QAction( tr("Import vCard"), Resource::loadPixmap( "addressbook/fileimport"), QString::null,
0, this, 0);
actionPersonal = a;
connect( a, SIGNAL( activated() ), this, SLOT( importvCard() ) );
a->addTo( edit );
a = new QAction( tr("Export vCard"), Resource::loadPixmap( "addressbook/fileexport"), QString::null,
0, this, 0);
actionPersonal = a;
connect( a, SIGNAL( activated() ), this, SLOT( exportvCard() ) );
a->addTo( edit );
edit->insertSeparator();
a = new QAction( tr("My Personal Details"), Resource::loadPixmap( "addressbook/identity" ),
QString::null, 0, this, 0 , TRUE );
actionPersonal = a;
connect( a, SIGNAL( activated() ), this, SLOT( slotPersonalView() ) );
a->addTo( edit );
#ifdef __DEBUG_RELEASE
// Remove this function for public Release ! This is only
// for debug purposes ..
a = new QAction( tr( "Save all Data"), QString::null, 0, 0 );
connect( a, SIGNAL( activated() ), this , SLOT( slotSave() ) );
a->addTo( edit );
#endif
a = new QAction( tr( "Config" ), Resource::loadPixmap( "SettingsIcon" ), QString::null,
0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotConfig() ) );
a->addTo( edit );
// Create Views
listContainer = new QWidget( this );
QVBoxLayout *vb = new QVBoxLayout( listContainer );
m_abView = new AbView( listContainer, m_config.orderList() );
vb->addWidget( m_abView );
// abList->setHScrollBarMode( QScrollView::AlwaysOff );
connect( m_abView, SIGNAL( signalViewSwitched(int) ),
this, SLOT( slotViewSwitched(int) ) );
QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) );
// m_abView->load(); // Already done by c'tor .
// Letter Picker
pLabel = new LetterPicker( listContainer );
connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char)));
connect(m_abView, SIGNAL( signalClearLetterPicker() ), pLabel, SLOT( clear() ) );
vb->addWidget( pLabel );
// All Categories into view-menu..
populateCategories();
// Fontsize
defaultFont = new QFont( m_abView->font() );
slotSetFont(m_config.fontSize());
m_curFontSize = m_config.fontSize();
setCentralWidget(listContainer);
// odebug << "adressbook contrsuction: t=" << t.elapsed() << oendl;
connect( qApp, SIGNAL( flush() ), this, SLOT( flush() ) );
connect( qApp, SIGNAL( reload() ), this, SLOT( reload() ) );
connect( qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ),
this, SLOT( appMessage(const QCString&,const QByteArray&) ) );
isLoading = false;
}
void AddressbookWindow::slotConfig()
{
ConfigDlg* dlg = new ConfigDlg( this, "Config" );
dlg -> setConfig( m_config );
if ( QPEApplication::execDialog( dlg ) ) {
odebug << "Config Dialog accepted!" << oendl;
m_config = dlg -> getConfig();
if ( m_curFontSize != m_config.fontSize() ){
odebug << "Font was changed!" << oendl;
m_curFontSize = m_config.fontSize();
emit slotSetFont( m_curFontSize );
}
m_abView -> setListOrder( m_config.orderList() );
}
delete dlg;
}
void AddressbookWindow::slotSetFont( int size )
{
odebug << "void AddressbookWindow::slotSetFont( " << size << " )" << oendl;
if (size > 2 || size < 0)
size = 1;
m_config.setFontSize( size );
QFont *currentFont;
switch (size) {
case 0:
m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) );
currentFont = new QFont (m_abView->font());
// abList->resizeRows(currentFont->pixelSize() + 7); :SX
// abList->resizeRows();
break;
case 1:
m_abView->setFont( *defaultFont );
currentFont = new QFont (m_abView->font());
// // abList->resizeRows(currentFont->pixelSize() + 7);
// abList->resizeRows();
break;
case 2:
m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() + 2 ) );
currentFont = new QFont (m_abView->font());
// //abList->resizeRows(currentFont->pixelSize() + 7);
// abList->resizeRows();
break;
}
}
void AddressbookWindow::importvCard() {
QString str = Opie::Ui::OFileDialog::getOpenFileName( 1,"/");//,"", "*", this );
if(!str.isEmpty() ){
setDocument((const QString&) str );
}
}
void AddressbookWindow::exportvCard()
{
odebug << "void AddressbookWindow::exportvCard()" << oendl;
QString filename = Opie::Ui::OFileDialog::getSaveFileName( 1,"/home/"); //,"", "*", this );
if( !filename.isEmpty() && ( filename[filename.length()-1] != '/' ) ){
odebug << " Save to file " << filename << ", (" << filename.length()-1 << ")" << oendl;
Opie::OPimContact curCont = m_abView->currentEntry();
if ( !curCont.isEmpty() ){
Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
filename );
Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook_exp", QString::null , vcard_backend, true );
if ( access ){
access->add( curCont );
access->save();
}
delete access;
}else
QMessageBox::critical( 0, "Export VCard",
QString( tr( "You have to select a contact !") ) );
}else
QMessageBox::critical( 0, "Export VCard",
QString( tr( "You have to set a filename !") ) );
}
void AddressbookWindow::setDocument( const QString &filename )
{
odebug << "void AddressbookWindow::setDocument( " << filename << " )" << oendl;
// Switch to default backend. This should avoid to import into
// the personal database accidently.
if ( actionPersonal->isOn() ){
actionPersonal->setOn( false );
slotPersonalView();
}
if ( filename.find(".vcf") != int(filename.length()) - 4 ){
switch( QMessageBox::information( this, tr ( "Right file type ?" ),
tr( "The selected file \n does not end with \".vcf\".\n Do you really want to open it?" ),
tr( "&Yes" ), tr( "&No" ), QString::null,
0, // Enter == button 0
2 ) ) { // Escape == button 2
case 0:
odebug << "YES clicked" << oendl;
break;
case 1:
odebug << "NO clicked" << oendl;
return;
break;
}
}
Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
filename );
Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
Opie::OPimContactAccess::List allList = access->allRecords();
odebug << "Found number of contacts in File: " << allList.count() << oendl;
if ( !allList.count() ) {
QMessageBox::information( this, "Import VCard",
"It was impossible to import\nthe VCard.\n"
"The VCard may be corrupted!" );
}
bool doAsk = true;
Opie::OPimContactAccess::List::Iterator it;
for ( it = allList.begin(); it != allList.end(); ++it ){
odebug << "Adding Contact from: " << (*it).fullName() << oendl;
if ( doAsk ){
switch( QMessageBox::information( this, tr ( "Add Contact?" ),
tr( "Do you really want add contact for \n%1?" )
.arg( (*it).fullName().latin1() ),
tr( "&Yes" ), tr( "&No" ), tr( "&All Yes"),
0, // Enter == button 0
2 ) ) { // Escape == button 2
case 0:
odebug << "YES clicked" << oendl;
m_abView->addEntry( *it );
break;
case 1:
odebug << "NO clicked" << oendl;
break;
case 2:
odebug << "YesAll clicked" << oendl;
doAsk = false;
break;
}
}else
m_abView->addEntry( *it );
}
delete access;
}
void AddressbookWindow::resizeEvent( QResizeEvent *e )
{
QMainWindow::resizeEvent( e );
}
AddressbookWindow::~AddressbookWindow()
{
ToolBarDock dock;
int dummy;
bool bDummy;
getLocation ( listTools, dock, dummy, bDummy, dummy );
m_config.setToolBarDock( dock );
m_config.save();
}
void AddressbookWindow::slotUpdateToolbar()
{
Opie::OPimContact ce = m_abView->currentEntry();
actionMail->setEnabled( !ce.defaultEmail().isEmpty() );
}
void AddressbookWindow::slotListNew()
{
Opie::OPimContact cnt;
if( !syncing ) {
editEntry( NewEntry );
} else {
QMessageBox::warning(this, tr("Contacts"),
tr("Can not edit data, currently syncing"));
}
}
// void AddressbookWindow::slotListView()
// {
// m_abView -> init( abList->currentEntry() );
// // :SX mView->sync();
// //:SX showView();
// }
void AddressbookWindow::slotListDelete()
{
if(!syncing) {
Opie::OPimContact tmpEntry = m_abView ->currentEntry();
// get a name, do the best we can...
QString strName = tmpEntry.fullName();
if ( strName.isEmpty() ) {
strName = tmpEntry.company();
if ( strName.isEmpty() )
strName = "No Name";
}
if ( QPEMessageBox::confirmDelete( this, tr( "Contacts" ),
strName ) ) {
m_abView->removeEntry( tmpEntry.uid() );
}
} else {
QMessageBox::warning( this, tr("Contacts"),
tr("Can not edit data, currently syncing") );
}
}
void AddressbookWindow::slotFindOpen()
{
searchBar->show();
m_abView -> inSearch();
searchEdit->setFocus();
}
void AddressbookWindow::slotFindClose()
{
searchBar->hide();
m_abView -> offSearch();
// m_abView->setFocus();
}
void AddressbookWindow::slotFind()
{
m_abView->slotDoFind( searchEdit->text(), m_config.beCaseSensitive(), m_config.useRegExp(), false);
searchEdit->clearFocus();
// m_abView->setFocus();
}
void AddressbookWindow::slotViewBack()
{
// :SX showList();
}
void AddressbookWindow::slotViewEdit()
{
if(!syncing) {
if (actionPersonal->isOn()) {
editPersonal();
} else {
editEntry( EditEntry );
}
} else {
QMessageBox::warning( this, tr("Contacts"),
tr("Can not edit data, currently syncing") );
}
}
void AddressbookWindow::writeMail()
{
Opie::OPimContact c = m_abView -> currentEntry();
QString name = c.fileAs();
QString email = c.defaultEmail();
// I prefer the OPIE-Environment variable before the
// QPE-one..
QString basepath = QString::fromLatin1( getenv("OPIEDIR") );
if ( basepath.isEmpty() )
basepath = QString::fromLatin1( getenv("QPEDIR") );
// Try to access the preferred. If not possible, try to
// switch to the other one..
if ( m_config.useQtMail() ){
odebug << "Accessing: " << (basepath + "/bin/qtmail") << oendl;
if ( QFile::exists( basepath + "/bin/qtmail" ) ){
odebug << "QCop" << oendl;
QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)");
e << name << email;
return;
} else
m_config.setUseOpieMail( true );
}
if ( m_config.useOpieMail() ){
odebug << "Accessing: " << (basepath + "/bin/opiemail") << oendl;
if ( QFile::exists( basepath + "/bin/opiemail" ) ){
odebug << "QCop" << oendl;
QCopEnvelope e("QPE/Application/opiemail", "writeMail(QString,QString)");
e << name << email;
return;
} else
m_config.setUseQtMail( true );
}
}
static const char * beamfile = "/tmp/obex/contact.vcf";
void AddressbookWindow::slotBeam()
{
QString beamFilename;
Opie::OPimContact c;
if ( actionPersonal->isOn() ) {
beamFilename = addressbookPersonalVCardName();
if ( !QFile::exists( beamFilename ) )
return; // can't beam a non-existent file
Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
beamFilename );
Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
Opie::OPimContactAccess::List allList = access->allRecords();
Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first
c = *it;
delete access;
} else {
unlink( beamfile ); // delete if exists
mkdir("/tmp/obex/", 0755);
c = m_abView -> currentEntry();
Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
beamfile );
Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
access->add( c );
access->save();
delete access;
beamFilename = beamfile;
}
odebug << "Beaming: " << beamFilename << oendl;
Ir *ir = new Ir( this );
connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
QString description = c.fullName();
ir->send( beamFilename, description, "text/x-vCard" );
}
void AddressbookWindow::beamDone( Ir *ir )
{
delete ir;
unlink( beamfile );
}
static void parseName( const QString& name, QString *first, QString *middle,
QString * last )
{
int comma = name.find ( "," );
QString rest;
if ( comma > 0 ) {
*last = name.left( comma );
comma++;
while ( comma < int(name.length()) && name[comma] == ' ' )
comma++;
rest = name.mid( comma );
} else {
int space = name.findRev( ' ' );
*last = name.mid( space+1 );
rest = name.left( space );
}
int space = rest.find( ' ' );
if ( space <= 0 ) {
*first = rest;
} else {
*first = rest.left( space );
*middle = rest.mid( space+1 );
}
}
void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data)
{
bool needShow = FALSE;
odebug << "Receiving QCop-Call with message " << msg << oendl;
if (msg == "editPersonal()") {
editPersonal();
} else if (msg == "editPersonalAndClose()") {
editPersonal();
close();
} else if ( msg == "addContact(QString,QString)" ) {
QDataStream stream(data,IO_ReadOnly);
QString name, email;
stream >> name >> email;
Opie::OPimContact cnt;
QString fn, mn, ln;
parseName( name, &fn, &mn, &ln );
// odebug << " " << fn << " - " << mn " - " << ln << oendl;
cnt.setFirstName( fn );
cnt.setMiddleName( mn );
cnt.setLastName( ln );
cnt.insertEmails( email );
cnt.setDefaultEmail( email );
cnt.setFileAs();
m_abView -> addEntry( cnt );
// :SXm_abView()->init( cnt );
editEntry( EditEntry );
} else if ( msg == "beamBusinessCard()" ) {
QString beamFilename = addressbookPersonalVCardName();
if ( !QFile::exists( beamFilename ) )
return; // can't beam a non-existent file
Ir *ir = new Ir( this );
connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
QString description = "mycard.vcf";
ir->send( beamFilename, description, "text/x-vCard" );
} else if ( msg == "show(int)" ) {
raise();
QDataStream stream(data,IO_ReadOnly);
int uid;
stream >> uid;
odebug << "Showing uid: " << uid << oendl;
// Deactivate Personal View..
if ( actionPersonal->isOn() ){
actionPersonal->setOn( false );
slotPersonalView();
}
// Reset category and show as card..
m_abView -> setShowByCategory( QString::null );
m_abView -> setCurrentUid( uid );
slotViewSwitched ( AbView::CardView );
needShow = true;
} else if ( msg == "edit(int)" ) {
QDataStream stream(data,IO_ReadOnly);
int uid;
stream >> uid;
// Deactivate Personal View..
if ( actionPersonal->isOn() ){
actionPersonal->setOn( false );
slotPersonalView();
}
// Reset category and edit..
m_abView -> setShowByCategory( QString::null );
m_abView -> setCurrentUid( uid );
slotViewEdit();
}
if (needShow)
QPEApplication::setKeepRunning();
}
void AddressbookWindow::editEntry( EntryMode entryMode )
{
Opie::OPimContact entry;
if ( !abEditor ) {
abEditor = new ContactEditor( entry, this, "editor" );
}
if ( entryMode == EditEntry )
abEditor->setEntry( m_abView -> currentEntry() );
else if ( entryMode == NewEntry )
abEditor->setEntry( entry );
// other things may change the caption.
abEditor->setCaption( tr("Edit Address") );
// fix the foxus...
abEditor->setNameFocus();
if ( QPEApplication::execDialog( abEditor ) ) {
setFocus();
if ( entryMode == NewEntry ) {
Opie::OPimContact insertEntry = abEditor->entry();
insertEntry.assignUid();
m_abView -> addEntry( insertEntry );
m_abView -> setCurrentUid( insertEntry.uid() );
} else {
Opie::OPimContact replEntry = abEditor->entry();
if ( !replEntry.isValidUid() )
replEntry.assignUid();
m_abView -> replaceEntry( replEntry );
}
}
// populateCategories();
}
void AddressbookWindow::editPersonal()
{
Opie::OPimContact entry;
// Switch to personal view if not selected
// but take care of the menu, too
if ( ! actionPersonal->isOn() ){
odebug << "*** ++++" << oendl;
actionPersonal->setOn( true );
slotPersonalView();
}
if ( !abEditor ) {
abEditor = new ContactEditor( entry, this, "editor" );
}
abEditor->setCaption(tr("Edit My Personal Details"));
abEditor->setPersonalView( true );
editEntry( EditEntry );
abEditor->setPersonalView( false );
}
void AddressbookWindow::slotPersonalView()
{
odebug << "slotPersonalView()" << oendl;
if (!actionPersonal->isOn()) {
// we just turned it off
odebug << "slotPersonalView()-> OFF" << oendl;
setCaption( tr("Contacts") );
actionNew->setEnabled(TRUE);
actionTrash->setEnabled(TRUE);
actionFind->setEnabled(TRUE);
actionMail->setEnabled(TRUE);
// slotUpdateToolbar();
m_abView->showPersonal( false );
return;
}
odebug << "slotPersonalView()-> ON" << oendl;
// XXX need to disable some QActions.
actionNew->setEnabled(FALSE);
actionTrash->setEnabled(FALSE);
actionFind->setEnabled(FALSE);
actionMail->setEnabled(FALSE);
setCaption( tr("Contacts - My Personal Details") );
m_abView->showPersonal( true );
}
void AddressbookWindow::listIsEmpty( bool empty )
{
if ( !empty ) {
deleteButton->setEnabled( TRUE );
}
}
void AddressbookWindow::reload()
{
syncing = FALSE;
m_abView->clear();
m_abView->reload();
}
void AddressbookWindow::flush()
{
syncing = TRUE;
m_abView->save();
diff --git a/core/pim/today/task-opie-today.control b/core/pim/today/task-opie-today.control
index 6798141..3d637cc 100644
--- a/core/pim/today/task-opie-today.control
+++ b/core/pim/today/task-opie-today.control
@@ -1,12 +1,12 @@
Package: task-opie-today
Priority: optional
Section: opie/pim
Maintainer: Maximilian Rei� <harlekin@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.5$EXTRAVERSION
Depends: task-opie-minimal, opie-today, opie-today-datebookplugin, opie-today-todolistplugin
License: GPL
Description: Task for basic Today app setup
Includes datebook and todolist plugins.
Files:
diff --git a/core/settings/security/demo/multiauth.control b/core/settings/security/demo/multiauth.control
index c7dd82a..c549035 100644
--- a/core/settings/security/demo/multiauth.control
+++ b/core/settings/security/demo/multiauth.control
@@ -1,16 +1,16 @@
Package: opie-multiauth
Files: bin/multiauth apps/Applications/multiauth.desktop pics/security/multiauth.png
Priority: optional
Section: opie/settings
Maintainer: Clement Seveillac <clement@nist.gov>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.0.2$EXTRAVERSION
Depends: opie-security
Description: multi-plugin authentication demonstrator for Opie.
This demonstration application allows us to use one or several
ways to lock and unlock our device. Since it really locks your
PDA the way you configured it in the Security settings, you can
map a button to it through the Buttons settings to lock your
PDA on demand, with one simple click.
You must install some opie-multiauth-* plugins, and configure
them through opie-security, to really see its possibilities.
diff --git a/core/tools/quicklauncher/main.cpp b/core/tools/quicklauncher/main.cpp
index fbed5a1..59dd17e 100644
--- a/core/tools/quicklauncher/main.cpp
+++ b/core/tools/quicklauncher/main.cpp
@@ -1,290 +1,289 @@
/**********************************************************************
** Copyright (C) 2000-2003 Trolltech AS. All rights reserved.
**
** This file is part of the Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#define QTOPIA_INTERNAL_INITAPP
#include "dropins.h"
/* OPIE */
#include <opie2/odebug.h>
#include <opie2/oapplication.h>
/* QT */
#include <qpainter.h>
#include <qstrlist.h>
#include <qtimer.h>
#include <qguardedptr.h>
#include <qcopchannel_qws.h>
#ifdef private
# undef private
#endif
#define private public
#include <qtopia/qpeapplication.h>
#undef private
/* STD */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef _OS_LINUX_
#include <sys/prctl.h>
#ifndef PR_SET_NAME
#define PR_SET_NAME 15
#endif
#endif
#include <unistd.h>
using QuickPrivate::PluginLoader;
static QPEApplication *app = 0;
static PluginLoader *loader = 0;
static ApplicationInterface *appIface = 0;
static QGuardedPtr<QWidget> mainWindow;
#ifdef _OS_LINUX_
static char **argv0 = 0;
static int argv_lth;
extern char **environ;
#ifndef SPT_BUFSIZE
#define SPT_BUFSIZE 2048
#endif
#include <stdarg.h>
void setproctitle (const char *fmt,...) {
int i;
char buf[SPT_BUFSIZE];
va_list ap;
if (!argv0)
return;
va_start(ap, fmt);
(void) vsnprintf(buf, SPT_BUFSIZE, fmt, ap);
va_end(ap);
i = strlen (buf);
if (i > argv_lth - 2) {
i = argv_lth - 2;
buf[i] = '\0';
}
memset(argv0[0], '\0', argv_lth); /* clear the memory area */
(void) strcpy (argv0[0], buf);
argv0[1] = NULL;
}
#endif
class QuickLauncher : public QObject
{
Q_OBJECT
public:
QuickLauncher() : QObject()
{
QCString ch("QPE/QuickLauncher-");
ch += QString::number(getpid());
qlChannel = new QCopChannel( ch, this);
connect( qlChannel, SIGNAL(received(const QCString&,const QByteArray&)),
this, SLOT(message(const QCString&,const QByteArray&)) );
}
static void exec( int /*argc*/, char **argv )
{
QString appName = argv[0];
int sep = appName.findRev( '/' );
if ( sep > 0 )
appName = appName.mid( sep+1 );
appIface = 0;
- if ( loader->queryInterface(appName, IID_QtopiaApplication, (QUnknownInterface**)&appIface) != QS_OK ) {
- owarn << "Plugin does not support QuickLauncher interface" << oendl;
+ if ( ! ( loader->queryInterface(appName, IID_QtopiaApplication, (QUnknownInterface**)&appIface) == QS_OK ) ) {
exit(-1);
}
mainWindow = appIface->createMainWindow( appName );
if ( mainWindow ) {
if ( mainWindow->metaObject()->slotNames().contains("setDocument(const QString&)") ) {
app->showMainDocumentWidget( mainWindow );
} else {
app->showMainWidget( mainWindow );
}
} else {
owarn << "Could not create application main window" << oendl;
exit(-1);
}
}
private slots:
void message(const QCString &msg, const QByteArray & data)
{
QStrList argList;
if ( msg == "execute(QStrList)" ) {
delete qlChannel;
QDataStream stream( data, IO_ReadOnly );
QStrList argList;
stream >> argList;
odebug << "QuickLauncher execute: " << argList.at(0) << oendl;
doQuickLaunch( argList );
delete this;
} else if ( msg == "execute(QString)" ) {
delete qlChannel;
QDataStream stream( data, IO_ReadOnly );
QString arg;
stream >> arg;
odebug << "QuickLauncher execute: " << arg << oendl;
QStrList argList;
argList.append( arg.utf8() );
doQuickLaunch( argList );
delete this;
}
}
private:
void doQuickLaunch( QStrList &argList )
{
static int myargc = argList.count();
static char **myargv = new char *[myargc + 1];
for ( int j = 0; j < myargc; j++ ) {
myargv[j] = new char [strlen(argList.at(j))+1];
strcpy( myargv[j], argList.at(j) );
}
myargv[myargc] = NULL;
#ifdef _OS_LINUX_
// Change name of process
setproctitle(myargv[0]);
prctl( PR_SET_NAME, (unsigned long)myargv[0], 0, 0, 0 );
#endif
connect(app, SIGNAL(lastWindowClosed()), app, SLOT(hideOrQuit()));
app->exit_loop();
app->initApp( myargc, myargv );
exec( myargc, myargv );
}
private:
QCopChannel *qlChannel;
};
int main( int argc, char** argv )
{
app = new Opie::Core::OApplication( argc, argv );
loader = new PluginLoader( "application" );
unsetenv( "LD_BIND_NOW" );
QCString arg0 = argv[0];
int sep = arg0.findRev( '/' );
if ( sep > 0 )
arg0 = arg0.mid( sep+1 );
if ( arg0 != "quicklauncher" ) {
odebug << "QuickLauncher invoked as: " << arg0.data() << oendl;
QuickLauncher::exec( argc, argv );
} else {
#ifdef _OS_LINUX_
// Setup to change proc title
int i;
char **envp = environ;
/* Move the environment so we can reuse the memory.
* (Code borrowed from sendmail.) */
for (i = 0; envp[i] != NULL; i++)
continue;
environ = (char **) malloc(sizeof(char *) * (i + 1));
if (environ == NULL)
return -1;
for (i = 0; envp[i] != NULL; i++)
if ((environ[i] = strdup(envp[i])) == NULL)
return -1;
environ[i] = NULL;
argv0 = argv;
if (i > 0)
argv_lth = envp[i-1] + strlen(envp[i-1]) - argv0[0];
else
argv_lth = argv0[argc-1] + strlen(argv0[argc-1]) - argv0[0];
#endif
(void)new QuickLauncher();
odebug << "QuickLauncher running" << oendl;
// Pre-load default fonts
QFontMetrics fm( QApplication::font() );
fm.ascent(); // causes font load.
QFont f( QApplication::font() );
f.setWeight( QFont::Bold );
QFontMetrics fmb( f );
fmb.ascent(); // causes font load.
// Each of the following force internal structures/internal
// initialization to be performed. This may mean allocating
// memory that is not needed by all applications.
Resource::loadIconSet("new"); // do internal init
/* make sure libopie gets lined in */
{
Opie::Ui::OWait item;
}
// Create a widget to force initialization of title bar images, etc.
QObject::disconnect(app, SIGNAL(lastWindowClosed()), app, SLOT(hideOrQuit()));
QWidget *w = new QWidget(0,0,Qt::WDestructiveClose|Qt::WStyle_ContextHelp|Qt::WStyle_Tool);
w->setGeometry( -100, -100, 10, 10 );
w->show();
QTimer::singleShot( 0, w, SLOT(close()) );
app->enter_loop();
}
int rv = app->exec();
if ( mainWindow )
delete (QWidget*)mainWindow;
delete app;
if ( appIface )
loader->releaseInterface( appIface );
delete loader;
// Neither QLibrary nor my Dropin is a QObject and they don't depend
// on a qApp so we destroy QWidget::destroyMapper() without
// crashing the app
//
// The problem is there are some 'static' resources not freed
// in the apps and on destructing these objects are not available
// anymore. In future fix up the apps but for now
// we just skip deletion and hope things go well -zecke
// delete app;
// hack instead -zecke
// delete app->pidChannel;
// app->pidChannel = 0;
return rv;
}
#include "main.moc"
diff --git a/dependencies.in b/dependencies.in
index ce1ac96..357d994 100644
--- a/dependencies.in
+++ b/dependencies.in
@@ -1,84 +1,96 @@
config LIBETPAN_DEP
boolean "Have Libetpan >= 0.33pre"
default "n"
config LIBETPAN_LIB_DIR
string "LIBETPAN library dir"
depends LIBETPAN_DEP
config LIBETPAN_INC_DIR
string "LIBETPAN include dir"
depends LIBETPAN_DEP
config LIBPCAP_DEP
boolean "Have libpcap >= 0.7.2"
default "n"
config LIBPCAP_LIB_DIR
string "LIBPCAP library dir"
depends LIBPCAP_DEP
config LIBPCAP_INC_DIR
string "LIBPCAP include dir"
depends LIBPCAP_DEP
config LIBSQLITE_DEP
boolean "Have sqlite >= 3.0.7"
default n
config LIBSQLITE_LIB_DIR
string "LIBSQLITE library dir"
depends LIBSQLITE_DEP
config LIBSQLITE_INC_DIR
string "LIBSQLITE include dir"
depends LIBSQLITE_DEP
config LIBXINE_DEP
boolean "Have libxine >= 1.0rc6"
default "n"
config LIBXINE_LIB_DIR
string "LIBXINE library dir"
depends LIBXINE_DEP
config LIBXINE_INC_DIR
string "LIBXINE include dir"
depends LIBXINE_DEP
config LIBIPK_DEP
boolean "Have libipkg >= 0.99.120"
default "n"
config LIBIPK_LIB_DIR
string "libipkg library dir"
depends LIBIPK_DEP
config LIBIPK_INC_DIR
string "libipkg include dir"
depends LIBIPK_DEP
config LIBSDL_DEP
boolean "Have libsdl12 and sdlimage"
default "n"
config LIBSDL_LIB_DIR
string "LIBSDL library dir"
depends LIBSDL_DEP
config LIBSDL_INC_DIR
string "LIBSDL include dir"
depends LIBSDL_DEP
config LIBSWORD_DEP
boolean "Have libsword > = 1.5.0"
default "n"
config LIBSWORD_LIB_DIR
string "libsword library dir"
depends LIBSWORD_DEP
config LIBSWORD_INC_DIR
string "libsword include dir"
depends LIBSWORD_DEP
+ config LIBBLUEZ_DEP
+ boolean "Have bluez library"
+ default "n"
+
+ config LIBBLUEZ_LIB_DIR
+ string "libbluez library dir"
+ depends LIBBLUEZ_DEP
+
+ config LIBBLUEZ_INC_DIR
+ string "libbluez include dir"
+ depends LIBBLUEZ_DEP
+
diff --git a/etc/opie-keytabs.control b/etc/opie-keytabs.control
index e3d83de..9563b3a 100644
--- a/etc/opie-keytabs.control
+++ b/etc/opie-keytabs.control
@@ -1,9 +1,9 @@
Package: opie-keytabs
Files: etc/keytabs/*
Priority: optional
Section: opie/applications
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.6$EXTRAVERSION
License: GPL
Description: Opie keytabs for terminal applications
diff --git a/libopie2/libopie2.control b/libopie2/libopie2.control
index fcd44b4..e72c535 100644
--- a/libopie2/libopie2.control
+++ b/libopie2/libopie2.control
@@ -1,10 +1,10 @@
Package: libopie2
Files:
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.2$EXTRAVERSION
Depends: libopiecore2 ($QPE_VERSION), libopiedb2 ($QPE_VERSION), libopiemm2 ($QPE_VERSION), libopienet2 ($QPE_VERSION), libopiepim2 ($QPE_VERSION), libopieui2 ($QPE_VERSION)
Provides: libopie2
Description: Opie library 2.0
diff --git a/libopie2/opiecore/libopiecore2.control b/libopie2/opiecore/libopiecore2.control
index c7fc141..1d27c1c 100644
--- a/libopie2/opiecore/libopiecore2.control
+++ b/libopie2/opiecore/libopiecore2.control
@@ -1,10 +1,10 @@
Package: libopiecore2
Files: lib/libopiecore2.so.*
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.5$EXTRAVERSION
Depends: libqpe1
Provides: libopiecore2
Description: Opie library 2.0 CORE
diff --git a/libopie2/opiedb/libopiedb2.control b/libopie2/opiedb/libopiedb2.control
index 7e9354a..5744b24 100644
--- a/libopie2/opiedb/libopiedb2.control
+++ b/libopie2/opiedb/libopiedb2.control
@@ -1,10 +1,10 @@
Package: libopiedb2
Files: lib/libopiedb2.so*
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.2$EXTRAVERSION
Depends: libqpe1, libopiecore2 ($QPE_VERSION), libsqlite3-0 | sqlite3-bin
Provides: libopiedb2
Description: Opie library 2.1 DB
diff --git a/libopie2/opiemm/libopiemm2.control b/libopie2/opiemm/libopiemm2.control
index 0dd2df2..38d7ddc 100644
--- a/libopie2/opiemm/libopiemm2.control
+++ b/libopie2/opiemm/libopiemm2.control
@@ -1,10 +1,10 @@
Package: libopiemm2
Files: lib/libopiemm2.so.*
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.2$EXTRAVERSION
Depends: libqpe1, libopiecore2 (1.8.2)
Provides: libopiemm2
Description: Opie library 2.0 MM
diff --git a/libopie2/opienet/libopienet2.control b/libopie2/opienet/libopienet2.control
index 69876b5..da53e2b 100644
--- a/libopie2/opienet/libopienet2.control
+++ b/libopie2/opienet/libopienet2.control
@@ -1,10 +1,10 @@
Package: libopienet2
Files: lib/libopienet2.so.* etc/manufacturers
Priority: optional
Section: opie/libs
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.4$EXTRAVERSION
Depends: libopiecore2, libpcap0.8 (>=0.7.2)
Provides: libopienet2
Description: Opie library 2.0 NET
diff --git a/libopie2/opiepim/libopiepim2.control b/libopie2/opiepim/libopiepim2.control
index 28b7505..457e20a 100644
--- a/libopie2/opiepim/libopiepim2.control
+++ b/libopie2/opiepim/libopiepim2.control
@@ -1,10 +1,10 @@
Package: libopiepim2
Files: lib/libopiepim2.so.*
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.3$EXTRAVERSION
Depends: libqpe1, libopiecore2 (>=1.8.0)
Provides: libopiepim2
Description: Opie library 2.0 PIM
diff --git a/libopie2/opiesecurity/libopiesecurity2.control b/libopie2/opiesecurity/libopiesecurity2.control
index 1eabb93..0a29a47 100644
--- a/libopie2/opiesecurity/libopiesecurity2.control
+++ b/libopie2/opiesecurity/libopiesecurity2.control
@@ -1,11 +1,11 @@
Package: libopiesecurity2
Files: lib/libopiesecurity2.so.*
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.8.5$EXTRAVERSION
Depends: libqpe1, libopiecore2, libopieui2
Provides: libopiesecurity2
Recommends: opie-multiauth-pinplugin | opie-multiauth-noticeplugin | opie-multiauth-dummyplugin | opie-multiauth-bluepingplugin, opie-security
Description: Opie library 2.0 security
diff --git a/libopie2/opieui/oresource.cpp b/libopie2/opieui/oresource.cpp
index 9559210..c94421a 100644
--- a/libopie2/opieui/oresource.cpp
+++ b/libopie2/opieui/oresource.cpp
@@ -1,58 +1,59 @@
/*
� � � � � � � � This file is part of the Opie Project
� � � � � � � Copyright (C) 2003 Patrick S. Vogt <tille@handhelds.org>
=.
.=l.
� � � � � �.>+-=
�_;:, � � .> � �:=|. This program is free software; you can
.> <`_, � > �. � <= redistribute it and/or modify it under
:`=1 )Y*s>-.-- � : the terms of the GNU Library General Public
.="- .-=="i, � � .._ License as published by the Free Software
�- . � .-<_> � � .<> Foundation; either version 2 of the License,
� � �._= =} � � � : or (at your option) any later version.
� � .%`+i> � � � _;_.
� � .i_,=:_. � � �-<s. This program is distributed in the hope that
� � �+ �. �-:. � � � = it will be useful, but WITHOUT ANY WARRANTY;
� � : .. � �.:, � � . . . without even the implied warranty of
� � =_ � � � �+ � � =;=|` MERCHANTABILITY or FITNESS FOR A
� _.=:. � � � : � �:=>`: PARTICULAR PURPOSE. See the GNU
..}^=.= � � � = � � � ; Library General Public License for more
++= � -. � � .` � � .: details.
�: � � = �...= . :.=-
�-. � .:....=;==+<; You should have received a copy of the GNU
� -_. . . � )=. �= Library General Public License along with
� � -- � � � �:-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <opie2/oapplication.h>
#include <opie2/odebug.h>
#include "oresource.h"
#ifdef QWS
namespace Resource
{
QPixmap loadPixmap( const QString& pix )
{
QString filename;
filename.sprintf( "%s/%s.png", (const char*) oApp->qpeDir(), (const char*) pix );
+ odebug << "Load pixmap " << filename << oendl;
QPixmap pixmap( filename );
if ( pixmap.isNull() )
{
odebug << "libopie2 resource: can't find pixmap " << filename << oendl;
}
return pixmap;
};
};
#endif
diff --git a/libqtaux/libqtaux.control b/libqtaux/libqtaux.control
index d801a98..996962f 100644
--- a/libqtaux/libqtaux.control
+++ b/libqtaux/libqtaux.control
@@ -1,10 +1,10 @@
Package: libqtaux2
Files: lib/libqtaux2.so.*
Priority: optional
Section: opie/system
Maintainer: Opie Team <opie@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 2.3.7$EXTRAVERSION
Depends: libqte2
Provides: libqtaux
Description: Qt/Embedded Auxilliary Stuff
diff --git a/noncore/applets/zkbapplet/zkbapplet.control b/noncore/applets/zkbapplet/zkbapplet.control
index 08b540f..4e03c26 100644
--- a/noncore/applets/zkbapplet/zkbapplet.control
+++ b/noncore/applets/zkbapplet/zkbapplet.control
@@ -1,10 +1,10 @@
Package: zkbapplet
Files: plugins/applets/libzkbapplet.so* pics/zkb-disabled.png share/zkb/*.xml bin/keyz-cfg apps/Settings/keyz-cfg.desktop pics/keyz-cfg.png share/zkb/zkb.xml.sample
Priority: optional
Section: opie/applets
Maintainer: Rajko Albrecht <alwin@handhelds.org>
Architecture: arm
Depends: task-opie-minimal
Description: ZKB Applet and configuration program
Obsoletes: keyz-cfg
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.6.0$EXTRAVERSION
diff --git a/noncore/apps/dagger/opie-dagger.control b/noncore/apps/dagger/opie-dagger.control
index cfb45be..4ded1f2 100644
--- a/noncore/apps/dagger/opie-dagger.control
+++ b/noncore/apps/dagger/opie-dagger.control
@@ -1,9 +1,9 @@
Package: opie-dagger
Files: plugins/application/libdagger.so* bin/dagger pics/dagger apps/Applications/dagger.desktop
Priority: optional
Section: opie/applications
Depends: task-opie-minimal, libopiecore2, libopieui2
Architecture: arm
Maintainer: Dan Williams (drw@handhelds.org)
Description: A Bible study program utilizing the Sword library.
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.9.1$EXTRAVERSION
diff --git a/noncore/games/bounce/opie-bounce.control b/noncore/games/bounce/opie-bounce.control
index 0513958..54c14b4 100644
--- a/noncore/games/bounce/opie-bounce.control
+++ b/noncore/games/bounce/opie-bounce.control
@@ -1,11 +1,11 @@
Package: opie-bounce
Files: plugins/application/libbounce.so* bin/bounce apps/Games/bounce.desktop pics/bounce/*.png
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.6$EXTRAVERSION
Depends: task-opie-minimal, libopiecore2
Priority: optional
Section: opie/games
Maintainer: Martin Imobersteg <imm@gmx.ch>
Architecture: arm
License: GPL
Description: bounce
A JezzGame like game for Qtopia.
diff --git a/noncore/games/buzzword/opie-buzzword.control b/noncore/games/buzzword/opie-buzzword.control
index f76a2c2..586b566 100644
--- a/noncore/games/buzzword/opie-buzzword.control
+++ b/noncore/games/buzzword/opie-buzzword.control
@@ -1,11 +1,11 @@
Package: opie-buzzword
Files: plugins/application/libbuzzword.so* bin/buzzword apps/Games/buzzword.desktop pics/buzzword/buzzword.png share/buzzword/buzzwords
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.1$EXTRAVERSION
Depends: task-opie-minimal,libopiecore2
Priority: optional
Section: opie/games
Maintainer: Martin Imobersteg <imm@gmx.ch>
Architecture: arm
License: GPL
Description: BuzzWord
A BuzzWord Bingo for the Opie environment.
diff --git a/noncore/games/kbill/opie-kbill.control b/noncore/games/kbill/opie-kbill.control
index cf12bca..665fa32 100644
--- a/noncore/games/kbill/opie-kbill.control
+++ b/noncore/games/kbill/opie-kbill.control
@@ -1,13 +1,13 @@
Package: opie-kbill
Files: bin/kbill apps/Games/kbill.desktop pics/kbill/*
Priority: optional
Section: opie/games
Maintainer: Mark Westcott <mark@houseoffish.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.8$EXTRAVERSION
Depends: task-opie-minimal
License: GPL
Description: The famous hit Bill game
Hit Bill as hard as you can before he
infects your network with a wannabe
OS.
diff --git a/noncore/games/kcheckers/opie-kcheckers.control b/noncore/games/kcheckers/opie-kcheckers.control
index e7c20d3..e64acca 100644
--- a/noncore/games/kcheckers/opie-kcheckers.control
+++ b/noncore/games/kcheckers/opie-kcheckers.control
@@ -1,10 +1,10 @@
Package: opie-kcheckers
Files: plugins/application/libkcheckers.so* bin/kcheckers apps/Games/kcheckers.desktop pics/kcheckers
Priority: optional
Section: opie/games
Maintainer: leseb <prudhomme@laposte.net>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.3$EXTRAVERSION
Depends: task-opie-minimal, libopiecore2
Description: The game of Checkers
A game for the Opie environment.
diff --git a/noncore/games/kpacman/opie-kpacman.control b/noncore/games/kpacman/opie-kpacman.control
index 97120aa..2717f44 100644
--- a/noncore/games/kpacman/opie-kpacman.control
+++ b/noncore/games/kpacman/opie-kpacman.control
@@ -1,11 +1,11 @@
Package: opie-kpacman
Files: plugins/applications/libkpacman.so* bin/kpacman apps/Games/kpacman.desktop pics/kpacman/kpacman.png share/kpacman
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.3.1$EXTRAVERSION
Depends: task-opie-minimal
Priority: optional
Section: opie/games
Maintainer: Catalin Climov <catalin@climov.com>
Architecture: arm
License: GPL
Description: Kpacman
A Pacman clone for Qtopia.
diff --git a/noncore/multimedia/camera/opie-camera.control b/noncore/multimedia/camera/opie-camera.control
index 5171050..091de98 100644
--- a/noncore/multimedia/camera/opie-camera.control
+++ b/noncore/multimedia/camera/opie-camera.control
@@ -1,10 +1,10 @@
Package: opie-camera
Files: lib/libcamera.* bin/camera bin/capture pics/camera apps/Applications/camera.desktop
Priority: optional
Section: opie/multimedia
Maintainer: Michael 'Mickey' Lauer <mickeyl@Vanille.de>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.0.1$EXTRAVERSION
Depends: libqpe1, libopiecore2, libopieui2
Description: A Camera Application
A Camera Application to use with the Sharp CE-AG06.
diff --git a/noncore/multimedia/opieplayer2/opie-mediaplayer2-codecs.control b/noncore/multimedia/opieplayer2/opie-mediaplayer2-codecs.control
index f4cbc41..9c14ab4 100644
--- a/noncore/multimedia/opieplayer2/opie-mediaplayer2-codecs.control
+++ b/noncore/multimedia/opieplayer2/opie-mediaplayer2-codecs.control
@@ -1,10 +1,10 @@
Package: opie-mediaplayer2-codecs
Files: root/usr/lib/libao.so* root/usr/lib/libogg* root/usr/lib/libvorbisidec.so* root/usr/lib/libxine.so* root/usr/lib/xine/*
Section: ;ibs
Essential: no
Priority: optional
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.7$EXTRAVERSION
Architecture: arm
Maintainer: Maximilian Reiss <harlekin@handhelds.org>
Depends: libc6 (>= 2.1), opie-mediaplayer2
Description: Codecs for opieplayer 2
diff --git a/noncore/multimedia/powerchord/opie-powerchord.control b/noncore/multimedia/powerchord/opie-powerchord.control
index 490e8a2..5216385 100644
--- a/noncore/multimedia/powerchord/opie-powerchord.control
+++ b/noncore/multimedia/powerchord/opie-powerchord.control
@@ -1,11 +1,11 @@
Package: opie-powercord
Files: plugins/applications/libpowerchord.so* bin/powerchord apps/Applications/powerchord.desktop pics/powerchord share/powerchord
Priority: optional
Section: opie/multimedia
Maintainer: Camilo Mesias <camilo@mesias.co.uk>, ljp <lpotter@trolltech.com>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.0.8$EXTRAVERSION
Depends: task-opie-minimal
Description: Guitar Chord generator application
Allows naming of chords using base note and key. Fretboard diagrams are
produced illustrating ways to play the chord.
diff --git a/noncore/net/mail/libetpanstuff/libetpan.control b/noncore/net/mail/libetpanstuff/libetpan.control
index b664157..d90124d 100644
--- a/noncore/net/mail/libetpanstuff/libetpan.control
+++ b/noncore/net/mail/libetpanstuff/libetpan.control
@@ -1,10 +1,10 @@
Package: libetpan
Files: usr/lib/libetpan*
Priority: optional
Section: system
Maintainer: Rajko Albrecht <alwin@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.33$EXTRAVERSION
Depends: libssl0.9.7
Description: libetpan mail/news library - A version of libetpan patched for Opies mailing app
License: LGPL
diff --git a/noncore/net/mail/libmailwrapper/libmailwrapper.control b/noncore/net/mail/libmailwrapper/libmailwrapper.control
index 3491d67..1226c10 100644
--- a/noncore/net/mail/libmailwrapper/libmailwrapper.control
+++ b/noncore/net/mail/libmailwrapper/libmailwrapper.control
@@ -1,10 +1,10 @@
Package: libmailwrapper
Files: lib/libmailwrapper.so*
Priority: optional
Section: libs
Maintainer: Rajko Albrecht <alwin@handhelds.org>, Juergen Graf <jgf@handhelds.org>, Maximilian Rei� <harlekin@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.6$EXTRAVERSION
Depends: task-opie-minimal, libopiecore2, libopieui2, libetpan (>= 0.33pre)
Description: wrapper lib needed by Opie's mailer
License: LGPL
diff --git a/noncore/net/mail/taskbarapplet/opie-mailapplet.control b/noncore/net/mail/taskbarapplet/opie-mailapplet.control
index c838e0b..fc7b337 100644
--- a/noncore/net/mail/taskbarapplet/opie-mailapplet.control
+++ b/noncore/net/mail/taskbarapplet/opie-mailapplet.control
@@ -1,10 +1,10 @@
Package: opie-mailapplet
Files: plugins/applets/libmailapplet.so*
Priority: optional
Section: opie/applets
Maintainer: Rajko Albrecht <alwin@handhelds.org>, Juergen Graf <jgf@handhelds.org>, Maximilian Rei� <harlekin@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.5$EXTRAVERSION
Depends: task-opie-minimal, libopiecore2, opie-mail
Description: A Biff-like mailchecker
License: LGPL
diff --git a/noncore/net/opierdesktop/opie-rdesktop.control b/noncore/net/opierdesktop/opie-rdesktop.control
index 2a9d415..754e572 100644
--- a/noncore/net/opierdesktop/opie-rdesktop.control
+++ b/noncore/net/opierdesktop/opie-rdesktop.control
@@ -1,9 +1,9 @@
Package: opie-rdesktop
Files: bin/ordesktop pics/opierdesktop apps/Applications/ordesktop.desktop
Priority: optional
Section: opie/applications
Maintainer: Michael 'Mickey' Lauer <mickeyl@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.2.0$EXTRAVERSION
Depends: task-opie-minimal
Description: Remote Desktop Protocol (RDP) Client
diff --git a/noncore/net/opietooth/blue-pin/opie-bluepin.control b/noncore/net/opietooth/blue-pin/opie-bluepin.control
index e9aa683..3d94691 100644
--- a/noncore/net/opietooth/blue-pin/opie-bluepin.control
+++ b/noncore/net/opietooth/blue-pin/opie-bluepin.control
@@ -1,10 +1,10 @@
Package: opie-bluepin
Files: plugins/application/libbluepin.so* bin/bluepin
Priority: optional
Section: opie/applications
Maintainer: Holger Freyther <zecke@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.3.4$EXTRAVERSION
Depends: task-opie-minimal
License: GPL
Description: Bluetooth pin application
diff --git a/noncore/net/opietooth/manager/opie-bluetoothmanager.control b/noncore/net/opietooth/manager/opie-bluetoothmanager.control
index 89ab698..5a4d01d 100644
--- a/noncore/net/opietooth/manager/opie-bluetoothmanager.control
+++ b/noncore/net/opietooth/manager/opie-bluetoothmanager.control
@@ -1,10 +1,10 @@
Package: opie-bluetoothmanager
Files: plugins/application/libbluetooth-manager.so* bin/bluetooth-manager apps/Settings/bluetooth-manager.desktop pics/opietooth/*
Priority: optional
Section: opie/settings
Maintainer: Maximilian Rei� <max.reiss@gmx.de>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.5.4$EXTRAVERSION
Depends: task-opie-minimal, libopietooth1, opie-bluepin
License: GPL
Description: Bluetooth Manager application
diff --git a/noncore/net/wellenreiter/opie-wellenreiter.control b/noncore/net/wellenreiter/opie-wellenreiter.control
index 7dc9c22..2c36d17 100644
--- a/noncore/net/wellenreiter/opie-wellenreiter.control
+++ b/noncore/net/wellenreiter/opie-wellenreiter.control
@@ -1,10 +1,10 @@
Package: opie-wellenreiter
Files: bin/wellenreiter pics/wellenreiter apps/Applications/wellenreiter.desktop
Priority: optional
Section: opie/applications
Maintainer: Michael 'Mickey' Lauer <mickeyl@handhelds.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.0.3$EXTRAVERSION
Depends: libqpe1, libpcap0.8 (>=0.7.2), libopiecore2, libopienet2, libopieui2
Description: A WaveLAN Network Monitor
A WaveLAN Network Monitor/Sniffer for the Opie Environment.
diff --git a/noncore/securityplugins/blueping/bluepingplugin.control b/noncore/securityplugins/blueping/bluepingplugin.control
index 62562f7..4b3e96a 100644
--- a/noncore/securityplugins/blueping/bluepingplugin.control
+++ b/noncore/securityplugins/blueping/bluepingplugin.control
@@ -1,11 +1,11 @@
Package: opie-multiauth-bluepingplugin
Files: plugins/security/libmultiauthbluepingplugin.so* pics/security/bluepingplugin.png root/etc/suspend-scripts/S50bluetooth
Priority: optional
Section: opie/settings
Maintainer: Clement Seveillac <clement@nist.gov>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.0.2$EXTRAVERSION
Depends: libopiecore2, opie-security, bluez-utils (<= 2.3rel-hh5)
Description: Blueping plugin for opie-security authentication.
This is a bluetooth-based authentication plugin (you need
to have another Bluetooth device around to use it).
diff --git a/noncore/securityplugins/dummy/dummyplugin.control b/noncore/securityplugins/dummy/dummyplugin.control
index b4cc5e2..bfd4d8d 100644
--- a/noncore/securityplugins/dummy/dummyplugin.control
+++ b/noncore/securityplugins/dummy/dummyplugin.control
@@ -1,11 +1,11 @@
Package: opie-multiauth-dummyplugin
Files: plugins/security/libmultiauthdummyplugin.so* pics/security/dummyplugin.png
Priority: optional
Section: opie/settings
Maintainer: Clement Seveillac <clement@nist.gov>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.0.2$EXTRAVERSION
Depends: libopiecore2, opie-security
Description: Dummy plugin for opie-security authentication.
This is a very simple authentication plugin (you just have
to press a button basically), for demonstration purpose.
diff --git a/noncore/securityplugins/notice/notice.control b/noncore/securityplugins/notice/notice.control
index 091ce74..29a8fb7 100644
--- a/noncore/securityplugins/notice/notice.control
+++ b/noncore/securityplugins/notice/notice.control
@@ -1,11 +1,11 @@
Package: opie-multiauth-noticeplugin
Files: plugins/security/libmultiauthnoticeplugin.so* pics/security/noticeplugin.png pics/security/noticeplugin_small.png
Priority: optional
Section: opie/settings
Maintainer: Clement Seveillac <clement@nist.gov>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.0.1$EXTRAVERSION
Depends: libopiecore2, opie-security
Description: Notice plugin for opie-security authentication.
It allows you to display e.g. a notice from your legal departement.
diff --git a/noncore/securityplugins/pin/pin.control b/noncore/securityplugins/pin/pin.control
index 51c3f08..9235f04 100644
--- a/noncore/securityplugins/pin/pin.control
+++ b/noncore/securityplugins/pin/pin.control
@@ -1,11 +1,11 @@
Package: opie-multiauth-pinplugin
Files: plugins/security/libmultiauthpinplugin.so* pics/security/pinplugin.png
Priority: optional
Section: opie/settings
Maintainer: Clement Seveillac <clement@nist.gov>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.0.2$EXTRAVERSION
Depends: libopiecore2, opie-security
Description: PIN plugin for opie-security authentication.
Simple PIN-based authentication plugin (replicate the functionality
Qtopia has, or Opie used to have, without plugins).
diff --git a/noncore/tools/opie-sh/opie-sh.control b/noncore/tools/opie-sh/opie-sh.control
index 496a036..6627335 100644
--- a/noncore/tools/opie-sh/opie-sh.control
+++ b/noncore/tools/opie-sh/opie-sh.control
@@ -1,11 +1,11 @@
Package: opie-sh
Files: bin/opie-sh apps/Opie-SH/opie-sh.desktop pics/opie-sh/*.png help/opie-sh/*.html
Priority: optional
Section: opie/sh
Maintainer: Thomas Stephens <spiralman@softhome.net>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.5$EXTRAVERSION
Depends: task-opie-minimal
License: GPL
Description: A QDialog shell frontend
A program to let you use various dialogs from the console (or a shell script)
diff --git a/noncore/tools/opie-sh/scripts/opie-sh-wavelanchooser.control b/noncore/tools/opie-sh/scripts/opie-sh-wavelanchooser.control
index 0d6b235..9450eee 100644
--- a/noncore/tools/opie-sh/scripts/opie-sh-wavelanchooser.control
+++ b/noncore/tools/opie-sh/scripts/opie-sh-wavelanchooser.control
@@ -1,11 +1,11 @@
Package: opie-sh-wavelanchooser
Files: bin/opie-sh-wavelanchooser.sh apps/Opie-SH/opie-sh-wavelanchooser.desktop pics/opie-sh-scripts/qtwavelan.png
Installed-Size: 0
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.1$EXTRAVERSION
Depends: task-opie-minimal (1.5.0+), opie-sh
Priority: optional
Section: opie/sh
Maintainer: gonz <gonz@directbox.com>
Architecture: all
License: GPL
Description: Frontend to choose wavelan config
diff --git a/noncore/unsupported/gsmtool/opie-gsmtool.control b/noncore/unsupported/gsmtool/opie-gsmtool.control
index d987b11..6c5e4a3 100644
--- a/noncore/unsupported/gsmtool/opie-gsmtool.control
+++ b/noncore/unsupported/gsmtool/opie-gsmtool.control
@@ -1,11 +1,11 @@
Package: opie-gsmtool
Files: plugins/application/libgsmtool.so* bin/gsmtool apps/Applications/gsmtool.desktop pics/gsmtool
Priority: optional
Section: opie/applications
Maintainer: David Woodhouse <dwmw2@infradead.org>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 1.0.0$EXTRAVERSION
Depends: task-opie-minimal, gsmlib
License: Public Domain
Description: GSMTool program
An GSM phone utility program for the Opie environment.
diff --git a/noncore/unsupported/ubrowser/opie-ubrowser.control b/noncore/unsupported/ubrowser/opie-ubrowser.control
index bfa6c30..349a7df 100644
--- a/noncore/unsupported/ubrowser/opie-ubrowser.control
+++ b/noncore/unsupported/ubrowser/opie-ubrowser.control
@@ -1,10 +1,10 @@
Package: opie-ubrowser
Files: bin/ubrowser apps/Applications/ubrowser.desktop pics/ubrowser/*.png plugins/application/libubrowser.so*
Priority: optional
Section: opie/applications
Maintainer: Thomas Stephens <spiralman@softhome.net>
Architecture: arm
-Version: $QPE_VERSION$EXTRAVERSION
+Version: 0.1$EXTRAVERSION
Depends: task-opie-minimal
License: GPL
Description: A very small web browser
diff --git a/scripts/GeneratePackageMake b/scripts/GeneratePackageMake
index 099d3e8..9d692a9 100755
--- a/scripts/GeneratePackageMake
+++ b/scripts/GeneratePackageMake
@@ -1,228 +1,228 @@
# generate file containg control name / package name / files
find . -name *.control | grep -v -- "-mt.control" | while read i
do
i=${i/.\//}
CDIR=${i%/*}
BNAME=${i##*/}
BNAME=${BNAME/.control/}
echo "cdir: ${CDIR}"
echo "bname: ${BNAME}"
grep -e "Package:" -e "Files:" ./${i}
done > /tmp/ALL
#
# makefile header
#
cat << MAKEFILEHEADER
#
# generate -mt.control file from regular control
# arg 1 : path to control file to convert
#
define GenerateMTControl
@echo "Generating -mt control file for \$(basename \$<)"
@\$(OPIEDIR)/scripts/tothreaded \$< \$(OPIEDIR)/AllThreadedPackages
endef
#
# package one control file
# arg 1 : directory from OPIEROOT where control file resides
# arg 2 : control file basename without -mt (no .control)
# arg 3 : control file basename with -mt if needed
# arg 4 : package name (value specified by Package: ...)
#
define DoPackage
-@echo \"Building ipk of \$(4)\"
-@( \$(ForSubst) ) > \$(TOPDIR)/scripts/subst
-@( \$(ForFileSubst) ) > \$(TOPDIR)/scripts/Filesubst
-@( cd \$(OPIEDIR); \\
+echo \"Building ipk of \$(4)\"
+( \$(ForSubst) ) > \$(TOPDIR)/scripts/subst
+( \$(ForFileSubst) ) > \$(TOPDIR)/scripts/Filesubst
+( cd \$(OPIEDIR); \\
\$(OPIEDIR)/scripts/mkipkg \\
--subst=\$(OPIEDIR)/scripts/subst \\
--filesubst=\$(OPIEDIR)/scripts/filesubst \\
--control=\$(OPIEDIR)/\$(1)/\$(3).control \\
--prerm=\$(OPIEDIR)/\$(1)/\$(2).prerm \\
--preinst=\$(OPIEDIR)/\$(1)/\$(2).preinst \\
--postrm=\$(OPIEDIR)/\$(1)/\$(2).postrm \\
--postinst=\$(OPIEDIR)/\$(1)/\$(2).postinst \\
--strip=\$(STRIP) \$(OPIEDIR); \\
rm -f \$(OPIEDIR)/Packages/\$(4)_*.ipk; \\
mv *.ipk \$(OPIEDIR)/Packages; \\
touch \$(OPIEDIR)/Packages/\$(4) \\
) || true
endef
#
# prepared for generating the substfile for every build
#
define ForSubst
echo 's,\\\$\$QPE_VERSION,\$(QPE_VERSION),g'; \\
echo 's,\\\$\$OPIE_VERSION,\$(OPIE_VERSION),g'; \\
echo 's,\\\$\$QTE_VERSION,\$(QTE_VERSION),g'; \\
echo 's,\\\$\$QTE_REVISION,\$(QTE_REVISION),g'; \\
echo 's,\\\$\$SUB_VERSION,\$(SUB_VERSION),g'; \\
echo 's,\\\$\$EXTRAVERSION,\$(EXTRAVERSION),g'; \\
echo 's,\\\$\$QTE_BASEVERSION,\$(QTE_BASEVERSION),g'
endef
define ForFileSubst
echo 's,\\\$\$OPIEDIR/root/,/,g'; \\
echo 's,\$(OPIEDIR)/root/,/,g'; \\
echo 's,\\\$\$OPIEDIR,\$(prefix),g'; \\
echo 's,\$(OPIEDIR),\$(prefix),g'; \\
echo 's,\\\$\$QTDIR,\$(prefix),g'; \\
echo 's,\$(QTDIR),\$(prefix),g'; \\
echo 's,^\(\./\)*root/,/,g'; \\
echo 's,^\(\./\)*etc/,\$(prefix)/etc/,g'; \\
echo 's,^\(\./\)*lib/,\$(prefix)/lib/,g'; \\
echo 's,^\(\./\)*bin/,\$(prefix)/bin/,g'; \\
echo 's,^\(\./\)*pics/,\$(prefix)/pics/,g'; \\
echo 's,^\(\./\)*sounds/,\$(prefix)/sounds/,g'; \\
echo 's,^\(\./\)*i18n/,\$(prefix)/i18n/,g'; \\
echo 's,^\(\./\)*plugins/,\$(prefix)/plugins/,g'; \\
echo 's,^\(\./\)*apps/,\$(prefix)/apps/,g'; \\
echo 's,^\(\./\)*share/,\$(prefix)/share/,g'; \\
echo 's,^\(\./\)*i18n/,\$(prefix)/i18n/,g'; \\
echo 's,^\(\./\)*help/,\$(prefix)/help/,g'
endef
#
# Will contain a list of all non-mt control files
ALLCONTROLFILES=
#
# Will contain a list of all packaging targets
ALLPACKAGES=
# s contains now single space
s=\$(x) \$(x)
#
# for convenience : generate AllTh
ATP=\$(OPIEDIR)/AllThreadedPackages
MAKEFILEHEADER
while read k
do
CDIR="${k#* }"
read k
BNAME="${k#* }"
read k
case $k in
*"ackage:"*)
Pkg="${k#* }"
Pkg="${Pkg// }"
;;
*"iles:"*)
Files="${k/Files:/}"
;;
esac
read k
case $k in
*"ackage:"*)
Pkg="${k#* }"
Pkg="${Pkg// }"
;;
*"iles:"*)
Files="${k/Files:/}"
;;
esac
cat << HERE
#
# package $Pkg in ${BNAME}
#
package-${Pkg} : \$(OPIEDIR)/Packages/$Pkg
package-${Pkg}-mt : \$(ATP) \$(OPIEDIR)/Packages/$Pkg-mt
# collect control files and package targets
ALLCONTROLFILES += ${CDIR}/${BNAME}.control
ALLPACKAGES += $Pkg
# to generate -mt control file
\$(OPIEDIR)/${CDIR}/${BNAME}-mt.control : \$(OPIEDIR)/${CDIR}/${BNAME}.control
\$(GenerateMTControl)
HERE
if [ ! -z "${Files}" ]
then
cat << HERE
# optimize speed
.phony : \$(wildcard \$(addprefix \$(OPIEDIR)/,${Files}))
# capture missing files (because not built)
\$(OPIEDIR)/Packages/$Pkg \$(OPIEDIR)/Packages/$Pkg-mt \$(SUBSTFILES): \$(wildcard \$(addprefix \$(OPIEDIR)/,${Files}))
HERE
# echo "\$(wildcard \$(addprefix \$(OPIEDIR)/,${Files})) : "
fi
cat << HERE
\$(OPIEDIR)/Packages/$Pkg : \$(OPIEDIR)/${CDIR}/${BNAME}.control
@\$(call DoPackage,${CDIR},${BNAME},${BNAME},${Pkg})
\$(OPIEDIR)/Packages/$Pkg-mt : \$(OPIEDIR)/${CDIR}/${BNAME}-mt.control
@\$(call DoPackage,${CDIR},${BNAME},${BNAME}-mt,${Pkg}-mt)
HERE
done < /tmp/ALL
cat << HERE
#
# regenerate package file if control files are modified
#
Package.make : \$(addprefix \$(OPIEDIR)/,\$(ALLCONTROLFILES))
#
# make targets to build packages
# needs quicklauncher link in location (because dangling
# links are not considered as true files by the wildcard command)
#
# if you want to build one package only then use
# make package-<basenameof control>
# or make package-<basenameof control>-mt
#
packages : /opt/QtPalmtop/bin/quicklauncher \\
\$(OPIEDIR)/Packages \\
\$(add prefix \$(OPIEDIR)/Packages/,\$(ALLPACKAGES))
packages-mt : /opt/QtPalmtop/bin/quicklauncher \\
\$(ATP) \\
\$(OPIEDIR)/Packages \\
\$(addprefix \$(OPIEDIR)/Packages/,\$(addsuffix -mt,\$(ALLPACKAGES)))
#
# capture missing quichlauncher link
#
/opt/QtPalmtop/bin/quicklauncher :
@echo "create a link from /opt/QtPalmtop to \$(OPIEDIR) for this target to work"
exit 2
#
# Create Packages directory
#
\$(OPIEDIR)/Packages :
@mkdir \$(OPIEDIR)/Packages
#
# update file containing all packages
#
\$(ATP) : \$(addprefix \$(OPIEDIR)/,\$(ALLCONTROLFILES))
@echo "Generating \$(notdir \$(ATP))"
@echo -e "\$(subst \$(s),,\$(foreach i,\$(ALLPACKAGES),\$(i)\n))" > \$@
HERE
rm /tmp/ALL
diff --git a/scripts/mkipkg b/scripts/mkipkg
index a336371..2f020f4 100755
--- a/scripts/mkipkg
+++ b/scripts/mkipkg
@@ -1,388 +1,392 @@
#!/bin/sh
# vim: et sw=4
# TODO: srcdir!=builddir
usage()
{
echo "usage: $self --destdir=[destination installation directory]"
echo "usage: $self [destination installation directory]"
exit 1
}
self=mkipkg
destdir=
strip=strip
control=
builddir=
srcdir=
prefix=
preinst=
postinst=
prerm=
postrm=
mkfsjffs2=
ipkgbuild=ipkg-build
buildversion=
subst=
user=root
group=root
filesubst=
oldpwd=
for option
do
case "$option" in
-*=*)
arg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'`
;;
esac
case "$option" in
--destdir=*)
destdir=$arg
;;
--strip=*)
strip=$arg
;;
--control=*)
control=$arg
;;
--preinst=*)
preinst=$arg
;;
--postinst=*)
postinst=$arg
;;
--prerm=*)
prerm=$arg
;;
--postrm=*)
postrm=$arg
;;
--builddir=*)
builddir=$arg
;;
--srcdir=*)
srcdir=$arg
;;
--prefix=*)
prefix=$arg
;;
--mkfsjffs2=*)
mkfsjffs2=$arg
;;
--ipkgbuild=*)
ipkgbuild=$arg
;;
--buildversion=*)
buildversion=$arg
;;
--subst=*)
subst=$arg
;;
--user=*)
user=$arg
;;
--group=*)
group=$arg
;;
--filesubst=*)
filesubst=$arg
;;
--classic)
classic=-c
;;
-*)
usage
;;
*)
destdir=$option
;;
esac
done
if [ -z "$control" ]; then
control=$destdir/CONTROL/control
fi
if [ -z "$prerm" ]; then
prerm=$destdir/CONTROL/prerm
fi
if [ -z "$postrm" ]; then
postrm=$destdir/CONTROL/postrm
fi
if [ -z "$preinst" ]; then
preinst=$destdir/CONTROL/preinst
fi
if [ -z "$postinst" ]; then
postinst=$destdir/CONTROL/postinst
fi
# remove leading slash from prefix (to fix globbing)
if [ -n "$prefix" ]; then
prefix=`echo $prefix | sed -e "s,/\(.*\),\\1,"`
fi
if [ -z "$destdir" ]; then
usage
fi
if [ ! -r $control ]; then
echo "$self: cannot find $control, exiting..."
exit 1
fi
if [ -z "`which $ipkgbuild 2>/dev/null`" ]; then
echo "$self: cannot find ipkg-build, exiting..."
exit 1
fi
findFile()
{
local path=
if [ $# = 1 ]; then
find $1 -type f -o -type b -o -type c -o -type l
find $1 -type d -a -empty
else
find . -type f -o -type b -o -type c -o -type l | \
sed -e "s,\./\(.*\),\\1,g"
find . -type d -a -empty
fi
}
_pushd() { oldpwd=`pwd`; cd $1; }
_popd() { cd $oldpwd; }
setVar()
{
eval "$1='$2'"
}
expandMaskToList()
{
local _list=`echo $1`
local _tmpFileList=
for f in $_list; do
if [ -d $f ]; then
f="`findFile $f`"
fi
_tmpFileList="`eval echo $f` $_tmpFileList"
done
setVar $2 "$_tmpFileList"
}
createFileList()
{
local excludeMask
local includeMask
local includemaskpresent=0
local excludemaskpresent=0
if (grep -q ^FileExcludeMask $1); then
excludemaskpresent=1
excludeMask=$(eval echo '"'$(sed -n -e "s,^FileExcludeMask: *,,p" $1)'"')
fi
if (grep -q ^FileIncludeMask $1); then
includemaskpresent=1
includeMask=$(eval echo '"'$(sed -n -e "s,^FileIncludeMask: *,,p" $1)'"')
else
if (grep -q ^Files: $1); then
includemaskpresent=1
includeMask=$(eval echo '"'$(sed -n -e "s,^Files: *,,p" $1)'"')
fi
fi
_pushd $destdir
declare -a excludeMaskArray
excludeMaskArray=( $excludeMask )
excludeMaskArray=( "${excludeMaskArray[@]}" "CONTROL/*" "usr/share/*" )
if [ $includemaskpresent != 1 ]; then
includeMask="."
fi
if [ -z "$includeMask" ]; then
setVar $2 ""
_popd
return 0
fi
expandMaskToList "$includeMask" _fileList
excludeMaskArray=( "${excludeMaskArray[@]}" "*/CVS*" "*/SCCS*" )
local realFileList=
local missing=0
for file in $_fileList; do
local containedInList=0
for i in "${excludeMaskArray[@]}"; do
if [[ $file == $i ]]; then
containedInList=1
break;
fi
done
if [ $containedInList = 0 ]; then
if ! [ -e $file -o -L $file ]; then
echo "$self: $file not found"
missing=1
fi
realFileList=$file" $realFileList"
fi
done
_popd
if [ $missing = 1 ]; then
return 1
fi
setVar $2 "$realFileList"
}
stripFile()
{
- if [ -f $1 -a -x $1 ]; then
- $strip --strip-all $1
+ if [ ! -h $1 -a -f $1 -a -x $1 ]; then
+ $strip -p --strip-all $1
fi
}
substFile()
{
local oldfile=$1
if [ ! -e $2 ]; then return 1; fi
if [ -e $oldfile -o -L $oldfile ]; then
newfile=`echo $oldfile|sed -f $2|sed -e's,^/,,g'`
olddir=`dirname $oldfile`
base=`basename $oldfile`
newdir=`dirname $newfile`
# echo >&2 moving $oldfile to $newfile
if [ "$newdir" = "$olddir" ]; then
return 0
fi
mkdir -p $newdir
mv $olddir/$base $newfile
rmdir -p $olddir 2>/dev/null
fi
}
stripFiles()
{
for f in $1; do
- stripFile ./$f
+ # do not strip links
+ if [ ! -h ./$f ]
+ then
+ stripFile ./$f
+ fi
done
}
substFiles()
{
for f in $1; do
substFile ./$f
done
}
substAndStripFiles()
{
for f in $1; do
stripFile ./$f
substFile ./$f $2
done
}
installScript()
{
if [ -n "$1" -a -f "$1" ]; then
destfile=`basename $1`
filetype=`echo $destfile|cut -d. -f2`
if [ -n "$filetype" ]; then destfile=$filetype; fi
if [ -n "$subst" ]; then
sed -f $subst < $1 > $ctrldir/$destfile
else
cat $1 > $ctrldir/$destfile
fi
chmod +x $ctrldir/$destfile
fi
}
tempDir=/tmp/`basename $self`.$$
mkdir -p $tempDir
if [ $? != 0 ]; then
echo "$self: cannot create $tempDir, exiting..."
rm -rf $tempDir
exit 1
fi
ctrldir=$tempDir/CONTROL
mkdir -p $ctrldir
if [ ! -e $subst ] || [ -z "$subst" ]; then
cat $control > $ctrldir/control.new
else
sed -f $subst < $control > $ctrldir/control.new
fi
createFileList $ctrldir/control.new ipkgFileList
if [ "$?" != "0" ]; then
echo "$self: ERROR: missing files, not building $control"
rm -rf $tempDir
exit 1
fi
cat $ctrldir/control.new | egrep -v '^(Files|FileExcludeMask|FileIncludeMask):' > $ctrldir/control
rm -f $ctrldir/control.new
( cd $destdir && tar -cf - $ipkgFileList 2>/dev/null ) | ( cd $tempDir && tar -xf - 2>/dev/null )
if [ -z "$filesubst" ]; then
( cd $tempDir && stripFiles "$ipkgFileList" )
else
if ! (echo $filesubst|grep -q '^/'); then
filesubst="$oldpwd/$filesubst"
fi
( cd $tempDir && substAndStripFiles "$ipkgFileList" $filesubst )
fi
# removing CVS directories
find $tempDir -name CVS -a -type d -print0 | xargs -0 rm -rf
path="`echo "$PATH" | sed -e "s/\:/ /g"`"
if [ -z "$mkfsjffs2" ]; then
for i in $path; do
if [ -x "$i/mkfs.jffs2" ]; then
mkfsjffs2="$i/mkfs.jffs2"
break
fi
done
fi
if [ -z "$mkfsjffs2" ]; then
echo "$self: WARNING: no mkjfs.jffs2 found in path. Falling back to using du"
echo "for size calculation. mkfs.jffs2 is recommended for size calculation"
echo "as it calculates the real package size on the compressed file system,"
echo "in contrast to du calculating the uncompressed size!"
buildsize=`du -h -s $tempDir | awk '{print $1}'`
else
buildsize=`$mkfsjffs2 -r $tempDir | wc -c`
fi
if [ "$buildsize" != "0" ]; then
echo "Installed-Size: $buildsize" >> $ctrldir/control
fi
installScript $preinst
installScript $postinst
installScript $prerm
installScript $posrm
$ipkgbuild $classic -o $user -g $group $tempDir
rm -rf $tempDir
diff --git a/scripts/tothreaded b/scripts/tothreaded
index 31ed31e..f916ad8 100755
--- a/scripts/tothreaded
+++ b/scripts/tothreaded
@@ -1,136 +1,136 @@
#!/bin/sh
# PURPOSE :
#
# this script converts a non-threaded control file to a threaded one
# by extending appropriate names with -mt as extension
#
# eg abc.control becoms abc-mt.control
#
#
# make sure that the depends expression has enough spaces
# expression can contian : , ( ) || &&
#
tokenize() {
sed "s/,/ & /g" | sed "s/)/ & /g" | sed "s/(/ & /g" | sed "s/|/ & /g" | sed "s/&/ & /g"
}
#
# function converts package name to threaded equivalend IF the
# package file HAS a threaded version
#
findthreadedequiv() {
local isin i
for i in $*
do
isin=`grep "^$i\$" "$ALLTHREADEDPKGSFILE"`
if [ -z "$isin" ]
then
# no threaded package
- echo -n "$i "
+ echo -n "$i"
else
# threaded package
- echo -n "${isin}-mt "
+ echo -n "${isin}-mt"
fi
done
echo
}
#
# signature of binary files
# currently obsolete
#
# ISBINARY="*ELF*LSB*"
usage() {
echo "Usage : tothreaded <controlfile> <ALLPackages file>"
exit 2
}
. scripts/SpecialMTFiles
#
# get the name of the controlfile to check for threading
#
if [ -z "$1" ]
then
usage
fi
controlfile=$1
shift
case $controlfile in
*-mt.control)
#already threaded
echo $controlfile
exit 0;
;;
esac
#
# file containing list of all known threaded packages
#
if [ -z "$1" ]
then
usage
fi
ALLTHREADEDPKGSFILE=$1
shift
#
# strip out the name of the package
#
packagename=${controlfile##*/} # path
packagename=${packagename%.control} # extension
#
# generate new control file
#
newcontrolfile=${controlfile/\.control/-mt\.control}
#
# read all lines in original control file
#
while read line
do
case $line in
# convert some files to threaded equivalent
"Files:"*)
files=${line#Files:}
# thread-converted files
T_files=`ConvertSpecialFiles "$files"`
echo "Files: $T_files"
;;
"Package: "*)
T_package=`findthreadedequiv ${line#Package: }`
echo "Package: ${T_package}"
;;
"Depends: "*)
depends=`echo "${line#Depends: }" | tokenize`
T_depends=`findthreadedequiv ${depends}`
echo "Depends: $T_depends"
;;
"Provides: "*)
T_provides=`findthreadedequiv ${line#Provides: }`
echo "Provides: $T_provides"
;;
"Recommends: "*)
T_recommends=`findthreadedequiv ${line#Recommends: }`
echo "Recommends: $T_recommends"
;;
"Conflicts: "*)
conflicts=`echo "${line#Conflicts: }" | tokenize`
T_conflicts=`findthreadedequiv ${conflicts}`
echo "Conflicts: $T_conflicts"
;;
*":"*)
echo "$line"
;;
*) # al other lines
echo " $line"
;;
esac
done < $controlfile > $newcontrolfile
echo $newcontrolfile