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

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 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