.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "DNF5-CHANGES-FROM-DNF4" "7" "Apr 18, 2025" "" "dnf5"
.SH NAME
dnf5-changes-from-dnf4 \- Changes from the DNF4
.sp
This chapter describes the differences between \X'tty: link https://github.com/rpm-software-management/dnf5'\fI\%DNF5\fP\X'tty: link' and \X'tty: link https://github.com/rpm-software-management/dnf'\fI\%DNF\fP\X'tty: link'\&.
.SH CHANGES ON THE CLI
.SS Options
.SS Global options scoping
.sp
Options that cannot be applied to all commands or may be applicable but have no effect are removed from general options and implemented only for related commands.
.sp
Examples: \fB\-\-best\fP, \fB\-\-no\-best\fP are only relevant to several transaction commands.
.SS Options renaming
.sp
Renaming boolean options to the following formats:
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.IP \(bu 2
\fB\-\-\fP and \fB\-\-no\- \fP
.IP \(bu 2
\fB\-\-enable\- \fP and \fB\-\-disable\- \fP
.UNINDENT
.UNINDENT
.UNINDENT
.sp
The options with original names are retained for now as compatibility aliases.
.sp
Examples: \fB\-\-best\fP and \fB\-\-no\-best\fP\&.
.SS Strict behavior
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.IP \(bu 2
Options \fB\-\-disable\-repo=REPO_ID\fP and \fB\-\-setopt=[REPO_ID.]OPTION=VALUE\fP now consistently result in an error when provided with an invalid \fBREPO_ID\fP\&.
.IP \(bu 2
The behavior is now aligned with the \fB\-\-repo=REPO_ID\fP and \fB\-\-enable\-repo=REPO_ID\fP\&.
.IP \(bu 2
The \fBstrict\fP configuration option is no longer considered, see the \fI\%strict option deprecation\fP for more information.
.UNINDENT
.UNINDENT
.UNINDENT
.SS No value separator after short options
.sp
Short options do not have a separator between the option name and the option
value. E.g. \fBdnf \-x package\fP is equivalent to \fBdnf \-\-exclude package\fP and
\fBdnf \-\-exclude=package\fP long forms. But \fBdnf \-x=package\fP means
\fBdnf \-\-exclude =package\fP\&.
.SS Changes to individual options
.INDENT 0.0
.TP
.B \fB\-4/\-6\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fBip_resolve\fP configuration option is available.
.UNINDENT
.TP
.B \fB\-\-color\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fBcolor\fP configuration option is available.
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \fB\-\-disableexcludes\fP and \fB\-\-disableexcludepkgs\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fBdisable_excludes\fP configuration option is available.
.UNINDENT
.TP
.B \fB\-\-disable, \-\-enable\fP
.INDENT 7.0
.IP \(bu 2
Dropped along with the previously existing alternatives \fB\-\-set\-disabled\fP and \fB\-\-set\-enabled\fP\&.
.IP \(bu 2
Currently, this can only be achieved through the \fI\%config\-manager\fP plugin.
.INDENT 2.0
.IP \(bu 2
For example, to disable the \fBfedora\fP repository: \fBdnf config\-manager setopt fedora.enabled=0\fP\&.
.UNINDENT
.UNINDENT
.TP
.B \fB\-\-downloaddir\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fB\-\-destdir\fP is used for the \fBdownload\fP command.
.IP \(bu 2
When downloading packages using the \fBsystem\-upgrade\fP or \fBoffline\fP command, the target path construction now utilizes the configured \fBinstallroot\fP and \fBcachedir\fP options.
.UNINDENT
.TP
.B \fB\-e, \-\-errorlevel\fP
.INDENT 7.0
.IP \(bu 2
Both the \fB\-\-errorlevel\fP option and \fBerrorlevel\fP configuration option are dropped.
.UNINDENT
.TP
.B \fB\-\-help\-cmd\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fB\-h\fP or \fB\-\-help\fP options are available.
.UNINDENT
.TP
.B \fB\-\-installroot\fP
.INDENT 7.0
.IP \(bu 2
New behavior introduced to define from which place the configuration and variables are loaded.
.IP \(bu 2
See the \fI\%installroot documentation\fP for more information.
.UNINDENT
.TP
.B \fB\-\-noautoremove\fP
.INDENT 7.0
.IP \(bu 2
Applicable only for the \fBremove\fP command now. As a workaround for other commands, you can use \fB\-\-setopt=clean_requirements_on_remove=False\fP\&.
.UNINDENT
.TP
.B \fB\-\-obsoletes\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fBobsoletes\fP configuration option is available.
.UNINDENT
.TP
.B \fB\-R, \-\-randomwait\fP
.INDENT 7.0
.IP \(bu 2
Dropped.
.UNINDENT
.TP
.B \fB\-\-rpmverbosity\fP
.INDENT 7.0
.IP \(bu 2
Dropped. Now only the \fBrpmverbosity\fP configuration option is available.
.UNINDENT
.TP
.B \fB\-\-sec\-severity\fP
.INDENT 7.0
.IP \(bu 2
Renamed to \fB\-\-advisory\-severities\fP\&.
.UNINDENT
.TP
.B \fB\-v, \-\-verbose\fP
.INDENT 7.0
.IP \(bu 2
Not implemented at present. May be added for specific commands in the future.
.UNINDENT
.TP
.B \fB\-\-version\fP
.INDENT 7.0
.IP \(bu 2
Behavior is different now. See the \fI\%main man page\fP for more details.
.UNINDENT
.UNINDENT
.SS Newly introduced options
.INDENT 0.0
.TP
.B \fB\-\-allow\-downgrade\fP
.INDENT 7.0
.IP \(bu 2
Along with \fB\-\-no\-allow\-downgrade\fP, these options enable/disable the downgrade of dependencies when resolving transactions.
.IP \(bu 2
New respective configuration options have also been created.
.IP \(bu 2
Applicable to \fBinstall\fP, \fBupgrade\fP, and related commands.
.UNINDENT
.TP
.B \fB\-\-dump\-main\-config\fP
.INDENT 7.0
.IP \(bu 2
Along with related \fB\-\-dump\-repo\-config=REPO_ID\fP, these are new options to print configuration values on the standard output.
.UNINDENT
.TP
.B \fB\-\-offline\fP
.INDENT 7.0
.IP \(bu 2
Store the transaction to be performed offline.
.IP \(bu 2
Applicable to all relevant transactional commands.
.IP \(bu 2
See the \fI\%Offline command\fP for more information.
.UNINDENT
.TP
.B \fB\-\-show\-new\-leaves\fP
.INDENT 7.0
.IP \(bu 2
Show newly installed leaf packages and packages that became leaves after a transaction.
.UNINDENT
.TP
.B \fB\-\-skip\-unavailable\fP
.INDENT 7.0
.IP \(bu 2
Allow skipping packages that are not available in repositories.
.IP \(bu 2
Not to be confused with the \fI\%skip_if_unavailable\fP configuration option.
.IP \(bu 2
Applicable to \fBinstall\fP, \fBupgrade\fP, and related commands.
.IP \(bu 2
See also the \fI\%strict option deprecation\fP for more information.
.UNINDENT
.TP
.B \fB\-\-use\-host\-config\fP
.INDENT 7.0
.IP \(bu 2
See the \fI\%main man page\fP for more details.
.UNINDENT
.UNINDENT
.SS Commands
.SS Optional subcommands
.sp
Commands cannot have optional subcommands. Optional subcommands were ambiguous,
making it unclear whether the input was intended as a command argument or a subcommand. Subcommands are now mandatory if present.
.INDENT 0.0
.TP
.B Examples:
.INDENT 7.0
.IP \(bu 2
Before: \fBdnf history \fP Now: \fBdnf history info \fP
.IP \(bu 2
Before: \fBdnf updateinfo\fP Now: \fBdnf updateinfo summary\fP
.UNINDENT
.UNINDENT
.SS Changes to individual commands
.INDENT 0.0
.TP
.B \fBalias\fP
.INDENT 7.0
.IP \(bu 2
Dropped. The command has been replaced by a different functionality.
.IP \(bu 2
See the \fI\%Aliases for command line arguments\fP for more information.
.UNINDENT
.TP
.B \fBautomatic\fP
.INDENT 7.0
.IP \(bu 2
Now a DNF5 plugin.
.IP \(bu 2
The specific systemd units, \fBdnf\-automatic\-download\fP, \fBdnf\-automatic\-install\fP, and \fBdnf\-automatic\-notifyonly\fP, have been dropped. Only one \fBdnf5\-automatic\fP timer is shipped.
.IP \(bu 2
The \fBemitters.send_error_messages\fP config option has been dropped. DNF5 automatic always informs the user about failed operations using configured emitters.
.IP \(bu 2
See the \fI\%Automatic command\fP for more information.
.UNINDENT
.TP
.B \fBautoremove\fP
.INDENT 7.0
.IP \(bu 2
Dropped the \fB\fP positional argument since the use case is sufficiently covered by the \fBremove\fP command.
.IP \(bu 2
Specific variants of the command, \fBautoremove\-n\fP, \fBautoremove\-na\fP, and \fBautoremove\-nevra\fP, are not supported anymore.
.UNINDENT
.TP
.B \fBbuilddep\fP
.INDENT 7.0
.IP \(bu 2
The \fB\-\-spec\fP and \fB\-\-srpm\fP options only apply to arguments that follow them. This allows for use cases that combine spec files and source RPMs (e.g., \fBdnf5 builddep \-\-spec pkg1.spec.in \-\-srpm pkg2.src.rpm\fP). However, the previously supported syntax \fBdnf builddep pkg1.spec.in \-\-spec\fP no longer has any effect.
.UNINDENT
.TP
.B \fBconfig\-manager\fP
.INDENT 7.0
.IP \(bu 2
New behavior introduced.
.IP \(bu 2
Parameters are replaced by subcommands.
.INDENT 2.0
.IP \(bu 2
Examples:
.INDENT 2.0
.IP \(bu 2
Before: \fB\-\-add\-repo\fP Now: \fBaddrepo\fP
.IP \(bu 2
Before: \fB\-\-save \-\-setopt\fP Now: \fBsetopt\fP
.UNINDENT
.UNINDENT
.IP \(bu 2
Existing repository files are not modified; drop\-in override files are created instead.
.IP \(bu 2
See the \fI\%config\-manager documentation\fP for more information.
.UNINDENT
.TP
.B \fBdebuginfo\-install\fP
.INDENT 7.0
.IP \(bu 2
Now does not support \fIautoupdate\fP functionality. The permanent enablement of debug repositories can be achieved
using \fIconfig\-manager\fP command.
.UNINDENT
.TP
.B \fBdistro\-sync\fP
.INDENT 7.0
.IP \(bu 2
Now when any argument doesn\(aqt match an installed package, DNF5 fails. The behavior can be modified by the \fB\-\-skip\-unavailable\fP option.
.IP \(bu 2
Dropped \fBdistrosync\fP and \fBdistribution\-synchronization\fP aliases.
.UNINDENT
.TP
.B \fBdowngrade\fP
.INDENT 7.0
.IP \(bu 2
Now when any argument doesn\(aqt match an installed package, DNF5 fails. The behavior can be modified by the \fB\-\-skip\-unavailable\fP option.
.UNINDENT
.TP
.B \fBdownload\fP
.INDENT 7.0
.IP \(bu 2
Option \fB\-\-source\fP was renamed to \fB\-\-srpm\fP\&.
.IP \(bu 2
Dropped \fB\-\-downloaddir\fP argument, only \fB\-\-destdir\fP is supported now.
.UNINDENT
.TP
.B \fBgroup\fP
.INDENT 7.0
.IP \(bu 2
New option \fB\-\-contains\-pkgs\fP to filter only groups containing specific packages.
.IP \(bu 2
Dropped \fB\-\-ids\fP argument as group ids are always in the output now.
.IP \(bu 2
Dropped \fBgroup mark install\fP and \fBgroup mark remove\fP subcommands in favor of the new \fB\-\-no\-packages\fP option for the \fBinstall\fP and \fBremove\fP commands.
.INDENT 2.0
.IP \(bu 2
E.g. to mark a group as installed without touching any packages, \fBdnf5 group install \-\-no\-packages \fP command can be used.
.UNINDENT
.IP \(bu 2
Dropped \fBgroupinstall\fP alias. It is replaced by \fBdnf group install\fP\&.
.IP \(bu 2
Dropped \fBgroupinfo\fP alias. It is replaced by \fBdnf group info\fP\&.
.IP \(bu 2
Dropped \fBgrouplist\fP alias. It is replaced by \fBdnf group list\fP\&.
.IP \(bu 2
Dropped \fBgrouperase\fP alias. It is replaced by \fBdnf group remove\fP\&.
.IP \(bu 2
Dropped \fBgroupremove\fP alias. It is replaced by \fBdnf group remove\fP\&.
.IP \(bu 2
Dropped \fBgroupupdate\fP alias. It is replaced by \fBdnf group upgrade\fP\&.
.IP \(bu 2
Dropped \fBgroups\fP alias. It is replaced by \fBdnf group\fP\&.
.UNINDENT
.TP
.B \fBhelp\fP
.INDENT 7.0
.IP \(bu 2
Dropped. The functionality is replaced by the \fB\-\-help\fP option.
.UNINDENT
.TP
.B \fBhistory\fP
.INDENT 7.0
.IP \(bu 2
Subcommands are now mandatory: \fBdnf history\fP has to be now \fBdnf5 history list\fP\&.
.IP \(bu 2
The \fBhistory\fP commands now only accept transaction ID arguments; to filter by packages, use the \fB\-\-contains\-pkgs=PACKAGE_NAME,...\fP option, available for \fBlist\fP and \fBinfo\fP\&.
.IP \(bu 2
\fBundo\fP subcommand now accepts \fB\-\-ignore\-extras\fP and \fB\-\-ignore\-installed\fP like original \fBhistory replay\fP command.
.IP \(bu 2
\fBuserinstalled\fP subcommand was dropped. It is replaced by \fBdnf repoquery \-\-userinstalled\fP\&.
.IP \(bu 2
\fBstore\fP subcommand now creates a directory with transaction JSON file instead of a single transaction JSON file directly.
.IP \(bu 2
\fBstore\fP subcommand\(aqs \fB\-\-output\fP option now accepts a directory path instead of a file. The default is \fB\&./transaction\fP\&.
.IP \(bu 2
\fBreplay\fP subcommand was moved to a standalone \fBreplay\fP command, that now accepts a path to a directory instead of a file path.
The directory can be created with \fB\-\-store\fP option and in addition to the JSON transaction, it can contain packages, group and environments used in the transaction.
.IP \(bu 2
\fBinfo\fP subcommand now prints a separate section for each selected transaction. It no longer merges all selected transactions into a single transaction section.
.UNINDENT
.TP
.B \fBinfo\fP
.INDENT 7.0
.IP \(bu 2
Dropped \fB\-\-all\fP option since this behavior is the default one.
.IP \(bu 2
Dropped \fB\-\-updates\fP option, only \fB\-\-upgrades\fP is available now.
.UNINDENT
.TP
.B \fBinstall\fP
.INDENT 7.0
.IP \(bu 2
Dropped \fBinstall\-n\fP, \fBinstall\-na\fP and \fBinstall\-nevra\fP command variants.
.UNINDENT
.TP
.B \fBlist\fP
.INDENT 7.0
.IP \(bu 2
Dropped \fB\-\-all\fP option since this behavior is the default one.
.IP \(bu 2
Changed the behavior of the \fB\-\-available\fP option.
.INDENT 2.0
.IP \(bu 2
In DNF4, only packages not installed or with higher versions were listed. This behavior remains unchanged when the option is not used, reducing duplications in the \(dqInstalled Packages\(dq section.
.IP \(bu 2
When using the \fB\-\-available\fP option, DNF5 considers all versions available in enabled repositories, irrespective of the installed version.
.UNINDENT
.IP \(bu 2
For installed packages print from which repository was the package installed and if the information is not available print \fB\fP\&. This differs to DNF4 which if the information wasn\(aqt available printed \fB@System\fP\&.
.UNINDENT
.TP
.B \fBmakecache\fP
.INDENT 7.0
.IP \(bu 2
Metadata is now stored in different directories, see the \fBcachedir\fP configuration option \fI\%changes\fP for more details.
.IP \(bu 2
The \fB\-\-timer\fP option has been dropped in favor of the systemd \fBOnUnitInactiveSec\fP setting in \fBdnf5\-makecache.timer\fP and the \fBConditionACPower\fP setting in \fBdnf5\-makecache.service\fP\&.
.UNINDENT
.TP
.B \fBmark\fP
.INDENT 7.0
.IP \(bu 2
Renaming subcommands to be more intuitive: \fBinstall\fP \-> \fBuser\fP, \fBremove\fP \-> \fBdependency\fP\&.
.IP \(bu 2
New \fBweak\fP subcommand to mark a package as a weak dependency.
.IP \(bu 2
Now when any argument doesn\(aqt match an installed package, DNF5 fails. The behavior can be modified by the \fB\-\-skip\-unavailable\fP option.
.UNINDENT
.TP
.B \fBmodule\fP
.INDENT 7.0
.IP \(bu 2
Dropped \fB\-\-all\fP option since this behavior is the default one.
.UNINDENT
.TP
.B \fBneeds\-restarting\fP
.INDENT 7.0
.IP \(bu 2
Command no longer scans for open files to determine outdated files still in use. The default behavior now aligns with DNF 4\(aqs \fB\-\-reboothint\fP, suggesting a system reboot depending on updated packages since the last boot.
.IP \(bu 2
Reboot recommendations are now triggered if any package with a \fBreboot_suggested\fP advisory has been installed or updated.
.IP \(bu 2
The \fB\-s, \-\-services\fP option no longer scans for open files. Instead, restarting a service is recommended if any dependency of the service\-providing package or the package itself has been updated since the service started.
.IP \(bu 2
Dropped \fB\-r, \-\-reboothint\fP option since this behavior is now the default one.
.IP \(bu 2
Dropped \fB\-u, \-\-useronly\fP option.
.UNINDENT
.TP
.B \fBoffline\-distrosync\fP
.INDENT 7.0
.IP \(bu 2
Now it\(aqs an alias of \fBdnf5 distro\-sync \-\-offline\fP\&.
.UNINDENT
.TP
.B \fBoffline\-upgrade\fP
.INDENT 7.0
.IP \(bu 2
Now it\(aqs an alias of \fBdnf5 upgrade \-\-offline\fP\&.
.UNINDENT
.TP
.B \fBremove\fP
.INDENT 7.0
.IP \(bu 2
Command no longer removes packages according to provides, but only based on NEVRA or file provide match.
.IP \(bu 2
Dropped commands \fBremove\-n\fP, \fBremove\-na\fP, \fBremove\-nevra\fP\&.
.IP \(bu 2
Specific variants of the command, \fBremove\-n\fP, \fBremove\-na\fP, and \fBremove\-nevra\fP, are not supported anymore.
.INDENT 2.0
.IP \(bu 2
Dropped also the related aliases, \fBerase\fP, \fBerase\-n\fP, \fBerase\-na\fP and \fBerase\-nevra\fP\&.
.UNINDENT
.UNINDENT
.TP
.B \fBrepoclosure\fP
.INDENT 7.0
.IP \(bu 2
Dropped \fB\-\-pkg\fP option. Positional arguments can now be used to specify packages to check closure for.
.UNINDENT
.TP
.B \fBreposync\fP
.INDENT 7.0
.IP \(bu 2
Dropped \fB\-\-downloadcomps\fP option. Consider using \fB\-\-download\-metadata\fP option which downloads all available repository metadata, not only comps groups.
.UNINDENT
.TP
.B \fBrepolist\fP
.INDENT 7.0
.IP \(bu 2
The \fBrepolist\fP and \fBrepoinfo\fP commands are now subcommands of the \fBrepo\fP command: \fBrepo list\fP and \fBrepo info\fP\&.
.INDENT 2.0
.IP \(bu 2
Original commands still exist as compatibility aliases.
.UNINDENT
.IP \(bu 2
Options \fB\-v\fP and \fB\-\-verbose\fP have been removed. The functionality is replaced by the \fBrepo info\fP command (already in DNF4 as \fBrepoinfo\fP).
.IP \(bu 2
When no repositories are configured, empty output is now provided instead of displaying \(dqNo repositories available\(dq.
.UNINDENT
.TP
.B \fBrepoquery\fP
.INDENT 7.0
.IP \(bu 2
Dropped: \fB\-a/\-\-all\fP, \fB\-\-alldeps\fP, \fB\-\-nevra\fP options. Their behavior is and has been the default for both DNF4 and DNF5, so the options are no longer needed.
.IP \(bu 2
Dropped: \fB\-\-envra\fP, \fB\-\-nvr\fP, \fB\-\-unsatisfied\fP options. They are no longer supported.
.IP \(bu 2
Dropped: \fBrepoquery\-n\fP, \fBrepoquery\-na\fP and \fBrepoquery\-nevra\fP command variants.
.IP \(bu 2
Dropped: \fB\-\-archlist\fP alias for \fB\-\-arch\fP\&.
.IP \(bu 2
Dropped: \fB\-f\fP alias for \fB\-\-file\fP\&. Also, the arguments to \fB\-\-file\fP are separated by commas instead of spaces.
.IP \(bu 2
Moved \fB\-\-groupmember\fP option to the \fBinfo\fP and \fBlist\fP subcommands of the \fBgroup\fP and \fBadvisory\fP commands, renaming it to \fB\-\-contains\-pkgs\fP\&.
.IP \(bu 2
\fB\-\-queryformat, \-\-qf\fP no longer prints an additional newline at the end of each formatted string, bringing it closer to the behavior of \fBrpm \-\-query\fP\&.
.IP \(bu 2
\fB\-\-queryformat\fP no longer supports \fBsize\fP tag because it was printing install size for installed packages and download size for not\-installed packages, which could be confusing.
.IP \(bu 2
Option \fB\-\-source\fP was renamed to \fB\-\-sourcerpm\fP, and it now matches queryformat\(aqs \fBsourcerpm\fP tag.
.IP \(bu 2
Option \fB\-\-resolve\fP was changed to \fB\-\-providers\-of=PACKAGE_ATTRIBUTE\fP\&. It no longer interacts with the formatting options such as \fB\-\-requires\fP, \fB\-\-provides\fP, \fB\-\-suggests\fP, etc. Instead, it takes the PACKAGE_ATTRIBUTE value directly.
.INDENT 2.0
.IP \(bu 2
For example, \fBdnf rq \-\-resolve \-\-requires glibc\fP is now \fBdnf rq \-\-providers\-of=requires glibc\fP\&.
.UNINDENT
.IP \(bu 2
See the \fI\%Repoquery command\fP for more information.
.UNINDENT
.TP
.B \fBsystem\-upgrade\fP
.INDENT 7.0
.IP \(bu 2
Moved from a plugin to a built\-in command.
.UNINDENT
.TP
.B \fBupgrade\fP
.INDENT 7.0
.IP \(bu 2
New option \fB\-\-minimal\fP\&.
.INDENT 2.0
.IP \(bu 2
\fBupgrade\-minimal\fP still exists as a compatibility alias for \fBupgrade \-\-minimal\fP\&.
.UNINDENT
.IP \(bu 2
Now when any argument doesn\(aqt match an installed package, DNF5 fails. The behavior can be modified by the \fB\-\-skip\-unavailable\fP option.
.IP \(bu 2
Dropped \fBupgrade\-to\fP and \fBlocalupdate\fP aliases.
.IP \(bu 2
Dropped \fB\-\-skip\-broken\fP option, as it was already available in DNF4 only for compatibility reasons with YUM, but has no effect.
.INDENT 2.0
.IP \(bu 2
Instead, decisions about package selection and handling dependency issues are based on the \fI\%best\fP or \fI\%no\-best\fP options.
.UNINDENT
.UNINDENT
.TP
.B \fBupdateinfo\fP
.INDENT 7.0
.IP \(bu 2
Renamed the command to \fBadvisory\fP
.INDENT 2.0
.IP \(bu 2
\fBupdateinfo\fP still exists as a compatibility alias.
.UNINDENT
.IP \(bu 2
Subcommands are now mandatory: \fBdnf updateinfo\fP is now \fBdnf5 advisory summary\fP\&.
.IP \(bu 2
Options \fB\-\-summary\fP, \fB\-\-list\fP and \fB\-\-info\fP have been changed to subcommands. See \fBdnf5 advisory \-\-help\fP\&.
.IP \(bu 2
Option \fB\-\-sec\-severity\fP has been renamed to \fB\-\-advisory\-severities=ADVISORY_SEVERITY,...\fP\&.
.IP \(bu 2
The \fBadvisory\fP commands now only accept advisory IDs; to filter by packages, use the \fB\-\-contains\-pkgs=PACKAGE_NAME,...\fP option.
.IP \(bu 2
Dropped deprecated aliases: \fBlist\-updateinfo\fP, \fBlist\-security\fP, \fBlist\-sec\fP, \fBinfo\-updateinfo\fP, \fBinfo\-security\fP, \fBinfo\-sec\fP, \fBsummary\-updateinfo\fP\&.
.IP \(bu 2
Dropped \fBupif\fP alias.
.UNINDENT
.TP
.B \fBversionlock\fP
.INDENT 7.0
.IP \(bu 2
New format of the configuration file.
.IP \(bu 2
See the \fI\%Versionlock command\fP for more information.
.UNINDENT
.UNINDENT
.SH CHANGES ON THE API
.SS PackageSet::operator[]
.sp
It was removed due to insufficient O(n^2) performance.
Use PackageSet iterator to access the data instead.
.SS Package::get_epoch()
.sp
The return type was changed from \fBunsigned long\fP to \fBstd::string\fP\&.
.SS DNF: Package.size, libdnf: dnf_package_get_size()
.sp
The return value was ambiguous, returning either package or install size.
Use Package::get_download_size() and Package::get_install_size() instead.
.SS dnf_sack_set_installonly, dnf_sack_get_installonly, dnf_sack_set_installonly_limit, dnf_sack_get_installonly_limit
.sp
The functions were dropped as unneeded. The installonly packages are taken directly from main Conf in Base.
.SS Query::filter() \- HY_PKG_UPGRADES_BY_PRIORITY, HY_PKG_OBSOLETES_BY_PRIORITY, HY_PKG_LATEST_PER_ARCH_BY_PRIORITY
.sp
The priority filter was separated into a standalone method.
Combine \fBquery.filter_priority()\fP with \fBquery.filter_latest_evr()\fP or another filter to achieve the original
functionality.
.SS Query::filter() \- HY_PKG_LATEST
.sp
The filter was replaced with \fBfilter_latest_evr()\fP which has the same behavior as \fBHY_PKG_LATEST_PER_ARCH\fP
.SS ConfigMain::proxy_auth_method() and ConfigRepo::proxy_auth_method()
.sp
The return types were changed. \fBOptionEnum\fP was replaced by \fBOptionStringSet\fP\&.
A combination of several authentication methods (for example \(dqbasic\(dq and \(dqdigest\(dq) can now be used.
This allows using a list of authentication methods in configuration files and the DNF5 command line
\(dq\-\-setopt=proxy_auth_method=\(dq.
.SH CHANGES TO CONFIGURATION
.SS Deprecation of the \fBstrict\fP option
.sp
\fBstrict\fP configuration option is now deprecated due to its dual functionality:
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.IP 1. 3
It allows the solver to skip uninstallable packages to resolve dependency problems.
.IP 2. 3
It permits DNF to skip unavailable packages (mostly for the \fBinstall\fP command).
.UNINDENT
.UNINDENT
.UNINDENT
.sp
To address this, the functionality has been split into two configuration options:
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.IP \(bu 2
\fBskip_broken\fP for uninstallable packages.
.IP \(bu 2
\fBskip_unavailable\fP for packages not present in repositories.
.UNINDENT
.UNINDENT
.UNINDENT
.sp
Additionally, corresponding command\-line options \fB\-\-skip\-broken\fP and \fB\-\-skip\-unavailable\fP have been introduced for commands where applicable.
.SS Deprecation of the \fBmetadata_timer_sync\fP option
.sp
The \fBmetadata_timer_sync\fP configuration option is now obsoleted by the \fBdnf5\-makecache.timer\fP systemd timer settings.
.SS Changes to individual options
.INDENT 0.0
.TP
.B \fBbest\fP
.INDENT 7.0
.IP \(bu 2
Default value is changed to \fBtrue\fP\&.
.IP \(bu 2
The new default value ensures that important updates will not be skipped and issues in distribution will be reported earlier.
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \fBcachedir\fP
.INDENT 7.0
.IP \(bu 2
The default user cached dir is now at \fB~/.cache/libdnf5\fP\&.
.IP \(bu 2
The default root cache directory, configured by the \fBsystem_cachedir\fP option, is now \fB/var/cache/libdnf5\fP\&.
.IP \(bu 2
Users no longer access the root\(aqs cache directly; instead, metadata is copied to the user\(aqs location if it\(aqs empty or invalid.
.IP \(bu 2
For additional information, refer to the \fI\%Caching\fP man page.
.UNINDENT
.TP
.B \fBcacheonly\fP
.INDENT 7.0
.IP \(bu 2
The option was changed from \fBbool\fP to \fBenum\fP with options \fBall\fP, \fBmetadata\fP and \fBnone\fP\&.
.INDENT 2.0
.IP \(bu 2
This enables users to specify whether to use the cache exclusively for metadata or for both metadata and packages.
.UNINDENT
.UNINDENT
.TP
.B \fBdeltarpm\fP
.INDENT 7.0
.IP \(bu 2
Default value is changed to \fBfalse\fP\&.
.IP \(bu 2
The support for delta RPMs is not implemented for now.
.UNINDENT
.TP
.B \fBdisable_excludes\fP
.INDENT 7.0
.IP \(bu 2
To disable all configuration file excludes, the \fB*\fP glob character is used now instead of the \fBall\fP to unify the behavior with query objects on the API.
.UNINDENT
.TP
.B \fBkeepcache\fP
.INDENT 7.0
.IP \(bu 2
The behavior has been slightly modified, see the \fI\%Caching\fP man page for more information.
.UNINDENT
.TP
.B \fBoptional_metadata_types\fP
.INDENT 7.0
.IP \(bu 2
Default value is now: \fBcomps,updateinfo\fP\&.
.IP \(bu 2
Supported values are now extended to the following list: \fBcomps\fP, \fBfilelists\fP, \fBother\fP, \fBpresto\fP, \fBupdateinfo\fP\&.
.UNINDENT
.UNINDENT
.SS Newly introduced configuration options
.INDENT 0.0
.TP
.B \fBallow_downgrade\fP
.INDENT 7.0
.IP \(bu 2
New option used to enable or disable downgrade of dependencies when resolving transaction.
.UNINDENT
.TP
.B \fBskip_broken\fP, \fBskip_unavailable\fP, \fBstrict\fP
.INDENT 7.0
.IP \(bu 2
New options \fBskip_broken\fP, \fBskip_unavailable\fP were added due to deprecation of \fBstrict\fP option.
.IP \(bu 2
See the \fI\%strict deprecation\fP above.
.UNINDENT
.UNINDENT
.SS Dropped configuration options
.INDENT 0.0
.TP
.B \fBarch\fP and \fBbasearch\fP
.INDENT 7.0
.IP \(bu 2
It is no longer possible to change the detected architecute in configuration files.
.IP \(bu 2
See the \fBdnf5\-forcearch(7)\fP, \fI\%Forcearch parameter\fP for overriding architecture.
.UNINDENT
.TP
.B \fBerrorlevel\fP
.INDENT 7.0
.IP \(bu 2
The option was deprecated in dnf < 5 and is dropped now.
.UNINDENT
.UNINDENT
.SH AUTHOR
See AUTHORS.md in dnf5 source distribution.
.SH COPYRIGHT
Contributors to the dnf5 project.
.\" Generated by docutils manpage writer.
.