delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2024/06/20/09:37:58

DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 45KDbwYr3939729
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=ZPQ7TpY0
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AB49C3894C01
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1718890676;
bh=J21BKC+3upMtts6xFfgfmLhJOupFw7g5y1BD1CJz1Fk=;
h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive:
List-Post:List-Help:List-Subscribe:From:Reply-To:From;
b=ZPQ7TpY0VWCdyjCYEeVeHCnfR+23gSa91gvA1WgNas9Yn0SvbpIfDex0lLTSsHyyc
S1jTa7pPlJKH4wG8oLJy4/n7gnZFxsSzfr8no1UawQVG81qxYkDRaBGnI9CYY/exJZ
6UGbKxV2INwRpVvJny19bOSs/UqVAF8OClB48Vp0=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AEA6F389366E
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AEA6F389366E
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718890612; cv=none;
b=vKqIHQxWkqoYPyfWIxm+myH/aDy6nPE09v9NeRX4+9Uly7JIYfdVO5vBNy2lu/QvrtzZgOZVzPt0l1m14gP1zLuhpLkf/qJW07m3GEc3Y0QMjafm6O3kbl0r4ud448/PUBqdZTV4lGlYoCSie6PD1v/k+SbizH29Jky/qihlZ7w=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1718890612; c=relaxed/simple;
bh=8j/sOkmQHXUdTtOZQmgz3Xn7UFKtnrON3YP2aU0BqEg=;
h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;
b=acgIsn1K4zkMI2YpJoU5ou8ytz4LPlurvTKO2XgHC3cuUB0yaa4vbBI67Rs76hf/ZEhAWsNTxWuOLK+tgMLKxxizhWSawfwdArW3KNI0bKAsTmz/TlHkZuTe98QmuH4NepJmXHAs1bMJWRTOw16vJiLHeyvLkWQ+y8oSabnXS1c=
ARC-Authentication-Results: i=1; server2.sourceware.org
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1718890610; x=1719495410;
h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state
:from:to:cc:subject:date:message-id:reply-to;
bh=sylDIktv7PwpUlJ4FZvlM87OGjc1Ky3PeKsFJ9wP6T8=;
b=Yn8KS8AhgCL33DopBOvbfgdFQa13zmnwhgixI1ieS3UvwsROGe7K6H3TVPx0uUU95v
Kxe5br3IcUzcd4y5qtkDyjNhgezARoth8lkMxW2OUQ9rZZW1//1JZeWrxIt8ff3lSek2
sIuBuPECuWUy/D+nd8cUFK4q03sUutN4PANskEn3PKcymDpbvmhY9KYj4fF5K3XZXw19
4KCrtAX3dhylHVgTd/Y5pgfBs1er9S3j0w+crg3zOt2MBYwqfasP9j4uusb3XdoOLziF
vrV3H/2DR9VVTEagMEBXEwYk4Q5wgQCgCZ0X6PivviqwtfeNM5iMMotJtkpi52ki6X/F
SAQw==
X-Gm-Message-State: AOJu0YyDmw57MKLe0rRShuyO6i0S+xx9/8eOR3wogvMCAzq1UJ0vBWmL
W8a533qmMcFx9AW4R1cCbYLbFxjJndhtFDPj/kAxX1cn8yF1MNSyNUfsUQ==
X-Google-Smtp-Source: AGHT+IGs5naecUILWrPhUVDLSsPSNuvoYkRgUxRXfoG2JwKx9t/VOplEY0CpUrvRFGU3Va8j4VSzXQ==
X-Received: by 2002:a05:622a:45:b0:439:7147:8f2a with SMTP id
d75a77b69052e-444a7a8986cmr61945801cf.4.1718890609812;
Thu, 20 Jun 2024 06:36:49 -0700 (PDT)
To: cygwin AT cygwin DOT com
Cc: David McFarland <corngood AT gmail DOT com>
Subject: setup: --prune-install appears to be broken
Date: Thu, 20 Jun 2024 10:36:45 -0300
Message-ID: <87bk3v91n6.fsf@gmail.com>
MIME-Version: 1.0
X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0,
RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP,
T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: David McFarland via Cygwin <cygwin AT cygwin DOT com>
Reply-To: David McFarland <corngood AT gmail DOT com>
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

