Re: [yocto] Package Level Dependencies

2016-02-22 Thread sebastian.ro...@tu-dortmund.de
Hi Rudolf,

Thnx for your input! I guess I can see your point. In particular I wasn't 
thinking so much on using ".inc" files.
Due to the fact that I will be having like 10-20 different test123-config-xxx 
packages managing this using "RCONFLICTS" might be tedious.
I guess this is what virtual packages (say test123-config-xxx has something 
like PROVIDES=virtual/test123-config and test123 has a RDEPENDS on 
virtual/test123-config) are for and I will try to follow this path for now.

For a couple of reasons, the configuration files are in the same git repository 
as the source code of "test123". Is there a way of sharing working directories 
between (at least all config-package recipes, such as I don't net to checkout 
the whole git repository for each of my 10-20 config packages?

Regards,
Sebastian

-Ursprüngliche Nachricht-
Von: Rudolf J Streif [mailto:rudolf.str...@gmail.com]
Gesendet: Montag, 22. Februar 2016 02:38
An: yocto@yoctoproject.org
Cc: Rohde, Sebastian <sebastian.ro...@tu-dortmund.de>
Betreff: Re: [yocto] Package Level Dependencies

Hi Sebastian,

> I have a recipe (say: "test123") that provides a complex piece of
> software (cmake-based). The software needs some configuration file
> (say "test123.conf"). There are multiple variants of the configuration
> file, sharing the same name, i.e. "test123.conf" exists in different
> variants for multiple hardware configurations.
>
> My aim would be to have multiple packages like "test123-config-XXX"
> and "test123-config-YYY", that cannot be installed at the same time,
> while having one of the packages is a dependency for the main package 
> "test123".

These are two conflicting packages.

>
> Is there a way to achieve this? From my current understanding,
> dependencies are "per-recipe" and not "per-package". Is there any way
> to achieve package level dependencies? I would like to avoid having
> multiple recipes as there are many configuration file options which
> are currently located in the same large source repository as the main 
> software.

Look at it from the perspective of conflicting packages.

My approach to this would be the following:

1. Write an include file test123.inc that includes all of the guts of your 
recipe.

2. Write the two recipes test123-config-XXX_1.0.bb and test123-config-
YYY_1.0.bb:

test123-config-XXX_1.0.bb

require test123.inc

SRC_URI += "test123-XXX.conf"

do_install_append() {
   # install config file here
   install 544 test123-XXX.conf ${D}/ }

RCONFLICTS_${PN} = "test123-config-YYY"

Analog for test123-config-YYY_1.0.bb


You are essentially sharing all of the recipe through the test123.inc and only 
add the config file to the respective target recipe. The RCONFLICTS_${PN} 
directive will flag an error if both conflicting packages are attempted to be 
installed.

BR,
Rudi

Wichtiger Hinweis: Die Information in dieser E-Mail ist vertraulich. Sie ist 
ausschließlich für den Adressaten bestimmt. Sollten Sie nicht der für diese 
E-Mail bestimmte Adressat sein, unterrichten Sie bitte den Absender und 
vernichten Sie diese Mail. Vielen Dank.
Unbeschadet der Korrespondenz per E-Mail, sind unsere Erklärungen 
ausschließlich final rechtsverbindlich, wenn sie in herkömmlicher Schriftform 
(mit eigenhändiger Unterschrift) oder durch Übermittlung eines solchen 
Schriftstücks per Telefax erfolgen.

Important note: The information included in this e-mail is confidential. It is 
solely intended for the recipient. If you are not the intended recipient of 
this e-mail please contact the sender and delete this message. Thank you. 
Without prejudice of e-mail correspondence, our statements are only legally 
binding when they are made in the conventional written form (with personal 
signature) or when such documents are sent by fax.
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] Package Level Dependencies

2016-02-21 Thread sebastian.ro...@tu-dortmund.de
Hi,

I have a recipe (say: "test123") that provides a complex piece of software 
(cmake-based). The software needs some configuration file (say "test123.conf"). 
There are multiple variants of the configuration file, sharing the same name, 
i.e. "test123.conf" exists in different variants for multiple hardware 
configurations.

My aim would be to have multiple packages like "test123-config-XXX" and 
"test123-config-YYY", that cannot be installed at the same time, while having 
one of the packages is a dependency for the main package "test123".

Is there a way to achieve this? From my current understanding, dependencies are 
"per-recipe" and not "per-package". Is there any way to achieve package level 
dependencies? I would like to avoid having multiple recipes as there are many 
configuration file options which are currently located in the same large source 
repository as the main software.

Help ist strongly appreciated.

Regards,
Sebastian Rohde
Wichtiger Hinweis: Die Information in dieser E-Mail ist vertraulich. Sie ist 
ausschließlich für den Adressaten bestimmt. Sollten Sie nicht der für diese 
E-Mail bestimmte Adressat sein, unterrichten Sie bitte den Absender und 
vernichten Sie diese Mail. Vielen Dank.
Unbeschadet der Korrespondenz per E-Mail, sind unsere Erklärungen 
ausschließlich final rechtsverbindlich, wenn sie in herkömmlicher Schriftform 
(mit eigenhändiger Unterschrift) oder durch Übermittlung eines solchen 
Schriftstücks per Telefax erfolgen.

Important note: The information included in this e-mail is confidential. It is 
solely intended for the recipient. If you are not the intended recipient of 
this e-mail please contact the sender and delete this message. Thank you. 
Without prejudice of e-mail correspondence, our statements are only legally 
binding when they are made in the conventional written form (with personal 
signature) or when such documents are sent by fax.
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto