diff --git a/indra/fix-incredibuild.py b/indra/fix-incredibuild.py deleted file mode 100755 index 3bebe24f8092664622d281c09ceced5f849f8f9c..0000000000000000000000000000000000000000 --- a/indra/fix-incredibuild.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python3 -## -## $LicenseInfo:firstyear=2011&license=viewerlgpl$ -## Second Life Viewer Source Code -## Copyright (C) 2011, 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$ - -import sys -import os -import glob - -def delete_file_types(path, filetypes): - if os.path.exists(path): - print('Cleaning: ' + path) - orig_dir = os.getcwd(); - os.chdir(path) - filelist = [] - for type in filetypes: - filelist.extend(glob.glob(type)) - for file in filelist: - os.remove(file) - os.chdir(orig_dir) - -def main(): - build_types = ['*.exp','*.exe','*.pdb','*.idb', - '*.ilk','*.lib','*.obj','*.ib_pdb_index'] - pch_types = ['*.pch'] - delete_file_types("build-vc80/newview/Release", build_types) - delete_file_types("build-vc80/newview/alchemy-bin.dir/Release/", - pch_types) - delete_file_types("build-vc80/newview/RelWithDebInfo", build_types) - delete_file_types("build-vc80/newview/alchemy-bin.dir/RelWithDebInfo/", - pch_types) - delete_file_types("build-vc80/newview/Debug", build_types) - delete_file_types("build-vc80/newview/alchemy-bin.dir/Debug/", - pch_types) - - - delete_file_types("build-vc80/test/RelWithDebInfo", build_types) - delete_file_types("build-vc80/test/test.dir/RelWithDebInfo/", - pch_types) - - -if __name__ == "__main__": - main() diff --git a/indra/lib/python/indra/util/test_win32_manifest.py b/indra/lib/python/indra/util/test_win32_manifest.py deleted file mode 100755 index 98faef9bf9e0f7072ecaa8dbe6372a72737deb1a..0000000000000000000000000000000000000000 --- a/indra/lib/python/indra/util/test_win32_manifest.py +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env python3 -"""\ -@file test_win32_manifest.py -@brief Test an assembly binding version and uniqueness in a windows dll or exe. - -$LicenseInfo:firstyear=2009&license=viewerlgpl$ -Second Life Viewer Source Code -Copyright (C) 2009-2011, 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$ -""" -import sys, os -import tempfile -from xml.dom.minidom import parse - -class AssemblyTestException(Exception): - pass - -class NoManifestException(AssemblyTestException): - pass - -class MultipleBindingsException(AssemblyTestException): - pass - -class UnexpectedVersionException(AssemblyTestException): - pass - -class NoMatchingAssemblyException(AssemblyTestException): - pass - -def get_HKLM_registry_value(key_str, value_str): - import winreg - reg = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) - key = winreg.OpenKey(reg, key_str) - value = winreg.QueryValueEx(key, value_str)[0] - #print 'Found: %s' % value - return value - -def find_vc_dir(): - supported_versions = (r'8.0', r'9.0') - supported_products = (r'VisualStudio', r'VCExpress') - value_str = (r'ProductDir') - - for product in supported_products: - for version in supported_versions: - key_str = (r'SOFTWARE\Microsoft\%s\%s\Setup\VC' % - (product, version)) - try: - return get_HKLM_registry_value(key_str, value_str) - except WindowsError as err: - x64_key_str = (r'SOFTWARE\Wow6432Node\Microsoft\VisualStudio\%s\Setup\VS' % - version) - try: - return get_HKLM_registry_value(x64_key_str, value_str) - except: - print("Didn't find MS %s version %s " % (product,version), file=sys.stderr) - - raise - -def find_mt_path(): - vc_dir = find_vc_dir() - mt_path = '\"%sbin\\mt.exe\"' % vc_dir - return mt_path - -def test_assembly_binding(src_filename, assembly_name, assembly_ver): - print("checking %s dependency %s..." % (src_filename, assembly_name)) - - (tmp_file_fd, tmp_file_name) = tempfile.mkstemp(suffix='.xml') - tmp_file = os.fdopen(tmp_file_fd) - tmp_file.close() - - mt_path = find_mt_path() - resource_id = "" - if os.path.splitext(src_filename)[1].lower() == ".dll": - resource_id = ";#2" - system_call = '%s -nologo -inputresource:%s%s -out:%s > NUL' % (mt_path, src_filename, resource_id, tmp_file_name) - print("Executing: %s" % system_call) - mt_result = os.system(system_call) - if mt_result == 31: - print("No manifest found in %s" % src_filename) - raise NoManifestException() - - manifest_dom = parse(tmp_file_name) - nodes = manifest_dom.getElementsByTagName('assemblyIdentity') - - versions = list() - for node in nodes: - if node.getAttribute('name') == assembly_name: - versions.append(node.getAttribute('version')) - - if len(versions) == 0: - print("No matching assemblies found in %s" % src_filename) - raise NoMatchingAssemblyException() - - elif len(versions) > 1: - print("Multiple bindings to %s found:" % assembly_name) - print(versions) - print() - raise MultipleBindingsException(versions) - - elif versions[0] != assembly_ver: - print("Unexpected version found for %s:" % assembly_name) - print("Wanted %s, found %s" % (assembly_ver, versions[0])) - print() - raise UnexpectedVersionException(assembly_ver, versions[0]) - - os.remove(tmp_file_name) - - print("SUCCESS: %s OK!" % src_filename) - print() - -if __name__ == '__main__': - - print() - print("Running test_win32_manifest.py...") - - usage = 'test_win32_manfest <srcFileName> <assemblyName> <assemblyVersion>' - - try: - src_filename = sys.argv[1] - assembly_name = sys.argv[2] - assembly_ver = sys.argv[3] - except: - print("Usage:") - print(usage) - print() - raise - - test_assembly_binding(src_filename, assembly_name, assembly_ver) - - diff --git a/indra/llmessage/tests/test_llsdmessage_peer.py b/indra/llmessage/tests/test_llsdmessage_peer.py deleted file mode 100755 index 5ba0749e3168fd9e92dab5d9162a7c0ca95f0cff..0000000000000000000000000000000000000000 --- a/indra/llmessage/tests/test_llsdmessage_peer.py +++ /dev/null @@ -1,176 +0,0 @@ -#!/usr/bin/env python3 -"""\ -@file test_llsdmessage_peer.py -@author Nat Goodspeed -@date 2008-10-09 -@brief This script asynchronously runs the executable (with args) specified on - the command line, returning its result code. While that executable is - running, we provide dummy local services for use by C++ tests. - -$LicenseInfo:firstyear=2008&license=viewerlgpl$ -Second Life Viewer Source Code -Copyright (C) 2010, 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$ -""" - -import os -import sys -from http.server import HTTPServer, BaseHTTPRequestHandler - -from llbase.fastest_elementtree import parse as xml_parse -from llbase import llsd -from testrunner import freeport, run, debug, VERBOSE -import time - -_storage=None - -class TestHTTPRequestHandler(BaseHTTPRequestHandler): - """This subclass of BaseHTTPRequestHandler is to receive and echo - LLSD-flavored messages sent by the C++ LLHTTPClient. - """ - def read(self): - # The following logic is adapted from the library module - # SimpleXMLRPCServer.py. - # Get arguments by reading body of request. - # We read this in chunks to avoid straining - # socket.read(); around the 10 or 15Mb mark, some platforms - # begin to have problems (bug #792570). - try: - size_remaining = int(self.headers["content-length"]) - except (KeyError, ValueError): - return "" - max_chunk_size = 10*1024*1024 - L = [] - while size_remaining: - chunk_size = min(size_remaining, max_chunk_size) - chunk = self.rfile.read(chunk_size) - L.append(chunk) - size_remaining -= len(chunk) - return ''.join(L) - # end of swiped read() logic - - def read_xml(self): - # This approach reads the entire POST data into memory first - return llsd.parse(self.read()) -## # This approach attempts to stream in the LLSD XML from self.rfile, -## # assuming that the underlying XML parser reads its input file -## # incrementally. Unfortunately I haven't been able to make it work. -## tree = xml_parse(self.rfile) -## debug("Finished raw parse") -## debug("parsed XML tree %s", tree) -## debug("parsed root node %s", tree.getroot()) -## debug("root node tag %s", tree.getroot().tag) -## return llsd.to_python(tree.getroot()) - - def do_HEAD(self): - self.do_GET(withdata=False) - - def do_GET(self, withdata=True): - # Of course, don't attempt to read data. - data = dict(reply="success", body="avatar", random=17) - self.answer(data, withdata=withdata) - - def do_POST(self): - # Read the provided POST data. - self.answer(self.read_xml()) - - def do_PUT(self): - # Read the provided PUT data. - self.answer(self.read_xml()) - - def answer(self, data, withdata=True): - global _storage - debug("%s.answer(%s): self.path = %r", self.__class__.__name__, data, self.path) - if "fail" in self.path or "test/error" in self.path: # fail requested - status = data.get("status", 500) - # self.responses maps an int status to a (short, long) pair of - # strings. We want the longer string. That's why we pass a string - # pair to get(): the [1] will select the second string, whether it - # came from self.responses or from our default pair. - reason = data.get("reason", - self.responses.get(status, - ("fail requested", - "Your request specified failure status %s " - "without providing a reason" % status))[1]) - debug("fail requested: %s: %r", status, reason) - self.send_error(status, reason) - else: - if "web/echo" in self.path: - pass - elif "test/timeout" in self.path: - time.sleep(5.0) - return - elif "test/storage" in self.path: - if "GET" == self.command: - data = _storage - else: - _storage = data - data = "ok" - else: - data = data.copy() # we're going to modify - # Ensure there's a "reply" key in data, even if there wasn't before - data["reply"] = data.get("reply", llsd.LLSD("success")) - response = llsd.format_xml(data) - debug("success: %s", response) - self.send_response(200) - self.send_header("Content-type", "application/llsd+xml") - self.send_header("Content-Length", str(len(response))) - self.end_headers() - if withdata: - self.wfile.write(response) - - if not VERBOSE: - # When VERBOSE is set, skip both these overrides because they exist to - # suppress output. - - def log_request(self, code, size=None): - # For present purposes, we don't want the request splattered onto - # stderr, as it would upset devs watching the test run - pass - - def log_error(self, format, *args): - # Suppress error output as well - pass - -class Server(HTTPServer): - # This pernicious flag is on by default in HTTPServer. But proper - # operation of freeport() absolutely depends on it being off. - allow_reuse_address = False - -if __name__ == "__main__": - # function to make a server with specified port - make_server = lambda port: Server(('127.0.0.1', port), TestHTTPRequestHandler) - - if not sys.platform.startswith("win"): - # Instantiate a Server(TestHTTPRequestHandler) on a port chosen by the - # runtime. - httpd = make_server(0) - else: - # "Then there's Windows" - # Instantiate a Server(TestHTTPRequestHandler) on the first free port - # in the specified port range. - httpd, port = freeport(range(8000, 8020), make_server) - - # Pass the selected port number to the subject test program via the - # environment. We don't want to impose requirements on the test program's - # command-line parsing -- and anyway, for C++ integration tests, that's - # performed in TUT code rather than our own. - os.environ["PORT"] = str(httpd.server_port) - debug("$PORT = %s", httpd.server_port) - sys.exit(run(server_inst=httpd, *sys.argv[1:])) diff --git a/indra/newview/build_win32_appConfig.py b/indra/newview/build_win32_appConfig.py deleted file mode 100755 index ef2685a62549d0ef3c1a6b8d1bc3aa3da3ab24fc..0000000000000000000000000000000000000000 --- a/indra/newview/build_win32_appConfig.py +++ /dev/null @@ -1,68 +0,0 @@ -# @file build_win32_appConfig.py -# @brief Create the windows app.config file to redirect crt linkage. -# -# $LicenseInfo:firstyear=2009&license=viewerlgpl$ -# Second Life Viewer Source Code -# Copyright (C) 2010, 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$ - -import sys, os, re -from xml.dom.minidom import parse - -def munge_binding_redirect_version(src_manifest_name, src_config_name, dst_config_name): - manifest_dom = parse(src_manifest_name) - node = manifest_dom.getElementsByTagName('assemblyIdentity')[0] - manifest_assm_ver = node.getAttribute('version') - - config_dom = parse(src_config_name) - node = config_dom.getElementsByTagName('bindingRedirect')[0] - node.setAttribute('newVersion', manifest_assm_ver) - src_old_ver = re.match(r'([^-]*-).*', node.getAttribute('oldVersion')).group(1) - node.setAttribute('oldVersion', src_old_ver + manifest_assm_ver) - comment = config_dom.createComment("This file is automatically generated by the build. see indra/newview/build_win32_appConfig.py") - config_dom.insertBefore(comment, config_dom.childNodes[0]) - - print("Writing: " + dst_config_name) - f = open(dst_config_name, 'w') - config_dom.writexml(f) - f.close() - - - -def main(): - config = sys.argv[1] - src_dir = sys.argv[2] - dst_dir = sys.argv[3] - dst_name = sys.argv[4] - - if config.lower() == 'debug': - src_manifest_name = dst_dir + '/Microsoft.VC80.DebugCRT.manifest' - src_config_name = src_dir + '/SecondLifeDebug.exe.config' - else: - src_manifest_name = dst_dir + '/Microsoft.VC80.CRT.manifest' - src_config_name = src_dir + '/SecondLife.exe.config' - - dst_config_name = dst_dir + '/' + dst_name - - munge_binding_redirect_version(src_manifest_name, src_config_name, dst_config_name) - - return 0 - -if __name__ == "__main__": - main()