All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sdk.py: preserve packaging data when SDKIMAGE_FEATURES has "package-management"
@ 2016-04-21 18:44 Denys Dmytriyenko
  2016-04-25 16:26 ` Denys Dmytriyenko
  0 siblings, 1 reply; 2+ messages in thread
From: Denys Dmytriyenko @ 2016-04-21 18:44 UTC (permalink / raw)
  To: openembedded-core; +Cc: Denys Dmytriyenko

From: Denys Dmytriyenko <denys@ti.com>

This is not enabled by default, as there are still limitations and possible
issues with opkg (and rpm?) packaging data containing broken symlinks for
local indexes:

http://cgit.openembedded.org/openembedded-core/commit/?id=c8e0ec2da9ad4ce1c103966906a85f68c15400dd

There are other use cases for the packaging data to be available in SDK,
since it provides comprehensive info about SDK's contents and in the case of
opkg and dpkg is all text-based and can be easily parsed by simple scripts.

Introduce new "package-management" flag for SDKIMAGE_FEATURES list (similar
to the one already used for IMAGE_FEATURES) that controls presence of the
packaging data in resulting SDK, while unifying this behavior across the
board for supported pkg managers - rpm, opkg, dpkg.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
---
 meta/lib/oe/sdk.py | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
index f15fbdb..f1bbef6 100644
--- a/meta/lib/oe/sdk.py
+++ b/meta/lib/oe/sdk.py
@@ -155,14 +155,16 @@ class RpmSdk(Sdk):
 
         execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND", True))
 
-        self.target_pm.remove_packaging_data()
+        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+            self.target_pm.remove_packaging_data()
 
         bb.note("Installing NATIVESDK packages")
         self._populate_sysroot(self.host_pm, self.host_manifest)
 
         execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND", True))
 
-        self.host_pm.remove_packaging_data()
+        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+            self.host_pm.remove_packaging_data()
 
         # Move host RPM library data
         native_rpm_state_dir = os.path.join(self.sdk_output,
@@ -232,14 +234,16 @@ class OpkgSdk(Sdk):
 
         execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND", True))
 
-        self.target_pm.remove_packaging_data()
+        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+            self.target_pm.remove_packaging_data()
 
         bb.note("Installing NATIVESDK packages")
         self._populate_sysroot(self.host_pm, self.host_manifest)
 
         execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND", True))
 
-        self.host_pm.remove_packaging_data()
+        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+            self.host_pm.remove_packaging_data()
 
         target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir)
         host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir)
@@ -314,6 +318,9 @@ class DpkgSdk(Sdk):
 
         self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt"))
 
+        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+            self.target_pm.remove_packaging_data()
+
         bb.note("Installing NATIVESDK packages")
         self._populate_sysroot(self.host_pm, self.host_manifest)
 
@@ -322,6 +329,9 @@ class DpkgSdk(Sdk):
         self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path,
                                            "etc", "apt"))
 
+        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+            self.host_pm.remove_packaging_data()
+
         native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
                                              "var", "lib", "dpkg")
         self.mkdirhier(native_dpkg_state_dir)
-- 
2.2.0



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

* Re: [PATCH] sdk.py: preserve packaging data when SDKIMAGE_FEATURES has "package-management"
  2016-04-21 18:44 [PATCH] sdk.py: preserve packaging data when SDKIMAGE_FEATURES has "package-management" Denys Dmytriyenko
@ 2016-04-25 16:26 ` Denys Dmytriyenko
  0 siblings, 0 replies; 2+ messages in thread
From: Denys Dmytriyenko @ 2016-04-25 16:26 UTC (permalink / raw)
  To: openembedded-core; +Cc: Denys Dmytriyenko

Any comments?


On Thu, Apr 21, 2016 at 02:44:22PM -0400, Denys Dmytriyenko wrote:
> From: Denys Dmytriyenko <denys@ti.com>
> 
> This is not enabled by default, as there are still limitations and possible
> issues with opkg (and rpm?) packaging data containing broken symlinks for
> local indexes:
> 
> http://cgit.openembedded.org/openembedded-core/commit/?id=c8e0ec2da9ad4ce1c103966906a85f68c15400dd
> 
> There are other use cases for the packaging data to be available in SDK,
> since it provides comprehensive info about SDK's contents and in the case of
> opkg and dpkg is all text-based and can be easily parsed by simple scripts.
> 
> Introduce new "package-management" flag for SDKIMAGE_FEATURES list (similar
> to the one already used for IMAGE_FEATURES) that controls presence of the
> packaging data in resulting SDK, while unifying this behavior across the
> board for supported pkg managers - rpm, opkg, dpkg.
> 
> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
> ---
>  meta/lib/oe/sdk.py | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
> index f15fbdb..f1bbef6 100644
> --- a/meta/lib/oe/sdk.py
> +++ b/meta/lib/oe/sdk.py
> @@ -155,14 +155,16 @@ class RpmSdk(Sdk):
>  
>          execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND", True))
>  
> -        self.target_pm.remove_packaging_data()
> +        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
> +            self.target_pm.remove_packaging_data()
>  
>          bb.note("Installing NATIVESDK packages")
>          self._populate_sysroot(self.host_pm, self.host_manifest)
>  
>          execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND", True))
>  
> -        self.host_pm.remove_packaging_data()
> +        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
> +            self.host_pm.remove_packaging_data()
>  
>          # Move host RPM library data
>          native_rpm_state_dir = os.path.join(self.sdk_output,
> @@ -232,14 +234,16 @@ class OpkgSdk(Sdk):
>  
>          execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND", True))
>  
> -        self.target_pm.remove_packaging_data()
> +        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
> +            self.target_pm.remove_packaging_data()
>  
>          bb.note("Installing NATIVESDK packages")
>          self._populate_sysroot(self.host_pm, self.host_manifest)
>  
>          execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND", True))
>  
> -        self.host_pm.remove_packaging_data()
> +        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
> +            self.host_pm.remove_packaging_data()
>  
>          target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir)
>          host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir)
> @@ -314,6 +318,9 @@ class DpkgSdk(Sdk):
>  
>          self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt"))
>  
> +        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
> +            self.target_pm.remove_packaging_data()
> +
>          bb.note("Installing NATIVESDK packages")
>          self._populate_sysroot(self.host_pm, self.host_manifest)
>  
> @@ -322,6 +329,9 @@ class DpkgSdk(Sdk):
>          self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path,
>                                             "etc", "apt"))
>  
> +        if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
> +            self.host_pm.remove_packaging_data()
> +
>          native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
>                                               "var", "lib", "dpkg")
>          self.mkdirhier(native_dpkg_state_dir)
> -- 
> 2.2.0
> 
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

end of thread, other threads:[~2016-04-25 16:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-21 18:44 [PATCH] sdk.py: preserve packaging data when SDKIMAGE_FEATURES has "package-management" Denys Dmytriyenko
2016-04-25 16:26 ` Denys Dmytriyenko

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.