Bug 1310441 - sqlite.i686 dnf dependency error: update missing from Fedora 23 x86_64 "updates" repo
Summary: sqlite.i686 dnf dependency error: update missing from Fedora 23 x86_64 "updat...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: sqlite
Version: 23
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Nils Philippsen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1310525 1310913 1311296 1311637 1311639 1312014 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-02-21 15:59 UTC by Steve Bryant
Modified: 2016-03-22 08:27 UTC (History)
17 users (show)

Fixed In Version: sqlite-3.11.0-2.fc23
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-02-26 19:21:47 UTC


Attachments (Terms of Use)

Description Steve Bryant 2016-02-21 15:59:30 UTC
Description of problem:
sqlite.i686 version 3.11.0-1.fc23 is missing from Fedora 23 "updates" (and "updates-testing") repo, so cannot upgrade sqlite.x86_64 to latest version if sqlite.i686 is also installed.

However sqlite-libs-3.10.2-1.fc23.i686 is there ...

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. Install sqlite-3.10.2-1.fc23.i686 on Fedora 23 x86_64 which already has sqlite-3.10.2-1.fc23.x86_64 installed. 
2. Attempt "dnf upgrade"
3.

Actual results:
Skipping packages with broken dependencies:
 sqlite          x86_64       3.11.0-1.fc23              updates        484 k


Expected results:
Both sqlite.i686 and sqlite.x86_64 (plus dependent sqlite-libs packages) upgraded to version 3.11.0-1.fc23

Additional info:

# dnf list installed sqlite
Last metadata expiration check performed 0:18:45 ago on Sun Feb 21 15:15:52 2016.
Installed Packages
sqlite.i686           3.10.2-1.fc23                                 @updates
sqlite.x86_64         3.10.2-1.fc23                                 @updates

# dnf upgrade sqlite.x86_64
Last metadata expiration check performed 0:19:16 ago on Sun Feb 21 15:15:52 2016.
Dependencies resolved.
===============================================================================
 Package         Arch         Version                    Repository      ===============================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 sqlite         x86_64        3.11.0-1.fc23              updates        484 k
 sqlite-libs    i686          3.11.0-1.fc23              updates        463 k
 sqlite-libs    x86_64        3.11.0-1.fc23              updates        449 k

Transaction Summary
===============================================================================
Skip  3 Packages

Nothing to do.
Complete!

Comment 1 Steve Bryant 2016-02-21 16:05:03 UTC
In "Description of problem", should end with:

"However sqlite-libs-3.11.0-1.fc23.i686 is there ..."

(I.e. latest version of sqlite-libs.i686 package is in "updates" repo)

Comment 2 Nils Philippsen 2016-02-22 13:19:33 UTC
I've looked at the spec file of sqlite and found this:

There are no Obsoletes/Conflicts which take care of removing the old sqlite.i686 version when updating. Adding "Obsoletes/Conflicts: sqlite < $version_where_the_split_happened" to both the main package and the -libs subpackage should do the trick: sqlite(old) is obsoleted by sqlite(new) and sqlite-libs(new), and the packages that need sqlite-libs.i686 should cause it to be pulled into the transaction.

Additionally, the -devel requires -libs without specifying the architecture. This lets people install the 32bit -devel package without the matching 32 bit -libs package.

Do you want me to fix and build this?

