Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jun 2011 21:48:50 GMT
From:      Pedro Giffuni <giffunip@tutopia.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/157913: Update devel/dmake
Message-ID:  <201106152148.p5FLmokk090430@red.freebsd.org>
Resent-Message-ID: <201106152150.p5FLo9fW020227@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         157913
>Category:       ports
>Synopsis:       Update devel/dmake
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 15 21:50:09 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Pedro Giffuni
>Release:        9-0-current
>Organization:
>Environment:
FreeBSD mogwai.giffuni.net 9.0-CURRENT FreeBSD 9.0-CURRENT #6: Sat Apr 30 01:37:57 PDT 2011     root@build9x64.pcbsd.org:/usr/obj/pcbsd-build90/fbsd-source/9.0/sys/PCBSD  amd64

>Description:
Dmake is the build utility used by OpenOffice.org.
This is one of the utilities that the Apache incubator team will be purging out of their sources.

For the time being just update the description/URL for this port and bring in a patch from Debian.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

diff -ruN dmake.orig/Makefile dmake/Makefile
--- dmake.orig/Makefile	2011-06-15 16:06:56.000000000 +0000
+++ dmake/Makefile	2011-06-15 16:24:59.000000000 +0000
@@ -15,10 +15,13 @@
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Another hyper make utility
 
+LICENSE=	GPLv1
+
 WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
 GNU_CONFIGURE=	yes
 #CONFIGURE_ENV+=	CFLAGS="${CFLAGS} -Wall -Werror"
 CONFIGURE_ARGS+=--datarootdir=${PREFIX}/share/${PORTNAME}
+
 MAN1=		dmake.1
 
 post-install:
diff -ruN dmake.orig/distinfo dmake/distinfo
--- dmake.orig/distinfo	2011-06-15 16:06:56.000000000 +0000
+++ dmake/distinfo	2011-06-15 16:39:27.000000000 +0000
@@ -1,3 +1,2 @@
-MD5 (dmake_4.12.orig.tar.gz) = 282cd4004ad5c3a9df9f1384c0932829
 SHA256 (dmake_4.12.orig.tar.gz) = 142aea347a825f10a37c5f8a39584dcc96a15838b17ea418172834a8778ba205
 SIZE (dmake_4.12.orig.tar.gz) = 745531
