Add a patch from Debian
Update pkg-descr Bump portrevision PR: ports/157913 Submitted by: Pedro Giffuni <giffunip@tutopia.com> (maintainer) Approved by: bapt (mentor)
This commit is contained in:
parent
98a83d0791
commit
2c34dc9689
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=275683
4 changed files with 241 additions and 5 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
233
devel/dmake/files/patch-fix-overlapping-stcpys.diff
Normal file
233
devel/dmake/files/patch-fix-overlapping-stcpys.diff
Normal file
|
@ -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
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue