Difference between revisions of "Ruby Gem package guidelines"

From ArchWiki
Jump to: navigation, search
m
m (Package Naming: sentence case in headings)
(19 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{stub}}
+
[[Category:Package development]]
[[Category:Package development (English)]]
+
[[it:Ruby Gem Package Guidelines]]
[[Category:Guidelines (English)]]
+
{{Package Guidelines}}
  
==Package Naming==
+
Writing [[PKGBUILD]]s for software written in [[Ruby]].
For libraries, use "ruby-gemname". For applications, use the program name. In either case, the pkgname should be entirely lowercase
+
  
==Examples==
+
== Package naming ==
For examples, please see [http://aur.archlinux.org/packages.php?ID=24484 github-gem] [http://aur.archlinux.org/packages.php?ID=24483 ruby-json_pure] [http://aur.archlinux.org/packages.php?ID=17121 ruby-hpricot]
+
For libraries, use {{Ic|ruby-gemname}}. For applications, use the program name. In either case, the name should be entirely lowercase
  
==Example PKGBUILD==
+
== Examples ==
  # Contributor: YourName <YourEmail AT example DOT com>
+
For examples, please see {{AUR|github-gem}} {{AUR|ruby-json_pure}} {{AUR|ruby-hpricot}}.
  pkgname=ruby-GEMNAME # All lowercase
+
  pkgver=GEMVERSION
+
  pkgrel=1
+
  pkgdesc="Ruby gem FooBar which implements BazQuux"
+
  arch=(any)
+
  url=""
+
  license=()
+
  depends=(ruby) # Gem may depend on other gems as well (you can get dependency information from the yaml specification)
+
  makedepends=(rubygems)
+
  source=(http://gems.rubyforge.org/gems/GEMNAME-$pkgver.gem)
+
  noextract=(GEMNAME-$pkgver.gem)
+
  md5sums=()
+
 
+
  build() {
+
    cd $srcdir
+
    # _gemdir is defined inside build() because if ruby[gems] is not installed on the system
+
    #  makepkg will barf when sourcing the PKGBUILD
+
    local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+
 
+
    gem install --ignore-dependencies -i "$pkgdir$_gemdir" GEMNAME-$pkgver.gem
+
  }
+
 
+
  # vim:set ts=2 sw=2 et:
+
  
==Automation==
+
== Notes ==
Abhishek Dasgupta wrote [http://github.com/abhidg/gem2arch/ gem2arch] to aid in automating the process of creating a ruby gem PKGBUILD. Make sure to manually check the PKGBUILD after generation.
+
Add {{Ic|--verbose}} to '''gem''' arguments to receive additional information in case of troubles.
 +
 
 +
{{Note|Usage of {{ic|--no-user-install}} '''gem''' argument is mandatory since latest Ruby versions (See {{Bug|28681}} for details).}}
 +
 
 +
== Example PKGBUILD ==
 +
An example PKGBUILD can be found at {{Ic|/usr/share/pacman/PKGBUILD-rubygem.proto}}, which is in the {{Pkg|abs}} package.
 +
 
 +
== Automation ==
 +
The gem installation can be automated completely with the tool {{AUR|pacgem}} which creates a temporary PKGBUILD, calls [[makepkg]] and [[namcap]]. The resulting package is then installed with {{Ic|sudo pacman}}.
 +
 
 +
There are also multiple gem2arch tools which aid in automating the process of creating a ruby gem PKGBUILD. Make sure to manually check the PKGBUILD after generation. The [http://github.com/abhidg/gem2arch/ original version] is by Abhishek Dasgupta. Search for other versions of this tool in AUR ([https://aur.archlinux.org/packages.php?K=gem2arch Search for gem2arch]).

Revision as of 15:53, 27 May 2013

Template:Package Guidelines

Writing PKGBUILDs for software written in Ruby.

Package naming

For libraries, use ruby-gemname. For applications, use the program name. In either case, the name should be entirely lowercase

Examples

For examples, please see github-gemAUR ruby-json_pureAUR ruby-hpricotAUR.

Notes

Add --verbose to gem arguments to receive additional information in case of troubles.

Note: Usage of --no-user-install gem argument is mandatory since latest Ruby versions (See FS#28681 for details).

Example PKGBUILD

An example PKGBUILD can be found at /usr/share/pacman/PKGBUILD-rubygem.proto, which is in the abs package.

Automation

The gem installation can be automated completely with the tool pacgemAUR which creates a temporary PKGBUILD, calls makepkg and namcap. The resulting package is then installed with sudo pacman.

There are also multiple gem2arch tools which aid in automating the process of creating a ruby gem PKGBUILD. Make sure to manually check the PKGBUILD after generation. The original version is by Abhishek Dasgupta. Search for other versions of this tool in AUR (Search for gem2arch).