Skip to contentSkip to conversation

cooker.py: change working dir before use pyinotify

PATCH In review Robert Yang 2 participants 5 messages Apr 21, 2015 – Jul 6, 2015

lore
Share & tools
lore
#0 lore raw

cover cooker.py: change working dir before use pyinotify

The following changes since commit fc15878af46c09512fc3cb73480359fcbb22e627:

init-install-efi.sh: fix gummiboot entry installation (2015-04-21 07:20:27 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib rbt/cwd
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=rbt/cwd

Robert Yang (1):
cooker.py: change working dir before use pyinotify

 bitbake/lib/bb/cooker.py |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 cooker.py: change working dir before use pyinotify

Fixed:

$ cd tmp/work/core2-64-poky-linux/bash/4.3-r1
$ bitbake bash -cclean

ERROR: Running idle function
Traceback (most recent call last):
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 1317, in Notifier.process_events():
continue
> revent = self._sys_proc_fun(raw_event) # system processings
if watch_ and watch_.proc_fun:
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 686, in _SysProcessEvent.__call__(event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >):
# 3- default call method process_default
> return self.process_default(event)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 897, in _SysProcessEvent.process_default(raw_event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >, to_append=None):
dict_.update(to_append)
> return Event(dict_)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 628, in Event.__init__(raw={'path': '.', 'wd': 5, 'mask': 1073742336, 'name': 'build', 'dir': True}):
self.pathname = os.path.abspath(os.path.join(self.path,
> self.name))
else:
File "/usr/lib/python2.7/posixpath.py", line 347, in abspath(path='./build'):
else:
> cwd = os.getcwd()
path = join(cwd, path)
OSError: [Errno 2] No such file or directory

And we can't run bitbake again:
ERROR: Only one copy of bitbake should be run against a build directory

Chaneg working dir to TOPDIR rather than the dir which runs the command will fix the problem. Move self.initConfigurationData ahead, otherwise, there is no self.data.

---
 bitbake/lib/bb/cooker.py |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
bitbake/lib/bb/cooker.py +3 -3
index 9c101f2..678a2f7 100644
@@ -121,6 +121,9 @@ class BBCooker:
 
         self.configuration = configuration
 
+        self.initConfigurationData()
+        os.chdir(self.data.expand('${TOPDIR}'))
+
         self.configwatcher = pyinotify.WatchManager()
         self.configwatcher.bbseen = []
         self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications)
@@ -131,9 +134,6 @@ class BBCooker:
         self.watcher.bbseen = []
         self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
 
-
-        self.initConfigurationData()
-
         self.inotify_modified_files = []
 
         def _process_inotify_updates(server, notifier_list, abort):
Signature · 1 line
1.7.9.5
#2 lore raw
Quoted 45 lines · Robert Yang

Fixed:

$ cd tmp/work/core2-64-poky-linux/bash/4.3-r1
$ bitbake bash -cclean

ERROR: Running idle function
Traceback (most recent call last):
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 1317, in Notifier.process_events():
continue
> revent = self._sys_proc_fun(raw_event) # system processings
if watch_ and watch_.proc_fun:
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 686, in _SysProcessEvent.__call__(event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >):
# 3- default call method process_default
> return self.process_default(event)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 897, in _SysProcessEvent.process_default(raw_event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >, to_append=None):
dict_.update(to_append)
> return Event(dict_)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 628, in Event.__init__(raw={'path': '.', 'wd': 5, 'mask': 1073742336, 'name': 'build', 'dir': True}):
self.pathname = os.path.abspath(os.path.join(self.path,
> self.name))
else:
File "/usr/lib/python2.7/posixpath.py", line 347, in abspath(path='./build'):
else:
> cwd = os.getcwd()
path = join(cwd, path)
OSError: [Errno 2] No such file or directory

And we can't run bitbake again:
ERROR: Only one copy of bitbake should be run against a build directory

Chaneg working dir to TOPDIR rather than the dir which runs the command will fix the problem. Move self.initConfigurationData ahead, otherwise, there is no self.data.

---
 bitbake/lib/bb/cooker.py |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
bitbake/lib/bb/cooker.py +0 -0
index 9c101f2..678a2f7 100644

bitbake/lib/bb/cooker.py class BBCooker: · line 125

Quoted 5 lines
bitbake/lib/bb/cooker.py +2 -0
@@ -121,6 +121,9 @@ class BBCooker:
 
         self.configuration = configuration
 
+        self.initConfigurationData()
+        os.chdir(self.data.expand('${TOPDIR}'))

data.getVar("TOPDIR", True) please ;-)

Cheers,

Richard

#3 lore raw
Quoted 47 lines · Richard Purdie
Quoted 46 lines · Robert Yang

Fixed:

$ cd tmp/work/core2-64-poky-linux/bash/4.3-r1
$ bitbake bash -cclean

ERROR: Running idle function
Traceback (most recent call last):
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 1317, in Notifier.process_events():
continue
> revent = self._sys_proc_fun(raw_event) # system processings
if watch_ and watch_.proc_fun:
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 686, in _SysProcessEvent.__call__(event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >):
# 3- default call method process_default
> return self.process_default(event)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 897, in _SysProcessEvent.process_default(raw_event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >, to_append=None):
dict_.update(to_append)
> return Event(dict_)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 628, in Event.__init__(raw={'path': '.', 'wd': 5, 'mask': 1073742336, 'name': 'build', 'dir': True}):
self.pathname = os.path.abspath(os.path.join(self.path,
> self.name))
else:
File "/usr/lib/python2.7/posixpath.py", line 347, in abspath(path='./build'):
else:
> cwd = os.getcwd()
path = join(cwd, path)
OSError: [Errno 2] No such file or directory

