+2002-05-20 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_meta.cc (packagemeta::set_action): Don't allow reinstall
+ when local with no cached file, and install the default source if the
+ default version has no binary.
+
2002-05-19 Robert Collins <rbtcollins@hotmail.com>
* IniDBBuilderPackage.cc (IniDBBuilderPackage::IniDBBuilderPackage): New
}
return;
}
- else if (desired == installed
- && (!installed || !(installed->binpicked || installed->srcpicked)))
+ else if (desired == installed &&
+ (!installed ||
+ // neither bin nor source are being installed
+ (!(installed->binpicked || installed->srcpicked) &&
+ // bin or source are available
+ ((installed->bin.sites.number() || desired->bin.Cached()) ||
+ (installed->src.sites.number() || desired->src.Cached()))))
+ )
/* Install the default trust version - this is a 'reinstall' for installed
* packages */
{
desired = default_version;
if (desired)
{
- desired->binpicked = 1;
+ if (desired->bin.sites.number() || desired->bin.Cached())
+ desired->binpicked = 1;
+ else
+ desired->srcpicked = 1;
return;
}
}
if (n <= versions.number ())
{
desired = versions[n];
- desired->srcpicked = source;
+ if (desired->src.sites.number() || desired->src.Cached())
+ desired->srcpicked = source;
+ else
+ desired->srcpicked = 0;
return;
}
}