openSUSE:Package group guidelines
tagline: From openSUSE
- Build Service cross distribution howto
- Build Service Tips and Tricks
- Build Service Tutorial
- Creating a changes file (RPM)
- Java jpackage-utils
- Java RPM Macros
- Package group guidelines
- Package naming guidelines
- Package security guidelines
- Packaging checks
- Packaging Conventions RPM Macros
- Packaging desktop menu categories
- Packaging Fonts
- Packaging Games
- Packaging Go
- Packaging guidelines change process
- Packaging Haskell
- Packaging init scripts
- Packaging Java
- Packaging Lua
- Packaging Multiple Version guidelines
- Packaging Patches guidelines
- Packaging Perl
- Packaging PHP
- Packaging Python
- Packaging Ruby
- Packaging scriptlet snippets
- Packaging wxWidgets
- Ruby Gem Strategies
- Shared library packaging policy
- Specfile guidelines
- Systemd packaging guidelines
- Packaging guidelines
- Amusements/Games/Strategy/Real Time
- Amusements/Games/Strategy/Turn Based
The group * Amusements/Teaching contains things that are educational. So most of the applications in this group are useful in schools - but not necessarily in universities.
The group * Amusements/Toys contains things that entertain users but are not real games.
The group * Development has been created to help software developers. Normal users should never need to select a package from this group manually. The libraries must be installed to run applications, but they are installed automatically due to dependencies. The group * Development/Languages is intended for tools that are useful or even necessary for developing in a particular programming language. This is the right place for compilers, interpreters, and programming language–dependent tools.
- Development/Languages/C and C++
The group * Development/Libraries is intended for packages that allow developing with a library. They are primarily sorted by programming language. However, there are also special groups for KDE, GNOME, and YaST libraries. Here, developers should find all available libraries that can be used in more projects. This means that specialized libraries are usually included in one package together with the application. Such packages are then in the group * Productivity. Other common libraries must be separated from the application. The * -devel subpackage is then in the group * Development/Libraries. The subpackage providing files necessary to run applications is in the group * System/Libraries. Finally, a potential * -doc subpackage is in the group * Documentation. If all files (necessary at runtime, for development, and documentation) are included in one package, it must be placed in * Development/Libraries so it can be found by developers.
- Development/Libraries/C and C++
The group * Development/Sources is intended for binary packages containing sources. It is the right place for the packages with kernel sources and kernel module sources.
The group * Development/Tools contains tools useful for developing that are not connected to a particular programming language.
- Development/Tools/Doc Generators
- Development/Tools/GUI Builders
- Development/Tools/Version Control
The group * Documentation is intended for all packages with documentation that is put in an extra package.
The group * Hardware contains tools supporting a special hardware.
The group * Metapackages contains packages with should normally not end on any installation source. They contain files which should end on the media himself like README.txt, License files, documentation or DOS utilities.
If you install such a package, you'll find a new directory /CD1 in your rootdirectory, containing the files which should end on the first installation media or the installation source. The package can install additional files in /usr/share/<packagename>. If the package contains multiple themes, they go to /usr/share/<packagename>/themes/<name> for example.
The group * Multimedia came in from jpackage.
- Multimedia/Graphics/Vector Editors
The group * Productivity is huge and is intended for the packages most important to the average user: the applications used to produce something. In fact, the packages from almost all other groups make the environment (* System) or provide a functionality (* Development/Libraries, * System/Libraries) needed by applications from the group Productivity.
The group * Productivity/File utilities is intended for tools for basic operations with files. These are packages like * file and * findutils and file managers like * mc, * nautilus, or * ytree.
- Productivity/File utilities
- Productivity/Graphics/3D Editors
- Productivity/Graphics/Bitmap Editors
- Productivity/Graphics/Vector Editors
The group * Productivity/Hamradio is intended for Linux ham radio (Amateur radio) applications and related utilities.
- Productivity/Multimedia/Sound/Editors and Convertors
- Productivity/Multimedia/Video/Editors and Convertors
The group * Productivity/Networking is intended for packages providing various networking services and related tools.
- Productivity/Networking/Instant Messenger
- Productivity/Office/Word Processor
The group * Productivity/Publishing is intended for packages used to publish information. The applications from this group usually need more experienced users than similar applications from the group * Productivity/Office.
The group * Productivity/Security is intended for security related stuff like virus scanners, safe password generators, utilities for encrypting, decrypting, signing data, and permission settings (package * permission).
The packages in the group * System make the base of the operating system. They are important for the system administrator and the normal user should not need to know much about them. They only make an environment in which to run applications from other groups, like * Productivity or * Amusement.
The group * System/Base is intended for the base system tools. It includes packages like * eject, * insserv, * man, * sed, * sudo, * tar, and * ulimit.
The group * System/Benchmark is intended for packages providing benchmarks and various test suites.
The group * System/Boot is intended for tools related to system booting. It contains packages with boot loaders, image builders, boot splash themes, memory test, etc.
The group * System/Console is intended for console-specific packages like * fbset, * gpm, * kbd and * vlock.
The group * System/Daemons is intended for the base system daemons. These are packages like * at, * autofs, * nscd, * powersave, or * syslogd.
The group * System/Emulators is intended for emulators of various operating systems. Packages like * dosemu, * wine, * wmware or * atari800 are found here.
The group * System/Fhs is intended for packages creating the base directory structure according to FHS (File Hierarchy System). These are packages like * filesystem, * aaa_base, or * devs.
The group * System/Filesystems is intended for file system–related tools. These are packages like * quota, * dosfstools, * reiserfs, * reaidtools, and * xfstools.
The group * System/GUI contains window managers and related tools. Some window managers have their own specific variants or ports of applications, but this group is not for applications or libraries. Such packages must be put in groups like * Productivity, * Development, or * Amusements.
The group * System/I18n is intended for packages providing special support for the Chinese, Japanese, and Korean localizations.
The group * System/Kernel contains kernel binaries and kernel-related tools like module-init-tools. The packages with kernel sources and kernel modules sources are in the group Development/Sources.
The group * System/Libraries is intended for packages providing the part of libraries necessary to run applications. All packages in this group should be installed automatically because of a dependency. Neither users nor developers should need to search for packages in this group. This means that these must not provide any application. Such packages must be in the group * Productivity. This also means that the libraries in this group must have a corresponding * -devel subpackage in the group * Development/Libraries, so that the developers are able to find the library there. Otherwise, the one package, including both the runtime and development related parts, must be in the group * Development/Libraries.
The group * System/Localization contains language specific subpackages which are splittet out of a main package. With openSUSE > 10.3 this is done automatically using the macro %lang_package in the specfile.
The group * System/Management is intended for various GUI, text, or web-based tools used to manage the system. However, the YaST modules have their own group * System/YaST.
The group * System/Monitoring is intended for tools monitoring the system directly or by analyzing logs.
The group * System/Packages is intended for packages related to package management, like alien, deb, or rpm.
The group * System/Sound Daemons is intended for sound daemons despite they can be primary developed for a special usage. For example, there are sound daemons for GNOME (* esound) or WindowMaker ( * wsndsrv).
- System/Sound Daemons
The group * System/X11 is intended for the base graphical system. Window managers belong in * System/GUI.
The * System/YaST group is intended for all YaST-related packages. All YaST modules especially should be put in this group.