[opensuse-packaging] How to "not use for build" another package in same project?
Hello, in short: I have a package "foo" in a development project where also a package "bar" in that same project exists that is used to build "foo". I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo". Can I specify that in my package "foo" and if yes how can I do it? Details: I have "sane-backends" in its development project "graphics" where also "libgphoto2" exists. sane-backends needs libgphoto2 to build. I build sane-backends also for released openSUSE versions. Now when a user of a released openSUSE version likes to install sane-backends from the graphics project he also needs libgphoto2 from the graphics project. But unfortunately the newest version of libgphoto2 from the graphics project cannot be installed into released openSUSE versions without dependency issues because other packages in the released openSUSE versions need an older version of libgphoto2. If I could build sane-backends in the graphics project not with libgphoto2 from the graphics project but with libgphoto2 from the repository that is used to build sane-backends, then sane-backends would require the libgphoto2 version of the released openSUSE versions and users could install sane-backends from the graphics project into their released openSUSE versions without dependency issues. As a workaround the maintainer of libgphoto2 has now disabled in the graphics project that libgphoto2 is used for build for released openSUSE versions but this has the drawback that libgphoto2 is no longer used for build for all packages in the graphics project. What I would prefer is that I could specify only in sane-backends how exactly I like to have this particular package built. Kind Regards Johannes Meixner -- SUSE LINUX GmbH - GF: Felix Imendoerffer, Jane Smithard, Graham Norton - HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Johannes Meixner <jsmeix@suse.de> writes:
I have a package "foo" in a development project where also a package "bar" in that same project exists that is used to build "foo".
I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo".
Can I specify that in my package "foo" and if yes how can I do it?
You need to use separate projects/repositories with different repository paths. Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hello, On Oct 22 12:48 Andreas Schwab wrote (excerpt):
Johannes Meixner <jsmeix@suse.de> writes: ...
I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo".
Can I specify that in my package "foo" and if yes how can I do it?
You need to use separate projects/repositories
Only FYI: By chance I had also done it in a separated project, see https://bugzilla.suse.com/show_bug.cgi?id=856794#c35 Nevertheless it would be nice if it was possible in the same project - otherwise artificial separated projects are needed only to deal with technical constraints (assume the packages "foo" and "bar" fit semantically perfectly into one same project). Kind Regards Johannes Meixner -- SUSE LINUX GmbH - GF: Felix Imendoerffer, Jane Smithard, Graham Norton - HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, Oct 22, 2015 at 12:38:33PM +0200, Johannes Meixner wrote:
Hello,
in short:
I have a package "foo" in a development project where also a package "bar" in that same project exists that is used to build "foo".
I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo".
Can I specify that in my package "foo" and if yes how can I do it?
Details:
I have "sane-backends" in its development project "graphics" where also "libgphoto2" exists.
sane-backends needs libgphoto2 to build.
I build sane-backends also for released openSUSE versions.
Now when a user of a released openSUSE version likes to install sane-backends from the graphics project he also needs libgphoto2 from the graphics project.
But unfortunately the newest version of libgphoto2 from the graphics project cannot be installed into released openSUSE versions without dependency issues because other packages in the released openSUSE versions need an older version of libgphoto2.
If I could build sane-backends in the graphics project not with libgphoto2 from the graphics project but with libgphoto2 from the repository that is used to build sane-backends, then sane-backends would require the libgphoto2 version of the released openSUSE versions and users could install sane-backends from the graphics project into their released openSUSE versions without dependency issues.
As a workaround the maintainer of libgphoto2 has now disabled in the graphics project that libgphoto2 is used for build for released openSUSE versions but this has the drawback that libgphoto2 is no longer used for build for all packages in the graphics project.
What I would prefer is that I could specify only in sane-backends how exactly I like to have this particular package built.
(just fyi) libgphoto2 is still used for in graphics for Tumbleweed, Factory and Leap which should be compatible in regards to the libgphoto2_port.so requirement. Ciao, Marcus -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hello Marcus, On Oct 22 13:04 Marcus Meissner wrote (excerpt):
On Thu, Oct 22, 2015 at 12:38:33PM +0200, Johannes Meixner wrote:
As a workaround the maintainer of libgphoto2 has now disabled in the graphics project that libgphoto2 is used for build for released openSUSE versions but this has the drawback that libgphoto2 is no longer used for build for all packages in the graphics project.
...
(just fyi) libgphoto2 is still used for in graphics for Tumbleweed, Factory and Leap which should be compatible in regards to the libgphoto2_port.so requirement.
According to https://build.opensuse.org/package/repositories/graphics/libgphoto2 you disabled the "Build Flag" for libgphoto2 for released openSUSE versions. Is this really what you intend? To avoid only this particular sane-backends dependency issue it should be sufficient to diable the "Use for Build Flag" for libgphoto2 for released openSUSE versions. Kind Regards Johannes Meixner -- SUSE LINUX GmbH - GF: Felix Imendoerffer, Jane Smithard, Graham Norton - HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Donnerstag, 22. Oktober 2015, 12:38:33 CEST wrote Johannes Meixner:
Hello,
in short:
I have a package "foo" in a development project where also a package "bar" in that same project exists that is used to build "foo".
I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo".
Can I specify that in my package "foo" and if yes how can I do it?
You can disable the <useforbuild> flag. That way the build result is not copied to the full repository which is used for building further packages in your repo. But be warned, many people how are using this gets confused at some point of time. In most cases it is cleaner to build your package in a differnt project.
Details:
I have "sane-backends" in its development project "graphics" where also "libgphoto2" exists.
sane-backends needs libgphoto2 to build.
I build sane-backends also for released openSUSE versions.
Now when a user of a released openSUSE version likes to install sane-backends from the graphics project he also needs libgphoto2 from the graphics project.
But unfortunately the newest version of libgphoto2 from the graphics project cannot be installed into released openSUSE versions without dependency issues because other packages in the released openSUSE versions need an older version of libgphoto2.
If I could build sane-backends in the graphics project not with libgphoto2 from the graphics project but with libgphoto2 from the repository that is used to build sane-backends, then sane-backends would require the libgphoto2 version of the released openSUSE versions and users could install sane-backends from the graphics project into their released openSUSE versions without dependency issues.
As a workaround the maintainer of libgphoto2 has now disabled in the graphics project that libgphoto2 is used for build for released openSUSE versions but this has the drawback that libgphoto2 is no longer used for build for all packages in the graphics project.
What I would prefer is that I could specify only in sane-backends how exactly I like to have this particular package built.
Kind Regards Johannes Meixner
-- Adrian Schroeter email: adrian@suse.de SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) Maxfeldstraße 5 90409 Nürnberg Germany -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 22 Oct 2015, Adrian Schröter wrote:
On Donnerstag, 22. Oktober 2015, 12:38:33 CEST wrote Johannes Meixner:
Hello,
in short:
I have a package "foo" in a development project where also a package "bar" in that same project exists that is used to build "foo".
I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo".
Can I specify that in my package "foo" and if yes how can I do it?
You can disable the <useforbuild> flag. That way the build result is not copied to the full repository which is used for building further packages in your repo.
But that doesn't work on package granularity (to disable useforbuild only for building package foo). Richard.
But be warned, many people how are using this gets confused at some point of time.
In most cases it is cleaner to build your package in a differnt project.
Details:
I have "sane-backends" in its development project "graphics" where also "libgphoto2" exists.
sane-backends needs libgphoto2 to build.
I build sane-backends also for released openSUSE versions.
Now when a user of a released openSUSE version likes to install sane-backends from the graphics project he also needs libgphoto2 from the graphics project.
But unfortunately the newest version of libgphoto2 from the graphics project cannot be installed into released openSUSE versions without dependency issues because other packages in the released openSUSE versions need an older version of libgphoto2.
If I could build sane-backends in the graphics project not with libgphoto2 from the graphics project but with libgphoto2 from the repository that is used to build sane-backends, then sane-backends would require the libgphoto2 version of the released openSUSE versions and users could install sane-backends from the graphics project into their released openSUSE versions without dependency issues.
As a workaround the maintainer of libgphoto2 has now disabled in the graphics project that libgphoto2 is used for build for released openSUSE versions but this has the drawback that libgphoto2 is no longer used for build for all packages in the graphics project.
What I would prefer is that I could specify only in sane-backends how exactly I like to have this particular package built.
Kind Regards Johannes Meixner
-- Richard Biener <rguenther@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)
Hello, On Oct 22 13:05 Adrian Schröter wrote (excerpt):
On Donnerstag, 22. Oktober 2015, 12:38:33 CEST wrote Johannes Meixner:
I like to specify in my package "foo" not to use "bar" from that development project but to use "bar" from the repository that is used to build "foo".
Can I specify that in my package "foo" and if yes how can I do it?
You can disable the <useforbuild> flag. That way the build result is not copied to the full repository which is used for building further packages in your repo.
Can I really disable in my package "foo" a <useforbuild> flag regarding the other package "bar"? I know that I can disable the <useforbuild> flag for "bar" in a project (I use it in the "Printing" project). But - as far as I understand it - the drawback is that then "bar" is also no longer used for building any other packages (like "baz") in the project. Therefore I would prefer when I could specify only in my particular package "foo" not to use "bar" from the project. If this is possible, what must I do? Kind Regards Johannes Meixner -- SUSE LINUX GmbH - GF: Felix Imendoerffer, Jane Smithard, Graham Norton - HRB 21284 (AG Nuernberg)
Hello, Am Donnerstag, 22. Oktober 2015 schrieb Johannes Meixner:
I know that I can disable the <useforbuild> flag for "bar" in a project (I use it in the "Printing" project).
But - as far as I understand it - the drawback is that then "bar" is also no longer used for building any other packages (like "baz") in the project.
Therefore I would prefer when I could specify only in my particular package "foo" not to use "bar" from the project.
If this is possible, what must I do?
I don't have a perfect solution, but a workaround: BuildRequires: bar < $version_in_devel_project I didn't test this, but I expect that this forces the use of the "old" package instead of the package in the devel project. Regards, Christian Boltz -- randomlink against caching is now murphyproof. [Ratti in fontlinge-cvs] -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (6)
-
Adrian Schröter
-
Andreas Schwab
-
Christian Boltz
-
Johannes Meixner
-
Marcus Meissner
-
Richard Biener