Presentation is loading. Please wait.

Presentation is loading. Please wait.

Into Fedora RPM packages Lubomir Rintel Presented by Fedora Package Maintainer Creative Commons Attribution-ShareAlike license applies. Packaging Gems.

Similar presentations


Presentation on theme: "Into Fedora RPM packages Lubomir Rintel Presented by Fedora Package Maintainer Creative Commons Attribution-ShareAlike license applies. Packaging Gems."— Presentation transcript:

1 Into Fedora RPM packages Lubomir Rintel Presented by Fedora Package Maintainer Creative Commons Attribution-ShareAlike license applies. Packaging Gems

2 Gems and RPM

3 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)

4 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

5 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

6 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!

7 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

8 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

9 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

10 Questions?

11 Hands-on exercise

12 Adding the package into Fedora

13 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

14 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

15 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-

16 Questions ? Creative Commons Attribution-ShareAlike license applies lkundrak@v3.sk Contact:

17 GoodData is hiring! ● Perl, C, SQL, Java, Javascript ● Data analysis and visualization http://www.gooddata.com/about/careers/

18 Useful resources Wiki: https://fedoraproject.org/wiki/https://fedoraproject.org/wiki/ https://fedoraproject.org/wiki/PackageMaintainers/J oin https://fedoraproject.org/wiki/Packaging/Guidelines http://fedoraproject.org/wiki/SIGs/Ruby RPM Packaging http://docs.fedoraproject.org/en- US/Fedora_Draft_Documentation/0.1/html/RPM_G uide/ http://www.rpm.org/max-rpm/

19 Useful resources Mailing lists devel@lists.fedoraproject.org ruby-sig@lists.fedoraproject.org IRC #fedora-devel@irc.freenode.net #fedora-cs@irc.freenode.net


Download ppt "Into Fedora RPM packages Lubomir Rintel Presented by Fedora Package Maintainer Creative Commons Attribution-ShareAlike license applies. Packaging Gems."

Similar presentations


Ads by Google