diff options
Diffstat (limited to 'hooks-addons/59freenx')
-rw-r--r-- | hooks-addons/59freenx | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/hooks-addons/59freenx b/hooks-addons/59freenx new file mode 100644 index 0000000..6e557b2 --- /dev/null +++ b/hooks-addons/59freenx @@ -0,0 +1,141 @@ +# hooks addon of FreeNX +# need nxclient installed + + +if [ ! ${TCOS_FREENX} ]; then + _verbose "(59freenx) TCOS_FREENX disabled" +else + stat_before + mkdir -p $DESTDIR/usr/NX/bin + mkdir -p $DESTDIR/usr/NX/lib + mkdir -p $DESTDIR/usr/NX/share + mkdir -p $DESTDIR/usr/NX/share/keys + +# mkdir -p $DESTDIR/etc/nxserver/ +#cat << EOF > $DESTDIR/etc/nxserver/node.conf +#COMMAND_XAUTH=/usr/bin/xauth +#ENABLE_SSH_AUTHENTICATION="1" +#EOF + + #FIXME + # to work sound need esddsp and this vars + ##ENABLE_ESD_PRELOAD="0" + ##ESD_BIN_PRELOAD="esddsp" + # not know if needed + # ssh ssh-keygen md5sum + # AGENT_EXTRA_OPTIONS_X commented as Antonio Quesada said +# firewalled freenx (by Antonio Quesada) +# $ssh -l pepito -C -2 -L 5000:serverNX:22 dominio.com +# +#pepito= cuenta de usuario registrado en el fw +#serverNX= hostname del servidor NX al que queremos acceder +#dominio.com= el fw, claro está. +#5000= Puerto local al que queremos redirigir, puedes escoger el que quieras +#22= Salvo que redirijas a otro puerto, el NX está a la escucha en el ssh +#-C -2= utilizar ssh 2 y comprimido + +#ahora llamamos al NXclient y le decimos que el servidor es localhost y que se +#conecte al puerto 5000 o al que hayamos decidido en la opción -L xxxx: + + cpifexists /usr/NX/bin/nxclient /usr/NX/bin/ + cpifexists /usr/NX/bin/nxesd /usr/NX/bin/ + cpifexists /usr/NX/bin/nxssh /usr/NX/bin/ + + # firewalled connection + cpifexists /usr/bin/ssh /usr/bin/ + cpifexists /usr/bin/ssh-keygen /usr/bin/ + +# expect runs on server +# cpifexists /usr/bin/expect /usr/bin/ + + #copydir /usr/NX/share/keyboards/ /usr/NX/share/ + cpifexists /usr/NX/share/keyboards /usr/NX/share/ + cpifexists /usr/NX/share/keys/server.id_dsa.key /usr/NX/share/keys/ + copydir /usr/NX/share/images /usr/NX/share/ + + cpifexists /lib/libpthread.so.0 /lib/ + if [ ! -d /usr/share/doc/libstdc++2.10-glibc2.2/ ]; then + _echo " ** ERROR: need to install libstdc++2.10-glibc2.2 package for FreeNX" + else + cpifexists /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/ + fi + cpifexists /usr/NX/lib/libcrypto.so /usr/NX/lib/ + cpifexists /usr/NX/lib/libjpeg.so /usr/NX/lib/ + cpifexists /usr/NX/lib/libpng12.so /usr/NX/lib/ + cpifexists /usr/NX/lib/libXcomp.so /usr/NX/lib/ + cpifexists /usr/NX/lib/libz.so /usr/NX/lib/ + + # not know if necesary + cpifexists /usr/lib/libXcomp.so.1 /usr/lib/ + cpifexists /usr/lib/libXcompext.so.1 /usr/lib/ + cpifexists /usr/lib/libaudiofile.so.0 /usr/lib/ + + #echo "/usr/NX/lib" >> $DESTDIR/etc/ld.so.conf + + stat_after "FreeNX" +fi # end of TCOS_FREENX + + + +if [ ${TCOS_FREENX_SQUASHFS} ]; then + stat_before + + cat << EOF > ${DESTDIR}/scripts/tcos-premount/60freenx +#!/bin/sh +# + +# new header not using prereqs +if [ "\$1" = "prereqs" ]; then + echo "" + exit 0 +fi + + +quiet=n + +. /scripts/functions +. /conf/tcos.conf +. /conf/tcos-run-functions + +TCOS_FREENX_SQUASHFS_FILE=\$(read_cmdline_var "freenx" "") + +if [ "\$TCOS_FREENX_SQUASHFS_FILE" = "" ]; then + exit 0 +fi + +# load modules +modprobe -q loop >> /tmp/initramfs.debug 2>&1 +modprobe -q squashfs >> /tmp/initramfs.debug 2>&1 +modprobe -q unionfs >> /tmp/initramfs.debug 2>&1 + +value=0 +log_begin_msg "Downloading FREENX squashfs" + download_file /tcos/\${TCOS_FREENX_SQUASHFS_FILE} /mnt/tmp/nxclient.squashfs || value=1 + sync + sleep 1 +log_end_msg \$value + +# Mount squashfs filesystems +log_begin_msg "Mounting FREENX filesystem" + mkdir -p /usr/NX + mount -r -o loop -t squashfs /mnt/tmp/\${TCOS_FREENX_SQUASHFS_FILE} /usr/NX >> /tmp/initramfs.debug 2>&1 +log_end_msg \$? + +# download settings +mkdir -p /root/.nx/config +download_file /tcos/nxclient.cfg /root/.nx/config/nxclient.cfg +download_file /tcos/servidor.nxs /root/.nx/config/servidor.nxs + + +echo "TCOS_XORG_TYPE=\"F\"" >> /conf/tcos.conf + +EOF + +chmod +x ${DESTDIR}/scripts/tcos-premount/60freenx + + + # needed libs (libstdc++2.10-glibc2.2 package) + cpifexists /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/ + + stat_after "FreeNX squashfs" +fi |