From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Sep 25 02:30:26 2004 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A577D16A4CE for ; Sat, 25 Sep 2004 02:30:26 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 77A6A43D41 for ; Sat, 25 Sep 2004 02:30:26 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i8P2UQ4p019233 for ; Sat, 25 Sep 2004 02:30:26 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i8P2UQa6019230; Sat, 25 Sep 2004 02:30:26 GMT (envelope-from gnats) Resent-Date: Sat, 25 Sep 2004 02:30:26 GMT Resent-Message-Id: <200409250230.i8P2UQa6019230@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Michael C.Shultz" Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3E93D16A4CE for ; Sat, 25 Sep 2004 02:23:05 +0000 (GMT) Received: from out009.verizon.net (out009pub.verizon.net [206.46.170.131]) by mx1.FreeBSD.org (Postfix) with ESMTP id A7D8943D46 for ; Sat, 25 Sep 2004 02:23:04 +0000 (GMT) (envelope-from mike@inbox.lv) Received: from ringworm.mechee.com ([4.26.230.108]) by out009.verizon.net ESMTP <20040925022257.QHQP23440.out009.verizon.net@ringworm.mechee.com>; Fri, 24 Sep 2004 21:22:57 -0500 Received: by ringworm.mechee.com (Postfix, from userid 1001) id 7924610; Fri, 24 Sep 2004 19:22:14 -0700 (PDT) Message-Id: <20040925022214.7924610@ringworm.mechee.com> Date: Fri, 24 Sep 2004 19:22:14 -0700 (PDT) From: "Michael C.Shultz" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: reso3w83@verizon.net Subject: ports/72074: [MAINTAINER] Portmanager minor fix X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Michael C.Shultz" List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Sep 2004 02:30:26 -0000 >Number: 72074 >Category: ports >Synopsis: [MAINTAINER] Portmanager minor fix >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: Sat Sep 25 02:30:26 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Michael C. Shultz >Release: FreeBSD 5.3-BETA5 i386 >Organization: >Environment: System: FreeBSD ringworm.mechee.com 5.3-BETA5 FreeBSD 5.3-BETA5 #4: Wed Sep 22 15:12:06 PDT 2004 root@ringworm.mechee.com:/usr/obj/usr/src/sys/RINGWORM i386 >Description: File changes: delete files/patch-libMG.h add files/patch-aa add files/patch-ab Fixes potential endless loop when a port whose name is changable depending on selected options changes its name. Note: I submitted this change 24 hours ago and it still isn't listed in freebsd-ports-bugs@freebsd.org, so if this change ends up being submitted twice, sorry. >How-To-Repeat: Example: Install mplayer, run portmanager, then change an option and reinstall mplayer. >Fix: --- portmanager.DIFF begins here --- diff -ruN portmanager/Makefile portmanager-ab/Makefile --- portmanager/Makefile Thu Sep 23 13:39:46 2004 +++ portmanager-ab/Makefile Thu Sep 23 08:52:39 2004 @@ -7,7 +7,7 @@ PORTNAME= portmanager PORTVERSION= 0.2.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= portmanager diff -ruN portmanager/files/patch-aa portmanager-ab/files/patch-aa --- portmanager/files/patch-aa Wed Dec 31 16:00:00 1969 +++ portmanager-ab/files/patch-aa Thu Sep 23 08:52:39 2004 @@ -0,0 +1,11 @@ +--- libMG/src/libMG.h Thu Aug 12 10:34:49 2004 ++++ libMG/src/libMG.h Fri Aug 27 02:48:55 2004 +@@ -307,7 +307,7 @@ + { \ + errorCode = 1; \ + } \ +- strcpy( var, string ); ++ strncpy( var, string, strlen(string)+1 ); + + #include + #include diff -ruN portmanager/files/patch-ab portmanager-ab/files/patch-ab --- portmanager/files/patch-ab Wed Dec 31 16:00:00 1969 +++ portmanager-ab/files/patch-ab Thu Sep 23 08:52:39 2004 @@ -0,0 +1,372 @@ +diff -ruN ./libMG/src/libMG.h.orig ../../PATCH/portmanager-0.2.0/libMG/src/libMG.h.orig +--- ./libMG/src/libMG.h.orig Thu Aug 12 10:34:49 2004 ++++ ../../PATCH/portmanager-0.2.0/libMG/src/libMG.h.orig Wed Dec 31 16:00:00 1969 +@@ -1,320 +0,0 @@ +-/************************************************************************/ +-/* Copyright (C) 2004 Michael C. Shultz */ +-/* */ +-/* This program is free software; you can redistribute it and/or modify */ +-/* it under the terms of the GNU General Public License as published by */ +-/* the Free Software Foundation; either version 2 of the License, or (at*/ +-/* your option) any later version. */ +-/* */ +-/* This program is distributed in the hope that it will be useful, */ +-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +-/* GNU General Public License for more details. */ +-/* */ +-/* You should have received a copy of the GNU General Public License */ +-/* along with this program; if not, write to the Free Software */ +-/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA */ +-/* 02111-1307, USA. */ +-/* */ +-/* Michael C. Shultz */ +-/* ringworm@inbox.lv */ +-/* Box 3238 Landers, CA 92285 */ +-/************************************************************************/ +- +-/************************************************/ +-/* macro index: */ +-/* MGmSetString( var, string ) */ +-/* MGmDbArray( b, c , d ) */ +-/* MGmDbArrayFree( a ) */ +-/************************************************/ +-#ifndef __LIBMG_H__ +-#define __LIBMG_H__ 1 +- +-#ifndef __errno__ +-extern int errno; +-#define __errno__ 1 +-#endif +- +-/* +-#include +-*/ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +- +-#ifndef CR +-#define CR 13 +-#endif +- +-#ifndef LF +-#define LF 10 +-#endif +- +-#ifndef SPACE +-#define SPACE 32 +-#endif +- +-#ifndef TAB +-#define TAB 9 +-#endif +- +-/*................................................. +-structure MGsDb +-Used to contain the various elements of a data base +- +-name = path + name of data base file +-mode = mode data base is to be opened +- "r" read only +- "r+" read/write +- "a" append +-..................................................*/ +-typedef struct +-{ +- char* buffer; /* buffer used to contain data base */ +- char* field; +- char* mode; /* mode in which to open file */ +- char* name; /* name and path of data base file */ +- char** record; +- char** recordStartAddress; +- char*** array; /* data base array */ +- FILE* stream; /* assigned to data base file after it is opened */ +- int bufferPtr1; +- unsigned int eof; /* size of data base file in bytes */ +- int fieldPtr1; +- int fieldIdx; +- int fieldQty; /* quantity of fields per record */ +- int recordIdx; +- int recordQty; /* quantity of records per data base */ +-} MGsDb; +- +-/*................................................. +- +-structure MGsProperty +- +- +-intended use is to provide a consistant means of organizing an +-application's top level property structure. See MGsProperty(7) +-for a detailed description +- +-id = assigned application's name +-version = assigned application's version, in a string +-feedback = determines the level of verbosity as application executes +- best to set this with MGrCommandLine(3) but it may of course +- be set or adjused elsewhere +-..................................................*/ +-typedef struct +-{ +- char* id; +- char* version; +- int feedBack; +-} MGsProperty; +- +- +-/*********************************** +-MACROS +-************************************/ +-/*********************************** +-MGmDbArray: +-b = dbase structure name +-c = dbase file name string +-d = open mode string +-************************************/ +-#define MGmDbArrayFree( a ) \ +- free( a.buffer ); \ +- free( a.mode ); \ +- free( a.name ); \ +- free( a.recordStartAddress ); \ +- free( a.array ); \ +- fclose( a.stream ); +- +-#define MGmDbArray( b, c, d ) \ +- do{ \ +- errno = 0; \ +- if( !( b.name = ( char*)malloc( (unsigned int)sizeof( c ) + 1 ) ) ) \ +- { \ +- fprintf( stderr, "MGmDbArray error: Unable to allocate memory for %s\n", c ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- strcpy( b.name, c ); \ +- if( !( b.mode = ( char*)malloc( (unsigned int)sizeof( d ) + 1 ) ) ) \ +- { \ +- fprintf( stderr, "MGmDbArray error: Unable to allocate 2 bytes %s mode %s\n", c, d ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- strcpy( b.mode, d ); \ +- if( !( b.eof = MGrFileSize( b.name ) ) ) \ +- { \ +- fprintf( stderr, "MGmDbArray warning: MGrFileSize returned a size of %d for %s\n", b.eof, b.name ); \ +- errno = 2; \ +- } \ +- if( errno==0 ) \ +- { \ +- if(!(b.buffer=(char*)malloc((unsigned int)b.eof))) \ +- { \ +- fprintf( stderr, "MGmDbArray error: unable to reallocate %d bytes memory for %s\n", \ +- b.eof, b.name ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- if( !( b.stream = fopen( b.name, b.mode ) ) ) \ +- { \ +- fprintf( stderr, "MGmDbArray error: unable to open file %s\n", b.name ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- fread( b.buffer, b.eof, 1, b.stream ); \ +- if( ferror( b.stream ) ) \ +- { \ +- fprintf( stderr, "MGmDbArray error: reading file %s into b.buffer\n", b.name ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- b.bufferPtr1 = 0; \ +- b.fieldQty = 0; \ +- while( b.buffer[b.bufferPtr1] != LF ) \ +- { \ +- if( !( b.buffer[b.bufferPtr1] ) ) \ +- { \ +- b.fieldQty++; \ +- } \ +- b.bufferPtr1++; \ +- } \ +- b.bufferPtr1 = 0; \ +- b.fieldPtr1 = 0; \ +- b.recordQty = 0; \ +- while( b.bufferPtr1 < b.eof ) \ +- { \ +- while( b.buffer[b.bufferPtr1] != LF ) \ +- { \ +- if( !( b.buffer[b.bufferPtr1] ) ) \ +- { \ +- b.fieldPtr1++; \ +- } \ +- b.bufferPtr1++; \ +- } \ +- if( b.fieldPtr1 != b.fieldQty ) \ +- { \ +- fprintf( stderr, \ +- "MGmDbArray error: inconsitant field count at record %d. field count is %d and should be %d\n", \ +- b.recordQty, b.fieldPtr1, \ +- b.fieldQty ); \ +- errno = 1; \ +- break; \ +- } \ +- b.bufferPtr1++; \ +- b.recordQty++; \ +- b.fieldPtr1 = 0; \ +- } \ +- if( errno==0 ) \ +- { \ +- if(!(b.record=(char**)malloc((unsigned int)b.recordQty*(unsigned int)b.fieldQty*(unsigned int)sizeof(char**)))) \ +- { \ +- fprintf( stderr, \ +- "MGmDbArray error: realloc failed to allocate %d bytes for records\n", \ +- b.fieldQty * sizeof( char* ) ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- b.recordStartAddress = b.record; \ +- if( !( b.array = ( char*** )malloc((unsigned int)b.recordQty * (unsigned int)sizeof( char** ) ) ) ) \ +- { \ +- fprintf( stderr, \ +- "MGmDbArray error: malloc failed to allocate %d bytes for dBase\n", \ +- b.recordQty * sizeof( char** ) ); \ +- perror( "system message" ); \ +- errno = 1; \ +- } \ +- if( errno==0 ) \ +- { \ +- b.field = b.buffer; \ +- b.record[0] = ( char* )b.field; \ +- b.array[0] = ( char** )b.record; \ +- b.recordIdx = 0; \ +- while( b.recordIdx < b.recordQty ) \ +- { \ +- b.fieldIdx = 0; \ +- while( 1==1 ) \ +- { \ +- b.record[b.fieldIdx] = b.field; \ +- b.fieldPtr1 = ( int )b.field; \ +- if( !( b.field = strchr( ( char* )b.fieldPtr1, 0) ) ) \ +- { \ +- fprintf( stderr, "MGmDbArray error: next field not found\n" ); \ +- perror( "system message" ); \ +- errno = 1; \ +- break; \ +- } \ +- b.field = b.field + 1; \ +- b.fieldIdx++; \ +- if( b.field[0] == LF ) \ +- { \ +- b.field = b.field + 1; \ +- break; \ +- } \ +- } \ +- if( errno!=0 ) \ +- { \ +- break; \ +- } \ +- b.array[b.recordIdx] = ( char** )b.record; \ +- b.fieldIdx = 0; \ +- while( b.fieldIdx < b.fieldQty ) \ +- { \ +- b.record++; \ +- b.fieldIdx++; \ +- } \ +- b.recordIdx++; \ +- } \ +- } \ +- } \ +- } \ +- } \ +- } \ +- } \ +- } \ +- } \ +- }} \ +- while (0) +- +-#define MGmSetString( var, string ) \ +- errorCode = 0; \ +- if( !( var = ( char* )malloc((unsigned int)strlen( string ) + 1 ) ) )\ +- { \ +- errorCode = 1; \ +- } \ +- strcpy( var, string ); +- +-#include +-#include +-#include +-#include +-#include +-#include +- +- +-#endif +diff -ruN ./libPMGR/src/PMGRrMakeDescribe.c ../../PATCH/portmanager-0.2.0/libPMGR/src/PMGRrMakeDescribe.c +--- ./libPMGR/src/PMGRrMakeDescribe.c Thu Aug 19 23:52:39 2004 ++++ ../../PATCH/portmanager-0.2.0/libPMGR/src/PMGRrMakeDescribe.c Wed Sep 22 21:17:06 2004 +@@ -287,6 +287,10 @@ + return( NULL ); + } + fread( Buffer, BufferSize, 1, tempStream ); ++ #ifdef DEBUG ++ fprintf( stderr, "DEBUG: %s: currentPortMakefile = %s\n", id, currentPortMakefile ); ++ #endif ++ + pclose( tempStream ); + free( currentPortMakefile ); + miscPtr = 0; +diff -ruN ./libPMGR/src/libPMGR.h ../../PATCH/portmanager-0.2.0/libPMGR/src/libPMGR.h +--- ./libPMGR/src/libPMGR.h Tue Aug 10 20:16:27 2004 ++++ ../../PATCH/portmanager-0.2.0/libPMGR/src/libPMGR.h Wed Sep 22 21:24:35 2004 +@@ -22,7 +22,9 @@ + /************************************************************************/ + #ifndef __LIBPMGR_H__ + #define __LIBPMGR_H__ 1 +- ++/* ++#define DEBUG 1 ++*/ + #include + #include + #include +@@ -31,7 +33,7 @@ + #include + + #ifndef VER +-static char ver[] = "0.2.0"; ++static char ver[] = "0.2.0_2"; + #define VER 1 + #endif + +diff -ruN ./portmanager/portmanager.c ../../PATCH/portmanager-0.2.0/portmanager/portmanager.c +--- ./portmanager/portmanager.c Thu Aug 12 13:20:37 2004 ++++ ../../PATCH/portmanager-0.2.0/portmanager/portmanager.c Wed Sep 22 21:28:12 2004 +@@ -116,6 +116,7 @@ + } + case PMUPGRADE: + { ++ system( "rm /usr/local/share/portmanager/ports_cache.db" ); + errorCode = system( "pmupgrade" ); + break; + } diff -ruN portmanager/files/patch-libMG.h portmanager-ab/files/patch-libMG.h --- portmanager/files/patch-libMG.h Thu Sep 23 13:39:46 2004 +++ portmanager-ab/files/patch-libMG.h Wed Dec 31 16:00:00 1969 @@ -1,11 +0,0 @@ ---- libMG/src/libMG.h Thu Aug 12 10:34:49 2004 -+++ libMG/src/libMG.h Fri Aug 27 02:48:55 2004 -@@ -307,7 +307,7 @@ - { \ - errorCode = 1; \ - } \ -- strcpy( var, string ); -+ strncpy( var, string, strlen(string)+1 ); - - #include - #include --- portmanager.DIFF ends here --- >Release-Note: >Audit-Trail: >Unformatted: