setup: problems with local install

Jon Turney jon.turney@dronecode.org.uk
Tue Mar 6 16:38:00 GMT 2018


On 06/03/2018 02:18, Ken Brown wrote:
> On 3/5/2018 1:34 PM, Ken Brown wrote:
>> This is a followup to the thread started here:
>>
>>    https://cygwin.com/ml/cygwin/2018-03/msg00027.html
>>
>> There are two problems with installing from a local directory.
>>
>> 1. In the Category view, "No packages found" is displayed where it 
>> should say "All" in the first line of the list.  This is probably just 
>> a cosmetic issue, and I haven't tried to track it down yet.
> 
> This actually happens in all setup runs, not just local installs.  It 
> looks like it was caused by the rearranging that was done in the 
> following commit:
> 
> commit 0c539f7f7d86fb100f260f21367682fa2c0bb529
> Author: Jon Turney <jon.turney-GrJqePx9RPPAJUdA+FbntA@public.gmane.org>
> Date:   Sat Nov 4 18:01:49 2017 +0000
> 
>      Correctly order preparing packagedb for chooser
> 
> I think the problem might be that createListview() is now called too 
> early in ChooserPage::OnInit().  But it's not immediately obvious to me 
> how to fix this without breaking something else.
I'm kind of inclined to fix this with the attached: I think we only ever 
got "No packages found" before if there were 0 packages, which 
presumably doesn't happen very often :)

We don't update this header if a search reduces the number of packages 
shown to 0, which might make some sort of sense.

(Also, weirdly, we don't remove empty categories from view, except if we 
are doing a search, but this seems to be deliberate? (PickView.cc:311))
-------------- next part --------------
From 1a0cf0a86088b4aae7d5a18953f7c214b07d8a03 Mon Sep 17 00:00:00 2001
From: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue, 6 Mar 2018 16:17:30 +0000
Subject: [PATCH setup] Always give the fake root category the name 'All'

After we rearranged things in 0c539f7f, it's now too early to tell if we
have any packages or not.

The only thing about this category that is ever used is it's name, so we
don't acually need to use the real 'All' category here.

Saying 'No packages found' was never particularly helpful here, so just use
a fake category with the fixed name 'All'.
---
 choose.cc | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/choose.cc b/choose.cc
index 9cf3a50..5a4d3ad 100644
--- a/choose.cc
+++ b/choose.cc
@@ -137,11 +137,8 @@ ChooserPage::createListview ()
 {
   SetBusy ();
   static std::vector<packagemeta *> empty_cat;
-  static Category dummy_cat (std::string ("No packages found."), empty_cat);
-  packagedb db;
-  packagedb::categoriesType::iterator it = db.categories.find("All");
-  Category &cat = (it == db.categories.end ()) ? dummy_cat : *it;
-  chooser = new PickView (cat);
+  static Category dummy_cat (std::string ("All"), empty_cat);
+  chooser = new PickView (dummy_cat);
   RECT r = getDefaultListViewSize();
   if (!chooser->Create(this, WS_CHILD | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE,&r))
     throw new Exception (TOSTRING(__LINE__) " " __FILE__,
-- 
2.16.2



More information about the Cygwin-apps mailing list