external/bsd/pkg_install: sync with NetBSD

Needed for libarchive update.
This commit is contained in:
Sevan Janiyan 2018-11-06 01:28:05 +00:00
parent f238ccc5e5
commit a0e56cb627
64 changed files with 336 additions and 1043 deletions

View File

@ -11,7 +11,7 @@ CPPFLAGS+=-DHAVE_CONFIG_H -DNETBSD -DHAVE_SSL
CPPFLAGS+=-DSYSCONFDIR='"/etc"' CPPFLAGS+=-DSYSCONFDIR='"/etc"'
.else .else
CPPFLAGS+=-DSYSCONFDIR='"/usr/pkg/etc"' CPPFLAGS+=-DSYSCONFDIR='"/usr/pkg/etc"'
CPPFLAGS+=-DDEF_LOG_DIR='"/usr/pkg/var/db/pkg"' CPPFLAGS+=-DDEF_LOG_DIR='"/usr/pkg/pkgdb"'
CPPFLAGS+=-DOPSYS_NAME='"Minix"' CPPFLAGS+=-DOPSYS_NAME='"Minix"'
.endif # !defined(__MINIX) .endif # !defined(__MINIX)

View File

@ -1,4 +1,4 @@
/* $NetBSD: add.h,v 1.1.1.7 2011/02/18 22:32:27 aymeric Exp $ */ /* $NetBSD: add.h,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/* from FreeBSD Id: add.h,v 1.8 1997/02/22 16:09:15 peter Exp */ /* from FreeBSD Id: add.h,v 1.8 1997/02/22 16:09:15 peter Exp */

View File

