Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-8]: src Pull up the following, requested by maya in #1638:



details:   https://anonhg.NetBSD.org/src/rev/081f207b4ca1
branches:  netbsd-8
changeset: 947611:081f207b4ca1
user:      martin <martin%NetBSD.org@localhost>
date:      Sat Dec 19 13:41:22 2020 +0000

description:
Pull up the following, requested by maya in #1638:

        external/bsd/pkg_install/dist/add/perform.c     up to 1.8
        external/bsd/pkg_install/dist/lib/lib.h         up to 1.11
        external/bsd/pkg_install/dist/lib/parse-config.c up to 1.4
        external/bsd/pkg_install/dist/lib/pkg_install.conf.5.in up to 1.4
        external/bsd/pkg_install/dist/lib/pkgdb.c       up to 1.5
        external/bsd/pkg_install/dist/lib/plist.c       up to 1.6
        external/bsd/pkg_install/dist/lib/version.h     up to 1.19
        doc/3RDPARTY                                    (manually edited)

Merge pkg_install 20201218.

Provide silent backwards compatibility for existing package installs
using /var/db/pkg.

diffstat:

 doc/3RDPARTY                                            |   6 +-
 external/bsd/pkg_install/dist/add/perform.c             |  32 +++++++++++++---
 external/bsd/pkg_install/dist/lib/lib.h                 |   3 +-
 external/bsd/pkg_install/dist/lib/parse-config.c        |   6 ++-
 external/bsd/pkg_install/dist/lib/pkg_install.conf.5.in |   6 ++-
 external/bsd/pkg_install/dist/lib/pkgdb.c               |  34 +++++++++++-----
 external/bsd/pkg_install/dist/lib/plist.c               |  23 ++++++-----
 external/bsd/pkg_install/dist/lib/version.h             |   4 +-
 8 files changed, 77 insertions(+), 37 deletions(-)

diffs (290 lines):

diff -r 880ce7d2821f -r 081f207b4ca1 doc/3RDPARTY
--- a/doc/3RDPARTY      Sat Dec 12 20:31:57 2020 +0000
+++ b/doc/3RDPARTY      Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: 3RDPARTY,v 1.1444.2.24 2020/12/07 19:52:52 martin Exp $
+#      $NetBSD: 3RDPARTY,v 1.1444.2.25 2020/12/19 13:41:22 martin Exp $
 #
 # This file contains a list of the software that has been integrated into
 # NetBSD where we are not the primary maintainer.
@@ -1145,8 +1145,8 @@
 reachover Makefiles are in src/usr.sbin/pf.
 
 Package:       pkg_install
-Version:       20170419
-Current Vers:  20170419
+Version:       20201218
+Current Vers:  20201218
 Maintainer:    The pkgsrc developers
 Home Page:     http://www.pkgsrc.org/
 Mailing List:  tech-pkg%NetBSD.org@localhost
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/add/perform.c
--- a/external/bsd/pkg_install/dist/add/perform.c       Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/add/perform.c       Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: perform.c,v 1.5.4.2 2020/12/08 18:48:58 martin Exp $   */
+/*     $NetBSD: perform.c,v 1.5.4.3 2020/12/19 13:41:22 martin Exp $   */
 #if HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -6,7 +6,7 @@
 #if HAVE_SYS_CDEFS_H
 #include <sys/cdefs.h>
 #endif
-__RCSID("$NetBSD: perform.c,v 1.5.4.2 2020/12/08 18:48:58 martin Exp $");
+__RCSID("$NetBSD: perform.c,v 1.5.4.3 2020/12/19 13:41:22 martin Exp $");
 
 /*-
  * Copyright (c) 2003 Grant Beattie <grant%NetBSD.org@localhost>
@@ -151,6 +151,15 @@
 {
     int i = 0;
 
+    /*
+     * If the user has set the CHECK_OS_VERSION variable to "no" then skip any
+     * uname version checks and assume they know what they are doing.  This can
+     * be useful on OS where the kernel version is not a good indicator of
+     * userland compatibility, or differs but retains ABI compatibility.
+     */
+    if (strcasecmp(check_os_version, "no") == 0)
+       return 1;
+
     /* returns 1 if host and package operating system match */
     if (strcmp(host, package) == 0)
        return 1;
@@ -1179,6 +1188,10 @@
                        continue;
 
                best_installed = find_best_matching_installed_pkg(p->name, 0);
+               if (best_installed == NULL) {
+                       warnx("Expected dependency %s still missing", p->name);
+                       return -1;
+               }
 
                for (i = 0; i < pkg->dep_length; ++i) {
                        if (strcmp(best_installed, pkg->dependencies[i]) == 0)
@@ -1225,6 +1238,8 @@
 static int
 start_replacing(struct pkg_task *pkg)
 {
+       int result = -1;
+
        if (preserve_meta_data_file(pkg, REQUIRED_BY_FNAME))
                return -1;
 
@@ -1241,14 +1256,19 @@
                        Destdir ? " -P ": "", Destdir ? Destdir : "",
                        pkg->other_version);
        }
