add Xqt2, an X server for Opie environments. patch courtesy Enodr <nicolasfr@gmail...
authorMichael Lauer <mickey@vanille-media.de>
Sat, 13 May 2006 19:16:07 +0000 (19:16 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Sat, 13 May 2006 19:16:07 +0000 (19:16 +0000)
packages/xqt2/.mtn2git_empty [new file with mode: 0644]
packages/xqt2/files/.mtn2git_empty [new file with mode: 0644]
packages/xqt2/files/KeyMap.patch [new file with mode: 0644]
packages/xqt2/files/cross.patch [new file with mode: 0644]
packages/xqt2/files/fephack.patch [new file with mode: 0644]
packages/xqt2/files/imake-staging.patch [new file with mode: 0644]
packages/xqt2/files/moc_call.patch [new file with mode: 0644]
packages/xqt2/files/xchar2b.patch [new file with mode: 0644]
packages/xqt2/files/xqt-make.patch [new file with mode: 0644]
packages/xqt2/xqt2_20060509.bb [new file with mode: 0644]

diff --git a/packages/xqt2/.mtn2git_empty b/packages/xqt2/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xqt2/files/.mtn2git_empty b/packages/xqt2/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xqt2/files/KeyMap.patch b/packages/xqt2/files/KeyMap.patch
new file mode 100644 (file)
index 0000000..62564cf
--- /dev/null
@@ -0,0 +1,19 @@
+--- xc/../xqt2/xfree86/xqt-driver/KeyMap.h     2004-10-16 08:06:07.000000000 +0200
++++ xc/../xqt2/xfree86/xqt-driver/KeyMap~.h    2006-05-10 19:41:16.000000000 +0200
+@@ -75,6 +75,7 @@
+ /* [          */      K(BracketLeft,  XK_bracketleft, XK_braceleft)   // Fn+T
+ /* {          */      K(BraceLeft,    XK_braceleft,   NoSymbol)       // ???
+ /* cent       */      K(cent,         XK_cent,        NoSymbol)       // Fn+U
++/* Enter      */      K(Enter,        XK_Return,      NoSymbol)
+ /* Return     */      K(Return,       XK_Return,      NoSymbol)
+ /* OK         */      K(F33,          XK_Return,      NoSymbol)
+ /* Control    */      K(Control,      XK_Control_L,   NoSymbol)
+@@ -162,7 +163,7 @@
+ /* F30        */      K(F30,          XK_F30,         NoSymbol)
+ /* F31        */      K(F31,          XK_F31,         NoSymbol)
+ /* F32        */      K(F32,          XK_F32,         NoSymbol)
+-/* F33        */      K(F33,          XK_F33,         NoSymbol)
++/* F33        */      /* K(F33,               XK_F33,         NoSymbol) */ // Key already defined as 'ok'
+ /* F34        */      K(F34,          XK_F34,         NoSymbol)
+ /* F35        */      K(F35,          XK_F35,         NoSymbol)
diff --git a/packages/xqt2/files/cross.patch b/packages/xqt2/files/cross.patch
new file mode 100644 (file)
index 0000000..c00068a
--- /dev/null
@@ -0,0 +1,62 @@
+diff -ur xc.org/config/cf/X11.tmpl xc/config/cf/X11.tmpl
+--- xc.org/config/cf/X11.tmpl  2003-02-26 06:57:52.000000000 +0900
++++ xc/config/cf/X11.tmpl      2004-09-16 19:19:46.000000000 +0900
+@@ -1582,9 +1582,9 @@
+         MKFONTDIR = $(CLIENTENVSETUP) $(PRELOADFONTSETUP) $(XBUILDBINDIR)/mkfontdir
+        XCURSORGEN = $(CLIENTENVSETUP) $(PRELOADSETUP) $(XBUILDBINDIR)/xcursorgen
+ # elif UseInstalledOnCrossCompile
+-        MKFONTDIR = $(BINDIR)/mkfontdir
+-            FONTC = $(BINDIR)/bdftopcf
+-       XCURSORGEN = $(BINDIR)/xcursorgen
++        MKFONTDIR = /usr/X11R6/bin/mkfontdir
++            FONTC = /usr/X11R6/bin/bdftopcf
++       XCURSORGEN = /usr/X11R6/bin/xcursorgen
+ # endif
+ # if HasPerl
+       MKHTMLINDEX = RunPerlScript($(CONFIGSRC)/util/mkhtmlindex.pl,)
+diff -ur xc.org/config/cf/cross.def xc/config/cf/cross.def
+--- xc.org/config/cf/cross.def 2002-04-04 23:05:33.000000000 +0900
++++ xc/config/cf/cross.def     2004-09-16 19:19:46.000000000 +0900
+@@ -5,7 +5,7 @@
+  * compiler images.  It will have to be edited to reflect these
+  * given your local configuration.
+  */
+-#if 0
++#if 1
+ #undef i386Architecture
+ #define Arm32Architecture
+@@ -14,18 +14,18 @@
+ #define ServerCDebugFlags     -O2
+ #undef StandardDefines
+ #define StandardDefines       -Dlinux -D__arm__ -D_POSIX_SOURCE \
+-                              -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
++                              -D_BSD_SOURCE -D_GNU_SOURCE
+ #undef CcCmd
+-#define StdIncDir /skiff/local/arm-linux/include
++#define StdIncDir $(TOPDIR)/tmp/cross/arm-linux/include
+ #define PreIncDir 
+ #undef PostIncDir
+-#define PostIncDir /skiff/local/lib/gcc-lib/arm-linux/2.95.2/include
+-#define CcCmd /skiff/local/bin/arm-linux-gcc
++#define PostIncDir $(TOPDIR)/tmp/cross/lib/gcc-lib/arm-linux/2.95.2/include
++#define CcCmd $(TOPDIR)/tmp/cross/bin/arm-linux-gcc
+ #undef CplusplusCmd
+ #define HasCplusplus YES
+-#define CplusplusCmd /skiff/local/bin/arm-linux-g++
++#define CplusplusCmd $(TOPDIR)/tmp/cross/bin/arm-linux-g++
+ #define DoRanlibCmd YES
+-#define RanlibCmd /skiff/local/bin/arm-linux-ranlib
++#define RanlibCmd $(TOPDIR)/tmp/cross/bin/arm-linux-ranlib
+ #undef ExtraLoadFlags
+ #define ExtraLoadFlags
+ #define FbNoPixelAddrCode
+@@ -33,7 +33,7 @@
+ #define TermcapLibrary -ltermcap
+ #undef LdPostLib
+-#define LdPostLib     -L/skiff/local/arm-linux/lib
++#define LdPostLib     -L$(TOPDIR)/tmp/cross/arm-linux/lib
+ #undef ExtensionOSDefines
+ #define ExtensionOSDefines
diff --git a/packages/xqt2/files/fephack.patch b/packages/xqt2/files/fephack.patch
new file mode 100644 (file)
index 0000000..c09a7ed
--- /dev/null
@@ -0,0 +1,32 @@
+diff -ur xc.org/lib/X11/KeyBind.c xc/lib/X11/KeyBind.c
+--- xc.org/lib/X11/KeyBind.c   2001-12-15 04:54:02.000000000 +0900
++++ xc/lib/X11/KeyBind.c       2004-09-16 19:19:46.000000000 +0900
+@@ -545,6 +545,13 @@
+     unsigned int modifiers;
+     KeySym symbol;
++    /* X/Qt hack start */
++    if (event->keycode & 0x100) {
++          *buffer = event->keycode & 0xff;
++          return 1;
++    }
++    /* X/Qt hack end */
++
+     if (! _XTranslateKey(event->display, event->keycode, event->state,
+                 &modifiers, &symbol))
+       return 0;
+diff -ur xc.org/lib/X11/XlibInt.c xc/lib/X11/XlibInt.c
+--- xc.org/lib/X11/XlibInt.c   2003-02-18 14:15:27.000000000 +0900
++++ xc/lib/X11/XlibInt.c       2004-09-16 19:19:46.000000000 +0900
+@@ -2358,6 +2358,11 @@
+                       ev->state       = event->u.keyButtonPointer.state;
+                       ev->same_screen = event->u.keyButtonPointer.sameScreen;
+                       ev->keycode     = event->u.u.detail;
++                      /* X/Qt hack start */
++                      if (event->u.keyButtonPointer.pad1 == 0xff) {
++                              ev->keycode |= 0x100;
++                      }
++                      /* X/Qt hack end */
+               }
+               break;
+             case ButtonPress:
diff --git a/packages/xqt2/files/imake-staging.patch b/packages/xqt2/files/imake-staging.patch
new file mode 100644 (file)
index 0000000..bf2e350
--- /dev/null
@@ -0,0 +1,38 @@
+--- xc/config/cf/Imake.tmpl.orig       2004-07-28 04:24:29.000000000 +0100
++++ xc/config/cf/Imake.tmpl    2004-09-14 21:03:06.000000000 +0100
+@@ -2038,11 +2038,11 @@
+  */
+       ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
+        ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+-           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
++           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+         LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+          LDPRELIB = LdPreLib $(INSTALLED_LIBS)
+         LDPOSTLIB = LdPostLib
+-        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)  $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
++        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)  $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) $(LD_STAGING)
+      CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+            LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+--- xc/config/cf/Library.tmpl~ 2004-05-24 20:06:57.000000000 +0100
++++ xc/config/cf/Library.tmpl  2004-09-14 21:10:29.000000000 +0100
+@@ -114,7 +114,7 @@
+ STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
+ CDEBUGFLAGS = LibraryCDebugFlags
+ CLIBDEBUGFLAGS = LibraryDebugOpt
+-     CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES)
++     CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) $(CC_STAGING)
+ # if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags)
+    PICFLAGS = LargePositionIndependentCFlags
+ # endif
+--- xc/config/cf/X11.tmpl~     2004-09-03 17:18:18.000000000 +0100
++++ xc/config/cf/X11.tmpl      2004-09-14 21:30:30.000000000 +0100
+@@ -3359,7 +3359,7 @@
+ FREETYPE2LIBDIR = Freetype2LibDir
+ FREETYPE2INCDIR = Freetype2IncDir
+ #if Freetype2LibDirStandard
+-FREETYPE2LIB = -lfreetype
++FREETYPE2LIB = $(LD_STAGING) -lfreetype
+ #else
+ FREETYPE2LIB = -L$(FREETYPE2LIBDIR) LinkerRuntimeLibraryPathFlag($(FREETYPE2LIBDIR)) -lfreetype
+ #endif
diff --git a/packages/xqt2/files/moc_call.patch b/packages/xqt2/files/moc_call.patch
new file mode 100644 (file)
index 0000000..6e150e2
--- /dev/null
@@ -0,0 +1,11 @@
+--- xc/../xqt2/xfree86/xqt-driver/Imakefile    2006-05-09 11:59:07.000000000 +0200
++++ xc/../xqt2/xfree86/xqt-driver/Imakefile    2004-09-16 12:40:30.000000000 +0200
+@@ -12,7 +12,7 @@
+ QTDIR = QtDir
+-MOC   = QtDir/bin/moc
++MOC   = MocBin
+ INCLUDES = -I. \
+        -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
diff --git a/packages/xqt2/files/xchar2b.patch b/packages/xqt2/files/xchar2b.patch
new file mode 100644 (file)
index 0000000..5561bc4
--- /dev/null
@@ -0,0 +1,25 @@
+* XChar2b patch
+
+This is *EXTREMELY* important patch to handle strings contains 2-byte character 
+correctly on ARM architecture hardware.
+
+On ARM architecture, size of the XChar2b structure will be 4, because gcc
+adds 2 byte padding at the last of the structure. This will breaks the
+XChar2b stream!
+
+This patch makes the size of the structure to 2 byte, with 
+__attribute__ ((packed)) declaration.
+
+
+diff -ur xc.org/lib/X11/Xlib.h xc/lib/X11/Xlib.h
+--- xc.org/lib/X11/Xlib.h      2002-06-01 03:45:42.000000000 +0900
++++ xc/lib/X11/Xlib.h  2004-09-16 19:19:46.000000000 +0900
+@@ -1059,7 +1059,7 @@
+ typedef struct {              /* normal 16 bit characters are two bytes */
+     unsigned char byte1;
+     unsigned char byte2;
+-} XChar2b;
++} __attribute__ ((packed)) XChar2b;
+ typedef struct {
+     XChar2b *chars;           /* two byte characters */
diff --git a/packages/xqt2/files/xqt-make.patch b/packages/xqt2/files/xqt-make.patch
new file mode 100644 (file)
index 0000000..f031b26
--- /dev/null
@@ -0,0 +1,43 @@
+diff -ur xc.org/programs/Xserver/Imakefile xc/programs/Xserver/Imakefile
+--- xc.org/programs/Xserver/Imakefile  2003-02-18 02:06:40.000000000 +0900
++++ xc/programs/Xserver/Imakefile      2004-09-16 19:37:14.000000000 +0900
+@@ -1350,13 +1350,38 @@
+ #endif /* XDarwinServer */
++#if defined(XqtXServer)
++XCOMM
++XCOMM Xqt Server Section
++XCOMM
++
++QTDIR   = QtDir
++
++KDDIRS    = StdKdDirs
++
++XQTDDXDIR = hw/xqt
++SHADOWDIR = miext/shadow
++XQTDIRS = $(STDDIRS) $(KDDIRS) $(XQTDDXDIR) $(SHADOWDIR) $(LAYERDIR) $(DEPDIRS)
++
++XQTLIB     = $(XQTDDXDIR)/LibraryTargetName(xqt)
++XQTOBJS    =  
++
++XQTLIBS    = PreFbLibs $(XQTLIB) KdLibs $(SHADOW) $(LAYER) FbPostFbLibs
++XQTSYSLIBS = StdKdSysLibs -L$(QTDIR)/lib QtLibs
++
++/* C++ linker must be used to build Xqt server */
++CCLINK           = $(CXXLINK)
++
++ServerTarget(Xqt,$(XQTDIRS),$(XQTOBJS),$(XQTLIBS),$(XQTSYSLIBS))
++#endif        /* XqtServer */
++
+ CFBDIRS = $(CFB8DIR) $(CFB16DIR) $(CFB24DIR) $(CFB32DIR)
+ MIEXTDIRS = $(SHADOWDIR) $(LAYERDIR)
+ IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR)
+ DDXDIRS = $(DECWSDDXDIR) $(SUNDDXDIR) $(LYNXDDXDIR) \
+         $(HPDDXDIR) $(XFREE86DDXDIR) $(XWINDDXDIR) $(DARWINDDXDIR) \
+-        $(XVFBDDXDIR) $(XNESTDDXDIR)
++        $(XVFBDDXDIR) $(XNESTDDXDIR) $(XQTDDXDIR)
+ SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFBDIRS) $(IPLANDIRS) $(ILBMDIR) $(AFBDIR) \
+           $(LMFCFBDIR) $(DDXDIRS) $(FBDIR) $(KDRIVEDIRS) $(MIEXTDIRS) \
+         $(XWINPARSERDIR)
diff --git a/packages/xqt2/xqt2_20060509.bb b/packages/xqt2/xqt2_20060509.bb
new file mode 100644 (file)
index 0000000..1b29447
--- /dev/null
@@ -0,0 +1,111 @@
+DESCRIPTION = "Xqt2 is an X-Server than runs within the Opie environment"
+HOMEPAGE = "http://xqt.sourceforge.jp"
+DEPENDS = "freetype libxi xmu flex-native virtual/libqte2 libqpe-opie"
+LICENSE = "GPL"
+SECTION = "opie/applications"
+APPTYPE = "binary"
+APPNAME = "Xqt"
+PR = "r0"
+
+inherit palmtop
+
+SRC_URI = "cvs://anonymous@cvs.sourceforge.jp/cvsroot/xqt;module=xqt2;method=pserver;date=${PV} \
+        http://ring.asahi-net.or.jp/archives/XFree86/4.3.0/source/X430src-1.tgz \
+        http://ring.asahi-net.or.jp/archives/XFree86/4.3.0/source/X430src-2.tgz \
+        http://ring.asahi-net.or.jp/archives/XFree86/4.3.0/source/X430src-3.tgz \
+        http://ring.asahi-net.or.jp/archives/XFree86/4.3.0/source/X430src-4.tgz \
+        http://ring.asahi-net.or.jp/archives/XFree86/4.3.0/source/X430src-5.tgz \
+        file://KeyMap.patch;patch=1 \
+        file://moc_call.patch;patch=1 \
+        file://imake-staging.patch;patch=1 \
+        file://cross.patch;patch=1 \
+        file://fephack.patch;patch=1 \
+        file://xchar2b.patch;patch=1 \
+        file://xqt-make.patch;patch=1 "
+S = "${WORKDIR}/xc"
+
+QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte",d)}'
+QT_LIBRARY_append_c7x0 = " -laticore"
+
+do_configure() {
+       #general config
+       echo "#define BuildServersOnly YES" > config/cf/host.def
+       echo "#define ProjectRoot /usr" >> config/cf/host.def
+       
+       # do not build these XServers
+       echo "#define XnestServer NO"  >> config/cf/host.def
+       echo "#define XdmxServer NO"  >> config/cf/host.def
+       
+       # build commands
+       echo "#define CcCmd ${CC}" >> config/cf/host.def
+       echo "#define CplusplusCmd ${CXX}" >> config/cf/host.def
+       echo "#define LdCmd ${LD}" >> config/cf/host.def
+       
+       # Qt defines
+       echo "#define QtCmnDefs -fno-exceptions -fno-rtti" >> config/cf/host.def
+       echo "#define QtDir ${QTDIR}" >> config/cf/host.def
+       echo "#define QtLibs -lqpe -l${QT_LIBRARY} -lm -lpng -ljpeg -lts -lsupc++" >> config/cf/host.def
+       echo "#define MocBin ${STAGING_BINDIR}/moc" >> config/cf/host.def
+       echo "#define QtDefs -DQWS -DOPIE_NEW_MALLOC -DOPIE_NO_ERASE_RECT_HACKFIX  QtCmnDefs" >> config/cf/host.def
+       
+       # Build these XServers
+       echo "#define XqtXServer  YES" >> config/cf/host.def
+       echo "#define XF86Server  NO"  >> config/cf/host.def
+       echo "#define TinyXServer YES" >> config/cf/host.def
+       echo "#define KDriveXServer YES" >> config/cf/host.def
+       echo "#define KdriveServerExtraDefines -DDDXOSFATALERROR -DDDXOSVERRORF" >> config/cf/host.def
+       
+       # General Config
+       echo "#define SystemUsrIncDir ${STAGING_INCDIR}" >> config/cf/host.def
+       echo "#define IncRoot ${STAGING_INCDIR}" >> config/cf/host.def
+       echo "#define LdPostLib -L${STAGING_LIBDIR}" >> config/cf/host.def
+       
+       echo "#undef BuildRandR " >> config/cf/host.def
+       echo "#define BuildRandR YES" >> config/cf/host.def
+       echo "#define BuildLBX YES" >> config/cf/host.def
+       
+       # change standard defines
+       if [ ${TARGET_ARCH} == "arm" ]; then
+               echo "#define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE" >> config/cf/host.def
+               echo "#define Arm32Architecture" >> config/cf/host.def
+       fi
+       echo "" > config/cf/date.def
+}
+
+do_compile() {
+    export TOPDIR=${TOPDIR}
+    mkdir -p programs/Xserver/hw/xqt
+    #cp -r ../xqt-driver/* programs/Xserver/hw/xqt
+    (cd programs/Xserver/hw/xqt && ln -s ../../../../../xqt2/xfree86/xqt-driver/* .)
+       unset CC
+       make -C config/imake -f Makefile.ini CC="${BUILD_CC}" BOOTSTRAPCFLAGS="${BUILD_CFLAGS}" clean imake
+       make CC="${BUILD_CC}" xmakefile
+       make Makefiles
+       make clean
+       #make depend
+       make includes CC="${BUILD_CC}"
+       make -C config/util CC="${BUILD_CC}"
+       for l in font xtrans Xdmcp Xau lbxutil; do make -C lib/$l CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}"; done
+       make -C programs/Xserver CC="${CC}" LD="${LD}" CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS=""
+}
+
+do_stage() {
+       install -d ${STAGING_INCDIR}/xserver-xqt
+       install -m 0644 programs/Xserver/hw/xfree86/common/fourcc.h ${STAGING_INCDIR}/xserver-xqt
+}
+
+do_install() {
+       oe_runmake -C programs/Xserver DESTDIR="${D}" CC="${CC}" LD="${LD}" \
+                   CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+       oe_runmake -C lib/font DESTDIR="${D}" CC="${CC}" LD="${LD}" \
+                   CC_STAGING="-I${STAGING_INCDIR}" LD_STAGING="-L${STAGING_LIBDIR}" INSTALLED_LIBS="" install
+
+       install -d ${D}${palmtopdir}/Apps/applications/
+       install -m 0644 ${WORKDIR}/xqt2/xfree86/files/Xqt.desktop ${D}${palmtopdir}/Apps/applications
+       install -d ${D}${palmtopdir}/bin/
+       install -m 0755 ${D}${bindir}/Xqt ${D}${palmtopdir}/bin/Xqt
+       install -d ${D}${palmtopdir}/pics
+       install -m 0644 programs/Xserver/hw/xqt/Xqt.png ${D}${palmtopdir}/pics
+}
+
+PACKAGE_ARCH_c7x0 = "${MACHINE_ARCH}"