Open main menu

CDOT Wiki β

DPI908/SBR600 RPM-Writing Lab

Revision as of 19:25, 4 September 2012 by Chris Tyler (talk | contribs) (Created page with 'Category:SBR600 LabsCategory:DPI908 = Purpose = To create an RPM package. = Resources = * Wiki pages on RPM * [[:fedora:PackageMaintainers|Fedora Pack…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Purpose

To create an RPM package.

Resources

Preparation

  1. Install the required packages:
    • yum groupinstall "Fedora Packager"
    • yum install rpmlint yum-utils
  2. Create the ~/rpmbuild directories and the ~/.rpmmacros file by running this command: rpmdev-setuptree

Steps

For each of the two packages you previously built from source:

  1. Put the package source code (tarball) in ~/rpmbuild/SOURCES
  2. Change to the SPECS directory: cd ~/rpmbuild/SPECS
  3. Create an empty skeleton spec file: rpmdev-newspec nameOfPackage
  4. Edit the specfile. Fill in the metadata and all of the required sections.
  5. Attempt to build your package: rpmbuild -ba nameOfPackage.spec
  6. If there are errors, edit the specfile and try building again. Repeat until the build is successful.
  7. When the build is successful, the binary RPMs will be placed in ~/rpmbuild/RPMS and the source RPM will be placed in ~/rpmbuild/SRPMS/

You should also test your build:

  1. Run the rpmlint command once for each of these files, giving the filename as the positional argument:
    • the spec file
    • the SRPM
    • each binary RPM
  2. Note any errors or warnings
  3. Attempt to address each of the errors or warnings. Adding -i to the rpmlint command line will provide informative messages about the cause of each error; the Common Rpmlint issues page may also be a useful resource.
    • If you cannot address each of the errors and warnings, refer to the Fedora wiki or use IRC and/or email to ask a Fedora packager, classmate, or your professor for assistance.

Deliverables

Write a blog post about your experience building these packages. Include notes about what worked and didn't work, and include a link to the spec files, SRPMs, and RPMs (you can host the files on your Matrix or Zenit account).