pg 1.2.1-x64-mingw32 → 1.2.2-x64-mingw32

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
  SHA256:
3
- metadata.gz: e949ed3aa19f653070f03c7787a21932604a19a329711ccd1d80f736c8ceb848
4
- data.tar.gz: 11c9009c3d6015dd3bc0fdf353cfbc1f92a9f0d18cfab6a60778b037d77c0c56
3
+ metadata.gz: ee4f0a4364a2d1a4aba9fd2b0df81e623258c6aeded90cdf309822de1918fc41
4
+ data.tar.gz: f00e7705b93387cec9f3a7c5b6fd3bdf6c7d5f6c23834de6106ec38800ddb1ce
5
5
  SHA512:
6
- metadata.gz: a29e80d2bff55dac683ef68c36e57f9c34a28b1a0fd92c7c8ee2e98c03afe934874c1b74d2c4970978329c9f9adbaa8034fde4b8fda3a4909c8927fb2d058477
7
- data.tar.gz: f91f279215bab7bafb38f050ee4a4491394924ee1d6630cf84018922af3575624ff282d7e841f27297a591f227890fa96f9cbe9dea6a9730e262230cdf56af85
6
+ metadata.gz: 4dfeba9f6b831261c6d90ee2662af9467cec5c2d748300efc125a5303cb62387a6d64bee329cb7a1cb4ee928b3ee44370577864acfcfe2aea6e7a5041b44a2fa
7
+ data.tar.gz: d057b3fd8ea1b3b070b549039f2d6148c046bd0d465449969af26a7ff118adea0632c962f3c91a9e58aa2fc19d47335d1c634b0ea18aa0691179f395c9bb0910
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,10 @@
1
+ == v1.2.2 [2020-01-06] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Enhancements:
4
+
5
+ - Add a binary gem for Ruby 2.7.
6
+
7
+
1
8
  == v1.2.1 [2020-01-02] Michael Granger <ged@FaerieMUD.org>
2
9
 
3
10
  Enhancements:
data/Rakefile CHANGED
@@ -35,6 +35,8 @@ TEST_DIRECTORY = BASEDIR + "tmp_test_specs"
35
35
 
36
36
  CLOBBER.include( TEST_DIRECTORY.to_s )
37
37
  CLEAN.include( PKGDIR.to_s, TMPDIR.to_s )
38
+ CLEAN.include "lib/*/libpq.dll"
39
+ CLEAN.include "lib/pg_ext.*"
38
40
 
39
41
  # Set up Hoe plugins
40
42
  Hoe.plugin :mercurial
@@ -61,7 +63,7 @@ $hoespec = Hoe.spec 'pg' do
61
63
  self.developer 'Lars Kanis', 'lars@greiz-reinsdorf.de'
62
64
 
63
65
  self.dependency 'rake-compiler', '~> 1.0', :developer
64
- self.dependency 'rake-compiler-dock', ['~> 0.7.0'], :developer
66
+ self.dependency 'rake-compiler-dock', ['~> 1.0'], :developer
65
67
  self.dependency 'hoe-deveiate', '~> 0.9', :developer
66
68
  self.dependency 'hoe-bundler', '~> 1.0', :developer
67
69
  self.dependency 'rspec', '~> 3.5', :developer
@@ -129,7 +131,7 @@ Rake::ExtensionTask.new do |ext|
129
131
 
130
132
  # Add libpq.dll to windows binary gemspec
131
133
  ext.cross_compiling do |spec|
132
- spec.files << "lib/libpq.dll"
134
+ spec.files << "lib/#{spec.platform}/libpq.dll"
133
135
  end
134
136
  end
135
137
 
@@ -45,6 +45,8 @@ class CrossLibrary < OpenStruct
45
45
  end
46
46
  self.static_sourcesdir = compile_home + 'sources'
47
47
  self.static_builddir = compile_home + 'builds' + for_platform
48
+ CLOBBER.include( static_sourcesdir )
49
+ CLEAN.include( static_builddir )
48
50
 
49
51
  # Static OpenSSL build vars
50
52
  self.static_openssl_builddir = static_builddir + "openssl-#{openssl_version}"
@@ -141,9 +143,9 @@ class CrossLibrary < OpenStruct
141
143
  end
142
144
 
143
145
  desc "compile static openssl libraries"
144
- task :openssl_libs => [ libssl, libcrypto ]
146
+ task "openssl_libs:#{for_platform}" => [ libssl, libcrypto ]
145
147
 
146
- task :compile_static_openssl => openssl_makefile do |t|
148
+ task "compile_static_openssl:#{for_platform}" => openssl_makefile do |t|
147
149
  chdir( static_openssl_builddir ) do
