diff options
| author | Don Kjer <don@lindenlab.com> | 2012-09-06 22:08:33 +0000 | 
|---|---|---|
| committer | Don Kjer <don@lindenlab.com> | 2012-09-06 22:08:33 +0000 | 
| commit | 3990180c5951e68a1ecabc538be1560e0eeffaec (patch) | |
| tree | 0e2205335d15e4ccc0fc6eda4ed9b5ff22768093 | |
| parent | 2e933100bb6bf27c0307dc6831142dcc0860fb7b (diff) | |
Adding appearance utility package
| -rw-r--r-- | .hgignore | 5 | ||||
| -rw-r--r-- | debian/changelog | 6 | ||||
| -rw-r--r-- | debian/control | 8 | ||||
| -rwxr-xr-x | debian/rules | 75 | ||||
| -rw-r--r-- | debian/secondlife-appearance-utility.substvars | 1 | ||||
| -rw-r--r-- | indra/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | indra/appearance_utility/CMakeLists.txt | 54 | ||||
| -rw-r--r-- | indra/appearance_utility/appearance_utility.cpp | 37 | ||||
| -rwxr-xr-x | indra/appearance_utility/wrapper.sh | 25 | 
9 files changed, 197 insertions, 15 deletions
| @@ -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 $? | 