-       if (!Fake)
-               fexec_skipempty(BINDIR "/pkg_delete", "-K", pkgdb_get_dir(),
+       if (!Fake) {
+               result = fexec_skipempty(BINDIR "/pkg_delete", "-K", pkgdb_get_dir(),
                    "-p", pkg->prefix,
                    Destdir ? "-P": "", Destdir ? Destdir : "",
                    pkg->other_version, NULL);
+               if (result != 0) {
+                       warnx("command failed: %s/pkg_delete -K %s -p %s %s%s%s",
+                             BINDIR, pkgdb_get_dir(), pkg->prefix, Destdir ? "-P" : " ",
+                             Destdir ? Destdir : "", pkg->other_version);
+               }
+       }
 
-       /* XXX Check return value and do what? */
-       return 0;
+       return result;
 }
 
 static int check_input(const char *line, size_t len)
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/lib/lib.h
--- a/external/bsd/pkg_install/dist/lib/lib.h   Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/lib/lib.h   Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lib.h,v 1.8.4.2 2020/12/08 18:48:58 martin Exp $ */
+/* $NetBSD: lib.h,v 1.8.4.3 2020/12/19 13:41:22 martin Exp $ */
 
 /* from FreeBSD Id: lib.h,v 1.25 1997/10/08 07:48:03 charnier Exp */
 
@@ -447,6 +447,7 @@
 extern const char *certs_packages;
 extern const char *certs_pkg_vulnerabilities;
 extern const char *check_eol;
+extern const char *check_os_version;
 extern const char *check_vulnerabilities;
 extern const char *config_file;
 extern const char *config_pkg_dbdir;
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/lib/parse-config.c
--- a/external/bsd/pkg_install/dist/lib/parse-config.c  Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/lib/parse-config.c  Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: parse-config.c,v 1.2.4.1 2019/10/21 16:57:40 martin Exp $      */
+/*     $NetBSD: parse-config.c,v 1.2.4.2 2020/12/19 13:41:22 martin Exp $      */
 
 #if HAVE_CONFIG_H
 #include "config.h"
@@ -7,7 +7,7 @@
 #if HAVE_SYS_CDEFS_H
 #include <sys/cdefs.h>
 #endif
-__RCSID("$NetBSD: parse-config.c,v 1.2.4.1 2019/10/21 16:57:40 martin Exp $");
+__RCSID("$NetBSD: parse-config.c,v 1.2.4.2 2020/12/19 13:41:22 martin Exp $");
 
 /*-
  * Copyright (c) 2008, 2009 Joerg Sonnenberger <joerg%NetBSD.org@localhost>.
@@ -66,6 +66,7 @@
 const char *certs_packages;
 const char *certs_pkg_vulnerabilities;
 const char *check_eol = "yes";
+const char *check_os_version = "yes";
 const char *check_vulnerabilities;
 static const char *config_cache_connections;
 static const char *config_cache_connections_host;
@@ -100,6 +101,7 @@
        { "CERTIFICATE_CHAIN", &cert_chain_file },
        { "CHECK_LICENSE", &do_license_check },
        { "CHECK_END_OF_LIFE", &check_eol },
+       { "CHECK_OS_VERSION", &check_os_version },
        { "CHECK_VULNERABILITIES", &check_vulnerabilities },
        { "DEFAULT_ACCEPTABLE_LICENSES", &default_acceptable_licenses },
        { "GPG", &gpg_cmd },
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/lib/pkg_install.conf.5.in
--- a/external/bsd/pkg_install/dist/lib/pkg_install.conf.5.in   Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/lib/pkg_install.conf.5.in   Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: pkg_install.conf.5.in,v 1.3 2017/04/20 13:18:23 joerg Exp $
+.\"    $NetBSD: pkg_install.conf.5.in,v 1.3.4.1 2020/12/19 13:41:22 martin Exp $
 .\"
 .\" Copyright (c) 2008, 2009, 2012 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -93,6 +93,10 @@
 During vulnerability checks, consider packages that have reached end-of-life
 as vulnerable.
 This option is enabled by default.
+.It Dv CHECK_OS_VERSION
+If "no", pkg_add will not warn if the host OS version does not exactly match
+the OS version the package was built on.
+The default is "yes".
 .It Dv CHECK_OSABI
 If "no", osabi package does not check OS version.
 The default is "yes".
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/lib/pkgdb.c
--- a/external/bsd/pkg_install/dist/lib/pkgdb.c Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/lib/pkgdb.c Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pkgdb.c,v 1.2.4.1 2020/12/08 18:48:58 martin Exp $     */
+/*     $NetBSD: pkgdb.c,v 1.2.4.2 2020/12/19 13:41:22 martin Exp $     */
 
 #if HAVE_CONFIG_H
 #include "config.h"
@@ -7,7 +7,7 @@
 #if HAVE_SYS_CDEFS_H
 #include <sys/cdefs.h>
 #endif
