NetBSD Problem Report #56597

From mlelstv@arnold.localdomain  Sat Jan  1 14:55:49 2022
Return-Path: <mlelstv@arnold.localdomain>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id AE4781A923C
	for <gnats-bugs@gnats.NetBSD.org>; Sat,  1 Jan 2022 14:55:49 +0000 (UTC)
Message-Id: <20220101145545.72C15BC141@arnold.localdomain>
Date: Sat,  1 Jan 2022 15:55:45 +0100 (CET)
From: mlelstv@netbsd.org
Reply-To: mlelstv@netbsd.org
To: gnats-bugs@NetBSD.org
Subject: Deinstallation of compat90 destroys netbsd-9
X-Send-Pr-Version: 3.95

>Number:         56597
>Category:       pkg
>Synopsis:       Deinstallation of compat90 destroys netbsd-9
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    he@NetBSD.org
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 01 15:00:00 +0000 2022
>Last-Modified:  Sun Jan 02 17:55:01 +0000 2022
>Originator:     mlelstv@netbsd.org
>Release:        NetBSD 9.99.85
>Organization:

>Environment:


System: NetBSD slowpoke 9.99.85 NetBSD 9.99.85 (SLOWPOKE) #13: Tue Jun 15 22:51:58 UTC 2021 mlelstv@slowpoke:/scratch2/obj.amd64/scratch/netbsd-current/src/sys/arch/amd64/compile/SLOWPOKE amd64
Architecture: x86_64
Machine: amd64
>Description:
Installation of the compat90 on netbsd-9 produces lots of errors since
netbsd-9 libraries already exist.

Deinstallation of the package then deletes the system libraries, leaving it
in a broken state.

This regularly happens when you run pbulk, the build system gets destroyed.
>How-To-Repeat:
Build or install compat90 on a netbsd-9 system.
>Fix:


>Release-Note:

>Audit-Trail:
From: "David H. Gutteridge" <david@gutteridge.ca>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/56597 (Deinstallation of compat90 destroys netbsd-9)
Date: Sat, 01 Jan 2022 16:50:08 -0500

 The ONLY_FOR_PLATFORM setting includes 9.[012]; were there changes to
 the netbsd-9 branch that bumped shared library major versions? I'd be a
 bit surprised if that was the case. Seems more likely to be a copy-paste
 error from carrying over the compat80 package definitions?

 There were changes made to compat80 and then reverted because of this
 very issue of overwriting and removing content (in 9.x).

 Dave

Responsible-Changed-From-To: pkg-manager->he@NetBSD.org
Responsible-Changed-By: nia@NetBSD.org
Responsible-Changed-When: Sun, 02 Jan 2022 07:43:10 +0000
Responsible-Changed-Why:
Over to committer


From: Havard Eidnes <he@NetBSD.org>
To: gnats-bugs@netbsd.org, nia@NetBSD.org
Cc: pkg-manager@netbsd.org, pkgsrc-bugs@netbsd.org, gnats-admin@netbsd.org,
 mlelstv@netbsd.org
