Index: install.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/install.cc,v retrieving revision 2.101 diff -u -r2.101 install.cc --- install.cc 25 Jul 2011 14:36:24 -0000 2.101 +++ install.cc 10 Jun 2013 08:45:50 -0000 @@ -68,6 +68,8 @@ extern ThreeBarProgressPage Progress; +extern BoolOption IncludeSource ; + static int total_bytes = 0; static int total_bytes_sofar = 0; static int package_bytes = 0; @@ -675,8 +677,9 @@ } } - if (pkg.desired.sourcePackage ().picked()) + if (pkg.desired.sourcePackage ().picked() || IncludeSource) { + bool skiprequested = false ; try { md5_one (*pkg.desired.sourcePackage ().source ()); @@ -684,9 +687,12 @@ catch (Exception *e) { if (yesno (owner, IDS_SKIP_PACKAGE, e->what()) == IDYES) + { + skiprequested = true ; //(err occurred,) skip pkg desired pkg.desired.sourcePackage ().pick (false, &pkg); + } } - if (pkg.desired.sourcePackage().picked()) + if (pkg.desired.sourcePackage().picked() || (IncludeSource && !skiprequested) ) { md5sum_total_bytes_sofar += pkg.desired.sourcePackage ().source()->size; total_bytes += pkg.desired.sourcePackage ().source()->size; Index: download.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/download.cc,v retrieving revision 2.55 diff -u -r2.55 download.cc --- download.cc 29 Apr 2011 12:43:59 -0000 2.55 +++ download.cc 10 Jun 2013 08:45:50 -0000 @@ -57,6 +57,8 @@ extern ThreeBarProgressPage Progress; +BoolOption IncludeSource (false, 'I', "include-source", "Automatically include source download"); + static bool validateCachedPackage (const std::string& fullname, packagesource & pkgsource) { @@ -223,7 +225,7 @@ if (!check_for_cached (*i)) total_download_bytes += i->size; } - if (sourceversion.picked ()) + if (sourceversion.picked () || IncludeSource) { for (vector::iterator i = sourceversion.sources ()->begin(); @@ -262,7 +264,7 @@ i != version.sources ()->end(); ++i) e += download_one (*i, owner); } - if (sourceversion && sourceversion.picked()) + if (sourceversion && (sourceversion.picked() || IncludeSource) ) { for (vector::iterator i = sourceversion.sources ()->begin();