Bug 1401539 - includepkgs are ignored by dnf
Summary: includepkgs are ignored by dnf
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Michael Mráka
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-05 14:21 UTC by Lukas Slebodnik
Modified: 2016-12-13 13:23 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-12-13 12:52:05 UTC
Type: Bug


Attachments (Terms of Use)
debug data from "dnf update --debugsolver "kernel*"" (7.08 MB, application/x-gzip)
2016-12-05 14:28 UTC, Lukas Slebodnik
no flags Details

Description Lukas Slebodnik 2016-12-05 14:21:59 UTC
Description of problem:
I am not really sure it is bug in dnf or it works with yum-deprecated just by a change.

Here is my use-case:
I would like to use use stable kernel on fedora to avoid some issues in CI machines. I created new repo file fedora-25-kernel.repo. It is a standard fedora repo for updates.
e.g.
  cp /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-25-kernel.repo
  # remove debuginfo and source repos (step is not required
  sed -e '/debuginfo/,$d' -i /etc/yum.repos.d/fedora-25-kernel.repo
  # append following lines to the repo
  echo 'excludepkgs=*' >> /etc/yum.repos.d/fedora-25-kernel.repo
  echo 'includepkgs=kernel*' >> /etc/yum.repos.d/fedora-25-kernel.repo

As you can see 'includepkgs=kernel*' after excludepkgs in repofile

and then exclude kernel packages in rawhide repo.
e.g.
  # append  "exclude=kernel*" into rawhide section in /etc/yum.repos.d/fedora-rawhide.repo

Version-Release number of selected component (if applicable):
sh$ rpm -q dnf hawkey
dnf-2.0.0-0.rc2.2.fc26.noarch
hawkey-0.6.3-6.fc26.x86_64

How reproducible:
Deterministic

Steps to Reproduce:
1. # prepare repofiles as described in above
   sh# dnf repolist
Last metadata expiration check: 0:10:28 ago on Mon Dec 05 15:00:00 2016 CET.
repo id                              repo name                            status
*kernel-f25                          kernel-f25                                0
*rawhide                             rawhide                              52,360
2. # ensure that you have installed lower version of kernel as in fedora 25 updates e.g.
  sh$ rpm -q kernel
  kernel-4.8.6-300.fc25.x86_64
  kernel-4.8.7-300.fc25.x86_64
  kernel-4.8.8-300.fc25.x86_64
3. try to update kernel
  dnf update "kernel*"

Actual results:
Last metadata expiration check: 0:05:25 ago on Mon Dec 05 15:13:36 2016 CET.
Dependencies resolved.
Nothing to do.
Complete!

Expected results:
#kernel package should be updated

Additional info:
Works well with yum-deprecated

sh# yum-deprecated repolist
Yum command has been deprecated, use dnf instead.
See 'man dnf' and 'man yum2dnf' for more information.

Loaded plugins: auto-update-debuginfo
repo id                   repo name                                    status
kernel-f25/x86_64         Fedora 25 - x86_64 - Updates                     3,838
rawhide/x86_64            Fedora - Rawhide - Developmental packages fo 52,361+14
*rawhide-debuginfo/x86_64 Fedora - Rawhide - Debug                        10,862
repolist: 67,061

sh# yum-deprecated update "kernel*"
Yum command has been deprecated, use dnf instead.
See 'man dnf' and 'man yum2dnf' for more information.

