Bug 1646424 - python2-boto3 missing dependency
Summary: python2-boto3 missing dependency
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: python-s3transfer
Version: 7.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: 7.7
Assignee: Oyvind Albrigtsen
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard:
Depends On:
Blocks: 1667135
TreeView+ depends on / blocked
 
Reported: 2018-11-05 14:45 UTC by Vadym Chepkov
Modified: 2019-08-14 19:20 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1667135 (view as bug list)
Environment:
Last Closed:


Attachments (Terms of Use)

Description Vadym Chepkov 2018-11-05 14:45:37 UTC
python2-boto3 has dependencies issues. It requires version of rpm, which is missing:

---> Package python2-boto3.noarch 0:1.4.6-1.el7 will be installed
--> Processing Dependency: python2-s3transfer >= 0.1.10 for package: python2-boto3-1.4.6-1.el7.noarch
Package python2-s3transfer is obsoleted by python-s3transfer, but obsoleting package does not provide for requirements
--> Finished Dependency Resolution
Error: Package: python2-boto3-1.4.6-1.el7.noarch (epel)
           Requires: python2-s3transfer >= 0.1.10
           Available: python2-s3transfer-0.1.10-1.el7.noarch (epel)
               python2-s3transfer = 0.1.10-1.el7

Comment 1 Danila Vershinin 2019-01-07 12:07:05 UTC
We are affected by this too.

Comment 2 Tim 2019-01-11 09:02:07 UTC
I bet this bug affects many people.
Any progress on this?

Comment 3 Danila Vershinin 2019-01-11 09:08:18 UTC
For anyone affected but wanting to quickly bypass issue, using "yum install --setopt=obsoletes=0 ..." like here https://www.getpagespeed.com/troubleshooting/quick-fix-for-installing-python2-certbot-dns-route53-python2-boto3-in-centos-7 works.

But that's just a temporary fix for "yum install", the "yum update" is still going to have dependency issue.

Comment 4 Ashley 2019-01-15 22:27:29 UTC
the problem is still there on our patched latest CentOS7 VMs;

Resolving Dependencies
--> Running transaction check
---> Package python-s3transfer.noarch 0:0.1.13-1.el7.0.1 will be obsoleting
---> Package python2-s3transfer.noarch 0:0.1.10-1.el7 will be obsoleted
--> Processing Dependency: python2-s3transfer >= 0.1.10 for package: python2-boto3-1.4.6-1.el7.noarch
--> Finished Dependency Resolution
Error: Package: python2-boto3-1.4.6-1.el7.noarch (@epel)
           Requires: python2-s3transfer >= 0.1.10
           Removing: python2-s3transfer-0.1.10-1.el7.noarch (@epel)
               python2-s3transfer = 0.1.10-1.el7
           Obsoleted By: python-s3transfer-0.1.13-1.el7.0.1.noarch (updates)
              ~python-s3transfer = 0.1.13-1.el7.0.1

Please advise as the only thing we can do right now is to;
yum update -y --skip-broken
yum install --setopt=obsoletes=0 certbot-dns-route53

Comment 5 Charalampos Stratakis 2019-01-16 20:04:08 UTC
It seems there was a bug fixed for 7.5, which unfortunately though created this issue, see bug 1576985

The breakdown is this:

python2-boto3 has an explicit requirement on python2-s3transfer, not python-s3transfer.

The epel7 package of s3transfer creates a binary rpm called python2-s3transfer, which also provides the virtual name python-s3transfer.

The rhel7 package of s3transfer creates a binary rpm called python-s3transfer, which obsoletes EPEL's python2-s3transfer, but it doesn't provide the python2-s3transfer name, that python2-boto3 explicitly depends on, thus the transaction is failing.

Will need to do some testing, possibly through a COPR repo to verify the transaction issue.

Comment 7 Charalampos Stratakis 2019-01-16 20:05:04 UTC
Adding needinfo on the maintainer to chime in.

Comment 8 Charalampos Stratakis 2019-01-17 14:37:41 UTC
I'll clone this bug in order to provide a workaround for boto3, to basically require python-s3transfer instead of python2-s3transfer. That should fix the dependency issue for now.

