def open( self, package=None ):
        if self.url:
            ProjectProperties.requireIsURL( self.url )
            package = ProjectProperties.splitURL( self.url )[1]
        else:
            ProjectProperties.requireIsCanonicalPath( package )

        topLevelDir = os.path.join( SIT.getRootPath(), package )

        super( BSTGloballyInstalledPackage, self ).open( topLevelDir )
    def __init__( self, url ):
        super( DebianPackage, self ).__init__( url )

        self.isInstalled = None
        self.name        = ProjectProperties.splitURL( url )[1]
        self.url         = url
Any.requireIsSet(bstpkg_src.depSet)
Any.requireIsSet(bstpkg_global.revDepSet)

fullSet = bstpkg_src.depSet | bstpkg_global.revDepSet
sitProxyPath = SIT.getPath()
sitRootPath = SIT.getRootPath()
installStatus = {}
installStatusLocal = {}
installStatusProxy = {}
installStatusGlobal = {}

logging.debug('retrieving install status of [reverse-]dependencies...')

for packageURL in fullSet:
    protocol, remainder = ProjectProperties.splitURL(packageURL)

    # _installStatus is the generic form, holding the installStatus
    # for Debian packages (= locally) and SIT packages (= in proxy)
    # since those are the effective locations for compiling sources

    if protocol == 'deb':
        status = ProjectProperties.isInstalled(packageURL)
        installStatus[packageURL] = status
        installStatusLocal[packageURL] = status
        logging.debug('installed locally : %s = %s', packageURL, status)

    else:
        status = ProjectProperties.isInstalled(packageURL, sitProxyPath)
        installStatus[packageURL] = status
        installStatusProxy[packageURL] = status