aboutsummaryrefslogtreecommitdiff
path: root/devel/dmake
diff options
context:
space:
mode:
authorJulien Laffaye <jlaffaye@FreeBSD.org>2011-06-16 15:44:20 +0000
committerJulien Laffaye <jlaffaye@FreeBSD.org>2011-06-16 15:44:20 +0000
commit2c34dc9689f374b205830779d053b2e04e1d0b0d (patch)
treee32b64a00deafe7d5fd85c6450fe7af5b3583a24 /devel/dmake
parent98a83d0791f66ab62623e5d21499f0999508ebea (diff)
downloadports-2c34dc9689f374b205830779d053b2e04e1d0b0d.tar.gz
ports-2c34dc9689f374b205830779d053b2e04e1d0b0d.zip
Notes
Diffstat (limited to 'devel/dmake')
-rw-r--r--devel/dmake/Makefile5
-rw-r--r--devel/dmake/distinfo1
-rw-r--r--devel/dmake/files/patch-fix-overlapping-stcpys.diff233
-rw-r--r--devel/dmake/pkg-descr7
4 files changed, 241 insertions, 5 deletions
diff --git a/devel/dmake/Makefile b/devel/dmake/Makefile
index b6e0bbbe187b..106482bad976 100644
--- a/devel/dmake/Makefile
+++ b/devel/dmake/Makefile
@@ -7,7 +7,7 @@
PORTNAME= dmake
PORTVERSION= 4.12
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_DEBIAN_POOL}
DISTNAME= ${PORTNAME}_${PORTVERSION}.orig
@@ -15,10 +15,13 @@ DISTNAME= ${PORTNAME}_${PORTVERSION}.orig
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 --git a/devel/dmake/distinfo b/devel/dmake/distinfo
index d81369870eba..6e711fc364b4 100644
--- a/devel/dmake/distinfo
+++ b/devel/dmake/distinfo
@@ -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 --git a/devel/dmake/files/patch-fix-overlapping-stcpys.diff b/devel/dmake/files/patch-fix-overlapping-stcpys.diff
new file mode 100644
index 000000000000..d5715a428b51
--- /dev/null
+++ b/devel/dmake/files/patch-fix-overlapping-stcpys.diff
@@ -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 --git a/devel/dmake/pkg-descr b/devel/dmake/pkg-descr
index 1ea14d3a3f5b..e954e178cc79 100644
--- a/devel/dmake/pkg-descr
+++ b/devel/dmake/pkg-descr
@@ -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 @@ The original author(s) were WTICorp.com, but they appear to have lost
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