tiny_tds 2.1.6-x64-mingw-ucrt

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +407 -0
  3. data/.codeclimate.yml +20 -0
  4. data/.gitattributes +1 -0
  5. data/.gitignore +22 -0
  6. data/.rubocop.yml +31 -0
  7. data/CHANGELOG.md +280 -0
  8. data/CODE_OF_CONDUCT.md +31 -0
  9. data/Gemfile +2 -0
  10. data/ISSUE_TEMPLATE.md +38 -0
  11. data/MIT-LICENSE +23 -0
  12. data/README.md +504 -0
  13. data/Rakefile +62 -0
  14. data/VERSION +1 -0
  15. data/bin/defncopy-ttds +3 -0
  16. data/bin/tsql-ttds +3 -0
  17. data/docker-compose.yml +34 -0
  18. data/exe/.keep +0 -0
  19. data/ext/tiny_tds/client.c +499 -0
  20. data/ext/tiny_tds/client.h +53 -0
  21. data/ext/tiny_tds/extconf.rb +92 -0
  22. data/ext/tiny_tds/extconsts.rb +15 -0
  23. data/ext/tiny_tds/result.c +634 -0
  24. data/ext/tiny_tds/result.h +32 -0
  25. data/ext/tiny_tds/tiny_tds_ext.c +12 -0
  26. data/ext/tiny_tds/tiny_tds_ext.h +17 -0
  27. data/lib/tiny_tds/3.1/tiny_tds.so +0 -0
  28. data/lib/tiny_tds/3.2/tiny_tds.so +0 -0
  29. data/lib/tiny_tds/bin.rb +104 -0
  30. data/lib/tiny_tds/client.rb +136 -0
  31. data/lib/tiny_tds/error.rb +14 -0
  32. data/lib/tiny_tds/gem.rb +27 -0
  33. data/lib/tiny_tds/result.rb +7 -0
  34. data/lib/tiny_tds/version.rb +3 -0
  35. data/lib/tiny_tds.rb +61 -0
  36. data/patches/freetds/1.00.27/0001-mingw_missing_inet_pton.diff +34 -0
  37. data/patches/freetds/1.00.27/0002-Don-t-use-MSYS2-file-libws2_32.diff +28 -0
  38. data/patches/libiconv/1.14/1-avoid-gets-error.patch +17 -0
  39. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/bsqldb.exe +0 -0
  40. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/datacopy.exe +0 -0
  41. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/defncopy.exe +0 -0
  42. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/freebcp.exe +0 -0
  43. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/libct-4.dll +0 -0
  44. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/libsybdb-5.dll +0 -0
  45. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/osql +388 -0
  46. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/tdspool.exe +0 -0
  47. data/ports/x64-mingw-ucrt/freetds/1.1.24/bin/tsql.exe +0 -0
  48. data/ports/x64-mingw-ucrt/freetds/1.1.24/lib/libct.dll.a +0 -0
  49. data/ports/x64-mingw-ucrt/freetds/1.1.24/lib/libct.la +41 -0
  50. data/ports/x64-mingw-ucrt/freetds/1.1.24/lib/libsybdb.dll.a +0 -0
  51. data/ports/x64-mingw-ucrt/freetds/1.1.24/lib/libsybdb.la +41 -0
  52. data/ports/x64-mingw-ucrt/libiconv/1.15/bin/iconv.exe +0 -0
  53. data/ports/x64-mingw-ucrt/libiconv/1.15/bin/libcharset-1.dll +0 -0
  54. data/ports/x64-mingw-ucrt/libiconv/1.15/bin/libiconv-2.dll +0 -0
  55. data/ports/x64-mingw-ucrt/libiconv/1.15/lib/charset.alias +4 -0
  56. data/ports/x64-mingw-ucrt/libiconv/1.15/lib/libcharset.dll.a +0 -0
  57. data/ports/x64-mingw-ucrt/libiconv/1.15/lib/libcharset.la +41 -0
  58. data/ports/x64-mingw-ucrt/libiconv/1.15/lib/libiconv.dll.a +0 -0
  59. data/ports/x64-mingw-ucrt/libiconv/1.15/lib/libiconv.la +41 -0
  60. data/ports/x64-mingw-ucrt/openssl/1.1.1s/bin/c_rehash +251 -0
  61. data/ports/x64-mingw-ucrt/openssl/1.1.1s/bin/libcrypto-1_1-x64.dll +0 -0
  62. data/ports/x64-mingw-ucrt/openssl/1.1.1s/bin/libssl-1_1-x64.dll +0 -0
  63. data/ports/x64-mingw-ucrt/openssl/1.1.1s/bin/openssl.exe +0 -0
  64. data/ports/x64-mingw-ucrt/openssl/1.1.1s/lib/libcrypto.a +0 -0
  65. data/ports/x64-mingw-ucrt/openssl/1.1.1s/lib/libcrypto.dll.a +0 -0
  66. data/ports/x64-mingw-ucrt/openssl/1.1.1s/lib/libssl.a +0 -0
  67. data/ports/x64-mingw-ucrt/openssl/1.1.1s/lib/libssl.dll.a +0 -0
  68. data/setup_cimgruby_dev.sh +25 -0
  69. data/start_dev.sh +21 -0
  70. data/tasks/native_gem.rake +23 -0
  71. data/tasks/package.rake +8 -0
  72. data/tasks/ports/freetds.rb +37 -0
  73. data/tasks/ports/libiconv.rb +26 -0
  74. data/tasks/ports/openssl.rb +62 -0
  75. data/tasks/ports/recipe.rb +64 -0
  76. data/tasks/ports.rake +108 -0
  77. data/tasks/test.rake +9 -0
  78. data/test/benchmark/query.rb +77 -0
  79. data/test/benchmark/query_odbc.rb +106 -0
  80. data/test/benchmark/query_tinytds.rb +126 -0
  81. data/test/bin/install-freetds.sh +20 -0
  82. data/test/bin/install-mssql.ps1 +31 -0
  83. data/test/bin/install-mssqltools.sh +9 -0
  84. data/test/bin/install-openssl.sh +18 -0
  85. data/test/bin/setup_tinytds_db.sh +7 -0
  86. data/test/bin/setup_volume_permissions.sh +10 -0
  87. data/test/client_test.rb +275 -0
  88. data/test/gem_test.rb +177 -0
  89. data/test/result_test.rb +814 -0
  90. data/test/schema/1px.gif +0 -0
  91. data/test/schema/sqlserver_2000.sql +140 -0
  92. data/test/schema/sqlserver_2005.sql +140 -0
  93. data/test/schema/sqlserver_2008.sql +140 -0
  94. data/test/schema/sqlserver_2014.sql +140 -0
  95. data/test/schema/sqlserver_2016.sql +140 -0
  96. data/test/schema/sqlserver_azure.sql +140 -0
  97. data/test/schema/sybase_ase.sql +138 -0
  98. data/test/schema_test.rb +443 -0
  99. data/test/sql/db-create.sql +18 -0
  100. data/test/sql/db-login.sql +38 -0
  101. data/test/test_helper.rb +280 -0
  102. data/test/thread_test.rb +98 -0
  103. data/tiny_tds.gemspec +31 -0
  104. metadata +267 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,280 @@
