pkgsrc-WIP-changes archive

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

add carla.



Module Name:	pkgsrc-wip
Committed By:	nia <nia%netbsd.org@localhost>
Pushed By:	nee
Date:		Sat Dec 12 15:32:45 2020 +0100
Changeset:	d592ba88965c68f4e8363c9e68eb34fc9515a51c

Modified Files:
	Makefile
Added Files:
	carla/DESCR
	carla/Makefile
	carla/PLIST
	carla/TODO
	carla/buildlink3.mk
	carla/distinfo
	carla/patches/patch-source_Makefile.mk
	carla/patches/patch-source_utils_CarlaMutex.hpp
	carla/patches/patch-source_utils_CarlaScopeUtils.hpp

Log Message:
add carla.

Carla is a fully-featured modular audio plugin host, with support for many
audio drivers and plugin formats.

Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2, VST3 and
AU plugin formats, plus SF2 and SFZ file support.

It uses JACK as the default and preferred audio driver but also supports
native drivers like ALSA, DirectSound or CoreAudio.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=d592ba88965c68f4e8363c9e68eb34fc9515a51c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                           |   1 +
 carla/DESCR                                        |   8 +
 carla/Makefile                                     | 103 ++++++++++
 carla/PLIST                                        | 222 +++++++++++++++++++++
 carla/TODO                                         |   2 +
 carla/buildlink3.mk                                |  13 ++
 carla/distinfo                                     |   9 +
 carla/patches/patch-source_Makefile.mk             |  18 ++
 carla/patches/patch-source_utils_CarlaMutex.hpp    |  16 ++
 .../patches/patch-source_utils_CarlaScopeUtils.hpp |  15 ++
 10 files changed, 407 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 402b200797..14ca8b518f 100644
--- a/Makefile
+++ b/Makefile
@@ -366,6 +366,7 @@ SUBDIR+=	capnproto
 SUBDIR+=	cardpeek
 SUBDIR+=	cargo-audit
 SUBDIR+=	caribou
+SUBDIR+=	carla
 SUBDIR+=	cartago
 SUBDIR+=	casady-fonts
 SUBDIR+=	castget
