pg 0.9.0-x86-mingw32 → 0.11.0pre229-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +2 -0
- data/ChangeLog +214 -1
- data/Contributors +2 -0
- data/README +2 -2
- data/README.windows +7 -4
- data/Rakefile +51 -29
- data/Rakefile.local +229 -160
- data/ext/compat.c +2 -2
- data/ext/compat.h +4 -0
- data/ext/extconf.rb +27 -94
- data/ext/pg.c +300 -121
- data/ext/pg.h +4 -0
- data/lib/1.8/pg_ext.so +0 -0
- data/lib/1.9/pg_ext.so +0 -0
- data/lib/pg.rb +11 -6
- data/rake/documentation.rb +123 -0
- data/rake/helpers.rb +375 -308
- data/rake/hg.rb +51 -6
- data/rake/manual.rb +11 -6
- data/rake/packaging.rb +7 -1
- data/rake/publishing.rb +158 -91
- data/rake/testing.rb +53 -88
- data/spec/lib/helpers.rb +40 -18
- data/spec/m17n_spec.rb +36 -24
- data/spec/pgconn_spec.rb +276 -20
- data/spec/pgresult_spec.rb +12 -6
- metadata +61 -20
- metadata.gz.sig +0 -0
- data/rake/rdoc.rb +0 -30
data.tar.gz.sig
ADDED
data/ChangeLog
CHANGED
@@ -1,4 +1,217 @@
|
|
1
|
-
|
1
|
+
229[master,tip]:228,222 b477174160c8 2011-03-30 06:13 -0700 ged
|
2
|
+
Automated merge with ssh://bitbucket.org/larskanis/ruby-pg
|
3
|
+
|
4
|
+
228 cc3a7476465c 2011-03-15 13:21 +0100 kanis
|
5
|
+
Update cross compilation tasks to use Ruby 1.8.7 instead of 1.8.6, since pg.gem requires at least 1.8.7 to get installed
|
6
|
+
|
7
|
+
227 b90f74cb11a5 2011-03-12 21:40 +0100 kanis
|
8
|
+
Update readme for cross compile
|
9
|
+
|
10
|
+
226 780650f201e3 2011-03-12 21:38 +0100 kanis
|
11
|
+
Use RUBY_CC_VERSION from command line, if set
|
12
|
+
|
13
|
+
225 31089d6c9dde 2011-03-11 22:14 +0100 kanis
|
14
|
+
update PG and OpenSSL version for cross compile
|
15
|
+
|
16
|
+
224 dfe3e7c1ea27 2011-03-11 21:58 +0100 kanis
|
17
|
+
always run "make libpq.a" for cross compilation
|
18
|
+
|
19
|
+
223:221 06e17573b133 2011-03-11 21:54 +0100 kanis
|
20
|
+
re-add required libs for cross compilation
|
21
|
+
|
22
|
+
222 56098b479a23 2011-03-30 05:52 -0700 ged
|
23
|
+
Comment the WIN32 console FD stuff so I remember what it does.
|
24
|
+
|
25
|
+
221 1baa7a8e673e 2011-02-23 14:11 -0800 ged
|
26
|
+
Whitespace/line-ending fixes
|
27
|
+
|
28
|
+
220:217,219 fb7d22101adf 2011-02-23 11:40 -0800 ged
|
29
|
+
Merged with 1c3a1ca9f0cd
|
30
|
+
|
31
|
+
219 1c3a1ca9f0cd 2011-01-22 04:41 +0800 ghazel
|
32
|
+
for windows support, duplicate the sockets from libpq and create temporary CRT fds
|
33
|
+
|
34
|
+
218[github/master]:214 c3f163bf1ecd 2011-01-22 22:11 -0800 ged
|
35
|
+
Pulling fixes for Windows from ghazel on Github
|
36
|
+
|
37
|
+
217 18f413081e0c 2011-02-10 16:19 -0800 ged
|
38
|
+
Bump minor version.
|
39
|
+
|
40
|
+
216 739692aa8dd1 2011-01-31 17:10 -0800 ged
|
41
|
+
Reformatting fixes for PGresult#[] and PGresult#values
|
42
|
+
|
43
|
+
215 59679aee98ee 2011-01-31 11:30 -0600 me-bitbucket
|
44
|
+
added PGresult#values to get an array of arrays
|
45
|
+
|
46
|
+
214 8ab3dd3c757b 2011-01-19 08:00 -0800 ged
|
47
|
+
Added tag v0.10.1 for changeset de10b5d8e442
|
48
|
+
|
49
|
+
213[v0.10.1] de10b5d8e442 2011-01-19 08:00 -0800 ged
|
50
|
+
Added signature for changeset 230ea3e68db2
|
51
|
+
|
52
|
+
212 230ea3e68db2 2011-01-19 07:54 -0800 ged
|
53
|
+
Add an include guard for pg.h
|
54
|
+
|
55
|
+
211 f877d2d399cc 2011-01-19 07:53 -0800 ged
|
56
|
+
Simplify the common case require of the ext
|
57
|
+
|
58
|
+
210 8e1707a90330 2011-01-19 07:52 -0800 ged
|
59
|
+
Include the extconf header
|
60
|
+
|
61
|
+
209 89348c8bb6d1 2010-12-06 12:00 -0800 ged
|
62
|
+
Experimenting with a greatly-simplified extconf, since the complex one isn't solving any problems
|
63
|
+
|
64
|
+
208 aea173eec98a 2010-12-06 08:45 -0800 ged
|
65
|
+
Bumping version to 0.10.1.
|
66
|
+
|
67
|
+
207 d61e3310ea3d 2010-12-06 08:41 -0800 ged
|
68
|
+
Fixing compatibility with versions of PostgreSQL without PQgetCancel. (fixes #36)
|
69
|
+
|
70
|
+
206 89979f184b22 2010-12-06 07:44 -0800 ged
|
71
|
+
Fix require for natively-compiled extension under Windows. (fixes #55)
|
72
|
+
|
73
|
+
205 9e11be78bfe4 2010-12-06 07:32 -0800 ged
|
74
|
+
Change rb_yield_splat() to rb_yield_values() for compatibility with Rubinius. (fixes #54)
|
75
|
+
|
76
|
+
204 eb0d4b1df418 2010-12-01 18:54 -0800 ged
|
77
|
+
Removed tag 0.10.0
|
78
|
+
|
79
|
+
203 78a63dce1491 2010-12-01 18:52 -0800 ged
|
80
|
+
Added tag v0.10.0 for changeset 1822a169c4fe
|
81
|
+
|
82
|
+
202 469211f606ea 2010-12-01 18:52 -0800 ged
|
83
|
+
Fix deprecated expectation.
|
84
|
+
|
85
|
+
201:197,200 857722663a6f 2010-12-01 18:47 -0800 ged
|
86
|
+
Merged in Mahlon's wait_for_notify update for PostgreSQL 9's notification payload
|
87
|
+
|
88
|
+
200 8ffb67a23f45 2010-12-01 18:30 -0800 ged
|
89
|
+
Closing pg90_notify_payload pbranch for merge into default
|
90
|
+
|
91
|
+
199 de86dca00ad2 2010-12-01 18:24 -0800 ged
|
92
|
+
Finished the merge of default; fixed specs under 1.9.2.
|
93
|
+
|
94
|
+
198:197,188 60664b2495cf 2010-12-01 16:39 -0800 ged
|
95
|
+
merge of default
|
96
|
+
|
97
|
+
197 148d0cc3db4a 2010-12-01 14:19 -0800 ged
|
98
|
+
Added tag 0.10.0 for changeset 1822a169c4fe
|
99
|
+
|
100
|
+
196[v0.10.0] 1822a169c4fe 2010-12-01 14:19 -0800 ged
|
101
|
+
Added signature for changeset 3993015a841e
|
102
|
+
|
103
|
+
195 3993015a841e 2010-12-01 12:20 -0800 ged
|
104
|
+
Ignore the yard cache, handle missing rake-compiler for non-compile-related tasks.
|
105
|
+
|
106
|
+
194 71786704391b 2010-11-11 21:39 -0600 ged
|
107
|
+
Build/gem updates
|
108
|
+
|
109
|
+
193 899329ce1b4e 2010-11-11 21:09 -0600 ged
|
110
|
+
Added a spec for collapsed notifications.
|
111
|
+
|
112
|
+
192 413f9e81e3ea 2010-11-01 09:01 -0700 ged
|
113
|
+
More work trying to get the Windows-native gem to compile. No luck, but it's closer.
|
114
|
+
|
115
|
+
191 3402babf2cdf 2010-10-31 16:29 -0700 ged
|
116
|
+
Fixed issue with PGconn#wait_for_notify that caused it to miss notifications that happened after the LISTEN but before the wait_for_notify.
|
117
|
+
|
118
|
+
190 9d8f82721f69 2010-10-29 08:09 -0700 ged
|
119
|
+
Updated to RSpec 2.0
|
120
|
+
|
121
|
+
189:186 b2df89600d95 2010-10-11 09:24 -0700 ged
|
122
|
+
Fixes for windows static build.
|
123
|
+
|
124
|
+
188 193043bf2244 2010-10-08 09:40 -0700 ged
|
125
|
+
Added support for the payload of NOTIFY events (w/Mahlon E. Smith)
|
126
|
+
|
127
|
+
187 ce9b893ff824 2010-10-08 07:25 -0700 ged
|
128
|
+
start new patch on default
|
129
|
+
|
130
|
+
186 49ff3442c2ee 2010-10-08 07:23 -0700 ged
|
131
|
+
Fixes to get the static windows build to work with PostgreSQL 9.0 and OpenSSL 1.0.0a
|
132
|
+
|
133
|
+
185 1fa5cd6851e3 2010-09-28 09:10 -0700 ged
|
134
|
+
More work trying to get the native windows gem to compile under PostgreSQL 9.0
|
135
|
+
|
136
|
+
184 c9fb855a7d50 2010-09-28 09:09 -0700 ged
|
137
|
+
Adding a sample of how to use COPY FROM
|
138
|
+
|
139
|
+
183 d85ff87e5949 2010-09-24 10:34 -0700 ged
|
140
|
+
Fixes for Ruby 1.9.2.
|
141
|
+
|
142
|
+
182 5dbc24f596c8 2010-09-24 10:18 -0700 ged
|
143
|
+
Version bump, updates for PostgreSQL 9.
|
144
|
+
|
145
|
+
181 1f8dd92ca16c 2010-08-03 10:31 -0700 ged
|
146
|
+
Merged JRuby fix into the build system, pulled down other build-system updates. Thanks to timfel for the fix.
|
147
|
+
|
148
|
+
180 4f705f605e51 2010-08-03 17:56 +0200 timfelgentreff
|
149
|
+
Fix to allow Rakefile to work on JRuby
|
150
|
+
|
151
|
+
179 92cc211ef553 2010-08-02 09:28 -0700 ged
|
152
|
+
Honor Ruby's default_internal encoding when connecting via the synchronous interface; fixes #33
|
153
|
+
|
154
|
+
178 a2237e39d399 2010-08-02 09:23 -0700 ged
|
155
|
+
Don't treat the installed pg_config not having archflags as an error; fixes #39
|
156
|
+
|
157
|
+
177 14b882b7b88c 2010-08-02 09:21 -0700 ged
|
158
|
+
Install extension under arch-specific directory (RPS fix)
|
159
|
+
|
160
|
+
176 b0a5ae858569 2010-07-26 19:46 -0700 ged
|
161
|
+
Adding rake tasklibs as a sub-repo
|
162
|
+
|
163
|
+
175 37835e3b8701 2010-07-21 18:39 -0700 ged
|
164
|
+
Removed spec for issue #22, as the library is behaving the same as the underlying library; closes #22
|
165
|
+
|
166
|
+
174:173,172 86f238c12fa3 2010-07-21 18:36 -0700 ged
|
167
|
+
Merged with 168:dfaa59767b2e
|
168
|
+
|
169
|
+
173:167 dfaa59767b2e 2010-07-21 18:35 -0700 ged
|
170
|
+
Reworded an example's description and added a specific transaction-abort spec
|
171
|
+
|
172
|
+
172:171,168 e756f8fb15d8 2010-06-22 16:23 -0700 ged
|
173
|
+
Merged with 170:5418a1d86d91
|
174
|
+
|
175
|
+
171 8922f0a8ee44 2010-06-22 16:22 -0700 ged
|
176
|
+
Adding example of invalid binary data issue (refs #22), fixing EXT_SO path
|
177
|
+
|
178
|
+
170 cb92aa4b6599 2010-02-25 10:39 -0800 ged
|
179
|
+
Adding a spec to test bug #12
|
180
|
+
|
181
|
+
169:158 86026f5ecf70 2010-02-25 10:39 -0800 ged
|
182
|
+
Adding rake-compiler to the dev dependencies
|
183
|
+
|
184
|
+
168 5418a1d86d91 2010-06-22 15:54 -0700 ged
|
185
|
+
Cross-compile tasks cleanup, extconf diagnostic improvement.
|
186
|
+
|
187
|
+
167 07502a793f3a 2010-06-22 10:44 -0700 ged
|
188
|
+
Adding some more stuff to the ignorefile
|
189
|
+
|
190
|
+
166 873867122e80 2010-06-22 10:43 -0700 ged
|
191
|
+
Modified the large-object sample script to reflect the pg library's API (refs #35)
|
192
|
+
|
193
|
+
165 ea6eae59e917 2010-06-21 11:08 -0700 ged
|
194
|
+
Updating build system, adding .orig files to ignore list.
|
195
|
+
|
196
|
+
164 bb8a3baad96e 2010-06-14 13:57 -0700 ged
|
197
|
+
Whitespace fix
|
198
|
+
|
199
|
+
163 45e6518b780d 2010-05-26 09:33 -0700 ged
|
200
|
+
Actually, just use the cflags from pg_config, which should resolve both the -Wall and the -lsocket issue (refs #30)
|
201
|
+
|
202
|
+
162 730fb885ce08 2010-05-26 09:27 -0700 ged
|
203
|
+
Fixing compilation for non-GCC platforms (fixes #30)
|
204
|
+
|
205
|
+
161 a47ffe890970 2010-03-16 07:36 -0700 ged
|
206
|
+
Fixed typo in ext/extconf.rb -- thanks to Keith Cascio for spotting this. Closes #27.
|
207
|
+
|
208
|
+
160 9a296096f7e9 2010-02-28 08:56 -0800 ged
|
209
|
+
Added tag 0.9.0 for changeset da726282493c
|
210
|
+
|
211
|
+
159[0.9.0] da726282493c 2010-02-28 08:56 -0800 ged
|
212
|
+
Added signature for changeset 872063e42b12
|
213
|
+
|
214
|
+
158 872063e42b12 2010-02-19 08:02 -0800 ged
|
2
215
|
Adding "fat gem" compatible loader, set the default RUBY_CC_VERSION.
|
3
216
|
|
4
217
|
157 ab525ca90531 2010-02-19 06:27 -0800 ged
|
data/Contributors
CHANGED
data/README
CHANGED
@@ -5,8 +5,8 @@ library works with PostgreSQL 7.4 and later.
|
|
5
5
|
|
6
6
|
== Requirements
|
7
7
|
|
8
|
-
* Ruby 1.8.
|
9
|
-
* PostgreSQL 7.
|
8
|
+
* Ruby 1.8.7-p174 or later.
|
9
|
+
* PostgreSQL 7.4 or later installed.
|
10
10
|
|
11
11
|
It may work with earlier versions as well, but those are not regularly tested.
|
12
12
|
|
data/README.windows
CHANGED
@@ -39,7 +39,7 @@ There are no runtime dependencies to any but the standard Windows DLLs.
|
|
39
39
|
|
40
40
|
Install mingw32. On a debian based system this should work:
|
41
41
|
|
42
|
-
|
42
|
+
apt-get install mingw32
|
43
43
|
|
44
44
|
On MacOS X, if you have MacPorts installed:
|
45
45
|
|
@@ -49,13 +49,16 @@ Install the rake-compiler:
|
|
49
49
|
|
50
50
|
gem install rake-compiler
|
51
51
|
|
52
|
-
Download and cross compile ruby for win32:
|
52
|
+
Download and cross compile ruby 1.8 and 1.9 for win32:
|
53
53
|
|
54
|
-
rake-compiler cross-ruby VERSION=1.8.
|
54
|
+
rake-compiler cross-ruby VERSION=1.8.7-p334
|
55
|
+
rake-compiler cross-ruby VERSION=1.9.2-p180
|
55
56
|
|
56
57
|
Download and cross compile pg for win32:
|
57
58
|
|
58
|
-
rake cross native gem
|
59
|
+
rake cross native gem
|
60
|
+
or with custom versions:
|
61
|
+
rake cross native gem RUBY_CC_VERSION=1.8.7:1.9.2 OPENSSL_VERSION=1.0.0d POSTGRESQL_VERSION=9.0.3
|
59
62
|
|
60
63
|
If everything works, there should be pg-VERSION-x86-mswin32.gem in the pkg
|
61
64
|
directory.
|
data/Rakefile
CHANGED
@@ -11,12 +11,14 @@
|
|
11
11
|
#
|
12
12
|
|
13
13
|
BEGIN {
|
14
|
+
require 'rbconfig'
|
14
15
|
require 'pathname'
|
15
16
|
basedir = Pathname.new( __FILE__ ).dirname
|
16
17
|
|
17
18
|
libdir = basedir + "lib"
|
18
|
-
extdir =
|
19
|
+
extdir = libdir + Config::CONFIG['sitearch']
|
19
20
|
|
21
|
+
$LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
|
20
22
|
$LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
|
21
23
|
$LOAD_PATH.unshift( extdir.to_s ) unless $LOAD_PATH.include?( extdir.to_s )
|
22
24
|
}
|
@@ -75,7 +77,7 @@ elsif VERSION_FILE.exist?
|
|
75
77
|
PKG_VERSION = VERSION_FILE.read[ /VERSION\s*=\s*['"](\d+\.\d+\.\d+)['"]/, 1 ]
|
76
78
|
end
|
77
79
|
|
78
|
-
PKG_VERSION
|
80
|
+
PKG_VERSION = '0.0.0' unless defined?( PKG_VERSION ) && !PKG_VERSION.nil?
|
79
81
|
|
80
82
|
PKG_FILE_NAME = "#{PKG_NAME.downcase}-#{PKG_VERSION}"
|
81
83
|
GEM_FILE_NAME = "#{PKG_FILE_NAME}.gem"
|
@@ -90,7 +92,7 @@ EXTCONF = EXTDIR + 'extconf.rb'
|
|
90
92
|
|
91
93
|
ARTIFACTS_DIR = Pathname.new( CC_BUILD_ARTIFACTS )
|
92
94
|
|
93
|
-
TEXT_FILES = Rake::FileList.new( %w[Rakefile ChangeLog README LICENSE] )
|
95
|
+
TEXT_FILES = Rake::FileList.new( %w[Rakefile ChangeLog README* LICENSE] )
|
94
96
|
BIN_FILES = Rake::FileList.new( "#{BINDIR}/*" )
|
95
97
|
LIB_FILES = Rake::FileList.new( "#{LIBDIR}/**/*.rb" )
|
96
98
|
EXT_FILES = Rake::FileList.new( "#{EXTDIR}/**/*.{c,h,rb}" )
|
@@ -167,26 +169,36 @@ if !RAKE_TASKDIR.exist?
|
|
167
169
|
end
|
168
170
|
|
169
171
|
require RAKE_TASKDIR + 'helpers.rb'
|
172
|
+
include RakefileHelpers
|
170
173
|
|
171
174
|
# Set the build ID if the mercurial executable is available
|
172
175
|
if hg = which( 'hg' )
|
173
|
-
id =
|
174
|
-
PKG_BUILD =
|
176
|
+
id = `#{hg} id -n`.chomp
|
177
|
+
PKG_BUILD = (id.chomp[ /^[[:xdigit:]]+/ ] || '1')
|
175
178
|
else
|
176
|
-
PKG_BUILD = '
|
179
|
+
PKG_BUILD = '0'
|
177
180
|
end
|
178
181
|
SNAPSHOT_PKG_NAME = "#{PKG_FILE_NAME}.#{PKG_BUILD}"
|
179
182
|
SNAPSHOT_GEM_NAME = "#{SNAPSHOT_PKG_NAME}.gem"
|
180
183
|
|
181
184
|
# Documentation constants
|
182
|
-
|
185
|
+
API_DOCSDIR = DOCSDIR + 'api'
|
186
|
+
README_FILE = TEXT_FILES.find {|path| path =~ /^README/ } || 'README'
|
183
187
|
RDOC_OPTIONS = [
|
184
|
-
'-
|
185
|
-
'-
|
186
|
-
'
|
187
|
-
|
188
|
-
|
189
|
-
|
188
|
+
'--tab-width=4',
|
189
|
+
'--show-hash',
|
190
|
+
'--include', BASEDIR.to_s,
|
191
|
+
"--main=#{README_FILE}",
|
192
|
+
"--title=#{PKG_NAME}",
|
193
|
+
]
|
194
|
+
YARD_OPTIONS = [
|
195
|
+
'--use-cache',
|
196
|
+
'--protected',
|
197
|
+
'-r', README_FILE,
|
198
|
+
'--exclude', 'extconf\\.rb',
|
199
|
+
'--files', 'ChangeLog,LICENSE',
|
200
|
+
'--output-dir', API_DOCSDIR.to_s,
|
201
|
+
'--title', "#{PKG_NAME} #{PKG_VERSION}",
|
190
202
|
]
|
191
203
|
|
192
204
|
# Release constants
|
@@ -194,28 +206,30 @@ SMTP_HOST = "mail.faeriemud.org"
|
|
194
206
|
SMTP_PORT = 465 # SMTP + SSL
|
195
207
|
|
196
208
|
# Project constants
|
197
|
-
PROJECT_HOST = '
|
198
|
-
PROJECT_PUBDIR = '/
|
209
|
+
PROJECT_HOST = 'deveiate.org'
|
210
|
+
PROJECT_PUBDIR = '/usr/local/www/public/code/'
|
199
211
|
PROJECT_DOCDIR = "#{PROJECT_PUBDIR}/#{PKG_NAME}"
|
200
212
|
PROJECT_SCPPUBURL = "#{PROJECT_HOST}:#{PROJECT_PUBDIR}"
|
201
213
|
PROJECT_SCPDOCURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}"
|
202
214
|
|
215
|
+
GEM_PUBHOST = 'rubygems.org'
|
216
|
+
|
203
217
|
# Gem dependencies: gemname => version
|
204
218
|
DEPENDENCIES = {
|
205
219
|
}
|
206
220
|
|
207
221
|
# Developer Gem dependencies: gemname => version
|
208
222
|
DEVELOPMENT_DEPENDENCIES = {
|
209
|
-
'rake'
|
210
|
-
'rcodetools'
|
211
|
-
'rcov'
|
212
|
-
'
|
213
|
-
'RedCloth'
|
214
|
-
'rspec'
|
215
|
-
'termios'
|
216
|
-
'text-format'
|
217
|
-
'tmail'
|
218
|
-
'
|
223
|
+
'rake' => '~> 0.8.7',
|
224
|
+
'rcodetools' => '~> 0.7.0.0',
|
225
|
+
'rcov' => '~> 0.8.1.2.0',
|
226
|
+
'yard' => '~> 0.6.1',
|
227
|
+
'RedCloth' => '~> 4.2.3',
|
228
|
+
'rspec' => '~> 2.0.1',
|
229
|
+
'ruby-termios' => '~> 0.9.6',
|
230
|
+
'text-format' => '~> 1.0.0',
|
231
|
+
'tmail' => '~> 1.2.3.1',
|
232
|
+
'rake-compiler' => '~>0.7.0',
|
219
233
|
}
|
220
234
|
|
221
235
|
# Non-gem requirements: packagename => version
|
@@ -234,13 +248,14 @@ GEMSPEC = Gem::Specification.new do |gem|
|
|
234
248
|
"This library works with PostgreSQL 7.4 and later.",
|
235
249
|
].join( "\n" )
|
236
250
|
|
237
|
-
gem.authors = "Michael Granger"
|
238
|
-
gem.email = ["ged@FaerieMUD.org"]
|
251
|
+
gem.authors = ["Jeff Davis", "Michael Granger"]
|
252
|
+
gem.email = ["ruby-pg@j-davis.com", "ged@FaerieMUD.org"]
|
239
253
|
gem.homepage = 'http://bitbucket.org/ged/ruby-pg/'
|
254
|
+
gem.licenses = ["Ruby", "GPL", "BSD"]
|
240
255
|
|
241
256
|
gem.has_rdoc = true
|
242
257
|
gem.rdoc_options = RDOC_OPTIONS
|
243
|
-
gem.extra_rdoc_files =
|
258
|
+
gem.extra_rdoc_files = TEXT_FILES - [ 'Rakefile' ]
|
244
259
|
|
245
260
|
gem.bindir = BINDIR.relative_path_from(BASEDIR).to_s
|
246
261
|
gem.executables = BIN_FILES.select {|pn| File.executable?(pn) }.
|
@@ -254,6 +269,13 @@ GEMSPEC = Gem::Specification.new do |gem|
|
|
254
269
|
gem.files = RELEASE_FILES
|
255
270
|
gem.test_files = SPEC_FILES
|
256
271
|
|
272
|
+
# signing key and certificate chain
|
273
|
+
gem.signing_key = '/Volumes/Keys/ged-private_gem_key.pem'
|
274
|
+
gem.cert_chain = [File.expand_path('~/.gem/ged-public_gem_cert.pem')]
|
275
|
+
|
276
|
+
|
277
|
+
gem.required_ruby_version = '>=1.8.7'
|
278
|
+
|
257
279
|
DEPENDENCIES.each do |name, version|
|
258
280
|
version = '>= 0' if version.length.zero?
|
259
281
|
gem.add_runtime_dependency( name, version )
|
@@ -294,7 +316,7 @@ import LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist?
|
|
294
316
|
#####################################################################
|
295
317
|
|
296
318
|
### Default task
|
297
|
-
task :default => [:clean, :local, :spec, :
|
319
|
+
task :default => [:clean, :local, :spec, :apidocs, :package]
|
298
320
|
|
299
321
|
### Task the local Rakefile can append to -- no-op by default
|
300
322
|
task :local
|
data/Rakefile.local
CHANGED
@@ -1,26 +1,61 @@
|
|
1
1
|
#!rake
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
3
|
+
require 'uri'
|
4
|
+
require 'tempfile'
|
5
5
|
require 'rbconfig'
|
6
6
|
|
7
|
-
|
7
|
+
MISCDIR = BASEDIR + 'misc'
|
8
|
+
|
8
9
|
EXT_MAKEFILE = EXTDIR + 'Makefile'
|
9
10
|
EXT_SOURCES = FileList[ EXTDIR + '*.c' ]
|
10
|
-
EXT_SO = EXTDIR + "
|
11
|
-
|
12
|
-
SITEARCH_DIR = LIBDIR + Config::CONFIG['sitearch']
|
11
|
+
EXT_SO = EXTDIR + "pg_ext.#{CONFIG['DLEXT']}"
|
13
12
|
|
14
13
|
NUM_CPUS = if File.exist?('/proc/cpuinfo')
|
15
14
|
File.read('/proc/cpuinfo').scan('processor').length
|
15
|
+
elsif RUBY_PLATFORM.include?( 'darwin' )
|
16
|
+
`system_profiler SPHardwareDataType | grep 'Cores' | awk '{print $5}'`.chomp
|
16
17
|
else
|
17
18
|
1
|
18
19
|
end
|
19
20
|
|
20
21
|
# Cross-compilation constants
|
21
|
-
|
22
|
-
|
23
|
-
|
22
|
+
OPENSSL_VERSION = ENV['OPENSSL_VERSION'] || '1.0.0d'
|
23
|
+
POSTGRESQL_VERSION = ENV['POSTGRESQL_VERSION'] || '9.0.3'
|
24
|
+
|
25
|
+
COMPILE_HOME = Pathname( "~/.rake-compiler" ).expand_path
|
26
|
+
STATIC_SOURCESDIR = COMPILE_HOME + 'sources'
|
27
|
+
STATIC_BUILDDIR = COMPILE_HOME + 'builds'
|
28
|
+
|
29
|
+
# Static OpenSSL build vars
|
30
|
+
STATIC_OPENSSL_BUILDDIR = STATIC_BUILDDIR + "openssl-#{OPENSSL_VERSION}"
|
31
|
+
|
32
|
+
OPENSSL_SOURCE_URI =
|
33
|
+
URI( "http://www.openssl.org/source/openssl-#{OPENSSL_VERSION}.tar.gz" )
|
34
|
+
OPENSSL_TARBALL = STATIC_SOURCESDIR + File.basename( OPENSSL_SOURCE_URI.path )
|
35
|
+
OPENSSL_MAKEFILE = STATIC_OPENSSL_BUILDDIR + 'Makefile'
|
36
|
+
|
37
|
+
LIBSSLEAY32 = STATIC_OPENSSL_BUILDDIR + 'libssleay32.a'
|
38
|
+
LIBEAY32 = STATIC_OPENSSL_BUILDDIR + 'libeay32.a'
|
39
|
+
|
40
|
+
OPENSSL_PATCHES = Rake::FileList[ MISCDIR + "openssl-#{OPENSSL_VERSION}.*.patch" ]
|
41
|
+
|
42
|
+
# Static PostgreSQL build vars
|
43
|
+
STATIC_POSTGRESQL_BUILDDIR = STATIC_BUILDDIR + "postgresql-#{POSTGRESQL_VERSION}"
|
44
|
+
POSTGRESQL_SOURCE_URI = begin
|
45
|
+
uristring = "http://ftp9.us.postgresql.org/pub/mirrors/postgresql/source/" +
|
46
|
+
"v%s/postgresql-%s.tar.gz" % [ POSTGRESQL_VERSION, POSTGRESQL_VERSION ]
|
47
|
+
URI( uristring )
|
48
|
+
end
|
49
|
+
POSTGRESQL_TARBALL = STATIC_SOURCESDIR + File.basename( POSTGRESQL_SOURCE_URI.path )
|
50
|
+
|
51
|
+
STATIC_POSTGRESQL_SRCDIR = STATIC_POSTGRESQL_BUILDDIR + 'src'
|
52
|
+
STATIC_POSTGRESQL_LIBDIR = STATIC_POSTGRESQL_SRCDIR + 'interfaces/libpq'
|
53
|
+
STATIC_POSTGRESQL_INCDIR = STATIC_POSTGRESQL_SRCDIR + 'include'
|
54
|
+
|
55
|
+
POSTGRESQL_GLOBAL_MAKEFILE = STATIC_POSTGRESQL_SRCDIR + 'Makefile.global'
|
56
|
+
POSTGRESQL_SHLIB_MAKEFILE = STATIC_POSTGRESQL_SRCDIR + 'Makefile.shlib'
|
57
|
+
POSTGRESQL_SHLIB_MF_ORIG = STATIC_POSTGRESQL_SRCDIR + 'Makefile.shlib.orig'
|
58
|
+
POSTGRESQL_LIB = STATIC_POSTGRESQL_LIBDIR + 'libpq.a'
|
24
59
|
|
25
60
|
CROSS_PREFIX = if RUBY_PLATFORM.include?( 'darwin' )
|
26
61
|
'i386-mingw32'
|
@@ -32,6 +67,13 @@ end
|
|
32
67
|
SPEC_DATA = Rake::FileList[ SPECDIR + 'data/*' ]
|
33
68
|
GEMSPEC.test_files += SPEC_DATA.to_a
|
34
69
|
|
70
|
+
# Clean up any testing database directories
|
71
|
+
TESTING_TMPDIRS = Rake::FileList[ "#{BASEDIR}/tmp_test_*" ]
|
72
|
+
CLOBBER.include( STATIC_SOURCESDIR.to_s, *TESTING_TMPDIRS )
|
73
|
+
|
74
|
+
# clean intermediate files and folders
|
75
|
+
CLEAN.include( STATIC_BUILDDIR.to_s )
|
76
|
+
|
35
77
|
|
36
78
|
#####################################################################
|
37
79
|
### T A S K S
|
@@ -47,197 +89,224 @@ namespace :spec do
|
|
47
89
|
task :text => [ :compile ]
|
48
90
|
end
|
49
91
|
|
50
|
-
ENV['RUBY_CC_VERSION']
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
ext.
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
92
|
+
ENV['RUBY_CC_VERSION'] ||= '1.8.7:1.9.2'
|
93
|
+
|
94
|
+
begin
|
95
|
+
require 'rake/clean'
|
96
|
+
require 'rake/extensiontask'
|
97
|
+
require 'rake/extensioncompiler'
|
98
|
+
|
99
|
+
Rake::ExtensionTask.new do |ext|
|
100
|
+
ext.name = 'pg_ext'
|
101
|
+
ext.gem_spec = GEMSPEC
|
102
|
+
ext.ext_dir = EXTDIR.to_s
|
103
|
+
ext.lib_dir = LIBDIR.to_s
|
104
|
+
ext.source_pattern = "*.{c,h}"
|
105
|
+
|
106
|
+
# If there's an explicit 'compile' argument, use everything after it as options.
|
107
|
+
if offset = ARGV.index( 'compile' )
|
108
|
+
trace "config options = %p" % [ ARGV[(offset + 1)..-1] ]
|
109
|
+
ext.config_options = ARGV[ (offset + 1)..-1 ]
|
110
|
+
# Otherwise, just grab everything from the first option onward
|
111
|
+
elsif offset = ARGV.index( ARGV.find {|arg| arg =~ /^--/ } )
|
112
|
+
trace "config options = %p" % [ ARGV[offset..-1] ]
|
113
|
+
ext.config_options = ARGV[ offset..-1 ]
|
114
|
+
else
|
115
|
+
trace "No config options (ARGV = %p)" % [ ARGV ]
|
116
|
+
end
|
70
117
|
|
71
|
-
|
72
|
-
|
118
|
+
ext.cross_compile = true
|
119
|
+
ext.cross_platform = %w[i386-mswin32 i386-mingw32]
|
73
120
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
121
|
+
# configure options only for cross compile
|
122
|
+
ext.cross_config_options += [
|
123
|
+
"--with-pg-include=#{STATIC_POSTGRESQL_LIBDIR}",
|
124
|
+
"--with-opt-include=#{STATIC_POSTGRESQL_INCDIR}",
|
125
|
+
"--with-pg-lib=#{STATIC_POSTGRESQL_LIBDIR}",
|
126
|
+
"--with-opt-lib=#{STATIC_OPENSSL_BUILDDIR}",
|
127
|
+
"--enable-static-build",
|
128
|
+
]
|
82
129
|
|
83
|
-
end
|
130
|
+
end
|
84
131
|
|
85
132
|
|
86
|
-
desc "Stop any Postmaster instances that remain after testing."
|
87
|
-
task :cleanup_testing_dbs do
|
88
|
-
require 'spec/lib/helpers'
|
89
|
-
PgTestingHelpers.stop_existing_postmasters()
|
90
|
-
Rake::Task[:clean].invoke
|
91
|
-
end
|
92
133
|
|
134
|
+
#####################################################################
|
135
|
+
### C R O S S - C O M P I L A T I O N - T A S K S
|
136
|
+
#####################################################################
|
93
137
|
|
94
|
-
#####################################################################
|
95
|
-
### C R O S S - C O M P I L A T I O N - T A S K S
|
96
|
-
#####################################################################
|
97
138
|
|
139
|
+
directory STATIC_SOURCESDIR.to_s
|
98
140
|
|
99
|
-
#
|
100
|
-
|
101
|
-
|
141
|
+
#
|
142
|
+
# Static OpenSSL build tasks
|
143
|
+
#
|
144
|
+
directory STATIC_OPENSSL_BUILDDIR.to_s
|
102
145
|
|
103
|
-
#
|
104
|
-
|
105
|
-
|
106
|
-
# openssl source file should be stored there
|
107
|
-
file "#{COMPILE_HOME}/sources/openssl-#{OPENSSL_VERSION}.tar.gz" => ["#{COMPILE_HOME}/sources"] do |t|
|
108
|
-
# download the source file using wget or curl
|
109
|
-
chdir File.dirname(t.name) do
|
110
|
-
#http://www.openssl.org/source/openssl-0.9.8k.tar.gz
|
111
|
-
url = "http://www.openssl.org/source/#{File.basename(t.name)}"
|
112
|
-
sh "wget #{url} || curl -O #{url}"
|
146
|
+
# openssl source file should be stored there
|
147
|
+
file OPENSSL_TARBALL => STATIC_SOURCESDIR do |t|
|
148
|
+
download( OPENSSL_SOURCE_URI, t.name )
|
113
149
|
end
|
114
|
-
end
|
115
150
|
|
116
|
-
# Extract the openssl builds
|
117
|
-
file
|
118
|
-
|
119
|
-
|
151
|
+
# Extract the openssl builds
|
152
|
+
file STATIC_OPENSSL_BUILDDIR => OPENSSL_TARBALL do |t|
|
153
|
+
trace "extracting %s to %s" % [ OPENSSL_TARBALL, STATIC_OPENSSL_BUILDDIR.parent ]
|
154
|
+
STATIC_OPENSSL_BUILDDIR.mkpath
|
155
|
+
run 'tar', '-xzf', OPENSSL_TARBALL.to_s, '-C', STATIC_OPENSSL_BUILDDIR.parent.to_s
|
156
|
+
OPENSSL_MAKEFILE.unlink if OPENSSL_MAKEFILE.exist?
|
157
|
+
|
158
|
+
OPENSSL_PATCHES.each do |patchfile|
|
159
|
+
trace " applying patch #{patchfile}..."
|
160
|
+
run 'patch', '-Np1', '-d', STATIC_OPENSSL_BUILDDIR.to_s,
|
161
|
+
'-i', File.expand_path( patchfile, BASEDIR )
|
162
|
+
end
|
120
163
|
end
|
121
|
-
end
|
122
164
|
|
123
|
-
|
124
|
-
|
125
|
-
|
165
|
+
CMD_PRELUDE = [
|
166
|
+
'env',
|
167
|
+
"CC=#{CROSS_PREFIX}-gcc",
|
168
|
+
"CFLAGS=-DDSO_WIN32",
|
169
|
+
"AR=#{CROSS_PREFIX}-ar",
|
170
|
+
"RANLIB=#{CROSS_PREFIX}-ranlib"
|
171
|
+
]
|
126
172
|
|
127
|
-
|
128
|
-
|
173
|
+
|
174
|
+
# generate the makefile in a clean build location
|
175
|
+
file OPENSSL_MAKEFILE => STATIC_OPENSSL_BUILDDIR do |t|
|
176
|
+
Dir.chdir( STATIC_OPENSSL_BUILDDIR ) do
|
177
|
+
cmd = CMD_PRELUDE.dup
|
178
|
+
cmd << "./Configure" << 'mingw'
|
179
|
+
|
180
|
+
run( *cmd )
|
181
|
+
end
|
129
182
|
end
|
130
|
-
end
|
131
183
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
184
|
+
desc "compile static openssl libraries"
|
185
|
+
task :openssl_libs => [ LIBSSLEAY32, LIBEAY32 ]
|
186
|
+
|
187
|
+
task :compile_static_openssl => OPENSSL_MAKEFILE do |t|
|
188
|
+
Dir.chdir( STATIC_OPENSSL_BUILDDIR ) do
|
189
|
+
cmd = CMD_PRELUDE.dup
|
190
|
+
cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
|
191
|
+
|
192
|
+
run( *cmd )
|
193
|
+
end
|
141
194
|
end
|
142
|
-
end
|
143
195
|
|
144
|
-
|
145
|
-
|
196
|
+
desc "compile static #{LIBEAY32}"
|
197
|
+
file LIBEAY32 => :compile_static_openssl do |t|
|
198
|
+
FileUtils.cp( STATIC_OPENSSL_BUILDDIR + 'libcrypto.a', LIBEAY32.to_s )
|
199
|
+
end
|
146
200
|
|
201
|
+
desc "compile static #{LIBSSLEAY32}"
|
202
|
+
file LIBSSLEAY32 => :compile_static_openssl do |t|
|
203
|
+
FileUtils.cp( STATIC_OPENSSL_BUILDDIR + 'libssl.a', LIBSSLEAY32.to_s )
|
204
|
+
end
|
147
205
|
|
148
|
-
# define a location where sources will be stored
|
149
|
-
directory "#{COMPILE_HOME}/builds/postgresql-#{POSTGRESQL_VERSION}"
|
150
206
|
|
151
|
-
# clean intermediate files and folders
|
152
|
-
CLEAN.include("#{COMPILE_HOME}/builds/postgresql-#{POSTGRESQL_VERSION}")
|
153
207
|
|
208
|
+
#
|
209
|
+
# Static PostgreSQL build tasks
|
210
|
+
#
|
211
|
+
directory STATIC_POSTGRESQL_BUILDDIR.to_s
|
154
212
|
|
155
|
-
# postgresql source file should be stored there
|
156
|
-
file "#{COMPILE_HOME}/sources/postgresql-#{POSTGRESQL_VERSION}.tar.bz2" => ["#{COMPILE_HOME}/sources"] do |t|
|
157
|
-
# download the source file using wget or curl
|
158
|
-
chdir File.dirname(t.name) do
|
159
|
-
#http://wwwmaster.postgresql.org/redir/53/h/source/v8.4.0/postgresql-8.4.0.tar.bz2
|
160
|
-
url = "http://wwwmaster.postgresql.org/redir/53/h/source/v#{POSTGRESQL_VERSION}/#{File.basename(t.name)}"
|
161
|
-
sh "wget #{url} || curl -O #{url}"
|
162
|
-
end
|
163
|
-
end
|
164
213
|
|
165
|
-
#
|
166
|
-
file
|
167
|
-
|
168
|
-
t.prerequisites.each { |f| sh "tar xfj ../sources/#{File.basename(f)}" }
|
214
|
+
# postgresql source file should be stored there
|
215
|
+
file POSTGRESQL_TARBALL => STATIC_SOURCESDIR do |t|
|
216
|
+
download( POSTGRESQL_SOURCE_URI, t.name )
|
169
217
|
end
|
170
|
-
end
|
171
218
|
|
172
|
-
#
|
173
|
-
file
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
"--host=#{Rake::ExtensionCompiler.mingw_host}",
|
180
|
-
'--with-openssl',
|
181
|
-
'--without-zlib',
|
182
|
-
'--disable-shared',
|
183
|
-
]
|
219
|
+
# Extract the postgresql sources
|
220
|
+
file STATIC_POSTGRESQL_BUILDDIR => POSTGRESQL_TARBALL do |t|
|
221
|
+
trace "extracting %s to %s" % [ POSTGRESQL_TARBALL, STATIC_POSTGRESQL_BUILDDIR.parent ]
|
222
|
+
STATIC_POSTGRESQL_BUILDDIR.mkpath
|
223
|
+
run 'tar', '-xzf', POSTGRESQL_TARBALL.to_s, '-C', STATIC_POSTGRESQL_BUILDDIR.parent.to_s
|
224
|
+
mv POSTGRESQL_SHLIB_MAKEFILE, POSTGRESQL_SHLIB_MF_ORIG
|
225
|
+
end
|
184
226
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
227
|
+
# generate the makefile in a clean build location
|
228
|
+
file POSTGRESQL_GLOBAL_MAKEFILE => [ STATIC_POSTGRESQL_BUILDDIR, :openssl_libs ] do |t|
|
229
|
+
options = [
|
230
|
+
'--target=i386-mingw32',
|
231
|
+
"--host=#{Rake::ExtensionCompiler.mingw_host}",
|
232
|
+
'--with-openssl',
|
233
|
+
'--without-zlib',
|
234
|
+
'--disable-shared',
|
235
|
+
]
|
236
|
+
|
237
|
+
Dir.chdir( STATIC_POSTGRESQL_BUILDDIR ) do
|
238
|
+
configure_path = STATIC_POSTGRESQL_BUILDDIR + 'configure'
|
239
|
+
cmd = [ configure_path.to_s, *options ]
|
240
|
+
cmd << "CFLAGS=-L#{STATIC_OPENSSL_BUILDDIR}"
|
241
|
+
cmd << "LDFLAGS=-L#{STATIC_OPENSSL_BUILDDIR}"
|
242
|
+
cmd << "LDFLAGS_SL=-L#{STATIC_OPENSSL_BUILDDIR}"
|
243
|
+
cmd << "LIBS=-lwsock32 -lws2_32 -lgdi32"
|
244
|
+
cmd << "CPPFLAGS=-I#{STATIC_OPENSSL_BUILDDIR}/include"
|
245
|
+
|
246
|
+
run( *cmd )
|
247
|
+
end
|
195
248
|
end
|
196
|
-
end
|
197
249
|
|
198
|
-
# backup Makefile.shlib
|
199
|
-
file "#{COMPILE_HOME}/builds/postgresql-#{POSTGRESQL_VERSION}/src/Makefile.shlib.bak" => ["#{COMPILE_HOME}/builds/postgresql-#{POSTGRESQL_VERSION}/src/Makefile.global"] do |t|
|
200
|
-
cp "#{COMPILE_HOME}/builds/postgresql-#{POSTGRESQL_VERSION}/src/Makefile.shlib", t.name
|
201
|
-
end
|
202
250
|
|
203
|
-
# patch the Makefile.shlib
|
204
|
-
|
205
|
-
|
251
|
+
# patch the Makefile.shlib -- depend on the build dir so it's only
|
252
|
+
# rewritten if the tarball is re-extracted.
|
253
|
+
file POSTGRESQL_SHLIB_MAKEFILE => POSTGRESQL_SHLIB_MF_ORIG do |t|
|
254
|
+
tf = Tempfile.new( POSTGRESQL_SHLIB_MAKEFILE.basename )
|
255
|
+
POSTGRESQL_SHLIB_MF_ORIG.open( File::RDONLY ) do |ifh|
|
256
|
+
ifh.each_line do |line|
|
257
|
+
tf.print( line.sub(/^(\s*haslibarule\s*=\s*yes)/, "# \\1 ") )
|
258
|
+
end
|
259
|
+
end
|
260
|
+
tf.close
|
206
261
|
|
207
|
-
|
262
|
+
FileUtils.mv( tf.path, t.name, :verbose => $trace )
|
263
|
+
end
|
208
264
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
265
|
+
|
266
|
+
# make libpq.a
|
267
|
+
task POSTGRESQL_LIB => [ POSTGRESQL_GLOBAL_MAKEFILE, POSTGRESQL_SHLIB_MAKEFILE ] do |t|
|
268
|
+
Dir.chdir( POSTGRESQL_LIB.dirname ) do
|
269
|
+
sh 'make', "-j#{NUM_CPUS}", POSTGRESQL_LIB.basename.to_s, 'PORTNAME=win32'
|
214
270
|
end
|
215
271
|
end
|
216
272
|
|
217
|
-
when_writing("Patching Makefile.shlib") {
|
218
|
-
File.open(t.name, 'wb') { |f| f.write(out) }
|
219
|
-
}
|
220
|
-
end
|
221
273
|
|
274
|
+
#desc 'compile static libpg.a'
|
275
|
+
task :static_libpq => POSTGRESQL_LIB
|
222
276
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
277
|
+
desc 'cross compile pg for win32'
|
278
|
+
task :cross do
|
279
|
+
ENV['CROSS_COMPILING'] = 'yes'
|
280
|
+
end
|
281
|
+
task :cross => [ :mingw32, :static_libpq ]
|
282
|
+
|
283
|
+
task :mingw32 do
|
284
|
+
# Use Rake::ExtensionCompiler helpers to find the proper host
|
285
|
+
unless Rake::ExtensionCompiler.mingw_host then
|
286
|
+
warn "You need to install mingw32 cross compile functionality to be able to continue."
|
287
|
+
warn "Please refer to your distribution/package manager documentation about installation."
|
288
|
+
fail
|
289
|
+
end
|
227
290
|
end
|
228
|
-
end
|
229
|
-
|
230
|
-
#desc 'compile static libpg.a'
|
231
|
-
task 'postgresql-make' => ['openssl-make', "#{COMPILE_HOME}/builds/postgresql-#{POSTGRESQL_VERSION}/src/interfaces/libpq/libpq.a"]
|
232
|
-
|
233
|
-
desc 'cross compile pg for win32'
|
234
|
-
task 'cross' => [:mingw32, 'postgresql-make']
|
235
291
|
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
warn "You need to install mingw32 cross compile functionality to be able to continue."
|
240
|
-
warn "Please refer to your distribution/package manager documentation about installation."
|
292
|
+
rescue LoadError => err
|
293
|
+
task :no_rake_compiler do
|
294
|
+
log "You'll need to install rake-compiler to compile this."
|
241
295
|
fail
|
242
296
|
end
|
297
|
+
|
298
|
+
task :compile => :no_rake_compiler
|
299
|
+
task :cross => :no_rake_compiler
|
300
|
+
task :mingw32 => :no_rake_compiler
|
301
|
+
task :static_libpq => :no_rake_compiler
|
302
|
+
end
|
303
|
+
|
304
|
+
|
305
|
+
desc "Stop any Postmaster instances that remain after testing."
|
306
|
+
task :cleanup_testing_dbs do
|
307
|
+
require 'spec/lib/helpers'
|
308
|
+
PgTestingHelpers.stop_existing_postmasters()
|
309
|
+
Rake::Task[:clean].invoke
|
243
310
|
end
|
311
|
+
|
312
|
+
|