Loaded plugins: auto-update-debuginfo
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:4.8.10-300.fc25 will be installed
---> Package kernel-core.x86_64 0:4.8.10-300.fc25 will be installed
---> Package kernel-devel.x86_64 0:4.8.10-300.fc25 will be installed
---> Package kernel-headers.x86_64 0:4.8.6-300.fc25 will be obsoleted
---> Package kernel-headers.x86_64 0:4.8.6-300.fc25 will be updated
---> Package kernel-headers.x86_64 0:4.8.10-300.fc25 will be obsoleting
---> Package kernel-modules.x86_64 0:4.8.10-300.fc25 will be installed
---> Package kernel-tools.x86_64 0:4.8.6-300.fc25 will be updated
---> Package kernel-tools.x86_64 0:4.8.10-300.fc25 will be an update
---> Package kernel-tools-libs.x86_64 0:4.8.6-300.fc25 will be updated
---> Package kernel-tools-libs.x86_64 0:4.8.10-300.fc25 will be an update
--> Finished Dependency Resolution
--> Running transaction check
---> Package kernel.x86_64 0:4.8.6-300.fc25 will be erased
---> Package kernel-core.x86_64 0:4.8.6-300.fc25 will be erased
---> Package kernel-devel.x86_64 0:4.8.6-300.fc25 will be erased
---> Package kernel-modules.x86_64 0:4.8.6-300.fc25 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch        Version               Repository       Size
================================================================================
Installing:
 kernel                 x86_64      4.8.10-300.fc25       kernel-f25       91 k
 kernel-core            x86_64      4.8.10-300.fc25       kernel-f25       20 M
 kernel-devel           x86_64      4.8.10-300.fc25       kernel-f25       11 M
 kernel-headers         x86_64      4.8.10-300.fc25       kernel-f25      1.1 M
     replacing  kernel-headers.x86_64 4.8.6-300.fc25
 kernel-modules         x86_64      4.8.10-300.fc25       kernel-f25       22 M
Updating:
 kernel-tools           x86_64      4.8.10-300.fc25       kernel-f25      195 k
 kernel-tools-libs      x86_64      4.8.10-300.fc25       kernel-f25       99 k
Removing:
 kernel                 x86_64      4.8.6-300.fc25        installed       0.0  
 kernel-core            x86_64      4.8.6-300.fc25        installed        52 M
 kernel-devel           x86_64      4.8.6-300.fc25        installed        40 M
 kernel-modules         x86_64      4.8.6-300.fc25        installed        22 M

Transaction Summary
================================================================================
Install  5 Packages
Upgrade  2 Packages
Remove   4 Packages

Total download size: 54 M

Comment 1 Lukas Slebodnik 2016-12-05 14:28:02 UTC
Created attachment 1228075 [details]
debug data from "dnf update --debugsolver "kernel*""

I am not sure whether the bug is hawkey/libsolv because it looks like
dnf thinks that the repository fedora-f25 does not have any package;
which you can see in output of "dnf repolist".

grep "kernel-4" debugdata/testcase.t 
disable pkg kernel-4.8.10-300.fc25.x86_64@kernel-f25
disable pkg kernel-4.9.0-0.rc7.git3.1.fc26.x86_64@rawhide

Comment 2 Michael Mráka 2016-12-13 12:52:05 UTC
http://dnf.readthedocs.io/en/latest/conf_ref.html

includepkgs    list

    Include packages of this repository, specified by a name or a glob and separated by a comma, in all operations. Inverse of excludepkgs, DNF will exclude any package in the repository that doesn’t match this list. This works in conjunction with exclude and doesn’t override it, so if you ‘excludepkgs=*.i386’ and ‘includepkgs=python*’ then only packages starting with python that do not have an i386 arch will be seen by DNF in this repo. Can be disabled using --disableexcludes command line switch.

So
  excludepkgs=*
  includepkgs=kernel*
basically excludes everything. If you want to see only kernel packages use only
  includepkgs=kernel*

Comment 3 Lukas Slebodnik 2016-12-13 13:23:36 UTC
(In reply to Michael Mráka from comment #2)
> http://dnf.readthedocs.io/en/latest/conf_ref.html
> 
> includepkgs    list
> 
>     Include packages of this repository, specified by a name or a glob and
> separated by a comma, in all operations. Inverse of excludepkgs, DNF will
> exclude any package in the repository that doesn’t match this list. This
> works in conjunction with exclude and doesn’t override it, so if you
> ‘excludepkgs=*.i386’ and ‘includepkgs=python*’ then only packages starting
> with python that do not have an i386 arch will be seen by DNF in this repo.
> Can be disabled using --disableexcludes command line switch.
> 
> So
>   excludepkgs=*
>   includepkgs=kernel*
> basically excludes everything. If you want to see only kernel packages use
> only
>   includepkgs=kernel*

I should have read documentation more carefully.
It confused me because it worked with yum-deprecated. But it looks like a bug there. But it does not worth to fix it.

I can confirm that it works.
Thank you very much for your time.


Note You need to log in before you can comment on or make changes to this bug.