Subject: Re: pkg/56597 (Deinstallation of compat90 destroys netbsd-9)
Date: Sun, 02 Jan 2022 15:34:14 +0100 (CET)

 That was .. unexpected.

 I see the submitter reports with 9.99.85.  By the looks of it,
 the compat90 package was generated against

 NetBSD 9.99.92 (GENERIC) #0: Fri Nov 12 15:12:11 UTC 2021

 Was there any major version bumps between 9.99.85 and 9.99.92?

 Hm, the package has (among others)

 ONLY_FOR_PLATFORM=3D      NetBSD-9.*-*

 but I also see (practical experience from a mistake I did earlier
 today) that the package can be installed on NetBSD 9.2.  How is
 that even possible?!?  And the above pattern doesn't match
 9.99.<x> either, I suppose?

 Perhaps the above pattern should have been NetBSD-9.99.*, but
 then again, the submitter reported 9.99.85 and still had the
 problem?  Also, 9.99.85 is not netbsd-9, so it's not entirely
 clear against which version this report is submitted.

 When I installed compat90 on NetBSD 9.2, I did notice that the
 installation noted that "target exists", perhaps unsurprisingly.

 Hm, seems like the +ROOT_ACTIONS script of the package, from
 ../compat_netbsd/INSTALL.ELF is responsible for managing the
 symlinks, it will not replace a file or preexisting symlink, but
 on de-install and the target was already a symlink, it will be
 summarily removed...  Perhaps the INSTALL.ELF script should as an
 added level of security verify that the symlink actually points
 to the intended target before removing it, instead of just
 testing whether it's a symlink, given the prevalent use of
 symlinks in shared library handling?

 So, can someone please explain what ONLY_FOR_PLATFORM should look
 like to prevent installation of this on netbsd-9, and possibly on
 any -current older than 9.99.92?

 A separate question is also why compat90 was deemed to be
 required on netbsd-9, presumably by other parts of pkgsrc?  That
 should not be needed AFAIK; there's not been any major shared lib
 bumps between 9.0 to 9.2 or even going to 9.2_STABLE.

 Regards,

 - H=E5vard

From: "Havard Eidnes" <he@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/56597 CVS commit: pkgsrc/emulators/compat_netbsd
Date: Sun, 2 Jan 2022 16:15:55 +0000

 Module Name:	pkgsrc
 Committed By:	he
 Date:		Sun Jan  2 16:15:55 UTC 2022

 Modified Files:
 	pkgsrc/emulators/compat_netbsd: INSTALL.ELF

 Log Message:
 Don't just remove a symlink on removal, ensure that it points
 to an expected name before doing so.  Should prevent removal of
 required symlinks which might otherwise happen when this package
 by accident is instsalled and subsequently de-installed on
 9.0 - 9.2 or other netbsd-9 variants.
 Parts of fix for PR#56597.


 To generate a diff of this commit:
 cvs rdiff -u -r1.2 -r1.3 pkgsrc/emulators/compat_netbsd/INSTALL.ELF

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Havard Eidnes" <he@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/56597 CVS commit: pkgsrc/emulators/compat90
Date: Sun, 2 Jan 2022 16:22:32 +0000

 Module Name:	pkgsrc
 Committed By:	he
 Date:		Sun Jan  2 16:22:32 UTC 2022

 Modified Files:
 	pkgsrc/emulators/compat90: Makefile

 Log Message:
 Change the ONLY_FOR_PLATFORM pattern, so that it no longer matches
 against 9.0, 9.1, 9.2 or 9.x_STABLE, only 9.99.* and subsequent
 releses.  The set of libraries this is compared against is what's
 in 9.99.92, but the binaries are from 9.0, of course.

 Bump PKGREVISION so that we pick up the changes from
 compat_netbsd/INSTALL.ELF, to protect against removal of base system
 symlinks, ref. PR#56597.


 To generate a diff of this commit:
 cvs rdiff -u -r1.1 -r1.2 pkgsrc/emulators/compat90/Makefile

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Michael van Elst <mlelstv@serpens.de>
To: gnats-bugs@netbsd.org
Cc: he@NetBSD.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
	mlelstv@netbsd.org
Subject: Re: pkg/56597 (Deinstallation of compat90 destroys netbsd-9)
Date: Sun, 2 Jan 2022 18:39:29 +0100

 On Sun, Jan 02, 2022 at 02:35:01PM +0000, Havard Eidnes wrote:

 >  I see the submitter reports with 9.99.85.  By the looks of it,
 >  the compat90 package was generated against

 The system runs 9.99.85, but the build runs in a netbsd-9 chroot
 with libkver pretending that this is a netbsd-9.0 system.

 The package Makefile also lets it build under netbsd-9.0 which
 doesn't make sense for a netbsd-9.0 compatibility package.

 I'm also confused about emulator.mk that tells:

 EMUL_DISTRO=            netbsd-9.99.82


 In any case, the package must not erase things it didn't install.
 The minimum should be to verify that the deinstallation removes
 symlinks to files installed by the package, not anything else
 under that name.


 N.B. the error doesn't occur on aarch64 and maybe other archs as
 the distfile checksum is bad.


 Greetings,
 -- 
                                 Michael van Elst
 Internet: mlelstv@serpens.de
                                 "A potential Snark may lurk in every tree."

