5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * CDDL HEADER START
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * The contents of this file are subject to the terms of the
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Common Development and Distribution License (the "License").
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * You may not use this file except in compliance with the License.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * or http://www.opensolaris.org/os/licensing.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * See the License for the specific language governing permissions
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * and limitations under the License.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * When distributing Covered Code, include this CDDL HEADER in each
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * If applicable, add the following below this CDDL HEADER, with the
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * fields enclosed by brackets "[]" replaced with your own identifying
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * information: Portions Copyright [yyyy] [name of copyright owner]
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland *
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * CDDL HEADER END
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * Use is subject to license terms.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifndef _CFEXT_H
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#define _CFEXT_H
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifdef __cplusplus
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandextern "C" {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#include <pkgstrct.h>
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct mergstat {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned setuid:1; /* pkgmap entry has setuid */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned setgid:1; /* ... and/or setgid bit set */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned contchg:1; /* contents of the files different */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned attrchg:1; /* attributes are different */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned shared:1; /* > 1 pkg associated with this */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned osetuid:1; /* installed set[ug]id process ... */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned osetgid:1; /* ... being overwritten by pkg. */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned rogue:1; /* conflicting file not owned by a package */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned dir2nondir:1; /* was a directory & now a non-directory */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned replace:1; /* merge makes no sense for this object pair */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned denied:1; /* for some reason this was not allowed in */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned preloaded:1; /* already checked in a prior pkg op */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned processed:1; /* already installed or removed */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland unsigned parentsyml2dir:1;
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland /* parent directory changed from symlink to a directory */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland/*
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * This is information required by pkgadd for fast operation. A
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * cfextra struct is tagged to each cfent structure requiring
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * processing. This is how we avoid some unneeded repetition. The
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * entries incorporating the word 'local' refer to the path that
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * gets us to the delivered package file. In other words, to install
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * a file we usually copy from 'local' to 'path' below. In the case
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * of a link, where no actual copying takes place, local is the source
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * of the link. Note that environment variables are not evaluated in
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * the locals unless they are links since the literal path is how
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland * pkgadd finds the entry under the reloc directory.
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterlandstruct cfextra {
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland struct cfent cf_ent; /* basic contents file entry */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland struct mergstat mstat; /* merge status for installs */
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkert uint32_t fsys_value; /* fstab[] entry index */
e47aa97b65b6eaa7016357de7fb7974c1982858cSimon Klinkert uint32_t fsys_base; /* actual base filesystem in fs_tab[] */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *client_path; /* the client-relative path */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *server_path; /* the server-relative path */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *map_path; /* as read from the pkgmap */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *client_local; /* client_relative local */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland char *server_local; /* server relative local */
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland};
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#ifdef __cplusplus
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland}
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland
5c51f1241dbbdf2656d0e10011981411ed0c9673Moriah Waterland#endif /* _CFEXT_H */