From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 114696 invoked by alias); 31 May 2017 10:57:26 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 114685 invoked by uid 89); 31 May 2017 10:57:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy= X-HELO: rgout04.bt.lon5.cpcloud.co.uk Received: from rgout0404.bt.lon5.cpcloud.co.uk (HELO rgout04.bt.lon5.cpcloud.co.uk) (65.20.0.217) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 31 May 2017 10:57:24 +0000 X-OWM-Source-IP: 86.141.128.130 (GB) X-OWM-Env-Sender: jonturney@btinternet.com X-Junkmail-Premium-Raw: score=8/50,refid=2.7.2:2017.5.13.91815:17:8.707,ip=,rules=NO_URI_FOUND, NO_CTA_URI_FOUND, NO_MESSAGE_ID, NO_URI_HTTPS, TO_MALFORMED Received: from localhost.localdomain (86.141.128.130) by rgout04.bt.lon5.cpcloud.co.uk (9.0.019.13-1) (authenticated as jonturney@btinternet.com) id 58482DA21281BAAB; Wed, 31 May 2017 11:57:26 +0100 From: Jon Turney To: cygwin-apps@cygwin.com Cc: Jon Turney Subject: [PATCH setup 06/14] Hoist scan() up from packageversion to packagemeta Date: Wed, 31 May 2017 10:57:00 -0000 Message-Id: <20170531105015.162228-7-jon.turney@dronecode.org.uk> In-Reply-To: <20170531105015.162228-1-jon.turney@dronecode.org.uk> References: <20170531105015.162228-1-jon.turney@dronecode.org.uk> X-SW-Source: 2017-05/txt/msg00167.txt.bz2 --- package_meta.cc | 37 +++++++++++++++++++++++++++++++++++-- package_meta.h | 2 ++ package_version.cc | 29 ----------------------------- package_version.h | 2 -- 4 files changed, 37 insertions(+), 33 deletions(-) diff --git a/package_meta.cc b/package_meta.cc index f4678f0..425df59 100644 --- a/package_meta.cc +++ b/package_meta.cc @@ -44,6 +44,9 @@ using namespace std; #include #include "Generic.h" +#include "download.h" +#include "Exception.h" +#include "resource.h" using namespace std; @@ -582,6 +585,36 @@ packagemeta::logSelectionStatus() const pkg.logAllVersions(); } +/* scan for local copies of package */ +void +packagemeta::scan (const packageversion &pkg, bool mirror_mode) +{ + /* Already have something */ + if (!pkg) + return; + + /* Remove mirror sites. + * FIXME: This is a bit of a hack. + */ + try + { + if (!check_for_cached (*(pkg.source ()), mirror_mode) + && ::source == IDC_SOURCE_LOCALDIR) + pkg.source ()->sites.clear (); + } + catch (Exception * e) + { + // We can ignore these, since we're clearing the source list anyway + if (e->errNo () == APPERR_CORRUPT_PACKAGE) + { + pkg.source ()->sites.clear (); + return; + } + // Unexpected exception. + throw e; + } +} + void packagemeta::ScanDownloadedFiles (bool mirror_mode) { @@ -601,10 +634,10 @@ packagemeta::ScanDownloadedFiles (bool mirror_mode) && (*i != pkg.installed || pkg.installed == pkg.curr || pkg.installed == pkg.exp); - const_cast(*i).scan (lazy_scan); + scan (*i, lazy_scan); packageversion foo = *i; packageversion pkgsrcver = foo.sourcePackage (); - pkgsrcver.scan (lazy_scan); + scan (pkgsrcver, lazy_scan); /* For local installs, if there is no src and no bin, the version * is unavailable diff --git a/package_meta.h b/package_meta.h index 529b2a2..8041aa1 100644 --- a/package_meta.h +++ b/package_meta.h @@ -159,6 +159,8 @@ protected: private: std::string trustLabel(packageversion const &) const; std::vector