git: 30c30e220af3 - main - pax: remove 4.4BSD compatibility
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 13 Sep 2022 15:38:30 UTC
The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=30c30e220af30fbe8896a2bc4769b9ffd7fb43fb commit 30c30e220af30fbe8896a2bc4769b9ffd7fb43fb Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2022-09-13 14:26:54 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2022-09-13 15:36:37 +0000 pax: remove 4.4BSD compatibility Sponsored by: Klara, Inc. --- bin/pax/Makefile | 24 --------------- bin/pax/ar_io.c | 10 ------ bin/pax/cache.c | 8 ----- bin/pax/cpio.c | 34 --------------------- bin/pax/extern.h | 2 -- bin/pax/ftree.c | 25 --------------- bin/pax/gen_subs.c | 11 ------- bin/pax/options.c | 5 --- bin/pax/pat_rep.c | 90 ------------------------------------------------------ bin/pax/pat_rep.h | 4 --- bin/pax/sel_subs.c | 8 ----- bin/pax/tar.c | 24 --------------- 12 files changed, 245 deletions(-) diff --git a/bin/pax/Makefile b/bin/pax/Makefile index d0772ee49766..500b6f1f7fd0 100644 --- a/bin/pax/Makefile +++ b/bin/pax/Makefile @@ -3,30 +3,6 @@ .include <src.opts.mk> -# To install on versions prior to BSD 4.4 the following may have to be -# defined with CFLAGS += -# -# -DNET2_STAT Use NET2 or older stat structure. The version of the -# stat structure is easily determined by looking at the -# basic type of an off_t (often defined in the file: -# /usr/include/sys/types.h). If off_t is a long (and is -# NOT A quad) then you must define NET2_STAT. -# This define is important, as if you do have a quad_t -# off_t and define NET2_STAT, pax will compile but will -# NOT RUN PROPERLY. -# -# -DNET2_FTS Use the older NET2 fts. To identify the version, -# examine the file: /usr/include/fts.h. If FTS_COMFOLLOW -# is not defined then you must define NET2_FTS. -# Pax may not compile if this not (un)defined properly. -# -# -DNET2_REGEX Use the older regexp.h not regex.h. The regex version -# is determined by looking at the value returned by -# regexec() (man 3 regexec). If regexec return a 1 for -# success (and NOT a 0 for success) you have the older -# regex routines and must define NET2_REGEX. -# Pax may not compile if this not (un)defined properly. - PACKAGE=runtime PROG= pax SRCS= ar_io.c ar_subs.c buf_subs.c cache.c cpio.c file_subs.c ftree.c \ diff --git a/bin/pax/ar_io.c b/bin/pax/ar_io.c index 6271944703ff..e00d6f0457f6 100644 --- a/bin/pax/ar_io.c +++ b/bin/pax/ar_io.c @@ -386,13 +386,8 @@ ar_close(void) * could have written anything yet. */ if (frmt == NULL) { -# ifdef NET2_STAT - (void)fprintf(listf, "%s: unknown format, %lu bytes skipped.\n", - argv0, rdcnt); -# else (void)fprintf(listf, "%s: unknown format, %ju bytes skipped.\n", argv0, (uintmax_t)rdcnt); -# endif (void)fflush(listf); flcnt = 0; return; @@ -403,14 +398,9 @@ ar_close(void) (unsigned long long)((rdcnt ? rdcnt : wrcnt) / 5120)); else if (strcmp(NM_TAR, argv0) != 0) (void)fprintf(listf, -# ifdef NET2_STAT - "%s: %s vol %d, %lu files, %lu bytes read, %lu bytes written.\n", - argv0, frmt->name, arvol-1, flcnt, rdcnt, wrcnt); -# else "%s: %s vol %d, %ju files, %ju bytes read, %ju bytes written.\n", argv0, frmt->name, arvol-1, (uintmax_t)flcnt, (uintmax_t)rdcnt, (uintmax_t)wrcnt); -# endif (void)fflush(listf); flcnt = 0; } diff --git a/bin/pax/cache.c b/bin/pax/cache.c index 980d7bccc217..5e55e70be851 100644 --- a/bin/pax/cache.c +++ b/bin/pax/cache.c @@ -211,12 +211,8 @@ name_uid(uid_t uid, int frc) return(""); ptr->uid = uid; ptr->valid = INVALID; -# ifdef NET2_STAT - (void)snprintf(ptr->name, sizeof(ptr->name), "%u", uid); -# else (void)snprintf(ptr->name, sizeof(ptr->name), "%lu", (unsigned long)uid); -# endif if (frc == 0) return(""); } else { @@ -282,12 +278,8 @@ name_gid(gid_t gid, int frc) return(""); ptr->gid = gid; ptr->valid = INVALID; -# ifdef NET2_STAT - (void)snprintf(ptr->name, sizeof(ptr->name), "%u", gid); -# else (void)snprintf(ptr->name, sizeof(ptr->name), "%lu", (unsigned long)gid); -# endif if (frc == 0) return(""); } else { diff --git a/bin/pax/cpio.c b/bin/pax/cpio.c index a47b7fd7a823..f16162efffe7 100644 --- a/bin/pax/cpio.c +++ b/bin/pax/cpio.c @@ -216,13 +216,8 @@ rd_ln_nm(ARCHD *arcn) */ if ((arcn->sb.st_size == 0) || ((size_t)arcn->sb.st_size >= sizeof(arcn->ln_name))) { -# ifdef NET2_STAT - paxwarn(1, "Cpio link name length is invalid: %lu", - arcn->sb.st_size); -# else paxwarn(1, "Cpio link name length is invalid: %ju", (uintmax_t)arcn->sb.st_size); -# endif return(-1); } @@ -302,21 +297,11 @@ cpio_rd(ARCHD *arcn, char *buf) arcn->sb.st_nlink = (nlink_t)asc_ul(hd->c_nlink, sizeof(hd->c_nlink), OCT); arcn->sb.st_rdev = (dev_t)asc_ul(hd->c_rdev, sizeof(hd->c_rdev), OCT); -#ifdef NET2_STAT - arcn->sb.st_mtime = (time_t)asc_ul(hd->c_mtime, sizeof(hd->c_mtime), - OCT); -#else arcn->sb.st_mtime = (time_t)asc_uqd(hd->c_mtime, sizeof(hd->c_mtime), OCT); -#endif arcn->sb.st_ctime = arcn->sb.st_atime = arcn->sb.st_mtime; -#ifdef NET2_STAT - arcn->sb.st_size = (off_t)asc_ul(hd->c_filesize,sizeof(hd->c_filesize), - OCT); -#else arcn->sb.st_size = (off_t)asc_uqd(hd->c_filesize,sizeof(hd->c_filesize), OCT); -#endif /* * check name size and if valid, read in the name of this entry (name @@ -411,13 +396,8 @@ cpio_wr(ARCHD *arcn) /* * set data size for file data */ -# ifdef NET2_STAT - if (ul_asc((u_long)arcn->sb.st_size, hd->c_filesize, - sizeof(hd->c_filesize), OCT)) { -# else if (uqd_asc((u_quad_t)arcn->sb.st_size, hd->c_filesize, sizeof(hd->c_filesize), OCT)) { -# endif paxwarn(1,"File is too large for cpio format %s", arcn->org_name); return(1); @@ -593,19 +573,10 @@ vcpio_rd(ARCHD *arcn, char *buf) arcn->sb.st_mode = (mode_t)asc_ul(hd->c_mode, sizeof(hd->c_mode), HEX); arcn->sb.st_uid = (uid_t)asc_ul(hd->c_uid, sizeof(hd->c_uid), HEX); arcn->sb.st_gid = (gid_t)asc_ul(hd->c_gid, sizeof(hd->c_gid), HEX); -#ifdef NET2_STAT - arcn->sb.st_mtime = (time_t)asc_ul(hd->c_mtime,sizeof(hd->c_mtime),HEX); -#else arcn->sb.st_mtime = (time_t)asc_uqd(hd->c_mtime,sizeof(hd->c_mtime),HEX); -#endif arcn->sb.st_ctime = arcn->sb.st_atime = arcn->sb.st_mtime; -#ifdef NET2_STAT - arcn->sb.st_size = (off_t)asc_ul(hd->c_filesize, - sizeof(hd->c_filesize), HEX); -#else arcn->sb.st_size = (off_t)asc_uqd(hd->c_filesize, sizeof(hd->c_filesize), HEX); -#endif arcn->sb.st_nlink = (nlink_t)asc_ul(hd->c_nlink, sizeof(hd->c_nlink), HEX); devmajor = (dev_t)asc_ul(hd->c_maj, sizeof(hd->c_maj), HEX); @@ -740,13 +711,8 @@ vcpio_wr(ARCHD *arcn) * much to pad. */ arcn->pad = VCPIO_PAD(arcn->sb.st_size); -# ifdef NET2_STAT - if (ul_asc((u_long)arcn->sb.st_size, hd->c_filesize, - sizeof(hd->c_filesize), HEX)) { -# else if (uqd_asc((u_quad_t)arcn->sb.st_size, hd->c_filesize, sizeof(hd->c_filesize), HEX)) { -# endif paxwarn(1,"File is too large for sv4cpio format %s", arcn->org_name); return(1); diff --git a/bin/pax/extern.h b/bin/pax/extern.h index ec171f2d177c..12b7fe162a6e 100644 --- a/bin/pax/extern.h +++ b/bin/pax/extern.h @@ -169,10 +169,8 @@ void ls_tty(ARCHD *); int l_strncpy(char *, const char *, int); u_long asc_ul(char *, int, int); int ul_asc(u_long, char *, int, int); -#ifndef NET2_STAT u_quad_t asc_uqd(char *, int, int); int uqd_asc(u_quad_t, char *, int, int); -#endif /* * getoldopt.c diff --git a/bin/pax/ftree.c b/bin/pax/ftree.c index 26df8164bc2d..da0d72998975 100644 --- a/bin/pax/ftree.c +++ b/bin/pax/ftree.c @@ -115,11 +115,7 @@ ftree_start(void) else ftsopts |= FTS_PHYSICAL; if (Hflag) -# ifdef NET2_FTS - paxwarn(0, "The -H flag is not supported on this version"); -# else ftsopts |= FTS_COMFOLLOW; -# endif if (Xflag) ftsopts |= FTS_XDEV; @@ -402,13 +398,8 @@ next_file(ARCHD *arcn) * remember to force the time (this is -t on a read * directory, not a created directory). */ -# ifdef NET2_FTS - if (!tflag || (get_atdir(ftent->fts_statb.st_dev, - ftent->fts_statb.st_ino, &mtime, &atime) < 0)) -# else if (!tflag || (get_atdir(ftent->fts_statp->st_dev, ftent->fts_statp->st_ino, &mtime, &atime) < 0)) -# endif continue; set_ftime(ftent->fts_path, mtime, atime, 1); continue; @@ -419,28 +410,16 @@ next_file(ARCHD *arcn) paxwarn(1,"File system cycle found at %s",ftent->fts_path); continue; case FTS_DNR: -# ifdef NET2_FTS - syswarn(1, errno, -# else syswarn(1, ftent->fts_errno, -# endif "Unable to read directory %s", ftent->fts_path); continue; case FTS_ERR: -# ifdef NET2_FTS - syswarn(1, errno, -# else syswarn(1, ftent->fts_errno, -# endif "File system traversal error"); continue; case FTS_NS: case FTS_NSOK: -# ifdef NET2_FTS - syswarn(1, errno, -# else syswarn(1, ftent->fts_errno, -# endif "Unable to access %s", ftent->fts_path); continue; } @@ -453,11 +432,7 @@ next_file(ARCHD *arcn) arcn->pad = 0; arcn->ln_nlen = 0; arcn->ln_name[0] = '\0'; -# ifdef NET2_FTS - arcn->sb = ftent->fts_statb; -# else arcn->sb = *(ftent->fts_statp); -# endif /* * file type based set up and copy into the arcn struct diff --git a/bin/pax/gen_subs.c b/bin/pax/gen_subs.c index f91aaff7b809..b8cb437405a7 100644 --- a/bin/pax/gen_subs.c +++ b/bin/pax/gen_subs.c @@ -119,19 +119,10 @@ ls_list(ARCHD *arcn, time_t now, FILE *fp) * print device id's for devices, or sizes for other nodes */ if ((arcn->type == PAX_CHR) || (arcn->type == PAX_BLK)) -# ifdef NET2_STAT - (void)fprintf(fp, "%4u,%4u ", MAJOR(sbp->st_rdev), - MINOR(sbp->st_rdev)); -# else (void)fprintf(fp, "%4lu,%4lu ", (unsigned long)MAJOR(sbp->st_rdev), (unsigned long)MINOR(sbp->st_rdev)); -# endif else { -# ifdef NET2_STAT - (void)fprintf(fp, "%9lu ", sbp->st_size); -# else (void)fprintf(fp, "%9ju ", (uintmax_t)sbp->st_size); -# endif } /* @@ -300,7 +291,6 @@ ul_asc(u_long val, char *str, int len, int base) return(0); } -#ifndef NET2_STAT /* * asc_uqd() * convert hex/octal character string into a u_quad_t. We do not have to @@ -396,4 +386,3 @@ uqd_asc(u_quad_t val, char *str, int len, int base) return(-1); return(0); } -#endif diff --git a/bin/pax/options.c b/bin/pax/options.c index 4ec02d80d55c..280a52a86d6c 100644 --- a/bin/pax/options.c +++ b/bin/pax/options.c @@ -1434,13 +1434,8 @@ str_offt(char *val) char *expr; off_t num, t; -# ifdef NET2_STAT - num = strtol(val, &expr, 0); - if ((num == LONG_MAX) || (num <= 0) || (expr == val)) -# else num = strtoq(val, &expr, 0); if ((num == QUAD_MAX) || (num <= 0) || (expr == val)) -# endif return(0); switch(*expr) { diff --git a/bin/pax/pat_rep.c b/bin/pax/pat_rep.c index 0dfa630050ea..ee683341d099 100644 --- a/bin/pax/pat_rep.c +++ b/bin/pax/pat_rep.c @@ -46,11 +46,7 @@ __FBSDID("$FreeBSD$"); #include <stdio.h> #include <string.h> #include <stdlib.h> -#ifdef NET2_REGEX -#include <regexp.h> -#else #include <regex.h> -#endif #include "pax.h" #include "pat_rep.h" #include "extern.h" @@ -73,11 +69,7 @@ static int tty_rename(ARCHD *); static int fix_path(char *, int *, char *, int); static int fn_match(char *, char *, char **); static char * range_match(char *, int); -#ifdef NET2_REGEX -static int resub(regexp *, char *, char *, char *); -#else static int resub(regex_t *, regmatch_t *, char *, char *, char *, char *); -#endif /* * rep_add() @@ -101,10 +93,8 @@ rep_add(char *str) char *pt1; char *pt2; REPLACE *rep; -# ifndef NET2_REGEX int res; char rebuf[BUFSIZ]; -# endif /* * throw out the bad parameters @@ -133,13 +123,9 @@ rep_add(char *str) } *pt1 = '\0'; -# ifdef NET2_REGEX - if ((rep->rcmp = regcomp(str+1)) == NULL) { -# else if ((res = regcomp(&(rep->rcmp), str+1, 0)) != 0) { regerror(res, &(rep->rcmp), rebuf, sizeof(rebuf)); paxwarn(1, "%s while compiling regular expression %s", rebuf, str); -# endif free(rep); return(-1); } @@ -151,11 +137,7 @@ rep_add(char *str) */ *pt1++ = *str; if ((pt2 = strchr(pt1, *str)) == NULL) { -# ifdef NET2_REGEX - free(rep->rcmp); -# else regfree(&rep->rcmp); -# endif free(rep); paxwarn(1, "Invalid replacement string %s", str); return(-1); @@ -180,11 +162,7 @@ rep_add(char *str) rep->flgs |= PRNT; break; default: -# ifdef NET2_REGEX - free(rep->rcmp); -# else regfree(&rep->rcmp); -# endif free(rep); *pt1 = *str; paxwarn(1, "Invalid replacement string option %s", str); @@ -865,9 +843,7 @@ rep_name(char *name, int *nlen, int prnt) char *rpt; int found = 0; int res; -# ifndef NET2_REGEX regmatch_t pm[MAXSUBEXP]; -# endif char nname[PAXPATHLEN+1]; /* final result of all replacements */ char buf1[PAXPATHLEN+1]; /* where we work on the name */ @@ -894,11 +870,7 @@ rep_name(char *name, int *nlen, int prnt) * check for a successful substitution, if not go to * the next pattern, or cleanup if we were global */ -# ifdef NET2_REGEX - if (regexec(pt->rcmp, inpt) == 0) -# else if (regexec(&(pt->rcmp), inpt, MAXSUBEXP, pm, 0) != 0) -# endif break; /* @@ -909,11 +881,7 @@ rep_name(char *name, int *nlen, int prnt) * do not create a string too long). */ found = 1; -# ifdef NET2_REGEX - rpt = pt->rcmp->startp[0]; -# else rpt = inpt + pm[0].rm_so; -# endif while ((inpt < rpt) && (outpt < endpt)) *outpt++ = *inpt++; @@ -926,12 +894,8 @@ rep_name(char *name, int *nlen, int prnt) * replacement string and place it the prefix in the * final output. If we have problems, skip it. */ -# ifdef NET2_REGEX - if ((res = resub(pt->rcmp,pt->nstr,outpt,endpt)) < 0) { -# else if ((res = resub(&(pt->rcmp),pm,inpt,pt->nstr,outpt,endpt)) < 0) { -# endif if (prnt) paxwarn(1, "Replacement name error %s", name); @@ -949,11 +913,7 @@ rep_name(char *name, int *nlen, int prnt) * the final result. Make sure we do not overrun the * output buffer */ -# ifdef NET2_REGEX - inpt = pt->rcmp->endp[0]; -# else inpt += pm[0].rm_eo - pm[0].rm_so; -# endif if ((outpt == endpt) || (*inpt == '\0')) break; @@ -1012,55 +972,6 @@ rep_name(char *name, int *nlen, int prnt) return(0); } -#ifdef NET2_REGEX -/* - * resub() - * apply the replacement to the matched expression. expand out the old - * style ed(1) subexpression expansion. - * Return: - * -1 if error, or the number of characters added to the destination. - */ - -static int -resub(regexp *prog, char *src, char *dest, char *destend) -{ - char *spt; - char *dpt; - char c; - int no; - int len; - - spt = src; - dpt = dest; - while ((dpt < destend) && ((c = *spt++) != '\0')) { - if (c == '&') - no = 0; - else if ((c == '\\') && (*spt >= '0') && (*spt <= '9')) - no = *spt++ - '0'; - else { - if ((c == '\\') && ((*spt == '\\') || (*spt == '&'))) - c = *spt++; - *dpt++ = c; - continue; - } - if ((prog->startp[no] == NULL) || (prog->endp[no] == NULL) || - ((len = prog->endp[no] - prog->startp[no]) <= 0)) - continue; - - /* - * copy the subexpression to the destination. - * fail if we run out of space or the match string is damaged - */ - if (len > (destend - dpt)) - len = destend - dpt; - if (l_strncpy(dpt, prog->startp[no], len) != len) - return(-1); - dpt += len; - } - return(dpt - dest); -} - -#else /* * resub() @@ -1127,4 +1038,3 @@ resub(regex_t *rp, regmatch_t *pm, char *orig, char *src, char *dest, } return(dpt - dest); } -#endif diff --git a/bin/pax/pat_rep.h b/bin/pax/pat_rep.h index 7def28d36e30..e28064e6a08e 100644 --- a/bin/pax/pat_rep.h +++ b/bin/pax/pat_rep.h @@ -41,11 +41,7 @@ */ typedef struct replace { char *nstr; /* the new string we will substitute with */ -# ifdef NET2_REGEX - regexp *rcmp; /* compiled regular expression used to match */ -# else regex_t rcmp; /* compiled regular expression used to match */ -# endif int flgs; /* print conversions? global in operation? */ #define PRNT 0x1 #define GLOB 0x2 diff --git a/bin/pax/sel_subs.c b/bin/pax/sel_subs.c index 4c0d09e4eb7f..f1e644a55ac9 100644 --- a/bin/pax/sel_subs.c +++ b/bin/pax/sel_subs.c @@ -134,11 +134,7 @@ usr_add(char *str) } uid = (uid_t)pw->pw_uid; } else -# ifdef NET2_STAT - uid = (uid_t)atoi(str+1); -# else uid = (uid_t)strtoul(str+1, NULL, 10); -# endif endpwent(); /* @@ -235,11 +231,7 @@ grp_add(char *str) } gid = gr->gr_gid; } else -# ifdef NET2_STAT - gid = (gid_t)atoi(str+1); -# else gid = (gid_t)strtoul(str+1, NULL, 10); -# endif endgrent(); /* diff --git a/bin/pax/tar.c b/bin/pax/tar.c index 3a458223bddd..41cdb1f0d2e7 100644 --- a/bin/pax/tar.c +++ b/bin/pax/tar.c @@ -57,9 +57,7 @@ __FBSDID("$FreeBSD$"); static u_long tar_chksm(char *, int); static char *name_split(char *, int); static int ul_oct(u_long, char *, int, int); -#ifndef NET2_STAT static int uqd_oct(u_quad_t, char *, int, int); -#endif /* * Routines common to all versions of tar @@ -190,7 +188,6 @@ ul_oct(u_long val, char *str, int len, int term) return(0); } -#ifndef NET2_STAT /* * uqd_oct() * convert an u_quad_t to an octal string. one of many oddball field @@ -244,7 +241,6 @@ uqd_oct(u_quad_t val, char *str, int len, int term) return(-1); return(0); } -#endif /* * tar_chksm() @@ -399,13 +395,8 @@ tar_rd(ARCHD *arcn, char *buf) 0xfff); arcn->sb.st_uid = (uid_t)asc_ul(hd->uid, sizeof(hd->uid), OCT); arcn->sb.st_gid = (gid_t)asc_ul(hd->gid, sizeof(hd->gid), OCT); -#ifdef NET2_STAT - arcn->sb.st_size = (off_t)asc_ul(hd->size, sizeof(hd->size), OCT); - arcn->sb.st_mtime = (time_t)asc_ul(hd->mtime, sizeof(hd->mtime), OCT); -#else arcn->sb.st_size = (off_t)asc_uqd(hd->size, sizeof(hd->size), OCT); arcn->sb.st_mtime = (time_t)asc_uqd(hd->mtime, sizeof(hd->mtime), OCT); -#endif arcn->sb.st_ctime = arcn->sb.st_atime = arcn->sb.st_mtime; /* @@ -609,13 +600,8 @@ tar_wr(ARCHD *arcn) */ hd->linkflag = AREGTYPE; memset(hd->linkname, 0, sizeof(hd->linkname)); -# ifdef NET2_STAT - if (ul_oct((u_long)arcn->sb.st_size, hd->size, - sizeof(hd->size), 1)) { -# else if (uqd_oct((u_quad_t)arcn->sb.st_size, hd->size, sizeof(hd->size), 1)) { -# endif paxwarn(1,"File is too large for tar %s", arcn->org_name); return(1); } @@ -776,13 +762,8 @@ ustar_rd(ARCHD *arcn, char *buf) */ arcn->sb.st_mode = (mode_t)(asc_ul(hd->mode, sizeof(hd->mode), OCT) & 0xfff); -#ifdef NET2_STAT - arcn->sb.st_size = (off_t)asc_ul(hd->size, sizeof(hd->size), OCT); - arcn->sb.st_mtime = (time_t)asc_ul(hd->mtime, sizeof(hd->mtime), OCT); -#else arcn->sb.st_size = (off_t)asc_uqd(hd->size, sizeof(hd->size), OCT); arcn->sb.st_mtime = (time_t)asc_uqd(hd->mtime, sizeof(hd->mtime), OCT); -#endif arcn->sb.st_ctime = arcn->sb.st_atime = arcn->sb.st_mtime; /* @@ -1011,13 +992,8 @@ ustar_wr(ARCHD *arcn) memset(hd->devmajor, 0, sizeof(hd->devmajor)); memset(hd->devminor, 0, sizeof(hd->devminor)); arcn->pad = TAR_PAD(arcn->sb.st_size); -# ifdef NET2_STAT - if (ul_oct((u_long)arcn->sb.st_size, hd->size, - sizeof(hd->size), 3)) { -# else if (uqd_oct((u_quad_t)arcn->sb.st_size, hd->size, sizeof(hd->size), 3)) { -# endif paxwarn(1,"File is too long for ustar %s",arcn->org_name); return(1); }