diff --git a/autobuild.xml b/autobuild.xml
index 4768bd25c6..5424e0629a 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -76,9 +76,9 @@
archive
name
darwin64
@@ -112,9 +112,9 @@
archive
name
windows
@@ -124,16 +124,16 @@
archive
name
windows64
version
- 1.4.5.548882
+ 1.4.5.558565
boost
version
- 2.3.545362
+ 2.3.557064
curl
@@ -398,9 +398,9 @@
archive
hash
- f5ae57117a6518d11f49ccfbfbe0969d
+ 13f74f43a6363ec998569f731fd869c5
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64131/601402/curl-7.54.1.545369-darwin64-545369.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82637/774617/curl-7.54.1.560191-darwin64-560191.tar.bz2
name
darwin64
@@ -434,11 +434,11 @@
archive
hash
- 2796ae7b09e730a55ac03f74ed669520
+ 0df99bd685dc3561ca8ea347b2921987
hash_algorithm
md5
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64130/601396/curl-7.54.1.545369-windows-545369.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82639/774610/curl-7.54.1.560191-windows-560191.tar.bz2
name
windows
@@ -448,16 +448,16 @@
archive
hash
- a8f96e5cdb8128b23d49ff4c3f2233a4
+ 50db2a9e6b74ec4b0c38b1ea8f135735
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64129/601382/curl-7.54.1.545369-windows64-545369.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82638/774608/curl-7.54.1.560191-windows64-560191.tar.bz2
name
windows64
version
- 7.54.1.545369
+ 7.54.1.560191
db
@@ -580,9 +580,9 @@
archive
hash
- 49fff41e17e06cdf9eb0c737d20df52f
+ 45dedb5b09995cd794304150e94fcf21
url
- https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/83411/779825/dullahan-1.12.2.202106220202_91.1.21_g9dd45fe_chromium-91.0.4472.114-darwin64-560751.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/87950/806969/dullahan-1.12.2.202109170444_91.1.21_g9dd45fe_chromium-91.0.4472.114-darwin64-563968.tar.bz2
name
darwin64
@@ -592,9 +592,9 @@
archive
hash
- f51f324d50a2461cda273e84fa65e0ad
+ d0fd9d7086699da4bb5ccc935622a717
url
- https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/83413/779836/dullahan-1.12.2.202106220213_91.1.21_g9dd45fe_chromium-91.0.4472.114-windows-560751.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/88276/809277/dullahan-1.12.2.202109230751_91.1.21_g9dd45fe_chromium-91.0.4472.114-windows-563968.tar.bz2
name
windows
@@ -604,16 +604,16 @@
archive
hash
- d3df46f6592715c75df2bf520c1ad68b
+ 7e8c3ccd420ff5aef24ff72d609ba394
url
- https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/83412/779840/dullahan-1.12.2.202106220213_91.1.21_g9dd45fe_chromium-91.0.4472.114-windows64-560751.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/88275/809281/dullahan-1.12.2.202109230751_91.1.21_g9dd45fe_chromium-91.0.4472.114-windows64-563968.tar.bz2
name
windows64
version
- 1.12.2.202106220213_91.1.21_g9dd45fe_chromium-91.0.4472.114
+ 1.12.2.202109230751_91.1.21_g9dd45fe_chromium-91.0.4472.114
elfio
@@ -670,9 +670,9 @@
archive
hash
- 3656b7f7b655cb267fd94f089d2e145c
+ f4e80e0dfcab713a3da90cd8f7f23e7b
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54860/510198/expat-2.1.1.538990-darwin64-538990.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76341/727265/expat-2.1.1.555519-darwin64-555519.tar.bz2
name
darwin64
@@ -706,9 +706,9 @@
archive
hash
- c509f8afa1e02f4c16232cce7f6855f8
+ cd4fe03473076c324d80ae3bd91a85bb
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55056/512080/expat-2.1.1.538990-windows-538990.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76343/727273/expat-2.1.1.555519-windows-555519.tar.bz2
name
windows
@@ -718,16 +718,16 @@
archive
hash
- aba97cfdf44c04dbfcac89c7cb472580
+ d2d74d73b914150982b1883a3b96e60b
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55054/512068/expat-2.1.1.538990-windows64-538990.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76344/727279/expat-2.1.1.555519-windows64-555519.tar.bz2
name
windows64
version
- 2.1.1.538990
+ 2.1.1.555519
fmodstudio
@@ -748,9 +748,9 @@
archive
hash
- 89c37441a806ed80c0102d380eec6fd0
+ d5528538e67c710387ae0c061a90cb23
url
- http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/65400/612632/fmodstudio-2.00.11.546392-darwin64-546392.tar.bz2
+ https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/76868/730756/fmodstudio-2.01.07.555883-darwin64-555883.tar.bz2
name
darwin64
@@ -784,9 +784,9 @@
archive
hash
- 0f44323b0d03b7d0d8a17eec83e103ce
+ a2bb6eaf51f933993b26a5fe7503a761
url
- http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/65401/612647/fmodstudio-2.00.11.546392-windows-546392.tar.bz2
+ https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/76869/730763/fmodstudio-2.01.07.555883-windows-555883.tar.bz2
name
windows
@@ -796,16 +796,16 @@
archive
hash
- 462d28eacf731a5d36ab031e7071c32a
+ 138d07dd516a9ad5b9787192fe6134dd
url
- http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/65402/612648/fmodstudio-2.00.11.546392-windows64-546392.tar.bz2
+ https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/76867/730751/fmodstudio-2.01.07.555883-windows64-555883.tar.bz2
name
windows64
version
- 2.00.11.546392
+ 2.01.07.555883
fontconfig
@@ -880,9 +880,9 @@
archive
hash
- 81a2e9aca3e33c4eecf0081854540b07
+ 3a478d6c8a10d49d9161ef864394b03c
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56309/526711/freetype-2.4.4.539865-darwin64-539865.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78592/744013/freetype-2.4.4.557047-darwin64-557047.tar.bz2
name
darwin64
@@ -916,9 +916,9 @@
archive
hash
- 1d1c7b60f71a5152ced60bee87f5bba8
+ 7ee200d6b5fa282c7f973ade5615aa86
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56312/526734/freetype-2.4.4.539865-windows-539865.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78594/744011/freetype-2.4.4.557047-windows-557047.tar.bz2
name
windows
@@ -928,16 +928,16 @@
archive
hash
- 53e78d4a607e959637e98a82a3cf5bea
+ 69307aaba16ac71531c9c4d930ace993
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56310/526723/freetype-2.4.4.539865-windows64-539865.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78593/744010/freetype-2.4.4.557047-windows64-557047.tar.bz2
name
windows64
version
- 2.4.4.539865
+ 2.4.4.557047
glext
@@ -1078,9 +1078,9 @@
archive
hash
- 343913fe1434da228c2210c23d2e3a1a
+ a9eaa005ff9d387f946283fbcb69b3c8
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54850/510134/glod-1.0pre3.538980-darwin64-538980.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76353/727324/glod-1.0pre3.555522-darwin64-555522.tar.bz2
name
darwin64
@@ -1139,97 +1139,7 @@
version
- 1.0pre3.538980
-
- google_breakpad
-
- copyright
- Copyright (c) 2006, Google Inc.
- description
- Breakpad is a crossplatform library for capturing crash callstacks and runtime data.
- license
- bsd
- license_file
- LICENSES/google_breakpad.txt
- name
- google_breakpad
- platforms
-
- darwin
-
- archive
-
- hash
- 171b39db6d0702535b41fad5b476e39d
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-breakpad_3p-update-google-breakpad/rev/298033/arch/Darwin/installer/google_breakpad-1413.298033-darwin-298033.tar.bz2
-
- name
- darwin
-
- darwin64
-
- archive
-
- hash
- ca33f234aae399b9e704e262f7e15d35
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56338/526869/google_breakpad-1413.539880-darwin64-539880.tar.bz2
-
- name
- darwin64
-
- linux
-
- archive
-
- hash
- 352e673897e8f36f8470150b8ace6ce9
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-google-breakpad/rev/314225/arch/Linux/installer/google_breakpad-1413.314225-linux-314225.tar.bz2
-
- name
- linux
-
- linux64
-
- archive
-
- hash
- 6bddcc1ac470dd5eab459220102df9e9
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/1835/4114/google_breakpad-1413.501824-linux64-501824.tar.bz2
-
- name
- linux64
-
- windows
-
- archive
-
- hash
- bfee0438617f57f02f7e8515a801cb20
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56359/526982/google_breakpad-1413.539880-windows-539880.tar.bz2
-
- name
- windows
-
- windows64
-
- archive
-
- hash
- 6f983e754bb3046f065806b510b408c5
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56358/526975/google_breakpad-1413.539880-windows64-539880.tar.bz2
-
- name
- windows64
-
-
- version
- 1413.539880
+ 1.0pre3.555522
googlemock
@@ -1262,9 +1172,9 @@
archive
hash
- f9831360ced94943ab9dfb3fbf5256d3
+ 19e925604bc1a91efb4b130e1edd8bf2
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64101/601290/googlemock-1.7.0.545363-darwin64-545363.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78620/744140/googlemock-1.7.0.557057-darwin64-557057.tar.bz2
name
darwin64
@@ -1298,9 +1208,9 @@
archive
hash
- 8149e46b4f7abb3ac284415cfe1366e1
+ eed7b41d0d1f41b24f315349ef78c728
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64102/601296/googlemock-1.7.0.545363-windows-545363.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78622/744148/googlemock-1.7.0.557057-windows-557057.tar.bz2
name
windows
@@ -1310,16 +1220,16 @@
archive
hash
- f3851eba809ead2810d702041569d36d
+ a6ad6fe722d2fe4e8137495af3f374c9
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64100/601284/googlemock-1.7.0.545363-windows64-545363.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78621/744152/googlemock-1.7.0.557057-windows64-557057.tar.bz2
name
windows64
version
- 1.7.0.545363
+ 1.7.0.557057
gstreamer
@@ -1792,9 +1702,9 @@
archive
hash
- c327e6d6573fc0a808677de47f08acd9
+ 2021ea3a19b81c82993e733709683303
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54844/510092/libhunspell-1.3.2.538974-darwin64-538974.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76371/727419/libhunspell-1.3.2.555528-darwin64-555528.tar.bz2
name
darwin64
@@ -1828,9 +1738,9 @@
archive
hash
- ec22ec25160bcfd2a74f1c7bc8ff6133
+ 2253ec09136cc7c208481030d78d9dd7
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54986/511824/libhunspell-1.3.2.538974-windows-538974.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76369/727412/libhunspell-1.3.2.555528-windows-555528.tar.bz2
name
windows
@@ -1840,16 +1750,16 @@
archive
hash
- f470c6f3f7b0559e95e76467b808de10
+ 858d1708f6b3a74738a3d57a5387e20f
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54985/511817/libhunspell-1.3.2.538974-windows64-538974.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76370/727413/libhunspell-1.3.2.555528-windows64-555528.tar.bz2
name
windows64
version
- 1.3.2.538974
+ 1.3.2.555528
libndofdev
@@ -1882,9 +1792,9 @@
archive
hash
- bf765dfe0b928ef3c531cd9618fee89b
+ a487fff84208a45844602c4a1f68c974
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54843/510085/libndofdev-0.1.538973-darwin64-538973.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76356/727333/libndofdev-0.1.555523-darwin64-555523.tar.bz2
name
darwin64
@@ -1894,9 +1804,9 @@
archive
hash
- 8abb7d216535009f6c0a7e43b0734b1e
+ 4c839555bf0ed9ae60ffc3f8a7c96f9b
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54984/511810/libndofdev-0.1.538973-windows-538973.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76354/727340/libndofdev-0.1.555523-windows-555523.tar.bz2
name
windows
@@ -1906,16 +1816,16 @@
archive
hash
- 9da7aed5a914174dcb2be12ecd4a656f
+ cbc033ae3b034b992b59f6de1034247c
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54983/511803/libndofdev-0.1.538973-windows64-538973.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76355/727341/libndofdev-0.1.555523-windows64-555523.tar.bz2
name
windows64
version
- 0.1.538973
+ 0.1.555523
libpng
@@ -1948,9 +1858,9 @@
archive
hash
- 0932b19bb6a8e2641706afd13d92951d
+ 2a41acc3116ce19a443873216cb882ad
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56313/526740/libpng-1.6.8.539868-darwin64-539868.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78587/743948/libpng-1.6.8.557046-darwin64-557046.tar.bz2
name
darwin64
@@ -1984,9 +1894,9 @@
archive
hash
- f498782698428888113b64a7505c8f7f
+ b935b440947f63c69700bdcf5095a8e1
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56319/526770/libpng-1.6.8.539868-windows-539868.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78591/743970/libpng-1.6.8.557046-windows-557046.tar.bz2
name
windows
@@ -1996,16 +1906,16 @@
archive
hash
- f8ac4f690a2925418866bccf6eba3cf4
+ d1cc8354ac4e877eefedf16b1be3aac6
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56317/526762/libpng-1.6.8.539868-windows64-539868.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78589/743991/libpng-1.6.8.557046-windows64-557046.tar.bz2
name
windows64
version
- 1.6.8.539868
+ 1.6.8.557046
libuuid
@@ -2080,9 +1990,9 @@
archive
hash
- 0706b9c3889d767af9f5105d9ffa9b51
+ 6677173bbbb0ea32369b5e9b6c9aa641
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56327/526819/libxml2-2.9.4.539866-darwin64-539866.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78631/744225/libxml2-2.9.4.557062-darwin64-557062.tar.bz2
name
darwin64
@@ -2116,9 +2026,9 @@
archive
hash
- 1b7b979a8387fbb0f278dc681558b9ef
+ ad6a596fbf0e83a21d95762da78437bc
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56316/526755/libxml2-2.9.4.539866-windows-539866.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78633/744239/libxml2-2.9.4.557062-windows-557062.tar.bz2
name
windows
@@ -2128,16 +2038,16 @@
archive
hash
- 4f8ff97d6a9ab350306b62eec8adc810
+ 6b5bb230684ecf28386d7c91c47bb6e1
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56314/526748/libxml2-2.9.4.539866-windows64-539866.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78634/744240/libxml2-2.9.4.557062-windows64-557062.tar.bz2
name
windows64
version
- 2.9.4.539866
+ 2.9.4.557062
llappearance_utility
@@ -2414,9 +2324,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 937ce1a2158c0cfff37f5989f5b24aba
+ e4f784d8a035c51921a1562ca7a1bab6
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64066/601156/nghttp2-1.40.0.545354-darwin64-545354.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76357/727350/nghttp2-1.40.0.555524-darwin64-555524.tar.bz2
name
darwin64
@@ -2450,9 +2360,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 138b881bdf37dff4e626e022a50dd11f
+ af05aa2994c9845308fecd094b7b2d25
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64069/601181/nghttp2-1.40.0.545354-windows-545354.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76359/727360/nghttp2-1.40.0.555524-windows-555524.tar.bz2
name
windows
@@ -2462,9 +2372,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- c23c6480c7cbea60a2bd26e257adc0a7
+ 5a55cede40eef16b9d1e47c418a2b77a
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64068/601177/nghttp2-1.40.0.545354-windows64-545354.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76358/727359/nghttp2-1.40.0.555524-windows64-555524.tar.bz2
name
windows64
@@ -2473,7 +2383,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
source_type
hg
version
- 1.40.0.545354
+ 1.40.0.555524
nvapi
@@ -2828,9 +2738,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 18aef0c8fc471b6539addbdc019aea25
+ 5503e4928bcdb0a29685b3242c4a409b
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56325/526804/openssl-1.0.2l.539874-darwin64-539874.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82619/774464/openssl-1.1.1l.560177-darwin64-560177.tar.bz2
name
darwin64
@@ -2864,9 +2774,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 2b2f61313b1cbd2893c1ba5bf15061fa
+ d2153f20dc2d35c609b876a9f019a748
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56328/526826/openssl-1.0.2l.539874-windows-539874.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82623/774521/openssl-1.1.1l.560177-windows-560177.tar.bz2
name
windows
@@ -2876,16 +2786,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 59aae854155bc7119e0dca25e65828c0
+ f40b8622ba38084b0962e273988d748f
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56326/526811/openssl-1.0.2l.539874-windows64-539874.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82624/774520/openssl-1.1.1l.560177-windows64-560177.tar.bz2
name
windows64
version
- 1.0.2l.539874
+ 1.1.1l.560177
pcre
@@ -3008,9 +2918,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 321a8542e7b693fbe8e44ebface06087
+ 6ce3cbaed968a69fb7a2cca80220874d
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55966/524403/slvoice-4.10.0000.32327.5fc3fe7c.539691-darwin64-539691.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80380/758537/slvoice-4.10.0000.32327.5fc3fe7c.558436-darwin64-558436.tar.bz2
name
darwin64
@@ -3044,9 +2954,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- fb1a57a1cf5e38a3d51b32307b93ffba
+ 2eb38c5eff4d0f18fbb89d0c30c4f0a4
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55968/524423/slvoice-4.10.0000.32327.5fc3fe7c.539691-windows-539691.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80382/758550/slvoice-4.10.0000.32327.5fc3fe7c.558436-windows-558436.tar.bz2
name
windows
@@ -3056,16 +2966,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 81df970eb0c97d415d7bd12049c82042
+ 9ee8f3cbc5369c598a998c61961ed16d
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55967/524409/slvoice-4.10.0000.32327.5fc3fe7c.539691-windows64-539691.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80381/758551/slvoice-4.10.0000.32327.5fc3fe7c.558436-windows64-558436.tar.bz2
name
windows64
version
- 4.10.0000.32327.5fc3fe7c.539691
+ 4.10.0000.32327.5fc3fe7c.558436
tut
@@ -3128,9 +3038,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 60f008c5fd31641ad4e61ac751ce15d1
+ c42575ac8997de979eadb082c33a578e
url
- https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/75748/723495/uriparser-0.9.4-darwin64-555117.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/81322/765512/uriparser-0.9.4-darwin64-559132.tar.bz2
name
darwin64
@@ -3164,9 +3074,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 00aff37a6f5e1fe08456702d28706cf6
+ 901b1063556fc6b2575e745eef2bf744
url
- https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/75751/723507/uriparser-0.9.4-windows-555117.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/81323/765528/uriparser-0.9.4-windows-559132.tar.bz2
name
windows
@@ -3176,9 +3086,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- ff27a91f3941c7bef5e1613a064cb048
+ 962c01d553f286c430102998129fb0d6
url
- https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/75750/723506/uriparser-0.9.4-windows64-555117.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/81324/765527/uriparser-0.9.4-windows64-559132.tar.bz2
name
windows64
@@ -3262,9 +3172,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 5e553a4358203f283c74744aed2fcd8c
+ b639d0035f4a8c9b4973be428a1b7e61
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54836/510036/vlc_bin-2.2.8.538966-darwin64-538966.tar.bz2
+ http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/69569/671323/vlc_bin-3.0.9.549888-darwin64-549888.tar.bz2
name
darwin64
@@ -3286,9 +3196,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- ca84b7c5f86e702fb35727eed8f0c8c4
+ 4f50b0c47daa081dd4fcb83763d5b0b2
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54958/511725/vlc_bin-2.2.8.538966-windows-538966.tar.bz2
+ http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/69567/671314/vlc_bin-3.0.9.549888-windows-549888.tar.bz2
name
windows
@@ -3298,16 +3208,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 93cd88d90cb8aedbed5cd90ff9262409
+ c2f8c01fb6c261b72beb07f0c4cd423f
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54954/511718/vlc_bin-2.2.8.538966-windows64-538966.tar.bz2
+ http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/69568/671315/vlc_bin-3.0.9.549888-windows64-549888.tar.bz2
name
windows64
version
- 2.2.8.538966
+ 3.0.9.549888
xmlrpc-epi
@@ -3340,9 +3250,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 99ea1808ee9f5b55029daa9fdef86776
+ 922a0dea32266897ed1911200438e1e1
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55063/512104/xmlrpc_epi-0.54.1.539072-darwin64-539072.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76372/727426/xmlrpc_epi-0.54.1.555529-darwin64-555529.tar.bz2
name
darwin64
@@ -3376,9 +3286,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 94643b7cebb449f049fa9e32ae682bcd
+ 34b847e6b280048465fe7c6ce67fe05c
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55138/512288/xmlrpc_epi-0.54.1.539072-windows-539072.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76374/727436/xmlrpc_epi-0.54.1.555529-windows-555529.tar.bz2
name
windows
@@ -3388,16 +3298,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- c409de1974a879291ce7daaf52348d85
+ 8fbe7c4ea22bb7f23a93c73884ebb34c
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55137/512279/xmlrpc_epi-0.54.1.539072-windows64-539072.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76373/727435/xmlrpc_epi-0.54.1.555529-windows64-555529.tar.bz2
name
windows64
version
- 0.54.1.539072
+ 0.54.1.555529
zlib
@@ -3430,9 +3340,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 9785bda5b4d3b41bf391b33d0da78c9e
+ 9181bc8229f1a8e480d2a40a2744ec28
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54858/510190/zlib-1.2.8.538988-darwin64-538988.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78578/743913/zlib-1.2.11.557041-darwin64-557041.tar.bz2
name
darwin64
@@ -3468,9 +3378,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- ebdb07d4aaa5312005a8773f625032a4
+ 8308cbd2ea0fe290541698b0f63482e2
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55048/512031/zlib-1.2.8.538988-windows-538988.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78579/743926/zlib-1.2.11.557041-windows-557041.tar.bz2
name
windows
@@ -3480,16 +3390,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 0ac95f3dece7d575ba45cf5728f53eea
+ 36bdc34f67d3ad3c57125dc1b16a3129
url
- http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55047/512024/zlib-1.2.8.538988-windows64-538988.tar.bz2
+ https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78577/743920/zlib-1.2.11.557041-windows64-557041.tar.bz2
name
windows64
version
- 1.2.8.538988
+ 1.2.11.557041
package_description
diff --git a/build.sh b/build.sh
index 96bcff0e8e..50eb2916df 100755
--- a/build.sh
+++ b/build.sh
@@ -16,6 +16,29 @@
# * The special style in which python is invoked is intentional to permit
# use of a native python install on windows - which requires paths in DOS form
+retry_cmd()
+{
+ max_attempts="$1"; shift
+ initial_wait="$1"; shift
+ attempt_num=1
+ echo "trying" "$@"
+ until "$@"
+ do
+ if ((attempt_num==max_attempts))
+ then
+ echo "Last attempt $attempt_num failed"
+ return 1
+ else
+ wait_time=$(($attempt_num*$initial_wait))
+ echo "Attempt $attempt_num failed. Trying again in $wait_time seconds..."
+ sleep $wait_time
+ attempt_num=$(($attempt_num+1))
+ fi
+ done
+ echo "succeeded"
+ return 0
+}
+
build_dir_Darwin()
{
echo build-darwin-x86_64
@@ -447,7 +470,7 @@ then
succeeded=$build_coverity
else
# Upload base package.
- python_cmd "$helpers/codeticket.py" addoutput Installer "$package" \
+ retry_cmd 4 30 python_cmd "$helpers/codeticket.py" addoutput Installer "$package" \
|| fatal "Upload of installer failed"
wait_for_codeticket
@@ -457,7 +480,7 @@ then
package=$(installer_$arch "$package_id")
if [ x"$package" != x ]
then
- python_cmd "$helpers/codeticket.py" addoutput "Installer $package_id" "$package" \
+ retry_cmd 4 30 python_cmd "$helpers/codeticket.py" addoutput "Installer $package_id" "$package" \
|| fatal "Upload of installer $package_id failed"
wait_for_codeticket
else
@@ -471,7 +494,7 @@ then
if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ]
then
# Upload crash reporter file
- python_cmd "$helpers/codeticket.py" addoutput "Symbolfile" "$VIEWER_SYMBOL_FILE" \
+ retry_cmd 4 30 python_cmd "$helpers/codeticket.py" addoutput "Symbolfile" "$VIEWER_SYMBOL_FILE" \
|| fatal "Upload of symbolfile failed"
wait_for_codeticket
fi
@@ -481,10 +504,7 @@ then
if [ -r "$build_dir/llphysicsextensions_package" ]
then
llphysicsextensions_package=$(cat $build_dir/llphysicsextensions_package)
- # This next upload is a frequent failure; see if giving the last one some time helps
- # JJ is making changes to Codeticket that we hope will eliminate this failure soon
- sleep 300
- python_cmd "$helpers/codeticket.py" addoutput "Physics Extensions Package" "$llphysicsextensions_package" --private \
+ retry_cmd 4 30 python_cmd "$helpers/codeticket.py" addoutput "Physics Extensions Package" "$llphysicsextensions_package" --private \
|| fatal "Upload of physics extensions package failed"
fi
fi
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index 909b8f4312..dc1c28ce5b 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -95,17 +95,6 @@ if (USE_BUGSPLAT)
endif (BUGSPLAT_DB)
else (USE_BUGSPLAT)
message(STATUS "Not building with BugSplat")
- if (LINUX)
- add_subdirectory(${VIEWER_PREFIX}linux_crash_logger)
- add_dependencies(viewer linux-crash-logger-strip-target)
- elseif (DARWIN)
- add_subdirectory(${VIEWER_PREFIX}mac_crash_logger)
- add_dependencies(viewer mac-crash-logger)
- elseif (WINDOWS)
- add_subdirectory(${VIEWER_PREFIX}win_crash_logger)
- # add_dependencies(viewer windows-setup windows-crash-logger)
- add_dependencies(viewer windows-crash-logger)
- endif (LINUX)
endif (USE_BUGSPLAT)
add_subdirectory(${VIEWER_PREFIX}newview)
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index b8e569d3a8..7d8bfb1b0f 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -24,7 +24,7 @@ elseif (DARWIN)
message(FATAL_ERROR "AppKit not found")
endif()
- FIND_LIBRARY(CEF_LIBRARY "Chromium Embedded Framework" ${ARCH_PREBUILT_DIRS_RELEASE})
+ set(CEF_LIBRARY "'${ARCH_PREBUILT_DIRS_RELEASE}/Chromium\ Embedded\ Framework.framework'")
if (NOT CEF_LIBRARY)
message(FATAL_ERROR "CEF not found")
endif()
@@ -33,7 +33,7 @@ elseif (DARWIN)
${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
${APPKIT_LIBRARY}
- ${CEF_LIBRARY}
+ "-F ${CEF_LIBRARY}"
)
elseif (LINUX)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 352dfc0641..d7725670a2 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -28,7 +28,6 @@ set(cmake_SOURCE_FILES
FindAutobuild.cmake
FindBerkeleyDB.cmake
FindGLH.cmake
- FindGoogleBreakpad.cmake
FindHUNSPELL.cmake
FindJsonCpp.cmake
FindNDOF.cmake
@@ -43,7 +42,6 @@ set(cmake_SOURCE_FILES
GLH.cmake
GLOD.cmake
## GStreamer010Plugin.cmake
- GoogleBreakpad.cmake
GoogleMock.cmake
Havok.cmake
Hunspell.cmake
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 46ddb9d15b..b20d23cead 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -56,14 +56,21 @@ if(WINDOWS)
libapr-1.dll
libaprutil-1.dll
libapriconv-1.dll
- ssleay32.dll
- libeay32.dll
nghttp2.dll
glod.dll
libhunspell.dll
uriparser.dll
)
+ # OpenSSL
+ if(ADDRESS_SIZE EQUAL 64)
+ set(release_files ${release_files} libcrypto-1_1-x64.dll)
+ set(release_files ${release_files} libssl-1_1-x64.dll)
+ else(ADDRESS_SIZE EQUAL 64)
+ set(release_files ${release_files} libcrypto-1_1.dll)
+ set(release_files ${release_files} libssl-1_1.dll)
+ endif(ADDRESS_SIZE EQUAL 64)
+
# Filenames are different for 32/64 bit BugSplat file and we don't
# have any control over them so need to branch.
if (USE_BUGSPLAT)
@@ -158,7 +165,6 @@ elseif(DARWIN)
libapr-1.dylib
libaprutil-1.0.dylib
libaprutil-1.dylib
- libexception_handler.dylib
${EXPAT_COPY}
libGLOD.dylib
libhunspell-1.3.0.dylib
diff --git a/indra/cmake/FindGoogleBreakpad.cmake b/indra/cmake/FindGoogleBreakpad.cmake
deleted file mode 100644
index 1a0493be5e..0000000000
--- a/indra/cmake/FindGoogleBreakpad.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- cmake -*-
-
-# - Find Google BreakPad
-# Find the Google BreakPad includes and library
-# This module defines
-# BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR, where to find exception_handler.h, etc.
-# BREAKPAD_EXCEPTION_HANDLER_LIBRARIES, the libraries needed to use Google BreakPad.
-# BREAKPAD_EXCEPTION_HANDLER_FOUND, If false, do not try to use Google BreakPad.
-# also defined, but not for general use are
-# BREAKPAD_EXCEPTION_HANDLER_LIBRARY, where to find the Google BreakPad library.
-
-FIND_PATH(BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR google_breakpad/exception_handler.h)
-
-SET(BREAKPAD_EXCEPTION_HANDLER_NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} breakpad_client)
-FIND_LIBRARY(BREAKPAD_EXCEPTION_HANDLER_LIBRARY
- NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES}
- )
-
-IF (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR)
- SET(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES ${BREAKPAD_EXCEPTION_HANDLER_LIBRARY})
- SET(BREAKPAD_EXCEPTION_HANDLER_FOUND "YES")
-ELSE (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR)
- SET(BREAKPAD_EXCEPTION_HANDLER_FOUND "NO")
-ENDIF (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR)
-
-
-IF (BREAKPAD_EXCEPTION_HANDLER_FOUND)
- IF (NOT BREAKPAD_EXCEPTION_HANDLER_FIND_QUIETLY)
- MESSAGE(STATUS "Found Google BreakPad: ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}")
- ENDIF (NOT BREAKPAD_EXCEPTION_HANDLER_FIND_QUIETLY)
-ELSE (BREAKPAD_EXCEPTION_HANDLER_FOUND)
- IF (BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find Google BreakPad library")
- ENDIF (BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED)
-ENDIF (BREAKPAD_EXCEPTION_HANDLER_FOUND)
-
-MARK_AS_ADVANCED(
- BREAKPAD_EXCEPTION_HANDLER_LIBRARY
- BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR
- )
diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake
deleted file mode 100644
index 829e1ac08a..0000000000
--- a/indra/cmake/GoogleBreakpad.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-if (USESYSTEMLIBS)
- set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON)
- include(FindGoogleBreakpad)
-else (USESYSTEMLIBS)
- use_prebuilt_binary(google_breakpad)
- if (DARWIN)
- set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler)
- endif (DARWIN)
- if (LINUX)
- set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES breakpad_client)
- endif (LINUX)
- if (WINDOWS)
- set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler crash_generation_client crash_generation_server common)
- endif (WINDOWS)
- # yes, this does look dumb, no, it's not incorrect
- #
- set(BREAKPAD_INCLUDE_DIRECTORIES "${LIBS_PREBUILT_DIR}/include/google_breakpad" "${LIBS_PREBUILT_DIR}/include/google_breakpad/google_breakpad")
-endif (USESYSTEMLIBS)
-
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index eb548bdcc1..32400f5e4e 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -9,7 +9,7 @@ if (USESYSTEMLIBS)
else (USESYSTEMLIBS)
use_prebuilt_binary(openssl)
if (WINDOWS)
- set(OPENSSL_LIBRARIES ssleay32 libeay32)
+ set(OPENSSL_LIBRARIES libssl libcrypto)
else (WINDOWS)
set(OPENSSL_LIBRARIES ssl crypto)
endif (WINDOWS)
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index dd266630ea..22dfe12e40 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -9,7 +9,6 @@ include(Linking)
include(Boost)
include(LLSharedLibs)
include(JsonCpp)
-include(GoogleBreakpad)
include(Copy3rdPartyLibs)
include(ZLIB)
include(URIPARSER)
@@ -19,7 +18,6 @@ include_directories(
${LLCOMMON_INCLUDE_DIRS}
${JSONCPP_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
- ${BREAKPAD_INCLUDE_DIRECTORIES}
${URIPARSER_INCLUDE_DIRS}
)
@@ -288,7 +286,6 @@ endif(LLCOMMON_LINK_SHARED)
target_link_libraries(
llcommon
- ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}
${APRUTIL_LIBRARIES}
${APR_LIBRARIES}
${EXPAT_LIBRARIES}
diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp
index bf3de55685..8ddd132793 100644
--- a/indra/llcommon/llapp.cpp
+++ b/indra/llcommon/llapp.cpp
@@ -46,7 +46,6 @@
#include "llstl.h" // for DeletePointer()
#include "llstring.h"
#include "lleventtimer.h"
-#include "google_breakpad/exception_handler.h"
#include "stringize.h"
#include "llcleanup.h"
#include "llevents.h"
@@ -62,12 +61,6 @@
LONG WINAPI default_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop);
BOOL ConsoleCtrlHandler(DWORD fdwCtrlType);
-bool windows_post_minidump_callback(const wchar_t* dump_path,
- const wchar_t* minidump_id,
- void* context,
- EXCEPTION_POINTERS* exinfo,
- MDRawAssertionInfo* assertion,
- bool succeeded);
#else
# include
# include // for fork()
@@ -147,8 +140,6 @@ void LLApp::commonCtor()
// 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)
@@ -178,8 +169,6 @@ LLApp::~LLApp()
delete mThreadErrorp;
mThreadErrorp = NULL;
}
-
- if(mExceptionHandler != 0) delete mExceptionHandler;
SUBSYSTEM_CLEANUP_DBG(LLCommon);
}
@@ -395,139 +384,18 @@ void LLApp::setupErrorHandling(bool second_instance)
#if LL_WINDOWS
-#if LL_SEND_CRASH_REPORTS && ! defined(LL_BUGSPLAT)
- EnableCrashingOnCrashes();
-
- // 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)
- {
- if ( second_instance ) //BUG-5707 Firing teleport from a web browser causes second
- {
- mExceptionHandler = new google_breakpad::ExceptionHandler(
- L"C:\\Temp\\",
- 0, //No filter
- windows_post_minidump_callback,
- 0,
- google_breakpad::ExceptionHandler::HANDLER_ALL); //No custom client info.
- }
- else
- {
- LL_WARNS() << "adding breakpad exception handler" << LL_ENDL;
-
- std::wstring wpipe_name;
- wpipe_name = mCrashReportPipeStr + wstringize(getPid());
-
- const std::wstring wdump_path(utf8str_to_utf16str(mDumpPath));
-
- int retries = 30;
- for (; retries > 0; --retries)
- {
- if (mExceptionHandler != 0) delete mExceptionHandler;
-
- mExceptionHandler = new google_breakpad::ExceptionHandler(
- wdump_path,
- NULL, //No filter
- windows_post_minidump_callback,
- 0,
- google_breakpad::ExceptionHandler::HANDLER_ALL,
- MiniDumpNormal, //Generate a 'normal' minidump.
- wpipe_name.c_str(),
- NULL); //No custom client info.
- if (mExceptionHandler->IsOutOfProcess())
- {
- LL_INFOS("CRASHREPORT") << "Successfully attached to Out of Process exception handler." << LL_ENDL;
- break;
- }
- else
- {
- LL_WARNS("CRASHREPORT") << "Unable to attach to Out of Process exception handler. " << retries << " retries remaining." << LL_ENDL;
- ::Sleep(100); //Wait a tick and try again.
- }
- }
-
- if (retries == 0) LL_WARNS("CRASHREPORT") << "Unable to attach to Out of Process exception handler." << LL_ENDL;
- }
-
- if (mExceptionHandler)
- {
- mExceptionHandler->set_handle_debug_exceptions(true);
- }
- }
-#endif // LL_SEND_CRASH_REPORTS && ! defined(LL_BUGSPLAT)
#else // ! LL_WINDOWS
-#if defined(LL_BUGSPLAT)
- // Don't install our own signal handlers -- BugSplat needs to hook them,
- // or it's completely ineffectual.
- bool installHandler = false;
-
-#else // ! LL_BUGSPLAT
- //
- // 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;
+#if ! defined(LL_BUGSPLAT)
+ //
+ // 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();
#endif // ! LL_BUGSPLAT
-#if 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 // ! LL_RELEASE_FOR_DOWNLOAD
-
- if(installHandler && (mExceptionHandler == 0))
- {
- mExceptionHandler = new google_breakpad::ExceptionHandler(mDumpPath, 0, &unix_post_minidump_callback, 0, true, 0);
- }
-#elif LL_LINUX
- if(installHandler && (mExceptionHandler == 0))
- {
- if (mDumpPath.empty())
- {
- mDumpPath = "/tmp";
- }
- google_breakpad::MinidumpDescriptor desc(mDumpPath);
- mExceptionHandler = new google_breakpad::ExceptionHandler(desc, NULL, unix_minidump_callback, NULL, true, -1);
- }
-#endif // LL_LINUX
-
#endif // ! LL_WINDOWS
#ifdef LL_BUGSPLAT
@@ -616,37 +484,6 @@ void LLApp::setError()
setStatus(APP_STATUS_ERROR);
}
-// static
-bool LLApp::sleep(F32Milliseconds duration)
-{
- return ! sStatus.wait_for_unequal(duration, APP_STATUS_RUNNING);
-}
-
-void LLApp::setMiniDumpDir(const std::string &path)
-{
- if (path.empty())
- {
- mDumpPath = "/tmp";
- }
- else
- {
- mDumpPath = path;
- }
-
- if(mExceptionHandler == 0) return;
-#ifdef LL_WINDOWS
- std::wstring buffer(utf8str_to_utf16str(mDumpPath));
- if (buffer.size() > MAX_MINDUMP_PATH_LENGTH) buffer.resize(MAX_MINDUMP_PATH_LENGTH);
- mExceptionHandler->set_dump_path(buffer);
-#elif LL_LINUX
- //google_breakpad::MinidumpDescriptor desc("/tmp"); //path works in debug fails in production inside breakpad lib so linux gets a little less stack reporting until it is patched.
- google_breakpad::MinidumpDescriptor desc(mDumpPath); //path works in debug fails in production inside breakpad lib so linux gets a little less stack reporting until it is patched.
- mExceptionHandler->set_minidump_descriptor(desc);
-#else
- mExceptionHandler->set_dump_path(mDumpPath);
-#endif
-}
-
void LLApp::setDebugFileNames(const std::string &path)
{
mStaticDebugFileName = path + "static_debug_info.log";
@@ -655,8 +492,6 @@ void LLApp::setDebugFileNames(const std::string &path)
void LLApp::writeMiniDump()
{
- if(mExceptionHandler == 0) return;
- mExceptionHandler->WriteMinidump();
}
// static
@@ -713,13 +548,6 @@ bool LLApp::isExiting()
void LLApp::disableCrashlogger()
{
- // Disable Breakpad exception handler.
- if (mExceptionHandler != 0)
- {
- delete mExceptionHandler;
- mExceptionHandler = 0;
- }
-
sDisableCrashlogger = TRUE;
}
@@ -1113,64 +941,3 @@ bool unix_post_minidump_callback(const char *dump_dir,
}
#endif // !WINDOWS
-#ifdef LL_WINDOWS
-bool windows_post_minidump_callback(const wchar_t* dump_path,
- const wchar_t* minidump_id,
- void* context,
- EXCEPTION_POINTERS* exinfo,
- MDRawAssertionInfo* assertion,
- bool succeeded)
-{
- char * path = LLApp::instance()->getMiniDumpFilename();
- S32 remaining = LLApp::MAX_MINDUMP_PATH_LENGTH;
- size_t bytesUsed;
-
- LL_INFOS("MINIDUMPCALLBACK") << "Dump file was generated." << LL_ENDL;
- bytesUsed = wcstombs(path, dump_path, static_cast(remaining));
- remaining -= bytesUsed;
- path += bytesUsed;
- if(remaining > 0 && bytesUsed > 0 && path[-1] != '\\')
- {
- *path++ = '\\';
- --remaining;
- }
- if(remaining > 0)
- {
- bytesUsed = wcstombs(path, minidump_id, static_cast(remaining));
- remaining -= bytesUsed;
- path += bytesUsed;
- }
- if(remaining > 0)
- {
- strncpy(path, ".dmp", remaining);
- }
-
- LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL;
- // *NOTE:Mani - this code is stolen from LLApp, where its never actually used.
- //OSMessageBox("Attach Debugger Now", "Error", OSMB_OK);
- // *TODO: Translate the signals/exceptions into cross-platform stuff
- // Windows implementation
- LL_INFOS() << "Entering Windows Exception Handler..." << LL_ENDL;
-
- if (LLApp::isError())
- {
- LL_WARNS() << "Got another fatal signal while in the error handler, die now!" << LL_ENDL;
- }
-
- // Flag status to error, so thread_error starts its work
- LLApp::setError();
-
- // Block in the exception handler until the app has stopped
- // This is pretty sketchy, but appears to work just fine
- while (!LLApp::isStopped())
- {
- ms_sleep(10);
- }
-
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- return false;
-#else
- return true;
-#endif
-}
-#endif
diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h
index 59b54c957e..c65fe21c9c 100644
--- a/indra/llcommon/llapp.h
+++ b/indra/llcommon/llapp.h
@@ -51,10 +51,6 @@ void clear_signals();
#endif
-namespace google_breakpad {
- class ExceptionHandler; // See exception_handler.h
-}
-
class LL_COMMON_API LLApp
{
friend class LLErrorThread;
@@ -268,7 +264,6 @@ public:
static const U32 MAX_MINDUMP_PATH_LENGTH = 256;
// change the directory where Breakpad minidump files are written to
- void setMiniDumpDir(const std::string &path);
void setDebugFileNames(const std::string &path);
// Return the Google Breakpad minidump filename after a crash.
@@ -348,9 +343,6 @@ private:
private:
// the static application instance if it was created.
static LLApp* sApplication;
-
- google_breakpad::ExceptionHandler * mExceptionHandler;
-
#if !LL_WINDOWS
friend void default_unix_signal_handler(int signum, siginfo_t *info, void *);
diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt
index 8bb6a657b1..6a301ad50d 100644
--- a/indra/llcorehttp/CMakeLists.txt
+++ b/indra/llcorehttp/CMakeLists.txt
@@ -177,7 +177,6 @@ if (DARWIN)
set(copy_dylibs
libapr-1.0.dylib
libaprutil-1.0.dylib
- libexception_handler.dylib
libnghttp2*.dylib
liburiparser*.dylib
${EXPAT_COPY}
diff --git a/indra/llcorehttp/httpcommon.cpp b/indra/llcorehttp/httpcommon.cpp
index e37a38b05f..61ba83594e 100644
--- a/indra/llcorehttp/httpcommon.cpp
+++ b/indra/llcorehttp/httpcommon.cpp
@@ -23,13 +23,6 @@
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
-#if LL_WINDOWS
-#define SAFE_SSL 1
-#elif LL_DARWIN
-#define SAFE_SSL 1
-#else
-#define SAFE_SSL 1
-#endif
#include "linden_common.h" // Modifies curl/curl.h interfaces
#include "httpcommon.h"
@@ -38,10 +31,6 @@
#include
#include
#include
-#if SAFE_SSL
-#include
-#include // std::hash
-#endif
namespace LLCore
@@ -281,9 +270,6 @@ namespace LLHttp
{
namespace
{
-typedef boost::shared_ptr LLMutex_ptr;
-std::vector sSSLMutex;
-
CURL *getCurlTemplateHandle()
{
static CURL *curlpTemplateHandle = NULL;
@@ -348,34 +334,6 @@ void deallocateEasyCurl(CURL *curlp)
}
-#if SAFE_SSL
-//static
-void ssl_locking_callback(int mode, int type, const char *file, int line)
-{
- if (type >= sSSLMutex.size())
- {
- LL_WARNS() << "Attempt to get unknown MUTEX in SSL Lock." << LL_ENDL;
- }
-
- if (mode & CRYPTO_LOCK)
- {
- sSSLMutex[type]->lock();
- }
- else
- {
- sSSLMutex[type]->unlock();
- }
-}
-
-//static
-unsigned long ssl_thread_id(void)
-{
- // std::thread::id is very deliberately opaque, but we can hash it
- return std::hash()(LLThread::currentID());
-}
-#endif
-
-
}
void initialize()
@@ -387,27 +345,11 @@ void initialize()
check_curl_code(code, CURL_GLOBAL_ALL);
-#if SAFE_SSL
- S32 mutex_count = CRYPTO_num_locks();
- for (S32 i = 0; i < mutex_count; i++)
- {
- sSSLMutex.push_back(LLMutex_ptr(new LLMutex()));
- }
- CRYPTO_set_id_callback(&ssl_thread_id);
- CRYPTO_set_locking_callback(&ssl_locking_callback);
-#endif
-
}
void cleanup()
{
-#if SAFE_SSL
- CRYPTO_set_id_callback(NULL);
- CRYPTO_set_locking_callback(NULL);
- sSSLMutex.clear();
-#endif
-
curl_global_cleanup();
}
diff --git a/indra/llmessage/llblowfishcipher.cpp b/indra/llmessage/llblowfishcipher.cpp
index 0b5025a422..949d4cc0c7 100644
--- a/indra/llmessage/llblowfishcipher.cpp
+++ b/indra/llmessage/llblowfishcipher.cpp
@@ -52,24 +52,28 @@ U32 LLBlowfishCipher::encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len)
if (src_len > dst_len) return 0;
// OpenSSL uses "cipher contexts" to hold encryption parameters.
- EVP_CIPHER_CTX context;
- EVP_CIPHER_CTX_init(&context);
+ EVP_CIPHER_CTX *context = EVP_CIPHER_CTX_new();
+ if (!context)
+ {
+ LL_WARNS() << "LLBlowfishCipher::encrypt EVP_CIPHER_CTX initiation failure" << LL_ENDL;
+ return 0;
+ }
// We want a blowfish cyclic block chain cipher, but need to set
// the key length before we pass in a key, so call EncryptInit
// first with NULLs.
- EVP_EncryptInit_ex(&context, EVP_bf_cbc(), NULL, NULL, NULL);
- EVP_CIPHER_CTX_set_key_length(&context, (int)mSecretSize);
+ EVP_EncryptInit_ex(context, EVP_bf_cbc(), NULL, NULL, NULL);
+ EVP_CIPHER_CTX_set_key_length(context, (int)mSecretSize);
// Complete initialization. Per EVP_EncryptInit man page, the
// cipher pointer must be NULL. Apparently initial_vector must
// be 8 bytes for blowfish, as this is the block size.
unsigned char initial_vector[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- EVP_EncryptInit_ex(&context, NULL, NULL, mSecret, initial_vector);
+ EVP_EncryptInit_ex(context, NULL, NULL, mSecret, initial_vector);
- int blocksize = EVP_CIPHER_CTX_block_size(&context);
- int keylen = EVP_CIPHER_CTX_key_length(&context);
- int iv_length = EVP_CIPHER_CTX_iv_length(&context);
+ int blocksize = EVP_CIPHER_CTX_block_size(context);
+ int keylen = EVP_CIPHER_CTX_key_length(context);
+ int iv_length = EVP_CIPHER_CTX_iv_length(context);
LL_DEBUGS() << "LLBlowfishCipher blocksize " << blocksize
<< " keylen " << keylen
<< " iv_len " << iv_length
@@ -77,7 +81,7 @@ U32 LLBlowfishCipher::encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len)
int output_len = 0;
int temp_len = 0;
- if (!EVP_EncryptUpdate(&context,
+ if (!EVP_EncryptUpdate(context,
dst,
&output_len,
src,
@@ -89,18 +93,18 @@ U32 LLBlowfishCipher::encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len)
// There may be some final data left to encrypt if the input is
// not an exact multiple of the block size.
- if (!EVP_EncryptFinal_ex(&context, (unsigned char*)(dst + output_len), &temp_len))
+ if (!EVP_EncryptFinal_ex(context, (unsigned char*)(dst + output_len), &temp_len))
{
LL_WARNS() << "LLBlowfishCipher::encrypt EVP_EncryptFinal failure" << LL_ENDL;
goto ERROR;
}
output_len += temp_len;
- EVP_CIPHER_CTX_cleanup(&context);
+ EVP_CIPHER_CTX_free(context);
return output_len;
ERROR:
- EVP_CIPHER_CTX_cleanup(&context);
+ EVP_CIPHER_CTX_free(context);
return 0;
}
diff --git a/indra/mac_crash_logger/CMakeLists.txt b/indra/mac_crash_logger/CMakeLists.txt
deleted file mode 100644
index 75621d7b75..0000000000
--- a/indra/mac_crash_logger/CMakeLists.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-# -*- cmake -*-
-
-project(mac_crash_logger)
-
-include(00-Common)
-include(LLCommon)
-include(LLCoreHttp)
-include(LLCrashLogger)
-include(LLMath)
-include(LLMessage)
-include(LLFilesystem)
-include(LLXML)
-include(Linking)
-include(LLSharedLibs)
-include(Boost)
-
-include_directories(
- ${LLCOREHTTP_INCLUDE_DIRS}
- ${LLCOMMON_INCLUDE_DIRS}
- ${LLCRASHLOGGER_INCLUDE_DIRS}
- ${LLMATH_INCLUDE_DIRS}
- ${LLFILESYSTEM_INCLUDE_DIRS}
- ${LLXML_INCLUDE_DIRS}
- )
-include_directories(SYSTEM
- ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
- ${LLXML_SYSTEM_INCLUDE_DIRS}
- )
-
-set(mac_crash_logger_SOURCE_FILES
- mac_crash_logger.cpp
- llcrashloggermac.cpp
- llcrashloggermacdelegate.mm
- )
-
-set(mac_crash_logger_HEADER_FILES
- CMakeLists.txt
-
- llcrashloggermac.h
- llcrashloggermacdelegate.h
- )
-
-set_source_files_properties(${mac_crash_logger_HEADER_FILES}
- PROPERTIES HEADER_FILE_ONLY TRUE)
-list(APPEND mac_crash_logger_SOURCE_FILES ${mac_crash_logger_HEADER_FILES})
-
-set(mac_crash_logger_RESOURCE_FILES
- CrashReporter.nib/
- )
-set_source_files_properties(
- ${mac_crash_logger_RESOURCE_FILES}
- PROPERTIES
- HEADER_FILE_ONLY TRUE
- )
-SOURCE_GROUP("Resources" FILES ${mac_crash_logger_RESOURCE_FILES})
-list(APPEND mac_crash_logger_SOURCE_FILES ${mac_crash_logger_RESOURCE_FILES})
-
-add_executable(mac-crash-logger
- MACOSX_BUNDLE
- ${mac_crash_logger_SOURCE_FILES})
-
-set_target_properties(mac-crash-logger
- PROPERTIES
- MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
- )
-
-find_library(COCOA_LIBRARY Cocoa)
-
-target_link_libraries(mac-crash-logger
- ${LLCRASHLOGGER_LIBRARIES}
- ${LLFILESYSTEM_LIBRARIES}
- ${COCOA_LIBRARIES}
- ${LLXML_LIBRARIES}
- ${LLMESSAGE_LIBRARIES}
- ${LLMATH_LIBRARIES}
- ${LLCOREHTTP_LIBRARIES}
- ${LLCOMMON_LIBRARIES}
- ${BOOST_CONTEXT_LIBRARY}
- ${BOOST_FIBER_LIBRARY}
- )
-
-add_custom_command(
- TARGET mac-crash-logger POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS
- -E
- copy_if_different
- ${CMAKE_CURRENT_SOURCE_DIR}/CrashReporter.nib
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib
- )
-
-ll_deploy_sharedlibs_command(mac-crash-logger)
-
-
diff --git a/indra/mac_crash_logger/CrashReporter.nib b/indra/mac_crash_logger/CrashReporter.nib
deleted file mode 100755
index e9d9e05985..0000000000
Binary files a/indra/mac_crash_logger/CrashReporter.nib and /dev/null differ
diff --git a/indra/mac_crash_logger/CrashReporter.xib b/indra/mac_crash_logger/CrashReporter.xib
deleted file mode 100755
index f6d4776d51..0000000000
--- a/indra/mac_crash_logger/CrashReporter.xib
+++ /dev/null
@@ -1,3895 +0,0 @@
-
-
-
- 1070
- 11G63
- 2182
- 1138.51
- 569.00
-
-
- NSTextField
- NSView
- NSWindowTemplate
- NSMenu
- NSMenuItem
- NSTextFieldCell
- NSButtonCell
- IBNSLayoutConstraint
- NSButton
- NSCustomObject
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
-
-
-
-
-
- LLCrashLoggerMacDelegate
-
-
-
-
-
-
- terminate:
-
-
-
- 449
-
-
-
- orderFrontStandardAboutPanel:
-
-
-
- 142
-
-
-
- delegate
-
-
-
- 495
-
-
-
- performMiniaturize:
-
-
-
- 37
-
-
-
- arrangeInFront:
-
-
-
- 39
-
-
-
- print:
-
-
-
- 86
-
-
-
- runPageLayout:
-
-
-
- 87
-
-
-
- clearRecentDocuments:
-
-
-
- 127
-
-
-
- performClose:
-
-
-
- 193
-
-
-
- toggleContinuousSpellChecking:
-
-
-
- 222
-
-
-
- undo:
-
-
-
- 223
-
-
-
- copy:
-
-
-
- 224
-
-
-
- checkSpelling:
-
-
-
- 225
-
-
-
- paste:
-
-
-
- 226
-
-
-
- stopSpeaking:
-
-
-
- 227
-
-
-
- cut:
-
-
-
- 228
-
-
-
- showGuessPanel:
-
-
-
- 230
-
-
-
- redo:
-
-
-
- 231
-
-
-
- selectAll:
-
-
-
- 232
-
-
-
- startSpeaking:
-
-
-
- 233
-
-
-
- delete:
-
-
-
- 235
-
-
-
- performZoom:
-
-
-
- 240
-
-
-
- performFindPanelAction:
-
-
-
- 241
-
-
-
- centerSelectionInVisibleArea:
-
-
-
- 245
-
-
-
- toggleGrammarChecking:
-
-
-
- 347
-
-
-
- toggleSmartInsertDelete:
-
-
-
- 355
-
-
-
- toggleAutomaticQuoteSubstitution:
-
-
-
- 356
-
-
-
- toggleAutomaticLinkDetection:
-
-
-
- 357
-
-
-
- saveDocument:
-
-
-
- 362
-
-
-
- revertDocumentToSaved:
-
-
-
- 364
-
-
-
- runToolbarCustomizationPalette:
-
-
-
- 365
-
-
-
- toggleToolbarShown:
-
-
-
- 366
-
-
-
- hide:
-
-
-
- 367
-
-
-
- hideOtherApplications:
-
-
-
- 368
-
-
-
- unhideAllApplications:
-
-
-
- 370
-
-
-
- newDocument:
-
-
-
- 373
-
-
-
- openDocument:
-
-
-
- 374
-
-
-
- raiseBaseline:
-
-
-
- 426
-
-
-
- lowerBaseline:
-
-
-
- 427
-
-
-
- copyFont:
-
-
-
- 428
-
-
-
- subscript:
-
-
-
- 429
-
-
-
- superscript:
-
-
-
- 430
-
-
-
- tightenKerning:
-
-
-
- 431
-
-
-
- underline:
-
-
-
- 432
-
-
-
- orderFrontColorPanel:
-
-
-
- 433
-
-
-
- useAllLigatures:
-
-
-
- 434
-
-
-
- loosenKerning:
-
-
-
- 435
-
-
-
- pasteFont:
-
-
-
- 436
-
-
-
- unscript:
-
-
-
- 437
-
-
-
- useStandardKerning:
-
-
-
- 438
-
-
-
- useStandardLigatures:
-
-
-
- 439
-
-
-
- turnOffLigatures:
-
-
-
- 440
-
-
-
- turnOffKerning:
-
-
-
- 441
-
-
-
- toggleAutomaticSpellingCorrection:
-
-
-
- 456
-
-
-
- orderFrontSubstitutionsPanel:
-
-
-
- 458
-
-
-
- toggleAutomaticDashSubstitution:
-
-
-
- 461
-
-
-
- toggleAutomaticTextReplacement:
-
-
-
- 463
-
-
-
- uppercaseWord:
-
-
-
- 464
-
-
-
- capitalizeWord:
-
-
-
- 467
-
-
-
- lowercaseWord:
-
-
-
- 468
-
-
-
- pasteAsPlainText:
-
-
-
- 486
-
-
-
- performFindPanelAction:
-
-
-
- 487
-
-
-
- performFindPanelAction:
-
-
-
- 488
-
-
-
- performFindPanelAction:
-
-
-
- 489
-
-
-
- showHelp:
-
-
-
- 493
-
-
-
- alignCenter:
-
-
-
- 518
-
-
-
- pasteRuler:
-
-
-
- 519
-
-
-
- toggleRuler:
-
-
-
- 520
-
-
-
- alignRight:
-
-
-
- 521
-
-
-
- copyRuler:
-
-
-
- 522
-
-
-
- alignJustified:
-
-
-
- 523
-
-
-
- alignLeft:
-
-
-
- 524
-
-
-
- makeBaseWritingDirectionNatural:
-
-
-
- 525
-
-
-
- makeBaseWritingDirectionLeftToRight:
-
-
-
- 526
-
-
-
- makeBaseWritingDirectionRightToLeft:
-
-
-
- 527
-
-
-
- makeTextWritingDirectionNatural:
-
-
-
- 528
-
-
-
- makeTextWritingDirectionLeftToRight:
-
-
-
- 529
-
-
-
- makeTextWritingDirectionRightToLeft:
-
-
-
- 530
-
-
-
- performFindPanelAction:
-
-
-
- 535
-
-
-
- window
-
-
-
- 532
-
-
-
- remember:
-
-
-
- 1176
-
-
-
- send:
-
-
-
- 1177
-
-
-
- cancel:
-
-
-
- 1178
-
-
-
- crashText
-
-
-
- 1179
-
-
-
- rememberCheck
-
-
-
- 1187
-
-
-
-
-
- 0
-
-
-
-
-
- -2
-
-
- File's Owner
-
-
- -1
-
-
- First Responder
-
-
- -3
-
-
- Application
-
-
- 29
-
-
-
-
-
-
-
-
-
-
-
-
-
- 19
-
-
-
-
-
-
-
- 56
-
-
-
-
-
-
-
- 217
-
-
-
-
-
-
-
- 83
-
-
-
-
-
-
-
- 81
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 75
-
-
-
-
- 78
-
-
-
-
- 72
-
-
-
-
- 82
-
-
-
-
- 124
-
-
-
-
-
-
-
- 77
-
-
-
-
- 73
-
-
-
-
- 79
-
-
-
-
- 112
-
-
-
-
- 74
-
-
-
-
- 125
-
-
-
-
-
-
-
- 126
-
-
-
-
- 205
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 202
-
-
-
-
- 198
-
-
-
-
- 207
-
-
-
-
- 214
-
-
-
-
- 199
-
-
-
-
- 203
-
-
-
-
- 197
-
-
-
-
- 206
-
-
-
-
- 215
-
-
-
-
- 218
-
-
-
-
-
-
-
- 216
-
-
-
-
-
-
-
- 200
-
-
-
-
-
-
-
-
-
-
-
-
- 219
-
-
-
-
- 201
-
-
-
-
- 204
-
-
-
-
- 220
-
-
-
-
-
-
-
-
-
-
-
-
- 213
-
-
-
-
- 210
-
-
-
-
- 221
-
-
-
-
- 208
-
-
-
-
- 209
-
-
-
-
- 57
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 58
-
-
-
-
- 134
-
-
-
-
- 150
-
-
-
-
- 136
-
-
-
-
- 144
-
-
-
-
- 129
-
-
-
-
- 143
-
-
-
-
- 236
-
-
-
-
- 131
-
-
-
-
-
-
-
- 149
-
-
-
-
- 145
-
-
-
-
- 130
-
-
-
-
- 24
-
-
-
-
-
-
-
-
-
-
- 92
-
-
-
-
- 5
-
-
-
-
- 239
-
-
-
-
- 23
-
-
-
-
- 295
-
-
-
-
-
-
-
- 296
-
-
-
-
-
-
-
-
- 297
-
-
-
-
- 298
-
-
-
-
- 211
-
-
-
-
-
-
-
- 212
-
-
-
-
-
-
-
-
- 195
-
-
-
-
- 196
-
-
-
-
- 346
-
-
-
-
- 348
-
-
-
-
-
-
-
- 349
-
-
-
-
-
-
-
-
-
-
-
-
-
- 350
-
-
-
-
- 351
-
-
-
-
- 354
-
-
-
-
- 371
-
-
-
-
-
-
-
- 372
-
-
-
-
-
-
-
- 3
- 0
-
- 3
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
- 4
- 0
-
- 4
- 1
-
- 64
-
- 1000
- 3
- 9
- 3
-
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
- 8
- 29
- 3
-
-
-
-
- 4
- 0
-
- 4
- 1
-
- 21
-
- 1000
- 3
- 9
- 3
-
-
-
-
- 6
- 0
-
- 6
- 1
-
- 132
-
- 1000
- 3
- 9
- 3
-
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
- 6
- 24
- 2
-
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
- 6
- 24
- 2
-
-
-
-
-
-
- 375
-
-
-
-
-
-
-
- 376
-
-
-
-
-
-
-
-
- 377
-
-
-
-
-
-
-
- 388
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 389
-
-
-
-
- 390
-
-
-
-
- 391
-
-
-
-
- 392
-
-
-
-
- 393
-
-
-
-
- 394
-
-
-
-
- 395
-
-
-
-
- 396
-
-
-
-
- 397
-
-
-
-
-
-
-
- 398
-
-
-
-
-
-
-
- 399
-
-
-
-
-
-
-
- 400
-
-
-
-
- 401
-
-
-
-
- 402
-
-
-
-
- 403
-
-
-
-
- 404
-
-
-
-
- 405
-
-
-
-
-
-
-
-
-
-
-
- 406
-
-
-
-
- 407
-
-
-
-
- 408
-
-
-
-
- 409
-
-
-
-
- 410
-
-
-
-
- 411
-
-
-
-
-
-
-
-
-
- 412
-
-
-
-
- 413
-
-
-
-
- 414
-
-
-
-
- 415
-
-
-
-
-
-
-
-
-
-
- 416
-
-
-
-
- 417
-
-
-
-
- 418
-
-
-
-
- 419
-
-
-
-
- 450
-
-
-
-
-
-
-
- 451
-
-
-
-
-
-
-
-
-
- 452
-
-
-
-
- 453
-
-
-
-
- 454
-
-
-
-
- 457
-
-
-
-
- 459
-
-
-
-
- 460
-
-
-
-
- 462
-
-
-
-
- 465
-
-
-
-
- 466
-
-
-
-
- 485
-
-
-
-
- 490
-
-
-
-
-
-
-
- 491
-
-
-
-
-
-
-
- 492
-
-
-
-
- 494
-
-
-
-
- 496
-
-
-
-
-
-
-
- 497
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 498
-
-
-
-
- 499
-
-
-
-
- 500
-
-
-
-
- 501
-
-
-
-
- 502
-
-
-
-
- 503
-
-
-
-
-
-
-
- 504
-
-
-
-
- 505
-
-
-
-
- 506
-
-
-
-
- 507
-
-
-
-
- 508
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 509
-
-
-
-
- 510
-
-
-
-
- 511
-
-
-
-
- 512
-
-
-
-
- 513
-
-
-
-
- 514
-
-
-
-
- 515
-
-
-
-
- 516
-
-
-
-
- 517
-
-
-
-
- 534
-
-
-
-
- 536
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 229
-
- 1000
- 3
- 9
- 1
-
-
-
-
-
-
- 537
-
-
-
-
- 593
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 163
-
- 1000
- 3
- 9
- 1
-
-
-
-
-
-
- 594
-
-
-
-
- 727
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 183
-
- 1000
- 3
- 9
- 1
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 22
-
- 1000
- 3
- 9
- 1
-
-
-
-
-
-
- 728
-
-
-
-
- 775
-
-
-
-
-
-
-
- 776
-
-
-
-
- 780
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 100
-
- 1000
- 3
- 9
- 1
-
-
-
-
-
-
- 781
-
-
-
-
- 884
-
-
-
-
- 981
-
-
-
-
- 982
-
-
-
-
- 1022
-
-
-
-
- 1026
-
-
-
-
- 979
-
-
-
-
- 985
-
-
-
-
- 977
-
-
-
-
- 1099
-
-
-
-
- 1093
-
-
-
-
- 1100
-
-
-
-
- 1098
-
-
-
-
- 1168
-
-
-
-
- 1167
-
-
-
-
- 1095
-
-
-
-
- 1166
-
-
-
-
- 1076
-
-
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{380, 496}, {480, 360}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
-
- 1187
-
-
-
-
- LLCrashLoggerMacDelegate
- NSObject
-
- id
- id
- id
-
-
-
- cancel:
- id
-
-
- remember:
- id
-
-
- send:
- id
-
-
-
- NSTextField
- NSButton
- NSWindow
-
-
-
- crashText
- NSTextField
-
-
- rememberCheck
- NSButton
-
-
- window
- NSWindow
-
-
-
- IBProjectSource
- ./Classes/LLCrashLoggerMacDelegate.h
-
-
-
- NSLayoutConstraint
- NSObject
-
- IBProjectSource
- ./Classes/NSLayoutConstraint.h
-
-
-
-
- 0
- IBCocoaFramework
-
- com.apple.InterfaceBuilder.CocoaPlugin.macosx
-
-
- YES
- 3
-
- {11, 11}
- {10, 3}
- {15, 15}
-
- YES
-
-
diff --git a/indra/mac_crash_logger/Info.plist b/indra/mac_crash_logger/Info.plist
deleted file mode 100644
index 2ebed11c3f..0000000000
--- a/indra/mac_crash_logger/Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- mac-crash-logger
- CFBundleGetInfoString
-
- CFBundleIconFile
-
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
-
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0.0
- NSMainNibFile
- CrashReporter
- NSPrincipalClass
- NSApplication
-
-
diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp
deleted file mode 100644
index ec3616e26a..0000000000
--- a/indra/mac_crash_logger/llcrashloggermac.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * @file llcrashloggermac.cpp
- * @brief Mac OSX crash logger implementation
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-
-#include "llcrashloggermac.h"
-
-#include
-
-#include "indra_constants.h" // CRASH_BEHAVIOR_ASK, CRASH_SETTING_NAME
-#include "llerror.h"
-#include "llfile.h"
-#include "lltimer.h"
-#include "llstring.h"
-#include "lldir.h"
-#include "llsdserialize.h"
-
-// Windows Message Handlers
-
-BOOL gFirstDialog = TRUE;
-LLFILE *gDebugFile = NULL;
-
-std::string gUserNotes = "";
-bool gSendReport = false;
-bool gRememberChoice = false;
-
-LLCrashLoggerMac::LLCrashLoggerMac(void)
-{
-}
-
-LLCrashLoggerMac::~LLCrashLoggerMac(void)
-{
-}
-
-bool LLCrashLoggerMac::init(void)
-{
- bool ok = LLCrashLogger::init();
- return ok;
-}
-
-void LLCrashLoggerMac::gatherPlatformSpecificFiles()
-{
-}
-
-bool LLCrashLoggerMac::frame()
-{
-
- if (mCrashBehavior == CRASH_BEHAVIOR_ALWAYS_SEND)
- {
- gSendReport = true;
- }
-
- if(gSendReport)
- {
- setUserText(gUserNotes);
- sendCrashLogs();
- }
-
- LL_INFOS() << "Sending of logs complete" << LL_ENDL;
-
- return true;
-}
-
-bool LLCrashLoggerMac::cleanup()
-{
- commonCleanup();
- mKeyMaster.releaseMaster();
- return true;
-}
diff --git a/indra/mac_crash_logger/llcrashloggermac.h b/indra/mac_crash_logger/llcrashloggermac.h
deleted file mode 100644
index 05ef8c9f53..0000000000
--- a/indra/mac_crash_logger/llcrashloggermac.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * @file llcrashloggermac.h
- * @brief Mac OSX crash logger definition
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-#ifndef LLCRASHLOGGERMAC_H
-#define LLCRASHLOGGERMAC_H
-
-#include "linden_common.h"
-#include "llcrashlogger.h"
-#include "llstring.h"
-
-class LLCrashLoggerMac : public LLCrashLogger
-{
-public:
- LLCrashLoggerMac(void);
- ~LLCrashLoggerMac(void);
- virtual bool init();
- virtual bool frame();
- virtual bool cleanup();
- virtual void gatherPlatformSpecificFiles();
-};
-
-#endif
diff --git a/indra/mac_crash_logger/llcrashloggermacdelegate.h b/indra/mac_crash_logger/llcrashloggermacdelegate.h
deleted file mode 100644
index c998a8efe2..0000000000
--- a/indra/mac_crash_logger/llcrashloggermacdelegate.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * @file llcrashloggermacdelegate.h
- * @brief Mac OSX crash logger implementation
- *
- * $LicenseInfo:firstyear=2003&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
-
-@interface LLCrashLoggerMacDelegate : NSObject
-{
- IBOutlet NSTextField *crashText;
- IBOutlet NSButton *rememberCheck;
-
- NSWindow *_window;
- bool mRemember;
-
-}
-
-- (void)setWindow:(NSWindow *)newWindow;
-- (NSWindow *)window;
-
-- (IBAction)remember:(id)sender;
-- (IBAction)send:(id)sender;
-- (IBAction)cancel:(id)sender;
-
-@property (assign) IBOutlet NSWindow *window;
-
-@end
-*/
-
-
diff --git a/indra/mac_crash_logger/llcrashloggermacdelegate.mm b/indra/mac_crash_logger/llcrashloggermacdelegate.mm
deleted file mode 100644
index b2af76a47c..0000000000
--- a/indra/mac_crash_logger/llcrashloggermacdelegate.mm
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * @file llcrashloggermacdelegate.mm
- * @brief Mac OSX crash logger implementation
- *
- * $LicenseInfo:firstyear=2003&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 "llcrashloggermacdelegate.h"
-#include
-
-extern std::string gUserNotes;
-extern bool gSendReport;
-extern bool gRememberChoice;
-
-@implementation LLCrashLoggerMacDelegate
-
-- (void)setWindow:(NSWindow *)window
-{
- _window = window;
-}
-
-- (NSWindow *)window
-{
- return _window;
-}
-
-- (void)dealloc
-{
- [super dealloc];
-}
-
-std::string* NSToString( NSString *ns_str )
-{
- return ( new std::string([ns_str UTF8String]) );
-}
-
-- (IBAction)remember:(id)sender
-{
- gRememberChoice = [rememberCheck state];
-}
-
-- (IBAction)send:(id)sender
-{
- std::string* user_input = NSToString([crashText stringValue]);
- gUserNotes = *user_input;
- gSendReport = true;
-}
-
-- (IBAction)cancel:(id)sender
-{
- [ _window close];
-}
-@end
-*/
\ No newline at end of file
diff --git a/indra/mac_crash_logger/mac_crash_logger.cpp b/indra/mac_crash_logger/mac_crash_logger.cpp
deleted file mode 100644
index 66d8cfa590..0000000000
--- a/indra/mac_crash_logger/mac_crash_logger.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * @file mac_crash_logger.cpp
- * @brief Mac OSX crash logger implementation
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-#include "linden_common.h"
-#include "llcrashloggermac.h"
-#include "indra_constants.h"
-
-#include
-
-int main(int argc, char **argv)
-{
- LLCrashLoggerMac app;
- app.parseCommandOptions(argc, argv);
-
- LLSD options = LLApp::instance()->getOptionData(
- LLApp::PRIORITY_COMMAND_LINE);
-
- if (! app.init())
- {
- LL_WARNS() << "Unable to initialize application." << LL_ENDL;
- return 1;
- }
-
- if (app.getCrashBehavior() != CRASH_BEHAVIOR_ALWAYS_SEND)
- {
-// return NSApplicationMain(argc, (const char **)argv);
- }
- app.frame();
- app.cleanup();
-
- LL_INFOS() << "Crash reporter finished normally." << LL_ENDL;
-
- return 0;
-}
diff --git a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
index f7d35b33c2..5d4a488e64 100644
--- a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
+++ b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
@@ -34,6 +34,11 @@
#include "llpluginmessageclasses.h"
#include "media_plugin_base.h"
+#if defined(_MSC_VER)
+#include
+typedef SSIZE_T ssize_t;
+#endif
+
#include "vlc/vlc.h"
#include "vlc/libvlc_version.h"
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 26bb56b234..8f12256793 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1835,10 +1835,6 @@ if (WINDOWS)
${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt
${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt
- ${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll
- ${ARCH_PREBUILT_DIRS_RELEASE}/ssleay32.dll
- ${ARCH_PREBUILT_DIRS_DEBUG}/libeay32.dll
- ${ARCH_PREBUILT_DIRS_DEBUG}/ssleay32.dll
${viewer_APPSETTINGS_FILES}
SLPlugin
media_plugin_cef
@@ -1855,11 +1851,15 @@ if (WINDOWS)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk_x64.dll
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp_x64.dll
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto-1_1-x64.dll
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libssl-1_1-x64.dll
)
else (ADDRESS_SIZE EQUAL 64)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk.dll
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp.dll
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto-1_1.dll
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libssl-1_1.dll
)
endif (ADDRESS_SIZE EQUAL 64)
@@ -1913,11 +1913,9 @@ if (WINDOWS)
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
- add_dependencies(${VIEWER_BINARY_NAME} SLPlugin)
-
- if (NOT USE_BUGSPLAT)
- add_dependencies(${VIEWER_BINARY_NAME} windows-crash-logger)
- endif (NOT USE_BUGSPLAT)
+ add_dependencies(${VIEWER_BINARY_NAME}
+ SLPlugin
+ )
# sets the 'working directory' for debugging from visual studio.
# Condition for version can be moved to requirements once build agents will be updated (see TOOL-3865)
@@ -2226,10 +2224,6 @@ if (DARWIN)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_libvlc media_plugin_cef)
- if (NOT USE_BUGSPLAT)
- add_dependencies(${VIEWER_BINARY_NAME} mac-crash-logger)
- endif (NOT USE_BUGSPLAT)
-
if (ENABLE_SIGNING)
set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")
else (ENABLE_SIGNING)
@@ -2271,62 +2265,7 @@ endif (INSTALL)
# Note that the conventional VIEWER_SYMBOL_FILE is set by ../../build.sh
if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIEWER_SYMBOL_FILE)
- if (NOT USE_BUGSPLAT)
- # Breakpad symbol-file generation
- set(SYMBOL_SEARCH_DIRS "")
- if (WINDOWS)
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
- # slplugin.exe failing symbols dump - need to debug, might have to do with updated version of google breakpad
- # set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX} slplugin.exe")
- set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
- set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}")
- set(VIEWER_COPY_MANIFEST copy_w_viewer_manifest)
- endif (WINDOWS)
- if (DARWIN)
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
- # *TODO: Generate these search dirs in the cmake files related to each binary.
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/llplugin/slplugin/${CMAKE_CFG_INTDIR}")
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/mac_crash_logger/${CMAKE_CFG_INTDIR}")
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/gstreamer010/${CMAKE_CFG_INTDIR}")
- set(VIEWER_EXE_GLOBS "'${product}' SLPlugin")
- set(VIEWER_EXE_GLOBS "'${product}' mac-crash-logger")
- set(VIEWER_LIB_GLOB "*.dylib")
- endif (DARWIN)
- if (LINUX)
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/packaged")
- set(VIEWER_EXE_GLOBS "do-not-directly-run-secondlife-bin SLPlugin")
- set(VIEWER_EXE_GLOBS "do-not-directly-run-secondlife-bin")
- set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}*")
- set(VIEWER_COPY_MANIFEST copy_l_viewer_manifest)
- endif (LINUX)
-
- if(CMAKE_CFG_INTDIR STREQUAL ".")
- set(LLBUILD_CONFIG ${CMAKE_BUILD_TYPE})
- else(CMAKE_CFG_INTDIR STREQUAL ".")
- # set LLBUILD_CONFIG to be a shell variable evaluated at build time
- # reflecting the configuration we are currently building.
- set(LLBUILD_CONFIG ${CMAKE_CFG_INTDIR})
- endif(CMAKE_CFG_INTDIR STREQUAL ".")
- add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}"
- COMMAND "${PYTHON_EXECUTABLE}"
- ARGS
- "${CMAKE_CURRENT_SOURCE_DIR}/generate_breakpad_symbols.py"
- "${LLBUILD_CONFIG}"
- "${SYMBOL_SEARCH_DIRS}"
- "${VIEWER_EXE_GLOBS}"
- "${VIEWER_LIB_GLOB}"
- "${AUTOBUILD_INSTALL_DIR}/bin/dump_syms"
- "${VIEWER_SYMBOL_FILE}"
- DEPENDS generate_breakpad_symbols.py
- VERBATIM)
-
- add_custom_target(generate_symbols DEPENDS "${VIEWER_SYMBOL_FILE}" ${VIEWER_BINARY_NAME} "${VIEWER_COPY_MANIFEST}")
- add_dependencies(generate_symbols ${VIEWER_BINARY_NAME})
- if (WINDOWS OR LINUX)
- add_dependencies(generate_symbols "${VIEWER_COPY_MANIFEST}")
- endif (WINDOWS OR LINUX)
-
- else (NOT USE_BUGSPLAT)
+ if (BUGSPLAT_DB)
# BugSplat symbol-file generation
if (WINDOWS)
# Just pack up a tarball containing only the .pdb file for the
@@ -2410,7 +2349,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE
if (LINUX)
# TBD
endif (LINUX)
- endif (NOT USE_BUGSPLAT)
+ endif (BUGSPLAT_DB)
# for both Bugsplat and Breakpad
add_dependencies(llpackage generate_symbols)
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 4c8366c864..f186cd8874 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-6.4.23
+6.4.24
diff --git a/indra/newview/generate_breakpad_symbols.py b/indra/newview/generate_breakpad_symbols.py
deleted file mode 100755
index d351c406bc..0000000000
--- a/indra/newview/generate_breakpad_symbols.py
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/env python
-"""\
-@file generate_breakpad_symbols.py
-@author Brad Kittenbrink
-@brief Simple tool for generating google_breakpad symbol information
- for the crash reporter.
-
-$LicenseInfo:firstyear=2010&license=viewerlgpl$
-Second Life Viewer Source Code
-Copyright (C) 2010-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 collections
-import fnmatch
-import itertools
-import os
-import re
-import sys
-import shlex
-import subprocess
-import tarfile
-import StringIO
-import pprint
-
-DEBUG=False
-
-def usage():
- print >>sys.stderr, "usage: %s search_dirs viewer_exes libs_suffix dump_syms_tool viewer_symbol_file" % sys.argv[0]
-
-class MissingModuleError(Exception):
- def __init__(self, modules):
- Exception.__init__(self, "Failed to find required modules: %r" % modules)
- self.modules = modules
-
-def main(configuration, search_dirs, viewer_exes, libs_suffix, dump_syms_tool, viewer_symbol_file):
- print "generate_breakpad_symbols run with args: %s" % str((configuration, search_dirs, viewer_exes, libs_suffix, dump_syms_tool, viewer_symbol_file))
-
- if not re.match("release", configuration, re.IGNORECASE):
- print "skipping breakpad symbol generation for non-release build."
- return 0
-
- # split up list of viewer_exes
- # "'Second Life' SLPlugin" becomes ['Second Life', 'SLPlugin']
- viewer_exes = shlex.split(viewer_exes)
-
- found_required = dict([(module, False) for module in viewer_exes])
-
- def matches(f):
- if f in viewer_exes:
- found_required[f] = True
- return True
- return fnmatch.fnmatch(f, libs_suffix)
-
- search_dirs = search_dirs.split(";")
-
- def list_files():
- for search_dir in search_dirs:
- for (dirname, subdirs, filenames) in os.walk(search_dir):
- if DEBUG:
- print "scanning '%s' for modules..." % dirname
- for f in itertools.ifilter(matches, filenames):
- yield os.path.join(dirname, f)
-
- def dump_module(m):
- print "dumping module '%s' with '%s'..." % (m, dump_syms_tool)
- dsym_full_path = m
- child = subprocess.Popen([dump_syms_tool, dsym_full_path] , stdout=subprocess.PIPE)
- out, err = child.communicate()
- return (m,child.returncode, out, err)
-
-
- modules = {}
-
- for m in list_files():
- if DEBUG:
- print "examining module '%s' ... " % m,
- filename=os.path.basename(m)
- if -1 != m.find("DWARF"):
- # Just use this module; it has the symbols we want.
- modules[filename] = m
- if DEBUG:
- print "found dSYM entry"
- elif filename not in modules:
- # Only use this if we don't already have a (possibly better) entry.
- modules[filename] = m
- if DEBUG:
- print "found new entry"
- elif DEBUG:
- print "ignoring entry"
-
-
- print "Found these following modules:"
- pprint.pprint( modules )
-
- out = tarfile.open(viewer_symbol_file, 'w:bz2')
- for (filename,status,symbols,err) in itertools.imap(dump_module, modules.values()):
- if status == 0:
- module_line = symbols[:symbols.index('\n')]
- module_line = module_line.split()
- hash_id = module_line[3]
- module = ' '.join(module_line[4:])
- if sys.platform in ['win32', 'cygwin']:
- mod_name = module[:module.rindex('.pdb')]
- else:
- mod_name = module
- symbolfile = StringIO.StringIO(symbols)
- info = tarfile.TarInfo("%(module)s/%(hash_id)s/%(mod_name)s.sym" % dict(module=module, hash_id=hash_id, mod_name=mod_name))
- info.size = symbolfile.len
- out.addfile(info, symbolfile)
- else:
- print >>sys.stderr, "warning: failed to dump symbols for '%s': %s" % (filename, err)
-
- out.close()
-
- missing_modules = [m for (m,_) in
- itertools.ifilter(lambda (k,v): not v, found_required.iteritems())
- ]
- if missing_modules:
- print >> sys.stderr, "failed to generate %s" % viewer_symbol_file
- os.remove(viewer_symbol_file)
- raise MissingModuleError(missing_modules)
-
- symbols = tarfile.open(viewer_symbol_file, 'r:bz2')
- tarfile_members = symbols.getnames()
- symbols.close()
-
- for required_module in viewer_exes:
- def match_module_basename(m):
- return os.path.splitext(required_module)[0].lower() \
- == os.path.splitext(os.path.basename(m))[0].lower()
- # there must be at least one .sym file in tarfile_members that matches
- # each required module (ignoring file extensions)
- if not any(itertools.imap(match_module_basename, tarfile_members)):
- print >> sys.stderr, "failed to find required %s in generated %s" \
- % (required_module, viewer_symbol_file)
- os.remove(viewer_symbol_file)
- raise MissingModuleError([required_module])
-
- print "successfully generated %s including required modules '%s'" % (viewer_symbol_file, viewer_exes)
-
- return 0
-
-if __name__ == "__main__":
- if len(sys.argv) != 7:
- usage()
- sys.exit(1)
- sys.exit(main(*sys.argv[1:]))
-
diff --git a/indra/newview/installers/darwin/apple-notarize.sh b/indra/newview/installers/darwin/apple-notarize.sh
new file mode 100755
index 0000000000..466898ecda
--- /dev/null
+++ b/indra/newview/installers/darwin/apple-notarize.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+if [[ $SKIP_NOTARIZATION == "true" ]]; then
+ echo "Skipping notarization"
+ exit 0
+fi
+
+CONFIG_FILE="$build_secrets_checkout/code-signing-osx/notarize_creds.sh"
+if [ -f "$CONFIG_FILE" ]; then
+ source $CONFIG_FILE
+ app_file="$1"
+ zip_file=${app_file/app/zip}
+ ditto -c -k --keepParent "$app_file" "$zip_file"
+ if [ -f "$zip_file" ]; then
+ res=$(xcrun altool --notarize-app --primary-bundle-id "com.secondlife.viewer" \
+ --username $USERNAME \
+ --password $PASSWORD \
+ --asc-provider $ASC_PROVIDER \
+ --file "$zip_file" 2>&1)
+ requestUUID=$(echo $res | awk '/RequestUUID/ { print $NF; }')
+
+ echo "Apple Notarization RequestUUID: $requestUUID"
+
+ if [[ -n $requestUUID ]]; then
+ status="in progress"
+ while [[ "$status" == "in progress" ]]; do
+ sleep 30
+ status=$(xcrun altool --notarization-info "$requestUUID" \
+ --username $USERNAME \
+ --password $PASSWORD 2>&1 \
+ | awk -F ': ' '/Status:/ { print $2; }' )
+ echo "$status"
+ done
+ # log results
+ xcrun altool --notarization-info "$requestUUID" \
+ --username $USERNAME \
+ --password $PASSWORD
+
+ #remove temporary file
+ rm "$zip_file"
+
+ if [["$status" == "success"]]; then
+ xcrun stapler staple "$app_file"
+ elif [["$status" == "invalid"]]; then
+ echo "Notarization error: failed to process the app file"
+ exit 1
+ fi
+ else
+ echo "Notarization error: couldn't get request UUID"
+ echo $res
+ exit 1
+ fi
+ fi
+fi
+
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 298b2ebbe9..68e0a910aa 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -730,7 +730,7 @@ LLAppViewer::LLAppViewer()
std::string logdir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "");
# endif // ! LL_BUGSPLAT
mDumpPath = logdir;
- setMiniDumpDir(logdir);
+
setDebugFileNames(logdir);
}
@@ -1977,7 +1977,9 @@ bool LLAppViewer::cleanup()
if (LLConversationLog::instanceExists())
{
LLConversationLog::instance().cache();
- }
+ }
+
+ clearSecHandler();
if (mPurgeCacheOnExit)
{
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index 4414fa285b..0f06889d20 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -111,7 +111,6 @@ public:
virtual bool restoreErrorTrap() = 0; // Require platform specific override to reset error handling mechanism.
// return false if the error trap needed restoration.
- virtual void initCrashReporting(bool reportFreeze = false) = 0; // What to do with crash report?
static void handleViewerCrash(); // Hey! The viewer crashed. Do this, soon.
void checkForCrash();
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 42946e4415..aa932f9c89 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -222,14 +222,7 @@ LLAppViewerMacOSX::~LLAppViewerMacOSX()
bool LLAppViewerMacOSX::init()
{
- bool success = LLAppViewer::init();
-
- if (success)
- {
- LLAppViewer* pApp = LLAppViewer::instance();
- pApp->initCrashReporting();
- }
- return success;
+ return LLAppViewer::init();
}
// MacOSX may add and addition command line arguement for the process serial number.
@@ -347,28 +340,6 @@ bool LLAppViewerMacOSX::restoreErrorTrap()
return reset_count == 0;
}
-void LLAppViewerMacOSX::initCrashReporting(bool reportFreeze)
-{
-#if defined LL_BUGSPLAT
- LL_DEBUGS("InitOSX", "Bugsplat") << "using BugSplat crash logger" << LL_ENDL;
-#elif LL_SEND_CRASH_REPORTS
- LL_DEBUGS("InitOSX") << "Initializing legacy crash logger" << LL_ENDL;
- std::string command_str = "mac-crash-logger.app";
-
- std::stringstream pid_str;
- pid_str << LLApp::getPid();
- std::string logdir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "");
- std::string appname = gDirUtilp->getExecutableFilename();
- std::string str[] = { "-pid", pid_str.str(), "-dumpdir", logdir, "-procname", appname.c_str() };
- std::vector< std::string > args( str, str + ( sizeof ( str ) / sizeof ( std::string ) ) );
- LL_WARNS() << "about to launch mac-crash-logger" << pid_str.str()
- << " " << logdir << " " << appname << LL_ENDL;
- launchApplication(&command_str, &args);
-#else
- LL_DEBUGS("InitOSX") << "No crash logger enabled" << LL_ENDL;
-#endif // ! LL_BUGSPLAT
-}
-
std::string LLAppViewerMacOSX::generateSerialNumber()
{
char serial_md5[MD5HEX_STR_SIZE]; // Flawfinder: ignore
diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h
index d5a80864be..b0e325a955 100644
--- a/indra/newview/llappviewermacosx.h
+++ b/indra/newview/llappviewermacosx.h
@@ -44,7 +44,6 @@ public:
protected:
virtual bool restoreErrorTrap();
- virtual void initCrashReporting(bool reportFreeze);
std::string generateSerialNumber();
virtual bool initParseCommandLine(LLCommandLineParser& clp);
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index a77ff6433d..4584d35ff6 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -599,9 +599,6 @@ bool LLAppViewerWin32::init()
#if ! defined(LL_BUGSPLAT)
#pragma message("Building without BugSplat")
- LLAppViewer* pApp = LLAppViewer::instance();
- pApp->initCrashReporting();
-
#else // LL_BUGSPLAT
#pragma message("Building with BugSplat")
@@ -846,57 +843,6 @@ bool LLAppViewerWin32::restoreErrorTrap()
return true; // we don't check for handler collisions on windows, so just say they're ok
}
-void LLAppViewerWin32::initCrashReporting(bool reportFreeze)
-{
- if (isSecondInstance()) return; //BUG-5707 do not start another crash reporter for second instance.
-
- const char* logger_name = "win_crash_logger.exe";
- std::string exe_path = gDirUtilp->getExecutableDir();
- exe_path += gDirUtilp->getDirDelimiter();
- exe_path += logger_name;
-
- std::string logdir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "");
- std::string appname = gDirUtilp->getExecutableFilename();
-
- S32 slen = logdir.length() -1;
- S32 end = slen;
- while (logdir.at(end) == '/' || logdir.at(end) == '\\') end--;
-
- if (slen !=end)
- {
- logdir = logdir.substr(0,end+1);
- }
- //std::string arg_str = "\"" + exe_path + "\" -dumpdir \"" + logdir + "\" -procname \"" + appname + "\" -pid " + stringize(LLApp::getPid());
- //_spawnl(_P_NOWAIT, exe_path.c_str(), arg_str.c_str(), NULL);
- std::string arg_str = "\"" + exe_path + "\" -dumpdir \"" + logdir + "\" -procname \"" + appname + "\" -pid " + stringize(LLApp::getPid());
-
- STARTUPINFO startInfo={sizeof(startInfo)};
- PROCESS_INFORMATION processInfo;
-
- std::wstring exe_wstr;
- exe_wstr = utf8str_to_utf16str(exe_path);
-
- std::wstring arg_wstr;
- arg_wstr = utf8str_to_utf16str(arg_str);
-
- LL_INFOS("CrashReport") << "Creating crash reporter process " << exe_path << " with params: " << arg_str << LL_ENDL;
- if(CreateProcess(exe_wstr.c_str(),
- &arg_wstr[0], // Application arguments
- 0,
- 0,
- FALSE,
- CREATE_DEFAULT_ERROR_MODE,
- 0,
- 0, // Working directory
- &startInfo,
- &processInfo) == FALSE)
- // Could not start application -> call 'GetLastError()'
- {
- LL_WARNS("CrashReport") << "CreateProcess failed " << GetLastError() << LL_ENDL;
- return;
- }
-}
-
//virtual
bool LLAppViewerWin32::sendURLToOtherInstance(const std::string& url)
{
diff --git a/indra/newview/llappviewerwin32.h b/indra/newview/llappviewerwin32.h
index 83ae875a15..82b6b0c77c 100644
--- a/indra/newview/llappviewerwin32.h
+++ b/indra/newview/llappviewerwin32.h
@@ -51,9 +51,8 @@ protected:
bool initHardwareTest() override; // Win32 uses DX9 to test hardware.
bool initParseCommandLine(LLCommandLineParser& clp) override;
- bool beingDebugged() override;
- bool restoreErrorTrap() override;
- void initCrashReporting(bool reportFreeze) override;
+ virtual bool beingDebugged();
+ virtual bool restoreErrorTrap();
bool sendURLToOtherInstance(const std::string& url) override;
diff --git a/indra/newview/llsecapi.cpp b/indra/newview/llsecapi.cpp
index b9259cb18d..aba8ca5a4a 100644
--- a/indra/newview/llsecapi.cpp
+++ b/indra/newview/llsecapi.cpp
@@ -75,6 +75,12 @@ void initializeSecHandler()
}
}
+
+void clearSecHandler()
+{
+ gSecAPIHandler = NULL;
+ gHandlerMap.clear();
+}
// start using a given security api handler. If the string is empty
// the default is used
LLPointer getSecHandler(const std::string& handler_type)
diff --git a/indra/newview/llsecapi.h b/indra/newview/llsecapi.h
index 14059f828a..410737b27f 100644
--- a/indra/newview/llsecapi.h
+++ b/indra/newview/llsecapi.h
@@ -452,7 +452,7 @@ public:
virtual LLPointer getCertificate(X509* openssl_cert)=0;
// instantiate a chain from an X509_STORE_CTX
- virtual LLPointer getCertificateChain(const X509_STORE_CTX* chain)=0;
+ virtual LLPointer getCertificateChain(X509_STORE_CTX* chain)=0;
// instantiate a cert store given it's id. if a persisted version
// exists, it'll be loaded. If not, one will be created (but not
@@ -533,6 +533,8 @@ public:
};
void initializeSecHandler();
+
+void clearSecHandler();
// retrieve a security api depending on the api type
LLPointer getSecHandler(const std::string& handler_type);
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 19db020a31..b4853d270a 100644
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -95,7 +95,7 @@ LLBasicCertificate::LLBasicCertificate(const std::string& pem_cert,
LLBasicCertificate::LLBasicCertificate(X509* pCert,
const LLSD* validation_params)
{
- if (!pCert || !pCert->cert_info)
+ if (!pCert)
{
LLTHROW(LLInvalidCertificate(LLSD::emptyMap()));
}
@@ -355,8 +355,8 @@ LLSD cert_name_from_X509_NAME(X509_NAME* name)
char buffer[32];
X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, entry_index);
- std::string name_value = std::string((const char*)M_ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry)),
- M_ASN1_STRING_length(X509_NAME_ENTRY_get_data(entry)));
+ std::string name_value = std::string((const char*)ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry)),
+ ASN1_STRING_length(X509_NAME_ENTRY_get_data(entry)));
ASN1_OBJECT* name_obj = X509_NAME_ENTRY_get_object(entry);
OBJ_obj2txt(buffer, sizeof(buffer), name_obj, 0);
@@ -683,29 +683,29 @@ std::string LLBasicCertificateStore::storeId() const
// LLBasicCertificateChain
// This class represents a chain of certs, each cert being signed by the next cert
// in the chain. Certs must be properly signed by the parent
-LLBasicCertificateChain::LLBasicCertificateChain(const X509_STORE_CTX* store)
+LLBasicCertificateChain::LLBasicCertificateChain(X509_STORE_CTX* store)
{
// we're passed in a context, which contains a cert, and a blob of untrusted
// certificates which compose the chain.
- if((store == NULL) || (store->cert == NULL))
+ if((store == NULL) || X509_STORE_CTX_get0_cert(store) == NULL)
{
LL_WARNS("SECAPI") << "An invalid store context was passed in when trying to create a certificate chain" << LL_ENDL;
return;
}
// grab the child cert
- LLPointer current = new LLBasicCertificate(store->cert);
+ LLPointer current = new LLBasicCertificate(X509_STORE_CTX_get0_cert(store));
add(current);
- if(store->untrusted != NULL)
+ if(X509_STORE_CTX_get0_untrusted(store) != NULL)
{
// if there are other certs in the chain, we build up a vector
// of untrusted certs so we can search for the parents of each
// consecutive cert.
LLBasicCertificateVector untrusted_certs;
- for(int i = 0; i < sk_X509_num(store->untrusted); i++)
+ for(int i = 0; i < sk_X509_num(X509_STORE_CTX_get0_untrusted(store)); i++)
{
- LLPointer cert = new LLBasicCertificate(sk_X509_value(store->untrusted, i));
+ LLPointer cert = new LLBasicCertificate(sk_X509_value(X509_STORE_CTX_get0_untrusted(store), i));
untrusted_certs.add(cert);
}
@@ -1348,9 +1348,10 @@ void LLSecAPIBasicHandler::_readProtectedData()
// read in the rest of the file.
- EVP_CIPHER_CTX ctx;
- EVP_CIPHER_CTX_init(&ctx);
- EVP_DecryptInit(&ctx, EVP_rc4(), salt, NULL);
+ EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
+ // todo: ctx error handling
+
+ EVP_DecryptInit(ctx, EVP_rc4(), salt, NULL);
// allocate memory:
std::string decrypted_data;
@@ -1358,14 +1359,14 @@ void LLSecAPIBasicHandler::_readProtectedData()
// read data as a block:
protected_data_stream.read((char *)buffer, BUFFER_READ_SIZE);
- EVP_DecryptUpdate(&ctx, decrypted_buffer, &decrypted_length,
+ EVP_DecryptUpdate(ctx, decrypted_buffer, &decrypted_length,
buffer, protected_data_stream.gcount());
decrypted_data.append((const char *)decrypted_buffer, protected_data_stream.gcount());
}
// RC4 is a stream cipher, so we don't bother to EVP_DecryptFinal, as there is
// no block padding.
- EVP_CIPHER_CTX_cleanup(&ctx);
+ EVP_CIPHER_CTX_free(ctx);
std::istringstream parse_stream(decrypted_data);
if (parser->parse(parse_stream, mProtectedDataMap,
LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE)
@@ -1401,12 +1402,14 @@ void LLSecAPIBasicHandler::_writeProtectedData()
llofstream protected_data_stream(tmp_filename.c_str(),
std::ios_base::binary);
+ EVP_CIPHER_CTX *ctx = NULL;
try
{
- EVP_CIPHER_CTX ctx;
- EVP_CIPHER_CTX_init(&ctx);
- EVP_EncryptInit(&ctx, EVP_rc4(), salt, NULL);
+ ctx = EVP_CIPHER_CTX_new();
+ // todo: ctx error handling
+
+ EVP_EncryptInit(ctx, EVP_rc4(), salt, NULL);
unsigned char unique_id[MAC_ADDRESS_BYTES];
LLMachineID::getUniqueID(unique_id, sizeof(unique_id));
LLXORCipher cipher(unique_id, sizeof(unique_id));
@@ -1421,13 +1424,13 @@ void LLSecAPIBasicHandler::_writeProtectedData()
break;
}
int encrypted_length;
- EVP_EncryptUpdate(&ctx, encrypted_buffer, &encrypted_length,
+ EVP_EncryptUpdate(ctx, encrypted_buffer, &encrypted_length,
buffer, formatted_data_istream.gcount());
protected_data_stream.write((const char *)encrypted_buffer, encrypted_length);
}
// no EVP_EncrypteFinal, as this is a stream cipher
- EVP_CIPHER_CTX_cleanup(&ctx);
+ EVP_CIPHER_CTX_free(ctx);
protected_data_stream.close();
}
@@ -1439,6 +1442,11 @@ void LLSecAPIBasicHandler::_writeProtectedData()
// it may be, however.
LLFile::remove(tmp_filename);
+ if (ctx)
+ {
+ EVP_CIPHER_CTX_free(ctx);
+ }
+
// EXP-1825 crash in LLSecAPIBasicHandler::_writeProtectedData()
// Decided throwing an exception here was overkill until we figure out why this happens
//LLTHROW(LLProtectedDataException("Error writing Protected Data Store"));
@@ -1491,7 +1499,7 @@ LLPointer LLSecAPIBasicHandler::getCertificate(X509* openssl_cert
}
// instantiate a chain from an X509_STORE_CTX
-LLPointer LLSecAPIBasicHandler::getCertificateChain(const X509_STORE_CTX* chain)
+LLPointer LLSecAPIBasicHandler::getCertificateChain(X509_STORE_CTX* chain)
{
LLPointer result = new LLBasicCertificateChain(chain);
return result;
diff --git a/indra/newview/llsechandler_basic.h b/indra/newview/llsechandler_basic.h
index 0bc7f5230f..82670f9083 100644
--- a/indra/newview/llsechandler_basic.h
+++ b/indra/newview/llsechandler_basic.h
@@ -197,7 +197,7 @@ class LLBasicCertificateChain : virtual public LLBasicCertificateVector, public
{
public:
- LLBasicCertificateChain(const X509_STORE_CTX * store);
+ LLBasicCertificateChain(X509_STORE_CTX * store);
virtual ~LLBasicCertificateChain() {}
@@ -241,7 +241,7 @@ public:
virtual LLPointer getCertificate(X509* openssl_cert);
// instantiate a chain from an X509_STORE_CTX
- virtual LLPointer getCertificateChain(const X509_STORE_CTX* chain);
+ virtual LLPointer getCertificateChain(X509_STORE_CTX* chain);
// instantiate a cert store given it's id. if a persisted version
// exists, it'll be loaded. If not, one will be created (but not
diff --git a/indra/newview/slplugin.entitlements b/indra/newview/slplugin.entitlements
new file mode 100644
index 0000000000..a1c430a57a
--- /dev/null
+++ b/indra/newview/slplugin.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ com.apple.security.cs.allow-unsigned-executable-memory
+
+
+
diff --git a/indra/newview/tests/llsecapi_test.cpp b/indra/newview/tests/llsecapi_test.cpp
index caa3016d2e..37fbbb449b 100644
--- a/indra/newview/tests/llsecapi_test.cpp
+++ b/indra/newview/tests/llsecapi_test.cpp
@@ -57,7 +57,7 @@ void LLSecAPIBasicHandler::init() {}
LLSecAPIBasicHandler::~LLSecAPIBasicHandler() {}
LLPointer LLSecAPIBasicHandler::getCertificate(const std::string& pem_cert) { return NULL; }
LLPointer LLSecAPIBasicHandler::getCertificate(X509* openssl_cert) { return NULL; }
-LLPointer LLSecAPIBasicHandler::getCertificateChain(const X509_STORE_CTX* chain) { return NULL; }
+LLPointer LLSecAPIBasicHandler::getCertificateChain(X509_STORE_CTX* chain) { return NULL; }
LLPointer LLSecAPIBasicHandler::getCertificateStore(const std::string& store_id) { return NULL; }
void LLSecAPIBasicHandler::setProtectedData(const std::string& data_type, const std::string& data_id, const LLSD& data) {}
void LLSecAPIBasicHandler::addToProtectedMap(const std::string& data_type, const std::string& data_id, const std::string& map_elem, const LLSD& data) {}
diff --git a/indra/newview/tests/llsechandler_basic_test.cpp b/indra/newview/tests/llsechandler_basic_test.cpp
index e5d226a2a4..4c8d6c51b0 100644
--- a/indra/newview/tests/llsechandler_basic_test.cpp
+++ b/indra/newview/tests/llsechandler_basic_test.cpp
@@ -1217,8 +1217,8 @@ namespace tut
// Single cert in the chain.
X509_STORE_CTX *test_store = X509_STORE_CTX_new();
- test_store->cert = mX509ChildCert;
- test_store->untrusted = NULL;
+ X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
+ X509_STORE_CTX_set0_untrusted(test_store, NULL);
test_chain = new LLBasicCertificateChain(test_store);
X509_STORE_CTX_free(test_store);
ensure_equals("two elements in store", test_chain->size(), 1);
@@ -1229,9 +1229,9 @@ namespace tut
// cert + CA
test_store = X509_STORE_CTX_new();
- test_store->cert = mX509ChildCert;
- test_store->untrusted = sk_X509_new_null();
- sk_X509_push(test_store->untrusted, mX509IntermediateCert);
+ X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
+ X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
+ sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509IntermediateCert);
test_chain = new LLBasicCertificateChain(test_store);
X509_STORE_CTX_free(test_store);
ensure_equals("two elements in store", test_chain->size(), 2);
@@ -1245,9 +1245,9 @@ namespace tut
// cert + nonrelated
test_store = X509_STORE_CTX_new();
- test_store->cert = mX509ChildCert;
- test_store->untrusted = sk_X509_new_null();
- sk_X509_push(test_store->untrusted, mX509TestCert);
+ X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
+ X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
+ sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509TestCert);
test_chain = new LLBasicCertificateChain(test_store);
X509_STORE_CTX_free(test_store);
ensure_equals("two elements in store", test_chain->size(), 1);
@@ -1257,10 +1257,10 @@ namespace tut
// cert + CA + nonrelated
test_store = X509_STORE_CTX_new();
- test_store->cert = mX509ChildCert;
- test_store->untrusted = sk_X509_new_null();
- sk_X509_push(test_store->untrusted, mX509IntermediateCert);
- sk_X509_push(test_store->untrusted, mX509TestCert);
+ X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
+ X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
+ sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509IntermediateCert);
+ sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509TestCert);
test_chain = new LLBasicCertificateChain(test_store);
X509_STORE_CTX_free(test_store);
ensure_equals("two elements in store", test_chain->size(), 2);
@@ -1273,10 +1273,10 @@ namespace tut
// cert + intermediate + CA
test_store = X509_STORE_CTX_new();
- test_store->cert = mX509ChildCert;
- test_store->untrusted = sk_X509_new_null();
- sk_X509_push(test_store->untrusted, mX509IntermediateCert);
- sk_X509_push(test_store->untrusted, mX509RootCert);
+ X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
+ X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
+ sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509IntermediateCert);
+ sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509RootCert);
test_chain = new LLBasicCertificateChain(test_store);
X509_STORE_CTX_free(test_store);
ensure_equals("three elements in store", test_chain->size(), 3);
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index a9e9e8fcc1..75c39ea7c6 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -552,9 +552,13 @@ class WindowsManifest(ViewerManifest):
self.path("vivoxsdk.dll")
self.path("ortp.dll")
- # Security
- self.path("ssleay32.dll")
- self.path("libeay32.dll")
+ # OpenSSL
+ if (self.address_size == 64):
+ self.path("libcrypto-1_1-x64.dll")
+ self.path("libssl-1_1-x64.dll")
+ else:
+ self.path("libcrypto-1_1.dll")
+ self.path("libssl-1_1.dll")
# HTTP/2
self.path("nghttp2.dll")
@@ -1024,7 +1028,6 @@ class DarwinManifest(ViewerManifest):
"libapr-1.0.dylib",
"libaprutil-1.0.dylib",
"libexpat.1.dylib",
- "libexception_handler.dylib",
"libGLOD.dylib",
# libnghttp2.dylib is a symlink to
# libnghttp2.major.dylib, which is a symlink to
@@ -1293,14 +1296,19 @@ class DarwinManifest(ViewerManifest):
signed=False
sign_attempts=3
sign_retry_wait=15
+ libvlc_path = app_in_dmg + "/Contents/Resources/llplugin/media_plugin_libvlc.dylib"
+ cef_path = app_in_dmg + "/Contents/Resources/llplugin/media_plugin_cef.dylib"
+ slplugin_path = app_in_dmg + "/Contents/Resources/SLPlugin.app/Contents/MacOS/SLPlugin"
+ greenlet_path = app_in_dmg + "/Contents/Resources/updater/greenlet/_greenlet.so"
while (not signed) and (sign_attempts > 0):
try:
- sign_attempts-=1;
- self.run_command(
- # Note: See blurb above about names of keychains
- ['codesign', '--verbose', '--deep', '--force',
- '--keychain', viewer_keychain, '--sign', identity,
- app_in_dmg])
+ sign_attempts-=1
+ # Note: See blurb above about names of keychains
+ self.run_command(['codesign', '--force', '--timestamp','--keychain', viewer_keychain, '--sign', identity, libvlc_path])
+ self.run_command(['codesign', '--force', '--timestamp', '--keychain', viewer_keychain, '--sign', identity, cef_path])
+ self.run_command(['codesign', '--force', '--timestamp', '--keychain', viewer_keychain, '--sign', identity, greenlet_path])
+ self.run_command(['codesign', '--verbose', '--deep', '--force', '--entitlements', self.src_path_of("slplugin.entitlements"), '--options', 'runtime', '--keychain', viewer_keychain, '--sign', identity, slplugin_path])
+ self.run_command(['codesign', '--verbose', '--deep', '--force', '--options', 'runtime', '--keychain', viewer_keychain, '--sign', identity, app_in_dmg])
signed=True # if no exception was raised, the codesign worked
except ManifestError as err:
if sign_attempts:
@@ -1311,6 +1319,7 @@ class DarwinManifest(ViewerManifest):
print >> sys.stderr, "Maximum codesign attempts exceeded; giving up"
raise
self.run_command(['spctl', '-a', '-texec', '-vvvv', app_in_dmg])
+ self.run_command([self.src_path_of("installers/darwin/apple-notarize.sh"), app_in_dmg])
finally:
# Unmount the image even if exceptions from any of the above
@@ -1363,7 +1372,7 @@ class LinuxManifest(ViewerManifest):
with self.prefix(dst="bin"):
self.path("secondlife-bin","do-not-directly-run-secondlife-bin")
self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin")
- self.path2basename("../llplugin/slplugin", "SLPlugin")
+ self.path2basename("../llplugin/slplugin", "SLPlugin")
#this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323
with self.prefix(src="../viewer_components/manager", dst=""):
self.path("*.py")
diff --git a/indra/win_crash_logger/CMakeLists.txt b/indra/win_crash_logger/CMakeLists.txt
deleted file mode 100644
index 1b187d624a..0000000000
--- a/indra/win_crash_logger/CMakeLists.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-# -*- cmake -*-
-
-project(win_crash_logger)
-
-include(00-Common)
-include(LLCommon)
-include(LLCoreHttp)
-include(LLCrashLogger)
-include(LLMath)
-include(LLMessage)
-include(LLFileSystem)
-include(LLWindow)
-include(LLXML)
-include(Linking)
-include(LLSharedLibs)
-include(GoogleBreakpad)
-include(Boost)
-
-include_directories(
- ${LLCOREHTTP_INCLUDE_DIRS}
- ${LLCOMMON_INCLUDE_DIRS}
- ${LLCRASHLOGGER_INCLUDE_DIRS}
- ${LLMATH_INCLUDE_DIRS}
- ${LLWINDOW_INCLUDE_DIRS}
- ${LLXML_INCLUDE_DIRS}
- ${LLFILESYSTEM_INCLUDE_DIRS}
- ${BREAKPAD_INCLUDE_DIRECTORIES}
- )
-include_directories(SYSTEM
- ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
- ${LLXML_SYSTEM_INCLUDE_DIRS}
- )
-
-set(win_crash_logger_SOURCE_FILES
- win_crash_logger.cpp
- llcrashloggerwindows.cpp
- )
-
-set(win_crash_logger_HEADER_FILES
- CMakeLists.txt
-
- llcrashloggerwindows.h
- resource.h
- StdAfx.h
- win_crash_logger.h
- )
-
-set_source_files_properties(${win_crash_logger_HEADER_FILES}
- PROPERTIES HEADER_FILE_ONLY TRUE)
-
-set(win_crash_logger_RESOURCE_FILES
- ll_icon.ico
- )
-
-set_source_files_properties(${win_crash_logger_RESOURCE_FILES}
- PROPERTIES HEADER_FILE_ONLY TRUE)
-
-set(win_crash_logger_RESOURCE_FILES
- win_crash_logger.rc
- ${win_crash_logger_RESOURCE_FILES}
- )
-
-SOURCE_GROUP("Resource Files" FILES ${win_crash_logger_RESOURCE_FILES})
-
-list(APPEND
- win_crash_logger_SOURCE_FILES
- ${win_crash_logger_HEADER_FILES}
- ${win_crash_logger_RESOURCE_FILES}
- )
-
-add_executable(windows-crash-logger WIN32 ${win_crash_logger_SOURCE_FILES})
-
-
-target_link_libraries(windows-crash-logger
- ${LEGACY_STDIO_LIBS}
- ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}
- ${LLCRASHLOGGER_LIBRARIES}
- ${LLWINDOW_LIBRARIES}
- ${LLFILESYSTEM_LIBRARIES}
- ${LLXML_LIBRARIES}
- ${LLMESSAGE_LIBRARIES}
- ${LLMATH_LIBRARIES}
- ${LLCOREHTTP_LIBRARIES}
- ${LLCOMMON_LIBRARIES}
- ${BOOST_CONTEXT_LIBRARY}
- ${BOOST_FIBER_LIBRARY}
- ${WINDOWS_LIBRARIES}
- dxguid
- ${GOOGLE_PERFTOOLS_LIBRARIES}
- user32
- gdi32
- oleaut32
- wininet
- Wldap32
- )
-
-if (WINDOWS)
- set_target_properties(windows-crash-logger
- PROPERTIES
- LINK_FLAGS "/NODEFAULTLIB:LIBCMT"
- LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\""
- )
-endif (WINDOWS)
-
-ll_deploy_sharedlibs_command(windows-crash-logger)
diff --git a/indra/win_crash_logger/StdAfx.cpp b/indra/win_crash_logger/StdAfx.cpp
deleted file mode 100644
index f56711af73..0000000000
--- a/indra/win_crash_logger/StdAfx.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * @file StdAfx.cpp
- * @brief windows crash logger source file for includes
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-// stdafx.cpp : source file that includes just the standard includes
-// win_crash_logger.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/indra/win_crash_logger/StdAfx.h b/indra/win_crash_logger/StdAfx.h
deleted file mode 100644
index 35976658ac..0000000000
--- a/indra/win_crash_logger/StdAfx.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @file StdAfx.h
- * @brief standard system includes
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
-
-// Windows Header Files:
-#include
-
-// C RunTime Header Files
-#include
-#include
-#include
-
-// Local Header Files
-
-// TODO: reference additional headers your program requires here
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
diff --git a/indra/win_crash_logger/ll_icon.ico b/indra/win_crash_logger/ll_icon.ico
deleted file mode 100644
index 566346dfe3..0000000000
Binary files a/indra/win_crash_logger/ll_icon.ico and /dev/null differ
diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp
deleted file mode 100644
index 0cbe0b0d17..0000000000
--- a/indra/win_crash_logger/llcrashloggerwindows.cpp
+++ /dev/null
@@ -1,536 +0,0 @@
-/**
-* @file llcrashloggerwindows.cpp
-* @brief Windows crash logger implementation
-*
-* $LicenseInfo:firstyear=2003&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$
-*/
-
-#include "linden_common.h"
-
-#include "stdafx.h"
-#include "resource.h"
-#include "llcrashloggerwindows.h"
-
-#include
-
-#include "boost/tokenizer.hpp"
-
-#include "indra_constants.h" // CRASH_BEHAVIOR_ASK, CRASH_SETTING_NAME
-#include "llerror.h"
-#include "llfile.h"
-#include "lltimer.h"
-#include "llstring.h"
-#include "lldxhardware.h"
-#include "lldir.h"
-#include "llsdserialize.h"
-#include "llsdutil.h"
-#include "stringize.h"
-
-#include
-#include
-
-#define MAX_LOADSTRING 100
-#define MAX_STRING 2048
-const char* const SETTINGS_FILE_HEADER = "version";
-const S32 SETTINGS_FILE_VERSION = 101;
-
-// Windows Message Handlers
-
-// Global Variables:
-HINSTANCE hInst= NULL; // current instance
-TCHAR szTitle[MAX_LOADSTRING]; /* Flawfinder: ignore */ // The title bar text
-TCHAR szWindowClass[MAX_LOADSTRING]; /* Flawfinder: ignore */ // The title bar text
-
-std::string gProductName;
-HWND gHwndReport = NULL; // Send/Don't Send dialog
-HWND gHwndProgress = NULL; // Progress window
-HCURSOR gCursorArrow = NULL;
-HCURSOR gCursorWait = NULL;
-BOOL gFirstDialog = TRUE; // Are we currently handling the Send/Don't Send dialog?
-std::stringstream gDXInfo;
-bool gSendLogs = false;
-
-LLCrashLoggerWindows* LLCrashLoggerWindows::sInstance = NULL;
-
-//Conversion from char* to wchar*
-//Replacement for ATL macros, doesn't allocate memory
-//For more info see: http://www.codeguru.com/forum/showthread.php?t=337247
-void ConvertLPCSTRToLPWSTR (const char* pCstring, WCHAR* outStr)
-{
- if (pCstring != NULL)
- {
- int nInputStrLen = strlen (pCstring);
- // Double NULL Termination
- int nOutputStrLen = MultiByteToWideChar(CP_ACP, 0, pCstring, nInputStrLen, NULL, 0) + 2;
- if (outStr)
- {
- memset (outStr, 0x00, sizeof (WCHAR)*nOutputStrLen);
- MultiByteToWideChar (CP_ACP, 0, pCstring, nInputStrLen, outStr, nInputStrLen);
- }
- }
-}
-
-void write_debug(const char *str)
-{
- gDXInfo << str; /* Flawfinder: ignore */
-}
-
-void write_debug(std::string& str)
-{
- write_debug(str.c_str());
-}
-
-void show_progress(const std::string& message)
-{
- std::wstring msg = wstring_to_utf16str(utf8str_to_wstring(message));
- if (gHwndProgress)
- {
- SendDlgItemMessage(gHwndProgress, // handle to destination window
- IDC_LOG,
- WM_SETTEXT, // message to send
- FALSE, // undo option
- (LPARAM)msg.c_str());
- }
-}
-
-void update_messages()
-{
- MSG msg;
- while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
- if (msg.message == WM_QUIT)
- {
- exit(0);
- }
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
-}
-
-void sleep_and_pump_messages( U32 seconds )
-{
- const U32 CYCLES_PER_SECOND = 10;
- U32 cycles = seconds * CYCLES_PER_SECOND;
- while( cycles-- )
- {
- update_messages();
- ms_sleep(1000 / CYCLES_PER_SECOND);
- }
-}
-
-// Include product name in the window caption.
-void LLCrashLoggerWindows::ProcessCaption(HWND hWnd)
-{
- TCHAR templateText[MAX_STRING]; /* Flawfinder: ignore */
- TCHAR header[MAX_STRING];
- std::string final;
- GetWindowText(hWnd, templateText, sizeof(templateText));
- final = llformat(ll_convert_wide_to_string(templateText, CP_ACP).c_str(), gProductName.c_str());
- ConvertLPCSTRToLPWSTR(final.c_str(), header);
- SetWindowText(hWnd, header);
-}
-
-
-// Include product name in the diaog item text.
-void LLCrashLoggerWindows::ProcessDlgItemText(HWND hWnd, int nIDDlgItem)
-{
- TCHAR templateText[MAX_STRING]; /* Flawfinder: ignore */
- TCHAR header[MAX_STRING];
- std::string final;
- GetDlgItemText(hWnd, nIDDlgItem, templateText, sizeof(templateText));
- final = llformat(ll_convert_wide_to_string(templateText, CP_ACP).c_str(), gProductName.c_str());
- ConvertLPCSTRToLPWSTR(final.c_str(), header);
- SetDlgItemText(hWnd, nIDDlgItem, header);
-}
-
-bool handle_button_click(WORD button_id)
-{
- // Is this something other than Send or Don't Send?
- if (button_id != IDOK
- && button_id != IDCANCEL)
- {
- return false;
- }
-
- // We're done with this dialog.
- gFirstDialog = FALSE;
-
- // Send the crash report if requested
- if (button_id == IDOK)
- {
- gSendLogs = TRUE;
- WCHAR wbuffer[20000];
- GetDlgItemText(gHwndReport, // handle to dialog box
- IDC_EDIT1, // control identifier
- wbuffer, // pointer to buffer for text
- 20000 // maximum size of string
- );
- std::string user_text(ll_convert_wide_to_string(wbuffer, CP_ACP));
- // Activate and show the window.
- ShowWindow(gHwndProgress, SW_SHOW);
- // Try doing this second to make the progress window go frontmost.
- ShowWindow(gHwndReport, SW_HIDE);
- ((LLCrashLoggerWindows*)LLCrashLogger::instance())->setUserText(user_text);
- ((LLCrashLoggerWindows*)LLCrashLogger::instance())->sendCrashLogs();
- }
- // Quit the app
- LLApp::setQuitting();
- return true;
-}
-
-
-LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
-{
- switch( message )
- {
- case WM_CREATE:
- return 0;
-
- case WM_COMMAND:
- if( gFirstDialog )
- {
- WORD button_id = LOWORD(wParam);
- bool handled = handle_button_click(button_id);
- if (handled)
- {
- return 0;
- }
- }
- break;
-
- case WM_DESTROY:
- // Closing the window cancels
- LLApp::setQuitting();
- PostQuitMessage(0);
- return 0;
- }
-
- return DefWindowProc(hwnd, message, wParam, lParam);
-}
-
-
-LLCrashLoggerWindows::LLCrashLoggerWindows(void)
-{
- if (LLCrashLoggerWindows::sInstance==NULL)
- {
- sInstance = this;
- }
-}
-
-LLCrashLoggerWindows::~LLCrashLoggerWindows(void)
-{
- sInstance = NULL;
-}
-
-bool LLCrashLoggerWindows::getMessageWithTimeout(MSG *msg, UINT to)
-{
- bool res;
- UINT_PTR timerID = SetTimer(NULL, NULL, to, NULL);
- res = GetMessage(msg, NULL, 0, 0);
- KillTimer(NULL, timerID);
- if (!res)
- return false;
- if (msg->message == WM_TIMER && msg->hwnd == NULL && msg->wParam == 1)
- return false; //TIMEOUT! You could call SetLastError() or something...
- return true;
-}
-
-int LLCrashLoggerWindows::processingLoop() {
- const int millisecs=1000;
- int retries = 0;
- const int max_retries = 60;
-
- LL_DEBUGS("CRASHREPORT") << "Entering processing loop for OOP server" << LL_ENDL;
-
- LLSD options = getOptionData( LLApp::PRIORITY_COMMAND_LINE );
-
- MSG msg;
-
- bool result;
-
- while (1)
- {
- result = getMessageWithTimeout(&msg, millisecs);
- if ( result )
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
-
- if ( retries < max_retries ) //Wait up to 1 minute for the viewer to say hello.
- {
- if (mClientsConnected == 0)
- {
- LL_DEBUGS("CRASHREPORT") << "Waiting for client to connect." << LL_ENDL;
- ++retries;
- }
- else
- {
- LL_INFOS("CRASHREPORT") << "Client has connected!" << LL_ENDL;
- retries = max_retries;
- }
- }
- else
- {
- if (mClientsConnected == 0)
- {
- break;
- }
- if (!mKeyMaster.isProcessAlive(mPID, mProcName) )
- {
- break;
- }
- }
- }
-
- LL_INFOS() << "session ending.." << LL_ENDL;
-
- std::string per_run_dir = options["dumpdir"].asString();
- std::string per_run_file = per_run_dir + "\\SecondLife.log";
- std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.log");
-
- if (gDirUtilp->fileExists(per_run_dir))
- {
- LL_INFOS ("CRASHREPORT") << "Copying " << log_file << " to " << per_run_file << LL_ENDL;
- LLFile::copy(log_file, per_run_file);
- }
- return 0;
-}
-
-
-void LLCrashLoggerWindows::OnClientConnected(void* context,
- const google_breakpad::ClientInfo* client_info)
-{
- sInstance->mClientsConnected++;
- LL_INFOS("CRASHREPORT") << "Client connected. pid = " << client_info->pid() << " total clients " << sInstance->mClientsConnected << LL_ENDL;
-}
-
-void LLCrashLoggerWindows::OnClientExited(void* context,
- const google_breakpad::ClientInfo* client_info)
-{
- sInstance->mClientsConnected--;
- LL_INFOS("CRASHREPORT") << "Client disconnected. pid = " << client_info->pid() << " total clients " << sInstance->mClientsConnected << LL_ENDL;
-}
-
-
-void LLCrashLoggerWindows::OnClientDumpRequest(void* context,
- const google_breakpad::ClientInfo* client_info,
- const std::wstring* file_path)
-{
- if (!file_path)
- {
- LL_WARNS() << "dump with no file path" << LL_ENDL;
- return;
- }
- if (!client_info)
- {
- LL_WARNS() << "dump with no client info" << LL_ENDL;
- return;
- }
-
- LLCrashLoggerWindows* self = static_cast(context);
- if (!self)
- {
- LL_WARNS() << "dump with no context" << LL_ENDL;
- return;
- }
-
- //DWORD pid = client_info->pid();
-}
-
-
-bool LLCrashLoggerWindows::initCrashServer()
-{
- //For Breakpad on Windows we need a full Out of Process service to get good data.
- //This routine starts up the service on a named pipe that the viewer will then
- //communicate with.
- using namespace google_breakpad;
-
- LLSD options = getOptionData( LLApp::PRIORITY_COMMAND_LINE );
- std::string dump_path = options["dumpdir"].asString();
- mClientsConnected = 0;
- mPID = options["pid"].asInteger();
- mProcName = options["procname"].asString();
-
- //Generate a quasi-uniq name for the named pipe. For our purposes
- //this is unique-enough with least hassle. Worst case for duplicate name
- //is a second instance of the viewer will not do crash reporting.
- std::wstring wpipe_name;
- wpipe_name = mCrashReportPipeStr + std::wstring(wstringize(mPID));
-
- std::wstring wdump_path(utf8str_to_utf16str(dump_path));
-
- //Pipe naming conventions: http://msdn.microsoft.com/en-us/library/aa365783%28v=vs.85%29.aspx
- mCrashHandler = new CrashGenerationServer( wpipe_name,
- NULL,
- &LLCrashLoggerWindows::OnClientConnected, this,
- /*NULL, NULL, */ &LLCrashLoggerWindows::OnClientDumpRequest, this,
- &LLCrashLoggerWindows::OnClientExited, this,
- NULL, NULL,
- true, &wdump_path);
-
- if (!mCrashHandler) {
- //Failed to start the crash server.
- LL_WARNS() << "Failed to init crash server." << LL_ENDL;
- return false;
- }
-
- // Start servicing clients.
- if (!mCrashHandler->Start()) {
- LL_WARNS() << "Failed to start crash server." << LL_ENDL;
- return false;
- }
-
- LL_INFOS("CRASHREPORT") << "Initialized OOP server with pipe named " << stringize(wpipe_name) << LL_ENDL;
- return true;
-}
-
-bool LLCrashLoggerWindows::init(void)
-{
- bool ok = LLCrashLogger::init();
- if(!ok) return false;
-
- initCrashServer();
-
- /*
- mbstowcs( gProductName, mProductName.c_str(), LL_ARRAY_SIZE(gProductName) );
- gProductName[ LL_ARRY_SIZE(gProductName) - 1 ] = 0;
- swprintf(gProductName, L"Second Life");
- */
-
- LL_INFOS() << "Loading dialogs" << LL_ENDL;
-
- // Initialize global strings
- LoadString(mhInst, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
- LoadString(mhInst, IDC_WIN_CRASH_LOGGER, szWindowClass, MAX_LOADSTRING);
-
- gCursorArrow = LoadCursor(NULL, IDC_ARROW);
- gCursorWait = LoadCursor(NULL, IDC_WAIT);
-
- // Register a window class that will be used by our dialogs
- WNDCLASS wndclass;
- wndclass.style = CS_HREDRAW | CS_VREDRAW;
- wndclass.lpfnWndProc = WndProc;
- wndclass.cbClsExtra = 0;
- wndclass.cbWndExtra = DLGWINDOWEXTRA; // Required, since this is used for dialogs!
- wndclass.hInstance = mhInst;
- wndclass.hIcon = LoadIcon(hInst, MAKEINTRESOURCE( IDI_WIN_CRASH_LOGGER ) );
- wndclass.hCursor = gCursorArrow;
- wndclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);
- wndclass.lpszMenuName = NULL;
- wndclass.lpszClassName = szWindowClass;
- RegisterClass( &wndclass );
-
- return true;
-}
-
-void LLCrashLoggerWindows::gatherPlatformSpecificFiles()
-{
- updateApplication("Gathering hardware information. App may appear frozen.");
- // DX hardware probe blocks, so we can't cancel during it
- //Generate our dx_info.log file
- SetCursor(gCursorWait);
- // At this point we're responsive enough the user could click the close button
- SetCursor(gCursorArrow);
- //mDebugLog["DisplayDeviceInfo"] = gDXHardware.getDisplayInfo(); //Not initialized.
-}
-
-bool LLCrashLoggerWindows::frame()
-{
- LL_INFOS() << "CrashSubmitBehavior is " << mCrashBehavior << LL_ENDL;
-
- // Note: parent hwnd is 0 (the desktop). No dlg proc. See Petzold (5th ed) HexCalc example, Chapter 11, p529
- // win_crash_logger.rc has been edited by hand.
- // Dialogs defined with CLASS "WIN_CRASH_LOGGER" (must be same as szWindowClass)
- gProductName = mProductName;
- gHwndProgress = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PROGRESS), 0, NULL);
- ProcessCaption(gHwndProgress);
- ShowWindow(gHwndProgress, SW_HIDE );
-
- if (mCrashBehavior == CRASH_BEHAVIOR_ALWAYS_SEND)
- {
- LL_INFOS() << "Showing crash report submit progress window." << LL_ENDL;
- //ShowWindow(gHwndProgress, SW_SHOW ); Maint-5707
- sendCrashLogs();
- }
- else if (mCrashBehavior == CRASH_BEHAVIOR_ASK)
- {
- gHwndReport = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PREVREPORTBOX), 0, NULL);
- // Ignore result
- (void) SendDlgItemMessage(gHwndReport, IDC_CHECK_AUTO, BM_SETCHECK, 0, 0);
- // Include the product name in the caption and various dialog items.
- ProcessCaption(gHwndReport);
- ProcessDlgItemText(gHwndReport, IDC_STATIC_MSG);
-
- // Update the header to include whether or not we crashed on the last run.
- std::string headerStr;
- TCHAR header[MAX_STRING];
- if (mCrashInPreviousExec)
- {
- headerStr = llformat("%s appears to have crashed or frozen the last time it ran.", mProductName.c_str());
- }
- else
- {
- headerStr = llformat("%s appears to have crashed.", mProductName.c_str());
- }
- ConvertLPCSTRToLPWSTR(headerStr.c_str(), header);
- SetDlgItemText(gHwndReport, IDC_STATIC_HEADER, header);
- ShowWindow(gHwndReport, SW_SHOW );
-
- MSG msg;
- memset(&msg, 0, sizeof(msg));
- while (!LLApp::isExiting() && GetMessage(&msg, NULL, 0, 0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return true; // msg.wParam;
- }
- else
- {
- LL_WARNS() << "Unknown crash behavior " << mCrashBehavior << LL_ENDL;
- return true; // 1;
- }
- return true; // 0;
-}
-
-void LLCrashLoggerWindows::updateApplication(const std::string& message)
-{
- LLCrashLogger::updateApplication(message);
- if(!message.empty()) show_progress(message);
- update_messages();
-}
-
-bool LLCrashLoggerWindows::cleanup()
-{
- if(gSendLogs)
- {
- if(mSentCrashLogs) show_progress("Done");
- else show_progress("Could not connect to servers, logs not sent");
- sleep_and_pump_messages(3);
- }
- PostQuitMessage(0);
- commonCleanup();
- mKeyMaster.releaseMaster();
- return true;
-}
-
diff --git a/indra/win_crash_logger/llcrashloggerwindows.h b/indra/win_crash_logger/llcrashloggerwindows.h
deleted file mode 100644
index f89b8708dc..0000000000
--- a/indra/win_crash_logger/llcrashloggerwindows.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
-* @file llcrashloggerwindows.h
-* @brief Windows crash logger definition
-*
-* $LicenseInfo:firstyear=2003&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$
-*/
-
-#ifndef LLCRASHLOGGERWINDOWS_H
-#define LLCRASHLOGGERWINDOWS_H
-
-#include "llcrashlogger.h"
-#include "windows.h"
-#include "llstring.h"
-
-class LLSD;
-
-namespace google_breakpad {
- class CrashGenerationServer;
- class ClientInfo;
-}
-
-class LLCrashLoggerWindows : public LLCrashLogger
-{
-public:
- LLCrashLoggerWindows(void);
- ~LLCrashLoggerWindows(void);
- static LLCrashLoggerWindows* sInstance;
-
- virtual bool init();
- virtual bool frame();
- virtual void updateApplication(const std::string& message = LLStringUtil::null);
- virtual bool cleanup();
- virtual void gatherPlatformSpecificFiles();
- void setHandle(HINSTANCE hInst) { mhInst = hInst; }
- int clients_connected() const {
- return mClientsConnected;
- }
- bool getMessageWithTimeout(MSG *msg, UINT to);
-
- // Starts the processing loop. This function does not return unless the
- // user is logging off or the user closes the crash service window. The
- // return value is a good number to pass in ExitProcess().
- int processingLoop();
-private:
- void ProcessDlgItemText(HWND hWnd, int nIDDlgItem);
- void ProcessCaption(HWND hWnd);
- bool initCrashServer();
- google_breakpad::CrashGenerationServer* mCrashHandler;
- static void OnClientConnected(void* context,
- const google_breakpad::ClientInfo* client_info);
-
- static void OnClientDumpRequest(
- void* context,
- const google_breakpad::ClientInfo* client_info,
- const std::wstring* file_path);
-
- static void OnClientExited(void* context,
- const google_breakpad::ClientInfo* client_info);
- int mClientsConnected;
- int mPID;
- std::string mProcName;
-
- HINSTANCE mhInst;
-
-};
-
-#endif
diff --git a/indra/win_crash_logger/resource.h b/indra/win_crash_logger/resource.h
deleted file mode 100644
index 37a387275e..0000000000
--- a/indra/win_crash_logger/resource.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
-* @file resource.h
-* @brief Windows crash logger windows resources
-*
-* $LicenseInfo:firstyear=2003&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$
-*/
-
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by win_crash_logger.rc
-//
-#define IDC_MYICON 2
-#define IDD_REPORT 9
-#define IDD_WIN_CRASH_LOGGER_DIALOG 102
-#define IDD_ABOUTBOX 103
-#define IDS_APP_TITLE 103
-#define IDM_ABOUT 104
-#define IDM_EXIT 105
-#define IDS_HELLO 106
-#define IDI_WIN_CRASH_LOGGER 107
-#define IDI_SMALL 108
-#define IDC_WIN_CRASH_LOGGER 109
-#define IDR_MAINFRAME 128
-#define IDD_PROGRESS 129
-#define IDD_PREVREPORTBOX 130
-#define IDC_EDIT1 1000
-#define IDC_LOG 1004
-#define IDC_CHECK_AUTO 1006
-#define IDC_STATIC_HEADER 1007
-#define IDC_STATIC_WHATINFO 1008
-#define IDC_STATIC_MOTIVATION 1009
-#define IDC_STATIC_MSG 1010
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 131
-#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 1011
-#define _APS_NEXT_SYMED_VALUE 110
-#endif
-#endif
diff --git a/indra/win_crash_logger/win_crash_logger.cpp b/indra/win_crash_logger/win_crash_logger.cpp
deleted file mode 100644
index 58746eba02..0000000000
--- a/indra/win_crash_logger/win_crash_logger.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @file win_crash_logger.cpp
- * @brief Windows crash logger implementation
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-#include "linden_common.h"
-#include "stdafx.h"
-#include
-#include "llcrashloggerwindows.h"
-
-#ifdef _UNICODE
-int APIENTRY wWinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPWSTR lpCmdLine,
- int nCmdShow)
-#else
-int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
-#endif //_UNICODE
-{
- LL_INFOS() << "Starting crash reporter with args" << &lpCmdLine << LL_ENDL;
- LLCrashLoggerWindows app;
- app.setHandle(hInstance);
-#ifdef _UNICODE
- app.parseCommandOptions(__argc, __wargv);
-#else
- app.parseCommandOptions(__argc, __argv);
-#endif //_UNICODE
-
- LLSD options = LLApp::instance()->getOptionData(
- LLApp::PRIORITY_COMMAND_LINE);
- if (!(options.has("pid") && options.has("dumpdir")))
- {
- LL_WARNS() << "Insufficient parameters to crash report." << LL_ENDL;
- }
- if (! app.init())
- {
- LL_WARNS() << "Unable to initialize application." << LL_ENDL;
- return -1;
- }
-
- app.processingLoop();
- app.frame();
- app.cleanup();
- LL_INFOS() << "Crash reporter finished normally." << LL_ENDL;
- return 0;
-}
diff --git a/indra/win_crash_logger/win_crash_logger.h b/indra/win_crash_logger/win_crash_logger.h
deleted file mode 100644
index 2cc2cf3dcf..0000000000
--- a/indra/win_crash_logger/win_crash_logger.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * @file win_crash_logger.h
- * @brief Windows crash logger project includes
- *
- * $LicenseInfo:firstyear=2003&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$
- */
-
-
-#if !defined(AFX_WIN_CRASH_LOGGER_H__79802F4B_7C37_4F63_A2BB_0768788C3A27__INCLUDED_)
-#define AFX_WIN_CRASH_LOGGER_H__79802F4B_7C37_4F63_A2BB_0768788C3A27__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "resource.h"
-
-
-#endif // !defined(AFX_WIN_CRASH_LOGGER_H__79802F4B_7C37_4F63_A2BB_0768788C3A27__INCLUDED_)
diff --git a/indra/win_crash_logger/win_crash_logger.ico b/indra/win_crash_logger/win_crash_logger.ico
deleted file mode 100644
index 386883523b..0000000000
Binary files a/indra/win_crash_logger/win_crash_logger.ico and /dev/null differ
diff --git a/indra/win_crash_logger/win_crash_logger.rc b/indra/win_crash_logger/win_crash_logger.rc
deleted file mode 100755
index 2819722f63..0000000000
--- a/indra/win_crash_logger/win_crash_logger.rc
+++ /dev/null
@@ -1,188 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-#include "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_WIN_CRASH_LOGGER ICON "ll_icon.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_WIN_CRASH_LOGGER MENU
-BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "E&xit", IDM_EXIT
- END
- POPUP "&Help"
- BEGIN
- MENUITEM "&About ...", IDM_ABOUT
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_PROGRESS DIALOGEX 100, 100, 234, 33
-STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CAPTION | WS_SYSMENU
-CAPTION "%s Crash Logger"
-CLASS "WIN_CRASH_LOGGER"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- LTEXT "Static",IDC_LOG,7,7,220,8
-END
-
-IDD_REPORT DIALOGEX 100, 100, 297, 125
-STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CAPTION | WS_SYSMENU
-CAPTION "%s Crash Logger"
-CLASS "WIN_CRASH_LOGGER"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "Send",IDOK,198,104,45,15,WS_GROUP
- PUSHBUTTON "Don't Send",IDCANCEL,247,104,45,15,WS_GROUP
- LTEXT "%s appears to have crashed.",IDC_STATIC_HEADER,4,4,288,14
- LTEXT "This crash reporter collects information about your computer's hardware, operating system, and some %s logs, which are used for debugging purposes only.",IDC_STATIC_WHATINFO,4,23,288,19,NOT WS_GROUP
- CONTROL "Remember this choice",IDC_CHECK_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,106,89,13
- LTEXT "Sending crash reports is the best way to help us improve the quality of %s.",IDC_STATIC_MOTIVATION,4,43,288,8
- LTEXT "If you continue to experience this problem, please try:",IDC_STATIC,4,57,251,8
- LTEXT "- Contacting support by visiting http://www.secondlife.com/support",IDC_STATIC,4,67,231,8
-END
-
-IDD_PREVREPORTBOX DIALOGEX 100, 100, 232, 213
-STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CAPTION | WS_SYSMENU
-CAPTION "%s Crash Logger"
-CLASS "WIN_CRASH_LOGGER"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "Send Report",IDOK,131,193,45,15,WS_GROUP
- EDITTEXT IDC_EDIT1,3,100,223,89,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL
- PUSHBUTTON "Don't Send",IDCANCEL,181,193,45,15,WS_GROUP
- LTEXT "%s appears to have crashed or frozen the last time it ran.",IDC_STATIC_HEADER,4,4,214,8
- LTEXT "This crash reporter collects information about your computer's",IDC_STATIC,4,17,201,8
- LTEXT "hardware configuration, operating system, and some %s",IDC_STATIC_MSG,4,25,212,8
- LTEXT "logs, all of which are used for debugging purposes only.",IDC_STATIC,4,33,210,8
- LTEXT "In the space below, please briefly describe what you were doing",IDC_STATIC,3,48,208,8
- LTEXT "or trying to do just prior to the crash.",IDC_STATIC,3,56,204,8
- LTEXT "If you don't wish to send Linden Lab a crash report, press Don't Send.",IDC_STATIC,3,90,223,8
- LTEXT "This report is NOT read by customer support. If you have billing or",IDC_STATIC,3,68,208,8
- LTEXT "other questions, please go to: www.secondlife.com/support",IDC_STATIC,3,76,206,8
- CONTROL "Remember this choice",IDC_CHECK_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,193,89,13
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-2 TEXTINCLUDE
-BEGIN
- "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""windows.h""\r\n"
- "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_PROGRESS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 227
- TOPMARGIN, 7
- BOTTOMMARGIN, 26
- END
-
- IDD_REPORT, DIALOG
- BEGIN
- RIGHTMARGIN, 292
- VERTGUIDE, 4
- BOTTOMMARGIN, 119
- HORZGUIDE, 4
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_APP_TITLE "win_crash_logger"
- IDS_HELLO "Hello World!"
- IDC_WIN_CRASH_LOGGER "WIN_CRASH_LOGGER"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-