From owner-freebsd-ports Mon Jul 3 23: 0:50 2000 Delivered-To: freebsd-ports@freebsd.org Received: from mail.westbend.net (ns1.westbend.net [209.224.254.131]) by hub.freebsd.org (Postfix) with ESMTP id CB01137B9B6; Mon, 3 Jul 2000 23:00:24 -0700 (PDT) (envelope-from hetzels@westbend.net) Received: from admin (admin.westbend.net [209.224.254.141]) by mail.westbend.net (8.9.3/8.9.3) with SMTP id BAA55041; Tue, 4 Jul 2000 01:00:23 -0500 (CDT) (envelope-from hetzels@westbend.net) Message-ID: <014b01bfe57d$24d6e8c0$8dfee0d1@westbend.net> From: "Scot W. Hetzel" To: "Satoshi - Ports Wraith - Asami" Cc: "FreeBSD Ports" References: <200006080136.UAA19272@wbiw01.westbend.net> Subject: Re: NOPORTDOCS handling Date: Tue, 4 Jul 2000 01:00:22 -0500 Organization: West Bend Internet MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0148_01BFE553.3B38FCE0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4029.2901 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4029.2901 Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org This is a multi-part message in MIME format. ------=_NextPart_000_0148_01BFE553.3B38FCE0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit From: "Satoshi - Ports Wraith - Asami" > Has anyone tried or reviewed this patch? I'd like to get some reports > before I decide whether I go with this one or with my mini-patch to > bsd.port.mk. My version obviously won't fix the pkg_* tools so this > one, if it works as advertised, is preferable. > I have the pkg_* tools working with the new directives. Use the attached pkg_install.patch2. I added another PLIST directive, docdirrm. This directive is used to remove document directories only if "@option noportdocs" doesn't appear in +CONTENTS. I tested these tools (pkg_create, pkg_add, pkg_delete) on apache13, and everything is working as designed. The man pages still need to be updated with the new directives (@configext, @config, @doc, @docdirrm) and the use of NOPORTDOCS environment variable. Scot > From: "Scot W. Hetzel" > OK, heres a start of a patch for the pkg_* tools that suposed to handle the > @doc, @configext, and @config directives. > @document > @doc - depends on environment variable (NOPORTDOCS) being defined or > "@option noportdocs" in PLIST, when deciding if port documents are to be > packaged or installed. NOTE: When deleteing a port, we only obey "@option noportdocs" in the +CONTENTS file when deciding if there is port documentation to be deleted. @docdirrm - same function as @dirrm, except only remove doc directories if there is no "@option noportdocs" directive in the +CONTENTS file. > @configext - Config file extention, defaults to "-dist". Note: @configext > changes the default config extentions for all proceeding @config > directives. > > @config - Specifies the name of the config file without the extention. The > @configext is automatically appended to the @config filename when packaging > (NOTE: If config extentions is not "-dist", then @configext must be defined > before the @config directive." > ------=_NextPart_000_0148_01BFE553.3B38FCE0 Content-Type: application/octet-stream; name="pkg_install.patch2" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="pkg_install.patch2" Index: pkg_install/add/add.h=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/add/add.h,v=0A= retrieving revision 1.9=0A= diff -u -r1.9 add.h=0A= --- pkg_install/add/add.h 1999/08/28 01:17:55 1.9=0A= +++ pkg_install/add/add.h 2000/07/04 05:48:19=0A= @@ -37,8 +37,15 @@=0A= extern char FirstPen[];=0A= extern add_mode_t AddMode;=0A= =0A= +struct _cmdargs {=0A= + int count;=0A= + char *args;=0A= +};=0A= +typedef struct _cmdargs *CMDargs;=0A= +=0A= int make_hierarchy(char *);=0A= void extract_plist(char *, Package *);=0A= void apply_perms(char *, char *);=0A= +CMDargs new_cmdargs(void);=0A= =0A= #endif /* _INST_ADD_H_INCLUDE */=0A= Index: pkg_install/add/extract.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/add/extract.c,v=0A= retrieving revision 1.25=0A= diff -u -r1.25 extract.c=0A= --- pkg_install/add/extract.c 1999/08/28 01:17:55 1.25=0A= +++ pkg_install/add/extract.c 2000/07/04 05:48:19=0A= @@ -29,25 +29,25 @@=0A= =0A= =0A= #define STARTSTRING "tar cf - "=0A= -#define TOOBIG(str) ((strlen(str) + FILENAME_MAX + where_count > = maxargs) \=0A= - || (strlen(str) + FILENAME_MAX + perm_count > maxargs))=0A= +#define TOOBIG(str) ((strlen(str) + FILENAME_MAX + where->count > = maxargs) \=0A= + || (strlen(str) + FILENAME_MAX + perm->count > maxargs))=0A= =0A= #define PUSHOUT(todir) /* push out string */ \=0A= - if (where_count > sizeof(STARTSTRING)-1) { \=0A= - strcat(where_args, "|tar --unlink -xf - -C "); \=0A= - strcat(where_args, todir); \=0A= - if (system(where_args)) { \=0A= + if (where->count > sizeof(STARTSTRING)-1) { \=0A= + strcat(where->args, "|tar --unlink -xf - -C "); \=0A= + strcat(where->args, todir); \=0A= + if (system(where->args)) { \=0A= cleanup(0); \=0A= errx(2, "can not invoke %d byte tar pipeline: %s", \=0A= - strlen(where_args), where_args); \=0A= + strlen(where->args), where->args); \=0A= } \=0A= - strcpy(where_args, STARTSTRING); \=0A= - where_count =3D sizeof(STARTSTRING)-1; \=0A= + strcpy(where->args, STARTSTRING); \=0A= + where->count =3D sizeof(STARTSTRING)-1; \=0A= } \=0A= - if (perm_count) { \=0A= - apply_perms(todir, perm_args); \=0A= - perm_args[0] =3D 0;\=0A= - perm_count =3D 0; \=0A= + if (perm->count) { \=0A= + apply_perms(todir, perm->args); \=0A= + perm->args[0] =3D 0;\=0A= + perm->count =3D 0; \=0A= }=0A= =0A= static void=0A= @@ -81,28 +81,35 @@=0A= {=0A= PackingList p =3D pkg->head;=0A= char *last_file;=0A= - char *where_args, *perm_args, *last_chdir;=0A= - int maxargs, where_count =3D 0, perm_count =3D 0, add_count;=0A= + char *last_chdir;=0A= + char *ConfigExt =3D "-dist";=0A= + int maxargs;=0A= Boolean preserve;=0A= + Boolean noportdocs;=0A= + CMDargs where, perm;=0A= =0A= + where =3D new_cmdargs();=0A= + perm =3D new_cmdargs();=0A= +=0A= maxargs =3D sysconf(_SC_ARG_MAX) / 2; /* Just use half the argument = space */=0A= - where_args =3D alloca(maxargs);=0A= - if (!where_args) {=0A= + where->args =3D alloca(maxargs);=0A= + if (!where->args) {=0A= cleanup(0);=0A= errx(2, "can't get argument list space");=0A= }=0A= - perm_args =3D alloca(maxargs);=0A= - if (!perm_args) {=0A= + perm->args =3D alloca(maxargs);=0A= + if (!perm->args) {=0A= cleanup(0);=0A= errx(2, "can't get argument list space");=0A= }=0A= =0A= - strcpy(where_args, STARTSTRING);=0A= - where_count =3D sizeof(STARTSTRING)-1;=0A= - perm_args[0] =3D 0;=0A= + strcpy(where->args, STARTSTRING);=0A= + where->count =3D sizeof(STARTSTRING)-1;=0A= + perm->args[0] =3D 0;=0A= =0A= last_chdir =3D 0;=0A= preserve =3D find_plist_option(pkg, "preserve") ? TRUE : FALSE;=0A= + noportdocs =3D find_plist_option(pkg, "noportdocs") ? TRUE : = getenv("NOPORTDOCS") !=3D NULL ? TRUE : FALSE;=0A= =0A= /* Reset the world */=0A= Owner =3D NULL;=0A= @@ -122,76 +129,52 @@=0A= printf("extract: Package name is %s\n", p->name);=0A= break;=0A= =0A= - case PLIST_FILE:=0A= + case PLIST_CONFIGEXT:=0A= + ConfigExt =3D p->name;=0A= + break;=0A= +=0A= + case PLIST_CONFIG:=0A= + {=0A= + char configfile[FILENAME_MAX];=0A= + char tmp[FILENAME_MAX];=0A= +=0A= last_file =3D p->name;=0A= + snprintf(configfile, FILENAME_MAX, "%s%s", p->name, ConfigExt);=0A= if (Verbose)=0A= - printf("extract: %s/%s\n", Directory, p->name);=0A= - if (!Fake) {=0A= - char try[FILENAME_MAX];=0A= + printf("extract: %s/%s\n", Directory, configfile);=0A= + if (installfile(p, configfile, Directory, where, perm, preserve, = &last_chdir)) {=0A= + rollback(PkgName, home, pkg->head, p);=0A= + return;=0A= + }=0A= + snprintf(tmp, FILENAME_MAX, "[ ! -f %%B/%%f ] && cp %%B/%%f%s = %%B/%%f", ConfigExt);=0A= + format_cmd(cmd, tmp, Directory, last_file);=0A= + PUSHOUT(Directory);=0A= + if (Verbose)=0A= + printf("extract: execute '%s'\n", cmd);=0A= + if (!Fake && system(cmd))=0A= + warnx("command '%s' failed", cmd);=0A= + }=0A= + break;=0A= =0A= - if (strrchr(p->name,'\'')) {=0A= - cleanup(0);=0A= - errx(2, "Bogus filename \"%s\"", p->name);=0A= - }=0A= - =0A= - /* first try to rename it into place */=0A= - snprintf(try, FILENAME_MAX, "%s/%s", Directory, p->name);=0A= - if (fexists(try)) {=0A= - (void)chflags(try, 0); /* XXX hack - if truly immutable, rename = fails */=0A= - if (preserve && PkgName) {=0A= - char pf[FILENAME_MAX];=0A= -=0A= - if (make_preserve_name(pf, FILENAME_MAX, PkgName, try)) {=0A= - if (rename(try, pf)) {=0A= - warnx(=0A= - "unable to back up %s to %s, aborting pkg_add",=0A= - try, pf);=0A= - rollback(PkgName, home, pkg->head, p);=0A= - return;=0A= - }=0A= - }=0A= - }=0A= - }=0A= - if (rename(p->name, try) =3D=3D 0) {=0A= - /* try to add to list of perms to be changed and run in bulk. */=0A= - if (p->name[0] =3D=3D '/' || TOOBIG(p->name)) {=0A= - PUSHOUT(Directory);=0A= - }=0A= - add_count =3D snprintf(&perm_args[perm_count], maxargs - = perm_count, "'%s' ", p->name);=0A= - if (add_count > maxargs - perm_count) {=0A= - cleanup(0);=0A= - errx(2, "oops, miscounted strings!");=0A= - }=0A= - perm_count +=3D add_count;=0A= + case PLIST_DOC:=0A= + if (!noportdocs) {=0A= + last_file =3D p->name;=0A= + if (Verbose)=0A= + printf("extract: %s/%s\n", Directory, p->name);=0A= + if (installfile(p, p->name, Directory, where, perm, preserve, = &last_chdir)) {=0A= + rollback(PkgName, home, pkg->head, p);=0A= + return;=0A= }=0A= - else {=0A= - /* rename failed, try copying with a big tar command */=0A= - if (last_chdir !=3D Directory) {=0A= - if (last_chdir =3D=3D NULL) {=0A= - PUSHOUT(Directory);=0A= - } else {=0A= - PUSHOUT(last_chdir);=0A= - }=0A= - last_chdir =3D Directory;=0A= - }=0A= - else if (p->name[0] =3D=3D '/' || TOOBIG(p->name)) {=0A= - PUSHOUT(Directory);=0A= - }=0A= - add_count =3D snprintf(&where_args[where_count], maxargs - = where_count, " '%s'", p->name);=0A= - if (add_count > maxargs - where_count) {=0A= - cleanup(0);=0A= - errx(2, "oops, miscounted strings!");=0A= - }=0A= - where_count +=3D add_count;=0A= - add_count =3D snprintf(&perm_args[perm_count],=0A= - maxargs - perm_count,=0A= - "'%s' ", p->name);=0A= - if (add_count > maxargs - perm_count) {=0A= - cleanup(0);=0A= - errx(2, "oops, miscounted strings!");=0A= - }=0A= - perm_count +=3D add_count;=0A= - }=0A= + }=0A= + break;=0A= +=0A= + case PLIST_FILE:=0A= + last_file =3D p->name;=0A= + if (Verbose)=0A= + printf("extract: %s/%s\n", Directory, p->name);=0A= + if (installfile(p, p->name, Directory, where, perm, preserve, = &last_chdir)) {=0A= + rollback(PkgName, home, pkg->head, p);=0A= + return;=0A= }=0A= break;=0A= =0A= @@ -253,4 +236,94 @@=0A= p =3D p->next;=0A= }=0A= PUSHOUT(Directory);=0A= +}=0A= +=0A= +/* Allocate a new packing list entry */=0A= +CMDargs=0A= +new_cmdargs(void)=0A= +{=0A= + CMDargs ret;=0A= +=0A= + ret =3D (CMDargs)malloc(sizeof(struct _cmdargs));=0A= + bzero(ret, sizeof(struct _cmdargs));=0A= + ret->args =3D NULL;=0A= + ret->count =3D 0;=0A= + return ret;=0A= +}=0A= +=0A= +int=0A= +installfile(PackingList p, char *file, char* Directory, CMDargs where, = CMDargs perm, Boolean preserve, char **last_chdir)=0A= +{=0A= + int add_count;=0A= + int maxargs;=0A= +=0A= + maxargs =3D sysconf(_SC_ARG_MAX) / 2;=0A= +=0A= + if (!Fake) {=0A= + char try[FILENAME_MAX];=0A= +=0A= + if (strrchr(file,'\'')) {=0A= + cleanup(0);=0A= + errx(2, "Bogus filename \"%s\"", file);=0A= + }=0A= + =0A= + /* first try to rename it into place */=0A= + snprintf(try, FILENAME_MAX, "%s/%s", Directory, file);=0A= + if (fexists(try)) {=0A= + (void)chflags(try, 0); /* XXX hack - if truly immutable, rename = fails */=0A= + if (preserve && PkgName) {=0A= + char pf[FILENAME_MAX];=0A= +=0A= + if (make_preserve_name(pf, FILENAME_MAX, PkgName, try)) {=0A= + if (rename(try, pf)) {=0A= + warnx(=0A= + "unable to back up %s to %s, aborting pkg_add",=0A= + try, pf);=0A= + return FAIL;=0A= + }=0A= + }=0A= + }=0A= + }=0A= + if (rename(file, try) =3D=3D 0) {=0A= + /* try to add to list of perms to be changed and run in bulk. */=0A= + if (file[0] =3D=3D '/' || TOOBIG(file)) {=0A= + PUSHOUT(Directory);=0A= + }=0A= + add_count =3D snprintf(&perm->args[perm->count], maxargs - = perm->count, "'%s' ", file);=0A= + if (add_count > maxargs - perm->count) {=0A= + cleanup(0);=0A= + errx(2, "oops, miscounted strings!");=0A= + }=0A= + perm->count +=3D add_count;=0A= + }=0A= + else {=0A= + /* rename failed, try copying with a big tar command */=0A= + if ( *last_chdir !=3D Directory) {=0A= + if (last_chdir =3D=3D NULL) {=0A= + PUSHOUT(Directory);=0A= + } else {=0A= + PUSHOUT(*last_chdir);=0A= + }=0A= + *last_chdir =3D Directory;=0A= + }=0A= + else if (file[0] =3D=3D '/' || TOOBIG(file)) {=0A= + PUSHOUT(Directory);=0A= + }=0A= + add_count =3D snprintf(&where->args[where->count], maxargs - = where->count, " '%s'", file);=0A= + if (add_count > maxargs - where->count) {=0A= + cleanup(0);=0A= + errx(2, "oops, miscounted strings!");=0A= + }=0A= + where->count +=3D add_count;=0A= + add_count =3D snprintf(&perm->args[perm->count],=0A= + maxargs - perm->count,=0A= + "'%s' ", file);=0A= + if (add_count > maxargs - perm->count) {=0A= + cleanup(0);=0A= + errx(2, "oops, miscounted strings!");=0A= + }=0A= + perm->count +=3D add_count;=0A= + }=0A= + }=0A= + return SUCCESS;=0A= }=0A= Index: pkg_install/add/perform.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/add/perform.c,v=0A= retrieving revision 1.57=0A= diff -u -r1.57 perform.c=0A= --- pkg_install/add/perform.c 2000/01/03 22:59:27 1.57=0A= +++ pkg_install/add/perform.c 2000/07/04 05:48:19=0A= @@ -93,6 +93,11 @@=0A= return 1;=0A= }=0A= read_plist(&Plist, stdin);=0A= + if (find_plist_option(&Plist, "noportdocs") =3D=3D NULL) {=0A= + if (getenv("NOPORTDOCS") !=3D NULL) {=0A= + add_plist(&Plist, PLIST_OPTION, "noportdocs");=0A= + }=0A= + }=0A= where_to =3D playpen;=0A= }=0A= /* Nope - do it now */=0A= @@ -114,6 +119,11 @@=0A= }=0A= read_plist(&Plist, cfile);=0A= fclose(cfile);=0A= + if (find_plist_option(&Plist, "noportdocs") =3D=3D NULL) {=0A= + if (getenv("NOPORTDOCS") !=3D NULL) {=0A= + add_plist(&Plist, PLIST_OPTION, "noportdocs");=0A= + }=0A= + }=0A= }=0A= else {=0A= strcpy(pkg_fullname, pkg); /* copy for sanity's sake, could = remove pkg_fullname */=0A= @@ -151,7 +161,11 @@=0A= }=0A= read_plist(&Plist, cfile);=0A= fclose(cfile);=0A= -=0A= + if (find_plist_option(&Plist, "noportdocs") =3D=3D NULL) {=0A= + if (getenv("NOPORTDOCS") !=3D NULL) {=0A= + add_plist(&Plist, PLIST_OPTION, "noportdocs");=0A= + }=0A= + }=0A= /* Extract directly rather than moving? Oh goodie! */=0A= if (find_plist_option(&Plist, "extract-in-place")) {=0A= if (Verbose)=0A= Index: pkg_install/create/create.h=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/create/create.h,v=0A= retrieving revision 1.15=0A= diff -u -r1.15 create.h=0A= --- pkg_install/create/create.h 1999/08/28 01:17:58 1.15=0A= +++ pkg_install/create/create.h 2000/07/04 05:48:20=0A= @@ -44,5 +44,6 @@=0A= void check_list(char *, Package *);=0A= int pkg_perform(char **);=0A= void copy_plist(char *, Package *);=0A= +void md5comment(char *, PackingList );=0A= =0A= #endif /* _INST_CREATE_H_INCLUDE */=0A= Index: pkg_install/create/perform.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/create/perform.c,v=0A= retrieving revision 1.49=0A= diff -u -r1.49 perform.c=0A= --- pkg_install/create/perform.c 1999/08/28 01:17:58 1.49=0A= +++ pkg_install/create/perform.c 2000/07/04 05:48:20=0A= @@ -108,6 +108,11 @@=0A= add_plist(&plist, PLIST_SRC, SrcDir);=0A= }=0A= =0A= + if (getenv("NOPORTDOCS") !=3D NULL) {=0A= + printf("Ignoring Port Documents\n");=0A= + add_plist(&plist, PLIST_OPTION, "noportdocs");=0A= + }=0A= +=0A= /* Slurp in the packing list */=0A= read_plist(&plist, pkg_in);=0A= =0A= @@ -220,6 +225,7 @@=0A= PackingList p;=0A= int ret;=0A= char *args[50]; /* Much more than enough. */=0A= + char *ConfigExt =3D "-dist";=0A= int nargs =3D 0;=0A= int pipefds[2];=0A= FILE *totar;=0A= @@ -296,6 +302,12 @@=0A= =0A= for (p =3D plist->head; p; p =3D p->next) {=0A= if (p->type =3D=3D PLIST_FILE)=0A= + fprintf(totar, "%s\n", p->name);=0A= + else if (p->type =3D=3D PLIST_CONFIGEXT)=0A= + ConfigExt =3D p->name;=0A= + else if (p->type =3D=3D PLIST_CONFIG)=0A= + fprintf(totar, "%s%s\n", p->name, ConfigExt);=0A= + else if ((p->type =3D=3D PLIST_DOC) && (getenv("NOPORTDOCS") =3D=3D = NULL))=0A= fprintf(totar, "%s\n", p->name);=0A= else if (p->type =3D=3D PLIST_CWD || p->type =3D=3D PLIST_SRC)=0A= fprintf(totar, "-C\n%s\n", p->name);=0A= Index: pkg_install/create/pl.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/create/pl.c,v=0A= retrieving revision 1.13=0A= diff -u -r1.13 pl.c=0A= --- pkg_install/create/pl.c 1999/08/28 01:17:59 1.13=0A= +++ pkg_install/create/pl.c 2000/07/04 05:48:20=0A= @@ -35,6 +35,8 @@=0A= {=0A= char *where =3D home;=0A= char *there =3D NULL;=0A= + char *ConfigExt =3D "-dist";=0A= + char name[FILENAME_MAX];=0A= PackingList p =3D pkg->head;=0A= =0A= while (p) {=0A= @@ -42,25 +44,40 @@=0A= where =3D p->name;=0A= else if (p->type =3D=3D PLIST_IGNORE)=0A= p =3D p->next;=0A= - else if (p->type =3D=3D PLIST_SRC) {=0A= + else if (p->type =3D=3D PLIST_SRC)=0A= there =3D p->name;=0A= + else if (p->type =3D=3D PLIST_CONFIGEXT)=0A= + ConfigExt =3D p->name;=0A= + else if (p->type =3D=3D PLIST_CONFIG) {=0A= + sprintf(name, "%s/%s%s", there ? there : where, p->name, = ConfigExt);=0A= + md5comment(name, p);=0A= }=0A= + else if ((p->type =3D=3D PLIST_DOC) && (getenv("NOPORTDOCS") =3D=3D = NULL)) {=0A= + sprintf(name, "%s/%s", there ? there : where, p->name);=0A= + md5comment(name, p);=0A= + }=0A= else if (p->type =3D=3D PLIST_FILE) {=0A= - char *cp, name[FILENAME_MAX], buf[33];=0A= -=0A= sprintf(name, "%s/%s", there ? there : where, p->name);=0A= - if ((cp =3D MD5File(name, buf)) !=3D NULL) {=0A= - PackingList tmp =3D new_plist_entry();=0A= -=0A= - tmp->name =3D copy_string(strconcat("MD5:", cp));=0A= - tmp->type =3D PLIST_COMMENT;=0A= - tmp->next =3D p->next;=0A= - tmp->prev =3D p;=0A= - p->next =3D tmp;=0A= - p =3D tmp;=0A= - }=0A= + md5comment(name, p);=0A= }=0A= p =3D p->next;=0A= + }=0A= +}=0A= +=0A= +void=0A= +md5comment(char *file, PackingList p)=0A= +{=0A= + char *cp, buf[33];=0A= +=0A= + if ((cp =3D MD5File(file, buf)) !=3D NULL) {=0A= + PackingList tmp =3D new_plist_entry();=0A= +=0A= + tmp->name =3D copy_string(strconcat("MD5:", cp));=0A= + tmp->type =3D PLIST_COMMENT;=0A= + tmp->next =3D p->next;=0A= + tmp->prev =3D p;=0A= + p->next =3D tmp;=0A= + p =3D tmp;=0A= }=0A= }=0A= =0A= Index: pkg_install/info/show.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/info/show.c,v=0A= retrieving revision 1.14=0A= diff -u -r1.14 show.c=0A= --- pkg_install/info/show.c 1999/08/28 01:18:04 1.14=0A= +++ pkg_install/info/show.c 2000/07/04 05:48:20=0A= @@ -86,6 +86,18 @@=0A= continue;=0A= }=0A= switch(p->type) {=0A= + case PLIST_CONFIGEXT:=0A= + printf(Quiet ? "@configext %s\n" : "\tConfigExt: %s\n", p->name);=0A= + break;=0A= +=0A= + case PLIST_CONFIG:=0A= + printf(Quiet ? "@config %s\n" : "\tConfig: %s\n", p->name);=0A= + break;=0A= +=0A= + case PLIST_DOC:=0A= + printf(Quiet ? "@doc %s\n" : "\tDOC: %s\n", p->name);=0A= + break;=0A= +=0A= case PLIST_FILE:=0A= if (ign) {=0A= printf(Quiet ? "%s\n" : "File: %s (ignored)\n", p->name);=0A= @@ -175,13 +187,25 @@=0A= {=0A= PackingList p;=0A= Boolean ign =3D FALSE;=0A= - char *dir =3D ".";=0A= + char *dir =3D ".", *ConfigExt =3D "-dist";=0A= =0A= if (!Quiet)=0A= printf("%s%s", InfoPrefix, title);=0A= p =3D plist->head;=0A= while (p) {=0A= switch(p->type) {=0A= + case PLIST_CONFIGEXT:=0A= + ConfigExt =3D p->name;=0A= + break;=0A= +=0A= + case PLIST_CONFIG:=0A= + printf("%s/%s%s\n", dir, p->name, ConfigExt);=0A= + break;=0A= +=0A= + case PLIST_DOC:=0A= + printf("%s/%s\n", dir, p->name);=0A= + break;=0A= +=0A= case PLIST_FILE:=0A= if (!ign)=0A= printf("%s/%s\n", dir, p->name);=0A= Index: pkg_install/lib/lib.h=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/lib/lib.h,v=0A= retrieving revision 1.30=0A= diff -u -r1.30 lib.h=0A= --- pkg_install/lib/lib.h 2000/06/27 11:00:07 1.30=0A= +++ pkg_install/lib/lib.h 2000/07/04 05:48:20=0A= @@ -84,7 +84,8 @@=0A= PLIST_CHOWN, PLIST_CHGRP, PLIST_COMMENT, PLIST_IGNORE,=0A= PLIST_NAME, PLIST_UNEXEC, PLIST_SRC, PLIST_DISPLAY,=0A= PLIST_PKGDEP, PLIST_MTREE, PLIST_DIR_RM, PLIST_IGNORE_INST,=0A= - PLIST_OPTION=0A= + PLIST_OPTION, PLIST_CONFIGEXT, PLIST_CONFIG, PLIST_DOC,=0A= + PLIST_DOC_DIR_RM=0A= };=0A= typedef enum _plist_t plist_t;=0A= =0A= @@ -137,6 +138,7 @@=0A= void copy_file(char *, char *, char *);=0A= void move_file(char *, char *, char *);=0A= void copy_hierarchy(char *, char *, Boolean);=0A= +int delete_file(char *, PackingList , char *, Boolean, Boolean, = Boolean);=0A= int delete_hierarchy(char *, Boolean, Boolean);=0A= int unpack(char *, char *);=0A= void format_cmd(char *, char *, char *, char *);=0A= Index: pkg_install/lib/plist.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /home/ncvs/src/usr.sbin/pkg_install/lib/plist.c,v=0A= retrieving revision 1.29=0A= diff -u -r1.29 plist.c=0A= --- pkg_install/lib/plist.c 1999/08/28 01:18:07 1.29=0A= +++ pkg_install/lib/plist.c 2000/07/04 05:48:20=0A= @@ -229,6 +229,14 @@=0A= return PLIST_DIR_RM;=0A= else if (!strcmp(cmd, "option"))=0A= return PLIST_OPTION;=0A= + else if (!strcmp(cmd, "configext"))=0A= + return PLIST_CONFIGEXT;=0A= + else if (!strcmp(cmd, "config"))=0A= + return PLIST_CONFIG;=0A= + else if (!strcmp(cmd, "docdirrm"))=0A= + return PLIST_DOC_DIR_RM;=0A= + else if (!strcmp(cmd, "doc") || !strcmp(cmd, "document"))=0A= + return PLIST_DOC;=0A= else=0A= return FAIL;=0A= }=0A= @@ -336,6 +344,22 @@=0A= fprintf(fp, "%coption %s\n", CMD_CHAR, plist->name);=0A= break;=0A= =0A= + case PLIST_CONFIGEXT:=0A= + fprintf(fp, "%cconfigext %s\n", CMD_CHAR, plist->name);=0A= + break;=0A= +=0A= + case PLIST_CONFIG:=0A= + fprintf(fp, "%cconfig %s\n", CMD_CHAR, plist->name);=0A= + break;=0A= +=0A= + case PLIST_DOC_DIR_RM:=0A= + fprintf(fp, "%cdocdirrm %s\n", CMD_CHAR, plist->name);=0A= + break;=0A= +=0A= + case PLIST_DOC:=0A= + fprintf(fp, "%cdoc %s\n", CMD_CHAR, plist->name);=0A= + break;=0A= +=0A= default:=0A= cleanup(0);=0A= errx(2, "unknown command type %d (%s)", plist->type, plist->name);=0A= @@ -355,12 +379,13 @@=0A= delete_package(Boolean ign_err, Boolean nukedirs, Package *pkg)=0A= {=0A= PackingList p;=0A= - char *Where =3D ".", *last_file =3D "";=0A= + char *Where =3D ".", *last_file =3D "", *ConfigExt =3D "-dist";=0A= Boolean fail =3D SUCCESS;=0A= - Boolean preserve;=0A= + Boolean preserve, noportdocs;=0A= char tmp[FILENAME_MAX], *name =3D NULL;=0A= =0A= preserve =3D find_plist_option(pkg, "preserve") ? TRUE : FALSE;=0A= + noportdocs=3D find_plist_option(pkg, "noportdocs") ? TRUE : FALSE;=0A= for (p =3D pkg->head; p; p =3D p->next) {=0A= switch (p->type) {=0A= case PLIST_NAME:=0A= @@ -387,66 +412,104 @@=0A= }=0A= break;=0A= =0A= + case PLIST_CONFIGEXT:=0A= + ConfigExt =3D p->name;=0A= + if (Verbose)=0A= + printf("Using %s as extention to config files.\n", ConfigExt);=0A= + break;=0A= +=0A= + case PLIST_CONFIG:=0A= + last_file =3D p->name;=0A= + sprintf(tmp, "%s/%s%s", Where, p->name, ConfigExt);=0A= + if (!delete_file(tmp, p, name, ign_err, nukedirs, preserve)) {=0A= + sprintf(tmp, "%s/%s", Where, p->name);=0A= + delete_file(tmp, p, name, ign_err, nukedirs, preserve);=0A= + }=0A= + else=0A= + fail =3D FAIL;=0A= + break;=0A= +=0A= + case PLIST_DOC:=0A= + if (!noportdocs) {=0A= + last_file =3D p->name;=0A= + sprintf(tmp, "%s/%s", Where, p->name);=0A= + if (delete_file(tmp, p, name, ign_err, nukedirs, preserve))=0A= + fail =3D FAIL;=0A= + }=0A= + break;=0A= +=0A= case PLIST_FILE:=0A= last_file =3D p->name;=0A= sprintf(tmp, "%s/%s", Where, p->name);=0A= - if (isdir(tmp) && fexists(tmp)) {=0A= - warnx("cannot delete specified file `%s' - it is a directory!\n"=0A= - "this packing list is incorrect - ignoring delete request", tmp);=0A= - }=0A= - else {=0A= - if (p->next && p->next->type =3D=3D PLIST_COMMENT && = !strncmp(p->next->name, "MD5:", 4)) {=0A= - char *cp, buf[33];=0A= -=0A= - if ((cp =3D MD5File(tmp, buf)) !=3D NULL) {=0A= - /* Mismatch? */=0A= - if (strcmp(cp, p->next->name + 4)) {=0A= - if (Verbose)=0A= - printf("%s fails original MD5 checksum - %s\n",=0A= - tmp, Force ? "deleted anyway." : "not deleted.");=0A= - if (!Force) {=0A= - fail =3D FAIL;=0A= - continue;=0A= - }=0A= - }=0A= - }=0A= - }=0A= - if (Verbose)=0A= - printf("Delete file %s\n", tmp);=0A= - if (!Fake) {=0A= - if (delete_hierarchy(tmp, ign_err, nukedirs))=0A= + if (delete_file(tmp, p, name, ign_err, nukedirs, preserve))=0A= + fail =3D FAIL;=0A= + break;=0A= +=0A= + case PLIST_DOC_DIR_RM:=0A= + case PLIST_DIR_RM:=0A= + if ((p->type =3D=3D PLIST_DIR_RM) || ((p->type =3D=3D = PLIST_DOC_DIR_RM) && !noportdocs)) {=0A= + sprintf(tmp, "%s/%s", Where, p->name);=0A= + if (!isdir(tmp) && fexists(tmp)) {=0A= + warnx("cannot delete specified directory `%s' - it is a file!\n"=0A= + "this packing list is incorrect - ignoring delete request", tmp);=0A= + }=0A= + else {=0A= + if (Verbose)=0A= + printf("Delete directory %s\n", tmp);=0A= + if (!Fake && delete_hierarchy(tmp, ign_err, FALSE)) {=0A= + warnx("unable to completely remove directory '%s'", tmp);=0A= fail =3D FAIL;=0A= - if (preserve && name) {=0A= - char tmp2[FILENAME_MAX];=0A= - =0A= - if (make_preserve_name(tmp2, FILENAME_MAX, name, tmp)) {=0A= - if (fexists(tmp2)) {=0A= - if (rename(tmp2, tmp))=0A= - warn("preserve: unable to restore %s as %s",=0A= - tmp2, tmp);=0A= - }=0A= - }=0A= }=0A= }=0A= + last_file =3D p->name;=0A= + break;=0A= }=0A= - break;=0A= + }=0A= + }=0A= + return fail;=0A= +}=0A= =0A= - case PLIST_DIR_RM:=0A= - sprintf(tmp, "%s/%s", Where, p->name);=0A= - if (!isdir(tmp) && fexists(tmp)) {=0A= - warnx("cannot delete specified directory `%s' - it is a file!\n"=0A= - "this packing list is incorrect - ignoring delete request", tmp);=0A= - }=0A= - else {=0A= - if (Verbose)=0A= - printf("Delete directory %s\n", tmp);=0A= - if (!Fake && delete_hierarchy(tmp, ign_err, FALSE)) {=0A= - warnx("unable to completely remove directory '%s'", tmp);=0A= - fail =3D FAIL;=0A= +int=0A= +delete_file(char *file, PackingList p, char *name, Boolean ign_err, = Boolean nukedirs, Boolean preserve)=0A= +{=0A= + Boolean fail =3D SUCCESS;=0A= +=0A= + if (isdir(file) && fexists(file)) {=0A= + warnx("cannot delete specified file `%s' - it is a directory!\n"=0A= + "this packing list is incorrect - ignoring delete request", file);=0A= + }=0A= + else {=0A= + if (p->next && p->next->type =3D=3D PLIST_COMMENT && = !strncmp(p->next->name, "MD5:", 4)) {=0A= + char *cp, buf[33];=0A= +=0A= + if ((cp =3D MD5File(file, buf)) !=3D NULL) {=0A= + /* Mismatch? */=0A= + if (strcmp(cp, p->next->name + 4)) {=0A= + if (Verbose)=0A= + printf("%s fails original MD5 checksum - %s\n",=0A= + file, Force ? "deleted anyway." : "not deleted.");=0A= + if (!Force) {=0A= + return FAIL;=0A= + }=0A= }=0A= }=0A= - last_file =3D p->name;=0A= - break;=0A= + }=0A= + if (Verbose)=0A= + printf("Delete file %s\n", file);=0A= + if (!Fake) {=0A= + if (delete_hierarchy(file, ign_err, nukedirs))=0A= + fail =3D FAIL;=0A= + if (preserve && name) {=0A= + char tmp2[FILENAME_MAX];=0A= + =0A= + if (make_preserve_name(tmp2, FILENAME_MAX, name, file)) {=0A= + if (fexists(tmp2)) {=0A= + if (rename(tmp2, file))=0A= + warn("preserve: unable to restore %s as %s",=0A= + tmp2, file);=0A= + }=0A= + }=0A= + }=0A= }=0A= }=0A= return fail;=0A= ------=_NextPart_000_0148_01BFE553.3B38FCE0 Content-Type: application/octet-stream; name="apache13.PLIST" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="apache13.PLIST" bin/dbmmanage=0A= bin/htdigest=0A= bin/htpasswd=0A= @configext .default=0A= @config etc/apache/access.conf=0A= @config etc/apache/httpd.conf=0A= @config etc/apache/magic=0A= @config etc/apache/mime.types=0A= @config etc/apache/srm.conf=0A= etc/rc.d/apache.sh=0A= include/apache/alloc.h=0A= include/apache/ap.h=0A= include/apache/ap_compat.h=0A= include/apache/ap_config.h=0A= include/apache/ap_config_auto.h=0A= include/apache/ap_ctype.h=0A= include/apache/ap_md5.h=0A= include/apache/ap_mmn.h=0A= include/apache/ap_sha1.h=0A= include/apache/buff.h=0A= include/apache/compat.h=0A= include/apache/conf.h=0A= include/apache/explain.h=0A= include/apache/fnmatch.h=0A= include/apache/hsregex.h=0A= include/apache/http_conf_globals.h=0A= include/apache/http_config.h=0A= include/apache/http_core.h=0A= include/apache/http_log.h=0A= include/apache/http_main.h=0A= include/apache/http_protocol.h=0A= include/apache/http_request.h=0A= include/apache/http_vhost.h=0A= include/apache/httpd.h=0A= include/apache/multithread.h=0A= include/apache/os-inline.c=0A= include/apache/os.h=0A= include/apache/rfc1413.h=0A= include/apache/scoreboard.h=0A= include/apache/util_date.h=0A= include/apache/util_md5.h=0A= include/apache/util_script.h=0A= include/apache/util_uri.h=0A= include/apache/xml/asciitab.h=0A= include/apache/xml/hashtable.h=0A= include/apache/xml/iasciitab.h=0A= include/apache/xml/latin1tab.h=0A= include/apache/xml/nametab.h=0A= include/apache/xml/utf8tab.h=0A= include/apache/xml/xmldef.h=0A= include/apache/xml/xmlparse.h=0A= include/apache/xml/xmlrole.h=0A= include/apache/xml/xmltok.h=0A= include/apache/xml/xmltok_impl.h=0A= libexec/apache/httpd.exp=0A= libexec/apache/libproxy.so=0A= libexec/apache/mod_auth_anon.so=0A= libexec/apache/mod_auth_db.so=0A= libexec/apache/mod_cern_meta.so=0A= libexec/apache/mod_digest.so=0A= libexec/apache/mod_expires.so=0A= libexec/apache/mod_headers.so=0A= libexec/apache/mod_info.so=0A= libexec/apache/mod_mime_magic.so=0A= libexec/apache/mod_rewrite.so=0A= libexec/apache/mod_speling.so=0A= libexec/apache/mod_unique_id.so=0A= libexec/apache/mod_usertrack.so=0A= libexec/apache/mod_vhost_alias.so=0A= sbin/ab=0A= sbin/apachectl=0A= sbin/apxs=0A= sbin/httpd=0A= sbin/logresolve=0A= sbin/rotatelogs=0A= @doc share/doc/apache/apache_pb.gif=0A= @exec mkdir -p %D/www=0A= @exec ln -fs %B %D/www/data.default=0A= @unexec rm -f %D/www/data.default=0A= @exec [ ! -d %D/www/data ] && ln -fs %B %D/www/data=0A= @exec [ ! -d %D/www/cgi-bin ] && ln -fs %D/www/cgi-bin.default = %D/www/cgi-bin=0A= @doc share/doc/apache/index.html.ca=0A= @doc share/doc/apache/index.html.cz=0A= @doc share/doc/apache/index.html.de=0A= @doc share/doc/apache/index.html.dk=0A= @doc share/doc/apache/index.html.ee=0A= @doc share/doc/apache/index.html.en=0A= @doc share/doc/apache/index.html.es=0A= @doc share/doc/apache/index.html.fr=0A= @doc share/doc/apache/index.html.it=0A= @doc share/doc/apache/index.html.ja.jis=0A= @doc share/doc/apache/index.html.lu=0A= @doc share/doc/apache/index.html.nl=0A= @doc share/doc/apache/index.html.po.iso-pl=0A= @doc share/doc/apache/index.html.pt=0A= @doc share/doc/apache/index.html.pt-br=0A= @doc share/doc/apache/index.html.se=0A= @doc share/doc/apache/manual/LICENSE=0A= @doc share/doc/apache/manual/bind.html=0A= @doc share/doc/apache/manual/cgi_path.html=0A= @doc share/doc/apache/manual/content-negotiation.html=0A= @doc share/doc/apache/manual/custom-error.html=0A= @doc share/doc/apache/manual/dns-caveats.html=0A= @doc share/doc/apache/manual/dso.html=0A= @doc share/doc/apache/manual/ebcdic.html=0A= @doc share/doc/apache/manual/env.html=0A= @doc share/doc/apache/manual/footer.html=0A= @doc share/doc/apache/manual/handler.html=0A= @doc share/doc/apache/manual/header.html=0A= @doc share/doc/apache/manual/images/custom_errordocs.gif=0A= @doc share/doc/apache/manual/images/home.gif=0A= @doc share/doc/apache/manual/images/index.gif=0A= @doc share/doc/apache/manual/images/mod_rewrite_fig1.fig=0A= @doc share/doc/apache/manual/images/mod_rewrite_fig1.gif=0A= @doc share/doc/apache/manual/images/mod_rewrite_fig2.fig=0A= @doc share/doc/apache/manual/images/mod_rewrite_fig2.gif=0A= @doc share/doc/apache/manual/images/sub.gif=0A= @doc share/doc/apache/manual/index.html=0A= @doc share/doc/apache/manual/install-tpf.html=0A= @doc share/doc/apache/manual/install.html=0A= @doc share/doc/apache/manual/invoking.html=0A= @doc share/doc/apache/manual/keepalive.html=0A= @doc share/doc/apache/manual/location.html=0A= @doc share/doc/apache/manual/man-template.html=0A= @doc share/doc/apache/manual/misc/API.html=0A= @doc share/doc/apache/manual/misc/FAQ.html=0A= @doc share/doc/apache/manual/misc/HTTP_Features.tsv=0A= @doc share/doc/apache/manual/misc/client_block_api.html=0A= @doc share/doc/apache/manual/misc/compat_notes.html=0A= @doc share/doc/apache/manual/misc/custom_errordocs.html=0A= @doc share/doc/apache/manual/misc/descriptors.html=0A= @doc share/doc/apache/manual/misc/fin_wait_2.html=0A= @doc share/doc/apache/manual/misc/footer.html=0A= @doc share/doc/apache/manual/misc/header.html=0A= @doc share/doc/apache/manual/misc/howto.html=0A= @doc share/doc/apache/manual/misc/index.html=0A= @doc share/doc/apache/manual/misc/known_client_problems.html=0A= @doc share/doc/apache/manual/misc/nopgp.html=0A= @doc share/doc/apache/manual/misc/perf-bsd44.html=0A= @doc share/doc/apache/manual/misc/perf-dec.html=0A= @doc share/doc/apache/manual/misc/perf-hp.html=0A= @doc share/doc/apache/manual/misc/perf-tuning.html=0A= @doc share/doc/apache/manual/misc/perf.html=0A= @doc share/doc/apache/manual/misc/rewriteguide.html=0A= @doc share/doc/apache/manual/misc/security_tips.html=0A= @doc share/doc/apache/manual/misc/vif-info.html=0A= @doc share/doc/apache/manual/misc/windoz_keepalive.html=0A= @doc share/doc/apache/manual/mod/core.html=0A= @doc share/doc/apache/manual/mod/directive-dict.html=0A= @doc share/doc/apache/manual/mod/directives.html=0A= @doc share/doc/apache/manual/mod/footer.html=0A= @doc share/doc/apache/manual/mod/header.html=0A= @doc share/doc/apache/manual/mod/index.html=0A= @doc share/doc/apache/manual/mod/mod_access.html=0A= @doc share/doc/apache/manual/mod/mod_actions.html=0A= @doc share/doc/apache/manual/mod/mod_alias.html=0A= @doc share/doc/apache/manual/mod/mod_asis.html=0A= @doc share/doc/apache/manual/mod/mod_auth.html=0A= @doc share/doc/apache/manual/mod/mod_auth_anon.html=0A= @doc share/doc/apache/manual/mod/mod_auth_db.html=0A= @doc share/doc/apache/manual/mod/mod_auth_dbm.html=0A= @doc share/doc/apache/manual/mod/mod_auth_digest.html=0A= @doc share/doc/apache/manual/mod/mod_autoindex.html=0A= @doc share/doc/apache/manual/mod/mod_browser.html=0A= @doc share/doc/apache/manual/mod/mod_cern_meta.html=0A= @doc share/doc/apache/manual/mod/mod_cgi.html=0A= @doc share/doc/apache/manual/mod/mod_cookies.html=0A= @doc share/doc/apache/manual/mod/mod_digest.html=0A= @doc share/doc/apache/manual/mod/mod_dir.html=0A= @doc share/doc/apache/manual/mod/mod_dld.html=0A= @doc share/doc/apache/manual/mod/mod_dll.html=0A= @doc share/doc/apache/manual/mod/mod_env.html=0A= @doc share/doc/apache/manual/mod/mod_example.html=0A= @doc share/doc/apache/manual/mod/mod_expires.html=0A= @doc share/doc/apache/manual/mod/mod_headers.html=0A= @doc share/doc/apache/manual/mod/mod_imap.html=0A= @doc share/doc/apache/manual/mod/mod_include.html=0A= @doc share/doc/apache/manual/mod/mod_info.html=0A= @doc share/doc/apache/manual/mod/mod_isapi.html=0A= @doc share/doc/apache/manual/mod/mod_log_agent.html=0A= @doc share/doc/apache/manual/mod/mod_log_common.html=0A= @doc share/doc/apache/manual/mod/mod_log_config.html=0A= @doc share/doc/apache/manual/mod/mod_log_referer.html=0A= @doc share/doc/apache/manual/mod/mod_mime.html=0A= @doc share/doc/apache/manual/mod/mod_mime_magic.html=0A= @doc share/doc/apache/manual/mod/mod_mmap_static.html=0A= @doc share/doc/apache/manual/mod/mod_negotiation.html=0A= @doc share/doc/apache/manual/mod/mod_proxy.html=0A= @doc share/doc/apache/manual/mod/mod_rewrite.html=0A= @doc share/doc/apache/manual/mod/mod_setenvif.html=0A= @doc share/doc/apache/manual/mod/mod_so.html=0A= @doc share/doc/apache/manual/mod/mod_speling.html=0A= @doc share/doc/apache/manual/mod/mod_status.html=0A= @doc share/doc/apache/manual/mod/mod_unique_id.html=0A= @doc share/doc/apache/manual/mod/mod_userdir.html=0A= @doc share/doc/apache/manual/mod/mod_usertrack.html=0A= @doc share/doc/apache/manual/mod/mod_vhost_alias.html=0A= @doc share/doc/apache/manual/multilogs.html=0A= @doc share/doc/apache/manual/netware.html=0A= @doc share/doc/apache/manual/new_features_1_0.html=0A= @doc share/doc/apache/manual/new_features_1_1.html=0A= @doc share/doc/apache/manual/new_features_1_2.html=0A= @doc share/doc/apache/manual/new_features_1_3.html=0A= @doc share/doc/apache/manual/process-model.html=0A= @doc share/doc/apache/manual/readme-tpf.html=0A= @doc share/doc/apache/manual/search/manual-index.cgi=0A= @doc share/doc/apache/manual/sections.html=0A= @doc share/doc/apache/manual/sourcereorg.html=0A= @doc share/doc/apache/manual/stopping.html=0A= @doc share/doc/apache/manual/suexec.html=0A= @doc share/doc/apache/manual/suexec_1_2.html=0A= @doc share/doc/apache/manual/unixware.html=0A= @doc share/doc/apache/manual/upgrading_to_1_3.html=0A= @doc share/doc/apache/manual/vhosts/details.html=0A= @doc share/doc/apache/manual/vhosts/details_1_2.html=0A= @doc share/doc/apache/manual/vhosts/examples.html=0A= @doc share/doc/apache/manual/vhosts/fd-limits.html=0A= @doc share/doc/apache/manual/vhosts/footer.html=0A= @doc share/doc/apache/manual/vhosts/header.html=0A= @doc share/doc/apache/manual/vhosts/host.html=0A= @doc share/doc/apache/manual/vhosts/index.html=0A= @doc share/doc/apache/manual/vhosts/ip-based.html=0A= @doc share/doc/apache/manual/vhosts/mass.html=0A= @doc share/doc/apache/manual/vhosts/name-based.html=0A= @doc share/doc/apache/manual/vhosts/vhosts-in-depth.html=0A= @doc share/doc/apache/manual/vhosts/virtual-host.html=0A= @doc share/doc/apache/manual/windows.html=0A= www/cgi-bin.default/printenv=0A= www/cgi-bin.default/test-cgi=0A= www/icons/README=0A= www/icons/a.gif=0A= www/icons/alert.black.gif=0A= www/icons/alert.red.gif=0A= www/icons/apache_pb.gif=0A= www/icons/back.gif=0A= www/icons/ball.gray.gif=0A= www/icons/ball.red.gif=0A= www/icons/binary.gif=0A= www/icons/binhex.gif=0A= www/icons/blank.gif=0A= www/icons/bomb.gif=0A= www/icons/box1.gif=0A= www/icons/box2.gif=0A= www/icons/broken.gif=0A= www/icons/burst.gif=0A= www/icons/c.gif=0A= www/icons/comp.blue.gif=0A= www/icons/comp.gray.gif=0A= www/icons/compressed.gif=0A= www/icons/continued.gif=0A= www/icons/dir.gif=0A= www/icons/down.gif=0A= www/icons/dvi.gif=0A= www/icons/f.gif=0A= www/icons/folder.gif=0A= www/icons/folder.open.gif=0A= www/icons/folder.sec.gif=0A= www/icons/forward.gif=0A= www/icons/generic.gif=0A= www/icons/generic.red.gif=0A= www/icons/generic.sec.gif=0A= www/icons/hand.right.gif=0A= www/icons/hand.up.gif=0A= www/icons/icon.sheet.gif=0A= www/icons/image1.gif=0A= www/icons/image2.gif=0A= www/icons/image3.gif=0A= www/icons/index.gif=0A= www/icons/layout.gif=0A= www/icons/left.gif=0A= www/icons/link.gif=0A= www/icons/movie.gif=0A= www/icons/p.gif=0A= www/icons/patch.gif=0A= www/icons/pdf.gif=0A= www/icons/pie0.gif=0A= www/icons/pie1.gif=0A= www/icons/pie2.gif=0A= www/icons/pie3.gif=0A= www/icons/pie4.gif=0A= www/icons/pie5.gif=0A= www/icons/pie6.gif=0A= www/icons/pie7.gif=0A= www/icons/pie8.gif=0A= www/icons/portal.gif=0A= www/icons/ps.gif=0A= www/icons/quill.gif=0A= www/icons/right.gif=0A= www/icons/screw1.gif=0A= www/icons/screw2.gif=0A= www/icons/script.gif=0A= www/icons/small/README.txt=0A= www/icons/small/back.gif=0A= www/icons/small/binary.gif=0A= www/icons/small/binhex.gif=0A= www/icons/small/blank.gif=0A= www/icons/small/broken.gif=0A= www/icons/small/burst.gif=0A= www/icons/small/comp1.gif=0A= www/icons/small/comp2.gif=0A= www/icons/small/compressed.gif=0A= www/icons/small/continued.gif=0A= www/icons/small/dir.gif=0A= www/icons/small/dir2.gif=0A= www/icons/small/doc.gif=0A= www/icons/small/forward.gif=0A= www/icons/small/generic.gif=0A= www/icons/small/generic2.gif=0A= www/icons/small/generic3.gif=0A= www/icons/small/image.gif=0A= www/icons/small/image2.gif=0A= www/icons/small/index.gif=0A= www/icons/small/key.gif=0A= www/icons/small/movie.gif=0A= www/icons/small/patch.gif=0A= www/icons/small/ps.gif=0A= www/icons/small/rainbow.gif=0A= www/icons/small/sound.gif=0A= www/icons/small/sound2.gif=0A= www/icons/small/tar.gif=0A= www/icons/small/text.gif=0A= www/icons/small/transfer.gif=0A= www/icons/small/unknown.gif=0A= www/icons/small/uu.gif=0A= www/icons/sound1.gif=0A= www/icons/sound2.gif=0A= www/icons/sphere1.gif=0A= www/icons/sphere2.gif=0A= www/icons/tar.gif=0A= www/icons/tex.gif=0A= www/icons/text.gif=0A= www/icons/transfer.gif=0A= www/icons/unknown.gif=0A= www/icons/up.gif=0A= www/icons/uu.gif=0A= www/icons/uuencoded.gif=0A= www/icons/world1.gif=0A= www/icons/world2.gif=0A= @exec mkdir -p %D/www/proxy=0A= @unexec if [ -L %D/www/cgi-bin ]; then rm -f %D/www/cgi-bin; fi=0A= @unexec if [ -L %D/www/data ]; then rm -f %D/www/data; fi=0A= @dirrm etc/apache=0A= @dirrm include/apache/xml=0A= @dirrm include/apache=0A= @dirrm libexec/apache=0A= @dirrm www/cgi-bin.default=0A= @dirrm www/icons/small=0A= @dirrm www/icons=0A= @dirrm www/proxy=0A= @dirrm www=0A= @docdirrm share/doc/apache/manual/images=0A= @docdirrm share/doc/apache/manual/misc=0A= @docdirrm share/doc/apache/manual/mod=0A= @docdirrm share/doc/apache/manual/search=0A= @docdirrm share/doc/apache/manual/vhosts=0A= @docdirrm share/doc/apache/manual=0A= @docdirrm share/doc/apache=0A= ------=_NextPart_000_0148_01BFE553.3B38FCE0-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message