freebsd-dev/usr.sbin/pkg_install/add/add.h
Jordan K. Hubbard 6c5325bf0e Add true support for dependency lists.
1. pkg_create now has a -P argument for specifying dependencies on the
   command line.
2. pkg_add will honor dependencies and chain-load them automatically if
   it finds the required package(s) in the same directory as the package
   that is being loaded.  For best results, install packages from a directory
   containing all the packages you'll possibly need
   (like /usr/ports/packages/all).

2 remaining flaws:

1. pkg_add looks in one place (where you were when you loaded the primary
   pkg) for depended packages.  If you can come up with a search path scheme
   that's not a total hack - be my guest!

2. Recursive dependency expansion can result in the name of a dep being
   listed more than once.  This doesn't bother pkg_add since it checks
   for package existance with pkg_info and will skip already-loaded packages.
   I don't know how/if pkg_delete handles this yet, however.  I need to look
   into it.
1995-04-09 15:05:01 +00:00

46 lines
1.3 KiB
C

/* $Id: add.h,v 1.4 1994/12/06 00:51:31 jkh Exp $ */
/*
* FreeBSD install - a package for the installation and maintainance
* of non-core utilities.
*
* 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.
*
* Jordan K. Hubbard
* 18 July 1993
*
* Include and define various things wanted by the add command.
*
*/
#ifndef _INST_ADD_H_INCLUDE
#define _INST_ADD_H_INCLUDE
typedef enum { NORMAL, MASTER, SLAVE } add_mode_t;
extern char *Prefix;
extern Boolean NoInstall;
extern Boolean NoRecord;
extern Boolean Force;
extern char *Mode;
extern char *Owner;
extern char *Group;
extern char *Directory;
extern char *PkgName;
extern char *PlayPen;
extern add_mode_t AddMode;
extern char *Home;
int make_hierarchy(char *);
void extract_plist(char *, Package *);
void apply_perms(char *, char *);
#endif /* _INST_ADD_H_INCLUDE */