From: "Fredrik Gustafsson" <fredrik.gustafsson@axis.com>
To: <openembedded-core@lists.openembedded.org>
Cc: <tools-cfpbuild-internal@axis.com>, <hugo.cedervall@axis.com>,
Fredrik Gustafsson <fredrigu@axis.com>
Subject: [PATCH v2 21/26] package_manager.py: Move DpkgIndexer
Date: Thu, 25 Jun 2020 12:21:40 +0200 [thread overview]
Message-ID: <20200625102145.7139-22-fredrigu@axis.com> (raw)
In-Reply-To: <20200625102145.7139-1-fredrigu@axis.com>
Let the code that is only used by opkg package manager live in that
package manager owned directory.
Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com>
---
meta/lib/oe/package_manager.py | 74 -------------------
.../package_managers/deb/package_manager.py | 74 +++++++++++++++++++
2 files changed, 74 insertions(+), 74 deletions(-)
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 83b881fb8c..111845d903 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -150,80 +150,6 @@ class Indexer(object, metaclass=ABCMeta):
pass
-class DpkgIndexer(Indexer):
- def _create_configs(self):
- bb.utils.mkdirhier(self.apt_conf_dir)
- bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial"))
- bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "apt.conf.d"))
- bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "preferences.d"))
-
- with open(os.path.join(self.apt_conf_dir, "preferences"),
- "w") as prefs_file:
- pass
- with open(os.path.join(self.apt_conf_dir, "sources.list"),
- "w+") as sources_file:
- pass
-
- with open(self.apt_conf_file, "w") as apt_conf:
- with open(os.path.join(self.d.expand("${STAGING_ETCDIR_NATIVE}"),
- "apt", "apt.conf.sample")) as apt_conf_sample:
- for line in apt_conf_sample.read().split("\n"):
- line = re.sub(r"#ROOTFS#", "/dev/null", line)
- line = re.sub(r"#APTCONF#", self.apt_conf_dir, line)
- apt_conf.write(line + "\n")
-
- def write_index(self):
- self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"),
- "apt-ftparchive")
- self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
- self._create_configs()
-
- os.environ['APT_CONFIG'] = self.apt_conf_file
-
- pkg_archs = self.d.getVar('PACKAGE_ARCHS')
- if pkg_archs is not None:
- arch_list = pkg_archs.split()
- sdk_pkg_archs = self.d.getVar('SDK_PACKAGE_ARCHS')
- if sdk_pkg_archs is not None:
- for a in sdk_pkg_archs.split():
- if a not in pkg_archs:
- arch_list.append(a)
-
- all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split()
- arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list)
-
- apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive")
- gzip = bb.utils.which(os.getenv('PATH'), "gzip")
-
- index_cmds = []
- deb_dirs_found = False
- for arch in arch_list:
- arch_dir = os.path.join(self.deploy_dir, arch)
- if not os.path.isdir(arch_dir):
- continue
-
- cmd = "cd %s; PSEUDO_UNLOAD=1 %s packages . > Packages;" % (arch_dir, apt_ftparchive)
-
- cmd += "%s -fcn Packages > Packages.gz;" % gzip
-
- with open(os.path.join(arch_dir, "Release"), "w+") as release:
- release.write("Label: %s\n" % arch)
-
- cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive
-
- index_cmds.append(cmd)
-
- deb_dirs_found = True
-
- if not deb_dirs_found:
- bb.note("There are no packages in %s" % self.deploy_dir)
- return
-
- oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
- if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
- raise NotImplementedError('Package feed signing not implementd for dpkg')
-
-
class PkgsList(object, metaclass=ABCMeta):
def __init__(self, d, rootfs_dir):
diff --git a/meta/lib/oe/package_managers/deb/package_manager.py b/meta/lib/oe/package_managers/deb/package_manager.py
index c38821587b..5d3c300700 100644
--- a/meta/lib/oe/package_managers/deb/package_manager.py
+++ b/meta/lib/oe/package_managers/deb/package_manager.py
@@ -400,3 +400,77 @@ class PkgPM(OpkgDpkgPM):
return tmp_dir
+class DpkgIndexer(Indexer):
+ def _create_configs(self):
+ bb.utils.mkdirhier(self.apt_conf_dir)
+ bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial"))
+ bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "apt.conf.d"))
+ bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "preferences.d"))
+
+ with open(os.path.join(self.apt_conf_dir, "preferences"),
+ "w") as prefs_file:
+ pass
+ with open(os.path.join(self.apt_conf_dir, "sources.list"),
+ "w+") as sources_file:
+ pass
+
+ with open(self.apt_conf_file, "w") as apt_conf:
+ with open(os.path.join(self.d.expand("${STAGING_ETCDIR_NATIVE}"),
+ "apt", "apt.conf.sample")) as apt_conf_sample:
+ for line in apt_conf_sample.read().split("\n"):
+ line = re.sub(r"#ROOTFS#", "/dev/null", line)
+ line = re.sub(r"#APTCONF#", self.apt_conf_dir, line)
+ apt_conf.write(line + "\n")
+
+ def write_index(self):
+ self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"),
+ "apt-ftparchive")
+ self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
+ self._create_configs()
+
+ os.environ['APT_CONFIG'] = self.apt_conf_file
+
+ pkg_archs = self.d.getVar('PACKAGE_ARCHS')
+ if pkg_archs is not None:
+ arch_list = pkg_archs.split()
+ sdk_pkg_archs = self.d.getVar('SDK_PACKAGE_ARCHS')
+ if sdk_pkg_archs is not None:
+ for a in sdk_pkg_archs.split():
+ if a not in pkg_archs:
+ arch_list.append(a)
+
+ all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split()
+ arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list)
+
+ apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive")
+ gzip = bb.utils.which(os.getenv('PATH'), "gzip")
+
+ index_cmds = []
+ deb_dirs_found = False
+ for arch in arch_list:
+ arch_dir = os.path.join(self.deploy_dir, arch)
+ if not os.path.isdir(arch_dir):
+ continue
+
+ cmd = "cd %s; PSEUDO_UNLOAD=1 %s packages . > Packages;" % (arch_dir, apt_ftparchive)
+
+ cmd += "%s -fcn Packages > Packages.gz;" % gzip
+
+ with open(os.path.join(arch_dir, "Release"), "w+") as release:
+ release.write("Label: %s\n" % arch)
+
+ cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive
+
+ index_cmds.append(cmd)
+
+ deb_dirs_found = True
+
+ if not deb_dirs_found:
+ bb.note("There are no packages in %s" % self.deploy_dir)
+ return
+
+ oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
+ if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
+ raise NotImplementedError('Package feed signing not implementd for dpkg')
+
+
--
2.20.1
next prev parent reply other threads:[~2020-06-25 10:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-25 10:21 Add package managers as a plugin Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 01/26] nopackages.bbclass: Get tasks from variable Fredrik Gustafsson
2020-06-25 10:41 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 02/26] package_managers: Add directory structure Fredrik Gustafsson
2020-06-25 10:41 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 03/26] manifest: Move RpmManifest Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 04/26] manifest: Move DpkgManifest Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 05/26] manifest: Move OpkgManifest Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 06/26] manifest.py: Dynamic load of manifest Fredrik Gustafsson
2020-06-25 10:41 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 07/26] sdk.py: Move RpmSdk Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 08/26] sdk.py: Move DpkgSdk Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 09/26] sdk.py: Move OpkgSdk Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 10/26] sdk.py: Dynamic load of sdk Fredrik Gustafsson
2020-06-25 10:41 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 11/26] rootfs.py: Move RpmRootfs Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 12/26] rootfs.py: Move DpkgRootfs Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 13/26] rootfs.py: Move OpkgRootfs Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 14/26] rootfs.py: Dynamic load of rootfs Fredrik Gustafsson
2020-06-25 10:42 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 15/26] package_manager.py: Move RpmPM Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 16/26] package_manager.py: Move DpkgPM Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 17/26] package_manager.py: Move OpkgPM Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 18/26] package_manager: Rename RpmPM to PkgPM, etc Fredrik Gustafsson
2020-06-25 10:42 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 19/26] package_manager.py: Move RpmIndexer Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 20/26] package_manager.py: Move OpkgIndexer Fredrik Gustafsson
2020-06-25 10:21 ` Fredrik Gustafsson [this message]
2020-06-25 10:42 ` [OE-core] [PATCH v2 21/26] package_manager.py: Move DpkgIndexer Paul Barker
2020-06-25 10:21 ` [PATCH v2 22/26] package_manager: Rename Indexer classes Fredrik Gustafsson
2020-06-25 10:42 ` [OE-core] " Paul Barker
2020-06-25 10:21 ` [PATCH v2 23/26] package_manager.py: Move RpmPkgsList Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 24/26] package_manager.py: Move OpkgPkgsList Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 25/26] package_manager.py: Move DpkgPkgsList Fredrik Gustafsson
2020-06-25 10:21 ` [PATCH v2 26/26] package_manager: Rename PkgsList classes Fredrik Gustafsson
2020-06-25 10:43 ` [OE-core] " Paul Barker
2020-06-25 10:40 ` [OE-core] Add package managers as a plugin Paul Barker
2020-06-30 18:39 ` Fredrik Gustafsson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200625102145.7139-22-fredrigu@axis.com \
--to=fredrik.gustafsson@axis.com \
--cc=fredrigu@axis.com \
--cc=hugo.cedervall@axis.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=tools-cfpbuild-internal@axis.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox