vuplus_bitbake
18 years agoadd authors file
Michael 'Mickey' Lauer [Tue, 17 May 2005 22:22:38 +0000 (22:22 +0000)]
add authors file

18 years agolib/bb/data.py:
Holger Hans Peter Freyther [Tue, 17 May 2005 22:20:02 +0000 (22:20 +0000)]
lib/bb/data.py:
·       -Add a method to get the modify time of named bb.data instance
·       -Add a method to create a named bb.data instance. These instances
·       inherit the global configuration.

lib/bb/data_dict.py:
·       -Add persistents to the data_dict implementation, on the commit
method we will now pickle the internal dict

lib/bb/make.py:
-Use the new persistent/named bb.data methods.

18 years agolib/bb/build.py:
Holger Hans Peter Freyther [Tue, 17 May 2005 22:16:16 +0000 (22:16 +0000)]
lib/bb/build.py:
Do not assume we hold a reference to the variable
we got with a bb.data.getVar*. Always set changes
back to the variable.

18 years agoAdd a ChangeLog to lay out the 'API' changes of bitbake
Holger Hans Peter Freyther [Tue, 17 May 2005 22:02:04 +0000 (22:02 +0000)]
Add a ChangeLog to lay out the 'API' changes of bitbake

18 years agolib/bb/fetch.py:
Holger Hans Peter Freyther [Tue, 17 May 2005 19:20:55 +0000 (19:20 +0000)]
lib/bb/fetch.py:
  * Remove default params from the fetcher methods to avoid problems
    with scoping. The meaning of 'd' is quite overloaded and we try
    to undo it one by one. This change is a bit more invasive than
    I had hoped for but it is needed.

 -- Holger Hans Peter Freyther <freyther@handhelds.org>

18 years agoAdd data_dict.py to the MANIFEST
Holger Hans Peter Freyther [Tue, 17 May 2005 18:16:03 +0000 (18:16 +0000)]
Add data_dict.py to the MANIFEST

18 years agocreateCopy:
Holger Hans Peter Freyther [Tue, 17 May 2005 18:15:25 +0000 (18:15 +0000)]
createCopy:
-Move a createCopy method into data.py
-Make code creating deepcopies of the data instance
use this new createCopy

18 years agobitbake data module abstraction:
Holger Hans Peter Freyther [Tue, 17 May 2005 18:04:46 +0000 (18:04 +0000)]
bitbake data module abstraction:
-bb.data is now a delegate to hookable Data implementation.
-bb.data.init() is the 'factory' method to create a instance
of a concrete implementation.
-Kill assumptions that bb.data.init() returns a {} (python dict)
-Add the old Dictionary Based Implementation as data_dict.py

19 years agoAdjust the version in setup.py.
Chris Larson [Fri, 11 Mar 2005 04:44:44 +0000 (04:44 +0000)]
Adjust the version in setup.py.

19 years agoEvaluate dependencies in try_build(), even if stamp file is up to date for the curren...
Phil Blundell [Sun, 23 Jan 2005 18:42:20 +0000 (18:42 +0000)]
Evaluate dependencies in try_build(), even if stamp file is up to date for the current package.

19 years agobin/bitbake:
Chris Larson [Sat, 22 Jan 2005 05:50:23 +0000 (05:50 +0000)]
bin/bitbake:
    * check if a package's task is already complete _before_
      calling the functions to try to build it.
    * don't bother trying to build a package's deps if the package has
      already been built.
    * cache the information about the 'perhaps you should define
      PREFERRED_PROVIDER_blah' messages so that the user only sees one
      for each provider.

