ports/90283: [MAINTAINER] update sysutils/portmanager

Mike ringworm01 at gmail.com
Mon Dec 12 16:20:40 UTC 2005


>Number:         90283
>Category:       ports
>Synopsis:       [MAINTAINER] 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:   Mon Dec 12 16:20:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Michael C. Shultz
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD FreeBSD70.mechee.com 7.0-CURRENT FreeBSD 7.0-CURRENT #1: Thu Dec 8 11:29:19 PST 2005 mike at FreeBSD70.mechee.com:/usr/obj/usr/src/sys/FREEBSD70 i386


>Description:

	update sysutils/portmanager to 0.4.0

	1. Reduces security flaws found with security/flawfinder from
	777 to 98 in source. 0.4.* releases will be dedicated to security
	and bug fixes

	2. Fixes bug where if portmanager is used to install portupgrade
	+CONTENTS files for portupgrade get corrupted

	Note to comitter: New tarball, please remove files/ and all patches

>How-To-Repeat:

	N/A

>Fix:

--- portmanager-0.4.0.diff begins here ---
diff -ruN portmanager/Makefile portmanager-0.4.0/Makefile
--- portmanager/Makefile	Sat Dec  3 22:16:40 2005
+++ portmanager-0.4.0/Makefile	Mon Dec 12 07:31:20 2005
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	portmanager
-PORTVERSION=	0.3.9
-PORTREVISION=	7
+PORTVERSION=	0.4.0
 CATEGORIES=	sysutils
 MASTER_SITES=	http://portmanager.sunsite.dk/distfiles/ \
 		${MASTER_SITE_SOURCEFORGE}
