Message ID | 20210212131733.9926-1-henning.schild@siemens.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | [1/2] meta-isar: add example recipe for deploying prebuilt debs | expand |
On 12.02.21 14:17, Henning Schild wrote: > From: Henning Schild <henning.schild@siemens.com> > > Signed-off-by: Henning Schild <henning.schild@siemens.com> > --- > meta-isar/conf/local.conf.sample | 2 +- > .../example-prebuilt-dummy_0.1.bb | 15 ++++++++++++ > .../example-prebuilt/example-prebuilt_0.1.bb | 23 +++++++++++++++++++ > 3 files changed, 39 insertions(+), 1 deletion(-) > create mode 100644 meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > create mode 100644 meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > > diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample > index 107496c163..cc0b5c66bb 100644 > --- a/meta-isar/conf/local.conf.sample > +++ b/meta-isar/conf/local.conf.sample > @@ -172,7 +172,7 @@ CONF_VERSION = "1" > > # > # The default list of extra packages to be installed. > -IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsck isar-exclude-docs samefile hello isar-disable-apt-cache cowsay" > +IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsck isar-exclude-docs samefile hello isar-disable-apt-cache cowsay example-prebuilt" > > # > # Enable cross-compilation support > diff --git a/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb b/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > new file mode 100644 > index 0000000000..92273dc886 > --- /dev/null > +++ b/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > @@ -0,0 +1,15 @@ > +# Sample recipe to create a dummy package used for example-prebuilt > +# > +# This software is a part of ISAR. > + > +DESCRIPTION = "Sample application for ISAR" > +MAINTAINER = "Your name here <you@domain.com>" > + > +SRC_URI = "" > + > +inherit dpkg-raw > + > +# we provide a deb under another name > +do_prepare_build_append() { > + sed -i 's/example-prebuilt-dummy/example-prebuilt/g' ${S}/debian/* > +} > diff --git a/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb b/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > new file mode 100644 > index 0000000000..4f224a48ec > --- /dev/null > +++ b/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > @@ -0,0 +1,23 @@ > +# Sample recipe to include a prebuilt deb archive into an isar build > +# > +# This software is a part of ISAR. > + > +## hacks for the sake of the example > +DEPENDS += "${PN}-dummy" > +do_fetch[depends] += "${PN}-dummy:do_deploy_deb" > +do_fetch[file-checksums] = "" > +FILESPATH_prepend := "${REPO_ISAR_DIR}/${DISTRO}/pool/main/e/${PN}/:" I think my approach is clearer /wrt not having the need for this here - and the companion package. > + > +## start of real example, the below is relevant > + > +# note the unpack=false > +SRC_URI = "file://${PN}_${PV}_${DISTRO_ARCH}.deb;unpack=false" > + > +inherit dpkg-base > + > +# in case you have multiple debs or PN does not match > +#PROVIDES="foobar blabla" > + > +do_dpkg_build() { > + bbnote "Not building a package" > +} > Otherwise, we are on the same page I think. Yours is more verbose in several places. Jan
Am Fri, 12 Feb 2021 17:42:07 +0100 schrieb Jan Kiszka <jan.kiszka@siemens.com>: > On 12.02.21 14:17, Henning Schild wrote: > > From: Henning Schild <henning.schild@siemens.com> > > > > Signed-off-by: Henning Schild <henning.schild@siemens.com> > > --- > > meta-isar/conf/local.conf.sample | 2 +- > > .../example-prebuilt-dummy_0.1.bb | 15 ++++++++++++ > > .../example-prebuilt/example-prebuilt_0.1.bb | 23 > > +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) > > create mode 100644 > > meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > > create mode 100644 > > meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > > > > diff --git a/meta-isar/conf/local.conf.sample > > b/meta-isar/conf/local.conf.sample index 107496c163..cc0b5c66bb > > 100644 --- a/meta-isar/conf/local.conf.sample > > +++ b/meta-isar/conf/local.conf.sample > > @@ -172,7 +172,7 @@ CONF_VERSION = "1" > > > > # > > # The default list of extra packages to be installed. > > -IMAGE_INSTALL = "hello-isar example-raw > > example-module-${KERNEL_NAME} enable-fsck isar-exclude-docs > > samefile hello isar-disable-apt-cache cowsay" +IMAGE_INSTALL = > > "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsck > > isar-exclude-docs samefile hello isar-disable-apt-cache cowsay > > example-prebuilt" # # Enable cross-compilation support diff --git > > a/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > > b/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > > new file mode 100644 index 0000000000..92273dc886 --- /dev/null > > +++ > > b/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb > > @@ -0,0 +1,15 @@ +# Sample recipe to create a dummy package used > > for example-prebuilt +# > > +# This software is a part of ISAR. > > + > > +DESCRIPTION = "Sample application for ISAR" > > +MAINTAINER = "Your name here <you@domain.com>" > > + > > +SRC_URI = "" > > + > > +inherit dpkg-raw > > + > > +# we provide a deb under another name > > +do_prepare_build_append() { > > + sed -i 's/example-prebuilt-dummy/example-prebuilt/g' > > ${S}/debian/* +} > > diff --git > > a/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > > b/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > > new file mode 100644 index 0000000000..4f224a48ec --- /dev/null > > +++ b/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb > > @@ -0,0 +1,23 @@ > > +# Sample recipe to include a prebuilt deb archive into an isar > > build +# > > +# This software is a part of ISAR. > > + > > +## hacks for the sake of the example > > +DEPENDS += "${PN}-dummy" > > +do_fetch[depends] += "${PN}-dummy:do_deploy_deb" > > +do_fetch[file-checksums] = "" > > +FILESPATH_prepend := > > "${REPO_ISAR_DIR}/${DISTRO}/pool/main/e/${PN}/:" > > I think my approach is clearer /wrt not having the need for this here > - and the companion package. Agreed, this includes some "magic" that might be hard to maintain. And that requires the comments of what it "real" and what is "hack" Was just looking for a way to come up with a deb that will always be there, without providing a bad example of how such a deb could become available. > > + > > +## start of real example, the below is relevant > > + > > +# note the unpack=false > > +SRC_URI = "file://${PN}_${PV}_${DISTRO_ARCH}.deb;unpack=false" > > + > > +inherit dpkg-base > > + > > +# in case you have multiple debs or PN does not match > > +#PROVIDES="foobar blabla" > > + > > +do_dpkg_build() { > > + bbnote "Not building a package" > > +} > > > > Otherwise, we are on the same page I think. Yours is more verbose in > several places. Let us discuss how to improve your approach and NOT MERGE THIS, yes RFC ... REJECT ... Henning > Jan >
diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample index 107496c163..cc0b5c66bb 100644 --- a/meta-isar/conf/local.conf.sample +++ b/meta-isar/conf/local.conf.sample @@ -172,7 +172,7 @@ CONF_VERSION = "1" # # The default list of extra packages to be installed. -IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsck isar-exclude-docs samefile hello isar-disable-apt-cache cowsay" +IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsck isar-exclude-docs samefile hello isar-disable-apt-cache cowsay example-prebuilt" # # Enable cross-compilation support diff --git a/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb b/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb new file mode 100644 index 0000000000..92273dc886 --- /dev/null +++ b/meta-isar/recipes-app/example-prebuilt-dummy/example-prebuilt-dummy_0.1.bb @@ -0,0 +1,15 @@ +# Sample recipe to create a dummy package used for example-prebuilt +# +# This software is a part of ISAR. + +DESCRIPTION = "Sample application for ISAR" +MAINTAINER = "Your name here <you@domain.com>" + +SRC_URI = "" + +inherit dpkg-raw + +# we provide a deb under another name +do_prepare_build_append() { + sed -i 's/example-prebuilt-dummy/example-prebuilt/g' ${S}/debian/* +} diff --git a/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb b/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb new file mode 100644 index 0000000000..4f224a48ec --- /dev/null +++ b/meta-isar/recipes-app/example-prebuilt/example-prebuilt_0.1.bb @@ -0,0 +1,23 @@ +# Sample recipe to include a prebuilt deb archive into an isar build +# +# This software is a part of ISAR. + +## hacks for the sake of the example +DEPENDS += "${PN}-dummy" +do_fetch[depends] += "${PN}-dummy:do_deploy_deb" +do_fetch[file-checksums] = "" +FILESPATH_prepend := "${REPO_ISAR_DIR}/${DISTRO}/pool/main/e/${PN}/:" + +## start of real example, the below is relevant + +# note the unpack=false +SRC_URI = "file://${PN}_${PV}_${DISTRO_ARCH}.deb;unpack=false" + +inherit dpkg-base + +# in case you have multiple debs or PN does not match +#PROVIDES="foobar blabla" + +do_dpkg_build() { + bbnote "Not building a package" +}