And we can't run bitbake again:
ERROR: Only one copy of bitbake should be run against a build directory

Chaneg working dir to TOPDIR rather than the dir which runs the command will fix the problem. Move self.initConfigurationData ahead, otherwise, there is no self.data.

---
  bitbake/lib/bb/cooker.py |    6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
bitbake/lib/bb/cooker.py +0 -0
index 9c101f2..678a2f7 100644
@@ -121,6 +121,9 @@ class BBCooker:
 
Quoted 6 lines

bitbake/lib/bb/cooker.py class BBCooker: · line 125

Quoted 4 lines
bitbake/lib/bb/cooker.py +2 -0
          self.configuration = configuration
 
+        self.initConfigurationData()
+        os.chdir(self.data.expand('${TOPDIR}'))

data.getVar("TOPDIR", True) please ;-)

Thanks, I updated it in the repo:

git://git.pokylinux.org/poky-contrib rbt/cwd

bitbake/lib/bb/cooker.py +3 -0
index 6762239..fbfce6a 100644
@@ -121,6 +121,9 @@ class BBCooker:
 
         self.configuration = configuration
 
+        self.initConfigurationData()
+        os.chdir(self.data.getVar("TOPDIR", True))
+
         self.configwatcher = pyinotify.WatchManager()
         self.configwatcher.bbseen = []
         self.confignotifier = pyinotify.Notifier(self.configwatcher, 

self.config_notifications)
@@ -131,9 +134,6 @@ class BBCooker:
self.watcher.bbseen = []
self.notifier = pyinotify.Notifier(self.watcher, self.notifications)

-
- self.initConfigurationData()
-
self.inotify_modified_files = []

def _process_inotify_updates(server, notifier_list, abort):

// Robert

Quoted 7 lines

Cheers,

Richard

#4 lore raw
Quoted 59 lines · Robert Yang
Quoted 56 lines · Richard Purdie
Quoted 55 lines · Robert Yang

Fixed:

$ cd tmp/work/core2-64-poky-linux/bash/4.3-r1
$ bitbake bash -cclean

ERROR: Running idle function
Traceback (most recent call last):
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 1317, in
Notifier.process_events():
continue
> revent = self._sys_proc_fun(raw_event) # system processings
if watch_ and watch_.proc_fun:
File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 686, in
_SysProcessEvent.__call__(event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >):
# 3- default call method process_default
> return self.process_default(event)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 897, in
_SysProcessEvent.process_default(raw_event=<_RawEvent cookie=0 mask=0x40000200 name=build wd=5 >, to_append=None):
dict_.update(to_append)
> return Event(dict_)

File "/buildarea/lyang1/poky/bitbake/lib/pyinotify.py", line 628, in
Event.__init__(raw={'path': '.', 'wd': 5, 'mask': 1073742336, 'name':
'build', 'dir': True}):
self.pathname = os.path.abspath(os.path.join(self.path,
> self.name))
else:
File "/usr/lib/python2.7/posixpath.py", line 347, in abspath(path='./build'):
else:
> cwd = os.getcwd()
path = join(cwd, path)
OSError: [Errno 2] No such file or directory

And we can't run bitbake again:
ERROR: Only one copy of bitbake should be run against a build directory

Chaneg working dir to TOPDIR rather than the dir which runs the command will fix the problem. Move self.initConfigurationData ahead, otherwise, there is no self.data.

---
  bitbake/lib/bb/cooker.py |    6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
bitbake/lib/bb/cooker.py +0 -0
index 9c101f2..678a2f7 100644
@@ -121,6 +121,9 @@ class BBCooker:
 
          self.configuration = configuration
 
Quoted 8 lines
Quoted 4 lines

bitbake/lib/bb/cooker.py class BBCooker: · line 125

Quoted 2 lines
bitbake/lib/bb/cooker.py +2 -0
+        self.initConfigurationData()
+        os.chdir(self.data.expand('${TOPDIR}'))

data.getVar("TOPDIR", True) please ;-)

Thanks, I updated it in the repo:

git://git.pokylinux.org/poky-contrib rbt/cwd

ping.

// Robert

Quoted 37 lines
bitbake/lib/bb/cooker.py +3 -0
index 6762239..fbfce6a 100644
@@ -121,6 +121,9 @@ class BBCooker:
 
          self.configuration = configuration
 
+        self.initConfigurationData()
+        os.chdir(self.data.getVar("TOPDIR", True))
+
          self.configwatcher = pyinotify.WatchManager()
          self.configwatcher.bbseen = []
          self.confignotifier = pyinotify.Notifier(self.configwatcher,

self.config_notifications)

bitbake/lib/bb/cooker.py +0 -3
@@ -131,9 +134,6 @@ class BBCooker:
          self.watcher.bbseen = []
          self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
 
-
-        self.initConfigurationData()
-
          self.inotify_modified_files = []
 
          def _process_inotify_updates(server, notifier_list, abort):

// Robert

Quoted 7 lines

Cheers,

Richard