[opensuse-packaging] SLE and noarch subpackages
Hi guys. I have a weird problem building octave-forge[0] in SLE (and only SLE). Aside from the fact that the package has a lot more problems, I'm getting a weird "blabla is not allowed in a noarch package" messages[1], but, funny thing is, all those files are in arch-dependant subpackages. It works fine for all the opensuse versions (including factory), but not SLE. Any ideas how to work around this? [0] https://build.opensuse.org/package/show?package=octave-forge&project=home%3Aklaussfreire%3Abranches%3Ascience [1] https://build.opensuse.org/package/rawlog?arch=x86_64&package=octave-forge&project=home%3Aklaussfreire%3Abranches%3Ascience&repository=SLE_11 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Aug 28, 2012 at 11:41:57AM -0300, Claudio Freire wrote:
I have a weird problem building octave-forge[0] in SLE (and only SLE). Aside from the fact that the package has a lot more problems, I'm getting a weird "blabla is not allowed in a noarch package" messages[1], but, funny thing is, all those files are in arch-dependant subpackages. It works fine for all the opensuse versions (including factory), but not SLE.
I guess the rpm version in SLE doesn't understand noarch for subpackages, so the "BuildArch: noarch" line turns everything into a noarch package. So disable all those BuildArch lines when building for SLE 11. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
I guess the rpm version in SLE doesn't understand noarch for subpackages, so the "BuildArch: noarch" line turns everything into a noarch package. So disable all those BuildArch lines when building for SLE 11.
This makes sense.... it happens all the time in RHEL-5 (rpm 4.3) but not on 6 (rpm 4.8). On RHEL we can use conditionals like: %if 0%{?rhel} >= 6 BuildArch: noarch %endif I suppose this can be done for SLE, but I don't know the correct versioning for it, should be something like: %if 0%{?suse_version} >= 11XX BuildArch: noarch %endif Please check the '11XX' because this needs to be accurate. Check the changelog of rpm and see in which version of RPM this stuff was fixed. NM -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Aug 28, 2012 at 03:52:08PM +0100, Nelson Marques wrote:
I guess the rpm version in SLE doesn't understand noarch for subpackages, so the "BuildArch: noarch" line turns everything into a noarch package. So disable all those BuildArch lines when building for SLE 11.
This makes sense.... it happens all the time in RHEL-5 (rpm 4.3) but not on 6 (rpm 4.8).
On RHEL we can use conditionals like:
%if 0%{?rhel} >= 6 BuildArch: noarch %endif
I suppose this can be done for SLE, but I don't know the correct versioning for it, should be something like: %if 0%{?suse_version} >= 11XX BuildArch: noarch %endif
I thinkit works since openSUSE 11.2, i.e. use: %if 0%{?suse_version} > 1110 BuildArch: noarch %endif Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Just for some extra information, RPM supports 'noarch' sub-packages from 4.6.0 onwards; So, better check in which version of SLE this version of RPM was introduced and you get the 'magic' number. Most likely in the version that came out after February 2009 :) http://lists.rpm.org/pipermail/rpm-announce/2009-February/000015.html Keep in mind one thing though... If the main package is arch dependent, you can have 'noarch' sub-packages... but if the main package is 'noarch' then all the packages will be 'noarch'. I haven't confirmed this on *SUSE, but thats how it works on RHEL, since this is a RPM feature, it should be the same I guess. NM 2012/8/28 Michael Schroeder <mls@suse.de>:
On Tue, Aug 28, 2012 at 03:52:08PM +0100, Nelson Marques wrote:
I guess the rpm version in SLE doesn't understand noarch for subpackages, so the "BuildArch: noarch" line turns everything into a noarch package. So disable all those BuildArch lines when building for SLE 11.
This makes sense.... it happens all the time in RHEL-5 (rpm 4.3) but not on 6 (rpm 4.8).
On RHEL we can use conditionals like:
%if 0%{?rhel} >= 6 BuildArch: noarch %endif
I suppose this can be done for SLE, but I don't know the correct versioning for it, should be something like: %if 0%{?suse_version} >= 11XX BuildArch: noarch %endif
I thinkit works since openSUSE 11.2, i.e. use:
%if 0%{?suse_version} > 1110 BuildArch: noarch %endif
Cheers, Michael.
-- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
-- Nelson Marques /* Y aquel viejo trovador con el alba se marchó, rumbo de nuevo a salvar otra corazón. */ -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Aug 28, 2012 at 12:06 PM, Nelson Marques <nmo.marques@gmail.com> wrote:
Keep in mind one thing though... If the main package is arch dependent, you can have 'noarch' sub-packages... but if the main package is 'noarch' then all the packages will be 'noarch'. I haven't confirmed this on *SUSE, but thats how it works on RHEL, since this is a RPM feature, it should be the same I guess.
I've seen this too, and rpm.org's ticket #48 [0] would suggest it's also true in opensuse. That's why the "octave-forge" package, even being just docs, is not noarch. So, it seems openSUSE >= 11.2 has rpm 4.7 and beyond, while SLE 11 still has rpm-4.4 Thanks for the help [0] http://www.rpm.org/ticket/78 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
I suppose you get that because you are installing non-arch dependent files in %{_libdir}/%{name}, where this traditionally go to %{_datadir}/%{name}, ex: images and text files. But I guess someone can point you the solution, I'm not familiar with SLE. You can override that through rpmlintrc, though I doubt people will like things like 'setBadness' and friends. NM 2012/8/28 Claudio Freire <klaussfreire@gmail.com>:
Hi guys.
I have a weird problem building octave-forge[0] in SLE (and only SLE). Aside from the fact that the package has a lot more problems, I'm getting a weird "blabla is not allowed in a noarch package" messages[1], but, funny thing is, all those files are in arch-dependant subpackages. It works fine for all the opensuse versions (including factory), but not SLE.
Any ideas how to work around this?
[0] https://build.opensuse.org/package/show?package=octave-forge&project=home%3Aklaussfreire%3Abranches%3Ascience [1] https://build.opensuse.org/package/rawlog?arch=x86_64&package=octave-forge&project=home%3Aklaussfreire%3Abranches%3Ascience&repository=SLE_11 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- Nelson Marques /* Y aquel viejo trovador con el alba se marchó, rumbo de nuevo a salvar otra corazón. */ -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (3)
-
Claudio Freire
-
Michael Schroeder
-
Nelson Marques