From Fedora Project Wiki

Support Noarch Sub Packages in Fedora

Summary

Since some months RPM supports sub packages being noarch. Right now the Fedora infrastructure does not support this feature. This feature will provide the technical abilities to use noarch sub packages and also provide help to use them within packages all over the distribution.

Owner

  • Name: ffesti (Florian Festi)

Current status

  • Targeted release: Fedora 11
  • Last updated: --Ffesti 12:46, 8 January 2009 (UTC)
  • Percentage of completion: 20%

Detailed Description

There are several steps needed:

  • Support in rpm (100%)
  • Support in koji (0%)
  • Support in other parts of the infrastructure (unknown)
  • Support in test/verification tools (unknown)
    • rpmlint (?)
    • ... (?)
  • Get a list of possible candidates (sub packages) (80%)
  • Write best practise documentation (0%)
  • Get packaging policy adjusted (if needed) (0%)
  • Get the packages changed

Benefit to Fedora

Noarch packages have several benefits over arch dependent packages:

  • They can be shared between different architectures and thus use up less disk space and bandwidth on both the Fedora infrastructure and our mirrors
  • They avoid double installation of data for multilib packages.
  • They tell the user that the content of the package is arch independent.

By increasing the use of noarch packages we also increase the effect of these benefits.

Scope

A small statistic on Fedora 10 x86_64 to give an idea how many packages/files/bytes could be affected:

The files are split into 3 groups:

  1. binary: files rpm knows that they are arch dependent
  2. libdir: files that are not binaries but reside in (/usr)/lib(64)
  3. noarch: everything else

So libdir files should be noarch in most cases. Sizes are (uncompressed) bytes in files and though do not directly represent size in within packages.

14303 packages (41 GB in 1.9 M files)
   42 k binary files (8.4 GB)
  279 k libdir files (6.9 GB)
  1.6 M noarch files (26 GB)

8347 x86_64 packages (24 GB in 1.0 M files)
   31 k binary files (6.4 GB)
  174 k libdir files (5.8 GB)
  812 k noarch files (12 GB)
2956 i386 packages (5.0 GB in 263 k files)
   10 k binary files (2.0 GB)
   32 k libdir files (652 MB)
  220 k noarch files (2.4 GB)
2998 noarch packages (12 GB in 697 k files)
    86  binary files (1.2 MB)
   72 k libdir files (563 MB)
  625 k noarch files (11 GB)
2 i686 packages (16 MB in 428  files)
   294  binary files (15 MB)
    40  libdir files (95 kB)
    94  noarch files (1.2 MB)

788 packages (3.7 GB in 266 k files) contain only noarch (no libdir) files but are not noarch.

Test Plan

  1. Build one noarch subpackge and make sure it makes it into the distribution

User Experience

  • Slightly improved mirrors due to less transfer size
  • Only packages containing binaries with be arch dependent

Dependencies

  • None (all needed steps included in this Feature)

Contingency Plan

  • Move target to Fedora 12
  • As soon as the technical problems have been fixed moving more sub packages to noarch can be a continuing process.

Documentation

TODO: link to rpm docs describing noarch subpackages

Release Notes

TODO