+
+ if (!orphans.empty()) {
+ SG_LOG(SG_GENERAL, SG_WARN, "have orphan packages: will become inaccesible");
+ std::set<PackageRef>::iterator it;
+ for (it = orphans.begin(); it != orphans.end(); ++it) {
+ SG_LOG(SG_GENERAL, SG_WARN, "\torphan package:" << (*it)->qualifiedId());
+ PackageList::iterator pit = std::find(m_packages.begin(), m_packages.end(), *it);
+ assert(pit != m_packages.end());
+ m_packages.erase(pit);
+ }
+ }
+
+ if (!m_url.empty()) {
+ if (m_url != m_props->getStringValue("url")) {
+ // this effectively allows packages to migrate to new locations,
+ // although if we're going to rely on that feature we should
+ // maybe formalise it!
+ SG_LOG(SG_GENERAL, SG_WARN, "package downloaded from:" << m_url
+ << " is now at: " << m_props->getStringValue("url"));
+ }
+ }
+
+ m_url = m_props->getStringValue("url");
+