Name: zammad Version: 0.1 Release: 1%{?dist} Summary: Zammad Application # Some of the gems compile, and thus this can't be noarch BuildArch: x86_64 Group: Application/Internet License: AGPL URL: https://github.com/martinie/zammmad # XXX You'll have to create the logrotate script for your application Source0: %{name}.logrotate BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # XXX Building this rpm requires that bundle is available on the path of the user # that is running rpmbuild. But I'm not sure how to require that there is a # bundle in the path. #BuildRequires: /usr/bin/bundle # XXX Also require gem on the PATH # BuildRequires: /usr/bin/gem # XXX Note that you might not require all the below. It will depend on what your gems require to build. # From docs: http://nokogiri.org/tutorials/installing_nokogiri.html # and: https://github.com/thoughtbot/capybara-webkit/wiki/Installing-QT # which hinted that I should look for something like qt webkit devel ... BuildRequires: libxml2 gcc ruby-devel libxml2-devel libxslt libxslt-devel # for...I forgot to record what gem requires this to build... BuildRequires: qt-devel qtwebkit-devel # for curb BuildRequires: libcurl-devel # for sqlite3 BuildRequires: sqlite-devel # ^^ There may be more requirements above for building on a new dev/rpmbuild env # XXX Remove if not using apache/passenger/mysql # Assuming will run via passenger + apache Requires: mod_passenger, httpd # And use mysql as the db Requires: mysql-server # In order to rotate the logs Requires: logrotate # What repository to pull the actual code from # (assuming git here, you'll need to change for svn or hg) %define git_repo git@github.com:martini/%{name}.git # # DIRS # - Trying to follow Linux file system hierarchy # %define appdir %{rails_home}/%{name} %define docdir %{_docdir}/railsapps/%{name} %define libdir %{_libdir}/railsapps/%{name} %define logdir /var/log/railsapps/%{name} %define configdir /etc/railsapps/%{name} %define cachedir /var/cache/railsapps/%{name} %define datadir /var/lib/railsapps/%{name} %define logrotatedir /etc/logrotate.d/ %description Some description of the application %prep rm -rf ./%{name} git clone %{git_repo} pushd %{name} git checkout v%{version} popd %build pushd %{name} # Install all required gems into ./vendor/bundle using the handy bundle commmand bundle install --deployment # Compile assets, this only has to be done once AFAIK, so in the RPM is fine rm -rf ./public/assets/* bundle exec rake assets:precompile # For some reason bundler doesn't install itself, this is probably right, # but I guess it expects bundler to be on the server being deployed to # already. But the rails-helloworld app crashes on passenger looking for # bundler, so it would seem to me to be required. So, I used gem to install # bundler after bundle deployment. :) And the app then works under passenger. PWD=`pwd` cat > gemrc <