Index: epm/epm-3.7.patch
===================================================================
RCS file: /cvs/external/epm/epm-3.7.patch,v
retrieving revision 1.8
diff -u -r1.8 epm-3.7.patch
--- epm/epm-3.7.patch	3 Feb 2006 17:32:08 -0000	1.8
+++ epm/epm-3.7.patch	11 Feb 2006 09:28:33 -0000
@@ -546,3 +546,116 @@
   }
   
 --- 457,462 ----
+*** misc/epm-3.7/bsd.c	Wed Jan 15 02:05:01 2003
+--- misc/build/epm-3.7/bsd.c	Thu Jan 19 17:05:43 2006
+***************
+*** 26,31 ****
+--- 26,38 ----
+  
+  #include "epm.h"
+  
++ void cr2semicolon(char *command)
++ {
++   int len, i;
++   len=strlen(command);
++   for (i=0;i<len;i++)
++     if(*(command+i)=='\n') *(command+i)=';';
++ }
+  
+  /*
+   * 'make_bsd()' - Make a FreeBSD software distribution package.
+***************
+*** 149,156 ****
+  
+    for (i = dist->num_depends, d = dist->depends; i > 0; i --, d ++)
+    {
+!     if (d->type == DEPEND_REQUIRES)
+!       fprintf(fp, "@pkgdep %s", d->product);
+      else
+  #ifdef __FreeBSD__
+       /*
+--- 156,172 ----
+  
+    for (i = dist->num_depends, d = dist->depends; i > 0; i --, d ++)
+    {
+! #ifdef __FreeBSD__
+!     if (d->type == DEPEND_REQUIRES) {
+!       if (dist->relnumber)
+! 	  fprintf(fp, "@pkgdep %s-%s-%d-%s", d->product, dist->version, dist->relnumber, platname);
+!       else
+! 	  fprintf(fp, "@pkgdep %s-%s-%s", d->product, dist->version, platname);
+!     }
+! #else
+!     if (d->type == DEPEND_REQUIRES)
+!       fprintf(fp, "@pkgdep %s", d->product);
+! #endif
+      else
+  #ifdef __FreeBSD__
+       /*
+***************
+*** 179,187 ****
+--- 196,206 ----
+  	        "         by the BSD packager.\n", stderr);
+            break;
+        case COMMAND_POST_INSTALL :
++       cr2semicolon(c->command);
+            fprintf(fp, "@exec %s\n", c->command);
+  	  break;
+        case COMMAND_PRE_REMOVE :
++       cr2semicolon(c->command);
+            fprintf(fp, "@unexec %s\n", c->command);
+  	  break;
+        case COMMAND_POST_REMOVE :
+***************
+*** 199,205 ****
+        */
+  
+        fprintf(fp, "@exec /bin/mkdir -p %s\n", file->dst);
+!       fprintf(fp, "@exec /bin/chown %s:%s %s\n", file->user, file->group,
+                file->dst);
+        fprintf(fp, "@exec /bin/chmod %04o %s\n", file->mode, file->dst);
+      }
+--- 218,224 ----
+        */
+  
+        fprintf(fp, "@exec /bin/mkdir -p %s\n", file->dst);
+!       fprintf(fp, "@exec /usr/sbin/chown %s:%s %s\n", file->user, file->group,
+                file->dst);
+        fprintf(fp, "@exec /bin/chmod %04o %s\n", file->mode, file->dst);
+      }
+*** misc/epm-3.7/qprintf.c	Tue Jan 28 06:48:03 2003
+--- misc/build/epm-3.7/qprintf.c	Thu Jan 19 17:04:22 2006
+***************
+*** 181,192 ****
+  
+              for (i = slen; i > 0; i --, s ++, bytes ++)
+  	    {
+  	      if (strchr("`~!#$%^&*()[{]}\\|;\'\"<>? ", *s))
+  	      {
+  	        putc('\\', fp);
+  		bytes ++;
+  	      }
+! 
+  	      putc(*s, fp);
+  	    }
+  
+--- 181,199 ----
+  
+              for (i = slen; i > 0; i --, s ++, bytes ++)
+  	    {
++ #if defined(__FreeBSD__)
++ 	      if (strchr("`~!#%^&*()[{]}\\|;\'\"<>? ", *s))
++ 	      {
++ 	        putc('\\', fp);
++ 		bytes ++;
++ 	      }
++ #else
+  	      if (strchr("`~!#$%^&*()[{]}\\|;\'\"<>? ", *s))
+  	      {
+  	        putc('\\', fp);
+  		bytes ++;
+  	      }
+! #endif
+  	      putc(*s, fp);
+  	    }
+  
