From Fedora Project Wiki

(40 intermediate revisions by 13 users not shown)
Line 1: Line 1:
If you maintain an application which makes sense for a user to select, check out the
== How comps is used ==
comps module and make sure that your package is listed in a reasonable
group in the comps-f''n''.xml.in files (''n'' = number of release; note the files for Fedora Extras ≤ 6 are named comps-fe''n''.xml.in).  If it's not, please add it
using the following as a template if your package were named "foo":


<packagereq type="optional">foo</packagereq>
=== Installation ===
 
comps is used by the installer during software selection. At the installer
software selection dialog, the user can choose between a variety of
Environments on the left, and Options to those environments on the right.
 
Each environment consists of a list of groups, and a list of groups that are
options for that environment. The list of available options is supplemented
by any groups that are marked as 'uservisible' in the comps file.
 
=== Running System ===
 
In yum, groups are used by <code>yum groupinstall</code> and <code>yum groupremove</code> commands, and can be queried with <code>yum grouplist</code> command.
 
=== Tree, Release, and Image Composition ===
 
The kickstart files in [http://git.fedorahosted.org/git/?p=spin-kickstarts.git spin-kickstarts] use the group definitions from comps to compose
images and release trees.
 
Environment definitions should not be used in a kickstart, if you wish to use the environment of "Minimal Install" it should be the list of package groups that comprise the enviornment instead as such:
@standard
@guest-agents
 
This is found in the comps.xml under the environment you wish to use.
 
== When to Edit comps ==
 
* If your app should be part of one of the installation environments, or part of an option for one of them, it should be included
* If you're creating a new option for an installation environment
* Libraries should not be included - they will be pulled in via dependencies
* Most text-mode utilities don't really fit in unless they have a pretty large established user-base.


* Make sure to preserve the alphabetical order in each group.
If you have questions as to whether it makes sense or not, feel free to post to the development list.
* Make sure to run xmllint on the result to check you didn't make a mistake in the XML syntax.


You can use the provided xslt filter to sort, indent and check the syntax of your comps file in one run:
Some guidelines on specific groups in comps follows.


<pre>
=== New groups ===
$ xsltproc --novalid -o sorted-file comps-cleanup.xsl original-file
</pre>


The filter will warn you if it removes redundant information or if something needs to be checked by a human.
Please consult {{fplist|devel}} before adding new groups.


If you think there needs to be a new group, please post on fedora-devel-list.
New user-visible group names and descriptions are '''translatable strings'''. Do not add new groups, or change their descriptions, during a [[L10N/Freezes| string freeze]]. Please check the release schedule for these dates.


=== [[SIGs/Minimal_Core | Core ]] ===


== Some background ==
Core is not visible, so adding 'default' or 'optional' packages to it isn't needed. Boot loaders are listed as 'default' in the group so that they're pulled in by compose tools.


There are three levels of packages: optional, default, and required
Core is installed on every installation, so adding packages to it is discouraged. Please run changes by the [[SIGs/Minimal_Core | Minimal Core SIG]].
* <code>optional</code> are not automatic
* <code>default</code> are, but can be unchecked in a gui tool
* <code>required</code> are always brought in (if group is selected)


Usually optional is the way, however if you feel that your package deserves a default or required level bring it up for discussion on fedora-devel-list.  Remember that this has effect on whether or not your package winds up on distribution media such as Live images and spins.
=== [[SIGs/Desktop | GNOME Desktop ]] ===


The gnome-desktop group and GNOME environment definition is maintained by the [[SIGs/Desktop | Desktop SIG]]. Please run changes through {{fplist|desktop}}.


== Package selection ==
=== [[SIGs/KDE | KDE Desktop ]] ===


In general, it's going to be
The kde-desktop group and KDE environment definition is maintained by the [[SIGs/KDE | KDE SIG]]. Please run changes by them.
applications which show up in the menus somewhere.  Libraries should
almost *never* be explicitly listed and instead pulled in via
dependencies.  Also, most text-mode utilities don't really fit in unless
they have a pretty large established user-base.  Given that the primary
use is with a GUI, selecting a lot of text-mode things make little
sense. If you have questions as to whether it makes sense or not, feel
free to post to f-e-l.


=== [[:Category:Fonts | Fonts]] ===
=== [[:Category:Fonts | Fonts]] ===
{{CompactHeader|fonts-sig}}
 
The following is part of the [[:Category:Fonts SIG| Fonts SIG]]  [[:Category:Fonts_packaging | packaging rules]].
The following is part of the [[:Category:Fonts SIG| Fonts SIG]]  [[:Category:Fonts_packaging | packaging rules]].


Line 48: Line 64:
{{:Fonts_SIG_signature}}
{{:Fonts_SIG_signature}}


== How it works ==
=== All other groups ===
 
When making changes to the default or mandatory packages, strive for consensus, and consult the development lists as necessary. If you're unsure, you can also file a bug against the comps component in bugzilla.
 
== How to edit comps ==
 
Clone the comps GIT module in Fedora Hosted:
 
<code>git clone ssh://username@git.fedorahosted.org/git/comps.git</code>
 
Replace <code>username</code> with your FAS username. You need to be a member of the packager group to checkout the comps module over ssh.
 
Then, find a reasonable group in the comps-f''n''xml.in file (where ''n'' represents the release number) for
your package. If your package is not listed there, please add it using the following as a template if your package were named "foo":
 
<packagereq type="optional">foo</packagereq>
 
* Make sure to preserve the alphabetical order in each group.
* Make sure to run xmllint on the result to check you didn't make a mistake in the XML syntax.
 
You can use the provided xslt filter to sort, indent and check the syntax of your comps file in one run:
 
<pre>
$ xsltproc --novalid -o sorted-file comps-cleanup.xsl original-file
</pre>
 
The filter will warn you if it removes redundant information or if something needs to be checked by a human.


Checkout the comps CVS module:
Commit your changes (<code>git commit -a</code>). You
can then push your changes to the repository with <code>git push</code>.


<code>cvs -d :ext:<username>@cvs.fedoraproject.org:/cvs/pkgs co comps</code>
Please make sure to run <code>git pull --rebase</code> right before <code>git push</code> to
avoid overwriting other people's changes as much as possible.


then edit the proper <code>comps-f<x>.xml.in</code> file and commit your changes.
=== Anonymous checkouts ===
If you are not a packager and would like to checkout comps, you can do so anonymously over https. You will not be able to push changes to comps using this method:


Please make sure to run <code>cvs update</code> right before <code>cvs commit</code> to
<code>git clone https://git.fedorahosted.org/git/comps.git </code>
avoid overwriting other people's changes as much as possible


== Current status ==
== Current status ==


You can check our current comps status file [http://cvs.fedoraproject.org/viewcvs/comps/ there].
You can check our current comps status file [https://git.fedorahosted.org/git/comps.git in the git web interface].


[[Category:Comps_SIG]]
[[Category:Comps_SIG]][[Category:Package Maintainers]]

Revision as of 16:20, 9 January 2015

How comps is used

Installation

comps is used by the installer during software selection. At the installer software selection dialog, the user can choose between a variety of Environments on the left, and Options to those environments on the right.

Each environment consists of a list of groups, and a list of groups that are options for that environment. The list of available options is supplemented by any groups that are marked as 'uservisible' in the comps file.

Running System

In yum, groups are used by yum groupinstall and yum groupremove commands, and can be queried with yum grouplist command.

Tree, Release, and Image Composition

The kickstart files in spin-kickstarts use the group definitions from comps to compose images and release trees.

Environment definitions should not be used in a kickstart, if you wish to use the environment of "Minimal Install" it should be the list of package groups that comprise the enviornment instead as such: @standard @guest-agents

This is found in the comps.xml under the environment you wish to use.

When to Edit comps

  • If your app should be part of one of the installation environments, or part of an option for one of them, it should be included
  • If you're creating a new option for an installation environment
  • Libraries should not be included - they will be pulled in via dependencies
  • Most text-mode utilities don't really fit in unless they have a pretty large established user-base.

If you have questions as to whether it makes sense or not, feel free to post to the development list.

Some guidelines on specific groups in comps follows.

New groups

Please consult devel before adding new groups.

New user-visible group names and descriptions are translatable strings. Do not add new groups, or change their descriptions, during a string freeze. Please check the release schedule for these dates.

Core

Core is not visible, so adding 'default' or 'optional' packages to it isn't needed. Boot loaders are listed as 'default' in the group so that they're pulled in by compose tools.

Core is installed on every installation, so adding packages to it is discouraged. Please run changes by the Minimal Core SIG.

GNOME Desktop

The gnome-desktop group and GNOME environment definition is maintained by the Desktop SIG. Please run changes through desktop.

KDE Desktop

The kde-desktop group and KDE environment definition is maintained by the KDE SIG. Please run changes by them.

Fonts

The following is part of the Fonts SIG packaging rules.


Fonts for a particular linguistic region used to be bundled in fonts-region packages. Nowadays this practice is frowned upon, fonts package naming reflects upstream naming like in any other Fedora package, and grouping is achieved through comps groups.

  • Font packages in a legacy format (not TTF or OTF) MUST be registered in the legacy-fonts group.
  • Font packages in a non-legacy format (TTF or OTF):
    1. MUST be registered in the fonts group:
      • except when they don't have an active upstream, in which case putting them in legacy-fonts is fine.
    2. SHOULD also be registered in every applicable xxx-support localization group:
      • except groups that only require glyphs in the basic latin range.
      • if a font package adds support for a script previously not supported by Fedora the associated localization groups MUST be created and filed, and the relevant localization teams notified.
    3. SHOULD be declared optional, unless:
      • they add support for a new script, in which case they MUST be declared required in the associated localization groups.
      • they add better support for already supported scripts, in which case, if the localization team in charge of each localization group agrees:
        • they can replace existing fonts as mandatory if this script is not covered by distribution-wide default fonts.
        • they can replace existing fonts as default if this script is covered by distribution-wide default fonts.



Idea.png
Fonts in Fedora
The Fonts SIG takes loving care of Fedora fonts. Please join this special interest group if you are interested in creating, improving, packaging, or just suggesting a font. Any help will be appreciated.

All other groups

When making changes to the default or mandatory packages, strive for consensus, and consult the development lists as necessary. If you're unsure, you can also file a bug against the comps component in bugzilla.

How to edit comps

Clone the comps GIT module in Fedora Hosted:

git clone ssh://username@git.fedorahosted.org/git/comps.git

Replace username with your FAS username. You need to be a member of the packager group to checkout the comps module over ssh.

Then, find a reasonable group in the comps-fnxml.in file (where n represents the release number) for your package. If your package is not listed there, please add it using the following as a template if your package were named "foo":

<packagereq type="optional">foo</packagereq>

  • Make sure to preserve the alphabetical order in each group.
  • Make sure to run xmllint on the result to check you didn't make a mistake in the XML syntax.

You can use the provided xslt filter to sort, indent and check the syntax of your comps file in one run:

$ xsltproc --novalid -o sorted-file comps-cleanup.xsl original-file

The filter will warn you if it removes redundant information or if something needs to be checked by a human.

Commit your changes (git commit -a). You can then push your changes to the repository with git push.

Please make sure to run git pull --rebase right before git push to avoid overwriting other people's changes as much as possible.

Anonymous checkouts

If you are not a packager and would like to checkout comps, you can do so anonymously over https. You will not be able to push changes to comps using this method:

git clone https://git.fedorahosted.org/git/comps.git

Current status

You can check our current comps status file in the git web interface.