-__RCSID("$NetBSD: pkgdb.c,v 1.2.4.1 2020/12/08 18:48:58 martin Exp $");
+__RCSID("$NetBSD: pkgdb.c,v 1.2.4.2 2020/12/19 13:41:22 martin Exp $");
 
 /*-
  * Copyright (c) 1999-2010 The NetBSD Foundation, Inc.
@@ -300,20 +300,32 @@
 const char *
 pkgdb_get_dir(void)
 {
-       /* Except for the return at this end, this code is for
-          migration from the previous location /var/db/pkg to the new
-          default (December 2020). */
+
+#ifdef NETBSD
+       /* 
+        * NetBSD upgrade case.
+        * NetBSD used to ship pkg_install with /var/db/pkg as
+        * the default. We support continuing to install to
+        * this location.
+        *
+        * This is NetBSD-specific because we can't assume that
+        * /var/db/pkg is pkgsrc-owned on other systems (OpenBSD,
+        * FreeBSD...)
+        *
+        * XXX: once postinstall is taught to automatically
+        * handle migration, we can deprecate this behaviour.
+        */
+
+#define PREVIOUS_LOG_DIR       "/var/db/pkg"
+       static char pkgdb_dir_previous[] = PREVIOUS_LOG_DIR;
 
        struct stat sb;
        if (strcmp(pkgdb_dir, DEF_LOG_DIR) == 0 &&
            stat(pkgdb_dir, &sb) == -1 && errno == ENOENT &&
-           stat("/var/db/pkg", &sb) == 0) {
-               errx(EXIT_FAILURE,
-                    "The default PKG_DBDIR has changed, but this installation still uses the old one.\n"
-                    "Please move the databases and re-run this command:\n"
-                    "\tmv /var/db/pkg " DEF_LOG_DIR "\n"
-                    "\tmv /var/db/pkg.refcount " DEF_LOG_DIR ".refcount");
+           stat(PREVIOUS_LOG_DIR, &sb) == 0) {
+               return pkgdb_dir_previous;
        }
+#endif
 
         return pkgdb_dir;
 }
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/lib/plist.c
--- a/external/bsd/pkg_install/dist/lib/plist.c Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/lib/plist.c Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: plist.c,v 1.2.4.1 2020/12/08 18:48:58 martin Exp $     */
+/*     $NetBSD: plist.c,v 1.2.4.2 2020/12/19 13:41:22 martin Exp $     */
 
 #if HAVE_CONFIG_H
 #include "config.h"
@@ -7,7 +7,7 @@
 #if HAVE_SYS_CDEFS_H
 #include <sys/cdefs.h>
 #endif
-__RCSID("$NetBSD: plist.c,v 1.2.4.1 2020/12/08 18:48:58 martin Exp $");
+__RCSID("$NetBSD: plist.c,v 1.2.4.2 2020/12/19 13:41:22 martin Exp $");
 
 /*
  * FreeBSD install - a package for the installation and maintainance
@@ -637,15 +637,16 @@
                                                                        fail = FAIL;
                                                                        goto pkgdb_cleanup;
                                                                }
-                                                       }
-                                                       memcpy(&buf[SymlinkHeaderLen], tmp2, cc);
-                                                       buf[SymlinkHeaderLen + cc] = 0x0;
-                                                       if (strcmp(buf, p->next->name) != 0) {
-                                                               printf("symlink %s is not same as recorded value, %s: %s\n",
-                                                                   buf, Force ? "deleting anyway" : "not deleting", tmp);
-                                                               if (!Force) {
-                                                                       fail = FAIL;
-                                                                       goto pkgdb_cleanup;
+                                                       } else {
+                                                               memcpy(&buf[SymlinkHeaderLen], tmp2, cc);
+                                                               buf[SymlinkHeaderLen + cc] = 0x0;
+                                                               if (strcmp(buf, p->next->name) != 0) {
+                                                                       printf("symlink %s is not same as recorded value, %s: %s\n",
+                                                                           buf, Force ? "deleting anyway" : "not deleting", tmp);
+                                                                       if (!Force) {
+                                                                               fail = FAIL;
+                                                                               goto pkgdb_cleanup;
+                                                                       }
                                                                }
                                                        }
                                                }
diff -r 880ce7d2821f -r 081f207b4ca1 external/bsd/pkg_install/dist/lib/version.h
--- a/external/bsd/pkg_install/dist/lib/version.h       Sat Dec 12 20:31:57 2020 +0000
+++ b/external/bsd/pkg_install/dist/lib/version.h       Sat Dec 19 13:41:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: version.h,v 1.11.4.2 2020/12/08 18:48:58 martin Exp $  */
+/*     $NetBSD: version.h,v 1.11.4.3 2020/12/19 13:41:22 martin Exp $  */
 
 /*
  * Copyright (c) 2001 Thomas Klausner.  All rights reserved.
@@ -27,6 +27,6 @@
 #ifndef _INST_LIB_VERSION_H_
 #define _INST_LIB_VERSION_H_
 
-#define PKGTOOLS_VERSION 20201205
+#define PKGTOOLS_VERSION 20201218
 
 #endif /* _INST_LIB_VERSION_H_ */



Home | Main Index | Thread Index | Old Index