passenger 4.0.5 → 4.0.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (162) hide show
  1. data.tar.gz.asc +7 -7
  2. data/.travis.yml +1 -2
  3. data/CONTRIBUTING.md +20 -5
  4. data/CONTRIBUTORS +67 -0
  5. data/LICENSE +1 -1
  6. data/NEWS +48 -0
  7. data/Rakefile +2 -2
  8. data/bin/passenger-config +18 -0
  9. data/bin/passenger-install-apache2-module +2 -0
  10. data/bin/passenger-install-nginx-module +11 -12
  11. data/bin/passenger-memory-stats +2 -0
  12. data/bin/passenger-status +152 -69
  13. data/build/agents.rb +1 -5
  14. data/build/basics.rb +26 -13
  15. data/build/cplusplus_support.rb +9 -0
  16. data/build/debian.rb +129 -0
  17. data/build/documentation.rb +6 -2
  18. data/build/integration_tests.rb +13 -2
  19. data/build/misc.rb +16 -0
  20. data/build/packaging.rb +67 -51
  21. data/build/preprocessor.rb +314 -0
  22. data/build/test_basics.rb +1 -0
  23. data/{debian → debian.template}/README.Debian +0 -0
  24. data/{debian → debian.template}/changelog +131 -0
  25. data/debian.template/compat +1 -0
  26. data/debian.template/control +71 -0
  27. data/debian.template/copyright +385 -0
  28. data/debian.template/libapache2-mod-passenger.install +3 -0
  29. data/{debian → debian.template}/libapache2-mod-passenger.postinst +0 -0
  30. data/{debian → debian.template}/libapache2-mod-passenger.prerm +0 -0
  31. data/debian.template/locations.ini +12 -0
  32. data/debian.template/passenger.conf +4 -0
  33. data/{debian → debian.template}/passenger.load +0 -0
  34. data/debian.template/patches/series +0 -0
  35. data/debian.template/repack.sh +42 -0
  36. data/debian.template/ruby-passenger-dev.install +3 -0
  37. data/debian.template/ruby-passenger-doc.install +2 -0
  38. data/debian.template/ruby-passenger.docs +4 -0
  39. data/debian.template/ruby-passenger.install +11 -0
  40. data/debian.template/ruby-passenger.manpages +4 -0
  41. data/debian.template/rules.template +35 -0
  42. data/debian.template/source/format +1 -0
  43. data/debian.template/watch +3 -0
  44. data/dev/run_travis.sh +46 -46
  45. data/doc/Architectural overview.html +2 -2
  46. data/doc/Packaging.html +27 -18
  47. data/doc/Packaging.txt.md +27 -18
  48. data/doc/Security of user switching support.html +2 -2
  49. data/doc/Users guide Apache.html +881 -95
  50. data/doc/Users guide Apache.idmap.txt +48 -6
  51. data/doc/Users guide Apache.txt +13 -1
  52. data/doc/Users guide Nginx.html +1063 -190
  53. data/doc/Users guide Nginx.idmap.txt +89 -45
  54. data/doc/Users guide Nginx.txt +45 -0
  55. data/doc/Users guide Standalone.html +7 -7
  56. data/doc/users_guide_snippets/alternative_for_flying_passenger.txt +1 -0
  57. data/doc/users_guide_snippets/environment_variables.txt +221 -0
  58. data/doc/users_guide_snippets/installation.txt +66 -17
  59. data/doc/users_guide_snippets/support_information.txt +3 -3
  60. data/doc/users_guide_snippets/tips.txt +352 -40
  61. data/ext/common/Account.h +4 -3
  62. data/ext/common/AccountsDatabase.h +6 -6
  63. data/ext/common/AgentsStarter.h +1 -13
  64. data/ext/common/ApplicationPool2/DirectSpawner.h +4 -4
  65. data/ext/common/ApplicationPool2/DummySpawner.h +1 -1
  66. data/ext/common/ApplicationPool2/Group.h +9 -4
  67. data/ext/common/ApplicationPool2/Implementation.cpp +6 -1
  68. data/ext/common/ApplicationPool2/Options.h +65 -37
  69. data/ext/common/ApplicationPool2/Pool.h +91 -41
  70. data/ext/common/ApplicationPool2/Process.h +6 -6
  71. data/ext/common/ApplicationPool2/SmartSpawner.h +14 -14
  72. data/ext/common/ApplicationPool2/Socket.h +1 -1
  73. data/ext/common/ApplicationPool2/Spawner.h +24 -16
  74. data/ext/common/ApplicationPool2/SpawnerFactory.h +9 -1
  75. data/ext/common/ApplicationPool2/SuperGroup.h +1 -1
  76. data/ext/common/Constants.h +1 -1
  77. data/ext/common/Logging.cpp +12 -7
  78. data/ext/common/MessageServer.h +7 -12
  79. data/ext/common/MultiLibeio.cpp +5 -5
  80. data/ext/common/ResourceLocator.h +2 -6
  81. data/ext/common/ServerInstanceDir.h +37 -10
  82. data/ext/common/UnionStation.h +10 -10
  83. data/ext/common/Utils.cpp +30 -4
  84. data/ext/common/Utils.h +7 -0
  85. data/ext/common/Utils/BlockingQueue.h +2 -2
  86. data/ext/common/Utils/Lock.h +2 -2
  87. data/ext/common/Utils/MessagePassing.h +2 -2
  88. data/ext/common/Utils/Timer.h +4 -4
  89. data/ext/common/agents/HelperAgent/AgentOptions.h +2 -0
  90. data/ext/common/agents/HelperAgent/Main.cpp +57 -16
  91. data/ext/common/agents/HelperAgent/RequestHandler.h +4 -1
  92. data/ext/common/agents/LoggingAgent/AdminController.h +91 -0
  93. data/ext/common/agents/LoggingAgent/LoggingServer.h +46 -29
  94. data/ext/common/agents/LoggingAgent/Main.cpp +43 -16
  95. data/ext/common/agents/LoggingAgent/RemoteSender.h +7 -7
  96. data/ext/common/agents/Watchdog/AgentWatcher.cpp +11 -11
  97. data/ext/common/agents/Watchdog/LoggingAgentWatcher.cpp +3 -1
  98. data/ext/common/agents/Watchdog/Main.cpp +62 -0
  99. data/ext/libeio/config.guess +206 -167
  100. data/ext/libeio/config.sub +142 -68
  101. data/ext/libev/config.guess +304 -290
  102. data/ext/libev/config.sub +198 -77
  103. data/ext/nginx/config +4 -0
  104. data/ext/nginx/ngx_http_passenger_module.c +1 -0
  105. data/ext/oxt/implementation.cpp +4 -4
  106. data/lib/phusion_passenger.rb +14 -5
  107. data/lib/phusion_passenger/abstract_installer.rb +41 -0
  108. data/lib/phusion_passenger/admin_tools/server_instance.rb +48 -39
  109. data/lib/phusion_passenger/message_client.rb +31 -7
  110. data/lib/phusion_passenger/native_support.rb +35 -12
  111. data/lib/phusion_passenger/packaging.rb +16 -2
  112. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +6 -31
  113. data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
  114. data/lib/phusion_passenger/preloader_shared_helpers.rb +3 -1
  115. data/lib/phusion_passenger/request_handler.rb +1 -1
  116. data/lib/phusion_passenger/standalone/command.rb +6 -6
  117. data/lib/phusion_passenger/standalone/main.rb +23 -8
  118. data/lib/phusion_passenger/standalone/package_runtime_command.rb +9 -5
  119. data/lib/phusion_passenger/standalone/runtime_installer.rb +9 -10
  120. data/lib/phusion_passenger/standalone/start_command.rb +20 -4
  121. data/resources/templates/installer_common/freebsd9_broken_cxx_runtime.txt.erb +19 -0
  122. data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +22 -0
  123. data/resources/templates/standalone/config.erb +3 -2
  124. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +4 -4
  125. data/test/cxx/ApplicationPool2/PoolTest.cpp +1 -1
  126. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +7 -7
  127. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +9 -9
  128. data/test/cxx/EventedBufferedInputTest.cpp +17 -17
  129. data/test/cxx/RequestHandlerTest.cpp +5 -5
  130. data/test/cxx/ServerInstanceDirTest.cpp +3 -1
  131. data/test/cxx/TestSupport.h +4 -4
  132. data/test/cxx/UnionStationTest.cpp +3 -1
  133. data/test/cxx/UtilsTest.cpp +2 -0
  134. data/test/integration_tests/apache2_tests.rb +2 -2
  135. data/test/integration_tests/native_packaging_spec.rb +170 -0
  136. data/test/ruby/spec_helper.rb +0 -1
  137. data/test/stub/apache2/httpd.conf.erb +1 -1
  138. data/test/stub/nginx/nginx.conf.erb +1 -0
  139. data/test/support/apache2_controller.rb +1 -1
  140. data/test/support/placebo-preloader.rb +1 -1
  141. data/test/support/test_helper.rb +5 -2
  142. metadata +32 -26
  143. metadata.gz.asc +7 -7
  144. data/debian/compat +0 -1
  145. data/debian/control +0 -49
  146. data/debian/copyright +0 -20
  147. data/debian/libapache2-mod-passenger.install +0 -1
  148. data/debian/passenger-common.install +0 -4
  149. data/debian/passenger.conf +0 -4
  150. data/debian/prerm +0 -2
  151. data/debian/rules +0 -37
  152. data/debian/watch +0 -3
  153. data/dev/googlecode_upload.py +0 -265
  154. data/ext/common/agents/HelperAgent/BacktracesServer.h +0 -60
  155. data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +0 -8
  156. data/test/stub/rails3.1/app/assets/javascripts/application.js +0 -9
  157. data/test/stub/rails3.2/app/assets/javascripts/application.js +0 -15
  158. data/test/stub/rails_apps/2.3/mycook/public/javascripts/application.js +0 -2
  159. data/test/stub/rails_apps/2.3/mycook/public/javascripts/controls.js +0 -963
  160. data/test/stub/rails_apps/2.3/mycook/public/javascripts/dragdrop.js +0 -973
  161. data/test/stub/rails_apps/2.3/mycook/public/javascripts/effects.js +0 -1128
  162. data/test/stub/rails_apps/2.3/mycook/public/javascripts/prototype.js +0 -4320
