Hi Martin, Am Tuesday 09 May 2006 08:33 schrieb Martin Mewes:
I think that if a packager wants to build packages for openSUSE a interactive build tool (IBT) should come up with something like this (more specific to read on opensuse-packaging soon):
You heard about the openSUSE Build Service ? I think almost everything you mentioned is there or is planned ... http://build.opensuse.org opensuse-buildservice mailing list may help you as well :)
Step 01: Enter the path/download URL to the $name.src.rpm
planned
Step 02: IBT extracts the contents to ~/build/$name Step 03: As the src.rpm extracts the sources for $name.rpm provided by the developer it should be somewhat analyzable by IBT. IBT should actually see the install instructions and can present the sections part by part.
we do not allow src.rpm upload, because we build also for Debian. But we could extend the command line tool to extract the src.rpm and to upload it automatically ...
Step 04: IBT should be able to have a set of directories builtin to give the packager good hints on how to change the install instructions.
rpm macros are doing this in general.
Example: Webmin wants to install to /usr/libexec/webmin by default, but the standards for openSUSE say that system packages should go to /opt/$package as example so the instructions for the installation regarding the installation path should be automatically altered by IBT.
IMHO a provided WebMin by openSUSE should install into /usr, but that may cause some conflicts ...
Step 05: In the end Webmin is managed over HTTP so the IBT should ask a couple of questions at the end, i.e.
Is this a package to be managed remotely? [ ] Please enter the the needed port: ________
IBT can automatically add code to the package to open the managing port in the firewall. [ ]
RPM-Commandline/YAST-Output: a) If you choose to leave this entry blank some code will be added to the package informing the end-user that he needs to open the given port in the firewall manually. b) If you choose to select this option code will be added informing the user that the given port will be opened automatically for him.
Good idea, maybe a YaST configuration template could be created, which can be configured by a simple file for each package ...
As you may see "Step 05" is part of the IBT which is directly supporting openSUSE. To now it is Webmin-specific but I will render it to be more general. In the end there should be something like this:
Step 06: openSUSE requires packages to be signed with a digital signature. If you do not have a GnuPG-key IBT will now build one for you. Please enter the following information:
Full Name: eMail: Description:
IBT will create the key and stores everything in a safe place to be used for future packaging. On will IBT will upload it to a key-server for you as well (highly recommended). This key should be used for packaging only.
We will have a global openSUSE Build Service key soon. We are not sure yet, if we really need the possibility to allow signing with user keys, but we spoke about a solution that you can sign the package provided by the Build Service via the command line tool (yes, without uploading the private key and without downloading/reuploading the rpms). bye adrian -- Adrian Schroeter SUSE Linux Products GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany email: adrian@suse.de