1
+ ## 2.1.6
2
+
3
+ * Add Ruby 3.0, 3.1, and 3.2 to the cross compile list
4
+ * Fix segfault when asking if client was dead after closing it. Fixes #519.
5
+ * Mark `alloc` function as undefined on `TinyTds::Result`. Fixes #515.
6
+ * Fix Gem installation on Windows by adding default freetds msys path. Fixes #522
7
+ * Search for `freetds` in `/opt/homebrew` when installing on Apple Silicon. Fixes #484, #492 and #508.
8
+
9
+ ## 2.1.5
10
+
11
+ * Fix compilation errors for Amazon Linux 1. Fixes #495.
12
+ * Fix segfault for login timeouts
13
+
14
+ ## 2.1.4
15
+
16
+ * Improve handling of network related timeouts
17
+ * Fix error reporting when preceded by info message
18
+
19
+ ## 2.1.3
20
+
21
+ * Removed old/unused appveyor config
22
+ * Remove old Rubies from CI & cross compile list
23
+ * Add Ruby 2.6 and 2.7 to the cross compile list
24
+
25
+ ## 2.1.2
26
+
27
+ * Use Kernel.BigDecimal vs BigDecimal.new. Fixes #409.
28
+ * Change `DBSETUTF16` abscence warning message. Fixes #410.
29
+ * Add Windows binary for Ruby-2.5. Fixes #408.
30
+
31
+ ## 2.1.1
32
+
33
+ * Move message_handler from a shared value to userdata.
34
+
35
+
36
+ ## 2.1.0
37
+
38
+ * Support RubyInstaller2 for Windows. Fixes #365.
39
+ * Support the FREETDS_DIR environment variable. Fixes #371.
40
+ * Rename binstubs to tsql-ttds and defncopy-ttds
41
+ * Support separate timeout values per connection Fixes #348.
42
+ * Allow client proc to capture INFO messages. Fixes #352.
43
+ * Use official HTTP mirrors instead of FTP. Fixes #384.
44
+
45
+
46
+ ## 2.0.0
47
+
48
+ * Stop building FreeTDS as a part of the extension build.
49
+
50
+
51
+ ## 1.3.0
52
+
53
+ * FreeTDS: Link libgcc statically for Windows. (#351) Fixes #349.
54
+
55
+
56
+ ## 1.2.0
57
+
58
+ * Use OpenSSL v1.1.0e & FreeTDS v1.00.27 for Windows builds.
59
+
60
+
61
+ ## 1.1.0
62
+
63
+ * Use rake-compiler-dock v0.6.0
64
+ * Handle SYBVARIANT types from SQL function. Fixes #317. Fixed #321.
65
+ * Fix `use_utf16` optoin for booleans. Fixes #314
66
+ * Add `-q` check for bin puts. Fixes #318
67
+ * Use FreeTDS 1.00.21.
68
+ * Appveyor tests only 2012, 2014 with one Ruby, 23-x64.
69
+ * CircleCI & TravisCI both test 2016.
70
+
71
+
72
+ ## 1.0.5
73
+
74
+ * Windows Static Builds - Use FreeTDS 1.00.15, OpenSSL 1.0.2j.
75
+ * Appveyor tests 2012, 2014, 2016.
76
+ * Error messages greater than 1024 chars generates a buffer overflow. Fixes #293.
77
+ * Ensures numeric options are treated numerically Fixes #303.
78
+ * New `:contained` login option. May deprecate `:azure`. Fixes #292.
79
+ * New `:use_utf16` login option. Toggle UCS-2 or UTF-16. Default true.
80
+
81
+
82
+ ## 1.0.4
83
+
84
+ * Use FreeTDS 1.0 final
85
+
86
+
87
+ ## 1.0.3
88
+
89
+ * Use FreeTDS 1.0rc5 for cross compile windows gems.
90
+ * Ensure we only work with latest FreeTDS v0.95.x or higher.
91
+
92
+
93
+ ## 1.0.2
94
+
95
+ * Cross compile w/2.3.0 using rake-compiler-dock ~> 0.5.1. Fixes #268 #270.
96
+ * Use FreeTDS 1.0rc4 for cross compile windows gems.
97
+
98
+
99
+ ## 1.0.1
100
+
101
+ * Fix ruby exe's in non-platform gem.
102
+
103
+
104
+ ## 1.0.0
105
+
106
+ * Tested with FreeTDS 1.0.
107
+ * Add emoji support by default using FreeTDS v1.0 in docs.
108
+
109
+
110
+ * 0.9.5 * (release candidates only)
111
+
112
+ * Binstub wrappers for `tsql`. Fixes #227 #251
113
+ * Add support for 2008 data types. Must use TDSVER 7.3 or higher. Fixes #244 #251
114
+ - [date]
115
+ - [datetime2]
116
+ - [datetimeoffset]
117
+ - [time]
118
+ * Default FreeTDS to 0.95. Support 0.91 Alternate Fixes #233
119
+ - Allow our `tds_version` to mirror TDSVER env var. Ex '7.3' vs '73'.
120
+ - Change error handler for `SYBEICONVO` to hard return INT_CANCEL.
121
+ * Made sure Azure logins are user@short vs. long domain. Fixes #229
122
+ * Removed Ruby 1.9.3 from CI builds.
123
+ * CI now tests Azure too.
124
+ * Fixed compiler warnings on all platforms. Fixed #241
125
+ * FreeTDS - Remove support for bad iconv.
126
+
127
+
128
+ ## 0.7.0
129
+
130
+ * Refactor build of FreeTDS & Iconv recipes. Add OpenSSL. Merged #207.
131
+ * Ensure zero terminated strings, where C-str pointers are expected. Use StringValueCStr() Fixes #208.
132
+ * Revert 999fa571 so timeouts do not kill the client. Fixes #179.
133
+ * Remove `sspi_w_kerberos.diff` patch. Not needed anymore.
134
+ * Tested again on Azure. Added notes to README on recommended settings.
135
+ * Replace `rb_thread_blocking_region` (removed in Ruby 2.2.0) w/`rb_thread_call_without_gvl`. Fixes #182.
136
+ * Remove 30 char password warning. Fixes #172.
137
+ * Remove Ruby 1.8.6 support. We always use Time vs edge case DateTime.
138
+
139
+
140
+ ## 0.6.2
141
+
142
+ * Support an optional environment variable to find FreeTDS. Fixes #128.
143
+ * Allow Support for 31+ Character Usernames/Passwords. Fixes #134. Thanks @wbond.
144
+ * Stronger Global VM Lock support for nonblocking connections. Fixes #133. Thanks @wbond.
145
+ * Timeout fix for working with Azure SQL. Fixes #138.
146
+ * Correctly handle requests that return multiple results sets via `.do`, such
147
+ as backups and restores. Fixes #150.
148
+
149
+
150
+ ## 0.6.1
151
+
152
+ Use both dbsetversion() vs. dbsetlversion. Partially reverts #62.
153
+
154
+
155
+ ## 0.6.0
156
+
157
+ * Use dbsetversion() vs. dbsetlversion. Fixes #62.
158
+ * Remove Ruby 1.8 support.
159
+ * Implement misc rb_thread_blocking_region support. Fixes #121. Thanks @lepfhty.
160
+ * Test FreeTDS v0.91.89 patch release.
161
+ * Fix lost connection handling. Fixes #124. Thanks @krzcho.
162
+ * Remove unused variable. Fixes #103. Thanks @jeremyevans.
163
+ * Remove need to specify username for Windows Authentication.
164
+ * Use proper SQL for returning IDENTITY with Sybase. Fixes #95.
165
+ * Compile windows with `--enable-sspi`.
166
+ * Allow MiniPortile to build any FreeTDS version we need. Fixes #76.
167
+ * Always convert password option to string. Fixes #92.
168
+ * Move test system to real MiniTest::Spec. All tests pass on Azure too.
169
+ * Raise and handle encoding errors on DB writes. Fixes #89.
170
+
171
+
172
+ ## 0.5.1
173
+
174
+ * Change how we configure with iconv, basically it is always needed. Fixes #11 & #69.
175
+
176
+
177
+ ## 0.5.0
178
+
179
+ * Copy mysql2s handling of Time and Datetime so 64bit systems are leveraged. Fixes #46 and #47. Thanks @lsylvester!
180
+ * Add CFLAGS='-fPIC' for libtool. Fix TDS version configs in our ports file. Document. Fixes #45
181
+ * Update our TDS version constants to reflect changed 8.0/9.0 to 7.1/7.2 DBLIB versions in FreeTDS
182
+ while making it backward compatible, again like FreeTDS. Even tho you can not configure FreeTDS with
183
+ TDS version 7.2 or technically even use it, I added tests to prove that we correctly handle both
184
+ varchar(max) and nvarchar(max) with large amounts of data.
185
+ * FreeTDS 0.91 has been released. Update our port scripts.
186
+ * Add test for 0.91 and higher to handle incorrect syntax in sp_executesql.
187
+ * Returning empty result sets with a command batch that has multiple statements is now the default. Use :empty_sets => false to override.
188
+ * Do not raise a TinyTds::Error with our message handler unless the severity is greater than 10.
189
+
190
+
191
+ ## 0.4.5
192
+
193
+ * Includes precompiled Windows binaries for FreeTDS 0.91rc2 & LibIconv. No precompiled OpenSSL yet for Windows to SQL Azure.
194
+ * Fixed symbolized unicode column names.
195
+ * Use same bigint ruby functions to return identity. Hopefully fixes #19.
196
+ * Release static libs for Windows.
197
+ * Change how :host/:port are implemented. Now sending "host:port" to :dataserver.
198
+
199
+
200
+ ## 0.4.4
201
+
202
+ * New :host/:port connection options. Removes need for freetds.conf file.
203
+
204
+
205
+ ## 0.4.3
206
+
207
+ * New Client#active? method to check for good connection. Always use this abstract method.
208
+ * Better SYBEWRIT "Write to SQL Server failed." error handling. New Client#dead? check.
209
+ * Azure tested using latest FreeTDS with submitted patch. https://gist.github.com/889190
210
+
211
+
212
+ ## 0.4.2
213
+
214
+ * Iconv is a dep only when compiling locally. However, left in the ability to configure
215
+ it for native gem installation but you must use
216
+ --enable-iconv before using --with-iconv-dir=/some/dir
217
+ * Really fix what 0.4.1 was supposed to do, force SYBDBLIB compile.
218
+
219
+
220
+ ## 0.4.1
221
+
222
+ * Undefine MSDBLIB in case others have explicitly compiled FreeTDS with "MS db-lib source compatibility: yes".
223
+
224
+
225
+ ## 0.4.0
226
+
227
+ * Allow SYBEICONVI errors to pass thru so that bad data is converted to ? marks.
228
+ * Build native deps using MiniPortile [Luis Lavena]
229
+ * Allow Result#fields to be called before iterating over the results.
230
+ * Two new client helper methods, #sqlsent? and #canceled?. Possible to use these to determine current
231
+ state of the client and the need to use Result#cancel to stop processing active results. It is also
232
+ safe to call Result#cancel over and over again.
233
+ * Look for the syb headers only.
234
+ * Fix minitest global matchers warnings.
235
+ * Fix test warnings.
236
+
237
+
238
+ ## 0.3.2
239
+
240
+ * Small changes while testing JRuby. Using options hash for connect vs many args.
241
+
242
+
243
+ ## 0.3.1
244
+
245
+ * Fix bad gem build.
246
+
247
+
248
+ ## 0.3.0
249
+
250
+ * Access stored procedure return codes.
251
+ * Make sure dead or not enabled connections are handled.
252
+ * Fix bad client after timeout & read from server errors.
253
+
254
+
255
+ ## 0.2.3
256
+
257
+ * Do not use development ruby/version, but simple memoize an eval check on init to find out, for 1.8.6 reflection.
258
+
259
+
260
+ ## 0.2.2
261
+
262
+ * Fixed failing test in Ruby 1.8.6. DateTime doesn't support fractional seconds greater than 59.
263
+ See: http://redmine.ruby-lang.org/issues/show/1490 [Erik Bryn]
264
+
265
+
266
+ ## 0.2.1
267
+
268
+ * Compatibility with 32-bit systems. Better cross language testing. [Klaus Gundermann]
269
+
270
+
271
+ ## 0.2.0
272
+
273
+ * Convert GUID's in a more compatible way. [Klaus Gundermann]
274
+ * Handle multiple result sets in command buffer or stored procs. [Ken Collins]
275
+ * Fixed some compiler warnings. [Erik Bryn]
276
+ * Avoid segfault related to smalldatetime conversion. [Erik Bryn]
277
+ * Properly encode column names in 1.9. [Erik Bryn]
278
+
279
+
280
+ ## 0.1.0 Initial release!
@@ -0,0 +1,31 @@
1
+ Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all
4
+ people who contribute through reporting issues, posting feature requests,
5
+ updating documentation, submitting pull requests or patches, and other
6
+ activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, or religion.
12
+
13
+ Examples of unacceptable behavior by participants include the use of sexual
14
+ language or imagery, derogatory comments or personal attacks, trolling, public
15
+ or private harassment, insults, or other unprofessional conduct.
16
+
17
+ Project maintainers have the right and responsibility to remove, edit, or
18
+ reject comments, commits, code, wiki edits, issues, and other contributions
19
+ that are not aligned to this Code of Conduct. Project maintainers who do not
20
+ follow the Code of Conduct may be removed from the project team.
21
+
22
+ This code of conduct applies both within project spaces and in public spaces
23
+ when an individual is representing the project or its community.
24
+
25
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
26
+ reported by opening an issue or contacting one or more of the project
27
+ maintainers.
28
+
29
+ This Code of Conduct is adapted from the Contributor Covenant
30
+ (http://contributor-covenant.org), version 1.1.0, available at
31
+ http://contributor-covenant.org/version/1/1/0/
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/ISSUE_TEMPLATE.md ADDED
@@ -0,0 +1,38 @@
1
+ ## Before submitting an issue please check these first!
2
+
3
+ * On Windows? If so, do you need devkit for your ruby install?
4
+ * Using Ubuntu? If so, you may have forgotten to install FreeTDS first.
5
+ * Are you using FreeTDS 0.95.80 or later? Check `$ tsql -C` to find out.
6
+ * If not, please update then uninstall the TinyTDS gem and re-install it.
7
+ * Have you made sure to [enable SQL Server authentication](http://bit.ly/1Kw3set)?
8
+ * Doing work with threads and the raw client? Use the ConnectionPool gem?
9
+
10
+ If none of these help. Please fill out the following:
11
+
12
+ ## Environment
13
+
14
+ **Operating System**
15
+
16
+ Please describe your operating system and version here.
17
+ If unsure please try the following from the command line:
18
+
19
+ * For Windows: `systeminfo | findstr /C:OS`
20
+ * For Linux: `lsb_release -a; uname -a`
21
+ * For Mac OSX: `sw_vers`
22
+
23
+ **TinyTDS Version and Information**
24
+
25
+ ```
26
+ Please paste the full output of `ttds-tsql -C` (or `tsql -C` for older versions
27
+ of TinyTDS) here. If TinyTDS does not install, please provide the gem version.
28
+ ```
29
+
30
+
31
+ **FreeTDS Version**
32
+
33
+ Please provide your system's FreeTDS version. If you are using the pre-compiled
34
+ windows gem you may omit this section.
35
+
36
+ ## Description
37
+
38
+ Please describe the bug or feature request here.
data/MIT-LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2010-2014 Ken Collins <ken@metaskills.net>,
2
+ Will Bond (Veracross LLC) <wbond@breuer.com>
3
+
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ OTHER DEALINGS IN THE SOFTWARE.