Comment 9 Charalampos Stratakis 2019-01-21 15:05:21 UTC
(In reply to Vadym Chepkov from comment #0)
> python2-boto3 has dependencies issues. It requires version of rpm, which is
> missing:
> 
> ---> Package python2-boto3.noarch 0:1.4.6-1.el7 will be installed
> --> Processing Dependency: python2-s3transfer >= 0.1.10 for package:
> python2-boto3-1.4.6-1.el7.noarch
> Package python2-s3transfer is obsoleted by python-s3transfer, but obsoleting
> package does not provide for requirements
> --> Finished Dependency Resolution
> Error: Package: python2-boto3-1.4.6-1.el7.noarch (epel)
>            Requires: python2-s3transfer >= 0.1.10
>            Available: python2-s3transfer-0.1.10-1.el7.noarch (epel)
>                python2-s3transfer = 0.1.10-1.el7

Through my testing, it seems that if the EPEL repos are enabled, the proper dependencies get pulled. Could you post from which repo you're install python2-boto3?

Comment 10 Charalampos Stratakis 2019-01-21 15:05:40 UTC
s/install/installing

Comment 11 Ashley 2019-01-21 21:17:14 UTC
In our case we are on the CENTOS7 VM, which shows we have the EPEL repos enabled. I think the command sbelow are the ones you want?
# yum repolist
repo id                                              repo name                                                                    status
base/7/x86_64                                        CentOS-7 - Base                                                              10,019
epel/x86_64                                          Extra Packages for Enterprise Linux 7 - x86_64                               12,865
extras/7/x86_64                                      CentOS-7 - Extras                                                               321
gitlab_gitlab-ce/x86_64                              gitlab_gitlab-ce                                                                436
gitlab_gitlab-ce-source                              gitlab_gitlab-ce-source                                                           0
go-repo/7/x86_64                                     go-repo - CentOS                                                                309
updates/7/x86_64                                     CentOS-7 - Updates                                                              647
yarn                                                 Yarn Repository                                                                  40
repolist: 24,637

# yum info python2-boto3
Installed Packages
Name        : python2-boto3
Arch        : noarch
Version     : 1.4.6
Release     : 1.el7
Size        : 1.1 M
Repo        : installed
From repo   : epel
Summary     : The AWS SDK for Python
URL         : https://github.com/boto/boto3
License     : ASL 2.0
Description : Boto3 is the Amazon Web Services (AWS) Software Development
            : Kit (SDK) for Python, which allows Python developers to
            : write software that makes use of services like Amazon S3
            : and Amazon EC2.


If I do the following;
# yum remove python2-boto3
...
Removing:
 python2-boto3                                 noarch                   1.4.6-1.el7                       @epel                   1.1 M
Removing for dependencies:
 python2-certbot-dns-route53                   noarch                   0.27.1-1.el7                      @epel                    53 k
....

# yum update -y
...
Installed:
  python-s3transfer.noarch 0:0.1.13-1.el7.0.1

Replaced:
  python2-s3transfer.noarch 0:0.1.10-1.el7

but then I have to do a;
yum install certbot-dns-route53 (as this was removed as part of the yum remove python2-bot3 command)

and then I put back to the dependency problem again.
so my only course of action is to do a;
yum install --setopt=obsoletes=0 certbot-dns-route53

Where to now?

cheers
Ashley

Comment 12 Charalampos Stratakis 2019-01-23 17:42:53 UTC
(In reply to Ashley from comment #11)
> In our case we are on the CENTOS7 VM, which shows we have the EPEL repos
> enabled. I think the command sbelow are the ones you want?
> # yum repolist
> repo id                                              repo name              
> status
> base/7/x86_64                                        CentOS-7 - Base        
> 10,019
> epel/x86_64                                          Extra Packages for
> Enterprise Linux 7 - x86_64                               12,865
> extras/7/x86_64                                      CentOS-7 - Extras      
> 321
> gitlab_gitlab-ce/x86_64                              gitlab_gitlab-ce       
> 436
> gitlab_gitlab-ce-source                              gitlab_gitlab-ce-source
> 0
> go-repo/7/x86_64                                     go-repo - CentOS       
> 309
> updates/7/x86_64                                     CentOS-7 - Updates     
> 647
> yarn                                                 Yarn Repository        
> 40
> repolist: 24,637
> 
> # yum info python2-boto3
> Installed Packages
> Name        : python2-boto3
> Arch        : noarch
> Version     : 1.4.6
> Release     : 1.el7
> Size        : 1.1 M
> Repo        : installed
> From repo   : epel
> Summary     : The AWS SDK for Python
> URL         : https://github.com/boto/boto3
> License     : ASL 2.0
> Description : Boto3 is the Amazon Web Services (AWS) Software Development
>             : Kit (SDK) for Python, which allows Python developers to
>             : write software that makes use of services like Amazon S3
>             : and Amazon EC2.
> 
> 
> If I do the following;
> # yum remove python2-boto3
> ...
> Removing:
>  python2-boto3                                 noarch                  
> 1.4.6-1.el7                       @epel                   1.1 M
> Removing for dependencies:
>  python2-certbot-dns-route53                   noarch                  
> 0.27.1-1.el7                      @epel                    53 k
> ....
> 
> # yum update -y
> ...
> Installed:
>   python-s3transfer.noarch 0:0.1.13-1.el7.0.1
> 
> Replaced:
>   python2-s3transfer.noarch 0:0.1.10-1.el7
> 
> but then I have to do a;
> yum install certbot-dns-route53 (as this was removed as part of the yum
> remove python2-bot3 command)
> 
> and then I put back to the dependency problem again.
> so my only course of action is to do a;
> yum install --setopt=obsoletes=0 certbot-dns-route53
> 
> Where to now?
> 
> cheers
> Ashley

Could you try to install python2-boto3 from my copr repository and see if the dependency resolution works?

Install the yum copr plugin:

$ yum install yum-plugin-copr

then add the repo:

$ yum copr enable cstratak/boto3_dependency_issue

and then try to install the package:

$ yum install python2-boto3

Does that resolve the dependency issue?

Comment 13 Ashley 2019-01-23 18:41:04 UTC
Thanks, I can confirm this appears to resolve the issue.
Is this workaround to be used until the root issue is resolved?
thanks again.

Comment 14 Charalampos Stratakis 2019-01-30 14:30:55 UTC
(In reply to Ashley from comment #13)
> Thanks, I can confirm this appears to resolve the issue.
> Is this workaround to be used until the root issue is resolved?
> thanks again.

Apologies for the late reply, devconf kept me pretty busy.

I've issued an update: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-23ae070b4c

I'm using bug 1667135 as a placeholder, as the actual bug is on s3transfer.

Allow it for some time to reach the testing repositories and you can try out the update and provide feedback. Instructions provided here: https://fedoraproject.org/wiki/EPEL/testing

As soon as it hits the stable repos, the issue should be resolved.

Comment 15 Danila Vershinin 2019-07-08 19:43:18 UTC
I can confirm the s3transfer can be updated fine after applying python2-boto3-1.4.6-2.

But seriously, 6 months in testing and it didn't make to stable? :)


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