Date: Wed, 09 Nov 2005 11:53:40 -0800 (PST) From: "Michael C. Shultz" <ringworm01@gmail.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/88744: [MAINTAINER UPDATE] update sysutils/portmanager Message-ID: <20051109195340.E30D3130C21@ringworm.mechee.com> Resent-Message-ID: <200511092020.jA9KKB2P018553@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 88744 >Category: ports >Synopsis: [MAINTAINER UPDATE] update sysutils/portmanager >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Wed Nov 09 20:20:11 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Michael C. Shultz >Release: FreeBSD 5.4-STABLE i386 >Organization: >Environment: System: FreeBSD ringworm.mechee.com 5.4-STABLE FreeBSD 5.4-STABLE #0: Fri Nov 4 06:35:37 PST 2005 root@ringworm.mechee.com:/usr5/obj/usr5/src/sys/RINGWORM5 i386 >Description: update sysutils/portmanager to 0.3.3_2 At user's request portmanager now respects a defined BATCH -sl works again, -sl and -slid options no longer consider build dependencies as "leaves" NOTE to comitter adds files/patch-0.3.3_2 >How-To-Repeat: N/A >Fix: --- portmanager-0.3.3_2.diff begins here --- diff -ruN portmanager/Makefile portmanager-0.3.3_2/Makefile --- portmanager/Makefile Wed Nov 9 08:56:05 2005 +++ portmanager-0.3.3_2/Makefile Wed Nov 9 10:54:01 2005 @@ -7,7 +7,7 @@ PORTNAME= portmanager PORTVERSION= 0.3.3 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= http://portmanager.sunsite.dk/distfiles/ \ ${MASTER_SITE_SOURCEFORGE} diff -ruN portmanager/files/patch-0.3.3_2 portmanager-0.3.3_2/files/patch-0.3.3_2 --- portmanager/files/patch-0.3.3_2 Wed Dec 31 16:00:00 1969 +++ portmanager-0.3.3_2/files/patch-0.3.3_2 Wed Nov 9 10:59:09 2005 @@ -0,0 +1,1042 @@ +diff -ruN ../0.3.3_1/libMGPM/src/MGPMrController.c ./libMGPM/src/MGPMrController.c +--- ../0.3.3_1/libMGPM/src/MGPMrController.c Tue Nov 8 17:05:25 2005 ++++ ./libMGPM/src/MGPMrController.c Tue Nov 8 20:37:08 2005 +@@ -150,14 +150,28 @@ + + if( path && ( strcmp( path, "SHOWLEAVES" ) == 0 ) ) + { +- if( ( errorCode = MGPMrCreateInstalledDb( property ) ) ) ++ if( property->resume == 0 ) /* skip this if portmanager has upgraded/rebuilt its self */ + { +- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrCreateInstalledDb", errorCode ); +- free( command ); +- free( oldPortDir ); +- free( oldPortName ); +- free( xtermTitle ); +- return( 1 ); ++ if( ( errorCode = MGPMrCreateInstalledDb( property ) ) ) ++ { ++ fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, ++ "MGPMrCreateInstalledDb", errorCode ); ++ free( command ); ++ free( oldPortDir ); ++ free( oldPortName ); ++ free( xtermTitle ); ++ return( 1 ); ++ } ++ if( ( errorCode = MGPMrCreateAllUpdateStatusDb( property ) ) ) ++ { ++ fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, ++ "MGPMrCreateAllUpdateStatusDb", errorCode ); ++ free( command ); ++ free( oldPortDir ); ++ free( oldPortName ); ++ free( xtermTitle ); ++ return( 1 ); ++ } + } + + if( ( errorCode = MGPMrShowLeaves( property ) ) ) +@@ -217,7 +231,6 @@ + return( 1 ); + } + } +- + + if( ( property->ignoreDb = MGdbCreate( property->ignoreDbFileName, property->fieldignoreDbPortDir, property->fieldIgnoreDbReason, NULL ) ) == NULL ) + { +diff -ruN ../0.3.3_1/libMGPM/src/MGPMrShowLeaves.c ./libMGPM/src/MGPMrShowLeaves.c +--- ../0.3.3_1/libMGPM/src/MGPMrShowLeaves.c Tue Nov 8 17:05:25 2005 ++++ ./libMGPM/src/MGPMrShowLeaves.c Tue Nov 8 21:32:18 2005 +@@ -31,16 +31,22 @@ + + int MGPMrShowLeaves( structProperty* property ) + { ++ FILE* pHandle = NULL; + char exact[] = "exact"; + char id[] = "MGPMrShowLeaves"; ++ char* buffer = NULL; + char* command = NULL; +- char* leafPortDirPtr = NULL; +- char* leafPortNamePtr = NULL; ++ char* leafPortDir = NULL; ++ char* leafPortName = NULL; ++ int bufferIdx = 0; + int bufferSize = 0xffff; + int installedPortsDbIDX = 0; + int installedPortsDbQTY = 0; + +- command = (char*)calloc( bufferSize, 1 ); ++ command = (char*)calloc( bufferSize, 1 ); ++ buffer = (char*)calloc( bufferSize, 1 ); ++ leafPortDir = (char*)calloc( bufferSize, 1 ); ++ leafPortName = (char*)calloc( bufferSize, 1 ); + + if( ( property->installedPortsDb = MGdbOpen( property->installedPortsDbFileName ) ) == NULL ) + { +@@ -49,7 +55,7 @@ + return( 1 ); + } + +- if( ( property->dependencyPortsDb = MGdbOpen( property->dependencyPortsDbFileName ) ) == NULL ) ++ if( ( property->availableDependenciesDb = MGdbOpen( property->availableDependenciesDbFileName ) ) == NULL ) + { + fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->dependencyPortsDbFileName ); + perror( "system" ); +@@ -57,9 +63,8 @@ + } + + fprintf( stdout,"%s\n", SINGLE_LINES ); +- fprintf( stdout, "Ports with no ports depending on them as run dependencies AKA \"leaf ports.\"\n" ); +- fprintf( stdout, "These ports may be deinstalled because no other ports rely on them.to run;\"\n" ); +- fprintf( stdout, "however, other ports may rely on these.to build;\"\n" ); ++ fprintf( stdout, "Ports with no ports depending on them to run or build AKA \"leaf ports.\"\n" ); ++ fprintf( stdout, "These ports may be deinstalled because no other ports rely on them.\"\n" ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + +@@ -67,28 +72,47 @@ + installedPortsDbIDX = 1; + while( installedPortsDbIDX < installedPortsDbQTY ) + { +- +- leafPortDirPtr = MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortDir ); +- leafPortNamePtr = MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortName ); +- MGdbGoTop( property->dependencyPortsDb ); +- if( MGdbSeek( property->dependencyPortsDb, property->fieldDependencyDbPortDir, leafPortDirPtr, property->fieldDependencyDbPortDir, ++ strcpy( leafPortDir, MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortDir ) ); ++ strcpy( leafPortName, MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortName ) ); ++ MGdbGoTop( property->availableDependenciesDb ); ++ if( MGdbSeek( property->availableDependenciesDb, ++ property->fieldAvailableDependenciesDbDependencyDir, ++ leafPortDir, ++ property->fieldAvailableDependenciesDbDependencyDir, + exact ) == NULL ) + { +- fprintf( stdout, "%s dir -=> %s\n", leafPortNamePtr, leafPortDirPtr ); ++ fprintf( stdout, "%-30s %-30s ", leafPortName, leafPortDir ); + while( fflush( stdout ) ); + strcpy( command, "grep COMMENT " ); + strcat( command, PORTSDIR ); +- strcat( command, leafPortDirPtr ); ++ strcat( command, leafPortDir ); + strcat( command, "/Makefile" ); +- system( command ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); ++ pHandle = popen( command, "r" ); ++ buffer[0] = 0; ++ fread( buffer, bufferSize - 1, 1, pHandle ); ++ pclose( pHandle ); ++ bufferIdx = 0; ++ while( bufferIdx < bufferSize ) ++ { ++ if( buffer[bufferIdx] == LINEFEED ) ++ { ++ buffer[bufferIdx] = 0; ++ break; ++ } ++ bufferIdx++; ++ } ++ fprintf( stdout, "%-25s\n", buffer+9 ); ++ while( fflush( stdout ) ); + } + installedPortsDbIDX++; + } +- fprintf( stdout, "%s\n", SINGLE_LINES ); ++ fprintf( stdout, "%s\n", DOUBLE_LINES ); + while( fflush( stdout ) ); ++ free( buffer ); + free( command ); ++ free( leafPortDir ); ++ free( leafPortName ); + MGdbDestroy( property->installedPortsDb ); +- MGdbDestroy( property->dependencyPortsDb ); ++ MGdbDestroy( property->availableDependenciesDb ); + return(0); + } +diff -ruN ../0.3.3_1/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c +--- ../0.3.3_1/libMGPM/src/MGPMrUpdate.c Tue Nov 8 17:05:25 2005 ++++ ./libMGPM/src/MGPMrUpdate.c Wed Nov 9 10:37:20 2005 +@@ -35,6 +35,7 @@ + { + char* afterOptionsFileSize; + char* afterOptionsFileTime; ++ char* batchCheck; + char* beforeOptionsFileSize; + char* beforeOptionsFileTime; + char* buffer; +@@ -70,8 +71,6 @@ + char* availableDependenciesDbDependencyDirPtr = NULL; + char* availableDependenciesDbDependencyNamePtr = NULL; + char* bufferBase = NULL; +- char* dependencyDbDependencyPortDirPtr = NULL; +- char* dependencyDbDependencyPortNamePtr = NULL; + char* installedPortsDbPortNamePtr = NULL; + char* ipPtr = NULL; + char* oldPortDirPtr = NULL; +@@ -82,8 +81,6 @@ + int availableDependenciesDbQTY = 0; + int availablePortsDbIDX = 0; + int bufferSize = 0xffff; +- int dependencyPortsDbIDX = 0; +- int dependencyPortsDbQTY = 0; + int errorCode = 0; + int idx = 0; + int installedPortsDbIDX = 0; +@@ -96,6 +93,7 @@ + + localProperty.afterOptionsFileSize = (char*)calloc( 511, 1 ); + localProperty.afterOptionsFileTime = (char*)calloc( 511, 1 ); ++ localProperty.batchCheck = (char*)calloc( 511, 1 ); + localProperty.beforeOptionsFileSize = (char*)calloc( 511, 1 ); + localProperty.beforeOptionsFileTime = (char*)calloc( 511, 1 ); + localProperty.buffer = (char*)calloc( bufferSize, 1 ); +@@ -111,13 +109,12 @@ + property->availablePortsDb = MGdbOpen( property->availablePortsDbFileName ); + property->commandLineDb = MGdbOpen( property->commandLineDbFileName ); + property->configDb = MGdbOpen( property->configDbFileName ); +- property->dependencyPortsDb = MGdbOpen( property->dependencyPortsDbFileName ); + property->ignoreDb = MGdbOpen( property->ignoreDbFileName ); + property->installedPortsDb = MGdbOpen( property->installedPortsDbFileName ); + property->strikesDb = MGdbOpen( property->strikesDbFileName ); + + /* +- * store work directoy base ++ * store localProperty.workDir + */ + strcpy( localProperty.workDir, "cd " ); + strcat( localProperty.workDir, PORTSDIR ); +@@ -163,9 +160,8 @@ + strcpy( localProperty.optionsDir, localProperty.buffer ); + + /* +- * BEFORE check for /var/db/ports/{oldPortDir} less sub dir +- * if it exists get size/time of options file for later comparison +- * ++ * BEFORE check for /var/db/ports/{port dir name}/options ++ * get size/time of file for later comparison + * + */ + +@@ -182,6 +178,9 @@ + strcpy( localProperty.beforeOptionsFileTime, MGrIntToString( (int)MGrFileTime( localProperty.optionsDir ) ) ); + strcpy( localProperty.beforeOptionsFileSize, MGrIntToString( MGrFileSize( localProperty.optionsDir ) ) ); + ++ /* ++ * Do update in interactive mode (command line switch -ui ) ++ */ + if( property->interactive ) + { + fprintf( stdout, "ok to update/rebuild %s %s (yes/no/auto yes to all) [y/n/a] [y]?\n", oldPortDir, oldPortName ); +@@ -241,9 +240,166 @@ + } + } + +- /* +- * 3 strikes check +- */ ++ /************************************************************************/ ++ /* Command "1" " make -V OPTIONS" */ ++ /************************************************************************/ ++ ++ strcpy( localProperty.batchCheck, "cd " ); ++ strcat( localProperty.batchCheck, PORTSDIR ); ++ strcat( localProperty.batchCheck, oldPortDir ); ++ strcat( localProperty.batchCheck, "; make -V BATCH" ); ++ ++ pHandle = popen( localProperty.batchCheck, "r" ); ++ localProperty.buffer[0] = 0; ++ fread( localProperty.buffer, bufferSize, 1, pHandle ); ++ pclose( pHandle ); ++ idx = 0; ++ while( idx < bufferSize ) ++ { ++ if( localProperty.buffer[idx] == LINEFEED ) ++ { ++ localProperty.buffer[idx] = 0; ++ break; ++ } ++ idx++; ++ } ++ if( strlen( localProperty.buffer ) > 0 ) /* BATCH is defined */ ++ { ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ fprintf( stdout, "%s %s:\n\t commands 1 & 2 of 14 OPTIONS check and \"make config\" skipped because BATCH is defined\n", ++ id, PACKAGE_VERSION ); ++ fprintf( stdout, "\t recommend not defining BATCH so options may at least be set to their defaults\n" ); ++ while( fflush( stdout ) ); ++ } ++ else ++ { ++ /* ++ * If no /var/db/ports/{port dir name}/options file exists ++ * yet make -V OPTIONS shows OPTIONS as being defined ++ * make is going to bluescreen, we need to handle that here ++ */ ++ ++ strcpy( localProperty.optionsCheck, "cd " ); ++ strcat( localProperty.optionsCheck, PORTSDIR ); ++ strcat( localProperty.optionsCheck, oldPortDir ); ++ strcat( localProperty.optionsCheck, "; make -V OPTIONS" ); ++ ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ fprintf( stdout, "%s %s command: #1 of 14 %s\n", id, PACKAGE_VERSION, localProperty.optionsCheck ); ++ fprintf( stdout, "%s\n", SINGLE_LINES ); ++ while( fflush( stdout ) ); ++ ++ pHandle = popen( localProperty.optionsCheck, "r" ); ++ localProperty.buffer[0] = 0; ++ fread( localProperty.buffer, bufferSize, 1, pHandle ); ++ pclose( pHandle ); ++ /************************************************************************/ ++ /* Command "2" " make conf" */ ++ /************************************************************************/ ++ if( strlen( localProperty.buffer ) > 4 ) ++ { ++ /* ++ * If here we know OPTIONS is defined, now need to know if ++ * /var/db/ports/{package name}/options exists ++ */ ++ fileStream = fopen( localProperty.optionsDir, "r" ); ++ if( fileStream == NULL ) /* no file */ ++ { ++ if( options ) ++ { ++ strcpy( localProperty.command, "cd " ); ++ strcat( localProperty.command, PORTSDIR ); ++ strcat( localProperty.command, oldPortDir ); ++ strcat( localProperty.command, "; make config " ); ++ strcat( localProperty.command, options ); ++ } ++ else ++ { ++ strcpy( localProperty.command, "cd " ); ++ strcat( localProperty.command, PORTSDIR ); ++ strcat( localProperty.command, oldPortDir ); ++ strcat( localProperty.command, "; make config " ); ++ } ++ 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 ); ++ while( fflush( stdout ) ); ++ system(localProperty.command); ++ } ++ else ++ { ++ fclose( fileStream ); ++ } ++ strcpy( localProperty.afterOptionsFileTime, MGrIntToString( (int)MGrFileTime( localProperty.optionsDir ) ) ); ++ strcpy( localProperty.afterOptionsFileSize, MGrIntToString( MGrFileSize( localProperty.optionsDir ) ) ); ++ ++ /* ++ * test to see if any options changed ++ */ ++ if( strlen( localProperty.beforeOptionsFileTime ) != strlen( localProperty.afterOptionsFileTime ) || ++ strlen( localProperty.beforeOptionsFileSize ) != strlen( localProperty.afterOptionsFileSize ) || ++ strcmp( localProperty.beforeOptionsFileTime, localProperty.afterOptionsFileTime ) || ++ strcmp( localProperty.beforeOptionsFileSize, localProperty.afterOptionsFileSize ) ) ++ { ++ /* ++ * options changed so need to purge oldPortDir's records ++ * from availablePortsDb and availableDependenciesDb ++ */ ++ property->optionsChanged = 1; ++ MGdbGoTop( property->availablePortsDb ); ++ while( MGdbSeek( property->availablePortsDb, ++ property->fieldAvailablePortsDbPortDir, ++ oldPortDir, ++ property->fieldAvailablePortsDbPortDir, ++ exact ) ) ++ { ++ fprintf( stdout, "%s info: purging availablePortsDb of old %s record\n", ++ id, ++ MGdbGet( property->availablePortsDb, ++ MGdbGetRecno( property->availablePortsDb ) - 1, ++ property->fieldAvailablePortsDbPortName ) ); ++ while( fflush( stdout ) ); ++ property->availablePortsDb = MGdbDelete( property->availablePortsDb, ++ MGdbGetRecno( property->availablePortsDb ) - 1 ); ++ MGdbGoTop( property->availablePortsDb ); ++ } ++ ++ MGdbGoTop( property->availableDependenciesDb ); ++ while( MGdbSeek( property->availableDependenciesDb, ++ property->fieldAvailableDependenciesDbPortDir, ++ oldPortDir, ++ property->fieldAvailableDependenciesDbPortDir, ++ exact ) ) ++ { ++ fprintf( stdout, "%s info: purging availableDependenciesDb of old %s dependency records %s\n", ++ id, ++ MGdbGet( property->availableDependenciesDb, ++ MGdbGetRecno( property->availableDependenciesDb ) - 1, ++ property->fieldAvailableDependenciesDbPortName ), ++ MGdbGet( property->availableDependenciesDb, ++ MGdbGetRecno( property->availableDependenciesDb ) - 1, ++ property->fieldAvailableDependenciesDbDependencyName ) ); ++ while( fflush( stdout ) ); ++ MGdbDelete( property->availableDependenciesDb, MGdbGetRecno( property->availableDependenciesDb ) - 1 ); ++ MGdbGoTop( property->availableDependenciesDb ); ++ } ++ /* ++ * add oldPortDir's new records back into availablePortsDb ++ * and availableDependenciesDb ++ */ ++ fprintf( stdout, "%s info: adding new/modified %s records\n", id, oldPortDir ); ++ MGPMrSinglePortCreateStatusDb( property, oldPortDir ); ++ rCleanUp( property, &localProperty ); ++ return( 0 ); ++ } ++ } ++ ++ } ++ ++ /************************************************************************/ ++ /* 3 strikes check */ ++ /************************************************************************/ + MGdbGoTop( property->strikesDb ); + strikePtr = MGdbSeek( property->strikesDb, property->fieldStrikesDbPortDir, oldPortDir, property->fieldStrikesIDX, exact ); + if( strikePtr ) +@@ -288,8 +444,9 @@ + system( localProperty.command ); + } + /* +-dualOriginCheck( property, oldPortName ); +-*/ ++ * 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 ++ */ + } + } + else +@@ -301,7 +458,7 @@ + options = MGdbSeek( property->configDb, property->fieldConfigDbKey, oldPortDir, property->fieldConfigDbValue, exact ); + + /************************************************************************/ +- /* Command "1" " make check-conflicts " */ ++ /* Command "3" " make check-conflicts " */ + /************************************************************************/ + if( options ) + { +@@ -320,7 +477,7 @@ + } + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "checking for conflicts before building %s\n", oldPortName ); +- fprintf( stdout, "%s %s command: #1 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #3 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + if( ( errorCode = system(localProperty.command) ) ) +@@ -492,7 +649,7 @@ + return( 0 ); + } + /************************************************************************/ +- /* Command "1.1" " make -V FORBIDDEN " */ ++ /* Command "4" " make -V FORBIDDEN " */ + /************************************************************************/ + if( ( errorCode = rPortBrokeCheck( property, options, oldPortDir, oldPortName, FORBIDDEN ) ) ) + { +@@ -511,8 +668,9 @@ + } + + } ++ + /************************************************************************/ +- /* Command "1.2" " make -V BROKEN " */ ++ /* Command "5" " make -V BROKEN " */ + /************************************************************************/ + if( ( errorCode = rPortBrokeCheck( property, options, oldPortDir, oldPortName, BROKEN ) ) ) + { +@@ -531,8 +689,9 @@ + } + + } ++ + /************************************************************************/ +- /* Command "1.3" " make -V IGNORE " */ ++ /* Command "6" " make -V IGNORE " */ + /************************************************************************/ + if( ( errorCode = rPortBrokeCheck( property, options, oldPortDir, oldPortName, IGNORE ) ) ) + { +@@ -551,99 +710,53 @@ + } + + } ++ + /************************************************************************/ +- /* Command "2" " make clean " */ ++ /* Command "7" " make clean " */ + /************************************************************************/ + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "intitial clean of work directories \n" ); +- fprintf( stdout, "%s %s command: #2 of 8: \n", id, PACKAGE_VERSION ); ++ fprintf( stdout, "%s %s command: #7 of 14: \n", id, PACKAGE_VERSION ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + +- if( property->pmMode == SINGLE ) +- { +- availableDependenciesDbQTY = MGdbGetRecordQty( property->availableDependenciesDb ); +- MGdbGoTop( property->availableDependenciesDb ); +- oldPortDirPtr = MGdbSeek( property->availableDependenciesDb, +- property->fieldAvailableDependenciesDbPortDir, +- oldPortDir, +- property->fieldAvailableDependenciesDbPortDir, +- exact ); ++ availableDependenciesDbQTY = MGdbGetRecordQty( property->availableDependenciesDb ); ++ MGdbGoTop( property->availableDependenciesDb ); ++ oldPortDirPtr = MGdbSeek( property->availableDependenciesDb, ++ property->fieldAvailableDependenciesDbPortDir, ++ oldPortDir, ++ property->fieldAvailableDependenciesDbPortDir, ++ exact ); + +- availableDependenciesDbIDX = MGdbGetRecno( property->availableDependenciesDb )-1; ++ availableDependenciesDbIDX = MGdbGetRecno( property->availableDependenciesDb )-1; ++ ++ availableDependenciesDbDependencyDirPtr = MGdbGet( property->availableDependenciesDb, ++ availableDependenciesDbIDX, ++ property->fieldAvailableDependenciesDbDependencyDir ); ++ ++ availableDependenciesDbDependencyNamePtr = MGdbGet( property->availableDependenciesDb, ++ availableDependenciesDbIDX, ++ property->fieldAvailableDependenciesDbDependencyName ); + ++ while( oldPortDirPtr && availableDependenciesDbIDX < availableDependenciesDbQTY && strcmp( oldPortDir, oldPortDirPtr ) == 0 ) ++ { ++ rCleanDir( availableDependenciesDbDependencyDirPtr, localProperty.workDir ); ++ ++ oldPortDirPtr = MGdbGet( property->availableDependenciesDb, ++ availableDependenciesDbIDX, ++ property->fieldAvailableDependenciesDbPortDir ); + availableDependenciesDbDependencyDirPtr = MGdbGet( property->availableDependenciesDb, + availableDependenciesDbIDX, + property->fieldAvailableDependenciesDbDependencyDir ); +- + availableDependenciesDbDependencyNamePtr = MGdbGet( property->availableDependenciesDb, + availableDependenciesDbIDX, + property->fieldAvailableDependenciesDbDependencyName ); +- +- while( oldPortDirPtr && availableDependenciesDbIDX < availableDependenciesDbQTY && strcmp( oldPortDir, oldPortDirPtr ) == 0 ) +- { +- rCleanDir( availableDependenciesDbDependencyDirPtr, localProperty.workDir ); +- +- oldPortDirPtr = MGdbGet( property->availableDependenciesDb, +- availableDependenciesDbIDX, +- property->fieldAvailableDependenciesDbPortDir ); +- availableDependenciesDbDependencyDirPtr = MGdbGet( property->availableDependenciesDb, +- availableDependenciesDbIDX, +- property->fieldAvailableDependenciesDbDependencyDir ); +- availableDependenciesDbDependencyNamePtr = MGdbGet( property->availableDependenciesDb, +- availableDependenciesDbIDX, +- property->fieldAvailableDependenciesDbDependencyName ); +- availableDependenciesDbIDX++; +- } +- rCleanDir( oldPortDir, localProperty.workDir ); +- } +- else +- { +- dependencyPortsDbQTY = MGdbGetRecordQty( property->dependencyPortsDb ); +- +- MGdbGoTop( property->dependencyPortsDb ); +- +- oldPortDirPtr = MGdbSeek( property->dependencyPortsDb, +- property->fieldDependencyDbPortDir, +- oldPortDir, +- property->fieldDependencyDbPortDir, +- exact ); +- +- dependencyPortsDbIDX = MGdbGetRecno( property->dependencyPortsDb )-1; +- +- dependencyDbDependencyPortDirPtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortDir ); +- +- dependencyDbDependencyPortNamePtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortName ); +- +- while( oldPortDirPtr && dependencyPortsDbIDX < dependencyPortsDbQTY && strcmp( oldPortDir, oldPortDirPtr ) == 0 ) +- { +- rCleanDir( dependencyDbDependencyPortDirPtr, localProperty.workDir ); +- +- oldPortDirPtr = MGdbSeek( property->dependencyPortsDb, +- property->fieldDependencyDbPortDir, +- oldPortDir, +- property->fieldDependencyDbPortDir, +- exact ); +- +- dependencyDbDependencyPortDirPtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortDir ); +- +- dependencyDbDependencyPortNamePtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortName ); +- +- dependencyPortsDbIDX++; +- } +- rCleanDir( oldPortDir, localProperty.workDir ); ++ availableDependenciesDbIDX++; + } ++ rCleanDir( oldPortDir, localProperty.workDir ); + + /************************************************************************/ +- /* Command "3.1" " make fetch" */ ++ /* Command "8" make fetch */ + /************************************************************************/ + strcpy( localProperty.command, "cd " ); + strcat( localProperty.command, PORTSDIR ); +@@ -655,7 +768,7 @@ + } + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "fetch %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #3.1 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #8 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + if( ( errorCode = system(localProperty.command) ) ) +@@ -676,143 +789,8 @@ + return(0); + } + +- +- /************************************************************************/ +- /* Command "3.2" " make -V OPTIONS" */ +- /************************************************************************/ +- +- /* +- * If no /var/db/ports/{package name}/options file exists +- * yet make -V OPTIONS shows OPTIONS as being defined +- * make is going to bluescreen, we need to handle that here +- */ +- +- strcpy( localProperty.optionsCheck, "cd " ); +- strcat( localProperty.optionsCheck, PORTSDIR ); +- strcat( localProperty.optionsCheck, oldPortDir ); +- strcat( localProperty.optionsCheck, "; make -V OPTIONS" ); +- +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- fprintf( stdout, "%s %s command: #3.2 of 8 %s\n", id, PACKAGE_VERSION, localProperty.optionsCheck ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- while( fflush( stdout ) ); +- +- pHandle = popen( localProperty.optionsCheck, "r" ); +- localProperty.buffer[0] = 0; +- fread( localProperty.buffer, bufferSize, 1, pHandle ); +- pclose( pHandle ); + /************************************************************************/ +- /* Command "3.3" " make conf" */ +- /************************************************************************/ +- if( strlen( localProperty.buffer ) > 4 ) +- { +- /* +- * If here we know OPTIONS is defined, now need to know if +- * /var/db/ports/{package name}/options exists +- */ +- fileStream = fopen( localProperty.optionsDir, "r" ); +- if( fileStream == NULL ) /* no file */ +- { +- if( options ) +- { +- strcpy( localProperty.command, "cd " ); +- strcat( localProperty.command, PORTSDIR ); +- strcat( localProperty.command, oldPortDir ); +- strcat( localProperty.command, "; make config " ); +- strcat( localProperty.command, options ); +- } +- else +- { +- strcpy( localProperty.command, "cd " ); +- strcat( localProperty.command, PORTSDIR ); +- strcat( localProperty.command, oldPortDir ); +- strcat( localProperty.command, "; make config " ); +- } +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- fprintf( stdout, "update %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #3.3 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); +- fprintf( stdout, "%s\n", SINGLE_LINES ); +- while( fflush( stdout ) ); +- system(localProperty.command); +- } +- else +- { +- fclose( fileStream ); +- } +- strcpy( localProperty.afterOptionsFileTime, MGrIntToString( (int)MGrFileTime( localProperty.optionsDir ) ) ); +- strcpy( localProperty.afterOptionsFileSize, MGrIntToString( MGrFileSize( localProperty.optionsDir ) ) ); +- +- /* +- * test to see if any options changed +- */ +- if( strlen( localProperty.beforeOptionsFileTime ) != strlen( localProperty.afterOptionsFileTime ) || +- strlen( localProperty.beforeOptionsFileSize ) != strlen( localProperty.afterOptionsFileSize ) || +- strcmp( localProperty.beforeOptionsFileTime, localProperty.afterOptionsFileTime ) || +- strcmp( localProperty.beforeOptionsFileSize, localProperty.afterOptionsFileSize ) ) +- { +-fprintf( stdout, "%s debug 01: beforeOptionsFileTime-=>%s afterOptionsFileTime-=>%s beforeOptionsFileSize-=>%s afterOptionsFileSize-=>%s\n", +- id, +- localProperty.beforeOptionsFileTime, +- localProperty.afterOptionsFileTime, +- localProperty.beforeOptionsFileSize, +- localProperty.afterOptionsFileSize ); +-while( fflush( stdout ) ); +- +- /* +- * options changed so need to purge oldPortDir's records +- * from availablePortsDb and availableDependenciesDb +- */ +- property->optionsChanged = 1; +- MGdbGoTop( property->availablePortsDb ); +- while( MGdbSeek( property->availablePortsDb, +- property->fieldAvailablePortsDbPortDir, +- oldPortDir, +- property->fieldAvailablePortsDbPortDir, +- exact ) ) +- { +- fprintf( stdout, "%s info: purging availablePortsDb of old %s record\n", +- id, +- MGdbGet( property->availablePortsDb, +- MGdbGetRecno( property->availablePortsDb ) - 1, +- property->fieldAvailablePortsDbPortName ) ); +- while( fflush( stdout ) ); +- property->availablePortsDb = MGdbDelete( property->availablePortsDb, +- MGdbGetRecno( property->availablePortsDb ) - 1 ); +- MGdbGoTop( property->availablePortsDb ); +- } +- +- MGdbGoTop( property->availableDependenciesDb ); +- while( MGdbSeek( property->availableDependenciesDb, +- property->fieldAvailableDependenciesDbPortDir, +- oldPortDir, +- property->fieldAvailableDependenciesDbPortDir, +- exact ) ) +- { +- fprintf( stdout, "%s info: purging availableDependenciesDb of old %s dependency records %s\n", +- id, +- MGdbGet( property->availableDependenciesDb, +- MGdbGetRecno( property->availableDependenciesDb ) - 1, +- property->fieldAvailableDependenciesDbPortName ), +- MGdbGet( property->availableDependenciesDb, +- MGdbGetRecno( property->availableDependenciesDb ) - 1, +- property->fieldAvailableDependenciesDbDependencyName ) ); +- while( fflush( stdout ) ); +- MGdbDelete( property->availableDependenciesDb, MGdbGetRecno( property->availableDependenciesDb ) - 1 ); +- MGdbGoTop( property->availableDependenciesDb ); +- } +- /* +- * add oldPortDir's new records back into availablePortsDb +- * and availableDependenciesDb +- */ +- fprintf( stdout, "%s info: adding new/modified %s records\n", id, oldPortDir ); +- MGPMrSinglePortCreateStatusDb( property, oldPortDir ); +- rCleanUp( property, &localProperty ); +- return( 0 ); +- } +- } +- +- /************************************************************************/ +- /* Command "3.4" " make" */ ++ /* Command "9" " make" */ + /************************************************************************/ + if( options ) + { +@@ -831,7 +809,7 @@ + } + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "update %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #3.4 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ 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) ) ) +@@ -852,13 +830,13 @@ + return(0); + } + /************************************************************************/ +- /* Command "4" " pkg_create -b " */ ++ /* Command "10" pkg_create -b */ + /************************************************************************/ + if( strcmp( oldPortName, "not installed" ) == 0 ) + { + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "backing up installed %s before removing it \n", oldPortName ); +- fprintf( stdout, "%s %s command: #4 of 8 N/A - new port\n", id, PACKAGE_VERSION ); ++ fprintf( stdout, "%s %s command: #10 of 14 N/A - new port\n", id, PACKAGE_VERSION ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + } +@@ -871,13 +849,13 @@ + + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "backing up installed %s before removing it \n", oldPortName ); +- fprintf( stdout, "%s %s command: #4 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #10 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + system(localProperty.command); + } + /************************************************************************/ +- /* Command "5" " make deinstall " */ ++ /* Command "11" " make deinstall " */ + /************************************************************************/ + /* + * inforced mass update mode portmanager CANNOT loose its databases +@@ -934,7 +912,7 @@ + { + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "removing old %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #5 of 8 N/A new port\n", id, PACKAGE_VERSION ); ++ fprintf( stdout, "%s %s command: #11 of 14 N/A new port\n", id, PACKAGE_VERSION ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + } +@@ -944,7 +922,7 @@ + strcat( localProperty.command, oldPortName); + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "removing old %s \n", oldPortName ); +- fprintf( stdout, "%s %s command: #5 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #11 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + if( ( system(localProperty.command) ) ) +@@ -957,7 +935,7 @@ + + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "trying one more way to remove %s...\n", oldPortName ); +- fprintf( stdout, "%s %s command: #5 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #11 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + system(localProperty.command); +@@ -965,7 +943,7 @@ + } + } + /************************************************************************/ +- /* Command "6" " make reinstall " */ ++ /* Command "12" make reinstall */ + /************************************************************************/ + if( options ) + { +@@ -984,7 +962,7 @@ + } + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stdout, "installing updated %s \n", oldPortDir ); +- fprintf( stdout, "%s %s command: #6 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #12 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + if( ( errorCode = system( localProperty.command ) ) ) +@@ -1007,7 +985,7 @@ + strcat(localProperty.command, ".tgz"); + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stderr, "restoring original port from backup \n" ); +- fprintf( stderr, "%s %s command: #6!! ***Emergancy restore*** %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stderr, "%s %s command: #12 of 14!! ***Emergancy restore*** %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + if( ( errorCode = system( localProperty.command ) ) ) +@@ -1057,14 +1035,14 @@ + strcat( localProperty.command, ".tgz" ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stderr, "deleting backup copy, installation of updated %s successful\n", oldPortDir ); +- fprintf( stdout, "%s %s command: #6 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #12 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + system( localProperty.command ); + } + } + /************************************************************************/ +- /* Command "7" " make package " */ ++ /* Command "13" make package */ + /************************************************************************/ + if( property->backUp ) + { +@@ -1085,7 +1063,7 @@ + } + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stderr, "making package of updated %s \n", oldPortDir ); +- fprintf( stdout, "%s %s command: #7 of 8 %s\n", id, PACKAGE_VERSION, localProperty.command ); ++ fprintf( stdout, "%s %s command: #13 of 14 %s\n", id, PACKAGE_VERSION, localProperty.command ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + system(localProperty.command); +@@ -1098,11 +1076,11 @@ + while( fflush( stdout ) ); + } + /************************************************************************/ +- /* Command "8" " make clean " */ ++ /* Command "14" make clean */ + /************************************************************************/ + fprintf( stdout, "%s\n", SINGLE_LINES ); + fprintf( stderr, "terminal clean of work directories\n" ); +- fprintf( stdout, "%s %s command: #8 of 8\n", id, PACKAGE_VERSION ); ++ fprintf( stdout, "%s %s command: #14 of 14\n", id, PACKAGE_VERSION ); + fprintf( stdout, "%s\n", SINGLE_LINES ); + while( fflush( stdout ) ); + +@@ -1116,87 +1094,40 @@ + } + else + { +- if( property->pmMode == SINGLE ) +- { +- availableDependenciesDbQTY = MGdbGetRecordQty( property->availableDependenciesDb ); +- MGdbGoTop( property->availableDependenciesDb ); +- oldPortDirPtr = MGdbSeek( property->availableDependenciesDb, +- property->fieldAvailableDependenciesDbPortDir, +- oldPortDir, +- property->fieldAvailableDependenciesDbPortDir, +- exact ); ++ availableDependenciesDbQTY = MGdbGetRecordQty( property->availableDependenciesDb ); ++ MGdbGoTop( property->availableDependenciesDb ); ++ oldPortDirPtr = MGdbSeek( property->availableDependenciesDb, ++ property->fieldAvailableDependenciesDbPortDir, ++ oldPortDir, ++ property->fieldAvailableDependenciesDbPortDir, ++ exact ); ++ ++ availableDependenciesDbIDX = MGdbGetRecno( property->availableDependenciesDb )-1; ++ ++ availableDependenciesDbDependencyDirPtr = MGdbGet( property->availableDependenciesDb, ++ availableDependenciesDbIDX, ++ property->fieldAvailableDependenciesDbDependencyDir ); ++ ++ availableDependenciesDbDependencyNamePtr = MGdbGet( property->availableDependenciesDb, ++ availableDependenciesDbIDX, ++ property->fieldAvailableDependenciesDbDependencyName ); + +- availableDependenciesDbIDX = MGdbGetRecno( property->availableDependenciesDb )-1; ++ while( oldPortDirPtr && availableDependenciesDbIDX < availableDependenciesDbQTY && strcmp( oldPortDir, oldPortDirPtr ) == 0 ) ++ { ++ rCleanDir( availableDependenciesDbDependencyDirPtr, localProperty.workDir ); + ++ oldPortDirPtr = MGdbGet( property->availableDependenciesDb, ++ availableDependenciesDbIDX, ++ property->fieldAvailableDependenciesDbPortDir ); + availableDependenciesDbDependencyDirPtr = MGdbGet( property->availableDependenciesDb, + availableDependenciesDbIDX, + property->fieldAvailableDependenciesDbDependencyDir ); +- + availableDependenciesDbDependencyNamePtr = MGdbGet( property->availableDependenciesDb, + availableDependenciesDbIDX, + property->fieldAvailableDependenciesDbDependencyName ); +- +- while( oldPortDirPtr && availableDependenciesDbIDX < availableDependenciesDbQTY && strcmp( oldPortDir, oldPortDirPtr ) == 0 ) +- { +- rCleanDir( availableDependenciesDbDependencyDirPtr, localProperty.workDir ); +- +- oldPortDirPtr = MGdbGet( property->availableDependenciesDb, +- availableDependenciesDbIDX, +- property->fieldAvailableDependenciesDbPortDir ); +- availableDependenciesDbDependencyDirPtr = MGdbGet( property->availableDependenciesDb, +- availableDependenciesDbIDX, +- property->fieldAvailableDependenciesDbDependencyDir ); +- availableDependenciesDbDependencyNamePtr = MGdbGet( property->availableDependenciesDb, +- availableDependenciesDbIDX, +- property->fieldAvailableDependenciesDbDependencyName ); +- availableDependenciesDbIDX++; +- } +- rCleanDir( oldPortDir, localProperty.workDir ); +- } +- else +- { +- dependencyPortsDbQTY = MGdbGetRecordQty( property->dependencyPortsDb ); +- +- MGdbGoTop( property->dependencyPortsDb ); +- +- oldPortDirPtr = MGdbSeek( property->dependencyPortsDb, +- property->fieldDependencyDbPortDir, +- oldPortDir, +- property->fieldDependencyDbPortDir, +- exact ); +- +- dependencyPortsDbIDX = MGdbGetRecno( property->dependencyPortsDb )-1; +- +- dependencyDbDependencyPortDirPtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortDir ); +- +- dependencyDbDependencyPortNamePtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortName ); +- +- while( oldPortDirPtr && dependencyPortsDbIDX < dependencyPortsDbQTY && strcmp( oldPortDir, oldPortDirPtr ) == 0 ) +- { +- rCleanDir( dependencyDbDependencyPortDirPtr, localProperty.workDir ); +- +- oldPortDirPtr = MGdbSeek( property->dependencyPortsDb, +- property->fieldDependencyDbPortDir, +- oldPortDir, +- property->fieldDependencyDbPortDir, +- exact ); +- +- dependencyDbDependencyPortDirPtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortDir ); +- +- dependencyDbDependencyPortNamePtr = MGdbGet( property->dependencyPortsDb, +- dependencyPortsDbIDX, +- property->fieldDependencyDbDependencyPortName ); +- +- dependencyPortsDbIDX++; +- } +- rCleanDir( oldPortDir, localProperty.workDir ); ++ availableDependenciesDbIDX++; + } ++ rCleanDir( oldPortDir, localProperty.workDir ); + } + + /* +@@ -1286,13 +1217,13 @@ + MGdbDestroy( property->availablePortsDb ); + MGdbDestroy( property->commandLineDb ); + MGdbDestroy( property->configDb ); +- MGdbDestroy( property->dependencyPortsDb ); + MGdbDestroy( property->ignoreDb ); + MGdbDestroy( property->installedPortsDb ); + MGdbDestroy( property->strikesDb ); + + free( localProperty->afterOptionsFileSize ); + free( localProperty->afterOptionsFileTime ); ++ free( localProperty->batchCheck ); + free( localProperty->beforeOptionsFileSize ); + free( localProperty->beforeOptionsFileTime ); + free( localProperty->buffer ); +diff -ruN ../0.3.3_1/programmer-notes.txt ./programmer-notes.txt +--- ../0.3.3_1/programmer-notes.txt Tue Nov 8 17:05:25 2005 ++++ ./programmer-notes.txt Wed Nov 9 10:46:58 2005 +@@ -1,13 +1,13 @@ + portmanager program overview + +-Must do before releasing ++TODO list + + auto stop/start of programs? +- dual origin + move database files to /var/db/portmanager + test in 6.0 ++ use signal to abort only current build? ++ use signal to off/on inteactive mode? + use signal to shutdown with <ctl> c +- valgrind clean + c/w (yes/no/auto yes to all) [y/n/a] [y] + c/w --resume option for forced modes + c/w -sl +@@ -20,12 +20,14 @@ + c/w get ignored ports from pm-020.conf working + c/w no packages option + c/w put an inkeys on conflicting port removal ++c/w respect a defined BATCH=1 + c/w seperate make/make fetch for better logging of errors + c/w test emergency restore + c/w test moved ports + c/w three strikes + c/w update man pages + c/w update web site ++inw valgrind clean + + portmanager.c - passes argv, arc to MGPMrCommandLine.c + diff -ruN portmanager/pkg-descr portmanager-0.3.3_2/pkg-descr --- portmanager/pkg-descr Wed Nov 9 08:56:05 2005 +++ portmanager-0.3.3_2/pkg-descr Wed Nov 9 10:51:51 2005 @@ -11,11 +11,9 @@ 2) portmanager -u -f forces rebuild of everything -portmanager-questions archive may be found at: -http://www.mail-archive.com/portmanager-questions%40sunsite.dk/ - -to subscribe just send an empty message to: -portmanager-questions-subscribe@sunsite.dk +3) -sl showleaves and -slid delete leaves + now no longer list build dependencies WWW: http://portmanager.sunsite.dk/ -Author: Michael C. Shultz <ringworm01@gmail.com> +Maintainer: Michael C. Shultz <ringworm01@gmail.com> + --- portmanager-0.3.3_2.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051109195340.E30D3130C21>