4550
Comment:
|
3895
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
== Choose a package == Go to piratepad and choose a package you want to build. Make sure no one else is working with it already. * [[http://piratepad.net/tu0H1eU2vH|debian diaspora at piratepad]] Use apt-cache to check if it is already packaged for Debian {{{ apt-cache search devise ruby }}} "devise" being an example. Replace it with the package you are working with. In case you are not running Sid you can also check at: * [[http://www.debian.org/distrib/packages|packages debian search]] and make sure you choose "unstable" for Distribution. Check at * [[http://www.debian.org/devel/wnpp/being_packaged|wnpp]] if someone is already packaging it. Also check it with {{{ wnpp-check devise }}} --(A pdf file which contains the info if a gem is already packaged is to be found here: * [[http://people.debian.org/~boutil/diaspora/|deps.pdf]])-- Make sure to use an actual version. You will have to check the wnpp site or with wnpp-check anyway. |
Note: Always verify the command has finished successfully and make sure there is no error before proceeding to next command. |
Line 75: | Line 50: |
If you get an error that the Test failed, see [[Teams/Ruby/Packaging/Tests|ruby tests]] for hints to solve it. | #. If you get an error that the Test failed, see [[Teams/Ruby/Packaging/Tests|ruby tests]] for hints to solve it. #. If you see "unmet build dependencies" error, install the build dependencies. |
Line 86: | Line 64: |
* [[https://rubygems.org/|rubygems]] (search for your gem and open the matching result) and the homepage of the package. The homepage you will find at rubygems too (right section). | * [[https://rubygems.org/|rubygems]] (search for your gem and open the matching result) and the homepage of the package. The homepage you will find at rubygems too (right section). Usually there is a 'LICENSE' or 'COPYING' or README.{md,rdoc} file in the source which gives such information. |
Translation(s): none
Building with gem2deb
Note: Always verify the command has finished successfully and make sure there is no error before proceeding to next command.
Setup your environment
Add the following variables in your ~/.bashrc file
export DEBEMAIL=your@email.domain export DEBFULLNAME='Your Name' alias lintian='lintian -iIEcv --pedantic --color auto' alias git-import-dsc='git-import-dsc --author-is-committer --pristine-tar' alias clean='fakeroot debian/rules clean'
Note: You can also use debclean command instead of setting alias for clean.
and update your current environment by running
$ source ~/.bashrc
Build the package
First you need install gem2deb
apt-get install gem2deb
Create a build directory and go there
mkdir -p ~/Build/diaspora-packaging && cd $_
You might also want to create a directory for your package
mkdir build_devise && cd $_
and then run
gem2deb devise
will run "gem fetch devise" to download the package.
#. If you get an error that the Test failed, see ruby tests for hints to solve it. #. If you see "unmet build dependencies" error, install the build dependencies.
Note: To fetch rails-assets-* gems, you need to provide a different gem source like this example
gem fetch --source https://rails-assets.org rails-assets-jquery
Now you have to edit files like
- copyright
- control
- changelog
You will find such info at
rubygems (search for your gem and open the matching result) and the homepage of the package. The homepage you will find at rubygems too (right section). Usually there is a 'LICENSE' or 'COPYING' or README.{md,rdoc} file in the source which gives such information.
Note: Read http://www.debian.org/doc/manuals/maint-guide/dreq.en.html to learn more about each file.
Once that is done build the package with
dpkg-buildpackage
If you get an error that it could not be signed, ignore it for now.
And when it has finished check for lintian errors:
lintian -iIEcv --pedantic --color auto ../ruby-devise*.changes
If you get errors, you have to correct them. Then run dpkg-buildpackage again and test with lintian again.
Rails engines
If your package has a app/assets or vendor/assets (if the gem name starts with rails-assets or ends at rails) then your package is a rails engine. More about rails engines
1 Install app or vendor in /usr/share/<package name> using debian/install
2 Set rails engine root with quilt to /usr/share/<package name>. Look for 'class Engine < ::Rails::Engine' in lib/<gem name>.rb or lib/<gem name>/engine.rb and add config.root = '/usr/share/<package name>' like this
if defined?(Rails) class Engine < ::Rails::Engine # Rails -> use app/assets directory. config.root = '/usr/share/ruby-rails-assets-jquery.slimscroll' end end
3 Add a smoke test like this
Javascripts should be packaged as libjs-<js library name> if it is not packaged already (create a new binary package in debian/control and add 'Section: web' and create libjs-<js library name>.install).
Declare dependency on libjs-<js library name> and create a <package name>.links file.
Refer to ruby-rails-assets-favico.js] package for an example.