On 1 April 2017 at 22:25, Neal Gompa <ngompa13@gmail.com> wrote:
This is a libsolv test case. Fedora's high level package manager
(DNF[0]) uses libsolv[1] for its resolver engine. If you're trying to
determine how something is going to behave, you can write a test case
and use testsolv (in the libsolv-tools package) to run the test case
and see what the solver would do. It gives you the ability to
reproducibly replay any kind of solution scenario. DNF will output
libsolv test cases for a given action when "--debugsolver" is added
as an option to the command.

And from your prev Igor email:

And please, stop spreading misinformation! As I said earlier, you have
to prove your information to FPC (which implies confirmation from DNF
developers).

So .. looks like:
1) your test case does not test what I've been testing (did you really download, try and look at it?).
2) Igor as well seems not been trying to test anything.

Because you guys (still) not even been trying to fire my test.
Because what is inside of my original test case is not matching potential case when libsolve is used by dnf so I've wrote new test using not rpm but dnf.

OK. So in attachment is dnf-Obsolete-test.tar.gz. To fire test you need to execute test-dnf.sh
In second attachment is test-dnf.result. If you will look inside you will find that I still can write:

Q.E.D.

So please guys .. go back to dnf developers and ask them do they homework because after flattering my nose and telling me to stop misinformations without spending few b*dy minutest on tests now it looks very bad.

BTW. After about 10min writing attached new test I've fired it second time to catch output to put in attachment but at the end of my script I've forgot to remove test 3.0 packages and my test started from installing test 1.0 packages and .. dnf downgraded test packages!!! =8-o
So it is MAJOR dnf bug.
Fragment from test output:

Downgrading:
 test                  x86_64           1.0-1              test           6.0 k
 test-devel            x86_64           1.0-1              test           6.1 k
 test-static           x86_64           1.0-1              test           6.1 k

Transaction Summary
================================================================================
Downgrade  3 Packages

Total size: 18 k
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Downgrading      : test-1.0-1.x86_64                                      1/6
  Downgrading      : test-devel-1.0-1.x86_64                                2/6
  Downgrading      : test-static-1.0-1.x86_64                               3/6
  Erasing          : test-static-3.0-1.x86_64                               4/6
  Erasing          : test-devel-3.0-1.x86_64                                5/6
  Erasing          : test-3.0-1.x86_64                                      6/6
  Verifying        : test-1.0-1.x86_64                                      1/6
  Verifying        : test-devel-1.0-1.x86_64                                2/6
  Verifying        : test-static-1.0-1.x86_64                               3/6
  Verifying        : test-3.0-1.x86_64                                      4/6
  Verifying        : test-devel-3.0-1.x86_64                                5/6
  Verifying        : test-static-3.0-1.x86_64                               6/6

Why it is the bug?
Because:

$ dnf --help | grep downg
downgrade                 Downgrade a package

and trying to do exactly the same using rpm:

# rpm -Uvh test-1.0-1.x86_64.rpm test-devel-1.0-1.x86_64.rpm test-static-1.0-1.x86_64.rpm 
Preparing...                          ################################# [100%]
package test-3.0-1.x86_64 (which is newer than test-1.0-1.x86_64) is already installed
package test-devel-3.0-1.x86_64 (which is newer than test-devel-1.0-1.x86_64) is already installed
package test-static-3.0-1.x86_64 (which is newer than test-static-1.0-1.x86_64) is already installed

Test case for this bug is included in test-dnf.sh and result in attached .result file as well.

Second minor bug in displayed messages. On upgrade 1.0->2.0:

Upgrading:
 test                  x86_64            2.0-1            test            6.1 k
     replacing  test-static.x86_64 1.0-1
 test-devel            x86_64            2.0-1            test            6.1 k

This is not replace operation but obsoletion.
In below log of operations on packages is correct message:

  Obsoleting       : test-static-1.0-1.x86_64                               3/5 

Now I have much more questions but I have only few minutes.
Seems today in UK will be nice sunny day so maybe will try to write a bit more late evening or tomorrow morning. First I need to read a bit more about libsolve and few other new pieces.

I'll write first one:
Why dnf guys started playing with writing from scratch completely new resolver, recommending even dnf as new package manager (which implies rpm obsoletion .. soon; I'm sure that many people are not fully aware of this) instead extracting base resolver from rpm code and wrapping it by new code?
(First sentence which I've learn during my first job in UK was "don't move, improve")
dnf used to be only adding on top of raw rpm possibility to operate on packages repositories. For some reason someone decided to replace rpm adding of course in new code bugs which even 20 years ago in rpm implemented in perl not been present.

kloczek
-- 
Tomasz Kłoczko | LinkedIn: http://lnkd.in/FXPWxH