yocto pyro 2.3 depended package build issue - yocto

I am configuring one package "X" that is depended on other package "Y".
the "Y" package is successfully build and I am able to find it into the below path.
tmp/work/cortexa8hf-neon-poky-linux-gnueabi/"Y"/0.1.0-r1/recipe-sysroot-native/usr/bin
As per my understanding if the package "X" is depended on the package "Y" then all the components of the package "Y" should be copied into the path "recipe-sysroot-native/usr/bin" of the package "X".
But I am not able to find the depended package "Y" into the recipe-sysroot-native of the Package "X".
If my understanding is false let me know the correct way to do this. As I am not able to find the package "Y" into the dir "recipe-sysroot-native/usr/bin" of package "X"
thanks
Amit G.

For a standard Y package, you have to add the following in X recipe to get Y into recipe-sysroot-native:
DEPENDS = "Y-native"
You have to be sure that "Y" recipe can be used as a native recipe, it must contains
BBCLASSEXTEND = "native (or inherit native)

Related

How to (force Yocto to) create ${PN}.deb file?

I'm trying to add a library (a cmake project) to my Yocto project/image.
The package essentially consists of one static library (named hello.a) with some header files in C.
I wrote a recipe and could configure, compile, package it.
The packaging results are four files {hello-dbg, hello-dev, hello-src, hello-staticdev}.deb
So there is no hello.deb.
And that seems to be a problem preventing me to create image.
The following packages have unmet dependencies:
packagegroup-utils-extra : Depends: hello but it is not installable
E: Unable to correct problems, you have held broken packages.
When I try to add that by defining:
FILES_${PN} += "/usr/lib/hello.a"
bitbake does not allow adding static libraries to anything but staticdev -> so that does not work.
My question is then, as the title says, how to (force Yocto to) create ${PN}.deb file?
The empty packages (i.e. containing no files) are not created by default. If you want to override it, you can do it via the ALLOW_EMPTY variable for a package like this:
ALLOW_EMPTY:${PN} = "1"
You can also check the official documentation for ALLOW_EMPTY.
Just for clarification:
You can install the ${PN} package (it won't install any file on the target system).
As before, your static library will still be shipped in the ${PN}-staticdev package.

How to exclude certain package to compile in sbt?

Considering there is a package in a module :
package com.example.apple
Is it possible to exclude that particular package of that module instead of commenting each individual files of that package one by one?
Say I have multiple modules as :
myProject/
/module1
/com.example
/somepackage1
file1.scala
file2.scala
file3.scala
..........
/somepackage2
filep1.scala
filep2.scala
filep3.scala
/module2
/com.example
/somepackage3
/somepackage3
/module3
.......similarly
So here , if we can exclude somepackage1 in our built.sbt, it would be great instead of commenting file1,file2,file3...individually.
Considering that I dont want that package to not get compiled.

In Yocto, how do I specify a version restriction of package A to be the current version of package B?

I want to be able to update my system by installing packages created by Yocto instead of installing the whole image created by it. The objective is to update some software without affecting the system configuration. However, I want to avoid updating a package without updating other runtime dependencies that changed to avoid leaving the system in an inconsistent state.
The approach that I'm following until now is to set version restrictions to package. Suppose I have a layer with recipes A.bb and B.bb that creates packages A and B. I'm using RDEPENDS on A.bb to set package B as a dependency of package A as follows:
RDEPENDS_${PN} = " B (= hard-coded-current-version)"
where hard-coded-current-version is something like 1.1-r1. However, what I want is something like:
RDEPENDS_${PN} = " B (= parametric-current-version)"
where parametric-current-version would be something like ${PE_B}.${PV_B}-${PR_B}.
How do I specify a version restriction of package A to be the current version of package B?

Enterprise Architect - SVN Version Control

I am using Enterprise Architect from Sparx Systems. I have a 1 model project and several packages are version controlled. I am using SVN to check in these model/packages.
I would like to understand what would be the best way to add a package tree to existing package tree which is already version controlled?
For Example, I have following structure which is already version controlled -
Model
-- Package 1
-- Package 2
-- Package 3
Now I would like to add another set of packages
Model
-- Package 1
-- Package 2
-- Package 3
-- Package A
-- Package B
-- Package C
The package A (& B and C) is imported from another project, and it already exists. All I want to do is create these new tree under Version Control setup, so that I can check in new tree under Package 1. Is there an easy way to do this?
Just follow these steps:
Check out Package 1 (allows addition of new packages/elements).
Import Package A (and its children) into Package 1.
Make Package A version controlled (since you want it to be on its own).
Check in Package 1.

Avoid dependency of a pure code snippet package

Example:
Nuget package A is a set of code snippets (it does not contain an assembly).
Nuget package B is a normal assembly and it is using package A - just for internal means.
Question: What can I do, to avoid, that package A is also installed, when somone installes package B?
Found something in documentation of nuget:
Starting from version 2.7, the pack command will ignore entries in the packages.config file which have an attribute developmentDependency set to true and will not include that package as a dependency in the created package. For example, consider the following packages.config file in the source project
That seems to solve the problem.