New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fpm build python rpm's install breaks on too strict(?) dependency version requirements #364

Closed
rtoma opened this Issue Feb 19, 2013 · 2 comments

Comments

Projects
None yet
3 participants
@rtoma

rtoma commented Feb 19, 2013

Using fpm 0.4.29 from rubygems, I am trying to package beaver and python dependencies as rpm's. They all get build, but when installing it seems to fail on missing dependencies. I believe this has to do with the iteration/release in the rpm's, which does not match the beaver required versions.

Note: I am an rpm/python-setup noob, so I am not sure if this is beaver or fpm.
Regards!

Beaver requires:

argparse>=1.2.0
pika>=0.9.5
python-daemon>=1.5.2
redis==2.4.11
ujson>=1.9
glob2==0.3

I have build redis, ujson and glob2. When executing a "yum install python-beaver" the redis and glob2 dependencies fail. The ujson dependency (and the others) works though. As you can see the redis/glob2 deps use a == version requirement. And ujson uses a >= version requirement. My assumption: the =='s are causing this problem, because "2.4.1" != "2.4.1-1".

When I replace the =='s with >='s the "yum install python-beaver" works. Hurray! But I like to understand what happens. And maybe its a bug? (Already found some closed issues regarding the iteration/release option.)

Output of the failing yum install run (with =='s in the beaver rpm):

> yum install python-beaver
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package python-beaver.noarch 1:22-1 will be installed
--> Processing Dependency: python-redis = 2.4.11 for package: 1:python-beaver-22-1.noarch
--> Processing Dependency: python-glob2 = 0.3 for package: 1:python-beaver-22-1.noarch
--> Processing Dependency: python-ujson >= 1.9 for package: 1:python-beaver-22-1.noarch
--> Running transaction check
---> Package python-beaver.noarch 1:22-1 will be installed
--> Processing Dependency: python-redis = 2.4.11 for package: 1:python-beaver-22-1.noarch
--> Processing Dependency: python-glob2 = 0.3 for package: 1:python-beaver-22-1.noarch
---> Package python-ujson.x86_64 1:1.30-1 will be installed
--> Finished Dependency Resolution
Error: Package: 1:python-beaver-22-1.noarch (my-repo)
           Requires: python-redis = 2.4.11
           Available: python-redis-2.0.0-1.el6.noarch (epel)
               python-redis = 2.0.0-1.el6
           Available: 1:python-redis-2.4.11-1.noarch (my-repo)
               python-redis = 1:2.4.11-1
           Available: 1:python-redis-2.7.2-1.noarch (my-repo)
               python-redis = 1:2.7.2-1
Error: Package: 1:python-beaver-22-1.noarch (my-repo)
           Requires: python-glob2 = 0.3
           Available: 1:python-glob2-0.3-0.noarch (my-repo)
               python-glob2 = 1:0.3-0
           Available: 1:python-glob2-0.3-1.noarch (my-repo)
               python-glob2 = 1:0.3-1
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Available packages (all created with fpm) in "my-repo" are:

python-beaver.noarch                   1:22-1                         my-repo
python-glob2.noarch                    1:0.3-0                        my-repo
python-glob2.noarch                    1:0.3-1                        my-repo
python-redis.noarch                    1:2.4.11-1                     my-repo
python-redis.noarch                    1:2.7.2-1                      my-repo
python-ujson.x86_64                    1:1.30-1                       my-repo
@superawesome

This comment has been minimized.

superawesome commented Jun 11, 2013

This happens to us too. I've been working around it by disabling auto-dependencies and manually listing all the right deps. This works, but is rather annoying because it's very easy to forget when packaging a new version if you haven't done it in a while.

@r4um

This comment has been minimized.

Contributor

r4um commented Aug 1, 2013

A switch --[no-]rpm-ignore-iteration-in-dependencies similar to --[no-]deb-ignore-iteration-in-dependencies should suffice.

jordansissel added a commit that referenced this issue Aug 1, 2013

Merge pull request #508 from r4um/issue-364
Closes #364 Add rpm --rpm-ignore-iteration-in-dependencies dependency handling flag

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 18, 2014

jls
Merge pull request jordansissel#508 from r4um/issue-364
Closes jordansissel#364 Add rpm --rpm-ignore-iteration-in-dependencies dependency handling flag

prof-milki pushed a commit to prof-milki/xpm that referenced this issue Dec 27, 2014

Merge pull request jordansissel#508 from r4um/issue-364
Closes jordansissel#364 Add rpm --rpm-ignore-iteration-in-dependencies dependency handling flag

jordansissel added a commit that referenced this issue Apr 24, 2015

Merge pull request #508 from r4um/issue-364
Closes #364 Add rpm --rpm-ignore-iteration-in-dependencies dependency handling flag

jordansissel added a commit that referenced this issue Jun 20, 2016

Merge pull request #508 from r4um/issue-364
Closes #364 Add rpm --rpm-ignore-iteration-in-dependencies dependency handling flag
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment