Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Jul 2000 01:00:22 -0500
From:      "Scot W. Hetzel" <hetzels@westbend.net>
To:        "Satoshi - Ports Wraith - Asami" <asami@FreeBSD.ORG>
Cc:        "FreeBSD Ports" <ports@FreeBSD.ORG>
Subject:   Re: NOPORTDOCS handling
Message-ID:  <014b01bfe57d$24d6e8c0$8dfee0d1@westbend.net>
References:  <200006080136.UAA19272@wbiw01.westbend.net> <vqcn1k07s1p.fsf@silvia.hip.berkeley.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
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" <asami@FreeBSD.ORG>
> 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" <hetzels@westbend.net>
> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?014b01bfe57d$24d6e8c0$8dfee0d1>