pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/pkgtools/pkg_install/files pkg_install-20090424:
details: https://anonhg.NetBSD.org/pkgsrc/rev/6a513fe5bb6b
branches: trunk
changeset: 557899:6a513fe5bb6b
user: joerg <joerg%pkgsrc.org@localhost>
date: Fri Apr 24 14:00:25 2009 +0000
description:
pkg_install-20090424:
Make pkg_delete -d the default behavior, remove the option.
Remove pkg_create -R support (reorder @dirrm entries).
Introduce new plist command @pkgdir, which makes pkg_add add
this directory if it doesn't exist already and pkg_delete remove it
only if no other package has a @pkgdir entry for it. Otherwise
directories are pruned when the last file or directory in them is
removed. @dirrm is now a pure hint, if the directory doesn't exist, it
will be silently skipped.
diffstat:
pkgtools/pkg_install/files/add/perform.c | 13 +-
pkgtools/pkg_install/files/admin/check.c | 5 +-
pkgtools/pkg_install/files/admin/main.c | 8 +-
pkgtools/pkg_install/files/create/create.h | 3 +-
pkgtools/pkg_install/files/create/main.c | 13 +-
pkgtools/pkg_install/files/create/pkg_create.1 | 30 +--
pkgtools/pkg_install/files/create/pl.c | 64 ++-----
pkgtools/pkg_install/files/delete/pkg_delete.1 | 16 +-
pkgtools/pkg_install/files/delete/pkg_delete.c | 12 +-
pkgtools/pkg_install/files/info/show.c | 8 +-
pkgtools/pkg_install/files/lib/lib.h | 12 +-
pkgtools/pkg_install/files/lib/plist.c | 225 +++++++++++++++---------
pkgtools/pkg_install/files/lib/version.h | 4 +-
13 files changed, 219 insertions(+), 194 deletions(-)
diffs (truncated from 879 to 300 lines):
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/add/perform.c
--- a/pkgtools/pkg_install/files/add/perform.c Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/add/perform.c Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: perform.c,v 1.85 2009/04/06 14:34:15 joerg Exp $ */
+/* $NetBSD: perform.c,v 1.86 2009/04/24 14:00:25 joerg Exp $ */
#if HAVE_CONFIG_H
#include "config.h"
#endif
@@ -6,7 +6,7 @@
#if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif
-__RCSID("$NetBSD: perform.c,v 1.85 2009/04/06 14:34:15 joerg Exp $");
+__RCSID("$NetBSD: perform.c,v 1.86 2009/04/24 14:00:25 joerg Exp $");
/*-
* Copyright (c) 2003 Grant Beattie <grant%NetBSD.org@localhost>
@@ -666,6 +666,13 @@
printf("%s", p->name);
break;
+ case PLIST_PKGDIR:
+ fullpath = xasprintf("%s/%s", pkg->prefix, p->name);
+ mkdir_p(fullpath);
+ free(fullpath);
+ add_pkgdir(pkg->pkgname, pkg->prefix, p->name);
+ continue;
+
case PLIST_CMD:
if (format_cmd(cmd, sizeof(cmd), p->name, pkg->prefix, last_file))
return -1;
@@ -1386,7 +1393,7 @@
pkg->other_version, pkg->pkgname);
warnx("Remember to run pkg_admin rebuild-tree after fixing this.");
}
- delete_package(FALSE, FALSE, &pkg->plist, FALSE, Destdir);
+ delete_package(FALSE, &pkg->plist, FALSE, Destdir);
}
nuke_pkgdb:
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/admin/check.c
--- a/pkgtools/pkg_install/files/admin/check.c Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/admin/check.c Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: check.c,v 1.8 2009/04/23 19:35:52 joerg Exp $ */
+/* $NetBSD: check.c,v 1.9 2009/04/24 14:00:25 joerg Exp $ */
#if HAVE_CONFIG_H
#include "config.h"
@@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif
-__RCSID("$NetBSD: check.c,v 1.8 2009/04/23 19:35:52 joerg Exp $");
+__RCSID("$NetBSD: check.c,v 1.9 2009/04/24 14:00:25 joerg Exp $");
/*-
* Copyright (c) 1999-2008 The NetBSD Foundation, Inc.
@@ -173,6 +173,7 @@
case PLIST_OPTION:
case PLIST_PKGCFL:
case PLIST_BLDDEP:
+ case PLIST_PKGDIR:
break;
}
}
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/admin/main.c
--- a/pkgtools/pkg_install/files/admin/main.c Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/admin/main.c Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.50 2009/04/23 19:35:52 joerg Exp $ */
+/* $NetBSD: main.c,v 1.51 2009/04/24 14:00:25 joerg Exp $ */
#if HAVE_CONFIG_H
#include "config.h"
@@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif
-__RCSID("$NetBSD: main.c,v 1.50 2009/04/23 19:35:52 joerg Exp $");
+__RCSID("$NetBSD: main.c,v 1.51 2009/04/24 14:00:25 joerg Exp $");
/*-
* Copyright (c) 1999-2008 The NetBSD Foundation, Inc.
@@ -175,6 +175,10 @@
(*cnt)++;
}
break;
+ case PLIST_PKGDIR:
+ add_pkgdir(PkgName, dirp, p->name);
+ (*cnt)++;
+ break;
case PLIST_CWD:
if (strcmp(p->name, ".") != 0) {
dirp = p->name;
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/create/create.h
--- a/pkgtools/pkg_install/files/create/create.h Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/create/create.h Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: create.h,v 1.9 2007/08/03 13:15:59 joerg Exp $ */
+/* $NetBSD: create.h,v 1.10 2009/04/24 14:00:25 joerg Exp $ */
/* from FreeBSD Id: create.h,v 1.13 1997/10/08 07:46:19 charnier Exp */
@@ -59,7 +59,6 @@
extern size_t PlayPenSize;
extern int PlistOnly;
extern int RelativeLinks;
-extern int ReorderDirs;
extern int update_pkgdb;
extern int create_views;
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/create/main.c
--- a/pkgtools/pkg_install/files/create/main.c Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/create/main.c Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.12 2009/02/02 12:35:01 joerg Exp $ */
+/* $NetBSD: main.c,v 1.13 2009/04/24 14:00:25 joerg Exp $ */
#if HAVE_CONFIG_H
#include "config.h"
@@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif
-__RCSID("$NetBSD: main.c,v 1.12 2009/02/02 12:35:01 joerg Exp $");
+__RCSID("$NetBSD: main.c,v 1.13 2009/04/24 14:00:25 joerg Exp $");
/*
* FreeBSD install - a package for the installation and maintainance
@@ -26,7 +26,7 @@
#include "lib.h"
#include "create.h"
-static const char Options[] = "B:C:D:EFI:K:L:OP:RS:T:UVb:c:d:f:g:i:k:ln:p:r:s:u:v";
+static const char Options[] = "B:C:D:EFI:K:L:OP:S:T:UVb:c:d:f:g:i:k:ln:p:r:s:u:v";
char *Prefix = NULL;
char *Comment = NULL;
@@ -53,14 +53,13 @@
int create_views = 0;
int PlistOnly = 0;
int RelativeLinks = 0;
-int ReorderDirs = 0;
Boolean File2Pkg = FALSE;
static void
usage(void)
{
fprintf(stderr,
- "usage: pkg_create [-ElORUVv] [-B build-info-file] [-b build-version-file]\n"
+ "usage: pkg_create [-ElOUVv] [-B build-info-file] [-b build-version-file]\n"
" [-C cpkgs] [-D displayfile] [-I realprefix] [-i iscript]\n"
" [-K pkg_dbdir] [-k dscript] [-L SrcDir]\n"
" [-n preserve-file] [-P dpkgs] [-p prefix] [-r rscript]\n"
@@ -100,10 +99,6 @@
PlistOnly = 1;
break;
- case 'R':
- ReorderDirs = 1;
- break;
-
case 'U':
update_pkgdb = 0;
break;
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/create/pkg_create.1
--- a/pkgtools/pkg_install/files/create/pkg_create.1 Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/create/pkg_create.1 Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: pkg_create.1,v 1.18 2009/04/23 19:34:04 joerg Exp $
+.\" $NetBSD: pkg_create.1,v 1.19 2009/04/24 14:00:25 joerg Exp $
.\"
.\" FreeBSD install - a package for the installation and maintenance
.\" of non-core utilities.
@@ -24,7 +24,7 @@
.\" [jkh] Took John's changes back and made some additional extensions for
.\" better integration with FreeBSD's new ports collection.
.\"
-.Dd July 28, 2008
+.Dd April 24, 2009
.Dt PKG_CREATE 1
.Os
.Sh NAME
@@ -32,7 +32,7 @@
.Nd a utility for creating software package distributions
.Sh SYNOPSIS
.Nm
-.Op Fl ElORUVv
+.Op Fl ElOUVv
.Bk -words
.Op Fl B Ar build-info-file
.Ek
@@ -256,10 +256,6 @@
.Pq base
to start from in selecting files for
the package.
-.It Fl R
-Re-order any directories in the PLIST file into reverse alphabetic
-order, so that child directories will automatically be removed before
-parent directories.
.It Fl S Ar size-all-file
Store the given file for later querying with the
.Xr pkg_info 1
@@ -435,20 +431,18 @@
will derive this field from the
.Ar pkg-name
and add it automatically if none is given.
-.It Cm @dirrm Ar name
+.It Cm @pkgdir Ar name
Declare directory
.Pa name
-to be deleted at deinstall time.
-By default, directories created by a package installation are not deleted
-when the package is deinstalled; this provides an explicit directory cleanup
-method.
-This directive should appear at the end of the package list.
-If more than one
-.Cm @dirrm
-directives are used, the directories are removed in the order specified.
-The
+as managed.
+If it does not exist at installation time, it is created.
+If this directory is no longer referenced by packages and the last
+file or directory in it is deleted, the directory is removed as well.
+.It Cm @dirrm Ar name
+This command is supported for compatibility only.
+If directory
.Pa name
-directory will not be removed unless it is empty.
+exists, it will be deleted at deinstall time.
.It Cm @display Ar name
Declare
.Pa name
diff -r 50b7b32fe7f9 -r 6a513fe5bb6b pkgtools/pkg_install/files/create/pl.c
--- a/pkgtools/pkg_install/files/create/pl.c Fri Apr 24 11:54:14 2009 +0000
+++ b/pkgtools/pkg_install/files/create/pl.c Fri Apr 24 14:00:25 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pl.c,v 1.12 2009/02/02 12:35:01 joerg Exp $ */
+/* $NetBSD: pl.c,v 1.13 2009/04/24 14:00:25 joerg Exp $ */
#if HAVE_CONFIG_H
#include "config.h"
@@ -7,7 +7,7 @@
#if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif
-__RCSID("$NetBSD: pl.c,v 1.12 2009/02/02 12:35:01 joerg Exp $");
+__RCSID("$NetBSD: pl.c,v 1.13 2009/04/24 14:00:25 joerg Exp $");
/*
* FreeBSD install - a package for the installation and maintainance
@@ -74,39 +74,6 @@
}
/*
- * (Reversed) comparison routine for directory name sorting
- */
-static int
-dircmp(const void *vp1, const void *vp2)
-{
- return strcmp((const char *) vp2, (const char *) vp1);
-}
-
-/*
- * Re-order the PLIST_DIR_RM entries into reverse alphabetic order
- */
-static void
-reorder(package_t *pkg, int dirc)
-{
- plist_t *p;
- char **dirv;
- int i;
-
- dirv = xcalloc(dirc, sizeof(char *));
-
- for (p = pkg->head, i = 0; p; p = p->next) {
- if (p->type == PLIST_DIR_RM)
- dirv[i++] = p->name;
- }
- qsort(dirv, dirc, sizeof(char *), dircmp);
- for (p = pkg->head, i = 0; p; p = p->next) {
- if (p->type == PLIST_DIR_RM)
- p->name = dirv[i++];
- }
- free(dirv);
-}
-
-/*
* Check a list for files that require preconversion
*/
void
@@ -120,26 +87,36 @@
char name[MaxPathSize];
char *cwd = NULL;
char *srcdir = NULL;
- int dirc;
+ char *pkgname = NULL;
int cc;
Home |
Main Index |
Thread Index |
Old Index