[opensuse-packaging] Devel packages: Handling factory and older releases
I've split up a devel package from sane-backends for openSUSE:Factory. I have added to packages needing the devel library the following: %if 0%{?suse_version} > 1130 BuildRequires: sane-backends-devel %else BuildRequires: sane-backends %endif This allows the package, e.g. xsane, to build in an original 11.3 environment. So, now the package works fine - unless sane-backends and the package are in the same devel project since the split was done unconditionally in sane- backends. Now the package xsane will not build for older releases since it has buildrequires on sane-backends but sane-backends in the same devel project has a separate devel package that would need to be required. So, how to solve this the best way? Andreas -- Andreas Jaeger, Program Manager openSUSE, aj@{novell.com,opensuse.org} Twitter: jaegerandi | Identica: jaegerandi SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Maxfeldstr. 5, 90409 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Thu, 16 Sep 2010, Andreas Jaeger wrote:
I've split up a devel package from sane-backends for openSUSE:Factory. I have added to packages needing the devel library the following:
%if 0%{?suse_version} > 1130 BuildRequires: sane-backends-devel %else BuildRequires: sane-backends %endif
This allows the package, e.g. xsane, to build in an original 11.3 environment.
So, now the package works fine - unless sane-backends and the package are in the same devel project since the split was done unconditionally in sane- backends. Now the package xsane will not build for older releases since it has buildrequires on sane-backends but sane-backends in the same devel project has a separate devel package that would need to be required.
So, how to solve this the best way?
Avoid package splits to be effective for old releases by proper %ifdefing those changes (in this case in sane). Like we require for updates to old products which shouldn't introduce this kind of changes either. Or put in explicit versioned requires instead (thus, require the new version from the devel project). Richard. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Le jeudi 16 septembre 2010, à 10:47 +0200, Andreas Jaeger a écrit :
I've split up a devel package from sane-backends for openSUSE:Factory. I have added to packages needing the devel library the following:
%if 0%{?suse_version} > 1130 BuildRequires: sane-backends-devel %else BuildRequires: sane-backends %endif
This allows the package, e.g. xsane, to build in an original 11.3 environment.
So, now the package works fine - unless sane-backends and the package are in the same devel project since the split was done unconditionally in sane- backends. Now the package xsane will not build for older releases since it has buildrequires on sane-backends but sane-backends in the same devel project has a separate devel package that would need to be required.
So, how to solve this the best way?
Don't do the %if magic if the package is maintained in the same project as sane-backends. You really don't need it. If people take xsane from this project and build it on 11.3 without taking the dependencies from this same project, then they're doing it wrong, unfortunately. Cheers, Vincent -- Les gens heureux ne sont pas pressés. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hello, On Sep 16 11:00 Vincent Untz wrote:
Le jeudi 16 septembre 2010, à 10:47 +0200, Andreas Jaeger a écrit :
I've split up a devel package from sane-backends for openSUSE:Factory. I have added to packages needing the devel library the following:
%if 0%{?suse_version} > 1130 BuildRequires: sane-backends-devel %else BuildRequires: sane-backends %endif
This allows the package, e.g. xsane, to build in an original 11.3 environment.
So, now the package works fine - unless sane-backends and the package are in the same devel project since the split was done unconditionally in sane- backends. Now the package xsane will not build for older releases since it has buildrequires on sane-backends but sane-backends in the same devel project has a separate devel package that would need to be required.
So, how to solve this the best way?
Don't do the %if magic if the package is maintained in the same project as sane-backends. You really don't need it.
If people take xsane from this project and build it on 11.3 without taking the dependencies from this same project, then they're doing it wrong, unfortunately.
Thanks for the info! Actually it is not xsane but iscan-free which is in the same devel project "graphics" as sane-backends. I will fix iscan-free as you suggested. By the way: Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system? At least it seems it is not possible to exclude the current devel project via the web interface because it is not listed in https://build.opensuse.org/package/repositories?package=iscan-free&project=graphics Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex
Le jeudi 16 septembre 2010, à 12:17 +0200, Johannes Meixner a écrit :
Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system?
It's possible if you build locally, with "osc build": you can use --alternative-project for this. But for the builds occuring on the build service, I don't think it is. Vincent -- Les gens heureux ne sont pas pressés. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Johannes Meixner wrote:
Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system?
That would contradict the original idea behind the devel projects. They were meant to group related packages. In reality that's just not the case though so such a feature would be useful to have IMO (e.g. for devel:openSUSE:Factory). cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Fri, Sep 17, 2010 at 09:16:07AM +0200, Ludwig Nussel wrote:
Johannes Meixner wrote:
Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system?
That would contradict the original idea behind the devel projects. They were meant to group related packages. In reality that's just not the case though so such a feature would be useful to have IMO (e.g. for devel:openSUSE:Factory).
I'd rather see the devel projects made saner. 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-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hello, On Sep 17 10:35 Michael Schroeder wrote:
On Fri, Sep 17, 2010 at 09:16:07AM +0200, Ludwig Nussel wrote:
Johannes Meixner wrote:
Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system?
That would contradict the original idea behind the devel projects. They were meant to group related packages. In reality that's just not the case though so such a feature would be useful to have IMO (e.g. for devel:openSUSE:Factory).
I'd rather see the devel projects made saner.
I don't think it is you who defines what is sane and what is insane. Doesn't it belong to the particular group of users how they define what belongs to their devel project? If I am right, a devel project is meant to group related packages but what exactly makes them related belongs to the particular group of users of the particular devel project. In this case it belongs to them, to define which packages from which repositories should be used to install the build system for their particular devel project. Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On 2010-09-16 12:17:15 +0200, Johannes Meixner wrote:
Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system?
yes. <useforbuild> flag. but then you wouldnt notice if related libraries break your app until they get submitted to factory. darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hello, On Sep 17 09:51 Marcus Rueckert wrote:
On 2010-09-16 12:17:15 +0200, Johannes Meixner wrote:
Is it somehow possible to exclude the current devel project from the repositories where the build service looks for packages to be installed for the build system?
yes.
<useforbuild> flag.
but then you wouldnt notice if related libraries break your app until they get submitted to factory.
Not necessarily. Only if you have a strict view which packages are allowed in a devel project - i.e. when all packages in all devel projects must in any case end up in Factory - in other words: When devel projects are only allowed for packages in Factory. Does the openSUSE build service have such a restriction? Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Andreas Jaeger wrote:
I've split up a devel package from sane-backends for openSUSE:Factory. I have added to packages needing the devel library the following:
%if 0%{?suse_version} > 1130 BuildRequires: sane-backends-devel %else BuildRequires: sane-backends %endif
This allows the package, e.g. xsane, to build in an original 11.3 environment.
So, now the package works fine - unless sane-backends and the package are in the same devel project since the split was done unconditionally in sane- backends. Now the package xsane will not build for older releases since it has buildrequires on sane-backends but sane-backends in the same devel project has a separate devel package that would need to be required.
So, how to solve this the best way?
As long as there is no intend to release both or either involved package as version update with the exact same spec file on older releases just don't care about old releases. A potential backports project will either have both packages anyways or can add appropriate Subsitute lines in the prjconf. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (7)
-
Andreas Jaeger
-
Johannes Meixner
-
Ludwig Nussel
-
Marcus Rueckert
-
Michael Schroeder
-
Richard Guenther
-
Vincent Untz