summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/base.bbclass9
-rw-r--r--conf/bitbake.conf37
-rw-r--r--conf/checksums.ini28
-rw-r--r--conf/distro/include/preferred-xorg-versions-X11R7.5.inc246
-rw-r--r--recipes/dri/libdrm_2.4.11.bb11
-rw-r--r--recipes/glibc/files/tls_i486.patch14
-rw-r--r--recipes/glibc/glibc_2.9.bb3
-rw-r--r--recipes/i2c-tools/read-edid_1.4.1.bb7
-rw-r--r--recipes/libgpg-error/libgpg-error.inc2
-rw-r--r--recipes/libgpg-error/libgpg-error_0.6.bb2
-rw-r--r--recipes/libgpg-error/libgpg-error_0.7.bb2
-rw-r--r--recipes/libgpg-error/libgpg-error_1.0.bb2
-rw-r--r--recipes/libgpg-error/libgpg-error_1.3.bb2
-rw-r--r--recipes/libgpg-error/libgpg-error_1.4.bb2
-rw-r--r--recipes/mesa/mesa-dri_7.4.bb28
-rw-r--r--recipes/mesa/mesa_7.4.bb2
-rw-r--r--recipes/opkg/files/opkg-libdir.patch11
-rw-r--r--recipes/opkg/opkg-native_svn.bb2
-rw-r--r--recipes/rdesktop/rdesktop-1.6.0/audio-2008.patch22
-rw-r--r--recipes/rdesktop/rdesktop-1.6.0/rdesktop-addin.patch534
-rw-r--r--recipes/rdesktop/rdesktop.inc2
-rw-r--r--recipes/rdesktop/rdesktop_1.3.1.bb2
-rw-r--r--recipes/rdesktop/rdesktop_1.4.1.bb2
-rw-r--r--recipes/rdesktop/rdesktop_1.5.0.bb2
-rw-r--r--recipes/rdesktop/rdesktop_1.6.0.bb7
-rw-r--r--recipes/rdesktop/rdesktop_cvs.bb3
-rw-r--r--recipes/skype/skype-static_2.0.0.72.bb4
-rw-r--r--recipes/skype/skype_2.0.0.72.bb20
28 files changed, 976 insertions, 32 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index bc50c67d4b..7f2e81f139 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -1179,10 +1179,11 @@ def base_after_parse(d):
override = bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1)
if override != '0':
paths = []
- for p in [ "${PF}", "${P}", "${PN}", "files", "" ]:
- path = bb.data.expand(os.path.join("${FILE_DIRNAME}", p, "${MACHINE}"), d)
- if os.path.isdir(path):
- paths.append(path)
+ for a in [ "${MACHINE}" ] + bb.data.getVar('MACHINE_FALLBACK', d).split():
+ for p in [ "${PF}", "${P}", "${PN}", "files", "" ]:
+ path = bb.data.expand(os.path.join("${FILE_DIRNAME}", p, a), d)
+ if os.path.isdir(path):
+ paths.append(path)
if len(paths) != 0:
for s in srcuri.split():
if not s.startswith("file://"):
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 8b6956453b..d26efe84f0 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -615,21 +615,6 @@ BUILDCFG_VARS_append_arm = " TARGET_FPU"
BUILDCFG_VARS_append_armeb = " TARGET_FPU"
BUILDCFG_NEEDEDVARS ?= "TARGET_ARCH TARGET_OS"
-###
-### Config file processing
-###
-
-# This means that an envionment variable named '<foo>_arm' overrides an
-# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an
-# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm
-# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything.
-#
-# This works for functions as well, they are really just environment variables.
-# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
-OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
-# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains.
-#OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}"
-
##################################################################
# Include the rest of the config files.
##################################################################
@@ -651,6 +636,28 @@ require conf/sanity.conf
require conf/abi_version.conf
require conf/enterprise.conf
+###
+### Config file processing
+###
+
+# A list of machines that ought to be used when looking for
+# overrides. For example, geodegx and geodelx machines can have geode
+# as a fallback and then avoiding duplicated content between them.
+MACHINE_FALLBACK ?= ""
+
+MACHINE_OVERRIDES = "${@':'.join([bb.data.getVar('MACHINE', d)] + bb.data.getVar('MACHINE_FALLBACK', d).split()) or ':'}"
+
+# This means that an envionment variable named '<foo>_arm' overrides an
+# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an
+# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm
+# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything.
+#
+# This works for functions as well, they are really just environment variables.
+# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
+OVERRIDES ?= "local:${MACHINE_OVERRIDES}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
+# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains.
+#OVERRIDES ?= "local:${MACHINE_OVERRIDES}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}"
+
##################################################################
# Weak variables (usually to retain backwards compatibility)
##################################################################
diff --git a/conf/checksums.ini b/conf/checksums.ini
index f4255eef2f..a29274dc98 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -522,6 +522,10 @@ sha256=3d73988ad3e87f6084a4593cc6b3aac63aca3e893d3e9409d892a6f51558e4c4
md5=22e03dc4038cd63f32c21eb60994892b
sha256=3d73988ad3e87f6084a4593cc6b3aac63aca3e893d3e9409d892a6f51558e4c4
+[http://downloads.sourceforge.net/mesa3d/MesaDemos-7.4.tar.bz2]
+md5=02816f10f30b1dc5e069e0f68c177c98
+sha256=c3de74d62f925e32030adb3d0edcfb3c7a4129fc92c48181a389eeed8f14b897
+
[http://downloads.sourceforge.net/mesa3d/MesaGLUT-7.0.2.tar.bz2]
md5=3a33f8efc8c58a592a854cfc7a643286
sha256=fa31ca39f00ff92c7da59d9993d0eefb8d901eb8a519743942e523fde120eb6c
@@ -582,6 +586,10 @@ sha256=a9cc62ab760afeebcb1319a193508734a2d470cab8effab2776a2d3c65bd9cd2
md5=04d379292e023df0b0266825cb0dbde5
sha256=a9cc62ab760afeebcb1319a193508734a2d470cab8effab2776a2d3c65bd9cd2
+[http://downloads.sourceforge.net/mesa3d/MesaLib-7.4.tar.bz2]
+md5=7ecddb341a2691e0dfdb02f697109834
+sha256=6e945389add4e5b41f2c403ced13c343767565f2eacde4b16de2d0f9f8a6aac4
+
[http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/Module-Build-0.2805.tar.gz]
md5=598bb59b86c2c4842eeffb03392fab5b
sha256=8fd609d1e6b460b5c95ad5612cb823aa863d51360ed55caea987909a9bab50f5
@@ -8550,6 +8558,10 @@ sha256=19a1f79c42b37ee3c90ba6298442b52438f1c67d311ebd33db72210cee2d99d2
md5=c42dfaebc37fe81eab0b5676b124ab63
sha256=417922d35e66ee90cf93cf3e93fdf281ec6b92de4f7436c9c1a97c0cc35b94a8
+[ftp://ftp.gnu.org/gnu/ghostscript/gnu-ghostscript-8.64.0.tar.bz2]
+md5=e62a3a6db85be6473c99f0e7fecd3ee1
+sha256=618b4eccb9f7d5e4991c8f099e1778471408759ce1e796ea464ae9011cdd242d
+
[ftp://ftp.gnu.org/gnu/chess/gnuchess-5.05.tar.gz]
md5=008820142c414517512ab0ad3e036c8b
sha256=d97ee0f1c45e1bfa880305a33e7e0ef695927094adce100cc76a76a0f57ef789
@@ -13038,6 +13050,10 @@ sha256=f8c711427fea50845811360c92f6350ff3dacb9533741470d54ae5d0a2f6848e
md5=620fe7dd02c3236c3e9881a3a238173d
sha256=ddfd398383729707846e1f1689e9acb3bc672e4f255a632c8f0d0c55ddf8718c
+[http://dri.freedesktop.org/libdrm/libdrm-2.4.11.tar.bz2]
+md5=e0e66fae165d0b665b61e9516bf33ade
+sha256=5e07ec4b644f50160900d4281a74dd1cbf1535cfe4ab24e0c28ae5b038836a8c
+
[http://www.metzlerbros.org/dvb/libdvb-0.5.5.1.tar.gz]
md5=47612d2f8a4d4dee746a166d8b7f6f77
sha256=941e8020129111377652bd7253ea85e6c133fd1c23c66bd9fc0ca9eabab1385a
@@ -22078,6 +22094,14 @@ sha256=5064c56d482a080b6a4aea71821b78c21b59d44f6d1aa14c27429441917911a9
md5=0e847845c4cb8c16f79bc4538ae288ad
sha256=52ff7476b3580a92c385167f1855583c2cf74ae1898a6a5e8446ce67c80bc139
+[http://download.skype.com/linux/skype-2.0.0.72.tar.bz2]
+md5=71fa47d788e73bcaf5b788be9236e97d
+sha256=d3087571ab206729e6628986eb485e48204f5f1f0ed3f28326c376d86d583fe8
+
+[http://download.skype.com/linux/skype_static-2.0.0.72.tar.bz2]
+md5=cfaa796ef55e3f858a09bbe096eded5a
+sha256=2f37963e8f19c0ec5efd8631abe9633b6551f09dee024460c40fad10728bc580
+
[http://archive.ubuntu.com/ubuntu/pool/universe/s/sl/sl_3.03-14.diff.gz]
md5=bbc8f69a7add52ed30dbac276d43ef92
sha256=948499164f7be0c0b12e545bf49f1ab81e4546704cb3bedc1141d31a2d6dcbe6
@@ -23262,6 +23286,10 @@ sha256=266d6ec9795c2b480101c8754988df68da2c5b3579687bf51ae31000b08ba8bd
md5=340bc7fa4a9cad1fe9ecc9b1df49d164
sha256=1c76d6ac7e80de0ae88cc5cbdad7a2a564eac96788549359b001366dc52fe817
+[ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz]
+md5=ffe6f86e63a3a29fa53ac645faaabdfa
+sha256=91a0e22e5387ca4467b5bcb18edf1c51b930262fd466d5fda396dd9d26719100
+
[http://openzaurus.linuxtogo.org/download/3.5.4/sources/terminus-fonts.tar.bz2]
md5=e7b056a7619cdd460b5db5a7e263cafc
sha256=cf7becd610e298d23780216f474907745bd29484f7f81308a9d13cf07f2a4e2d
diff --git a/conf/distro/include/preferred-xorg-versions-X11R7.5.inc b/conf/distro/include/preferred-xorg-versions-X11R7.5.inc
new file mode 100644
index 0000000000..4d62c487c7
--- /dev/null
+++ b/conf/distro/include/preferred-xorg-versions-X11R7.5.inc
@@ -0,0 +1,246 @@
+# see http://www.x.org/wiki/Releases/7.5
+# WORK IN PROGRESS, 7.5 will be released on 2009-XX-XX
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+PREFERRED_PROVIDER_libxext ?= "libxext"
+PREFERRED_PROVIDER_xext ?= "libxext"
+PREFERRED_PROVIDER_libxi ?= "libxi"
+PREFERRED_PROVIDER_libxft ?= "libxft"
+PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
+PREFERRED_PROVIDER_libxpm ?= "libxpm"
+PREFERRED_PROVIDER_xpm ?= "libxpm"
+PREFERRED_PROVIDER_libxt ?= "libxt"
+PREFERRED_PROVIDER_libxaw ?= "libxaw"
+PREFERRED_PROVIDER_libice ?= "libice"
+PREFERRED_PROVIDER_libxrender ?= "libxrender"
+PREFERRED_PROVIDER_libxcursor ?= "libxcursor"
+PREFERRED_PROVIDER_xextensions ?= "xextensions"
+PREFERRED_PROVIDER_xproto ?= "xproto"
+PREFERRED_PROVIDER_x11 ?= "libx11"
+PREFERRED_PROVIDER_libxv ?= "libxv"
+PREFERRED_PROVIDER_xft ?= "libxft"
+PREFERRED_PROVIDER_libxrandr ?= "libxrandr"
+PREFERRED_PROVIDER_libxdamage ?= "libxdamage"
+PREFERRED_PROVIDER_libxcomposite ?= "libxcomposite"
+PREFERRED_PROVIDER_libxfixes ?= "libxfixes"
+PREFERRED_PROVIDER_libxinerama ?= "libxinerama"
+PREFERRED_PROVIDER_libxxf86vm ?= "libxxf86vm"
+PREFERRED_PROVIDER_libxmu ?= "libxmu"
+PREFERRED_PROVIDER_libsm ?= "libsm"
+PREFERRED_PROVIDER_xrandr ?= "xrandr"
+PREFERRED_PROVIDER_xserver ?= "xserver-xorg"
+PREFERRED_PROVIDER_virtual/xorg ?= "xserver-xorg"
+
+PREFERRED_VERSION_task-xorg ?= "X11R7.4"
+
+# app
+PREFERRED_VERSION_appres ?= "1.0.1"
+PREFERRED_VERSION_bitmap ?= "1.0.3"
+PREFERRED_VERSION_iceauth ?= "1.0.2"
+PREFERRED_VERSION_luit ?= "1.0.3"
+PREFERRED_VERSION_mkfontdir-native ?= "1.0.4"
+PREFERRED_VERSION_mkfontdir ?= "1.0.4"
+PREFERRED_VERSION_mkfontscale ?= "1.0.5"
+PREFERRED_VERSION_sessreg ?= "1.0.4"
+PREFERRED_VERSION_setxkbmap ?= "1.0.4"
+PREFERRED_VERSION_smproxy ?= "1.0.2"
+PREFERRED_VERSION_x11perf ?= "1.5"
+PREFERRED_VERSION_xauth ?= "1.0.3"
+PREFERRED_VERSION_xbacklight ?= "1.1"
+PREFERRED_VERSION_xcmsdb ?= "1.0.1"
+PREFERRED_VERSION_xcursorgen ?= "1.0.2"
+PREFERRED_VERSION_xdpyinfo ?= "1.0.3"
+PREFERRED_VERSION_xdriinfo ?= "1.0.2"
+PREFERRED_VERSION_xev ?= "1.0.3"
+PREFERRED_VERSION_xgamma ?= "1.0.2"
+PREFERRED_VERSION_xhost ?= "1.0.2"
+PREFERRED_VERSION_xinput ?= "1.3.0"
+PREFERRED_VERSION_xkbcomp ?= "1.0.5"
+PREFERRED_VERSION_xkbevd ?= "1.0.2"
+PREFERRED_VERSION_xkbutils ?= "1.0.1"
+PREFERRED_VERSION_xkill ?= "1.0.1"
+PREFERRED_VERSION_xlsatoms ?= "1.0.1"
+PREFERRED_VERSION_xlsclients ?= "1.0.1"
+PREFERRED_VERSION_xmodmap ?= "1.0.3"
+PREFERRED_VERSION_xpr ?= "1.0.2"
+PREFERRED_VERSION_xprop ?= "1.0.4"
+PREFERRED_VERSION_xrandr ?= "1.2.3"
+PREFERRED_VERSION_xrdb ?= "1.0.5"
+PREFERRED_VERSION_xrefresh ?= "1.0.2"
+PREFERRED_VERSION_xset ?= "1.0.4"
+PREFERRED_VERSION_xsetmode ?= "1.0.0"
+PREFERRED_VERSION_xsetroot ?= "1.0.2"
+PREFERRED_VERSION_xvinfo ?= "1.0.2"
+PREFERRED_VERSION_xwd ?= "1.0.2"
+PREFERRED_VERSION_xwininfo ?= "1.0.4"
+PREFERRED_VERSION_xwud ?= "1.0.1"
+
+# data
+PREFERRED_VERSION_xbitmaps ?= "1.0.1"
+PREFERRED_VERSION_xcursor-themes ?= "1.0.1"
+
+# doc
+PREFERRED_VERSION_xorg-docs ?= "1.4"
+PREFERRED_VERSION_xorg-sgml-doctools ?= "1.2"
+
+# driver
+PREFERRED_VERSION_xf86-input-acecad ?= "1.2.2"
+PREFERRED_VERSION_xf86-input-aiptek ?= "1.1.1"
+PREFERRED_VERSION_xf86-input-evdev ?= "2.1.0"
+PREFERRED_VERSION_xf86-input-joystick ?= "1.3.2"
+PREFERRED_VERSION_xf86-input-keyboard ?= "1.3.1"
+PREFERRED_VERSION_xf86-input-mouse ?= "1.3.0"
+PREFERRED_VERSION_xf86-input-synaptics ?= "0.15.0"
+PREFERRED_VERSION_xf86-input-vmmouse ?= "12.5.1"
+PREFERRED_VERSION_xf86-input-void ?= "1.1.1"
+PREFERRED_VERSION_xf86-video-apm ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-ark ?= "0.7.0"
+PREFERRED_VERSION_xf86-video-ast ?= "0.85.0"
+PREFERRED_VERSION_xf86-video-ati ?= "6.9.0"
+PREFERRED_VERSION_xf86-video-chips ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-cirrus ?= "1.2.1"
+PREFERRED_VERSION_xf86-video-dummy ?= "0.3.0"
+PREFERRED_VERSION_xf86-video-fbdev ?= "0.4.0"
+PREFERRED_VERSION_xf86-video-geode ?= "2.11.2"
+PREFERRED_VERSION_xf86-video-glide ?= "1.0.1"
+PREFERRED_VERSION_xf86-video-glint ?= "1.2.1"
+PREFERRED_VERSION_xf86-video-i128 ?= "1.3.1"
+PREFERRED_VERSION_xf86-video-i740 ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-impact ?= "0.2.0"
+PREFERRED_VERSION_xf86-video-intel ?= "2.4.2"
+PREFERRED_VERSION_xf86-video-mach64 ?= "6.8.0"
+PREFERRED_VERSION_xf86-video-mga ?= "1.4.9"
+PREFERRED_VERSION_xf86-video-neomagic ?= "1.2.1"
+PREFERRED_VERSION_xf86-video-newport ?= "0.2.1"
+PREFERRED_VERSION_xf86-video-nv ?= "2.1.12"
+PREFERRED_VERSION_xf86-video-openchrome ?= "0.2.903"
+PREFERRED_VERSION_xf86-video-r128 ?= "6.8.0"
+PREFERRED_VERSION_xf86-video-rendition ?= "4.2.0"
+PREFERRED_VERSION_xf86-video-s3 ?= "0.6.0"
+PREFERRED_VERSION_xf86-video-s3virge ?= "1.10.1"
+PREFERRED_VERSION_xf86-video-savage ?= "2.2.1"
+PREFERRED_VERSION_xf86-video-siliconmotion ?= "1.6.0"
+PREFERRED_VERSION_xf86-video-sis ?= "0.10.0"
+PREFERRED_VERSION_xf86-video-sisusb ?= "0.9.0"
+PREFERRED_VERSION_xf86-video-sunbw2 ?= "1.1.0"
+PREFERRED_VERSION_xf86-video-suncg14 ?= "1.1.0"
+PREFERRED_VERSION_xf86-video-suncg3 ?= "1.1.0"
+PREFERRED_VERSION_xf86-video-suncg6 ?= "1.1.0"
+PREFERRED_VERSION_xf86-video-sunffb ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-sunleo ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-suntcx ?= "1.1.0"
+PREFERRED_VERSION_xf86-video-tdfx ?= "1.4.0"
+PREFERRED_VERSION_xf86-video-tga ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-trident ?= "1.3.0"
+PREFERRED_VERSION_xf86-video-tseng ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-v4l ?= "0.2.0"
+PREFERRED_VERSION_xf86-video-vermilion ?= "1.0.1"
+PREFERRED_VERSION_xf86-video-vesa ?= "2.0.0"
+PREFERRED_VERSION_xf86-video-vmware ?= "10.16.5"
+PREFERRED_VERSION_xf86-video-voodoo ?= "1.2.0"
+PREFERRED_VERSION_xf86-video-wsfb ?= "0.2.1"
+PREFERRED_VERSION_xf86-video-xgi ?= "1.5.0"
+PREFERRED_VERSION_xf86-video-xgixp ?= "1.7.99.3"
+
+# font
+PREFERRED_VERSION_encodings ?= "1.0.2"
+PREFERRED_VERSION_font-screen-cyrillic ?= "1.0.1"
+PREFERRED_VERSION_font-util-native ?= "1.0.1"
+PREFERRED_VERSION_font-util ?= "1.0.1"
+PREFERRED_VERSION_font-xfree86-type1 ?= "1.0.1"
+
+# lib
+PREFERRED_VERSION_diet-x11 ?= "1.1.5"
+PREFERRED_VERSION_libapplewm ?= "1.0.0"
+PREFERRED_VERSION_libdmx ?= "1.0.2"
+PREFERRED_VERSION_libfs ?= "1.0.1"
+PREFERRED_VERSION_libice ?= "1.0.4"
+PREFERRED_VERSION_libfontenc ?= "1.0.4"
+PREFERRED_VERSION_libsm ?= "1.1.0"
+PREFERRED_VERSION_libwindowswm ?= "1.0.0"
+PREFERRED_VERSION_libx11 ?= "1.1.5"
+PREFERRED_VERSION_libx11-native ?= "1.1.1"
+PREFERRED_VERSION_libxau ?= "1.0.4"
+PREFERRED_VERSION_libxaw ?= "1.0.4"
+PREFERRED_VERSION_libxcomposite ?= "0.4.0"
+PREFERRED_VERSION_libxcursor ?= "1.1.9"
+PREFERRED_VERSION_libxdamage ?= "1.1.1"
+PREFERRED_VERSION_libxdmcp-native ?= "1.0.2"
+PREFERRED_VERSION_libxdmcp ?= "1.0.2"
+PREFERRED_VERSION_libxevie ?= "1.0.2"
+PREFERRED_VERSION_libxext ?= "1.0.4"
+PREFERRED_VERSION_libxfixes ?= "4.0.3"
+PREFERRED_VERSION_libxfont ?= "1.3.3"
+PREFERRED_VERSION_libxfontcache ?= "1.0.4"
+PREFERRED_VERSION_libxft ?= "2.1.13"
+PREFERRED_VERSION_libxi ?= "1.2.0"
+PREFERRED_VERSION_libxinerama ?= "1.0.3"
+PREFERRED_VERSION_libxkbfile ?= "1.0.5"
+PREFERRED_VERSION_libxmu ?= "1.0.4"
+PREFERRED_VERSION_libxpm ?= "3.5.7"
+PREFERRED_VERSION_libxrandr ?= "1.2.3"
+PREFERRED_VERSION_libxrender ?= "0.9.4"
+PREFERRED_VERSION_libxres ?= "1.0.3"
+PREFERRED_VERSION_libxscrnsaver ?= "1.1.3"
+PREFERRED_VERSION_libxt ?= "1.0.5"
+PREFERRED_VERSION_libxtst ?= "1.0.3"
+PREFERRED_VERSION_libxv ?= "1.0.4"
+PREFERRED_VERSION_libxvmc ?= "1.0.4"
+PREFERRED_VERSION_libxxf86dga ?= "1.0.2"
+PREFERRED_VERSION_libxxf86misc ?= "1.0.1"
+PREFERRED_VERSION_libxxf86vm ?= "1.0.2"
+PREFERRED_VERSION_xtrans ?= "1.2.1"
+
+# This should be here but is needed until bitbake can do
+# versioned depends
+PREFERRED_VERSION_mesa ?= "7.4"
+
+# proto
+PREFERRED_VERSION_applewmproto ?= "1.0.3"
+PREFERRED_VERSION_bigreqsproto ?= "1.0.2"
+PREFERRED_VERSION_compositeproto ?= "0.4"
+PREFERRED_VERSION_damageproto ?= "1.1.0"
+PREFERRED_VERSION_dmxproto ?= "2.2.2"
+PREFERRED_VERSION_fixesproto ?= "4.0"
+PREFERRED_VERSION_fontcacheproto ?= "0.1.2"
+PREFERRED_VERSION_fontsproto ?= "2.0.2"
+PREFERRED_VERSION_glproto ?= "1.4.9"
+PREFERRED_VERSION_inputproto ?= "1.5.0"
+PREFERRED_VERSION_kbproto ?= "1.0.3"
+PREFERRED_VERSION_randrproto ?= "1.2.1"
+PREFERRED_VERSION_recordproto ?= "1.13.2"
+PREFERRED_VERSION_renderproto ?= "0.9.3"
+PREFERRED_VERSION_resourceproto ?= "1.0.2"
+PREFERRED_VERSION_scrnsaverproto ?= "1.1.0"
+PREFERRED_VERSION_dri2proto ?= "2.0"
+PREFERRED_VERSION_trapproto ?= "3.4.3"
+PREFERRED_VERSION_videoproto ?= "2.2.2"
+PREFERRED_VERSION_windowswmproto ?= "1.0.3"
+PREFERRED_VERSION_xmiscproto ?= "1.1.2"
+PREFERRED_VERSION_xextproto ?= "7.0.3"
+PREFERRED_VERSION_xf86dgaproto ?= "2.0.3"
+PREFERRED_VERSION_xf86driproto ?= "2.0.4"
+PREFERRED_VERSION_xf86miscproto ?= "0.9.2"
+PREFERRED_VERSION_xf86vidmodeproto ?= "2.2.2"
+PREFERRED_VERSION_xinemaroproto ?= "1.1.2"
+PREFERRED_VERSION_xproto-native ?= "7.0.13"
+PREFERRED_VERSION_xproto ?= "7.0.13"
+
+# util
+PREFERRED_VERSION_gccmakedep ?= "1.0.2"
+PREFERRED_VERSION_imake ?= "1.0.2"
+PREFERRED_VERSION_makedepend ?= "1.0.1"
+PREFERRED_VERSION_util-macros-native ?= "1.2.1"
+PREFERRED_VERSION_util-macros ?= "1.2.1"
+PREFERRED_VERSION_xorg-cf-files ?= "1.0.2"
+
+# xserver
+PREFERRED_VERSION_xserver-kdrive ?= "1.4"
+PREFERRED_VERSION_xserver-xorg ?= "1.5.3"
+
+# Unreleased packages
+SRCREV_pn-libxcalibrate ?= "7b8e29186097170e930de634a4a68072558aa056"
+PV_pn-libxcalibrate ?= "0.0-oe1-${SRCREV}"
+SRCREV_pn-calibrateproto ?= "1da6fd1e2c7a49648245c98481fabea8b9690a8c"
+PV_pn-calibrateproto ?= "0.0-oe1-${SRCREV}"
diff --git a/recipes/dri/libdrm_2.4.11.bb b/recipes/dri/libdrm_2.4.11.bb
new file mode 100644
index 0000000000..0ea2396372
--- /dev/null
+++ b/recipes/dri/libdrm_2.4.11.bb
@@ -0,0 +1,11 @@
+SECTION = "x11/base"
+DEPENDS = "libpthread-stubs"
+LICENSE = "MIT"
+SRC_URI = "http://dri.freedesktop.org/libdrm/libdrm-${PV}.tar.bz2"
+PROVIDES = "drm"
+
+inherit autotools pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/recipes/glibc/files/tls_i486.patch b/recipes/glibc/files/tls_i486.patch
new file mode 100644
index 0000000000..69a1fdf91d
--- /dev/null
+++ b/recipes/glibc/files/tls_i486.patch
@@ -0,0 +1,14 @@
+Index: glibc-2.9/sysdeps/i386/dl-tlsdesc.S
+===================================================================
+--- glibc-2.9.orig/sysdeps/i386/dl-tlsdesc.S 2009-07-07 23:21:11.647664128 +0200
++++ glibc-2.9/sysdeps/i386/dl-tlsdesc.S 2009-07-07 23:21:32.802555992 +0200
+@@ -128,8 +128,7 @@
+ .Lslow:
+ cfi_adjust_cfa_offset (28)
+ movl %ebx, 16(%esp)
+- call __i686.get_pc_thunk.bx
+- addl $_GLOBAL_OFFSET_TABLE_, %ebx
++ LOAD_PIC_REG (bx)
+ call ___tls_get_addr@PLT
+ movl 16(%esp), %ebx
+ jmp .Lret
diff --git a/recipes/glibc/glibc_2.9.bb b/recipes/glibc/glibc_2.9.bb
index be66e2b727..b0ba738477 100644
--- a/recipes/glibc/glibc_2.9.bb
+++ b/recipes/glibc/glibc_2.9.bb
@@ -5,7 +5,7 @@ ARM_INSTRUCTION_SET = "arm"
PACKAGES_DYNAMIC = "libc6*"
RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
-PR = "r1"
+PR = "r2"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
@@ -64,6 +64,7 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
file://etc/ld.so.conf \
file://generate-supported.mk \
file://march-i686.patch;patch=1;pnum=0 \
+ file://tls_i486.patch;patch=1 \
"
diff --git a/recipes/i2c-tools/read-edid_1.4.1.bb b/recipes/i2c-tools/read-edid_1.4.1.bb
index e1f10ca48d..3fa98b3223 100644
--- a/recipes/i2c-tools/read-edid_1.4.1.bb
+++ b/recipes/i2c-tools/read-edid_1.4.1.bb
@@ -1,5 +1,6 @@
DESCRIPTION = "read-edid elucidates various very useful informations from a conforming PnP monitor"
LICENSE = "GPL"
+PR = "r1"
SRC_URI = "http://john.fremlin.de/programs/linux/read-edid/read-edid-${PV}.tar.gz \
http://ftp.de.debian.org/debian/pool/main/r/read-edid/read-edid_1.4.1-2.1.diff.gz;patch=1 "
@@ -7,13 +8,15 @@ SRC_URI = "http://john.fremlin.de/programs/linux/read-edid/read-edid-${PV}.tar.g
inherit autotools
do_compile() {
- oe_runmake parse-edid
+ oe_runmake parse-edid get-edid
}
do_install() {
install -d ${D}/${sbindir}
install -m 0755 parse-edid ${D}/${sbindir}/
+ install -m 0755 get-edid ${D}/${sbindir}/
}
-PACKAGES =+ "parse-edid"
+PACKAGES =+ "parse-edid get-edid"
FILES_parse-edid = "${sbindir}/parse-edid"
+FILES_get-edid = "${sbindir}/parse-edid"
diff --git a/recipes/libgpg-error/libgpg-error.inc b/recipes/libgpg-error/libgpg-error.inc
index 6fcc9202b2..400c1668a6 100644
--- a/recipes/libgpg-error/libgpg-error.inc
+++ b/recipes/libgpg-error/libgpg-error.inc
@@ -8,6 +8,8 @@ DEPENDS += "virtual/libiconv"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.gz \
file://pkgconfig.patch;patch=1"
+INC_PR = "r6"
+
# move libgpg-error-config into -dev package
FILES_${PN} = "${libdir}/lib*.so.*"
FILES_${PN}-dev += "${bindir}/*"
diff --git a/recipes/libgpg-error/libgpg-error_0.6.bb b/recipes/libgpg-error/libgpg-error_0.6.bb
index 4929121167..69577e003a 100644
--- a/recipes/libgpg-error/libgpg-error_0.6.bb
+++ b/recipes/libgpg-error/libgpg-error_0.6.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "GPG-Error library"
SECTION = "libs"
PRIORITY = "optional"
LICENSE = "GPL LGPL FDL"
-PR = "r1"
+PR = "${INC_PR}.1"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/libgpg-error-${PV}.tar.gz"
diff --git a/recipes/libgpg-error/libgpg-error_0.7.bb b/recipes/libgpg-error/libgpg-error_0.7.bb
index 0f28ed00d4..526a2a401b 100644
--- a/recipes/libgpg-error/libgpg-error_0.7.bb
+++ b/recipes/libgpg-error/libgpg-error_0.7.bb
@@ -1,6 +1,6 @@
require libgpg-error.inc
-PR = "r5"
+PR = "${INC_PR}.1"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/libgpg-error-${PV}.tar.gz \
file://pkgconfig.patch;patch=1"
diff --git a/recipes/libgpg-error/libgpg-error_1.0.bb b/recipes/libgpg-error/libgpg-error_1.0.bb
index b81d4b9da7..6e7c0e6adb 100644
--- a/recipes/libgpg-error/libgpg-error_1.0.bb
+++ b/recipes/libgpg-error/libgpg-error_1.0.bb
@@ -1,3 +1,3 @@
require libgpg-error.inc
-PR = "r2"
+PR = "${INC_PR}.1"
diff --git a/recipes/libgpg-error/libgpg-error_1.3.bb b/recipes/libgpg-error/libgpg-error_1.3.bb
index b81d4b9da7..6e7c0e6adb 100644
--- a/recipes/libgpg-error/libgpg-error_1.3.bb
+++ b/recipes/libgpg-error/libgpg-error_1.3.bb
@@ -1,3 +1,3 @@
require libgpg-error.inc
-PR = "r2"
+PR = "${INC_PR}.1"
diff --git a/recipes/libgpg-error/libgpg-error_1.4.bb b/recipes/libgpg-error/libgpg-error_1.4.bb
index b81d4b9da7..6e7c0e6adb 100644
--- a/recipes/libgpg-error/libgpg-error_1.4.bb
+++ b/recipes/libgpg-error/libgpg-error_1.4.bb
@@ -1,3 +1,3 @@
require libgpg-error.inc
-PR = "r2"
+PR = "${INC_PR}.1"
diff --git a/recipes/mesa/mesa-dri_7.4.bb b/recipes/mesa/mesa-dri_7.4.bb
new file mode 100644
index 0000000000..296a254841
--- /dev/null
+++ b/recipes/mesa/mesa-dri_7.4.bb
@@ -0,0 +1,28 @@
+include mesa-common.inc
+
+PROTO_DEPS = "xf86driproto glproto dri2proto expat"
+LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes"
+
+DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
+
+PE = "1"
+PR = "r6"
+
+# most of our targets do not have DRI so will use mesa-xlib
+DEFAULT_PREFERENCE = "-1"
+
+# ASUS EeePC 901 has DRI support so use mesa-dri by default
+DEFAULT_PREFERENCE_eee901 = "1"
+
+PACKAGES =+ "${PN}-xprogs"
+
+FILES_${PN} += "${libdir}/dri/*.so"
+FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
+FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo"
+
+EXTRA_OECONF += "--with-driver=dri --with-dri-drivers=swrast,${MACHINE_DRI_MODULES}"
+
+do_install_append () {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/
+}
diff --git a/recipes/mesa/mesa_7.4.bb b/recipes/mesa/mesa_7.4.bb
new file mode 100644
index 0000000000..43cde679a1
--- /dev/null
+++ b/recipes/mesa/mesa_7.4.bb
@@ -0,0 +1,2 @@
+# This is a dummy package so OE can use the poky mesa files
+require mesa-dri_${PV}.bb
diff --git a/recipes/opkg/files/opkg-libdir.patch b/recipes/opkg/files/opkg-libdir.patch
new file mode 100644
index 0000000000..1d48b9a6bf
--- /dev/null
+++ b/recipes/opkg/files/opkg-libdir.patch
@@ -0,0 +1,11 @@
+--- trunk/utils/update-alternatives.orig 2009-06-23 15:33:56.000000000 -0300
++++ trunk/utils/update-alternatives 2009-06-23 15:34:10.000000000 -0300
+@@ -21,7 +21,7 @@
+ set -e
+
+ # admin dir
+-ad="$OPKG_OFFLINE_ROOT/usr/lib/opkg/alternatives"
++ad="$OPKG_OFFLINE_ROOT/${libdir}/opkg/alternatives"
+
+ usage() {
+ echo "update-alternatives: $*
diff --git a/recipes/opkg/opkg-native_svn.bb b/recipes/opkg/opkg-native_svn.bb
index 82c74e0b86..acd681cb35 100644
--- a/recipes/opkg/opkg-native_svn.bb
+++ b/recipes/opkg/opkg-native_svn.bb
@@ -3,6 +3,8 @@ require opkg.inc
DEPENDS = "curl-native"
PR = "r3"
+SRC_URI += "file://opkg-libdir.patch;patch=1"
+
target_libdir := "${libdir}"
inherit native
diff --git a/recipes/rdesktop/rdesktop-1.6.0/audio-2008.patch b/recipes/rdesktop/rdesktop-1.6.0/audio-2008.patch
new file mode 100644
index 0000000000..57052a78a4
--- /dev/null
+++ b/recipes/rdesktop/rdesktop-1.6.0/audio-2008.patch
@@ -0,0 +1,22 @@
+--- a/rdpdr.c (revisão 1505)
++++ b/rdpdr.c (cópia de trabalho)
+@@ -841,14 +841,11 @@
+ RD_BOOL
+ rdpdr_init()
+ {
+- if (g_num_devices > 0)
+- {
+- rdpdr_channel =
+- channel_register("rdpdr",
+- CHANNEL_OPTION_INITIALIZED | CHANNEL_OPTION_COMPRESS_RDP,
+- rdpdr_process);
+- }
+-
++ rdpdr_channel =
++ channel_register("rdpdr",
++ CHANNEL_OPTION_INITIALIZED | CHANNEL_OPTION_COMPRESS_RDP,
++ rdpdr_process);
++
+ return (rdpdr_channel != NULL);
+ }
+
diff --git a/recipes/rdesktop/rdesktop-1.6.0/rdesktop-addin.patch b/recipes/rdesktop/rdesktop-1.6.0/rdesktop-addin.patch
new file mode 100644
index 0000000000..ffd942a6bd
--- /dev/null
+++ b/recipes/rdesktop/rdesktop-1.6.0/rdesktop-addin.patch
@@ -0,0 +1,534 @@
+diff -ur rdesktop-1.6.0-orig/channels.c rdesktop-1.6.0/channels.c
+--- rdesktop-1.6.0-orig/channels.c 2007-01-08 07:47:05.000000000 +0300
++++ rdesktop-1.6.0/channels.c 2008-12-05 18:58:00.000000000 +0300
+@@ -19,6 +19,9 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <sys/types.h>
++#include <sys/wait.h>
++#include <unistd.h>
+ #include "rdesktop.h"
+
+ #define MAX_CHANNELS 6
+@@ -44,7 +47,7 @@
+ */
+
+ VCHANNEL *
+-channel_register(char *name, uint32 flags, void (*callback) (STREAM))
++channel_register(char *name, uint32 flags, void (*callback) (STREAM,char*))
+ {
+ VCHANNEL *channel;
+
+@@ -159,7 +162,7 @@
+ if ((flags & CHANNEL_FLAG_FIRST) && (flags & CHANNEL_FLAG_LAST))
+ {
+ /* single fragment - pass straight up */
+- channel->process(s);
++ channel->process(s, channel->name);
+ }
+ else
+ {
+@@ -183,7 +186,109 @@
+ {
+ in->end = in->p;
+ in->p = in->data;
+- channel->process(in);
++ channel->process(in, channel->name);
+ }
+ }
+ }
++
++/* Generic callback for delivering data to third party add-ins */
++void addin_callback(STREAM s, char *name)
++{
++ pid_t pid;
++ int pipe_read;
++ int pipe_write;
++ uint32 blocksize;
++
++ blocksize = s->end - s->p;
++
++ lookup_addin(name, &pid, &pipe_read, &pipe_write);
++ if (pid > 0) {
++ /* Prepend the block with the block size so the
++ add-in can identify blocks */
++ write(pipe_write, &blocksize, sizeof(uint32));
++ write(pipe_write, s->p, blocksize);
++ }
++}
++
++void addin_add_fds(int *n, fd_set *rfds, fd_set *wfds, struct timeval *tv)
++{
++ extern ADDIN_DATA addin_data[];
++ extern int addin_count;
++ int i;
++
++ for (i = 0; i < addin_count; i++) {
++ /* Take in account only live addins. */
++ if (addin_data[i].pid > 0) {
++ int addin_fd = addin_data[i].pipe_read;
++
++ FD_SET(addin_fd, rfds);
++ if (*n < addin_fd)
++ *n = addin_fd;
++ }
++ }
++}
++
++/* Process outgoing addin data */
++void addin_check_fds(fd_set *rfds, fd_set *wfds)
++{
++ extern ADDIN_DATA addin_data[];
++ extern int addin_count;
++ int i;
++ unsigned int block_len;
++ ssize_t bytes_read;
++ STREAM s;
++
++ for (i = 0; i < addin_count; i++) {
++ int addin_fd = addin_data[i].pipe_read;
++
++ if (!FD_ISSET(addin_fd, rfds)) {
++ continue;
++ }
++
++ bytes_read = read(addin_fd, &block_len, sizeof(block_len));
++ if (bytes_read <= 0) {
++ addin_check_terminated(&addin_data[i]);
++ continue;
++ }
++
++ if (block_len > 0xffff) {
++ warning("received too much data (%d) from addin %s\n",
++ block_len, addin_data[i].name);
++ addin_check_terminated(&addin_data[i]);
++ continue;
++ }
++
++ if (block_len > addin_data[i].buf_len) {
++ addin_data[i].buf = (unsigned char *)xrealloc(
++ addin_data[i].buf,
++ block_len);
++ addin_data[i].buf_len = block_len;
++ }
++
++ bytes_read = read(addin_fd, addin_data[i].buf, block_len);
++ if (bytes_read > 0) {
++ s = channel_init(addin_data[i].vchannel, bytes_read);
++ memcpy(s->p, addin_data[i].buf, bytes_read);
++ s->p += bytes_read;
++ s->end = s->p;
++
++ channel_send(s, addin_data[i].vchannel);
++ }
++ }
++}
++
++void addin_check_terminated(ADDIN_DATA *addin)
++{
++ int status = 0;
++
++ pid_t result = waitpid(addin->pid, &status, WNOHANG);
++ if (result <= 0)
++ return;
++
++ if (WIFEXITED(status) || WIFSIGNALED(status)) {
++ warning("Addin %s is suddenly terminated\n", addin->name);
++ /* Mark this addin as terminated to exclude
++ it from processing. */
++ addin->pid = 0;
++ }
++}
+diff -ur rdesktop-1.6.0-orig/cliprdr.c rdesktop-1.6.0/cliprdr.c
+--- rdesktop-1.6.0-orig/cliprdr.c 2007-01-08 07:47:05.000000000 +0300
++++ rdesktop-1.6.0/cliprdr.c 2008-12-05 18:42:40.000000000 +0300
+@@ -111,7 +111,7 @@
+ }
+
+ static void
+-cliprdr_process(STREAM s)
++cliprdr_process(STREAM s, char *name)
+ {
+ uint16 type, status;
+ uint32 length, format;
+Only in rdesktop-1.6.0/doc: .svn
+Only in rdesktop-1.6.0/keymaps: .svn
+diff -ur rdesktop-1.6.0-orig/lspci.c rdesktop-1.6.0/lspci.c
+--- rdesktop-1.6.0-orig/lspci.c 2007-01-08 07:47:05.000000000 +0300
++++ rdesktop-1.6.0/lspci.c 2008-12-05 18:42:40.000000000 +0300
+@@ -128,7 +128,7 @@
+
+ /* Process new data from the virtual channel */
+ static void
+-lspci_process(STREAM s)
++lspci_process(STREAM s, char *name)
+ {
+ unsigned int pkglen;
+ static char *rest = NULL;
+diff -ur rdesktop-1.6.0-orig/proto.h rdesktop-1.6.0/proto.h
+--- rdesktop-1.6.0-orig/proto.h 2008-04-02 15:13:22.000000000 +0400
++++ rdesktop-1.6.0/proto.h 2008-12-05 18:58:00.000000000 +0300
+@@ -45,7 +45,7 @@
+ RD_HCURSOR cache_get_cursor(uint16 cache_idx);
+ void cache_put_cursor(uint16 cache_idx, RD_HCURSOR cursor);
+ /* channels.c */
+-VCHANNEL *channel_register(char *name, uint32 flags, void (*callback) (STREAM));
++VCHANNEL *channel_register(char *name, uint32 flags, void (*callback) (STREAM,char *));
+ STREAM channel_init(VCHANNEL * channel, uint32 length);
+ void channel_send(STREAM s, VCHANNEL * channel);
+ void channel_process(STREAM s, uint16 mcs_channel);
+@@ -314,6 +314,21 @@
+ void scard_lock(int lock);
+ void scard_unlock(int lock);
+
++/* External addins */
++void init_external_addin(char * addin_name, char * addin_path, char * args, ADDIN_DATA * addin_data);
++
++/* Generic callback for delivering data to third party add-ins */
++void addin_callback(STREAM s, char *name);
++
++/* Find an external add-in registration by virtual channel name */
++void lookup_addin(char *name, pid_t * pid, int * pipe_read, int * pipe_write);
++
++void addin_add_fds(int *n, fd_set *rfds, fd_set *wfds, struct timeval *tv);
++
++void addin_check_fds(fd_set *rfds, fd_set *wfds);
++
++void addin_check_terminated(ADDIN_DATA *addin);
++
+ /* *INDENT-OFF* */
+ #ifdef __cplusplus
+ }
+diff -ur rdesktop-1.6.0-orig/rdesktop.c rdesktop-1.6.0/rdesktop.c
+--- rdesktop-1.6.0-orig/rdesktop.c 2008-04-05 09:22:26.000000000 +0400
++++ rdesktop-1.6.0/rdesktop.c 2008-12-05 18:58:00.000000000 +0300
+@@ -28,6 +28,7 @@
+ #include <sys/times.h> /* times */
+ #include <ctype.h> /* toupper */
+ #include <errno.h>
++#include <signal.h> /* kill */
+ #include "rdesktop.h"
+
+ #ifdef HAVE_LOCALE_H
+@@ -115,6 +116,9 @@
+ extern uint32 g_num_devices;
+ extern char *g_rdpdr_clientname;
+
++ADDIN_DATA addin_data[MAX_ADDINS];
++int addin_count = 0;
++
+ #ifdef RDP2VNC
+ extern int rfb_port;
+ extern int defer_time;
+@@ -208,6 +212,9 @@
+ fprintf(stderr,
+ " \"AKS\" -> Device vendor name \n");
+ #endif
++ fprintf(stderr,
++ " '-r addin:<channelname>:</path/to/executable>[:arg1[:arg2:]...]': enable third\n");
++ fprintf(stderr, " party virtual channel add-in.\n");
+ fprintf(stderr, " -0: attach to console\n");
+ fprintf(stderr, " -4: use RDP version 4\n");
+ fprintf(stderr, " -5: use RDP version 5 (default)\n");
+@@ -417,6 +424,8 @@
+ struct passwd *pw;
+ uint32 flags, ext_disc_reason = 0;
+ char *p;
++ char *addin_name;
++ char *addin_path;
+ int c;
+ char *locale = NULL;
+ int username_option = 0;
+@@ -672,8 +681,58 @@
+ break;
+
+ case 'r':
++ if (str_startswith(optarg, "addin"))
++ {
++ if (addin_count >= MAX_ADDINS)
++ {
++ error("Add-ins data table full, increase MAX_ADDINS\n");
++ return 1;
++ }
++
++ optarg += 5;
+
+- if (str_startswith(optarg, "sound"))
++ if (*optarg == ':')
++ {
++ addin_name = optarg + 1;
++ if (*addin_name != '\0')
++ {
++ addin_path = next_arg(addin_name, ':');
++ }
++ else
++ {
++ addin_path = 0;
++ }
++ if (addin_path != 0)
++ {
++ p = next_arg(addin_path, ':');
++ }
++ if (*addin_name != '\0' && addin_path != 0 && *addin_path != '\0')
++ {
++ init_external_addin(addin_name, addin_path,
++ p, &addin_data[addin_count]);
++ if (addin_data[addin_count].pid != 0)
++ {
++ addin_count++;
++ }
++ else
++ {
++ error("Failed to initialise add-in [%s]\n", addin_name);
++ return 1;
++ }
++ }
++ else
++ {
++ usage(argv[0]);
++ return(1);
++ }
++ }
++ else
++ {
++ usage(argv[0]);
++ return(1);
++ }
++ }
++ else if (str_startswith(optarg, "sound"))
+ {
+ optarg += 5;
+
+@@ -982,6 +1041,17 @@
+ cache_save_state();
+ ui_deinit();
+
++ /* Send a SIGUSR1 to all addins to close and sleep for a couple of secs
++ to give them a chance to stop */
++ for (c = 0; c < addin_count; c++)
++ {
++ if (addin_data[c].pid != 0)
++ {
++ kill(addin_data[c].pid,SIGUSR1);
++ sleep(2);
++ }
++ }
++
+ if (ext_disc_reason >= 2)
+ print_disconnect_reason(ext_disc_reason);
+
+@@ -1625,3 +1695,105 @@
+ return False;
+ return True;
+ }
++
++/* Initialise external addin */
++void init_external_addin(char * addin_name, char * addin_path, char * args, ADDIN_DATA * addin_data)
++{
++ char *p;
++ char *current_arg;
++ char * argv[256];
++ char argv_buffer[256][256];
++ int i;
++ int readpipe[2],writepipe[2];
++ pid_t child;
++
++ /* Initialise addin structure */
++ memset(addin_data, 0, sizeof(ADDIN_DATA));
++ /* Go through the list of args, adding each to argv */
++ argv[0] = addin_path;
++ i = 1;
++ p=current_arg=args;
++ while (current_arg != 0 && current_arg[0] != '\0')
++ {
++ p=next_arg(p, ':');;
++ if (p != 0 && *p != '\0')
++ *(p - 1) = '\0';
++ strcpy(argv_buffer[i], current_arg);
++ argv[i]=argv_buffer[i];
++ i++;
++ current_arg=p;
++ }
++ argv[i] = NULL;
++
++
++ /* Create pipes */
++ if (pipe(readpipe) < 0 || pipe(writepipe) < 0)
++ {
++ perror("pipes for addin");
++ return;
++ }
++
++ /* Fork process */
++ if ((child = fork()) < 0)
++ {
++ perror("fork for addin");
++ return;
++ }
++
++ /* Child */
++ if (child == 0)
++ {
++ /* Set stdin and stdout of child to relevant pipe ends */
++ dup2(writepipe[0],0);
++ dup2(readpipe[1],1);
++
++ /* Close all fds as they are not needed now */
++ close(readpipe[0]);
++ close(readpipe[1]);
++ close(writepipe[0]);
++ close(writepipe[1]);
++ execvp((char *)argv[0], (char **)argv);
++ perror("Error executing child");
++ _exit(128);
++ }
++ else
++ {
++ strcpy(addin_data->name, addin_name);
++ /* Close child end fd's */
++ close(readpipe[1]);
++ close(writepipe[0]);
++ addin_data->pipe_read=readpipe[0];
++ addin_data->pipe_write=writepipe[1];
++ addin_data->vchannel=channel_register(addin_name,
++ CHANNEL_OPTION_INITIALIZED |
++ CHANNEL_OPTION_ENCRYPT_RDP |
++ CHANNEL_OPTION_COMPRESS_RDP,
++ addin_callback);
++ if (!addin_data->vchannel)
++ {
++ perror("Channel register failed");
++ return;
++ }
++ else
++ addin_data->pid=child;
++
++ }
++
++}
++
++/* Find an external add-in registration by virtual channel name */
++void lookup_addin(char *name, pid_t * pid, int * pipe_read, int * pipe_write)
++{
++ int i;
++
++ *pid = 0;
++
++ for (i = 0; i < addin_count; i++) {
++ if (!strcmp(name,addin_data[i].name)) {
++ *pid=addin_data[i].pid;
++ *pipe_read=addin_data[i].pipe_read;
++ *pipe_write=addin_data[i].pipe_write;
++ break;
++ }
++ }
++}
+diff -ur rdesktop-1.6.0-orig/rdesktop.h rdesktop-1.6.0/rdesktop.h
+--- rdesktop-1.6.0-orig/rdesktop.h 2008-04-05 08:54:10.000000000 +0400
++++ rdesktop-1.6.0/rdesktop.h 2008-12-05 18:42:40.000000000 +0300
+@@ -41,6 +41,8 @@
+
+ #define VERSION "1.6.0"
+
++#define MAX_ADDINS 20
++
+ #ifdef WITH_DEBUG
+ #define DEBUG(args) printf args;
+ #else
+diff -ur rdesktop-1.6.0-orig/rdpdr.c rdesktop-1.6.0/rdpdr.c
+--- rdesktop-1.6.0-orig/rdpdr.c 2008-02-14 14:37:17.000000000 +0300
++++ rdesktop-1.6.0/rdpdr.c 2008-12-05 18:42:40.000000000 +0300
+@@ -781,7 +781,7 @@
+ }
+
+ static void
+-rdpdr_process(STREAM s)
++rdpdr_process(STREAM s, char *name)
+ {
+ uint32 handle;
+ uint8 *magic;
+diff -ur rdesktop-1.6.0-orig/rdpsnd.c rdesktop-1.6.0/rdpsnd.c
+--- rdesktop-1.6.0-orig/rdpsnd.c 2008-02-14 14:37:17.000000000 +0300
++++ rdesktop-1.6.0/rdpsnd.c 2008-12-05 18:42:40.000000000 +0300
+@@ -544,7 +544,7 @@
+ }
+
+ static void
+-rdpsnd_process(STREAM s)
++rdpsnd_process(STREAM s, char *name)
+ {
+ uint16 len;
+
+@@ -611,7 +611,7 @@
+ }
+
+ static void
+-rdpsnddbg_process(STREAM s)
++rdpsnddbg_process(STREAM s, char *name)
+ {
+ unsigned int pkglen;
+ static char *rest = NULL;
+diff -ur rdesktop-1.6.0-orig/seamless.c rdesktop-1.6.0/seamless.c
+--- rdesktop-1.6.0-orig/seamless.c 2008-04-02 15:13:22.000000000 +0400
++++ rdesktop-1.6.0/seamless.c 2008-12-05 18:42:40.000000000 +0300
+@@ -370,7 +370,7 @@
+
+
+ static void
+-seamless_process(STREAM s)
++seamless_process(STREAM s, char *name)
+ {
+ unsigned int pkglen;
+ static char *rest = NULL;
+Only in rdesktop-1.6.0: .svn
+diff -ur rdesktop-1.6.0-orig/types.h rdesktop-1.6.0/types.h
+--- rdesktop-1.6.0-orig/types.h 2007-01-08 07:47:06.000000000 +0300
++++ rdesktop-1.6.0/types.h 2008-12-05 18:42:40.000000000 +0300
+@@ -125,7 +125,7 @@
+ char name[8];
+ uint32 flags;
+ struct stream in;
+- void (*process) (STREAM);
++ void (*process) (STREAM,char *);
+ }
+ VCHANNEL;
+
+@@ -265,4 +265,15 @@
+ }
+ FILEINFO;
+
++typedef struct _ADDIN_DATA
++{
++ char name[255];
++ unsigned char *buf;
++ unsigned int buf_len;
++ pid_t pid;
++ int pipe_read;
++ int pipe_write;
++ VCHANNEL *vchannel;
++} ADDIN_DATA;
++
+ typedef RD_BOOL(*str_handle_lines_t) (const char *line, void *data);
+diff -ur rdesktop-1.6.0-orig/xwin.c rdesktop-1.6.0/xwin.c
+--- rdesktop-1.6.0-orig/xwin.c 2008-05-11 10:14:38.000000000 +0400
++++ rdesktop-1.6.0/xwin.c 2008-12-05 18:42:40.000000000 +0300
+@@ -2620,6 +2620,9 @@
+ rdpdr_add_fds(&n, &rfds, &wfds, &tv, &s_timeout);
+ seamless_select_timeout(&tv);
+
++ /* add addins handles */
++ addin_add_fds(&n, &rfds, &wfds, &tv);
++
+ n++;
+
+ switch (select(n, &rfds, &wfds, NULL, &tv))
+@@ -2642,6 +2645,8 @@
+ rdpsnd_check_fds(&rfds, &wfds);
+ #endif
+
++ addin_check_fds(&rfds, &wfds);
++
+ rdpdr_check_fds(&rfds, &wfds, (RD_BOOL) False);
+
+ if (FD_ISSET(rdp_socket, &rfds))
diff --git a/recipes/rdesktop/rdesktop.inc b/recipes/rdesktop/rdesktop.inc
index 4c832cae3f..8f2d587b53 100644
--- a/recipes/rdesktop/rdesktop.inc
+++ b/recipes/rdesktop/rdesktop.inc
@@ -4,4 +4,6 @@ DEPENDS = "virtual/libx11 openssl"
SECTION = "x11/network"
LICENSE = "GPL"
+INC_PR = "r2"
+
SRC_URI = "${SOURCEFORGE_MIRROR}/rdesktop/rdesktop-${PV}.tar.gz"
diff --git a/recipes/rdesktop/rdesktop_1.3.1.bb b/recipes/rdesktop/rdesktop_1.3.1.bb
index d50a0c1e8c..ffb36d22a5 100644
--- a/recipes/rdesktop/rdesktop_1.3.1.bb
+++ b/recipes/rdesktop/rdesktop_1.3.1.bb
@@ -1,5 +1,7 @@
require rdesktop.inc
+PR = "${INC_PR}.1"
+
SRC_URI +="file://configure.patch;patch=1"
# Note - rdesktop 1.3.1 doesn't use autotools - don't make the same
diff --git a/recipes/rdesktop/rdesktop_1.4.1.bb b/recipes/rdesktop/rdesktop_1.4.1.bb
index 8682c8ee98..99200c6f10 100644
--- a/recipes/rdesktop/rdesktop_1.4.1.bb
+++ b/recipes/rdesktop/rdesktop_1.4.1.bb
@@ -1,6 +1,6 @@
require rdesktop.inc
-PR = "r1"
+PR = "${INC_PR}.1"
SRC_URI += "file://strip.patch;patch=1"
diff --git a/recipes/rdesktop/rdesktop_1.5.0.bb b/recipes/rdesktop/rdesktop_1.5.0.bb
index d652dfe633..c492afa0b2 100644
--- a/recipes/rdesktop/rdesktop_1.5.0.bb
+++ b/recipes/rdesktop/rdesktop_1.5.0.bb
@@ -1,6 +1,6 @@
require rdesktop.inc
-PR = "r0"
+PR = "${INC_PR}.1"
inherit autotools
diff --git a/recipes/rdesktop/rdesktop_1.6.0.bb b/recipes/rdesktop/rdesktop_1.6.0.bb
index d652dfe633..0f39e784cf 100644
--- a/recipes/rdesktop/rdesktop_1.6.0.bb
+++ b/recipes/rdesktop/rdesktop_1.6.0.bb
@@ -1,6 +1,11 @@
require rdesktop.inc
-PR = "r0"
+PR = "${INC_PR}.2"
+
+SRC_URI += " file://audio-2008.patch;patch=1"
+SRC_URI_append_ossystems = " file://rdesktop-addin.patch;patch=1"
+
+SRC_URI += " file://audio-2008.patch;patch=1"
inherit autotools
diff --git a/recipes/rdesktop/rdesktop_cvs.bb b/recipes/rdesktop/rdesktop_cvs.bb
index 0b76ee7535..496b6defa8 100644
--- a/recipes/rdesktop/rdesktop_cvs.bb
+++ b/recipes/rdesktop/rdesktop_cvs.bb
@@ -1,7 +1,7 @@
require rdesktop.inc
PV = "1.6.0+cvs${SRCDATE}"
-PR = "r0"
+PR = "${INC_PR}.1"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "cvs://anonymous@rdesktop.cvs.sourceforge.net/cvsroot/rdesktop;module=rdesktop"
S = "${WORKDIR}/rdesktop"
@@ -9,4 +9,3 @@ S = "${WORKDIR}/rdesktop"
inherit autotools
EXTRA_OECONF = "--with-openssl=${STAGING_LIBDIR}/.. "
-
diff --git a/recipes/skype/skype-static_2.0.0.72.bb b/recipes/skype/skype-static_2.0.0.72.bb
new file mode 100644
index 0000000000..4bf4de3da7
--- /dev/null
+++ b/recipes/skype/skype-static_2.0.0.72.bb
@@ -0,0 +1,4 @@
+include skype_${PV}.bb
+
+SRC_URI = "http://download.skype.com/linux/skype_static-2.0.0.72.tar.bz2"
+S="${WORKDIR}/skype_static-${PV}"
diff --git a/recipes/skype/skype_2.0.0.72.bb b/recipes/skype/skype_2.0.0.72.bb
new file mode 100644
index 0000000000..f545571877
--- /dev/null
+++ b/recipes/skype/skype_2.0.0.72.bb
@@ -0,0 +1,20 @@
+DEPENDS = "virtual/libx11 qt4-x11-free glibc-gconv-utf-16"
+HOMEPAGE="www.skype.com"
+SRC_URI = "http://download.skype.com/linux/skype-2.0.0.72.tar.bz2"
+
+S="${WORKDIR}/${PN}-${PV}"
+
+do_install() {
+ install -d ${D}/usr/bin
+ cp skype ${D}/usr/bin/
+
+ install -d ${D}/usr/share/skype
+ cp -r sounds lang avatars ${D}/usr/share/skype
+
+ install -d ${D}/usr/share/pixmaps
+ cp -r icons/SkypeBlue_48x48.png ${D}/usr/share/pixmaps/skype.png
+}
+
+FILES_${PN} += "${datadir}/skype"
+
+COMPATIBLE_HOST = "i.86.*-linux"