diff -ruN dmake.orig/files/patch-fix-overlapping-stcpys.diff dmake/files/patch-fix-overlapping-stcpys.diff
--- dmake.orig/files/patch-fix-overlapping-stcpys.diff	1970-01-01 00:00:00.000000000 +0000
+++ dmake/files/patch-fix-overlapping-stcpys.diff	2011-06-15 16:31:08.000000000 +0000
@@ -0,0 +1,233 @@
+diff -ru dmake.orig/rulparse.c rulparse.c
+--- dmake.orig/rulparse.c	2009-07-29 13:31:47.000000000 +0100
++++ rulparse.c	2009-07-29 13:32:09.000000000 +0100
+@@ -897,7 +897,7 @@
+ 	 /* Handle %-targets. */
+ 	 CELLPTR cur;
+ 	 CELLPTR tpq = NIL(CELL);
+-	 CELLPTR nprq;
++	 CELLPTR nprq = NULL;
+ 
+ #ifdef DBUG
+ 	 DB_PRINT( "%", ("Handling %%-target [%s : : <prerequisites follow, maybe empty>]",
+@@ -915,7 +915,8 @@
+ 
+ 	    if( *name == '\'' && name[len-1]=='\'' ){
+ 	       name[len-1] = '\0';
+-	       strcpy(name,name+1);
++	       len = strlen(name+1)+1;
++	       memmove(name,name+1,len);
+ 	       /* add indirect prerequisite */
+ 	       _add_indirect_prereq( cur );
+ 	    }
+diff -ru dmake.orig/dag.c dag.c
+--- dmake.orig/dag.c	2009-08-07 20:18:31.000000000 +0100
++++ dag.c	2009-08-07 20:30:59.000000000 +0100
+@@ -369,14 +369,17 @@
+ 	 /* strip out any \<nl> combinations where \ is the current
+ 	  * CONTINUATION char */
+ 	 for(p=q; (p=strchr(p,CONTINUATION_CHAR))!=NIL(char); )
+-	    if( p[1] == '\n' )
+-	       strcpy( p, p+2 );
++	    if( p[1] == '\n' ) {
++	       size_t len = strlen(p+2)+1;
++	       memmove ( p, p+2, len );
++	    }
+ 	    else
+ 	       p++;
+ 
+ 	 p = DmStrSpn(q ," \t");	/* Strip white space before ... */
+ 	 if( p != q ) {
+-	    strcpy( q, p);
++	    size_t len = strlen(p)+1;
++	    memmove( q, p, len );
+ 	    p = q;
+ 	 }
+ 
+diff -ru dmake.orig/expand.c expand.c
+--- dmake.orig/expand.c	2009-08-07 20:18:34.000000000 +0100
++++ expand.c	2009-08-07 20:42:40.000000000 +0100
+@@ -230,6 +230,7 @@
+ char *tok;
+ {
+    if( strchr( "\"\\vantbrf01234567", tok[1] ) ) {
++      size_t len;
+       switch( tok[1] ) {
+ 	 case 'a' : *tok = 0x07; break;
+ 	 case 'b' : *tok = '\b'; break;
+@@ -246,13 +247,15 @@
+ 	    register int j = 0;
+ 	    for( ; i<2 && isdigit(tok[2]); i++ ) {
+ 	       j = (j << 3) + (tok[1] - '0');
+-	       strcpy( tok+1, tok+2 );
++	       len = strlen(tok+2)+1;
++	       memmove( tok+1, tok+2, len );
+ 	    }
+ 	    j = (j << 3) + (tok[1] - '0');
+ 	    *tok = j;
+ 	 }
+       }
+-      strcpy( tok+1, tok+2 );
++      len = strlen(tok+2)+1;
++      memmove( tok+1, tok+2, len );
+    }
+ }
+ 
+@@ -365,7 +368,8 @@
+       if( (e = Basename(s)) != s) {
+ 	 if( !(mod & DIRECTORY_FLAG) ) {
+ 	    /* Move the basename to the start. */
+-	    strcpy(s, e);
++	    size_t len = strlen(e)+1;
++	    memmove(s, e, len);
+ 	 }
+ 	 else
+ 	    s = e;
+@@ -382,7 +386,8 @@
+ 
+       if( !(mod & FILE_FLAG) ) {
+ 	 /* Move the suffix to the start. */
+-	 strcpy( s, e );
++	 size_t len = strlen(e)+1;
++         memmove(s, e, len);
+       }
+       else
+ 	 s = e;
+@@ -725,8 +730,10 @@
+ 	      done = !lev;
+ 	      break;
+             } else {
++              size_t len;
+ 	      s[1] = ' ';
+-	      strcpy( s, s+1 );
++              len = strlen(s+1)+1;
++	      memmove( s, s+1, len );
+ 	    }
+ 	    /*FALLTHRU*/
+ 	 case ' ':
+@@ -835,8 +842,10 @@
+        * converted them to a real space. Let's verify this. */
+       for( p=s; *p && *p != edelim && *p; p++ ) {
+ 	if( p[0] == '\\' && p[1] == '\n' ) {
++	  size_t len;
+ 	  p[1] = ' ';
+-	  strcpy( p, p+1 );
++	  len = strlen(p+1)+1;
++	  memmove( p, p+1, len );
+ 	}
+       }
+       if( !*p )
+@@ -1120,7 +1129,10 @@
+       *flag = 1;
+       res   = Expand( start );
+ 
+-      if( (t = DmStrSpn( res, " \t" )) != res ) strcpy( res, t );
++      if( (t = DmStrSpn( res, " \t" )) != res ) {
++          size_t len = strlen(t)+1;
++          memmove( res, t, len );
++      }
+    }
+ 
+    FREE( start );       /* this is ok! start is assigned a DmSubStr above */
+diff -ru dmake.orig/getinp.c getinp.c
+--- dmake.orig/getinp.c	2009-08-07 20:18:31.000000000 +0100
++++ getinp.c	2009-08-07 20:27:08.000000000 +0100
+@@ -169,7 +169,8 @@
+ 	  * text lines on input.  The maximum size of this is governened by
+ 	  * Buffer_size */
+ 	    if( q != p && q[-1] == CONTINUATION_CHAR ) {
+-	       strcpy( q, q+1 );
++	       size_t len = strlen(q+1)+1;
++	       memmove( q, q+1, len );
+ 	       q--;
+ 	       cont = FALSE;
+ 	    }
+@@ -290,7 +291,8 @@
+    while( (c = strchr(c, COMMENT_CHAR)) != NIL(char) ) {
+       if( Comment || State == NORMAL_SCAN )
+ 	 if( c != str && c[-1] == ESCAPE_CHAR ) {
+-	    strcpy( c-1, c );        /* copy it left, due to \# */
++	    size_t len = strlen(c)+1;
++	    memmove( c-1, c, len );  /* copy it left, due to \# */
+ 	    if( pend ) (*pend)--;    /* shift tail pointer left */
+ 	 }
+ 	 else {
+diff -ru dmake.orig/path.c path.c
+--- dmake.orig/path.c	2009-08-07 20:18:31.000000000 +0100
++++ path.c	2009-08-07 20:41:30.000000000 +0100
+@@ -172,6 +172,7 @@
+    char *tpath;
+    int hasdriveletter = 0;
+    int delentry;
++   size_t len;
+ 
+    DB_ENTER( "Clean_path" );
+ 
+@@ -231,14 +232,16 @@
+ 	    p++;
+ 	 }
+ 	 while( *p == *DirSepStr);
+-	 strcpy(t+1,p);
++	 len = strlen(p)+1;
++	 memmove(t+1,p,len);
+ 	 continue;
+       }
+ 
+       /* Remove './'. If OOODMAKEMODE is set do this only if it is not at
+        * the start of the path. */
+       if ( p-q == 1 && *q == '.' && (q != path || !STOBOOL(OOoDmMode)) ) {
+-	 strcpy(q,p+1);
++	 len = strlen(p+1)+1;
++	 memmove(q,p+1,len);
+ 	 q = tpath;
+ 	 continue;
+       }
+@@ -268,7 +271,8 @@
+ 	 }
+ 	 while( *t == *DirSepStr);
+ 	 /* q points to first letter of the current directory/file. */
+-	 strcpy(q,t);
++	 len = strlen(t)+1;
++	 memmove(q,t,len);
+ 	 q = tpath;
+       }
+       else
+--- dmake.orig/make.c	2009-08-08 09:56:10.000000000 +0100
++++ make.c	2009-08-08 10:00:04.000000000 +0100
+@@ -1352,8 +1352,10 @@
+        * Nothing in Expand() should be able to change dynamic macros. */
+       cmnd = Expand( rp->st_string );
+ 
+-      if( new_attr && (p = DmStrSpn(cmnd," \t\n+-@%")) != cmnd )
+-	 strcpy(cmnd,p);
++      if( new_attr && (p = DmStrSpn(cmnd," \t\n+-@%")) != cmnd ) {
++	 size_t len = strlen(p)+1;
++	 memmove(cmnd,p,len);
++      }
+ 
+       /* COMMAND macro is set to "$(CMNDNAME) $(CMNDARGS)" by default, it is
+        * possible for the user to reset it to, for example
+@@ -1381,8 +1383,10 @@
+ 	 shell  = ((l_attr & A_SHELL) != 0);
+ 
+ 	 /* clean up the attributes that we may have just added. */
+-	 if( (p = DmStrSpn(cmnd," \t\n+-@%")) != cmnd )
+-	    strcpy(cmnd,p);
++	 if( (p = DmStrSpn(cmnd," \t\n+-@%")) != cmnd ) {
++	    size_t len = strlen(p)+1;
++	    memmove(cmnd,p,len);
++	 }
+       }
+ 
+ #if defined(MSDOS)
+@@ -1477,8 +1481,9 @@
+    for( p=cmnd; *(n = DmStrPbrk(p,tmp)) != '\0'; )
+       /* Remove the \<nl> sequences. */
+       if(*n == CONTINUATION_CHAR && n[1] == '\n') {
++	 size_t len = strlen(n+2)+1;
+ 	 DB_PRINT( "make", ("fixing [%s]", p) );
+-	 strcpy( n, n+2 );
++	 memmove( n, n+2, len );
+ 	 p = n;
+       }
+       /* Look for an escape sequence and replace it by it's corresponding
diff -ruN dmake.orig/pkg-descr dmake/pkg-descr
--- dmake.orig/pkg-descr	2011-06-15 16:06:56.000000000 +0000
+++ dmake/pkg-descr	2011-06-15 16:10:14.000000000 +0000
@@ -1,3 +1,5 @@
+Dmake is a make utility similar to GNU make or the Workshop dmake.
+
 dmake is different from other versions of Make in that it supports
 significant enhancements.
 
@@ -5,7 +7,6 @@
 interest in maintaining the code.
 
 This port installs the version currently maintained by OpenOffice
-project. Unfortunately, OOo does not offer dmake as an independent
-download, but, fortunately, the folks at Debian do.
+project.
 
-WWW: http://people.debian.org/~rene/dmake/
+WWW: http://tools.openoffice.org/dmake/index.html


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106152148.p5FLmokk090430>