[[PATCH setup topic/libsolv] 2/2] Avoid clobbering installed.db when no setup.ini is found

Ken Brown kbrown@cornell.edu
Sat Oct 28 17:29:00 GMT 2017


On 10/28/2017 8:29 AM, Ken Brown wrote:
> Move the calls to packagedb::read and other packagedb functions from
> do_ini_thread to ChooserPage::OnInit.  If no setup.ini is found,
> do_ini_thread is never called.  But we need to ensure that
> packagedb::read is called, or else installed.db gets emptied.
> ---
>   choose.cc | 5 +++++
>   ini.cc    | 7 -------
>   2 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/choose.cc b/choose.cc
> index 619d7db..013a30a 100644
> --- a/choose.cc
> +++ b/choose.cc
> @@ -268,6 +268,11 @@ ChooserPage::OnInit ()
>       packagemeta::ScanDownloadedFiles (MirrorOption);
>   
>     packagedb db;
> +  db.makeBase();
> +  db.read();
> +  db.upgrade();
> +  db.fixup_source_package_ids();
> +  db.removeEmptyCategories();
>     db.setExistence ();
>     db.fillMissingCategory ();

Sorry, this isn't quite right.  The new calls need happen before 
ScanDownLoadedFiles is called, to avoid a crash when the latter looks 
for the installation tarballs.

I'll send a revised patch shortly.

Ken



More information about the Cygwin-apps mailing list