rhoconnect 3.4.3 → 3.4.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +6 -6
- data/install.sh +34 -83
- data/installer/unix-like/create_texts.rb +29 -10
- data/installer/unix-like/post_install.sh +5 -2
- data/installer/unix-like/rho_connect_install_constants.rb +6 -7
- data/installer/unix-like/rho_connect_install_installers.rb +11 -19
- data/installer/unix-like/rhoinstaller.rb +9 -3
- data/lib/rhoconnect/version.rb +1 -1
- metadata +3 -3
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 3.4.4 (2013-02-27)
|
2
|
+
* Updated prod. stack to ruby-1.9.3-p392, redis-2.6.10, and nginx-1.3.13.
|
3
|
+
|
1
4
|
## 3.4.3 (2013-02-11)
|
2
5
|
* Updated rack gem to latest release with important security fixes. Locked version of 'connection_pool' gem.
|
3
6
|
* fixing 'rhoconnect spec' command in production env
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rhoconnect (3.4.
|
4
|
+
rhoconnect (3.4.4)
|
5
5
|
bundler (~> 1.0)
|
6
6
|
connection_pool (= 0.9.2)
|
7
7
|
json (~> 1.6.0)
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
mime-types
|
31
31
|
xml-simple
|
32
32
|
backports (2.6.2)
|
33
|
-
builder (3.
|
33
|
+
builder (3.2.0)
|
34
34
|
cabin (0.6.0)
|
35
35
|
childprocess (0.3.8)
|
36
36
|
ffi (~> 1.0, >= 1.0.11)
|
@@ -38,13 +38,13 @@ GEM
|
|
38
38
|
coffee-script (2.2.0)
|
39
39
|
coffee-script-source
|
40
40
|
execjs
|
41
|
-
coffee-script-source (1.
|
41
|
+
coffee-script-source (1.5.0)
|
42
42
|
connection_pool (0.9.2)
|
43
43
|
crack (0.3.2)
|
44
44
|
daemons (1.1.9)
|
45
45
|
diff-lcs (1.1.3)
|
46
46
|
eventmachine (1.0.0)
|
47
|
-
excon (0.18.
|
47
|
+
excon (0.18.5)
|
48
48
|
execjs (1.4.0)
|
49
49
|
multi_json (~> 1.0)
|
50
50
|
extlib (0.9.16)
|
@@ -128,11 +128,11 @@ GEM
|
|
128
128
|
multi_json (~> 1.0)
|
129
129
|
simplecov-html (~> 0.7.1)
|
130
130
|
simplecov-html (0.7.1)
|
131
|
-
sinatra (1.3.
|
131
|
+
sinatra (1.3.5)
|
132
132
|
rack (~> 1.4)
|
133
133
|
rack-protection (~> 1.3)
|
134
134
|
tilt (~> 1.3, >= 1.3.3)
|
135
|
-
sprockets (2.
|
135
|
+
sprockets (2.9.0)
|
136
136
|
hike (~> 1.2)
|
137
137
|
multi_json (~> 1.0)
|
138
138
|
rack (~> 1.0)
|
data/install.sh
CHANGED
@@ -150,15 +150,6 @@ setPrefixDependantPaths ()
|
|
150
150
|
# Make path to log file absolute and create directory if not already existent
|
151
151
|
log="${prefix}/logs/${log}"
|
152
152
|
touch $log > /dev/null
|
153
|
-
|
154
|
-
# Add the log file path to the info file
|
155
|
-
`echo $log >> info.dat`
|
156
|
-
#cat info.dat
|
157
|
-
|
158
|
-
# Move info.dat into installation directory if not already there
|
159
|
-
if ! [ -e "${prefix}/info.dat" ]; then
|
160
|
-
mv info.dat "${prefix}/info.dat"
|
161
|
-
fi
|
162
153
|
}
|
163
154
|
|
164
155
|
setDefaults ()
|
@@ -174,19 +165,12 @@ setDefaults ()
|
|
174
165
|
fi
|
175
166
|
}
|
176
167
|
|
177
|
-
logAndPrint ()
|
178
|
-
{
|
179
|
-
$1 > $log 2>&1
|
180
|
-
exitStatus=$?
|
181
|
-
}
|
182
|
-
|
183
168
|
setRubyVars ()
|
184
169
|
{
|
185
170
|
if [[ $rubyVersion == "" || $rubyVersion =~ ruby'ee'|'enterprise' ]]; then
|
186
|
-
rubyVersion
|
187
|
-
rubyDir
|
171
|
+
rubyVersion=${RUBY_VERSION}
|
172
|
+
rubyDir=${RUBY_VERSION}
|
188
173
|
rubyTar="${rubyDir}.tar.gz"
|
189
|
-
# http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p286.tar.gz
|
190
174
|
rubyURL="http://ftp.ruby-lang.org/pub/ruby/1.9/${rubyTar}"
|
191
175
|
elif [$rubyVersion == "ruby187"]; then
|
192
176
|
rubyDir="ruby-1.8.7"
|
@@ -211,44 +195,24 @@ installRuby ()
|
|
211
195
|
echo "tar -xzf ${prefix}/${rubyTar} -C ${prefix}" >> $log
|
212
196
|
tar -xzf ${prefix}/${rubyTar} -C ${prefix} > /dev/null 2>&1
|
213
197
|
fi
|
198
|
+
|
214
199
|
echo "Installing ruby. This may take some time..." | tee -a $log
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
echo "./configure --prefix=${prefix} --enable-shared --disable-install-doc" | tee -a $log
|
225
|
-
./configure --prefix=${prefix} --enable-shared --disable-install-doc >> $log 2>&1
|
226
|
-
echo "make && make install" | tee -a $log
|
227
|
-
make >> $log 2>&1
|
228
|
-
make install >> $log 2>&1
|
229
|
-
)
|
230
|
-
;;
|
231
|
-
ruby187)
|
232
|
-
logAndPrint "${prefix}/${rubyDir}/configure --prefix=\"${prefix}\""
|
233
|
-
logAndPrint "make && make install"
|
234
|
-
;;
|
235
|
-
ruby192)
|
236
|
-
logAndPrint "${prefix}/${rubyDir}/configure --prefix=\"${prefix}\""
|
237
|
-
logAndPrint "make && make install"
|
238
|
-
;;
|
239
|
-
*)
|
240
|
-
logAndPrint "echo \"${rubyVersion} is not a supported ruby version\""
|
241
|
-
exit 1
|
242
|
-
;;
|
243
|
-
esac
|
244
|
-
|
245
|
-
if [[ $? != 0 ]]; then
|
200
|
+
echo "pushd ${prefix}/${rubyDir}" | tee -a $log
|
201
|
+
pushd ${prefix}/${rubyDir}
|
202
|
+
echo "./configure --prefix=${prefix} --enable-shared --disable-install-doc" | tee -a $log
|
203
|
+
./configure --prefix=${prefix} --enable-shared --disable-install-doc >> $log 2>&1
|
204
|
+
echo "make && make install" | tee -a $log
|
205
|
+
make >> $log 2>&1
|
206
|
+
make install >> $log 2>&1
|
207
|
+
|
208
|
+
if (( $? )) ; then
|
246
209
|
echo "Some dependencies not installed..." | tee -a $log
|
247
210
|
echo "Please install them and then re-run the installation script." | tee -a $log
|
248
211
|
echo "For troubleshooting see file $log ..." | tee -a $log
|
249
212
|
exit 1
|
250
213
|
fi
|
251
214
|
|
215
|
+
popd
|
252
216
|
echo -e "$rubyDir is successfully installed.\n" | tee -a $log
|
253
217
|
}
|
254
218
|
|
@@ -260,8 +224,8 @@ log=rhoconnect_$(date +$DATEFILE).log
|
|
260
224
|
|
261
225
|
# make sure only run as root
|
262
226
|
if [ "$(id -u)" != "0" ]; then
|
263
|
-
|
264
|
-
|
227
|
+
echo "This script must be run as root" | tee -a $log
|
228
|
+
exit 1
|
265
229
|
fi
|
266
230
|
|
267
231
|
# Check if web server is running on port 80
|
@@ -272,9 +236,9 @@ if [[ `echo "close" | telnet localhost 80 2>&1 | grep "Connected"` ]]; then
|
|
272
236
|
fi
|
273
237
|
|
274
238
|
# Get starting directory
|
275
|
-
|
276
|
-
if [[ $
|
277
|
-
INSTALL_DIR
|
239
|
+
PWD=`pwd`
|
240
|
+
if [[ $PWD = "/opt/rhoconnect/installer" ]]; then
|
241
|
+
INSTALL_DIR=$PWD
|
278
242
|
else
|
279
243
|
INSTALL_DIR="./installer"
|
280
244
|
fi
|
@@ -293,6 +257,10 @@ webServer=""
|
|
293
257
|
rubyVersion=""
|
294
258
|
rubyBinDir=""
|
295
259
|
|
260
|
+
# Define ruby vession to be installed ...
|
261
|
+
RUBY_PATCH="p392"
|
262
|
+
RUBY_VERSION="ruby-1.9.3-${RUBY_PATCH}"
|
263
|
+
|
296
264
|
# parse command-line options
|
297
265
|
parseOpts "$*"
|
298
266
|
|
@@ -316,36 +284,19 @@ cleanPrefix
|
|
316
284
|
# Once the prefix path is cleaned up...
|
317
285
|
setPrefixDependantPaths
|
318
286
|
|
319
|
-
|
320
|
-
|
321
|
-
installRuby
|
287
|
+
if [[ -e ${prefix}/bin/ruby && `${prefix}/bin/ruby -v | awk '{ print $2}'` =~ ${RUBY_PATCH} ]]; then
|
288
|
+
echo "${RUBY_VERSION} already installed" | tee -a $log
|
322
289
|
else
|
323
|
-
|
290
|
+
installRuby
|
324
291
|
fi
|
325
292
|
|
326
|
-
#
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
if [[ $installedSoftware -eq ${#INSTALL_ARRAY[@]} ]]; then
|
333
|
-
rm "${prefix}/info.dat"
|
334
|
-
if [ -e $prefix$rubyTar ]; then
|
335
|
-
mv $prefix/$rubyTar $prefix"/downloads/"$rubyTar
|
336
|
-
fi
|
337
|
-
if [ -e $prefix$rubyDir ]; then
|
338
|
-
mv $prefix$rubyDir $prefix"/downloads/"$rubyDir
|
339
|
-
fi
|
340
|
-
if [ ! -e $prefix"/post-install" ]; then
|
341
|
-
mkdir $prefix"/post-install"
|
342
|
-
fi
|
343
|
-
|
344
|
-
if (( $rho_status )) ; then
|
345
|
-
echo "Installation failed. For troubleshooting see file $log ..." | tee -a $log
|
346
|
-
exit 1
|
347
|
-
else
|
348
|
-
opts=" -d $dist -l $log"
|
349
|
-
${prefix}/bin/ruby ${INSTALL_DIR}/unix-like/create_texts.rb ${opts}
|
350
|
-
fi
|
293
|
+
# Install redis, sqllite3, nginx, rhoconnect
|
294
|
+
opts=" -d $dist -l $log"
|
295
|
+
${prefix}/bin/ruby ${INSTALL_DIR}/unix-like/rhoinstaller.rb ${opts}
|
296
|
+
if (( $? )) ; then
|
297
|
+
echo "Installation failed. For troubleshooting see file $log ..." | tee -a $log
|
298
|
+
exit 1
|
351
299
|
fi
|
300
|
+
|
301
|
+
# Create configuration scripts for redis, nginx, thin.
|
302
|
+
${prefix}/bin/ruby ${INSTALL_DIR}/unix-like/create_texts.rb ${opts}
|
@@ -239,6 +239,15 @@ end
|
|
239
239
|
def create_nginx_init
|
240
240
|
nginx_init_script = <<'_NGINX_INIT_SCRIPT_'
|
241
241
|
#!/bin/sh
|
242
|
+
### BEGIN INIT INFO
|
243
|
+
# Provides: nginx
|
244
|
+
# Required-Start: $local_fs $remote_fs
|
245
|
+
# Required-Stop: $local_fs $remote_fs
|
246
|
+
# Default-Start: 2 3 4 5
|
247
|
+
# Default-Stop: S 0 1 6
|
248
|
+
# Short-Description: nginx initscript
|
249
|
+
# Description: nginx
|
250
|
+
### END INIT INFO
|
242
251
|
# Author: Ryan Norbauer http://norbauerinc.com
|
243
252
|
# Modified: Geoffrey Grosenbach http://topfunky.com
|
244
253
|
# Modified: Clement NEDELCU
|
@@ -363,15 +372,25 @@ http {
|
|
363
372
|
}
|
364
373
|
_NGINX_CONF_
|
365
374
|
|
366
|
-
#
|
367
|
-
|
368
|
-
if
|
375
|
+
# Creating 'nginx' group if it isn't already there
|
376
|
+
`getent group nginx > /dev/null`
|
377
|
+
if $? != 0
|
378
|
+
puts "Creating 'nginx' group ..."
|
379
|
+
if @dist == 'debian'
|
380
|
+
`addgroup --system nginx > /dev/null`
|
381
|
+
else
|
382
|
+
`/usr/sbin/groupadd -r nginx > /dev/null`
|
383
|
+
end
|
384
|
+
end
|
385
|
+
# Creating 'nginx' user if it isn't already there
|
386
|
+
`getent passwd nginx >/dev/null`
|
387
|
+
if $? != 0
|
369
388
|
puts "Creating 'nginx' user ..."
|
370
389
|
if @dist == 'debian'
|
371
390
|
`adduser --system --home /opt/nginx/html --no-create-home --disabled-login --disabled-password --group nginx`
|
372
391
|
else
|
373
|
-
`/usr/sbin/useradd -M -r -s /sbin/nologin -d /opt/nginx/html nginx`
|
374
|
-
end
|
392
|
+
`/usr/sbin/useradd -M -r -s /sbin/nologin -d /opt/nginx/html -g nginx nginx`
|
393
|
+
end
|
375
394
|
end
|
376
395
|
|
377
396
|
FileUtils.mv("/opt/nginx/conf/nginx.conf", "/opt/nginx/conf/nginx.conf.bak") unless File.exist? "/opt/nginx/conf/nginx.conf.bak"
|
@@ -539,16 +558,16 @@ To deploy and develop your rhoconnect app on nginx and thin servers:
|
|
539
558
|
# ...
|
540
559
|
}
|
541
560
|
|
542
|
-
e) Edit
|
561
|
+
e) Edit thin `/etc/thin/rhoapp.yml` configuration file directly
|
543
562
|
---
|
544
563
|
chdir: /opt/nginx/html/your_rhoconnect_app
|
545
564
|
# ...
|
546
565
|
|
547
566
|
or as root user generate a new one
|
548
|
-
$ env PATH=/opt/rhoconnect/bin:$PATH thin config -C /etc/thin/your_rhoconnect_app.yml
|
549
|
-
-c /opt/nginx/html/your_rhoconnect_app/
|
550
|
-
--socket /tmp/thin.sock --servers 2
|
551
|
-
--user nginx --group nginx
|
567
|
+
$ env PATH=/opt/rhoconnect/bin:$PATH thin config -C /etc/thin/your_rhoconnect_app.yml
|
568
|
+
-c /opt/nginx/html/your_rhoconnect_app/
|
569
|
+
--socket /tmp/thin.sock --servers 2
|
570
|
+
--user nginx --group nginx
|
552
571
|
--log /var/log/thin/thin.log --pid /var/run/thin/thin.pid -e production`
|
553
572
|
|
554
573
|
f) As root user restart Nginx, and Thin servers
|
@@ -8,21 +8,20 @@ module Constants
|
|
8
8
|
"libaprutil1-dev",
|
9
9
|
"dtach"]
|
10
10
|
|
11
|
-
RUBY = "ruby-1.9.3-
|
12
|
-
REDIS = "redis-2.
|
13
|
-
SQLITE3 = "sqlite-autoconf-
|
14
|
-
NGINX = "nginx-1.3.
|
11
|
+
RUBY = "ruby-1.9.3-p392"
|
12
|
+
REDIS = "redis-2.6.10"
|
13
|
+
SQLITE3 = "sqlite-autoconf-3071502"
|
14
|
+
NGINX = "nginx-1.3.13"
|
15
15
|
PASSENGER_ROOT = "/opt/rhoconnect/lib/ruby/gems/1.9.1/gems/passenger"
|
16
16
|
|
17
17
|
SOFTWARE = [ REDIS, SQLITE3, RUBY, NGINX ]
|
18
18
|
|
19
19
|
REDIS_URL = "http://redis.googlecode.com/files/#{REDIS}.tar.gz"
|
20
|
-
SQLITE3_URL = "http://www.sqlite.org
|
20
|
+
SQLITE3_URL = "http://www.sqlite.org/#{SQLITE3}.tar.gz"
|
21
21
|
NGINX_URL = "http://nginx.org/download/#{NGINX}.tar.gz"
|
22
|
-
EVENTMACHINE_URL = "https://github.com/rhomobile/eventmachine/tarball/master"
|
23
22
|
URLS = [ REDIS_URL, SQLITE3_URL, NGINX_URL]
|
24
23
|
GEMS = ["bundler"] # foreman"
|
25
|
-
|
24
|
+
|
26
25
|
SUPPORTED_PKG_MGRS = ["apt-get", "yum"]
|
27
26
|
SUPPORTED_WEB_SERVERS = ["apache2", "nginx"]
|
28
27
|
|
@@ -22,21 +22,19 @@ module Installers
|
|
22
22
|
|
23
23
|
def install_all_gems
|
24
24
|
@gem_path = "#{@options[:prefix]}/bin/gem"
|
25
|
-
|
26
|
-
#
|
27
|
-
cmd "#{@gem_path} update --system"
|
28
|
-
# Install bundler
|
25
|
+
# Update the RubyGems system software
|
26
|
+
# FIXME: => v.2.0.0
|
27
|
+
cmd "#{@gem_path} update --system 1.8.25"
|
29
28
|
GEMS.each do |gem|
|
30
|
-
install_gem
|
29
|
+
install_gem(gem)
|
31
30
|
end
|
32
31
|
end
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
cmd "#{@gem_path} install #{gem} --no-ri --no-rdoc" #unless check_gem(gem, @gem_path)
|
33
|
+
def install_gem(gem, options = "--no-ri --no-rdoc")
|
34
|
+
print_header "Installing #{gem} ..."
|
35
|
+
cmd "#{@gem_path} install #{gem} #{options}"
|
38
36
|
raise "#{gem} installation failed." if $? != 0
|
39
|
-
end
|
37
|
+
end
|
40
38
|
|
41
39
|
# install_redis
|
42
40
|
# This method installs redis
|
@@ -74,20 +72,14 @@ module Installers
|
|
74
72
|
|
75
73
|
def install_rhoconnect
|
76
74
|
print_header "Building rhoconnect gem ..."
|
77
|
-
Dir.chdir(@options[:
|
75
|
+
Dir.chdir("#{@options[:prefix]}/installer")
|
78
76
|
|
79
77
|
cmd "#{@options[:prefix]}/bin/bundle config build.sqlite3 " +
|
80
78
|
"--with-sqlite3-include=#{@options[:prefix]}/include " +
|
81
|
-
"--with-sqlite3-lib=#{@options[:prefix]}/lib"
|
82
|
-
|
83
|
-
# cmd "#{@options[:prefix]}/bin/bundle install --system --binstubs=/opt/rhoconnect/bin"
|
84
|
-
# cmd "PATH=#{@options[:prefix]}/bin:$PATH rake build"
|
85
|
-
# cmd "#{@gem_path} install pkg/rhoconnect-*.gem --no-ri --no-rdoc"
|
86
|
-
# raise "Gem installation failed." if $? != 0
|
87
|
-
|
79
|
+
"--with-sqlite3-lib=#{@options[:prefix]}/lib"
|
88
80
|
gem_name = (Dir.glob "rhoconnect-*.gem")[0]
|
89
81
|
if gem_name && File.exists?(gem_name)
|
90
|
-
install_gem
|
82
|
+
install_gem(gem_name)
|
91
83
|
else
|
92
84
|
cmd "#{@options[:prefix]}/bin/bundle install --system --binstubs=/opt/rhoconnect/bin --without=test development"
|
93
85
|
cmd "PATH=#{@options[:prefix]}/bin:$PATH rake build"
|
@@ -59,18 +59,24 @@ optparse = OptionParser.new do|opts|
|
|
59
59
|
opts.on( '-w', '--web-server SERVER', 'Specify apache2 or nginx. Default is Nginx.' ) do |server|
|
60
60
|
options[:web_server] = server
|
61
61
|
end #do
|
62
|
+
|
63
|
+
opts.on( '-d', '--dist DISTRO', 'Specify DISTRO as the current distribution.' ) do |dist|
|
64
|
+
options[:dist] = dist
|
65
|
+
end
|
66
|
+
opts.on('-l', '--Logfile file', ' Specify installtion log file') do |file|
|
67
|
+
options[:log_file] = file
|
68
|
+
end
|
62
69
|
|
63
70
|
opts.on( '-h', '--help', 'Display this screen.' ) do
|
64
71
|
puts opts
|
65
72
|
exit
|
66
73
|
end #do
|
67
74
|
end
|
68
|
-
|
69
|
-
options[:start_dir] = `pwd`.strip
|
70
75
|
|
71
76
|
optparse.parse!
|
72
77
|
|
73
|
-
|
78
|
+
@log_file = options[:log_file]
|
79
|
+
log = Logger.new(@log_file)
|
74
80
|
log.datetime_format = "%Y-%m-%d %H:%M:%S" # simplify time output
|
75
81
|
options[:log] = log
|
76
82
|
|
data/lib/rhoconnect/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhoconnect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -734,7 +734,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
734
734
|
version: '0'
|
735
735
|
segments:
|
736
736
|
- 0
|
737
|
-
hash:
|
737
|
+
hash: -4478777276868581465
|
738
738
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
739
739
|
none: false
|
740
740
|
requirements:
|