All of lore.kernel.org
 help / color / mirror / Atom feed
* installed and not shipped files. [installed-vs-shipped]
@ 2022-04-01 12:50 Konstantin Kletschke
  2022-04-02 10:13 ` [yocto] " Quentin Schulz
  0 siblings, 1 reply; 3+ messages in thread
From: Konstantin Kletschke @ 2022-04-01 12:50 UTC (permalink / raw)
  To: yocto

I am currently trying to extend the meta-java framework with an
openjdk-18 recipe.
I encounter a problem with the [installed-vs-shipped] QA check which I
can't cope with, I admit.

The autotolls and crosscompile seems to work fine, the install is
overridden with this:

do_install() {
    rm -rf ${D}/${JAVA_HOME}
    mkdir -p ${D}/${JAVA_HOME}
    echo "THIS IS D: "${D} > ${D}/${JAVA_HOME}/THE_D
    if [[ "${PN}" = openjre* ]]; then
        # cp -rp ${B}/images/jre/* ${D}/${JAVA_HOME}
        cp -rp ${B}/jdk/* ${D}${JAVA_HOME}
    else
        # cp -rp ${B}/images/jdk/* ${D}/${JAVA_HOME}
        cp -rp ${B}/jdk/* ${D}${JAVA_HOME}
    fi
    chown -R root:root ${D}${JAVA_HOME}
    #install -m644 ${WORKDIR}/jvm.cfg  ${D}${JAVA_HOME}/jre/lib/${JDK_ARCH}/
    find ${D}/${JAVA_HOME} -name "*.debuginfo" -exec rm {} \;
}

To verify ${D} there is this "echo [...] THE_D" part in the install step
to look, what's happening.

After this stage I have the following file

/home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image/usr/lib/jvm/openjdk-18/THE_D

with contents

THIS IS D: /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image

What I suppose is ${D} looks like this:

~/yocto/build   honister ?1 ❯ ls -la /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image                             
total 12
drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:24 .
drwxr-xr-x 17 konsti konsti 4096 Apr  1 14:24 ..
drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:24 usr

${JAVA_HOME} expands to /usr/lib/jvm/openjdk-18:

~/yocto/build   honister ?1 ❯ ls -la /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image/usr/lib/jvm/openjdk-18/
total 36
drwxr-xr-x  7 konsti konsti 4096 Apr  1 14:24 .
drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:24 ..
-rw-r--r--  3 konsti konsti  128 Apr  1 14:24 THE_D
drwxr-xr-x  2 konsti konsti 4096 Apr  1 14:24 bin
drwxr-xr-x  5 konsti konsti 4096 Apr  1 14:22 conf
drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:22 include
drwxr-xr-x  5 konsti konsti 4096 Apr  1 14:24 lib
drwxr-xr-x 69 konsti konsti 4096 Apr  1 14:23 modules
-rw-r--r--  3 konsti konsti  129 Apr  1 14:22 release

So accordingly the recipe continues with extending the FILES to do
packaging this way:

FILES_${PN} += "\
    ${JAVA_HOME}/bin/[a-z]* \
    ${JAVA_HOME}/lib/[a-z]* \
    ${JAVA_HOME}/modules \
    ${JAVA_HOME}/release \
    ${JAVA_HOME}/conf \
    ${JAVA_HOME}/include \
    ${JAVA_HOME}/THE_D \
"

When I do "bitbake -e openjdk-18 |grep FILES_openjdk-18=" I get this:

FILES_openjdk-18="     /usr/lib/jvm/openjdk-18/bin/[a-z]*     /usr/lib/jvm/openjdk-18/lib/[a-z]*     /usr/lib/jvm/openjdk-18/modules     /usr/lib/jvm/openjdk-18/release     /usr/lib/jvm/openjdk-18/conf     /usr/lib/jvm/openjdk-18/include     /usr/lib/jvm/openjdk-18/THE_D "

When bitbake tries to package, I get this error:

ERROR: openjdk-18-18+37+gitAUTOINC+0f2113cee7-r0 do_package: QA Issue: openjdk-18: Files/directories were installed but not shipped in any package:
  /usr/lib/jvm/openjdk-18/release
  /usr/lib/jvm/openjdk-18/THE_D
  /usr/lib/jvm/openjdk-18/conf
  /usr/lib/jvm/openjdk-18/include
  /usr/lib/jvm/openjdk-18/lib/libj2gss.so
[...]
  /usr/lib/jvm/openjdk-18/modules/jdk.internal.le/jdk/internal/org/jline/keymap/BindingReader.class
  /usr/lib/jvm/openjdk-18/modules/jdk.internal.le/jdk/internal/org/jline/keymap/KeyMap.class
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
openjdk-18: 28751 installed and not shipped files. [installed-vs-shipped]
ERROR: openjdk-18-18+37+gitAUTOINC+0f2113cee7-r0 do_package: Fatal QA errors found, failing task.
ERROR: Logfile of failure stored in: /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/temp/log.do_package.3424506
ERROR: Task (/home/konsti/yocto/meta-insidem2m/recipes-core/openjdk/openjdk-18_18+37.bb:do_package) failed with exit code '1'

Well, I am pretty shure the FILES_${PN} refers relative to ${D}, where
is my stupid misunderstanding?

Side-Quest: In do install the destination is referred as
${D}${JAVA_HOME}. Why does this not need to be ${D}/${JAVA_HOME}?

Kind Regards
Konstantin Kletschke

-- 
INSIDE M2M GmbH
Konstantin Kletschke
Berenbosteler Straße 76 B
30823 Garbsen

Telefon: +49 (0) 5137 90950136
Mobil: +49 (0) 151 15256238
Fax: +49 (0) 5137 9095010

konstantin.kletschke@inside-m2m.de
http://www.inside-m2m.de 

Geschäftsführung: Michael Emmert, Ingo Haase, Dr. Fred Könemann, Derek Uhlig
HRB: 111204, AG Hannover



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [yocto] installed and not shipped files. [installed-vs-shipped]
  2022-04-01 12:50 installed and not shipped files. [installed-vs-shipped] Konstantin Kletschke
@ 2022-04-02 10:13 ` Quentin Schulz
  2022-04-02 16:57   ` Konstantin Kletschke
  0 siblings, 1 reply; 3+ messages in thread
From: Quentin Schulz @ 2022-04-02 10:13 UTC (permalink / raw)
  To: yocto, Konstantin Kletschke

Hi Konstantin,

On April 1, 2022 2:50:13 PM GMT+02:00, Konstantin Kletschke <konstantin.kletschke@inside-m2m.de> wrote:
>I am currently trying to extend the meta-java framework with an
>openjdk-18 recipe.
>I encounter a problem with the [installed-vs-shipped] QA check which I
>can't cope with, I admit.
>
>The autotolls and crosscompile seems to work fine, the install is
>overridden with this:
>
>do_install() {
>    rm -rf ${D}/${JAVA_HOME}
>    mkdir -p ${D}/${JAVA_HOME}
>    echo "THIS IS D: "${D} > ${D}/${JAVA_HOME}/THE_D
>    if [[ "${PN}" = openjre* ]]; then
>        # cp -rp ${B}/images/jre/* ${D}/${JAVA_HOME}
>        cp -rp ${B}/jdk/* ${D}${JAVA_HOME}
>    else
>        # cp -rp ${B}/images/jdk/* ${D}/${JAVA_HOME}
>        cp -rp ${B}/jdk/* ${D}${JAVA_HOME}
>    fi
>    chown -R root:root ${D}${JAVA_HOME}
>    #install -m644 ${WORKDIR}/jvm.cfg  ${D}${JAVA_HOME}/jre/lib/${JDK_ARCH}/
>    find ${D}/${JAVA_HOME} -name "*.debuginfo" -exec rm {} \;
>}
>
>To verify ${D} there is this "echo [...] THE_D" part in the install step
>to look, what's happening.
>
>After this stage I have the following file
>
>/home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image/usr/lib/jvm/openjdk-18/THE_D
>
>with contents
>
>THIS IS D: /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image
>
>What I suppose is ${D} looks like this:
>
>~/yocto/build   honister ?1 ❯ ls -la /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image                             
>total 12
>drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:24 .
>drwxr-xr-x 17 konsti konsti 4096 Apr  1 14:24 ..
>drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:24 usr
>
>${JAVA_HOME} expands to /usr/lib/jvm/openjdk-18:
>
>~/yocto/build   honister ?1 ❯ ls -la /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/image/usr/lib/jvm/openjdk-18/
>total 36
>drwxr-xr-x  7 konsti konsti 4096 Apr  1 14:24 .
>drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:24 ..
>-rw-r--r--  3 konsti konsti  128 Apr  1 14:24 THE_D
>drwxr-xr-x  2 konsti konsti 4096 Apr  1 14:24 bin
>drwxr-xr-x  5 konsti konsti 4096 Apr  1 14:22 conf
>drwxr-xr-x  3 konsti konsti 4096 Apr  1 14:22 include
>drwxr-xr-x  5 konsti konsti 4096 Apr  1 14:24 lib
>drwxr-xr-x 69 konsti konsti 4096 Apr  1 14:23 modules
>-rw-r--r--  3 konsti konsti  129 Apr  1 14:22 release
>
>So accordingly the recipe continues with extending the FILES to do
>packaging this way:
>
>FILES_${PN} += "\
>    ${JAVA_HOME}/bin/[a-z]* \
>    ${JAVA_HOME}/lib/[a-z]* \

FILES variables is compatible with glob from Python so that should work but that's really the first time I see this, usually it's just the directory or dir/*. Learned something new today :)

>    ${JAVA_HOME}/modules \
>    ${JAVA_HOME}/release \
>    ${JAVA_HOME}/conf \
>    ${JAVA_HOME}/include \
>    ${JAVA_HOME}/THE_D \
>"
>
>When I do "bitbake -e openjdk-18 |grep FILES_openjdk-18=" I get this:
>

Are you on honister (or master/soon kirkstone) release? If so, it's FILES:${PN} and not FILES_${PN}.

Try to avoid using hardcoded names instead of ${PN} because it breaks multilib (probably not a problem for many, I can concede :) ).

Make sure that openjdk-18 is actually a valid package name too by running bitbake -e <recipe-name> | grep "^PACKAGES=".

>FILES_openjdk-18="     /usr/lib/jvm/openjdk-18/bin/[a-z]*     /usr/lib/jvm/openjdk-18/lib/[a-z]*     /usr/lib/jvm/openjdk-18/modules     /usr/lib/jvm/openjdk-18/release     /usr/lib/jvm/openjdk-18/conf     /usr/lib/jvm/openjdk-18/include     /usr/lib/jvm/openjdk-18/THE_D "
>
>When bitbake tries to package, I get this error:
>
>ERROR: openjdk-18-18+37+gitAUTOINC+0f2113cee7-r0 do_package: QA Issue: openjdk-18: Files/directories were installed but not shipped in any package:
>  /usr/lib/jvm/openjdk-18/release
>  /usr/lib/jvm/openjdk-18/THE_D
>  /usr/lib/jvm/openjdk-18/conf
>  /usr/lib/jvm/openjdk-18/include
>  /usr/lib/jvm/openjdk-18/lib/libj2gss.so
>[...]
>  /usr/lib/jvm/openjdk-18/modules/jdk.internal.le/jdk/internal/org/jline/keymap/BindingReader.class
>  /usr/lib/jvm/openjdk-18/modules/jdk.internal.le/jdk/internal/org/jline/keymap/KeyMap.class
>Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
>openjdk-18: 28751 installed and not shipped files. [installed-vs-shipped]
>ERROR: openjdk-18-18+37+gitAUTOINC+0f2113cee7-r0 do_package: Fatal QA errors found, failing task.
>ERROR: Logfile of failure stored in: /home/konsti/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/openjdk-18/18+37+gitAUTOINC+0f2113cee7-r0/temp/log.do_package.3424506
>ERROR: Task (/home/konsti/yocto/meta-insidem2m/recipes-core/openjdk/openjdk-18_18+37.bb:do_package) failed with exit code '1'
>
>Well, I am pretty shure the FILES_${PN} refers relative to ${D}, where
>is my stupid misunderstanding?
>
>Side-Quest: In do install the destination is referred as
>${D}${JAVA_HOME}. Why does this not need to be ${D}/${JAVA_HOME}?
>

To quote yourself:
>${JAVA_HOME} expands to /usr/lib/jvm/openjdk-18

Cheers,
Quentin


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [yocto] installed and not shipped files. [installed-vs-shipped]
  2022-04-02 10:13 ` [yocto] " Quentin Schulz