19 years agoAdd -nochunks makefile targets for documentation generation (user's manual). 1.1
Chris Larson [Mon, 17 Jan 2005 21:11:26 +0000 (21:11 +0000)]
Add -nochunks makefile targets for documentation generation (user's manual).

19 years agoUnbork our event classes a bit. Added a 'data' property to the Build events to be...
Chris Larson [Mon, 17 Jan 2005 20:37:42 +0000 (20:37 +0000)]
Unbork our event classes a bit.  Added a 'data' property to the Build events to be more consistent with the other events.

19 years agoAs recommended by pb_ and RP, prepend the task name with 'task_' when mangling OVERRI...
Chris Larson [Mon, 17 Jan 2005 19:36:04 +0000 (19:36 +0000)]
As recommended by pb_ and RP, prepend the task name with 'task_' when mangling OVERRIDES in bb.data.exec_task().

19 years agoadd current task name to OVERRIDES during execution
Phil Blundell [Sun, 16 Jan 2005 23:18:20 +0000 (23:18 +0000)]
add current task name to OVERRIDES during execution

19 years agoTest trigger alterations.
Chris Larson [Thu, 6 Jan 2005 21:38:18 +0000 (21:38 +0000)]
Test trigger alterations.

19 years agoTest trigger alterations.
Chris Larson [Thu, 6 Jan 2005 21:37:05 +0000 (21:37 +0000)]
Test trigger alterations.

19 years agocorrect transposed protocol/revision parameters to svn checkout;
Phil Blundell [Sun, 2 Jan 2005 01:16:47 +0000 (01:16 +0000)]
correct transposed protocol/revision parameters to svn checkout;
patch courtesy Paul Eggleton

19 years agoemit_var(): if showing all vars, emit even those with invalid names 1.0
Phil Blundell [Mon, 27 Dec 2004 12:57:18 +0000 (12:57 +0000)]
emit_var(): if showing all vars, emit even those with invalid names

19 years agobbread: wrap the call to bb.data.emit_env() in a try: except block.
Chris Larson [Sun, 26 Dec 2004 06:01:39 +0000 (06:01 +0000)]
bbread: wrap the call to bb.data.emit_env() in a try: except block.

19 years agoRemove references to 'BBMAKE' from the debug messages in the bitbake command.
Chris Larson [Sun, 26 Dec 2004 01:32:08 +0000 (01:32 +0000)]
Remove references to 'BBMAKE' from the debug messages in the bitbake command.

19 years agoRe-raise bb.build.FuncFailed if it's encountered in emit_var. This ensures that...
Chris Larson [Sun, 26 Dec 2004 01:23:43 +0000 (01:23 +0000)]
Re-raise bb.build.FuncFailed if it's encountered in emit_var.  This ensures that builds of packages that attempt to read the kernel-version file (like kernel modules) fail as they should.

19 years agoUpdate the user manual -- add example usage of the bitbake command. add example...
Chris Larson [Fri, 24 Dec 2004 16:48:30 +0000 (16:48 +0000)]
Update the user manual -- add example usage of the bitbake command.  add example usage of bbfile collections.

19 years agoAdd information on the bitbake command to the User Manual.
Chris Larson [Fri, 24 Dec 2004 00:58:43 +0000 (00:58 +0000)]
Add information on the bitbake command to the User Manual.

19 years agoHandle the parse only cmdline option when using --buildfile.
Chris Larson [Wed, 22 Dec 2004 23:04:35 +0000 (23:04 +0000)]
Handle the parse only cmdline option when using --buildfile.

19 years agoApply patch from Richard Purdie to fix the --force support in the bitbake script.
Chris Larson [Wed, 22 Dec 2004 22:57:45 +0000 (22:57 +0000)]
Apply patch from Richard Purdie to fix the --force support in the bitbake script.

19 years agorenamed to get less ambiguous name
Marcin Juszkiewicz [Tue, 14 Dec 2004 18:37:07 +0000 (18:37 +0000)]
renamed to get less ambiguous name

19 years agofix building of one .bb file (-b parametr) - fix by pb
Marcin Juszkiewicz [Mon, 13 Dec 2004 22:32:59 +0000 (22:32 +0000)]
fix building of one .bb file (-b parametr) - fix by pb

19 years agoSet the 'url' in setup.py to our berlios.de project.
Chris Larson [Fri, 10 Dec 2004 21:57:53 +0000 (21:57 +0000)]
Set the 'url' in setup.py to our berlios.de project.

19 years agoClean out the cruft in the vim syntax.
Chris Larson [Fri, 10 Dec 2004 02:23:20 +0000 (02:23 +0000)]
Clean out the cruft in the vim syntax.

19 years agoMake bbread use bb.make.load_bbfile() rather than calling handle on the .bb itself.
Chris Larson [Fri, 10 Dec 2004 02:19:44 +0000 (02:19 +0000)]
Make bbread use bb.make.load_bbfile() rather than calling handle on the .bb itself.

19 years agoFix the install paths of our datafiles in setup.py.
Chris Larson [Thu, 9 Dec 2004 14:51:34 +0000 (14:51 +0000)]
Fix the install paths of our datafiles in setup.py.

19 years agoClean up the BBPATH mangling bits in the parser.
Chris Larson [Thu, 9 Dec 2004 13:03:17 +0000 (13:03 +0000)]
Clean up the BBPATH mangling bits in the parser.

19 years agoFix the BBPATH mangling fix..
Chris Larson [Thu, 9 Dec 2004 12:40:43 +0000 (12:40 +0000)]
Fix the BBPATH mangling fix..

19 years agoAdd the location of the .bb file to BBPATH in the parser's handle() function rather...
Chris Larson [Thu, 9 Dec 2004 12:32:18 +0000 (12:32 +0000)]
Add the location of the .bb file to BBPATH in the parser's handle() function rather than load_oefile, since we need it done for 'include'd files as well as those directly loaded by the 'bitbake' commandline tool.

19 years agoAdapt bits to the new way of handling the debug level.
Chris Larson [Thu, 9 Dec 2004 12:04:45 +0000 (12:04 +0000)]
Adapt bits to the new way of handling the debug level.

19 years agoApply patch from seb (proti) to fix OEDEBUG and add a debug commandline argument.
Chris Larson [Thu, 9 Dec 2004 10:27:57 +0000 (10:27 +0000)]
Apply patch from seb (proti) to fix OEDEBUG and add a debug commandline argument.

19 years agoVim syntax: bugfix in the match of 'def' lines.
Chris Larson [Thu, 9 Dec 2004 10:13:47 +0000 (10:13 +0000)]
Vim syntax: bugfix in the match of 'def' lines.

19 years agoVim syntax update: let syntax/python.vim do the highlighting for the actual 'def...
Chris Larson [Thu, 9 Dec 2004 08:19:06 +0000 (08:19 +0000)]
Vim syntax update: let syntax/python.vim do the highlighting for the actual 'def' line, rather than ripping it apart and doing it ourselves.

19 years agoRework the way we handle do_clean and do_mrproper so that the .oeclass that defines...
Chris Larson [Wed, 8 Dec 2004 23:57:05 +0000 (23:57 +0000)]
Rework the way we handle do_clean and do_mrproper so that the .oeclass that defines the task can make it only clean the package and not its dependencies, rather than hardcoding the knowledge in the bitbake command.

19 years agoMention --help when bitbake is called with no arguments.
Chris Larson [Wed, 8 Dec 2004 23:04:42 +0000 (23:04 +0000)]
Mention --help when bitbake is called with no arguments.

19 years agoUpdate bitbake command usage information: s/bbmake/bitmake/g, and remove the incorrec...
Chris Larson [Wed, 8 Dec 2004 22:54:02 +0000 (22:54 +0000)]
Update bitbake command usage information: s/bbmake/bitmake/g, and remove the incorrect info about what packages are built by default (thanks to phil for spotting it).

19 years agoMake bbread spit out a nicer error when it encounters an IOError.
Chris Larson [Wed, 8 Dec 2004 22:48:08 +0000 (22:48 +0000)]
Make bbread spit out a nicer error when it encounters an IOError.

19 years agoRename bbmake to bitbake.
Chris Larson [Wed, 8 Dec 2004 22:45:06 +0000 (22:45 +0000)]
Rename bbmake to bitbake.

19 years agoAdd a 'buildfile' commandline option to bbmake, which makes bbbuild unnecessary.
Chris Larson [Wed, 8 Dec 2004 22:44:31 +0000 (22:44 +0000)]
Add a 'buildfile' commandline option to bbmake, which makes bbbuild unnecessary.

19 years agoUpdate the 'usage' information displayed by --help in bbimage and bbmake.
Chris Larson [Wed, 8 Dec 2004 21:42:57 +0000 (21:42 +0000)]
Update the 'usage' information displayed by --help in bbimage and bbmake.

19 years agoAdjust whitespace handling in the vim syntax a bit.
Chris Larson [Wed, 8 Dec 2004 21:25:48 +0000 (21:25 +0000)]
Adjust whitespace handling in the vim syntax a bit.

19 years agoVim syntax: add a catchall which should flag anything which isn't explicitly matched...
Chris Larson [Wed, 8 Dec 2004 21:15:49 +0000 (21:15 +0000)]
Vim syntax: add a catchall which should flag anything which isn't explicitly matched as Error, thereby highlighting some incorrect syntax as such.

19 years agoVim syntax bugfix: make it a bit more tolerant about locating the end of bitbake...
Chris Larson [Wed, 8 Dec 2004 21:11:11 +0000 (21:11 +0000)]
Vim syntax bugfix: make it a bit more tolerant about locating the end of bitbake shell & python functions (noticed zap_root_password's ending } was followed by whitespace).

19 years agoVim syntax: match variables defined using ?=.
Chris Larson [Wed, 8 Dec 2004 21:05:42 +0000 (21:05 +0000)]
Vim syntax: match variables defined using ?=.

19 years agoVim syntax: match & highlight the 'fakeroot' flag for functions.
Chris Larson [Wed, 8 Dec 2004 21:04:31 +0000 (21:04 +0000)]
Vim syntax: match & highlight the 'fakeroot' flag for functions.

19 years agoVim syntax: limit the areas in which variable dereferences are matched and highlighted.
Chris Larson [Wed, 8 Dec 2004 19:23:47 +0000 (19:23 +0000)]
Vim syntax: limit the areas in which variable dereferences are matched and highlighted.

19 years agoVim syntax update: bugfix: don't recognize an empty line as the end of a 'def' block...
Chris Larson [Wed, 8 Dec 2004 11:48:04 +0000 (11:48 +0000)]
Vim syntax update: bugfix: don't recognize an empty line as the end of a 'def' block, but only a line which isnt empty and which doesn't start with whitespace.

19 years agoVim syntax update: 1) Add EXPORT_FUNCTIONS to our list of valid statements, and 2...
Chris Larson [Wed, 8 Dec 2004 11:40:49 +0000 (11:40 +0000)]
Vim syntax update: 1) Add EXPORT_FUNCTIONS to our list of valid statements, and 2) Add '.' to the variable character class (so that things like IMAGE_FSTYPE_ext2.gz are properly highlighted).

