= Rubygem-passenger

This project is an attempt to build RPMs for {Phusion
Passenger}[http://modrails.org] for Fedora Core 13+, RHEL 5.5+, and CentOS
5.5+ (both via EPEL)

== Installation

The easiest way to install Passenger and keep it up to date is to install the
passenger-release package from the {main repository}[http://passenger.stealthymonkeys.com]:

[Fedora Core 14] <code>rpm -Uvh http://{http://passenger.stealthymonkeys.com/fedora/14/passenger-release.noarch.rpm}[link:http://passenger.stealthymonkeys.com/fedora/14/passenger-release.noarch.rpm]</code>
[Fedora Core 13] <code>rpm -Uvh http://{http://passenger.stealthymonkeys.com/fedora/13/passenger-release.noarch.rpm}[link:http://passenger.stealthymonkeys.com/fedora/13/passenger-release.noarch.rpm]</code>
[RHEL / CentOS / ScientificLinux 5.x + EPEL] <code>rpm -Uvh http://{http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm}[link:http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm]</code>
[RHEL / CentOS / ScientificLinux 6.x + EPEL] <code>rpm -Uvh http://{http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm}[link:http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm]</code>

*NOTE*: The RHEL-based distributions are built upon packages in {EPEL}[http://fedoraproject.org/wiki/EPEL], and require it to be installed.

The passenger-release package adds a new Yum repository to your configuration.
From here you can use the {yum}[http://prefetch.net/articles/yum.html] command
to install Passenger packages:

<code>yum install nginx-passenger</code>

<code>yum install mod_passenger</code>

<code>yum install passenger-standalone</code>

(You probably only need one of the commands above)

== Packages

=== Yum Package

[passenger-release] Yum configuration necessary to query the
                    {main repository}[http://passenger.stealthymonkeys.com]
                    (and eventually mirrors) for updates.

=== Main Packages

[rubygem-passenger] The base passenger Gem. Most of the package lives here.

[mod_passenger] The Apache webserver dynamically loadable module.

[nginx-passenger] A version of the nginx webserver with the passenger module
                  statically linked (nginx does not support dynamically
                  loadable modules)

[passenger-standalone] The passenger-standalone server. As of 3.0.0-11 this
                       package is correctly built and installed and is now
                       safe to use. This package was renamed from
                       rubygems-passenger-standalone in 3.0.1-4. No action is
                       required to upgrade from older packages via yum.

=== Supporting Packages

[rubygem-passenger-native] The compiled helper executables required by
                           mod_passenger and nginx-passenger

[rubygem-passenger-native-libs] The passenger_native_support.so shared library
                                compiled against a given ruby engine. This
                                package is separated to simplify building one
                                for a different ruby engine. Currently only
                                required by nginx-passenger.

[nginx-alternatives] A meta-package to put nginx under the alternatives system
                     so that multiple versions of the binary can co-exist.
                     This package is meant to be Obsoleted by a future nginx
                     package which should contain this functionality.

=== External Dependency Packages

[rubygem-daemon_controller] A gem for robust daemon managment. Required by
                            rubygem-passenger.

[rubygem-file-tail] Library to tail files in Ruby. Required by rubygem-passenger.

[rubygem-spruz] “Useful Stuff.” Required by rubygem-file-tail.

=== Other Packages

[rubygem-passenger-debuginfo] Standard debugger symbols for the above
                              packages. (Turned off in the 3.0.0 tree
                              due to debugging symbols containing
                              %builddir paths. This will be reinstaed in
                              a later release)

== Building Your Own Packages

There are 3 ways to build packages:

=== An Official Release via SRPM

This is the simplest option, and the only option that doesn't (likely) require
sudo access.

1. Download an SRPM from {the repository}[http://passenger.stealthymonkeys.com/SRPMS]
2. <code>rpmbuild --rebuild <SRPM file></code>

=== Testing Packages via Git

1. Clone this repository
2. <code>rake package:rpm</code>

=== A Testing {Yum}[http://fedoraproject.org/wiki/Tools/yum] Repository via Git

1. Clone this repository
2. <code>rake package:yum</code>

The first time the two rake tasks above are run they will probably need to sudo
in order to install and/or setup some of the dependencies. It will prompt you
with a list of commands it will run, and ask you to hit “return” to continue.

== Etc.

More to come!

