Skip to contentSkip to conversation

package_manager.py: define info_dir and status_file when OPKGLIBDIR isn't the default

PATCH Superseded Martin Jansa 1 participant 3 messages Nov 25, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package_manager.py: define info_dir and status_file when OPKGLIBDIR isn't the default

* without this the do_rootfs task doesn't respect OPKGLIBDIR and info, status are created in different directory than opkg on target expects
* people who modify OPKGLIBDIR need to make sure that opkg.conf included in opkg package also sets info_dir and status_file options

---
 meta/lib/oe/package_manager.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
meta/lib/oe/package_manager.py +19 -0
index 964fddc..7b71174 100644
@@ -1471,6 +1471,16 @@ class OpkgPM(PackageManager):
                                         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.opkg_dir, 'info'))
+                cfg_file.write("option status_file  %s\n" % os.path.join(self.opkg_dir, 'status'))
+
+
     def _create_config(self):
         with open(self.config_file, "w+") as config_file:
             priority = 1
@@ -1486,6 +1496,15 @@ class OpkgPM(PackageManager):
                     config_file.write("src oe-%s file:%s\n" %
                                       (arch, pkgs_dir))
 
+            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"
+                config_file.write("option info_dir     %s\n" % os.path.join(self.opkg_dir, 'info'))
+                config_file.write("option status_file  %s\n" % os.path.join(self.opkg_dir, 'status'))
+
     def insert_feeds_uris(self):
         if self.feed_uris == "":
             return
Signature · 1 line
2.6.3
#1 lore raw
Quoted 17 lines · Martin Jansa

* without this the do_rootfs task doesn't respect OPKGLIBDIR and info, status are created in different directory than opkg on target expects
* people who modify OPKGLIBDIR need to make sure that opkg.conf included in opkg package also sets info_dir and status_file options

---
 meta/lib/oe/package_manager.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
meta/lib/oe/package_manager.py +0 -0
index 964fddc..7b71174 100644
@@ -1471,6 +1471,16 @@ class OpkgPM(PackageManager):
                                         self.d.getVar('FEED_DEPLOYDIR_BASE_URI', True),

meta/lib/oe/package_manager.py class OpkgPM(PackageManager): · line 1481

Quoted 10 lines
meta/lib/oe/package_manager.py +8 -0
                                         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.opkg_dir, 'info'))
+                cfg_file.write("option status_file  %s\n" % os.path.join(self.opkg_dir, 'status'))

This is older revision than what I was testing, v2 coming soon (self.opkg_dir isn't good, because it is absolute path).

Quoted 24 lines
meta/lib/oe/package_manager.py +11 -0
+
+
     def _create_config(self):
         with open(self.config_file, "w+") as config_file:
             priority = 1
@@ -1486,6 +1496,15 @@ class OpkgPM(PackageManager):
                     config_file.write("src oe-%s file:%s\n" %
                                       (arch, pkgs_dir))
 
+            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"
+                config_file.write("option info_dir     %s\n" % os.path.join(self.opkg_dir, 'info'))
+                config_file.write("option status_file  %s\n" % os.path.join(self.opkg_dir, 'status'))
+
     def insert_feeds_uris(self):
         if self.feed_uris == "":
             return
Signature · 1 line
2.6.3
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#2 lore raw

PATCH v2 1/1 package_manager.py: define info_dir and status_file when OPKGLIBDIR isn't the default

* without this the do_rootfs task doesn't respect OPKGLIBDIR and info, status are created in different directory than opkg on target expects
* people who modify OPKGLIBDIR need to make sure that opkg.conf included in opkg package also sets info_dir and status_file options

---
 meta/lib/oe/package_manager.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
meta/lib/oe/package_manager.py +19 -0
index 964fddc..b9fa6d8 100644
@@ -1471,6 +1471,16 @@ class OpkgPM(PackageManager):
                                         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'))
+
+
     def _create_config(self):
         with open(self.config_file, "w+") as config_file:
             priority = 1
@@ -1486,6 +1496,15 @@ class OpkgPM(PackageManager):
                     config_file.write("src oe-%s file:%s\n" %
                                       (arch, pkgs_dir))
 
+            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"
+                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'))
+
     def insert_feeds_uris(self):
         if self.feed_uris == "":
             return
Signature · 1 line
2.6.3