From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Dec 13 03:20:06 2006 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 197F416A412 for ; Wed, 13 Dec 2006 03:20:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.FreeBSD.org (Postfix) with ESMTP id 58C9343CAC for ; Wed, 13 Dec 2006 03:18:37 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id kBD3K3Ql054432 for ; Wed, 13 Dec 2006 03:20:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id kBD3K3Dc054431; Wed, 13 Dec 2006 03:20:03 GMT (envelope-from gnats) Resent-Date: Wed, 13 Dec 2006 03:20:03 GMT Resent-Message-Id: <200612130320.kBD3K3Dc054431@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, "Robert C. Noland III" Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5646D16A416; Wed, 13 Dec 2006 03:12:22 +0000 (UTC) (envelope-from rnoland@bbeng-laptop.acs.internap.com) Received: from gizmo.2hip.net (gizmo.2hip.net [64.74.207.195]) by mx1.FreeBSD.org (Postfix) with ESMTP id CDB4D43CA4; Wed, 13 Dec 2006 03:10:53 +0000 (GMT) (envelope-from rnoland@bbeng-laptop.acs.internap.com) Received: from bbeng-laptop.acs.internap.com (c-24-99-227-6.hsd1.ga.comcast.net [24.99.227.6]) (authenticated bits=0) by gizmo.2hip.net (8.13.8/8.13.8) with ESMTP id kBD3DfgU060751 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 12 Dec 2006 22:13:41 -0500 (EST) (envelope-from rnoland@bbeng-laptop.acs.internap.com) Received: from bbeng-laptop.acs.internap.com (localhost.acs.internap.com [127.0.0.1]) by bbeng-laptop.acs.internap.com (8.13.8/8.13.8) with ESMTP id kBD3BaO7001872; Tue, 12 Dec 2006 22:11:36 -0500 (EST) (envelope-from rnoland@bbeng-laptop.acs.internap.com) Received: (from rnoland@localhost) by bbeng-laptop.acs.internap.com (8.13.8/8.13.8/Submit) id kBD3BZkm001871; Tue, 12 Dec 2006 22:11:35 -0500 (EST) (envelope-from rnoland) Message-Id: <200612130311.kBD3BZkm001871@bbeng-laptop.acs.internap.com> Date: Tue, 12 Dec 2006 22:11:35 -0500 (EST) From: "Robert C. Noland III" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: miwi@FreeBSD.org Subject: ports/106652: [PATCH] sysutils/portmanager: Fix /tmp pkg clean-up with bzip2, take maintainership X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Dec 2006 03:20:06 -0000 >Number: 106652 >Category: ports >Synopsis: [PATCH] sysutils/portmanager: Fix /tmp pkg clean-up with bzip2, take maintainership >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Dec 13 03:20:02 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Robert C. Noland III >Release: FreeBSD 7.0-CURRENT i386 >Organization: >Environment: System: FreeBSD bbeng-laptop.acs.internap.com 7.0-CURRENT FreeBSD 7.0-CURRENT #84: Tue Dec 5 16:03:02 EST >Description: We have been using bzip2 in pkg_create by default for a while now. Patch to allow removing either .tgz or .tbz temporary pkgs. Refactor the existing patches so that we have one patch per file to ease maintenance. - Take maintainership Added file(s): - files/patch-libMGPM__src__MGPMrGetPortName.c - files/patch-libMGPM__src__MGPMrInitialize.c - files/patch-libMGPM__src__MGPMrPortBrokeCheck.c - files/patch-libMGPM__src__MGPMrReadConfigure.c - files/patch-libMGPM__src__MGPMrShowLeavesDelete.c - files/patch-libMGPM__src__MGPMrUpdate.c - files/patch-libMGPM__src__libMGPM.h - files/patch-libMG__src__MGdbAdd.c - files/patch-libMG__src__MGdbRead.c - files/patch-libMG__src__Makefile.am - files/patch-libMG__src__libMG.h - files/patch-portmanager__portmanager.c Removed file(s): - files/patch-0.4.1_1 - files/patch-0.4.1_2 - files/patch-0.4.1_3 - files/patch-0.4.1_4 - files/patch-libMGPM-src-MGPMrGetPortName.c - files/patch-portmanager.c Generated with FreeBSD Port Tools 0.77 >How-To-Repeat: >Fix: --- portmanager-0.4.1_7.patch begins here --- Index: Makefile =================================================================== RCS file: /home/ncvs/ports/sysutils/portmanager/Makefile,v retrieving revision 1.71 diff -u -r1.71 Makefile --- Makefile 15 Aug 2006 01:04:52 -0000 1.71 +++ Makefile 13 Dec 2006 03:03:37 -0000 @@ -7,12 +7,12 @@ PORTNAME= portmanager PORTVERSION= 0.4.1 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= sysutils MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= portmanager -MAINTAINER= ports@FreeBSD.org +MAINTAINER= rnoland@2hip.net COMMENT= FreeBSD installed ports status and safe update utility MAN1= portmanager.1 Index: files/patch-0.4.1_1 =================================================================== RCS file: files/patch-0.4.1_1 diff -N files/patch-0.4.1_1 --- files/patch-0.4.1_1 20 Jan 2006 08:54:25 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,703 +0,0 @@ -diff -ruN ../0.4.1/libMG/src/MGdbAdd.c ./libMG/src/MGdbAdd.c ---- ../0.4.1/libMG/src/MGdbAdd.c Mon Dec 12 12:32:34 2005 -+++ ./libMG/src/MGdbAdd.c Thu Dec 15 19:00:23 2005 -@@ -39,7 +39,9 @@ - int idx = 0; - va_list paramList; - -- /* check if we have a valid object */ -+ /* -+ * check if we have a valid object -+ */ - if( db->parent.type != CLASS_TYPE_DB ) - { - fprintf( stderr, "%s error: invalid object type\n", id); -@@ -71,6 +73,8 @@ - */ - if( MGrBufferlen( paramPtr, MAXBUFFERSIZE ) < 1 ) - { -+ fprintf( stderr, "%s error: attempt to place null data into record halted\n", id ); -+ while( fflush( stderr ) ); - assert(0); - } - fprintf( dbFileStream, "%s%c", paramPtr, 0 ); -@@ -85,6 +89,7 @@ - { - fprintf( stderr, "%s error: fields added (%d) exceed field quantity (%d)\n did you forget to terminate MGdbAdd with a NULL field?\n", - id, idx, db->fieldQty ); -+ while( fflush( stderr ) ); - assert(0); - } - } -diff -ruN ../0.4.1/libMG/src/MGdbRead.c ./libMG/src/MGdbRead.c ---- ../0.4.1/libMG/src/MGdbRead.c Mon Dec 12 12:32:34 2005 -+++ ./libMG/src/MGdbRead.c Thu Dec 15 19:04:13 2005 -@@ -58,6 +58,7 @@ - fprintf( stderr, "%s error: unable to allocate %d bytes memory for db->dataBuffer\n", - id, dataBufferSize ); - perror( "system message" ); -+ while( fflush( stderr ) ); - assert(0); - } - /*zzzzzzzzzzzzzz*/ -@@ -70,6 +71,7 @@ - { - fprintf( stderr, "%s error: reading file %s into db->dataBuffer\n", id, db->parent.path ); - perror( "system message" ); \ -+ while( fflush( stderr ) ); - assert(0); - } - -diff -ruN ../0.4.1/libMG/src/Makefile.am ./libMG/src/Makefile.am ---- ../0.4.1/libMG/src/Makefile.am Tue Dec 13 10:57:20 2005 -+++ ./libMG/src/Makefile.am Sat Dec 17 08:03:02 2005 -@@ -32,7 +32,7 @@ - MGrStrlen.c \ - MGxTermBarCreate.c \ - MGxTermBarDestroy.c \ -- MGxTermBarUpdate.c -+ MGxTermBarUpdate.c - - include_HEADERS = libMG.h - -diff -ruN ../0.4.1/libMG/src/libMG.h ./libMG/src/libMG.h ---- ../0.4.1/libMG/src/libMG.h Tue Dec 13 10:56:16 2005 -+++ ./libMG/src/libMG.h Sat Dec 17 08:19:23 2005 -@@ -57,6 +57,7 @@ - #define KEY_a 97 - #define CLASS_TYPE_DB 1 - #define CLASS_TYPE_DIR 2 -+#define CLASS_TYPE_MEM 3 - #define CR 13 - #define DEBUG_MGdb 0 - #define DEBUG_MGdir 0 -@@ -77,15 +78,15 @@ - #define SINGLE_LINES "------------------------------------------------------------------------" - #define DOUBLE_LINES "========================================================================" - -- char** MGm__command; -- int MGm__forkStatus; -- pid_t MGm__pid; --struct stat fstatBuf; --struct stat lstatBuf; --typedef struct classDb classDb; --typedef struct classDir classDir; --unsigned int MGm__bufferSize; --unsigned int MGm__stringSize; -+ char** MGm__command; -+ int MGm__forkStatus; -+ pid_t MGm__pid; -+ struct stat fstatBuf; -+ struct stat lstatBuf; -+ unsigned int MGm__bufferSize; -+ unsigned int MGm__stringSize; -+typedef struct classDb classDb; -+typedef struct classDir classDir; - - #define MAXSTRINGSIZE 0x1ff - #define MAXBUFFERSIZE 0xffff -@@ -270,7 +271,7 @@ - int MGrInStringSwap( char* originalString, char* oldString, char* newString ); - int MGrStripComment( char*, char ); - unsigned int MGrBufferlen( char* buffer, unsigned int maxBufferSize ); --unsigned int MGrStrlen( char* string ); -+unsigned int MGrStrlen( char* String ); - unsigned long int MGrFileTime( char* ); - - #endif -diff -ruN ../0.4.1/libMGPM/src/MGPMrPortBrokeCheck.c ./libMGPM/src/MGPMrPortBrokeCheck.c ---- ../0.4.1/libMGPM/src/MGPMrPortBrokeCheck.c Tue Dec 13 14:08:27 2005 -+++ ./libMGPM/src/MGPMrPortBrokeCheck.c Sat Dec 17 07:20:37 2005 -@@ -78,7 +78,7 @@ - } - buffer[0] = 0; - fread( buffer, MAXBUFFERSIZE, 1, pHandle ); -- if( ferror( pHandle ) == 0 && MGrStrlen( buffer ) > 1 ) -+ if( ferror( pHandle ) == 0 && MGrBufferlen( buffer, MAXBUFFERSIZE ) > 1 ) - { - fprintf( stdout, "%s %s error: %s %s marked %s, adding to ignore.db\n", id, PACKAGE_VERSION, oldPortName, oldPortDir, brokeCheckType ); - while( fflush( stdout ) ); -diff -ruN ../0.4.1/libMGPM/src/MGPMrShowLeavesDelete.c ./libMGPM/src/MGPMrShowLeavesDelete.c ---- ../0.4.1/libMGPM/src/MGPMrShowLeavesDelete.c Mon Dec 12 12:32:34 2005 -+++ ./libMGPM/src/MGPMrShowLeavesDelete.c Sat Dec 17 08:54:02 2005 -@@ -39,19 +39,21 @@ - char exact[] = "exact"; - char id[] = "MGPMrShowLeavesDelete"; - char* command = NULL; -- char* leafPortDir = NULL; -+ char* leafPortDir; - char* leafPortName = NULL; - char* pkgDescFile = NULL; -+ char** cmd; -+ char** env; - int answer = 1; -- int bufferSize = 0xffff; - int doubleBreak = 0; - int installedPortsDbIDX = 0; - int installedPortsDbQTY = 0; - -- command = calloc( bufferSize, 1 ); -- leafPortDir = calloc( bufferSize, 1 ); -- leafPortName = calloc( bufferSize, 1 ); -- pkgDescFile = calloc( bufferSize, 1 ); -+ leafPortDir = calloc( MAXSTRINGSIZE, 1 ); -+ leafPortName = calloc( MAXSTRINGSIZE, 1 ); -+ -+ command = calloc( MAXBUFFERSIZE, 1 ); -+ pkgDescFile = calloc( MAXBUFFERSIZE, 1 ); - - if( ( property->ignoreDb = MGdbOpen( property->ignoreDbFileName ) ) == NULL ) - { -@@ -108,50 +110,94 @@ - installedPortsDbIDX++; - continue; - } --/* -- if( answer != KEY_ENTER ) -+ -+ cmd = malloc( sizeof( char* ) * 2 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = 0; -+ -+ env = malloc( sizeof( char* ) * 2 ); -+ env[0] = malloc( MAXSTRINGSIZE ); -+ env[1] = 0; -+ -+ MGmStrcpy( env[0], "TERM=" ); -+ MGmStrcat( env[0], getenv( "TERM" ) ); -+ -+ MGmStrcpy( cmd[0], "/usr/bin/clear" ); -+ -+ MGmSystem( cmd, env ); -+ -+ free( env[0] ); -+ free( env ); -+ -+ free( cmd[0] ); -+ free( cmd ); -+ -+ fprintf( stdout,"%s\n", SINGLE_LINES ); -+ fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" ); -+ fprintf( stdout,"%s\n", SINGLE_LINES ); -+ fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" ); -+ fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" ); -+ if( property->buildDependsAreLeaves ) - { --*/ -- system( "clear" ); -- fprintf( stdout,"%s\n", SINGLE_LINES ); -- fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" ); -- fprintf( stdout,"%s\n", SINGLE_LINES ); -- fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" ); -- fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" ); -- if( property->buildDependsAreLeaves ) -- { -- fprintf( stdout, "however, other ports may rely on these to build.\"\n" ); -- } -- fprintf( stdout, "%s\n", SINGLE_LINES ); -+ fprintf( stdout, "however, other ports may rely on these to build.\"\n" ); -+ } -+ fprintf( stdout, "%s\n", SINGLE_LINES ); - -- fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir ); -- while( fflush( stdout ) ); -+ fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir ); -+ while( fflush( stdout ) ); - -- MGmStrcpy( pkgDescFile, PORTSDIR ); -- MGmStrcat( pkgDescFile, leafPortDir ); -- MGmStrcat( pkgDescFile, "/pkg-descr" ); -+ MGmStrcpy( pkgDescFile, PORTSDIR ); -+ MGmStrcat( pkgDescFile, leafPortDir ); -+ MGmStrcat( pkgDescFile, "/pkg-descr" ); - -- if( MGrIfFileExist( pkgDescFile ) ) -- { -- MGmStrcpy( command, "cat " ); -- MGmStrcat( command, pkgDescFile ); -- system( command ); -- fprintf( stdout, "\n" ); -- } -- else -- { -- MGmStrcpy( command, "grep COMMENT " ); -- MGmStrcat( command, PORTSDIR ); -- MGmStrcat( command, leafPortDir ); -- MGmStrcat( command, "/Makefile" ); -- system( command ); -- } -- fprintf( stdout,"%s\n", SINGLE_LINES ); -- fprintf( stdout, "\n to skip\n removes port\n *Nuke it*, removes distribution files\n\n" ); -- fprintf( stdout,"%s\n", SINGLE_LINES ); --/* -+ if( MGrIfFileExist( pkgDescFile ) ) -+ { -+ cmd = malloc( sizeof( char* ) * 3 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = malloc( MAXSTRINGSIZE ); -+ cmd[2] = 0; -+ -+ MGmStrcpy( cmd[0], "/bin/cat" ); -+ MGmStrcpy( cmd[1], pkgDescFile ); -+ -+ MGmSystem( cmd, NULL ); -+ -+ free( cmd[0] ); -+ free( cmd[1] ); -+ free( cmd ); -+ -+ fprintf( stdout, "\n" ); -+ while( fflush( stdout ) ); -+ } -+ else -+ { -+ cmd = malloc( sizeof( char* ) * 4 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = malloc( MAXSTRINGSIZE ); -+ cmd[2] = malloc( MAXSTRINGSIZE ); -+ cmd[3] = 0; -+ -+ MGmStrcpy( cmd[0], "/usr/bin/grep" ); -+ MGmStrcpy( cmd[1], "COMMENT" ); -+ MGmStrcpy( cmd[2], PORTSDIR ); -+ MGmStrcat( cmd[2], leafPortDir ); -+ MGmStrcat( cmd[2], "/Makefile" ); -+ -+ MGmSystem( cmd, NULL ); -+ -+ free( cmd[0] ); -+ free( cmd[1] ); -+ free( cmd[2] ); -+ free( cmd ); -+ -+ fprintf( stdout, "\n" ); -+ while( fflush( stdout ) ); - } --*/ -+ fprintf( stdout,"%s\n", SINGLE_LINES ); -+ fprintf( stdout, "\n to skip\n removes port\n *Nuke it*, removes distribution files\n\n" ); -+ fprintf( stdout,"%s\n", SINGLE_LINES ); -+ while( fflush( stdout ) ); -+ - property->STDIN = fopen( "/dev/stdin", "r" ); /* Flawfinder: ignore */ - doubleBreak = 0; - while( 1 == 1 ) -@@ -243,9 +289,7 @@ - { - char id[] = "removePort"; - char exact[] = "exact"; -- char* command = NULL; -- -- command = (char*)calloc( 0xffff, 1 ); -+ char** cmd; - - property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX ); - -@@ -261,12 +305,26 @@ - MGdbGoTop( property->availableDependenciesDb ); - } - -- MGmStrcpy( command, "pkg_delete -f " ); -- MGmStrcat( command, leafPortNamePtr ); -- fprintf( stdout, "\nexecuting: %s\n", command ); -+ cmd = malloc( sizeof( char* ) * 4 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = malloc( MAXSTRINGSIZE ); -+ cmd[2] = malloc( MAXSTRINGSIZE ); -+ cmd[3] = 0; -+ -+ MGmStrcpy( cmd[0], "/usr/sbin/pkg_delete" ); -+ MGmStrcpy( cmd[1], "-f" ); -+ MGmStrcpy( cmd[2], leafPortNamePtr ); -+ -+ fprintf( stdout, "\nexecuting: %s %s %s\n", cmd[0], cmd[1], cmd[2] ); - while( fflush( stdout ) ); -- system( command ); -- free(command); -+ -+ MGmSystem( cmd, NULL ); -+ -+ free( cmd[2] ); -+ free( cmd[1] ); -+ free( cmd[0] ); -+ free( cmd ); -+ - return( 0 ); - } - -@@ -274,18 +332,35 @@ - int nuke( char* leafPortDir ) - { - char id[] = "nuke"; -- char* command = NULL; -+ char** cmd; - -- command = (char*)calloc( 0xffff, 1 ); -+ cmd = malloc( sizeof( char* ) * 4 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = malloc( MAXSTRINGSIZE ); -+ cmd[2] = 0; -+ -+ MGmStrcpy( cmd[0], PORTSDIR ); -+ MGmStrcat( cmd[0], leafPortDir ); -+ if( chdir( cmd[0] ) != 0 ) -+ { -+ fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); -+ perror( "chroot" ); -+ while( fflush( stderr ) ); -+ assert( 0 ); -+ } - -- MGmStrcpy( command, "cd " ); -- MGmStrcat( command, PORTSDIR ); -- MGmStrcat( command, leafPortDir ); -- MGmStrcat( command, "; make distclean" ); -- fprintf( stdout, "\nexecuting: %s\n", command ); -+ MGmStrcpy( cmd[0], "/usr/bin/make" ); -+ MGmStrcpy( cmd[1], "distclean" ); -+ -+ fprintf( stdout, "\nexecuting: %s %s\n", cmd[0], cmd[1] ); - while( fflush( stdout ) ); -- system( command ); -- free(command); -+ -+ MGmSystem( cmd, NULL ); -+ -+ free( cmd[1] ); -+ free( cmd[0] ); -+ free( cmd ); -+ - return( 0 ); - } - -diff -ruN ../0.4.1/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c ---- ../0.4.1/libMGPM/src/MGPMrUpdate.c Wed Dec 14 10:23:59 2005 -+++ ./libMGPM/src/MGPMrUpdate.c Thu Dec 15 12:07:52 2005 -@@ -60,6 +60,7 @@ - char* stopPortDirPtr = NULL; - char* strikePtr = NULL; - char** cmd; -+ char** env; - int answer = 1; - int availableDependenciesDbIDX = 0; - int availableDependenciesDbQTY = 0; -@@ -74,12 +75,6 @@ - - property->optionsChanged = 0; - -- localProperty.environment = malloc( sizeof( char** ) * 4 ); -- localProperty.environment[0] = malloc( MAXSTRINGSIZE ); -- localProperty.environment[1] = malloc( MAXSTRINGSIZE ); -- localProperty.environment[2] = malloc( MAXSTRINGSIZE ); -- localProperty.environment[3] = 0; -- - localProperty.CURDIR = calloc( MAXSTRINGSIZE, 1 ); - localProperty.afterOptionsFileSize = calloc( MAXSTRINGSIZE, 1 ); - localProperty.afterOptionsFileTime = calloc( MAXSTRINGSIZE, 1 ); -@@ -122,30 +117,6 @@ - return( 0 ); - } - -- /* -- * setup environment -- */ -- MGmStrcpy( localProperty.environment[0], "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin" ); -- -- if( getenv( "CCACHE_DIR" ) != NULL ) -- { -- MGmStrcpy( localProperty.environment[1], "CCACHE_DIR=" ); -- MGmStrcat( localProperty.environment[1], getenv( "CCACHE_DIR" ) ); -- } -- else -- { -- localProperty.environment[1][0] = 0; -- } -- -- if( getenv( "CCACHE_PATH" ) != NULL ) -- { -- MGmStrcpy( localProperty.environment[2], "CCACHE_PATH=/usr/bin:/usr/local/bin" ); -- } -- else -- { -- localProperty.environment[2][0] = 0; -- } -- - /* - * test for bsd.ports.mk patch - */ -@@ -466,25 +437,53 @@ - */ - /* - * If here we know OPTIONS is defined, need to run make config -- * if /var/db/ports/{package name}/options exists -+ * if /var/db/ports/{package name}/options does not exist - */ - if( MGrIfFileExist( localProperty.optionsDir ) == 0 ) - { -- MGmStrcpy( localProperty.command, "cd " ); -- MGmStrcat( localProperty.command, PORTSDIR ); -- MGmStrcat( localProperty.command, oldPortDir ); -- MGmStrcat( localProperty.command, " && make config " ); -- if( MGrStrlen( localProperty.options ) > 0 ) -+ cmd = malloc( sizeof( char* ) * 3 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = malloc( MAXSTRINGSIZE ); -+ cmd[2] = 0; -+ -+ env = malloc( sizeof( char* ) * 2 ); -+ env[0] = malloc( MAXSTRINGSIZE ); -+ env[1] = 0; -+ -+ MGmStrcpy( env[0], "TERM=" ); -+ MGmStrcat( env[0], getenv( "TERM" ) ); -+ -+ MGmStrcpy( cmd[0], PORTSDIR ); -+ MGmStrcat( cmd[0], oldPortDir ); -+ -+ fprintf( stdout, "%s\n", SINGLE_LINES ); -+ fprintf( stdout, "config %s \n", cmd[0] ); -+ while( fflush( stdout ) ); -+ -+ if( chdir( cmd[0] ) != 0 ) - { -- MGmStrcat( localProperty.command, localProperty.options ); -+ fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); -+ perror( "chroot" ); -+ while( fflush( stderr ) ); -+ assert( 0 ); - } - -- fprintf( stdout, "%s\n", SINGLE_LINES ); -- fprintf( stdout, "update %s \n", oldPortName ); -- fprintf( stdout, "%s %s command: #2 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); -- fprintf( stdout, "%s\n", SINGLE_LINES ); -+ MGmStrcpy( cmd[0], "/usr/bin/make" ); -+ MGmStrcpy( cmd[1], "config" ); -+ fprintf( stdout, "%s %s command: #2 of 14 %s %s\n", id, PACKAGE_VERSION, cmd[0], cmd[1] ); - while( fflush( stdout ) ); -- system(localProperty.command); -+ -+ MGmSystem( cmd, env ); -+ -+ free( env[0] ); -+ free( env ); -+ -+ free( cmd[1] ); -+ free( cmd[0] ); -+ free( cmd ); -+ -+ fprintf( stdout, "%s\n", SINGLE_LINES ); -+ - } - MGmStrcpy( localProperty.afterOptionsFileTime, - MGrIntToString( (int)MGrFileTime( localProperty.optionsDir ) ) ); -@@ -567,17 +566,8 @@ - MGmStrcpy( strike, strikePtr ); - if( strike[0] == '2' ) - { -+ MGPMlogAdd( property, oldPortName, oldPortDir, "make Strike 3, marking port as ignore/looping ", " ", " " ); - MGdbAdd( property->ignoreDb, oldPortDir, "looping, 3rd attempt at make", NULL ); -- if( property->log ) -- { -- MGmStrcpy( localProperty.command, "echo \"make Strike 3 " ); -- MGmStrcat( localProperty.command, oldPortName ); -- MGmStrcat( localProperty.command, " " ); -- MGmStrcat( localProperty.command, oldPortDir ); -- MGmStrcat( localProperty.command, " marking port as ignore/looping " ); -- MGmStrcat( localProperty.command, " \">> /var/log/portmanager.log" ); -- system( localProperty.command ); -- } - rCleanUp( property, &localProperty ); - return( 0 ); - } -@@ -593,16 +583,8 @@ - property->fieldStrikesIDX, - exact ); - property->strikesDb = MGdbDelete( property->strikesDb, MGdbGetRecno( property->strikesDb ) - 1 ); -+ MGPMlogAdd( property, oldPortName, oldPortDir, "make Strike 2", " ", " " ); - MGdbAdd( property->strikesDb, oldPortDir, "2", NULL ); -- if( property->log ) -- { -- MGmStrcpy( localProperty.command, "echo \"make Strike 2 " ); -- MGmStrcat( localProperty.command, oldPortName ); -- MGmStrcat( localProperty.command, " " ); -- MGmStrcat( localProperty.command, oldPortDir ); -- MGmStrcat( localProperty.command, " \">> /var/log/portmanager.log" ); -- system( localProperty.command ); -- } - /* - * dualOriginCheck( property, oldPortName ); used to be here in old portmanager ver < 0.3.1, seems to be no longer - * needed, keep this note just in case -@@ -797,20 +779,28 @@ - MGPMlogAdd( property, "conflicting installed ", localProperty.installedPortName, - " removed from system: conflicted with ", oldPortName, " " ); - } -+ cmd = malloc( sizeof( char* ) * 4 ); -+ cmd[0] = malloc( MAXSTRINGSIZE ); -+ cmd[1] = malloc( MAXSTRINGSIZE ); -+ cmd[2] = malloc( MAXSTRINGSIZE ); -+ cmd[3] = 0; -+ -+ MGmStrcpy( cmd[0], "/usr/sbin/pkg_delete" ); -+ MGmStrcpy( cmd[1], "-f" ); -+ MGmStrcpy( cmd[2], localProperty.installedPortName ); - -- MGmStrcpy( localProperty.command, "pkg_delete -f " ); -- MGmStrcat( localProperty.command, localProperty.installedPortName ); -- fprintf( stdout, "executing: %s\n", localProperty.command ); -+ fprintf( stdout, "\nexecuting: %s %s %s\n", cmd[0], cmd[1], cmd[2] ); - while( fflush( stdout ) ); -- errorCode = system( localProperty.command ); -- if( property->log ) -- { -- MGmStrcpy( localProperty.command, "echo \"removed conflicting port " ); -- MGmStrcat( localProperty.command, localProperty.installedPortName ); -- MGmStrcat( localProperty.command, " " ); -- MGmStrcat( localProperty.command, " \">> /var/log/portmanager.log" ); -- system( localProperty.command ); -- } -+ -+ MGmSystem( cmd, NULL ); -+ -+ free( cmd[2] ); -+ free( cmd[1] ); -+ free( cmd[0] ); -+ free( cmd ); -+ -+ MGPMlogAdd( property, "removed conflicting port", localProperty.installedPortName, -+ " ", " ", " " ); - } - installedPortsDbIDX++; - } -@@ -848,15 +838,7 @@ - fprintf( stderr, "marking %s as ignored\n", oldPortName ); - fprintf( stdout, "%s\n", DOUBLE_LINES ); - while( fflush( stderr ) ); -- if( property->log ) -- { -- MGmStrcpy( localProperty.command, "echo \" " ); -- MGmStrcat( localProperty.command, oldPortName ); -- MGmStrcat( localProperty.command, " " ); -- MGmStrcat( localProperty.command, oldPortDir ); -- MGmStrcat( localProperty.command, " conflicts with another installed port so marked ignore\" >> /var/log/portmanager.log" ); -- system( localProperty.command ); -- } -+ MGPMlogAdd( property, oldPortName, oldPortDir, "conflicts with another installed port so marked ignore", " ", " " ); - MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another installed port", NULL ); - rCleanUp( property, &localProperty ); - return( 0 ); -@@ -986,15 +968,7 @@ - while( fflush( stdout ) ); - if( ( errorCode = system(localProperty.command) ) ) - { -- if( property->log ) -- { -- MGmStrcpy( localProperty.command, "echo \" " ); -- MGmStrcat( localProperty.command, oldPortName ); -- MGmStrcat( localProperty.command, " " ); -- MGmStrcat( localProperty.command, oldPortDir ); -- MGmStrcat( localProperty.command, " failed to fetch\" >> /var/log/portmanager.log" ); -- system( localProperty.command ); -- } -+ MGPMlogAdd( property, oldPortName, oldPortDir, "failed to fetch, adding to ignore.db", " ", " " ); - fprintf( stdout, "%s %s error: make fetch returned an error, adding %s to ignore.db\n", id, PACKAGE_VERSION, oldPortDir ); - while( fflush( stdout ) ); - MGdbAdd( property->ignoreDb, oldPortDir, "failed during make fetch", NULL ); -@@ -1005,6 +979,36 @@ - /************************************************************************/ - /* Command "9" " make" */ - /************************************************************************/ -+ env = malloc( sizeof( char** ) * 4 ); -+ env[0] = malloc( MAXSTRINGSIZE ); -+ env[1] = malloc( MAXSTRINGSIZE ); -+ env[2] = malloc( MAXSTRINGSIZE ); -+ env[3] = 0; -+ -+ /* -+ * setup environment -+ */ -+ MGmStrcpy( env[0], "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin" ); -+ -+ if( getenv( "CCACHE_DIR" ) != NULL ) -+ { -+ MGmStrcpy( env[1], "CCACHE_DIR=" ); -+ MGmStrcat( env[1], getenv( "CCACHE_DIR" ) ); -+ } -+ else -+ { -+ env[1][0] = 0; -+ } -+ -+ if( getenv( "CCACHE_PATH" ) != NULL ) -+ { -+ MGmStrcpy( env[2], "CCACHE_PATH=/usr/bin:/usr/local/bin" ); -+ } -+ else -+ { -+ env[2][0] = 0; -+ } -+ - if( MGrStrlen( localProperty.options ) > 0 ) - { - cmd = malloc( sizeof( char** ) * 3 ); -@@ -1027,7 +1031,7 @@ - fprintf( stdout, "%s %s command: #9 of 14 %s\nOPTIONS-=>%s\n", id, PACKAGE_VERSION, cmd[0], cmd[1] ); - fprintf( stdout, "%s\n", SINGLE_LINES ); - while( fflush( stdout ) ); -- MGmSystem( cmd, localProperty.environment ); -+ MGmSystem( cmd, env ); - free( cmd[0] ); - free( cmd[1] ); - free( cmd ); -@@ -1052,7 +1056,7 @@ - fprintf( stdout, "%s %s command: #9 of 14 %s\n", id, PACKAGE_VERSION, cmd[0] ); - fprintf( stdout, "%s\n", SINGLE_LINES ); - while( fflush( stdout ) ); -- MGmSystem( cmd, localProperty.environment ); -+ MGmSystem( cmd, env ); - free( cmd[0] ); - free( cmd ); - } -@@ -1066,9 +1070,18 @@ - MGPMlogAdd( property, oldPortName, oldPortDir, "port failed to build during make, adding to ignore.db", " ", " " ); - MGdbAdd( property->ignoreDb, oldPortDir, "port failed to build during make\n", NULL ); - rCleanUp( property, &localProperty ); -+ free( env[0] ); -+ free( env[1] ); -+ free( env[2] ); -+ free( env ); - return(0); - } - -+ free( env[0] ); -+ free( env[1] ); -+ free( env[2] ); -+ free( env ); -+ - /************************************************************************/ - /* Command "10" pkg_create -b */ - /************************************************************************/ -@@ -1555,12 +1568,6 @@ - MGdbDestroy( property->ignoreDb ); - MGdbDestroy( property->installedPortsDb ); - MGdbDestroy( property->strikesDb ); -- -- -- free( localProperty->environment[0] ); -- free( localProperty->environment[1] ); -- free( localProperty->environment[2] ); -- free( localProperty->environment ); - - free( localProperty->CURDIR ); - free( localProperty->afterOptionsFileSize ); -diff -ruN ../0.4.1/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h ---- ../0.4.1/libMGPM/src/libMGPM.h Tue Dec 13 14:23:14 2005 -+++ ./libMGPM/src/libMGPM.h Thu Dec 15 07:42:29 2005 -@@ -118,7 +118,6 @@ - char* workDir; - char* workFullPath; - char* xtermTitle; -- char** environment; - int bufferSize; - int optionsBufferSize; - } structLocalProperty; Index: files/patch-0.4.1_2 =================================================================== RCS file: files/patch-0.4.1_2 diff -N files/patch-0.4.1_2 --- files/patch-0.4.1_2 20 Jan 2006 08:54:25 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,52 +0,0 @@ -diff -ruN ../0.4.1_1/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c ---- ../0.4.1_1/libMGPM/src/MGPMrUpdate.c Sat Dec 17 20:06:52 2005 -+++ ./libMGPM/src/MGPMrUpdate.c Sun Dec 18 18:06:47 2005 -@@ -983,30 +983,34 @@ - env[0] = malloc( MAXSTRINGSIZE ); - env[1] = malloc( MAXSTRINGSIZE ); - env[2] = malloc( MAXSTRINGSIZE ); -- env[3] = 0; -+ env[3] = malloc( MAXSTRINGSIZE ); -+ env[4] = 0; - - /* - * setup environment - */ - MGmStrcpy( env[0], "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin" ); - -+ MGmStrcpy( env[1], "TERM=" ); -+ MGmStrcat( env[1], getenv( "TERM" ) ); -+ - if( getenv( "CCACHE_DIR" ) != NULL ) - { -- MGmStrcpy( env[1], "CCACHE_DIR=" ); -- MGmStrcat( env[1], getenv( "CCACHE_DIR" ) ); -+ MGmStrcpy( env[2], "CCACHE_DIR=" ); -+ MGmStrcat( env[2], getenv( "CCACHE_DIR" ) ); - } - else - { -- env[1][0] = 0; -+ env[2][0] = 0; - } - - if( getenv( "CCACHE_PATH" ) != NULL ) - { -- MGmStrcpy( env[2], "CCACHE_PATH=/usr/bin:/usr/local/bin" ); -+ MGmStrcpy( env[3], "CCACHE_PATH=/usr/bin:/usr/local/bin" ); - } - else - { -- env[2][0] = 0; -+ env[3][0] = 0; - } - - if( MGrStrlen( localProperty.options ) > 0 ) -@@ -1080,6 +1084,7 @@ - free( env[0] ); - free( env[1] ); - free( env[2] ); -+ free( env[3] ); - free( env ); - - /************************************************************************/ Index: files/patch-0.4.1_3 =================================================================== RCS file: files/patch-0.4.1_3 diff -N files/patch-0.4.1_3 --- files/patch-0.4.1_3 20 Jan 2006 08:54:25 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,133 +0,0 @@ -diff -ruN ../0.4.1_2/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c ---- ../0.4.1_2/libMGPM/src/MGPMrUpdate.c Mon Dec 19 11:45:50 2005 -+++ ./libMGPM/src/MGPMrUpdate.c Wed Dec 21 22:16:31 2005 -@@ -979,114 +979,29 @@ - /************************************************************************/ - /* Command "9" " make" */ - /************************************************************************/ -- env = malloc( sizeof( char** ) * 4 ); -- env[0] = malloc( MAXSTRINGSIZE ); -- env[1] = malloc( MAXSTRINGSIZE ); -- env[2] = malloc( MAXSTRINGSIZE ); -- env[3] = malloc( MAXSTRINGSIZE ); -- env[4] = 0; -- -- /* -- * setup environment -- */ -- MGmStrcpy( env[0], "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin" ); -- -- MGmStrcpy( env[1], "TERM=" ); -- MGmStrcat( env[1], getenv( "TERM" ) ); -- -- if( getenv( "CCACHE_DIR" ) != NULL ) -- { -- MGmStrcpy( env[2], "CCACHE_DIR=" ); -- MGmStrcat( env[2], getenv( "CCACHE_DIR" ) ); -- } -- else -- { -- env[2][0] = 0; -- } -- -- if( getenv( "CCACHE_PATH" ) != NULL ) -- { -- MGmStrcpy( env[3], "CCACHE_PATH=/usr/bin:/usr/local/bin" ); -- } -- else -- { -- env[3][0] = 0; -- } -- -+ MGmStrcpy( localProperty.command, "cd " ); -+ MGmStrcat( localProperty.command, PORTSDIR ); -+ MGmStrcat( localProperty.command, oldPortDir ); -+ MGmStrcat( localProperty.command, " && make " ); - if( MGrStrlen( localProperty.options ) > 0 ) - { -- cmd = malloc( sizeof( char** ) * 3 ); -- cmd[0] = malloc( MAXSTRINGSIZE ); -- cmd[1] = malloc( MAXBUFFERSIZE ); -- cmd[2] = 0; -- MGmStrcpy( cmd[0], PORTSDIR ); -- MGmStrcat( cmd[0], oldPortDir ); -- if( chdir( cmd[0] ) != 0 ) -- { -- fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); -- perror( "chroot" ); -- while( fflush( stderr ) ); -- assert( 0 ); -- } -- MGmStrcpy( cmd[0], "/usr/bin/make" ); -- MGmBuffercpy( cmd[1], localProperty.options, MAXBUFFERSIZE ); -- fprintf( stdout, "%s\n", SINGLE_LINES ); -- fprintf( stdout, "update %s \n", oldPortName ); -- fprintf( stdout, "%s %s command: #9 of 14 %s\nOPTIONS-=>%s\n", id, PACKAGE_VERSION, cmd[0], cmd[1] ); -- fprintf( stdout, "%s\n", SINGLE_LINES ); -- while( fflush( stdout ) ); -- MGmSystem( cmd, env ); -- free( cmd[0] ); -- free( cmd[1] ); -- free( cmd ); -- } -- else -- { -- cmd = malloc( sizeof( char** ) * 2 ); -- cmd[0] = malloc( MAXSTRINGSIZE ); -- cmd[1] = 0; -- MGmStrcpy( cmd[0], PORTSDIR ); -- MGmStrcat( cmd[0], oldPortDir ); -- if( chdir( cmd[0] ) != 0 ) -- { -- fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); -- perror( "chroot" ); -- while( fflush( stderr ) ); -- assert( 0 ); -- } -- MGmStrcpy( cmd[0], "/usr/bin/make" ); -- fprintf( stdout, "%s\n", SINGLE_LINES ); -- fprintf( stdout, "update %s \n", oldPortName ); -- fprintf( stdout, "%s %s command: #9 of 14 %s\n", id, PACKAGE_VERSION, cmd[0] ); -- fprintf( stdout, "%s\n", SINGLE_LINES ); -- while( fflush( stdout ) ); -- MGmSystem( cmd, env ); -- free( cmd[0] ); -- free( cmd ); -+ MGmStrcat( localProperty.command, localProperty.options ); - } - -- if( MGrIfDirEntry( localProperty.workFullPath, ".build_done" ) == 0 ) -+ fprintf( stdout, "%s\n", SINGLE_LINES ); -+ fprintf( stdout, "update %s \n", oldPortName ); -+ fprintf( stdout, "%s %s command: #9 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); -+ fprintf( stdout, "%s\n", SINGLE_LINES ); -+ while( fflush( stdout ) ); -+ if( ( errorCode = system(localProperty.command) ) ) - { -- fprintf( stderr, "%s\n", SINGLE_LINES ); -- fprintf( stderr, "%s error: %s %s failed during make, adding to ignore.db\n", id, oldPortName, oldPortDir ); -- fprintf( stderr, "%s\n", SINGLE_LINES ); -- while( fflush( stderr ) ); -- MGPMlogAdd( property, oldPortName, oldPortDir, "port failed to build during make, adding to ignore.db", " ", " " ); -- MGdbAdd( property->ignoreDb, oldPortDir, "port failed to build during make\n", NULL ); -+ MGPMlogAdd( property, oldPortName, oldPortDir, "failed during make, adding to ignore.db", " ", " " ); -+ fprintf( stdout, "%s %s error: make returned an error, adding %s to ignore.db\n", id, PACKAGE_VERSION, oldPortDir ); -+ while( fflush( stdout ) ); -+ MGdbAdd( property->ignoreDb, oldPortDir, "failed during make", NULL ); - rCleanUp( property, &localProperty ); -- free( env[0] ); -- free( env[1] ); -- free( env[2] ); -- free( env ); - return(0); - } -- -- free( env[0] ); -- free( env[1] ); -- free( env[2] ); -- free( env[3] ); -- free( env ); -- - /************************************************************************/ - /* Command "10" pkg_create -b */ - /************************************************************************/ Index: files/patch-0.4.1_4 =================================================================== RCS file: files/patch-0.4.1_4 diff -N files/patch-0.4.1_4 --- files/patch-0.4.1_4 20 Jan 2006 08:54:25 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,24 +0,0 @@ -diff -ruN ../0.4.1_3/libMGPM/src/MGPMrInitialize.c ./libMGPM/src/MGPMrInitialize.c ---- ../0.4.1_3/libMGPM/src/MGPMrInitialize.c Thu Dec 22 06:42:13 2005 -+++ ./libMGPM/src/MGPMrInitialize.c Mon Dec 26 20:00:02 2005 -@@ -47,7 +47,7 @@ - */ - property->configConfFileName = calloc( stringSize + 1, 1 ); - MGmStrcpy(property->configConfFileName, ETCDIR); -- MGmStrcat(property->configConfFileName, "/portmanager/" ); -+ MGmStrcat(property->configConfFileName, "/portmanager" ); - MGmStrcat(property->configConfFileName, CONFIGURE_CONF); - - /* -diff -ruN ../0.4.1_3/libMGPM/src/MGPMrReadConfigure.c ./libMGPM/src/MGPMrReadConfigure.c ---- ../0.4.1_3/libMGPM/src/MGPMrReadConfigure.c Thu Dec 22 06:42:13 2005 -+++ ./libMGPM/src/MGPMrReadConfigure.c Mon Dec 26 20:05:15 2005 -@@ -156,7 +156,7 @@ - - MGmStrcpy( cmd[0], "/bin/cp" ); - MGmStrcpy( cmd[1], property->configConfFileName ); -- MGmStrcat( cmd[1], ".SAMPLE " ); -+ MGmStrcat( cmd[1], ".SAMPLE" ); - MGmStrcpy( cmd[2], property->configConfFileName ); - - MGmSystem( cmd, NULL ); Index: files/patch-libMGPM-src-MGPMrGetPortName.c =================================================================== RCS file: files/patch-libMGPM-src-MGPMrGetPortName.c diff -N files/patch-libMGPM-src-MGPMrGetPortName.c --- files/patch-libMGPM-src-MGPMrGetPortName.c 23 Feb 2006 02:15:38 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ ---- libMGPM/src/MGPMrGetPortName.c.orig Thu Feb 23 03:04:28 2006 -+++ libMGPM/src/MGPMrGetPortName.c Thu Feb 23 03:06:22 2006 -@@ -180,7 +180,8 @@ - } - else - { -- fclose( property->STDIN ); -+ if( property->autoMoved == 0 ) -+ fclose( property->STDIN ); - MGPMlogAdd( property, "installed ", portName, - " removed from system: no longer in ports tree: see /usr/ports/MOVED", " ", " " ); - } Index: files/patch-libMGPM__src__MGPMrGetPortName.c =================================================================== RCS file: files/patch-libMGPM__src__MGPMrGetPortName.c diff -N files/patch-libMGPM__src__MGPMrGetPortName.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__MGPMrGetPortName.c 13 Dec 2006 03:03:37 -0000 @@ -0,0 +1,12 @@ +--- ./libMGPM/src/MGPMrGetPortName.c.orig Wed Dec 14 10:27:41 2005 ++++ ./libMGPM/src/MGPMrGetPortName.c Fri Dec 8 17:13:00 2006 +@@ -180,7 +180,8 @@ + } + else + { +- fclose( property->STDIN ); ++ if( property->autoMoved == 0 ) ++ fclose( property->STDIN ); + MGPMlogAdd( property, "installed ", portName, + " removed from system: no longer in ports tree: see /usr/ports/MOVED", " ", " " ); + } Index: files/patch-libMGPM__src__MGPMrInitialize.c =================================================================== RCS file: files/patch-libMGPM__src__MGPMrInitialize.c diff -N files/patch-libMGPM__src__MGPMrInitialize.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__MGPMrInitialize.c 13 Dec 2006 03:03:37 -0000 @@ -0,0 +1,11 @@ +--- ./libMGPM/src/MGPMrInitialize.c.orig Mon Dec 12 15:32:34 2005 ++++ ./libMGPM/src/MGPMrInitialize.c Fri Dec 8 17:13:00 2006 +@@ -47,7 +47,7 @@ + */ + property->configConfFileName = calloc( stringSize + 1, 1 ); + MGmStrcpy(property->configConfFileName, ETCDIR); +- MGmStrcat(property->configConfFileName, "/portmanager/" ); ++ MGmStrcat(property->configConfFileName, "/portmanager" ); + MGmStrcat(property->configConfFileName, CONFIGURE_CONF); + + /* Index: files/patch-libMGPM__src__MGPMrPortBrokeCheck.c =================================================================== RCS file: files/patch-libMGPM__src__MGPMrPortBrokeCheck.c diff -N files/patch-libMGPM__src__MGPMrPortBrokeCheck.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__MGPMrPortBrokeCheck.c 13 Dec 2006 03:03:37 -0000 @@ -0,0 +1,11 @@ +--- ./libMGPM/src/MGPMrPortBrokeCheck.c.orig Tue Dec 13 17:08:27 2005 ++++ ./libMGPM/src/MGPMrPortBrokeCheck.c Fri Dec 8 17:13:00 2006 +@@ -78,7 +78,7 @@ + } + buffer[0] = 0; + fread( buffer, MAXBUFFERSIZE, 1, pHandle ); +- if( ferror( pHandle ) == 0 && MGrStrlen( buffer ) > 1 ) ++ if( ferror( pHandle ) == 0 && MGrBufferlen( buffer, MAXBUFFERSIZE ) > 1 ) + { + fprintf( stdout, "%s %s error: %s %s marked %s, adding to ignore.db\n", id, PACKAGE_VERSION, oldPortName, oldPortDir, brokeCheckType ); + while( fflush( stdout ) ); Index: files/patch-libMGPM__src__MGPMrReadConfigure.c =================================================================== RCS file: files/patch-libMGPM__src__MGPMrReadConfigure.c diff -N files/patch-libMGPM__src__MGPMrReadConfigure.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__MGPMrReadConfigure.c 13 Dec 2006 03:03:37 -0000 @@ -0,0 +1,11 @@ +--- ./libMGPM/src/MGPMrReadConfigure.c.orig Wed Dec 14 00:12:40 2005 ++++ ./libMGPM/src/MGPMrReadConfigure.c Fri Dec 8 17:13:00 2006 +@@ -156,7 +156,7 @@ + + MGmStrcpy( cmd[0], "/bin/cp" ); + MGmStrcpy( cmd[1], property->configConfFileName ); +- MGmStrcat( cmd[1], ".SAMPLE " ); ++ MGmStrcat( cmd[1], ".SAMPLE" ); + MGmStrcpy( cmd[2], property->configConfFileName ); + + MGmSystem( cmd, NULL ); Index: files/patch-libMGPM__src__MGPMrShowLeavesDelete.c =================================================================== RCS file: files/patch-libMGPM__src__MGPMrShowLeavesDelete.c diff -N files/patch-libMGPM__src__MGPMrShowLeavesDelete.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__MGPMrShowLeavesDelete.c 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,252 @@ +--- ./libMGPM/src/MGPMrShowLeavesDelete.c.orig Mon Dec 12 15:32:34 2005 ++++ ./libMGPM/src/MGPMrShowLeavesDelete.c Fri Dec 8 17:13:00 2006 +@@ -39,19 +39,21 @@ + char exact[] = "exact"; + char id[] = "MGPMrShowLeavesDelete"; + char* command = NULL; +- char* leafPortDir = NULL; ++ char* leafPortDir; + char* leafPortName = NULL; + char* pkgDescFile = NULL; ++ char** cmd; ++ char** env; + int answer = 1; +- int bufferSize = 0xffff; + int doubleBreak = 0; + int installedPortsDbIDX = 0; + int installedPortsDbQTY = 0; + +- command = calloc( bufferSize, 1 ); +- leafPortDir = calloc( bufferSize, 1 ); +- leafPortName = calloc( bufferSize, 1 ); +- pkgDescFile = calloc( bufferSize, 1 ); ++ leafPortDir = calloc( MAXSTRINGSIZE, 1 ); ++ leafPortName = calloc( MAXSTRINGSIZE, 1 ); ++ ++ command = calloc( MAXBUFFERSIZE, 1 ); ++ pkgDescFile = calloc( MAXBUFFERSIZE, 1 ); + + if( ( property->ignoreDb = MGdbOpen( property->ignoreDbFileName ) ) == NULL ) + { +@@ -108,50 +110,94 @@ + installedPortsDbIDX++; + continue; + } +-/* +- if( answer != KEY_ENTER ) ++ ++ cmd = malloc( sizeof( char* ) * 2 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = 0; ++ ++ env = malloc( sizeof( char* ) * 2 ); ++ env[0] = malloc( MAXSTRINGSIZE ); ++ env[1] = 0; ++ ++ MGmStrcpy( env[0], "TERM=" ); ++ MGmStrcat( env[0], getenv( "TERM" ) ); ++ ++ MGmStrcpy( cmd[0], "/usr/bin/clear" ); ++ ++ MGmSystem( cmd, env ); ++ ++ free( env[0] ); ++ free( env ); ++ ++ free( cmd[0] ); ++ free( cmd ); ++ ++ fprintf( stdout,"%s\n", SINGLE_LINES ); ++ fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" ); ++ fprintf( stdout,"%s\n", SINGLE_LINES ); ++ fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" ); ++ fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" ); ++ if( property->buildDependsAreLeaves ) + { +-*/ +- system( "clear" ); +- fprintf( stdout,"%s\n", SINGLE_LINES ); +- fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" ); +- fprintf( stdout,"%s\n", SINGLE_LINES ); +- fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" ); +- fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" ); +- if( property->buildDependsAreLeaves ) +- { +- fprintf( stdout, "however, other ports may rely on these to build.\"\n" ); +- } +- fprintf( stdout, "%s\n", SINGLE_LINES ); ++ fprintf( stdout, "however, other ports may rely on these to build.\"\n" ); ++ } ++ fprintf( stdout, "%s\n", SINGLE_LINES ); + +- fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir ); +- while( fflush( stdout ) ); ++ fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir ); ++ while( fflush( stdout ) ); + +- MGmStrcpy( pkgDescFile, PORTSDIR ); +- MGmStrcat( pkgDescFile, leafPortDir ); +- MGmStrcat( pkgDescFile, "/pkg-descr" ); ++ MGmStrcpy( pkgDescFile, PORTSDIR ); ++ MGmStrcat( pkgDescFile, leafPortDir ); ++ MGmStrcat( pkgDescFile, "/pkg-descr" ); + +- if( MGrIfFileExist( pkgDescFile ) ) +- { +- MGmStrcpy( command, "cat " ); +- MGmStrcat( command, pkgDescFile ); +- system( command ); +- fprintf( stdout, "\n" ); +- } +- else +- { +- MGmStrcpy( command, "grep COMMENT " ); +- MGmStrcat( command, PORTSDIR ); +- MGmStrcat( command, leafPortDir ); +- MGmStrcat( command, "/Makefile" ); +- system( command ); +- } +- fprintf( stdout,"%s\n", SINGLE_LINES ); +- fprintf( stdout, "\n to skip\n removes port\n *Nuke it*, removes distribution files\n\n" ); +- fprintf( stdout,"%s\n", SINGLE_LINES ); +-/* ++ if( MGrIfFileExist( pkgDescFile ) ) ++ { ++ cmd = malloc( sizeof( char* ) * 3 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = malloc( MAXSTRINGSIZE ); ++ cmd[2] = 0; ++ ++ MGmStrcpy( cmd[0], "/bin/cat" ); ++ MGmStrcpy( cmd[1], pkgDescFile ); ++ ++ MGmSystem( cmd, NULL ); ++ ++ free( cmd[0] ); ++ free( cmd[1] ); ++ free( cmd ); ++ ++ fprintf( stdout, "\n" ); ++ while( fflush( stdout ) ); ++ } ++ else ++ { ++ cmd = malloc( sizeof( char* ) * 4 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = malloc( MAXSTRINGSIZE ); ++ cmd[2] = malloc( MAXSTRINGSIZE ); ++ cmd[3] = 0; ++ ++ MGmStrcpy( cmd[0], "/usr/bin/grep" ); ++ MGmStrcpy( cmd[1], "COMMENT" ); ++ MGmStrcpy( cmd[2], PORTSDIR ); ++ MGmStrcat( cmd[2], leafPortDir ); ++ MGmStrcat( cmd[2], "/Makefile" ); ++ ++ MGmSystem( cmd, NULL ); ++ ++ free( cmd[0] ); ++ free( cmd[1] ); ++ free( cmd[2] ); ++ free( cmd ); ++ ++ fprintf( stdout, "\n" ); ++ while( fflush( stdout ) ); + } +-*/ ++ fprintf( stdout,"%s\n", SINGLE_LINES ); ++ fprintf( stdout, "\n to skip\n removes port\n *Nuke it*, removes distribution files\n\n" ); ++ fprintf( stdout,"%s\n", SINGLE_LINES ); ++ while( fflush( stdout ) ); ++ + property->STDIN = fopen( "/dev/stdin", "r" ); /* Flawfinder: ignore */ + doubleBreak = 0; + while( 1 == 1 ) +@@ -243,9 +289,7 @@ + { + char id[] = "removePort"; + char exact[] = "exact"; +- char* command = NULL; +- +- command = (char*)calloc( 0xffff, 1 ); ++ char** cmd; + + property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX ); + +@@ -261,12 +305,26 @@ + MGdbGoTop( property->availableDependenciesDb ); + } + +- MGmStrcpy( command, "pkg_delete -f " ); +- MGmStrcat( command, leafPortNamePtr ); +- fprintf( stdout, "\nexecuting: %s\n", command ); ++ cmd = malloc( sizeof( char* ) * 4 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = malloc( MAXSTRINGSIZE ); ++ cmd[2] = malloc( MAXSTRINGSIZE ); ++ cmd[3] = 0; ++ ++ MGmStrcpy( cmd[0], "/usr/sbin/pkg_delete" ); ++ MGmStrcpy( cmd[1], "-f" ); ++ MGmStrcpy( cmd[2], leafPortNamePtr ); ++ ++ fprintf( stdout, "\nexecuting: %s %s %s\n", cmd[0], cmd[1], cmd[2] ); + while( fflush( stdout ) ); +- system( command ); +- free(command); ++ ++ MGmSystem( cmd, NULL ); ++ ++ free( cmd[2] ); ++ free( cmd[1] ); ++ free( cmd[0] ); ++ free( cmd ); ++ + return( 0 ); + } + +@@ -274,18 +332,35 @@ + int nuke( char* leafPortDir ) + { + char id[] = "nuke"; +- char* command = NULL; ++ char** cmd; + +- command = (char*)calloc( 0xffff, 1 ); ++ cmd = malloc( sizeof( char* ) * 4 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = malloc( MAXSTRINGSIZE ); ++ cmd[2] = 0; ++ ++ MGmStrcpy( cmd[0], PORTSDIR ); ++ MGmStrcat( cmd[0], leafPortDir ); ++ if( chdir( cmd[0] ) != 0 ) ++ { ++ fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); ++ perror( "chroot" ); ++ while( fflush( stderr ) ); ++ assert( 0 ); ++ } + +- MGmStrcpy( command, "cd " ); +- MGmStrcat( command, PORTSDIR ); +- MGmStrcat( command, leafPortDir ); +- MGmStrcat( command, "; make distclean" ); +- fprintf( stdout, "\nexecuting: %s\n", command ); ++ MGmStrcpy( cmd[0], "/usr/bin/make" ); ++ MGmStrcpy( cmd[1], "distclean" ); ++ ++ fprintf( stdout, "\nexecuting: %s %s\n", cmd[0], cmd[1] ); + while( fflush( stdout ) ); +- system( command ); +- free(command); ++ ++ MGmSystem( cmd, NULL ); ++ ++ free( cmd[1] ); ++ free( cmd[0] ); ++ free( cmd ); ++ + return( 0 ); + } + Index: files/patch-libMGPM__src__MGPMrUpdate.c =================================================================== RCS file: files/patch-libMGPM__src__MGPMrUpdate.c diff -N files/patch-libMGPM__src__MGPMrUpdate.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__MGPMrUpdate.c 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,349 @@ +--- libMGPM/src/MGPMrUpdate.c.orig Wed Dec 14 13:23:59 2005 ++++ libMGPM/src/MGPMrUpdate.c Fri Dec 8 17:24:30 2006 +@@ -60,6 +60,7 @@ + char* stopPortDirPtr = NULL; + char* strikePtr = NULL; + char** cmd; ++ char** env; + int answer = 1; + int availableDependenciesDbIDX = 0; + int availableDependenciesDbQTY = 0; +@@ -74,12 +75,6 @@ + + property->optionsChanged = 0; + +- localProperty.environment = malloc( sizeof( char** ) * 4 ); +- localProperty.environment[0] = malloc( MAXSTRINGSIZE ); +- localProperty.environment[1] = malloc( MAXSTRINGSIZE ); +- localProperty.environment[2] = malloc( MAXSTRINGSIZE ); +- localProperty.environment[3] = 0; +- + localProperty.CURDIR = calloc( MAXSTRINGSIZE, 1 ); + localProperty.afterOptionsFileSize = calloc( MAXSTRINGSIZE, 1 ); + localProperty.afterOptionsFileTime = calloc( MAXSTRINGSIZE, 1 ); +@@ -122,30 +117,6 @@ + return( 0 ); + } + +- /* +- * setup environment +- */ +- MGmStrcpy( localProperty.environment[0], "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin" ); +- +- if( getenv( "CCACHE_DIR" ) != NULL ) +- { +- MGmStrcpy( localProperty.environment[1], "CCACHE_DIR=" ); +- MGmStrcat( localProperty.environment[1], getenv( "CCACHE_DIR" ) ); +- } +- else +- { +- localProperty.environment[1][0] = 0; +- } +- +- if( getenv( "CCACHE_PATH" ) != NULL ) +- { +- MGmStrcpy( localProperty.environment[2], "CCACHE_PATH=/usr/bin:/usr/local/bin" ); +- } +- else +- { +- localProperty.environment[2][0] = 0; +- } +- + /* + * test for bsd.ports.mk patch + */ +@@ -466,25 +437,53 @@ + */ + /* + * If here we know OPTIONS is defined, need to run make config +- * if /var/db/ports/{package name}/options exists ++ * if /var/db/ports/{package name}/options does not exist + */ + if( MGrIfFileExist( localProperty.optionsDir ) == 0 ) + { +- MGmStrcpy( localProperty.command, "cd " ); +- MGmStrcat( localProperty.command, PORTSDIR ); +- MGmStrcat( localProperty.command, oldPortDir ); +- MGmStrcat( localProperty.command, " && make config " ); +- if( MGrStrlen( localProperty.options ) > 0 ) ++ cmd = malloc( sizeof( char* ) * 3 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = malloc( MAXSTRINGSIZE ); ++ cmd[2] = 0; ++ ++ env = malloc( sizeof( char* ) * 2 ); ++ env[0] = malloc( MAXSTRINGSIZE ); ++ env[1] = 0; ++ ++ MGmStrcpy( env[0], "TERM=" ); ++ MGmStrcat( env[0], getenv( "TERM" ) ); ++ ++ MGmStrcpy( cmd[0], PORTSDIR ); ++ MGmStrcat( cmd[0], oldPortDir ); ++ ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ fprintf( stdout, "config %s \n", cmd[0] ); ++ while( fflush( stdout ) ); ++ ++ if( chdir( cmd[0] ) != 0 ) + { +- MGmStrcat( localProperty.command, localProperty.options ); ++ fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); ++ perror( "chroot" ); ++ while( fflush( stderr ) ); ++ assert( 0 ); + } + +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- fprintf( stdout, "update %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #2 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); ++ MGmStrcpy( cmd[0], "/usr/bin/make" ); ++ MGmStrcpy( cmd[1], "config" ); ++ fprintf( stdout, "%s %s command: #2 of 14 %s %s\n", id, PACKAGE_VERSION, cmd[0], cmd[1] ); + while( fflush( stdout ) ); +- system(localProperty.command); ++ ++ MGmSystem( cmd, env ); ++ ++ free( env[0] ); ++ free( env ); ++ ++ free( cmd[1] ); ++ free( cmd[0] ); ++ free( cmd ); ++ ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ + } + MGmStrcpy( localProperty.afterOptionsFileTime, + MGrIntToString( (int)MGrFileTime( localProperty.optionsDir ) ) ); +@@ -567,17 +566,8 @@ + MGmStrcpy( strike, strikePtr ); + if( strike[0] == '2' ) + { ++ MGPMlogAdd( property, oldPortName, oldPortDir, "make Strike 3, marking port as ignore/looping ", " ", " " ); + MGdbAdd( property->ignoreDb, oldPortDir, "looping, 3rd attempt at make", NULL ); +- if( property->log ) +- { +- MGmStrcpy( localProperty.command, "echo \"make Strike 3 " ); +- MGmStrcat( localProperty.command, oldPortName ); +- MGmStrcat( localProperty.command, " " ); +- MGmStrcat( localProperty.command, oldPortDir ); +- MGmStrcat( localProperty.command, " marking port as ignore/looping " ); +- MGmStrcat( localProperty.command, " \">> /var/log/portmanager.log" ); +- system( localProperty.command ); +- } + rCleanUp( property, &localProperty ); + return( 0 ); + } +@@ -593,16 +583,8 @@ + property->fieldStrikesIDX, + exact ); + property->strikesDb = MGdbDelete( property->strikesDb, MGdbGetRecno( property->strikesDb ) - 1 ); ++ MGPMlogAdd( property, oldPortName, oldPortDir, "make Strike 2", " ", " " ); + MGdbAdd( property->strikesDb, oldPortDir, "2", NULL ); +- if( property->log ) +- { +- MGmStrcpy( localProperty.command, "echo \"make Strike 2 " ); +- MGmStrcat( localProperty.command, oldPortName ); +- MGmStrcat( localProperty.command, " " ); +- MGmStrcat( localProperty.command, oldPortDir ); +- MGmStrcat( localProperty.command, " \">> /var/log/portmanager.log" ); +- system( localProperty.command ); +- } + /* + * dualOriginCheck( property, oldPortName ); used to be here in old portmanager ver < 0.3.1, seems to be no longer + * needed, keep this note just in case +@@ -797,20 +779,28 @@ + MGPMlogAdd( property, "conflicting installed ", localProperty.installedPortName, + " removed from system: conflicted with ", oldPortName, " " ); + } ++ cmd = malloc( sizeof( char* ) * 4 ); ++ cmd[0] = malloc( MAXSTRINGSIZE ); ++ cmd[1] = malloc( MAXSTRINGSIZE ); ++ cmd[2] = malloc( MAXSTRINGSIZE ); ++ cmd[3] = 0; ++ ++ MGmStrcpy( cmd[0], "/usr/sbin/pkg_delete" ); ++ MGmStrcpy( cmd[1], "-f" ); ++ MGmStrcpy( cmd[2], localProperty.installedPortName ); + +- MGmStrcpy( localProperty.command, "pkg_delete -f " ); +- MGmStrcat( localProperty.command, localProperty.installedPortName ); +- fprintf( stdout, "executing: %s\n", localProperty.command ); ++ fprintf( stdout, "\nexecuting: %s %s %s\n", cmd[0], cmd[1], cmd[2] ); + while( fflush( stdout ) ); +- errorCode = system( localProperty.command ); +- if( property->log ) +- { +- MGmStrcpy( localProperty.command, "echo \"removed conflicting port " ); +- MGmStrcat( localProperty.command, localProperty.installedPortName ); +- MGmStrcat( localProperty.command, " " ); +- MGmStrcat( localProperty.command, " \">> /var/log/portmanager.log" ); +- system( localProperty.command ); +- } ++ ++ MGmSystem( cmd, NULL ); ++ ++ free( cmd[2] ); ++ free( cmd[1] ); ++ free( cmd[0] ); ++ free( cmd ); ++ ++ MGPMlogAdd( property, "removed conflicting port", localProperty.installedPortName, ++ " ", " ", " " ); + } + installedPortsDbIDX++; + } +@@ -848,15 +838,7 @@ + fprintf( stderr, "marking %s as ignored\n", oldPortName ); + fprintf( stdout, "%s\n", DOUBLE_LINES ); + while( fflush( stderr ) ); +- if( property->log ) +- { +- MGmStrcpy( localProperty.command, "echo \" " ); +- MGmStrcat( localProperty.command, oldPortName ); +- MGmStrcat( localProperty.command, " " ); +- MGmStrcat( localProperty.command, oldPortDir ); +- MGmStrcat( localProperty.command, " conflicts with another installed port so marked ignore\" >> /var/log/portmanager.log" ); +- system( localProperty.command ); +- } ++ MGPMlogAdd( property, oldPortName, oldPortDir, "conflicts with another installed port so marked ignore", " ", " " ); + MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another installed port", NULL ); + rCleanUp( property, &localProperty ); + return( 0 ); +@@ -986,15 +968,7 @@ + while( fflush( stdout ) ); + if( ( errorCode = system(localProperty.command) ) ) + { +- if( property->log ) +- { +- MGmStrcpy( localProperty.command, "echo \" " ); +- MGmStrcat( localProperty.command, oldPortName ); +- MGmStrcat( localProperty.command, " " ); +- MGmStrcat( localProperty.command, oldPortDir ); +- MGmStrcat( localProperty.command, " failed to fetch\" >> /var/log/portmanager.log" ); +- system( localProperty.command ); +- } ++ MGPMlogAdd( property, oldPortName, oldPortDir, "failed to fetch, adding to ignore.db", " ", " " ); + fprintf( stdout, "%s %s error: make fetch returned an error, adding %s to ignore.db\n", id, PACKAGE_VERSION, oldPortDir ); + while( fflush( stdout ) ); + MGdbAdd( property->ignoreDb, oldPortDir, "failed during make fetch", NULL ); +@@ -1005,70 +979,29 @@ + /************************************************************************/ + /* Command "9" " make" */ + /************************************************************************/ ++ MGmStrcpy( localProperty.command, "cd " ); ++ MGmStrcat( localProperty.command, PORTSDIR ); ++ MGmStrcat( localProperty.command, oldPortDir ); ++ MGmStrcat( localProperty.command, " && make " ); + if( MGrStrlen( localProperty.options ) > 0 ) + { +- cmd = malloc( sizeof( char** ) * 3 ); +- cmd[0] = malloc( MAXSTRINGSIZE ); +- cmd[1] = malloc( MAXBUFFERSIZE ); +- cmd[2] = 0; +- MGmStrcpy( cmd[0], PORTSDIR ); +- MGmStrcat( cmd[0], oldPortDir ); +- if( chdir( cmd[0] ) != 0 ) +- { +- fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); +- perror( "chroot" ); +- while( fflush( stderr ) ); +- assert( 0 ); +- } +- MGmStrcpy( cmd[0], "/usr/bin/make" ); +- MGmBuffercpy( cmd[1], localProperty.options, MAXBUFFERSIZE ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- fprintf( stdout, "update %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #9 of 14 %s\nOPTIONS-=>%s\n", id, PACKAGE_VERSION, cmd[0], cmd[1] ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- while( fflush( stdout ) ); +- MGmSystem( cmd, localProperty.environment ); +- free( cmd[0] ); +- free( cmd[1] ); +- free( cmd ); +- } +- else +- { +- cmd = malloc( sizeof( char** ) * 2 ); +- cmd[0] = malloc( MAXSTRINGSIZE ); +- cmd[1] = 0; +- MGmStrcpy( cmd[0], PORTSDIR ); +- MGmStrcat( cmd[0], oldPortDir ); +- if( chdir( cmd[0] ) != 0 ) +- { +- fprintf( stderr, "%s error: chdir %s failed\n", id, cmd[0] ); +- perror( "chroot" ); +- while( fflush( stderr ) ); +- assert( 0 ); +- } +- MGmStrcpy( cmd[0], "/usr/bin/make" ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- fprintf( stdout, "update %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #9 of 14 %s\n", id, PACKAGE_VERSION, cmd[0] ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- while( fflush( stdout ) ); +- MGmSystem( cmd, localProperty.environment ); +- free( cmd[0] ); +- free( cmd ); ++ MGmStrcat( localProperty.command, localProperty.options ); + } + +- if( MGrIfDirEntry( localProperty.workFullPath, ".build_done" ) == 0 ) ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ fprintf( stdout, "update %s \n", oldPortName ); ++ fprintf( stdout, "%s %s command: #9 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ while( fflush( stdout ) ); ++ if( ( errorCode = system(localProperty.command) ) ) + { +- fprintf( stderr, "%s\n", SINGLE_LINES ); +- fprintf( stderr, "%s error: %s %s failed during make, adding to ignore.db\n", id, oldPortName, oldPortDir ); +- fprintf( stderr, "%s\n", SINGLE_LINES ); +- while( fflush( stderr ) ); +- MGPMlogAdd( property, oldPortName, oldPortDir, "port failed to build during make, adding to ignore.db", " ", " " ); +- MGdbAdd( property->ignoreDb, oldPortDir, "port failed to build during make\n", NULL ); ++ MGPMlogAdd( property, oldPortName, oldPortDir, "failed during make, adding to ignore.db", " ", " " ); ++ fprintf( stdout, "%s %s error: make returned an error, adding %s to ignore.db\n", id, PACKAGE_VERSION, oldPortDir ); ++ while( fflush( stdout ) ); ++ MGdbAdd( property->ignoreDb, oldPortDir, "failed during make", NULL ); + rCleanUp( property, &localProperty ); + return(0); + } +- + /************************************************************************/ + /* Command "10" pkg_create -b */ + /************************************************************************/ +@@ -1266,7 +1199,7 @@ + MGmStrcat(localProperty.command, TEMPDIR); + MGmStrcat(localProperty.command, "/"); + MGmStrcat(localProperty.command, oldPortName); +- MGmStrcat(localProperty.command, ".tgz"); ++ MGmStrcat(localProperty.command, ".t[bg]z"); + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stderr, "restoring original port from backup \n" ); + fprintf( stderr, "%s %s command: #12 of 14!! ***Emergancy restore*** %s\n", id, PACKAGE_VERSION, localProperty.command ); +@@ -1330,7 +1263,7 @@ + MGmStrcat( localProperty.command, TEMPDIR); + MGmStrcat( localProperty.command, "; rm -f "); + MGmStrcat( localProperty.command, oldPortName); +- MGmStrcat( localProperty.command, ".tgz" ); ++ MGmStrcat( localProperty.command, ".t[bg]z" ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stderr, "deleting backup copy, installation of updated %s successful\n", oldPortDir ); + fprintf( stdout, "%s %s localProperty.command: #12 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); +@@ -1555,12 +1488,6 @@ + MGdbDestroy( property->ignoreDb ); + MGdbDestroy( property->installedPortsDb ); + MGdbDestroy( property->strikesDb ); +- +- +- free( localProperty->environment[0] ); +- free( localProperty->environment[1] ); +- free( localProperty->environment[2] ); +- free( localProperty->environment ); + + free( localProperty->CURDIR ); + free( localProperty->afterOptionsFileSize ); Index: files/patch-libMGPM__src__libMGPM.h =================================================================== RCS file: files/patch-libMGPM__src__libMGPM.h diff -N files/patch-libMGPM__src__libMGPM.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMGPM__src__libMGPM.h 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,10 @@ +--- ./libMGPM/src/libMGPM.h.orig Tue Dec 13 17:23:14 2005 ++++ ./libMGPM/src/libMGPM.h Fri Dec 8 17:13:00 2006 +@@ -118,7 +118,6 @@ + char* workDir; + char* workFullPath; + char* xtermTitle; +- char** environment; + int bufferSize; + int optionsBufferSize; + } structLocalProperty; Index: files/patch-libMG__src__MGdbAdd.c =================================================================== RCS file: files/patch-libMG__src__MGdbAdd.c diff -N files/patch-libMG__src__MGdbAdd.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMG__src__MGdbAdd.c 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,30 @@ +--- ./libMG/src/MGdbAdd.c.orig Mon Dec 12 15:32:34 2005 ++++ ./libMG/src/MGdbAdd.c Fri Dec 8 17:13:00 2006 +@@ -39,7 +39,9 @@ + int idx = 0; + va_list paramList; + +- /* check if we have a valid object */ ++ /* ++ * check if we have a valid object ++ */ + if( db->parent.type != CLASS_TYPE_DB ) + { + fprintf( stderr, "%s error: invalid object type\n", id); +@@ -71,6 +73,8 @@ + */ + if( MGrBufferlen( paramPtr, MAXBUFFERSIZE ) < 1 ) + { ++ fprintf( stderr, "%s error: attempt to place null data into record halted\n", id ); ++ while( fflush( stderr ) ); + assert(0); + } + fprintf( dbFileStream, "%s%c", paramPtr, 0 ); +@@ -85,6 +89,7 @@ + { + fprintf( stderr, "%s error: fields added (%d) exceed field quantity (%d)\n did you forget to terminate MGdbAdd with a NULL field?\n", + id, idx, db->fieldQty ); ++ while( fflush( stderr ) ); + assert(0); + } + } Index: files/patch-libMG__src__MGdbRead.c =================================================================== RCS file: files/patch-libMG__src__MGdbRead.c diff -N files/patch-libMG__src__MGdbRead.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMG__src__MGdbRead.c 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,18 @@ +--- ./libMG/src/MGdbRead.c.orig Mon Dec 12 15:32:34 2005 ++++ ./libMG/src/MGdbRead.c Fri Dec 8 17:13:00 2006 +@@ -58,6 +58,7 @@ + fprintf( stderr, "%s error: unable to allocate %d bytes memory for db->dataBuffer\n", + id, dataBufferSize ); + perror( "system message" ); ++ while( fflush( stderr ) ); + assert(0); + } + /*zzzzzzzzzzzzzz*/ +@@ -70,6 +71,7 @@ + { + fprintf( stderr, "%s error: reading file %s into db->dataBuffer\n", id, db->parent.path ); + perror( "system message" ); \ ++ while( fflush( stderr ) ); + assert(0); + } + Index: files/patch-libMG__src__Makefile.am =================================================================== RCS file: files/patch-libMG__src__Makefile.am diff -N files/patch-libMG__src__Makefile.am --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMG__src__Makefile.am 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,11 @@ +--- ./libMG/src/Makefile.am.orig Tue Dec 13 13:57:20 2005 ++++ ./libMG/src/Makefile.am Fri Dec 8 17:13:00 2006 +@@ -32,7 +32,7 @@ + MGrStrlen.c \ + MGxTermBarCreate.c \ + MGxTermBarDestroy.c \ +- MGxTermBarUpdate.c ++ MGxTermBarUpdate.c + + include_HEADERS = libMG.h + Index: files/patch-libMG__src__libMG.h =================================================================== RCS file: files/patch-libMG__src__libMG.h diff -N files/patch-libMG__src__libMG.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-libMG__src__libMG.h 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,44 @@ +--- ./libMG/src/libMG.h.orig Tue Dec 13 13:56:16 2005 ++++ ./libMG/src/libMG.h Fri Dec 8 17:13:00 2006 +@@ -57,6 +57,7 @@ + #define KEY_a 97 + #define CLASS_TYPE_DB 1 + #define CLASS_TYPE_DIR 2 ++#define CLASS_TYPE_MEM 3 + #define CR 13 + #define DEBUG_MGdb 0 + #define DEBUG_MGdir 0 +@@ -77,15 +78,15 @@ + #define SINGLE_LINES "------------------------------------------------------------------------" + #define DOUBLE_LINES "========================================================================" + +- char** MGm__command; +- int MGm__forkStatus; +- pid_t MGm__pid; +-struct stat fstatBuf; +-struct stat lstatBuf; +-typedef struct classDb classDb; +-typedef struct classDir classDir; +-unsigned int MGm__bufferSize; +-unsigned int MGm__stringSize; ++ char** MGm__command; ++ int MGm__forkStatus; ++ pid_t MGm__pid; ++ struct stat fstatBuf; ++ struct stat lstatBuf; ++ unsigned int MGm__bufferSize; ++ unsigned int MGm__stringSize; ++typedef struct classDb classDb; ++typedef struct classDir classDir; + + #define MAXSTRINGSIZE 0x1ff + #define MAXBUFFERSIZE 0xffff +@@ -270,7 +271,7 @@ + int MGrInStringSwap( char* originalString, char* oldString, char* newString ); + int MGrStripComment( char*, char ); + unsigned int MGrBufferlen( char* buffer, unsigned int maxBufferSize ); +-unsigned int MGrStrlen( char* string ); ++unsigned int MGrStrlen( char* String ); + unsigned long int MGrFileTime( char* ); + + #endif Index: files/patch-portmanager.c =================================================================== RCS file: files/patch-portmanager.c diff -N files/patch-portmanager.c --- files/patch-portmanager.c 28 May 2006 20:40:49 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,17 +0,0 @@ ---- portmanager/portmanager.c.orig Tue Dec 13 00:20:58 2005 -+++ portmanager/portmanager.c Sat May 27 18:08:32 2006 -@@ -34,7 +34,13 @@ - int main( int argc, char** argv, char** argp) - { - int errorCode = 0; -- -+ -+ if ( getuid() != 0 ) -+ { -+ fprintf( stderr, "%s must be run as root\n", argv[0] ); -+ exit( 1 ); -+ } -+ - errorCode = MGPMrCommandLine( argc, (char**)argv, (char**)argp ); - exit( errorCode ); - } Index: files/patch-portmanager__patch-bsd.port.mk-0.3.6 =================================================================== RCS file: /home/ncvs/ports/sysutils/portmanager/files/patch-portmanager__patch-bsd.port.mk-0.3.6,v retrieving revision 1.1 diff -u -r1.1 patch-portmanager__patch-bsd.port.mk-0.3.6 --- files/patch-portmanager__patch-bsd.port.mk-0.3.6 4 Nov 2006 10:23:31 -0000 1.1 +++ files/patch-portmanager__patch-bsd.port.mk-0.3.6 13 Dec 2006 03:03:38 -0000 @@ -1,5 +1,5 @@ ---- ./portmanager/patch-bsd.port.mk-0.3.6.orig Sat Nov 4 13:20:22 2006 -+++ ./portmanager/patch-bsd.port.mk-0.3.6 Sat Nov 4 13:20:47 2006 +--- ./portmanager/patch-bsd.port.mk-0.3.6.orig Mon Dec 12 15:32:34 2005 ++++ ./portmanager/patch-bsd.port.mk-0.3.6 Fri Dec 8 17:13:00 2006 @@ -5,7 +5,7 @@ .endif .if !defined(PKG_ARGS) Index: files/patch-portmanager__portmanager.c =================================================================== RCS file: files/patch-portmanager__portmanager.c diff -N files/patch-portmanager__portmanager.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-portmanager__portmanager.c 13 Dec 2006 03:03:38 -0000 @@ -0,0 +1,17 @@ +--- ./portmanager/portmanager.c.orig Mon Dec 12 19:20:58 2005 ++++ ./portmanager/portmanager.c Fri Dec 8 17:13:00 2006 +@@ -34,7 +34,13 @@ + int main( int argc, char** argv, char** argp) + { + int errorCode = 0; +- ++ ++ if ( getuid() != 0 ) ++ { ++ fprintf( stderr, "%s must be run as root\n", argv[0] ); ++ exit( 1 ); ++ } ++ + errorCode = MGPMrCommandLine( argc, (char**)argv, (char**)argp ); + exit( errorCode ); + } --- portmanager-0.4.1_7.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: