rhoconnect 3.4.3 → 3.4.4
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.
- 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:
|