pkgdev
char *a_tmpdir, struct pkgdev *a_pkgdev,
char **a_categoryList, struct pkgdev *a_pkgdev);
assert(a_pkgdev != (struct pkgdev *)NULL);
struct pkgdev *a_pkgdev, int a_optind)
char *a_categories, char **a_categoryList, struct pkgdev *a_pkgdev)
assert(a_pkgdev != (struct pkgdev *)NULL);
if (devtype(device, &pkgdev)) {
&pkgdev, optind);
&pkgdev, optind);
progerr(ERR_NOPKGS, pkgdev.dirname);
PSTR(pkgdev.dirname));
rrmdir(pkgdev.dirname);
struct pkgdev pkgdev; /* holds info about the installation device */
PSTR(pkgdev.dirname), PSTR(pkgdev.mount), PSTR(pkgdev.bdevice),
PSTR(pkgdev.dirname), PSTR(pkgdev.mount), PSTR(pkgdev.bdevice),
echoDebug(DBG_PKGINSTALL_ARGS, PSTR(pkginst), PSTR(pkgdev.dirname),
PSTR(pkgdev.mount), PSTR(pkgdev.bdevice), PSTR(a_altRoot),
} else if (pkgdev.mount != NULL) {
arg[nargs++] = pkgdev.bdevice;
arg[nargs++] = pkgdev.mount;
if (pkgdev.fstyp != NULL) {
arg[nargs++] = pkgdev.fstyp;
echoDebug(DBG_GETPKGLIST_ARGS, PSTR(a_idsName), PSTR(pkgdev.dirname),
a_categoryList, &pkgdev);
pkgdev.dirname);
pkgdev.dirname, n);
packageDir = pkgdev.dirname;
if ((npkgs <= 0) && (pkgdev.mount || a_idsName)) {
PSTR(pkgdev.mount));
(void) pkgumount(&pkgdev);
(pkgdev.pathname == (char *)NULL)) {
packageDir = pkgdev.dirname;
if ((npkgs <= 0) && (pkgdev.mount || a_idsName)) {
(void) pkgumount(&pkgdev);
(pkgdev.pathname == (char *)NULL)) {
if (check_applicability(pkgdev.dirname,
pkgdev.dirname, a_altBinDir);
if ((npkgs <= 0) && (pkgdev.mount || a_idsName)) {
(void) pkgumount(&pkgdev);
(pkgdev.pathname == (char *)NULL)) {
if (pkgdev.dirname != NULL) {
echoDebug(DBG_REMOVING_DSTREAM_TMPDIR, pkgdev.dirname);
(void) rrmdir(pkgdev.dirname); /* from tempnam */
} else if (pkgdev.mount) {
(void) pkgumount(&pkgdev);
extern struct pkgdev pkgdev; /* holds info about the installation device */
pkgvolume(&pkgdev, srcinst, part, nparts);
pkgvolume(&pkgdev, srcinst, part, nparts);
extern struct pkgdev pkgdev;
if ((isdir(pkgdev.dirname) != 0) &&
(pkgdev.cdevice == (char *)NULL) &&
(pkgdev.bdevice == (char *)NULL) &&
(isfile((char *)NULL, pkgdev.dirname) == 0)) {
char *device = pkgdev.dirname;
echoDebug(DBG_PKGINSTALL_DS_ISFILE, pkgdev.dirname);
if (devtype(device, &pkgdev)) {
pkgdev.dirname, (int *)NULL, &idsName, tmpdir, &pkgdev,
pkgdev.dirname ? pkgdev.dirname : "?");
quitSetDstreamTmpdir(pkgdev.dirname);
pkgdev.dirname);
pkgdev.dirname ? pkgdev.dirname : "?");
echoDebug(DBG_CLOSING_STREAM, idsName, pkgdev.dirname);
if (snprintf(instdir, PATH_MAX, "%s/%s", pkgdev.dirname, srcinst)
putparam("INST_DATADIR", pkgdev.dirname);
if (!suppressCopyright && !pkgdev.cdevice) {
if (pkgdev.cdevice) {
struct pkgdev pkgdev;
if ((part > 1) && pkgdev.cdevice) {
if (pkgdev.cdevice) {
dparts = ds_findpkg(pkgdev.cdevice, srcinst);
if (ds_next(pkgdev.cdevice, instdir)) {
pkgdev.fstyp = optarg;
pkgdev.mount = optarg;
pkgdev.rdonly++;
pkgdev.mntflg++;
if (pkgdev.mount) {
pkgdev.bdevice = device;
pkgdev.cdevice = device;
if (pkgdev.fstyp && !pkgdev.mount) {
pkgdev.dirname = argv[optind++];
extern void pkgvolume __P((struct pkgdev *devp, char *pkg, int part,
pkgvolume(struct pkgdev *devp, char *pkg, int part, int nparts)
ds_skiptoend(pkgdev.cdevice);
extern struct pkgdev pkgdev; /* holds info about the installation device */
struct pkgdev pkgdev; /* holds info about the installation device */
if (devtype(device, &pkgdev)) {
if (pkgdev.norewind) {
if (pkgdev.mount) {
if (n = pkgmount(&pkgdev, NULL, 0, 0, 1))
if (pkgdev.dirname == NULL) {
if (statvfs64(pkgdev.dirname, &svfsb)) {
progerr(gettext(ERR_STATVFS), pkgdev.dirname);
pkgdev.dirname, pkginst);
pkgdir = pkgdev.dirname;
if (pkgdev.mount && npkgs) {
if ((part > 1) && pkgdev.mount) {
if (pkgumount(&pkgdev)) {
progerr(gettext(ERR_UMOUNT), pkgdev.mount);
if (n = pkgmount(&pkgdev, NULL, part, nparts, 1))
extern struct pkgdev pkgdev;
if (pkgdev.mount)
(void) pkgumount(&pkgdev);
if (!pkgdev.mount) {
progerr(gettext(ERR_FREE), pkgdev.dirname);
pkgdev.dirname);
if (pkgdev.mount && *pllimit > *plimit)
extern struct pkgdev pkgdev;
struct pkgdev pkgdev; /* holds info about the installation device */
PSTR(pkgdev.dirname), PSTR(a_adminFile), PSTR(a_stdoutPath));
PSTR(pkgdev.dirname), a_nodelete, PSTR(a_adminFile));
echoDebug(DBG_PKGREMOVE_ARGS, PSTR(pkginst), PSTR(pkgdev.dirname),
if (devtype((spoolDir ? spoolDir : get_PKGLOC()), &pkgdev) ||
pkgdev.dirname == NULL) {
pkgdir = pkgdev.dirname;
repeat = ((optind >= argc) && pkgdev.mount);
if (pkgdev.mount) {
if (n = pkgmount(&pkgdev, NULL, 0, 0, 1)) {
if (chdir(pkgdev.dirname)) {
progerr(ERR_CHDIR, pkgdev.dirname);
catg_arg, category, &pkgdev);
PSTR(pkgdev.dirname));
progerr(ERR_NOPKGS, pkgdev.dirname);
pkgdev.dirname, n);
altBinDir, pkgdev.dirname, spoolDir, noZones);
if (pkgdev.mount) {
if (pkgumount(&pkgdev)) {
progerr(ERR_PKGUNMOUNT, pkgdev.bdevice);
if (pkgdev.mount) {
(void) pkgumount(&pkgdev);
extern struct pkgdev pkgdev; /* holds info about the installation device */
devtype(char *alias, struct pkgdev *devp)
extern int devtype(char *alias, struct pkgdev *devp);
extern int pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts,
extern int pkgumount(struct pkgdev *devp);
pkgumount(struct pkgdev *devp)
pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts, int getvolflg)
static struct pkgdev srcdev, dstdev;