Comment 3 Michal Jaegermann 2016-02-22 17:08:57 UTC
(In reply to Steve Bryant from comment #0)

> =============================================================================
> Skipping packages with conflicts:
> (add '--best --allowerasing' to command line to force their upgrade):
>  sqlite         x86_64        3.11.0-1.fc23              updates        484 k
>  sqlite-libs    i686          3.11.0-1.fc23              updates        463 k
>  sqlite-libs    x86_64        3.11.0-1.fc23              updates        449 k
> 
> Transaction Summary
> =============================================================================
> Skip  3 Packages
> 
> Nothing to do.
> Complete!

See also bug 1310525.

Even with downloaded relevant packages if one tries:

dnf --allowerasing --best install ./sqlite*.rpm

then this bumps into 
Error: Transaction check error:
  file /usr/lib/libsqlite3.so.0.8.6 from install of sqlite-libs-3.11.0-1.fc23.i686 conflicts with file from package sqlite-3.10.2-1.fc23.i686

With yum there was an access to yum-shell which allowed to construct a transaction which would erase an obsoleted package while installing replacements at the same time.  Unfortunately what dnf provides here is inadequate.  AFAICS the only thing one can do at this moment is:

    rpm -e --nodeps sqlite-3.10.2-1.fc23.i686
    dnf --best install ./sqlite*.rpm

with previously downloaded replacement packages.   This works and a resulting installation has dependencies satisfied.

If there is a way to fix this for dnf without messing up i686 installations in the proces I have no idea.  Does not seem to be obvious to me.

Comment 4 Steve Bryant 2016-02-23 10:15:24 UTC
"Easiest" workaround for me was to download the "i686" RPM from the i686 repository and include it on the "dnf upgrade" command:

# dnf upgrade ./sqlite-3.11.0-1.fc23.i686.rpm sqlite
Last metadata expiration check performed 0:03:15 ago on Tue Feb 23 09:52:43 2016.
Dependencies resolved.
===============================================================================
 Package         Arch       Version           Repository                  Size
===============================================================================
Installing:
 sqlite-libs     i686       3.11.0-1.fc23     updates                     463 k
 sqlite-libs     x86_64     3.11.0-1.fc23     updates                     449 k
Upgrading:
 sqlite          i686       3.11.0-1.fc23     @commandline                495 k
 sqlite          x86_64     3.11.0-1.fc23     updates                     484 k

Transaction Summary
===============================================================================
Install  2 Packages
Upgrade  2 Packages

Total size: 1.8 M
Total download size: 484 k
Is this ok [y/N]: y
Downloading Packages:

 [ . . . ]

Installed:
  sqlite-libs.i686 3.11.0-1.fc23             sqlite-libs.x86_64 3.11.0-1.fc23

Upgraded:
  sqlite.i686 3.11.0-1.fc23                  sqlite.x86_64 3.11.0-1.fc23  

Complete!

Comment 5 Steve Bryant 2016-02-23 11:32:28 UTC
After upgrading with the manually-downloaded RPM as above, I was able to remove this package without requiring other packages to be erased, so it looks like the suggestion to "Obsoletes" approach may be the way:

# dnf erase sqlite.i686
Dependencies resolved.
================================================================================
 Package        Arch         Version                Repository             Size
================================================================================
Removing:
 sqlite         i686         3.11.0-1.fc23          @@commandline         957 k

Transaction Summary
================================================================================
Remove  1 Package

Installed size: 957 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Erasing     : sqlite-3.11.0-1.fc23.i686                                   1/1 
  Verifying   : sqlite-3.11.0-1.fc23.i686                                   1/1 

Removed:
  sqlite.i686 3.11.0-1.fc23

Complete!

Comment 6 Nils Philippsen 2016-02-23 14:08:10 UTC
I've implemented the changes outlined in comment #2 and kicked off builds for f22, f23, Rawhide.

Comment 7 Nils Philippsen 2016-02-23 14:44:47 UTC
*** Bug 1310913 has been marked as a duplicate of this bug. ***

Comment 8 Nils Philippsen 2016-02-23 14:45:53 UTC
*** Bug 1310525 has been marked as a duplicate of this bug. ***

Comment 9 Ben Williams 2016-02-23 15:00:46 UTC
this doesnt appear to be multilib only issue

http://paste.fedoraproject.org/327818/14562390/

Comment 10 Fedora Update System 2016-02-23 15:34:50 UTC
spatialite-tools-4.2.0-20.fc22 sqlite-3.11.0-2.fc22 has been submitted as an update to Fedora 22. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b37af739e7

Comment 11 Fedora Update System 2016-02-23 15:35:03 UTC
spatialite-tools-4.2.0-20.fc22 sqlite-3.11.0-2.fc22 has been submitted as an update to Fedora 22. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b37af739e7

Comment 12 Fedora Update System 2016-02-23 15:40:33 UTC
sqlite-3.11.0-2.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-850f410498

Comment 13 Jan Staněk 2016-02-24 13:52:56 UTC
nphillip: Thanks for the builds, I was off during the push.

Comment 14 Jan Staněk 2016-02-24 14:15:29 UTC
*** Bug 1311296 has been marked as a duplicate of this bug. ***

Comment 15 Sudhir Khanger 2016-02-24 16:33:33 UTC
*** Bug 1311639 has been marked as a duplicate of this bug. ***

Comment 16 Fedora Update System 2016-02-25 10:53:45 UTC
spatialite-tools-4.2.0-20.fc22, sqlite-3.11.0-2.fc22 has been pushed to the Fedora 22 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-b37af739e7

Comment 17 Rex Dieter 2016-02-25 14:31:30 UTC
*** Bug 1312014 has been marked as a duplicate of this bug. ***

Comment 18 Fedora Update System 2016-02-26 02:25:51 UTC
sqlite-3.11.0-2.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-850f410498

Comment 19 Fedora Update System 2016-02-26 19:21:38 UTC
sqlite-3.11.0-2.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 20 Kriton Kyrimis 2016-02-27 06:38:27 UTC
Something is strange with the new update.

"dnf clean all ; dnf update" skipped updating sqlite.i686 to 3.11.0-2, because of broken dependencies. A second "dnf update", however, said that there was nothing to do.

Is this an artifact of the sqlite libraries moving to the sqlite-libs package? If so, should there still be an sqlite-31.11.0-2.i686 package in the x86_64 updates?

Comment 21 Rex Dieter 2016-02-29 13:17:02 UTC
Comment #20

I saw that too, and I think it's a dnf quirk/bug.  Indeed earlier in the transation you'll see 

sqlite-libs.x86_64  replacing sqlite.i686 sqlite.x86_64

so strictly speaking, sqlite.i686 isn't being skipped

Comment 22 Jan Staněk 2016-03-03 10:07:29 UTC
*** Bug 1311637 has been marked as a duplicate of this bug. ***

Comment 23 Fedora Update System 2016-03-22 08:27:34 UTC
sqlite-3.11.0-2.fc22 has been submitted as an update to Fedora 22. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b37af739e7


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