* [PATCH 1/4] scripts/oe-pkgdata-util: support rprovides for lookup-recipe
2015-01-07 7:06 [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Hongxu Jia
@ 2015-01-07 7:06 ` Hongxu Jia
2015-01-07 7:06 ` [PATCH 2/4] scripts/oe-pkgdata-util: add ability to list all produced packages from a recipe Hongxu Jia
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Hongxu Jia @ 2015-01-07 7:06 UTC (permalink / raw)
To: openembedded-core, ross.burton
If failed to invoke lookup-recipe while pkg not generated but provided
by others, such as python3, it is provided by python3-core
...
$ bitbake python3
$ oe-pkgdata-util -d lookup-recipe tmp/sysroots/qemux86/pkgdata/ "python3"
ERROR: the following packages could not be found: python3
...
In this situation, we search the pkg's rprovides (if available) to replace.
[YOCTO #5264]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
scripts/oe-pkgdata-util | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index bf87547..e43f773 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -27,6 +27,7 @@ import fnmatch
import re
import optparse
from collections import defaultdict
+import codecs
def glob(args, usage, debug=False):
if len(args) < 3:
@@ -234,6 +235,19 @@ def lookup_recipe(args, usage, debug=False):
print('ERROR: Unable to find pkgdata directory %s' % pkgdata_dir)
sys.exit(1)
+ # If the pkg not generated, search the rprovides to replace
+ rprovides = collect_rprovides(pkgdata_dir)
+ for pkg in pkgs[:]:
+ pkgfile = os.path.join(pkgdata_dir, 'runtime', pkg)
+ if not os.path.exists(pkgfile):
+ for newpkg, oldpkg in rprovides.items():
+ if oldpkg == pkg:
+ if debug:
+ print('%s rprovides %s' % (newpkg, pkg))
+ pkgs.remove(pkg)
+ pkgs.append(newpkg)
+ break
+
mappings = defaultdict(list)
for pkg in pkgs:
pkgfile = os.path.join(pkgdata_dir, 'runtime-reverse', pkg)
@@ -254,6 +268,46 @@ def lookup_recipe(args, usage, debug=False):
items.extend(mappings.get(pkg, []))
print '\n'.join(items)
+def collect_rprovides(pkgdata_dir):
+ def read_pkgdatafile(fn):
+ pkgdata = {}
+ def decode(str):
+ c = codecs.getdecoder("string_escape")
+ return c(str)[0]
+
+ if os.access(fn, os.R_OK):
+ import re
+ f = open(fn, 'r')
+ lines = f.readlines()
+ f.close()
+ r = re.compile("([^:]+):\s*(.*)")
+ for l in lines:
+ m = r.match(l)
+ if m:
+ pkgdata[m.group(1)] = decode(m.group(2))
+ return pkgdata
+
+ rprovides_dict = dict()
+ if os.path.exists(pkgdata_dir):
+ for root, dirs, files in os.walk("%s/runtime" % pkgdata_dir):
+ for pkgname in files:
+ pkgdatafile = "%s/%s" % (root, pkgname)
+ if not os.access("%s.packaged" % pkgdatafile, os.R_OK):
+ continue
+
+ try:
+ sdata = read_pkgdatafile(pkgdatafile)
+ rprovides = sdata.get('RPROVIDES_%s' % pkgname)
+ if rprovides:
+ rprovides_dict[pkgname] = rprovides
+
+ except Exception as e:
+ print("ERROR:%s: Failed to read pkgdata file %s: %s: %s" %
+ (pkgname, pkgdatafile, e.__class__, str(e)))
+ sys.exit(1)
+
+ return rprovides_dict
+
def find_path(args, usage, debug=False):
if len(args) < 2:
usage()
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 2/4] scripts/oe-pkgdata-util: add ability to list all produced packages from a recipe
2015-01-07 7:06 [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Hongxu Jia
2015-01-07 7:06 ` [PATCH 1/4] scripts/oe-pkgdata-util: support rprovides for lookup-recipe Hongxu Jia
@ 2015-01-07 7:06 ` Hongxu Jia
2015-01-07 7:06 ` [PATCH 3/4] python3: avoid debian renaming for libpython3 Hongxu Jia
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Hongxu Jia @ 2015-01-07 7:06 UTC (permalink / raw)
To: openembedded-core, ross.burton
Add a "list-packages" command to list all produced packages by a
particular recipe.
[YOCTO #5264]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
scripts/oe-pkgdata-util | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index e43f773..984f66e 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -28,6 +28,7 @@ import re
import optparse
from collections import defaultdict
import codecs
+import errno
def glob(args, usage, debug=False):
if len(args) < 3:
@@ -308,6 +309,46 @@ def collect_rprovides(pkgdata_dir):
return rprovides_dict
+def list_packages(args, usage, debug=False):
+ if len(args) < 2:
+ usage()
+ sys.exit(1)
+
+ pkgdata_dir = args[0]
+ if not os.path.exists(pkgdata_dir):
+ print('ERROR: Unable to find pkgdata directory %s' % pkgdata_dir)
+ sys.exit(1)
+
+ if len(args[1].split()) != 1:
+ print('ERROR: Only one recipe name is acceptable')
+ sys.exit(1)
+
+ recipe = args[1]
+ packages = ""
+ try:
+ with open(os.path.join(pkgdata_dir, recipe)) as f:
+ for line in f.readlines():
+ if line.startswith('PACKAGES: '):
+ packages = line.split(': ', 1)[1].split()
+ break
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ print('ERROR: The recipe %s does not exist' % recipe)
+ sys.exit(1)
+ else:
+ raise
+
+ # Filter out packages that not generated
+ for pkg in packages[:]:
+ flag_packaged = "%s/runtime/%s.packaged" % (pkgdata_dir, pkg)
+ if not os.access(flag_packaged, os.R_OK):
+ if debug:
+ print("%s not produced by %s" % (pkg, recipe))
+ packages.remove(pkg)
+
+ print '\n'.join(packages)
+
+
def find_path(args, usage, debug=False):
if len(args) < 2:
usage()
@@ -354,7 +395,9 @@ Available commands:
find the package providing the specified path (wildcards * ? allowed)
read-value <pkgdatadir> <value-name> "<pkgs>"
read the named value from the pkgdata files for the specified
- packages''')
+ packages
+ list-packages <pkgdatadir> "<recipe>"
+ list all packages produced by the particular recipe''')
parser.add_option("-d", "--debug",
help = "Enable debug output",
@@ -377,6 +420,8 @@ Available commands:
find_path(args[1:], parser.print_help, options.debug)
elif args[0] == "read-value":
read_value(args[1:], parser.print_help, options.debug)
+ elif args[0] == "list-packages":
+ list_packages(args[1:], parser.print_help, options.debug)
else:
parser.print_help()
sys.exit(1)
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 3/4] python3: avoid debian renaming for libpython3
2015-01-07 7:06 [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Hongxu Jia
2015-01-07 7:06 ` [PATCH 1/4] scripts/oe-pkgdata-util: support rprovides for lookup-recipe Hongxu Jia
2015-01-07 7:06 ` [PATCH 2/4] scripts/oe-pkgdata-util: add ability to list all produced packages from a recipe Hongxu Jia
@ 2015-01-07 7:06 ` Hongxu Jia
2015-01-07 7:06 ` [PATCH 4/4] manifest.py/image.bbclass: add var-INSTALL_ALL to install all packages of a recipes Hongxu Jia
2015-01-07 23:54 ` [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Richard Purdie
4 siblings, 0 replies; 10+ messages in thread
From: Hongxu Jia @ 2015-01-07 7:06 UTC (permalink / raw)
To: openembedded-core, ross.burton
When Debian-renaming, 'libpython3' was incorrectly converted to
'libpython3.3m1.0', it caused install 'libpython3' failed.
(IMAGE_INSTALL_append = " python3", INSTALL_ALL_python3 = "1")
...
ERROR: libpython3 not found in the base feeds (qemux86 i586 x86 noarch any all).
libpython3.3m1.0-3.3.3-r0.0@i586
...
We assign DEBIAN_NOAUTONAME for 'libpython3' to avoid debian renaming.
The same to 'libpython3-staticdev'.
[YOCTO #5264]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
meta/recipes-devtools/python/python3_3.3.3.bb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta/recipes-devtools/python/python3_3.3.3.bb b/meta/recipes-devtools/python/python3_3.3.3.bb
index 2c1f63f..3163fbd 100644
--- a/meta/recipes-devtools/python/python3_3.3.3.bb
+++ b/meta/recipes-devtools/python/python3_3.3.3.bb
@@ -204,6 +204,8 @@ FILES_${PN}-pyvenv += "${bindir}/pyvenv-${PYTHON_MAJMIN} ${bindir}/pyvenv"
PACKAGES =+ "libpython3 libpython3-staticdev"
FILES_libpython3 = "${libdir}/libpython*.so.*"
FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_BINABI}/libpython${PYTHON_BINABI}.a"
+DEBIAN_NOAUTONAME_libpython3 = "1"
+DEBIAN_NOAUTONAME_libpython3-staticdev = "1"
# catch debug extensions (isn't that already in python-core-dbg?)
FILES_${PN}-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug"
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 4/4] manifest.py/image.bbclass: add var-INSTALL_ALL to install all packages of a recipes.
2015-01-07 7:06 [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Hongxu Jia
` (2 preceding siblings ...)
2015-01-07 7:06 ` [PATCH 3/4] python3: avoid debian renaming for libpython3 Hongxu Jia
@ 2015-01-07 7:06 ` Hongxu Jia
2015-01-07 23:54 ` [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Richard Purdie
4 siblings, 0 replies; 10+ messages in thread
From: Hongxu Jia @ 2015-01-07 7:06 UTC (permalink / raw)
To: openembedded-core, ross.burton
Add variable INSTALL_ALL to install all available packages of a recipe, the recipe
comes from the package listed in PACKAGE_INSTALL (IMAGE_INSTALL also)
Here is the design:
1) According to the packages listed in PACKAGE_INSTALL, figure out recipes
which produced them by invoking script oe-pkgdata-util;
2) Go on invoking script oe-pkgdata-util to list all available packages in
these recipes except *-(doc|dbg|dev|staticdev|locale|ptest), and use them
to replace packages in PACKAGE_INSTALL;
3) Packages installation at do_rootfs time as normal;
4) INSTALL_ALL is a global switch for all packages listed in PACKAGE_INSTALL,
you also could assign INSTALL_ALL_pkgname ?= "1" for the particular
package in PACKAGE_INSTALL;
[YOCTO #5264]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
meta/classes/image.bbclass | 19 +++++++++++++++-
meta/lib/oe/manifest.py | 56 ++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 72 insertions(+), 3 deletions(-)
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 07e7f99..8c7df9a 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -54,6 +54,16 @@ def check_image_features(d):
if feature not in valid_features:
bb.fatal("'%s' in IMAGE_FEATURES is not a valid image feature. Valid features: %s" % (feature, ' '.join(valid_features)))
+# Assign INSTALL_ALL ?= "1" means:
+# 1) According to the packages listed in PACKAGE_INSTALL, figure out recipes
+# which produced them by invoking script oe-pkgdata-util;
+# 2) Go on invoking script oe-pkgdata-util to list all available packages in
+# these recipes except *-(doc|dbg|dev|staticdev|locale|ptest), and use them
+# to replace packages in PACKAGE_INSTALL;
+# 3) INSTALL_ALL is a global switch for all packages listed in PACKAGE_INSTALL,
+# you also could assign INSTALL_ALL_pkgname ?= "1" for the particular
+# package in PACKAGE_INSTALL.
+INSTALL_ALL ?= "0"
IMAGE_INSTALL ?= ""
IMAGE_INSTALL[type] = "list"
export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL} ${FEATURE_INSTALL}"
@@ -95,9 +105,16 @@ def rootfs_variables(d):
'SDK_OUTPUT','SDKPATHNATIVE','SDKTARGETSYSROOT','SDK_DIR','SDK_VENDOR','SDKIMAGE_INSTALL_COMPLEMENTARY','SDK_PACKAGE_ARCHS','SDK_OUTPUT','SDKTARGETSYSROOT','MULTILIBRE_ALLOW_REP',
'MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS','PACKAGE_ARCHS',
'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','BUILDNAME','USE_DEVFS',
- 'STAGING_KERNEL_DIR','COMPRESSIONTYPES']
+ 'STAGING_KERNEL_DIR','COMPRESSIONTYPES', 'INSTALL_ALL']
variables.extend(command_variables(d))
variables.extend(variable_depends(d))
+
+ for pkg in (d.getVar('PACKAGE_INSTALL', True) or '').split():
+ installall_var = 'INSTALL_ALL_%s' % pkg
+ installall_val = d.getVar(installall_var, True)
+ if installall_val and installall_var not in variables:
+ variables.append(installall_var)
+
return " ".join(variables)
do_rootfs[vardeps] += "${@rootfs_variables(d)}"
diff --git a/meta/lib/oe/manifest.py b/meta/lib/oe/manifest.py
index 42832f1..b61ee9d 100644
--- a/meta/lib/oe/manifest.py
+++ b/meta/lib/oe/manifest.py
@@ -2,6 +2,7 @@ from abc import ABCMeta, abstractmethod
import os
import re
import bb
+import subprocess
class Manifest(object):
@@ -139,6 +140,55 @@ class Manifest(object):
pass
"""
+ Find recipe which produced package pkgname, and look up all available
+ packages in that recipe except *-(doc|dbg|dev|staticdev|locale|ptest)
+ """
+ def _lookup_packages(self, pkgtype=PKG_TYPE_ATTEMPT_ONLY, pkgname=None):
+ if pkgname is None:
+ bb.warn('pkgname is None')
+ return []
+
+ if pkgtype == self.PKG_TYPE_ATTEMPT_ONLY or \
+ pkgtype == self.PKG_TYPE_LANGUAGE:
+ return []
+
+ if self.d.getVar('INSTALL_ALL', True) != '1' and \
+ self.d.getVar('INSTALL_ALL_%s' % pkgname, True) != '1':
+ return []
+
+ pkgdata_dir = self.d.getVar('PKGDATA_DIR', True)
+ cmd = "oe-pkgdata-util lookup-recipe %s %s" % (pkgdata_dir, pkgname)
+ try:
+ recipe = subprocess.check_output(cmd,
+ stderr=subprocess.STDOUT,
+ shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.note("Could not lookup recipe for package %s" % (pkgname))
+ return []
+
+ cmd = "oe-pkgdata-util list-packages %s %s" % (pkgdata_dir, recipe)
+ try:
+ output = subprocess.check_output(cmd,
+ stderr=subprocess.STDOUT,
+ shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Could not list packages for recipe %s. Command "
+ "'%s' returned %d:\n%s" %
+ (recipe, cmd, e.returncode, e.output))
+
+ packages = []
+ for pkg in output.split('\n'):
+ if not pkg or pkg.endswith("-ptest") or \
+ pkg.endswith("-dev") or pkg.endswith("-staticdev") or \
+ pkg.endswith("-locale") or pkg.endswith("-dbg") or \
+ pkg.endswith("-doc"):
+ continue
+
+ packages.append(pkg)
+
+ return packages
+
+ """
The following function parses an initial manifest and returns a dictionary
object with the must install, attempt only, multilib and language packages.
"""
@@ -162,10 +212,12 @@ class Manifest(object):
pkg_type = pkg.group(1)
pkg_name = pkg.group(2)
+ packages = self._lookup_packages(pkg_type, pkg_name) or \
+ [pkg_name]
if not pkg_type in pkgs:
- pkgs[pkg_type] = [pkg_name]
+ pkgs[pkg_type] = packages
else:
- pkgs[pkg_type].append(pkg_name)
+ pkgs[pkg_type] = list(set(packages + pkgs[pkg_type]))
return pkgs
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes
2015-01-07 7:06 [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Hongxu Jia
` (3 preceding siblings ...)
2015-01-07 7:06 ` [PATCH 4/4] manifest.py/image.bbclass: add var-INSTALL_ALL to install all packages of a recipes Hongxu Jia
@ 2015-01-07 23:54 ` Richard Purdie
2015-01-08 2:27 ` Hongxu Jia
4 siblings, 1 reply; 10+ messages in thread
From: Richard Purdie @ 2015-01-07 23:54 UTC (permalink / raw)
To: Hongxu Jia; +Cc: openembedded-core
This tells me what the change does. What it doesn't say is why we need
this?
Its a fairly invasive set of changes but I don't see the usecase...
Cheers,
Richard
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes
2015-01-07 23:54 ` [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes Richard Purdie
@ 2015-01-08 2:27 ` Hongxu Jia
2015-01-08 11:55 ` Otavio Salvador
0 siblings, 1 reply; 10+ messages in thread
From: Hongxu Jia @ 2015-01-08 2:27 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
On 01/08/2015 07:54 AM, Richard Purdie wrote:
> This tells me what the change does. What it doesn't say is why we need
> this?
>
> Its a fairly invasive set of changes but I don't see the usecase...
Hi Richard,
I am sorry not to say it clearly,
1) We have been asked many times on how to install all the PACKAGES
of a recipe, we can only list them one by one in the RDPENDS (or
IMAGE_INSTALL and so on) currently, especially like dynamic generated
packages (perl-modules, kernel-modules) which depends on many other
packages, it is not easy to remember these package names for customer.
It is helpful for user who does not take care the details that how many
packages generated in a recipe, just want to directly install all of
them.
2) Providing a mechanism to install all the PACKAGES of a recipe is helpful
to test all generated packages of a recipe could work, such as the
defect
of '[PATCH 3/4]' was found by installing all packages of python3.
3) The fix is based on the usage of IMAGE_INSTALL, so it doesn't affect the
users who do not want to use this feature (We disable it by default).
//Hongxu
> Cheers,
>
> Richard
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes
2015-01-08 2:27 ` Hongxu Jia
@ 2015-01-08 11:55 ` Otavio Salvador
2015-01-08 12:06 ` Hongxu Jia
0 siblings, 1 reply; 10+ messages in thread
From: Otavio Salvador @ 2015-01-08 11:55 UTC (permalink / raw)
To: Hongxu Jia; +Cc: Patches and discussions about the oe-core layer
On Thu, Jan 8, 2015 at 12:27 AM, Hongxu Jia <hongxu.jia@windriver.com> wrote:
> On 01/08/2015 07:54 AM, Richard Purdie wrote:
>>
>> This tells me what the change does. What it doesn't say is why we need
>> this?
>>
>> Its a fairly invasive set of changes but I don't see the usecase...
>
>
> Hi Richard,
>
> I am sorry not to say it clearly,
>
> 1) We have been asked many times on how to install all the PACKAGES
> of a recipe, we can only list them one by one in the RDPENDS (or
> IMAGE_INSTALL and so on) currently, especially like dynamic generated
> packages (perl-modules, kernel-modules) which depends on many other
> packages, it is not easy to remember these package names for customer.
> It is helpful for user who does not take care the details that how many
> packages generated in a recipe, just want to directly install all of
> them.
>
> 2) Providing a mechanism to install all the PACKAGES of a recipe is helpful
> to test all generated packages of a recipe could work, such as the defect
> of '[PATCH 3/4]' was found by installing all packages of python3.
>
> 3) The fix is based on the usage of IMAGE_INSTALL, so it doesn't affect the
> users who do not want to use this feature (We disable it by default).
For me, it seems those should have a meta package, not a new install
variable fo this.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes
2015-01-08 11:55 ` Otavio Salvador
@ 2015-01-08 12:06 ` Hongxu Jia
2015-01-08 12:10 ` Otavio Salvador
0 siblings, 1 reply; 10+ messages in thread
From: Hongxu Jia @ 2015-01-08 12:06 UTC (permalink / raw)
To: Otavio Salvador; +Cc: Patches and discussions about the oe-core layer
On 01/08/2015 07:55 PM, Otavio Salvador wrote:
> On Thu, Jan 8, 2015 at 12:27 AM, Hongxu Jia <hongxu.jia@windriver.com> wrote:
>> On 01/08/2015 07:54 AM, Richard Purdie wrote:
>>> This tells me what the change does. What it doesn't say is why we need
>>> this?
>>>
>>> Its a fairly invasive set of changes but I don't see the usecase...
>>
>> Hi Richard,
>>
>> I am sorry not to say it clearly,
>>
>> 1) We have been asked many times on how to install all the PACKAGES
>> of a recipe, we can only list them one by one in the RDPENDS (or
>> IMAGE_INSTALL and so on) currently, especially like dynamic generated
>> packages (perl-modules, kernel-modules) which depends on many other
>> packages, it is not easy to remember these package names for customer.
>> It is helpful for user who does not take care the details that how many
>> packages generated in a recipe, just want to directly install all of
>> them.
>>
>> 2) Providing a mechanism to install all the PACKAGES of a recipe is helpful
>> to test all generated packages of a recipe could work, such as the defect
>> of '[PATCH 3/4]' was found by installing all packages of python3.
>>
>> 3) The fix is based on the usage of IMAGE_INSTALL, so it doesn't affect the
>> users who do not want to use this feature (We disable it by default).
> For me, it seems those should have a meta package, not a new install
> variable fo this.
What meta package means? I am sorry I don't quite follow it.
//Hongxu
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/4] add variable INSTALL_ALL to install all packages in recipes
2015-01-08 12:06 ` Hongxu Jia
@ 2015-01-08 12:10 ` Otavio Salvador
0 siblings, 0 replies; 10+ messages in thread
From: Otavio Salvador @ 2015-01-08 12:10 UTC (permalink / raw)
To: Hongxu Jia; +Cc: Patches and discussions about the oe-core layer
On Thu, Jan 8, 2015 at 10:06 AM, Hongxu Jia <hongxu.jia@windriver.com> wrote:
> On 01/08/2015 07:55 PM, Otavio Salvador wrote:
>>
>> On Thu, Jan 8, 2015 at 12:27 AM, Hongxu Jia <hongxu.jia@windriver.com>
>> wrote:
>>>
>>> On 01/08/2015 07:54 AM, Richard Purdie wrote:
>>>>
>>>> This tells me what the change does. What it doesn't say is why we need
>>>> this?
>>>>
>>>> Its a fairly invasive set of changes but I don't see the usecase...
>>>
>>>
>>> Hi Richard,
>>>
>>> I am sorry not to say it clearly,
>>>
>>> 1) We have been asked many times on how to install all the PACKAGES
>>> of a recipe, we can only list them one by one in the RDPENDS (or
>>> IMAGE_INSTALL and so on) currently, especially like dynamic generated
>>> packages (perl-modules, kernel-modules) which depends on many other
>>> packages, it is not easy to remember these package names for
>>> customer.
>>> It is helpful for user who does not take care the details that how
>>> many
>>> packages generated in a recipe, just want to directly install all of
>>> them.
>>>
>>> 2) Providing a mechanism to install all the PACKAGES of a recipe is
>>> helpful
>>> to test all generated packages of a recipe could work, such as the
>>> defect
>>> of '[PATCH 3/4]' was found by installing all packages of python3.
>>>
>>> 3) The fix is based on the usage of IMAGE_INSTALL, so it doesn't affect
>>> the
>>> users who do not want to use this feature (We disable it by default).
>>
>> For me, it seems those should have a meta package, not a new install
>> variable fo this.
>
>
> What meta package means? I am sorry I don't quite follow it.
Like we do for gstreamer; gstreamer1.0-plugins-good-meta, for example.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 10+ messages in thread