Skip to content
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

pkg.instaled 32bit package on 64bit machine fails with yum #6299

Closed
victormuse opened this issue Jul 24, 2013 · 11 comments · Fixed by #6304
Closed

pkg.instaled 32bit package on 64bit machine fails with yum #6299

victormuse opened this issue Jul 24, 2013 · 11 comments · Fixed by #6304
Labels
Bug broken, incorrect, or confusing behavior
Milestone

Comments

@victormuse
Copy link

Not sure if a duplicate of 6097 or it is yum specific (or has something to do with the fact I'm trying to install a 32bit package on a 64bit machine):

[INFO    ] No changes made for superdev
[INFO    ] Executing state pkg.installed for jre.i586
Loaded plugins: priorities, update-motd, upgrade-helper
Loaded plugins: priorities, update-motd, upgrade-helper
Loaded plugins: priorities, update-motd, upgrade-helper
[INFO    ] Selecting "jre.i586" for installation
616 packages excluded due to repository priority protections
[DEBUG   ] Added 1 transactions
[INFO    ] Resolving dependencies
[INFO    ] Processing transaction
Running rpm_check_debug

Message from syslogd@ip-10-30-8-185 at Jul 24 15:19:00 ...
 ▒<14>yum[5200]: Installed: jre-1.7.0_25-1.amzn1.i586
Loaded plugins: priorities, update-motd, upgrade-helper
[ERROR   ] Installed Packages:
jre changed from absent to 1.7.0_25-1.amzn1
----------
    State: - pkg
    Name:      jre.i586
    Function:  installed
        Result:    False
        Comment:   The following packages failed to install/update: jre.i586.
        Changes:   jre: { new : 1.7.0_25-1.amzn1
old :
}

The package actually installs fine, but the state returns False. If this is already fixed please point me to the right commit so I can add a patch to my .spec.

Thanks.

@victormuse
Copy link
Author

Forgot to mention, I'm using salt version 0.16.0 with two patches:

@basepi
Copy link
Contributor

basepi commented Jul 24, 2013

Thanks for the report. I'm not sure whether this has been fixed or not. @terminalmage ?

@terminalmage
Copy link
Contributor

This was fixed several releases ago, if this is happening again it is a regression. What platform are you running on?

@victormuse
Copy link
Author

It's Amazon Linux, up to date. I can test tomorrow on a CentOS 6.

@terminalmage
Copy link
Contributor

I think I have found the issue. 32-bit packages are only supported in salt code with suffixes of .i686, which is why your .i586 package is failing. I'll look into a fix.

terminalmage added a commit to terminalmage/salt that referenced this issue Jul 25, 2013
The yum providers previously only supported 32bit packages that were for
the i686 architecture. This adds support for any iX86 arch.

Fixes saltstack#6299.
@victormuse
Copy link
Author

Thanks!

The pkg.installed works fine now. However:

local:
----------
    State: - cmd
    Name:      default-to-jre
    Function:  script
        Result:    False
        Comment:   The following requisites were not found:
                   watch: {'pkg': 'jre.586'}

        Changes:

While rpm (and yum) can find the package:

# rpm -q jre.i586
jre-1.7.0_25-1.amzn1.i586

If querying just for jre it would find both arches. That's not possible with jre, so there is a better example:

# rpm -q glibc
glibc-2.12-1.107.43.amzn1.x86_64
glibc-2.12-1.107.43.amzn1.i686
# rpm -q glibc.i686
glibc-2.12-1.107.43.amzn1.i686

Watch should be able to watch for package.arch. Let me know if you want me to open a different issue for this.

@terminalmage
Copy link
Contributor

@victormuse I'm not sure what you're saying. Can you clarify?

@victormuse
Copy link
Author

Suppose you want something to happen if/after glibc.i686 is installed. If
you watch for 'glibc' it will be always installed, the 64bit version. If
you try to watch for glibc.i686, it will always fail, even if it is
installed.

On Thu, Jul 25, 2013 at 7:38 PM, Erik Johnson notifications@github.comwrote:

@victormuse https://github.com/victormuse I'm not sure what you're
saying. Can you clarify?


Reply to this email directly or view it on GitHubhttps://github.com//issues/6299#issuecomment-21575146
.

@terminalmage
Copy link
Contributor

It shouldn't. Requisites depend on a state being defined. Do you have a pkg.installed state for jre.i586?

@victormuse
Copy link
Author

Sorry, I just saw the typo, jre.586 instead of jre.i586. Shame on me...

On Thu, Jul 25, 2013 at 8:00 PM, Erik Johnson notifications@github.comwrote:

It shouldn't. Requisites depend on a state being defined. Do you have a
pkg.installed state for jre.i586?


Reply to this email directly or view it on GitHubhttps://github.com//issues/6299#issuecomment-21576639
.

@basepi
Copy link
Contributor

basepi commented Jul 25, 2013

We're just glad you figured it out. =)

terminalmage added a commit that referenced this issue Jul 25, 2013
The yum providers previously only supported 32bit packages that were for
the i686 architecture. This adds support for any iX86 arch.

Fixes #6299.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug broken, incorrect, or confusing behavior
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants