pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/sysutils Add IBM Spectrum Protect (aka Tivoli Storage ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/9ce6362aecbb
branches:  trunk
changeset: 314061:9ce6362aecbb
user:      hauke <hauke%pkgsrc.org@localhost>
date:      Wed Oct 17 13:54:39 2018 +0000

description:
Add IBM Spectrum Protect (aka Tivoli Storage Manager) client.

diffstat:

 sysutils/Makefile                         |    3 +-
 sysutils/tsm8/DESCR                       |    1 +
 sysutils/tsm8/MESSAGE                     |   34 ++
 sysutils/tsm8/Makefile                    |  109 ++++++
 sysutils/tsm8/PLIST                       |  493 ++++++++++++++++++++++++++++++
 sysutils/tsm8/TODO                        |    4 +
 sysutils/tsm8/distinfo                    |    6 +
 sysutils/tsm8/files/tsm_daily.sh          |   85 +++++
 sysutils/tsm8/files/tsm_ld.so.conf.i386   |    8 +
 sysutils/tsm8/files/tsm_ld.so.conf.x86_64 |   13 +
 sysutils/tsm8/options.mk                  |   23 +
 11 files changed, 778 insertions(+), 1 deletions(-)

diffs (truncated from 833 to 300 lines):

diff -r 48c6711c76f6 -r 9ce6362aecbb sysutils/Makefile
--- a/sysutils/Makefile Wed Oct 17 13:00:12 2018 +0000
+++ b/sysutils/Makefile Wed Oct 17 13:54:39 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.780 2018/10/14 19:26:55 aymeric Exp $
+# $NetBSD: Makefile,v 1.781 2018/10/17 13:55:12 hauke Exp $
 #
 
 COMMENT=       System utilities
@@ -606,6 +606,7 @@
 SUBDIR+=       tphdisk
 SUBDIR+=       tree
 SUBDIR+=       ts
+SUBDIR+=       tsm8
 #SUBDIR+=      u-boot                  # only contains Makefile fragments
 SUBDIR+=       u-boot-a10-olinuxino-lime
 SUBDIR+=       u-boot-bananapi
diff -r 48c6711c76f6 -r 9ce6362aecbb sysutils/tsm8/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/tsm8/DESCR       Wed Oct 17 13:54:39 2018 +0000
@@ -0,0 +1,1 @@
+IBM Spectrum Protect (aka Tivoli Storage Manager) client
diff -r 48c6711c76f6 -r 9ce6362aecbb sysutils/tsm8/MESSAGE
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/tsm8/MESSAGE     Wed Oct 17 13:54:39 2018 +0000
@@ -0,0 +1,34 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1 2018/10/17 13:54:39 hauke Exp $
+
+Tivoli Storage Manager Client has been installed in
+               ${EMULDIR}/opt/tivoli
+with binaries in
+               ${EMULDIR}/opt/tivoli/tsm/client/ba/bin
+and configuration in
+               ${PKG_SYSCONFDIR}
+
+NetBSD configuration hints:
+
+- TSM expects ${EMULDIR}/etc/mtab to exist and be meaningful. The
+  suse_base package sets up a symlink to ${EMULDIR}/proc/mounts,
+  which works on NetBSD 3 or newer if you mount procfs like
+  >> procfs  /emul/linux/proc  procfs  ro,linux  0 0 <<
+  in /etc/fstab.
+  Alternatively, make ${EMULDIR}/etc/mtab a symlink to /etc/fstab.
+
+- Make sure 'passworddir' is set in tsm.sys so that the passwd file
+  ends up in ${PKG_SYSCONFDIR} instead of the shadow hierarchy.
+
+- The environment variables DSM_DIR, DSM_CONFIG, DSM_LOG
+  need to be set properly. DSM_LOG may inadvertently end up in the emul
+  shadow hierarchy.
+  There is a sample start script in ${PREFIX}/share/examples/tsm.
+
+- For backing up the native filesystem hierarchy, use a construct
+  like "ln -s / /.`hostname`" to break out of the emul shadow hierarchy.
+
+- If you want to use the GUI client dsmj (option java), the directory
+  containing the java binary needs to be in PATH.
+
+===========================================================================
diff -r 48c6711c76f6 -r 9ce6362aecbb sysutils/tsm8/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/tsm8/Makefile    Wed Oct 17 13:54:39 2018 +0000
@@ -0,0 +1,109 @@
+# $NetBSD: Makefile,v 1.1 2018/10/17 13:54:39 hauke Exp $
+
+DISTNAME=      tsm-8.1.6.0
+PKGNAME=       ${DISTNAME:C/-/8-/}
+#PKGREVISION=  1
+CATEGORIES=    sysutils
+MASTER_SITES=  ftp://ftp.software.ibm.com/storage/tivoli-storage-management/maintenance/client/v8r1/Linux/LinuxX86/BA/v816/
+DISTFILES=     8.1.6.0-TIV-TSMBAC-LinuxX86.tar
+
+MAINTAINER=    hauke%NetBSD.org@localhost
+HOMEPAGE=      https://www.ibm.com/us-en/marketplace/data-protection-and-recovery
+COMMENT=       IBM Spectrum Protect (aka Tivoli Storage Manager) Client
+
+PKG_SYSCONFSUBDIR=     tsm
+DOC_DIR=               share/doc/tsm
+DOC_SRCDIR=            ${WRKDIR}/.destdir/usr/pkg/emul/linux/opt/tivoli/tsm/license/baclient/tsm
+EG_DIR=                        share/examples/tsm
+CONF_FILES=            ${PREFIX}/${EG_DIR}/dsm.sys.smp ${PKG_SYSCONFDIR}/dsm.sys
+CONF_FILES+=           ${PREFIX}/${EG_DIR}/dsm.opt.smp ${PKG_SYSCONFDIR}/dsm.opt
+
+PUBLIC_BINS=           dsmc
+
+BUILD_DEFS+=           VARBASE
+
+# See the license agreements in {PREFIX}/emul/linux/opt/tivoli/tsm/license/
+RESTRICTED=            Redistribution of repackaged binaries not permitted
+NO_SRC_ON_CDROM=       ${RESTRICTED}
+NO_SRC_ON_FTP=         ${RESTRICTED}
+NO_BIN_ON_CDROM=       ${RESTRICTED}
+NO_BIN_ON_FTP=         ${RESTRICTED}
+
+NOT_FOR_PLATFORM=      Linux-*-* NetBSD-[0-1]*-*
+
+EMUL_PLATFORMS=                linux-x86_64
+EMUL_MODULES.linux=    base
+RUN_LDCONFIG=          yes
+
+.include "../../mk/bsd.prefs.mk"
+
+WRKSRC=                        ${WRKDIR}
+BUILD_DIRS=            # empty
+
+USE_TOOLS+=            rpm2pkg grep sed
+
+RPMFILES=              ${WRKDIR}/TIVsm-BA.x86_64.rpm \
+                       ${WRKDIR}/TIVsm-API64.x86_64.rpm \
+                       ${WRKDIR}/gskcrypt64-8.0.50.86.linux.x86_64.rpm \
+                       ${WRKDIR}/gskssl64-8.0.50.86.linux.x86_64.rpm
+
+EMUL_PKG_FMT=          rpm
+RPM2PKG_PREFIX=                ${DESTDIR}${PREFIX}
+RPM2PKG_SUBPREFIX=     ${EMULSUBDIR}
+RPM2PKG_STRIP=         0
+RPM2PKG_PLIST=         # none generated
+RPM2PKG_STAGE=         do-install
+
+PLIST_SUBST+=          PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
+PLIST_SUBST+=          EMULDIR=${EMULDIR}
+PLIST_SUBST+=          TSMCLIENTSUBDIR=${TSMCLIENTSUBDIR:Q}
+
+TSMCLIENTSUBDIR=       opt/tivoli/tsm/client
+
+# Build with PKG_OPTIONS.tsm = java for PLIST regen
+PRINT_PLIST_AWK+=      { gsub(/^.+\.jar$$/, "$${PLIST.java}&"); }
+PRINT_PLIST_AWK+=      { gsub(/^.+\/dsmj$$/, "$${PLIST.java}&"); }
+
+SUBST_CLASSES+=         paths
+SUBST_MESSAGE.paths=    Fixing hardcoded paths.
+SUBST_STAGE.paths=      pre-install
+SUBST_FILES.paths=      tsm_daily.sh
+SUBST_SED.paths=       -e "s,%PKG_SYSCONFDIR%,${PKG_SYSCONFDIR},g"
+SUBST_SED.paths+=      -e "s,%PREFIX%,${PREFIX},g"
+SUBST_SED.paths+=      -e "s,%VARBASE%,${VARBASE},g"
+
+MESSAGE_SUBST+=                EMULDIR=${EMULDIR}
+
+INSTALLATION_DIRS+=    bin emul/linux/etc/ld.so.conf.d ${DOC_DIR} ${EG_DIR}
+
+.include "options.mk"
+
+post-configure:
+       ${CP} ${FILESDIR}/tsm_daily.sh ${WRKSRC}
+
+do-extract:
+       cd ${WRKDIR} && ${EXTRACTOR} ${DISTDIR}/${DISTFILES:Q}
+
+post-install:
+.if empty(PKG_OPTIONS:Mjava)
+       for bb in `${SED} -e '/^[$$]{PLIST\\.java}/!d' -e 's/^[$$]{PLIST\\.java}//g' ${PLIST_SRC}`; do \
+           ${RM} -f ${DESTDIR}${PREFIX}/$${bb}; \
+       done
+.endif
+       ${INSTALL_DATA} ${DOC_SRCDIR}/LA_en.txt ${DESTDIR}${PREFIX}/${DOC_DIR}
+       ${INSTALL_DATA} ${DOC_SRCDIR}/notices.txt ${DESTDIR}${PREFIX}/${DOC_DIR}
+       ${INSTALL_DATA} ${DESTDIR}${EMULDIR}/${TSMCLIENTSUBDIR}/ba/bin/dsm.*.smp \
+               ${DESTDIR}${PREFIX}/${EG_DIR}
+       ${INSTALL_DATA} ${WRKSRC}/tsm_daily.sh ${DESTDIR}${PREFIX}/${EG_DIR}
+       ${INSTALL_DATA} ${FILESDIR}/tsm_ld.so.conf.${MACHINE_ARCH} \
+               ${DESTDIR}${EMULDIR}/etc/ld.so.conf.d/tsm_ld.so.conf
+       ${LN} -fs /..${PKG_SYSCONFDIR}/dsm.sys \
+               ${DESTDIR}${EMULDIR}/${TSMCLIENTSUBDIR}/ba/bin/
+       ${LN} -fs /..${PKG_SYSCONFDIR}/dsm.opt \
+               ${DESTDIR}${EMULDIR}/${TSMCLIENTSUBDIR}/ba/bin/
+.for bb in ${PUBLIC_BINS}
+       ${LN} -fs ../${EMULSUBDIR}/${TSMCLIENTSUBDIR}/ba/bin/${bb} \
+               ${DESTDIR}${PREFIX}/bin/${bb}
+.endfor
+
+.include "../../mk/bsd.pkg.mk"
diff -r 48c6711c76f6 -r 9ce6362aecbb sysutils/tsm8/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/tsm8/PLIST       Wed Oct 17 13:54:39 2018 +0000
@@ -0,0 +1,493 @@
+@comment $NetBSD: PLIST,v 1.1 2018/10/17 13:54:39 hauke Exp $
+bin/dsmc
+emul/linux/etc/init.d/dsmcad
+emul/linux/etc/ld.so.conf.d/tsm_ld.so.conf
+emul/linux/opt/tivoli/tsm/client/api/README_api.htm
+emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/CS_CZ/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/DE_DE/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/EN_US/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/ES_ES/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/FR_FR/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/HU_HU/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/IT_IT/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/JA_JP/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/KO_KR/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/PL_PL/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/PT_BR/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/RU_RU/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_CN/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/dscjres.txt
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/dsmc.hlp
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/dsmclientV3.cat
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/dsmig.hlp
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/tsmhelp.jar
+${PLIST.java}emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/uil_nls.jar
+emul/linux/opt/tivoli/tsm/client/api/bin64/ZH_TW/wchelp.htl
+emul/linux/opt/tivoli/tsm/client/api/bin64/dsm.opt.smp
+emul/linux/opt/tivoli/tsm/client/api/bin64/dsm.sys.smp
+emul/linux/opt/tivoli/tsm/client/api/bin64/dsmcert
+emul/linux/opt/tivoli/tsm/client/api/bin64/libApiTSM64.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libTsmViSdk.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libTsmViSdkAPI.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libVMcrypto.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libVMssl.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libcrypto.so.1.0.2
+emul/linux/opt/tivoli/tsm/client/api/bin64/libdmapi.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libgpfs.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/libssl.so.1.0.2
+emul/linux/opt/tivoli/tsm/client/api/bin64/libtsmxerces-c.so.28.0
+emul/linux/opt/tivoli/tsm/client/api/bin64/libtsmxerces-depdom.so.28.0
+emul/linux/opt/tivoli/tsm/client/api/bin64/libxmlutil-${PKGVERSION}.so
+emul/linux/opt/tivoli/tsm/client/api/bin64/sample/callbuff.c
+emul/linux/opt/tivoli/tsm/client/api/bin64/sample/callevnt.c
+emul/linux/opt/tivoli/tsm/client/api/bin64/sample/callhold.c
+emul/linux/opt/tivoli/tsm/client/api/bin64/sample/callmt1.c
+emul/linux/opt/tivoli/tsm/client/api/bin64/sample/callmt2.c



Home | Main Index | Thread Index | Old Index