I've been notified that avr-libc rebuild for F11 failed, and Koji says that it is because this noarch package contains binary (error: Arch dependent binaries in noarch package)
This is a normal behaviour, as avr-libc provides precompiled libraries for avr microcontrolers, which are external devices.
After some googling, it seems that there is a maco to add in order to let koji ignore that problem: %_binaries_in_noarch_packages_terminate_build 0
(see https://fedorahosted.org/pipermail/cobbler/2009-February/003006.html)
Unfortunately, adding this line in the spec file (after %description) doesn't fix the problem and the build continues failing.
What should I do to fix that ?
Thibault
On 2009-02-27 at 11:00:24 -0500, Thibault North thibault.north@gmail.com wrote:
I've been notified that avr-libc rebuild for F11 failed, and Koji says that it is because this noarch package contains binary (error: Arch dependent binaries in noarch package)
This is a normal behaviour, as avr-libc provides precompiled libraries for avr microcontrolers, which are external devices.
Is avr-libc really noarch? Isn't this a cross-compiled version of libc? And can't we build those precompiled libraries from source using the existing cross toolchain?
~spot
Tom "spot" Callaway wrote:
On 2009-02-27 at 11:00:24 -0500, Thibault North thibault.north@gmail.com wrote:
I've been notified that avr-libc rebuild for F11 failed, and Koji says that it is because this noarch package contains binary (error: Arch dependent binaries in noarch package)
This is a normal behaviour, as avr-libc provides precompiled libraries for avr microcontrolers, which are external devices.
Is avr-libc really noarch?
Yes, it is. These are foreign libs.
Isn't this a cross-compiled version of libc?
No, avr-libc is something completely of its own.
And can't we build those precompiled libraries from source using the existing cross toolchain?
These are foreign binaries whose toolchain doesn't support/apply build-ids.
Ralf
On Fri, Feb 27, 2009 at 11:00:24AM -0500, Thibault North wrote:
I've been notified that avr-libc rebuild for F11 failed, and Koji says that it is because this noarch package contains binary (error: Arch dependent binaries in noarch package)
This is a normal behaviour, as avr-libc provides precompiled libraries for avr microcontrolers, which are external devices.
After some googling, it seems that there is a maco to add in order to let koji ignore that problem: %_binaries_in_noarch_packages_terminate_build 0
Not:
%global _binaries_in_noarch_packages_terminate_build 0
?
Rich.
On Fri, 27 Feb 2009, Richard W.M. Jones wrote:
On Fri, Feb 27, 2009 at 11:00:24AM -0500, Thibault North wrote:
I've been notified that avr-libc rebuild for F11 failed, and Koji says that it is because this noarch package contains binary (error: Arch dependent binaries in noarch package)
This is a normal behaviour, as avr-libc provides precompiled libraries for avr microcontrolers, which are external devices.
After some googling, it seems that there is a maco to add in order to let koji ignore that problem: %_binaries_in_noarch_packages_terminate_build 0
This is the syntax for ~/.rpmmacros, in spec it just expands to "1 0" which is hardly what you want.
Not:
%global _binaries_in_noarch_packages_terminate_build 0
Yup, that's the way to turn to turn it off from a spec.
- Panu -
Le Friday, 27. February 2009 12:02:24 pm Florian Festi, vous avez écrit :
Panu Matilainen wrote:
%global _binaries_in_noarch_packages_terminate_build 0
Yup, that's the way to turn to turn it off from a spec.
Looks like it is not enough (same error). (Have put it right after %description)
Wouldn't removing the executable bit from the files in question be the better solution?
Florian
It comes with an executable file, avr-man, which is a shell script is /usr/bin, needs to be +x amha.
By the way, rpmbuild doesn't mention the problematic files. Any way to have them echoed ?
On Fri, 27 Feb 2009, Thibault North wrote:
Le Friday, 27. February 2009 12:02:24 pm Florian Festi, vous avez écrit :
Panu Matilainen wrote:
%global _binaries_in_noarch_packages_terminate_build 0
Yup, that's the way to turn to turn it off from a spec.
Looks like it is not enough (same error). (Have put it right after %description)
Me thinks you have a typo in there somewhere, I just tried a mock rebuild of avr-libc and this makes it build just fine (it'll warn about the binaries but it wont stop the build):
--- avr-libc.spec 24 Feb 2009 03:43:26 -0000 1.3 +++ avr-libc.spec 28 Feb 2009 08:55:23 -0000 @@ -1,3 +1,5 @@ +%global _binaries_in_noarch_packages_terminate_build 0 + Name: avr-libc Version: 1.6.4 Release: 2%{?dist} @@ -20,7 +22,6 @@ Berkeley license is intented to be compa
Wouldn't removing the executable bit from the files in question be the better solution?
Florian
It comes with an executable file, avr-man, which is a shell script is /usr/bin, needs to be +x amha.
By the way, rpmbuild doesn't mention the problematic files. Any way to have them echoed ?
Not at the moment. It could (or should) do that of course.
- Panu -
Panu Matilainen wrote:
On Fri, 27 Feb 2009, Thibault North wrote:
Le Friday, 27. February 2009 12:02:24 pm Florian Festi, vous avez écrit :
Panu Matilainen wrote:
%global _binaries_in_noarch_packages_terminate_build 0
Yup, that's the way to turn to turn it off from a spec.
Looks like it is not enough (same error). (Have put it right after %description)
Me thinks you have a typo in there somewhere, I just tried a mock rebuild of avr-libc and this makes it build just fine (it'll warn about the binaries but it wont stop the build):
--- avr-libc.spec 24 Feb 2009 03:43:26 -0000 1.3 +++ avr-libc.spec 28 Feb 2009 08:55:23 -0000 @@ -1,3 +1,5 @@ +%global _binaries_in_noarch_packages_terminate_build 0
<sigh/> I consider this to be more a temporary ugly cludge, but a generally feasible approach.
1) You are still invoking find-debuginfo.sh
... /usr/lib/rpm/find-debuginfo.sh --strict-build-id /builddir/build/BUILD/avr-libc-1.6.4 ...
What is running find-debuginfo.sh on noarch packages supposed to do?
In theory, there may-be cases where some kind of "debuginfo" extraction on noarch packages may make sense, however I am not aware of rpm's/Fedora's find-debuginfo.sh doing anything useful on noarch packages.
2) Your approach doesn't cover the case of packages which contain different kind of binaries, e.g. native, foreign and scripts (noarch) at the same time. How would you want to handle this?
So far, the only functional trick I am aware about is to hack find-debuginfo.sh/brp-strip etc. from inside of rpm-specs such that these tools do not run their "finds" in places they are not supposed to look into.
This works fine, as long as packages don't mix up native and foreign binaries into the same directory. But if they do, things become really nasty.
Real world example: Older cross-GCCs do so, e.g. https://bugzilla.redhat.com/show_bug.cgi?id=485416
Ralf
Florian Festi wrote:
Panu Matilainen wrote:
%global _binaries_in_noarch_packages_terminate_build 0
Yup, that's the way to turn to turn it off from a spec.
Wouldn't removing the executable bit from the files in question be the better solution?
1) There ain't no executable bits set, in this case ;)
2) Depending on a package's details you sometimes can't unset these executable bits, e.g. in some scenarios sys-roots are supposed to be shareable between cross-hosts and the foreign system, e.g. via nfs-mounts.
3) Doing so may break some tools.
Ralf