If I do a base install to a new root:

    setup-x86_64.exe --root "$(cygpath -wa .cygtest)" --no-admin \
        --no-shortcuts --no-replaceonreboot --no-version-check \
        --prune-install --verbose

And then run the same install again, I get:

    libsolv: orphaned packages:
    libsolv:   base-0.0-0.any (erased)
    libsolv:   _windows-10.0.19045.any (kept)
    libsolv:
    libsolv: ordering transaction
    libsolv: transaction elements: 33
    libsolv: edges: 41, edge space: 70
    libsolv: edge creation took 0 ms
    libsolv: cycles broken: 0
    libsolv: cycle breaking took 0 ms
    libsolv: invedge space: 76
    libsolv: creating new transaction took 0 ms
    libsolv: transaction ordering took 0 ms
    libsolv: 33 erased packages:
    libsolv:   - base-0.0-0.any
    libsolv:   - ca-certificates-2023.2.62_v7.0.401-2.any
    libsolv:   - cygutils-1.4.17-1.any
    libsolv:   - file-5.44-1.any
    libsolv:   - gawk-5.3.0-1.any
    libsolv:   - groff-1.23.0-1.any
    libsolv:   - less-643-1.any
    libsolv:   - libfdisk1-2.39.3-2.any
    libsolv:   - libffi6-3.2.1-2.any
    libsolv:   - libgdbm6-1.18.1-1.any
    libsolv:   - liblz4_1-1.9.4-1.any
    libsolv:   - liblzma5-5.6.2-1.any
    libsolv:   - libmpfr6-4.2.1-1.any
    libsolv:   - libp11-kit0-0.23.20-1.any
    libsolv:   - libpcre1-8.45-1.any
    libsolv:   - libpipeline1-1.5.6-1.any
    libsolv:   - libpopt-common-1.19-1.any
    libsolv:   - libpopt0-1.19-1.any
    libsolv:   - libsmartcols1-2.39.3-2.any
    libsolv:   - libssl1.1-1.1.1w-1.any
    libsolv:   - libssl3-3.0.14-1.any
    libsolv:   - libstdc++6-11.4.0-1.any
    libsolv:   - libtasn1_6-4.14-1.any
    libsolv:   - libuchardet0-0.0.8-1.any
    libsolv:   - libuuid1-2.39.3-2.any
    libsolv:   - man-db-2.12.1-1.any
    libsolv:   - openssl-3.0.14-1.any
    libsolv:   - p11-kit-0.23.20-1.any
    libsolv:   - p11-kit-trust-0.23.20-1.any
    libsolv:   - tar-1.35-2.any
    libsolv:   - util-linux-2.39.3-2.any
    libsolv:   - xz-5.6.2-1.any
    libsolv:   - zstd-1.5.6-1.any
    libsolv:
    Can't happen.  No packagemeta for base

The "Can't happen" error results in all following transactions being skipped:

        // Can't happen - throw an exception?
        {
          Log (LOG_PLAIN) << "Can't happen.  No packagemeta for "
                          << pv.Name() << endLog;
          return;
        }

This results in setup always showing no pending changes, even if you
have installed additional packages that should be pruned by
--prune-install, or if setup.ini has different contents.

The problem seems to be that we use SOLVER_ERASE jobs to remove all
non-base installed packages, and they take precedence over keeping the
pseudo-package 'base' installed.

Making the erase jobs weak seems to solve the problem:

diff --git a/libsolv.cc b/libsolv.cc
index 3f083a4..95f21a2 100644
--- a/libsolv.cc
+++ b/libsolv.cc
@@ -850,7 +850,7 @@ SolverSolution::tasksToJobs(SolverTasks &tasks, updateMode update, Queue &job)
           queue_push2(&job, SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES, sv.name_id());
           break;
         case SolverTasks::taskUninstall:
-          queue_push2(&job, SOLVER_ERASE | SOLVER_SOLVABLE, sv.id);
+          queue_push2(&job, SOLVER_ERASE | SOLVER_WEAK | SOLVER_SOLVABLE, sv.id);
           break;
         case SolverTasks::taskReinstall:
           // we don't know how to ask solver for this, so we just add the erase

However, I'm not sure if this is a good idea. Perhaps it should only be
done for pruned packages, and not explicitly uninstalled ones. I did try
various things to strengthen the requirement on 'base', but had no luck.

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019