@@ -27,7 +27,6 @@ end
27
27
 
28
28
  DEBUG = boolean_option('DEBUG')
29
29
  TEST_CLASSIC_RAILS = boolean_option('TEST_CLASSIC_RAILS', true)
30
- AGENTS_DIR = "#{source_root}/agents"
31
30
 
32
31
  $LOAD_PATH.unshift("#{source_root}/lib")
33
32
  $LOAD_PATH.unshift("#{source_root}/test")
@@ -79,7 +79,7 @@ DocumentRoot "<%= @server_root %>"
79
79
  LockFile <%= @server_root %>/httpd.lock
80
80
  <% end %>
81
81
  PidFile <%= @server_root %>/httpd.pid
82
- ErrorLog <%= @passenger_root %>/test/test.log
82
+ ErrorLog <%= @server_root %>/../test.log
83
83
  CustomLog <%= @server_root %>/access.log combined
84
84
 
85
85
  <% if !vhosts.empty? && PlatformInfo.httpd_version < '2.4.0' %>
@@ -12,6 +12,7 @@ http {
12
12
  default_type application/octet-stream;
13
13
  sendfile on;
14
14
  keepalive_timeout 65;
15
+ server_names_hash_bucket_size 64;
15
16
 
16
17
  log_format main '$remote_addr - $remote_user [$time_local] $request '
17
18
  '"$status" $body_bytes_sent "$http_referer" '
@@ -71,7 +71,7 @@ class Apache2Controller
71
71
  @extra = []
72
72
  @server_root = File.expand_path('tmp.apache2')
73
73
  @passenger_root = File.expand_path(PhusionPassenger.source_root)
74
- @mod_passenger = File.expand_path(PhusionPassenger.source_root + "/libout/apache2/mod_passenger.so")
74
+ @mod_passenger = PhusionPassenger.apache2_module_path
75
75
  end
76
76
 
77
77
  def set(options)
@@ -33,7 +33,7 @@ def process_client_command(server, client, command)
33
33
  options[name] = value
34
34
  end
35
35
 
36
- command = options["start_command"].split("\1")
36
+ command = options["start_command"].split("\t")
37
37
  process_title = options["process_title"]
38
38
  process_title = command[0] if !process_title || process_title.empty?
39
39
  command[0] = [command[0], process_title]
@@ -358,14 +358,17 @@ module TestHelper
358
358
  def spawn_logging_agent(dump_file, password)
359
359
  passenger_tmpdir = PhusionPassenger::Utils.passenger_tmpdir
360
360
  socket_filename = "#{passenger_tmpdir}/logging.socket"
361
- pid = spawn_process("#{AGENTS_DIR}/PassengerLoggingAgent",
361
+ pid = spawn_process("#{PhusionPassenger.agents_dir}/PassengerLoggingAgent",
362
+ "passenger_root", PhusionPassenger.source_root,
362
363
  "log_level", PhusionPassenger::DebugLogging.log_level,
363
364
  "analytics_dump_file", dump_file,
364
365
  "analytics_log_user", CONFIG['normal_user_1'],
365
366
  "analytics_log_group", CONFIG['normal_group_1'],
366
367
  "analytics_log_permissions", "u=rwx,g=rwx,o=rwx",
367
368
  "logging_agent_address", "unix:#{socket_filename}",
368
- "logging_agent_password", password)
369
+ "logging_agent_password", password,
370
+ "logging_agent_admin_address", "unix:#{socket_filename}_admin",
371
+ "admin_tool_status_password", password)
369
372
  eventually do
370
373
  File.exist?(socket_filename)
371
374
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.5
4
+ version: 4.0.6
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-05-29 00:00:00.000000000 Z
12
+ date: 2013-07-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -75,6 +75,7 @@ files:
75
75
  - configure
76
76
  - Rakefile
77
77
  - README.md
78
+ - CONTRIBUTORS
78
79
  - CONTRIBUTING.md
79
80
  - LICENSE
80
81
  - INSTALL.md
@@ -86,12 +87,14 @@ files:
86
87
  - build/common_library.rb
87
88
  - build/cplusplus_support.rb
88
89
  - build/cxx_tests.rb
90
+ - build/debian.rb
89
91
  - build/documentation.rb
90
92
  - build/integration_tests.rb
91
93
  - build/misc.rb
92
94
  - build/nginx.rb
93
95
  - build/oxt_tests.rb
94
96
  - build/packaging.rb
97
+ - build/preprocessor.rb
95
98
  - build/rake_extensions.rb
96
99
  - build/rpm.rb
97
100
  - build/ruby_extension.rb
@@ -231,11 +234,13 @@ files:
231
234
  - doc/Users guide Standalone.html
232
235
  - doc/Users guide Standalone.idmap.txt
233
236
  - doc/Users guide Standalone.txt
237
+ - doc/users_guide_snippets/alternative_for_flying_passenger.txt
234
238
  - doc/users_guide_snippets/analysis_and_system_maintenance.txt
235
239
  - doc/users_guide_snippets/appendix_a_about.txt
236
240
  - doc/users_guide_snippets/appendix_b_terminology.txt
237
241
  - doc/users_guide_snippets/appendix_c_spawning_methods.txt
238
242
  - doc/users_guide_snippets/enterprise_only.txt
243
+ - doc/users_guide_snippets/environment_variables.txt
239
244
  - doc/users_guide_snippets/global_queueing_explained.txt
240
245
  - doc/users_guide_snippets/installation.txt
241
246
  - doc/users_guide_snippets/passenger_spawn_method.txt
@@ -249,20 +254,27 @@ files:
249
254
  - man/passenger-memory-stats.8
250
255
  - man/passenger-status.8
251
256
  - man/passenger-stress-test.1
252
- - debian/changelog
253
- - debian/compat
254
- - debian/control
255
- - debian/copyright
256
- - debian/libapache2-mod-passenger.install
257
- - debian/libapache2-mod-passenger.postinst
258
- - debian/libapache2-mod-passenger.prerm
259
- - debian/passenger-common.install
260
- - debian/passenger.conf
261
- - debian/passenger.load
262
- - debian/prerm
263
- - debian/README.Debian
264
- - debian/rules
265
- - debian/watch
257
+ - debian.template/changelog
258
+ - debian.template/compat
259
+ - debian.template/control
260
+ - debian.template/copyright
261
+ - debian.template/libapache2-mod-passenger.install
262
+ - debian.template/libapache2-mod-passenger.postinst
263
+ - debian.template/libapache2-mod-passenger.prerm
264
+ - debian.template/locations.ini
265
+ - debian.template/passenger.conf
266
+ - debian.template/passenger.load
267
+ - debian.template/patches/series
268
+ - debian.template/README.Debian
269
+ - debian.template/repack.sh
270
+ - debian.template/ruby-passenger-dev.install
271
+ - debian.template/ruby-passenger-doc.install
272
+ - debian.template/ruby-passenger.docs
273
+ - debian.template/ruby-passenger.install
274
+ - debian.template/ruby-passenger.manpages
275
+ - debian.template/rules.template
276
+ - debian.template/source/format
277
+ - debian.template/watch
266
278
  - helper-scripts/backtrace-sanitizer.rb
267
279
  - helper-scripts/classic-rails-loader.rb
268
280
  - helper-scripts/classic-rails-preloader.rb
@@ -308,10 +320,10 @@ files:
308
320
  - ext/common/AccountsDatabase.h
309
321
  - ext/common/agents/Base.h
310
322
  - ext/common/agents/HelperAgent/AgentOptions.h
311
- - ext/common/agents/HelperAgent/BacktracesServer.h
312
323
  - ext/common/agents/HelperAgent/FileBackedPipe.h
313
324
  - ext/common/agents/HelperAgent/RequestHandler.h
314
325
  - ext/common/agents/HelperAgent/ScgiRequestParser.h
326
+ - ext/common/agents/LoggingAgent/AdminController.h
315
327
  - ext/common/agents/LoggingAgent/DataStoreId.h
316
328
  - ext/common/agents/LoggingAgent/FilterSupport.h
317
329
  - ext/common/agents/LoggingAgent/LoggingServer.h
@@ -2203,7 +2215,6 @@ files:
2203
2215
  - ext/ruby/extconf.rb
2204
2216
  - dev/copy_boost_headers.rb
2205
2217
  - dev/find_owner_pipe_leaks.rb
2206
- - dev/googlecode_upload.py
2207
2218
  - dev/render_error_pages.rb
2208
2219
  - dev/run_travis.sh
2209
2220
  - resources/mime.types
@@ -2219,13 +2230,14 @@ files:
2219
2230
  - resources/templates/error_layout.html.template
2220
2231
  - resources/templates/general_error.html.template
2221
2232
  - resources/templates/general_error_with_html.html.template
2233
+ - resources/templates/installer_common/freebsd9_broken_cxx_runtime.txt.erb
2234
+ - resources/templates/installer_common/low_amount_of_memory_warning.txt.erb
2222
2235
  - resources/templates/nginx/ask_for_extra_configure_flags.txt.erb
2223
2236
  - resources/templates/nginx/cannot_write_to_dir.txt.erb
2224
2237
  - resources/templates/nginx/config_snippets.txt.erb
2225
2238
  - resources/templates/nginx/config_snippets_inserted.txt.erb
2226
2239
  - resources/templates/nginx/confirm_extra_configure_flags.txt.erb
2227
2240
  - resources/templates/nginx/deployment_example.txt.erb
2228
- - resources/templates/nginx/not_available_when_natively_packaged.txt.erb
2229
2241
  - resources/templates/nginx/pcre_checksum_could_not_be_verified.txt.erb
2230
2242
  - resources/templates/nginx/pcre_could_not_be_downloaded.txt.erb
2231
2243
  - resources/templates/nginx/pcre_could_not_be_extracted.txt.erb
@@ -2324,6 +2336,7 @@ files:
2324
2336
  - test/integration_tests/hello_world_rack_spec.rb
2325
2337
  - test/integration_tests/hello_world_wsgi_spec.rb
2326
2338
  - test/integration_tests/mycook_spec.rb
2339
+ - test/integration_tests/native_packaging_spec.rb
2327
2340
  - test/integration_tests/nginx_tests.rb
2328
2341
  - test/integration_tests/spec_helper.rb
2329
2342
  - test/stub/apache2/httpd.conf.erb
@@ -2405,7 +2418,6 @@ files:
2405
2418
  - test/stub/rails3.0/test/performance/browsing_test.rb
2406
2419
  - test/stub/rails3.0/test/test_helper.rb
2407
2420
  - test/stub/rails3.1/app/assets/images/rails.png
2408
- - test/stub/rails3.1/app/assets/javascripts/application.js
2409
2421
  - test/stub/rails3.1/app/assets/stylesheets/application.css
2410
2422
  - test/stub/rails3.1/app/controllers/application_controller.rb
2411
2423
  - test/stub/rails3.1/app/helpers/application_helper.rb
@@ -2443,7 +2455,6 @@ files:
2443
2455
  - test/stub/rails3.1/test/performance/browsing_test.rb
2444
2456
  - test/stub/rails3.1/test/test_helper.rb
2445
2457
  - test/stub/rails3.2/app/assets/images/rails.png
2446
- - test/stub/rails3.2/app/assets/javascripts/application.js
2447
2458
  - test/stub/rails3.2/app/assets/stylesheets/application.css
2448
2459
  - test/stub/rails3.2/app/controllers/application_controller.rb
2449
2460
  - test/stub/rails3.2/app/helpers/application_helper.rb
@@ -2665,11 +2676,6 @@ files:
2665
2676
  - test/stub/rails_apps/2.3/mycook/public/images/cookbook.gif
2666
2677
  - test/stub/rails_apps/2.3/mycook/public/images/header.png
2667
2678
  - test/stub/rails_apps/2.3/mycook/public/images/rails.png
2668
- - test/stub/rails_apps/2.3/mycook/public/javascripts/application.js
2669
- - test/stub/rails_apps/2.3/mycook/public/javascripts/controls.js
2670
- - test/stub/rails_apps/2.3/mycook/public/javascripts/dragdrop.js
2671
- - test/stub/rails_apps/2.3/mycook/public/javascripts/effects.js
2672
- - test/stub/rails_apps/2.3/mycook/public/javascripts/prototype.js
2673
2679
  - test/stub/rails_apps/2.3/mycook/public/robots.txt
2674
2680
  - test/stub/rails_apps/2.3/mycook/public/uploads.html
2675
2681
  - test/stub/rails_apps/2.3/mycook/public/welcome/cached.html
metadata.gz.asc CHANGED
@@ -2,11 +2,11 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQEcBAABAgAGBQJRpgpHAAoJECrHRaUKISqMaUsH/36pNJGxryARsxpddPgRmhUh
6
- iilOVBDcfD8kun8/OUdfaAdabr3AXsRJsTzYAeac7SM+6FQ2h7rPKOK4eyQCICPm
7
- bgJ82TXu/TGbiSvzXrNGTg8Lx+xg0p+kv8jhbLN5zZoXFVPbFv0O6A6T8ExU7Fbr
8
- qNJPFAMdnIN2X4qx6wbCz8mcUDuq8LrQ7wp85+WrsvTam9t6H3MHEnrewC25DTrD
9
- hlay1dc7o1rb98Skz16rLdoPMiAO7VpBHzxpRBnarnnS0okHNLKzmNEyLGEwuUwj
10
- WTptq1vvism04T/tY0+m0RZvc8Ev58ydWH6O2ZsI3M6Zu5iZkWqtBj+jU0oZcZQ=
11
- =nU+e
5
+ iQEcBAABAgAGBQJR1eJgAAoJECrHRaUKISqMIQUH/3xy6DwmpTlbAhmkO0xL8gAu
6
+ RHju6gRXoJPnCuwLYeDTErawtZ3XY2nMvF/qm7H01Nmi4+LF+sWHmFksFiYciXsR
7
+ eEkJSyQP6pzXkbmGzvAsaQZ8zV9QuxCjeJFxJa+ouqUi31o7eA2k8u5HP8fXfUjl
8
+ UXA/YwPc7vqxpLpZXCv0nBBHAzk3gG/sjvRIFzoTDvX/DGIVCHCHOhA+bkh3FpLx
9
+ 9WoIsYE52LzhYMrzE5wwttWL5NHBW8Q3ygzgkzy84RUNInhHf2gLQ2G1qUZ9V9XQ
10
+ 8NgJoZXu8W9N4cI8OVvpVFlL2Hrp7LfsEJE+fRH9defkYKaYyNpYHZCa5mB7voY=
11
+ =GbQl
12
12
  -----END PGP SIGNATURE-----
@@ -1 +0,0 @@
1
- 5
@@ -1,49 +0,0 @@
1
- Source: passenger
2
- Section: web
3
- Priority: optional
4
- Maintainer: John Leach <john@brightbox.co.uk>
5
- Build-Depends: apache2-threaded-dev, apache2-mpm-worker | apache2-mpm-prefork,
6
- libapr1-dev, ruby, rubygems, debhelper (>= 5.0.44), ruby1.8-dev, doxygen,
7
- asciidoc (>= 8.2), graphviz, rake, cdbs, source-highlight, libev-dev,
8
- libcurl4-openssl-dev
9
- Standards-Version: 3.8.0
10
- Homepage: http://www.modrails.com/
11
- XS-Vcs-git: git://github.com/FooBarWidget/passenger.git
12
- XS-Vcs-browser: https://github.com/FooBarWidget/passenger
13
-
14
- Package: passenger-common
15
- Architecture: any
16
- Depends: ${shlibs:Depends}, ruby, librack-ruby1.8 (>= 1.0.0)
17
- Conflicts: libapache2-mod-passenger (< 2.2.1-1bbox1)
18
- Suggests: python, rails, passenger-doc, rubygems (>= 1.0)
19
- Description: Rails and Rack support for Apache2
20
- Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
21
- deployment of Ruby web applications, such as those built on the
22
- revolutionary Ruby on Rails web framework, a breeze.
23
- .
24
- This package provides the bits of Passenger common to both its Apache
25
- and NGINX support.
26
-
27
- Package: libapache2-mod-passenger
28
- Architecture: any
29
- Depends: ${shlibs:Depends}, apache2.2-common,
30
- passenger-common (= ${binary:Version})
31
- Suggests: python, rails, passenger-doc, rubygems (>= 1.0)
32
- Description: Rails and Rack support for Apache2
33
- Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
34
- deployment of Ruby web applications, such as those built on the
35
- revolutionary Ruby on Rails web framework, a breeze.
36
- .
37
- This package provides the Phusion Passenger loadable Apache module
38
-
39
- Package: passenger-doc
40
- Section: doc
41
- Architecture: all
42
- Suggests: www-browse
43
- Description: Rails and Rac support for Apache2 - Documentation
44
- Phusion Passenger — a.k.a. mod_rails or mod_rack — makes
45
- deployment of Ruby web applications, such as those built on the
46
- revolutionary Ruby on Rails web framework, a breeze.
47
- .
48
- This package provides the documentation for Phusion Passenger.
49
-
@@ -1,20 +0,0 @@
1
- Upstream : Copyright (c) 2010 Phusion
2
- Packaging: Copyright (c) 2010 Brightbox Systems
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is
9
- furnished to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in
12
- all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
@@ -1 +0,0 @@
1
- ../passenger.{conf,load} etc/apache2/mods-available
@@ -1,4 +0,0 @@
1
- usr/lib/ruby
2
- usr/lib/phusion-passenger
3
- usr/share/phusion-passenger
4
- usr/sbin
@@ -1,4 +0,0 @@
1
- <IfModule mod_passenger.c>
2
- PassengerRoot /usr
3
- PassengerRuby /usr/bin/ruby
4
- </IfModule>
@@ -1,2 +0,0 @@
1
- #!/bin/sh
2
-
@@ -1,37 +0,0 @@
1
- #!/usr/bin/make -f
2
-
3
- export DH_VERBOSE=1
4
- export CFLAGS="-g -O0 -burgers"
5
- include /usr/share/cdbs/1/rules/debhelper.mk
6
- include /usr/share/cdbs/1/rules/simple-patchsys.mk
7
-
8
- DEB_DH_INSTALL_SOURCEDIR := $(DEB_DESTDIR)
9
- DEB_INSTALL_DOCS_passenger-doc += DEVELOPERS.TXT $(DEB_DESTDIR)/usr/share/doc/phusion-passenger/
10
- DEB_INSTALL_MANPAGES_passenger-common += man/*
11
-
12
-
13
- bindir = usr/bin
14
- sbindir = usr/sbin
15
- builddir = pkg/fakeroot
16
- moddir = $(shell apxs2 -q LIBEXECDIR)
17
- modsavailabledir = etc/apache2/mods-available
18
- passengermodule = usr/lib/apache2/modules/mod_passenger.so
19
-
20
- clean::
21
- rake clean
22
-
23
- build/passenger-common build/libapache2-mod-passenger build/passenger-doc::
24
- rake fakeroot APXS2=/usr/bin/apxs2 USE_VENDORED_LIBEV=no RELEASE=yes
25
- rm -rf $(DEB_DESTDIR)
26
- mv $(builddir) $(DEB_DESTDIR)
27
-
28
- install/passenger-common::
29
- rm -rf $(DEB_DESTDIR)/usr/share/phusion-passenger/source
30
- rm $(DEB_DESTDIR)/usr/bin/passenger-install-*
31
-
32
- install/libapache2-mod-passenger::
33
- mkdir -p $(CURDIR)/debian/$(cdbs_curpkg)/$(moddir)
34
- mv $(DEB_DESTDIR)/$(passengermodule) $(CURDIR)/debian/$(cdbs_curpkg)/$(moddir)
35
-
36
- get-orig-source:
37
- uscan --verbose --force-download
@@ -1,3 +0,0 @@
1
- # Compulsory line, this is a version 3 file
2
- version=3
3
- http://rubyforge.org/frs/?group_id=5873 .*/passenger-(.*).tar.gz debian git-import-orig
@@ -1,265 +0,0 @@
1
- #!/usr/bin/env python
2
- #
3
- # Copyright 2006, 2007 Google Inc. All Rights Reserved.
4
- # Author: danderson@google.com (David Anderson)
5
- #
6
- # Script for uploading files to a Google Code project.
7
- #
8
- # This is intended to be both a useful script for people who want to
9
- # streamline project uploads and a reference implementation for
10
- # uploading files to Google Code projects.
11
- #
12
- # To upload a file to Google Code, you need to provide a path to the
13
- # file on your local machine, a small summary of what the file is, a
14
- # project name, and a valid account that is a member or owner of that
15
- # project. You can optionally provide a list of labels that apply to
16
- # the file. The file will be uploaded under the same name that it has
17
- # in your local filesystem (that is, the "basename" or last path
18
- # component). Run the script with '--help' to get the exact syntax
19
- # and available options.
20
- #
21
- # Note that the upload script requests that you enter your
22
- # googlecode.com password. This is NOT your Gmail account password!
23
- # This is the password you use on googlecode.com for committing to
24
- # Subversion and uploading files. You can find your password by going
25
- # to http://code.google.com/hosting/settings when logged in with your
26
- # Gmail account. If you have already committed to your project's
27
- # Subversion repository, the script will automatically retrieve your
28
- # credentials from there (unless disabled, see the output of '--help'
29
- # for details).
30
- #
31
- # If you are looking at this script as a reference for implementing
32
- # your own Google Code file uploader, then you should take a look at
33
- # the upload() function, which is the meat of the uploader. You
34
- # basically need to build a multipart/form-data POST request with the
35
- # right fields and send it to https://PROJECT.googlecode.com/files .
36
- # Authenticate the request using HTTP Basic authentication, as is
37
- # shown below.
38
- #
39
- # Licensed under the terms of the Apache Software License 2.0:
40
- # http://www.apache.org/licenses/LICENSE-2.0
41
- #
42
- # Questions, comments, feature requests and patches are most welcome.
43
- # Please direct all of these to the Google Code users group:
44
- # http://groups.google.com/group/google-code-hosting
45
-
46
- """Google Code file uploader script.
47
- """
48
-
49
- __author__ = 'danderson@google.com (David Anderson)'
50
-
51
- import httplib
52
- import os.path
53
- import optparse
54
- import getpass
55
- import base64
56
- import sys
57
-
58
-
59
- def upload(file, project_name, user_name, password, summary, labels=None):
60
- """Upload a file to a Google Code project's file server.
61
-
62
- Args:
63
- file: The local path to the file.
64
- project_name: The name of your project on Google Code.
65
- user_name: Your Google account name.
66
- password: The googlecode.com password for your account.
67
- Note that this is NOT your global Google Account password!
68
- summary: A small description for the file.
69
- labels: an optional list of label strings with which to tag the file.
70
-
71
- Returns: a tuple:
72
- http_status: 201 if the upload succeeded, something else if an
73
- error occured.
74
- http_reason: The human-readable string associated with http_status
75
- file_url: If the upload succeeded, the URL of the file on Google
76
- Code, None otherwise.
77
- """
78
- # The login is the user part of user@gmail.com. If the login provided
79
- # is in the full user@domain form, strip it down.
80
- if user_name.endswith('@gmail.com'):
81
- user_name = user_name[:user_name.index('@gmail.com')]
82
-
83
- form_fields = [('summary', summary)]
84
- if labels is not None:
85
- form_fields.extend([('label', l.strip()) for l in labels])
86
-
87
- content_type, body = encode_upload_request(form_fields, file)
88
-
89
- upload_host = '%s.googlecode.com' % project_name
90
- upload_uri = '/files'
91
- auth_token = base64.b64encode('%s:%s'% (user_name, password))
92
- headers = {
93
- 'Authorization': 'Basic %s' % auth_token,
94
- 'User-Agent': 'Googlecode.com uploader v0.9.4',
95
- 'Content-Type': content_type,
96
- }
97
-
98
- server = httplib.HTTPSConnection(upload_host)
99
- server.request('POST', upload_uri, body, headers)
100
- resp = server.getresponse()
101
- server.close()
102
-
103
- if resp.status == 201:
104
- location = resp.getheader('Location', None)
105
- else:
106
- location = None
107
- return resp.status, resp.reason, location
108
-
109
-
110
- def encode_upload_request(fields, file_path):
111
- """Encode the given fields and file into a multipart form body.
112
-
113
- fields is a sequence of (name, value) pairs. file is the path of
114
- the file to upload. The file will be uploaded to Google Code with
115
- the same file name.
116
-
117
- Returns: (content_type, body) ready for httplib.HTTP instance
118
- """
119
- BOUNDARY = '----------Googlecode_boundary_reindeer_flotilla'
120
- CRLF = '\r\n'
121
-
122
- body = []
123
-
124
- # Add the metadata about the upload first
125
- for key, value in fields:
126
- body.extend(
127
- ['--' + BOUNDARY,
128
- 'Content-Disposition: form-data; name="%s"' % key,
129
- '',
130
- value,
131
- ])
132
-
133
- # Now add the file itself
134
- file_name = os.path.basename(file_path)
135
- f = open(file_path, 'rb')
136
- file_content = f.read()
137
- f.close()
138
-
139
- body.extend(
140
- ['--' + BOUNDARY,
141
- 'Content-Disposition: form-data; name="filename"; filename="%s"'
142
- % file_name,
143
- # The upload server determines the mime-type, no need to set it.
144
- 'Content-Type: application/octet-stream',
145
- '',
146
- file_content,
147
- ])
148
-
149
- # Finalize the form body
150
- body.extend(['--' + BOUNDARY + '--', ''])
151
-
152
- return 'multipart/form-data; boundary=%s' % BOUNDARY, CRLF.join(body)
153
-
154
-
155
- def upload_find_auth(file_path, project_name, summary, labels=None,
156
- user_name=None, password=None, tries=3):
157
- """Find credentials and upload a file to a Google Code project's file server.
158
-
159
- file_path, project_name, summary, and labels are passed as-is to upload.
160
-
161
- Args:
162
- file_path: The local path to the file.
163
- project_name: The name of your project on Google Code.
164
- summary: A small description for the file.
165
- labels: an optional list of label strings with which to tag the file.
166
- config_dir: Path to Subversion configuration directory, 'none', or None.
167
- user_name: Your Google account name.
168
- tries: How many attempts to make.
169
- """
170
- if user_name is None or password is None:
171
- from netrc import netrc
172
- try:
173
- authenticators = netrc().authenticators("code.google.com")
174
- except IOError as e:
175
- sys.stderr.write(str(e) + "\n\n")
176
- sys.stderr.write("It seems that you don't have ~/.netrc. You must " +
177
- "configure this file so that this script can authenticate with " +
178
- "Google Code. This file must contain your Google Code password " +
179
- "(which is NOT your Google account password)! Please visit " +
180
- "http://code.google.com/hosting/settings for instructions.\n")
181
- sys.exit(1)
182
- if authenticators:
183
- if user_name is None:
184
- user_name = authenticators[0]
185
- if password is None:
186
- password = authenticators[2]
187
-
188
- while tries > 0:
189
- if user_name is None:
190
- # Read username if not specified or loaded from svn config, or on
191
- # subsequent tries.
192
- sys.stdout.write('Please enter your googlecode.com username: ')
193
- sys.stdout.flush()
194
- user_name = sys.stdin.readline().rstrip()
195
- if password is None:
196
- # Read password if not loaded from svn config, or on subsequent tries.
197
- print 'Please enter your googlecode.com password.'
198
- print '** Note that this is NOT your Gmail account password! **'
199
- print 'It is the password you use to access Subversion repositories,'
200
- print 'and can be found here: http://code.google.com/hosting/settings'
201
- password = getpass.getpass()
202
-
203
- status, reason, url = upload(file_path, project_name, user_name, password,
204
- summary, labels)
205
- # Returns 403 Forbidden instead of 401 Unauthorized for bad
206
- # credentials as of 2007-07-17.
207
- if status in [httplib.FORBIDDEN, httplib.UNAUTHORIZED]:
208
- # Rest for another try.
209
- user_name = password = None
210
- tries = tries - 1
211
- else:
212
- # We're done.
213
- break
214
-
215
- return status, reason, url
216
-
217
-
218
- def main():
219
- parser = optparse.OptionParser(usage='googlecode-upload.py -s SUMMARY '
220
- '-p PROJECT [options] FILE')
221
- parser.add_option('-s', '--summary', dest='summary',
222
- help='Short description of the file')
223
- parser.add_option('-p', '--project', dest='project',
224
- help='Google Code project name')
225
- parser.add_option('-u', '--user', dest='user',
226
- help='Your Google Code username')
227
- parser.add_option('-w', '--password', dest='password',
228
- help='Your Google Code password')
229
- parser.add_option('-l', '--labels', dest='labels',
230
- help='An optional list of comma-separated labels to attach '
231
- 'to the file')
232
-
233
- options, args = parser.parse_args()
234
-
235
- if not options.summary:
236
- parser.error('File summary is missing.')
237
- elif not options.project:
238
- parser.error('Project name is missing.')
239
- elif len(args) < 1:
240
- parser.error('File to upload not provided.')
241
- elif len(args) > 1:
242
- parser.error('Only one file may be specified.')
243
-
244
- file_path = args[0]
245
-
246
- if options.labels:
247
- labels = options.labels.split(',')
248
- else:
249
- labels = None
250
-
251
- status, reason, url = upload_find_auth(file_path, options.project,
252
- options.summary, labels,
253
- options.user, options.password)
254
- if url:
255
- print 'The file was uploaded successfully.'
256
- print 'URL: %s' % url
257
- return 0
258
- else:
259
- print 'An error occurred. Your file was not uploaded.'
260
- print 'Google Code upload server said: %s (%s)' % (reason, status)
261
- return 1
262
-
263
-
264
- if __name__ == '__main__':
265
- sys.exit(main())