summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '_sources/use-flags.rst.txt')
-rw-r--r--_sources/use-flags.rst.txt86
1 files changed, 86 insertions, 0 deletions
diff --git a/_sources/use-flags.rst.txt b/_sources/use-flags.rst.txt
new file mode 100644
index 0000000..c6a8b4a
--- /dev/null
+++ b/_sources/use-flags.rst.txt
@@ -0,0 +1,86 @@
+USE flags
+=========
+
+.. index::
+ single: USE flags; gtk
+ pair: USE flags; Qt
+ single: USE flags; versioned
+
+Versioned USE flags
+-------------------
+:Source: QA
+:Reference: https://wiki.gentoo.org/index.php?title=Project:Quality_Assurance/Policies&oldid=109991#Versioned_USE_flags
+:Reported: no
+
+If a need arises to create new USE flags responsible for switching
+between multiple versions of a specific dependency, it is recommended
+that flat, explicitly versioned flags are used (e.g. ``qt4``, ``qt5``).
+The hierarchical form used e.g. by GTK+ (``gtk`` meaning 2-or-3,
+then optionally ``gtk2`` or ``gtk3`` to switch between both)
+is discouraged.
+
+Any future set of USE flags introduced in this way needs to be discussed
+with the QA team before introduction.
+
+.. TODO:: rationale
+
+.. Note::
+
+ This policy has historically been defined as an generalization
+ of the QA policy on gtk/gtk2/gtk3 flags. The latter policy has been
+ removed since.
+
+
+.. index::
+ single: USE flags; gui
+ single: gtk; gui flag
+ single: Qt; gui flag
+
+USE=gui flag
+------------
+:Source: QA
+:Reference: https://archives.gentoo.org/gentoo-dev/message/cf3f5a59ac918335766632bd02438722
+:Reported: no
+
+Whenever a package offers an optional GUI support, the ``gui`` flag must
+be used to control that support rather than historically used ``X``
+or toolkit flags. Toolkit flags can still be used to choose between
+multiple available GUIs, or when the toolkit is used in a more
+specialized way than for GUI (e.g. to control installing widgets).
+
+*Rationale*: the historical use of toolkit flags to control building
+GUIs made it very hard for users to express the simple wish of 'I want
+*any* GUI'. Installing various packages made it necessary to either
+adjust flags per package (manually discovering which flags are necessary
+to obtain the GUI) or enabling multiple toolkits globally which
+afterwards caused issues with packages supporting a choice between
+multiple GUIs.
+
+
+.. index:: USE flags; underscore
+
+Underscores in USE flag names
+-----------------------------
+:Source: Council
+:Reference: https://projects.gentoo.org/council/meeting-logs/20191013-summary.txt
+:Reported: by pkgcheck
+
+Underscores are reserved for USE_EXPAND flags, and must not be used
+within names of newly-defined regular flags. Existing uses are
+considered technically valid, and phasing them out has low priority.
+
+Flags that attempt to resemble USE_EXPAND should be either converted
+into proper (global) USE_EXPAND, or made into shorter (unprefixed)
+local flags. In other flags, replacing underscore with hyphen is
+recommended.
+
+*Rationale*: a few packages in Gentoo attempted to imitate USE_EXPAND
+via local USE flags. This has no clear advantage, may be confusing
+to end users who assume that they will work like USE_EXPAND
+and in the end unnecessarily lengthens flag names or even causes
+unnecessary mismatches between global flags and local flags.
+
+Extending the rule to all flags containing underscores aims to make
+distinguishing USE_EXPAND and regular flags easier. It also improves
+consistency between flag names that historically used hyphens
+or underscores depending on developer's personal preference.