From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Galeon/2.0.0 Description of problem: An explicit (i.e. manual) dependency on a particular version of R, i.e. Requires: R=x.y.z needs to be added to the rpy spec file. Currently rpy will fail at runtime if R is upgraded to a new major, minor or subminor release. That way if both R and rpy are installed and R is updated, but rpy is not rebuilt, then "yum upgrade" will fail noisely saying that R can't be upgraded because of the dependent rpy. That would be far better than the current situation where R is upgraded causing rpy to silently fail, which may not be noticed immediately. Also the automated repoclosure script will pick up the dependency problem and the maintainer should be notified quickly. Version-Release number of selected component (if applicable): rpy-0.4.6-4.fc4 How reproducible: Always Steps to Reproduce: 1. sudo yum upgrade Actual Results: R will be upgraded, but cause rpy to fail at runtime, causing the user to have a broken system. Expected Results: If rpy is installed and doesn't have the correct R installed, the upgrade will fail, making it clear that the rpy maintainer needs to rebuild package, and the user won't have a broken system (because the upgrade won't go through until the problem is fixed). Additional info:
This issue is fixed in 0.4.6-5. The dependency is set at build time using: Requires: R = %(R --version | head -n 1 | sed -e 's/.* \(.*\) .*/\1/') There is no need to fiddle with each release, it only requires to increase the release number, rebuild and that is it. :-)
Thanks. That's this change, I guess: http://cvs.fedora.redhat.com/viewcvs/rpms/rpy/FC-4/rpy.spec?root=extras&r1=1.4&r2=1.5 I look forward to seeing it in the repositories soon. Once installed, I'll close this bug.
Hopefully, it will work. ;-) I know that were issues with using scripts inside BuildRequires (e.g. the galeon RPM used to use something like this to encode the correct version of mozilla), but I guess it's OK with regular requires because the build system doesn't need to query them to find out which packages to install.
I guess: "Error: could not make srpm for rpy-0_4_6-5_fc4 - output was: sh: R: command not found error: line 15: Version required: Requires: R = error: query of specfile rpy.spec failed, can't parse sh: R: command not found error: line 15: Version required: Requires: R = error: query of specfile rpy.spec failed, can't parse" from http://buildsys.fedoraproject.org/build-status/job.psp?uid=4554 means that it doesn't work. :-( At least not within mock.
I guess the build system does query the Requires: before running rpm as well as the BuildRequires: Oh well, back to hard-coding then. Now that rpy-0.4.6-6 is built and installed, closing bug.