mysql2 0.3.19-x86-mswin32-60 → 0.3.20-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cba3b7b0f6be180e27b090eb856441097ab8c916
4
- data.tar.gz: cf4d69ef5b5a3d59f77bb62059bfc3d145e97ea6
3
+ metadata.gz: 79e068ea4e207de093760efbef9c27adf60dbce5
4
+ data.tar.gz: aeb8a2239919f1b904d149b525eea03fdce3f96e
5
5
  SHA512:
6
- metadata.gz: 1ce63c02a152cd0c9bcd9dbfcaa80ead9716e85d3653764d69f94b9b48a46681ed971b46791689555a08aa80cd04e1bed7f586d00ff4a5543cb3a95325b971b7
7
- data.tar.gz: ed40503cef99e117b3cc806725a427410160d42df1a2239d113ff033797bd4f8b33c41082d89b87321ca3d6fae515ffe321cb2289a6ff6c190c56cbbff2c88b4
6
+ metadata.gz: 78237eae6fafdead97d19689b17aa8f6c0739ae4122e1e9ece55210dc2e7ea513fcd0f0ccd1891106e5e007bf8deeafbe8c23d8ec4977f70fce5e90d00a112cd
7
+ data.tar.gz: db544d6b11c57125b32bb6429b4b327fac454ffc0a0ecdc6fed359ebf91435c5fd9be18d6d26f22be548791ffe4707c164c7455add26ddffcdf07d0c1f409ef1
@@ -182,23 +182,31 @@ static void *nogvl_connect(void *ptr) {
182
182
  */
183
183
  static VALUE invalidate_fd(int clientfd)
184
184
  {
185
- #ifdef SOCK_CLOEXEC
185
+ #ifdef O_CLOEXEC
186
186
  /* Atomically set CLOEXEC on the new FD in case another thread forks */
187
187
  int sockfd = open("/dev/null", O_RDWR | O_CLOEXEC);
188
- if (sockfd < 0) {
189
- /* Maybe SOCK_CLOEXEC is defined but not available on this kernel */
190
- int sockfd = open("/dev/null", O_RDWR);
191
- fcntl(sockfd, F_SETFD, FD_CLOEXEC);
192
- }
193
188
  #else
194
- /* Well we don't have SOCK_CLOEXEC, so just set FD_CLOEXEC quickly */
195
- int sockfd = open("/dev/null", O_RDWR);
196
- fcntl(sockfd, F_SETFD, FD_CLOEXEC);
189
+ /* Well we don't have O_CLOEXEC, trigger the fallback code below */
190
+ int sockfd = -1;
197
191
  #endif
198
192
 
199
193
  if (sockfd < 0) {
200
- /*
201
- * Cannot raise here, because one or both of the following may be true:
194
+ /* Either O_CLOEXEC wasn't defined at compile time, or it was defined at
195
+ * compile time, but isn't available at run-time. So we'll just be quick
196
+ * about setting FD_CLOEXEC now.
197
+ */
198
+ int flags;
199
+ sockfd = open("/dev/null", O_RDWR);
200
+ flags = fcntl(sockfd, F_GETFD);
201
+ /* Do the flags dance in case there are more defined flags in the future */
202
+ if (flags != -1) {
203
+ flags |= FD_CLOEXEC;
204
+ fcntl(sockfd, F_SETFD, flags);
205
+ }
206
+ }
207
+
208
+ if (sockfd < 0) {
209
+ /* Cannot raise here, because one or both of the following may be true:
202
210
  * a) we have no GVL (in C Ruby)
203
211
  * b) are running as a GC finalizer
204
212
  */
@@ -3,12 +3,11 @@ require 'mkmf'
3
3
 
4
4
  def asplode lib
5
5
  if RUBY_PLATFORM =~ /mingw|mswin/
6
- abort "-----\n#{lib} is missing. please check your installation of mysql and try again.\n-----"
6
+ abort "-----\n#{lib} is missing. Check your installation of MySQL or Connector/C, and try again.\n-----"
7
7
  elsif RUBY_PLATFORM =~ /darwin/
8
- abort "-----\n#{lib} is missing. Try 'brew install mysql', check your installation of mysql and try again.\n-----"
8
+ abort "-----\n#{lib} is missing. You may need to 'brew install mysql' or 'port install mysql', and try again.\n-----"
9
9
  else
10
- abort "-----\n#{lib} is missing. Try 'apt-get install libmysqlclient-dev' or
11
- 'yum install mysql-devel', check your installation of mysql and try again.\n-----"
10
+ abort "-----\n#{lib} is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', and try again.\n-----"
12
11
  end
13
12
  end
14
13
 
@@ -73,15 +72,22 @@ elsif mc = (with_config('mysql-config') || Dir[GLOB].first)
73
72
  rpath_dir = libs
74
73
  else
75
74
  inc, lib = dir_config('mysql', '/usr/local')
76
- libs = ['m', 'z', 'socket', 'nsl', 'mygcc']
77
- found = false
78
- while not find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql") do
79
- exit 1 if libs.empty?
80
- found ||= have_library(libs.shift)
75
+ unless find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql")
76
+ found = false
77
+ # For some systems and some versions of libmysqlclient, there were extra
78
+ # libraries needed to link. Try each typical extra library, add it to the
79
+ # global compile flags, and see if that allows us to link libmysqlclient.
80
+ warn "-----\nlibmysqlclient is missing. Trying again with extra runtime libraries...\n-----"
81
+
82
+ %w{ m z socket nsl mygcc }.each do |extra_lib|
83
+ if have_library(extra_lib) && find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql")
84
+ found = true
85
+ break
86
+ end
87
+ end
88
+ asplode('libmysqlclient') unless found
81
89
  end
82
90
 
83
- asplode("mysql client") unless found
84
-
85
91
  rpath_dir = lib
86
92
  end
87
93
 
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,3 +1,3 @@
1
1
  module Mysql2
2
- VERSION = "0.3.19"
2
+ VERSION = "0.3.20"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.19
4
+ version: 0.3.20
5
5
  platform: x86-mswin32-60
6
6
  authors:
7
7
  - Brian Lopez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-30 00:00:00.000000000 Z
11
+ date: 2015-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler