Why not use files-in-package.txt reports in buildhistory?
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5870

Practical reason: files-in-package.txt is an OE-ism. Our opkg-based distribution provides software feeds built outside of OE. We use opkg-utils to generate feed metadata like OE, so it makes sense to reuse logic instead of rewriting it. Others may be in the same position.

Philosophical reason: I prefer to build the file list (and index) from actual packages (I.e. exactly what we're shipping) instead of OE's environment. This makes the file list and index more easily reproducible and insulates that process from OE bugs.

-- Haris


On 05/19/2017 12:29 PM, Martin Jansa wrote:
On Fri, May 19, 2017 at 10:01:21AM -0500, Haris Okanovic wrote:
Setting PACKAGE_ENABLE_FILELIST option generates Packages.filelist on
`bitbake package-index`, which is index of files provided by each
IPK package in the feed. It's useful for figuring out which package
provides a particular file/program/library/etc.

Disabled by default since generating a filelist involves reading the
payload of every package in the feed, a time and IO intensive operation
many users won't want to run. Those who do may flip this switch.

Testing:
 * Built an opkg index with PACKAGE_ENABLE_FILELIST unset and verified
   no Packages.filelist are generated.
 * Built with PACKAGE_ENABLE_FILELIST="1" and verified each subfeed
   has Packages.filelist; took ~3min longer for 8,200 IPKs.

Signed-off-by: Haris Okanovic <haris.okano...@ni.com>

Why not use files-in-package.txt reports in buildhistory?
https://bugzilla.yoctoproject.org/show_bug.cgi?id=5870

That should work for any package backend and better to generate it once
in one place.

---
 meta/lib/oe/package_manager.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index b4b359a8c6..5e1fc48500 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -161,6 +161,8 @@ class OpkgIndexer(Indexer):
         else:
             signer = None

+        enable_filelist = bb.utils.to_boolean(self.d.getVar('PACKAGE_ENABLE_FILELIST', 
True) or "False")
+
         if not os.path.exists(os.path.join(self.deploy_dir, "Packages")):
             open(os.path.join(self.deploy_dir, "Packages"), "w").close()

@@ -175,14 +177,18 @@ class OpkgIndexer(Indexer):
                 pkgs_dir = os.path.join(self.deploy_dir, arch)
                 pkgs_file = os.path.join(pkgs_dir, "Packages")

+                filelist_cmd = ""
+                if enable_filelist:
+                    filelist_cmd = '-l %s.filelist' % (pkgs_file)
+
                 if not os.path.isdir(pkgs_dir):
                     continue

                 if not os.path.exists(pkgs_file):
                     open(pkgs_file, "w").close()

-                index_cmds.add('%s -r %s -p %s -m %s' %
-                                  (opkg_index_cmd, pkgs_file, pkgs_file, 
pkgs_dir))
+                index_cmds.add('%s -r %s -p %s -m %s %s' %
+                                  (opkg_index_cmd, pkgs_file, pkgs_file, 
filelist_cmd, pkgs_dir))

                 index_sign_files.add(pkgs_file)

--
2.12.1

--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core



--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to