@ -1,4 +1,4 @@
/* $NetBSD: main.c,v 1.1.1.10 2011/02/18 22:32:27 aymeric Exp $ */ /* $NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: main.c,v 1.1.1.10 2011/02/18 22:32:27 aymeric Exp $"); __RCSID("$NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* *
@ -33,20 +33,14 @@ __RCSID("$NetBSD: main.c,v 1.1.1.10 2011/02/18 22:32:27 aymeric Exp $");
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>
#endif #endif
#if HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#include "lib.h" #include "lib.h"
#include "add.h" #include "add.h"
static char Options[] = "AC:DIK:LP:RVW:fhm:np:t:Uuvw:"; static char Options[] = "AC:DIK:P:RVfhm:np:t:Uuv";
char *Destdir = NULL; char *Destdir = NULL;
char *OverrideMachine = NULL; char *OverrideMachine = NULL;
char *Prefix = NULL; char *Prefix = NULL;
char *View = NULL;
char *Viewbase = NULL;
Boolean NoView = FALSE;
Boolean NoInstall = FALSE; Boolean NoInstall = FALSE;
Boolean NoRecord = FALSE; Boolean NoRecord = FALSE;
Boolean Automatic = FALSE; Boolean Automatic = FALSE;
@ -65,10 +59,9 @@ int ReplaceSame = 0;
static void static void
usage(void) usage(void)
{ {
(void) fprintf(stderr, "%s\n%s\n%s\n%s\n", (void) fprintf(stderr, "%s\n%s\n%s\n",
"usage: pkg_add [-AfhILnRuVv] [-C config] [-P destdir] [-K pkg_dbdir]", "usage: pkg_add [-AfhInRuVv] [-C config] [-P destdir] [-K pkg_dbdir]",
" [-m machine] [-p prefix] [-s verification-type", " [-m machine] [-p prefix]",
" [-W viewbase] [-w view]\n",
" [[ftp|http]://[user[:password]@]host[:port]][/path/]pkg-name ..."); " [[ftp|http]://[user[:password]@]host[:port]][/path/]pkg-name ...");
exit(1); exit(1);
} }
@ -112,10 +105,6 @@ main(int argc, char **argv)
pkgdb_set_dir(optarg, 3); pkgdb_set_dir(optarg, 3);
break; break;
case 'L':
NoView = TRUE;
break;
case 'R': case 'R':
NoRecord = TRUE; NoRecord = TRUE;
break; break;
@ -150,14 +139,6 @@ main(int argc, char **argv)
Verbose = TRUE; Verbose = TRUE;
break; break;
case 'W':
Viewbase = optarg;
break;
case 'w':
View = optarg;
break;
case 'h': case 'h':
case '?': case '?':
default: default:
@ -178,7 +159,10 @@ main(int argc, char **argv)
free(pkgdbdir); free(pkgdbdir);
} }
#ifndef BOOTSTRAP
process_pkg_path(); process_pkg_path();
#endif
TAILQ_INIT(&pkgs); TAILQ_INIT(&pkgs);
if (argc == 0) { if (argc == 0) {
@ -187,6 +171,7 @@ main(int argc, char **argv)
usage(); usage();
} }
#ifndef BOOTSTRAP
if (strcasecmp(do_license_check, "no") == 0) if (strcasecmp(do_license_check, "no") == 0)
LicenseCheck = 0; LicenseCheck = 0;
else if (strcasecmp(do_license_check, "yes") == 0) else if (strcasecmp(do_license_check, "yes") == 0)
@ -199,6 +184,7 @@ main(int argc, char **argv)
if (LicenseCheck) if (LicenseCheck)
load_license_lists(); load_license_lists();
#endif
/* Get all the remaining package names, if any */ /* Get all the remaining package names, if any */
for (; argc > 0; --argc, ++argv) { for (; argc > 0; --argc, ++argv) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: perform.c,v 1.4 2013/04/20 15:29:22 wiz Exp $ */ /* $NetBSD: perform.c,v 1.5 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
@ -6,7 +6,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: perform.c,v 1.4 2013/04/20 15:29:22 wiz Exp $"); __RCSID("$NetBSD: perform.c,v 1.5 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2003 Grant Beattie <grant@NetBSD.org> * Copyright (c) 2003 Grant Beattie <grant@NetBSD.org>
@ -50,6 +50,7 @@ __RCSID("$NetBSD: perform.c,v 1.4 2013/04/20 15:29:22 wiz Exp $");
#if HAVE_FCNTL_H #if HAVE_FCNTL_H
#include <fcntl.h> #include <fcntl.h>
#endif #endif
#include <limits.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
@ -75,7 +76,6 @@ struct pkg_meta {
char *meta_install; char *meta_install;
char *meta_deinstall; char *meta_deinstall;
char *meta_preserve; char *meta_preserve;
char *meta_views;
char *meta_installed_info; char *meta_installed_info;
}; };
@ -121,7 +121,6 @@ static const struct pkg_meta_desc {
{ offsetof(struct pkg_meta, meta_size_pkg), SIZE_PKG_FNAME, 0, 0444 }, { offsetof(struct pkg_meta, meta_size_pkg), SIZE_PKG_FNAME, 0, 0444 },
{ offsetof(struct pkg_meta, meta_size_all), SIZE_ALL_FNAME, 0, 0444 }, { offsetof(struct pkg_meta, meta_size_all), SIZE_ALL_FNAME, 0, 0444 },
{ offsetof(struct pkg_meta, meta_preserve), PRESERVE_FNAME, 0, 0444 }, { offsetof(struct pkg_meta, meta_preserve), PRESERVE_FNAME, 0, 0444 },
{ offsetof(struct pkg_meta, meta_views), VIEWS_FNAME, 0, 0444 },
{ offsetof(struct pkg_meta, meta_required_by), REQUIRED_BY_FNAME, 0, 0644 }, { offsetof(struct pkg_meta, meta_required_by), REQUIRED_BY_FNAME, 0, 0644 },
{ offsetof(struct pkg_meta, meta_installed_info), INSTALLED_INFO_FNAME, 0, 0644 }, { offsetof(struct pkg_meta, meta_installed_info), INSTALLED_INFO_FNAME, 0, 0644 },
{ 0, NULL, 0, 0 }, { 0, NULL, 0, 0 },
@ -413,9 +412,6 @@ check_already_installed(struct pkg_task *pkg)
return 1; return 1;
} }
if (Force)
return 1;
/* We can only arrive here for explicitly requested packages. */ /* We can only arrive here for explicitly requested packages. */
if (!Automatic && is_automatic_installed(pkg->pkgname)) { if (!Automatic && is_automatic_installed(pkg->pkgname)) {
if (Fake || if (Fake ||
@ -832,8 +828,7 @@ extract_files(struct pkg_task *pkg)
out: out:
if (!NoRecord) if (!NoRecord)
pkgdb_close(); pkgdb_close();
archive_write_close(writer); archive_write_free(writer);
archive_write_finish(writer);
return r; return r;
} }
@ -912,7 +907,7 @@ check_platform(struct pkg_task *pkg)
if (OverrideMachine != NULL) if (OverrideMachine != NULL)
effective_arch = OverrideMachine; effective_arch = OverrideMachine;
else else
effective_arch = MACHINE_ARCH; effective_arch = PKGSRC_MACHINE_ARCH;
/* If either the OS or arch are different, bomb */ /* If either the OS or arch are different, bomb */
if (strcmp(OPSYS_NAME, pkg->buildinfo[BI_OPSYS]) || if (strcmp(OPSYS_NAME, pkg->buildinfo[BI_OPSYS]) ||
@ -1182,30 +1177,6 @@ check_dependencies(struct pkg_task *pkg)
return status; return status;
} }
/*
* If this package uses pkg_views, register it in the default view.
*/
static void
pkg_register_views(struct pkg_task *pkg)
{
if (Fake || NoView || pkg->meta_data.meta_views == NULL)
return;
if (Verbose) {
printf("%s/pkg_view -d %s %s%s %s%s %sadd %s\n",
BINDIR, pkgdb_get_dir(),
View ? "-w " : "", View ? View : "",
Viewbase ? "-W " : "", Viewbase ? Viewbase : "",
Verbose ? "-v " : "", pkg->pkgname);
}
fexec_skipempty(BINDIR "/pkg_view", "-d", pkgdb_get_dir(),
View ? "-w " : "", View ? View : "",
Viewbase ? "-W " : "", Viewbase ? Viewbase : "",
Verbose ? "-v " : "", "add", pkg->pkgname,
(void *)NULL);
}
static int static int
preserve_meta_data_file(struct pkg_task *pkg, const char *name) preserve_meta_data_file(struct pkg_task *pkg, const char *name)
{ {
@ -1275,6 +1246,9 @@ static int check_input(const char *line, size_t len)
static int static int
check_signature(struct pkg_task *pkg, int invalid_sig) check_signature(struct pkg_task *pkg, int invalid_sig)
{ {
#ifdef BOOTSTRAP
return 0;
#else
char *line; char *line;
size_t len; size_t len;
@ -1311,11 +1285,15 @@ check_signature(struct pkg_task *pkg, int invalid_sig)
} }
warnx("Unknown value of configuration variable VERIFIED_INSTALLATION"); warnx("Unknown value of configuration variable VERIFIED_INSTALLATION");
return 1; return 1;
#endif
} }
static int static int
check_vulnerable(struct pkg_task *pkg) check_vulnerable(struct pkg_task *pkg)
{ {
#ifdef BOOTSTRAP
return 0;
#else
static struct pkg_vulnerabilities *pv; static struct pkg_vulnerabilities *pv;
int require_check; int require_check;
char *line; char *line;
@ -1354,11 +1332,15 @@ check_vulnerable(struct pkg_task *pkg)
return 1; return 1;
} }
return 0; return 0;
#endif
} }
static int static int
check_license(struct pkg_task *pkg) check_license(struct pkg_task *pkg)
{ {
#ifdef BOOTSTRAP
return 0;
#else
if (LicenseCheck == 0) if (LicenseCheck == 0)
return 0; return 0;
@ -1382,6 +1364,7 @@ check_license(struct pkg_task *pkg)
warnx("Invalid LICENSE for package `%s'", pkg->pkgname); warnx("Invalid LICENSE for package `%s'", pkg->pkgname);
return 1; return 1;
} }
#endif
} }
/* /*
@ -1404,8 +1387,12 @@ pkg_do(const char *pkgpath, int mark_automatic, int top_level)
goto clean_find_archive; goto clean_find_archive;
} }
#ifndef BOOTSTRAP
invalid_sig = pkg_verify_signature(archive_name, &pkg->archive, &pkg->entry, invalid_sig = pkg_verify_signature(archive_name, &pkg->archive, &pkg->entry,
&pkg->pkgname); &pkg->pkgname);
#else
invalid_sig = 0;
#endif
free(archive_name); free(archive_name);
if (pkg->archive == NULL) if (pkg->archive == NULL)
@ -1436,12 +1423,7 @@ pkg_do(const char *pkgpath, int mark_automatic, int top_level)
if (pkg->meta_data.meta_mtree != NULL) if (pkg->meta_data.meta_mtree != NULL)
warnx("mtree specification in pkg `%s' ignored", pkg->pkgname); warnx("mtree specification in pkg `%s' ignored", pkg->pkgname);
if (pkg->meta_data.meta_views != NULL) { pkg->logdir = xasprintf("%s/%s", config_pkg_dbdir, pkg->pkgname);
pkg->logdir = xstrdup(pkg->prefix);
pkgdb_set_dir(dirname_of(pkg->logdir), 4);
} else {
pkg->logdir = xasprintf("%s/%s", config_pkg_dbdir, pkg->pkgname);
}
if (Destdir != NULL) if (Destdir != NULL)
pkg->install_logdir = xasprintf("%s/%s", Destdir, pkg->logdir); pkg->install_logdir = xasprintf("%s/%s", Destdir, pkg->logdir);
@ -1542,8 +1524,6 @@ pkg_do(const char *pkgpath, int mark_automatic, int top_level)
if (pkg->meta_data.meta_display != NULL) if (pkg->meta_data.meta_display != NULL)
fputs(pkg->meta_data.meta_display, stdout); fputs(pkg->meta_data.meta_display, stdout);
pkg_register_views(pkg);
status = 0; status = 0;
goto clean_memory; goto clean_memory;
@ -1559,6 +1539,7 @@ nuke_pkg:
nuke_pkgdb: nuke_pkgdb:
if (!Fake) { if (!Fake) {
(void) remove_files(pkg->install_logdir, "+*");
if (recursive_remove(pkg->install_logdir, 1)) if (recursive_remove(pkg->install_logdir, 1))
warn("Couldn't remove %s", pkg->install_logdir); warn("Couldn't remove %s", pkg->install_logdir);
free(pkg->install_logdir_real); free(pkg->install_logdir_real);
@ -1582,7 +1563,7 @@ clean_memory:
free_plist(&pkg->plist); free_plist(&pkg->plist);
free_meta_data(pkg); free_meta_data(pkg);
if (pkg->archive) if (pkg->archive)
archive_read_finish(pkg->archive); archive_read_free(pkg->archive);
free(pkg->other_version); free(pkg->other_version);
free(pkg->pkgname); free(pkg->pkgname);
clean_find_archive: clean_find_archive:

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_add.1,v 1.1.1.12 2011/02/18 22:32:28 aymeric Exp $ .\" $NetBSD: pkg_add.1,v 1.2 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" FreeBSD install - a package for the installation and maintenance .\" FreeBSD install - a package for the installation and maintenance
.\" of non-core utilities. .\" of non-core utilities.
@ -17,7 +17,7 @@
.\" .\"
.\" @(#)pkg_add.1 .\" @(#)pkg_add.1
.\" .\"
.Dd June 16, 2010 .Dd December 27, 2014
.Dt PKG_ADD 1 .Dt PKG_ADD 1
.Os .Os
.Sh NAME .Sh NAME
@ -25,14 +25,12 @@
.Nd a utility for installing and upgrading software package distributions .Nd a utility for installing and upgrading software package distributions
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl AfILnRUuVv .Op Fl AfInRUuVv
.Op Fl C Ar config .Op Fl C Ar config
.Op Fl K Ar pkg_dbdir .Op Fl K Ar pkg_dbdir
.Op Fl m Ar machine .Op Fl m Ar machine
.Op Fl P Ar destdir .Op Fl P Ar destdir
.Op Fl p Ar prefix .Op Fl p Ar prefix
.Op Fl W Ar viewbase
.Op Fl w Ar view
.Ar Oo Oo Li ftp|http Oc Ns Li :// Ns Oo Ar user Oc Ns \ .Ar Oo Oo Li ftp|http Oc Ns Li :// Ns Oo Ar user Oc Ns \
Oo Li \&: Ns Ar password Oc \ Oo Li \&: Ns Ar password Oc \
Ns Li @ Oc Ns Ar host Ns Oo Li \&: Ns Ar port Oc Ns \ Ns Li @ Oc Ns Ar host Ns Oo Li \&: Ns Ar port Oc Ns \
@ -142,8 +140,6 @@ Override the value of the
.Dv PKG_DBDIR .Dv PKG_DBDIR
configuration option with the value configuration option with the value
.Ar pkg_dbdir . .Ar pkg_dbdir .
.It Fl L
Don't add the package to any views after installation.
.It Fl m .It Fl m
Override the machine architecture returned by uname with Override the machine architecture returned by uname with
.Ar machine . .Ar machine .
@ -179,14 +175,6 @@ See below for a more detailed description of the process.
Print version number and exit. Print version number and exit.
.It Fl v .It Fl v
Turn on verbose output. Turn on verbose output.
.It Fl W Ar viewbase
Passed down to
.Xr pkg_view 1
for managed views.
.It Fl w Ar view
Passed down to
.Xr pkg_view 1
for managed views.
.El .El
.Pp .Pp
One or more One or more
@ -337,11 +325,6 @@ Any package dependencies are recorded in the other packages'
.Pa +REQUIRED_BY .Pa +REQUIRED_BY
file. file.
.It .It
If the package is a depoted package, then add it to the registered
by calling
.Xr pkg_view 1
accordingly.
.It
Finally, if we were upgrading a package, any Finally, if we were upgrading a package, any
.Pa +REQUIRED_BY .Pa +REQUIRED_BY
file that was moved aside before upgrading was started is now moved file that was moved aside before upgrading was started is now moved
@ -386,9 +369,6 @@ are prefixed with
See See
.Xr pkg_install.conf 5 .Xr pkg_install.conf 5
for options, that can also be specified using the environment. for options, that can also be specified using the environment.
Packages using views are also affected by the environment variables
documented for
.Xr pkg_view 1 .
.Sh EXAMPLES .Sh EXAMPLES
In all cases, In all cases,
.Nm .Nm

View File

@ -1,4 +1,4 @@
.\" $NetBSD: audit-packages.8,v 1.1.1.1 2010/04/23 20:54:06 joerg Exp $ .\" $NetBSD: audit-packages.8,v 1.2 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" Copyright (c) 2010 The NetBSD Foundation, Inc. .\" Copyright (c) 2010 The NetBSD Foundation, Inc.
.\" All rights reserved. .\" All rights reserved.

View File

@ -1,4 +1,4 @@
/* $NetBSD: audit.c,v 1.1.1.9 2011/02/18 22:32:28 aymeric Exp $ */ /* $NetBSD: audit.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: audit.c,v 1.1.1.9 2011/02/18 22:32:28 aymeric Exp $"); __RCSID("$NetBSD: audit.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>.

View File

@ -1,4 +1,4 @@
/* $NetBSD: check.c,v 1.1.1.4 2010/01/30 21:33:23 joerg Exp $ */ /* $NetBSD: check.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: check.c,v 1.1.1.4 2010/01/30 21:33:23 joerg Exp $"); __RCSID("$NetBSD: check.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 1999-2008 The NetBSD Foundation, Inc. * Copyright (c) 1999-2008 The NetBSD Foundation, Inc.

View File

@ -1,4 +1,4 @@
.\" $NetBSD: download-vulnerability-list.8,v 1.1.1.1 2010/04/23 20:54:06 joerg Exp $ .\" $NetBSD: download-vulnerability-list.8,v 1.2 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" Copyright (c) 2010 The NetBSD Foundation, Inc. .\" Copyright (c) 2010 The NetBSD Foundation, Inc.
.\" All rights reserved. .\" All rights reserved.

View File

@ -1,4 +1,4 @@
/* $NetBSD: main.c,v 1.1.1.15 2010/04/23 20:54:07 joerg Exp $ */ /* $NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: main.c,v 1.1.1.15 2010/04/23 20:54:07 joerg Exp $"); __RCSID("$NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 1999-2009 The NetBSD Foundation, Inc. * Copyright (c) 1999-2009 The NetBSD Foundation, Inc.
@ -104,7 +104,6 @@ usage(void)
" rebuild-tree - rebuild +REQUIRED_BY files from forward deps\n" " rebuild-tree - rebuild +REQUIRED_BY files from forward deps\n"
" check [pkg ...] - check md5 checksum of installed files\n" " check [pkg ...] - check md5 checksum of installed files\n"
" add pkg ... - add pkg files to database\n" " add pkg ... - add pkg files to database\n"
" delete pkg ... - delete file entries for pkg in database\n"
" set variable=value pkg ... - set installation variable for package\n" " set variable=value pkg ... - set installation variable for package\n"
" unset variable pkg ... - unset installation variable for package\n" " unset variable pkg ... - unset installation variable for package\n"
" lsall /path/to/pkgpattern - list all pkgs matching the pattern\n" " lsall /path/to/pkgpattern - list all pkgs matching the pattern\n"
@ -220,15 +219,6 @@ add_pkg(const char *pkgdir, void *vp)
return 0; return 0;
} }
static void
delete1pkg(const char *pkgdir)
{
if (!pkgdb_open(ReadWrite))
err(EXIT_FAILURE, "cannot open pkgdb");
(void) pkgdb_remove_pkg(pkgdir);
pkgdb_close();
}
static void static void
rebuild(void) rebuild(void)
{ {
@ -248,7 +238,7 @@ rebuild(void)
iterate_pkg_db(add_pkg, &count); iterate_pkg_db(add_pkg, &count);
printf("\n"); printf("\n");
printf("Stored %" PRIzu " file%s and %zu explicit director%s" printf("Stored %" PRIzu " file%s and %" PRIzu " explicit director%s"
" from %"PRIzu " package%s in %s.\n", " from %"PRIzu " package%s in %s.\n",
count.files, count.files == 1 ? "" : "s", count.files, count.files == 1 ? "" : "s",
count.directories, count.directories == 1 ? "y" : "ies", count.directories, count.directories == 1 ? "y" : "ies",
@ -525,12 +515,6 @@ main(int argc, char *argv[])
for (++argv; *argv != NULL; ++argv) for (++argv; *argv != NULL; ++argv)
add_pkg(*argv, &count); add_pkg(*argv, &count);
} else if (strcasecmp(argv[0], "delete") == 0) {
argv++; /* "delete" */
while (*argv != NULL) {
delete1pkg(*argv);
argv++;
}
} else if (strcasecmp(argv[0], "set") == 0) { } else if (strcasecmp(argv[0], "set") == 0) {
argv++; /* "set" */ argv++; /* "set" */
set_unset_variable(argv, FALSE); set_unset_variable(argv, FALSE);
@ -624,8 +608,8 @@ main(int argc, char *argv[])
if (pkg_full_signature_check(archive_name, &pkg)) if (pkg_full_signature_check(archive_name, &pkg))
rc = 1; rc = 1;
free(archive_name); free(archive_name);
if (!pkg) if (pkg != NULL)
archive_read_finish(pkg); archive_read_free(pkg);
} }
return rc; return rc;
} else if (strcasecmp(argv[0], "x509-sign-package") == 0) { } else if (strcasecmp(argv[0], "x509-sign-package") == 0) {

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_admin.1,v 1.1.1.12 2013/04/20 15:26:52 wiz Exp $ .\" $NetBSD: pkg_admin.1,v 1.2 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" Copyright (c) 1999-2010 The NetBSD Foundation, Inc. .\" Copyright (c) 1999-2010 The NetBSD Foundation, Inc.
.\" All rights reserved. .\" All rights reserved.
@ -34,7 +34,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE. .\" POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.Dd December 14, 2012 .Dd December 27, 2014
.Dt PKG_ADMIN 1 .Dt PKG_ADMIN 1
.Os .Os
.Sh NAME .Sh NAME
@ -106,13 +106,6 @@ Be more verbose.
.Pp .Pp
The following commands are supported: The following commands are supported:
.Bl -tag -width indent .Bl -tag -width indent
.It Cm add Ar pkg ...
For each listed package, write the absolute pathnames of the files listed in
its
.Pa +CONTENTS
file together with the package they belong to into the package database.
This should be used only by
.Xr pkg_view 1 .
.It Cm audit Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg Oc ... .It Cm audit Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg Oc ...
Check the listed installed packages for vulnerabilities. Check the listed installed packages for vulnerabilities.
If no package is given, check all installed packages. If no package is given, check all installed packages.
@ -187,11 +180,6 @@ otherwise it exits with error.
Print the current value of Print the current value of
.Ar variable .Ar variable
as used after parsing the configuration file. as used after parsing the configuration file.
.It Cm delete Ar pkg ...
For each listed package, remove all file entries in the package database that
belong to the package.
This should be used only by
.Xr pkg_view 1 .
.It Cm dump .It Cm dump
Dump the contents of the package database, similar to Dump the contents of the package database, similar to
.Cm pkg_info -F . .Cm pkg_info -F .
@ -310,7 +298,6 @@ for options, that can also be specified using the environment.
.Xr pkg_create 1 , .Xr pkg_create 1 ,
.Xr pkg_delete 1 , .Xr pkg_delete 1 ,
.Xr pkg_info 1 , .Xr pkg_info 1 ,
.Xr pkg_view 1 ,
.Xr pkg_install.conf 5 , .Xr pkg_install.conf 5 ,
.Xr pkgsrc 7 .Xr pkgsrc 7
.Sh HISTORY .Sh HISTORY

View File

@ -1,114 +0,0 @@
.\" $NetBSD: bpm.1,v 1.5 2014/03/18 18:20:36 riastradh Exp $ */
.\"
.\" Copyright (c) 2003,2009 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Alistair Crooks (agc@NetBSD.org)
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd August 3, 2007
.Dt BPM 1
.Os
.Sh NAME
.Nm bpm
.Nd menu-based binary package manager
.Sh SYNOPSIS
.Nm
.Op Fl hnVv
.Op Fl b Ar baseURL
.Op Fl m Ar machine
.Op Fl r Ar release
.Op Fl w Ar seconds
.Sh DESCRIPTION
The
.Nm
command is used to locate and install binary packages from any
reachable URL.
.Pp
The following command-line options are supported:
.Bl -tag -width indent
.It Fl b Ar baseURL
Specify a base URL from which to download binary packages.
The default URL is
.Pa ftp://ftp.NetBSD.org/pub/pkgsrc/packages .
.It Fl h
Print a help message and then exit.
.It Fl m Ar machine
Use
.Ar machine
as the machine architecture to be used, instead of that returned by
.Xr uname 1 .
.It Fl n
Don't actually execute the commands to add the package.
.It Fl r Ar release
Use
.Ar release
as the operating system release to be used, instead of that returned by
.Xr uname 1 .
.It Fl V
Print version number and exit.
.It Fl v
Turn on verbose output.
.It Fl w Ar seconds
The number of
.Ar seconds
to wait after displaying an error message and returning to
normal menu operations.
.El
.Pp
.Nm
provides a menu-based binary package manager for
.Nx .
.Nm
first connects to the URL using
.Xr ftp 1 ,
and displays a list of categories for which binary packages exist.
If no categories are displayed, it could
be that the machine architecture or operating system release string
have been wrongly interpreted, and that it will be necessary to override
this values by means of the command line options.
Within a category, a list of packages will be displayed, and by selecting
one using the number assigned to it, the package will be downloaded
automatically, and installed, using the
.Xr pkg_add 1
utility.
It is also possible to change the category currently being examined,
and to quit from the utility, simply by selecting the appropriate choices
on the menu.
.Sh ENVIRONMENT
The environment variables which govern the behavior of
.Xr ftp 1
and
.Xr pkg_add 1
are valid for
.Nm .
.Sh SEE ALSO
.Xr ftp 1 ,
.Xr pkg_add 1 ,
.Xr uname 1
.Sh AUTHORS
The
.Nm
utility was written by
.An Alistair Crooks Aq Mt agc@NetBSD.org .

View File

@ -1,220 +0,0 @@
#! /bin/sh
#
# $NetBSD: bpm.sh.in,v 1.3 2012/02/21 18:36:16 wiz Exp $
#
# Copyright (c) 2003,2009 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by Alistair Crooks (agc@NetBSD.org)
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
die()
{
echo >&2 "$@"
exit 1
}
check_prog()
{
_var="$1"; _name="$2"
eval _tmp=\"\$$_var\"
if [ "x$_tmp" != "x" ]; then
# Variable is already set (by the user, for example)
return 0
fi
for _d in `echo $PATH | tr ':' ' '`; do
if [ -x "$_d/$_name" ]; then
# Program found
eval $_var=\""$_d/$_name"\"
return 1
fi
done
die "$_name not found in path."
}
check_prog awkprog awk
check_prog echoprog echo
check_prog ftpprog ftp
check_prog idprog id
check_prog moreprog more
check_prog pkg_addprog pkg_add
check_prog rmprog rm
check_prog sedprog sed
check_prog suprog su
check_prog unameprog uname
# print version and exit
version() {
$pkg_addprog -V
exit 0
}
# temporary files
tmpcategories=/tmp/categories.$$
tmppackages=/tmp/packages.$$
# some base parameters
base=ftp://ftp.NetBSD.org/pub/pkgsrc/packages
release=`${unameprog} -r | ${sedprog} -e 's/_STABLE//'`
machine=`${unameprog} -m`
sleepsecs=1
doit=""
while [ $# -gt 0 ]; do
case $1 in
-V) version ;;
-b) base=$2; shift ;;
-h) ${echoprog} "$0 [-b BaseURL] [-h] [-m machine] [-n] [-r release] [-v] [-w secs]"; exit 0;;
-m) machine=$2; shift ;;
-n) doit=":" ;;
-r) release=$2; shift ;;
-v) set -x ;;
-w) sleepsecs=$2; shift ;;
*) break ;;
esac
shift
done
category=""
while true; do
# if we don't have a packages file, then we need to choose a category
case "$category" in
"") # get possible categories
if [ ! -f $tmpcategories ]; then
${echoprog} "Downloading package categories from ${base}..."
${echoprog} "** QUIT" > $tmpcategories
${echoprog} ls | ${ftpprog} ${base}/${release}/${machine}/ 2>/dev/null | \
${awkprog} 'NF == 9 { if ($9 != "All") print $9 }' >> $tmpcategories
fi
# check for bad release numbering
# - it usually shows with 0 categories being displayed
${awkprog} 'END { if (NR == 1) { print "\n\n\n*** No categories found - is the OS release set properly? ***\n\n\n" } }' < $tmpcategories
# display possible categories
${awkprog} '{ print NR ". " $0 }' < $tmpcategories | ${moreprog}
# read a category number from the user
${echoprog} -n "Please type the category number: "
read choice
# validate user's choice
case "$choice" in
0|1) ${rmprog} -f $tmpcategories $tmppackages; exit 0 ;;
[2-9]|[0-9]*) category=`${awkprog} 'NR == '$choice' { print }' < $tmpcategories` ;;
*) category="" ;;
esac
case "$category" in
"") ${echoprog} "No such category \"$choice\""
sleep $sleepsecs
continue
;;
esac
# get possible packages
${echoprog} ""
${echoprog} "Downloading package names from ${base}/${category}..."
${echoprog} "** QUIT" > $tmppackages
${echoprog} "** Change category" >> $tmppackages
${echoprog} ls | ${ftpprog} ${base}/${release}/${machine}/${category}/ 2>/dev/null \
| ${awkprog} 'NF == 11 { print $9 }' >> $tmppackages
;;
esac
# display possible packages
${awkprog} '{ print NR ". " $0 }' < $tmppackages | ${moreprog}
# read a package number from the user
${echoprog} -n "Please type the package number: "
read choice
# validate user's choice
case "$choice" in
1) ${rmprog} -f $tmppackages $tmpcategories; exit 0 ;;
2) category=""; continue ;; # no package to install - choose new category
[3-9]|[0-9]*) package=`${awkprog} 'NR == '$choice' { print }' < $tmppackages` ;;
*) package="" ;;
esac
case "$package" in
"") ${echoprog} "No such package \"$choice\""
sleep $sleepsecs
continue
;;
esac
# check it's not already installed
pkgbase=`${echoprog} ${package} | ${sedprog} -e 's|-[0-9].*||'`
installed=`pkg_info -e $pkgbase`
case "$installed" in
"") ;;
*) ${echoprog} "$package selected, but $installed already installed"
sleep $sleepsecs
continue
;;
esac
# Tell people what we're doing
${echoprog} ""
${echoprog} "Adding package ${base}/${release}/${machine}/${category}/${package}"
cmd="env PKG_PATH=${base}/${release}/${machine}/All ${pkg_addprog} ${package}"
# check if we need to become root for this
if [ `${idprog} -u` != 0 ]; then
${echoprog} "Becoming root@`/bin/hostname` to add a binary package"
${echoprog} -n "`${echoprog} ${suprog} | $awkprog '{ print $1 }'` "
$doit ${suprog} root -c "$cmd"
success=$?
else
$doit $cmd
success=$?
fi
# give feedback after adding the package
case $success in
0) ${echoprog} "$package successfully installed" ;;
*) ${echoprog} "Problems when installing $package - please try again" ;;
esac
${echoprog} ""
${echoprog} -n "[Q]uit, [C]hange category, [I]nstall another package: "
read choice
case "$choice" in
[Qq]) break ;;
[Cc]) category="" ;;
[Ii]) ;;
esac
done
${rmprog} -f $tmpcategories $tmppackages
exit 0

View File

@ -1,4 +1,4 @@
/* $NetBSD: build.c,v 1.1.1.8 2010/04/23 20:54:07 joerg Exp $ */ /* $NetBSD: build.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: build.c,v 1.1.1.8 2010/04/23 20:54:07 joerg Exp $"); __RCSID("$NetBSD: build.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -93,7 +93,6 @@ static struct memory_file *build_info_file;
static struct memory_file *size_pkg_file; static struct memory_file *size_pkg_file;
static struct memory_file *size_all_file; static struct memory_file *size_all_file;
static struct memory_file *preserve_file; static struct memory_file *preserve_file;
static struct memory_file *views_file;
static void static void
write_meta_file(struct memory_file *file, struct archive *archive) write_meta_file(struct memory_file *file, struct archive *archive)
@ -234,6 +233,7 @@ make_dist(const char *pkg, const char *suffix, const package_t *plist)
archive = archive_write_new(); archive = archive_write_new();
archive_write_set_format_pax_restricted(archive); archive_write_set_format_pax_restricted(archive);
archive_write_set_options(archive, "hdrcharset=BINARY");
if ((resolver = archive_entry_linkresolver_new()) == NULL) if ((resolver = archive_entry_linkresolver_new()) == NULL)
errx(2, "cannot create link resolver"); errx(2, "cannot create link resolver");
archive_entry_linkresolver_set_strategy(resolver, archive_entry_linkresolver_set_strategy(resolver,
@ -251,20 +251,18 @@ make_dist(const char *pkg, const char *suffix, const package_t *plist)
} }
if (strcmp(CompressionType, "bzip2") == 0) if (strcmp(CompressionType, "bzip2") == 0)
archive_write_set_compression_bzip2(archive); archive_write_add_filter_bzip2(archive);
else if (strcmp(CompressionType, "gzip") == 0) else if (strcmp(CompressionType, "gzip") == 0)
archive_write_set_compression_gzip(archive); archive_write_add_filter_gzip(archive);
else if (strcmp(CompressionType, "xz") == 0) else if (strcmp(CompressionType, "xz") == 0)
archive_write_set_compression_xz(archive); archive_write_add_filter_xz(archive);
else if (strcmp(CompressionType, "none") == 0) else if (strcmp(CompressionType, "none") != 0)
archive_write_set_compression_none(archive);
else
errx(1, "Unspported compression type for -F: %s", errx(1, "Unspported compression type for -F: %s",
CompressionType); CompressionType);
archive_name = xasprintf("%s.%s", pkg, suffix); archive_name = xasprintf("%s.%s", pkg, suffix);
if (archive_write_open_file(archive, archive_name)) if (archive_write_open_filename(archive, archive_name))
errx(2, "cannot create archive: %s", archive_error_string(archive)); errx(2, "cannot create archive: %s", archive_error_string(archive));
free(archive_name); free(archive_name);
@ -292,8 +290,6 @@ make_dist(const char *pkg, const char *suffix, const package_t *plist)
write_meta_file(size_all_file, archive); write_meta_file(size_all_file, archive);
if (Preserve) if (Preserve)
write_meta_file(preserve_file, archive); write_meta_file(preserve_file, archive);
if (create_views)
write_meta_file(views_file, archive);
initial_cwd = getcwd(NULL, 0); initial_cwd = getcwd(NULL, 0);
@ -327,9 +323,8 @@ make_dist(const char *pkg, const char *suffix, const package_t *plist)
archive_entry_linkresolver_free(resolver); archive_entry_linkresolver_free(resolver);
if (archive_write_close(archive)) if (archive_write_free(archive))
errx(2, "cannot finish archive: %s", archive_error_string(archive)); errx(2, "cannot finish archive: %s", archive_error_string(archive));
archive_write_finish(archive);
free(initial_cwd); free(initial_cwd);
} }
@ -407,8 +402,6 @@ pkg_build(const char *pkg, const char *full_pkg, const char *suffix,
preserve_file = load_and_add(plist, Preserve, preserve_file = load_and_add(plist, Preserve,
PRESERVE_FNAME, 0444); PRESERVE_FNAME, 0444);
} }
if (create_views)
views_file = make_and_add(plist, VIEWS_FNAME, xstrdup(""), 0444);
/* Finally, write out the packing list */ /* Finally, write out the packing list */
stringify_plist(plist, &plist_buf, &plist_len, realprefix); stringify_plist(plist, &plist_buf, &plist_len, realprefix);

View File

