Date: Thu, 10 Nov 2005 08:59:03 -0800 (PST) From: "Michael C. Shultz" <ringworm01@gmail.com> To: FreeBSD-gnats-submit@FreeBSD.org Cc: gerard@seibercom.net, ricardo_bsd@yahoo.com.br Subject: ports/88800: [MAINTAINER] sysutils/portmanager update Message-ID: <20051110165903.0536B130C22@ringworm.mechee.com> Resent-Message-ID: <200511101710.jAAHAPAJ064180@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 88800 >Category: ports >Synopsis: [MAINTAINER] sysutils/portmanager update >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: Thu Nov 10 17:10:24 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Michael C. Shultz >Release: FreeBSD 5.4-STABLE i386 >Organization: >Environment: System: FreeBSD ringworm.mechee.com 5.4-STABLE FreeBSD 5.4-STABLE #0: Fri Nov 4 06:35:37 PST 2005 root@ringworm.mechee.com:/usr5/obj/usr5/src/sys/RINGWORM5 i386 >Description: sysutils/portmanager update to 0.3.3_3 a. Adds ability to stop programs like postfix from running during upgrade then restarts them afterwards. See pm-020.conf-example or man page for instructions b. Fixes reported bug where -slid option removes the wrong port c. May fix a reported segfault at: MGPMrCreateAllUpdateStatusDb.c:162 since user didn't include portmanager version or uname -a output can't be certain fix is good >How-To-Repeat: N/A >Fix: --- portmanager-0.3.3_3.diff begins here --- diff -ruN portmanager/Makefile portmanager-0.3.3_3/Makefile --- portmanager/Makefile Thu Nov 10 08:17:52 2005 +++ portmanager-0.3.3_3/Makefile Thu Nov 10 08:06:29 2005 @@ -7,7 +7,7 @@ PORTNAME= portmanager PORTVERSION= 0.3.3 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= sysutils MASTER_SITES= http://portmanager.sunsite.dk/distfiles/ \ ${MASTER_SITE_SOURCEFORGE} diff -ruN portmanager/files/patch-0.3.3_3 portmanager-0.3.3_3/files/patch-0.3.3_3 --- portmanager/files/patch-0.3.3_3 Wed Dec 31 16:00:00 1969 +++ portmanager-0.3.3_3/files/patch-0.3.3_3 Thu Nov 10 08:06:19 2005 @@ -0,0 +1,719 @@ +diff -ruN ../0.3.3_2/libMGPM/src/MGPMrCreateAllUpdateStatusDb.c ./libMGPM/src/MGPMrCreateAllUpdateStatusDb.c +--- ../0.3.3_2/libMGPM/src/MGPMrCreateAllUpdateStatusDb.c Tue Nov 8 17:05:25 2005 ++++ ./libMGPM/src/MGPMrCreateAllUpdateStatusDb.c Thu Nov 10 07:57:49 2005 +@@ -159,7 +159,9 @@ + availablePortsDbIDX = 1; + while( availablePortsDbIDX < availablePortsDbQTY ) + { +- if( strncmp( MGdbGet( property->availablePortsDb, availablePortsDbIDX, property->fieldAvailablePortsDbFlag ), "0", 1 ) == 0 ) ++ if( MGdbGet( property->availablePortsDb, availablePortsDbIDX, property->fieldAvailablePortsDbFlag ) ++ && ++ strncmp( MGdbGet( property->availablePortsDb, availablePortsDbIDX, property->fieldAvailablePortsDbFlag ), "0", 1 ) == 0 ) + { + strcpy( availablePortDir, MGdbGet( property->availablePortsDb, availablePortsDbIDX, property->fieldAvailablePortsDbPortDir ) ); + strcpy( availablePortName, MGdbGet( property->availablePortsDb, availablePortsDbIDX, property->fieldAvailablePortsDbPortName ) ); +diff -ruN ../0.3.3_2/libMGPM/src/MGPMrReadConfigure.c ./libMGPM/src/MGPMrReadConfigure.c +--- ../0.3.3_2/libMGPM/src/MGPMrReadConfigure.c Tue Nov 8 17:05:25 2005 ++++ ./libMGPM/src/MGPMrReadConfigure.c Wed Nov 9 20:01:21 2005 +@@ -93,6 +93,24 @@ + strcat( command, property->configConfFileName ); + system( command ); + } ++ strcpy( command, "chmod 0600 " ); ++ strcat( command, property->configConfFileName ); ++ system( command ); ++ ++ strcpy( command, "chmod 0600 " ); ++ strcat( command, property->configConfFileName ); ++ strcat( command, ".SAMPLE " ); ++ system( command ); ++ ++ strcpy( command, "chown root:wheel " ); ++ strcat( command, property->configConfFileName ); ++ system( command ); ++ ++ strcpy( command, "chown root:wheel " ); ++ strcat( command, property->configConfFileName ); ++ strcat( command, ".SAMPLE " ); ++ system( command ); ++ + /*********************/ + /* parse pm-020.conf */ + /*********************/ +diff -ruN ../0.3.3_2/libMGPM/src/MGPMrShowLeavesDelete.c ./libMGPM/src/MGPMrShowLeavesDelete.c +--- ../0.3.3_2/libMGPM/src/MGPMrShowLeavesDelete.c Tue Nov 8 17:05:25 2005 ++++ ./libMGPM/src/MGPMrShowLeavesDelete.c Thu Nov 10 01:03:17 2005 +@@ -30,17 +30,17 @@ + #include <libMGPM.h> + #include <sgtty.h> + +-int nuke( char* leafPortDirPtr ); ++int nuke( char* leafPortDir ); + int rebuildDb( structProperty* property, int* installedPortsDbQTY ); +-int removePort( structProperty* property, char* leafPortNamePtr, int installedPortsDbIDX ); ++int removePort( structProperty* property, char* leafPortName, int installedPortsDbIDX ); + + int MGPMrShowLeavesDelete( structProperty* property ) + { + char exact[] = "exact"; + char id[] = "MGPMrShowLeavesDelete"; + char* command = NULL; +- char* leafPortDirPtr = NULL; +- char* leafPortNamePtr = NULL; ++ char* leafPortDir = NULL; ++ char* leafPortName = NULL; + char* pkgDescFile = NULL; + char* portDirPtr = NULL; + char* portTypePtr = NULL; +@@ -49,8 +49,10 @@ + int installedPortsDbQTY = 0; + int key = 1; + +- pkgDescFile = (char*)calloc( bufferSize, 1 ); +- command = (char*)calloc( bufferSize, 1 ); ++ command = calloc( bufferSize, 1 ); ++ leafPortDir = calloc( bufferSize, 1 ); ++ leafPortName = calloc( bufferSize, 1 ); ++ pkgDescFile = calloc( bufferSize, 1 ); + + if( ( property->ignoreDb = MGdbOpen( property->ignoreDbFileName ) ) == NULL ) + { +@@ -84,8 +86,8 @@ + installedPortsDbIDX = 1; + while( installedPortsDbIDX < installedPortsDbQTY ) + { +- leafPortDirPtr = MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortDir ); +- leafPortNamePtr = MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortName ); ++ strcpy( leafPortDir, MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortDir ) ); ++ strcpy( leafPortName, MGdbGet( property->installedPortsDb, installedPortsDbIDX, property->fieldInstalledPortsDbPortName ) ); + + /* + * check for no run depends +@@ -93,7 +95,7 @@ + MGdbGoTop( property->dependencyPortsDb ); + portDirPtr = MGdbSeek( property->dependencyPortsDb, + property->fieldDependencyDbDependencyPortDir, +- leafPortDirPtr, ++ leafPortDir, + property->fieldDependencyDbDependencyPortDir, + exact ); + +@@ -105,7 +107,7 @@ + MGdbGoTop( property->availableDependenciesDb ); + portTypePtr = MGdbSeek( property->availableDependenciesDb, + property->fieldAvailableDependenciesDbDependencyDir, +- leafPortDirPtr, ++ leafPortDir, + property->fieldAvailableDependenciesDbDependType, + exact ); + +@@ -113,7 +115,7 @@ + { + portTypePtr = MGdbSeek( property->availableDependenciesDb, + property->fieldAvailableDependenciesDbDependencyDir, +- leafPortDirPtr, ++ leafPortDir, + property->fieldAvailableDependenciesDbDependType, + exact ); + } +@@ -132,11 +134,11 @@ + 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", leafPortNamePtr, leafPortDirPtr ); ++ fprintf( stdout, "%s dir -=> %s\n\n", leafPortName, leafPortDir ); + while( fflush( stdout ) ); + + strcpy( pkgDescFile, PORTSDIR ); +- strcat( pkgDescFile, leafPortDirPtr ); ++ strcat( pkgDescFile, leafPortDir ); + strcat( pkgDescFile, "/pkg-descr" ); + + if( MGrIfFileExist( pkgDescFile ) ) +@@ -150,7 +152,7 @@ + { + strcpy( command, "grep COMMENT " ); + strcat( command, PORTSDIR ); +- strcat( command, leafPortDirPtr ); ++ strcat( command, leafPortDir ); + strcat( command, "/Makefile" ); + system( command ); + } +@@ -167,48 +169,48 @@ + } + case KEY_SPACE: + { +- MGdbAdd( property->ignoreDb, leafPortDirPtr, "-slid <SPACE> skipped", NULL ); +- fprintf( stdout, "<SPACE> Skipping %s\n\n", leafPortNamePtr ); ++ 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", leafPortNamePtr ); +- removePort( property, leafPortNamePtr, installedPortsDbIDX ); +- nuke( leafPortDirPtr ); ++ 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", leafPortNamePtr ); +- removePort( property, leafPortNamePtr, installedPortsDbIDX ); +- nuke( leafPortDirPtr ); ++ fprintf( stdout, "<N> Nuking %s\n\n", leafPortName ); ++ removePort( property, leafPortName, installedPortsDbIDX ); ++ nuke( leafPortDir ); + rebuildDb( property, &installedPortsDbQTY ); + break; + } + case KEY_x: + { + /* delete() */ +- fprintf( stdout, "<x> Removing %s\n\n", leafPortNamePtr ); +- removePort( property, leafPortNamePtr, installedPortsDbIDX ); ++ fprintf( stdout, "<x> Removing %s\n\n", leafPortName ); ++ removePort( property, leafPortName, installedPortsDbIDX ); + rebuildDb( property, &installedPortsDbQTY ); + break; + } + case KEY_X: + { + /* delete() */ +- fprintf( stdout, "<X> Removing %s\n\n", leafPortNamePtr ); +- removePort( property, leafPortNamePtr, installedPortsDbIDX ); ++ fprintf( stdout, "<X> Removing %s\n\n", leafPortName ); ++ removePort( property, leafPortName, installedPortsDbIDX ); + rebuildDb( property, &installedPortsDbQTY ); + break; + } + default: + { +- MGdbAdd( property->ignoreDb, leafPortDirPtr, "-slid <DEFAULT> skipped", NULL ); +- fprintf( stdout, "Skipping %s\n\n", leafPortNamePtr ); ++ MGdbAdd( property->ignoreDb, leafPortDir, "-slid <DEFAULT> skipped", NULL ); ++ fprintf( stdout, "Skipping %s\n\n", leafPortName ); + break; + } + } +@@ -221,6 +223,9 @@ + MGdbDestroy( property->ignoreDb ); + MGdbDestroy( property->installedPortsDb ); + free( command ); ++ free( leafPortDir ); ++ free( leafPortName ); ++ free( pkgDescFile ); + return(0); + } + +@@ -266,7 +271,7 @@ + } + + /***********************************************************************/ +-int nuke( char* leafPortDirPtr ) ++int nuke( char* leafPortDir ) + { + char* command = NULL; + +@@ -274,7 +279,7 @@ + + strcpy( command, "cd " ); + strcat( command, PORTSDIR ); +- strcat( command, leafPortDirPtr ); ++ strcat( command, leafPortDir ); + strcat( command, "; make distclean" ); + fprintf( stdout, "\nexecuting: %s\n", command ); + while( fflush( stdout ) ); +diff -ruN ../0.3.3_2/libMGPM/src/MGPMrUpdate.c ./libMGPM/src/MGPMrUpdate.c +--- ../0.3.3_2/libMGPM/src/MGPMrUpdate.c Wed Nov 9 13:24:45 2005 ++++ ./libMGPM/src/MGPMrUpdate.c Wed Nov 9 21:54:00 2005 +@@ -41,10 +41,15 @@ + char* buffer; + char* command; + char* commandRestart; ++ char* installedPortName; + char* newPortDir; + char* newPortName; + char* optionsCheck; + char* optionsDir; ++ char* startPortCmd; ++ char* startPortDir; ++ char* stopPortCmd; ++ char* stopPortDir; + char* workDir; + } structLocalProperty; + +@@ -58,6 +63,8 @@ + char BROKEN[] = "BROKEN"; + char FORBIDDEN[] = "FORBIDDEN"; + char IGNORE[] = "IGNORE"; ++ char START[] = "/START"; ++ char STOP[] = "/STOP"; + char backUp[] = "--back-up"; + char bu[] = "-bu"; + char exact[] = "exact"; +@@ -71,11 +78,12 @@ + char* availableDependenciesDbDependencyDirPtr = NULL; + char* availableDependenciesDbDependencyNamePtr = NULL; + char* bufferBase = NULL; +- char* installedPortsDbPortNamePtr = NULL; + char* ipPtr = NULL; + char* oldPortDirPtr = NULL; + char* options = NULL; + char* stinker = NULL; ++ char* startPortDirPtr = NULL; ++ char* stopPortDirPtr = NULL; + char* strikePtr = NULL; + int availableDependenciesDbIDX = 0; + int availableDependenciesDbQTY = 0; +@@ -99,12 +107,17 @@ + localProperty.buffer = (char*)calloc( bufferSize, 1 ); + localProperty.command = (char*)calloc( bufferSize, 1 ); + localProperty.commandRestart = (char*)calloc( bufferSize, 1 ); ++ localProperty.installedPortName = (char*)calloc( 511, 1 ); + localProperty.newPortDir = (char*)calloc( 511, 1 ); + localProperty.newPortName = (char*)calloc( 511, 1 ); + localProperty.optionsCheck = (char*)calloc( 511, 1 ); + localProperty.optionsDir = (char*)calloc( 511, 1 ); ++ localProperty.startPortCmd = (char*)calloc( 511, 1 ); ++ localProperty.startPortDir = (char*)calloc( 511, 1 ); ++ localProperty.stopPortCmd = (char*)calloc( 511, 1 ); ++ localProperty.stopPortDir = (char*)calloc( 511, 1 ); + localProperty.workDir = (char*)calloc( 511, 1 ); +- ++ + property->availableDependenciesDb = MGdbOpen( property->availableDependenciesDbFileName ); + property->availablePortsDb = MGdbOpen( property->availablePortsDbFileName ); + property->commandLineDb = MGdbOpen( property->commandLineDbFileName ); +@@ -179,6 +192,63 @@ + strcpy( localProperty.beforeOptionsFileSize, MGrIntToString( MGrFileSize( localProperty.optionsDir ) ) ); + + /* ++ * gather stop/start instructions if they exist ++ */ ++ MGdbGoTop( property->configDb ); ++ while( MGdbSeek( property->configDb, ++ property->fieldConfigDbKey, ++ STOP, ++ property->fieldConfigDbKey, ++ exact ) ++ && ++ strncmp( oldPortDir, ++ MGdbGet( property->configDb, ++ MGdbGetRecno( property->configDb ) - 1, ++ property->fieldConfigDbValue ), ++ strlen( oldPortDir ) ) == 0 ) ++ { ++ stopPortDirPtr = MGdbGet( property->configDb, ++ MGdbGetRecno( property->configDb ) - 1, ++ property->fieldConfigDbValue ); ++ if( stopPortDirPtr[strlen( oldPortDir )] == SPACE ) ++ { ++ strncpy( localProperty.stopPortDir, stopPortDirPtr, strlen( oldPortDir ) ); ++ strcpy( localProperty.stopPortCmd, stopPortDirPtr + strlen( oldPortDir ) + 1 ); ++ break; ++ } ++ else ++ { ++ break; ++ } ++ } ++ MGdbGoTop( property->configDb ); ++ while( MGdbSeek( property->configDb, ++ property->fieldConfigDbKey, ++ START, ++ property->fieldConfigDbKey, ++ exact ) ++ && ++ strncmp( oldPortDir, ++ MGdbGet( property->configDb, ++ MGdbGetRecno( property->configDb ) - 1, ++ property->fieldConfigDbValue ), ++ strlen( oldPortDir ) ) == 0 ) ++ { ++ startPortDirPtr = MGdbGet( property->configDb, ++ MGdbGetRecno( property->configDb ) - 1, ++ property->fieldConfigDbValue ); ++ if( startPortDirPtr[strlen( oldPortDir )] == SPACE ) ++ { ++ strncpy( localProperty.startPortDir, startPortDirPtr, strlen( oldPortDir ) ); ++ strcpy( localProperty.startPortCmd, startPortDirPtr + strlen( oldPortDir ) + 1 ); ++ } ++ else ++ { ++ break; ++ } ++ } ++ ++ /* + * Do update in interactive mode (command line switch -ui ) + */ + if( property->interactive ) +@@ -346,6 +416,16 @@ + * 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 ); ++ } + property->optionsChanged = 1; + MGdbGoTop( property->availablePortsDb ); + while( MGdbSeek( property->availablePortsDb, +@@ -519,12 +599,13 @@ + installedPortsDbQTY = MGdbGetRecordQty( property->installedPortsDb ); + while( installedPortsDbIDX < installedPortsDbQTY ) + { +- installedPortsDbPortNamePtr = MGdbGet( property->installedPortsDb, installedPortsDbIDX, +- property->fieldInstalledPortsDbPortName ); +- stinker = strstr( bufferBase, installedPortsDbPortNamePtr ); ++ strcpy( localProperty.installedPortName, MGdbGet( property->installedPortsDb, ++ installedPortsDbIDX, ++ property->fieldInstalledPortsDbPortName ) ); ++ stinker = strstr( bufferBase, localProperty.installedPortName ); + if( stinker ) + { +- fprintf( stdout, "OK to remove conflicting port %s Yy/Nn/Aa [Y]\? ", installedPortsDbPortNamePtr ); ++ fprintf( stdout, "OK to remove conflicting port %s Yy/Nn/Aa [Y]\? ", localProperty.installedPortName ); + while( fflush( stdout ) ); + if( property->autoConflicts == 0 ) + { +@@ -585,7 +666,7 @@ + } + } + strcpy( localProperty.command, "pkg_delete -f " ); +- strcat( localProperty.command, installedPortsDbPortNamePtr ); ++ strcat( localProperty.command, localProperty.installedPortName ); + fprintf( stdout, "executing: %s\n", localProperty.command ); + while( fflush( stdout ) ); + errorCode = system( localProperty.command ); +@@ -918,6 +999,56 @@ + } + else + { ++ /* ++ * use localProperty.stopPortCmd if it is defined ++ */ ++ if( strcmp( oldPortDir, localProperty.stopPortDir ) == 0 ) ++ { ++ fprintf( stdout, "%s %s info: running %s stop command %s\n", ++ id, ++ PACKAGE_VERSION, ++ localProperty.stopPortDir, ++ localProperty.stopPortCmd ); ++ while( fflush( stdout ) ); ++ ++ localProperty.buffer[0] = 0; ++ 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 ); ++ } ++ fprintf( stdout, "%s reply: %s\n", localProperty.stopPortCmd, localProperty.buffer ); ++ while( fflush( stdout ) ); ++ } ++ ++ /* ++ * remove old port ++ */ + strcpy( localProperty.command, "pkg_delete -f "); + strcat( localProperty.command, oldPortName); + fprintf( stdout, "%s\n", SINGLE_LINES ); +@@ -1041,6 +1172,54 @@ + system( localProperty.command ); + } + } ++ ++ /* ++ * use localProperty.startPortCmd if it is defined ++ */ ++ if( strcmp( oldPortDir, localProperty.startPortDir ) == 0 ) ++ { ++ fprintf( stdout, "%s %s info: running %s start command %s\n", ++ id, ++ PACKAGE_VERSION, ++ localProperty.startPortDir, ++ localProperty.startPortCmd ); ++ while( fflush( stdout ) ); ++ localProperty.buffer[0] = 0; ++ 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 ); ++ } ++ ++ fprintf( stdout, "%s reply: %s\n", localProperty.startPortCmd, localProperty.buffer ); ++ while( fflush( stdout ) ); ++ } ++ + /************************************************************************/ + /* Command "13" make package */ + /************************************************************************/ +@@ -1229,10 +1408,15 @@ + free( localProperty->buffer ); + free( localProperty->command ); + free( localProperty->commandRestart ); ++ free( localProperty->installedPortName ); + free( localProperty->newPortDir ); + free( localProperty->newPortName ); + free( localProperty->optionsCheck ); + free( localProperty->optionsDir ); ++ free( localProperty->startPortCmd ); ++ free( localProperty->startPortDir ); ++ free( localProperty->stopPortCmd ); ++ free( localProperty->stopPortDir ); + free( localProperty->workDir ); + + return(0); +diff -ruN ../0.3.3_2/portmanager/pm-020.conf.SAMPLE ./portmanager/pm-020.conf.SAMPLE +--- ../0.3.3_2/portmanager/pm-020.conf.SAMPLE Tue Nov 8 17:05:25 2005 ++++ ./portmanager/pm-020.conf.SAMPLE Wed Nov 9 14:22:48 2005 +@@ -1,42 +1,40 @@ +-#............................................ +-# port manager example configuration file ver 0.2.0 +-#............................................................ +-# the format of portmanager.conf is critical! +-# +-# 1. Comments delimited with # should be ok +-# 2. No leading white space( space or tabs ) +-# 3. Placement of "|" is critical here is the format: + # +-# [port category dir/port dir] | [ all port build options go here ] | ++# port manager example configuration file ver 0.2.0 + # +-# 4. white space between port options is ok, and between final "|" and +-# the start of a comment ++ ++CATEGORY/PORT|OPTION=| # do not delete this line! ++ + # +-# example: +-#............................................................ + # port | options | +-#............................................................ +-#x11-toolkits/vte|WITH_GLX=yes -DNOCLEAN| # some comment....... +-#java/jdk14|-DMINIMAL| # anothe comment.... +-#............................................................ +-CATEGORY/PORT|OPTION=| # do not delete this line! ++# + +-##################### +-# custom settings # +-# remove "#" to use # +-##################### + #textproc/docproj|JADETEX=no| + #java/jdk14|-DMINIMAL| + #textproc/libxml2|THREADS=off SCHEMA=on MEM_DEBUG=off XMLLINT_HIST=off THREAD_ALLOC=off| ++ + # ++# do not let portmanager update the following ports + # +-## +-##do not let portmanager update the following ports ++ + #IGNORE|editors/openoffice-1.1| + #IGNORE|java/jdk14| + +- +- ++# ++# STOP/START these programs if they are updated ++# ++# Stop command will be run after program is built, before ++# old installed version is removed ++# ++# Start command will be run after rebuilt program is ++# installed and successfully registerd ++# ++# note: ++# must have leading "/" in /{category}/{port dir} ++# anything after /{category}/{port dir} is run as ++# a sh shell command ++# ++#STOP|/mail/postfix /usr/local/sbin/postfix stop| ++#START|/mail/postfix /usr/local/sbin/postfix start| + + + +diff -ruN ../0.3.3_2/portmanager/portmanager.1 ./portmanager/portmanager.1 +--- ../0.3.3_2/portmanager/portmanager.1 Tue Nov 8 17:05:25 2005 ++++ ./portmanager/portmanager.1 Wed Nov 9 18:49:17 2005 +@@ -128,24 +128,6 @@ + .sp + http://portmanager.sunsite.dk/ + .sp +- \fBMail lists\fR +-.sp +-portmanager-questions@sunsite.dk +-.sp +-To subscribe send an empty message to: +- portmanager-questions-subscribe@sunsite.dk +-.sp +- archive: http://www.mail-archive.com/portmanager-questions%40sunsite.dk/ +-.sp +-.sp +-If you would like to joint portmanager's development team let us know at: +-portmanager-devel@sunsite.dk +-.sp +-To subscribe send an empty message to: +- portmanager-devel-subscribe@sunsite.dk +-.sp +- archive: http://www.mail-archive.com/portmanager-devel%40sunsite.dk/ +-.sp + .\"======================================================================= + .\".Sh IMPLEMENTATION NOTES + .\"======================================================================= +@@ -166,35 +148,44 @@ + .sp + pm\&-020.conf example: + .sp +- # the format of pm\&-020.conf is critical + # +- # 1. Comments delimited with # should be ok +- # 2. No leading white space( space or tabs ) +- # 3. Placement of \&"\&|\&" is critical here is the format: +- # +- # [port category dir/port dir] \&| [ all port build options go here ] \&| +- # +- # 4. white space between port options is ok, and between final \&"\&|\&" and +- # the start of a comment +- # +- # example: +- #............................................................ +- # port \&| options \&| +- #............................................................ +- #x11\&-toolkits/vte\&|WITH_GLX=yes \&-DNOCLEAN\&| # some comment....... +- #java/jdk14\&|\&-DMINIMAL\&| # another comment.... +- #............................................................ +- CATEGORY/PORT\&|OPTION=\&| # do not delete this line +- # +- devel/sdl12\&|WITH_NAS=yes\&| +- editors/openoffice\&-1.1\&|WITH_TTF_BYTECODE_ENABLED=yes\&| +- java/jdk14\&|WITH_IPV6=yes\&| +- multimedia/avifile\&|WITH_OPTIMIZED_CFLAGS=yes\&| +- local/sysutils/portmanager\&|PREFIX=/home/mike/TEMP\&| +- # +- #do not let portmanager update the following ports +- IGNORE\&|editors/openoffice\&-1.1\&| +- IGNORE\&|java/jdk14\&| ++ # port manager example configuration file ver 0.2.0 ++ # ++.sp ++ CATEGORY/PORT\&|OPTION=\&| # do not delete this line! ++.sp ++ # ++ # port \&| options \&| ++ # ++.sp ++ #textproc/docproj\&|JADETEX=no\&| ++ #java/jdk14\&|-DMINIMAL\&| ++ #textproc/libxml2\&|THREADS=off SCHEMA=on MEM_DEBUG=off THREAD_ALLOC=off\&| ++.sp ++ # ++ # do not let portmanager update the following ports ++ # ++.sp ++ #IGNORE\&|editors/openoffice-1.1\&| ++ #IGNORE\&|java/jdk14\&| ++.sp ++ # ++ # STOP/START these programs if they are updated ++ # ++ # Stop command will be run after program is built, before ++ # old installed version is removed ++ # ++ # Start command will be run after rebuilt program is ++ # installed and successfully registerd ++ # ++ # note: ++ # must have leading \&"/\&" in /{category}/{port dir} ++ # anything after /{category}/{port dir} is run as ++ # a sh shell command ++ # ++ #STOP\&|/mail/postfix /usr/local/sbin/postfix stop\&| ++ #START\&|/mail/postfix /usr/local/sbin/postfix start\&| ++.sp + .\"======================================================================= + .Sh DIAGNOSTICS + Detail of how portmanager works +diff -ruN ../0.3.3_2/programmer-notes.txt ./programmer-notes.txt +--- ../0.3.3_2/programmer-notes.txt Wed Nov 9 13:24:45 2005 ++++ ./programmer-notes.txt Wed Nov 9 22:32:39 2005 +@@ -275,6 +275,15 @@ + A) Creates database of Installed ports, checks/handles installed ports + that are no longerin the ports tree. + ++===================================== ++ ++Bring Joy <clarity256@yahoo.com> ++ ++It actually is a good idea, but not so simple to implement. The ports system only ++knows what the current dist file so won't tell you if one is out of date, have to ++do some extra digging for that. Still an option to clean old distfiles and old ++packages as you go would be really nice so I will add your iidea to the long term ++goals list. + + ************** JAVA notes ******************* + --- portmanager-0.3.3_3.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051110165903.0536B130C22>