@ 2022-04-02 16:57   ` Konstantin Kletschke
  0 siblings, 0 replies; 3+ messages in thread
From: Konstantin Kletschke @ 2022-04-02 16:57 UTC (permalink / raw)
  To: Quentin Schulz; +Cc: yocto

On Sat, Apr 02, 2022 at 12:13:26PM +0200, Quentin Schulz wrote:

> FILES variables is compatible with glob from Python so that should work but that's really the first time I see this, usually it's just the directory or dir/*. Learned something new today :)

:-)

> Are you on honister (or master/soon kirkstone) release? If so, it's FILES:${PN} and not FILES_${PN}.

That's it! 
I wasn't aware of this change, could have searched for another couple of
days!

Thank.
you.
very.
much.

Kind Regards
Konsti


-- 
INSIDE M2M GmbH
Konstantin Kletschke
Berenbosteler Straße 76 B
30823 Garbsen

Telefon: +49 (0) 5137 90950136
Mobil: +49 (0) 151 15256238
Fax: +49 (0) 5137 9095010

konstantin.kletschke@inside-m2m.de
http://www.inside-m2m.de 

Geschäftsführung: Michael Emmert, Ingo Haase, Dr. Fred Könemann, Derek Uhlig
HRB: 111204, AG Hannover



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-04 18:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-01 12:50 installed and not shipped files. [installed-vs-shipped] Konstantin Kletschke
2022-04-02 10:13 ` [yocto] " Quentin Schulz
2022-04-02 16:57   ` Konstantin Kletschke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.