Knowledge Base:Missing keywords and keyword requests

From Gentoo Wiki
Jump to:navigation Jump to:search

This article is about packages that have not been marked as available for installation on a specific architecture, and how to make them available. On architectures such as amd64, this usually isn't required.

Tip
See accepting a keyword for a single package for how to install packages from the testing branch.

Synopsis

Some software packages have a missing keyword for a specific architecture.

Here is an example of trying to emerge a package with no ~arm keyword.

root #emerge --ask media-libs/liblo

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! All ebuilds that could satisfy "=media-libs/liblo-0.31" have been masked.
!!! One of the following masked packages is required to complete your request:
- media-libs/liblo-0.31::gentoo (masked by: missing keyword)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

Environment

Gentoo installations on architectures with less keyword coverage, new architectures, embedded systems or specialized applications. While amd64 is probably the most common architecture with the most keywords added, it's possible to install Gentoo by stage3 on at least 10 architectures, not including prefix or variants with other C libraries than glibc. See a list of supported architectures and a directory of experimental downloads. A Raspberry Pi is an example; it's perfectly possible to have a desktop environment or run server processes on this type of machine as with other architectures, even though the ebuild in Gentoo may not have a keyword at all.

Analysis

Lots of packages may compile on an architecture even if there is no ~arch keyword added to them, finding missing keywords and filing keyword requests on the bug tracker can help the Gentoo project extend support for different architectures. A package with an ~arch keyword means that the package has had some testing on that architecture, and would hopefully progress to being marked with a stable keyword (without the tilde prefix) once tested.

Note
If the output of emerge contains "(masked by: ~arm keyword)" or your arch keyword prefixed with a tilde ~ then there is already a keyword added for the arch for that package. The package could then be a candidate to request stabilization instead, for the keyword to be changed and for the package to be marked stable.

Resolution

To test packages with missing keywords for an architecture, add them to /etc/portage/package.accept_keywords appending ** (a space and two asterisks) to the category/package name and (optionally) the version required. Then emerge the package again.

root #mkdir -p /etc/portage/package.accept_keywords/
root #$EDITOR /etc/portage/package.accept_keywords/liblo
FILE /etc/portage/package.accept_keywords/liblo
# Recommended.
# Get the latest version but not any live ebuild (git/svn etc)
<media-libs/liblo-9999 **

# Some other examples follow.

# To accept the latest version.
# This will pull in live git/svn ebuild if there is one which may not
# be what was intended. Live ebuilds also need entries for package.unmask.
media-libs/liblo **

# Or like this, pinning a particular version.
=media-libs/liblo-0.31 **
root #emerge --ask media-libs/liblo
Note
It's a good idea to have recently synchronized the Gentoo portage repository so the keywords are current. The Gentoo Cheat Sheet is a handy reference document for the different methods to sync.

Lots more packages with missing keywords would need to be added in the same manner to the /etc/portage/package.accept_keywords list if the package has a lot of dependencies. It's sometimes useful to keep these grouped in a file for that particular package or feature, if there are lots of them.

In some cases using the autounmask functions of portage to add the entries can make this process easier.

Fixing it for everybody

If the package compiles successfully and tests of the package succeed, open a bug to request keywords for the package(s).

* Product - Gentoo Linux
* Component - Keywording
* Hardware - Your architecture, for example arm or arm64.
* Summary - "category/package ~myarch keyword request"
* Bugzilla Keywords - do not add CC-ARCHES
* Description - "I use this package on myarch please add ~myarch keyword"

Thanks to Jannik2099 on IRC for a magic link to open a template for arm64 keyword requests, here are some extra links for other arches. Click the link to go to a template for a keyword request on Gentoo bugzilla for each architecture.

Don't request keywording in some cases

In some cases, e.g. app-office/libreoffice, there should be no keywording request.[1] A hint may be if a version has no keyword at all:

user $equery m libreoffice
* app-office/libreoffice [gentoo]
Maintainer:  office@gentoo.org (Gentoo Office project)
Upstream:    None specified
Homepage:    https://www.libreoffice.org
Location:    /var/db/repos/gentoo/app-office/libreoffice
Keywords:    7.2.5.2-r1:0: amd64 arm64 x86 ~amd64-linux ~arm ~ppc64
Keywords:    7.2.6.1:0:
Keywords:    7.2.9999:0:
Keywords:    7.3.1.1-r1:0:
Keywords:    7.3.9999:0:
Keywords:    9999:0:
License:     || ( LGPL-3 MPL-1.1 )

See also

External resources

Acknowledgments

  • Jannik2099
  • sam
  • dmb


Much of this page was written from taking notes from the chat on IRC in gentoo-arm. Thanks.

Sources