diff --git a/src/kits/package/manager/PackageManager.cpp b/src/kits/package/manager/PackageManager.cpp index 6d9ccd8c53..ec174ba5aa 100644 --- a/src/kits/package/manager/PackageManager.cpp +++ b/src/kits/package/manager/PackageManager.cpp @@ -110,11 +110,13 @@ BPackageManager::Init(uint32 flags) // well. But we can easily filter those out. _AddInstalledRepository(fSystemRepository); - try { - if (!fSystemRepository->IsInstalled()) + if (!fSystemRepository->IsInstalled()) + { + // Only add the home repository if the directory exists + BPath path; + status_t error = find_directory(B_USER_PACKAGES_DIRECTORY, &path); + if (error == B_OK && BEntry(path.Path()).Exists()) _AddInstalledRepository(fHomeRepository); - } catch(BFatalErrorException& exception) { - // No home repository found. This is ok for haikuporter chroots. } } diff --git a/src/servers/package/PackageDaemon.cpp b/src/servers/package/PackageDaemon.cpp index 4b35cb1b0f..d0c93229c0 100644 --- a/src/servers/package/PackageDaemon.cpp +++ b/src/servers/package/PackageDaemon.cpp @@ -93,8 +93,9 @@ PackageDaemon::MessageReceived(BMessage* message) if (fSystemRoot != NULL && (error != B_OK || fSystemRoot->NodeRef() == nodeRef)) + { fSystemRoot->HandleRequest(DetachCurrentMessage()); - else { + } else if (error == B_OK) { Root* root = _FindRoot(nodeRef); if (root != NULL) { root->HandleRequest(DetachCurrentMessage());