By searching and browsing the newgroups I found some info on how to setup the config:
package.json

{
    "name": "tool",
    "description": "a set of tools",
    ...
    ...
    "dependencies":
    {
        "liba": { "version": "~master", "path": "/usr/local/src/liba" }, 
        "libb": { "version": "~master", "path": "/usr/local/src/libb" }, 
        "libc": { "version": "~master", "path": "/usr/local/src/libc" }, 
        "ddbc": { "version": "~master", "path": "/usr/local/src/ddbc" }, 
    },
    ...
    "subPackages":
    [
        {
            "name": "toola",
            "targetType": "executable",
            "excludeSourceFiles": [ "source/toolb.d", "source/toolc.d" ],
        },
        {
            "name": "toolb",
            "targetType": "executable",
            "excludeSourceFiles": [ "source/toola.d", "source/toolc.d" ],
        },
        {
            "name": "toolc",
            "targetType": "executable",
            "excludeSourceFiles": [ "source/toola.d", "source/toolb.d" ],
        }
    ]
} 

Is this the correct way to setup the package.json? Because it does not seem to work.
The dependencies are not propagated to the subPackages.

The second issue is with

    "dependencies":
    {
        "liba": { "version": "~master", "path": "/usr/local/src/liba" }, 

Should the "path" also added to 'dub' by 'dub add-path' or 'dub add-local'?
And how do I force the use of a local path for a dependency which is also in the dub repo?
For example ddbc is forked by me and I want dub to use my local-clone of the forked ddbc for ALL ddbc dependencies?