tiny_tds 2.1.5-x64-mingw32 → 2.1.7-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +409 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +10 -1
- data/Gemfile +0 -7
- data/README.md +2 -4
- data/Rakefile +19 -10
- data/VERSION +1 -1
- data/docker-compose.yml +19 -7
- data/ext/tiny_tds/client.c +2 -0
- data/ext/tiny_tds/extconf.rb +21 -2
- data/ext/tiny_tds/extconsts.rb +1 -1
- data/ext/tiny_tds/result.c +1 -0
- data/lib/tiny_tds/2.4/tiny_tds.so +0 -0
- data/lib/tiny_tds/2.5/tiny_tds.so +0 -0
- data/lib/tiny_tds/2.6/tiny_tds.so +0 -0
- data/lib/tiny_tds/2.7/tiny_tds.so +0 -0
- data/lib/tiny_tds/3.0/tiny_tds.so +0 -0
- data/lib/tiny_tds/gem.rb +1 -6
- data/ports/x64-mingw32/freetds/1.1.24/bin/bsqldb.exe +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/datacopy.exe +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/defncopy.exe +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/freebcp.exe +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/libct-4.dll +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/libsybdb-5.dll +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/tdspool.exe +0 -0
- data/ports/x64-mingw32/freetds/1.1.24/bin/tsql.exe +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/freetds/1.1.24/lib/libct.dll.a +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/freetds/1.1.24/lib/libct.la +2 -2
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/freetds/1.1.24/lib/libsybdb.dll.a +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/freetds/1.1.24/lib/libsybdb.la +2 -2
- data/ports/x64-mingw32/libiconv/1.15/bin/iconv.exe +0 -0
- data/ports/x64-mingw32/libiconv/1.15/bin/libcharset-1.dll +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/libiconv/1.15/bin/libiconv-2.dll +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/libiconv/1.15/lib/libcharset.dll.a +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/libiconv/1.15/lib/libcharset.la +2 -2
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/libiconv/1.15/lib/libiconv.dll.a +0 -0
- data/ports/{x86_64-w64-mingw32 → x64-mingw32}/libiconv/1.15/lib/libiconv.la +2 -2
- data/ports/x64-mingw32/openssl/1.1.1s/bin/c_rehash +251 -0
- data/ports/x64-mingw32/openssl/1.1.1s/bin/libcrypto-1_1-x64.dll +0 -0
- data/ports/x64-mingw32/openssl/1.1.1s/bin/libssl-1_1-x64.dll +0 -0
- data/ports/x64-mingw32/openssl/1.1.1s/bin/openssl.exe +0 -0
- data/ports/x64-mingw32/openssl/1.1.1s/lib/libcrypto.a +0 -0
- data/ports/{x86_64-w64-mingw32/openssl/1.1.1d → x64-mingw32/openssl/1.1.1s}/lib/libcrypto.dll.a +0 -0
- data/ports/x64-mingw32/openssl/1.1.1s/lib/libssl.a +0 -0
- data/ports/{x86_64-w64-mingw32/openssl/1.1.1d → x64-mingw32/openssl/1.1.1s}/lib/libssl.dll.a +0 -0
- data/setup_cimgruby_dev.sh +25 -0
- data/start_dev.sh +21 -0
- data/tasks/native_gem.rake +15 -6
- data/tasks/ports/libiconv.rb +0 -17
- data/tasks/ports/recipe.rb +16 -4
- data/tasks/ports.rake +58 -35
- data/test/bin/install-mssql.ps1 +31 -0
- data/test/bin/install-mssqltools.sh +9 -0
- data/test/bin/setup_tinytds_db.sh +7 -0
- data/test/bin/setup_volume_permissions.sh +10 -0
- data/test/client_test.rb +6 -6
- data/test/gem_test.rb +11 -13
- data/test/sql/db-create.sql +18 -0
- data/test/sql/db-login.sql +38 -0
- data/test/test_helper.rb +16 -7
- data/tiny_tds.gemspec +7 -6
- metadata +69 -50
- data/.travis.yml +0 -25
- data/appveyor.yml +0 -72
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/bsqldb.exe +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/datacopy.exe +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/defncopy.exe +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/freebcp.exe +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/libct-4.dll +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/libsybdb-5.dll +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/tdspool.exe +0 -0
- data/ports/x86_64-w64-mingw32/freetds/1.1.24/bin/tsql.exe +0 -0
- data/ports/x86_64-w64-mingw32/libiconv/1.15/bin/iconv.exe +0 -0
- data/ports/x86_64-w64-mingw32/libiconv/1.15/bin/libcharset-1.dll +0 -0
- data/ports/x86_64-w64-mingw32/openssl/1.1.1d/bin/c_rehash +0 -232
- data/ports/x86_64-w64-mingw32/openssl/1.1.1d/bin/libcrypto-1_1-x64.dll +0 -0
- data/ports/x86_64-w64-mingw32/openssl/1.1.1d/bin/libssl-1_1-x64.dll +0 -0
- data/ports/x86_64-w64-mingw32/openssl/1.1.1d/bin/openssl.exe +0 -0
- data/ports/x86_64-w64-mingw32/openssl/1.1.1d/lib/libcrypto.a +0 -0
- data/ports/x86_64-w64-mingw32/openssl/1.1.1d/lib/libssl.a +0 -0
- data/test/appveyor/dbsetup.ps1 +0 -27
- data/test/appveyor/dbsetup.sql +0 -9
- data/test/bin/setup.sh +0 -19
- /data/ports/{x86_64-w64-mingw32 → x64-mingw32}/freetds/1.1.24/bin/osql +0 -0
- /data/ports/{x86_64-w64-mingw32 → x64-mingw32}/libiconv/1.15/lib/charset.alias +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1028df8897105d331ca597025cc96a7b09b8b14a07d24d19552ba48526b809f
|
4
|
+
data.tar.gz: fe12d2d89a499431604a02a7c6be94a1e662b69fa4f1982887103c20e87f67b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 932cf9a12e200567d3be8b253cd2133ca0bf591a6c44b50cd09867f617c244522c6e69095b157b6d07dc1fe0ded6549e6068f337b268feb6f80ebba9a46f0074
|
7
|
+
data.tar.gz: 0ba338a5899caac4c09fdea4eb1ee8fc5a55b0c670f45f8d7e7ab829f55fd4e0394fdc54ee1ddab43d2db4520d38b376269958f092536478bd4df479d6396ebd
|
@@ -0,0 +1,409 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
orbs:
|
4
|
+
win: circleci/windows@4.1
|
5
|
+
ruby: circleci/ruby@2.0.0
|
6
|
+
|
7
|
+
commands:
|
8
|
+
install-ruby-windows:
|
9
|
+
description: "Install Ruby on Windows"
|
10
|
+
parameters:
|
11
|
+
ruby_version:
|
12
|
+
description: 'version tag for the cimg/ruby container'
|
13
|
+
type: string
|
14
|
+
steps:
|
15
|
+
- run:
|
16
|
+
name: remove pre-installed ruby
|
17
|
+
command: |
|
18
|
+
Get-ChildItem -path 'C:\tools\' -filter Ruby* | Remove-Item -Force -Recurse
|
19
|
+
|
20
|
+
- run:
|
21
|
+
name: download and install ruby devkit
|
22
|
+
command: |
|
23
|
+
$ProgressPreference='SilentlyContinue'
|
24
|
+
|
25
|
+
$uri = 'https://api.github.com/repos/oneclick/rubyinstaller2/tags?per_page=200'
|
26
|
+
$releases = ((Invoke-WebRequest $uri) | ConvertFrom-Json).name | select-string (-join("RubyInstaller-" , "<< parameters.ruby_version >>" ))
|
27
|
+
$target_release = (($releases | Sort-Object -Descending)[0] | Out-String).Trim()
|
28
|
+
$target_version = $target_release.Substring($target_release.Length - 7)
|
29
|
+
$download_uri = "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-$target_version/rubyinstaller-devkit-$target_version-x64.exe"
|
30
|
+
echo "Ruby Target Version Found: $target_version"
|
31
|
+
|
32
|
+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
33
|
+
Invoke-WebRequest -UseBasicParsing -uri $download_uri -OutFile C:\ruby-setup.exe
|
34
|
+
|
35
|
+
echo "Download finished, starting installation of $target_version"
|
36
|
+
C:\ruby-setup.exe /VERYSILENT /NORESTART /ALLUSERS /DIR=C:/Ruby<< parameters.ruby_version >>-x64
|
37
|
+
|
38
|
+
- run:
|
39
|
+
name: ruby diagnostics
|
40
|
+
command: |
|
41
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
42
|
+
echo "Perl Version:"
|
43
|
+
perl --version
|
44
|
+
echo "Ruby Version:"
|
45
|
+
ruby --version
|
46
|
+
echo "Gem Version:"
|
47
|
+
gem --version
|
48
|
+
|
49
|
+
- run:
|
50
|
+
name: install bundler
|
51
|
+
command: |
|
52
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
53
|
+
gem install bundler -v 2.3.26
|
54
|
+
|
55
|
+
jobs:
|
56
|
+
test_linux:
|
57
|
+
parameters:
|
58
|
+
ruby_version:
|
59
|
+
description: 'version tag for the cimg/ruby container'
|
60
|
+
type: string
|
61
|
+
|
62
|
+
machine:
|
63
|
+
image: ubuntu-2004:current
|
64
|
+
|
65
|
+
# be sure to update the ./setup_cimgruby_dev.sh if changes are made to steps below
|
66
|
+
steps:
|
67
|
+
- checkout
|
68
|
+
|
69
|
+
- run:
|
70
|
+
name: start docker-compose build environment
|
71
|
+
command: |
|
72
|
+
sudo ./test/bin/setup_volume_permissions.sh
|
73
|
+
docker-compose up -d
|
74
|
+
echo "Waiting for containers to start..."
|
75
|
+
sleep 10
|
76
|
+
environment:
|
77
|
+
RUBY_VERSION: << parameters.ruby_version >>
|
78
|
+
|
79
|
+
- run:
|
80
|
+
name: install sql prereqs
|
81
|
+
command: |
|
82
|
+
docker exec cimg_ruby bash -c 'sudo -E ./test/bin/install-mssqltools.sh'
|
83
|
+
|
84
|
+
- run:
|
85
|
+
name: setup tiny_tds test database
|
86
|
+
command: |
|
87
|
+
docker exec cimg_ruby bash -c './test/bin/setup_tinytds_db.sh'
|
88
|
+
|
89
|
+
- run:
|
90
|
+
name: bundle install gems
|
91
|
+
command: |
|
92
|
+
docker exec cimg_ruby bash -c 'bundle install'
|
93
|
+
|
94
|
+
- run:
|
95
|
+
name: Write used versions into file
|
96
|
+
command: |
|
97
|
+
docker exec cimg_ruby bash -c 'bundle exec rake ports:version_file'
|
98
|
+
|
99
|
+
- restore_cache:
|
100
|
+
name: restore ports cache
|
101
|
+
keys:
|
102
|
+
- ports-<< parameters.ruby_version >>-{{ arch }}-{{ checksum ".ports_versions" }}
|
103
|
+
- ports-<< parameters.ruby_version >>-{{ arch }}-
|
104
|
+
|
105
|
+
- run:
|
106
|
+
name: compile ports
|
107
|
+
command: |
|
108
|
+
docker exec cimg_ruby bash -c 'bundle exec rake ports'
|
109
|
+
|
110
|
+
- run:
|
111
|
+
name: build gem
|
112
|
+
command: |
|
113
|
+
docker exec cimg_ruby bash -c 'bundle exec rake build'
|
114
|
+
|
115
|
+
- run:
|
116
|
+
name: Fix permissions on ports directory
|
117
|
+
command: |
|
118
|
+
docker exec cimg_ruby bash -c 'sudo chown -R $(id -u):$(id -g) ports'
|
119
|
+
|
120
|
+
- run:
|
121
|
+
name: test gem
|
122
|
+
command: |
|
123
|
+
docker exec cimg_ruby bash -c 'bundle exec rake test'
|
124
|
+
|
125
|
+
- save_cache:
|
126
|
+
name: save ports cache
|
127
|
+
paths:
|
128
|
+
- ./ports
|
129
|
+
key: ports-<< parameters.ruby_version >>-{{ arch }}-{{ arch }}-{{ checksum ".ports_versions" }}
|
130
|
+
|
131
|
+
- store_test_results:
|
132
|
+
path: test/reports
|
133
|
+
|
134
|
+
test_windows:
|
135
|
+
parameters:
|
136
|
+
ruby_version:
|
137
|
+
description: 'version tag for rubydev environment'
|
138
|
+
type: string
|
139
|
+
|
140
|
+
executor:
|
141
|
+
name: win/server-2022
|
142
|
+
shell: powershell.exe
|
143
|
+
|
144
|
+
environment:
|
145
|
+
RAKEOPT: '-rdevkit'
|
146
|
+
TESTOPTS: '-v'
|
147
|
+
MAKE: 'make V=1 -j2'
|
148
|
+
|
149
|
+
steps:
|
150
|
+
- install-ruby-windows:
|
151
|
+
ruby_version: << parameters.ruby_version >>
|
152
|
+
|
153
|
+
- checkout
|
154
|
+
|
155
|
+
- restore_cache:
|
156
|
+
name: restore gem cache
|
157
|
+
keys:
|
158
|
+
- v1-bundle-<< parameters.ruby_version >>-{{ arch }}-{{ .Branch }}-{{ checksum "tiny_tds.gemspec" }}
|
159
|
+
- v1-bundle-<< parameters.ruby_version >>-{{ arch }}-{{ .Branch }}-
|
160
|
+
- v1-bundle-<< parameters.ruby_version >>-{{ arch }}-
|
161
|
+
|
162
|
+
- run:
|
163
|
+
name: bundle install gems
|
164
|
+
command: |
|
165
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
166
|
+
bundle install --path vendor/bundle
|
167
|
+
|
168
|
+
- save_cache:
|
169
|
+
name: save gem cache
|
170
|
+
paths:
|
171
|
+
- ./vendor/bundle
|
172
|
+
key: v1-bundle-<< parameters.ruby_version >>-{{ arch }}-{{ .Branch }}-{{ checksum "tiny_tds.gemspec" }}
|
173
|
+
|
174
|
+
- attach_workspace:
|
175
|
+
at: artifacts
|
176
|
+
|
177
|
+
- run:
|
178
|
+
name: install native gem and restore cross-compiled code from gem
|
179
|
+
command: |
|
180
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
181
|
+
$rubyArchitecture = (ruby -e 'puts RUBY_PLATFORM').Trim()
|
182
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
183
|
+
|
184
|
+
gem install --local --install-dir=./tmp "artifacts/gems/tiny_tds-$gemVersion-$rubyArchitecture.gem"
|
185
|
+
|
186
|
+
# Restore precompiled code
|
187
|
+
$source = (Resolve-Path ".\tmp\gems\tiny_tds-$gemVersion-$rubyArchitecture\lib\tiny_tds").Path
|
188
|
+
$destination = (Resolve-Path ".\lib\tiny_tds").Path
|
189
|
+
Get-ChildItem $source -Recurse -Exclude "*.rb" | Copy-Item -Destination {Join-Path $destination $_.FullName.Substring($source.length)}
|
190
|
+
|
191
|
+
# Restore ports
|
192
|
+
Copy-Item -Path ".\tmp\gems\tiny_tds-$gemVersion-$rubyArchitecture\ports" -Destination "." -Recurse
|
193
|
+
|
194
|
+
- restore_cache:
|
195
|
+
name: restore mssql installation file
|
196
|
+
key: downloads-{{ checksum "test/bin/install-mssql.ps1" }}
|
197
|
+
|
198
|
+
- run:
|
199
|
+
name: setup mssql
|
200
|
+
command: |
|
201
|
+
.\test\bin\install-mssql.ps1
|
202
|
+
|
203
|
+
- save_cache:
|
204
|
+
name: save downloads cache
|
205
|
+
paths:
|
206
|
+
- C:\Downloads
|
207
|
+
key: downloads-{{ checksum "test/bin/install-mssql.ps1" }}
|
208
|
+
|
209
|
+
- run:
|
210
|
+
name: install toxiproxy-server
|
211
|
+
command: |
|
212
|
+
choco install toxiproxy-server --version=2.5.0 -y
|
213
|
+
Start-Process toxiproxy-server
|
214
|
+
|
215
|
+
- run:
|
216
|
+
name: test gem
|
217
|
+
command: |
|
218
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
219
|
+
bundle exec rake test
|
220
|
+
environment:
|
221
|
+
TOXIPROXY_HOST: "localhost"
|
222
|
+
|
223
|
+
- store_test_results:
|
224
|
+
path: test/reports
|
225
|
+
|
226
|
+
- run:
|
227
|
+
name: Rename gem to a consistent name to store artifact
|
228
|
+
command: |
|
229
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
230
|
+
$rubyArchitecture = (ruby -e 'puts RUBY_PLATFORM').Trim()
|
231
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
232
|
+
|
233
|
+
New-Item -Path . -Name "tested_artifact" -ItemType "directory"
|
234
|
+
Move-Item "artifacts/gems/tiny_tds-$gemVersion-$rubyArchitecture.gem" "tested_artifact"
|
235
|
+
|
236
|
+
- store_artifacts:
|
237
|
+
path: tested_artifact
|
238
|
+
|
239
|
+
cross_compile_gem:
|
240
|
+
parameters:
|
241
|
+
platform:
|
242
|
+
description: "Platform to compile the gem resources"
|
243
|
+
type: string
|
244
|
+
|
245
|
+
docker:
|
246
|
+
- image: "ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-<< parameters.platform >>"
|
247
|
+
|
248
|
+
steps:
|
249
|
+
- checkout
|
250
|
+
|
251
|
+
- run:
|
252
|
+
name: bundle install gems
|
253
|
+
command: |
|
254
|
+
bundle install
|
255
|
+
|
256
|
+
- run:
|
257
|
+
name: Write used versions for ports into file
|
258
|
+
command: |
|
259
|
+
rake ports:version_file[<< parameters.platform >>]
|
260
|
+
|
261
|
+
- restore_cache:
|
262
|
+
name: restore ports cache
|
263
|
+
keys:
|
264
|
+
- ports-win-{{ arch }}-{{ checksum ".ports_versions" }}
|
265
|
+
- ports-win-{{ arch }}-
|
266
|
+
|
267
|
+
- run:
|
268
|
+
name: Build gem
|
269
|
+
command: |
|
270
|
+
rake gem:for_platform[<< parameters.platform >>]
|
271
|
+
|
272
|
+
- run:
|
273
|
+
name: Move gems into separate directory before caching
|
274
|
+
command: |
|
275
|
+
mkdir -p artifacts-<< parameters.platform >>/gems
|
276
|
+
mv pkg/*.gem artifacts-<< parameters.platform >>/gems
|
277
|
+
|
278
|
+
- run:
|
279
|
+
name: Remove non-native gem to avoid conflict in workspace
|
280
|
+
command: |
|
281
|
+
gemVersion=$(cat VERSION | tr -d "[:space:]")
|
282
|
+
rm -rf artifacts-<< parameters.platform >>/gems/tiny_tds-$gemVersion.gem
|
283
|
+
|
284
|
+
- store_artifacts:
|
285
|
+
path: artifacts-<< parameters.platform >>/gems
|
286
|
+
|
287
|
+
- save_cache:
|
288
|
+
name: save ports cache
|
289
|
+
paths:
|
290
|
+
- ./ports
|
291
|
+
key: ports-win-{{ arch }}-{{ checksum ".ports_versions" }}
|
292
|
+
|
293
|
+
- persist_to_workspace:
|
294
|
+
name: save gems into workspace
|
295
|
+
root: artifacts-<< parameters.platform >>
|
296
|
+
paths:
|
297
|
+
- gems
|
298
|
+
|
299
|
+
install_windows:
|
300
|
+
parameters:
|
301
|
+
ruby_version:
|
302
|
+
description: 'version tag for rubydev environment'
|
303
|
+
type: string
|
304
|
+
|
305
|
+
executor:
|
306
|
+
name: win/server-2022
|
307
|
+
shell: powershell.exe
|
308
|
+
|
309
|
+
environment:
|
310
|
+
RAKEOPT: '-rdevkit'
|
311
|
+
TESTOPTS: '-v'
|
312
|
+
MAKE: 'make V=1 -j2'
|
313
|
+
|
314
|
+
steps:
|
315
|
+
- install-ruby-windows:
|
316
|
+
ruby_version: << parameters.ruby_version >>
|
317
|
+
|
318
|
+
- run:
|
319
|
+
name: Ensure msys2 installation is complete
|
320
|
+
command: |
|
321
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
322
|
+
|
323
|
+
# on older Ruby version, the msys version shipped with RubyInstaller is quite old
|
324
|
+
# and RubyInstaller will be unable to install anything because of outdated keys
|
325
|
+
# With this those commands, we force to get a new set of keys
|
326
|
+
# see https://www.msys2.org/docs/updating/#potential-issues
|
327
|
+
ridk exec pacman-key --init
|
328
|
+
ridk exec pacman-key --refresh-keys
|
329
|
+
ridk install 1 2 3
|
330
|
+
|
331
|
+
- checkout
|
332
|
+
|
333
|
+
- restore_cache:
|
334
|
+
name: restore gem cache
|
335
|
+
keys:
|
336
|
+
- v1-bundle-<< parameters.ruby_version >>-{{ arch }}-{{ .Branch }}-{{ checksum "tiny_tds.gemspec" }}
|
337
|
+
- v1-bundle-<< parameters.ruby_version >>-{{ arch }}-{{ .Branch }}-
|
338
|
+
- v1-bundle-<< parameters.ruby_version >>-{{ arch }}-
|
339
|
+
|
340
|
+
- run:
|
341
|
+
name: bundle install gems
|
342
|
+
command: |
|
343
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
344
|
+
bundle install --path vendor/bundle
|
345
|
+
|
346
|
+
- save_cache:
|
347
|
+
name: save gem cache
|
348
|
+
paths:
|
349
|
+
- ./vendor/bundle
|
350
|
+
key: v1-bundle-<< parameters.ruby_version >>-{{ arch }}-{{ .Branch }}-{{ checksum "tiny_tds.gemspec" }}
|
351
|
+
|
352
|
+
- run:
|
353
|
+
name: build gem
|
354
|
+
command: |
|
355
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
356
|
+
gem build tiny_tds.gemspec
|
357
|
+
|
358
|
+
- run:
|
359
|
+
name: Install gem
|
360
|
+
command: |
|
361
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
362
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
363
|
+
gem install --local "tiny_tds-$gemVersion.gem"
|
364
|
+
|
365
|
+
- run:
|
366
|
+
name: Check if gem loads correctly
|
367
|
+
command: |
|
368
|
+
$Env:PATH = "C:\\Ruby<< parameters.ruby_version >>-x64\\bin;$Env:PATH"
|
369
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
370
|
+
exit $LASTEXITCODE
|
371
|
+
|
372
|
+
workflows:
|
373
|
+
test_supported_ruby_versions:
|
374
|
+
jobs:
|
375
|
+
- cross_compile_gem:
|
376
|
+
matrix:
|
377
|
+
parameters:
|
378
|
+
platform:
|
379
|
+
- "x86-mingw32"
|
380
|
+
- "x64-mingw32"
|
381
|
+
- "x64-mingw-ucrt"
|
382
|
+
- test_windows:
|
383
|
+
requires:
|
384
|
+
- cross_compile_gem
|
385
|
+
matrix: &ruby_versions
|
386
|
+
parameters:
|
387
|
+
ruby_version:
|
388
|
+
- '2.4'
|
389
|
+
- '2.5'
|
390
|
+
- '2.6'
|
391
|
+
- '2.7'
|
392
|
+
- '3.0'
|
393
|
+
- '3.1'
|
394
|
+
- '3.2'
|
395
|
+
- '3.3'
|
396
|
+
- test_linux:
|
397
|
+
matrix: *ruby_versions
|
398
|
+
|
399
|
+
- install_windows:
|
400
|
+
matrix:
|
401
|
+
parameters:
|
402
|
+
ruby_version:
|
403
|
+
- '2.5'
|
404
|
+
- '2.6'
|
405
|
+
- '2.7'
|
406
|
+
- '3.0'
|
407
|
+
- '3.1'
|
408
|
+
- '3.2'
|
409
|
+
- '3.3'
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1
|
-
##
|
1
|
+
## 2.1.7
|
2
|
+
* Add Ruby 3.3 to the cross compile list
|
3
|
+
|
4
|
+
## 2.1.6
|
5
|
+
|
6
|
+
* Add Ruby 3.0, 3.1, and 3.2 to the cross compile list
|
7
|
+
* Fix segfault when asking if client was dead after closing it. Fixes #519.
|
8
|
+
* Mark `alloc` function as undefined on `TinyTds::Result`. Fixes #515.
|
9
|
+
* Fix Gem installation on Windows by adding default freetds msys path. Fixes #522
|
10
|
+
* Search for `freetds` in `/opt/homebrew` when installing on Apple Silicon. Fixes #484, #492 and #508.
|
2
11
|
|
3
12
|
## 2.1.5
|
4
13
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
# TinyTDS - Simple and fast FreeTDS bindings for Ruby using DB-Library.
|
2
2
|
|
3
|
-
* [](https://ci.appveyor.com/project/rails-sqlserver/tiny-tds/branch/master) - Appveyor
|
3
|
+
* [](https://app.circleci.com/pipelines/github/rails-sqlserver/tiny_tds) - CircleCi
|
5
4
|
* [](https://rubygems.org/gems/tiny_tds) - Gem Version
|
6
5
|
* [](https://gitter.im/rails-sqlserver/activerecord-sqlserver-adapter) - Community
|
7
6
|
|
8
|
-
|
9
7
|
## About TinyTDS
|
10
8
|
|
11
9
|
The TinyTDS gem is meant to serve the extremely common use-case of connecting, querying and iterating over results to Microsoft SQL Server or Sybase databases from Ruby using the FreeTDS's DB-Library API.
|
@@ -409,7 +407,7 @@ For the convenience of Windows users, TinyTDS ships pre-compiled gems for suppor
|
|
409
407
|
Run the following rake task to compile the gems for Windows. This will check the availability of [Docker](https://www.docker.com/) (and boot2docker on Windows or OS-X) and will give some advice for download and installation. When docker is running, it will download the docker image (once-only) and start the build:
|
410
408
|
|
411
409
|
```
|
412
|
-
$ rake gem:
|
410
|
+
$ rake gem:native
|
413
411
|
```
|
414
412
|
|
415
413
|
The compiled gems will exist in `./pkg` directory.
|
data/Rakefile
CHANGED
@@ -6,19 +6,33 @@ require 'rake/extensiontask'
|
|
6
6
|
require_relative './ext/tiny_tds/extconsts'
|
7
7
|
|
8
8
|
SPEC = Gem::Specification.load(File.expand_path('../tiny_tds.gemspec', __FILE__))
|
9
|
+
|
10
|
+
ruby_cc_ucrt_versions = "3.3.0:3.2.0:3.1.0".freeze
|
11
|
+
ruby_cc_mingw32_versions = "3.0.0:2.7.0:2.6.0:2.5.0:2.4.0".freeze
|
12
|
+
|
9
13
|
GEM_PLATFORM_HOSTS = {
|
10
|
-
'x86-mingw32' =>
|
11
|
-
|
14
|
+
'x86-mingw32' => {
|
15
|
+
host: 'i686-w64-mingw32',
|
16
|
+
ruby_versions: ruby_cc_mingw32_versions
|
17
|
+
},
|
18
|
+
'x64-mingw32' => {
|
19
|
+
host: 'x86_64-w64-mingw32',
|
20
|
+
ruby_versions: ruby_cc_mingw32_versions
|
21
|
+
},
|
22
|
+
'x64-mingw-ucrt' => {
|
23
|
+
host: 'x86_64-w64-mingw32',
|
24
|
+
ruby_versions: ruby_cc_ucrt_versions
|
25
|
+
},
|
12
26
|
}
|
13
27
|
|
14
28
|
# Add our project specific files to clean for a rebuild
|
15
29
|
CLEAN.include FileList["{ext,lib}/**/*.{so,#{RbConfig::CONFIG['DLEXT']},o}"],
|
16
|
-
|
30
|
+
FileList["exe/*"]
|
17
31
|
|
18
32
|
# Clobber all our temp files and ports files including .install files
|
19
33
|
# and archives
|
20
34
|
CLOBBER.include FileList["tmp/**/*"],
|
21
|
-
|
35
|
+
FileList["ports/**/*"].exclude(%r{^ports/archives})
|
22
36
|
|
23
37
|
Dir['tasks/*.rake'].sort.each { |f| load f }
|
24
38
|
|
@@ -32,15 +46,11 @@ Rake::ExtensionTask.new('tiny_tds', SPEC) do |ext|
|
|
32
46
|
# The fat binary gem doesn't depend on the freetds package, since it bundles the library.
|
33
47
|
spec.metadata.delete('msys2_mingw_dependencies')
|
34
48
|
|
35
|
-
platform_host_map = GEM_PLATFORM_HOSTS
|
36
|
-
gemplat = spec.platform.to_s
|
37
|
-
host = platform_host_map[gemplat]
|
38
|
-
|
39
49
|
# We don't need the sources in a fat binary gem
|
40
50
|
spec.files = spec.files.reject { |f| f =~ %r{^ports\/archives/} }
|
41
51
|
|
42
52
|
# Make sure to include the ports binaries and libraries
|
43
|
-
spec.files += FileList["ports/#{
|
53
|
+
spec.files += FileList["ports/#{spec.platform.to_s}/**/**/{bin,lib}/*"].exclude do |f|
|
44
54
|
File.directory? f
|
45
55
|
end
|
46
56
|
|
@@ -50,4 +60,3 @@ end
|
|
50
60
|
|
51
61
|
task build: [:clean, :compile]
|
52
62
|
task default: [:build, :test]
|
53
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.7
|
data/docker-compose.yml
CHANGED
@@ -7,16 +7,28 @@ services:
|
|
7
7
|
mssql:
|
8
8
|
image: metaskills/mssql-server-linux-tinytds:2017-GA
|
9
9
|
container_name: sqlserver
|
10
|
+
environment:
|
11
|
+
ACCEPT_EULA: Y
|
12
|
+
SA_PASSWORD: super01S3cUr3
|
10
13
|
ports:
|
11
14
|
- "1433:1433"
|
12
|
-
|
13
|
-
- main-network
|
15
|
+
network_mode: "host"
|
14
16
|
|
15
17
|
toxiproxy:
|
16
18
|
image: shopify/toxiproxy
|
17
19
|
container_name: toxiproxy
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
command: '/toxiproxy -host=127.0.0.1'
|
21
|
+
network_mode: "host"
|
22
|
+
|
23
|
+
cimgruby:
|
24
|
+
image: "cimg/ruby:${RUBY_VERSION:-2.7}"
|
25
|
+
container_name: cimg_ruby
|
26
|
+
environment:
|
27
|
+
TESTOPTS: '-v'
|
28
|
+
TINYTDS_UNIT_HOST: '127.0.0.1'
|
29
|
+
SA_PASSWORD: super01S3cUr3
|
30
|
+
TOXIPROXY_HOST: '127.0.0.1'
|
31
|
+
command: tail -F anything
|
32
|
+
volumes:
|
33
|
+
- .:/home/circleci/project
|
34
|
+
network_mode: "host"
|
data/ext/tiny_tds/client.c
CHANGED
@@ -232,6 +232,7 @@ static void rb_tinytds_client_free(void *ptr) {
|
|
232
232
|
dbloginfree(cwrap->login);
|
233
233
|
if (cwrap->client && !cwrap->closed) {
|
234
234
|
dbclose(cwrap->client);
|
235
|
+
cwrap->client = NULL;
|
235
236
|
cwrap->closed = 1;
|
236
237
|
cwrap->userdata->closed = 1;
|
237
238
|
}
|
@@ -263,6 +264,7 @@ static VALUE rb_tinytds_close(VALUE self) {
|
|
263
264
|
GET_CLIENT_WRAPPER(self);
|
264
265
|
if (cwrap->client && !cwrap->closed) {
|
265
266
|
dbclose(cwrap->client);
|
267
|
+
cwrap->client = NULL;
|
266
268
|
cwrap->closed = 1;
|
267
269
|
cwrap->userdata->closed = 1;
|
268
270
|
}
|
data/ext/tiny_tds/extconf.rb
CHANGED
@@ -21,9 +21,11 @@ end
|
|
21
21
|
do_help if arg_config('--help')
|
22
22
|
|
23
23
|
# Make sure to check the ports path for the configured host
|
24
|
-
|
24
|
+
architecture = RbConfig::CONFIG['arch']
|
25
|
+
architecture = "x86-mingw32" if architecture == "i386-mingw32"
|
26
|
+
|
25
27
|
project_dir = File.expand_path("../../..", __FILE__)
|
26
|
-
freetds_ports_dir = File.join(project_dir, 'ports',
|
28
|
+
freetds_ports_dir = File.join(project_dir, 'ports', architecture, 'freetds', FREETDS_VERSION)
|
27
29
|
freetds_ports_dir = File.expand_path(freetds_ports_dir)
|
28
30
|
|
29
31
|
# Add all the special path searching from the original tiny_tds build
|
@@ -33,6 +35,23 @@ DIRS = %w(
|
|
33
35
|
/usr/local
|
34
36
|
)
|
35
37
|
|
38
|
+
if RbConfig::CONFIG['host_os'] =~ /darwin/i
|
39
|
+
# Ruby below 2.7 seems to label the host CPU on Apple Silicon as aarch64
|
40
|
+
# 2.7 and above print is as ARM64
|
41
|
+
target_host_cpu = Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7') ? 'aarch64' : 'arm64'
|
42
|
+
|
43
|
+
if RbConfig::CONFIG['host_cpu'] == target_host_cpu
|
44
|
+
# Homebrew on Apple Silicon installs into /opt/hombrew
|
45
|
+
# https://docs.brew.sh/Installation
|
46
|
+
# On Intel Macs, it is /usr/local, so no changes necessary to DIRS
|
47
|
+
DIRS.unshift("/opt/homebrew")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
if ENV["RI_DEVKIT"] && ENV["MINGW_PREFIX"] # RubyInstaller Support
|
52
|
+
DIRS.unshift(File.join(ENV["RI_DEVKIT"], ENV["MINGW_PREFIX"]))
|
53
|
+
end
|
54
|
+
|
36
55
|
# Add the ports directory if it exists for local developer builds
|
37
56
|
DIRS.unshift(freetds_ports_dir) if File.directory?(freetds_ports_dir)
|
38
57
|
|
data/ext/tiny_tds/extconsts.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
ICONV_VERSION = ENV['TINYTDS_ICONV_VERSION'] || "1.15"
|
3
3
|
ICONV_SOURCE_URI = "http://ftp.gnu.org/pub/gnu/libiconv/libiconv-#{ICONV_VERSION}.tar.gz"
|
4
4
|
|
5
|
-
OPENSSL_VERSION = ENV['TINYTDS_OPENSSL_VERSION'] || '1.1.
|
5
|
+
OPENSSL_VERSION = ENV['TINYTDS_OPENSSL_VERSION'] || '1.1.1s'
|
6
6
|
OPENSSL_SOURCE_URI = "https://www.openssl.org/source/openssl-#{OPENSSL_VERSION}.tar.gz"
|
7
7
|
|
8
8
|
FREETDS_VERSION = ENV['TINYTDS_FREETDS_VERSION'] || "1.1.24"
|
data/ext/tiny_tds/result.c
CHANGED
@@ -584,6 +584,7 @@ void init_tinytds_result() {
|
|
584
584
|
cDate = rb_const_get(rb_cObject, rb_intern("Date"));
|
585
585
|
/* Define TinyTds::Result */
|
586
586
|
cTinyTdsResult = rb_define_class_under(mTinyTds, "Result", rb_cObject);
|
587
|
+
rb_undef_alloc_func(cTinyTdsResult);
|
587
588
|
/* Define TinyTds::Result Public Methods */
|
588
589
|
rb_define_method(cTinyTdsResult, "fields", rb_tinytds_result_fields, 0);
|
589
590
|
rb_define_method(cTinyTdsResult, "each", rb_tinytds_result_each, -1);
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/tiny_tds/gem.rb
CHANGED
@@ -20,12 +20,7 @@ module TinyTds
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def ports_host
|
23
|
-
|
24
|
-
|
25
|
-
# Our fat binary builds with a i686-w64-mingw32 toolchain
|
26
|
-
# but ruby for windows x32-mingw32 reports i686-pc-mingw32
|
27
|
-
# so correct the host here
|
28
|
-
h.gsub('i686-pc-mingw32', 'i686-w64-mingw32')
|
23
|
+
RbConfig::CONFIG["arch"]
|
29
24
|
end
|
30
25
|
end
|
31
26
|
end
|
Binary file
|