From: nia <nia@NetBSD.org>
To: Havard Eidnes <he@NetBSD.org>
Cc: gnats-bugs@netbsd.org
Subject: Re: pkg/56597 (Deinstallation of compat90 destroys netbsd-9)
Date: Sun, 2 Jan 2022 17:45:42 +0000

 On Sun, Jan 02, 2022 at 03:34:14PM +0100, Havard Eidnes wrote:
 > That was .. unexpected.
 > 
 > I see the submitter reports with 9.99.85.  By the looks of it,
 > the compat90 package was generated against
 > 
 > NetBSD 9.99.92 (GENERIC) #0: Fri Nov 12 15:12:11 UTC 2021
 > 
 > Was there any major version bumps between 9.99.85 and 9.99.92?
 > 
 > Hm, the package has (among others)
 > 
 > ONLY_FOR_PLATFORM=      NetBSD-9.*-*

 Shouldn't it be NOT_FOR_PLATFORM NetBSD-9?

 > A separate question is also why compat90 was deemed to be
 > required on netbsd-9, presumably by other parts of pkgsrc?  That
 > should not be needed AFAIK; there's not been any major shared lib
 > bumps between 9.0 to 9.2 or even going to 9.2_STABLE.

 It's built by pbulk since it's included in emulators/Makefile.
 Unfortunately builds of the pkgsrc stable branch are currently
 impossible on netbsd-9 due to this.  :/