diff -ruN portmanager/distinfo portmanager-0.4.0/distinfo
--- portmanager/distinfo	Fri Nov 25 12:14:23 2005
+++ portmanager-0.4.0/distinfo	Mon Dec 12 07:17:13 2005
@@ -1,3 +1,3 @@
-MD5 (portmanager-0.3.9.tar.gz) = ced2fed7ba75a664f030f8d4bd72b976
-SHA256 (portmanager-0.3.9.tar.gz) = 34063846fbf86d16cf42a8f3aa4a37c522e6e234b314721f22dab391ca8aca69
-SIZE (portmanager-0.3.9.tar.gz) = 490606
+MD5 (portmanager-0.4.0.tar.gz) = 4d59ab82de1f593cfece1b2dd600f86e
+SHA256 (portmanager-0.4.0.tar.gz) = 088b0a393ffa31a5c67bfda3e298dd54c7039b09ee7dd636411d061b98efddd2
+SIZE (portmanager-0.4.0.tar.gz) = 491058
diff -ruN portmanager/files/patch-0.3.9_1 portmanager-0.4.0/files/patch-0.3.9_1
--- portmanager/files/patch-0.3.9_1	Fri Nov 25 12:14:23 2005
+++ portmanager-0.4.0/files/patch-0.3.9_1	Wed Dec 31 16:00:00 1969
@@ -1,222 +0,0 @@
-diff -ruN ../0.3.9/libMGPM/src/MGPMrCommandLine.c ./libMGPM/src/MGPMrCommandLine.c
---- ../0.3.9/libMGPM/src/MGPMrCommandLine.c	Wed Nov 23 19:35:36 2005
-+++ ./libMGPM/src/MGPMrCommandLine.c	Fri Nov 25 10:38:28 2005
-@@ -57,7 +57,7 @@
- /*
- 	fprintf( stdout, "MGPMrTimer received signal -=>%d\n", signalId );
- */
--	fclose( globalProperty->stdin );
-+	fclose( globalProperty->STDIN );
- 	globalProperty->timeOut	= 1;
- }
- 
-diff -ruN ../0.3.9/libMGPM/src/MGPMrGetPortName.c ./libMGPM/src/MGPMrGetPortName.c
---- ../0.3.9/libMGPM/src/MGPMrGetPortName.c	Thu Nov 24 09:28:49 2005
-+++ ./libMGPM/src/MGPMrGetPortName.c	Fri Nov 25 11:22:07 2005
-@@ -84,11 +84,11 @@
- 				/*
- 				 * set timeout default to Y
- 				 */
--				property->stdin = fopen( "/dev/stdin", "r" );
--				property->timeOut = 0;
--				signal( SIGALRM, MGPMrTimer );
- 				alarm( property->timeout );
--				answer	= getc( property->stdin );
-+				signal( SIGALRM, MGPMrTimer );
-+				property->STDIN = fopen( "/dev/stdin", "r" );
-+				property->timeOut = 0;
-+				answer	= getc( property->STDIN );
- 				
- 				switch(answer)
- 				{
-@@ -98,36 +98,36 @@
- 					}
- 					case KEY_A:
- 					{
--						answer	= getc( property->stdin );
-+						answer	= getc( property->STDIN );
- 						property->autoMoved = 1;
- 						break;
- 					}
- 					case KEY_a:
- 					{
- 						property->autoMoved = 1;
--						answer	= getc( property->stdin );
-+						answer	= getc( property->STDIN );
- 						break;
- 					}
- 					case KEY_Y:
- 					{
--						answer	= getc( property->stdin );
-+						answer	= getc( property->STDIN );
- 						break;
- 					}
- 					case KEY_y:
- 					{
--						answer	= getc( property->stdin );
-+						answer	= getc( property->STDIN );
- 						break;
- 					}
- 					case KEY_N:
- 					{
--						answer	= getc( property->stdin );
-+						answer	= getc( property->STDIN );
- 						fprintf( stdout, "you will have to deal with this manually then, portmanager shutting down\n" );
- 						while( fflush( stdout ) );
- 						exit(0);
- 					}
- 					case KEY_n:
- 					{
--						answer	= getc( property->stdin );
-+						answer	= getc( property->STDIN );
- 						fprintf( stdout, "you will have to deal with this manually then, portmanager shutting down\n" );
- 						while( fflush( stdout ) );
- 						exit(0);
-@@ -143,7 +143,7 @@
- 						{
- 							fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
- 							while( fflush( stdout ) );
--							answer	= getc( property->stdin );
-+							answer	= getc( property->STDIN );
- 						}
- 					}
- 				}
-@@ -156,7 +156,7 @@
- 			if( property->timeOut  == 1 )
- 			{
- 				/*
--				 * reset alarm, reopen stdin after timeout
-+				 * reset alarm, reopen STDIN after timeout
- 				 */
- 				alarm(0);
- 				property->timeOut	= 0;
-@@ -165,7 +165,7 @@
- 			}
- 			else
- 			{
--				fclose( property->stdin );
-+				fclose( property->STDIN );
- 				MGPMlogAdd( property, "installed ", portName,
- 					" removed from system:  no longer in ports tree:  see /usr/ports/MOVED", " ", " " );
- 			}
-diff -ruN ../0.3.9/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
---- ../0.3.9/libMGPM/src/MGPMrUpdate.c	Thu Nov 24 10:01:19 2005
-+++ ./libMGPM/src/MGPMrUpdate.c	Fri Nov 25 11:21:55 2005
-@@ -617,11 +617,11 @@
- 							/*
- 							 * set timeout default to Y
- 							 */
--							property->stdin = fopen( "/dev/stdin", "r" );
--							property->timeOut = 0;
--							signal( SIGALRM, MGPMrTimer );
- 							alarm( property->timeout );
--							answer	= getc( property->stdin );
-+							signal( SIGALRM, MGPMrTimer );
-+							property->STDIN = fopen( "/dev/stdin", "r" );
-+							property->timeOut = 0;
-+							answer	= getc( property->STDIN );
- 
- 							switch(answer)
- 							{
-@@ -631,24 +631,24 @@
- 								}
- 								case KEY_A:
- 								{
--									answer	= getc( property->stdin );
-+									answer	= getc( property->STDIN );
- 									property->autoConflicts	= 1;
- 									break;
- 								}
- 								case KEY_a:
- 								{
- 									property->autoConflicts	= 1;
--									answer	= getc( property->stdin );
-+									answer	= getc( property->STDIN );
- 									break;
- 								}
- 								case KEY_Y:
- 								{
--									answer	= getc( property->stdin );
-+									answer	= getc( property->STDIN );
- 									break;
- 								}
- 								case KEY_y:
- 								{
--									answer	= getc( property->stdin );
-+									answer	= getc( property->STDIN );
- 									break;
- 								}
- 								case KEY_N:
-@@ -656,7 +656,7 @@
- 									fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
- 									while( fflush( stdout ) );
- 									MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
--									answer	= getc( property->stdin );
-+									answer	= getc( property->STDIN );
- 									rCleanUp( property, &localProperty );
- 									return(0);
- 								}
-@@ -665,7 +665,7 @@
- 									fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
- 									while( fflush( stdout ) );
- 									MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
--									answer	= getc( property->stdin );
-+									answer	= getc( property->STDIN );
- 									rCleanUp( property, &localProperty );
- 									return(0);
- 								}
-@@ -680,7 +680,7 @@
- 									{
- 										fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
- 										while( fflush( stdout ) );
--										answer	= getc( property->stdin );
-+										answer	= getc( property->STDIN );
- 									}
- 								}
- 							}
-@@ -691,7 +691,7 @@
- 						if( property->timeOut  == 1 )
- 						{
- 							/*
--							 * reset alarm, reopen stdin after timeout
-+							 * reset alarm, reopen STDIN after timeout
- 							 */
- 							alarm(0);
- 							property->timeOut	= 0;
-@@ -701,7 +701,7 @@
- 						}
- 						else
- 						{
--							fclose( property->stdin );
-+							fclose( property->STDIN );
- 							MGPMlogAdd( property, "conflicting installed ", localProperty.installedPortName,
- 								" removed from system: conflicted with ", oldPortName, " " );
- 						}
-@@ -1249,12 +1249,12 @@
- 	 * 5 second time delay
- 	 */
- /*
--	property->stdin = fopen( "/dev/stdin", "r" );
-+	property->STDIN = fopen( "/dev/STDIN", "r" );
- 	signal( SIGALRM, MGPMrTimer );
- 	alarm( 5 );
--	answer	= getc( property->stdin );
-+	answer	= getc( property->STDIN );
- 	alarm(0);
--	fclose( property->stdin );
-+	fclose( property->STDIN );
- */
- 	
- 	strcpy( localProperty.command, "cp /tmp/*.db " );
-diff -ruN ../0.3.9/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h
---- ../0.3.9/libMGPM/src/libMGPM.h	Fri Nov 25 05:50:16 2005
-+++ ./libMGPM/src/libMGPM.h	Fri Nov 25 10:38:39 2005
-@@ -139,7 +139,7 @@
- 	int	timeout;			/* default timeout in seconds */
- 	int	verbose;
- 	
--	FILE*	stdin;
-+	FILE*	STDIN;
- 	/*
- 	 * misc
- 	 */
diff -ruN portmanager/files/patch-0.3.9_2 portmanager-0.4.0/files/patch-0.3.9_2
--- portmanager/files/patch-0.3.9_2	Fri Nov 25 23:19:59 2005
+++ portmanager-0.4.0/files/patch-0.3.9_2	Wed Dec 31 16:00:00 1969
@@ -1,81 +0,0 @@
-diff -ruN ../0.3.9_1/libMGPM/src/MGPMrCommandLine.c ./libMGPM/src/MGPMrCommandLine.c
---- ../0.3.9_1/libMGPM/src/MGPMrCommandLine.c	Fri Nov 25 11:47:19 2005
-+++ ./libMGPM/src/MGPMrCommandLine.c	Fri Nov 25 18:58:23 2005
-@@ -96,6 +96,7 @@
- 	property.pristine		= 0;	/* 1 = run in pristine mode */
- 	property.resume			= 0;    /* 1 = portmanager updated itself, don't rebuild databases in -u -f mode */
- 	property.timeout		= 300;	/* default timeout in seconds */
-+	property.NoPkgtools		= 0;	/* 1 = pkgtools.conf or ruby not installed */
- 
- 	if( argv[2] && strcmp( "package-depends", argv[2] ) == 0 )
- 	{
-diff -ruN ../0.3.9_1/libMGPM/src/MGPMrReadConfigure.c ./libMGPM/src/MGPMrReadConfigure.c
---- ../0.3.9_1/libMGPM/src/MGPMrReadConfigure.c	Fri Nov 25 11:47:19 2005
-+++ ./libMGPM/src/MGPMrReadConfigure.c	Fri Nov 25 19:06:25 2005
-@@ -164,16 +164,27 @@
- 			strcat( command, "/pkgtools.db" );
- 			rReadConfigureAwkConfigure( property, configFileNameOld, command );
- 		}
-+		else
-+		{
-+			property->NoPkgtools	= 1;
-+		}
-+	}
-+	else
-+	{
-+		property->NoPkgtools	= 1;
- 	}
--
- 	strcpy( command, SHAREDIR );
- 	strcat( command, "/pkgtools.db" );
--	rReadConfigureCleanPkgToolsDb( property, command );
--	strcpy( command, "cat " );
--	strcat( command, SHAREDIR );
--	strcat( command, "/pkgtools.db >>" );
--	strcat( command, property->configDbFileName );
--	system( command );
-+
-+	if( property->NoPkgtools == 0 )
-+	{
-+		rReadConfigureCleanPkgToolsDb( property, command );
-+		strcpy( command, "cat " );
-+		strcat( command, SHAREDIR );
-+		strcat( command, "/pkgtools.db >>" );
-+		strcat( command, property->configDbFileName );
-+		system( command );
-+	}
- 
- /*
- 	strcpy( command, "rm -f " );
-@@ -441,8 +452,16 @@
- 
- 	value		= calloc( 0xfff, 1 );
- 
--	pkgtoolsDb	= MGdbOpen( pkgtoolsFileName );
--	pkgtoolsQTY	= MGdbGetRecordQty( pkgtoolsDb );
-+	if( MGrIfFileExist( pkgtoolsFileName ) )
-+	{
-+		pkgtoolsDb	= MGdbOpen( pkgtoolsFileName );
-+		pkgtoolsQTY	= MGdbGetRecordQty( pkgtoolsDb );
-+	}
-+	else
-+	{
-+		free( value );
-+		return( 1 );
-+	}
- 
- 	while( pkgtoolsIDX < pkgtoolsQTY )
- 	{
-diff -ruN ../0.3.9_1/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h
---- ../0.3.9_1/libMGPM/src/libMGPM.h	Fri Nov 25 11:47:19 2005
-+++ ./libMGPM/src/libMGPM.h	Fri Nov 25 18:57:49 2005
-@@ -146,7 +146,8 @@
- 	char*	configConfFileName;
- 	char*	helpFile;
- 	int	timeOut;			/* see MGPMrGetPortName.c */
--
-+	int	NoPkgtools;			/* 1 = pkgtools.conf or ruby not installed */
-+	
- 	/*
- 	 * data base structures/file names/fieldnames
- 	 */
diff -ruN portmanager/files/patch-0.3.9_3 portmanager-0.4.0/files/patch-0.3.9_3
--- portmanager/files/patch-0.3.9_3	Sun Nov 27 12:28:16 2005
+++ portmanager-0.4.0/files/patch-0.3.9_3	Wed Dec 31 16:00:00 1969
@@ -1,58 +0,0 @@
-diff -ruN ../0.3.9_2/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
---- ../0.3.9_2/libMGPM/src/MGPMrUpdate.c	Sat Nov 26 04:48:47 2005
-+++ ./libMGPM/src/MGPMrUpdate.c	Sat Nov 26 13:43:36 2005
-@@ -78,16 +78,6 @@
- 	int	installedPortsDbQTY				= 0;
- 
- 	structLocalProperty	localProperty;
--/*
--fprintf( stdout, "%s debug: oldPortDir-=>%s\n", id, oldPortDir );
--while( fflush( stdout ) );
--*/
--	if( ( strcmp( "/sysutils/portmanager", oldPortDir ) == 0 || strcmp( "/local/sysutils/portmanager", oldPortDir ) == 0 ) && property->forced )
--	{
--		fprintf( stdout, "skipping portmanager, will not self update in forced mode by design\n" );
--		while( fflush( stdout ) );
--		return( 0 );
--	}
- 
- 	property->optionsChanged	= 0;
- 
-@@ -118,6 +108,19 @@
- 	property->installedPortsDb		= MGdbOpen( property->installedPortsDbFileName );
- 	property->strikesDb			= MGdbOpen( property->strikesDbFileName );
- 
-+
-+	if( ( strcmp( "/sysutils/portmanager", oldPortDir ) == 0 || strcmp( "/local/sysutils/portmanager", oldPortDir ) == 0 ) && property->forced )
-+	{
-+		fprintf( stdout, "ignoring portmanager, will not self update in forced mode by design\n" );
-+		MGPMlogAdd( property, "ignoring portmanager ", "will not self update in forced mode by design",
-+								oldPortDir, "added to ignore.db", " " );
-+
-+		MGdbAdd( property->ignoreDb, oldPortDir, "skipping portmanager, will not self update in forced mode by design\n", NULL );
-+		while( fflush( stdout ) );
-+		rCleanUp( property, &localProperty );
-+		return( 0 );
-+	}
-+
- 	/* 
- 	 * test for bsd.ports.mk patch
- 	 */
-@@ -418,16 +421,7 @@
- 				 * options changed so need to purge oldPortDir's records
- 				 * from availablePortsDb and availableDependenciesDb
- 				 */
--				if( property->log )
--				{
--					strcpy( localProperty.command, "echo \"    options changed so returning " );
--					strcat( localProperty.command, oldPortName );
--					strcat( localProperty.command, " " );
--					strcat( localProperty.command, oldPortDir );
--					strcat( localProperty.command, " to out of date pool " );
--					strcat( localProperty.command, " \">> /var/log/portmanager.log" );
--					system( localProperty.command );
--				}
-+				MGPMlogAdd( property, "options changed so returning ", oldPortName, oldPortDir, " to out of date pool ", " " );
- 				property->optionsChanged	= 1;
- 				MGdbGoTop( property->availablePortsDb );
- 				while( MGdbSeek( property->availablePortsDb,
diff -ruN portmanager/files/patch-0.3.9_4 portmanager-0.4.0/files/patch-0.3.9_4
--- portmanager/files/patch-0.3.9_4	Sun Nov 27 22:20:16 2005
+++ portmanager-0.4.0/files/patch-0.3.9_4	Wed Dec 31 16:00:00 1969
@@ -1,574 +0,0 @@
-diff -ruN ../0.3.9_3/libMGPM/src/MGPMrController.c ./libMGPM/src/MGPMrController.c
---- ../0.3.9_3/libMGPM/src/MGPMrController.c	Sat Nov 26 14:30:47 2005
-+++ ./libMGPM/src/MGPMrController.c	Sun Nov 27 05:58:44 2005
-@@ -155,6 +155,7 @@
- 	{
- 		property->pristine	= 1;
- 	} 
-+
- 	MGdbDestroy( property->commandLineDb );
- 
- 	property->logFile	= MGPMlogCreate( property );
-diff -ruN ../0.3.9_3/libMGPM/src/MGPMrCreateInstalledDb.c ./libMGPM/src/MGPMrCreateInstalledDb.c
---- ../0.3.9_3/libMGPM/src/MGPMrCreateInstalledDb.c	Sat Nov 26 14:30:47 2005
-+++ ./libMGPM/src/MGPMrCreateInstalledDb.c	Sun Nov 27 07:06:23 2005
-@@ -167,6 +167,7 @@
- 	buffer		= (char*)calloc( bufferSize + 1, 1 );
- 	buffer[bufferSize-1]	= 0;
- 	fread(buffer, 1, bufferSize, contentsFileStream );
-+	fclose( contentsFileStream );
- 	buffPtr	= buffer;
- 	portDependencyName	= buffer;
- 	if( ( dependencyDbStream = fopen( property->dependencyPortsDbFileName, "a" ) ) == 0 )
-@@ -209,6 +210,7 @@
- 			fprintf( stdout, "pkg_delete -f %s/%s then find it in /usr/ports/{category}/{portname} and reinstall\n",
- 				PKGDBDIR, installedPortNamePtr );
- */
-+			fclose( dependencyDbStream );
- 			return( 1 );
- 		}
- 
-@@ -251,13 +253,6 @@
- 		return( 1 );
- 	}
- 	free(buffer);
--	if( fclose( contentsFileStream ) )
--	{
--		fprintf( stderr, "%s %s error: can not close  %s\n", id, PACKAGE_VERSION, contentsFileName );
--		perror( "system message" );
--		while( fflush( stderr ) );
--		return( 1 );
--	}
- 	free(contentsFileName);
- 	return(0);
- }
-@@ -292,14 +287,12 @@
- 	{
- 		if( property->pmMode	== 2 )
- 		{
--fprintf( stderr, "%s %s DEBUG(1): could not open %s pmMode-=>%d\n", id, PACKAGE_VERSION, contentsFileName, property->pmMode );
--perror( "system message" );
--while( fflush( stderr ) );
- 			free( contentsFileName );
- 			return(1);
- 		}
- 		fprintf( stderr, "%s %s error: could not open %s pmMode-=>%d\n", id, PACKAGE_VERSION, contentsFileName, property->pmMode );
- 		perror( "system message" );
-+		free( contentsFileName );
- 		while( fflush( stderr ) );
- 		return( 1 );
- 	}
-@@ -314,6 +307,7 @@
- 		fprintf( stderr, "\t\t%s installation is corrupt!\n", installedPortNamePtr );
- 		fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", installedPortNamePtr );
- 		while( fflush( stderr ) );
-+		free( buffer );
- 		return( 1 );
- 	}
- 
-@@ -324,6 +318,7 @@
- 		fprintf( stderr, "\t\t%s installation is corrupt!\n", installedPortNamePtr );
- 		fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", installedPortNamePtr );
- 		while( fflush( stderr ) );
-+		free( buffer );
- 		return( 1 );
- 	}
- 	portDirTemp[address-portDirTemp]	= 0;
-@@ -404,6 +399,8 @@
- 		fprintf( stderr, "\t\t%s installation is corrupt!\n", installedPortNamePtr );
- 		fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", installedPortNamePtr );
- 		while( fflush( stderr ) );
-+		free( buffer );
-+		free( contentsFileName );
- 		return( 1 );
- 	}
- 
-@@ -416,11 +413,12 @@
- 		fprintf( stderr, "\t\t%s installation is corrupt!\n", installedPortNamePtr );
- 		fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", installedPortNamePtr );
- 		while( fflush( stderr ) );
-+		free( buffer );
-+		free( contentsFileName );
- 		return( 1 );
- 	}
- 
- 	free( contentsFileName );
--
- 	free( buffer );
- 
- 	return( 0 );
-diff -ruN ../0.3.9_3/libMGPM/src/MGPMrGetPortName.c ./libMGPM/src/MGPMrGetPortName.c
---- ../0.3.9_3/libMGPM/src/MGPMrGetPortName.c	Sat Nov 26 14:30:47 2005
-+++ ./libMGPM/src/MGPMrGetPortName.c	Sun Nov 27 19:21:34 2005
-@@ -41,6 +41,7 @@
- 	char*	optionsPtr			= NULL;
- 	int	answer				= 0;
- 	int	bufferSize			= 0xffff;
-+	int	doubleBreak			= 0;
- 
- 	command		= (char*)calloc( bufferSize, 1 );
- 
-@@ -88,63 +89,72 @@
- 				signal( SIGALRM, MGPMrTimer );
- 				property->STDIN = fopen( "/dev/stdin", "r" );
- 				property->timeOut = 0;
--				answer	= getc( property->STDIN );
--				
--				switch(answer)
-+				doubleBreak	= 0;
-+				while( 1 == 1 )
- 				{
--					case KEY_ENTER:
-+					answer	= getc( property->STDIN );
-+					fclose( property->STDIN );
-+					switch(answer)
- 					{
--						break;
--					}
--					case KEY_A:
--					{
--						answer	= getc( property->STDIN );
--						property->autoMoved = 1;
--						break;
--					}
--					case KEY_a:
--					{
--						property->autoMoved = 1;
--						answer	= getc( property->STDIN );
--						break;
--					}
--					case KEY_Y:
--					{
--						answer	= getc( property->STDIN );
--						break;
--					}
--					case KEY_y:
--					{
--						answer	= getc( property->STDIN );
--						break;
--					}
--					case KEY_N:
--					{
--						answer	= getc( property->STDIN );
--						fprintf( stdout, "you will have to deal with this manually then, portmanager shutting down\n" );
--						while( fflush( stdout ) );
--						exit(0);
--					}
--					case KEY_n:
--					{
--						answer	= getc( property->STDIN );
--						fprintf( stdout, "you will have to deal with this manually then, portmanager shutting down\n" );
--						while( fflush( stdout ) );
--						exit(0);
--					}
--					default:
--					{
--						if( property->timeOut )
-+						case KEY_ENTER:
- 						{
--							fprintf( stdout, "5 minute timeout, defaulting to [Y]\n");
-+							doubleBreak	= 1;
-+							break;
-+						}
-+						case KEY_A:
-+						{
-+							property->autoMoved = 1;
-+							doubleBreak	= 1;
-+							break;
-+						}
-+						case KEY_a:
-+						{
-+							property->autoMoved = 1;
-+							doubleBreak	= 1;
-+							break;
-+						}
-+						case KEY_Y:
-+						{
-+							doubleBreak	= 1;
-+							break;
-+						}
-+						case KEY_y:
-+						{
-+							doubleBreak	= 1;
-+							break;
-+						}
-+						case KEY_N:
-+						{
-+							fprintf( stdout, "you will have to deal with this manually then, portmanager shutting down\n" );
- 							while( fflush( stdout ) );
-+							exit(0);
- 						}
--						else
-+						case KEY_n:
- 						{
--							fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
-+							fprintf( stdout, "you will have to deal with this manually then, portmanager shutting down\n" );
- 							while( fflush( stdout ) );
--							answer	= getc( property->STDIN );
-+							exit(0);
-+						}
-+						default:
-+						{
-+							if( property->timeOut )
-+							{
-+								fprintf( stdout, "5 minute timeout, defaulting to [Y]\n");
-+								while( fflush( stdout ) );
-+								doubleBreak	= 1;
-+								break;
-+							}
-+							else
-+							{
-+								property->STDIN = fopen( "/dev/stdin", "r" );
-+								fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
-+								while( fflush( stdout ) );
-+							}
- 						}
-+					}
-+					if( doubleBreak )
-+					{
-+						break;
- 					}
- 				}
- 			}
-diff -ruN ../0.3.9_3/libMGPM/src/MGPMrShowLeavesDelete.c ./libMGPM/src/MGPMrShowLeavesDelete.c
---- ../0.3.9_3/libMGPM/src/MGPMrShowLeavesDelete.c	Sat Nov 26 14:30:47 2005
-+++ ./libMGPM/src/MGPMrShowLeavesDelete.c	Sun Nov 27 20:42:14 2005
-@@ -42,10 +42,11 @@
- 	char*	leafPortDir		= NULL;
- 	char*	leafPortName		= NULL;
- 	char*	pkgDescFile		= NULL;
-+	int	answer			= 1;
- 	int	bufferSize		= 0xffff;
-+	int	doubleBreak		= 0;
- 	int	installedPortsDbIDX	= 0;
- 	int	installedPortsDbQTY	= 0;
--	int	key			= 1;
- 	
- 	command		= calloc( bufferSize, 1 );
- 	leafPortDir	= calloc( bufferSize, 1 );
-@@ -107,8 +108,10 @@
- 			installedPortsDbIDX++;
- 			continue;
- 		}
--		if( key != KEY_ENTER )
-+/*
-+		if( answer != KEY_ENTER )
- 		{
-+*/
- 			system( "clear" );
- 			fprintf( stdout,"%s\n", SINGLE_LINES );
- 			fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" );
-@@ -144,73 +147,87 @@
- 				system( command );
- 			}
- 			fprintf( stdout,"%s\n", SINGLE_LINES );
--			fprintf( stdout, "\n<SPACE><ENTER> to skip\n<X><ENTER> removes port\n<N><ENTER> *Nuke it*, removes distribution files\n\n" ); 
-+			fprintf( stdout, "\n<ENTER> to skip\n<X><ENTER> removes port\n<N><ENTER> *Nuke it*, removes distribution files\n\n" ); 
- 			fprintf( stdout,"%s\n", SINGLE_LINES );
-+/*
- 		}
--		key		= getc( stdin );
--		switch( key )
-+*/
-+		property->STDIN = fopen( "/dev/stdin", "r" );
-+		doubleBreak	= 0;
-+		while( 1 == 1 )
- 		{
--			case	KEY_ENTER:
--			{
--				continue;
-+			answer	= getc( property->STDIN );
-+			fclose( property->STDIN );
-+			switch(answer)
-+			{
-+				case	KEY_ENTER:
-+				{
-+					doubleBreak	= 1;
-+					MGdbAdd( property->ignoreDb, leafPortDir, "-slid <SPACE> skipped", NULL );
-+					fprintf( stdout, "Skipping %s\n\n", leafPortName );
-+					break;
-+				}
-+				case	KEY_n:
-+				{
-+					doubleBreak	= 1;
-+					/* nuke() */
-+					fprintf( stdout, "<n> Nuking %s\n\n", leafPortName );
-+					removePort( property, leafPortName, installedPortsDbIDX );
-+					nuke( leafPortDir );
-+					rebuildDb( property );
-+					installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
-+					installedPortsDbIDX	= 1;
-+					break;
-+				}
-+				case	KEY_N:
-+				{
-+					doubleBreak	= 1;
-+					/* nuke() */
-+					fprintf( stdout, "<N> Nuking %s\n\n", leafPortName );
-+					removePort( property, leafPortName, installedPortsDbIDX );
-+					nuke( leafPortDir );
-+					rebuildDb( property );
-+					installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
-+					installedPortsDbIDX	= 1;
-+					break;
-+				}
-+				case	KEY_x:
-+				{
-+					doubleBreak	= 1;
-+					/* delete() */
-+					fprintf( stdout, "<x> Removing %s\n\n", leafPortName );
-+					removePort( property, leafPortName, installedPortsDbIDX );
-+					rebuildDb( property );
-+					installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
-+					installedPortsDbIDX	= 1;
-+					break;
-+				}
-+				case	KEY_X:
-+				{
-+					doubleBreak	= 1;
-+					/* delete() */
-+					fprintf( stdout, "<X> Removing %s\n\n", leafPortName );
-+					removePort( property, leafPortName, installedPortsDbIDX );
-+					rebuildDb( property );
-+					installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
-+					installedPortsDbIDX	= 1;
-+					break;
-+				}
-+				default:
-+				{
-+					property->STDIN = fopen( "/dev/stdin", "r" );
-+					fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
-+					while( fflush( stdout ) );
-+				}
- 			}
--			case	KEY_SPACE:
-+			if( doubleBreak )
- 			{
--				MGdbAdd( property->ignoreDb, leafPortDir, "-slid <SPACE> skipped", NULL );
--				fprintf( stdout, "<SPACE> Skipping %s\n\n", leafPortName );
--				break;
--			}
--			case	KEY_n:
--			{
--				/* nuke() */
--				fprintf( stdout, "<n> Nuking %s\n\n", leafPortName );
--				removePort( property, leafPortName, installedPortsDbIDX );
--				nuke( leafPortDir );
--				rebuildDb( property );
--				installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
--				installedPortsDbIDX	= 1;
--				break;
--			}
--			case	KEY_N:
--			{
--				/* nuke() */
--				fprintf( stdout, "<N> Nuking %s\n\n", leafPortName );
--				removePort( property, leafPortName, installedPortsDbIDX );
--				nuke( leafPortDir );
--				rebuildDb( property );
--				installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
--				installedPortsDbIDX	= 1;
--				break;
--			}
--			case	KEY_x:
--			{
--				/* delete() */
--				fprintf( stdout, "<x> Removing %s\n\n", leafPortName );
--				removePort( property, leafPortName, installedPortsDbIDX );
--				rebuildDb( property );
--				installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
--				installedPortsDbIDX	= 1;
--				break;
--			}
--			case	KEY_X:
--			{
--				/* delete() */
--				fprintf( stdout, "<X> Removing %s\n\n", leafPortName );
--				removePort( property, leafPortName, installedPortsDbIDX );
--				rebuildDb( property );
--				installedPortsDbQTY	= MGdbGetRecordQty( property->installedPortsDb );
--				installedPortsDbIDX	= 1;
--				break;
--			}
--			default:
--			{
--				MGdbAdd( property->ignoreDb, leafPortDir, "-slid <DEFAULT> skipped", NULL );
--				fprintf( stdout, "Skipping %s\n\n", leafPortName );
- 				break;
- 			}
- 		}
- 		fprintf( stdout, "\n" );
- 		installedPortsDbIDX++;
-+
- 	}
- 	MGdbDestroy( property->availableDependenciesDb );
- 	MGdbDestroy( property->ignoreDb );
-diff -ruN ../0.3.9_3/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
---- ../0.3.9_3/libMGPM/src/MGPMrUpdate.c	Sat Nov 26 14:30:47 2005
-+++ ./libMGPM/src/MGPMrUpdate.c	Sun Nov 27 18:54:47 2005
-@@ -72,6 +72,7 @@
- 	int	availableDependenciesDbQTY			= 0;
- 	int	availablePortsDbIDX				= 0;
- 	int	bufferSize					= 0xffff;
-+	int	doubleBreak					= 0;
- 	int	errorCode					= 0;
- 	int	idx						= 0;
- 	int	installedPortsDbIDX				= 0;
-@@ -615,67 +616,77 @@
- 							signal( SIGALRM, MGPMrTimer );
- 							property->STDIN = fopen( "/dev/stdin", "r" );
- 							property->timeOut = 0;
--							answer	= getc( property->STDIN );
--
--							switch(answer)
-+							doubleBreak	= 0;
-+							while( 1 == 1 )
- 							{
--								case KEY_ENTER:
--								{
--									break;
--								}
--								case KEY_A:
--								{
--									answer	= getc( property->STDIN );
--									property->autoConflicts	= 1;
--									break;
--								}
--								case KEY_a:
--								{
--									property->autoConflicts	= 1;
--									answer	= getc( property->STDIN );
--									break;
--								}
--								case KEY_Y:
--								{
--									answer	= getc( property->STDIN );
--									break;
--								}
--								case KEY_y:
--								{
--									answer	= getc( property->STDIN );
--									break;
--								}
--								case KEY_N:
--								{
--									fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
--									while( fflush( stdout ) );
--									MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
--									answer	= getc( property->STDIN );
--									rCleanUp( property, &localProperty );
--									return(0);
--								}
--								case KEY_n:
--								{
--									fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
--									while( fflush( stdout ) );
--									MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
--									answer	= getc( property->STDIN );
--									rCleanUp( property, &localProperty );
--									return(0);
--								}
--								default:
-+								answer	= getc( property->STDIN );
-+								fclose( property->STDIN );
-+								switch(answer)
- 								{
--									if( property->timeOut )
-+									case KEY_ENTER:
-+									{
-+										doubleBreak	= 1;
-+										break;
-+									}
-+									case KEY_A:
-+									{
-+										doubleBreak	= 1;
-+										property->autoConflicts	= 1;
-+										break;
-+									}
-+									case KEY_a:
- 									{
--										fprintf( stdout, "5 minute timeout, defaulting to [Y]\n");
-+										doubleBreak	= 1;
-+										property->autoConflicts	= 1;
-+										break;
-+									}
-+									case KEY_Y:
-+									{
-+										doubleBreak	= 1;
-+										break;
-+									}
-+									case KEY_y:
-+									{
-+										doubleBreak	= 1;
-+										break;
-+									}
-+									case KEY_N:
-+									{
-+										fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
- 										while( fflush( stdout ) );
-+										MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
-+										rCleanUp( property, &localProperty );
-+										return(0);
- 									}
--									else
-+									case KEY_n:
- 									{
--										fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
-+										fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
- 										while( fflush( stdout ) );
--										answer	= getc( property->STDIN );
-+										MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
-+										rCleanUp( property, &localProperty );
-+										return(0);
-+									}
-+									default:
-+									{
-+										if( property->timeOut )
-+										{
-+											fprintf( stdout, "5 minute timeout, defaulting to [Y]\n");
-+											while( fflush( stdout ) );
-+											doubleBreak	= 1;
-+											break;
-+										}
-+										else
-+										{
-+											property->STDIN = fopen( "/dev/stdin", "r" );
-+											fprintf( stdout, "Invalid option. Please enter either Y to upgrade or N\n");
-+											while( fflush( stdout ) );
-+										}
- 									}
-+									
-+								}
-+								if( doubleBreak )
-+								{
-+									break;
- 								}
- 							}
- 						}
-@@ -695,7 +706,6 @@
- 						}
- 						else
- 						{
--							fclose( property->STDIN );
- 							MGPMlogAdd( property, "conflicting installed ", localProperty.installedPortName,
- 								" removed from system: conflicted with ", oldPortName, " " );
- 						}
-@@ -1573,17 +1583,7 @@
- 		strcpy( comment, "port marked " );
- 		strcat( comment, brokeCheckType );
- 		MGdbAdd( property->ignoreDb, oldPortDir, comment, NULL );
--		if( property->log )
--		{
--			strcpy( command, "echo \"      " );
--			strcat( command, oldPortName );
--			strcat( command, " " );
--			strcat( command, oldPortDir );
--			strcat( command, " marked " );
--			strcat( command, brokeCheckType );
--			strcat( command, " port not installed/updated\" >> /var/log/portmanager.log" );
--			system( command );
--		}
-+		MGPMlogAdd( property, oldPortName, oldPortDir, " marked ", brokeCheckType, " port not installed/updated" );
- 		pclose( pHandle );
- 		free( buffer );	
- 		free( command );
diff -ruN portmanager/files/patch-0.3.9_5 portmanager-0.4.0/files/patch-0.3.9_5
--- portmanager/files/patch-0.3.9_5	Tue Nov 29 07:18:28 2005
+++ portmanager-0.4.0/files/patch-0.3.9_5	Wed Dec 31 16:00:00 1969
@@ -1,232 +0,0 @@
-diff -ruN ../0.3.9_4/libMGPM/src/MGPMrController.c ./libMGPM/src/MGPMrController.c
---- ../0.3.9_4/libMGPM/src/MGPMrController.c	Sun Nov 27 21:47:15 2005
-+++ ./libMGPM/src/MGPMrController.c	Tue Nov 29 03:03:01 2005
-@@ -163,7 +163,7 @@
- 	/*
- 	 * Need to check configDb for ignored ports and add them to ignoreDb here
- 	 */
--	MGPMrReadConfigure( property );
-+	MGPMrReadConfigure( property, " " );
- 
- 	while( fflush( stdout ) );
- 	if( property->buildDependsAreLeaves )
-@@ -180,7 +180,7 @@
- 	{
- 		if( property->resume == 0 ) /* skip this if portmanager has upgraded/rebuilt its self */
- 		{
--			MGPMrReadConfigure( property );
-+			MGPMrReadConfigure( property, " " );
- 			if( ( errorCode	= MGPMrCreateAllUpdateStatusDb( property ) ) )
- 			{
- 				fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION,
-@@ -241,7 +241,7 @@
- 		property->pmMode	= 1; /* fake like we are in single port update */
- 		if( property->resume == 0 )
- 		{
--			MGPMrReadConfigure( property );
-+			MGPMrReadConfigure( property, " " );
- 			if( ( errorCode	= MGPMrCreateAllUpdateStatusDb( property ) ) )
- 			{
- 				fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION,
-@@ -284,7 +284,7 @@
- 		 */
- 		if( property->resume == 0 ) /* skip this if --resume  */
- 		{
--			MGPMrReadConfigure( property );
-+			MGPMrReadConfigure( property, " " );
- 			if( ( errorCode	= MGPMrSinglePortCreateStatusDb( property, path ) ) )
- 			{
- 				fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrSinglePortCreateStatusDb", errorCode );
-@@ -296,7 +296,7 @@
- 		}
- 		while( 1 )
- 		{
--			MGPMrReadConfigure( property );
-+			MGPMrReadConfigure( property, " " );
- 			if( ( errorCode	= MGPMrStatus( property ) ) )
- 			{
- 				fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrStatus", errorCode );
-@@ -492,7 +492,7 @@
- 	property->pmMode	= 1; /* fake like we are in single port update */
- 	if( property->resume == 0 ) /* skip this if portmanager has upgraded/rebuilt its self */
- 	{
--		MGPMrReadConfigure( property );
-+		MGPMrReadConfigure( property, " " );
- 		if( ( errorCode	= MGPMrCreateAllUpdateStatusDb( property ) ) )
- 		{
- 			fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION,
-@@ -502,7 +502,7 @@
- 	}
- 	while( 1 )
- 	{
--		MGPMrReadConfigure( property );
-+		MGPMrReadConfigure( property, " " );
- 		if( ( errorCode	= MGPMrStatus( property ) ) )
- 		{
- 			fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrStatus", errorCode );
-diff -ruN ../0.3.9_4/libMGPM/src/MGPMrPackageDepends.c ./libMGPM/src/MGPMrPackageDepends.c
---- ../0.3.9_4/libMGPM/src/MGPMrPackageDepends.c	Sun Nov 27 21:47:15 2005
-+++ ./libMGPM/src/MGPMrPackageDepends.c	Tue Nov 29 03:25:59 2005
-@@ -58,7 +58,7 @@
- 	
- 	pkgDb	= MGdbCreate( pkgDbFileName, "fieldPortName", "fieldPortDir", NULL );
- 
--	MGPMrReadConfigure( property );
-+	MGPMrReadConfigure( property, path );
- 
- 	if( ( errorCode	= MGPMrSinglePortCreateStatusDb( property, path ) ) )
- 	{
-@@ -101,11 +101,21 @@
- 			 * Gaurentee that we get the name from /var/db/pkg/{port name}
- 			 */
- 			MGdbGoTop( property->installedPortsDb );
--			strcpy( portName, MGdbSeek( property->installedPortsDb,
--							property->fieldInstalledPortsDbPortDir,
--							portDir,
--							property->fieldInstalledPortsDbPortName,
--							exact ) );	
-+			if( MGdbSeek( property->installedPortsDb,
-+					property->fieldInstalledPortsDbPortDir,
-+					portDir,
-+					property->fieldInstalledPortsDbPortName,
-+					exact ) )
-+			{
-+				strcpy( portName, MGdbGet( property->installedPortsDb,
-+							MGdbGetRecno( property->installedPortsDb ) - 1,
-+							property->fieldInstalledPortsDbPortName ) );	
-+			}
-+			else
-+			{
-+				continue;
-+			}
-+			
- 			/*
- 			 * Below is to prevent dupes instead of just fprinting portName & portDir
- 			 */
-diff -ruN ../0.3.9_4/libMGPM/src/MGPMrReadConfigure.c ./libMGPM/src/MGPMrReadConfigure.c
---- ../0.3.9_4/libMGPM/src/MGPMrReadConfigure.c	Sun Nov 27 21:47:15 2005
-+++ ./libMGPM/src/MGPMrReadConfigure.c	Tue Nov 29 03:26:30 2005
-@@ -56,7 +56,7 @@
- int	rReadConfigureMergeRecords( structProperty* property, char* configDbFileName );
- int	rReadConfigureParse( structProperty* property, char* configDbFileName, int flags );
- 
--int	MGPMrReadConfigure( structProperty* property )
-+int	MGPMrReadConfigure( structProperty* property, char* newPortDir )
- {
- 	FILE*		fHandle			= NULL;
- 	FILE*		pHandle			= NULL;
-@@ -130,6 +130,17 @@
- 	}
- 
- 	rReadConfigureAwkConfigure( property, property->configConfFileName,  property->configDbFileName );
-+
-+	/*
-+	 * Create a record for port that isn't installed yet if portmanager
-+	 * is being used to add a new port
-+	 */
-+	if( strlen( newPortDir ) > 1 )
-+	{
-+		configDb	= MGdbOpen( property->configDbFileName );
-+		MGdbAdd( configDb, newPortDir, " ", NULL );
-+		MGdbDestroy( configDb );
-+	}
- 
- 	/*
- 	 * Is ruby installed?
-diff -ruN ../0.3.9_4/libMGPM/src/MGPMrStatus.c ./libMGPM/src/MGPMrStatus.c
---- ../0.3.9_4/libMGPM/src/MGPMrStatus.c	Sun Nov 27 21:47:15 2005
-+++ ./libMGPM/src/MGPMrStatus.c	Mon Nov 28 14:00:00 2005
-@@ -328,13 +328,35 @@
- 					availablePortsDbPortDirPtr ); 
- 				while( fflush( stdout ) );
- 
--				MGdbAdd( property->oldPortsDb,
--					availablePortsDbPortDirPtr,
--					availablePortsDbPortNamePtr,
--					"MISSING",
--					availablePortsDbPortNamePtr,
--					availablePortsDbPortDirPtr,
--					NULL );
-+				MGdbGoTop( property->availableDependenciesDb );
-+				if( MGdbSeek( property->availableDependenciesDb,
-+						property->fieldAvailableDependenciesDbDependencyDir,
-+						availablePortsDbPortDirPtr,
-+						property->fieldAvailableDependenciesDbDependencyDir,
-+						exact ) )
-+				{
-+					MGdbAdd( property->oldPortsDb,
-+						availablePortsDbPortDirPtr,
-+						availablePortsDbPortNamePtr,
-+						"MISSING dependency of",
-+						MGdbGet( property->availableDependenciesDb,
-+							MGdbGetRecno( property->availableDependenciesDb ) - 1,
-+							property->fieldAvailableDependenciesDbPortName ),
-+						MGdbGet( property->availableDependenciesDb,
-+							MGdbGetRecno( property->availableDependenciesDb ) - 1,
-+							property->fieldAvailableDependenciesDbPortDir ),
-+						NULL );
-+				}
-+				else
-+				{
-+					MGdbAdd( property->oldPortsDb,
-+						availablePortsDbPortDirPtr,
-+						availablePortsDbPortNamePtr,
-+						"MISSING",
-+						availablePortsDbPortNamePtr,
-+						availablePortsDbPortDirPtr,
-+						NULL );
-+				}
- 			}
- 		}
- 		availablePortsDbIDX++;
-diff -ruN ../0.3.9_4/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
---- ../0.3.9_4/libMGPM/src/MGPMrUpdate.c	Sun Nov 27 21:47:15 2005
-+++ ./libMGPM/src/MGPMrUpdate.c	Mon Nov 28 08:50:05 2005
-@@ -652,16 +652,32 @@
- 									}
- 									case KEY_N:
- 									{
--										fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
-+										fprintf( stdout,
-+											"\nAdding  %s %s conflicts with installed port %s added to ignore list\n",
-+											oldPortName, oldPortDir, localProperty.installedPortName );
- 										while( fflush( stdout ) );
-+										MGPMlogAdd( property,
-+											oldPortName,
-+											oldPortDir,
-+											"conflicts with installed port ",
-+											localProperty.installedPortName,
-+											" added to ignore.db" );
- 										MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
- 										rCleanUp( property, &localProperty );
- 										return(0);
- 									}
- 									case KEY_n:
- 									{
--										fprintf( stdout, "\nAdding  %s %s to ignore list\n", oldPortName, oldPortDir );
-+										fprintf( stdout,
-+											"\nAdding  %s %s conflicts with installed port %s added to ignore list\n",
-+											oldPortName, oldPortDir, localProperty.installedPortName );
- 										while( fflush( stdout ) );
-+										MGPMlogAdd( property,
-+											oldPortName,
-+											oldPortDir,
-+											"conflicts with installed port ",
-+											localProperty.installedPortName,
-+											" added to ignore.db" );
- 										MGdbAdd( property->ignoreDb, oldPortDir, "conflicts with another port", NULL );
- 										rCleanUp( property, &localProperty );
- 										return(0);
-diff -ruN ../0.3.9_4/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h
---- ../0.3.9_4/libMGPM/src/libMGPM.h	Sun Nov 27 21:47:15 2005
-+++ ./libMGPM/src/libMGPM.h	Tue Nov 29 02:59:21 2005
-@@ -238,7 +238,7 @@
- int		MGPMrMissingDependencies( structProperty* property );
- int		MGPMrPackageDepends( structProperty* property , char* path );
- int		MGPMrParse( structProperty* property, char* availablePortName, char* availablePortDir, char* dependType, char* buffer, int* counterPtr );
--int		MGPMrReadConfigure( structProperty* property );
-+int		MGPMrReadConfigure( structProperty* property, char* newPortDir );
- int		MGPMrShowLeaves( structProperty* property );
- int		MGPMrShowLeavesDelete( structProperty* property );
- int		MGPMrSinglePortCreateStatusDb( structProperty* property, char* path );
-Binary files ../0.3.9_4/portmanager-0.3.10.tar.gz and ./portmanager-0.3.10.tar.gz differ
diff -ruN portmanager/files/patch-0.3.9_6 portmanager-0.4.0/files/patch-0.3.9_6
--- portmanager/files/patch-0.3.9_6	Sat Dec  3 13:56:37 2005
+++ portmanager-0.4.0/files/patch-0.3.9_6	Wed Dec 31 16:00:00 1969
@@ -1,143 +0,0 @@
-diff -ruN ../0.3.9_5/libMGPM/src/MGPMrController.c ./libMGPM/src/MGPMrController.c
---- ../0.3.9_5/libMGPM/src/MGPMrController.c	Tue Nov 29 18:31:42 2005
-+++ ./libMGPM/src/MGPMrController.c	Sat Dec  3 14:01:34 2005
-@@ -165,17 +165,6 @@
- 	 */
- 	MGPMrReadConfigure( property, " " );
- 
--	while( fflush( stdout ) );
--	if( property->buildDependsAreLeaves )
--	{
--		fprintf( stdout, "%s\n", SINGLE_LINES );
--		fprintf( stdout, "%s\n", "running in WITH_BUILD_DEPENDS_ARE_LEAVES mode" );
--		fprintf( stdout, "%s\n", "using this mode is not endorsed by author, if ports" );
--		fprintf( stdout, "%s\n", "fail building due to missing build dependencies" );
--		fprintf( stdout, "%s\n", "in sysutils/portmanager run \"make config\" and shut this mode off" );
--		fprintf( stdout, "%s\n", "then rebuild/reinstall portmanager before contacting author/maintainer" );
--		fprintf( stdout, "%s\n", DOUBLE_LINES );
--	}
- 	if( path && ( strcmp( path, "SHOWLEAVES" ) == 0 ) )
- 	{
- 		if( property->resume == 0 ) /* skip this if portmanager has upgraded/rebuilt its self */
-@@ -273,7 +262,21 @@
- 		 */
- 		if( argv[2] && strcmp( "package-depends", argv[2] ) == 0 )
- 		{
--			errorCode	= MGPMrPackageDepends( property, path );
-+			property->pmMode	= 2;
-+
-+			if( property->buildDependsAreLeaves && property->pmMode != 2 )
-+			{
-+				fprintf( stdout, "%s\n", SINGLE_LINES );
-+				fprintf( stdout, "%s\n", "running in WITH_BUILD_DEPENDS_ARE_LEAVES mode" );
-+				fprintf( stdout, "%s\n", "using this mode is not endorsed by author, if ports" );
-+				fprintf( stdout, "%s\n", "fail building due to missing build dependencies" );
-+				fprintf( stdout, "%s\n", "in sysutils/portmanager run \"make config\" and shut this mode off" );
-+				fprintf( stdout, "%s\n", "then rebuild/reinstall portmanager before contacting author/maintainer" );
-+				fprintf( stdout, "%s\n", DOUBLE_LINES );
-+				while( fflush( stdout ) );
-+			}
-+
-+			errorCode		= MGPMrPackageDepends( property, path );
- 			rControllerCleanUp( &localProperty );
- 			MGPMlogDestroy( property );
- 			return( 0 );
-diff -ruN ../0.3.9_5/libMGPM/src/MGPMrStatus.c ./libMGPM/src/MGPMrStatus.c
---- ../0.3.9_5/libMGPM/src/MGPMrStatus.c	Tue Nov 29 18:31:42 2005
-+++ ./libMGPM/src/MGPMrStatus.c	Fri Dec  2 12:06:43 2005
-@@ -305,7 +305,7 @@
- 						property->fieldInstalledPortsDbPortName ) );
- 
- 
--				fprintf( stdout, "%05d have:%-35s %-35s OLD avalable: %s\n",
-+				fprintf( stdout, "%05d have:%-35s %-35s OLD available: %s\n",
- 					counter,
- 			 		installedPortsDbPortName,
- 			 		installedPortsDbPortDir,
-diff -ruN ../0.3.9_5/portmanager/pkgtools-to-portmanager.rb ./portmanager/pkgtools-to-portmanager.rb
---- ../0.3.9_5/portmanager/pkgtools-to-portmanager.rb	Tue Nov 29 18:31:42 2005
-+++ ./portmanager/pkgtools-to-portmanager.rb	Sat Dec  3 12:53:50 2005
-@@ -27,6 +27,11 @@
- #
- #	jan
- #
-+#
-+# if ..  end added by patch provided by:
-+# Daniel Bye <dan at slightlystrange.org>
-+# fixes not reading pkgtools.conf args when in array format
-+#
- #!/usr/local/bin/ruby
- 
- require "pkgtools"
-@@ -35,7 +40,6 @@
- 
- load_config
- 
--
- # held packages
- 
- puts ""
-@@ -43,9 +47,10 @@
- puts ""
- 
- config_value(:HOLD_PKGS).each do |pkg|
--
--	puts "IGNORE|" + pkg + "|"
--
-+	if pkg.empty?
-+		pkg = " "
-+	end  
-+	puts pkg + "|" + "#{pkg}" + "|"
- end
- 
- 
-@@ -56,9 +61,10 @@
- puts ""
- 
- config_value(:BEFOREBUILD).each do |pkg|
--
--	puts "STOP|/" + pkg[0] + " " + pkg[1] + "|"
--
-+	if pkg[1].instance_of?(Array)
-+		pkg[1] = pkg[1].join(" ")
-+	end
-+	puts "STOP|/" + pkg[0] + " " + "#{pkg[1]}" + "|"
- end
- 
- # afterinstall becomes start
-@@ -68,24 +74,25 @@
- puts ""
- 
- config_value(:AFTERINSTALL).each do |pkg|
--
--	puts "START|/" + pkg[0] + " " + pkg[1] + "|"
--
-+	if pkg[1].instance_of?(Array)
-+		pkg[1] = pkg[1].join(" ")
-+	end
-+	puts "START|/" + pkg[0] + " " + "#{pkg[1]}" + "|"
- end
- 
- # package options.
- 
--
- puts ""
- puts "# Package options from MAKE_ARGS"
- puts "# Note: pkgtools.conf will use the UNION of all matching lines"
- puts ""
- 
- config_value(:MAKE_ARGS).each do |pkg|
--
--##mcs mod##
--#	puts pkg[0] + "|" + pkg[1] + "|"
--#
--	puts pkg[0] + "|" + pkg[1] + " " + "|"
--
-+	if pkg[1].instance_of?(Array)
-+		pkg[1] = pkg[1].join(" ")
-+	end
-+	if pkg[1].empty?
-+		pkg[1] = " "
-+	end  
-+	puts pkg[0] + "|" + "#{pkg[1]}" + "|"
- end
diff -ruN portmanager/files/patch-0.3.9_7 portmanager-0.4.0/files/patch-0.3.9_7
--- portmanager/files/patch-0.3.9_7	Sat Dec  3 22:16:40 2005
+++ portmanager-0.4.0/files/patch-0.3.9_7	Wed Dec 31 16:00:00 1969
@@ -1,172 +0,0 @@
-diff -ruN ../0.3.9_6/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
---- ../0.3.9_6/libMGPM/src/MGPMrUpdate.c	Sat Dec  3 14:45:00 2005
-+++ ./libMGPM/src/MGPMrUpdate.c	Sat Dec  3 17:50:47 2005
-@@ -203,17 +203,20 @@
- 			property->fieldConfigDbKey,
- 			STOP,
- 			property->fieldConfigDbKey,
--			exact )	
--		&&
--		strncmp( oldPortDir, 
--			MGdbGet( property->configDb,
--				MGdbGetRecno( property->configDb ) - 1,
--				property->fieldConfigDbValue ),
--			strlen( oldPortDir ) ) ==  0 )
-+			exact )	)
- 	{
- 		stopPortDirPtr	= MGdbGet( property->configDb,  	
- 					MGdbGetRecno( property->configDb ) - 1,
- 					property->fieldConfigDbValue );
-+
-+		if( strncmp( oldPortDir, MGdbGet( property->configDb,
-+						MGdbGetRecno( property->configDb ) - 1,
-+						property->fieldConfigDbValue ),
-+						strlen( oldPortDir ) ) )
-+		{
-+			continue;
-+		}
-+
- 		if( stopPortDirPtr[strlen( oldPortDir )] == SPACE )
- 		{
- 			strncpy( localProperty.stopPortDir, stopPortDirPtr, strlen( oldPortDir ) );
-@@ -230,17 +233,21 @@
- 			property->fieldConfigDbKey,
- 			START,
- 			property->fieldConfigDbKey,
--			exact )	
--		&&
--		strncmp( oldPortDir, 
--			MGdbGet( property->configDb,
--				MGdbGetRecno( property->configDb ) - 1,
--				property->fieldConfigDbValue ),
--			strlen( oldPortDir ) ) ==  0 )
-+			exact ) )
-+
- 	{
- 		startPortDirPtr	= MGdbGet( property->configDb,  	
- 					MGdbGetRecno( property->configDb ) - 1,
- 					property->fieldConfigDbValue );
-+
-+		if( strncmp( oldPortDir, MGdbGet( property->configDb,
-+					MGdbGetRecno( property->configDb ) - 1,
-+					property->fieldConfigDbValue ),
-+					strlen( oldPortDir ) ) )
-+		{
-+			continue;
-+		}
-+
- 		if( startPortDirPtr[strlen( oldPortDir )] == SPACE )
- 		{
- 			strncpy( localProperty.startPortDir, startPortDirPtr, strlen( oldPortDir ) );
-@@ -1082,33 +1089,9 @@
-  				pHandle	= popen( localProperty.stopPortCmd, "r" );
- 				fread( localProperty.buffer, bufferSize, 1, pHandle );
- 				pclose( pHandle );
--/*
--				idx	= 0;
--				while( idx < bufferSize )
--				{
--					if( localProperty.buffer[idx] == LINEFEED 
--						||
--						localProperty.buffer[idx] == TAB 
--						|| 
--						localProperty.buffer[idx] == SPACE )
--					{
--						localProperty.buffer[idx]	= 0;
--						break;
--					}
--					idx++;
--				}
--*/
--				if( property->log )
--				{
--					strcpy( localProperty.command, "echo \"    stopping " );
--					strcat( localProperty.command, oldPortName );
--					strcat( localProperty.command, " " );
--					strcat( localProperty.command, oldPortDir );
--					strcat( localProperty.command, " execution by running " );
--					strcat( localProperty.command, localProperty.stopPortCmd );
--					strcat( localProperty.command, " \">> /var/log/portmanager.log" );
--					system( localProperty.command );
--				}
-+
-+				MGPMlogAdd( property, "stopping ", oldPortName, oldPortDir, " execution by running ", localProperty.stopPortCmd );
-+
- 				fprintf( stdout, "%s reply: %s\n", localProperty.stopPortCmd, localProperty.buffer );
- 				while( fflush( stdout ) );
- 			}
-@@ -1264,19 +1247,6 @@
- 			system( localProperty.command );
- 		}
- 	}
--
--	/*
--	 * 5 second time delay
--	 */
--/*
--	property->STDIN = fopen( "/dev/STDIN", "r" );
--	signal( SIGALRM, MGPMrTimer );
--	alarm( 5 );
--	answer	= getc( property->STDIN );
--	alarm(0);
--	fclose( property->STDIN );
--*/
--	
- 	strcpy( localProperty.command, "cp /tmp/*.db " );
- 	strcat( localProperty.command, SHAREDIR );
- 	fprintf( stdout, "restoring databases localProperty.command:%s\n", localProperty.command );
-@@ -1298,33 +1268,8 @@
-  		pHandle	= popen( localProperty.startPortCmd, "r" );
- 		fread( localProperty.buffer, bufferSize, 1, pHandle );
- 		pclose( pHandle );
--/*
--		idx	= 0;
--		while( idx < bufferSize )
--		{
--			if( localProperty.buffer[idx] == LINEFEED 
--				||
--				localProperty.buffer[idx] == TAB 
--				|| 
--				localProperty.buffer[idx] == SPACE )
--			{
--				localProperty.buffer[idx]	= 0;
--				break;
--			}
--			idx++;
--		}
--*/
--		if( property->log )
--		{
--			strcpy( localProperty.command, "echo \"    starting " );
--			strcat( localProperty.command, oldPortName );
--			strcat( localProperty.command, " " );
--			strcat( localProperty.command, oldPortDir );
--			strcat( localProperty.command, " execution by running " );
--			strcat( localProperty.command, localProperty.startPortCmd );
--			strcat( localProperty.command, " \">> /var/log/portmanager.log" );
--			system( localProperty.command );
--		}
-+
-+		MGPMlogAdd( property, "starting ", oldPortName, oldPortDir, " execution by running ", localProperty.startPortCmd );
- 
- 		fprintf( stdout, "%s reply: %s\n", localProperty.startPortCmd, localProperty.buffer );
- 		while( fflush( stdout ) );
-@@ -1362,8 +1307,6 @@
- 		fprintf( stdout, "restoring databases localProperty.command:%s\n", localProperty.command );
- 		while( fflush( stdout ) );
- 		system( localProperty.command );
--
--
- 	}
- 	else
- 	{
-@@ -1656,9 +1599,6 @@
- 	strcat( command, curDir );
- 
- 	strcat( command, "/work 2>&1" );
--/*
--	strcat( command, "/work" );
--*/
- 	fprintf( stdout, "===>  Cleaning for %s\n", portDir );	
- 	while( fflush( stdout ) );
- 
--- portmanager-0.4.0.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list