[opensuse-buildservice] more newby questions: project / package structure?
Hi, how are projects and packages structured? is it a fixed "one name for the project and then one for the package" system, or are further subdirs possible? I wonder about this: recent discussions with rpm experts have shown me that merging several spec files into one only creates a horrible maintainence hell. also they have compelling arguments, that one rpm for all distributions was something they tried for years with lots of work, and it never worked well. so I see as best solution to have codenames (e.g. fc3,fc4,fc5, sles9, sles10, oss10.0, dapper, edgy, etch, sarge, ...) and for each distribution *.spec.$codename or *.diff.gz.$codename. but this would require work on the build system side, and I get the impression noone wants that. the alternative from my side would be per distro packages. e.g. instead of "openct" I could have packages "openct.fc" and "openct.os" and "openct.sles" and "openct.sarge" and so on, upload spec files for each. this wouldn't require changes in the code base, and give me the flexibility I need, so I can simply build new packages for my open source projects, with minimal changes to the last spec file the distribution provides. but that way the list of packages might grow very long. is it possible to structure projects/packages a different way (i.e. path mechanism, no flat one project, one package subdir structure)? Regards, Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 2006-09-22 09:18:42 +0200, Andreas Jellinghaus wrote:
how are projects and packages structured? is it a fixed "one name for the project and then one for the package" system, or are further subdirs possible?
they are somewhat possible.
I wonder about this: recent discussions with rpm experts have shown me that merging several spec files into one only creates a horrible maintainence hell. also they have compelling arguments, that one rpm for all distributions was something they tried for years with lots of work, and it never worked well.
it really really depends. the main problems might be: paths for datadirs/users/init scripts but those can be easily handled by %if 0%{?dist_version} i would really appreciate if you could first analyze how big the differences are. and if you _really_ want those differences. if it boils down to a few %if ok. if not ... we will see how to solve your problem. atm the discussions feels a bit academic to me. just my 2 cents darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Fri, Sep 22, 2006 at 09:18:42AM +0200, Andreas Jellinghaus wrote:
how are projects and packages structured? is it a fixed "one name for the project and then one for the package" system, or are further subdirs possible?
I wonder about this: recent discussions with rpm experts have shown me that merging several spec files into one only creates a horrible maintainence hell.
You also get a horrible maintainence hell if you have lots of specfiles, because you'll have to keep them in sync if you add patches and the like.
also they have compelling arguments, that one rpm for all distributions was something they tried for years with lots of work, and it never worked well.
right, that's why we have the build service. Automatically create rpms for lots of distributions.
so I see as best solution to have codenames (e.g. fc3,fc4,fc5, sles9, sles10, oss10.0, dapper, edgy, etch, sarge, ...) and for each distribution *.spec.$codename or *.diff.gz.$codename. but this would require work on the build system side, and I get the impression noone wants that.
the alternative from my side would be per distro packages. e.g. instead of "openct" I could have packages "openct.fc" and "openct.os" and "openct.sles" and "openct.sarge" and so on, upload spec files for each. this wouldn't require changes in the code base, and give me the flexibility I need, so I can simply build new packages for my open source projects, with minimal changes to the last spec file the distribution provides.
but that way the list of packages might grow very long. is it possible to structure projects/packages a different way (i.e. path mechanism, no flat one project, one package subdir structure)?
I'm just preparing a patch that makes the build service look for <package-name>-<repository-name>.spec if a package contains multiple specfiles. So you can have a different specfile for every repository. I prefer a single specfile, though. Cheers, Michael. -- Michael Schroeder mls@suse.de 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
Michael Schroeder wrote:
I'm just preparing a patch that makes the build service look for <package-name>-<repository-name>.spec if a package contains multiple specfiles. So you can have a different specfile for every repository.
Excellent news! Please drop us a line when this is available. Cheers, +Thomas -- Thomas Anders (thomas.anders at blue-cable.de) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Fri, Sep 22, 2006 at 01:45:30PM +0200, Thomas Anders wrote:
Michael Schroeder wrote:
I'm just preparing a patch that makes the build service look for <package-name>-<repository-name>.spec if a package contains multiple specfiles. So you can have a different specfile for every repository.
Excellent news! Please drop us a line when this is available.
Should work now. Enjoy, Michael. -- Michael Schroeder mls@suse.de 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
Michael Schroeder wrote:
On Fri, Sep 22, 2006 at 01:45:30PM +0200, Thomas Anders wrote:
Michael Schroeder wrote:
I'm just preparing a patch that makes the build service look for <package-name>-<repository-name>.spec if a package contains multiple specfiles. So you can have a different specfile for every repository. Excellent news! Please drop us a line when this is available.
Should work now.
Assumed I have <package-name>-<repo1>.spec and <package-name>.spec, will all repositories other than <repo1> use <package-name>.spec or will I have to submit dedicated <package-name>-<repository-name>.spec files for *each* of them? +Thomas -- Thomas Anders (thomas.anders at blue-cable.de) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Sat, Nov 18, 2006 at 12:23:58AM +0100, Thomas Anders wrote:
Michael Schroeder wrote:
On Fri, Sep 22, 2006 at 01:45:30PM +0200, Thomas Anders wrote:
Michael Schroeder wrote:
I'm just preparing a patch that makes the build service look for <package-name>-<repository-name>.spec if a package contains multiple specfiles. So you can have a different specfile for every repository. Excellent news! Please drop us a line when this is available.
Should work now.
Assumed I have <package-name>-<repo1>.spec and <package-name>.spec, will all repositories other than <repo1> use <package-name>.spec or will I have to submit dedicated <package-name>-<repository-name>.spec files for *each* of them?
Looks like you need a spec file for each of them, currently, as the code returns an error if the spec file selection is ambiguous. Maybe I should just sort them and return the first match? I.e.: 1) get a list of all spec files starting with <package-name>-<repo>, sort them, if the list is not empty, return first entry. 2) get a list of all spec files starting with <package-name>, sort them, if the list is not empty, return first entry. 3) get a list of all spec files, sort them, if the list is not empty, return first entry. Is that a good idea? Thanks, Michael. -- Michael Schroeder mls@suse.de 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
On 2006-11-20 12:36:42 +0100, Michael Schroeder wrote:
On Sat, Nov 18, 2006 at 12:23:58AM +0100, Thomas Anders wrote:
Assumed I have <package-name>-<repo1>.spec and <package-name>.spec, will all repositories other than <repo1> use <package-name>.spec or will I have to submit dedicated <package-name>-<repository-name>.spec files for *each* of them?
Looks like you need a spec file for each of them, currently, as the code returns an error if the spec file selection is ambiguous.
Maybe I should just sort them and return the first match? I.e.:
1) get a list of all spec files starting with <package-name>-<repo>, sort them, if the list is not empty, return first entry.
2) get a list of all spec files starting with <package-name>, sort them, if the list is not empty, return first entry.
3) get a list of all spec files, sort them, if the list is not empty, return first entry.
Is that a good idea?
i think searching for <package-name>-<repo>.spec should be enough. my proposal would be 1. look for <package-name>-<repo>.spec 2. look for <package-name>.spec 3. error out. you can still glob for all specfiles starting with either <package-name>-<repo> or <package-name>. but i would error out if the list is longer than 2. darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Marcus Rueckert wrote:
i think searching for <package-name>-<repo>.spec should be enough. my proposal would be
1. look for <package-name>-<repo>.spec 2. look for <package-name>.spec 3. error out.
This'd be sufficient for my needs at least. Is this something you'd be willing to implemented in a rather short term? +Thomas -- Thomas Anders (thomas.anders at blue-cable.de) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Mon, Nov 20, 2006 at 12:51:07PM +0100, Marcus Rueckert wrote:
i think searching for <package-name>-<repo>.spec should be enough. my proposal would be
1. look for <package-name>-<repo>.spec 2. look for <package-name>.spec 3. error out.
This would break hundreds of packages that use <package-name>-<version>.spec Cheers, Michael. -- Michael Schroeder mls@suse.de 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
Michael Schroeder wrote:
Looks like you need a spec file for each of them, currently, as the code returns an error if the spec file selection is ambiguous.
I have <package-name>-Fedora_Extras_5.spec and <package-name>.spec, but BS currently uses <package-name>.spec for *all* repos, including Fedora_Extras_5. See project net-snmp, package net-snmp-main-snapshot for example. Is this to be expected, currently? +Thomas -- Thomas Anders (thomas.anders at blue-cable.de) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Mon, Nov 20, 2006 at 05:00:27PM +0100, Thomas Anders wrote:
Michael Schroeder wrote:
Looks like you need a spec file for each of them, currently, as the code returns an error if the spec file selection is ambiguous.
I have <package-name>-Fedora_Extras_5.spec and <package-name>.spec, but BS currently uses <package-name>.spec for *all* repos, including Fedora_Extras_5.
See project net-snmp, package net-snmp-main-snapshot for example.
Eeek, a bug. *STOMP*. Works now. And it picks "<package-name>.spec" for the other repos. Cheers, Michael. -- Michael Schroeder mls@suse.de 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
Michael Schroeder wrote:
Eeek, a bug. *STOMP*. Works now. And it picks "<package-name>.spec" for the other repos.
Confirmed. Thanks for the quick fix! +Thomas -- Thomas Anders (thomas.anders at blue-cable.de) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Michael Schroeder wrote:
1) get a list of all spec files starting with <package-name>-<repo>, sort them, if the list is not empty, return first entry.
2) get a list of all spec files starting with <package-name>, sort them, if the list is not empty, return first entry.
3) get a list of all spec files, sort them, if the list is not empty, return first entry.
/me (dreaming) would also love to see the ability to use
<package-name>-
participants (4)
-
Andreas Jellinghaus
-
Marcus Rueckert
-
Michael Schroeder
-
Thomas Anders