[opensuse-buildservice] building cross distribution packages
Hi, I'm packaging my own programs using openSUSE build service, until now for openSUSE only, but I'm trying also packaging for other distributions. I've created a subproject at 'home:plcl:test', with only one KDE4 package (kmetronome) and repositories for openSUSE, xUbuntu, Fedora and Mandriva. I've started reading some documentation, at: http://en.opensuse.org/Build_Service/cross_distribution_package_how_to And a pointer provided by Will Stephenson: http://www.kdedevelopers.org/node/3994 Looking to the projects packaged by Lubos Lunak, like ksshaskpass and wmiface it seemed to me an easy task, but I was wrong... First, this error in Fedora (10, 11 and 12) packages: CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage The only way to fix it was to add "BuildRequires: gcc-c++". But, this doesn't match the Fedora documentation: http://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2 "There is no need to include the following packages or their dependencies as BuildRequires because they would occur too often." And the C++ compiler is among those common packages. Why I need to include it in OBS? Second, for Mandriva there is a failure installing some dependencies. error: Failed build dependencies: kde4-macros is needed by kmetronome-0.9.1-28.1.x86_64 kdelibs4-devel is needed by kmetronome-0.9.1-28.1.x86_64 dbus-devel is needed by kmetronome-0.9.1-28.1.x86_64 alsa-lib-devel is needed by kmetronome-0.9.1-28.1.x86_64 I've tried to follow the directions in this document: http://wiki.mandriva.com/en/Development/Tasks/Packaging/Policies/Kde4 But something is wrong, and I am unable to see what and where. Any clues? Regards, Pedro -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Friday 18 of December 2009 22:33:05 Pedro Lopez-Cabanillas wrote:
Hi,
I'm packaging my own programs using openSUSE build service, until now for openSUSE only, but I'm trying also packaging for other distributions. I've created a subproject at 'home:plcl:test', with only one KDE4 package (kmetronome) and repositories for openSUSE, xUbuntu, Fedora and Mandriva.
I've started reading some documentation, at: http://en.opensuse.org/Build_Service/cross_distribution_package_how_to And a pointer provided by Will Stephenson: http://www.kdedevelopers.org/node/3994 Looking to the projects packaged by Lubos Lunak, like ksshaskpass and wmiface it seemed to me an easy task, but I was wrong...
My home:llunak:kde repository does not build against the distribution build repositories themselves, but uses home:llunak:distro:<distro> as the build repository, and that sets up some things that unify usage of the .spec file. If you check out home:llunak:distro/setup and run setup_client_repo from there, it will set those build repositories up for the given repository.
First, this error in Fedora (10, 11 and 12) packages: CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage The only way to fix it was to add "BuildRequires: gcc-c++". But, this doesn't match the Fedora documentation: http://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2 "There is no need to include the following packages or their dependencies as BuildRequires because they would occur too often." And the C++ compiler is among those common packages. Why I need to include it in OBS?
You generally don't, repo prjconf is used to handle such things.
Second, for Mandriva there is a failure installing some dependencies. error: Failed build dependencies: kde4-macros is needed by kmetronome-0.9.1-28.1.x86_64 kdelibs4-devel is needed by kmetronome-0.9.1-28.1.x86_64 dbus-devel is needed by kmetronome-0.9.1-28.1.x86_64 alsa-lib-devel is needed by kmetronome-0.9.1-28.1.x86_64
No idea, but presumably the same cause.
I've tried to follow the directions in this document: http://wiki.mandriva.com/en/Development/Tasks/Packaging/Policies/Kde4 But something is wrong, and I am unable to see what and where.
I don't know if the KDE4 packaging policies are compatible across distributions. I tried to keep it as similar as possible, but ultimately home:llunak:distro* sets it up the openSUSE way. It does not build PS: I guess it's time to document this better. In case you'd be willing to test and help with it, just say so ;). -- Lubos Lunak openSUSE Boosters team, KDE developer l.lunak@suse.cz , l.lunak@kde.org -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Monday, January 4, 2010, Lubos Lunak wrote:
My home:llunak:kde repository does not build against the distribution build repositories themselves, but uses home:llunak:distro:<distro> as the build repository, and that sets up some things that unify usage of the .spec file.
If you check out home:llunak:distro/setup and run setup_client_repo from there, it will set those build repositories up for the given repository. [...]
I've tried to follow the directions in this document: http://wiki.mandriva.com/en/Development/Tasks/Packaging/Policies/Kde4 But something is wrong, and I am unable to see what and where.
I don't know if the KDE4 packaging policies are compatible across distributions. I tried to keep it as similar as possible, but ultimately home:llunak:distro* sets it up the openSUSE way. It does not build
PS: I guess it's time to document this better. In case you'd be willing to test and help with it, just say so ;).
Thank you very much for your answer. I'm using the OBS web interface, not the osc CLI. Are your project's prjconf settings available somewhere in the web interface? Is there some way to use the web interface to setup and build cross distribution packages other than Ubuntu/Debian packages? (I had no problems whatsoever building Ubuntu packages, and I don't understand why Fedora and Mandriva RPMs need to be so different.) It may be comfortable a single .spec file for all distros, but this universal .spec file is not going to work later when used inside another RPM build environment, for instance in Mandriva's Cooker. I would prefer to use three different .spec files for openSUSE, Fedora and Mandriva instead of scattering many conditional rules: %if 0%{?suse_version}, %if 0%{?fedora}, %if 0%{?mdkversion} ... I would like to help testing and documenting cross distribution build procedures, but for me the web interface is the killer feature of OBS. Regards, Pedro -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
2010/1/5 Pedro Lopez-Cabanillas <pedro.lopez.cabanillas@gmail.com>:
On Monday, January 4, 2010, Lubos Lunak wrote:
My home:llunak:kde repository does not build against the distribution build repositories themselves, but uses home:llunak:distro:<distro> as the build repository, and that sets up some things that unify usage of the .spec file.
If you check out home:llunak:distro/setup and run setup_client_repo from there, it will set those build repositories up for the given repository. [...]
I've tried to follow the directions in this document: http://wiki.mandriva.com/en/Development/Tasks/Packaging/Policies/Kde4 But something is wrong, and I am unable to see what and where.
I don't know if the KDE4 packaging policies are compatible across distributions. I tried to keep it as similar as possible, but ultimately home:llunak:distro* sets it up the openSUSE way. It does not build
PS: I guess it's time to document this better. In case you'd be willing to test and help with it, just say so ;).
Thank you very much for your answer. I'm using the OBS web interface, not the osc CLI. Are your project's prjconf settings available somewhere in the web interface? Is there some way to use the web interface to setup and build
once you know which project you want to see conf, you can use osc client to see it like that, by replacing home:surfzoid : osc meta prjconf home:surfzoid -e or with web fe : https://build.opensuse.org/project/prjconf?project=home%3Asurfzoid MonoOSC don't have yet this feature, i thinking about add it.
cross distribution packages other than Ubuntu/Debian packages? (I had no problems whatsoever building Ubuntu packages, and I don't understand why Fedora and Mandriva RPMs need to be so different.)
It may be comfortable a single .spec file for all distros, but this universal .spec file is not going to work later when used inside another RPM build environment, for instance in Mandriva's Cooker. I would prefer to use three different .spec files for openSUSE, Fedora and Mandriva instead of scattering many conditional rules: %if 0%{?suse_version}, %if 0%{?fedora}, %if 0%{?mdkversion} ...
I would like to help testing and documenting cross distribution build procedures, but for me the web interface is the killer feature of OBS.
Regards, Pedro -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
-- Cordially. Deploy your softwares for all platforms and finally update them in 3 clicks. Try now the OpenSource MonoOSC tool http://monoosc.sourceforge.net/ http://download.opensuse.org/repositories/home:/surfzoid/ http://download.opensuse.org/repositories/home:/surfzoid:/DebianUbuntu/ http://download.opensuse.org/repositories/home:/surfzoid:/DebianUbuntu:/Mono... windows take you more($), Linux give you more!! Small Eric Quotations of the days: --------------------------------------------------------------------------- I have no special talents. I am only passionately curious -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tuesday, January 5, 2010, Petit Eric wrote:
Thank you very much for your answer. I'm using the OBS web interface, not the osc CLI. Are your project's prjconf settings available somewhere in the web interface? Is there some way to use the web interface to setup and build
once you know which project you want to see conf, you can use osc client to see it like that, by replacing home:surfzoid : osc meta prjconf home:surfzoid -e or with web fe : https://build.opensuse.org/project/prjconf?project=home%3Asurfzoid
MonoOSC don't have yet this feature, i thinking about add it.
Thanks! I'm aware of MonoOSC. But even with all the features, it has the same limitations as the osc CLI: you need a workstation to install the software, with both network connection and local storage access. This is a problem if you work in several computers running several different operating systems and sometimes in a kiosk setup. Regards, Pedro -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 05.01.2010 10:13, Pedro Lopez-Cabanillas wrote:
On Monday, January 4, 2010, Lubos Lunak wrote:
My home:llunak:kde repository does not build against the distribution build repositories themselves, but uses home:llunak:distro:<distro> as the build repository, and that sets up some things that unify usage of the .spec file.
If you check out home:llunak:distro/setup and run setup_client_repo from there, it will set those build repositories up for the given repository. [...]
I've tried to follow the directions in this document: http://wiki.mandriva.com/en/Development/Tasks/Packaging/Policies/Kde4 But something is wrong, and I am unable to see what and where.
I don't know if the KDE4 packaging policies are compatible across distributions. I tried to keep it as similar as possible, but ultimately home:llunak:distro* sets it up the openSUSE way. It does not build
PS: I guess it's time to document this better. In case you'd be willing to test and help with it, just say so ;).
Thank you very much for your answer. I'm using the OBS web interface, not the osc CLI. Are your project's prjconf settings available somewhere in the web interface?
There is a link to the project config at the left bottom of your projects page, it can also be changed there. For example: https://build.opensuse.org/project/prjconf?project=FATE%3Adbxml-2.4 Greetings -- Thomas Schmidt (tschmidt [at] suse.de) SUSE Linux Products GmbH :: Research & Development :: Tools "Don't Panic", Douglas Adams (1952 - 11.05.2001) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tuesday 05 of January 2010 10:13:02 Pedro Lopez-Cabanillas wrote:
It may be comfortable a single .spec file for all distros, but this universal .spec file is not going to work later when used inside another RPM build environment, for instance in Mandriva's Cooker.
That's why I did it, to have only one .spec file. Adding few macros and substitutes is certainly simpler than unifying whole .spec rules for different distros. But that's your choice.
I would prefer to use three different .spec files for openSUSE, Fedora and Mandriva instead of scattering many conditional rules: %if 0%{?suse_version}, %if 0%{?fedora}, %if 0%{?mdkversion} ...
http://en.opensuse.org/Build_Service/Tips_and_Tricks#Using_different_spec_fi...
I would like to help testing and documenting cross distribution build procedures, but for me the web interface is the killer feature of OBS.
-- Lubos Lunak openSUSE Boosters team, KDE developer l.lunak@suse.cz , l.lunak@kde.org -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tuesday, January 5, 2010, Lubos Lunak wrote:
It may be comfortable a single .spec file for all distros, but this universal .spec file is not going to work later when used inside another RPM build environment, for instance in Mandriva's Cooker.
That's why I did it, to have only one .spec file. Adding few macros and substitutes is certainly simpler than unifying whole .spec rules for different distros. But that's your choice.
My question is: If I get a source RPM from Mandriva and extract the source tarball and the spec, with these files I can't build the RPM for Mandriva in my OBS project. Same for Fedora packages. Why? It is not the same for Ubuntu. I can build Ubuntu packages without adding anything to the prjconf settings. Regards, Pedro -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tuesday 05 of January 2010, Pedro Lopez-Cabanillas wrote:
On Tuesday, January 5, 2010, Lubos Lunak wrote:
It may be comfortable a single .spec file for all distros, but this universal .spec file is not going to work later when used inside another RPM build environment, for instance in Mandriva's Cooker.
It should if you took it from the .src.rpm (as that one is created after the substitutions are done).
That's why I did it, to have only one .spec file. Adding few macros and substitutes is certainly simpler than unifying whole .spec rules for different distros. But that's your choice.
My question is: If I get a source RPM from Mandriva and extract the source tarball and the spec, with these files I can't build the RPM for Mandriva in my OBS project. Same for Fedora packages. Why?
I see. But that is not what your original question was about, as this has nothing to do with building cross-distro. What you are asking about now is simply building a Mandriva package the Mandriva way, without caring about other distros. My personal guess is that the build service doesn't know %{mdkversion} and using %{mandriva_version} instead would work. -- Lubos Lunak openSUSE Boosters team, KDE developer l.lunak@suse.cz , l.lunak@kde.org -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (4)
-
Lubos Lunak
-
Pedro Lopez-Cabanillas
-
Petit Eric
-
Thomas Schmidt