[opensuse-buildservice] How can I publish MS Windows installer MSI packages?
Hi, I am using the openSUSE build service to build a MS Windows installer package for the Evince Document Viewer (evince.msi) on the openSUSE build service, running the build commands from a .spec file. I have got this working quite well, but now, my problem is, where to put the resulting evince.msi file. Normally, the resulting binaries of a .spec file are put into rpm packages that are then published by the build service. Of course, I can put the evince.msi file into a rpm package as well and let the rpm package be published by the build service. But because MS Windows(-users) cannot handle rpm packages, this is not very usefull. I would like to publish msi files, not rpm files with msi files in it. Is this possible and/or can the build service be adopted to publish *.msi files resulting from a .spec file build? Kind regards, Hib Eris -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
I would think since it's rpmbuild that's reading the spec and producing the rpms at the core of a spec build that you're always going to have to produce rpms since the build service isn't modifying rpmbuild at all. Maybe some convention (say in the Provides fields) could be adopted so that the buildservice bs_sched daemon or bs_publish daemon knows that the rpm contains an msi and that it should crack open the rpm and publish the msi separately. On Fri, 2009-12-18 at 07:58 -0600, Hib Eris wrote:
Hi,
I am using the openSUSE build service to build a MS Windows installer package for the Evince Document Viewer (evince.msi) on the openSUSE build service, running the build commands from a .spec file.
I have got this working quite well, but now, my problem is, where to put the resulting evince.msi file. Normally, the resulting binaries of a .spec file are put into rpm packages that are then published by the build service.
Of course, I can put the evince.msi file into a rpm package as well and let the rpm package be published by the build service. But because MS Windows(-users) cannot handle rpm packages, this is not very usefull. I would like to publish msi files, not rpm files with msi files in it.
Is this possible and/or can the build service be adopted to publish *.msi files resulting from a .spec file build?
Kind regards,
Hib Eris
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Freitag, 18. Dezember 2009 14:58:17 schrieb Hib Eris:
Hi,
I am using the openSUSE build service to build a MS Windows installer package for the Evince Document Viewer (evince.msi) on the openSUSE build service, running the build commands from a .spec file.
I have got this working quite well, but now, my problem is, where to put the resulting evince.msi file. Normally, the resulting binaries of a .spec file are put into rpm packages that are then published by the build service.
Of course, I can put the evince.msi file into a rpm package as well and let the rpm package be published by the build service. But because MS Windows(-users) cannot handle rpm packages, this is not very usefull. I would like to publish msi files, not rpm files with msi files in it.
Is this possible and/or can the build service be adopted to publish *.msi files resulting from a .spec file build?
Do you do this with your own build service instance ? You can of course extend bs_publish to extract a package. Dunno how to detect if a package shall be extracted or not. It would be IMHO of course way better, if OBS would understand .msi as own packaging format like it does with .rpm or .deb. In that way you could reuse the .msi for building further packages. And all that not only on linux with cross compile, but on a windows OS system which would allow also to use native compilers. All this is possible to implement, it is just some work. what do you think about that ? bye adrian -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Hi,
On Fri, Dec 18, 2009 at 4:33 PM, Adrian Schröter
Am Freitag, 18. Dezember 2009 14:58:17 schrieb Hib Eris:
Hi,
I am using the openSUSE build service to build a MS Windows installer package for the Evince Document Viewer (evince.msi) on the openSUSE build service, running the build commands from a .spec file.
Do you do this with your own build service instance ?
No, I am using the openSUSE build service, you can see it in my home project, https://build.opensuse.org/project/show?project=home%3Ahiberis The mingw32-evince package builds a mingw32-evince-msi.rpm file, containing an evince.msi file.
You can of course extend bs_publish to extract a package. Dunno how to detect if a package shall be extracted or not.
It would be IMHO of course way better, if OBS would understand .msi as own packaging format like it does with .rpm or .deb. In that way you could reuse the .msi for building further packages.
Well, by convention, rpmbuild takes build instructions from .spec files to build .rpms and debuild uses .dsc files to create .debs. We do not have an input file format for build instructions to build msi files I think. However, nothing is stopping us from using rpmbuild (on linux) and the .spec format to specify build instructions for other files than rpms. We can build debs from a .spec file, or msi's. That is what I do: in mingw32-evince.spec I specify build instructions to build *.msi files. It seems that rpmbuild has no problem with that, and will be happy to place the msi file in, say for example, /usr/src/packages/MSI. Now, I do not know how exactly all this fantastic build service stuff works, but from http://gitorious.org/opensuse/build/blobs/master/build#line1182 I reckon that for spec builds, only rpm files are extracted. It seems that for deb/kiwi builds all files are extracted. Maybe adding the lines: mkdir -p OTHER find . -type f | while read i; do mv "$i" OTHER/; done to the spec build as well, would already be enough for me. Or maybe not, I do not have the big picture on all this extracting, moving, publishing.
And all that not only on linux with cross compile, but on a windows OS system which would allow also to use native compilers.
All this is possible to implement, it is just some work.
A windows build service would be great, but I think it is quite some work. You will basically need to set up your own windows distribution of all rpmbuild's requirements. It is indeed an interesting idea, I'd really like to have only one evince.spec file to build evince.rpm, evince.deb and evince.msi! Hib -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (3)
-
Adrian Schröter
-
Hib Eris
-
Luke Imhoff