mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-26 00:55:14 +00:00
Update to 0.3.4_1
* Fixed seg fault in -slid on 6.0 machines * Fixed segfault when cvsup not set to delete and an installed port is removed from the ports tree PR: 88888 Submitted by: Michael C. Shultz <ringworm01@gmail.com> (maintainer)
This commit is contained in:
parent
4b5645b355
commit
3a78b7196d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=148054
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= portmanager
|
||||
PORTVERSION= 0.3.4
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= http://portmanager.sunsite.dk/distfiles/ \
|
||||
${MASTER_SITE_SOURCEFORGE}
|
||||
|
830
ports-mgmt/portmanager/files/patch-0.3.4_1
Normal file
830
ports-mgmt/portmanager/files/patch-0.3.4_1
Normal file
@ -0,0 +1,830 @@
|
||||
diff -ruN ../0.3.4/externVars.h.in ./externVars.h.in
|
||||
--- ../0.3.4/externVars.h.in Fri Nov 11 06:31:14 2005
|
||||
+++ ./externVars.h.in Fri Nov 11 19:38:50 2005
|
||||
@@ -78,13 +78,13 @@
|
||||
#define PACKAGE_NAME "portmanager"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
-#define PACKAGE_STRING "portmanager 0.3.4"
|
||||
+#define PACKAGE_STRING "portmanager 0.3.5"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "portmanager"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
-#define PACKAGE_VERSION "0.3.4"
|
||||
+#define PACKAGE_VERSION "0.3.5"
|
||||
|
||||
/* location of ports registry, default is /var/db/pkg */
|
||||
#define PKGDBDIR "@PKGDBDIR@"
|
||||
diff -ruN ../0.3.4/libMG/src/MGdbAdd.c ./libMG/src/MGdbAdd.c
|
||||
--- ../0.3.4/libMG/src/MGdbAdd.c Mon Nov 7 16:46:00 2005
|
||||
+++ ./libMG/src/MGdbAdd.c Fri Nov 11 17:23:26 2005
|
||||
@@ -58,6 +58,14 @@
|
||||
{
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * prevent null data from being placed into record fields
|
||||
+ */
|
||||
+ if( strlen( paramPtr ) < 1 )
|
||||
+ {
|
||||
+ assert(0);
|
||||
+ }
|
||||
fprintf( dbFileStream, "%s%c", paramPtr, 0 );
|
||||
|
||||
/*
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrCreateAllUpdateStatusDb.c ./libMGPM/src/MGPMrCreateAllUpdateStatusDb.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrCreateAllUpdateStatusDb.c Thu Nov 10 16:12:52 2005
|
||||
+++ ./libMGPM/src/MGPMrCreateAllUpdateStatusDb.c Fri Nov 11 19:30:42 2005
|
||||
@@ -32,7 +32,6 @@
|
||||
int rrDependencyParse( structProperty* property, char* buffer, char* availablePortName, char* availablePortDir, char* dependType, int* counterPtr );
|
||||
int rrFillDependencies( structProperty* property, char* availablePortName, char* availablePortDir, int* counterPtr );
|
||||
int rrFindDepends( structProperty* property, char* availablePortDir, char* availablePortName, int* counterPtr );
|
||||
-int rrGetPortName( structProperty* property, char* portDir, char* portName );
|
||||
int rrParse( structProperty* property, char* availablePortName, char* availablePortDir, char* dependType, char* buffer, int* counterPtr );
|
||||
|
||||
int MGPMrCreateAllUpdateStatusDb( structProperty* property )
|
||||
@@ -116,7 +115,7 @@
|
||||
strcpy( availablePortDir, installedPortsDbPortDirPtr );
|
||||
if( ( errorCode = rrFindDepends( property, availablePortDir, availablePortName, counterPtr ) ) == 100 )
|
||||
{
|
||||
- MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
+ property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
installedPortsDbQTY--;
|
||||
}
|
||||
installedPortsDbIDX++;
|
||||
@@ -137,10 +136,10 @@
|
||||
int errorCode = 0;
|
||||
int availablePortsDbQTY = 0;
|
||||
|
||||
- if( ( errorCode = rrGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
+ if( ( errorCode = MGPMrGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
{
|
||||
/*
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "rrGetPortName", errorCode );
|
||||
+ fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrGetPortName", errorCode );
|
||||
*/
|
||||
return( 100 );
|
||||
}
|
||||
@@ -174,12 +173,12 @@
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
-int rrGetPortName( structProperty* property, char* portDir, char* portName )
|
||||
+int MGPMrGetPortName( structProperty* property, char* portDir, char* portName )
|
||||
{
|
||||
- DIR* dirStream = NULL;
|
||||
+ FILE* fileStream = NULL;
|
||||
FILE* makeStream = NULL;
|
||||
char exact[] = "exact";
|
||||
- char id[] = "rrGetPortName";
|
||||
+ char id[] = "MGPMrGetPortName";
|
||||
char* availablePortsDbPortNamePtr = NULL;
|
||||
char* charPtr = NULL;
|
||||
char* command = NULL;
|
||||
@@ -195,22 +194,27 @@
|
||||
|
||||
if( availablePortsDbPortNamePtr == NULL )
|
||||
{
|
||||
- /*
|
||||
- * see if this port has anything special in configDb
|
||||
- */
|
||||
- MGdbGoTop( property->configDb );
|
||||
- optionsPtr = MGdbSeek( property->configDb, property->fieldConfigDbKey, portDir, property->fieldConfigDbValue, exact );
|
||||
+ MGdbGoTop( property->installedPortsDb );
|
||||
+ if( MGdbSeek( property->installedPortsDb,
|
||||
+ property->fieldInstalledPortsDbPortDir,
|
||||
+ portDir,
|
||||
+ property->fieldInstalledPortsDbPortName,
|
||||
+ exact ) )
|
||||
+ {
|
||||
+ strcpy( portName, MGdbGet( property->installedPortsDb,
|
||||
+ MGdbGetRecno( property->installedPortsDb ) - 1,
|
||||
+ property->fieldInstalledPortsDbPortName ) );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ portName[0] = 0;
|
||||
+ }
|
||||
strcpy( command, PORTSDIR );
|
||||
strcat( command, portDir );
|
||||
- dirStream = opendir( command );
|
||||
- if( dirStream == 0 ) /* bad dir */
|
||||
+ strcat( command, "/Makefile" );
|
||||
+ fileStream = fopen( command, "r" );
|
||||
+ if( fileStream == NULL || ( MGrFileSize( command ) < 10 ) ) /* no or empty Makefile */
|
||||
{
|
||||
- MGdbGoTop( property->installedPortsDb );
|
||||
- strcpy( portName, MGdbSeek( property->installedPortsDb,
|
||||
- property->fieldInstalledPortsDbPortDir,
|
||||
- portDir,
|
||||
- property->fieldInstalledPortsDbPortName,
|
||||
- exact ) );
|
||||
fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
fprintf( stdout,
|
||||
"%s %s is no longer in the ports collection, see /usr/ports/MOVED\nthis port must be removed for portmanager to continue\nis it OK to remove %s from your system? (yes/no/auto yes to all) [y/n/a] [y]\n",
|
||||
@@ -275,16 +279,30 @@
|
||||
strcpy( command, "pkg_delete -f " );
|
||||
strcat( command, portName );
|
||||
fprintf( stdout,"%s\n", command );
|
||||
- fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
while( fflush( stdout ) );
|
||||
system( command );
|
||||
+
|
||||
+ strcpy( command, "rm -r " );
|
||||
+ strcat( command, PORTSDIR );
|
||||
+ strcat( command, portDir );
|
||||
+ fprintf( stdout, "executing: %s\n", command );
|
||||
+ while( fflush( stdout ) );
|
||||
+ system( command );
|
||||
+ fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
+
|
||||
free( command );
|
||||
return( 100 );
|
||||
}
|
||||
else
|
||||
{
|
||||
- closedir( dirStream );
|
||||
+ fclose( fileStream );
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * see if this port has anything special in configDb
|
||||
+ */
|
||||
+ MGdbGoTop( property->configDb );
|
||||
+ optionsPtr = MGdbSeek( property->configDb, property->fieldConfigDbKey, portDir, property->fieldConfigDbValue, exact );
|
||||
strcpy( command, "cd " );
|
||||
strcat( command, PORTSDIR );
|
||||
strcat( command, portDir );
|
||||
@@ -493,7 +511,7 @@
|
||||
{
|
||||
assert(0);
|
||||
}
|
||||
- rrGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
+ MGPMrGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
/*
|
||||
* add dependency to availableDependenciesDb may contain dupes
|
||||
*/
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrMakeDescribe.c ./libMGPM/src/MGPMrMakeDescribe.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrMakeDescribe.c Mon Nov 7 16:46:00 2005
|
||||
+++ ./libMGPM/src/MGPMrMakeDescribe.c Fri Nov 11 19:36:11 2005
|
||||
@@ -90,11 +90,7 @@
|
||||
if( MGdbSeek( property->cacheDb, property->fieldCacheDbPortDir, installedPortDir, property->fieldCacheDbPortDir, exact ) )
|
||||
{
|
||||
cacheIdx = MGdbGetRecno( property->cacheDb ) - 1;
|
||||
- if( ( errorCode = MGdbDelete( property->cacheDb, cacheIdx ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
+ property->cacheDb = MGdbDelete( property->cacheDb, cacheIdx );
|
||||
MGdbDestroy( property->cacheDb );
|
||||
free( strMakeFile );
|
||||
free( strMakeFileSize );
|
||||
@@ -135,11 +131,7 @@
|
||||
else
|
||||
{
|
||||
/* if here then Makefile time is wrong so delete the cache db record */
|
||||
- if( ( errorCode = MGdbDelete( property->cacheDb, cacheIdx ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
+ property->cacheDb = MGdbDelete( property->cacheDb, cacheIdx );
|
||||
cacheIdx = cacheQty;
|
||||
break;
|
||||
}
|
||||
@@ -147,11 +139,7 @@
|
||||
else
|
||||
{
|
||||
/* if here then Makefile size is wrong so delete the record */
|
||||
- if( ( errorCode = MGdbDelete( property->cacheDb, cacheIdx ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
+ property->cacheDb = MGdbDelete( property->cacheDb, cacheIdx );
|
||||
cacheIdx = cacheQty;
|
||||
break;
|
||||
}
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrShowLeavesDelete.c ./libMGPM/src/MGPMrShowLeavesDelete.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrShowLeavesDelete.c Thu Nov 10 19:38:55 2005
|
||||
+++ ./libMGPM/src/MGPMrShowLeavesDelete.c Fri Nov 11 19:18:14 2005
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <sgtty.h>
|
||||
|
||||
int nuke( char* leafPortDir );
|
||||
-int rebuildDb( structProperty* property, int* installedPortsDbQTY );
|
||||
+int rebuildDb( structProperty* property );
|
||||
int removePort( structProperty* property, char* leafPortName, int installedPortsDbIDX );
|
||||
|
||||
int MGPMrShowLeavesDelete( structProperty* property )
|
||||
@@ -42,8 +42,6 @@
|
||||
char* leafPortDir = NULL;
|
||||
char* leafPortName = NULL;
|
||||
char* pkgDescFile = NULL;
|
||||
- char* portDirPtr = NULL;
|
||||
- char* portTypePtr = NULL;
|
||||
int bufferSize = 0xffff;
|
||||
int installedPortsDbIDX = 0;
|
||||
int installedPortsDbQTY = 0;
|
||||
@@ -68,13 +66,6 @@
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
- if( ( property->dependencyPortsDb = MGdbOpen( property->dependencyPortsDbFileName ) ) == NULL )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->dependencyPortsDbFileName );
|
||||
- perror( "system" );
|
||||
- return( 1 );
|
||||
- }
|
||||
-
|
||||
if( ( property->availableDependenciesDb = MGdbOpen( property->availableDependenciesDbFileName ) ) == NULL )
|
||||
{
|
||||
fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->availableDependenciesDbFileName );
|
||||
@@ -104,145 +95,124 @@
|
||||
}
|
||||
|
||||
/*
|
||||
- * check for no run depends
|
||||
+ * check for no dependencies
|
||||
*/
|
||||
- MGdbGoTop( property->dependencyPortsDb );
|
||||
- portDirPtr = MGdbSeek( property->dependencyPortsDb,
|
||||
- property->fieldDependencyDbDependencyPortDir,
|
||||
- leafPortDir,
|
||||
- property->fieldDependencyDbDependencyPortDir,
|
||||
- exact );
|
||||
-
|
||||
- /*
|
||||
- * check for no build depends
|
||||
- */
|
||||
- if( !portDirPtr )
|
||||
+ MGdbGoTop( property->availableDependenciesDb );
|
||||
+ if( MGdbSeek( property->availableDependenciesDb,
|
||||
+ property->fieldAvailableDependenciesDbDependencyDir,
|
||||
+ leafPortDir,
|
||||
+ property->fieldAvailableDependenciesDbDependencyDir,
|
||||
+ exact ) )
|
||||
+ {
|
||||
+ installedPortsDbIDX++;
|
||||
+ continue;
|
||||
+ }
|
||||
+ if( key != KEY_ENTER )
|
||||
{
|
||||
- MGdbGoTop( property->availableDependenciesDb );
|
||||
- portTypePtr = MGdbSeek( property->availableDependenciesDb,
|
||||
- property->fieldAvailableDependenciesDbDependencyDir,
|
||||
- leafPortDir,
|
||||
- property->fieldAvailableDependenciesDbDependType,
|
||||
- exact );
|
||||
-
|
||||
- while( portTypePtr && strcmp( portTypePtr, "BUILD_DEPENDS" ) )
|
||||
- {
|
||||
- portTypePtr = MGdbSeek( property->availableDependenciesDb,
|
||||
- property->fieldAvailableDependenciesDbDependencyDir,
|
||||
- leafPortDir,
|
||||
- property->fieldAvailableDependenciesDbDependType,
|
||||
- exact );
|
||||
+ system( "clear" );
|
||||
+ fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
+ fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" );
|
||||
+ fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
+ fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" );
|
||||
+ fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" );
|
||||
+ if( property->buildDependsAreLeaves )
|
||||
+ {
|
||||
+ fprintf( stdout, "however, other ports may rely on these to build.\"\n" );
|
||||
+ }
|
||||
+ fprintf( stdout, "%s\n", SINGLE_LINES );
|
||||
+
|
||||
+ fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir );
|
||||
+ while( fflush( stdout ) );
|
||||
+
|
||||
+ strcpy( pkgDescFile, PORTSDIR );
|
||||
+ strcat( pkgDescFile, leafPortDir );
|
||||
+ strcat( pkgDescFile, "/pkg-descr" );
|
||||
+
|
||||
+ if( MGrIfFileExist( pkgDescFile ) )
|
||||
+ {
|
||||
+ strcpy( command, "cat " );
|
||||
+ strcat( command, pkgDescFile );
|
||||
+ system( command );
|
||||
+ fprintf( stdout, "\n" );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ strcpy( command, "grep COMMENT " );
|
||||
+ strcat( command, PORTSDIR );
|
||||
+ strcat( command, leafPortDir );
|
||||
+ strcat( command, "/Makefile" );
|
||||
+ 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,"%s\n", SINGLE_LINES );
|
||||
}
|
||||
-
|
||||
- if( !portTypePtr && !portDirPtr )
|
||||
+ key = getc( stdin );
|
||||
+ switch( key )
|
||||
{
|
||||
- if( key != KEY_ENTER )
|
||||
+ case KEY_ENTER:
|
||||
+ {
|
||||
+ continue;
|
||||
+ }
|
||||
+ case KEY_SPACE:
|
||||
+ {
|
||||
+ 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:
|
||||
{
|
||||
- system( "clear" );
|
||||
- fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
- fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" );
|
||||
- fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
- fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" );
|
||||
- fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" );
|
||||
- if( property->buildDependsAreLeaves )
|
||||
- {
|
||||
- fprintf( stdout, "however, other ports may rely on these to build.\"\n" );
|
||||
- }
|
||||
- fprintf( stdout, "%s\n", SINGLE_LINES );
|
||||
-
|
||||
- fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir );
|
||||
- while( fflush( stdout ) );
|
||||
-
|
||||
- strcpy( pkgDescFile, PORTSDIR );
|
||||
- strcat( pkgDescFile, leafPortDir );
|
||||
- strcat( pkgDescFile, "/pkg-descr" );
|
||||
-
|
||||
- if( MGrIfFileExist( pkgDescFile ) )
|
||||
- {
|
||||
- strcpy( command, "cat " );
|
||||
- strcat( command, pkgDescFile );
|
||||
- system( command );
|
||||
- fprintf( stdout, "\n" );
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- strcpy( command, "grep COMMENT " );
|
||||
- strcat( command, PORTSDIR );
|
||||
- strcat( command, leafPortDir );
|
||||
- strcat( command, "/Makefile" );
|
||||
- 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,"%s\n", SINGLE_LINES );
|
||||
+ /* delete() */
|
||||
+ fprintf( stdout, "<X> Removing %s\n\n", leafPortName );
|
||||
+ removePort( property, leafPortName, installedPortsDbIDX );
|
||||
+ rebuildDb( property );
|
||||
+ installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
+ installedPortsDbIDX = 1;
|
||||
+ break;
|
||||
}
|
||||
- key = getc( stdin );
|
||||
- switch( key )
|
||||
+ default:
|
||||
{
|
||||
- case KEY_ENTER:
|
||||
- {
|
||||
- continue;
|
||||
- }
|
||||
- case KEY_SPACE:
|
||||
- {
|
||||
- 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 );
|
||||
- break;
|
||||
- }
|
||||
- case KEY_N:
|
||||
- {
|
||||
- /* nuke() */
|
||||
- fprintf( stdout, "<N> Nuking %s\n\n", leafPortName );
|
||||
- removePort( property, leafPortName, installedPortsDbIDX );
|
||||
- nuke( leafPortDir );
|
||||
- rebuildDb( property, &installedPortsDbQTY );
|
||||
- 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 );
|
||||
- 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 );
|
||||
- installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
- installedPortsDbIDX = 1;
|
||||
- break;
|
||||
- }
|
||||
- default:
|
||||
- {
|
||||
- MGdbAdd( property->ignoreDb, leafPortDir, "-slid <DEFAULT> skipped", NULL );
|
||||
- fprintf( stdout, "Skipping %s\n\n", leafPortName );
|
||||
- break;
|
||||
- }
|
||||
+ MGdbAdd( property->ignoreDb, leafPortDir, "-slid <DEFAULT> skipped", NULL );
|
||||
+ fprintf( stdout, "Skipping %s\n\n", leafPortName );
|
||||
+ break;
|
||||
}
|
||||
- fprintf( stdout, "\n" );
|
||||
}
|
||||
+ fprintf( stdout, "\n" );
|
||||
installedPortsDbIDX++;
|
||||
}
|
||||
MGdbDestroy( property->availableDependenciesDb );
|
||||
- MGdbDestroy( property->dependencyPortsDb );
|
||||
MGdbDestroy( property->ignoreDb );
|
||||
MGdbDestroy( property->installedPortsDb );
|
||||
free( command );
|
||||
@@ -260,18 +230,7 @@
|
||||
|
||||
command = (char*)calloc( 0xffff, 1 );
|
||||
|
||||
- MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
-
|
||||
- MGdbGoTop( property->dependencyPortsDb );
|
||||
- while( MGdbSeek( property->dependencyPortsDb,
|
||||
- property->fieldDependencyDbPortName,
|
||||
- leafPortNamePtr,
|
||||
- property->fieldDependencyDbPortName,
|
||||
- exact ) )
|
||||
- {
|
||||
- MGdbDelete( property->dependencyPortsDb, MGdbGetRecno( property->dependencyPortsDb ) - 1 );
|
||||
- MGdbGoTop( property->dependencyPortsDb );
|
||||
- }
|
||||
+ property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
|
||||
MGdbGoTop( property->availableDependenciesDb );
|
||||
while( MGdbSeek( property->availableDependenciesDb,
|
||||
@@ -280,7 +239,8 @@
|
||||
property->fieldAvailableDependenciesDbPortName,
|
||||
exact ) )
|
||||
{
|
||||
- MGdbDelete( property->availableDependenciesDb, MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
+ property->availableDependenciesDb = MGdbDelete( property->availableDependenciesDb,
|
||||
+ MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
MGdbGoTop( property->availableDependenciesDb );
|
||||
}
|
||||
|
||||
@@ -312,7 +272,7 @@
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
-int rebuildDb( structProperty* property, int* installedPortsDbQTY )
|
||||
+int rebuildDb( structProperty* property )
|
||||
{
|
||||
char id[] = "rebuildDb";
|
||||
|
||||
@@ -321,7 +281,6 @@
|
||||
fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
while( fflush( stdout ) );
|
||||
|
||||
- MGdbDestroy( property->dependencyPortsDb );
|
||||
MGdbDestroy( property->installedPortsDb );
|
||||
if( MGPMrCreateInstalledDb( property ) )
|
||||
{
|
||||
@@ -335,12 +294,5 @@
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
- if( ( property->dependencyPortsDb = MGdbOpen( property->dependencyPortsDbFileName ) ) == NULL )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->dependencyPortsDbFileName );
|
||||
- perror( "system" );
|
||||
- return( 1 );
|
||||
- }
|
||||
- *installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
return( 0 );
|
||||
}
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrSinglePortCreateStatusDb.c ./libMGPM/src/MGPMrSinglePortCreateStatusDb.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrSinglePortCreateStatusDb.c Thu Nov 10 16:13:20 2005
|
||||
+++ ./libMGPM/src/MGPMrSinglePortCreateStatusDb.c Fri Nov 11 18:28:43 2005
|
||||
@@ -32,7 +32,7 @@
|
||||
int rSinglePortUpgrade( structProperty* property, int forced );
|
||||
int rDependencyParse( structProperty* property, char* buffer, char* availablePortName, char* availablePortDir, char* dependType, int* counterPtr );
|
||||
int rFillDependencies( structProperty* property, char* availablePortName, char* availablePortDir, int* counterPtr );
|
||||
-int rGetPortName( structProperty* property, char* portDir, char* portName );
|
||||
+int MGPMrGetPortName( structProperty* property, char* portDir, char* portName );
|
||||
int rParse( structProperty* property, char* availablePortName, char* availablePortDir, char* dependType, char* buffer, int* counterPtr );
|
||||
|
||||
int MGPMrSinglePortCreateStatusDb( structProperty* property, char* portDir )
|
||||
@@ -100,11 +100,12 @@
|
||||
|
||||
property->availableDependenciesDb = MGdbOpen( property->availableDependenciesDbFileName );
|
||||
property->configDb = MGdbOpen( property->configDbFileName );
|
||||
+ property->installedPortsDb = MGdbOpen( property->installedPortsDbFileName );
|
||||
}
|
||||
|
||||
- if( ( errorCode = rGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
+ if( ( errorCode = MGPMrGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
{
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "rGetPortName", errorCode );
|
||||
+ fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrGetPortName", errorCode );
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
@@ -148,6 +149,7 @@
|
||||
}
|
||||
if( property->optionsChanged == 0 ) /* set by MGPMrUpdate for example to indicate a ports's options just changed */
|
||||
{
|
||||
+ MGdbDestroy( property->installedPortsDb );
|
||||
MGdbDestroy( property->availablePortsDb );
|
||||
MGdbDestroy( property->availableDependenciesDb );
|
||||
MGdbDestroy( property->configDb );
|
||||
@@ -157,76 +159,6 @@
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
-int rGetPortName( structProperty* property, char* portDir, char* portName )
|
||||
-{
|
||||
- FILE* makeStream = NULL;
|
||||
- char exact[] = "exact";
|
||||
- char id[] = "rGetPortName";
|
||||
- char* availablePortsDbPortNamePtr = NULL;
|
||||
- char* charPtr = NULL;
|
||||
- char* command = NULL;
|
||||
- char* optionsPtr = NULL;
|
||||
- int bufferSize = 0xffff;
|
||||
-
|
||||
- command = (char*)calloc( bufferSize, 1 );
|
||||
-
|
||||
- MGdbGoTop( property->availablePortsDb );
|
||||
- availablePortsDbPortNamePtr = MGdbSeek( property->availablePortsDb, property->fieldAvailablePortsDbPortDir, portDir,
|
||||
- property->fieldAvailablePortsDbPortName, exact );
|
||||
-
|
||||
- if( availablePortsDbPortNamePtr == NULL )
|
||||
- {
|
||||
- /*
|
||||
- * see if this port has anything special in configDb
|
||||
- */
|
||||
- MGdbGoTop( property->configDb );
|
||||
- optionsPtr = MGdbSeek( property->configDb, property->fieldConfigDbKey, portDir, property->fieldConfigDbValue, exact );
|
||||
- strcpy( command, "cd " );
|
||||
- strcat( command, PORTSDIR );
|
||||
- strcat( command, portDir );
|
||||
- strcat( command, "; make " );
|
||||
- strcat( command, " -V PKGNAME " );
|
||||
- if( optionsPtr )
|
||||
- {
|
||||
- strcat( command, optionsPtr );
|
||||
- }
|
||||
- makeStream = popen( command, "r" );
|
||||
- if( makeStream == 0 )
|
||||
- {
|
||||
- fprintf( stdout, "%s error: reading make -V PKGNAME into availablePortName\n", id );
|
||||
- perror( "system message" );
|
||||
- return( 1 );
|
||||
- }
|
||||
- portName[0] = 0;
|
||||
- fread( portName, bufferSize-1, 1, makeStream );
|
||||
- if( portName == NULL )
|
||||
- {
|
||||
- fprintf( stdout, "%s error: reading make -V PKGNAME into availablePortName\n", id );
|
||||
- perror( "system message" );
|
||||
- return( 1 );
|
||||
- }
|
||||
- charPtr = portName;
|
||||
- while( charPtr < portName + (bufferSize-1) )
|
||||
- {
|
||||
- if( charPtr[0] == SPACE || charPtr[0] == TAB || charPtr[0] == LINEFEED || charPtr[0] == ':' )
|
||||
- {
|
||||
- charPtr[0] = 0;
|
||||
- break;
|
||||
- }
|
||||
- charPtr++;
|
||||
- }
|
||||
- pclose( makeStream );
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- MGdbGoTop( property->availablePortsDb );
|
||||
- strcpy( portName, MGdbSeek( property->availablePortsDb, property->fieldAvailablePortsDbPortDir, portDir,
|
||||
- property->fieldAvailablePortsDbPortName, exact ) );
|
||||
- }
|
||||
- free( command );
|
||||
- return( 0 );
|
||||
-}
|
||||
-
|
||||
int rFillDependencies( structProperty* property, char* availablePortName, char* availablePortDir, int* counterPtr )
|
||||
{
|
||||
char BUILD_DEPENDS[] = "BUILD_DEPENDS";
|
||||
@@ -382,7 +314,7 @@
|
||||
{
|
||||
assert(0);
|
||||
}
|
||||
- rGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
+ MGPMrGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
/*
|
||||
* add dependency to availableDependenciesDb may contain dupes
|
||||
*/
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrStatus.c ./libMGPM/src/MGPMrStatus.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrStatus.c Mon Nov 7 16:46:00 2005
|
||||
+++ ./libMGPM/src/MGPMrStatus.c Fri Nov 11 19:37:57 2005
|
||||
@@ -110,12 +110,7 @@
|
||||
/*
|
||||
* since installedPortName is no longer in ports collection need to delete record and restart
|
||||
*/
|
||||
- if( ( errorCode = MGdbDelete( property->installedPortsDb, installedPortsDbIDX ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
-
|
||||
+ property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
installedPortsDbIDX = 1;
|
||||
while( fflush( stdout ) );
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrUpdate.c Thu Nov 10 18:58:41 2005
|
||||
+++ ./libMGPM/src/MGPMrUpdate.c Fri Nov 11 19:34:03 2005
|
||||
@@ -461,7 +461,8 @@
|
||||
MGdbGetRecno( property->availableDependenciesDb ) - 1,
|
||||
property->fieldAvailableDependenciesDbDependencyName ) );
|
||||
while( fflush( stdout ) );
|
||||
- MGdbDelete( property->availableDependenciesDb, MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
+ property->availableDependenciesDb = MGdbDelete( property->availableDependenciesDb,
|
||||
+ MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
MGdbGoTop( property->availableDependenciesDb );
|
||||
}
|
||||
/*
|
||||
@@ -1521,7 +1522,7 @@
|
||||
strcat( curDir, "; make -V .CURDIR" );
|
||||
buffer[0] = 0;
|
||||
pHandle = popen( curDir, "r" );
|
||||
- fread( buffer, 255, 1, pHandle );
|
||||
+ fread( buffer, bufferSize, 1, pHandle );
|
||||
pclose( pHandle );
|
||||
idx = 0;
|
||||
while( idx < 255 )
|
||||
@@ -1535,18 +1536,21 @@
|
||||
}
|
||||
strcpy( curDir, buffer );
|
||||
|
||||
- strcpy( command, "rm -r " );
|
||||
+ strcpy( command, "/bin/rm -r " );
|
||||
strcat( command, workDir );
|
||||
strcat( command, curDir );
|
||||
+
|
||||
+ strcat( command, "/work 2>&1" );
|
||||
/*
|
||||
- strcat( command, "/work >/dev/null 2>&1" );
|
||||
+ strcat( command, "/work" );
|
||||
*/
|
||||
-strcat( command, "/work" );
|
||||
fprintf( stdout, "===> Cleaning for %s\n", portDir );
|
||||
-fprintf( stdout, " %s\n", command );
|
||||
while( fflush( stdout ) );
|
||||
- system( command );
|
||||
|
||||
+ buffer[0] = 0;
|
||||
+ pHandle = popen( command, "r" );
|
||||
+ fread( buffer, bufferSize, 1, pHandle );
|
||||
+ pclose( pHandle );
|
||||
free( buffer );
|
||||
free( command );
|
||||
free( curDir );
|
||||
diff -ruN ../0.3.4/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h
|
||||
--- ../0.3.4/libMGPM/src/libMGPM.h Thu Nov 10 15:19:26 2005
|
||||
+++ ./libMGPM/src/libMGPM.h Fri Nov 11 18:01:02 2005
|
||||
@@ -181,6 +181,7 @@
|
||||
|
||||
} structProperty;
|
||||
|
||||
+int MGPMrGetPortName( structProperty* property, char* portDir, char* portName ); /* located in MGPMrCreateAllUpdateStatusDb.c */
|
||||
int MGPMrBestOldPort( structProperty* property, char* oldPortDir, char* oldPortName );
|
||||
int MGPMrCleanUp( structProperty* property );
|
||||
int MGPMrCommandLine( int argc, char** argv );
|
||||
diff -ruN ../0.3.4/portmanager/pkgtools-to-portmanager.rb ./portmanager/pkgtools-to-portmanager.rb
|
||||
--- ../0.3.4/portmanager/pkgtools-to-portmanager.rb Wed Dec 31 16:00:00 1969
|
||||
+++ ./portmanager/pkgtools-to-portmanager.rb Fri Nov 11 20:54:26 2005
|
||||
@@ -0,0 +1,59 @@
|
||||
+#!/usr/local/bin/ruby
|
||||
+
|
||||
+require "pkgtools"
|
||||
+
|
||||
+puts "CATEGORY/PORT|OPTION=| # do not delete this line!"
|
||||
+
|
||||
+load_config
|
||||
+
|
||||
+
|
||||
+# held packages
|
||||
+
|
||||
+puts ""
|
||||
+puts "# Ignored packages from HOLD_PKGS"
|
||||
+puts ""
|
||||
+
|
||||
+config_value(:HOLD_PKGS).each do |pkg|
|
||||
+
|
||||
+ puts "IGNORE|" + pkg + "|"
|
||||
+
|
||||
+end
|
||||
+
|
||||
+
|
||||
+# beforebuild becomes stop
|
||||
+
|
||||
+puts ""
|
||||
+puts "# STOP entries come from BEFOREBUILD"
|
||||
+puts ""
|
||||
+
|
||||
+config_value(:BEFOREBUILD).each do |pkg|
|
||||
+
|
||||
+ puts "STOP|/" + pkg[0] + " " + pkg[1] + "|"
|
||||
+
|
||||
+end
|
||||
+
|
||||
+# afterinstall becomes start
|
||||
+
|
||||
+puts ""
|
||||
+puts "# START entries come from AFTERINSTALL"
|
||||
+puts ""
|
||||
+
|
||||
+config_value(:AFTERINSTALL).each do |pkg|
|
||||
+
|
||||
+ 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|
|
||||
+
|
||||
+ puts pkg[0] + "|" + pkg[1] + "|"
|
||||
+
|
||||
+end
|
||||
diff -ruN ../0.3.4/programmer-notes.txt ./programmer-notes.txt
|
||||
--- ../0.3.4/programmer-notes.txt Fri Nov 11 05:41:28 2005
|
||||
+++ ./programmer-notes.txt Fri Nov 11 20:56:23 2005
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
TODO list
|
||||
|
||||
+ add pkgtools-to-portmanager.rb to tarball
|
||||
+ move MGPMrGetPortName from MGPMrCreateAllUpdateStatusDb.c next new tarball to its own file
|
||||
move database files to /var/db/portmanager
|
||||
test in 6.0
|
||||
use signal to abort only current build?
|
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= portmanager
|
||||
PORTVERSION= 0.3.4
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= http://portmanager.sunsite.dk/distfiles/ \
|
||||
${MASTER_SITE_SOURCEFORGE}
|
||||
|
830
sysutils/portmanager/files/patch-0.3.4_1
Normal file
830
sysutils/portmanager/files/patch-0.3.4_1
Normal file
@ -0,0 +1,830 @@
|
||||
diff -ruN ../0.3.4/externVars.h.in ./externVars.h.in
|
||||
--- ../0.3.4/externVars.h.in Fri Nov 11 06:31:14 2005
|
||||
+++ ./externVars.h.in Fri Nov 11 19:38:50 2005
|
||||
@@ -78,13 +78,13 @@
|
||||
#define PACKAGE_NAME "portmanager"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
-#define PACKAGE_STRING "portmanager 0.3.4"
|
||||
+#define PACKAGE_STRING "portmanager 0.3.5"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "portmanager"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
-#define PACKAGE_VERSION "0.3.4"
|
||||
+#define PACKAGE_VERSION "0.3.5"
|
||||
|
||||
/* location of ports registry, default is /var/db/pkg */
|
||||
#define PKGDBDIR "@PKGDBDIR@"
|
||||
diff -ruN ../0.3.4/libMG/src/MGdbAdd.c ./libMG/src/MGdbAdd.c
|
||||
--- ../0.3.4/libMG/src/MGdbAdd.c Mon Nov 7 16:46:00 2005
|
||||
+++ ./libMG/src/MGdbAdd.c Fri Nov 11 17:23:26 2005
|
||||
@@ -58,6 +58,14 @@
|
||||
{
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * prevent null data from being placed into record fields
|
||||
+ */
|
||||
+ if( strlen( paramPtr ) < 1 )
|
||||
+ {
|
||||
+ assert(0);
|
||||
+ }
|
||||
fprintf( dbFileStream, "%s%c", paramPtr, 0 );
|
||||
|
||||
/*
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrCreateAllUpdateStatusDb.c ./libMGPM/src/MGPMrCreateAllUpdateStatusDb.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrCreateAllUpdateStatusDb.c Thu Nov 10 16:12:52 2005
|
||||
+++ ./libMGPM/src/MGPMrCreateAllUpdateStatusDb.c Fri Nov 11 19:30:42 2005
|
||||
@@ -32,7 +32,6 @@
|
||||
int rrDependencyParse( structProperty* property, char* buffer, char* availablePortName, char* availablePortDir, char* dependType, int* counterPtr );
|
||||
int rrFillDependencies( structProperty* property, char* availablePortName, char* availablePortDir, int* counterPtr );
|
||||
int rrFindDepends( structProperty* property, char* availablePortDir, char* availablePortName, int* counterPtr );
|
||||
-int rrGetPortName( structProperty* property, char* portDir, char* portName );
|
||||
int rrParse( structProperty* property, char* availablePortName, char* availablePortDir, char* dependType, char* buffer, int* counterPtr );
|
||||
|
||||
int MGPMrCreateAllUpdateStatusDb( structProperty* property )
|
||||
@@ -116,7 +115,7 @@
|
||||
strcpy( availablePortDir, installedPortsDbPortDirPtr );
|
||||
if( ( errorCode = rrFindDepends( property, availablePortDir, availablePortName, counterPtr ) ) == 100 )
|
||||
{
|
||||
- MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
+ property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
installedPortsDbQTY--;
|
||||
}
|
||||
installedPortsDbIDX++;
|
||||
@@ -137,10 +136,10 @@
|
||||
int errorCode = 0;
|
||||
int availablePortsDbQTY = 0;
|
||||
|
||||
- if( ( errorCode = rrGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
+ if( ( errorCode = MGPMrGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
{
|
||||
/*
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "rrGetPortName", errorCode );
|
||||
+ fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrGetPortName", errorCode );
|
||||
*/
|
||||
return( 100 );
|
||||
}
|
||||
@@ -174,12 +173,12 @@
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
-int rrGetPortName( structProperty* property, char* portDir, char* portName )
|
||||
+int MGPMrGetPortName( structProperty* property, char* portDir, char* portName )
|
||||
{
|
||||
- DIR* dirStream = NULL;
|
||||
+ FILE* fileStream = NULL;
|
||||
FILE* makeStream = NULL;
|
||||
char exact[] = "exact";
|
||||
- char id[] = "rrGetPortName";
|
||||
+ char id[] = "MGPMrGetPortName";
|
||||
char* availablePortsDbPortNamePtr = NULL;
|
||||
char* charPtr = NULL;
|
||||
char* command = NULL;
|
||||
@@ -195,22 +194,27 @@
|
||||
|
||||
if( availablePortsDbPortNamePtr == NULL )
|
||||
{
|
||||
- /*
|
||||
- * see if this port has anything special in configDb
|
||||
- */
|
||||
- MGdbGoTop( property->configDb );
|
||||
- optionsPtr = MGdbSeek( property->configDb, property->fieldConfigDbKey, portDir, property->fieldConfigDbValue, exact );
|
||||
+ MGdbGoTop( property->installedPortsDb );
|
||||
+ if( MGdbSeek( property->installedPortsDb,
|
||||
+ property->fieldInstalledPortsDbPortDir,
|
||||
+ portDir,
|
||||
+ property->fieldInstalledPortsDbPortName,
|
||||
+ exact ) )
|
||||
+ {
|
||||
+ strcpy( portName, MGdbGet( property->installedPortsDb,
|
||||
+ MGdbGetRecno( property->installedPortsDb ) - 1,
|
||||
+ property->fieldInstalledPortsDbPortName ) );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ portName[0] = 0;
|
||||
+ }
|
||||
strcpy( command, PORTSDIR );
|
||||
strcat( command, portDir );
|
||||
- dirStream = opendir( command );
|
||||
- if( dirStream == 0 ) /* bad dir */
|
||||
+ strcat( command, "/Makefile" );
|
||||
+ fileStream = fopen( command, "r" );
|
||||
+ if( fileStream == NULL || ( MGrFileSize( command ) < 10 ) ) /* no or empty Makefile */
|
||||
{
|
||||
- MGdbGoTop( property->installedPortsDb );
|
||||
- strcpy( portName, MGdbSeek( property->installedPortsDb,
|
||||
- property->fieldInstalledPortsDbPortDir,
|
||||
- portDir,
|
||||
- property->fieldInstalledPortsDbPortName,
|
||||
- exact ) );
|
||||
fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
fprintf( stdout,
|
||||
"%s %s is no longer in the ports collection, see /usr/ports/MOVED\nthis port must be removed for portmanager to continue\nis it OK to remove %s from your system? (yes/no/auto yes to all) [y/n/a] [y]\n",
|
||||
@@ -275,16 +279,30 @@
|
||||
strcpy( command, "pkg_delete -f " );
|
||||
strcat( command, portName );
|
||||
fprintf( stdout,"%s\n", command );
|
||||
- fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
while( fflush( stdout ) );
|
||||
system( command );
|
||||
+
|
||||
+ strcpy( command, "rm -r " );
|
||||
+ strcat( command, PORTSDIR );
|
||||
+ strcat( command, portDir );
|
||||
+ fprintf( stdout, "executing: %s\n", command );
|
||||
+ while( fflush( stdout ) );
|
||||
+ system( command );
|
||||
+ fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
+
|
||||
free( command );
|
||||
return( 100 );
|
||||
}
|
||||
else
|
||||
{
|
||||
- closedir( dirStream );
|
||||
+ fclose( fileStream );
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * see if this port has anything special in configDb
|
||||
+ */
|
||||
+ MGdbGoTop( property->configDb );
|
||||
+ optionsPtr = MGdbSeek( property->configDb, property->fieldConfigDbKey, portDir, property->fieldConfigDbValue, exact );
|
||||
strcpy( command, "cd " );
|
||||
strcat( command, PORTSDIR );
|
||||
strcat( command, portDir );
|
||||
@@ -493,7 +511,7 @@
|
||||
{
|
||||
assert(0);
|
||||
}
|
||||
- rrGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
+ MGPMrGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
/*
|
||||
* add dependency to availableDependenciesDb may contain dupes
|
||||
*/
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrMakeDescribe.c ./libMGPM/src/MGPMrMakeDescribe.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrMakeDescribe.c Mon Nov 7 16:46:00 2005
|
||||
+++ ./libMGPM/src/MGPMrMakeDescribe.c Fri Nov 11 19:36:11 2005
|
||||
@@ -90,11 +90,7 @@
|
||||
if( MGdbSeek( property->cacheDb, property->fieldCacheDbPortDir, installedPortDir, property->fieldCacheDbPortDir, exact ) )
|
||||
{
|
||||
cacheIdx = MGdbGetRecno( property->cacheDb ) - 1;
|
||||
- if( ( errorCode = MGdbDelete( property->cacheDb, cacheIdx ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
+ property->cacheDb = MGdbDelete( property->cacheDb, cacheIdx );
|
||||
MGdbDestroy( property->cacheDb );
|
||||
free( strMakeFile );
|
||||
free( strMakeFileSize );
|
||||
@@ -135,11 +131,7 @@
|
||||
else
|
||||
{
|
||||
/* if here then Makefile time is wrong so delete the cache db record */
|
||||
- if( ( errorCode = MGdbDelete( property->cacheDb, cacheIdx ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
+ property->cacheDb = MGdbDelete( property->cacheDb, cacheIdx );
|
||||
cacheIdx = cacheQty;
|
||||
break;
|
||||
}
|
||||
@@ -147,11 +139,7 @@
|
||||
else
|
||||
{
|
||||
/* if here then Makefile size is wrong so delete the record */
|
||||
- if( ( errorCode = MGdbDelete( property->cacheDb, cacheIdx ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
+ property->cacheDb = MGdbDelete( property->cacheDb, cacheIdx );
|
||||
cacheIdx = cacheQty;
|
||||
break;
|
||||
}
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrShowLeavesDelete.c ./libMGPM/src/MGPMrShowLeavesDelete.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrShowLeavesDelete.c Thu Nov 10 19:38:55 2005
|
||||
+++ ./libMGPM/src/MGPMrShowLeavesDelete.c Fri Nov 11 19:18:14 2005
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <sgtty.h>
|
||||
|
||||
int nuke( char* leafPortDir );
|
||||
-int rebuildDb( structProperty* property, int* installedPortsDbQTY );
|
||||
+int rebuildDb( structProperty* property );
|
||||
int removePort( structProperty* property, char* leafPortName, int installedPortsDbIDX );
|
||||
|
||||
int MGPMrShowLeavesDelete( structProperty* property )
|
||||
@@ -42,8 +42,6 @@
|
||||
char* leafPortDir = NULL;
|
||||
char* leafPortName = NULL;
|
||||
char* pkgDescFile = NULL;
|
||||
- char* portDirPtr = NULL;
|
||||
- char* portTypePtr = NULL;
|
||||
int bufferSize = 0xffff;
|
||||
int installedPortsDbIDX = 0;
|
||||
int installedPortsDbQTY = 0;
|
||||
@@ -68,13 +66,6 @@
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
- if( ( property->dependencyPortsDb = MGdbOpen( property->dependencyPortsDbFileName ) ) == NULL )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->dependencyPortsDbFileName );
|
||||
- perror( "system" );
|
||||
- return( 1 );
|
||||
- }
|
||||
-
|
||||
if( ( property->availableDependenciesDb = MGdbOpen( property->availableDependenciesDbFileName ) ) == NULL )
|
||||
{
|
||||
fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->availableDependenciesDbFileName );
|
||||
@@ -104,145 +95,124 @@
|
||||
}
|
||||
|
||||
/*
|
||||
- * check for no run depends
|
||||
+ * check for no dependencies
|
||||
*/
|
||||
- MGdbGoTop( property->dependencyPortsDb );
|
||||
- portDirPtr = MGdbSeek( property->dependencyPortsDb,
|
||||
- property->fieldDependencyDbDependencyPortDir,
|
||||
- leafPortDir,
|
||||
- property->fieldDependencyDbDependencyPortDir,
|
||||
- exact );
|
||||
-
|
||||
- /*
|
||||
- * check for no build depends
|
||||
- */
|
||||
- if( !portDirPtr )
|
||||
+ MGdbGoTop( property->availableDependenciesDb );
|
||||
+ if( MGdbSeek( property->availableDependenciesDb,
|
||||
+ property->fieldAvailableDependenciesDbDependencyDir,
|
||||
+ leafPortDir,
|
||||
+ property->fieldAvailableDependenciesDbDependencyDir,
|
||||
+ exact ) )
|
||||
+ {
|
||||
+ installedPortsDbIDX++;
|
||||
+ continue;
|
||||
+ }
|
||||
+ if( key != KEY_ENTER )
|
||||
{
|
||||
- MGdbGoTop( property->availableDependenciesDb );
|
||||
- portTypePtr = MGdbSeek( property->availableDependenciesDb,
|
||||
- property->fieldAvailableDependenciesDbDependencyDir,
|
||||
- leafPortDir,
|
||||
- property->fieldAvailableDependenciesDbDependType,
|
||||
- exact );
|
||||
-
|
||||
- while( portTypePtr && strcmp( portTypePtr, "BUILD_DEPENDS" ) )
|
||||
- {
|
||||
- portTypePtr = MGdbSeek( property->availableDependenciesDb,
|
||||
- property->fieldAvailableDependenciesDbDependencyDir,
|
||||
- leafPortDir,
|
||||
- property->fieldAvailableDependenciesDbDependType,
|
||||
- exact );
|
||||
+ system( "clear" );
|
||||
+ fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
+ fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" );
|
||||
+ fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
+ fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" );
|
||||
+ fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" );
|
||||
+ if( property->buildDependsAreLeaves )
|
||||
+ {
|
||||
+ fprintf( stdout, "however, other ports may rely on these to build.\"\n" );
|
||||
+ }
|
||||
+ fprintf( stdout, "%s\n", SINGLE_LINES );
|
||||
+
|
||||
+ fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir );
|
||||
+ while( fflush( stdout ) );
|
||||
+
|
||||
+ strcpy( pkgDescFile, PORTSDIR );
|
||||
+ strcat( pkgDescFile, leafPortDir );
|
||||
+ strcat( pkgDescFile, "/pkg-descr" );
|
||||
+
|
||||
+ if( MGrIfFileExist( pkgDescFile ) )
|
||||
+ {
|
||||
+ strcpy( command, "cat " );
|
||||
+ strcat( command, pkgDescFile );
|
||||
+ system( command );
|
||||
+ fprintf( stdout, "\n" );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ strcpy( command, "grep COMMENT " );
|
||||
+ strcat( command, PORTSDIR );
|
||||
+ strcat( command, leafPortDir );
|
||||
+ strcat( command, "/Makefile" );
|
||||
+ 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,"%s\n", SINGLE_LINES );
|
||||
}
|
||||
-
|
||||
- if( !portTypePtr && !portDirPtr )
|
||||
+ key = getc( stdin );
|
||||
+ switch( key )
|
||||
{
|
||||
- if( key != KEY_ENTER )
|
||||
+ case KEY_ENTER:
|
||||
+ {
|
||||
+ continue;
|
||||
+ }
|
||||
+ case KEY_SPACE:
|
||||
+ {
|
||||
+ 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:
|
||||
{
|
||||
- system( "clear" );
|
||||
- fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
- fprintf( stdout, "*** for safety run portmanager -u after using this feature for deletion ***\n" );
|
||||
- fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
- fprintf( stdout, "Ports with no ports depending on them AKA \"leaf ports.\"\n" );
|
||||
- fprintf( stdout, "These ports may be deinstalled because no other ports rely on them to run;\"\n" );
|
||||
- if( property->buildDependsAreLeaves )
|
||||
- {
|
||||
- fprintf( stdout, "however, other ports may rely on these to build.\"\n" );
|
||||
- }
|
||||
- fprintf( stdout, "%s\n", SINGLE_LINES );
|
||||
-
|
||||
- fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir );
|
||||
- while( fflush( stdout ) );
|
||||
-
|
||||
- strcpy( pkgDescFile, PORTSDIR );
|
||||
- strcat( pkgDescFile, leafPortDir );
|
||||
- strcat( pkgDescFile, "/pkg-descr" );
|
||||
-
|
||||
- if( MGrIfFileExist( pkgDescFile ) )
|
||||
- {
|
||||
- strcpy( command, "cat " );
|
||||
- strcat( command, pkgDescFile );
|
||||
- system( command );
|
||||
- fprintf( stdout, "\n" );
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- strcpy( command, "grep COMMENT " );
|
||||
- strcat( command, PORTSDIR );
|
||||
- strcat( command, leafPortDir );
|
||||
- strcat( command, "/Makefile" );
|
||||
- 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,"%s\n", SINGLE_LINES );
|
||||
+ /* delete() */
|
||||
+ fprintf( stdout, "<X> Removing %s\n\n", leafPortName );
|
||||
+ removePort( property, leafPortName, installedPortsDbIDX );
|
||||
+ rebuildDb( property );
|
||||
+ installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
+ installedPortsDbIDX = 1;
|
||||
+ break;
|
||||
}
|
||||
- key = getc( stdin );
|
||||
- switch( key )
|
||||
+ default:
|
||||
{
|
||||
- case KEY_ENTER:
|
||||
- {
|
||||
- continue;
|
||||
- }
|
||||
- case KEY_SPACE:
|
||||
- {
|
||||
- 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 );
|
||||
- break;
|
||||
- }
|
||||
- case KEY_N:
|
||||
- {
|
||||
- /* nuke() */
|
||||
- fprintf( stdout, "<N> Nuking %s\n\n", leafPortName );
|
||||
- removePort( property, leafPortName, installedPortsDbIDX );
|
||||
- nuke( leafPortDir );
|
||||
- rebuildDb( property, &installedPortsDbQTY );
|
||||
- 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 );
|
||||
- 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 );
|
||||
- installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
- installedPortsDbIDX = 1;
|
||||
- break;
|
||||
- }
|
||||
- default:
|
||||
- {
|
||||
- MGdbAdd( property->ignoreDb, leafPortDir, "-slid <DEFAULT> skipped", NULL );
|
||||
- fprintf( stdout, "Skipping %s\n\n", leafPortName );
|
||||
- break;
|
||||
- }
|
||||
+ MGdbAdd( property->ignoreDb, leafPortDir, "-slid <DEFAULT> skipped", NULL );
|
||||
+ fprintf( stdout, "Skipping %s\n\n", leafPortName );
|
||||
+ break;
|
||||
}
|
||||
- fprintf( stdout, "\n" );
|
||||
}
|
||||
+ fprintf( stdout, "\n" );
|
||||
installedPortsDbIDX++;
|
||||
}
|
||||
MGdbDestroy( property->availableDependenciesDb );
|
||||
- MGdbDestroy( property->dependencyPortsDb );
|
||||
MGdbDestroy( property->ignoreDb );
|
||||
MGdbDestroy( property->installedPortsDb );
|
||||
free( command );
|
||||
@@ -260,18 +230,7 @@
|
||||
|
||||
command = (char*)calloc( 0xffff, 1 );
|
||||
|
||||
- MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
-
|
||||
- MGdbGoTop( property->dependencyPortsDb );
|
||||
- while( MGdbSeek( property->dependencyPortsDb,
|
||||
- property->fieldDependencyDbPortName,
|
||||
- leafPortNamePtr,
|
||||
- property->fieldDependencyDbPortName,
|
||||
- exact ) )
|
||||
- {
|
||||
- MGdbDelete( property->dependencyPortsDb, MGdbGetRecno( property->dependencyPortsDb ) - 1 );
|
||||
- MGdbGoTop( property->dependencyPortsDb );
|
||||
- }
|
||||
+ property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
|
||||
MGdbGoTop( property->availableDependenciesDb );
|
||||
while( MGdbSeek( property->availableDependenciesDb,
|
||||
@@ -280,7 +239,8 @@
|
||||
property->fieldAvailableDependenciesDbPortName,
|
||||
exact ) )
|
||||
{
|
||||
- MGdbDelete( property->availableDependenciesDb, MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
+ property->availableDependenciesDb = MGdbDelete( property->availableDependenciesDb,
|
||||
+ MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
MGdbGoTop( property->availableDependenciesDb );
|
||||
}
|
||||
|
||||
@@ -312,7 +272,7 @@
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
-int rebuildDb( structProperty* property, int* installedPortsDbQTY )
|
||||
+int rebuildDb( structProperty* property )
|
||||
{
|
||||
char id[] = "rebuildDb";
|
||||
|
||||
@@ -321,7 +281,6 @@
|
||||
fprintf( stdout,"%s\n", SINGLE_LINES );
|
||||
while( fflush( stdout ) );
|
||||
|
||||
- MGdbDestroy( property->dependencyPortsDb );
|
||||
MGdbDestroy( property->installedPortsDb );
|
||||
if( MGPMrCreateInstalledDb( property ) )
|
||||
{
|
||||
@@ -335,12 +294,5 @@
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
- if( ( property->dependencyPortsDb = MGdbOpen( property->dependencyPortsDbFileName ) ) == NULL )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: failed to open %s\n", id, PACKAGE_VERSION, property->dependencyPortsDbFileName );
|
||||
- perror( "system" );
|
||||
- return( 1 );
|
||||
- }
|
||||
- *installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
return( 0 );
|
||||
}
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrSinglePortCreateStatusDb.c ./libMGPM/src/MGPMrSinglePortCreateStatusDb.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrSinglePortCreateStatusDb.c Thu Nov 10 16:13:20 2005
|
||||
+++ ./libMGPM/src/MGPMrSinglePortCreateStatusDb.c Fri Nov 11 18:28:43 2005
|
||||
@@ -32,7 +32,7 @@
|
||||
int rSinglePortUpgrade( structProperty* property, int forced );
|
||||
int rDependencyParse( structProperty* property, char* buffer, char* availablePortName, char* availablePortDir, char* dependType, int* counterPtr );
|
||||
int rFillDependencies( structProperty* property, char* availablePortName, char* availablePortDir, int* counterPtr );
|
||||
-int rGetPortName( structProperty* property, char* portDir, char* portName );
|
||||
+int MGPMrGetPortName( structProperty* property, char* portDir, char* portName );
|
||||
int rParse( structProperty* property, char* availablePortName, char* availablePortDir, char* dependType, char* buffer, int* counterPtr );
|
||||
|
||||
int MGPMrSinglePortCreateStatusDb( structProperty* property, char* portDir )
|
||||
@@ -100,11 +100,12 @@
|
||||
|
||||
property->availableDependenciesDb = MGdbOpen( property->availableDependenciesDbFileName );
|
||||
property->configDb = MGdbOpen( property->configDbFileName );
|
||||
+ property->installedPortsDb = MGdbOpen( property->installedPortsDbFileName );
|
||||
}
|
||||
|
||||
- if( ( errorCode = rGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
+ if( ( errorCode = MGPMrGetPortName( property, availablePortDir, availablePortName ) ) )
|
||||
{
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "rGetPortName", errorCode );
|
||||
+ fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGPMrGetPortName", errorCode );
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
@@ -148,6 +149,7 @@
|
||||
}
|
||||
if( property->optionsChanged == 0 ) /* set by MGPMrUpdate for example to indicate a ports's options just changed */
|
||||
{
|
||||
+ MGdbDestroy( property->installedPortsDb );
|
||||
MGdbDestroy( property->availablePortsDb );
|
||||
MGdbDestroy( property->availableDependenciesDb );
|
||||
MGdbDestroy( property->configDb );
|
||||
@@ -157,76 +159,6 @@
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
-int rGetPortName( structProperty* property, char* portDir, char* portName )
|
||||
-{
|
||||
- FILE* makeStream = NULL;
|
||||
- char exact[] = "exact";
|
||||
- char id[] = "rGetPortName";
|
||||
- char* availablePortsDbPortNamePtr = NULL;
|
||||
- char* charPtr = NULL;
|
||||
- char* command = NULL;
|
||||
- char* optionsPtr = NULL;
|
||||
- int bufferSize = 0xffff;
|
||||
-
|
||||
- command = (char*)calloc( bufferSize, 1 );
|
||||
-
|
||||
- MGdbGoTop( property->availablePortsDb );
|
||||
- availablePortsDbPortNamePtr = MGdbSeek( property->availablePortsDb, property->fieldAvailablePortsDbPortDir, portDir,
|
||||
- property->fieldAvailablePortsDbPortName, exact );
|
||||
-
|
||||
- if( availablePortsDbPortNamePtr == NULL )
|
||||
- {
|
||||
- /*
|
||||
- * see if this port has anything special in configDb
|
||||
- */
|
||||
- MGdbGoTop( property->configDb );
|
||||
- optionsPtr = MGdbSeek( property->configDb, property->fieldConfigDbKey, portDir, property->fieldConfigDbValue, exact );
|
||||
- strcpy( command, "cd " );
|
||||
- strcat( command, PORTSDIR );
|
||||
- strcat( command, portDir );
|
||||
- strcat( command, "; make " );
|
||||
- strcat( command, " -V PKGNAME " );
|
||||
- if( optionsPtr )
|
||||
- {
|
||||
- strcat( command, optionsPtr );
|
||||
- }
|
||||
- makeStream = popen( command, "r" );
|
||||
- if( makeStream == 0 )
|
||||
- {
|
||||
- fprintf( stdout, "%s error: reading make -V PKGNAME into availablePortName\n", id );
|
||||
- perror( "system message" );
|
||||
- return( 1 );
|
||||
- }
|
||||
- portName[0] = 0;
|
||||
- fread( portName, bufferSize-1, 1, makeStream );
|
||||
- if( portName == NULL )
|
||||
- {
|
||||
- fprintf( stdout, "%s error: reading make -V PKGNAME into availablePortName\n", id );
|
||||
- perror( "system message" );
|
||||
- return( 1 );
|
||||
- }
|
||||
- charPtr = portName;
|
||||
- while( charPtr < portName + (bufferSize-1) )
|
||||
- {
|
||||
- if( charPtr[0] == SPACE || charPtr[0] == TAB || charPtr[0] == LINEFEED || charPtr[0] == ':' )
|
||||
- {
|
||||
- charPtr[0] = 0;
|
||||
- break;
|
||||
- }
|
||||
- charPtr++;
|
||||
- }
|
||||
- pclose( makeStream );
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- MGdbGoTop( property->availablePortsDb );
|
||||
- strcpy( portName, MGdbSeek( property->availablePortsDb, property->fieldAvailablePortsDbPortDir, portDir,
|
||||
- property->fieldAvailablePortsDbPortName, exact ) );
|
||||
- }
|
||||
- free( command );
|
||||
- return( 0 );
|
||||
-}
|
||||
-
|
||||
int rFillDependencies( structProperty* property, char* availablePortName, char* availablePortDir, int* counterPtr )
|
||||
{
|
||||
char BUILD_DEPENDS[] = "BUILD_DEPENDS";
|
||||
@@ -382,7 +314,7 @@
|
||||
{
|
||||
assert(0);
|
||||
}
|
||||
- rGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
+ MGPMrGetPortName( property, dependencyPortDir, dependencyPortName );
|
||||
/*
|
||||
* add dependency to availableDependenciesDb may contain dupes
|
||||
*/
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrStatus.c ./libMGPM/src/MGPMrStatus.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrStatus.c Mon Nov 7 16:46:00 2005
|
||||
+++ ./libMGPM/src/MGPMrStatus.c Fri Nov 11 19:37:57 2005
|
||||
@@ -110,12 +110,7 @@
|
||||
/*
|
||||
* since installedPortName is no longer in ports collection need to delete record and restart
|
||||
*/
|
||||
- if( ( errorCode = MGdbDelete( property->installedPortsDb, installedPortsDbIDX ) ) )
|
||||
- {
|
||||
- fprintf( stdout, "%s %s error: %s returned errorCode %d\n", id, PACKAGE_VERSION, "MGdbDelete", errorCode );
|
||||
- return( 1 );
|
||||
- }
|
||||
-
|
||||
+ property->installedPortsDb = MGdbDelete( property->installedPortsDb, installedPortsDbIDX );
|
||||
installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb );
|
||||
installedPortsDbIDX = 1;
|
||||
while( fflush( stdout ) );
|
||||
diff -ruN ../0.3.4/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c
|
||||
--- ../0.3.4/libMGPM/src/MGPMrUpdate.c Thu Nov 10 18:58:41 2005
|
||||
+++ ./libMGPM/src/MGPMrUpdate.c Fri Nov 11 19:34:03 2005
|
||||
@@ -461,7 +461,8 @@
|
||||
MGdbGetRecno( property->availableDependenciesDb ) - 1,
|
||||
property->fieldAvailableDependenciesDbDependencyName ) );
|
||||
while( fflush( stdout ) );
|
||||
- MGdbDelete( property->availableDependenciesDb, MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
+ property->availableDependenciesDb = MGdbDelete( property->availableDependenciesDb,
|
||||
+ MGdbGetRecno( property->availableDependenciesDb ) - 1 );
|
||||
MGdbGoTop( property->availableDependenciesDb );
|
||||
}
|
||||
/*
|
||||
@@ -1521,7 +1522,7 @@
|
||||
strcat( curDir, "; make -V .CURDIR" );
|
||||
buffer[0] = 0;
|
||||
pHandle = popen( curDir, "r" );
|
||||
- fread( buffer, 255, 1, pHandle );
|
||||
+ fread( buffer, bufferSize, 1, pHandle );
|
||||
pclose( pHandle );
|
||||
idx = 0;
|
||||
while( idx < 255 )
|
||||
@@ -1535,18 +1536,21 @@
|
||||
}
|
||||
strcpy( curDir, buffer );
|
||||
|
||||
- strcpy( command, "rm -r " );
|
||||
+ strcpy( command, "/bin/rm -r " );
|
||||
strcat( command, workDir );
|
||||
strcat( command, curDir );
|
||||
+
|
||||
+ strcat( command, "/work 2>&1" );
|
||||
/*
|
||||
- strcat( command, "/work >/dev/null 2>&1" );
|
||||
+ strcat( command, "/work" );
|
||||
*/
|
||||
-strcat( command, "/work" );
|
||||
fprintf( stdout, "===> Cleaning for %s\n", portDir );
|
||||
-fprintf( stdout, " %s\n", command );
|
||||
while( fflush( stdout ) );
|
||||
- system( command );
|
||||
|
||||
+ buffer[0] = 0;
|
||||
+ pHandle = popen( command, "r" );
|
||||
+ fread( buffer, bufferSize, 1, pHandle );
|
||||
+ pclose( pHandle );
|
||||
free( buffer );
|
||||
free( command );
|
||||
free( curDir );
|
||||
diff -ruN ../0.3.4/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h
|
||||
--- ../0.3.4/libMGPM/src/libMGPM.h Thu Nov 10 15:19:26 2005
|
||||
+++ ./libMGPM/src/libMGPM.h Fri Nov 11 18:01:02 2005
|
||||
@@ -181,6 +181,7 @@
|
||||
|
||||
} structProperty;
|
||||
|
||||
+int MGPMrGetPortName( structProperty* property, char* portDir, char* portName ); /* located in MGPMrCreateAllUpdateStatusDb.c */
|
||||
int MGPMrBestOldPort( structProperty* property, char* oldPortDir, char* oldPortName );
|
||||
int MGPMrCleanUp( structProperty* property );
|
||||
int MGPMrCommandLine( int argc, char** argv );
|
||||
diff -ruN ../0.3.4/portmanager/pkgtools-to-portmanager.rb ./portmanager/pkgtools-to-portmanager.rb
|
||||
--- ../0.3.4/portmanager/pkgtools-to-portmanager.rb Wed Dec 31 16:00:00 1969
|
||||
+++ ./portmanager/pkgtools-to-portmanager.rb Fri Nov 11 20:54:26 2005
|
||||
@@ -0,0 +1,59 @@
|
||||
+#!/usr/local/bin/ruby
|
||||
+
|
||||
+require "pkgtools"
|
||||
+
|
||||
+puts "CATEGORY/PORT|OPTION=| # do not delete this line!"
|
||||
+
|
||||
+load_config
|
||||
+
|
||||
+
|
||||
+# held packages
|
||||
+
|
||||
+puts ""
|
||||
+puts "# Ignored packages from HOLD_PKGS"
|
||||
+puts ""
|
||||
+
|
||||
+config_value(:HOLD_PKGS).each do |pkg|
|
||||
+
|
||||
+ puts "IGNORE|" + pkg + "|"
|
||||
+
|
||||
+end
|
||||
+
|
||||
+
|
||||
+# beforebuild becomes stop
|
||||
+
|
||||
+puts ""
|
||||
+puts "# STOP entries come from BEFOREBUILD"
|
||||
+puts ""
|
||||
+
|
||||
+config_value(:BEFOREBUILD).each do |pkg|
|
||||
+
|
||||
+ puts "STOP|/" + pkg[0] + " " + pkg[1] + "|"
|
||||
+
|
||||
+end
|
||||
+
|
||||
+# afterinstall becomes start
|
||||
+
|
||||
+puts ""
|
||||
+puts "# START entries come from AFTERINSTALL"
|
||||
+puts ""
|
||||
+
|
||||
+config_value(:AFTERINSTALL).each do |pkg|
|
||||
+
|
||||
+ 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|
|
||||
+
|
||||
+ puts pkg[0] + "|" + pkg[1] + "|"
|
||||
+
|
||||
+end
|
||||
diff -ruN ../0.3.4/programmer-notes.txt ./programmer-notes.txt
|
||||
--- ../0.3.4/programmer-notes.txt Fri Nov 11 05:41:28 2005
|
||||
+++ ./programmer-notes.txt Fri Nov 11 20:56:23 2005
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
TODO list
|
||||
|
||||
+ add pkgtools-to-portmanager.rb to tarball
|
||||
+ move MGPMrGetPortName from MGPMrCreateAllUpdateStatusDb.c next new tarball to its own file
|
||||
move database files to /var/db/portmanager
|
||||
test in 6.0
|
||||
use signal to abort only current build?
|
Loading…
Reference in New Issue
Block a user