Patchwork [v2] ptest bugfix: Make all ptest files go into -ptest package

login
register
mail settings
Submitter Björn Stenberg
Date March 25, 2013, 2:34 p.m.
Message ID <1364222065-62444-1-git-send-email-bjst@enea.com>
Download mbox | patch
Permalink /patch/46859/
State New
Headers show

Comments

Björn Stenberg - March 25, 2013, 2:34 p.m.
Move ${PN}-ptest to start of PACKAGES to ensure all ptest files are
packaged in the -ptest package.

Add QA exclusions to insane.bbclass to ensure -ptest packages can contain
any files they need.

Bugfix: Add subshells for 'type' command.

This patch fixes bug #4069.

Signed-off-by: Björn Stenberg <bjst@enea.com>
---
 meta/classes/insane.bbclass |    6 +++---
 meta/classes/ptest.bbclass  |   15 ++++-----------
 2 files changed, 7 insertions(+), 14 deletions(-)
Richard Purdie - March 25, 2013, 4:18 p.m.
On Mon, 2013-03-25 at 15:34 +0100, Björn Stenberg wrote:
> Move ${PN}-ptest to start of PACKAGES to ensure all ptest files are
> packaged in the -ptest package.
> 
> Add QA exclusions to insane.bbclass to ensure -ptest packages can contain
> any files they need.
> 
> Bugfix: Add subshells for 'type' command.
> 
> This patch fixes bug #4069.
> 
> Signed-off-by: Björn Stenberg <bjst@enea.com>
> ---
>  meta/classes/insane.bbclass |    6 +++---
>  meta/classes/ptest.bbclass  |   15 ++++-----------
>  2 files changed, 7 insertions(+), 14 deletions(-)
> 
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index 2f10688..5170580 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -216,7 +216,7 @@ def package_qa_check_dev(path, name, d, elf, messages):
>      Check for ".so" library symlinks in non-dev packages
>      """
>  
> -    if not name.endswith("-dev") and not name.endswith("-dbg") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
> +    if not name.endswith("-dev") and not name.endswith("-dbg") and not name.endswith("-ptest") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
>          messages.append("non -dev/-dbg/-nativesdk package contains symlink .so: %s path '%s'" % \
>                   (name, package_qa_clean_path(path,d)))
>  
> @@ -229,7 +229,7 @@ def package_qa_check_staticdev(path, name, d, elf, messages):
>      libgcc.a, libgcov.a will be skipped in their packages
>      """
>  
> -    if not name.endswith("-pic") and not name.endswith("-staticdev") and path.endswith(".a") and not path.endswith("_nonshared.a"):
> +    if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a"):
>          messages.append("non -staticdev package contains static .a library: %s path '%s'" % \
>                   (name, package_qa_clean_path(path,d)))
>  
> @@ -273,7 +273,7 @@ def package_qa_check_dbg(path, name, d, elf, messages):
>      Check for ".debug" files or directories outside of the dbg package
>      """
>  
> -    if not "-dbg" in name:
> +    if not "-dbg" in name and not "-ptest" in name:
>          if '.debug' in path.split(os.path.sep):
>              messages.append("non debug package contains .debug directory: %s path %s" % \
>                       (name, package_qa_clean_path(path,d)))
> diff --git a/meta/classes/ptest.bbclass b/meta/classes/ptest.bbclass
> index 6ab5ee4..c51c4e6 100644
> --- a/meta/classes/ptest.bbclass
> +++ b/meta/classes/ptest.bbclass
> @@ -14,18 +14,11 @@ PTEST_ENABLED = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}"
>  RDEPENDS_${PN}-ptest_virtclass-native = ""
>  RDEPENDS_${PN}-ptest_virtclass-nativesdk = ""
>  
> -PACKAGES += "${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
> -
> -FILES_${PN}-dbg += "${PTEST_PATH}/.debug \
> -                    ${PTEST_PATH}/*/.debug \
> -                    ${PTEST_PATH}/*/*/.debug \
> -                    ${PTEST_PATH}/*/*/*/.debug \
> -                    ${PTEST_PATH}/*/*/*/*/.debug \
> -                   "

Why are we putting all the debug files into the -ptest package now? Does
that make sense?

Cheers,

Richard

> +PACKAGES =+ "${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
>  
>  do_configure_ptest_base() {
>      if [ ${PTEST_ENABLED} = 1 ]; then
> -        if [ type -t do_configure_ptest = function ]; then
> +        if [ $(type -t do_configure_ptest) = function ]; then
>              do_configure_ptest
>          fi
>      fi
> @@ -33,7 +26,7 @@ do_configure_ptest_base() {
>  
>  do_compile_ptest_base() {
>      if [ ${PTEST_ENABLED} = 1 ]; then
> -        if [ type -t do_compile_ptest = function ]; then
> +        if [ $(type -t do_compile_ptest) = function ]; then
>              do_compile_ptest
>          fi
>      fi
> @@ -46,7 +39,7 @@ do_install_ptest_base() {
>              if grep -q install-ptest: Makefile; then
>                  oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
>              fi
> -            if [ type -t do_install_ptest = function ]; then
> +            if [ $(type -t do_install_ptest) = function ]; then
>                  do_install_ptest
>              fi
>          fi
Björn Stenberg - April 8, 2013, 8:41 a.m.
Richard Purdie wrote:
> Why are we putting all the debug files into the -ptest package now? Does
> that make sense?

(Sorry, I missed this comment.)

My reasoning is that we want all ptest data to be contained in -ptest packages and not "leak" into other packages. 

If we keep debug data in the normal -dbg packages, you will always get ptest debug data installed in your image when defining distro-feature "ptest", even if it doesn't include any -ptest packages. That feels wrong to me.

Patch

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 2f10688..5170580 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -216,7 +216,7 @@  def package_qa_check_dev(path, name, d, elf, messages):
     Check for ".so" library symlinks in non-dev packages
     """
 