From: "Benny Siegert" <bsiegert@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/56597 CVS commit: [pkgsrc-2021Q4] pkgsrc/emulators
Date: Sun, 2 Jan 2022 17:51:08 +0000

 Module Name:	pkgsrc
 Committed By:	bsiegert
 Date:		Sun Jan  2 17:51:08 UTC 2022

 Modified Files:
 	pkgsrc/emulators/compat90 [pkgsrc-2021Q4]: Makefile distinfo
 	pkgsrc/emulators/compat_netbsd [pkgsrc-2021Q4]: INSTALL.ELF
 Added Files:
 	pkgsrc/emulators/compat90 [pkgsrc-2021Q4]: PLIST.earmeb PLIST.earmv6hf
 	    PLIST.earmv7hf PLIST.m68000
 Removed Files:
 	pkgsrc/emulators/compat90 [pkgsrc-2021Q4]: PLIST.armeb PLIST.armv6hf
 	    PLIST.armv7hf PLIST.m68010

 Log Message:
 Pullup ticket #6558 - requested by he
 emulators/compat90: fix for PR pkg/56597

 1) ensure that a symlink points the expected place before
    removing it on de-install (safety measure)
 2) change ONLY_FOR_PLATFORMS so that 9.[012] and _STABLE
    variants are excluded; insist on 9.99.* or later.

 Subsequently, adapt to pkglint warnings about EMUL_PLATFORMS
 member names.

 Revisions pulled up:
 - emulators/compat90/Makefile                                   1.2-1.3
 - emulators/compat90/PLIST.armeb                                deleted
 - emulators/compat90/PLIST.armv6hf                              deleted
 - emulators/compat90/PLIST.armv7hf                              deleted
 - emulators/compat90/PLIST.earmeb                               1.1
 - emulators/compat90/PLIST.earmv6hf                             1.1
 - emulators/compat90/PLIST.earmv7hf                             1.1
 - emulators/compat90/PLIST.m68000                               1.1
 - emulators/compat90/PLIST.m68010                               deleted
 - emulators/compat90/distinfo                                   1.3
 - emulators/compat_netbsd/INSTALL.ELF                           1.3

 ---
    Module Name:	pkgsrc
    Committed By:	he
    Date:		Sun Jan  2 16:15:55 UTC 2022

    Modified Files:
    	pkgsrc/emulators/compat_netbsd: INSTALL.ELF

    Log Message:
    Don't just remove a symlink on removal, ensure that it points
    to an expected name before doing so.  Should prevent removal of
    required symlinks which might otherwise happen when this package
    by accident is instsalled and subsequently de-installed on
    9.0 - 9.2 or other netbsd-9 variants.
    Parts of fix for PR#56597.

 ---
    Module Name:	pkgsrc
    Committed By:	he
    Date:		Sun Jan  2 16:22:32 UTC 2022

    Modified Files:
    	pkgsrc/emulators/compat90: Makefile

    Log Message:
    Change the ONLY_FOR_PLATFORM pattern, so that it no longer matches
    against 9.0, 9.1, 9.2 or 9.x_STABLE, only 9.99.* and subsequent
    releses.  The set of libraries this is compared against is what's
    in 9.99.92, but the binaries are from 9.0, of course.

    Bump PKGREVISION so that we pick up the changes from
    compat_netbsd/INSTALL.ELF, to protect against removal of base system
    symlinks, ref. PR#56597.

 ---
    Module Name:	pkgsrc
    Committed By:	he
    Date:		Sun Jan  2 16:35:12 UTC 2022

    Modified Files:
    	pkgsrc/emulators/compat90: Makefile

    Log Message:
    Adjust EMUL_PLATFORMS to pkglint's liking:
    armeb -> earmeb
    armv6hf -> earmv6hf
    armv7hf -> earmv7hf
    m68010 -> m68000
    Compat symlinks created in distfile repository.
    Riding on the quite recent PKGREVISION bump.

 ---
    Module Name:	pkgsrc
    Committed By:	he
    Date:		Sun Jan  2 16:49:29 UTC 2022

    Added Files:
    	pkgsrc/emulators/compat90: PLIST.earmeb PLIST.earmv6hf PLIST.earmv7hf
    	    PLIST.m68000
    Removed Files:
    	pkgsrc/emulators/compat90: PLIST.armeb PLIST.armv6hf PLIST.armv7hf
    	    PLIST.m68010

    Log Message:
    Rename the set lists corresponding to recent EMUL_PLATFORMS
    renaming.  Ride on recent PKG_REVISION bump.

 ---
    Module Name:	pkgsrc
    Committed By:	he
    Date:		Sun Jan  2 16:54:05 UTC 2022

    Modified Files:
    	pkgsrc/emulators/compat90: distinfo

    Log Message:
    Update distinfo as well, to complete the EMUL_PLATFORMS renaming.


 To generate a diff of this commit:
 cvs rdiff -u -r1.1 -r1.1.2.1 pkgsrc/emulators/compat90/Makefile
 cvs rdiff -u -r1.1 -r0 pkgsrc/emulators/compat90/PLIST.armeb \
     pkgsrc/emulators/compat90/PLIST.armv6hf \
     pkgsrc/emulators/compat90/PLIST.armv7hf \
     pkgsrc/emulators/compat90/PLIST.m68010
 cvs rdiff -u -r0 -r1.1.2.2 pkgsrc/emulators/compat90/PLIST.earmeb \
     pkgsrc/emulators/compat90/PLIST.earmv6hf \
     pkgsrc/emulators/compat90/PLIST.earmv7hf \
     pkgsrc/emulators/compat90/PLIST.m68000
 cvs rdiff -u -r1.2 -r1.2.2.1 pkgsrc/emulators/compat90/distinfo
 cvs rdiff -u -r1.2 -r1.2.72.1 pkgsrc/emulators/compat_netbsd/INSTALL.ELF

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.