148
150
  cmd = cmd_prelude.dup
149
151
  cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
@@ -153,12 +155,12 @@ class CrossLibrary < OpenStruct
153
155
  end
154
156
 
155
157
  desc "compile static #{libssl}"
156
- file libssl => :compile_static_openssl do |t|
158
+ file libssl => "compile_static_openssl:#{for_platform}" do |t|
157
159
  rm t.name.gsub(/\.a$/, ".dll.a")
158
160
  end
159
161
 
160
162
  desc "compile static #{libcrypto}"
161
- file libcrypto => :compile_static_openssl do |t|
163
+ file libcrypto => "compile_static_openssl:#{for_platform}" do |t|
162
164
  rm t.name.gsub(/\.a$/, ".dll.a")
163
165
  end
164
166
 
@@ -189,7 +191,7 @@ class CrossLibrary < OpenStruct
189
191
  end
190
192
 
191
193
  # generate the makefile in a clean build location
192
- file postgresql_global_makefile => [ static_postgresql_builddir, :openssl_libs ] do |t|
194
+ file postgresql_global_makefile => [ static_postgresql_builddir, "openssl_libs:#{for_platform}" ] do |t|
193
195
  options = [
194
196
  "--target=#{host_platform}",
195
197
  "--host=#{host_platform}",
@@ -231,10 +233,10 @@ class CrossLibrary < OpenStruct
231
233
 
232
234
 
233
235
  #desc 'compile libpg.a'
234
- task :libpq => postgresql_lib
236
+ task "native:#{for_platform}" => postgresql_lib
235
237
 
236
238
  # copy libpq.dll to lib dir
237
- dest_libpq = "lib/#{postgresql_lib.basename}"
239
+ dest_libpq = "lib/#{for_platform}/#{postgresql_lib.basename}"
238
240
  directory File.dirname(dest_libpq)
239
241
  file dest_libpq => [postgresql_lib, File.dirname(dest_libpq)] do
240
242
  cp postgresql_lib, dest_libpq
@@ -248,20 +250,15 @@ class CrossLibrary < OpenStruct
248
250
  end
249
251
  end
250
252
 
251
- if File.exist?(File.expand_path("~/.rake-compiler/config.yml"))
252
- CrossLibraries = [
253
- ['i386-mingw32', 'mingw', 'i686-w64-mingw32'],
254
- ['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
255
- ].map do |platform, openssl_config, toolchain|
256
- CrossLibrary.new platform, openssl_config, toolchain
257
- end
258
- else
259
- $stderr.puts "Cross-compilation disabled -- rake-compiler not properly installed"
260
- CrossLibraries = []
253
+ CrossLibraries = [
254
+ ['x86-mingw32', 'mingw', 'i686-w64-mingw32'],
255
+ ['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
256
+ ].map do |platform, openssl_config, toolchain|
257
+ CrossLibrary.new platform, openssl_config, toolchain
261
258
  end
262
259
 
263
260
  desc 'cross compile pg for win32'
264
- task :cross => [ :mingw32, :libpq ]
261
+ task :cross => [ :mingw32 ]
265
262
 
266
263
  task :mingw32 do
267
264
  # Use Rake::ExtensionCompiler helpers to find the proper host
@@ -272,30 +269,32 @@ task :mingw32 do
272
269
  end
273
270
  end
274
271
 
275
- # To reduce the gem file size strip mingw32 dlls before packaging
276
- ENV['RUBY_CC_VERSION'].to_s.split(':').each do |ruby_version|
277
- task "tmp/i386-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/pg_ext.so" do |t|
278
- sh "i686-w64-mingw32-strip -S tmp/i386-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/pg_ext.so"
279
- end
280
-
281
- task "tmp/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/pg_ext.so" do |t|
282
- sh "x86_64-w64-mingw32-strip -S tmp/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/pg_ext.so"
283
- end
272
+ task 'gem:windows:prepare' do
273
+ require 'io/console'
274
+ require 'rake_compiler_dock'
275
+
276
+ # Copy gem signing key and certs to be accessable from the docker container
277
+ mkdir_p 'build/gem'
278
+ sh "cp ~/.gem/gem-*.pem build/gem/ || true"
279
+ sh "bundle package"
280
+ begin
281
+ OpenSSL::PKey.read(File.read(File.expand_path("~/.gem/gem-private_key.pem")), ENV["GEM_PRIVATE_KEY_PASSPHRASE"] || "")
282
+ rescue OpenSSL::PKey::PKeyError
283
+ ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
284
+ retry
285
+ end
284
286
  end
285
287
 
286
- desc "Build the windows binary gems"
287
- task 'gem:windows' => ['ChangeLog'] do
288
- require 'rake_compiler_dock'
289
-
290
- # Copy gem signing key and certs to be accessable from the docker container
291
- mkdir_p 'build/gem'
292
- sh "cp ~/.gem/gem-*.pem build/gem/ || true"
293
- sh "bundle package"
294
-
295
- RakeCompilerDock.sh <<-EOT
296
- mkdir ~/.gem &&
297
- (cp build/gem/gem-*.pem ~/.gem/ || true) &&
298
- bundle install --local &&
299
- rake cross native gem MAKE="make -j`nproc`"
300
- EOT
288
+ CrossLibraries.each do |xlib|
289
+ platform = xlib.for_platform
290
+ desc "Build fat binary gem for platform #{platform}"
291
+ task "gem:windows:#{platform}" => ['ChangeLog', 'gem:windows:prepare', xlib.openssl_tarball, xlib.postgresql_tarball] do
292
+ RakeCompilerDock.sh <<-EOT, platform: platform
293
+ (cp build/gem/gem-*.pem ~/.gem/ || true) &&
294
+ bundle install --local &&
295
+ rake native:#{platform} pkg/#{$hoespec.spec.full_name}-#{platform}.gem MAKE="make -j`nproc`"
296
+ EOT
297
+ end
298
+ desc "Build the windows binary gems"
299
+ multitask 'gem:windows' => "gem:windows:#{platform}"
301
300
  end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/lib/pg.rb CHANGED
@@ -22,7 +22,8 @@ rescue LoadError
22
22
  end
23
23
 
24
24
  # Temporary add this directory for DLL search, so that libpq.dll can be found.
25
- add_dll_path.call(__dir__) do
25
+ # mingw32-platform strings differ (RUBY_PLATFORM=i386-mingw32 vs. x86-mingw32 for rubygems)
26
+ add_dll_path.call(File.join(__dir__, RUBY_PLATFORM.gsub(/^i386-/, "x86-"))) do
26
27
  require "#{major_minor}/pg_ext"
27
28
  end
28
29
  else
@@ -36,7 +37,7 @@ end
36
37
  module PG
37
38
 
38
39
  # Library version
39
- VERSION = '1.2.1'
40
+ VERSION = '1.2.2'
40
41
 
41
42
  # VCS revision
42
43
  REVISION = %q$Revision: 6f611e78845a $
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Michael Granger
@@ -34,7 +34,7 @@ cert_chain:
34
34
  83uuAYSy65yXDGXXPVBeKPVnYrqp91pqpS5Nh7wfuiCrE8lgU8PATh7K4BV1UhAT
35
35
  0MHbAT42wTYkfUj3
36
36
  -----END CERTIFICATE-----
37
- date: 2020-01-02 00:00:00.000000000 Z
37
+ date: 2020-01-08 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: hoe-mercurial
@@ -98,14 +98,14 @@ dependencies:
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 0.7.0
101
+ version: '1.0'
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: 0.7.0
108
+ version: '1.0'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: hoe-bundler
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -270,7 +270,7 @@ files:
270
270
  - lib/2.4/pg_ext.so
271
271
  - lib/2.5/pg_ext.so
272
272
  - lib/2.6/pg_ext.so
273
- - lib/libpq.dll
273
+ - lib/2.7/pg_ext.so
274
274
  - lib/pg.rb
275
275
  - lib/pg/basic_type_mapping.rb
276
276
  - lib/pg/binary_decoder.rb
@@ -283,6 +283,7 @@ files:
283
283
  - lib/pg/text_encoder.rb
284
284
  - lib/pg/tuple.rb
285
285
  - lib/pg/type_map_by_column.rb
286
+ - lib/x64-mingw32/libpq.dll
286
287
  - spec/data/expected_trace.out
287
288
  - spec/data/random_binary_data
288
289
  - spec/helpers.rb
@@ -317,15 +318,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
317
318
  version: '2.2'
318
319
  - - "<"
319
320
  - !ruby/object:Gem::Version
320
- version: 2.7.dev
321
+ version: 2.8.dev
321
322
  required_rubygems_version: !ruby/object:Gem::Requirement
322
323
  requirements:
323
324
  - - ">="
324
325
  - !ruby/object:Gem::Version
325
326
  version: '0'
326
327
  requirements: []
327
- rubyforge_project:
328
- rubygems_version: 2.7.8
328
+ rubygems_version: 3.1.2
329
329
  signing_key:
330
330
  specification_version: 4
331
331
  summary: Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/]
metadata.gz.sig CHANGED
Binary file