Bug 1310441 - sqlite.i686 dnf dependency error: update missing from Fedora 23 x86_64 "updates" repo
sqlite.i686 dnf dependency error: update missing from Fedora 23 x86_64 "updat...
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: sqlite (Show other bugs)
23
x86_64 Linux
unspecified Severity unspecified
: ---
: ---
Assigned To: Nils Philippsen
Fedora Extras Quality Assurance
:
: 1310525 1310913 1311296 1311637 1311639 1312014 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2016-02-21 10:59 EST by Steve Bryant
Modified: 2016-03-22 04:27 EDT (History)
17 users (show)

See Also:
Fixed In Version: sqlite-3.11.0-2.fc23
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-02-26 14:21:47 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Steve Bryant 2016-02-21 10:59:30 EST
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 11:05:03 EST
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 08:19:33 EST
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 12:08:57 EST
(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 05:15:24 EST
"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 06:32:28 EST
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 09:08:10 EST
I've implemented the changes outlined in comment #2 and kicked off builds for f22, f23, Rawhide.
Comment 7 Nils Philippsen 2016-02-23 09:44:47 EST
*** Bug 1310913 has been marked as a duplicate of this bug. ***
Comment 8 Nils Philippsen 2016-02-23 09:45:53 EST
*** Bug 1310525 has been marked as a duplicate of this bug. ***
Comment 9 Ben Williams 2016-02-23 10:00:46 EST
this doesnt appear to be multilib only issue

http://paste.fedoraproject.org/327818/14562390/
Comment 10 Fedora Update System 2016-02-23 10:34:50 EST
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 10:35:03 EST
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 10:40:33 EST
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 08:52:56 EST
nphillip: Thanks for the builds, I was off during the push.
Comment 14 Jan Staněk 2016-02-24 09:15:29 EST
*** Bug 1311296 has been marked as a duplicate of this bug. ***
Comment 15 Sudhir Khanger 2016-02-24 11:33:33 EST
*** Bug 1311639 has been marked as a duplicate of this bug. ***
Comment 16 Fedora Update System 2016-02-25 05:53:45 EST
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 09:31:30 EST
*** Bug 1312014 has been marked as a duplicate of this bug. ***
Comment 18 Fedora Update System 2016-02-25 21:25:51 EST
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 14:21:38 EST
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 01:38:27 EST
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 08:17:02 EST
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 05:07:29 EST
*** Bug 1311637 has been marked as a duplicate of this bug. ***
Comment 23 Fedora Update System 2016-03-22 04:27:34 EDT
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.