• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Brno meetr: Packaging Ruby Gems into RPM
 

Brno meetr: Packaging Ruby Gems into RPM

on

  • 642 views

Packaging Ruby Gems into RPM

Packaging Ruby Gems into RPM

Statistics

Views

Total Views
642
Views on SlideShare
638
Embed Views
4

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 4

http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Brno meetr: Packaging Ruby Gems into RPM Brno meetr: Packaging Ruby Gems into RPM Presentation Transcript

    • Into Fedora RPM packages Lubomir Rintel Presented by Fedora Package Maintainer Creative Commons Attribution-ShareAlike license applies. Packaging Gems
    • Gems and RPM
    • Why use RPM? Consistency simplifies maintenance Administrative tasks (rpm) Repository and update management (yum) Lots existing tooling Creating Live or JEOS images (livecd-tools) Reproducible builds (mock, koji) Security Package signing (rpm -k) File verification (rpm -V)
    • Ruby Gems Archive of Ruby code Ruby library metadata specification A sane and useful standard Ruby specific Guarantees consistent build mechanism Subset of RPM capabilities Naming and versioning Dependency resolution Maps well to RPM
    • Wrapping Gems into RPM Respecting both OS and Gem customs FHS, naming and versioning standards, ... Gem tooling still works Use wisely Can be aided with automated tools gem2rpm Available in rubygem-gem2rpm package
    • Wrapping Gems into RPM Respecting both OS and Gem customs FHS, naming and versioning standards, ... Gem tooling still works Use wisely Can be aided with automated tools gem2rpm Available in rubygem-gem2rpm package Very helpful!
    • RPM basics Binary package Installable with rpm -i Query installed package with rpm -q Query package file with rpm -q -f Source package Wraps source files, patches and build SPEC Buildable with rpmbuild rpm -i and rpm -q -p works the same as with binaries
    • RPM packaging basics SPEC file Divided into sections Starts with header with tags Metadata: %description, %files, %changelog Shell scriptlets: %prep, %build, %install, %check, %pre, %post Macro expansion occurs first Defines: %{buildroot}, %{_prefix}, %{?dist} Conditionals: %if .. %endif, %ifarch i386
    • Ruby Gem RPM anatomy Guidelines in Wiki Defines %{gemname}, %{gemdir}, %{geminstdir} Name: rubygem-%{gemname} Usually no rebuild Source package same as built in Rubygems Empty %prep and %build sections
    • Questions?
    • Hands-on exercise
    • Adding the package into Fedora
    • Fedora infrastructure Koji – Build System http://koji.fedoraproject.org/koji/ Packages are built here Maintains package collections for specific releases Bodhi – Update system https://admin.fedoraproject.org/updates/ Tells Koji to include packages in Stable (Beta, RC, Gold) repositories
    • Fedora infrastructure Bugzilla – Ticket tracking system https://bugzilla.redhat.com/ New packages are reviewed here GIT requests are processed here FAS2 – Fedora Account System https://admin.fedoraproject.org/accounts/ Need a packager account
    • Packager setup Set up a SSH key in FAS Install required client software fedpkg, koji client, bodhi client yum -y install fedora-packager Get a certificate for Koji client fedora-packager-setup Clone your package and start hacking fedpkg co rubygem-<name>
    • Questions? Creative Commons Attribution-ShareAlike license applies lkundrak@v3.sk Contact:
    • GoodData is hiring! ● Perl, C, SQL, Java, Javascript ● Data analysis and visualization http://www.gooddata.com/about/careers/
    • Useful resources Wiki: https://fedoraproject.org/wiki/ https://fedoraproject.org/wiki/PackageMaintainers/Join https://fedoraproject.org/wiki/Packaging/Guidelines http://fedoraproject.org/wiki/SIGs/Ruby RPM Packaging http://docs.fedoraproject.org/en-US/Fedora_Draft_Docu http://www.rpm.org/max-rpm/
    • Useful resources Mailing lists devel@lists.fedoraproject.org ruby-sig@lists.fedoraproject.org IRC #fedora-devel@irc.freenode.net #fedora-cs@irc.freenode.net