diff options
author | William Pitcock <nenolod@dereferenced.org> | 2011-03-25 19:57:05 -0500 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2011-03-25 19:57:23 -0500 |
commit | c1936150c040193aa591283d0826b74ee244b9df (patch) | |
tree | b07f9dd07437dac8683b79721b14ba63a6578251 /testing | |
parent | 6e49e8ddee9bb07fc8013b2d40e4e013e2eb6c9f (diff) | |
download | aports-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/APKBUILD | 72 | ||||
-rw-r--r-- | testing/snowstorm/indra-no-breakpad.patch | 179 |
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 *); |