@ -1,4 +1,4 @@
/* $NetBSD: create.h,v 1.1.1.5 2009/11/05 18:39:02 joerg Exp $ */ /* $NetBSD: create.h,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/* from FreeBSD Id: create.h,v 1.13 1997/10/08 07:46:19 charnier Exp */ /* from FreeBSD Id: create.h,v 1.13 1997/10/08 07:46:19 charnier Exp */
@ -57,8 +57,6 @@ extern char *DefaultGroup;
extern const char *CompressionType; extern const char *CompressionType;
extern int PlistOnly; extern int PlistOnly;
extern int RelativeLinks; extern int RelativeLinks;
extern int update_pkgdb;
extern int create_views;
void check_list(package_t *, const char *); void check_list(package_t *, const char *);
void copy_plist(char *, package_t *); void copy_plist(char *, package_t *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: main.c,v 1.1.1.7 2010/01/30 21:33:31 joerg Exp $ */ /* $NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: main.c,v 1.1.1.7 2010/01/30 21:33:31 joerg Exp $"); __RCSID("$NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance
@ -26,7 +26,8 @@ __RCSID("$NetBSD: main.c,v 1.1.1.7 2010/01/30 21:33:31 joerg Exp $");
#include "lib.h" #include "lib.h"
#include "create.h" #include "create.h"
static const char Options[] = "B:C:D:EF:I:K:L:OP:S:T:UVb:c:d:f:g:i:k:ln:p:r:s:u:v"; /* -U is silently ignored, it used to inhibit pkgdb changes. */
static const char Options[] = "B:C:D:F:I:K:L:OP:S:T:UVb:c:d:f:g:i:k:ln:p:r:s:u:v";
char *Prefix = NULL; char *Prefix = NULL;
char *Comment = NULL; char *Comment = NULL;
@ -47,8 +48,6 @@ char *DefaultOwner = NULL;
char *DefaultGroup = NULL; char *DefaultGroup = NULL;
char *realprefix = NULL; char *realprefix = NULL;
const char *CompressionType = NULL; const char *CompressionType = NULL;
int update_pkgdb = 1;
int create_views = 0;
int PlistOnly = 0; int PlistOnly = 0;
int RelativeLinks = 0; int RelativeLinks = 0;
Boolean File2Pkg = FALSE; Boolean File2Pkg = FALSE;
@ -57,7 +56,7 @@ static void
usage(void) usage(void)
{ {
fprintf(stderr, fprintf(stderr,
"usage: pkg_create [-ElOUVv] [-B build-info-file] [-b build-version-file]\n" "usage: pkg_create [-lOUVv] [-B build-info-file] [-b build-version-file]\n"
" [-C cpkgs] [-D displayfile] [-F compression] \n" " [-C cpkgs] [-D displayfile] [-F compression] \n"
" [-I realprefix] [-i iscript]\n" " [-I realprefix] [-i iscript]\n"
" [-K pkg_dbdir] [-k dscript]\n" " [-K pkg_dbdir] [-k dscript]\n"
@ -81,10 +80,6 @@ main(int argc, char **argv)
Verbose = TRUE; Verbose = TRUE;
break; break;
case 'E':
create_views = 1;
break;
case 'F': case 'F':
CompressionType = optarg; CompressionType = optarg;
break; break;
@ -98,7 +93,6 @@ main(int argc, char **argv)
break; break;
case 'U': case 'U':
update_pkgdb = 0;
break; break;
case 'p': case 'p':
@ -209,7 +203,7 @@ main(int argc, char **argv)
return 0; return 0;
if (Verbose) { if (Verbose) {
if (PlistOnly) if (PlistOnly)
warnx("package registration failed"); warnx("PLIST adjustment failed");
else else
warnx("package creation failed"); warnx("package creation failed");
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: perform.c,v 1.1.1.5 2009/11/05 18:39:02 joerg Exp $ */ /* $NetBSD: perform.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: perform.c,v 1.1.1.5 2009/11/05 18:39:02 joerg Exp $"); __RCSID("$NetBSD: perform.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance
@ -225,12 +225,7 @@ pkg_perform(const char *pkg)
write_plist(&plist, stdout, realprefix); write_plist(&plist, stdout, realprefix);
retval = TRUE; retval = TRUE;
} else { } else {
#ifdef BOOTSTRAP
warnx("Package building is not supported in bootstrap mode");
retval = FALSE;
#else
retval = pkg_build(pkg, full_pkg, suffix, &plist); retval = pkg_build(pkg, full_pkg, suffix, &plist);
#endif
} }
/* Cleanup */ /* Cleanup */

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_create.1,v 1.2 2015/10/10 10:08:12 mbalmer Exp $ .\" $NetBSD: pkg_create.1,v 1.3 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" FreeBSD install - a package for the installation and maintenance .\" FreeBSD install - a package for the installation and maintenance
.\" of non-core utilities. .\" of non-core utilities.
@ -24,7 +24,7 @@
.\" [jkh] Took John's changes back and made some additional extensions for .\" [jkh] Took John's changes back and made some additional extensions for
.\" better integration with FreeBSD's new ports collection. .\" better integration with FreeBSD's new ports collection.
.\" .\"
.Dd October 10, 2015 .Dd December 27, 2014
.Dt PKG_CREATE 1 .Dt PKG_CREATE 1
.Os .Os
.Sh NAME .Sh NAME
@ -32,70 +32,28 @@
.Nd a utility for creating software package distributions .Nd a utility for creating software package distributions
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl ElOUVv .Op Fl lOVv
.Bk -words
.Op Fl B Ar build-info-file .Op Fl B Ar build-info-file
.Ek
.Bk -words
.Op Fl b Ar build-version-file .Op Fl b Ar build-version-file
.Ek
.Bk -words
.Op Fl C Ar cpkgs .Op Fl C Ar cpkgs
.Ek
.Bk -words
.Op Fl D Ar displayfile .Op Fl D Ar displayfile
.Ek
.Bk -words
.Op Fl F Ar compression .Op Fl F Ar compression
.Ek
.Bk -words
.Op Fl g Ar group .Op Fl g Ar group
.Ek
.Bk -words
.Op Fl I Ar realprefix .Op Fl I Ar realprefix
.Ek
.Bk -words
.Op Fl i Ar iscript .Op Fl i Ar iscript
.Ek
.Bk -words
.Op Fl K Ar pkg_dbdir .Op Fl K Ar pkg_dbdir
.Ek
.Bk -words
.Op Fl k Ar dscript .Op Fl k Ar dscript
.Ek
.Bk -words
.Op Fl n Ar preserve-file .Op Fl n Ar preserve-file
.Ek
.Bk -words
.Op Fl P Ar dpkgs .Op Fl P Ar dpkgs
.Ek
.Bk -words
.Op Fl T Ar buildpkgs
.Ek
.Bk -words
.Op Fl p Ar prefix .Op Fl p Ar prefix
.Ek
.Bk -words
.Op Fl S Ar size-all-file .Op Fl S Ar size-all-file
.Ek
.Bk -words
.Op Fl s Ar size-pkg-file .Op Fl s Ar size-pkg-file
.Ek .Op Fl T Ar buildpkgs
.Bk -words
.Op Fl t Ar template .Op Fl t Ar template
.Ek
.Bk -words
.Op Fl u Ar owner .Op Fl u Ar owner
.Ek
.Bk -words
.Fl c Ar comment .Fl c Ar comment
.Ek
.Bk -words
.Fl d Ar description .Fl d Ar description
.Ek
.Bk -words
.Fl f Ar packlist .Fl f Ar packlist
.Ek
.Ar pkg-name .Ar pkg-name
.Sh DESCRIPTION .Sh DESCRIPTION
The The
@ -158,8 +116,6 @@ Fetch long description for package from file
or, if preceded by or, if preceded by
.Cm - , .Cm - ,
the argument itself. the argument itself.
.It Fl E
Add an empty views file to the package.
.It Fl F Ar compression .It Fl F Ar compression
Use Use
.Ar compression .Ar compression
@ -287,8 +243,6 @@ Be sure to leave some number of
characters for characters for
.Xr mktemp 3 .Xr mktemp 3
to fill in with a unique ID. to fill in with a unique ID.
.It Fl U
Do not update the package file database with any file information.
.It Fl u Ar owner .It Fl u Ar owner
Make Make
.Ar owner .Ar owner
@ -494,12 +448,11 @@ command first appeared in
.Sh AUTHORS .Sh AUTHORS
.Bl -tag -width indent -compact .Bl -tag -width indent -compact
.It Jordan Hubbard .It Jordan Hubbard
did most of the work. most of the work
.It John Kohl .It John Kohl
refined it for refined it for
.Nx . .Nx
.It Hubert Feyrer .It Hubert Feyrer
added
.Nx .Nx
wildcard dependency processing, pkgdb, pkg size recording etc. wildcard dependency processing, pkgdb, pkg size recording etc.
.El .El

View File

@ -1,4 +1,4 @@
/* $NetBSD: pl.c,v 1.1.1.4 2009/11/05 18:39:03 joerg Exp $ */ /* $NetBSD: pl.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: pl.c,v 1.1.1.4 2009/11/05 18:39:03 joerg Exp $"); __RCSID("$NetBSD: pl.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance
@ -89,10 +89,6 @@ check_list(package_t *pkg, const char *PkgName)
char *pkgname = NULL; char *pkgname = NULL;
int cc; int cc;
/* Open Package Database for writing */
if (update_pkgdb && !pkgdb_open(ReadWrite))
err(EXIT_FAILURE, "can't open pkgdb");
for (p = pkg->head; p; p = p->next) { for (p = pkg->head; p; p = p->next) {
switch (p->type) { switch (p->type) {
case PLIST_CWD: case PLIST_CWD:
@ -109,38 +105,10 @@ check_list(package_t *pkg, const char *PkgName)
errx(2, "@pkgdir without preceding @cwd found"); errx(2, "@pkgdir without preceding @cwd found");
if (pkgname == NULL) if (pkgname == NULL)
errx(2, "@pkgdir without preceding @name found"); errx(2, "@pkgdir without preceding @name found");
if (update_pkgdb) {
add_pkgdir(pkgname, cwd, p->name);
/* mkdir_p(cwd, p->name); */
}
break; break;
case PLIST_FILE: case PLIST_FILE:
/*
* pkgdb handling - usually, we enter files
* into the pkgdb as soon as they hit the disk,
* but as they are present before pkg_create
* starts, it's ok to do this somewhere here
*/
if (cwd == NULL) if (cwd == NULL)
errx(2, "file without preceding @cwd found"); errx(2, "file without preceding @cwd found");
if (update_pkgdb) {
char *s, t[MaxPathSize];
(void) snprintf(t, sizeof(t), "%s%s%s",
cwd,
(strcmp(cwd, "/") == 0) ? "" : "/",
p->name);
s = pkgdb_retrieve(t);
if (s && PlistOnly)
warnx("Overwriting %s - "
"pkg %s bogus/conflicting?", t, s);
else {
pkgdb_store(t, PkgName);
}
}
/* prepend DESTDIR if set? - HF */
(void) snprintf(name, sizeof(name), "%s%s%s", (void) snprintf(name, sizeof(name), "%s%s%s",
cwd, cwd,
(strcmp(cwd, "/") == 0) ? "" : "/", (strcmp(cwd, "/") == 0) ? "" : "/",
@ -204,8 +172,4 @@ check_list(package_t *pkg, const char *PkgName)
break; break;
} }
} }
if (update_pkgdb) {
pkgdb_close();
}
} }

View File

@ -39,27 +39,18 @@
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>
#endif #endif
#include <fcntl.h>
#if HAVE_PWD_H #if HAVE_PWD_H
#include <grp.h> #include <grp.h>
#endif #endif
#include <limits.h>
#if HAVE_PWD_H #if HAVE_PWD_H
#include <pwd.h> #include <pwd.h>
#endif #endif
#if HAVE_STDLIB_H
#include <stdlib.h> #include <stdlib.h>
#endif
#if HAVE_STRING_H
#include <string.h> #include <string.h>
#endif
#if HAVE_TIME_H
#include <time.h> #include <time.h>
#endif
#if HAVE_UNISTD_H
#include <unistd.h> #include <unistd.h>
#endif
#if HAVE_FCNTL_H
#include <fcntl.h>
#endif
#include "lib.h" #include "lib.h"
#include "create.h" #include "create.h"

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_delete.1,v 1.1.1.8 2010/04/23 20:54:08 joerg Exp $ .\" $NetBSD: pkg_delete.1,v 1.2 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" FreeBSD install - a package for the installation and maintenance .\" FreeBSD install - a package for the installation and maintenance
.\" of non-core utilities. .\" of non-core utilities.
@ -17,7 +17,7 @@
.\" .\"
.\" from FreeBSD: @(#)pkg_delete.1 .\" from FreeBSD: @(#)pkg_delete.1
.\" .\"
.Dd January 20, 2010 .Dd December 27, 2014
.Dt PKG_DELETE 1 .Dt PKG_DELETE 1
.Os .Os
.Sh NAME .Sh NAME
@ -221,12 +221,6 @@ script is called as:
.Bd -filled -offset indent -compact .Bd -filled -offset indent -compact
.Cm deinstall .Cm deinstall
.Aq Ar pkg-name .Aq Ar pkg-name
.Ar VIEW-DEINSTALL
.Ed
before removing the package from a view, and as:
.Bd -filled -offset indent -compact
.Cm deinstall
.Aq Ar pkg-name
.Ar DEINSTALL .Ar DEINSTALL
.Ed .Ed
before deleting all files and as: before deleting all files and as:
@ -237,8 +231,7 @@ before deleting all files and as:
.Ed .Ed
after deleting them. after deleting them.
Passing the keywords Passing the keywords
.Ar VIEW-DEINSTALL , .Ar DEINSTALL
.Ar DEINSTALL ,
and and
.Ar POST-DEINSTALL .Ar POST-DEINSTALL
lets you potentially write only one program/script that handles all lets you potentially write only one program/script that handles all

View File

@ -34,7 +34,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: pkg_delete.c,v 1.1.1.8 2012/02/19 17:46:46 tron Exp $"); __RCSID("$NetBSD: pkg_delete.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>
@ -397,59 +397,15 @@ find_preserve_pkgs(lpkg_head_t *pkgs)
return 0; return 0;
} }
/*
* Remove package from view. This is calling pkg_deinstall again.
*/
static int
remove_pkg_from_view(const char *pkg)
{
char line[MaxPathSize], *fname, *eol;
FILE *fp;
fname = pkgdb_pkg_file(pkg, VIEWS_FNAME);
if (isemptyfile(fname)) {
free(fname);
return 0;
}
if ((fp = fopen(fname, "r")) == NULL) {
warn("Unable to open `%s', aborting", fname);
free(fname);
return 1;
}
free(fname);
while (fgets(line, sizeof(line), fp) != NULL) {
if ((eol = strrchr(line, '\n')) != NULL)
*eol = '\0';
if (Verbose || Fake)
printf("Deleting package `%s' instance from `%s' view\n",
pkg, line);
if (Fake)
continue;
if (fexec_skipempty(BINDIR "/pkg_delete", "-K", line,
Fake ? "-n" : "",
(Force > 1) ? "-f" : "",
(Force > 0) ? "-f" : "",
pkg, NULL) != 0) {
warnx("Unable to delete package `%s' from view `%s'",
pkg, line);
fclose(fp);
return 1;
}
}
fclose(fp);
return 0;
}
/* /*
* Run the +DEINSTALL script. Depending on whether this is * Run the +DEINSTALL script. Depending on whether this is
* a depoted package and whether this pre- or post-deinstall phase, * pre- or post-deinstall phase, different arguments are passed down.
* different arguments are passed down.
*/ */
static int static int
run_deinstall_script(const char *pkg, int do_postdeinstall) run_deinstall_script(const char *pkg, int do_postdeinstall)
{ {
const char *target, *text; const char *target, *text;
char *fname, *fname2, *pkgdir; char *fname, *pkgdir;
int rv; int rv;
fname = pkgdb_pkg_file(pkg, DEINSTALL_FNAME); fname = pkgdb_pkg_file(pkg, DEINSTALL_FNAME);
@ -458,23 +414,13 @@ run_deinstall_script(const char *pkg, int do_postdeinstall)
return 0; return 0;
} }
fname2 = pkgdb_pkg_file(pkg, DEPOT_FNAME); if (do_postdeinstall) {
if (fexists(fname2)) {
if (do_postdeinstall) {
free(fname);
free(fname2);
return 0;
}
target = "VIEW-DEINSTALL";
text = "view deinstall";
} else if (do_postdeinstall) {
target = "POST-DEINSTALL"; target = "POST-DEINSTALL";
text = "post-deinstall"; text = "post-deinstall";
} else { } else {
target = "DEINSTALL"; target = "DEINSTALL";
text = "deinstall"; text = "deinstall";
} }
free(fname2);
if (Fake) { if (Fake) {
printf("Would execute %s script with argument %s now\n", printf("Would execute %s script with argument %s now\n",
@ -540,57 +486,6 @@ remove_line(const char *fname, const char *fname_tmp, const char *text)
return rv; return rv;
} }
/*
* Unregister the package from the depot it is registered in.
*/
static int
remove_pkg_from_depot(const char *pkg)
{
FILE *fp;
char line[MaxPathSize], *eol;
char *fname, *fname2;
int rv;
fname = pkgdb_pkg_file(pkg, DEPOT_FNAME);
if (isemptyfile(fname)) {
free(fname);
return 0;
}
if (Verbose)
printf("Attempting to remove the `%s' registration "
"on package `%s'\n", fname, pkg);
if (Fake) {
free(fname);
return 1;
}
if ((fp = fopen(fname, "r")) == NULL) {
warn("Unable to open `%s' file", fname);
free(fname);
return 1;
}
if (fgets(line, sizeof(line), fp) == NULL) {
fclose(fp);
warnx("Empty depot file `%s'", fname);
free(fname);
return 1;
}
if ((eol = strrchr(line, '\n')) != NULL)
*eol = '\0';
fclose(fp);
free(fname);
fname = pkgdb_pkg_file(pkg, VIEWS_FNAME);
fname2 = pkgdb_pkg_file(pkg, VIEWS_FNAME_TMP);
rv = remove_line(fname, fname2, line);
free(fname2);
free(fname);
return rv;
}
/* /*
* remove_depend is used as iterator function below. * remove_depend is used as iterator function below.
* The passed-in package name should be removed from the * The passed-in package name should be removed from the
@ -627,7 +522,7 @@ remove_pkg(const char *pkg)
char *fname, *pkgdir; char *fname, *pkgdir;
package_t plist; package_t plist;
plist_t *p; plist_t *p;
int is_depoted_pkg, rv, late_error; int rv, late_error;
if (pkgdb_update_only) if (pkgdb_update_only)
return pkgdb_remove_pkg(pkg) ? 0 : 1; return pkgdb_remove_pkg(pkg) ? 0 : 1;
@ -640,15 +535,6 @@ remove_pkg(const char *pkg)
} }
free(fname); free(fname);
/* +REQUIRED_BY and +PRESERVE already checked */
if (remove_pkg_from_view(pkg))
return 1;
/*
* The views related code has bad error handling, if e.g.
* the deinstall script fails, the package remains unregistered.
*/
fname = pkgdb_pkg_file(pkg, CONTENTS_FNAME); fname = pkgdb_pkg_file(pkg, CONTENTS_FNAME);
if ((fp = fopen(fname, "r")) == NULL) { if ((fp = fopen(fname, "r")) == NULL) {
warnx("Failed to open `%s'", fname); warnx("Failed to open `%s'", fname);
@ -712,37 +598,23 @@ remove_pkg(const char *pkg)
* processing. * processing.
*/ */
fname = pkgdb_pkg_file(pkg, DEPOT_FNAME); for (p = plist.head; p; p = p->next) {
if (fexists(fname)) { if (p->type != PLIST_PKGDEP)
late_error |= remove_pkg_from_depot(pkg); continue;
/* XXX error checking */ if (Verbose)
} else { printf("Attempting to remove dependency "
for (p = plist.head; p; p = p->next) { "on package `%s'\n", p->name);
if (p->type != PLIST_PKGDEP) if (Fake)
continue; continue;
if (Verbose) match_installed_pkgs(p->name, remove_depend,
printf("Attempting to remove dependency " __UNCONST(pkg));
"on package `%s'\n", p->name);
if (Fake)
continue;
match_installed_pkgs(p->name, remove_depend,
__UNCONST(pkg));
}
} }
free(fname);
free_plist(&plist); free_plist(&plist);
if (!no_deinstall && !unregister_only) if (!no_deinstall && !unregister_only)
late_error |= run_deinstall_script(pkg, 1); late_error |= run_deinstall_script(pkg, 1);
fname = pkgdb_pkg_file(pkg, VIEWS_FNAME);
if (fexists(fname))
is_depoted_pkg = TRUE;
else
is_depoted_pkg = FALSE;
free(fname);
if (Fake) if (Fake)
return 0; return 0;
@ -755,8 +627,6 @@ remove_pkg(const char *pkg)
rv = 1; rv = 1;
if (isemptydir(pkgdir)&& rmdir(pkgdir) == 0) if (isemptydir(pkgdir)&& rmdir(pkgdir) == 0)
rv = 0; rv = 0;
else if (is_depoted_pkg)
warnx("Depot directory `%s' is not empty", pkgdir);
else if (!Force) else if (!Force)
warnx("Couldn't remove package directory in `%s'", pkgdir); warnx("Couldn't remove package directory in `%s'", pkgdir);
else if (recursive_remove(pkgdir, 1)) else if (recursive_remove(pkgdir, 1))

View File

@ -1,4 +1,4 @@
/* $NetBSD: info.h,v 1.1.1.5 2009/10/07 13:19:42 joerg Exp $ */ /* $NetBSD: info.h,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/* from FreeBSD Id: info.h,v 1.10 1997/02/22 16:09:40 peter Exp */ /* from FreeBSD Id: info.h,v 1.10 1997/02/22 16:09:40 peter Exp */
@ -68,7 +68,6 @@ struct pkg_meta {
char *meta_install; char *meta_install;
char *meta_deinstall; char *meta_deinstall;
char *meta_preserve; char *meta_preserve;
char *meta_views;
char *meta_installed_info; char *meta_installed_info;
int is_installed; int is_installed;
}; };

View File

@ -1,4 +1,4 @@
/* $NetBSD: main.c,v 1.1.1.9 2013/04/20 15:26:53 wiz Exp $ */ /* $NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: main.c,v 1.1.1.9 2013/04/20 15:26:53 wiz Exp $"); __RCSID("$NetBSD: main.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* *

View File

@ -1,4 +1,4 @@
/* $NetBSD: perform.c,v 1.1.1.13 2010/02/20 04:41:55 joerg Exp $ */ /* $NetBSD: perform.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,13 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
#if HAVE_SYS_QUEUE_H __RCSID("$NetBSD: perform.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#include <sys/queue.h>
#endif
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
__RCSID("$NetBSD: perform.c,v 1.1.1.13 2010/02/20 04:41:55 joerg Exp $");
/*- /*-
* Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -73,6 +67,12 @@ __RCSID("$NetBSD: perform.c,v 1.1.1.13 2010/02/20 04:41:55 joerg Exp $");
#if HAVE_SYS_STAT_H #if HAVE_SYS_STAT_H
#include <sys/stat.h> #include <sys/stat.h>
#endif #endif
#if HAVE_SYS_QUEUE_H
#include <sys/queue.h>
#endif
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#ifndef BOOTSTRAP #ifndef BOOTSTRAP
#include <archive.h> #include <archive.h>
@ -81,22 +81,13 @@ __RCSID("$NetBSD: perform.c,v 1.1.1.13 2010/02/20 04:41:55 joerg Exp $");
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>
#endif #endif
#if HAVE_ERRNO_H
#include <errno.h>
#endif
#if HAVE_FCNTL_H
#include <fcntl.h>
#endif
#if HAVE_SIGNAL_H
#include <signal.h>
#endif
#if HAVE_DIRENT_H
#include <dirent.h>
#endif
#if HAVE_CTYPE_H
#include <ctype.h> #include <ctype.h>
#endif #include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stddef.h> #include <stddef.h>
#include <signal.h>
#define LOAD_CONTENTS (1 << 0) #define LOAD_CONTENTS (1 << 0)
#define LOAD_COMMENT (1 << 1) #define LOAD_COMMENT (1 << 1)
@ -110,9 +101,8 @@ __RCSID("$NetBSD: perform.c,v 1.1.1.13 2010/02/20 04:41:55 joerg Exp $");
#define LOAD_SIZE_PKG (1 << 9) #define LOAD_SIZE_PKG (1 << 9)
#define LOAD_SIZE_ALL (1 << 10) #define LOAD_SIZE_ALL (1 << 10)
#define LOAD_PRESERVE (1 << 11) #define LOAD_PRESERVE (1 << 11)
#define LOAD_VIEWS (1 << 12) #define LOAD_REQUIRED_BY (1 << 12)
#define LOAD_REQUIRED_BY (1 << 13) #define LOAD_INSTALLED_INFO (1 << 13)
#define LOAD_INSTALLED_INFO (1 << 14)
static const struct pkg_meta_desc { static const struct pkg_meta_desc {
size_t entry_offset; size_t entry_offset;
@ -144,8 +134,6 @@ static const struct pkg_meta_desc {
LOAD_SIZE_ALL, 0 }, LOAD_SIZE_ALL, 0 },
{ offsetof(struct pkg_meta, meta_preserve), PRESERVE_FNAME, { offsetof(struct pkg_meta, meta_preserve), PRESERVE_FNAME,
LOAD_PRESERVE, 0 }, LOAD_PRESERVE, 0 },
{ offsetof(struct pkg_meta, meta_views), VIEWS_FNAME,
LOAD_VIEWS, 0 },
{ offsetof(struct pkg_meta, meta_required_by), REQUIRED_BY_FNAME, { offsetof(struct pkg_meta, meta_required_by), REQUIRED_BY_FNAME,
LOAD_REQUIRED_BY, 0 }, LOAD_REQUIRED_BY, 0 },
{ offsetof(struct pkg_meta, meta_installed_info), INSTALLED_INFO_FNAME, { offsetof(struct pkg_meta, meta_installed_info), INSTALLED_INFO_FNAME,
@ -361,7 +349,7 @@ pkg_do(const char *pkg)
free(pkgname); free(pkgname);
meta = read_meta_data_from_archive(archive, entry); meta = read_meta_data_from_archive(archive, entry);
archive_read_finish(archive); archive_read_free(archive);
if (!IS_URL(pkg)) if (!IS_URL(pkg))
binpkgfile = pkg; binpkgfile = pkg;
#endif #endif

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_info.1,v 1.2 2015/04/28 09:48:30 prlw1 Exp $ .\" $NetBSD: pkg_info.1,v 1.3 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" FreeBSD install - a package for the installation and maintenance .\" FreeBSD install - a package for the installation and maintenance
.\" of non-core utilities. .\" of non-core utilities.
@ -17,7 +17,7 @@
.\" .\"
.\" @(#)pkg_info.1 .\" @(#)pkg_info.1
.\" .\"
.Dd December 14, 2012 .Dd January 11, 2015
.Dt PKG_INFO 1 .Dt PKG_INFO 1
.Os .Os
.Sh NAME .Sh NAME
@ -226,7 +226,7 @@ The filename is resolved to a package name using the package database.
The filename must be absolute, as in the output of The filename must be absolute, as in the output of
.Dl pkg_info -aF . .Dl pkg_info -aF .
For example, For example,
.Dl pkg_info -eF /path/to/file .Dl pkg_info -Fe /path/to/file
can be used to display the package the given file belongs to, and can be used to display the package the given file belongs to, and
.Dl pkg_info -LF /path/to/file .Dl pkg_info -LF /path/to/file
can be used to display all files belonging to the package the given can be used to display all files belonging to the package the given

View File

@ -1,4 +1,4 @@
/* $NetBSD: show.c,v 1.3 2012/02/21 18:36:16 wiz Exp $ */ /* $NetBSD: show.c,v 1.4 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: show.c,v 1.3 2012/02/21 18:36:16 wiz Exp $"); __RCSID("$NetBSD: show.c,v 1.4 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance

View File

@ -1,4 +1,4 @@
/* $NetBSD: automatic.c,v 1.1.1.2 2009/02/02 20:44:05 joerg Exp $ */ /* $NetBSD: automatic.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2005 The NetBSD Foundation, Inc. * Copyright (c) 2005 The NetBSD Foundation, Inc.
@ -39,7 +39,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: automatic.c,v 1.1.1.2 2009/02/02 20:44:05 joerg Exp $"); __RCSID("$NetBSD: automatic.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_ASSERT_H #if HAVE_ASSERT_H
#include <assert.h> #include <assert.h>

View File

@ -15,8 +15,8 @@
/* Define to 1 if you have the <err.h> header file. */ /* Define to 1 if you have the <err.h> header file. */
#undef HAVE_ERR_H #undef HAVE_ERR_H
/* Define to 1 if you have the <fnctl.h> header file. */ /* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FNCTL_H #undef HAVE_FCNTL_H
/* Define to 1 if you have the <fnmatch.h> header file. */ /* Define to 1 if you have the <fnmatch.h> header file. */
#undef HAVE_FNMATCH_H #undef HAVE_FNMATCH_H
@ -72,9 +72,6 @@
/* Define to 1 if you have the <sys/ioctl.h> header file. */ /* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H #undef HAVE_SYS_IOCTL_H
/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define to 1 if you have the <sys/queue.h> header file. */ /* Define to 1 if you have the <sys/queue.h> header file. */
#undef HAVE_SYS_QUEUE_H #undef HAVE_SYS_QUEUE_H
@ -147,6 +144,17 @@
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
#define below would cause a syntax error. */ #define below would cause a syntax error. */

View File

@ -1,4 +1,4 @@
/* $NetBSD: conflicts.c,v 1.1.1.4 2010/01/30 21:33:43 joerg Exp $ */ /* $NetBSD: conflicts.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2007 Roland Illig <rillig@NetBSD.org>. * Copyright (c) 2007 Roland Illig <rillig@NetBSD.org>.
@ -48,7 +48,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: conflicts.c,v 1.1.1.4 2010/01/30 21:33:43 joerg Exp $"); __RCSID("$NetBSD: conflicts.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: defs.h,v 1.3 2012/02/21 18:36:17 wiz Exp $ */ /* $NetBSD: defs.h,v 1.5 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 1999,2000,2009 The NetBSD Foundation, Inc. * Copyright (c) 1999,2000,2009 The NetBSD Foundation, Inc.
@ -38,6 +38,9 @@
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>
#endif #endif
#if HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#if HAVE_STDLIB_H #if HAVE_STDLIB_H
#include <stdlib.h> #include <stdlib.h>
#endif #endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: dewey.c,v 1.3 2009/03/08 14:53:16 joerg Exp $ */ /* $NetBSD: dewey.c,v 1.4 2017/04/20 13:18:23 joerg Exp $ */
/* /*
* Copyright © 2002 Alistair G. Crooks. All rights reserved. * Copyright © 2002 Alistair G. Crooks. All rights reserved.

View File

@ -1,4 +1,4 @@
/* $NetBSD: dewey.h,v 1.1.1.1 2008/09/30 19:00:27 joerg Exp $ */ /* $NetBSD: dewey.h,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#ifndef _INST_LIB_DEWEY_H_ #ifndef _INST_LIB_DEWEY_H_
#define _INST_LIB_DEWEY_H_ #define _INST_LIB_DEWEY_H_

View File

@ -1,4 +1,4 @@
/* $NetBSD: fexec.c,v 1.1.1.3 2009/08/06 16:55:26 joerg Exp $ */ /* $NetBSD: fexec.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2003 The NetBSD Foundation, Inc. * Copyright (c) 2003 The NetBSD Foundation, Inc.
@ -59,7 +59,7 @@
#include "lib.h" #include "lib.h"
__RCSID("$NetBSD: fexec.c,v 1.1.1.3 2009/08/06 16:55:26 joerg Exp $"); __RCSID("$NetBSD: fexec.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
static int vfcexec(const char *, int, const char *, va_list); static int vfcexec(const char *, int, const char *, va_list);

View File

@ -1,4 +1,4 @@
/* $NetBSD: file.c,v 1.1.1.6 2011/02/18 22:32:30 aymeric Exp $ */ /* $NetBSD: file.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,13 +7,10 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
#if HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#if HAVE_SYS_QUEUE_H #if HAVE_SYS_QUEUE_H
#include <sys/queue.h> #include <sys/queue.h>
#endif #endif
__RCSID("$NetBSD: file.c,v 1.1.1.6 2011/02/18 22:32:30 aymeric Exp $"); __RCSID("$NetBSD: file.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance

View File

@ -1,4 +1,4 @@
/* $NetBSD: global.c,v 1.1.1.2 2009/02/02 20:44:06 joerg Exp $ */ /* $NetBSD: global.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: global.c,v 1.1.1.2 2009/02/02 20:44:06 joerg Exp $"); __RCSID("$NetBSD: global.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance

View File

@ -1,4 +1,4 @@
/* $NetBSD: gpgsig.c,v 1.1.1.2 2009/08/06 16:55:27 joerg Exp $ */ /* $NetBSD: gpgsig.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
@ -7,7 +7,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: gpgsig.c,v 1.1.1.2 2009/08/06 16:55:27 joerg Exp $"); __RCSID("$NetBSD: gpgsig.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -50,106 +50,48 @@ __RCSID("$NetBSD: gpgsig.c,v 1.1.1.2 2009/08/06 16:55:27 joerg Exp $");
#include <stdlib.h> #include <stdlib.h>
#endif #endif
#include <netpgp/verify.h>
#include "lib.h" #include "lib.h"
static void
verify_signature(const char *input, size_t input_len, const char *keyring,
const char *detached_signature)
{
const char *argv[8], **argvp;
pid_t child;
int fd[2], status;
if (pipe(fd) == -1)
err(EXIT_FAILURE, "cannot create input pipes");
child = vfork();
if (child == -1)
err(EXIT_FAILURE, "cannot fork GPG process");
if (child == 0) {
close(fd[1]);
close(STDIN_FILENO);
if (dup2(fd[0], STDIN_FILENO) == -1) {
static const char err_msg[] =
"cannot redirect stdin of GPG process\n";
write(STDERR_FILENO, err_msg, sizeof(err_msg) - 1);
_exit(255);
}
close(fd[0]);
argvp = argv;
*argvp++ = gpg_cmd;
*argvp++ = "--verify";
if (keyring != NULL) {
*argvp++ = "--no-default-keyring";
*argvp++ = "--keyring";
*argvp++ = keyring;
}
if (detached_signature != NULL)
*argvp++ = detached_signature;
*argvp++ = "-";
*argvp = NULL;
execvp(gpg_cmd, __UNCONST(argv));
_exit(255);
}
close(fd[0]);
if (write(fd[1], input, input_len) != (ssize_t)input_len)
errx(EXIT_FAILURE, "Short read from GPG");
close(fd[1]);
waitpid(child, &status, 0);
if (status)
errx(EXIT_FAILURE, "GPG could not verify the signature");
}
int int
inline_gpg_verify(const char *content, size_t len, const char *keyring) gpg_verify(const char *content, size_t len, const char *keyring,
const char *sig, size_t sig_len)
{ {
verify_signature(content, len, keyring, NULL); pgpv_t *pgp;
pgpv_cursor_t *cursor;
static const char hdr1[] = "-----BEGIN PGP SIGNED MESSAGE-----\n";
static const char hdr2[] = "Hash: SHA512\n\n";
ssize_t buflen;
char *allocated_buf;
const char *buf;
return 0; /*
} * If there is a detached signature we need to construct a format that
* netpgp can parse, otherwise use as-is.
int */
detached_gpg_verify(const char *content, size_t len, if (sig_len) {
const char *signature, size_t signature_len, const char *keyring) buf = allocated_buf = xasprintf("%s%s%s%s", hdr1, hdr2, content, sig);
{ buflen = strlen(buf);
int fd; } else {
const char *tmpdir; buf = content;
char *tempsig; allocated_buf = NULL;
ssize_t ret; buflen = len;
if (gpg_cmd == NULL) {
warnx("GPG variable not set, failing signature check");
return -1;
} }
if ((tmpdir = getenv("TMPDIR")) == NULL) pgp = pgpv_new();
tmpdir = "/tmp"; cursor = pgpv_new_cursor();
tempsig = xasprintf("%s/pkg_install.XXXXXX", tmpdir);
fd = mkstemp(tempsig); if (!pgpv_read_pubring(pgp, keyring, -1))
if (fd == -1) { err(EXIT_FAILURE, "cannot read keyring");
warnx("Creating temporary file for GPG signature failed");
return -1;
}
while (signature_len) { if (!pgpv_verify(cursor, pgp, buf, buflen))
ret = write(fd, signature, signature_len); errx(EXIT_FAILURE, "unable to verify signature: %s",
if (ret == -1) pgpv_get_cursor_str(cursor, "why"));
err(EXIT_FAILURE, "Write to GPG failed");
if (ret == 0)
errx(EXIT_FAILURE, "Short write to GPG");
signature_len -= ret;
signature += ret;
}
verify_signature(content, len, keyring, tempsig); pgpv_close(pgp);
unlink(tempsig); free(allocated_buf);
close(fd);
free(tempsig);
return 0; return 0;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: iterate.c,v 1.1.1.4 2010/01/30 21:33:47 joerg Exp $ */ /* $NetBSD: iterate.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.

View File

@ -1,4 +1,4 @@
/* $NetBSD: lib.h,v 1.7 2014/01/07 02:15:27 joerg Exp $ */ /* $NetBSD: lib.h,v 1.8 2017/04/20 13:18:23 joerg Exp $ */
/* from FreeBSD Id: lib.h,v 1.25 1997/10/08 07:48:03 charnier Exp */ /* from FreeBSD Id: lib.h,v 1.25 1997/10/08 07:48:03 charnier Exp */
@ -29,9 +29,6 @@
#include "config.h" #include "config.h"
#endif #endif
#include <nbcompat.h> #include <nbcompat.h>
#if HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#if HAVE_SYS_STAT_H #if HAVE_SYS_STAT_H
#include <sys/stat.h> #include <sys/stat.h>
#endif #endif
@ -116,9 +113,6 @@ enum {
#define SIZE_PKG_FNAME "+SIZE_PKG" #define SIZE_PKG_FNAME "+SIZE_PKG"
#define SIZE_ALL_FNAME "+SIZE_ALL" #define SIZE_ALL_FNAME "+SIZE_ALL"
#define PRESERVE_FNAME "+PRESERVE" #define PRESERVE_FNAME "+PRESERVE"
#define VIEWS_FNAME "+VIEWS"
#define VIEWS_FNAME_TMP "+VIEWS.tmp"
#define DEPOT_FNAME "+DEPOT"
/* The names of special variables */ /* The names of special variables */
#define AUTOMATIC_VARNAME "automatic" #define AUTOMATIC_VARNAME "automatic"
@ -322,6 +316,7 @@ int has_pkgdir(const char *);
struct archive; struct archive;
struct archive_entry; struct archive_entry;
struct archive *prepare_archive(void);
struct archive *open_archive(const char *, char **); struct archive *open_archive(const char *, char **);
struct archive *find_archive(const char *, int, char **); struct archive *find_archive(const char *, int, char **);
void process_pkg_path(void); void process_pkg_path(void);
@ -363,7 +358,6 @@ const char *pkgdb_get_dir(void);
* 1 config file * 1 config file
* 2 environment * 2 environment
* 3 command line * 3 command line
* 4 destdir/views reset
*/ */
void pkgdb_set_dir(const char *, int); void pkgdb_set_dir(const char *, int);
char *pkgdb_pkg_dir(const char *); char *pkgdb_pkg_dir(const char *);
@ -404,9 +398,7 @@ int easy_pkcs7_sign(const char *, size_t, char **, size_t *, const char *,
const char *); const char *);
#endif #endif
int inline_gpg_verify(const char *, size_t, const char *); int gpg_verify(const char *, size_t, const char *, const char *, size_t);
int detached_gpg_verify(const char *, size_t, const char *, size_t,
const char *);
int detached_gpg_sign(const char *, size_t, char **, size_t *, const char *, int detached_gpg_sign(const char *, size_t, char **, size_t *, const char *,
const char *); const char *);
@ -421,7 +413,12 @@ char *xstrdup(const char *);
void *xrealloc(void *, size_t); void *xrealloc(void *, size_t);
void *xcalloc(size_t, size_t); void *xcalloc(size_t, size_t);
void *xmalloc(size_t); void *xmalloc(size_t);
char *xasprintf(const char *, ...) __printflike(1, 2); #if defined(__GNUC__) && __GNUC__ >= 2
char *xasprintf(const char *, ...)
__attribute__((__format__(__printf__, 1, 2)));
#else
char *xasprintf(const char *, ...);
#endif
/* Externs */ /* Externs */
extern Boolean Verbose; extern Boolean Verbose;

View File

@ -1,4 +1,4 @@
/* $NetBSD: license.c,v 1.4 2013/04/20 15:29:23 wiz Exp $ */ /* $NetBSD: license.c,v 1.5 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2009 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2009 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -51,35 +51,48 @@ const char *default_acceptable_licenses =
"artistic artistic-2.0 " "artistic artistic-2.0 "
"boost-license " "boost-license "
"cc-by-sa-v3.0 " "cc-by-sa-v3.0 "
"cc0-1.0-universal "
"cddl-1.0 " "cddl-1.0 "
"cecill-2.1 "
"cpl-1.0 " "cpl-1.0 "
"epl-v1.0 " "epl-v1.0 "
"eupl-v1.1 "
"gfsl "
"gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3 " "gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3 "
"gnu-gpl-v1 " "gnu-gpl-v1 "
"gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1 " "gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1 "
"gnu-gpl-v3 gnu-lgpl-v3 " "gnu-gpl-v3 gnu-lgpl-v3 "
"ibm-public-license-1.0 " "hpnd "
"info-zip "
"ipafont " "ipafont "
"ipl-1.0 "
"isc " "isc "
"lppl-1.3c " "lppl-1.0 lppl-1.2 lppl-1.3c "
"lucent " "lucent "
"miros " "miros "
"mit " "mit "
"mpl-1.0 mpl-1.1 mpl-2.0 " "mpl-1.0 mpl-1.1 mpl-2.0 "
"mplusfont " "mplusfont "
"ofl-v1.0 ofl-v1.1 " "ofl-v1.0 ofl-v1.1 "
"openssl "
"original-bsd modified-bsd 2-clause-bsd " "original-bsd modified-bsd 2-clause-bsd "
"paratype "
"php " "php "
"png-license " "png-license "
"postgresql-license " "postgresql-license "
"public-domain " "public-domain "
"python-software-foundation " "python-software-foundation "
"qpl-v1.0 " "qpl-v1.0 "
"sgi-free-software-b-v2.0 "
"sissl-1.1 "
"sleepycat-public " "sleepycat-public "
"unicode "
"unlicense " "unlicense "
"vera-ttf-license "
"w3c "
"x11 " "x11 "
"zlib " "zlib "
"zpl"; "zpl-2.0 zpl-2.1";
#ifdef DEBUG #ifdef DEBUG
static size_t hash_collisions; static size_t hash_collisions;

View File

@ -1,4 +1,4 @@
/* $NetBSD: lpkg.c,v 1.1.1.2 2009/02/02 20:44:06 joerg Exp $ */ /* $NetBSD: lpkg.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/* /*
* Copyright (c) 1999 Christian E. Hopps * Copyright (c) 1999 Christian E. Hopps

View File

@ -1,4 +1,4 @@
/* $NetBSD: opattern.c,v 1.1.1.3 2012/02/19 17:46:47 tron Exp $ */ /* $NetBSD: opattern.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: opattern.c,v 1.1.1.3 2012/02/19 17:46:47 tron Exp $"); __RCSID("$NetBSD: opattern.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance

View File

@ -1,4 +1,4 @@
/* $NetBSD: parse-config.c,v 1.1.1.11 2010/06/26 00:14:31 joerg Exp $ */ /* $NetBSD: parse-config.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: parse-config.c,v 1.1.1.11 2010/06/26 00:14:31 joerg Exp $"); __RCSID("$NetBSD: parse-config.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2008, 2009 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008, 2009 Joerg Sonnenberger <joerg@NetBSD.org>.

View File

@ -1,4 +1,4 @@
/* $NetBSD: pkcs7.c,v 1.1.1.4 2009/08/06 16:55:27 joerg Exp $ */ /* $NetBSD: pkcs7.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
@ -7,7 +7,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: pkcs7.c,v 1.1.1.4 2009/08/06 16:55:27 joerg Exp $"); __RCSID("$NetBSD: pkcs7.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2004, 2008 The NetBSD Foundation, Inc. * Copyright (c) 2004, 2008 The NetBSD Foundation, Inc.

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_install.conf.5.in,v 1.2 2015/04/28 09:48:30 prlw1 Exp $ .\" $NetBSD: pkg_install.conf.5.in,v 1.3 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" Copyright (c) 2008, 2009, 2012 The NetBSD Foundation, Inc. .\" Copyright (c) 2008, 2009, 2012 The NetBSD Foundation, Inc.
.\" All rights reserved. .\" All rights reserved.
@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE. .\" POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.Dd February 22, 2012 .Dd October 28, 2014
.Dt PKG_INSTALL.CONF 5 .Dt PKG_INSTALL.CONF 5
.Os .Os
.Sh NAME .Sh NAME
@ -93,6 +93,9 @@ Missing license conditions are considered an error.
During vulnerability checks, consider packages that have reached end-of-life During vulnerability checks, consider packages that have reached end-of-life
as vulnerable. as vulnerable.
This option is enabled by default. This option is enabled by default.
.It Dv CHECK_OSABI
If "no", osabi package does not check OS version.
The default is "yes".
.It Dv CHECK_VULNERABILITIES .It Dv CHECK_VULNERABILITIES
Check for vulnerabilities when installing packages. Check for vulnerabilities when installing packages.
Supported values are: Supported values are:

View File

@ -1,4 +1,4 @@
/* $NetBSD: pkg_io.c,v 1.1.1.9 2010/04/23 20:54:11 joerg Exp $ */ /* $NetBSD: pkg_io.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2008, 2009 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008, 2009 Joerg Sonnenberger <joerg@NetBSD.org>.
* All rights reserved. * All rights reserved.
@ -36,7 +36,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: pkg_io.c,v 1.1.1.9 2010/04/23 20:54:11 joerg Exp $"); __RCSID("$NetBSD: pkg_io.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#include <archive.h> #include <archive.h>
#include <archive_entry.h> #include <archive_entry.h>
@ -46,9 +46,14 @@ __RCSID("$NetBSD: pkg_io.c,v 1.1.1.9 2010/04/23 20:54:11 joerg Exp $");
#if HAVE_ERRNO_H #if HAVE_ERRNO_H
#include <errno.h> #include <errno.h>
#endif #endif
#include <fetch.h>
#include <stdlib.h> #include <stdlib.h>
#ifdef BOOTSTRAP
#define IS_URL(x) 0
#else
#include <fetch.h>
#endif
#include "lib.h" #include "lib.h"
struct pkg_path { struct pkg_path {
@ -59,6 +64,7 @@ struct pkg_path {
static char *orig_cwd, *last_toplevel; static char *orig_cwd, *last_toplevel;
static TAILQ_HEAD(, pkg_path) pkg_path = TAILQ_HEAD_INITIALIZER(pkg_path); static TAILQ_HEAD(, pkg_path) pkg_path = TAILQ_HEAD_INITIALIZER(pkg_path);
#ifndef BOOTSTRAP
struct fetch_archive { struct fetch_archive {
struct url *url; struct url *url;
fetchIO *fetch; fetchIO *fetch;
@ -145,19 +151,33 @@ open_archive_by_url(struct url *url, char **archive_name)
*archive_name = fetchStringifyURL(url); *archive_name = fetchStringifyURL(url);
a = archive_read_new(); a = prepare_archive();
archive_read_support_compression_all(a);
archive_read_support_format_all(a);
if (archive_read_open(a, f, fetch_archive_open, fetch_archive_read, if (archive_read_open(a, f, fetch_archive_open, fetch_archive_read,
fetch_archive_close)) { fetch_archive_close)) {
free(*archive_name); free(*archive_name);
*archive_name = NULL; *archive_name = NULL;
archive_read_finish(a); archive_read_free(a);
return NULL; return NULL;
} }
return a; return a;
} }
#endif /* !BOOTSTRAP */
struct archive *
prepare_archive(void)
{
struct archive *a = archive_read_new();
if (a == NULL)
errx(EXIT_FAILURE, "memory allocation failed");
archive_read_support_filter_gzip(a);
archive_read_support_filter_bzip2(a);
archive_read_support_filter_xz(a);
archive_read_support_format_ar(a);
archive_read_support_format_tar(a);
archive_read_set_options(a, "hdrcharset=BINARY");
return a;
}
struct archive * struct archive *
open_archive(const char *url, char **archive_name) open_archive(const char *url, char **archive_name)
@ -168,9 +188,7 @@ open_archive(const char *url, char **archive_name)
*archive_name = NULL; *archive_name = NULL;
if (!IS_URL(url)) { if (!IS_URL(url)) {
a = archive_read_new(); a = prepare_archive();
archive_read_support_compression_all(a);
archive_read_support_format_all(a);
if (archive_read_open_filename(a, url, 1024)) { if (archive_read_open_filename(a, url, 1024)) {
archive_read_close(a); archive_read_close(a);
return NULL; return NULL;
@ -179,6 +197,9 @@ open_archive(const char *url, char **archive_name)
return a; return a;
} }
#ifdef BOOTSTRAP
return NULL;
#else
if ((u = fetchParseURL(url)) == NULL) if ((u = fetchParseURL(url)) == NULL)
return NULL; return NULL;
@ -186,8 +207,10 @@ open_archive(const char *url, char **archive_name)
fetchFreeURL(u); fetchFreeURL(u);
return a; return a;
#endif
} }
#ifndef BOOTSTRAP
static int static int
strip_suffix(char *filename) strip_suffix(char *filename)
{ {
@ -333,6 +356,7 @@ find_best_package(const char *toplevel, const char *pattern, int do_path)
return best_match; return best_match;
} }
#endif /* !BOOTSTRAP */
struct archive * struct archive *
find_archive(const char *fname, int top_level, char **archive_name) find_archive(const char *fname, int top_level, char **archive_name)
@ -364,7 +388,7 @@ find_archive(const char *fname, int top_level, char **archive_name)
free(full_fname); free(full_fname);
return a; return a;
} }
#ifndef BOOTSTRAP
fname = last_slash + 1; fname = last_slash + 1;
*last_slash = '\0'; *last_slash = '\0';
@ -379,5 +403,6 @@ find_archive(const char *fname, int top_level, char **archive_name)
return NULL; return NULL;
a = open_archive_by_url(best_match, archive_name); a = open_archive_by_url(best_match, archive_name);
fetchFreeURL(best_match); fetchFreeURL(best_match);
#endif /* !BOOTSTRAP */
return a; return a;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: pkg_signature.c,v 1.2 2013/09/11 12:59:19 khorben Exp $ */ /* $NetBSD: pkg_signature.c,v 1.3 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: pkg_signature.c,v 1.2 2013/09/11 12:59:19 khorben Exp $"); __RCSID("$NetBSD: pkg_signature.c,v 1.3 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -47,6 +47,7 @@ __RCSID("$NetBSD: pkg_signature.c,v 1.2 2013/09/11 12:59:19 khorben Exp $");
#endif #endif
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <limits.h>
#include <stdlib.h> #include <stdlib.h>
#ifndef NETBSD #ifndef NETBSD
#include <nbcompat/sha2.h> #include <nbcompat/sha2.h>
@ -159,7 +160,7 @@ verify_signature_close_cb(struct archive *archive, void *cookie)
{ {
struct signature_archive *state = cookie; struct signature_archive *state = cookie;
archive_read_finish(state->archive); archive_read_free(state->archive);
free_signature_int(state); free_signature_int(state);
return 0; return 0;
} }
@ -330,7 +331,7 @@ pkg_verify_signature(const char *archive_name, struct archive **archive,
r = read_file_from_archive(archive_name, *archive, entry, HASH_FNAME, r = read_file_from_archive(archive_name, *archive, entry, HASH_FNAME,
&hash_file, &hash_len); &hash_file, &hash_len);
if (r == -1) { if (r == -1) {
archive_read_finish(*archive); archive_read_free(*archive);
*archive = NULL; *archive = NULL;
free(state); free(state);
goto no_valid_signature; goto no_valid_signature;
@ -345,7 +346,7 @@ pkg_verify_signature(const char *archive_name, struct archive **archive,
r = read_file_from_archive(archive_name, *archive, entry, SIGNATURE_FNAME, r = read_file_from_archive(archive_name, *archive, entry, SIGNATURE_FNAME,
&signature_file, &signature_len); &signature_file, &signature_len);
if (r == -1) { if (r == -1) {
archive_read_finish(*archive); archive_read_free(*archive);
*archive = NULL; *archive = NULL;
free(state); free(state);
free(hash_file); free(hash_file);
@ -356,7 +357,7 @@ pkg_verify_signature(const char *archive_name, struct archive **archive,
entry, GPG_SIGNATURE_FNAME, entry, GPG_SIGNATURE_FNAME,
&signature_file, &signature_len); &signature_file, &signature_len);
if (r == -1) { if (r == -1) {
archive_read_finish(*archive); archive_read_free(*archive);
*archive = NULL; *archive = NULL;
free(state); free(state);
free(hash_file); free(hash_file);
@ -366,8 +367,8 @@ pkg_verify_signature(const char *archive_name, struct archive **archive,
free(state); free(state);
goto no_valid_signature; goto no_valid_signature;
} }
has_sig = !detached_gpg_verify(hash_file, hash_len, has_sig = !gpg_verify(hash_file, hash_len, gpg_keyring_verify,
signature_file, signature_len, gpg_keyring_verify); signature_file, signature_len);
free(signature_file); free(signature_file);
} else { } else {
@ -399,13 +400,11 @@ pkg_verify_signature(const char *archive_name, struct archive **archive,
state->archive = *archive; state->archive = *archive;
a = archive_read_new(); a = prepare_archive();
archive_read_support_compression_all(a);
archive_read_support_format_all(a);
if (archive_read_open(a, state, NULL, verify_signature_read_cb, if (archive_read_open(a, state, NULL, verify_signature_read_cb,
verify_signature_close_cb)) { verify_signature_close_cb)) {
warnx("Can't open signed package file"); warnx("Can't open signed package file");
archive_read_finish(a); archive_read_free(a);
goto no_valid_signature; goto no_valid_signature;
} }
*archive = a; *archive = a;
@ -448,13 +447,11 @@ extract_pkgname(int fd)
ssize_t len; ssize_t len;
int r; int r;
a = archive_read_new(); a = prepare_archive();
archive_read_support_compression_all(a);
archive_read_support_format_all(a);
if (archive_read_open_fd(a, fd, 1024)) { if (archive_read_open_fd(a, fd, 1024)) {
warnx("Cannot open binary package: %s", warnx("Cannot open binary package: %s",
archive_error_string(a)); archive_error_string(a));
archive_read_finish(a); archive_read_free(a);
return NULL; return NULL;
} }
@ -462,17 +459,17 @@ extract_pkgname(int fd)
if (r != ARCHIVE_OK) { if (r != ARCHIVE_OK) {
warnx("Cannot extract package name: %s", warnx("Cannot extract package name: %s",
r == ARCHIVE_EOF ? "EOF" : archive_error_string(a)); r == ARCHIVE_EOF ? "EOF" : archive_error_string(a));
archive_read_finish(a); archive_read_free(a);
return NULL; return NULL;
} }
if (strcmp(archive_entry_pathname(entry), "+CONTENTS") != 0) { if (strcmp(archive_entry_pathname(entry), "+CONTENTS") != 0) {
warnx("Invalid binary package, doesn't start with +CONTENTS"); warnx("Invalid binary package, doesn't start with +CONTENTS");
archive_read_finish(a); archive_read_free(a);
return NULL; return NULL;
} }
if (archive_entry_size(entry) > SSIZE_MAX - 1) { if (archive_entry_size(entry) > SSIZE_MAX - 1) {
warnx("+CONTENTS too large to process"); warnx("+CONTENTS too large to process");
archive_read_finish(a); archive_read_free(a);
return NULL; return NULL;
} }
@ -482,12 +479,12 @@ extract_pkgname(int fd)
if (archive_read_data(a, buf, len) != len) { if (archive_read_data(a, buf, len) != len) {
warnx("Short read when extracing +CONTENTS"); warnx("Short read when extracing +CONTENTS");
free(buf); free(buf);
archive_read_finish(a); archive_read_free(a);
return NULL; return NULL;
} }
buf[len] = '\0'; buf[len] = '\0';
archive_read_finish(a); archive_read_free(a);
parse_plist(&plist, buf); parse_plist(&plist, buf);
free(buf); free(buf);
@ -579,7 +576,6 @@ pkg_sign_x509(const char *name, const char *output, const char *key_file, const
archive_entry_set_size(sign_entry, signature_len); archive_entry_set_size(sign_entry, signature_len);
pkg = archive_write_new(); pkg = archive_write_new();
archive_write_set_compression_none(pkg);
archive_write_set_format_ar_bsd(pkg); archive_write_set_format_ar_bsd(pkg);
archive_write_open_filename(pkg, output); archive_write_open_filename(pkg, output);
@ -608,7 +604,7 @@ pkg_sign_x509(const char *name, const char *output, const char *key_file, const
archive_write_finish_entry(pkg); archive_write_finish_entry(pkg);
archive_entry_free(entry); archive_entry_free(entry);
archive_write_finish(pkg); archive_write_free(pkg);
close(fd); close(fd);
@ -673,7 +669,6 @@ pkg_sign_gpg(const char *name, const char *output)
archive_entry_set_size(sign_entry, signature_len); archive_entry_set_size(sign_entry, signature_len);
pkg = archive_write_new(); pkg = archive_write_new();
archive_write_set_compression_none(pkg);
archive_write_set_format_ar_bsd(pkg); archive_write_set_format_ar_bsd(pkg);
archive_write_open_filename(pkg, output); archive_write_open_filename(pkg, output);
@ -702,7 +697,7 @@ pkg_sign_gpg(const char *name, const char *output)
archive_write_finish_entry(pkg); archive_write_finish_entry(pkg);
archive_entry_free(entry); archive_entry_free(entry);
archive_write_finish(pkg); archive_write_free(pkg);
close(fd); close(fd);

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkg_summary.5,v 1.4 2012/02/19 17:49:09 tron Exp $ .\" $NetBSD: pkg_summary.5,v 1.5 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" Copyright (c) 2006 The NetBSD Foundation .\" Copyright (c) 2006 The NetBSD Foundation
.\" .\"

View File

@ -1,4 +1,4 @@
/* $NetBSD: pkgdb.c,v 1.1.1.8 2010/04/23 20:54:11 joerg Exp $ */ /* $NetBSD: pkgdb.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: pkgdb.c,v 1.1.1.8 2010/04/23 20:54:11 joerg Exp $"); __RCSID("$NetBSD: pkgdb.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/*- /*-
* Copyright (c) 1999-2010 The NetBSD Foundation, Inc. * Copyright (c) 1999-2010 The NetBSD Foundation, Inc.

View File

@ -1,4 +1,4 @@
.\" $NetBSD: pkgsrc.7,v 1.1.1.1 2008/09/30 19:00:27 joerg Exp $ .\" $NetBSD: pkgsrc.7,v 1.2 2017/04/20 13:18:23 joerg Exp $
.\" .\"
.\" Copyright (c) 2007 The NetBSD Foundation, Inc. .\" Copyright (c) 2007 The NetBSD Foundation, Inc.
.\" All rights reserved. .\" All rights reserved.

View File

@ -1,4 +1,4 @@
/* $NetBSD: plist.c,v 1.1.1.5 2009/08/06 16:55:28 joerg Exp $ */ /* $NetBSD: plist.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: plist.c,v 1.1.1.5 2009/08/06 16:55:28 joerg Exp $"); __RCSID("$NetBSD: plist.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance

View File

@ -1,4 +1,4 @@
/* $NetBSD: remove.c,v 1.1.1.2 2009/08/06 16:55:29 joerg Exp $ */ /* $NetBSD: remove.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -39,7 +39,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: remove.c,v 1.1.1.2 2009/08/06 16:55:29 joerg Exp $"); __RCSID("$NetBSD: remove.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_DIRENT_H #if HAVE_DIRENT_H
#include <dirent.h> #include <dirent.h>

View File

@ -1,4 +1,4 @@
/* $NetBSD: str.c,v 1.1.1.2 2009/02/02 20:44:08 joerg Exp $ */ /* $NetBSD: str.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: str.c,v 1.1.1.2 2009/02/02 20:44:08 joerg Exp $"); __RCSID("$NetBSD: str.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* FreeBSD install - a package for the installation and maintainance * FreeBSD install - a package for the installation and maintainance

View File

@ -1,4 +1,4 @@
/* $NetBSD: var.c,v 1.2 2013/05/16 19:19:44 martin Exp $ */ /* $NetBSD: var.c,v 1.3 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2005, 2008 The NetBSD Foundation, Inc. * Copyright (c) 2005, 2008 The NetBSD Foundation, Inc.
@ -39,7 +39,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: var.c,v 1.2 2013/05/16 19:19:44 martin Exp $"); __RCSID("$NetBSD: var.c,v 1.3 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_SYS_STAT_H #if HAVE_SYS_STAT_H
#include <sys/stat.h> #include <sys/stat.h>
@ -60,7 +60,7 @@ static const char *var_cmp(const char *, size_t, const char *, size_t);
static void var_print(FILE *, const char *, const char *); static void var_print(FILE *, const char *, const char *);
/* /*
* Copy the specified varibales from the file fname to stdout. * Copy the specified variables from the file fname to stdout.
*/ */
int int
var_copy_list(const char *buf, const char **variables) var_copy_list(const char *buf, const char **variables)
@ -74,8 +74,8 @@ var_copy_list(const char *buf, const char **variables)
next = eol + 1; next = eol + 1;
len = eol - buf; len = eol - buf;
} else { } else {
next = eol;
len = strlen(buf); len = strlen(buf);
next = buf + len;
} }
for (i=0; variables[i]; i++) { for (i=0; variables[i]; i++) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: version.c,v 1.1.1.3 2010/02/03 14:24:00 joerg Exp $ */ /* $NetBSD: version.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
#if HAVE_CONFIG_H #if HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: version.c,v 1.1.1.3 2010/02/03 14:24:00 joerg Exp $"); __RCSID("$NetBSD: version.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
/* /*
* Copyright (c) 2001 Thomas Klausner. All rights reserved. * Copyright (c) 2001 Thomas Klausner. All rights reserved.

View File

@ -1,4 +1,4 @@
/* $NetBSD: version.h,v 1.10 2013/04/20 15:29:23 wiz Exp $ */ /* $NetBSD: version.h,v 1.11 2017/04/20 13:18:23 joerg Exp $ */
/* /*
* Copyright (c) 2001 Thomas Klausner. All rights reserved. * Copyright (c) 2001 Thomas Klausner. All rights reserved.
@ -27,6 +27,6 @@
#ifndef _INST_LIB_VERSION_H_ #ifndef _INST_LIB_VERSION_H_
#define _INST_LIB_VERSION_H_ #define _INST_LIB_VERSION_H_
#define PKGTOOLS_VERSION 20130131 #define PKGTOOLS_VERSION 20170419
#endif /* _INST_LIB_VERSION_H_ */ #endif /* _INST_LIB_VERSION_H_ */

View File

@ -1,4 +1,4 @@
/* $NetBSD: vulnerabilities-file.c,v 1.1.1.5 2010/06/26 00:14:33 joerg Exp $ */ /* $NetBSD: vulnerabilities-file.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2008, 2010 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008, 2010 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -38,7 +38,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: vulnerabilities-file.c,v 1.1.1.5 2010/06/26 00:14:33 joerg Exp $"); __RCSID("$NetBSD: vulnerabilities-file.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_SYS_STAT_H #if HAVE_SYS_STAT_H
#include <sys/stat.h> #include <sys/stat.h>
@ -77,6 +77,20 @@ static const char pgp_msg_end[] = "-----BEGIN PGP SIGNATURE-----\n";
static const char pkcs7_begin[] = "-----BEGIN PKCS7-----\n"; static const char pkcs7_begin[] = "-----BEGIN PKCS7-----\n";
static const char pkcs7_end[] = "-----END PKCS7-----\n"; static const char pkcs7_end[] = "-----END PKCS7-----\n";
static struct archive *
prepare_raw_file(void)
{
struct archive *a = archive_read_new();
if (a == NULL)
errx(EXIT_FAILURE, "memory allocation failed");
archive_read_support_filter_gzip(a);
archive_read_support_filter_bzip2(a);
archive_read_support_filter_xz(a);
archive_read_support_format_raw(a);
return a;
}
static void static void
verify_signature_pkcs7(const char *input) verify_signature_pkcs7(const char *input)
{ {
@ -110,12 +124,7 @@ verify_signature_pkcs7(const char *input)
static void static void
verify_signature(const char *input, size_t input_len) verify_signature(const char *input, size_t input_len)
{ {
if (gpg_cmd == NULL && certs_pkg_vulnerabilities == NULL) gpg_verify(input, input_len, gpg_keyring_pkgvuln, NULL, 0);
errx(EXIT_FAILURE,
"At least GPG or CERTIFICATE_ANCHOR_PKGVULN "
"must be configured");
if (gpg_cmd != NULL)
inline_gpg_verify(input, input_len, gpg_keyring_pkgvuln);
if (certs_pkg_vulnerabilities != NULL) if (certs_pkg_vulnerabilities != NULL)
verify_signature_pkcs7(input); verify_signature_pkcs7(input);
} }
@ -350,12 +359,8 @@ read_pkg_vulnerabilities_memory(void *buf, size_t len, int check_sum)
struct archive *a; struct archive *a;
struct pkg_vulnerabilities *pv; struct pkg_vulnerabilities *pv;
if ((a = archive_read_new()) == NULL) a = prepare_raw_file();
errx(EXIT_FAILURE, "memory allocation failed"); if (archive_read_open_memory(a, buf, len) != ARCHIVE_OK)
if (archive_read_support_compression_all(a) != ARCHIVE_OK ||
archive_read_support_format_raw(a) != ARCHIVE_OK ||
archive_read_open_memory(a, buf, len) != ARCHIVE_OK)
errx(EXIT_FAILURE, "Cannot open pkg_vulnerabilies buffer: %s", errx(EXIT_FAILURE, "Cannot open pkg_vulnerabilies buffer: %s",
archive_error_string(a)); archive_error_string(a));
@ -381,12 +386,8 @@ read_pkg_vulnerabilities_file(const char *path, int ignore_missing, int check_su
err(EXIT_FAILURE, "Cannot open %s", path); err(EXIT_FAILURE, "Cannot open %s", path);
} }
if ((a = archive_read_new()) == NULL) a = prepare_raw_file();
errx(EXIT_FAILURE, "memory allocation failed"); if (archive_read_open_fd(a, fd, 65536) != ARCHIVE_OK)
if (archive_read_support_compression_all(a) != ARCHIVE_OK ||
archive_read_support_format_raw(a) != ARCHIVE_OK ||
archive_read_open_fd(a, fd, 65536) != ARCHIVE_OK)
errx(EXIT_FAILURE, "Cannot open ``%s'': %s", path, errx(EXIT_FAILURE, "Cannot open ``%s'': %s", path,
archive_error_string(a)); archive_error_string(a));
@ -450,9 +451,6 @@ parse_pkg_vuln(const char *input, size_t input_len, int check_sum)
size_t allocated_vulns; size_t allocated_vulns;
int in_pgp_msg; int in_pgp_msg;
#if defined(__minix)
next = NULL; /* LSC: Fix -Os compilation: -Werror=maybe-uninitialized */
#endif /* defined(__minix) */
pv = xmalloc(sizeof(*pv)); pv = xmalloc(sizeof(*pv));
allocated_vulns = pv->entries = 0; allocated_vulns = pv->entries = 0;

View File

@ -1,4 +1,4 @@
/* $NetBSD: xwrapper.c,v 1.1.1.1 2009/02/02 20:44:09 joerg Exp $ */ /* $NetBSD: xwrapper.c,v 1.2 2017/04/20 13:18:23 joerg Exp $ */
/*- /*-
* Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>. * Copyright (c) 2008 Joerg Sonnenberger <joerg@NetBSD.org>.
@ -36,7 +36,7 @@
#if HAVE_SYS_CDEFS_H #if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#endif #endif
__RCSID("$NetBSD: xwrapper.c,v 1.1.1.1 2009/02/02 20:44:09 joerg Exp $"); __RCSID("$NetBSD: xwrapper.c,v 1.2 2017/04/20 13:18:23 joerg Exp $");
#if HAVE_ERR_H #if HAVE_ERR_H
#include <err.h> #include <err.h>

View File

@ -1,4 +1,4 @@
# $NetBSD: pkgsrc.cnf,v 1.1.1.1 2009/02/02 20:44:09 joerg Exp $ # $NetBSD: pkgsrc.cnf,v 1.2 2017/04/20 13:18:23 joerg Exp $
# #
# OpenSSL sample configuration file for use by pkgsrc.sh # OpenSSL sample configuration file for use by pkgsrc.sh
# #

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# $NetBSD: pkgsrc.sh,v 1.1.1.1 2009/02/02 20:44:09 joerg Exp $ # $NetBSD: pkgsrc.sh,v 1.2 2017/04/20 13:18:23 joerg Exp $
# #
CA="openssl ca -config pkgsrc.cnf" CA="openssl ca -config pkgsrc.cnf"

View File

@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.3 2009/02/02 20:47:21 joerg Exp $ # $NetBSD: Makefile,v 1.4 2016/06/25 18:05:57 maya Exp $
SUBDIR= bpm pkg_add pkg_admin pkg_create \ SUBDIR= pkg_add pkg_admin pkg_create \
pkg_delete pkg_info pkg_delete pkg_info
.include <bsd.subdir.mk> .include <bsd.subdir.mk>

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile.inc,v 1.3 2010/11/05 09:09:01 he Exp $ # $NetBSD: Makefile.inc,v 1.5 2017/04/21 12:43:22 joerg Exp $
.include <bsd.own.mk> .include <bsd.own.mk>
@ -12,8 +12,8 @@ CPPFLAGS+= -DBINDIR='"${BINDIR}"'
DPADD+= ${LIBINSTALL}/libinstall.a DPADD+= ${LIBINSTALL}/libinstall.a
LDADD+= -L${LIBINSTALL} -linstall -ltermcap LDADD+= -L${LIBINSTALL} -linstall -ltermcap
DPADD+= ${LIBFETCH} ${LIBSSL} ${LIBCRYPTO} DPADD+= ${LIBNETPGPVERIFY} ${LIBFETCH} ${LIBSSL} ${LIBCRYPTO}
LDADD+= -lfetch -lssl -lcrypto LDADD+= -lnetpgpverify -lfetch -lssl -lcrypto
DPADD+= ${LIBARCHIVE} DPADD+= ${LIBARCHIVE}
LDADD+= -larchive LDADD+= -larchive
@ -21,5 +21,10 @@ LDADD+= -larchive
DPADD+= ${LIBZ} ${LIBBZ2} DPADD+= ${LIBZ} ${LIBBZ2}
LDADD+= -lz -lbz2 LDADD+= -lz -lbz2
.if !defined(__MINIX)
DPADD+= ${LIBLZMA} ${LIBPTHREAD}
LDADD+= -llzma -lpthread
.else
DPADD+= ${LIBLZMA} DPADD+= ${LIBLZMA}
LDADD+= -llzma LDADD+= -llzma
.endif # !defined(__MINIX)

View File

@ -1,15 +0,0 @@
# $NetBSD: Makefile,v 1.1 2008/09/30 19:19:56 joerg Exp $
SCRIPTS= bpm.sh
MAN= bpm.1
.include <bsd.init.mk>
.PATH: ${DIST}/bpm
CLEANFILES+= bpm.sh
bpm.sh: ${DIST}/bpm/bpm.sh.in
${TOOL_CAT} ${DIST}/bpm/bpm.sh.in > ${.TARGET}
.include <bsd.prog.mk>

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.2 2009/02/02 20:47:21 joerg Exp $ # $NetBSD: Makefile,v 1.3 2017/04/20 13:18:47 joerg Exp $
# Original from FreeBSD, no rcs id. # Original from FreeBSD, no rcs id.
PROG= pkg_add PROG= pkg_add
@ -8,6 +8,6 @@ SRCS= main.c perform.c
.PATH: ${DIST}/add .PATH: ${DIST}/add
CPPFLAGS+= -DMACHINE_ARCH=\"${MACHINE_ARCH}\" CPPFLAGS+= -DPKGSRC_MACHINE_ARCH=\"${MACHINE_ARCH}\"
.include <bsd.prog.mk> .include <bsd.prog.mk>