[oe] [PATCH] package_manager.py: Restore FEED_DEPLOYDIR_BASE_URI functionality

Martin Jansa martin.jansa at gmail.com
Tue Aug 30 17:24:11 UTC 2016


On Tue, Aug 30, 2016 at 11:31:26AM -0400, Reinhard Tartler wrote:
> According to the documentation, setting FEED_DEPLOYDIR_BASE_URI should
> be sufficient for setting up local feeds. This commit fixes the
> implementation to actually do that, even if BUILD_IMAGES_FROM_FEEDS is
> not set.

This belongs to openembedded-core ML.

> 
> Also fix some bugs in the old implementation:
>  - Fetch uncompressed Packages files, because
>    'bitbake package-index' does not appear to create Packages.gz files.
>  - Add missing newline after the URI so that the options don't end up on
>    the same line.
>  - Fix the check when local options are necessary.
> 
> Signed-off-by: Reinhard Tartler <tartler at deshaw.com>
> ---
>  meta/lib/oe/package_manager.py | 59 +++++++++++++++++++++++-------
> ------------
>  1 file changed, 32 insertions(+), 27 deletions(-)
> diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
> index 2802254..e92bbbd 100644
> --- a/meta/lib/oe/package_manager.py
> +++ b/meta/lib/oe/package_manager.py
> @@ -1649,33 +1649,36 @@ class OpkgPM(OpkgDpkgPM):
> 
>                      config_file.write("src/gz %s %s\n" % (feed_name,
> feed_uri))
> 
> -            """
> -            Allow to use package deploy directory contents as quick
> devel-testing
> -            feed. This creates individual feed configs for each arch
> subdir of those
> -            specified as compatible for the current machine.
> -            NOTE: Development-helper feature, NOT a full-fledged feed.
> -            """
> -            if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI', True) or "") !=
> "":
> -                for arch in self.pkg_archs.split():
> -                    cfg_file_name = os.path.join(self.target_rootfs,
> -
> self.d.getVar("sysconfdir", True),
> -                                                 "opkg",
> -                                                 "local-%s-feed.conf" %
> arch)
> -
> -                    with open(cfg_file_name, "w+") as cfg_file:
> -                        cfg_file.write("src/gz local-%s %s/%s" %
> -                                       (arch,
> -
> self.d.getVar('FEED_DEPLOYDIR_BASE_URI',
> True),
> -                                        arch))
> -
> -                        if self.opkg_dir != '/var/lib/opkg':
> -                            # There is no command line option for this
> anymore, we need to add
> -                            # info_dir and status_file to config file, if
> OPKGLIBDIR doesn't have
> -                            # the default value of "/var/lib" as defined
> in opkg:
> -                            # libopkg/opkg_conf.h:#define
> OPKG_CONF_DEFAULT_INFO_DIR      "/var/lib/opkg/info"
> -                            # libopkg/opkg_conf.h:#define
> OPKG_CONF_DEFAULT_STATUS_FILE   "/var/lib/opkg/status"
> -                            cfg_file.write("option info_dir     %s\n" %
> os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'info'))
> -                            cfg_file.write("option status_file  %s\n" %
> os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'status'))
> +        self._setup_devel_feeds()
> +
> +    def _setup_devel_feeds(self):
> +        """
> +        Allow to use package deploy directory contents as quick
> devel-testing
> +        feed. This creates individual feed configs for each arch subdir of
> those
> +        specified as compatible for the current machine.
> +        NOTE: Development-helper feature, NOT a full-fledged feed.
> +        """
> +
> +        if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI', True) or "") != "":
> +            for arch in self.pkg_archs.split():
> +                cfg_file_name = os.path.join(self.target_rootfs +
> self.d.getVar("sysconfdir", True),
> +                                       "opkg", "local-%s-feed.conf" % arch)
> +
> +                bb.utils.mkdirhier(os.path.dirname(cfg_file_name))
> +                with open(cfg_file_name, "w+") as cfg_file:
> +                    cfg_file.write("src local-%s %s/%s\n" %
> +                                   (arch,
> +                                    self.d.getVar('FEED_DEPLOYDIR_BASE_URI',
> True),
> +                                    arch))
> +
> +                    if self.opkg_dir != self.target_rootfs +
> '/var/lib/opkg':
> +                        # There is no command line option for this
> anymore, we need to add
> +                        # info_dir and status_file to config file, if
> OPKGLIBDIR doesn't have
> +                        # the default value of "/var/lib" as defined in
> opkg:
> +                        # libopkg/opkg_conf.h:#define
> OPKG_CONF_DEFAULT_INFO_DIR      "/var/lib/opkg/info"
> +                        # libopkg/opkg_conf.h:#define
> OPKG_CONF_DEFAULT_STATUS_FILE   "/var/lib/opkg/status"
> +                        cfg_file.write("option info_dir     %s\n" %
> os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'info'))
> +                        cfg_file.write("option status_file  %s\n" %
> os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'status'))
>       def _create_config(self):
> @@ -1702,6 +1705,8 @@ class OpkgPM(OpkgDpkgPM):
>                  config_file.write("option info_dir     %s\n" %
> os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'info'))
>                  config_file.write("option status_file  %s\n" %
> os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'status'))
> 
> +        self._setup_devel_feeds()
> +
>      def insert_feeds_uris(self):
>          if self.feed_uris == "":
>              return
> -- 
> 2.7.1
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20160830/7459e13b/attachment-0002.sig>


More information about the Openembedded-devel mailing list