# HG changeset patch # User Claus Gittinger # Date 945966562 -3600 # Node ID e83c1425347145b92b7c9ccf460b6a35f27c0046 # Parent d9e41d5640ab9d693231f56615c9e97bcb57e70e checkin from browser diff -r d9e41d5640ab -r e83c14253471 STXInstaller.st --- a/STXInstaller.st Thu Dec 23 15:56:58 1999 +0100 +++ b/STXInstaller.st Thu Dec 23 17:29:22 1999 +0100 @@ -37,9 +37,7 @@ dirs add:'/usr/bin'. dirs add:(Filename homeDirectory constructString:'bin'). - dirs add:((Filename homeDirectory - construct:'stx') - constructString:'bin'). + dirs add:((Filename homeDirectory construct:'stx') constructString:'bin'). dirs add:'/tmp/stxbin'. ('/home' asFilename exists and:['/home' asFilename isDirectory]) ifTrue:[ dirs add:'/home/stx/bin'. @@ -65,9 +63,7 @@ dirs := OrderedCollection new. dirs add:(Filename homeDirectory constructString:'stxDevelop'). - dirs add:((Filename homeDirectory - construct:'stx') - constructString:'develop'). + dirs add:((Filename homeDirectory construct:'stx') constructString:'develop'). ('/home' asFilename exists and:['/home' asFilename isDirectory]) ifTrue:[ dirs add:'/home/stx/develop'. ]. @@ -133,12 +129,9 @@ dirs add:'/usr/local/lib'. dirs add:'/usr/lib'. dirs add:'/lib'. - dirs add:(Filename homeDirectory - constructString:'lib'). + dirs add:(Filename homeDirectory constructString:'lib'). - dirs add:((Filename homeDirectory - construct:'stx') - constructString:'lib'). + dirs add:((Filename homeDirectory construct:'stx') constructString:'lib'). dirs add:'/tmp/stxlib'. dirs add:'/home/stx/lib'. dirs add:'/home2/stx/lib'. @@ -162,12 +155,8 @@ dirs add:'/opt/smalltalk/' , stxRel , '/lib'. dirs add:'/usr/local/lib/smalltalk'. dirs add:'/usr/lib/smalltalk'. - dirs add:((Filename homeDirectory - construct:'lib') - constructString:'smalltalk'). - dirs add:((Filename homeDirectory - construct:'stx') - constructString:'lib'). + dirs add:((Filename homeDirectory construct:'lib') constructString:'smalltalk'). + dirs add:((Filename homeDirectory construct:'stx') constructString:'lib'). dirs add:'/tmp/stxlib'. dirs add:'/home/stx/lib'. dirs add:'/home2/stx/lib'. @@ -193,17 +182,18 @@ ] ifFalse:[ dirsToMake add:stxBinDir. dirsToMake add:stxLibDir. - dirsToMake add:stxLibBinDir. + stxLibDir ~= stxLibBinDir ifTrue:[ + dirsToMake add:stxLibBinDir. + ]. dirsToMake add:stxDocDir. docOnlineDir := stxDocDir asFilename construct:'online'. dirsToMake add:docOnlineDir name. dirsToMake add:(docOnlineDir constructString:'english'). dirsToMake add:(docOnlineDir constructString:'german'). - dirsToMake add:(docOnlineDir constructString:'french'). - dirsToMake add:(docOnlineDir constructString:'italian'). - installGoodyFiles ifTrue:[ - dirsToMake add:(stxLibDir asFilename constructString:'goodies'). - ]. + installDocFiles ifTrue:[ + dirsToMake add:(docOnlineDir constructString:'french'). + dirsToMake add:(docOnlineDir constructString:'italian'). + ] ]. ^ dirsToMake @@ -245,101 +235,11 @@ ( 'COPYRIGHT' #lib nil true '644' ) ( 'doc/online/german/LICENCE.STX.html' nil 'doc/online/german' true '644' ) ( 'doc/online/english/LICENCE.STX.html' nil 'doc/online/english' true '644' ) - - ( 'libbasic/abbrev.stc' #pkg 'stx/libbasic' true ) - ( 'libbasic/bitmaps' #pkg 'stx/libbasic' true ) - ( 'libbasic/resources' #pkg 'stx/libbasic' true ) - - ( 'libbasic2/abbrev.stc' #pkg 'stx/libbasic2' true ) - ( 'libbasic2/bitmaps' #pkg 'stx/libbasic2' true ) - ( 'libbasic2/resources' #pkg 'stx/libbasic2' true ) - - ( 'libbasic3/abbrev.stc' #pkg 'stx/libbasic3' true ) - ( 'libbasic3/bitmaps' #pkg 'stx/libbasic3' true ) - ( 'libbasic3/resources' #pkg 'stx/libbasic3' true ) - - ( 'libboss/abbrev.stc' #pkg 'stx/libboss' true ) - ( 'libboss/bitmaps' #pkg 'stx/libboss' true ) - ( 'libboss/resources' #pkg 'stx/libboss' true ) - - ( 'libcomp/abbrev.stc' #pkg 'stx/libcomp' true ) - ( 'libcomp/bitmaps' #pkg 'stx/libcomp' true ) - ( 'libcomp/resources' #pkg 'stx/libcomp' true ) - - ( 'libview/abbrev.stc' #pkg 'stx/libview' true ) - ( 'libview/bitmaps' #pkg 'stx/libview' true ) - ( 'libview/resources' #pkg 'stx/libview' true ) - - ( 'libview2/abbrev.stc' #pkg 'stx/libview2' true ) - ( 'libview2/bitmaps' #pkg 'stx/libview2' true ) - ( 'libview2/resources' #pkg 'stx/libview2' true ) - - ( 'libwidg/abbrev.stc' #pkg 'stx/libwidg' true ) - ( 'libwidg/bitmaps' #pkg 'stx/libwidg' true ) - ( 'libwidg/resources' #pkg 'stx/libwidg' true ) - - ( 'libwidg2/abbrev.stc' #pkg 'stx/libwidg2' true ) - ( 'libwidg2/bitmaps' #pkg 'stx/libwidg2' true ) - ( 'libwidg2/resources' #pkg 'stx/libwidg2' true ) - - ( 'libwidg3/abbrev.stc' #pkg 'stx/libwidg3' true ) - ( 'libwidg3/bitmaps' #pkg 'stx/libwidg2' true ) - ( 'libwidg3/resources' #pkg 'stx/libwidg2' true ) - - ( 'libtool/abbrev.stc' #pkg 'stx/libtool' true ) - ( 'libtool/bitmaps' #pkg 'stx/libtool' true ) - ( 'libtool/resources' #pkg 'stx/libtool' true ) - - ( 'libtool2/abbrev.stc' #pkg 'stx/libtool2' true ) - ( 'libtool2/bitmaps' #pkg 'stx/libtool2' true ) - ( 'libtool2/resources' #pkg 'stx/libtool2' true ) - - ( 'libui/abbrev.stc' #pkg 'stx/libui' true ) - ( 'libui/bitmaps' #pkg 'stx/libui' true ) - ( 'libui/resources' #pkg 'stx/libui' true ) - - ( 'libhtml/abbrev.stc' #pkg 'stx/libhtml' true ) - ( 'libhtml/bitmaps' #pkg 'stx/libhtml' true ) - ( 'libhtml/resources' #pkg 'stx/libhtml' true ) - - ( 'libodbc/abbrev.stc' #pkg 'stx/libodbc' true ) - ( 'libodbc/bitmaps' #pkg 'stx/libodbc' true ) - ( 'libodbc/resources' #pkg 'stx/libodbc' true ) - - ( 'libopengl/abbrev.stc' #pkg 'stx/libopengl' true ) - ( 'libopengl/bitmaps' #pkg 'stx/libopengl' true ) - ( 'libopengl/resources' #pkg 'stx/libopengl' true ) - - ( 'libjava/abbrev.stc' #pkg 'stx/libjava' true ) - ( 'libjava/bitmaps' #pkg 'stx/libjava' true ) - ( 'libjava/resources' #pkg 'stx/libjava' true ) ). installDocFiles ifTrue:[ fileSpec := fileSpec , #( - ( 'doc' #lib nil false '644' ) - ). - ]. - - installSourceFiles ifTrue:[ - fileSpec := fileSpec , #( - ( 'libbasic/*.st' #pkg 'stx/libbasic/source' false ) - ( 'libbasic2/*.st' #pkg 'stx/libbasic2/source' false ) - ( 'libbasic3/*.st' #pkg 'stx/libbasic3/source' false ) - ( 'libboss/*.st' #pkg 'stx/libboss/source' false ) - ( 'libcomp/*.st' #pkg 'stx/libcomp/source' false ) - ( 'libview/*.st' #pkg 'stx/libview/source' false ) - ( 'libview2/*.st' #pkg 'stx/libview2/source' false ) - ( 'libwidg/*.st' #pkg 'stx/libwidg/source' false ) - ( 'libwidg2/*.st' #pkg 'stx/libwidg2/source' false ) - ( 'libwidg3/*.st' #pkg 'stx/libwidg3/source' false ) - ( 'libtool/*.st' #pkg 'stx/libtool/source' false ) - ( 'libtool2/*.st' #pkg 'stx/libtool2/source' false ) - ( 'libui/*.st' #pkg 'stx/libui/source' false ) - ( 'libhtml/*.st' #pkg 'stx/libhtml/source' false ) - ( 'libodbc/*.st' #pkg 'stx/libodbc/source' false ) - ( 'libopengl/*.st' #pkg 'stx/libopengl/source' false ) - ( 'libjava/*.st' #pkg 'stx/libjava/source' false ) + ( 'doc' nil nil false '644' ) ). ]. @@ -356,9 +256,8 @@ installGoodyFiles ifTrue:[ fileSpec := fileSpec , #( - ( 'goodies/*.st' #pkg 'stx/goodies/source' false '644' ) - ( 'goodies/*.chg' #pkg 'stx/goodies/source' false '644' ) - ( 'goodies/rdoit/rdoit' #bin nil false '755' ) + ( 'goodies/*.st' #pkg 'stx/goodies/source' false '644' ) + ( 'goodies/*.chg' #pkg 'stx/goodies/source' false '644' ) ). ]. @@ -387,6 +286,7 @@ "/ name destination subDir required mode ( 'projects/smalltalk/smalltalk' #bin nil true '755' ) ( 'projects/smalltalk/stx' #bin nil true '755' ) + ( 'librun/librun.so' #lib 'lib' true '644' ) ). installSTCFiles ifTrue:[ @@ -394,7 +294,7 @@ ( 'stc/stc' #bin nil false '755' ) ( 'rules/stmkmp' #bin nil false '755' ) ( 'rules/stmkmf' #bin nil false '755' ) - ( 'configurations' #lib nil false '644' ) + ( 'configurations/COMMON' #lib 'configurations' false '644' ) ( 'configurations/PACKS' #lib 'configurations' false '644' ) ( 'configurations/my*' #lib 'configurations' false '644' ) ( 'configurations/vendor*' #lib 'configurations' false '644' ) @@ -403,46 +303,21 @@ ( 'support/VGL/vogl/src/*.h' #lib 'include' false '644' ) ( 'support/DLD/dld-3.2.5/libdld.*' #lib 'lib' false '644' ) - ( 'goodies/persistency/db-1.6/PORT/libdb.*' #lib 'lib' false '644' ) + ( 'goodies/persistency/db-1.6/PORT/libdb.*' #libBin 'lib' false '644' ) - ( 'librun/librun.o' #libBin nil false '644' ) - ( 'librun/librun.a' #libBin nil false '644' ) - ( 'libbasic/libbasic.o' #libBin nil false '644' ) - ( 'libbasic2/libbasic2.o' #libBin nil false '644' ) - ( 'libbasic3/libbasic3.o' #libBin nil false '644' ) - ( 'libhtml/libhtml.o' #libBin nil false '644' ) - ( 'libcomp/libcomp.o' #libBin nil false '644' ) - ( 'libcomp/ObjFL*.o' #libBin nil false '644' ) - ( 'libcomp/ObjFL*.obj' #libBin nil false '644' ) - ( 'libcomp/ObjFL*.so' #libBin nil false '644' ) - ( 'libview/libview.o' #libBin nil false '644' ) - ( 'libview/GLX*.o' #libBin nil false '644' ) - ( 'libview/GLX*.obj' #libBin nil false '644' ) - ( 'libview/GLX*.so' #libBin nil false '644' ) - ( 'libview/XW*.o' #libBin nil false '644' ) - ( 'libview/XW*.obj' #libBin nil false '644' ) - ( 'libview/XW*.so' #libBin nil false '644' ) - ( 'libview2/libview2.o' #libBin nil false '644' ) - ( 'libwidg/libwidg.o' #libBin nil false '644' ) - ( 'libwidg2/libwidg2.o' #libBin nil false '644' ) - ( 'libwidg3/libwidg3.o' #libBin nil false '644' ) - ( 'libui/libui.o' #libBin nil false '644' ) - ( 'libjava/libjava.o' #libBin nil false '644' ) - -"/ ( 'libsnmp/libsnmp.*' #libBin nil false '644' ) -"/ ( 'contrib/libPVM/libPVM.*' #libBin nil false '644' ) - ( 'goodies/persistency/libdbase.o' #libBin nil false '644' ) -"/ ( 'libtable/libtable.*' #libBin nil false '644' ) - ( 'libtool/libtool.o' #libBin nil false '644' ) - ( 'libtool2/libtool2.o' #libBin nil false '644' ) -"/ ( 'libxt/libxt.*' #libBin nil false '644' ) -"/ ( 'librt/librt.*' #libBin nil false '644' ) +"/ ( 'librun/librun.o' #libBin nil false '644' ) +"/ ( 'librun/librun.a' #libBin nil false '644' ) ). ]. installGoodyFiles ifTrue:[ fileSpec := fileSpec , #( - ( 'goodies/rdoit/rdoit' #bin nil false '755' ) + ( 'goodies/rdoit/rdoit' #bin nil false '755' ) + ( 'goodies/xml-indelv/abbrev.stc' #pkg 'stx/goodies/xml-indelv' true ) + ). + ] ifFalse:[ + fileSpec := fileSpec , #( + ( 'goodies/persistency/libdbase.so' #pkg 'stx/goodies/persistency' true '644' ) ). ]. @@ -487,6 +362,45 @@ !STXInstaller methodsFor:'installing'! +addFilesToSpec:fileSpec relativeTo:rel fromINSTALLSpec:f + |s entry t cond dst| + + s := f asFilename readStream. + s isNil ifTrue:[^ self]. + [s atEnd] whileFalse:[ + entry := s nextLine. + (entry startsWith:$#) ifFalse:[ + t := entry asCollectionOfWords. + t size >= 2 ifTrue:[ + cond := t at:3 ifAbsent:nil. + (cond ~= 'optionalSource' + or:[installSourceFiles]) ifTrue:[ + ((rel startsWith:'goodies/') not + or:[installGoodyFiles]) ifTrue:[ + dst := t at:2. + (dst startsWith:'packages/stx/') ifTrue:[ + fileSpec add:(Array + with:(rel asFilename constructString:(t at:1)) + with:#pkg + with:('stx' asFilename constructString:(dst copyFrom:'packages/stx/' size+1)) + with:true). + ] ifFalse:[ + (dst = 'bin') ifTrue:[ + fileSpec add:(Array + with:(rel asFilename constructString:(t at:1)) + with:#bin + with:nil + with:true). + ] + ] + ] + ]. + ]. + ]. + ]. + s close. +! + changeWritability |msg| @@ -538,7 +452,18 @@ ^ true ]. - fileSpec := self specOfFilesToCopy. + fileSpec := self specOfFilesToCopy asOrderedCollection. + + actionPercentageHolder value:0. + "/ search for INSTALL.files specs, and add to list ... + actionTextHolder value:nil. + actionTextHolder value:(resources array:#('ST/X Installation' '' 'searching for packages to install...' '' '' '')) asStringCollection. + + topDir asFilename recursiveDirectoryContentsDo:[:f | + f asFilename baseName = 'INSTALL.files' ifTrue:[ + self addFilesToSpec:fileSpec relativeTo:f asFilename directoryName fromINSTALLSpec:(topDir asFilename construct:f). + ] + ]. filesToCopy := OrderedCollection new. @@ -720,12 +645,36 @@ actionTextHolder value:nil. actionTextHolder value:msg. - commandTraceView showCR:(resources string:'setting up symbolic links in doc/online ...'). - commandTraceView endEntry. + commandTraceView showCR:(resources string:'setting up symbolic links in doc/online ...'); endEntry. + installWhat == #full ifTrue:[ OperatingSystem executeCommand:('(cd ' , fullDir , '/doc/online ; make links)'). ] ifFalse:[ OperatingSystem executeCommand:('(cd ' , stxLibDir , '/doc/online ; make links)'). + + commandTraceView showCR:(resources string:'setting up symbolic links in lib ...'); endEntry. + + #( + 'libbasic/libbasic.so' + 'libbasic2/libbasic2.so' + 'libbasic3/libbasic3.so' + 'libcomp/libcomp.so' + 'libboss/libboss.so' + 'libview/*.so' + 'libview2/libview2.so' + 'libwidg/libwidg.so' + 'libwidg2/libwidg2.so' + 'libwidg3/libwidg3.so' + 'libhtml/libhtml.so' + 'libui/libui.so' + 'libtool/libtool.so' + 'libtool2/libtool2.so' + 'goodies/persistency/libdbase.so' + ) do:[:src | |cmd| + cmd := '(cd ' , stxLibDir , '/lib ; ln -s ../../packages/stx/' , src , ' . )'. + commandTraceView showCR:cmd; endEntry. + OperatingSystem executeCommand:cmd. + ]. ]. "Created: / 17.7.1996 / 15:24:19 / cg" @@ -820,6 +769,10 @@ ! recursiveCopy:src to:dst + self recursiveCopy:src to:dst print:true +! + +recursiveCopy:src to:dst print:doPrint |cmd srcF dstF d| srcF := src asFilename. @@ -837,29 +790,46 @@ 'not_delivered' ) includes:srcF baseName) ifFalse:[ srcF baseName includesMatchCharacters ifTrue:[ + doPrint ifTrue:[ + OperatingSystem isUNIXlike ifTrue:[ + commandTraceView showCR:('cp ' , srcF pathName , ' ' , dstF pathName). + ] ifFalse:[ + commandTraceView showCR:('copy ' , srcF pathName , ' ' , dstF pathName). + ]. + commandTraceView endEntry. + ]. srcF directory directoryContents do:[:fileName | ((srcF baseName) match:fileName) ifTrue:[ (#( 'CVS' 'not_delivered' ) includes:fileName) ifFalse:[ - self recursiveCopy:(srcF directory construct:fileName) to:dstF + self + recursiveCopy:(srcF directory construct:fileName) + to:dstF + print:false ] ] ] ] ifFalse:[ - OperatingSystem isUNIXlike ifTrue:[ - commandTraceView showCR:('cp ' , srcF pathName , ' ' , dstF pathName). - ] ifFalse:[ - commandTraceView showCR:('copy ' , srcF pathName , ' ' , dstF pathName). + doPrint ifTrue:[ + OperatingSystem isUNIXlike ifTrue:[ + commandTraceView showCR:('cp ' , srcF pathName , ' ' , dstF pathName). + ] ifFalse:[ + commandTraceView showCR:('copy ' , srcF pathName , ' ' , dstF pathName). + ]. + commandTraceView endEntry. ]. - commandTraceView endEntry. - srcF isDirectory ifFalse:[ (dstF exists and:[dstF isDirectory]) ifTrue:[ dstF := dstF construct:srcF baseName. ]. - srcF copyTo:dstF + srcF copyTo:dstF. + OperatingSystem isUNIXlike ifTrue:[ + srcF isExecutable ifTrue:[ + dstF makeExecutableForAll + ] + ] ] ifTrue:[ d := dstF asFilename construct:srcF baseName. (d exists) ifFalse:[ @@ -868,6 +838,7 @@ srcF directoryContents do:[:fileName | self recursiveCopy:(srcF construct:fileName) to:d + print:false ] ] ]