19 years agoVim syntax update: match and highlight variable definitions flagged as 'export'.
Chris Larson [Wed, 8 Dec 2004 11:37:45 +0000 (11:37 +0000)]
Vim syntax update: match and highlight variable definitions flagged as 'export'.

19 years agoVim syntax update: Fix the statements (include/inherit/addtask/addhandler) to only...
Chris Larson [Wed, 8 Dec 2004 11:33:35 +0000 (11:33 +0000)]
Vim syntax update: Fix the statements (include/inherit/addtask/addhandler) to only match at the beginning of a line, in an oe statement.

19 years agoVim syntax update: highlight := variable assignment.
Chris Larson [Wed, 8 Dec 2004 11:15:12 +0000 (11:15 +0000)]
Vim syntax update: highlight := variable assignment.

19 years agooe to bb rename in oedev.sh.
Chris Larson [Wed, 8 Dec 2004 09:51:02 +0000 (09:51 +0000)]
oe to bb rename in oedev.sh.

19 years agoVim syntax update: Fix the var deref in var overrides to be more versatile and highli...
Chris Larson [Wed, 8 Dec 2004 09:46:09 +0000 (09:46 +0000)]
Vim syntax update: Fix the var deref in var overrides to be more versatile and highlight them as string rather than statement+identifier.

