[opensuse-buildservice] patterns for speciffic build targets
Hi, Following http://en.opensuse.org/Build_Service_Tutorial#Create_Patterns , I'm trying to create some patterns (`osc meta -e mattern') for the server:php project. My goal is to - create a pattern, say PHP5, that installs php5 packages from the correstonding "base distro" repository, eg. when on 10.2, it would install from download.o.o/repositories/server:/php/openSUSE_10.2/ - create a pattern Apache2_and_PHP5, that installs php5 packages built against the Apache project, that is install from software.o.o/repositories/server:/php/server_apache_openSUSE_10.2/ _and_ from software.o.o/repositories/Apache/openSUSE_10.2/ - likewise for the server:database builds and the not yet present server:database + Apache combined builds My problem is that I don't know how to restrict a pattern to just some build targets. I created an Apache2_and_PHP5 pattern, but the resulting Apache2_and_PHP5.ymp files of course show up everywhere. I'd like to have different patterns with different descriptions for different build combinations. thanks, Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Michal Marek wrote:
My problem is that I don't know how to restrict a pattern to just some build targets. I created an Apache2_and_PHP5 pattern, but the resulting Apache2_and_PHP5.ymp files of course show up everywhere. I'd like to have different patterns with different descriptions for different build combinations.
Ping :) Is there a way to do it? If not, are there plans to add such feature? If not and if I find the time, would you accept a patch for this? Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Monday 24 September 2007 10:45:14 wrote Michal Marek:
Michal Marek wrote:
My problem is that I don't know how to restrict a pattern to just some build targets. I created an Apache2_and_PHP5 pattern, but the resulting Apache2_and_PHP5.ymp files of course show up everywhere. I'd like to have different patterns with different descriptions for different build combinations.
Ping :) Is there a way to do it?
No there isn't.
If not, are there plans to add such feature?
nope
If not and if I find the time, would you accept a patch for this?
I think so, you should propose maybe your idea how you want to store this information or what you would like to change for this in a brief mail before. Happy coding :) adrian -- Adrian Schroeter SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) email: adrian@suse.de --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Adrian Schröter wrote:
On Monday 24 September 2007 10:45:14 wrote Michal Marek:
Michal Marek wrote:
My problem is that I don't know how to restrict a pattern to just some build targets. ... I think so, you should propose maybe your idea how you want to store this information or what you would like to change for this in a brief mail before.
OK, I'll try to come up with something... Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Monday 24 September 2007 16:04:16 Adrian Schröter wrote:
On Monday 24 September 2007 10:45:14 wrote Michal Marek:
Michal Marek wrote:
My problem is that I don't know how to restrict a pattern to just some build targets. I created an Apache2_and_PHP5 pattern, but the resulting Apache2_and_PHP5.ymp files of course show up everywhere. I'd like to have different patterns with different descriptions for different build combinations. ... If not and if I find the time, would you accept a patch for this?
I think so, you should propose maybe your idea how you want to store this information or what you would like to change for this in a brief mail before.
OK, I'm back here. ===== idea 1 ===== My idea is to use the same <enable>/<disable> notation as used for packages, obsoleting the <uservisible> tag. Eg. <pattern xmlns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm"
<name>my pattern</name> <summary>my packages</summary> <description>my packages (standard build)</description> <publish> <disable repository="repo2" /> </publish> .... </pattern> <pattern xmlns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm"
<name>my pattern</name> <summary>my packages</summary> <description>my packages (special build)</description> <publish> <disable repository="repo1" /> </publish> .... </pattern> Of course, in real life we would have multiple <disable> lines and would have to update them from time to time. Example (still shortened): <description>PHP 5 (built against stock apache and mysql)</description> <publish> <!-- disable all but the base repositories --> <disable repository="server_apache_openSUSE_10.2" /> <disable repository="server_apache_openSUSE_10.3" /> <disable repository="server_database_openSUSE_10.2" /> <disable repository="server_database_openSUSE_10.3" /> <!-- ... and so on for sles9, sles10, 10.0, 10.1, Factory... --> </publish> <description>PHP 5 (built against latest apache)</description> <publish> <!-- disable all but the server_apache_* repositories --> <disable repository="openSUSE_10.2" /> <disable repository="openSUSE_10.3" /> <disable repository="server_database_openSUSE_10.2" /> <disable repository="server_database_openSUSE_10.3" /> <!-- ... and so on for sles9, sles10, 10.0, 10.1, Factory... --> </publish> ===== idea 2 ===== Above is bettern than nothing, but quite too much typing and maintenance. So another idea is to allow the <enable>/<disable> tags to select repositories by some king of globbing or reqular expressions. Example: <description>PHP 5 (built against stock apache)</description> <publish> <!-- disable all but the base repositories --> <disable repository="server_apache_*" match="glob" /> <disable repository="server_database_*" match="glob" /> </publish> <description>PHP 5 (built against latest apache)</description> <publish> <!-- disable all but the server_apache_* repositories --> <disable /> <!-- AFAICS enable overrides disable in the current code, which fits our needs --> <enable repository="server_apache_*" match="glob" /> </publish> What do you think? I can do the coding if you like the proposal :) Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Hi, any comments? Added Michael to cc as this is backend related. thanks, Michal Michal Marek wrote:
===== idea 1 =====
My idea is to use the same <enable>/<disable> notation as used for packages, obsoleting the <uservisible> tag. Eg.
<pattern xmlns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" <name>my pattern</name> <summary>my packages</summary> <description>my packages (standard build)</description> <publish> <disable repository="repo2" /> </publish> .... </pattern>
<pattern xmlns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" <name>my pattern</name> <summary>my packages</summary> <description>my packages (special build)</description> <publish> <disable repository="repo1" /> </publish> .... </pattern>
Of course, in real life we would have multiple <disable> lines and would have to update them from time to time. Example (still shortened):
<description>PHP 5 (built against stock apache and mysql)</description> <publish> <!-- disable all but the base repositories --> <disable repository="server_apache_openSUSE_10.2" /> <disable repository="server_apache_openSUSE_10.3" /> <disable repository="server_database_openSUSE_10.2" /> <disable repository="server_database_openSUSE_10.3" /> <!-- ... and so on for sles9, sles10, 10.0, 10.1, Factory... --> </publish>
<description>PHP 5 (built against latest apache)</description> <publish> <!-- disable all but the server_apache_* repositories --> <disable repository="openSUSE_10.2" /> <disable repository="openSUSE_10.3" /> <disable repository="server_database_openSUSE_10.2" /> <disable repository="server_database_openSUSE_10.3" /> <!-- ... and so on for sles9, sles10, 10.0, 10.1, Factory... --> </publish>
===== idea 2 =====
Above is bettern than nothing, but quite too much typing and maintenance. So another idea is to allow the <enable>/<disable> tags to select repositories by some king of globbing or reqular expressions. Example:
<description>PHP 5 (built against stock apache)</description> <publish> <!-- disable all but the base repositories --> <disable repository="server_apache_*" match="glob" /> <disable repository="server_database_*" match="glob" /> </publish>
<description>PHP 5 (built against latest apache)</description> <publish> <!-- disable all but the server_apache_* repositories --> <disable /> <!-- AFAICS enable overrides disable in the current code, which fits our needs --> <enable repository="server_apache_*" match="glob" /> </publish>
What do you think? I can do the coding if you like the proposal :)
Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
--------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Mon, Dec 17, 2007 at 11:23:09AM +0100, Michal Marek wrote:
Hi,
any comments? Added Michael to cc as this is backend related.
Hmm, I'd rather put the patterns from project space into package space, then they can re-use standard package enable/disable. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (3)
-
Adrian Schröter
-
Michael Schroeder
-
Michal Marek