* [PATCH] sdk.py: fix conflicts of packages
@ 2015-08-25 8:29 Jian Liu
2015-09-01 21:11 ` Richard Purdie
0 siblings, 1 reply; 5+ messages in thread
From: Jian Liu @ 2015-08-25 8:29 UTC (permalink / raw)
To: openembedded-core
If packages are conveyed to smart to install at the same time,
conflicts will not happen.
Try to install packages into sdk image at the same time.
This patch is not so perfect. For example,
IMAGE_INSTALL += "lib32-ncurses"
IMAGE_INSTALL += "ncurses-dev"
ncurses-dev and lib32-ncurses-dev will have conflicts during packages installation.
Signed-off-by: Jian Liu <jian.liu@windriver.com>
---
sdk.py | 45 +++++++++++++++++++++++++++++++++------------
1 file changed, 33 insertions(+), 12 deletions(-)
diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
index c57a441..7b43a29 100644
--- a/meta/lib/oe/sdk.py
+++ b/meta/lib/oe/sdk.py
@@ -107,10 +107,17 @@ class RpmSdk(Sdk):
pm.dump_all_available_pkgs()
pm.update()
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ pkgs_attempt += pkgs_to_install[pkg_type]
+ else:
+ pkgs += pkgs_to_install[pkg_type]
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
def _populate(self):
bb.note("Installing TARGET packages")
@@ -184,10 +191,17 @@ class OpkgSdk(Sdk):
pm.update()
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ pkgs_attempt += pkgs_to_install[pkg_type]
+ else:
+ pkgs += pkgs_to_install[pkg_type]
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
def _populate(self):
bb.note("Installing TARGET packages")
@@ -260,10 +274,17 @@ class DpkgSdk(Sdk):
pm.write_index()
pm.update()
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ pkgs_attempt += pkgs_to_install[pkg_type]
+ else:
+ pkgs += pkgs_to_install[pkg_type]
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
def _populate(self):
bb.note("Installing TARGET packages")
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] sdk.py: fix conflicts of packages
2015-08-25 8:29 [PATCH] sdk.py: fix conflicts of packages Jian Liu
@ 2015-09-01 21:11 ` Richard Purdie
2015-09-01 21:29 ` Mark Hatle
0 siblings, 1 reply; 5+ messages in thread
From: Richard Purdie @ 2015-09-01 21:11 UTC (permalink / raw)
To: Jian Liu; +Cc: openembedded-core
On Tue, 2015-08-25 at 16:29 +0800, Jian Liu wrote:
> If packages are conveyed to smart to install at the same time,
> conflicts will not happen.
> Try to install packages into sdk image at the same time.
Doesn't smart have an issue where if one package fails to install for
some reason, others listed in the same command won't be attempted? Did
you test that?
Cheers,
Richard
> This patch is not so perfect. For example,
> IMAGE_INSTALL += "lib32-ncurses"
> IMAGE_INSTALL += "ncurses-dev"
> ncurses-dev and lib32-ncurses-dev will have conflicts during packages installation.
>
> Signed-off-by: Jian Liu <jian.liu@windriver.com>
> ---
> sdk.py | 45 +++++++++++++++++++++++++++++++++------------
> 1 file changed, 33 insertions(+), 12 deletions(-)
>
> diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
> index c57a441..7b43a29 100644
> --- a/meta/lib/oe/sdk.py
> +++ b/meta/lib/oe/sdk.py
> @@ -107,10 +107,17 @@ class RpmSdk(Sdk):
> pm.dump_all_available_pkgs()
> pm.update()
>
> - for pkg_type in self.install_order:
> - if pkg_type in pkgs_to_install:
> - pm.install(pkgs_to_install[pkg_type],
> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
> + pkgs = []
> + pkgs_attempt = []
> + for pkg_type in pkgs_to_install:
> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
> + pkgs_attempt += pkgs_to_install[pkg_type]
> + else:
> + pkgs += pkgs_to_install[pkg_type]
> +
> + pm.install(pkgs)
> +
> + pm.install(pkgs_attempt, True)
>
> def _populate(self):
> bb.note("Installing TARGET packages")
> @@ -184,10 +191,17 @@ class OpkgSdk(Sdk):
>
> pm.update()
>
> - for pkg_type in self.install_order:
> - if pkg_type in pkgs_to_install:
> - pm.install(pkgs_to_install[pkg_type],
> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
> + pkgs = []
> + pkgs_attempt = []
> + for pkg_type in pkgs_to_install:
> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
> + pkgs_attempt += pkgs_to_install[pkg_type]
> + else:
> + pkgs += pkgs_to_install[pkg_type]
> +
> + pm.install(pkgs)
> +
> + pm.install(pkgs_attempt, True)
>
> def _populate(self):
> bb.note("Installing TARGET packages")
> @@ -260,10 +274,17 @@ class DpkgSdk(Sdk):
> pm.write_index()
> pm.update()
>
> - for pkg_type in self.install_order:
> - if pkg_type in pkgs_to_install:
> - pm.install(pkgs_to_install[pkg_type],
> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
> + pkgs = []
> + pkgs_attempt = []
> + for pkg_type in pkgs_to_install:
> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
> + pkgs_attempt += pkgs_to_install[pkg_type]
> + else:
> + pkgs += pkgs_to_install[pkg_type]
> +
> + pm.install(pkgs)
> +
> + pm.install(pkgs_attempt, True)
>
> def _populate(self):
> bb.note("Installing TARGET packages")
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] sdk.py: fix conflicts of packages
2015-09-01 21:11 ` Richard Purdie
@ 2015-09-01 21:29 ` Mark Hatle
2015-09-01 21:51 ` Mark Hatle
0 siblings, 1 reply; 5+ messages in thread
From: Mark Hatle @ 2015-09-01 21:29 UTC (permalink / raw)
To: Richard Purdie, Jian Liu; +Cc: openembedded-core
On 9/1/15 4:11 PM, Richard Purdie wrote:
> On Tue, 2015-08-25 at 16:29 +0800, Jian Liu wrote:
>> If packages are conveyed to smart to install at the same time,
>> conflicts will not happen.
>> Try to install packages into sdk image at the same time.
>
> Doesn't smart have an issue where if one package fails to install for
> some reason, others listed in the same command won't be attempted? Did
> you test that?
I believe this was fixed in:
commit cd475aea5f5bc4b6a2dd3e576070a117ae079597
Author: Mark Hatle <mark.hatle@windriver.com>
Date: Thu Jan 22 16:10:34 2015 -0600
python-smartpm: Fix attemptonly builds when file conflicts occur
[YOCTO #7299]
When file conflicts occur, the RPM transaction aborts. Instead of
simply accepting the failure, we now identify, capture, and remove
the offending package(s) from the transaction and retry.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
--Mark
> Cheers,
>
> Richard
>
>> This patch is not so perfect. For example,
>> IMAGE_INSTALL += "lib32-ncurses"
>> IMAGE_INSTALL += "ncurses-dev"
>> ncurses-dev and lib32-ncurses-dev will have conflicts during packages installation.
>>
>> Signed-off-by: Jian Liu <jian.liu@windriver.com>
>> ---
>> sdk.py | 45 +++++++++++++++++++++++++++++++++------------
>> 1 file changed, 33 insertions(+), 12 deletions(-)
>>
>> diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
>> index c57a441..7b43a29 100644
>> --- a/meta/lib/oe/sdk.py
>> +++ b/meta/lib/oe/sdk.py
>> @@ -107,10 +107,17 @@ class RpmSdk(Sdk):
>> pm.dump_all_available_pkgs()
>> pm.update()
>>
>> - for pkg_type in self.install_order:
>> - if pkg_type in pkgs_to_install:
>> - pm.install(pkgs_to_install[pkg_type],
>> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
>> + pkgs = []
>> + pkgs_attempt = []
>> + for pkg_type in pkgs_to_install:
>> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
>> + pkgs_attempt += pkgs_to_install[pkg_type]
>> + else:
>> + pkgs += pkgs_to_install[pkg_type]
>> +
>> + pm.install(pkgs)
>> +
>> + pm.install(pkgs_attempt, True)
>>
>> def _populate(self):
>> bb.note("Installing TARGET packages")
>> @@ -184,10 +191,17 @@ class OpkgSdk(Sdk):
>>
>> pm.update()
>>
>> - for pkg_type in self.install_order:
>> - if pkg_type in pkgs_to_install:
>> - pm.install(pkgs_to_install[pkg_type],
>> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
>> + pkgs = []
>> + pkgs_attempt = []
>> + for pkg_type in pkgs_to_install:
>> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
>> + pkgs_attempt += pkgs_to_install[pkg_type]
>> + else:
>> + pkgs += pkgs_to_install[pkg_type]
>> +
>> + pm.install(pkgs)
>> +
>> + pm.install(pkgs_attempt, True)
>>
>> def _populate(self):
>> bb.note("Installing TARGET packages")
>> @@ -260,10 +274,17 @@ class DpkgSdk(Sdk):
>> pm.write_index()
>> pm.update()
>>
>> - for pkg_type in self.install_order:
>> - if pkg_type in pkgs_to_install:
>> - pm.install(pkgs_to_install[pkg_type],
>> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
>> + pkgs = []
>> + pkgs_attempt = []
>> + for pkg_type in pkgs_to_install:
>> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
>> + pkgs_attempt += pkgs_to_install[pkg_type]
>> + else:
>> + pkgs += pkgs_to_install[pkg_type]
>> +
>> + pm.install(pkgs)
>> +
>> + pm.install(pkgs_attempt, True)
>>
>> def _populate(self):
>> bb.note("Installing TARGET packages")
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] sdk.py: fix conflicts of packages
2015-09-01 21:29 ` Mark Hatle
@ 2015-09-01 21:51 ` Mark Hatle
0 siblings, 0 replies; 5+ messages in thread
From: Mark Hatle @ 2015-09-01 21:51 UTC (permalink / raw)
To: Richard Purdie, Jian Liu; +Cc: openembedded-core
On 9/1/15 4:29 PM, Mark Hatle wrote:
> On 9/1/15 4:11 PM, Richard Purdie wrote:
>> On Tue, 2015-08-25 at 16:29 +0800, Jian Liu wrote:
>>> If packages are conveyed to smart to install at the same time,
>>> conflicts will not happen.
>>> Try to install packages into sdk image at the same time.
I forgot to add.. If we have two packages that are conflicting, even in an
'attemptonly' install... it's likely a bug in those packages. Two files of the
same path/name should never be written to that same location.. they either need
to be made to be identical, or we need to justify why the two packages can never
be installed at the same time.
(In the case if ncurses-dev, I'd be hard to justify why they shouldn't be
installed at the same time.)
--Mark
>> Doesn't smart have an issue where if one package fails to install for
>> some reason, others listed in the same command won't be attempted? Did
>> you test that?
>
> I believe this was fixed in:
>
> commit cd475aea5f5bc4b6a2dd3e576070a117ae079597
> Author: Mark Hatle <mark.hatle@windriver.com>
> Date: Thu Jan 22 16:10:34 2015 -0600
>
> python-smartpm: Fix attemptonly builds when file conflicts occur
>
> [YOCTO #7299]
>
> When file conflicts occur, the RPM transaction aborts. Instead of
> simply accepting the failure, we now identify, capture, and remove
> the offending package(s) from the transaction and retry.
>
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> Signed-off-by: Ross Burton <ross.burton@intel.com>
>
>
>
>
> --Mark
>
>> Cheers,
>>
>> Richard
>>
>>> This patch is not so perfect. For example,
>>> IMAGE_INSTALL += "lib32-ncurses"
>>> IMAGE_INSTALL += "ncurses-dev"
>>> ncurses-dev and lib32-ncurses-dev will have conflicts during packages installation.
>>>
>>> Signed-off-by: Jian Liu <jian.liu@windriver.com>
>>> ---
>>> sdk.py | 45 +++++++++++++++++++++++++++++++++------------
>>> 1 file changed, 33 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
>>> index c57a441..7b43a29 100644
>>> --- a/meta/lib/oe/sdk.py
>>> +++ b/meta/lib/oe/sdk.py
>>> @@ -107,10 +107,17 @@ class RpmSdk(Sdk):
>>> pm.dump_all_available_pkgs()
>>> pm.update()
>>>
>>> - for pkg_type in self.install_order:
>>> - if pkg_type in pkgs_to_install:
>>> - pm.install(pkgs_to_install[pkg_type],
>>> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
>>> + pkgs = []
>>> + pkgs_attempt = []
>>> + for pkg_type in pkgs_to_install:
>>> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
>>> + pkgs_attempt += pkgs_to_install[pkg_type]
>>> + else:
>>> + pkgs += pkgs_to_install[pkg_type]
>>> +
>>> + pm.install(pkgs)
>>> +
>>> + pm.install(pkgs_attempt, True)
>>>
>>> def _populate(self):
>>> bb.note("Installing TARGET packages")
>>> @@ -184,10 +191,17 @@ class OpkgSdk(Sdk):
>>>
>>> pm.update()
>>>
>>> - for pkg_type in self.install_order:
>>> - if pkg_type in pkgs_to_install:
>>> - pm.install(pkgs_to_install[pkg_type],
>>> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
>>> + pkgs = []
>>> + pkgs_attempt = []
>>> + for pkg_type in pkgs_to_install:
>>> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
>>> + pkgs_attempt += pkgs_to_install[pkg_type]
>>> + else:
>>> + pkgs += pkgs_to_install[pkg_type]
>>> +
>>> + pm.install(pkgs)
>>> +
>>> + pm.install(pkgs_attempt, True)
>>>
>>> def _populate(self):
>>> bb.note("Installing TARGET packages")
>>> @@ -260,10 +274,17 @@ class DpkgSdk(Sdk):
>>> pm.write_index()
>>> pm.update()
>>>
>>> - for pkg_type in self.install_order:
>>> - if pkg_type in pkgs_to_install:
>>> - pm.install(pkgs_to_install[pkg_type],
>>> - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
>>> + pkgs = []
>>> + pkgs_attempt = []
>>> + for pkg_type in pkgs_to_install:
>>> + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
>>> + pkgs_attempt += pkgs_to_install[pkg_type]
>>> + else:
>>> + pkgs += pkgs_to_install[pkg_type]
>>> +
>>> + pm.install(pkgs)
>>> +
>>> + pm.install(pkgs_attempt, True)
>>>
>>> def _populate(self):
>>> bb.note("Installing TARGET packages")
>>
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] sdk.py: fix conflicts of packages
@ 2015-11-11 8:07 Jian Liu
0 siblings, 0 replies; 5+ messages in thread
From: Jian Liu @ 2015-11-11 8:07 UTC (permalink / raw)
To: openembedded-core
If packages are conveyed to smart to install at the same time,
conflicts will not happen.
Try to install packages into sdk image at the same time
Signed-off-by: Jian Liu <jian.liu@windriver.com>
---
sdk.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 96 insertions(+), 12 deletions(-)
diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
index c57a441..f62d948 100644
--- a/meta/lib/oe/sdk.py
+++ b/meta/lib/oe/sdk.py
@@ -107,10 +107,38 @@ class RpmSdk(Sdk):
pm.dump_all_available_pkgs()
pm.update()
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ except_pkgs = self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY', True).replace("*","").split()
+
+ # Here is only a workaround.
+ # The packages are separated into 3 parts ---
+ # -- attempt only (in pkgs_to_install)
+ # -- must install (in pkgs_to_install)
+ # -- comlementary (add -dev and -dbg after the packages in pkgs_to_install)
+ # If pkgs_to_install contains libxml2-dev and lib32-libxml2, the result will be
+ # libxml2-dev is installed but lib32-libxml2-dev will not be.
+ # Reason is that smart can not handle conflicts unless lib32-libxml2-dev and libxml2-dev
+ # is installed at the same time. That is "pm.install('lib32-libxml2-dev libxml2-dev').
+ # But the situation is "pm.install('lib32-libxml2-dev'); pm.install('libxml2-dev')"
+ # Here try to put lib32-libxml2-dev and libxml2-dev in comlementary packages, so that
+ # they can be installed at the same time
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ for pkg in pkgs_to_install[pkg_type]:
+ for except_pkg in except_pkgs:
+ if "packagegroup" not in pkg and pkg.endswith(except_pkg):
+ pkg = pkg[:-len(except_pkg)]
+
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ if pkg not in pkgs_attempt:
+ pkgs_attempt.append(pkg)
+ else:
+ if pkg not in pkgs_attempt:
+ pkgs.append(pkg)
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
def _populate(self):
bb.note("Installing TARGET packages")
@@ -184,10 +212,38 @@ class OpkgSdk(Sdk):
pm.update()
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ except_pkgs = self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY', True).replace("*","").split()
+
+ # Here is only a workaround.
+ # The packages are separated into 3 parts ---
+ # -- attempt only (in pkgs_to_install)
+ # -- must install (in pkgs_to_install)
+ # -- comlementary (add -dev and -dbg after the packages in pkgs_to_install)
+ # If pkgs_to_install contains libxml2-dev and lib32-libxml2, the result will be
+ # libxml2-dev is installed but lib32-libxml2-dev will not be.
+ # Reason is that smart can not handle conflicts unless lib32-libxml2-dev and libxml2-dev
+ # is installed at the same time. That is "pm.install('lib32-libxml2-dev libxml2-dev').
+ # But the situation is "pm.install('lib32-libxml2-dev'); pm.install('libxml2-dev')"
+ # Here try to put lib32-libxml2-dev and libxml2-dev in comlementary packages, so that
+ # they can be installed at the same time
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ for pkg in pkgs_to_install[pkg_type]:
+ for except_pkg in except_pkgs:
+ if "packagegroup" not in pkg and pkg.endswith(except_pkg):
+ pkg = pkg[:-len(except_pkg)]
+
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ if pkg not in pkgs_attempt:
+ pkgs_attempt.append(pkg)
+ else:
+ if pkg not in pkgs_attempt:
+ pkgs.append(pkg)
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
def _populate(self):
bb.note("Installing TARGET packages")
@@ -260,10 +316,38 @@ class DpkgSdk(Sdk):
pm.write_index()
pm.update()
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ except_pkgs = self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY', True).replace("*","").split()
+
+ # Here is only a workaround.
+ # The packages are separated into 3 parts ---
+ # -- attempt only (in pkgs_to_install)
+ # -- must install (in pkgs_to_install)
+ # -- comlementary (add -dev and -dbg after the packages in pkgs_to_install)
+ # If pkgs_to_install contains libxml2-dev and lib32-libxml2, the result will be
+ # libxml2-dev is installed but lib32-libxml2-dev will not be.
+ # Reason is that smart can not handle conflicts unless lib32-libxml2-dev and libxml2-dev
+ # is installed at the same time. That is "pm.install('lib32-libxml2-dev libxml2-dev').
+ # But the situation is "pm.install('lib32-libxml2-dev'); pm.install('libxml2-dev')"
+ # Here try to put lib32-libxml2-dev and libxml2-dev in comlementary packages, so that
+ # they can be installed at the same time
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ for pkg in pkgs_to_install[pkg_type]:
+ for except_pkg in except_pkgs:
+ if "packagegroup" not in pkg and pkg.endswith(except_pkg):
+ pkg = pkg[:-len(except_pkg)]
+
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ if pkg not in pkgs_attempt:
+ pkgs_attempt.append(pkg)
+ else:
+ if pkg not in pkgs_attempt:
+ pkgs.append(pkg)
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
def _populate(self):
bb.note("Installing TARGET packages")
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-11-11 8:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-25 8:29 [PATCH] sdk.py: fix conflicts of packages Jian Liu
2015-09-01 21:11 ` Richard Purdie
2015-09-01 21:29 ` Mark Hatle
2015-09-01 21:51 ` Mark Hatle
-- strict thread matches above, loose matches on Subject: below --
2015-11-11 8:07 Jian Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox