summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.hgignore5
-rw-r--r--debian/changelog6
-rw-r--r--debian/control8
-rwxr-xr-xdebian/rules75
-rw-r--r--debian/secondlife-appearance-utility.substvars1
-rw-r--r--indra/CMakeLists.txt1
-rw-r--r--indra/appearance_utility/CMakeLists.txt54
-rw-r--r--indra/appearance_utility/appearance_utility.cpp37
-rwxr-xr-xindra/appearance_utility/wrapper.sh25
9 files changed, 197 insertions, 15 deletions
diff --git a/.hgignore b/.hgignore
index b180d92003..06d31e2f88 100644
--- a/.hgignore
+++ b/.hgignore
@@ -50,6 +50,11 @@ indra/web/doc/asset-upload/plugins/verify-texture
installed.xml
libraries
tarfile_tmp
+debian/secondlife-viewer*
+debian/secondlife-appearance-utility*
+debian/files
+build-stamp
+configure-stamp
^indra/lib/python/mulib.*
^web/locale.*
^web/secondlife.com.*
diff --git a/debian/changelog b/debian/changelog
index ce54b54c6f..b3df2fcab3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+secondlife-viewer (0.4) unstable; urgency=low
+
+ * Adding appearance utility package
+
+ -- Don Kjer <don@lindenlab.com> Thu, 06 Sep 2012 19:32:55 +0000
+
secondlife-viewer (0.3) unstable; urgency=low
* Initial debian configuration
diff --git a/debian/control b/debian/control
index 50b9ed9a26..9ebd71df65 100644
--- a/debian/control
+++ b/debian/control
@@ -14,3 +14,11 @@ Depends: ${shlibs:Depends}, ${misc:Depends},
Description: Second Life Viewer
Second Life is an online virtual world developed by Linden Lab.
+Package: secondlife-appearance-utility
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ ia32-libs,
+ ia32-libs-gtk
+Description: Second Life Appearance Utility
+ Utility for manipulating Second Life avatar appearance.
+
diff --git a/debian/rules b/debian/rules
index c41f02d4fb..10301bf7d3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,11 +9,19 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-SRCDIR=build-linux-i686/newview/packaged
-DESTDIR=$(CURDIR)/debian/secondlife-viewer
-BASEDIR=opt/linden/viewer
+BASEDIR=opt/linden
+
+VIEWER_PKG=secondlife-viewer
+VIEWER_PACKAGEDIR=build-linux-i686/newview/packaged
+VIEWER_DESTDIR=$(CURDIR)/debian/$(VIEWER_PKG)
VIEWER_VERSION:=$(shell dpkg-parsechangelog | grep ^Version | sed 's/^Version: //')
-INSTALLDIR:=$(BASEDIR)/SecondLife-i686-$(VIEWER_VERSION)
+VIEWER_INSTALLDIR:=$(BASEDIR)/viewer/SecondLife-i686-$(VIEWER_VERSION)
+
+UTILITY_PKG=secondlife-appearance-utility
+UTILITY_SRCDIR=indra/appearance_utility
+UTILITY_PACKAGEDIR=build-linux-i686/appearance_utility
+UTILITY_DESTDIR=$(CURDIR)/debian/$(UTILITY_PKG)
+UTILITY_INSTALLDIR:=$(BASEDIR)/utilities
configure: configure-stamp
configure-stamp:
@@ -50,24 +58,61 @@ install: build
dh_installdirs
# Add here commands to install the package into debian/secondlife-viewer.
- for file in $$(find $(SRCDIR) -type f -o -type l | sed 's~$(SRCDIR)/~~'); do \
+ for file in $$(find $(VIEWER_PACKAGEDIR) -type f -o -type l | sed 's~$(VIEWER_PACKAGEDIR)/~~'); do \
+ # create containing directory \
+ install -v -m 755 -o root -g root -d "$$(dirname "$(VIEWER_DESTDIR)/$(VIEWER_INSTALLDIR)/$$file")"; \
+ PERM=644; \
+ if [ -x "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
+ PERM=755; \
+ fi; \
+ if [ -L "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
+ REAL="$$( readlink -f $(VIEWER_PACKAGEDIR)/$$file )"; \
+ RELATIVE="$$( echo $$REAL | sed 's~$(CURDIR)/$(VIEWER_PACKAGEDIR)/~~' )"; \
+ echo dh_link -p $(VIEWER_PKG) "$(VIEWER_INSTALLDIR)/$$RELATIVE" "$(VIEWER_INSTALLDIR)/$$file" ; \
+ dh_link -p $(VIEWER_PKG) "$(VIEWER_INSTALLDIR)/$$RELATIVE" "$(VIEWER_INSTALLDIR)/$$file" ; \
+ else \
+ install -v -m $$PERM -o root -g root "$(VIEWER_PACKAGEDIR)/$$file" "$(VIEWER_DESTDIR)/$(VIEWER_INSTALLDIR)/$$file"; \
+ fi; \
+ done
+ dh_link -p $(VIEWER_PKG) /$(VIEWER_INSTALLDIR)/secondlife /usr/bin/secondlife
+ dh_link -p $(VIEWER_PKG) $(BASEDIR)/viewer/SecondLife-i686-$(VIEWER_VERSION) $(BASEDIR)/viewer/SecondLife
+
+ # Add here commands to install the package into debian/secondlife-appearance-utility
+ # create containing directory
+ install -v -m 755 -o root -g root -d "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)"
+ # install utility wrapper
+ install -v -m 755 -o root -g root "$(UTILITY_SRCDIR)/wrapper.sh" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/wrapper.sh"
+ # install appearance-utility
+ install -v -m 755 -o root -g root "$(UTILITY_PACKAGEDIR)/appearance-utility-bin" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/appearance-utility-bin"
+ dh_link -p $(UTILITY_PKG) $(UTILITY_INSTALLDIR)/wrapper.sh $(UTILITY_INSTALLDIR)/appearance-utility
+ # install xml/image resources from viewer package
+ for file in $$(find $(VIEWER_PACKAGEDIR)/character -name "avatar_*.xml" -o -name "*.tga" | sed 's~$(VIEWER_PACKAGEDIR)/~~'); do \
+ # create containing directory \
+ install -v -m 755 -o root -g root -d "$$(dirname "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file")"; \
+ PERM=644; \
+ if [ -x "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
+ PERM=755; \
+ fi; \
+ install -v -m $$PERM -o root -g root "$(VIEWER_PACKAGEDIR)/$$file" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file"; \
+ done
+ # install viewer libraries
+ for file in $$(find $(VIEWER_PACKAGEDIR)/lib -type f -o -type l | sed 's~$(VIEWER_PACKAGEDIR)/~~'); do \
# create containing directory \
- install -v -m 755 -o root -g root -d "$$(dirname "$(DESTDIR)/$(INSTALLDIR)/$$file")"; \
+ install -v -m 755 -o root -g root -d "$$(dirname "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file")"; \
PERM=644; \
- if [ -x "$(SRCDIR)/$$file" ]; then \
+ if [ -x "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
PERM=755; \
fi; \
- if [ -L "$(SRCDIR)/$$file" ]; then \
- REAL="$$( readlink -f $(SRCDIR)/$$file )"; \
- RELATIVE="$$( echo $$REAL | sed 's~$(CURDIR)/$(SRCDIR)/~~' )"; \
- echo dh_link "$(INSTALLDIR)/$$RELATIVE" "$(INSTALLDIR)/$$file" ; \
- dh_link "$(INSTALLDIR)/$$RELATIVE" "$(INSTALLDIR)/$$file" ; \
+ if [ -L "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
+ REAL="$$( readlink -f $(VIEWER_PACKAGEDIR)/$$file )"; \
+ RELATIVE="$$( echo $$REAL | sed 's~$(CURDIR)/$(VIEWER_PACKAGEDIR)/~~' )"; \
+ echo dh_link -p $(UTILITY_PKG) "$(UTILITY_INSTALLDIR)/$$RELATIVE" "$(UTILITY_INSTALLDIR)/$$file" ; \
+ dh_link -p $(UTILITY_PKG) "$(UTILITY_INSTALLDIR)/$$RELATIVE" "$(UTILITY_INSTALLDIR)/$$file" ; \
else \
- install -v -m $$PERM -o root -g root "$(SRCDIR)/$$file" "$(DESTDIR)/$(INSTALLDIR)/$$file"; \
+ install -v -m $$PERM -o root -g root "$(VIEWER_PACKAGEDIR)/$$file" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file"; \
fi; \
done
- dh_link /$(INSTALLDIR)/secondlife /usr/bin/secondlife
- dh_link $(BASEDIR)/SecondLife-i686-$(VIEWER_VERSION) $(BASEDIR)/SecondLife
+ dh_link -p $(UTILITY_PKG) /$(UTILITY_INSTALLDIR)/appearance-utility /usr/bin/appearance-utility
# Build architecture-independent files here.
diff --git a/debian/secondlife-appearance-utility.substvars b/debian/secondlife-appearance-utility.substvars
new file mode 100644
index 0000000000..abd3ebebc3
--- /dev/null
+++ b/debian/secondlife-appearance-utility.substvars
@@ -0,0 +1 @@
+misc:Depends=
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index 078b17bf53..4e209ff75a 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -83,6 +83,7 @@ if (VIEWER)
if (LINUX)
add_subdirectory(${VIEWER_PREFIX}linux_crash_logger)
add_subdirectory(${VIEWER_PREFIX}linux_updater)
+ add_subdirectory(${VIEWER_PREFIX}appearance_utility)
add_dependencies(viewer linux-crash-logger-strip-target linux-updater)
elseif (DARWIN)
add_subdirectory(${VIEWER_PREFIX}mac_crash_logger)
diff --git a/indra/appearance_utility/CMakeLists.txt b/indra/appearance_utility/CMakeLists.txt
new file mode 100644
index 0000000000..c38f811b44
--- /dev/null
+++ b/indra/appearance_utility/CMakeLists.txt
@@ -0,0 +1,54 @@
+# -*- cmake -*-
+
+project(appearance_utility)
+
+include(00-Common)
+include(CURL)
+include(CARes)
+include(OpenSSL)
+include(UI)
+include(LLAppearance)
+include(LLCommon)
+include(LLVFS)
+include(LLXML)
+include(LLUI)
+include(Linking)
+
+include_directories(
+ ${LLCOMMON_INCLUDE_DIRS}
+ ${LLVFS_INCLUDE_DIRS}
+ ${LLXML_INCLUDE_DIRS}
+ ${LLUI_INCLUDE_DIRS}
+ ${CURL_INCLUDE_DIRS}
+ ${CARES_INCLUDE_DIRS}
+ ${OPENSSL_INCLUDE_DIRS}
+ ${UI_INCLUDE_DIRS}
+ ${LLAPPEARANCE_INCLUDE_DIRS}
+ )
+
+set(appearance_utility_SOURCE_FILES appearance_utility.cpp)
+
+set(appearance_utility_HEADER_FILES CMakeLists.txt)
+
+set_source_files_properties(${appearance_utility_HEADER_FILES}
+ PROPERTIES HEADER_FILES_ONLY TRUE)
+
+list(APPEND appearance_utility_SOURCE_FILES ${appearance_utility_HEADER_FILES})
+
+add_executable(appearance-utility-bin ${appearance_utility_SOURCE_FILES})
+
+target_link_libraries(appearance-utility-bin
+ ${CURL_LIBRARIES}
+ ${CARES_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ ${CRYPTO_LIBRARIES}
+ ${UI_LIBRARIES}
+ ${LLAPPEARANCE_LIBRARIES}
+ ${LLXML_LIBRARIES}
+ ${LLUI_LIBRARIES}
+ ${LLVFS_LIBRARIES}
+ ${LLCOMMON_LIBRARIES}
+ )
+
+add_custom_target(appearance-utility-bin-target ALL
+ DEPENDS appearance-utility-bin)
diff --git a/indra/appearance_utility/appearance_utility.cpp b/indra/appearance_utility/appearance_utility.cpp
new file mode 100644
index 0000000000..62b1cfd237
--- /dev/null
+++ b/indra/appearance_utility/appearance_utility.cpp
@@ -0,0 +1,37 @@
+/**
+ * @file appearance_utility.cpp
+ * @author Don Kjer <don@lindenlab.com>, Nyx Linden
+ * @brief Utility for processing avatar appearance without a full viewer implementation.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+#include "llerrorcontrol.h"
+
+int main(int argc, char** argv)
+{
+ printf("Test app\n");
+ return 0;
+}
+
+
diff --git a/indra/appearance_utility/wrapper.sh b/indra/appearance_utility/wrapper.sh
new file mode 100755
index 0000000000..87d2179a13
--- /dev/null
+++ b/indra/appearance_utility/wrapper.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# Simple wrapper for secondlife utilities.
+
+## - Avoids an often-buggy X feature that doesn't really benefit us anyway.
+export SDL_VIDEO_X11_DGAMOUSE=0
+
+## - Works around a problem with misconfigured 64-bit systems not finding GL
+export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
+
+## - The 'scim' GTK IM module widely crashes the viewer. Avoid it.
+if [ "$GTK_IM_MODULE" = "scim" ]; then
+ export GTK_IM_MODULE=xim
+fi
+
+EXECUTABLE="$(basename "$0")-bin"
+SCRIPTSRC="$(readlink -f "$0" || echo "$0")"
+RUN_PATH="$(dirname "${SCRIPTSRC}" || echo .)"
+cd "${RUN_PATH}"
+
+export LD_LIBRARY_PATH="$PWD/lib:${LD_LIBRARY_PATH}"
+
+# Run the program.
+"./$EXECUTABLE" "$@"
+exit $?