19 years agoVim syntax update: 1) Highlight the quotes around a string as a String rather than...
Chris Larson [Wed, 8 Dec 2004 09:22:27 +0000 (09:22 +0000)]
Vim syntax update: 1) Highlight the quotes around a string as a String rather than as a Statement (like .conf highlighting rather than .sh), and 2) Highlight the value of a bitbake variable even if it isn't quoted.

19 years agoVim syntax update: Highlight overrides that include variable derefences (i.e. FILES_...
Chris Larson [Wed, 8 Dec 2004 09:04:11 +0000 (09:04 +0000)]
Vim syntax update: Highlight overrides that include variable derefences (i.e. FILES_${PN}).

19 years agoVim syntax update: highlight backslashes used as line continuation within strings...
Chris Larson [Wed, 8 Dec 2004 07:40:37 +0000 (07:40 +0000)]
Vim syntax update: highlight backslashes used as line continuation within strings as 'Special'.

19 years agoVim syntax update: match anonymous python functions with no specified name.
Chris Larson [Wed, 8 Dec 2004 07:24:33 +0000 (07:24 +0000)]
Vim syntax update: match anonymous python functions with no specified name.

19 years agoAdd copyright & license to the vim syntax file.
Chris Larson [Wed, 8 Dec 2004 07:13:05 +0000 (07:13 +0000)]
Add copyright & license to the vim syntax file.

19 years agoAdd README to contrib/.
Chris Larson [Wed, 8 Dec 2004 07:10:38 +0000 (07:10 +0000)]
Add README to contrib/.

19 years agoVim syntax update: highlight the ending ':' on a 'def' line.
Chris Larson [Wed, 8 Dec 2004 07:09:11 +0000 (07:09 +0000)]
Vim syntax update: highlight the ending ':' on a 'def' line.

19 years agoVim syntax update: highlight definitions of variable flags.
Chris Larson [Wed, 8 Dec 2004 06:56:41 +0000 (06:56 +0000)]
Vim syntax update: highlight definitions of variable flags.

19 years agoVim syntax update: highlight the 'def' as a Statement, and add highlighting of the...
Chris Larson [Wed, 8 Dec 2004 06:47:07 +0000 (06:47 +0000)]
Vim syntax update: highlight the 'def' as a Statement, and add highlighting of the bitbake 'addtask', 'addhandler', 'inherit', and 'include' statements.

19 years agoVim syntax update: highlight the 'def'd python functions as such.
Chris Larson [Wed, 8 Dec 2004 06:43:12 +0000 (06:43 +0000)]
Vim syntax update: highlight the 'def'd python functions as such.

19 years agoVim syntax update: highlight the shell functions as shell.
Chris Larson [Wed, 8 Dec 2004 06:27:44 +0000 (06:27 +0000)]
Vim syntax update: highlight the shell functions as shell.

19 years agoStart adding vim syntax highlighting.
Chris Larson [Wed, 8 Dec 2004 06:11:54 +0000 (06:11 +0000)]
Start adding vim syntax highlighting.

19 years agoClean up after the aforementioned tests.
Chris Larson [Tue, 7 Dec 2004 21:10:58 +0000 (21:10 +0000)]
Clean up after the aforementioned tests.

19 years agoYet another test of the hooks.
Chris Larson [Tue, 7 Dec 2004 21:10:34 +0000 (21:10 +0000)]
Yet another test of the hooks.

19 years agoTest hooks.
Chris Larson [Tue, 7 Dec 2004 21:08:18 +0000 (21:08 +0000)]
Test hooks.

19 years agoTest hooks.
Chris Larson [Tue, 7 Dec 2004 21:08:04 +0000 (21:08 +0000)]
Test hooks.

19 years agoRearrange repository.
Chris Larson [Tue, 7 Dec 2004 21:02:42 +0000 (21:02 +0000)]
Rearrange repository.

19 years agoInitial import.
Chris Larson [Tue, 7 Dec 2004 20:55:41 +0000 (20:55 +0000)]
Initial import.

19 years agosupport "oemake --world" as a (preferred) alternative for "oemake world".
Phil Blundell [Sat, 4 Dec 2004 11:45:11 +0000 (11:45 +0000)]
support "oemake --world" as a (preferred) alternative for "oemake world".

19 years agoif an exception occurs, during parsing, show which file caused it.
Phil Blundell [Fri, 3 Dec 2004 19:52:22 +0000 (19:52 +0000)]
if an exception occurs, during parsing, show which file caused it.
be sure to propagate KeyboardInterrupt up correctly.

19 years agoFix oemake 'world' logic bug.
Chris Larson [Fri, 3 Dec 2004 06:32:11 +0000 (06:32 +0000)]
Fix oemake 'world' logic bug.

19 years agoAdd an 'EXCLUDE_FROM_WORLD' variable to oemake, which doesn't imply brokenness, to...
Chris Larson [Wed, 1 Dec 2004 10:15:18 +0000 (10:15 +0000)]
Add an 'EXCLUDE_FROM_WORLD' variable to oemake, which doesn't imply brokenness, to be used by images, native and cross oeclasses, etc.

19 years agoBUGFIX: oe.build.mkstamp had a hardcoded path to the stamps dir.
Chris Larson [Wed, 1 Dec 2004 00:54:39 +0000 (00:54 +0000)]
BUGFIX: oe.build.mkstamp had a hardcoded path to the stamps dir.

19 years agoadd 'oemake -s' option to dump out a table of latest and preferred versions for all...
Phil Blundell [Sun, 28 Nov 2004 11:57:07 +0000 (11:57 +0000)]
add 'oemake -s' option to dump out a table of latest and preferred versions for all packages

19 years agosubversion use revisions not date
Marcin Juszkiewicz [Fri, 19 Nov 2004 11:26:33 +0000 (11:26 +0000)]
subversion use revisions not date

19 years agoAttempt to correct an unintended consequence of the localdir fix.
Chris Larson [Fri, 19 Nov 2004 11:25:46 +0000 (11:25 +0000)]
Attempt to correct an unintended consequence of the localdir fix.

19 years agoAuto merged
Chris Larson [Fri, 19 Nov 2004 01:56:25 +0000 (01:56 +0000)]
Auto merged

19 years agoapply patch from Murray Jensen to fix lost CVS_RSH when doing incremental update
Phil Blundell [Sun, 31 Oct 2004 17:46:28 +0000 (17:46 +0000)]
apply patch from Murray Jensen to fix lost CVS_RSH when doing incremental update

19 years agoMake oeread suck a bit less.
Chris Larson [Wed, 27 Oct 2004 20:44:02 +0000 (20:44 +0000)]
Make oeread suck a bit less.

19 years agoCall oe.data.init() rather than manually initializing the dictionary.
Chris Larson [Wed, 27 Oct 2004 18:51:58 +0000 (18:51 +0000)]
Call oe.data.init() rather than manually initializing the dictionary.

19 years agoAuto merged
Marcin Juszkiewicz [Fri, 22 Oct 2004 23:16:45 +0000 (23:16 +0000)]
Auto merged

19 years agoallow for "-d /usr/src/CVS" parameter to cvs if you set
Holger Schurig [Mon, 18 Oct 2004 09:16:36 +0000 (09:16 +0000)]
allow for "-d /usr/src/CVS" parameter to cvs if you set
SRC_URI = "cvs:///usr/src/CVS;module=mnci/qt3/mnrdp;method=dir"

19 years agoback out previous mistaken change
Phil Blundell [Fri, 15 Oct 2004 21:22:05 +0000 (21:22 +0000)]
back out previous mistaken change

19 years agoadd current task to OVERRIDES during execution to facilitate "EXTRA_OEMAKE_prepend_do...
Phil Blundell [Wed, 13 Oct 2004 19:29:07 +0000 (19:29 +0000)]
add current task to OVERRIDES during execution to facilitate "EXTRA_OEMAKE_prepend_do-compile = '-j3'"

19 years agofix OEMASK handling
Rene Wagner [Fri, 1 Oct 2004 16:08:09 +0000 (16:08 +0000)]
fix OEMASK handling

19 years agoalso accept ".inc" as a legitimate file extension
Phil Blundell [Tue, 21 Sep 2004 21:52:04 +0000 (21:52 +0000)]
also accept ".inc" as a legitimate file extension

19 years agoAdd -n/--name option to oeimage, to allow us to force the IMAGE_NAME and thereby...
Chris Larson [Sat, 18 Sep 2004 06:12:07 +0000 (06:12 +0000)]
Add -n/--name option to oeimage, to allow us to force the IMAGE_NAME and thereby ensure it is what we expect it to be.

19 years agoquiet cvs/svn tarball creating
Marcin Juszkiewicz [Thu, 26 Aug 2004 09:05:29 +0000 (09:05 +0000)]
quiet cvs/svn tarball creating

19 years agosubversion fetcher based on cvs one
Marcin Juszkiewicz [Wed, 25 Aug 2004 09:04:57 +0000 (09:04 +0000)]
subversion fetcher based on cvs one

19 years agoupdate
Michael 'Mickey' Lauer [Tue, 10 Aug 2004 14:52:47 +0000 (14:52 +0000)]
update

19 years agouse _ not - to separate pv from pr in PREFERRED_VERSION_foo
Phil Blundell [Sat, 7 Aug 2004 14:35:46 +0000 (14:35 +0000)]
use _ not - to separate pv from pr in PREFERRED_VERSION_foo