summaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2011-03-25 19:57:05 -0500
committerWilliam Pitcock <nenolod@dereferenced.org>2011-03-25 19:57:23 -0500
commitc1936150c040193aa591283d0826b74ee244b9df (patch)
treeb07f9dd07437dac8683b79721b14ba63a6578251 /testing
parent6e49e8ddee9bb07fc8013b2d40e4e013e2eb6c9f (diff)
downloadaports-c1936150c040193aa591283d0826b74ee244b9df.tar.bz2
aports-c1936150c040193aa591283d0826b74ee244b9df.tar.xz
testing/snowstorm: new aport; work-in-progress arch=none
Diffstat (limited to 'testing')
-rw-r--r--testing/snowstorm/APKBUILD72
-rw-r--r--testing/snowstorm/indra-no-breakpad.patch179
2 files changed, 251 insertions, 0 deletions
diff --git a/testing/snowstorm/APKBUILD b/testing/snowstorm/APKBUILD
new file mode 100644
index 000000000..dbfeaf4cf
--- /dev/null
+++ b/testing/snowstorm/APKBUILD
@@ -0,0 +1,72 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer:
+pkgname=snowstorm
+pkgver=2.5.2
+pkgrel=0
+pkgdesc="snowstorm viewer for secondlife (and compatible servers)"
+url="http://wiki.secondlife.com/wiki/Project_Snowstorm"
+arch=""
+license="GPL"
+depends=
+depends_dev="mesa-dev sdl-dev openal-soft-dev apr-dev
+ apr-util-dev libvorbis-dev
+ libogg-dev freealut-dev db-dev boost-dev c-ares-dev
+ xmlrpc-epi-dev libpng-dev tut-dev openjpeg-dev gtk+-dev
+ qt-dev dbus-glib-dev gstreamer-dev gst-plugins-base-dev
+ jsoncpp-dev boost-coroutine pth-dev"
+makedepends="$depends_dev cmake"
+install=""
+subpackages=""
+source="http://67.202.104.180/~nenolod/secondlife-${pkgver}-sourcebundle.tar.gz
+ indra-no-breakpad.patch"
+
+_builddir="${srcdir}/build"
+_srcdir="${srcdir}/viewer-release/indra"
+prepare() {
+ local i
+ mkdir "$_builddir"
+
+ cd "$_srcdir/.."
+
+ msg "Copying indra to indra.orig for easy patching"
+ cp -R indra indra.orig
+
+ cd "$_srcdir"
+
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ msg "Preparing llqtwebkit"
+ cd "$_builddir/../llqtwebkit"
+
+ qmake CONFIG-=debug
+ make
+
+ msg "Building indra"
+ cd "$_builddir"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DPACKAGE:BOOL=FALSE \
+ -DLLQTWEBKIT_INCLUDE_DIR:STRING=${srcdir}/llqtwebkit \
+ -DLLQTWEBKIT_LIBRARY:STRING=${srcdir}/llqtwebkit \
+ -DCMAKE_BUILD_TYPE:STRING=RELWITHDEBINFO \
+ -DOPENAL:BOOL=TRUE \
+ -DFMOD:BOOL=FALSE \
+ -DUNATTENDED:BOOL=TRUE \
+ -DSTANDALONE:BOOL=TRUE \
+ -DLL_TESTS:BOOL=FALSE \
+ -DNDOF:BOOL=FALSE \
+ -DVIEWER:BOOL=TRUE "$_srcdir" || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="e16f67d04813953e5eadc1beafc435dd secondlife-2.5.2-sourcebundle.tar.gz
+c75027c0a6f7c52e0ae2b8008ca99f9e indra-no-breakpad.patch"
diff --git a/testing/snowstorm/indra-no-breakpad.patch b/testing/snowstorm/indra-no-breakpad.patch
new file mode 100644
index 000000000..28670b146
--- /dev/null
+++ b/testing/snowstorm/indra-no-breakpad.patch
@@ -0,0 +1,179 @@
+--- indra.orig/cmake/GoogleBreakpad.cmake
++++ indra/cmake/GoogleBreakpad.cmake
+@@ -2,7 +2,7 @@
+ include(Prebuilt)
+
+ if (STANDALONE)
+- set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON)
++ set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED OFF)
+ include(FindGoogleBreakpad)
+ else (STANDALONE)
+ use_prebuilt_binary(google_breakpad)
+--- indra.orig/llcommon/llapp.cpp
++++ indra/llcommon/llapp.cpp
+@@ -46,7 +46,9 @@
+ #include "llstring.h"
+ #include "lleventtimer.h"
+
++#if 0
+ #include "google_breakpad/exception_handler.h"
++#endif
+
+ //
+ // Signal handling
+@@ -143,8 +145,6 @@
+ // Set the application to this instance.
+ sApplication = this;
+
+- mExceptionHandler = 0;
+-
+ // initialize the buffer to write the minidump filename to
+ // (this is used to avoid allocating memory in the crash handler)
+ memset(minidump_path, 0, MAX_MINDUMP_PATH_LENGTH);
+@@ -177,8 +177,6 @@
+ mThreadErrorp = NULL;
+ }
+
+- if(mExceptionHandler != 0) delete mExceptionHandler;
+-
+ LLCommon::cleanupClass();
+ }
+
+@@ -284,75 +282,7 @@
+
+ void LLApp::setupErrorHandling()
+ {
+- // Error handling is done by starting up an error handling thread, which just sleeps and
+- // occasionally checks to see if the app is in an error state, and sees if it needs to be run.
+-
+-#if LL_WINDOWS
+- // This sets a callback to handle w32 signals to the console window.
+- // The viewer shouldn't be affected, sicne its a windowed app.
+- SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ConsoleCtrlHandler, TRUE);
+-
+- // Install the Google Breakpad crash handler for Windows
+- if(mExceptionHandler == 0)
+- {
+- llwarns << "adding breakpad exception handler" << llendl;
+- mExceptionHandler = new google_breakpad::ExceptionHandler(
+- L"C:\\Temp\\", 0, windows_post_minidump_callback, 0, google_breakpad::ExceptionHandler::HANDLER_ALL);
+- }
+-
+-#else
+- //
+- // Start up signal handling.
+- //
+- // There are two different classes of signals. Synchronous signals are delivered to a specific
+- // thread, asynchronous signals can be delivered to any thread (in theory)
+- //
+- setup_signals();
+-
+- // Add google breakpad exception handler configured for Darwin/Linux.
+- bool installHandler = true;
+-#ifdef LL_DARWIN
+- // For the special case of Darwin, we do not want to install the handler if
+- // the process is being debugged as the app will exit with value ABRT (6) if
+- // we do. Unfortunately, the code below which performs that test relies on
+- // the structure kinfo_proc which has been tagged by apple as an unstable
+- // API. We disable this test for shipping versions to avoid conflicts with
+- // future releases of Darwin. This test is really only needed for developers
+- // starting the app from a debugger anyway.
+- #ifndef LL_RELEASE_FOR_DOWNLOAD
+- int mib[4];
+- mib[0] = CTL_KERN;
+- mib[1] = KERN_PROC;
+- mib[2] = KERN_PROC_PID;
+- mib[3] = getpid();
+-
+- struct kinfo_proc info;
+- memset(&info, 0, sizeof(info));
+-
+- size_t size = sizeof(info);
+- int result = sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, NULL, 0);
+- if((result == 0) || (errno == ENOMEM))
+- {
+- // P_TRACED flag is set, so this process is being debugged; do not install
+- // the handler
+- if(info.kp_proc.p_flag & P_TRACED) installHandler = false;
+- }
+- else
+- {
+- // Failed to discover if the process is being debugged; default to
+- // installing the handler.
+- installHandler = true;
+- }
+- #endif
+-#endif
+- if(installHandler && (mExceptionHandler == 0))
+- {
+- std::string dumpPath = "/tmp/";
+- mExceptionHandler = new google_breakpad::ExceptionHandler(dumpPath, 0, &unix_post_minidump_callback, 0, true);
+- }
+-#endif
+-
+- startErrorThread();
++ sDisableCrashlogger = TRUE;
+ }
+
+ void LLApp::startErrorThread()
+@@ -403,20 +333,10 @@
+
+ void LLApp::setMiniDumpDir(const std::string &path)
+ {
+- if(mExceptionHandler == 0) return;
+-#ifdef LL_WINDOWS
+- wchar_t buffer[MAX_MINDUMP_PATH_LENGTH];
+- mbstowcs(buffer, path.c_str(), MAX_MINDUMP_PATH_LENGTH);
+- mExceptionHandler->set_dump_path(std::wstring(buffer));
+-#else
+- mExceptionHandler->set_dump_path(path);
+-#endif
+ }
+
+ void LLApp::writeMiniDump()
+ {
+- if(mExceptionHandler == 0) return;
+- mExceptionHandler->WriteMinidump();
+ }
+
+ // static
+@@ -473,13 +393,6 @@
+
+ void LLApp::disableCrashlogger()
+ {
+- // Disable Breakpad exception handler.
+- if (mExceptionHandler != 0)
+- {
+- delete mExceptionHandler;
+- mExceptionHandler = 0;
+- }
+-
+ sDisableCrashlogger = TRUE;
+ }
+
+--- indra.orig/llcommon/llapp.h
++++ indra/llcommon/llapp.h
+@@ -60,9 +60,11 @@
+ };
+ #endif
+
++#if 0
+ namespace google_breakpad {
+ class ExceptionHandler; // See exception_handler.h
+ }
++#endif
+
+ class LL_COMMON_API LLApp : public LLOptionInterface
+ {
+@@ -330,9 +332,9 @@
+ private:
+ // the static application instance if it was created.
+ static LLApp* sApplication;
+-
++#if 0
+ google_breakpad::ExceptionHandler * mExceptionHandler;
+-
++#endif
+
+ #if !LL_WINDOWS
+ friend void default_unix_signal_handler(int signum, siginfo_t *info, void *);