diff options
Diffstat (limited to 'usr/src/lib')
-rw-r--r-- | usr/src/lib/libadm/common/mapfile-vers | 1 | ||||
-rw-r--r-- | usr/src/lib/libadm/common/pkginfo.c | 130 | ||||
-rw-r--r-- | usr/src/lib/libadm/common/pkgnmchk.c | 29 | ||||
-rw-r--r-- | usr/src/lib/libadm/common/pkgparam.c | 14 | ||||
-rw-r--r-- | usr/src/lib/libadm/inc/libadm.h | 3 |
5 files changed, 11 insertions, 166 deletions
diff --git a/usr/src/lib/libadm/common/mapfile-vers b/usr/src/lib/libadm/common/mapfile-vers index 78db9864f1..914a9f530d 100644 --- a/usr/src/lib/libadm/common/mapfile-vers +++ b/usr/src/lib/libadm/common/mapfile-vers @@ -129,7 +129,6 @@ SYMBOL_VERSION SUNWprivate_1.1 { get_install_root; get_PKGADM; get_PKGLOC; - get_PKGOLD; getvol; _getvol; listdev; diff --git a/usr/src/lib/libadm/common/pkginfo.c b/usr/src/lib/libadm/common/pkginfo.c index f6d4e72ee4..c6f165a531 100644 --- a/usr/src/lib/libadm/common/pkginfo.c +++ b/usr/src/lib/libadm/common/pkginfo.c @@ -28,7 +28,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ /*LINTLIBRARY*/ /* 5-20-92 added newroot functions */ @@ -50,9 +49,7 @@ #include "libadm.h" static void initpkg(struct pkginfo *); -static char *svr4inst(char *); static int rdconfig(struct pkginfo *, char *, char *); -static int svr4info(struct pkginfo *, char *, char *); static int ckinfo(char *, char *, char *); static int ckinst(char *, char *, char *, char *, char *); static int verscmp(char *, char *); @@ -199,9 +196,6 @@ rdconfig(struct pkginfo *info, char *pkginst, char *ckvers) int count; if ((fp = pkginfopen(pkgdir, pkginst)) == NULL) { - if ((errno == ENOENT) && strcmp(pkgdir, get_PKGLOC()) == 0) - return (svr4info(info, pkginst, ckvers)); - errno = EACCES; return (-1); } @@ -271,74 +265,6 @@ rdconfig(struct pkginfo *info, char *pkginst, char *ckvers) } static int -svr4info(struct pkginfo *info, char *pkginst, char *ckvers) -{ - static DIR *pdirfp; - struct stat64 status; - FILE *fp; - char *pt, path[128], line[128]; - char temp[PKGSIZ+1]; - - if (strcmp(pkginst, "all")) { - if (pdirfp) { - (void) closedir(pdirfp); - pdirfp = NULL; - } - /* determine pkginst - remove '.*' extension, if any */ - (void) strncpy(temp, pkginst, PKGSIZ); - if (((pt = strchr(temp, '.')) != NULL) && strcmp(pt, ".*") == 0) - *pt = '\0'; - } - - /* look in /usr/options direcotry for 'name' file */ - (void) sprintf(path, "%s/%s.name", get_PKGOLD(), temp); - if (lstat64(path, &status)) { - errno = (errno == ENOENT) ? ESRCH : EACCES; - return (-1); - } - if ((status.st_mode & S_IFMT) != S_IFREG) { - errno = ESRCH; - return (-1); - } - if ((fp = fopen(path, "r")) == NULL) { - errno = (errno == ENOENT) ? ESRCH : EACCES; - return (-1); - } - - /* /usr/options/xxx.name exists */ - (void) fgets(line, 128, fp); - (void) fclose(fp); - if (pt = strchr(line, '\n')) - *pt = '\0'; /* remove trailing newline */ - if (pt = strchr(line, ':')) - *pt++ = '\0'; /* assumed version specification */ - - if (info) { - info->name = strdup(line); - info->pkginst = strdup(temp); - if (!info->name || !info->pkginst) { - errno = ENOMEM; - return (-1); - } - info->status = PI_PRESVR4; - info->version = NULL; - } - - if (pt) { - /* eat leading space off of version spec */ - while (isspace((unsigned char)*pt)) - pt++; - } - if (ckvers && verscmp(ckvers, pt)) { - errno = ESRCH; - return (-1); - } - if (info && *pt) - info->version = strdup(pt); - return (0); -} - -static int ckinst(char *pkginst, char *pkgarch, char *pkgvers, char *ckarch, char *ckvers) { if (ckarch && archcmp(ckarch, pkgarch)) @@ -372,7 +298,6 @@ fpkginst(char *pkg, ...) (void) closedir(pdirfp); pdirfp = NULL; } - (void) svr4inst(NULL); /* close any files used here */ return (NULL); } @@ -406,67 +331,12 @@ fpkginst(char *pkg, ...) return (pkginst); } - /* - * If we are searching the directory which contains info about - * installed packages, check the pre-svr4 directory for an instance - * and be sure it matches any version specification provided to us - */ - if (strcmp(pkgdir, get_PKGLOC()) == 0 && (ckarch == NULL)) { - /* search for pre-SVR4 instance */ - if (pt = svr4inst(pkg)) - return (pt); - } errno = ESRCH; /* close any file we might have open */ (void) closedir(pdirfp); pdirfp = NULL; return (NULL); } -/*ARGSUSED*/ - -static char * -svr4inst(char *pkg) -{ - static char pkginst[PKGSIZ]; - static DIR *pdirfp; - struct dirent64 *dp; - struct stat64 status; /* file status buffer */ - char *pt; - char path[PATH_MAX]; - - if (pkg == NULL) { - if (pdirfp) { - (void) closedir(pdirfp); - pdirfp = NULL; - } - return (NULL); - } - - if (!pdirfp && ((pdirfp = opendir(get_PKGOLD())) == NULL)) - return (NULL); - - while ((dp = readdir64(pdirfp)) != NULL) { - if (dp->d_name[0] == '.') - continue; - pt = strchr(dp->d_name, '.'); - if (pt && strcmp(pt, ".name") == 0) { - /* the pkgnmchk function works on .name extensions */ - if (pkgnmchk(dp->d_name, pkg, 1)) - continue; - (void) sprintf(path, "%s/%s", get_PKGOLD(), dp->d_name); - if (lstat64(path, &status)) - continue; - if ((status.st_mode & S_IFMT) != S_IFREG) - continue; - *pt = '\0'; - (void) strcpy(pkginst, dp->d_name); - return (pkginst); - } - } - (void) closedir(pdirfp); - pdirfp = NULL; - return (NULL); -} static int verscmp(char *request, char *actual) diff --git a/usr/src/lib/libadm/common/pkgnmchk.c b/usr/src/lib/libadm/common/pkgnmchk.c index 905285dcc7..3f41492f10 100644 --- a/usr/src/lib/libadm/common/pkgnmchk.c +++ b/usr/src/lib/libadm/common/pkgnmchk.c @@ -28,12 +28,12 @@ * All rights reserved. */ -#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ /*LINTLIBRARY*/ #include <string.h> #include <ctype.h> #include <sys/types.h> +#include <note.h> #include "libadm.h" static char *rsvrd[] = { @@ -46,14 +46,13 @@ static char *rsvrd[] = { #define NMBRK ".*" #define WILD1 ".*" #define WILD2 "*" -#define WILD3 ".name" #define ABI_NAMELNGTH 9 #define NON_ABI_NAMELNGTH 32 static int abi_namelngth = 0; static int -valname(char *pkg, int wild, int presvr4flg) +valname(char *pkg, int wild) { int count, i, n; char *pt; @@ -71,14 +70,12 @@ valname(char *pkg, int wild, int presvr4flg) } /* - * check for valid extensions; we must do this - * first since we need to look for SVR3 ".name" + * check for valid extensions; we used to do this + * first since we needed to look for SVR3 ".name" * before we validate the package abbreviation */ if (pt = strpbrk(pkg, NMBRK)) { - if (presvr4flg && (strcmp(pt, WILD3) == 0)) - return (0); /* SVR3 packages have no validation */ - else if ((strcmp(pt, WILD1) == 0) || (strcmp(pt, WILD2) == 0)) { + if ((strcmp(pt, WILD1) == 0) || (strcmp(pt, WILD2) == 0)) { /* wildcard specification */ if (!wild) return (1); @@ -98,8 +95,7 @@ valname(char *pkg, int wild, int presvr4flg) /* check for valid package name */ count = 0; - if (!isalnum((unsigned char)*pkg) || - (!presvr4flg && !isalpha((unsigned char)*pkg))) + if (!isalpha((unsigned char)*pkg)) return (-1); while (*pkg && !strchr(NMBRK, *pkg)) { if (!isalnum((unsigned char)*pkg) && !strpbrk(pkg, "-+")) @@ -121,6 +117,8 @@ valname(char *pkg, int wild, int presvr4flg) int pkgnmchk(char *pkg, char *spec, int presvr4flg) { + _NOTE(ARGUNUSED(presvr4flg)); + /* pkg is assumed to be non-NULL upon entry */ /* @@ -131,28 +129,23 @@ pkgnmchk(char *pkg, char *spec, int presvr4flg) * "x*" pkg must be valid and must be an instance of "x" */ - if (valname(pkg, ((spec == NULL) ? 1 : 0), presvr4flg)) + if (valname(pkg, ((spec == NULL) ? 1 : 0))) return (1); /* invalid or reserved name */ if ((spec == NULL) || (strcmp(spec, "all") == 0)) return (0); while (*pkg == *spec) { - if ((strcmp(spec, WILD1) == 0) || (strcmp(spec, WILD2) == 0) || - (strcmp(spec, WILD3) == 0)) + if ((strcmp(spec, WILD1) == 0) || (strcmp(spec, WILD2) == 0)) break; /* wildcard spec, so stop right here */ else if (*pkg++ == '\0') return (0); /* identical match */ spec++; } - if ((strcmp(spec, WILD1) == 0) || (strcmp(spec, WILD2) == 0) || - (strcmp(spec, WILD3) == 0)) { + if ((strcmp(spec, WILD1) == 0) || (strcmp(spec, WILD2) == 0)) if ((pkg[0] == '\0') || (pkg[0] == '.')) return (0); - } - if ((spec[0] == '\0') && (strcmp(pkg, WILD3) == 0)) - return (0); /* compare pkg.name to pkg */ return (1); } diff --git a/usr/src/lib/libadm/common/pkgparam.c b/usr/src/lib/libadm/common/pkgparam.c index 0a086379d2..d43f717554 100644 --- a/usr/src/lib/libadm/common/pkgparam.c +++ b/usr/src/lib/libadm/common/pkgparam.c @@ -26,7 +26,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ /*LINTLIBRARY*/ /* 5-20-92 newroot support added */ @@ -55,7 +54,6 @@ static char *pkg_inst_root = NULL; char *pkgdir = NULL; char *pkgfile = NULL; -static char Adm_pkgold[PATH_MAX] = { 0 }; /* added for newroot */ static char Adm_pkgloc[PATH_MAX] = { 0 }; /* added for newroot */ static char Adm_pkgadm[PATH_MAX] = { 0 }; /* added for newroot */ @@ -393,16 +391,13 @@ set_PKGpaths(char *path) { if (path && *path) { (void) sprintf(Adm_pkgloc, "%s%s", path, PKGLOC); - (void) sprintf(Adm_pkgold, "%s%s", path, PKGOLD); (void) sprintf(Adm_pkgadm, "%s%s", path, PKGADM); set_install_root(path); } else { (void) sprintf(Adm_pkgloc, "%s", PKGLOC); - (void) sprintf(Adm_pkgold, "%s", PKGOLD); (void) sprintf(Adm_pkgadm, "%s", PKGADM); } canonize_name(Adm_pkgloc); - canonize_name(Adm_pkgold); canonize_name(Adm_pkgadm); pkgdir = Adm_pkgloc; } @@ -417,15 +412,6 @@ get_PKGLOC(void) } char * -get_PKGOLD(void) -{ - if (Adm_pkgold[0] == NULL) - return (PKGOLD); - else - return (Adm_pkgold); -} - -char * get_PKGADM(void) { if (Adm_pkgadm[0] == NULL) diff --git a/usr/src/lib/libadm/inc/libadm.h b/usr/src/lib/libadm/inc/libadm.h index 68927cfb96..881819e04d 100644 --- a/usr/src/lib/libadm/inc/libadm.h +++ b/usr/src/lib/libadm/inc/libadm.h @@ -32,8 +32,6 @@ #ifndef _LIBADM_H #define _LIBADM_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include <valtools.h> #include <stdio.h> #include <pkginfo.h> @@ -99,7 +97,6 @@ extern char *fpkginst(char *, ...); extern char *fpkgparam(FILE *, char *); extern char *get_PKGADM(void); extern char *get_PKGLOC(void); -extern char *get_PKGOLD(void); extern int getinput(char *); extern char *getfullblkname(char *); extern char *getfullrawname(char *); |