csd 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/img/3d1.png +0 -0
- data/img/bios0.jpg +0 -0
- data/img/bios1.jpg +0 -0
- data/img/bios2.jpg +0 -0
- data/img/camera1.jpg +0 -0
- data/img/camera2.jpg +0 -0
- data/img/decklink1.png +0 -0
- data/img/decklink2.png +0 -0
- data/img/graphics1.png +0 -0
- data/img/graphics2.png +0 -0
- data/img/graphics3.png +0 -0
- data/img/graphics4.png +0 -0
- data/img/graphics5.png +0 -0
- data/img/installer1.jpg +0 -0
- data/img/installer2.jpg +0 -0
- data/img/installer3.jpg +0 -0
- data/img/minisip1.png +0 -0
- data/img/reboot.png +0 -0
- data/img/ruby1.png +0 -0
- data/img/ruby2.png +0 -0
- data/img/ruby3.png +0 -0
- data/img/ruby4.png +0 -0
- data/img/update1.png +0 -0
- data/img/update2.png +0 -0
- data/lib/csd/application/graphics/base.rb +7 -0
- data/lib/csd/application/i2conf/base.rb +59 -4
- data/lib/csd/application/i2conf/config_example.rb +4 -0
- data/lib/csd/application/minisip/base.rb +2 -0
- data/lib/csd/application/minisip/component.rb +0 -1
- data/lib/csd/application/minisip/component/core.rb +36 -9
- data/lib/csd/application/minisip/component/core_packaging.rb +63 -38
- data/lib/csd/application/minisip/component/ffmpeg.rb +1 -1
- data/lib/csd/application/minisip/component/hdviper.rb +2 -2
- data/lib/csd/application/minisip/component/network.rb +4 -0
- data/lib/csd/application/minisip/component/x264.rb +1 -1
- data/lib/csd/application/minisip/error.rb +1 -0
- data/lib/csd/application/minisip/options/install.rb +4 -0
- data/lib/csd/application/minisip/options/install_defaults.rb +1 -0
- data/lib/csd/application/minisip/unix.rb +1 -4
- data/lib/csd/application/mslog/base.rb +45 -6
- data/test/application/test_minisip.rb +2 -1
- metadata +29 -6
- data/csd.gemspec +0 -175
data/Rakefile
CHANGED
@@ -31,14 +31,14 @@ Jeweler::Tasks.new do |gemspec|
|
|
31
31
|
|
32
32
|
Thank you for installing the TTA Automated Installer!
|
33
33
|
|
34
|
-
You can run it by typing `ai´ in your command line.
|
35
|
-
|
36
34
|
NOTE: On DEBIAN and UBUNTU the executable `ai´ is *maybe*
|
37
35
|
not in your PATH by default. If that is the case,
|
38
36
|
you can fix it by running this command:
|
39
37
|
|
40
38
|
echo "export PATH=\$PATH:$(gem env | grep "E D" | sed "s/[^\w]* //")" >> ~/.bashrc;. ~/.bashrc
|
41
39
|
|
40
|
+
You can run the AI by typing `ai´ in your command line.
|
41
|
+
|
42
42
|
============================================================
|
43
43
|
}
|
44
44
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/img/3d1.png
ADDED
Binary file
|
data/img/bios0.jpg
ADDED
Binary file
|
data/img/bios1.jpg
ADDED
Binary file
|
data/img/bios2.jpg
ADDED
Binary file
|
data/img/camera1.jpg
ADDED
Binary file
|
data/img/camera2.jpg
ADDED
Binary file
|
data/img/decklink1.png
ADDED
Binary file
|
data/img/decklink2.png
ADDED
Binary file
|
data/img/graphics1.png
ADDED
Binary file
|
data/img/graphics2.png
ADDED
Binary file
|
data/img/graphics3.png
ADDED
Binary file
|
data/img/graphics4.png
ADDED
Binary file
|
data/img/graphics5.png
ADDED
Binary file
|
data/img/installer1.jpg
ADDED
Binary file
|
data/img/installer2.jpg
ADDED
Binary file
|
data/img/installer3.jpg
ADDED
Binary file
|
data/img/minisip1.png
ADDED
Binary file
|
data/img/reboot.png
ADDED
Binary file
|
data/img/ruby1.png
ADDED
Binary file
|
data/img/ruby2.png
ADDED
Binary file
|
data/img/ruby3.png
ADDED
Binary file
|
data/img/ruby4.png
ADDED
Binary file
|
data/img/update1.png
ADDED
Binary file
|
data/img/update2.png
ADDED
Binary file
|
@@ -25,10 +25,17 @@ module CSD
|
|
25
25
|
def install!
|
26
26
|
define_relative_paths
|
27
27
|
create_working_directory
|
28
|
+
aptitude
|
28
29
|
process_graphics_card
|
29
30
|
cleanup_working_directory
|
30
31
|
end
|
31
32
|
|
33
|
+
def aptitude
|
34
|
+
UI.info "Installing Debian dependencies".green.bold
|
35
|
+
Cmd.run 'sudo apt-get update', :announce_pwd => false
|
36
|
+
Cmd.run "sudo apt-get install git-core --yes --fix-missing", :announce_pwd => false
|
37
|
+
end
|
38
|
+
|
32
39
|
# This method is to provide general introductions to users, like current working directory.
|
33
40
|
#
|
34
41
|
# ====Options
|
@@ -8,8 +8,13 @@ module CSD
|
|
8
8
|
module I2conf
|
9
9
|
class Base < CSD::Application::Base
|
10
10
|
|
11
|
+
# This is to include MiniSIP component class, since MiniSIP need to be compiled before i2conf compilation.
|
12
|
+
# Thus, in the i2conf module AI will load methods in MiniSIP component class directly to compile MiniSIP.
|
13
|
+
#
|
11
14
|
include ::CSD::Application::Minisip::Component
|
12
15
|
|
16
|
+
# Necessary contents for i2conf .desktop file. It will be used in the method of create_desktop_entry.
|
17
|
+
#
|
13
18
|
DESKTOP_ENTRY = %{
|
14
19
|
[Desktop Entry]
|
15
20
|
Encoding=UTF-8
|
@@ -23,12 +28,17 @@ Type=Application
|
|
23
28
|
StartupNotify=true
|
24
29
|
Categories=Application;Internet;Network;Chat;AudioVideo}
|
25
30
|
|
31
|
+
# This constant is to preserve the URL of the i2conf icon in github repository.
|
32
|
+
#
|
26
33
|
GNOME_ICON_URL = 'http://github.com/downloads/csd/i2conf/i2conf_gnome.png'
|
27
34
|
|
28
35
|
# A list of apt-get packages that are required to install i2conf.
|
29
36
|
#
|
30
37
|
DEBIAN_DEPENDENCIES = %w{ libboost-dev libboost-thread-dev liblog4cxx* }
|
31
38
|
|
39
|
+
# This method notifies users about following operation of AI, and initiates introduction method.
|
40
|
+
# The actual installation process is carried out by method install! for the purpose of keeping source code clean.
|
41
|
+
#
|
32
42
|
def install
|
33
43
|
@minisip = ::CSD::Application::Minisip::Debian.new
|
34
44
|
define_relative_paths
|
@@ -39,6 +49,8 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
39
49
|
install!
|
40
50
|
end
|
41
51
|
|
52
|
+
# This method initiates corresponding methods sequentially to set up i2conf server.
|
53
|
+
#
|
42
54
|
def install!
|
43
55
|
create_working_directory
|
44
56
|
compile_minisip
|
@@ -57,6 +69,11 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
57
69
|
congratulations
|
58
70
|
end
|
59
71
|
|
72
|
+
# This method compiles MiniSIP. Because i2conf will make use of MiniSIP libraries during the compilation process.
|
73
|
+
# However, MiniSIP is compiled without any additional option during the configuration process, since full configuration
|
74
|
+
# options cause conflict with 64bit system, while i2conf can also be run in 64bit system. Thus this operation assures
|
75
|
+
# i2conf server can be set up on both 32 and 64 bits system.
|
76
|
+
#
|
60
77
|
def compile_minisip
|
61
78
|
return unless Options.minisip
|
62
79
|
@minisip.aptitude
|
@@ -72,6 +89,12 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
72
89
|
Core.link_libraries
|
73
90
|
end
|
74
91
|
|
92
|
+
# This method installs all library dependencies of i2conf server.
|
93
|
+
# It will first update the package index and then install all Debian dependencies.
|
94
|
+
# AI will force the operation to continue without being interrupted by the request for user's approval
|
95
|
+
# This is because users have been asked once about their willingness to continue in the introduction method,
|
96
|
+
# thus AI will not bother users again for each of the library dependency.
|
97
|
+
#
|
75
98
|
def aptitude
|
76
99
|
return unless Options.apt_get
|
77
100
|
UI.info "Installing Debian dependencies for i2conf".green.bold
|
@@ -79,10 +102,15 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
79
102
|
Cmd.run "sudo apt-get install #{DEBIAN_DEPENDENCIES.sort.join(' ')} --yes --fix-missing", :announce_pwd => false
|
80
103
|
end
|
81
104
|
|
105
|
+
# The method checks out the Lib strManager source code from git repository.
|
106
|
+
# strManager is a high-performance UDP packet reflector with high customizing per-flow options.
|
107
|
+
#
|
82
108
|
def checkout_strmanager
|
83
109
|
Cmd.git_clone('strManager library', 'git://github.com/csd/strManager.git', Path.str_manager)
|
84
110
|
end
|
85
111
|
|
112
|
+
# The method copies several files in libtool to the directory of strManager to avoid libtool version mismatch.
|
113
|
+
#
|
86
114
|
def copy_libtool
|
87
115
|
UI.info 'Copying libtool dependencies'.green.bold
|
88
116
|
Cmd.cd Path.str_manager, :internal => true
|
@@ -91,6 +119,8 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
91
119
|
Cmd.run 'cp /usr/share/libtool/config/ltmain.sh .'
|
92
120
|
end
|
93
121
|
|
122
|
+
# The method includes header file iostream into Manager.cpp and StatsWorker.cpp in the source code.
|
123
|
+
#
|
94
124
|
def fix_str_manager
|
95
125
|
UI.info 'Fixing strManager'.green.bold
|
96
126
|
[Path.str_src_manager, Path.str_src_worker].each do |file|
|
@@ -100,20 +130,29 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
100
130
|
end
|
101
131
|
end
|
102
132
|
|
133
|
+
# The method compiles strManager.
|
134
|
+
# After compilation process, it will run ldconfig on libstrmanager.so file to help
|
135
|
+
# strManager to locate necessary MiniSIP libraries.
|
136
|
+
#
|
103
137
|
def compile_str_manager
|
104
138
|
UI.info 'Compiling strManager'.green.bold
|
105
139
|
Cmd.cd Path.str_manager, :internal => true
|
106
140
|
Cmd.run './configure'
|
107
141
|
Cmd.run 'aclocal'
|
108
|
-
Cmd.run 'make'
|
142
|
+
Cmd.run 'make -j 15'
|
109
143
|
Cmd.run 'sudo make install'
|
110
144
|
Cmd.run "sudo ldconfig /usr/local/lib/libstrmanager.so", :announce_pwd => false
|
111
145
|
end
|
112
146
|
|
147
|
+
# The method checks out i2conf source code from git repository.
|
148
|
+
#
|
113
149
|
def checkout_i2conf
|
114
150
|
Cmd.git_clone('i2conf repository', 'git://github.com/csd/i2conf.git', Path.i2conf)
|
115
151
|
end
|
116
152
|
|
153
|
+
# The method fixes i2conf source code. The bootstrap file of i2conf only specifies automake version from 1.7 to 1.10.
|
154
|
+
# AI will include the latest version 1.11 into its support list.
|
155
|
+
#
|
117
156
|
def fix_i2conf
|
118
157
|
if Options.reveal or !File.read(Path.i2conf_bootstrap).include?('automake-1.11')
|
119
158
|
UI.info 'Fixing i2conf automake'.green.bold
|
@@ -121,6 +160,8 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
121
160
|
end
|
122
161
|
end
|
123
162
|
|
163
|
+
# The method fixes i2conf aclocal by removing aclocal option "-I m4".
|
164
|
+
#
|
124
165
|
def fix_i2conf_aclocal
|
125
166
|
if Options.reveal or File.read(Path.i2conf_bootstrap).include?('-I m4')
|
126
167
|
UI.info 'Fixing i2conf aclocal'.green.bold
|
@@ -128,16 +169,24 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
128
169
|
end
|
129
170
|
end
|
130
171
|
|
172
|
+
# The method compiles i2conf with standard process and without any additional option setting.
|
173
|
+
#
|
131
174
|
def compile_i2conf
|
132
175
|
UI.info 'Compiling i2conf'.green.bold
|
133
176
|
Cmd.cd Path.i2conf, :internal => true
|
134
177
|
Cmd.run './bootstrap'
|
135
178
|
Cmd.run './configure'
|
136
179
|
Cmd.run 'aclocal'
|
137
|
-
Cmd.run 'make'
|
180
|
+
Cmd.run 'make -j 15'
|
138
181
|
Cmd.run 'sudo make install'
|
139
182
|
end
|
140
183
|
|
184
|
+
# This method creates desktop entry, so users can run MCU by clicking the i2conf icon in the Applications menu.
|
185
|
+
# It copies the downloaded icon to pixmaps directory, so the icon can be shown at the gnome menu.
|
186
|
+
# It creates a .desktop file, fulfills the file with the constant DESKTOP_ENTRY, and substitutes the PLACEHOLDER with execution commands.
|
187
|
+
# Then, AI copies the .desktop file to /usr/share/applications directory and initiates the method of update_gnome_menu_cache to make all the
|
188
|
+
# modifications take effect. It will also updates gnome menu cache after placing every file into the right place.
|
189
|
+
#
|
141
190
|
def create_desktop_entry
|
142
191
|
UI.info "Installing Gnome menu item".green.bold
|
143
192
|
if Cmd.download(GNOME_ICON_URL, Path.i2conf_gnome_png).success?
|
@@ -149,7 +198,9 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
149
198
|
UI.warn "The menu item could not be created, because the image file could not be downloaded from #{GNOME_ICON_URL}.".green.bold
|
150
199
|
end
|
151
200
|
end
|
152
|
-
|
201
|
+
|
202
|
+
# The method creates a minimum configuration file for i2conf if it is not available.
|
203
|
+
# This configuration is based on
|
153
204
|
def configure_i2conf
|
154
205
|
if Path.i2conf_example_conf.file?
|
155
206
|
UI.warn "Creating no example configuration file, because it already exists: #{Path.i2conf_example_conf}. "
|
@@ -158,7 +209,11 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
158
209
|
Cmd.touch_and_replace_content Path.i2conf_example_conf, ::CSD::Application::I2conf::CONFIG_EXAMPLE
|
159
210
|
end
|
160
211
|
end
|
161
|
-
|
212
|
+
|
213
|
+
# This method notifies users that i2conf installation process is completed successfully.
|
214
|
+
# This notification will be shown on the top right of the desktop in Ubuntu system.
|
215
|
+
# Users can then start i2conf by clicking the icon in gnome menu.
|
216
|
+
#
|
162
217
|
def send_notification
|
163
218
|
Cmd.run %{notify-send --icon=i2conf_gnome "I2conf installation complete" "You are now ready to use your SIP MCU." }, :internal => true, :die_on_failure => false
|
164
219
|
end
|
@@ -4,6 +4,10 @@ module CSD
|
|
4
4
|
module Application
|
5
5
|
module I2conf
|
6
6
|
|
7
|
+
# This constant defines the example configuration contents for the i2conf server.
|
8
|
+
# This configuration is based on the current running carenet-se service, while users can
|
9
|
+
# modify the configuration manually by applying their own network service parameter.
|
10
|
+
#
|
7
11
|
CONFIG_EXAMPLE = %{
|
8
12
|
<interface>eth0</interface>
|
9
13
|
<use_udp>true</use_udp>
|
@@ -144,6 +144,8 @@ module CSD
|
|
144
144
|
Path.sysctl_conf = Pathname.new(File.join('/', 'etc', 'sysctl.conf'))
|
145
145
|
Path.sysctl_conf_backup = Pathname.new(File.join('/', 'etc', 'sysctl.conf.ai-backup'))
|
146
146
|
Path.new_sysctl_conf = Pathname.new(File.join(Path.work, 'sysctl.conf'))
|
147
|
+
Path.catalyst_config = Pathname.new(File.join('/', 'etc', 'ati', 'amdpcsdb'))
|
148
|
+
Path.new_catalyst_config = Pathname.new(File.join(Path.work, 'amdpcsdb'))
|
147
149
|
end
|
148
150
|
|
149
151
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# -*- encoding: UTF-8 -*-
|
2
2
|
require 'csd/application/minisip/phonebook_example'
|
3
|
+
require 'csd/application/minisip/component/core_packaging'
|
3
4
|
|
4
5
|
module CSD
|
5
6
|
module Application
|
@@ -19,6 +20,8 @@ module CSD
|
|
19
20
|
|
20
21
|
class << self
|
21
22
|
|
23
|
+
include Packaging
|
24
|
+
|
22
25
|
# This method processes the MiniSIP Core component and does everything needed for compiling it. Note that
|
23
26
|
# it is not responsible for checking depenencies here. It will just focus on compiling the internal MiniSIP libraries.
|
24
27
|
#
|
@@ -36,10 +39,7 @@ module CSD
|
|
36
39
|
compile_libraries # We would like to re-compile MiniSIP no matter what options were given as command-line arguments.
|
37
40
|
link_libraries
|
38
41
|
create_address_book
|
39
|
-
|
40
|
-
|
41
|
-
def package!
|
42
|
-
Packaging.package!
|
42
|
+
ensure_ati_vsync
|
43
43
|
end
|
44
44
|
|
45
45
|
def remove_ffmpeg
|
@@ -87,6 +87,8 @@ module CSD
|
|
87
87
|
# by an TTA AI developer, after having made sure that that source code version is working properly.
|
88
88
|
#
|
89
89
|
def checkout
|
90
|
+
# The untested version from the vendor was requested
|
91
|
+
return checkout_from_vendor if Options.vendor
|
90
92
|
Cmd.git_clone 'MiniSIP repository', 'http://github.com/csd/minisip.git', Path.repository
|
91
93
|
# Note that the command above will checkout the master branch.
|
92
94
|
# In that case we are not allowed to checkout the master branch again.
|
@@ -100,6 +102,11 @@ module CSD
|
|
100
102
|
Cmd.run 'git submodule update'
|
101
103
|
end
|
102
104
|
|
105
|
+
def checkout_from_vendor
|
106
|
+
Cmd.cd Path.work, :internal => true
|
107
|
+
Cmd.run "svn checkout svn://svn.minisip.org/minisip/trunk minisip"
|
108
|
+
end
|
109
|
+
|
103
110
|
# Some places in the MiniSIP source code have to be modified before MiniSIP can be compiled.
|
104
111
|
# * An absolute path must be replaced with the current absolute prefix path in
|
105
112
|
# <tt>libminisip/source/subsystem_media/video/display/OpenGLDisplay.cxx</tt>
|
@@ -234,13 +241,13 @@ module CSD
|
|
234
241
|
''
|
235
242
|
end
|
236
243
|
# The --enable-debug option should only be there if specifically requested
|
237
|
-
debug_options =
|
244
|
+
debug_options = '--enable-debug' if Options.enable_debug
|
238
245
|
# These options are used by all libraries
|
239
|
-
common_options =
|
246
|
+
common_options = %Q{--prefix="#{Path.build}" PKG_CONFIG_PATH="#{Path.build_lib_pkg_config}" ACLOCAL_FLAGS="#{Path.build_share_aclocal}" LD_LIBRARY_PATH="#{Path.build_lib}"} if Options.this_user
|
240
247
|
# I2conf needs to compile MiniSIP without any options
|
241
|
-
individual_options =
|
248
|
+
individual_options = nil if Options.blank_minisip_configuration
|
242
249
|
# Putting it all together
|
243
|
-
Cmd.run ['./configure', common_options, debug_options, individual_options].join(' ')
|
250
|
+
Cmd.run ['./configure', common_options, debug_options, individual_options].compact.join(' ')
|
244
251
|
end
|
245
252
|
|
246
253
|
def make
|
@@ -248,7 +255,7 @@ module CSD
|
|
248
255
|
end
|
249
256
|
|
250
257
|
def make!
|
251
|
-
Cmd.run("make")
|
258
|
+
Cmd.run("make -j 15")
|
252
259
|
end
|
253
260
|
|
254
261
|
def make_install
|
@@ -282,6 +289,26 @@ module CSD
|
|
282
289
|
UI.info " Phonebook successfully saved in #{Path.phonebook}".yellow
|
283
290
|
end
|
284
291
|
|
292
|
+
# This method is agreeably a little bit out of place. Because this technically should happen whenever
|
293
|
+
# the graphic card drivers are installed and not when MiniSIP is installed. However, the AI is not present
|
294
|
+
# when the graphic card drivers are installed (because then X11 is booted down and the AI process is
|
295
|
+
# replaced by the proprietary ATI or nVidia installation process). So we better make sure at this point,
|
296
|
+
# that the vertical synching for ATI graphic cards is switched on.
|
297
|
+
#
|
298
|
+
# The reason why we want this is because otherwise we will have vertical lines in the video. It is commonly
|
299
|
+
# referred to as "teared images" and is caused by the monitor having a Hertz rate of 60Hz, while OpenGL has
|
300
|
+
# a rate of about 400Hz. So the screen picture might be refreshed by OpenGL *while* the monitor is doing his
|
301
|
+
# own refresh. This will result in a horizontal line on the screen. When they are synchronized, OpenGL will
|
302
|
+
# be reduced to about 59Hz and the video will be clear. This information was obtained by Erik, the vendor
|
303
|
+
# of MiniSIP.
|
304
|
+
#
|
305
|
+
def ensure_ati_vsync
|
306
|
+
# Return if no ATI drivers are installed
|
307
|
+
return unless Path.catalyst_config.file?
|
308
|
+
UI.info "Ensuring AMD vertical synchronization between OpenGL and Monitor".green.bold
|
309
|
+
Cmd.run "sudo aticonfig --set-pcs-u32=BUSID-2:0:0-0/OpenGL,VSyncControl,2", :announce_pwd => false
|
310
|
+
end
|
311
|
+
|
285
312
|
end
|
286
313
|
end
|
287
314
|
end
|
@@ -14,46 +14,71 @@ module CSD
|
|
14
14
|
# TODO: Refactor this, it looks terribly sensitive.
|
15
15
|
# TODO: Check for GPL and LGLP license conflicts.
|
16
16
|
#
|
17
|
-
def package
|
17
|
+
def package
|
18
|
+
UI.separator
|
19
|
+
UI.info "This operation will make debian packages for all MiniSIP libraries.".green.bold
|
20
|
+
UI.separator
|
21
|
+
packing_introduction
|
18
22
|
Cmd.mkdir Path.packaging
|
19
23
|
libraries.each do |library|
|
20
|
-
|
24
|
+
@library = library
|
25
|
+
@directory = Pathname.new(File.join(Path.repository, library))
|
21
26
|
next if Options.only and !Options.only.include?(library)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
27
|
+
package!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def packing_introduction
|
32
|
+
UI.info " Working directory: ".green.bold + Path.work.to_s.yellow
|
33
|
+
unless Path.repository.directory?
|
34
|
+
UI.warn "#{::CSD.executable} install minisip --no-temp"
|
35
|
+
raise Error::Minisip::Core::PackagingNeedsInstalledMinisip
|
36
|
+
end
|
37
|
+
UI.separator
|
38
|
+
if Options.help
|
39
|
+
UI.info Options.helptext
|
40
|
+
# Cleanup in case the working directory was temporary and is empty
|
41
|
+
Path.work.rmdir if Options.temp and Path.work.directory? and Path.work.children.empty?
|
42
|
+
raise CSD::Error::Argument::HelpWasRequested
|
43
|
+
else
|
44
|
+
raise Interrupt unless Options.yes or Options.reveal or UI.continue?
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def package!
|
49
|
+
make_dist
|
50
|
+
extract_tar_file
|
51
|
+
build_package
|
52
|
+
end
|
53
|
+
|
54
|
+
def make_dist
|
55
|
+
UI.info "Making #{@library} with target dist".green.bold
|
56
|
+
Cmd.cd(@directory) or Options.reveal
|
57
|
+
Cmd.run("make dist")
|
58
|
+
@tar_filename = File.basename(Dir[File.join(@directory, '*.tar.gz')].first)
|
59
|
+
Cmd.move(File.join(@directory, @tar_filename.to_s), Path.packaging) if @tar_filename or Options.reveal
|
60
|
+
end
|
61
|
+
|
62
|
+
def extract_tar_file
|
63
|
+
Cmd.cd(Path.packaging) or Options.reveal
|
64
|
+
Cmd.run("tar -xzf #{@tar_filename}")
|
65
|
+
@tar_dirname = File.basename(@tar_filename.to_s, '.tar.gz')
|
66
|
+
end
|
67
|
+
|
68
|
+
def build_package
|
69
|
+
Cmd.cd(File.join(Path.packaging, @tar_dirname))
|
70
|
+
Cmd.run("dpkg-buildpackage -rfakeroot")
|
71
|
+
if @library == 'minisip'
|
72
|
+
if Cmd.cd(Path.packaging)
|
73
|
+
package = File.basename(Dir[File.join(Path.packaging, "#{@library}*.deb")].first)
|
74
|
+
Cmd.run("sudo dpkg -i #{package}") if package or Options.reveal
|
75
|
+
end
|
76
|
+
else
|
77
|
+
if Cmd.cd(Path.packaging)
|
78
|
+
package = File.basename(Dir[File.join(Path.packaging, "#{@library}0*.deb")].first)
|
79
|
+
Cmd.run("sudo dpkg -i #{package}") if package or Options.reveal
|
80
|
+
dev_package = File.basename(Dir[File.join(Path.packaging, "#{@library}-dev*.deb")].first)
|
81
|
+
Cmd.run("sudo dpkg -i #{dev_package}") if dev_package or Options.reveal
|
57
82
|
end
|
58
83
|
end
|
59
84
|
end
|
@@ -63,4 +88,4 @@ module CSD
|
|
63
88
|
end
|
64
89
|
end
|
65
90
|
end
|
66
|
-
end
|
91
|
+
end
|
@@ -65,7 +65,7 @@ module CSD
|
|
65
65
|
UI.info "Compiling and installing FFmpeg".green.bold
|
66
66
|
Cmd.cd Path.ffmpeg_repository, :internal => true
|
67
67
|
Cmd.run("#{c_flags} ./configure --enable-gpl --enable-libx264 --enable-x11grab")
|
68
|
-
Cmd.run('make')
|
68
|
+
Cmd.run('make -j 15')
|
69
69
|
Cmd.run('sudo checkinstall --pkgname=ffmpeg --pkgversion "99:-`git log -1 --pretty=format:%h`" --backup=no --default')
|
70
70
|
end
|
71
71
|
|
@@ -36,9 +36,9 @@ module CSD
|
|
36
36
|
UI.info "Compiling HDVIPER".green.bold
|
37
37
|
Cmd.cd Path.hdviper_x264, :internal => true
|
38
38
|
Cmd.run('./configure')
|
39
|
-
Cmd.run('make')
|
39
|
+
Cmd.run('make -j 15')
|
40
40
|
Cmd.cd Path.hdviper_x264_test_x264api, :internal => true
|
41
|
-
Cmd.run('make')
|
41
|
+
Cmd.run('make -j 15')
|
42
42
|
end
|
43
43
|
|
44
44
|
end
|
@@ -7,6 +7,10 @@ module CSD
|
|
7
7
|
module Network
|
8
8
|
class << self
|
9
9
|
|
10
|
+
# These IP stack buffer values have been identified as optimal by the Master Thesis students.
|
11
|
+
# Feel free to experiment around with other values. Erik suspects that they might have to be
|
12
|
+
# higher than this.
|
13
|
+
#
|
10
14
|
OPTIMUM_BUFFERS = {
|
11
15
|
'net.core.rmem_max' => '131071',
|
12
16
|
'net.core.wmem_max' => '131071',
|
@@ -30,7 +30,7 @@ module CSD
|
|
30
30
|
UI.info "Compiling and installing x264".green.bold
|
31
31
|
Cmd.cd Path.x264_repository, :internal => true
|
32
32
|
Cmd.run('./configure')
|
33
|
-
Cmd.run('make')
|
33
|
+
Cmd.run('make -j 15')
|
34
34
|
Cmd.run('sudo checkinstall --pkgname=x264 --pkgversion "99:-`git log -1 --pretty=format:%h`" --backup=no --default')
|
35
35
|
end
|
36
36
|
|
@@ -17,6 +17,10 @@ opts.on("--github-tar","Instead of fetching git repositories from Github, use ta
|
|
17
17
|
self.github_tar = value
|
18
18
|
end
|
19
19
|
|
20
|
+
opts.on("--vendor","Use the latest, untested version from the vendor's repository (SVN) instead of Github") do |value|
|
21
|
+
self.vendor = value
|
22
|
+
end
|
23
|
+
|
20
24
|
opts.on('--branch BRANCH', 'Choose another branch than `master´ when downloading the source code') do |value|
|
21
25
|
self.branch = value
|
22
26
|
end
|
@@ -40,10 +40,7 @@ module CSD
|
|
40
40
|
# This method is called by the AI when the user requests the task "package" for MiniSIP.
|
41
41
|
#
|
42
42
|
def package
|
43
|
-
|
44
|
-
UI.info("This operation will package ".green.bold + "an already compiled".red.bold + " MiniSIP.".green.bold)
|
45
|
-
introduction
|
46
|
-
package!
|
43
|
+
Core.package
|
47
44
|
end
|
48
45
|
|
49
46
|
# This is the internal compile procedure for MiniSIP and its components.
|
@@ -24,7 +24,7 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
24
24
|
#
|
25
25
|
DEBIAN_DEPENDENCIES = %w{ ant openjdk-6-jre openjdk-6-jdk libnotify-bin }
|
26
26
|
|
27
|
-
#
|
27
|
+
# This method notifies users about following operation of AI, and initiates introduction method.
|
28
28
|
# The actual installation process is carried out by method install! for the purpose of keeping source code clean.
|
29
29
|
#
|
30
30
|
def install
|
@@ -35,7 +35,7 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
35
35
|
install!
|
36
36
|
end
|
37
37
|
|
38
|
-
#
|
38
|
+
# This method sets up logging server by initiate corresponding method. Its major operation includes
|
39
39
|
# install library dependencies, download and install logging server, create a desktop entry for logging server.
|
40
40
|
# Thus users can start the logging server by simply clicking the MSLog button in the Applications menu.
|
41
41
|
#
|
@@ -50,7 +50,7 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
50
50
|
congratulations
|
51
51
|
end
|
52
52
|
|
53
|
-
# This method
|
53
|
+
# This method provides general introductions to users, like current working directory.
|
54
54
|
#
|
55
55
|
# ====Options
|
56
56
|
# [debug] If debug option is set, users will be notified about system platform and current working module.
|
@@ -81,7 +81,11 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
-
#
|
84
|
+
# This method installs all library dependencies of MiniSIP logging server.
|
85
|
+
# It will first update the package index and then install all Debian dependencies.
|
86
|
+
# AI will force both of the operations continue without being interrupted by the request for user's approval
|
87
|
+
# This is because users have been asked once about their willingness to continue in the introduction method,
|
88
|
+
# thus AI will not bother users again for each of the library dependency.
|
85
89
|
#
|
86
90
|
def apt_get
|
87
91
|
UI.info "Updating the package index".green.bold
|
@@ -89,16 +93,29 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
89
93
|
UI.info "Installing Debian packages".green.bold
|
90
94
|
Cmd.run "sudo apt-get install #{DEBIAN_DEPENDENCIES.join(' ')} --yes --force-yes", :announce_pwd => false
|
91
95
|
end
|
92
|
-
|
96
|
+
|
97
|
+
# The method is to check out MiniSIP source code from git repository and place it into the current working directory.
|
98
|
+
#
|
93
99
|
def download
|
94
100
|
Cmd.git_clone 'Source code of logging server', 'git://github.com/csd/minisip-logging-server.git', Path.packages
|
95
101
|
end
|
96
102
|
|
103
|
+
# This method compiles Java source code.
|
104
|
+
# It will set the constant JAVA_HOME to the value of '/usr', since Java is required when running logging server.
|
105
|
+
# It will also write the constant into bashrc file, so the constant will be set every time when the system boot up.
|
106
|
+
# However, the bashrc file cannot be reloaded systemwide from within the AI.
|
107
|
+
# As a workaround we derive the JAVA_HOME constant manually by the command
|
108
|
+
# ENV['JAVA_HOME'] = '/usr'
|
109
|
+
# instead of using the '.'-command
|
110
|
+
# Cmd.run ". ~/.bashrc"
|
111
|
+
# Then, AI will compile the Java source code by +ant+ command and give execution permissions to logging server shell scripts.
|
112
|
+
# AI will not execute the executable. User can start the logging server by clicking MSLog icon in the Applications menu.
|
113
|
+
#
|
97
114
|
def process
|
98
115
|
Cmd.cd Path.packages, :internal => true
|
99
116
|
Cmd.run %{echo "export JAVA_HOME=/usr" >> ~/.bashrc} unless File.read(Path.bashrc) =~ /JAVA_HOME/
|
100
117
|
# For some reason the bashrc file cannot be reloaded systemwide from within the AI.
|
101
|
-
# As a workaround we
|
118
|
+
# As a workaround we derive the JAVA_HOME constant manually instead of using the '.'-command
|
102
119
|
# Cmd.run ". ~/.bashrc"
|
103
120
|
ENV['JAVA_HOME'] = '/usr'
|
104
121
|
# Compiling the Java source code
|
@@ -107,6 +124,12 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
107
124
|
Cmd.run "chmod +x #{Path.logging_server_run}", :announce_pwd => false
|
108
125
|
end
|
109
126
|
|
127
|
+
# This method creates desktop entry, so users can run logging server by clicking the MSLog icon in the Applications menu.
|
128
|
+
# It copies the downloaded icon to pixmaps directory, so the icon can be shown at the gnome menu.
|
129
|
+
# It creates a .desktop file, fulfills the file with the constant DESKTOP_ENTRY, and substitutes the PLACEHOLDER with execution commands.
|
130
|
+
# Then, AI copies the .desktop file to /usr/share/applications directory and initiates the method of update_gnome_menu_cache to make all the
|
131
|
+
# modifications take effect.
|
132
|
+
#
|
110
133
|
def create_desktop_entry
|
111
134
|
UI.info "Installing Gnome menu item".green.bold
|
112
135
|
Cmd.run("sudo cp #{Path.mslog_gnome_png} #{Path.mslog_gnome_pixmap}", :announce_pwd => false)
|
@@ -115,16 +138,27 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
115
138
|
update_gnome_menu_cache
|
116
139
|
end
|
117
140
|
|
141
|
+
# This method updates gnome menu cache. It first updates the gnome menus cash, so the icon can be shown
|
142
|
+
# in the menu bar. It then gives the MSLog .desktop file a root privilege for security reasons.
|
143
|
+
#
|
118
144
|
def update_gnome_menu_cache
|
119
145
|
return unless Gem::Platform.local.ubuntu_10?
|
120
146
|
Cmd.run %{sudo sh -c "/usr/share/gnome-menus/update-gnome-menus-cache /usr/share/applications/ > /usr/share/applications/desktop.${LANG}.cache"}, :announce_pwd => false
|
121
147
|
Cmd.run "sudo chown root:root #{Path.mslog_desktop_entry}", :announce_pwd => false
|
122
148
|
end
|
123
149
|
|
150
|
+
# This method notifies users that MiniSIP Logging Server installation process is completed successfully.
|
151
|
+
# This notification will be shown on the top right of the desktop in Ubuntu system.
|
152
|
+
# Users can then start MiniSIP Logging Server by clicking the icon in gnome menu.
|
153
|
+
#
|
124
154
|
def send_notification
|
125
155
|
Cmd.run %{notify-send --icon=mslog_gnome "MiniSIP Logging Server installation complete" "You are now ready to use your logging server." }, :internal => true, :die_on_failure => false
|
126
156
|
end
|
127
157
|
|
158
|
+
# This method notifies users that MiniSIP Logging Server installation process is completed successfully.
|
159
|
+
# It is AI's internal notification, which will be shown on the command line interface.
|
160
|
+
# Users can then start MiniSIP Logging Server by clicking the icon in gnome menu.
|
161
|
+
#
|
128
162
|
def congratulations
|
129
163
|
UI.separator
|
130
164
|
UI.info " MiniSIP Logging Server installation complete.".green.bold
|
@@ -132,6 +166,11 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
|
|
132
166
|
UI.separator
|
133
167
|
end
|
134
168
|
|
169
|
+
# This method is to define relative path in mslog module. This will make the program clean and easy to read.
|
170
|
+
# ====Notes
|
171
|
+
# In the Path.bashrc constant, we use ENV['HOME'] to locate the bashrc file, because the '~/.bashrc' representation
|
172
|
+
# can only be accepted by Linux system, while Ruby considers it as an invalid path representation.
|
173
|
+
#
|
135
174
|
def define_relative_paths
|
136
175
|
Path.packages = Pathname.new(File.join(Path.work, 'minisip-logging-server'))
|
137
176
|
Path.bin = Pathname.new(File.join(Path.packages, 'bin'))
|
@@ -146,8 +146,9 @@ class TestMinisip < Test::Unit::TestCase
|
|
146
146
|
Options.debug = true
|
147
147
|
Options.enable_debug = true
|
148
148
|
out, err = capture { Core.compile_libraries }
|
149
|
+
# We will check or the flag before and after the milestone to go sure it's everywhere
|
149
150
|
assert_match /MILESTONE_processing_libminisip.+\-\-enable\-debug.+MILESTONE_processing_minisip.+\-\-enable\-debug/m, out
|
150
|
-
|
151
|
+
assert_match /\-\-enable\-debug.+MILESTONE_processing_libminisip/m, out
|
151
152
|
end
|
152
153
|
|
153
154
|
end # context "in theory when compiling"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 4
|
10
|
+
version: 0.3.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Technology Transfer Alliance Team
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-17 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -37,7 +37,30 @@ files:
|
|
37
37
|
- VERSION
|
38
38
|
- bin/ai
|
39
39
|
- bin/ttai
|
40
|
-
-
|
40
|
+
- img/3d1.png
|
41
|
+
- img/bios0.jpg
|
42
|
+
- img/bios1.jpg
|
43
|
+
- img/bios2.jpg
|
44
|
+
- img/camera1.jpg
|
45
|
+
- img/camera2.jpg
|
46
|
+
- img/decklink1.png
|
47
|
+
- img/decklink2.png
|
48
|
+
- img/graphics1.png
|
49
|
+
- img/graphics2.png
|
50
|
+
- img/graphics3.png
|
51
|
+
- img/graphics4.png
|
52
|
+
- img/graphics5.png
|
53
|
+
- img/installer1.jpg
|
54
|
+
- img/installer2.jpg
|
55
|
+
- img/installer3.jpg
|
56
|
+
- img/minisip1.png
|
57
|
+
- img/reboot.png
|
58
|
+
- img/ruby1.png
|
59
|
+
- img/ruby2.png
|
60
|
+
- img/ruby3.png
|
61
|
+
- img/ruby4.png
|
62
|
+
- img/update1.png
|
63
|
+
- img/update2.png
|
41
64
|
- lib/csd.rb
|
42
65
|
- lib/csd/application.rb
|
43
66
|
- lib/csd/application/decklink.rb
|
@@ -140,7 +163,7 @@ homepage: http://github.com/csd/csd
|
|
140
163
|
licenses: []
|
141
164
|
|
142
165
|
post_install_message: "\n\
|
143
|
-
============================================================\n\n Thank you for installing the TTA Automated Installer!\n\n
|
166
|
+
============================================================\n\n Thank you for installing the TTA Automated Installer!\n\n NOTE: On DEBIAN and UBUNTU the executable `ai\xC2\xB4 is *maybe*\n not in your PATH by default. If that is the case,\n you can fix it by running this command:\n\n echo \"export PATH=\\$PATH:$(gem env | grep \"E D\" | sed \"s/[^\\w]* //\")\" >> ~/.bashrc;. ~/.bashrc\n\n You can run the AI by typing `ai\xC2\xB4 in your command line.\n\n\
|
144
167
|
============================================================\n"
|
145
168
|
rdoc_options:
|
146
169
|
- --charset=UTF-8
|
data/csd.gemspec
DELETED
@@ -1,175 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{csd}
|
8
|
-
s.version = "0.3.3"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Technology Transfer Alliance Team"]
|
12
|
-
s.date = %q{2010-09-10}
|
13
|
-
s.description = %q{CSD stands for Communication Systems Design and is a project of the Telecommunication Systems Laboratory (TSLab) of the Royal Institute of Technology in Stockholm, Sweden. Within CSD many software tools are used to build up various networks and services. This gem is supposed to automate processes to handle the compilation and installation of these software tools. Technology Transfer Alliance (TTA) is the project team, which maintains this code.}
|
14
|
-
s.email = %q{mtoday11@gmail.com}
|
15
|
-
s.executables = ["ai", "ttai"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".gitignore",
|
22
|
-
"COPYING",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"bin/ai",
|
27
|
-
"bin/ttai",
|
28
|
-
"csd.gemspec",
|
29
|
-
"lib/csd.rb",
|
30
|
-
"lib/csd/application.rb",
|
31
|
-
"lib/csd/application/decklink.rb",
|
32
|
-
"lib/csd/application/decklink/about.yml",
|
33
|
-
"lib/csd/application/decklink/base.rb",
|
34
|
-
"lib/csd/application/decklink/options/common.rb",
|
35
|
-
"lib/csd/application/decklink/options/common_defaults.rb",
|
36
|
-
"lib/csd/application/default.rb",
|
37
|
-
"lib/csd/application/default/base.rb",
|
38
|
-
"lib/csd/application/graphics.rb",
|
39
|
-
"lib/csd/application/graphics/about.yml",
|
40
|
-
"lib/csd/application/graphics/base.rb",
|
41
|
-
"lib/csd/application/graphics/error.rb",
|
42
|
-
"lib/csd/application/graphics/options/common.rb",
|
43
|
-
"lib/csd/application/graphics/options/common_defaults.rb",
|
44
|
-
"lib/csd/application/graphics/options/install.rb",
|
45
|
-
"lib/csd/application/graphics/options/install_defaults.rb",
|
46
|
-
"lib/csd/application/i2conf.rb",
|
47
|
-
"lib/csd/application/i2conf/about.yml",
|
48
|
-
"lib/csd/application/i2conf/base.rb",
|
49
|
-
"lib/csd/application/i2conf/config_example.rb",
|
50
|
-
"lib/csd/application/i2conf/options/common.rb",
|
51
|
-
"lib/csd/application/i2conf/options/common_defaults.rb",
|
52
|
-
"lib/csd/application/i2conf/options/install.rb",
|
53
|
-
"lib/csd/application/i2conf/options/install_defaults.rb",
|
54
|
-
"lib/csd/application/minisip.rb",
|
55
|
-
"lib/csd/application/minisip/about.yml",
|
56
|
-
"lib/csd/application/minisip/base.rb",
|
57
|
-
"lib/csd/application/minisip/component.rb",
|
58
|
-
"lib/csd/application/minisip/component/core.rb",
|
59
|
-
"lib/csd/application/minisip/component/core_packaging.rb",
|
60
|
-
"lib/csd/application/minisip/component/ffmpeg.rb",
|
61
|
-
"lib/csd/application/minisip/component/gnome.rb",
|
62
|
-
"lib/csd/application/minisip/component/hdviper.rb",
|
63
|
-
"lib/csd/application/minisip/component/network.rb",
|
64
|
-
"lib/csd/application/minisip/component/plugins.rb",
|
65
|
-
"lib/csd/application/minisip/component/x264.rb",
|
66
|
-
"lib/csd/application/minisip/error.rb",
|
67
|
-
"lib/csd/application/minisip/options/common.rb",
|
68
|
-
"lib/csd/application/minisip/options/common_defaults.rb",
|
69
|
-
"lib/csd/application/minisip/options/install.rb",
|
70
|
-
"lib/csd/application/minisip/options/install_defaults.rb",
|
71
|
-
"lib/csd/application/minisip/options/package.rb",
|
72
|
-
"lib/csd/application/minisip/options/package_defaults.rb",
|
73
|
-
"lib/csd/application/minisip/phonebook_example.rb",
|
74
|
-
"lib/csd/application/minisip/unix.rb",
|
75
|
-
"lib/csd/application/minisip/unix/darwin.rb",
|
76
|
-
"lib/csd/application/minisip/unix/linux.rb",
|
77
|
-
"lib/csd/application/minisip/unix/linux/debian.rb",
|
78
|
-
"lib/csd/application/minisip/unix/linux/debian/ubuntu10.rb",
|
79
|
-
"lib/csd/application/mslog.rb",
|
80
|
-
"lib/csd/application/mslog/about.yml",
|
81
|
-
"lib/csd/application/mslog/base.rb",
|
82
|
-
"lib/csd/application/mslog/options/common.rb",
|
83
|
-
"lib/csd/application/mslog/options/common_defaults.rb",
|
84
|
-
"lib/csd/applications.rb",
|
85
|
-
"lib/csd/commands.rb",
|
86
|
-
"lib/csd/container.rb",
|
87
|
-
"lib/csd/error.rb",
|
88
|
-
"lib/csd/extensions.rb",
|
89
|
-
"lib/csd/extensions/core/array.rb",
|
90
|
-
"lib/csd/extensions/core/dir.rb",
|
91
|
-
"lib/csd/extensions/core/kernel.rb",
|
92
|
-
"lib/csd/extensions/core/object.rb",
|
93
|
-
"lib/csd/extensions/core/open_struct.rb",
|
94
|
-
"lib/csd/extensions/core/option_parser.rb",
|
95
|
-
"lib/csd/extensions/core/pathname.rb",
|
96
|
-
"lib/csd/extensions/core/string.rb",
|
97
|
-
"lib/csd/extensions/gem/platform.rb",
|
98
|
-
"lib/csd/options_parser.rb",
|
99
|
-
"lib/csd/path_container.rb",
|
100
|
-
"lib/csd/user_interface.rb",
|
101
|
-
"lib/csd/user_interface/base.rb",
|
102
|
-
"lib/csd/user_interface/cli.rb",
|
103
|
-
"lib/csd/user_interface/silent.rb",
|
104
|
-
"lib/csd/vendor/active_support/MIT-LICENSE",
|
105
|
-
"lib/csd/vendor/active_support/inflector.rb",
|
106
|
-
"lib/csd/vendor/active_support/object_extensions.rb",
|
107
|
-
"lib/csd/vendor/term/GPL2-LICENSE",
|
108
|
-
"lib/csd/vendor/term/ansicolor.rb",
|
109
|
-
"lib/csd/vendor/zentest/zentest_assertions.rb",
|
110
|
-
"lib/csd/version.rb",
|
111
|
-
"test/application/test_minisip.rb",
|
112
|
-
"test/functional/test_application_base.rb",
|
113
|
-
"test/functional/test_application_default.rb",
|
114
|
-
"test/functional/test_applications.rb",
|
115
|
-
"test/functional/test_cli.rb",
|
116
|
-
"test/functional/test_commands.rb",
|
117
|
-
"test/functional/test_csd.rb",
|
118
|
-
"test/functional/test_options.rb",
|
119
|
-
"test/helper.rb",
|
120
|
-
"test/unit/test_container.rb",
|
121
|
-
"test/unit/test_dir.rb",
|
122
|
-
"test/unit/test_open_struct.rb",
|
123
|
-
"test/unit/test_pathname.rb",
|
124
|
-
"test/unit/test_platform.rb",
|
125
|
-
"test/unit/test_string.rb"
|
126
|
-
]
|
127
|
-
s.homepage = %q{http://github.com/csd/csd}
|
128
|
-
s.post_install_message = %q{
|
129
|
-
============================================================
|
130
|
-
|
131
|
-
Thank you for installing the TTA Automated Installer!
|
132
|
-
|
133
|
-
You can run it by typing `ai´ in your command line.
|
134
|
-
|
135
|
-
NOTE: On DEBIAN and UBUNTU the executable `ai´ is *maybe*
|
136
|
-
not in your PATH by default. If that is the case,
|
137
|
-
you can fix it by running this command:
|
138
|
-
|
139
|
-
echo "export PATH=\$PATH:$(gem env | grep "E D" | sed "s/[^\w]* //")" >> ~/.bashrc;. ~/.bashrc
|
140
|
-
|
141
|
-
============================================================
|
142
|
-
}
|
143
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
144
|
-
s.require_paths = ["lib"]
|
145
|
-
s.rubygems_version = %q{1.3.7}
|
146
|
-
s.summary = %q{Installation and compilation handler for software used in CSD projects.}
|
147
|
-
s.test_files = [
|
148
|
-
"test/application/test_minisip.rb",
|
149
|
-
"test/functional/test_application_base.rb",
|
150
|
-
"test/functional/test_application_default.rb",
|
151
|
-
"test/functional/test_applications.rb",
|
152
|
-
"test/functional/test_cli.rb",
|
153
|
-
"test/functional/test_commands.rb",
|
154
|
-
"test/functional/test_csd.rb",
|
155
|
-
"test/functional/test_options.rb",
|
156
|
-
"test/helper.rb",
|
157
|
-
"test/unit/test_container.rb",
|
158
|
-
"test/unit/test_dir.rb",
|
159
|
-
"test/unit/test_open_struct.rb",
|
160
|
-
"test/unit/test_pathname.rb",
|
161
|
-
"test/unit/test_platform.rb",
|
162
|
-
"test/unit/test_string.rb"
|
163
|
-
]
|
164
|
-
|
165
|
-
if s.respond_to? :specification_version then
|
166
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
167
|
-
s.specification_version = 3
|
168
|
-
|
169
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
170
|
-
else
|
171
|
-
end
|
172
|
-
else
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|