-    if not name.endswith("-dev") and not name.endswith("-dbg") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
+    if not name.endswith("-dev") and not name.endswith("-dbg") and not name.endswith("-ptest") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
         messages.append("non -dev/-dbg/-nativesdk package contains symlink .so: %s path '%s'" % \
                  (name, package_qa_clean_path(path,d)))
 
@@ -229,7 +229,7 @@  def package_qa_check_staticdev(path, name, d, elf, messages):
     libgcc.a, libgcov.a will be skipped in their packages
     """
 
-    if not name.endswith("-pic") and not name.endswith("-staticdev") and path.endswith(".a") and not path.endswith("_nonshared.a"):
+    if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a"):
         messages.append("non -staticdev package contains static .a library: %s path '%s'" % \
                  (name, package_qa_clean_path(path,d)))
 
@@ -273,7 +273,7 @@  def package_qa_check_dbg(path, name, d, elf, messages):
     Check for ".debug" files or directories outside of the dbg package
     """
 
-    if not "-dbg" in name:
+    if not "-dbg" in name and not "-ptest" in name:
         if '.debug' in path.split(os.path.sep):
             messages.append("non debug package contains .debug directory: %s path %s" % \
                      (name, package_qa_clean_path(path,d)))
diff --git a/meta/classes/ptest.bbclass b/meta/classes/ptest.bbclass
index 6ab5ee4..c51c4e6 100644
--- a/meta/classes/ptest.bbclass
+++ b/meta/classes/ptest.bbclass
@@ -14,18 +14,11 @@  PTEST_ENABLED = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}"
 RDEPENDS_${PN}-ptest_virtclass-native = ""
 RDEPENDS_${PN}-ptest_virtclass-nativesdk = ""
 
-PACKAGES += "${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
-
-FILES_${PN}-dbg += "${PTEST_PATH}/.debug \
-                    ${PTEST_PATH}/*/.debug \
-                    ${PTEST_PATH}/*/*/.debug \
-                    ${PTEST_PATH}/*/*/*/.debug \
-                    ${PTEST_PATH}/*/*/*/*/.debug \
-                   "
+PACKAGES =+ "${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
 
 do_configure_ptest_base() {
     if [ ${PTEST_ENABLED} = 1 ]; then
-        if [ type -t do_configure_ptest = function ]; then
+        if [ $(type -t do_configure_ptest) = function ]; then
             do_configure_ptest
         fi
     fi
@@ -33,7 +26,7 @@  do_configure_ptest_base() {
 
 do_compile_ptest_base() {
     if [ ${PTEST_ENABLED} = 1 ]; then
-        if [ type -t do_compile_ptest = function ]; then
+        if [ $(type -t do_compile_ptest) = function ]; then
             do_compile_ptest
         fi
     fi
@@ -46,7 +39,7 @@  do_install_ptest_base() {
             if grep -q install-ptest: Makefile; then
                 oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
             fi
-            if [ type -t do_install_ptest = function ]; then
+            if [ $(type -t do_install_ptest) = function ]; then
                 do_install_ptest
             fi
         fi