diff options
author | az <az@FreeBSD.org> | 2005-11-26 07:19:59 +0000 |
---|---|---|
committer | az <az@FreeBSD.org> | 2005-11-26 07:19:59 +0000 |
commit | fc9cf80f838181ef4b5371ac32a9e48fba26a6d8 (patch) | |
tree | af1854000963708ac50a12a364ecbe94c1374207 /sysutils | |
parent | a271a63015337251c6eed413e098eb4dc4171630 (diff) | |
download | FreeBSD-ports-fc9cf80f838181ef4b5371ac32a9e48fba26a6d8.zip FreeBSD-ports-fc9cf80f838181ef4b5371ac32a9e48fba26a6d8.tar.gz |
- Fixes portmanager seg faulting if either /usr/local/etc/pkgtools.conf or
/usr/local/bin/ruby are not installed.
PR: ports/89564
Submitted by: Michael C. Shultz (maintainer)
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/portmanager/Makefile | 2 | ||||
-rw-r--r-- | sysutils/portmanager/files/patch-0.3.9_2 | 81 |
2 files changed, 82 insertions, 1 deletions
diff --git a/sysutils/portmanager/Makefile b/sysutils/portmanager/Makefile index f97e4b0..0c8ce04 100644 --- a/sysutils/portmanager/Makefile +++ b/sysutils/portmanager/Makefile @@ -7,7 +7,7 @@ PORTNAME= portmanager PORTVERSION= 0.3.9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= http://portmanager.sunsite.dk/distfiles/ \ ${MASTER_SITE_SOURCEFORGE} diff --git a/sysutils/portmanager/files/patch-0.3.9_2 b/sysutils/portmanager/files/patch-0.3.9_2 new file mode 100644 index 0000000..540f6e7 --- /dev/null +++ b/sysutils/portmanager/files/patch-0.3.9_2 @@ -0,0 +1,81 @@ +diff -ruN ../0.3.9_1/libMGPM/src/MGPMrCommandLine.c ./libMGPM/src/MGPMrCommandLine.c +--- ../0.3.9_1/libMGPM/src/MGPMrCommandLine.c Fri Nov 25 11:47:19 2005 ++++ ./libMGPM/src/MGPMrCommandLine.c Fri Nov 25 18:58:23 2005 +@@ -96,6 +96,7 @@ + property.pristine = 0; /* 1 = run in pristine mode */ + property.resume = 0; /* 1 = portmanager updated itself, don't rebuild databases in -u -f mode */ + property.timeout = 300; /* default timeout in seconds */ ++ property.NoPkgtools = 0; /* 1 = pkgtools.conf or ruby not installed */ + + if( argv[2] && strcmp( "package-depends", argv[2] ) == 0 ) + { +diff -ruN ../0.3.9_1/libMGPM/src/MGPMrReadConfigure.c ./libMGPM/src/MGPMrReadConfigure.c +--- ../0.3.9_1/libMGPM/src/MGPMrReadConfigure.c Fri Nov 25 11:47:19 2005 ++++ ./libMGPM/src/MGPMrReadConfigure.c Fri Nov 25 19:06:25 2005 +@@ -164,16 +164,27 @@ + strcat( command, "/pkgtools.db" ); + rReadConfigureAwkConfigure( property, configFileNameOld, command ); + } ++ else ++ { ++ property->NoPkgtools = 1; ++ } ++ } ++ else ++ { ++ property->NoPkgtools = 1; + } +- + strcpy( command, SHAREDIR ); + strcat( command, "/pkgtools.db" ); +- rReadConfigureCleanPkgToolsDb( property, command ); +- strcpy( command, "cat " ); +- strcat( command, SHAREDIR ); +- strcat( command, "/pkgtools.db >>" ); +- strcat( command, property->configDbFileName ); +- system( command ); ++ ++ if( property->NoPkgtools == 0 ) ++ { ++ rReadConfigureCleanPkgToolsDb( property, command ); ++ strcpy( command, "cat " ); ++ strcat( command, SHAREDIR ); ++ strcat( command, "/pkgtools.db >>" ); ++ strcat( command, property->configDbFileName ); ++ system( command ); ++ } + + /* + strcpy( command, "rm -f " ); +@@ -441,8 +452,16 @@ + + value = calloc( 0xfff, 1 ); + +- pkgtoolsDb = MGdbOpen( pkgtoolsFileName ); +- pkgtoolsQTY = MGdbGetRecordQty( pkgtoolsDb ); ++ if( MGrIfFileExist( pkgtoolsFileName ) ) ++ { ++ pkgtoolsDb = MGdbOpen( pkgtoolsFileName ); ++ pkgtoolsQTY = MGdbGetRecordQty( pkgtoolsDb ); ++ } ++ else ++ { ++ free( value ); ++ return( 1 ); ++ } + + while( pkgtoolsIDX < pkgtoolsQTY ) + { +diff -ruN ../0.3.9_1/libMGPM/src/libMGPM.h ./libMGPM/src/libMGPM.h +--- ../0.3.9_1/libMGPM/src/libMGPM.h Fri Nov 25 11:47:19 2005 ++++ ./libMGPM/src/libMGPM.h Fri Nov 25 18:57:49 2005 +@@ -146,7 +146,8 @@ + char* configConfFileName; + char* helpFile; + int timeOut; /* see MGPMrGetPortName.c */ +- ++ int NoPkgtools; /* 1 = pkgtools.conf or ruby not installed */ ++ + /* + * data base structures/file names/fieldnames + */ |