diff --git a/carla/DESCR b/carla/DESCR
new file mode 100644
index 0000000000..16b85eb84b
--- /dev/null
+++ b/carla/DESCR
@@ -0,0 +1,8 @@
+Carla is a fully-featured modular audio plugin host, with support for many
+audio drivers and plugin formats.
+
+Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2, VST3 and
+AU plugin formats, plus SF2 and SFZ file support.
+
+It uses JACK as the default and preferred audio driver but also supports
+native drivers like ALSA, DirectSound or CoreAudio.
diff --git a/carla/Makefile b/carla/Makefile
new file mode 100644
index 0000000000..6b28d73f5d
--- /dev/null
+++ b/carla/Makefile
@@ -0,0 +1,103 @@
+# $NetBSD$
+
+DISTNAME=	carla-2.2.0
+CATEGORIES=	audio
+MASTER_SITES=	${MASTER_SITE_GITHUB:=falkTX/}
+GITHUB_PROJECT=	Carla
+GITHUB_TAG=	v${PKGVERSION_NOREV}
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://kx.studio/Applications:Carla
+COMMENT=	Audio plugin host
+LICENSE=	gnu-gpl-v2
+
+DEPENDS+=	${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5
+
+USE_TOOLS+=	gmake pkg-config gsed bash:run
+USE_LANGUAGES=	c c++
+
+MAKE_FLAGS+=	PREFIX=${PREFIX}
+
+.include "../../mk/bsd.prefs.mk"
+
+.if !empty(PKGSRC_COMPILER:M*clang*)
+MAKE_FLAGS+=	CLANG=true
+.endif
+
+PKGCONFIG_OVERRIDE+=	data/carla-native-plugin.pc
+PKGCONFIG_OVERRIDE+=	data/carla-standalone.pc
+PKGCONFIG_OVERRIDE+=	data/carla-utils.pc
+
+REPLACE_BASH+=		data/carla
+REPLACE_BASH+=		data/carla-control
+REPLACE_BASH+=		data/carla-bridge-lv2-modgui
+REPLACE_BASH+=		data/carla-database
+REPLACE_BASH+=		data/carla-jack-multi
+REPLACE_BASH+=		data/carla-jack-patchbayplugin
+REPLACE_BASH+=		data/carla-jack-single
+REPLACE_BASH+=		data/carla-osc-gui
+REPLACE_BASH+=		data/carla-patchbay
+REPLACE_BASH+=		data/carla-rack
+REPLACE_BASH+=		data/carla-settings
+
+REPLACE_PYTHON+=	data/carla-single
+REPLACE_PYTHON+=	source/frontend/carla
+REPLACE_PYTHON+=	source/frontend/carla-control
+REPLACE_PYTHON+=	source/frontend/carla-jack-multi
+REPLACE_PYTHON+=	source/frontend/carla-jack-single
+REPLACE_PYTHON+=	source/frontend/carla-patchbay
+REPLACE_PYTHON+=	source/frontend/carla-plugin
+REPLACE_PYTHON+=	source/frontend/carla-plugin-patchbay
+REPLACE_PYTHON+=	source/frontend/carla-rack
+REPLACE_PYTHON+=	source/frontend/bigmeter-ui
+REPLACE_PYTHON+=	source/frontend/midipattern-ui
+REPLACE_PYTHON+=	source/frontend/notes-ui
+REPLACE_PYTHON+=	source/frontend/xycontroller-ui
+
+SUBST_CLASSES+=		py
+SUBST_STAGE.py=		pre-configure
+SUBST_MESSAGE.py=	Correcting the Python executable name.
+SUBST_FILES.py+=	data/carla-bridge-lv2-modgui
+SUBST_FILES.py+=	data/carla-control
+SUBST_FILES.py+=	data/carla-database
+SUBST_FILES.py+=	data/carla-jack-multi
+SUBST_FILES.py+=	data/carla-jack-single
+SUBST_FILES.py+=	data/carla-osc-gui
+SUBST_FILES.py+=	data/carla-patchbay
+SUBST_FILES.py+=	data/carla-rack
+SUBST_FILES.py+=	data/carla-settings
+SUBST_SED.py+=		-e "s,python3,${PYTHONBIN},g"
+
+SUBST_CLASSES+=		prefix
+SUBST_STAGE.prefix=	pre-configure
+SUBST_MESSAGE.prefix=	Fixing paths.
+SUBST_FILES.prefix+=	source/frontend/carla_shared.py
+SUBST_SED.prefix+=	-e "s,/usr/local,${PREFIX},g"
+
+PYTHON_VERSIONS_INCOMPATIBLE=	27
+
+post-install:
+	${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla
+	${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-control
+	${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-jack-multi
+	${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-jack-single
+	${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-patchbay
+	${CHMOD} +x ${DESTDIR}${PREFIX}/share/carla/carla-rack
+
+.include "../../audio/fluidsynth/buildlink3.mk"
+.include "../../audio/jack/buildlink3.mk"
+.include "../../audio/liblo/buildlink3.mk"
+.include "../../audio/libsndfile/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../lang/python/application.mk"
+.include "../../multimedia/ffmpeg4/buildlink3.mk"
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
+.if ${OPSYS} != "Darwin"
+.  include "../../graphics/MesaLib/buildlink3.mk"
+.  include "../../x11/gtk2/buildlink3.mk"
+.  include "../../x11/gtk3/buildlink3.mk"
+.  include "../../x11/libX11/buildlink3.mk"
+.  include "../../x11/libXext/buildlink3.mk"
+.endif
+.include "../../x11/qt5-qtbase/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/carla/PLIST b/carla/PLIST
new file mode 100644
index 0000000000..09f756c274
--- /dev/null
+++ b/carla/PLIST
@@ -0,0 +1,222 @@
+@comment $NetBSD$
+bin/carla
+bin/carla-control
+bin/carla-database
+bin/carla-jack-multi
+bin/carla-jack-patchbayplugin
+bin/carla-jack-single
+bin/carla-osc-gui
+bin/carla-patchbay
+bin/carla-rack
+bin/carla-settings
+bin/carla-single
+include/carla/CarlaBackend.h
+include/carla/CarlaEngine.hpp
+include/carla/CarlaHost.h
+include/carla/CarlaNative.h
+include/carla/CarlaPlugin.hpp
+include/carla/CarlaUtils.h
+include/carla/includes/CarlaDefines.h
+include/carla/includes/CarlaMIDI.h
+include/carla/includes/CarlaNative.h
+include/carla/includes/CarlaNativePlugin.h
+lib/carla/carla-bridge-lv2-gtk2
+lib/carla/carla-bridge-lv2-gtk3
+lib/carla/carla-bridge-lv2-modgui
+lib/carla/carla-bridge-lv2-qt5
+lib/carla/carla-bridge-lv2-x11
+lib/carla/carla-bridge-lv2.so
+lib/carla/carla-bridge-native
+lib/carla/carla-discovery-native
+lib/carla/libcarla_native-plugin.so
+lib/carla/libcarla_standalone2.so
+lib/carla/libcarla_utils.so
+lib/carla/styles/carlastyle.json
+lib/carla/styles/carlastyle.so
+lib/lv2/carla.lv2/audiofile.ttl
+lib/lv2/carla.lv2/audiogain.ttl
+lib/lv2/carla.lv2/audiogain_s.ttl
+lib/lv2/carla.lv2/bigmeter.ttl
+lib/lv2/carla.lv2/carla-bridge-lv2-gtk2
+lib/lv2/carla.lv2/carla-bridge-lv2-gtk3
+lib/lv2/carla.lv2/carla-bridge-lv2-modgui
+lib/lv2/carla.lv2/carla-bridge-lv2-qt5
+lib/lv2/carla.lv2/carla-bridge-lv2-x11
+lib/lv2/carla.lv2/carla-bridge-lv2.so
+lib/lv2/carla.lv2/carla-bridge-native
+lib/lv2/carla.lv2/carla-discovery-native
+lib/lv2/carla.lv2/carla.so
+lib/lv2/carla.lv2/carlapatchbay.ttl
+lib/lv2/carla.lv2/carlapatchbay16.ttl
+lib/lv2/carla.lv2/carlapatchbay32.ttl
+lib/lv2/carla.lv2/carlapatchbay3s.ttl
+lib/lv2/carla.lv2/carlapatchbay64.ttl
+lib/lv2/carla.lv2/carlapatchbaycv.ttl
+lib/lv2/carla.lv2/carlarack.ttl
+lib/lv2/carla.lv2/lfo.ttl
+lib/lv2/carla.lv2/libcarla_native-plugin.so
+lib/lv2/carla.lv2/libcarla_utils.so
+lib/lv2/carla.lv2/manifest.ttl
+lib/lv2/carla.lv2/midichanab.ttl
+lib/lv2/carla.lv2/midichanfilter.ttl
+lib/lv2/carla.lv2/midichannelize.ttl
+lib/lv2/carla.lv2/midifile.ttl
+lib/lv2/carla.lv2/midigain.ttl
+lib/lv2/carla.lv2/midijoin.ttl
+lib/lv2/carla.lv2/midipattern.ttl
+lib/lv2/carla.lv2/midisplit.ttl
+lib/lv2/carla.lv2/miditranspose.ttl
+lib/lv2/carla.lv2/resources
+lib/lv2/carla.lv2/styles
+lib/pkgconfig/carla-native-plugin.pc
+lib/pkgconfig/carla-standalone.pc
+lib/pkgconfig/carla-utils.pc
+lib/vst/carla.vst/CarlaPatchbay.so
+lib/vst/carla.vst/CarlaPatchbay16.so
+lib/vst/carla.vst/CarlaPatchbay32.so
+lib/vst/carla.vst/CarlaPatchbay64.so
+lib/vst/carla.vst/CarlaPatchbayFX.so
+lib/vst/carla.vst/CarlaRack.so
+lib/vst/carla.vst/CarlaRackFX.so
+lib/vst/carla.vst/carla-bridge-lv2-gtk2
+lib/vst/carla.vst/carla-bridge-lv2-gtk3
+lib/vst/carla.vst/carla-bridge-lv2-modgui
+lib/vst/carla.vst/carla-bridge-lv2-qt5
+lib/vst/carla.vst/carla-bridge-lv2-x11
+lib/vst/carla.vst/carla-bridge-lv2.so
+lib/vst/carla.vst/carla-bridge-native
+lib/vst/carla.vst/carla-discovery-native
+lib/vst/carla.vst/jack
+lib/vst/carla.vst/libcarla_native-plugin.so
+lib/vst/carla.vst/libcarla_utils.so
+lib/vst/carla.vst/resources
+lib/vst/carla.vst/styles
+share/applications/carla-control.desktop
+share/applications/carla-jack-multi.desktop
+share/applications/carla-jack-single.desktop
+share/applications/carla-patchbay.desktop
+share/applications/carla-rack.desktop
+share/applications/carla.desktop
+share/carla/carla
+share/carla/carla-control
+share/carla/carla-jack-multi
+share/carla/carla-jack-single
+share/carla/carla-patchbay
+share/carla/carla-rack
+share/carla/carla_app.py
+share/carla/carla_backend.py
+share/carla/carla_backend_qt.py
+share/carla/carla_backend_qtweb.py
+share/carla/carla_control.py
+share/carla/carla_database.py
+share/carla/carla_host.py
+share/carla/carla_modgui.py
+share/carla/carla_settings.py
+share/carla/carla_shared.py
+share/carla/carla_skin.py
+share/carla/carla_utils.py
+share/carla/carla_widgets.py
+share/carla/externalui.py
+share/carla/ladspa_rdf.py
+share/carla/modgui/__init__.py
+share/carla/modgui/host.py
+share/carla/modgui/webserver.py
+share/carla/patchcanvas/__init__.py
+share/carla/patchcanvas/canvasbezierline.py
+share/carla/patchcanvas/canvasbezierlinemov.py
+share/carla/patchcanvas/canvasbox.py
+share/carla/patchcanvas/canvasboxshadow.py
+share/carla/patchcanvas/canvasfadeanimation.py
+share/carla/patchcanvas/canvasicon.py
+share/carla/patchcanvas/canvasline.py
+share/carla/patchcanvas/canvaslinemov.py
+share/carla/patchcanvas/canvasport.py
+share/carla/patchcanvas/canvasportglow.py
+share/carla/patchcanvas/patchcanvas.py
+share/carla/patchcanvas/scene.py
+share/carla/patchcanvas/theme.py
+share/carla/patchcanvas/utils.py
+share/carla/resources/bigmeter-ui
+share/carla/resources/carla-plugin
+share/carla/resources/carla-plugin-patchbay
+share/carla/resources/carla_app.py
+share/carla/resources/carla_backend.py
+share/carla/resources/carla_backend_qt.py
+share/carla/resources/carla_control.py
+share/carla/resources/carla_database.py
+share/carla/resources/carla_host.py
+share/carla/resources/carla_settings.py
+share/carla/resources/carla_shared.py
+share/carla/resources/carla_skin.py
+share/carla/resources/carla_utils.py
+share/carla/resources/carla_widgets.py
+share/carla/resources/externalui.py
+share/carla/resources/midipattern-ui
+share/carla/resources/modgui
+share/carla/resources/notes-ui
+share/carla/resources/patchcanvas
+share/carla/resources/resources_rc.py
+share/carla/resources/ui_carla_about.py
+share/carla/resources/ui_carla_about_juce.py
+share/carla/resources/ui_carla_add_jack.py
+share/carla/resources/ui_carla_database.py
+share/carla/resources/ui_carla_edit.py
+share/carla/resources/ui_carla_host.py
+share/carla/resources/ui_carla_parameter.py
+share/carla/resources/ui_carla_plugin_calf.py
+share/carla/resources/ui_carla_plugin_classic.py
+share/carla/resources/ui_carla_plugin_compact.py
+share/carla/resources/ui_carla_plugin_default.py
+share/carla/resources/ui_carla_plugin_presets.py
+share/carla/resources/ui_carla_refresh.py
+share/carla/resources/ui_carla_settings.py
+share/carla/resources/ui_carla_settings_driver.py
+share/carla/resources/ui_inputdialog_value.py
+share/carla/resources/ui_midipattern.py
+share/carla/resources/widgets
+share/carla/resources/xycontroller-ui
+share/carla/resources_rc.py
+share/carla/ui_carla_about.py
+share/carla/ui_carla_about_juce.py
+share/carla/ui_carla_add_jack.py
+share/carla/ui_carla_database.py
+share/carla/ui_carla_edit.py
+share/carla/ui_carla_host.py
+share/carla/ui_carla_osc_connect.py
+share/carla/ui_carla_parameter.py
+share/carla/ui_carla_plugin_calf.py
+share/carla/ui_carla_plugin_classic.py
+share/carla/ui_carla_plugin_compact.py
+share/carla/ui_carla_plugin_default.py
+share/carla/ui_carla_plugin_presets.py
+share/carla/ui_carla_refresh.py
+share/carla/ui_carla_settings.py
+share/carla/ui_carla_settings_driver.py
+share/carla/ui_inputdialog_value.py
+share/carla/ui_midipattern.py
+share/carla/ui_xycontroller.py
+share/carla/widgets/__init__.py
+share/carla/widgets/canvaspreviewframe.py
+share/carla/widgets/collapsablewidget.py
+share/carla/widgets/digitalpeakmeter.py
+share/carla/widgets/draggablegraphicsview.py
+share/carla/widgets/ledbutton.py
+share/carla/widgets/paramspinbox.py
+share/carla/widgets/pianoroll.py
+share/carla/widgets/pixmapbutton.py
+share/carla/widgets/pixmapdial.py
+share/carla/widgets/pixmapkeyboard.py
+share/carla/widgets/racklistwidget.py
+share/carla/widgets/scalablebutton.py
+share/carla/widgets/scalabledial.py
+share/icons/hicolor/128x128/apps/carla-control.png
+share/icons/hicolor/128x128/apps/carla.png
+share/icons/hicolor/16x16/apps/carla-control.png
+share/icons/hicolor/16x16/apps/carla.png
+share/icons/hicolor/256x256/apps/carla-control.png
+share/icons/hicolor/256x256/apps/carla.png
+share/icons/hicolor/48x48/apps/carla-control.png
+share/icons/hicolor/48x48/apps/carla.png
+share/icons/hicolor/scalable/apps/carla-control.svg
+share/icons/hicolor/scalable/apps/carla.svg
+share/mime/packages/carla.xml
diff --git a/carla/TODO b/carla/TODO
new file mode 100644
index 0000000000..b979a5d798
--- /dev/null
+++ b/carla/TODO
@@ -0,0 +1,2 @@
+Some aspects seem buggy, can't figure out how to get it to integrate
+with LMMS on NetBSD.
diff --git a/carla/buildlink3.mk b/carla/buildlink3.mk
new file mode 100644
index 0000000000..cfc2bea7ce
--- /dev/null
+++ b/carla/buildlink3.mk
@@ -0,0 +1,13 @@
+# $NetBSD$
+
+BUILDLINK_TREE+=	carla
+
+.if !defined(CARLA_BUILDLINK3_MK)
+CARLA_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.carla+=	carla>=2.2.0
+BUILDLINK_PKGSRCDIR.carla?=	../../wip/carla
+
+.endif	# CARLA_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-carla
diff --git a/carla/distinfo b/carla/distinfo
new file mode 100644
index 0000000000..342e3022b5
--- /dev/null
+++ b/carla/distinfo
@@ -0,0 +1,9 @@
+$NetBSD$
+
+SHA1 (carla-2.2.0.tar.gz) = a28307f2b482048ce075d9bdb9d3d978ba3c87e4
+RMD160 (carla-2.2.0.tar.gz) = a529c5bc99e7c816b691ccaa68acf72d2d13ae24
+SHA512 (carla-2.2.0.tar.gz) = afb2beab979f801817a7fd7663bfdc90800db021679243faa5acb15de60f6dc281032e05c51a8625124c69e7759099fc682678eb98c08507f952763e665ac9c4
+Size (carla-2.2.0.tar.gz) = 9844747 bytes
+SHA1 (patch-source_Makefile.mk) = adf4fdbf6c56ca06035c40433f6654244389886f
+SHA1 (patch-source_utils_CarlaMutex.hpp) = c50dfe4cc7887f389c8ef776030b4d02d795c422
+SHA1 (patch-source_utils_CarlaScopeUtils.hpp) = aeb077167587908a04c07a27f7137cedefba5c71
diff --git a/carla/patches/patch-source_Makefile.mk b/carla/patches/patch-source_Makefile.mk
new file mode 100644
index 0000000000..e46cfc1744
--- /dev/null
+++ b/carla/patches/patch-source_Makefile.mk
@@ -0,0 +1,18 @@
+$NetBSD$
+
+This doesn't work. Just require GNU sed.
+
+--- source/Makefile.mk.orig	2020-09-26 14:38:36.000000000 +0000
++++ source/Makefile.mk
+@@ -690,11 +690,7 @@ endif
+ # ---------------------------------------------------------------------------------------------------------------------
+ # Set arguments used for inline 'sed'
+ 
+-ifeq ($(BSD),true)
+-SED_ARGS=-i '' -e
+-else
+ SED_ARGS=-i -e
+-endif
+ 
+ # ---------------------------------------------------------------------------------------------------------------------
+ # Set command used for file symlinking
diff --git a/carla/patches/patch-source_utils_CarlaMutex.hpp b/carla/patches/patch-source_utils_CarlaMutex.hpp
new file mode 100644
index 0000000000..a764530b0b
--- /dev/null
+++ b/carla/patches/patch-source_utils_CarlaMutex.hpp
@@ -0,0 +1,16 @@
+$NetBSD$
+
+NetBSD does not have pthread_condattr_setpshared.
+
+--- source/utils/CarlaMutex.hpp.orig	2020-09-26 14:38:36.000000000 +0000
++++ source/utils/CarlaMutex.hpp
+@@ -204,7 +204,9 @@ public:
+     {
+         pthread_condattr_t cattr;
+         pthread_condattr_init(&cattr);
++#if defined(PTHREAD_PROCESS_PRIVATE) && !defined(__NetBSD__)
+         pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_PRIVATE);
++#endif
+         pthread_cond_init(&fCondition, &cattr);
+         pthread_condattr_destroy(&cattr);
+ 
diff --git a/carla/patches/patch-source_utils_CarlaScopeUtils.hpp b/carla/patches/patch-source_utils_CarlaScopeUtils.hpp
new file mode 100644
index 0000000000..b217b347d3
--- /dev/null
+++ b/carla/patches/patch-source_utils_CarlaScopeUtils.hpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+NetBSD does not have uselocale.
+
+--- source/utils/CarlaScopeUtils.hpp.orig	2020-09-26 14:38:36.000000000 +0000
++++ source/utils/CarlaScopeUtils.hpp
+@@ -25,7 +25,7 @@
+ #include <algorithm>
+ #include <clocale>
+ 
+-#if ! (defined(CARLA_OS_HAIKU) || defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN))
++#if ! (defined(CARLA_OS_HAIKU) || defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) || defined(__NetBSD__))
+ # define CARLA_USE_NEWLOCALE
+ #endif
+ 


Home | Main Index | Thread Index | Old Index