# NAOqi Changes ¶

## autolaunch.py is no longer used ¶

The functionnality (running autodiagnostic, switching leds on during boot up), is now implemented in C++ in naoqi-bin executable.

To have your module loaded at  naoqi  startup, the syntax of the  autoload.ini  has changed.

The file is still located in  ~/naoqi/preferences/autoload.ini 

Note

The systen ‘autoload.ini’ is now in  /etc/naoqi/autoload.ini  , but your are strongly advised to NOT changed it.

old :



[core]
....

[extra]
....

mymodule



new :



[user]
/full/path/to/libmymodule.so



This way you can put your module where you want, and you do not have to copy/paste the  autoload.ini  from the system anymore.

You can also start programs (or remote’s modules) using the [program] tag:



[program]
/full/path/to/mymodule
# or
/full/path/to/myfolder/whatever/mymodule



You have the same process to work with python script using [python] tag:



[python]
/full/path/to/mypythonscript.py
# or
/full/path/to/myfolder/whatever/mypythonscript.py



Note for C++ developpers: on linux, the module libraries used to be loaded with RTLD_LAZY , now the modules are loaded with RTLD_NOW .

Thus, if on 1.10 you had unresolved symbols in your module you could crash naoqi, and on 1.12 your module will simply not load, giving an error message looking like:



[ERROR] Could not load library: /home/nao/naoqi/lib/naoqi/libmymodule.so
[ERROR] Error was:      Launcher::loadLibrary
Could not load library: "/home/nao/naoqi/lib/naoqi/libmymodule.so"
Error was:  /home/nao/naoqi/lib/naoqi/libmymodule.so: undefined symbol:
...



If you don’t know what this means, don’t worry, most of the time you will not be impacted by this change.

## Using custom Python libraries in your behaviors ¶

 ~/.local/lib/python2.6 

This way there is no need to tweak  PYTHONPATH  or messing up with  sys/.path  anymore.

## ALPreferences module ¶

Previously, we had a very confusing situation:

•  writePrefFile("foo")  would write in  .config/naoqi/foo.xml  , but
•  writePrefFile("foo.xml")  would write in  /full/path/to/foo.xnml 

Now:

•  writePrefFile("foo")  will create a file in  ~/.config/naoqi/foo.xml