%new_package is a wrapper around Name: and %package that abstracts their quirks from packagers and macros. Its behavior is controled by the %{source_name} global variable: – when %{source_name} is not set, the first call to %new_package will create a Name: block and set %{source_name} to the %{name} of this block. – when %{source_name} is set: – a call to %new_package with no arguments creates: Name: %{source_name} – otherwise, a call to %new_package creates the corresponding: %package… line, unless the resulting %{name} matches %{source_name}. In that case it creates: Name: %{source_name} as before. Arguments: – -n and %1 like %package – -v to print the variables %new_package sets directly. The intended use-case it to: – simplify coordination between macros that create subpackages, – make it easy for packagers to declare which of the macro-created packages owns the SRPM, and – make %{source_name} available within spec files and not just as a dnf synthetic variable. Unlike %{name} %{source_name} matches the SRPM name regardless of its location within the spec file.
…
…
Description
Languages
RPM Spec
43.5%
Shell
34.1%
Lua
20.4%
Perl
2%