diff options
author | Matthias Schwarzott <zzam@gentoo.org> | 2006-05-11 19:24:58 +0000 |
---|---|---|
committer | Matthias Schwarzott <zzam@gentoo.org> | 2006-05-11 19:24:58 +0000 |
commit | 92db344ccc726c329373115915ebbe8ced064f43 (patch) | |
tree | 07b809e74fe911b9b6d8b6d534f1a737f0ddc071 /media-plugins/vdr-softdevice | |
parent | Version bump. (diff) | |
download | historical-92db344ccc726c329373115915ebbe8ced064f43.tar.gz historical-92db344ccc726c329373115915ebbe8ced064f43.tar.bz2 historical-92db344ccc726c329373115915ebbe8ced064f43.zip |
Added CVS-patch for compilation on amd64. Added installation of shared-memory-module.
Package-Manager: portage-2.1_pre10-r5
Diffstat (limited to 'media-plugins/vdr-softdevice')
7 files changed, 336 insertions, 8 deletions
diff --git a/media-plugins/vdr-softdevice/ChangeLog b/media-plugins/vdr-softdevice/ChangeLog index 4e004cdfc8a1..7be307dd6cd8 100644 --- a/media-plugins/vdr-softdevice/ChangeLog +++ b/media-plugins/vdr-softdevice/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for media-plugins/vdr-softdevice # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-plugins/vdr-softdevice/ChangeLog,v 1.1 2006/05/10 15:55:36 zzam Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-plugins/vdr-softdevice/ChangeLog,v 1.2 2006/05/11 19:24:58 zzam Exp $ + +*vdr-softdevice-0.2.3.20060511 (11 May 2006) + + 11 May 2006; Matthias Schwarzott <zzam@gentoo.org> + +files/vdr-softdevice-0.2.3a-CVS-20060511.diff, +files/confd, + +files/rc-addon.sh, +vdr-softdevice-0.2.3.20060511.ebuild: + Added CVS-patch for compilation on amd64. Added installation of + shared-memory-module. *vdr-softdevice-0.2.3a (10 May 2006) diff --git a/media-plugins/vdr-softdevice/Manifest b/media-plugins/vdr-softdevice/Manifest index 1ee148d29e68..3f8c7b74e7e2 100644 --- a/media-plugins/vdr-softdevice/Manifest +++ b/media-plugins/vdr-softdevice/Manifest @@ -1,30 +1,49 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 +AUX confd 432 RMD160 89fcd60fa0b8c1a37e24d714556049508e037735 SHA1 e613fd8e00a2f00611b90add5fbd895c57c9f7e8 SHA256 3bcf77006014efb60b33f3f2ea9e49f160759e8e3047e26990fff242b67f376f size 432 +MD5 dbb55f108f9793598b76be86f3e08825 files/confd 432 +RMD160 89fcd60fa0b8c1a37e24d714556049508e037735 files/confd 432 +SHA256 3bcf77006014efb60b33f3f2ea9e49f160759e8e3047e26990fff242b67f376f files/confd 432 +AUX rc-addon.sh 417 RMD160 e88a9bf5fd710ef3c89b1202c38f52cb26e0691f SHA1 54bfe12da8a4594732db8d945f7045735ab3e584 SHA256 6720c5829e67d6c7c6aaddaa234abc990f7547350785cc18be8ef6a3435253ac size 417 +MD5 3fac805caca1748144085ca7194c7543 files/rc-addon.sh 417 +RMD160 e88a9bf5fd710ef3c89b1202c38f52cb26e0691f files/rc-addon.sh 417 +SHA256 6720c5829e67d6c7c6aaddaa234abc990f7547350785cc18be8ef6a3435253ac files/rc-addon.sh 417 +AUX vdr-softdevice-0.2.3a-CVS-20060511.diff 5732 RMD160 25b8bb29a77ec03de06effcdbf0850e1c3303919 SHA1 8bb680969474fc93cf9f544328b7230f8b459a47 SHA256 c69f0de683ed6d5d0d031fbc86c2a1a3f32a031c5a2b6778ea73d79eca8bd5e7 size 5732 +MD5 01851b3338d57baa07fcdeff833327f6 files/vdr-softdevice-0.2.3a-CVS-20060511.diff 5732 +RMD160 25b8bb29a77ec03de06effcdbf0850e1c3303919 files/vdr-softdevice-0.2.3a-CVS-20060511.diff 5732 +SHA256 c69f0de683ed6d5d0d031fbc86c2a1a3f32a031c5a2b6778ea73d79eca8bd5e7 files/vdr-softdevice-0.2.3a-CVS-20060511.diff 5732 AUX vdr-softdevice-0.2.3a-Makefile.diff 950 RMD160 f53d9a9d7b6f816f32b9bed2106f47701d199feb SHA1 6095cc9d2470d99fcfe419a8ee9d1a97b8dd4773 SHA256 cb0cc884b706d01c74f2c5baef1cdd795ddfc27e4d8ca30bd96df75b6b40455e size 950 MD5 4708f556a9bfa9207c43c6359190e3e1 files/vdr-softdevice-0.2.3a-Makefile.diff 950 RMD160 f53d9a9d7b6f816f32b9bed2106f47701d199feb files/vdr-softdevice-0.2.3a-Makefile.diff 950 SHA256 cb0cc884b706d01c74f2c5baef1cdd795ddfc27e4d8ca30bd96df75b6b40455e files/vdr-softdevice-0.2.3a-Makefile.diff 950 DIST vdr-softdevice-0.2.3a.tgz 133780 RMD160 d97d7a1bbe4a3b325041bbe0e7ef23740f8121b1 SHA256 bbf05254ce6f0559ce6aeed055272ba6fb207ba443a49926b91506e9de69ab92 size 133780 +EBUILD vdr-softdevice-0.2.3.20060511.ebuild 2219 RMD160 dab0cfa472a0252408efd5e993e8da2e0f610778 SHA1 81414ab5af9b749895f3870cba26f20f4e1835f5 SHA256 4dba99bb2e88dcecc6ceb10c156028487b0c2072a37b3acc3b61f3c02275497c size 2219 +MD5 d3c67c8e9e65356185cf00f4cc51d022 vdr-softdevice-0.2.3.20060511.ebuild 2219 +RMD160 dab0cfa472a0252408efd5e993e8da2e0f610778 vdr-softdevice-0.2.3.20060511.ebuild 2219 +SHA256 4dba99bb2e88dcecc6ceb10c156028487b0c2072a37b3acc3b61f3c02275497c vdr-softdevice-0.2.3.20060511.ebuild 2219 EBUILD vdr-softdevice-0.2.3a.ebuild 1321 RMD160 686fb334913ed010a790f06d38772655601d9a0e SHA1 b28fd100c55f831c58979ed0639df018c003dca6 SHA256 41144f94417e747f4539d5bd04adcbb9f70e3f12088eaa5c5b62ea373de4a54a size 1321 MD5 cf7919c2cd4eae6d4a59233ad97a790a vdr-softdevice-0.2.3a.ebuild 1321 RMD160 686fb334913ed010a790f06d38772655601d9a0e vdr-softdevice-0.2.3a.ebuild 1321 SHA256 41144f94417e747f4539d5bd04adcbb9f70e3f12088eaa5c5b62ea373de4a54a vdr-softdevice-0.2.3a.ebuild 1321 -MISC ChangeLog 455 RMD160 1b3f826619f52606e91c209a73d615e528dc31ff SHA1 83070ce419291b8a11530129b2a89689a029288f SHA256 5fc11605b6445332c2adcd1ac33e316f3807410e309c0f37b3ef985ca1206be4 size 455 -MD5 cecc58406bfb95f20b70e29913b0aa7d ChangeLog 455 -RMD160 1b3f826619f52606e91c209a73d615e528dc31ff ChangeLog 455 -SHA256 5fc11605b6445332c2adcd1ac33e316f3807410e309c0f37b3ef985ca1206be4 ChangeLog 455 +MISC ChangeLog 770 RMD160 4382b5c95f649c369785324af5584da363f7f727 SHA1 1e92ee61bbe01b310cff943bebe0d8d4c1339048 SHA256 f4b8c59520031960155def698091b44295c0e6176c1f3caf9262d0128b2634f9 size 770 +MD5 8bf269f4949dfa0d8d4d14149f1aa455 ChangeLog 770 +RMD160 4382b5c95f649c369785324af5584da363f7f727 ChangeLog 770 +SHA256 f4b8c59520031960155def698091b44295c0e6176c1f3caf9262d0128b2634f9 ChangeLog 770 MISC metadata.xml 300 RMD160 c85719cef743cf573efe73f8f84564292085c91c SHA1 4c00933e1ed60039fae091034d83e28d0890e87c SHA256 29feafd8b7177b65f8bd92553ac96779d9a91e3b7b4eeecfb0924eb7b6979587 size 300 MD5 7c30ab7528b676a1a0c2737821599b29 metadata.xml 300 RMD160 c85719cef743cf573efe73f8f84564292085c91c metadata.xml 300 SHA256 29feafd8b7177b65f8bd92553ac96779d9a91e3b7b4eeecfb0924eb7b6979587 metadata.xml 300 +MD5 c7a0fabecfebf2988f2c1552b361c1ae files/digest-vdr-softdevice-0.2.3.20060511 256 +RMD160 498e786a7b8110e307aa41c04ed04d88aade4653 files/digest-vdr-softdevice-0.2.3.20060511 256 +SHA256 5d9d302686e0c254357af9482fb419c4510e73882e820f3bfcf76387d49be011 files/digest-vdr-softdevice-0.2.3.20060511 256 MD5 c7a0fabecfebf2988f2c1552b361c1ae files/digest-vdr-softdevice-0.2.3a 256 RMD160 498e786a7b8110e307aa41c04ed04d88aade4653 files/digest-vdr-softdevice-0.2.3a 256 SHA256 5d9d302686e0c254357af9482fb419c4510e73882e820f3bfcf76387d49be011 files/digest-vdr-softdevice-0.2.3a 256 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) -iD8DBQFEYg3eZfSl1Kp5KmoRAmzhAJsF3L1aQwLfdeUiOraHidSnOL3LrACguOJS -Wk2UK7GKwiCM0hlTbmKmLD4= -=edie +iD8DBQFEY4+2ZfSl1Kp5KmoRAvoZAKCuMRaMuEqtwyVnnfvGryiyihtHlgCg7VRu +KvMNTnxaRjF6mqpDLMfVWiY= +=EaJo -----END PGP SIGNATURE----- diff --git a/media-plugins/vdr-softdevice/files/confd b/media-plugins/vdr-softdevice/files/confd new file mode 100644 index 000000000000..19f7b6ba1fc6 --- /dev/null +++ b/media-plugins/vdr-softdevice/files/confd @@ -0,0 +1,21 @@ +# /etc/conf.d/vdr.softdevice: + +# Configuration for vdrplugin softdevice + +# Video-Device to use +# allowed values: dummy shm dfb fb xv vidix ... +#SOFTDEVICE_VIDEO_OUT="shm" + +# Video-Suboptions +# read vdr -P softdevice --help +#SOFTDEVICE_VIDEO_OUT_SUBOPTS="" + + +# Audio-Device to use +# allowed values: dummy alsa ... +#SOFTDEVICE_AUDIO_OUT="alsa" + +# Audio-Suboptions +# read vdr -P softdevice --help +#SOFTDEVICE_AUDIO_OUT_SUBOPTS="" + diff --git a/media-plugins/vdr-softdevice/files/digest-vdr-softdevice-0.2.3.20060511 b/media-plugins/vdr-softdevice/files/digest-vdr-softdevice-0.2.3.20060511 new file mode 100644 index 000000000000..cb395c04db4b --- /dev/null +++ b/media-plugins/vdr-softdevice/files/digest-vdr-softdevice-0.2.3.20060511 @@ -0,0 +1,3 @@ +MD5 dfae4ed2ab2bb17572de993461cf36f8 vdr-softdevice-0.2.3a.tgz 133780 +RMD160 d97d7a1bbe4a3b325041bbe0e7ef23740f8121b1 vdr-softdevice-0.2.3a.tgz 133780 +SHA256 bbf05254ce6f0559ce6aeed055272ba6fb207ba443a49926b91506e9de69ab92 vdr-softdevice-0.2.3a.tgz 133780 diff --git a/media-plugins/vdr-softdevice/files/rc-addon.sh b/media-plugins/vdr-softdevice/files/rc-addon.sh new file mode 100644 index 000000000000..b0646e4f71d0 --- /dev/null +++ b/media-plugins/vdr-softdevice/files/rc-addon.sh @@ -0,0 +1,16 @@ +# plugin-config-addon for softdevice +plugin_pre_vdr_start() { + if [[ -n "${SOFTDEVICE_VIDEO_OUT}" ]]; then + add_plugin_param "-vo ${SOFTDEVICE_VIDEO_OUT}:${SOFTDEVICE_VIDEO_OUT_SUBOPTS}" + fi + + if [[ -n "${SOFTDEVICE_AUDIO_OUT}" ]]; then + add_plugin_param "-ao ${SOFTDEVICE_AUDIO_OUT}:${SOFTDEVICE_AUDIO_OUT_SUBOPTS}" + fi +} + +# for compatibility +if [[ ${SCRIPT_API:-1} -lt 2 ]]; then + plugin_pre_vdr_start +fi + diff --git a/media-plugins/vdr-softdevice/files/vdr-softdevice-0.2.3a-CVS-20060511.diff b/media-plugins/vdr-softdevice/files/vdr-softdevice-0.2.3a-CVS-20060511.diff new file mode 100644 index 000000000000..4b6780ad691e --- /dev/null +++ b/media-plugins/vdr-softdevice/files/vdr-softdevice-0.2.3a-CVS-20060511.diff @@ -0,0 +1,162 @@ +diff -ru --exclude=CVS softdevice-0.2.3a/configure softdevice-0.2.3.20060511/configure +--- softdevice-0.2.3a/configure 2006-05-01 08:15:18.000000000 +0200 ++++ softdevice-0.2.3.20060511/configure 2006-05-07 22:52:23.000000000 +0200 +@@ -97,6 +97,7 @@ + dfb_sourcelocation="yes" + dfb_dscaps_double="yes" + dfb_dief_repeat="yes" ++dfb_blit_interlaced="yes" + + cat > ${TMPC} << EOF + #include <directfb.h> +@@ -148,6 +149,17 @@ + EOF + $cc $CFLAGS $dfb_opts -o $TMPE $TMPC > /dev/null 2>&1 || dfb_dief_repeat="no" + ++cat > ${TMPC} << EOF ++#include <stdio.h> ++#include <dfb++.h> ++#include <directfb.h> ++int main(void) { ++ DFBSurfaceBlittingFlags flags = DSBLIT_INTERLACED; ++ return 0; ++} ++EOF ++$cc $CFLAGS $dfb_opts -o $TMPE $TMPC > /dev/null 2>&1 || dfb_blit_interlaced="no" ++ + fi + fi + # end of DirectFB specific tests +@@ -304,6 +316,12 @@ + else + echo "#define HAVE_DIEF_REPEAT 0" >> $TMPH + fi ++ ++ if test "${dfb_blit_interlaced}" = "yes" ; then ++ echo "#define HAVE_DSBLIT_INTERLACED 1" >> $TMPH ++ else ++ echo "#define HAVE_DSBLIT_INTERLACED 0" >> $TMPH ++ fi + fi + + ############################################################################### +diff -ru --exclude=CVS softdevice-0.2.3a/setup-softdevice.h softdevice-0.2.3.20060511/setup-softdevice.h +--- softdevice-0.2.3a/setup-softdevice.h 2006-04-29 08:25:58.000000000 +0200 ++++ softdevice-0.2.3.20060511/setup-softdevice.h 2006-05-04 23:40:12.000000000 +0200 +@@ -114,7 +114,7 @@ + char *getPPValue(void); + void CropModeNext(void); + +- virtual bool CatchRemoteKey(const char *remoteName, uint64_t key); ++ virtual bool CatchRemoteKey(const char *remoteName, uint64 key); + + int xvAspect; + int xvMaxArea; +diff -ru --exclude=CVS softdevice-0.2.3a/video-dfb.c softdevice-0.2.3.20060511/video-dfb.c +--- softdevice-0.2.3a/video-dfb.c 2006-05-01 08:15:19.000000000 +0200 ++++ softdevice-0.2.3.20060511/video-dfb.c 2006-05-07 22:52:23.000000000 +0200 +@@ -19,6 +19,7 @@ + # include "config.h" + #else + # define HAVE_SetSourceLocation 0 ++# define HAVE_DSBLIT_INTERLACED 0 + # if (DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23) + # define HAVE_GraphicsDeviceDescription 0 + # define HAVE_DIEF_REPEAT 0 +@@ -165,6 +166,9 @@ + if (caps.blitting_flags & DSBLIT_DST_PREMULTIPLY ) fprintf(stderr,"DstPremultiply "); + if (caps.blitting_flags & DSBLIT_DEMULTIPLY ) fprintf(stderr,"Demultiply "); + if (caps.blitting_flags & DSBLIT_DEINTERLACE ) fprintf(stderr,"Deinterlace "); ++#if HAVE_DSBLIT_INTERLACED ++ if (caps.blitting_flags & DSBLIT_INTERLACED ) fprintf(stderr,"Interlaced "); ++#endif + fprintf(stderr,"\n"); + } + +@@ -889,6 +893,12 @@ + videoSurface->Clear(COLORKEY,0); //clear and + videoSurface->Release(); + } ++#if HAVE_DSBLIT_INTERLACED ++ if (setupStore->useMGAtv) ++ { ++ vidDsc.caps = DFB_ADD_SURFACE_CAPS(vidDsc.caps, DSCAPS_INTERLACED); ++ } ++#endif + + videoSurface=dfb->CreateSurface(vidDsc); + /* -------------------------------------------------------------------- +@@ -1205,8 +1215,21 @@ + clearBackground--; + } + ++#if HAVE_DSBLIT_INTERLACED ++ if (setupStore->useMGAtv) ++ { ++ scrSurface->SetBlittingFlags(DSBLIT_INTERLACED); ++ scrSurface->StretchBlit(videoSurface, &src, &dst); ++ } ++ else ++ { ++ scrSurface->SetBlittingFlags(DSBLIT_NOFX); ++ scrSurface->StretchBlit(videoSurface, &src, &dst); ++ } ++#else + scrSurface->SetBlittingFlags(DSBLIT_NOFX); + scrSurface->StretchBlit(videoSurface, &src, &dst); ++#endif + if (OSDpresent) + { + osdsrc.x = osdsrc.y = 0; +@@ -1306,14 +1329,23 @@ + #endif + } else if (pixelformat == DSPF_YUY2) { + +- yv12_to_yuy2(Py + Ystride * cutTop * 2 + cutLeft * 2, +- //yv12_to_yuy2_il_c(Py + Ystride * cutTop * 2 + cutLeft * 2, +- Pu + UVstride * cutTop + cutLeft, +- Pv + UVstride * cutTop + cutLeft, +- dst + pitch * cutTop * 2 + cutLeft * 4, +- Width - 2 * (cutLeft + cutRight), +- Height - 2 * (cutTop + cutBottom), +- Ystride, UVstride, pitch); ++ if (interlaceMode) { ++ yv12_to_yuy2_il_c(Py + Ystride * cutTop * 2 + cutLeft * 2, ++ Pu + UVstride * cutTop + cutLeft, ++ Pv + UVstride * cutTop + cutLeft, ++ dst + pitch * cutTop * 2 + cutLeft * 4, ++ Width - 2 * (cutLeft + cutRight), ++ Height - 2 * (cutTop + cutBottom), ++ Ystride, UVstride, pitch); ++ } else { ++ yv12_to_yuy2(Py + Ystride * cutTop * 2 + cutLeft * 2, ++ Pu + UVstride * cutTop + cutLeft, ++ Pv + UVstride * cutTop + cutLeft, ++ dst + pitch * cutTop * 2 + cutLeft * 4, ++ Width - 2 * (cutLeft + cutRight), ++ Height - 2 * (cutTop + cutBottom), ++ Ystride, UVstride, pitch); ++ } + } + + videoSurface->Unlock(); +@@ -1345,8 +1377,19 @@ + + osdMutex.Unlock(); + ++#if HAVE_DSBLIT_INTERLACED ++ if (setupStore->useMGAtv) ++ { ++ scrSurface->SetBlittingFlags(DSBLIT_INTERLACED); ++ scrSurface->StretchBlit(videoSurface, &src, &dst); ++ } else { ++ scrSurface->SetBlittingFlags(DSBLIT_NOFX); ++ scrSurface->StretchBlit(videoSurface, &src, &dst); ++ } ++#else + scrSurface->SetBlittingFlags(DSBLIT_NOFX); + scrSurface->StretchBlit(videoSurface, &src, &dst); ++#endif + + if (OSDpresent) + { diff --git a/media-plugins/vdr-softdevice/vdr-softdevice-0.2.3.20060511.ebuild b/media-plugins/vdr-softdevice/vdr-softdevice-0.2.3.20060511.ebuild new file mode 100644 index 000000000000..703f2e39fef7 --- /dev/null +++ b/media-plugins/vdr-softdevice/vdr-softdevice-0.2.3.20060511.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-plugins/vdr-softdevice/vdr-softdevice-0.2.3.20060511.ebuild,v 1.1 2006/05/11 19:24:58 zzam Exp $ + +inherit vdr-plugin versionator + +MY_PV="$(get_version_component_range 1-3)a" +MY_P=${PN}-${MY_PV} + +DESCRIPTION="VDR plugin: Software output-Device" +HOMEPAGE="http://softdevice.berlios.de/" +SRC_URI="mirror://gentoo/${MY_P}.tgz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="xv fbcon directfb" + +RDEPEND=">=media-video/vdr-1.3.36 + >=media-video/ffmpeg-0.4.9_pre1 + directfb? ( + dev-libs/DirectFB + dev-libs/DFB++ + ) + media-libs/alsa-lib + xv? ( || ( ( x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXv + ) + virtual/x11 + ) )" + +DEPEND="${RDEPEND} + xv? ( || ( ( x11-proto/xproto + x11-proto/xextproto + ) + virtual/x11 + ) ) + fbcon? ( sys-kernel/linux-headers )" + + +S=${WORKDIR}/${VDRPLUGIN}-${MY_PV} +PATCHES="${FILESDIR}/${MY_P}-Makefile.diff ${FILESDIR}/${MY_P}-CVS-20060511.diff" + +pkg_setup() { + vdr-plugin_pkg_setup + + if use !xv && use !fbcon && use !directfb; then + ewarn "You need to set at least one of these use-flags: xv fbcon directfb" + die "no output-method enabled" + fi + + COMPILE_SHM=0 + if has_version ">=media-video/vdr-1.3.0"; then + if use xv; then + COMPILE_SHM=1 + else + einfo "SHM does only support xv at the moment" + fi + else + einfo "SHM not supported on vdr-1.2" + fi + case ${COMPILE_SHM} in + 0) einfo "SHM support will not be compiled." ;; + 1) einfo "SHM support will be compiled." ;; + esac +} + +disable_in_makefile() { + local makefile_define="${1}" + sed -i Makefile -e "s-^${makefile_define}-#${makefile_define}-" +} + +src_unpack() { + vdr-plugin_src_unpack + + cd ${S} + disable_in_makefile VIDIX_SUPPORT + use xv || disable_in_makefile XV_SUPPORT + use directfb || disable_in_makefile DFB_SUPPORT + use fbcon || disable_in_makefile FB_SUPPORT + if [[ "${COMPILE_SHM}" = "1" ]]; then + sed -i Makefile -e 's:^#SHM_SUPPORT:SHM_SUPPORT:' + fi +} + +src_install() { + vdr-plugin_src_install + + insinto "${VDR_PLUGIN_DIR}" + doins libsubvdr-*.so.* + + if [[ "${COMPILE_SHM}" = "1" ]]; then + exeinto "/usr/bin" + doexe ShmClient + fi +} + |