From 3f44de0dbe2d8bd582eaa5c02cf2f8c75ba1764d Mon Sep 17 00:00:00 2001 From: kwindrem <58538395+kwindrem@users.noreply.github.com> Date: Tue, 21 Nov 2023 09:12:15 -0800 Subject: [PATCH] fixed: PackageManager isn't in menus after v5.14 install --- CommonResources | 2 +- blindInstall/SetupHelperVersion | 2 +- changes | 4 + updateFileSets | 6 +- updateFileSets (original) | 912 +++++++++++++++++++++++++++++++ updateFileSets-partilaFileSets | 827 ++++++++++++++++++++++++++++ venus-data.UninstallPackages.tgz | Bin 1522 -> 1522 bytes venus-data.tgz | Bin 84321 -> 97821 bytes version | 2 +- 9 files changed, 1749 insertions(+), 6 deletions(-) create mode 100755 updateFileSets (original) create mode 100755 updateFileSets-partilaFileSets diff --git a/CommonResources b/CommonResources index 6fca193..ab45060 100755 --- a/CommonResources +++ b/CommonResources @@ -195,8 +195,8 @@ updateActiveFile () logMessage "ERROR: specified soure file $sourceFile does not exist - can't continue with install" scriptAction='UNINSTALL' installFailed=true + return fi - return destinationFile="$2" # use active file for both source and destination else diff --git a/blindInstall/SetupHelperVersion b/blindInstall/SetupHelperVersion index 95cd864..0b880fd 100644 --- a/blindInstall/SetupHelperVersion +++ b/blindInstall/SetupHelperVersion @@ -1 +1 @@ -v5.14 +v5.15 diff --git a/changes b/changes index b0696cc..3c505ef 100644 --- a/changes +++ b/changes @@ -1,3 +1,7 @@ +v5.15: + fixed: PackageManager isn't in menus after v5.14 install + updateFileSets: fixed: NO_REPLACEMENT in existing file sets that should link to other sets + v5.14: v5.13 did not include blind install diff --git a/updateFileSets b/updateFileSets index 37ffec9..54c9ebd 100755 --- a/updateFileSets +++ b/updateFileSets @@ -526,7 +526,7 @@ for package in $packageList; do previousLink="../$version2/$baseName" checkLinks=true fi - elif $useOrigFlag2 ; then #################### is not working + elif $useOrigFlag2 ; then if $replacement1exists ; then logMessage "ERROR $package $basename file in $version1 conflicts with USE_ORIGINAL in $version2" touch "$fileSet1/$baseName.CHECK_REPLACEMENT" @@ -534,6 +534,7 @@ for package in $packageList; do else touch "$replacement1.USE_ORIGINAL" rm -f "$replacement1" + touch "$replacement2.USE_ORIGINAL" checkLinks=true fi fi @@ -556,7 +557,6 @@ for package in $packageList; do elif ! $useOrigFlag2 ; then touch "$replacement2.USE_ORIGINAL" rm -f "$replacement2" -logMessage "#### $baseName setting USE_ORIGINAL v2 $version2" fi if $replacement2isRealFile ; then logMessage "ERROR $package $baseName $verson1 has file but matches $version1 with USE_ORIGINAL set" @@ -573,7 +573,7 @@ logMessage "#### $baseName setting USE_ORIGINAL v2 $version2" replacement1="$fileSet1/$baseName" replacement1isRealFile=false useOrigFlag1=false - if [ -f "$replacement1" ] && [ -L "$replacement1" ]; then + if [ -f "$replacement1" ] && [ ! -L "$replacement1" ]; then replacement1isRealFile=true elif [ -f "$replacement1.USE_ORIGINAL" ]; then useOrigFlag1=true diff --git a/updateFileSets (original) b/updateFileSets (original) new file mode 100755 index 0000000..bf027e2 --- /dev/null +++ b/updateFileSets (original) @@ -0,0 +1,912 @@ +#!/bin/bash + +# this script updates file sets for all packages in the list below +# it scans all Venus OS versions in the stockFiles directory +# +# This is a unix bash script and should be run on a host computer, not a GX device +# Windows will not run this script natively. +# However Windows 10 apparently supports bash: +# https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/ +# +# packages to be evaulated may be specified on the command line +# use 'all' to process all packages in the allPackages list below +# +# file sets which contain real files (not just links and flags) +# for a version NOT contained in StockFiles will be flagged with UNUSED_FILE_SET +# this can occur if you remove versions from StockFiles. +# For example, you may wish to remove beta versions after a beta test cycle. +# file sets which do not contain any real files (just symbolic links or flag files) are removed + +# stockFiles contains excerpts from Venus OS file systems +# and must be stored on the host +# within a directory with name of the exact Venus OS version +# and within the stockFiles directory defined below. +# +# 1) missing file set directories are created +# 2) if any files in fileList don't exist (eg, a new file was added to file list), +# the original file in stockFiles is copied to the version directory +# 3) if the original file does not exist, the file is so marked with .NO_STOCK_FILE +# this situation must be corrected: +# version-dependent files without an original MUST use an "alternate original" +# specified in FileSets. This permits version checks for these files too +# replacement files that do not replace a stock file should be placed in version-indpendent file storage +# (FileSets/). +# If these replacement files vary with Venus OS versions, they MUST include an "alternate original". +# This permits version checks for these files too +# +# when a stock file set does not exist, this script will check files from existing file sets +# for a matching original file. +# If a match is found, the replacement file is automatically placed in the new file set +# If no match is found, the missing replacement is flagged and a suitable replacement must be created manually. +# +# existing file sets not in the stockFiles are checked. If empty, they are removed. +# If not empty they are marked UNUSED_FILE_SET and flagged for manual removal. +# +# file sets will include all files listed in fileList. +# this allows the setup script to always have a replacement for known versions +# without searching other file sets for a matching original file +# (there have been cases where installation fails because the search for a matching original could not be found) +# if the stock file matches a previous version, a symbolic link for the replacement is created +# rather than duplicating the file +# this also makes maintanence easier since matching replacement can be identified +# +# original files in the file set are not normally used when installing the package +# however, they are retained so that the setup script can attempt to create a file set for an unknown Venus OS version +# this of course may fail if a matching original file can not be found +# +# if no end action is specified on the command line, the user is prompted for how to proceed for each package processed +# end actions specified will bypass this prompt and proceed with the next package +# end actions: +# -p do not update the package but preserve the working copy +# -d do not update the package and deete the working copy +# -u update the package with changes in the working copy's file sets +# +# -r restore package from backup if present - no processing is performed on the packge, backup or working copy +# backups are automatically created when updating a package +# Note: the restore option is not offered at the end prompt since the update has not been applied yet. +# +# if errors occur, the needed corrections may be more obvious by comparing the package and the working copy +# for this reason, preserving the working copy is recommended if errors are expected + +# set allPackages to all packages this script should evalueate if no options are included +allPackages="SetupHelper GuiMods ExtTransferSwitch ShutdownMonitor VeCanSetup RpiDisplaySetup RpiGpioSetup" +## GeneratorConnector TankRepeater are obsolete and file sets should not be updated. + +# set these as appropriate to your system +packageRoot="/Users/Kevin/GitHub" +stockFiles="$packageRoot/StockVenusOsFiles" + +totalErrors=0 +totalWarnings=0 +packageErrors=0 +packageWarnings=0 + +outputtingProgress=false + +function logMessage () +{ + if $outputtingProgress ; then + clearProgress + fi + echo "$*" + if [[ "$*" == "ERROR"* ]]; then + ((totalErrors++)) + ((packageErrors++)) + elif [[ "$*" == "WARNING"* ]]; then + ((totalWarnings++)) + ((packageWarnings++)) + fi +} + +function outputProgressTick () +{ + if ! $outputtingProgress ; then + echo -en "$beginProgressString" + fi + echo -en "$1" + outputtingProgress=true +} + +function clearProgress () +{ + echo -ne "\r\033[2K" + outputtingProgress=false +} + +beginProgressString="" + +function beginProgress () +{ + # erase the line but stay on it + if $outputtingProgress ; then + echo -ne "\r\033[2K" + fi + if [ ! -z "$1" ]; then + beginProgressString="$1 " + echo -en "$beginProgressString" + + outputtingProgress=true + fi +} + + +function versionStringToNumber () +{ + local local p4="" ; local p5="" ; local p6="" + local major=""; local minor="" + + # first character should be 'v' so first awk parameter will be empty and is not prited into the read command + # + # version number formats: v2.40, v2.40~6, v2.40-large-7, v2.40~6-large-7 + # so we must adjust how we use paramters read from the version string + # and parsed by awk + # if no beta make sure release is greater than any beta (i.e., a beta portion of 999) + + read major minor p4 p5 p6 <<< $(echo $1 | awk -v FS='[v.~-]' '{print $2, $3, $4, $5, $6}') + ((versionNumber = major * 1000000 + minor * 1000)) + if [ -z $p4 ] || [ $p4 = "large" ]; then + ((versionNumber += 999)) + else + ((versionNumber += p4)) + fi + if [ ! -z $p4 ] && [ $p4 = "large" ]; then + ((versionNumber += p5 * 1000)) + large=$p5 + elif [ ! -z $p6 ]; then + ((versionNumber += p6 * 1000)) + fi +} + +# removing a nested set of directories sometimes results in permission denied the first time + # so try several times to be sure + +function deleteNestedDirectories () +{ + rm -rf "$1" &> /dev/null + if [ -d "$1" ] ; then + rm -rf "$1" &> /dev/null + if [ -d "$1" ] ; then + rm -rf "$1" + fi + fi +} + + +yesNoPrompt () +{ + response='' + while true; do + /bin/echo -n "$*" + read response + case $response in + [yY]*) + yesResponse=true + break + ;; + [nN]*) + yesResponse=false + break + ;; + *) + esac + done +} + + +#### script code begins here +packageList="" +doAllPackages=false +globalEndAction='' +for param in $* ; do + case $param in + -[pP]*) + logMessage "working copies will be preserved - packages will not be updated" + globalEndAction='preserve' + ;; + -[dD]*) + logMessage "working copies will be deleted - packages will not be updated" + globalEndAction='delete' + ;; + -[uU]*) + logMessage "packages will be updated without prompting" + globalEndAction='update' + ;; + -[rR]*) + logMessage "packages will be restored from backups" + globalEndAction='restore' + ;; + all) + doAllPackages=true + ;; + *) + packageList+=" "$1 + esac + shift +done +if $doAllPackages ; then + packageList=$allPackages +elif [ -z "$packageList" ]; then + logMessage "ERROR no packages specified - use 'all' for all packages" + exit +fi + +if [ "$globalEndAction" == "restore" ]; then + for package in $packageList; do + sourceDirectory="$packageRoot/$package" + sourceFiles="$sourceDirectory/FileSets" + backupDirectory="$packageRoot/$package.backup" + backupFiles="$backupDirectory/FileSets" + if [ ! -d "$backupDirectory" ]; then + logMessage "WARNING $package: no backup found - package NOT restored" + continue + fi + logMessage "WARNING $package: restored from backup" + deleteNestedDirectories "$sourceFiles" + mv "$backupFiles" "$sourceFiles" + if [ -f "$backupFiles/obsoleteVersion" ]; then + mv -f "$backupFiles/obsoleteVersion" "$sourceDirectory" + fi + if [ -f "$backupFiles/firstCompatibleVersion" ]; then + mv -f "$backupFiles/firstCompatibleVersion" "$sourceDirectory" + fi + deleteNestedDirectories $backupDirectory + done + exit +fi + +# make the version list from the directories in stock files +# version lists are sorted so the most recent version is first +tempList=() +stockVersionList=($(ls -d "$stockFiles"/v* 2> /dev/null)) +for entry in ${stockVersionList[@]} ; do + version=$(basename $entry) + versionFile="$stockFiles/$version/opt/victronenergy/version" + realVersion=$(cat "$versionFile" | head -n 1) + + if [ $version != $realVersion ]; then + directoryName=$(basename $stockFiles)/$version + logMessage "ERROR $directoryName name does not mactch Venus $realVersion - can't continue" + exit + fi + versionStringToNumber $version + tempList+=("$version:$versionNumber") +done +stockVersionList=( $(echo ${tempList[@]} | tr ' ' '\n' | sort -t ':' -r -n -k 2 | uniq ) ) + +for package in $packageList; do + packageErrors=0 + packageWarnings=0 + sourceDirectory="$packageRoot/$package" + sourceFiles="$sourceDirectory/FileSets" + workingDirectory="$packageRoot/$package.copy" + workingFiles="$workingDirectory/FileSets" + + if [ ! -d "$sourceDirectory" ] || [ ! -f "$sourceDirectory/version" ]; then + logMessage "$sourceDirectory - not a package directory" + continue + fi + if [ ! -d "$sourceFiles" ]; then + logMessage "$package: no file sets" + continue + fi + if [ ! -f "$sourceFiles/fileList" ]; then + logMessage "$package: no version-dependent files" + continue + fi + fileList=$(cat "$sourceFiles/fileList") + if [ -z "$fileList" ]; then + logMessage "WARNING $package: empty file list" + continue + fi + + # make copy of source package FileSets + beginProgress "$package: making working copy" + deleteNestedDirectories "$workingDirectory" + mkdir -p "$workingDirectory" + cp -pR "$sourceFiles" "$workingFiles" + if [ -f "$sourceDirectory/obsoleteVersion" ]; then + cp -p "$sourceDirectory/obsoleteVersion" "$workingDirectory" + fi + if [ -f "$sourceDirectory/firstCompatibleVersion" ]; then + cp -p "$sourceDirectory/firstCompatibleVersion" "$workingDirectory" + fi + # compute compatible version range + if [ -f "$workingDirectory/obsoleteVersion" ]; then + versionStringToNumber $(cat "$workingDirectory/obsoleteVersion") + obsoleteVersion=$versionNumber + else + obsoleteVersion=999999999 + fi + if [ -f "$workingDirectory/firstCompatibleVersion" ]; then + versionStringToNumber $(cat "$workingDirectory/firstCompatibleVersion") + firstVersion=$versionNumber + else + firstVersion=0 + fi + + # append the package's existing file sets NOT in the stock versions + # to the END of the stock files list + # this insures these file sets contain only files used by that or other unused versions + sourceFileSets=($(ls -d "$sourceFiles"/v* 2> /dev/null)) + tempList=() + for entry in ${sourceFileSets[@]} ; do + version=$(basename $entry) + if [ ! -d "$stockFiles/$version" ]; then + versionStringToNumber $version + tempList+=($version:$versionNumber) + fi + done + existingFileSets=( $(echo ${tempList[@]} | tr ' ' '\n' | sort -t ':' -r -n -k 2 | uniq ) ) + allFileSets=(${stockVersionList[@]}) + allFileSets+=(${existingFileSets[@]}) + + # move incompatible versions to the end of the list + # so that real files end up in a supported file set + obsoleteFileSets=() + tempList=() + for entry in ${allFileSets[@]} ; do + IFS=':' read version versionNumber <<< "$entry" + if (( $versionNumber >= $obsoleteVersion )) || (( $versionNumber < $firstVersion )); then + obsoleteFileSets+=($version:$versionNumber) + else + tempList+=($version:$versionNumber) + fi + done + allFileSets=(${tempList[@]}) + allFileSets+=(${obsoleteFileSets[@]}) + allFileSetsLength=${#allFileSets[@]} + + # clean up flag files from a previous run + rm -f "$workingFiles"/*/INCOMPATIBLE_VERSION + rm -f "$workingFiles"/*/UNUSED_FILE_SET + rm -f "$workingFiles"/*/INCOMPLETE + rm -f "$workingFiles"/*/COMPLETE + rm -f "$workingFiles"/*/LINKS_ONLY + rm -f "$workingFiles"/*/*.NO_ORIG + rm -f "$workingFiles"/*/*.NO_REPLACEMENT + rm -f "$workingFiles"/*/*.NO_REPLACEMENT_LINK + rm -f "$workingFiles"/*/*.CHECK_REPLACEMENT + rm -f "$workingFiles"/*/NEW_FILE_SET + rm -f "$workingFiles"/*/*.MATCHES_PREVIOUS + + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version versionNumber <<< "${allFileSets[$i1]}" + + fileSet1="$workingFiles/$version" + if [ ! -d "$fileSet1" ]; then + mkdir "$fileSet1" + touch "$fileSet1/NEW_FILE_SET" + fi + # check to see if package is compatible with this Venus version + if (( $versionNumber >= $obsoleteVersion )) || (( $versionNumber < $firstVersion )); then + touch "$fileSet1/INCOMPATIBLE_VERSION" + fi + + done + + beginProgress "$package: updating file sets" + for file in $fileList ; do + baseName=$(basename "$file") + outputProgressTick "." + # use alternate original if present + if [ -f "$workingFiles/$baseName.ALT_ORIG" ]; then + useAltOrig=true + altOrigFile=$(cat "$workingFiles/$baseName.ALT_ORIG") + else + useAltOrig=false + altOrigFile="" + fi + + # move real files to newest file set + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + stockFileSet1="$stockFiles/$version1" + # if stock file set does not exist, or this is an incompatible version + # don't move files here + # this will allow file sets for versions no longer supported to be removed + # an error result if a replacement in this version is needed for other file sets + if [ ! -d "$stockFileSet1" ] || [ -f "$fileSet1/INCOMPATIBLE_VERSION" ]; then + continue + fi + + replacement1="$fileSet1/$baseName" + if [ -f "$replacement1" ] && [ ! -L "$replacement1" ]; then + replacement1exists=true + else + replacement1exists=false + fi + orig1="$fileSet1/$baseName.orig" + # select appropirate stock file + if $useAltOrig ; then + stockFile1="$stockFileSet1$altOrigFile" + else + stockFile1="$stockFileSet1$file" + fi + + if [ ! -f "$stockFile1" ]; then + if $useAltOrig ; then + logMessage "ERROR $package: $version1 $baseName stock file missing (move) - check ALT_ORIG" + touch "$fileSet1/$baseName.CHECK_ALT_ORIG" + else + logMessage "ERROR $package: $version1 $baseName stock file missing (move) - consider using an ALT_ORIG" + fi + touch "$fileSet1/$baseName.NO_STOCK_FILE" + touch "$fileSet1/INCOMPLETE" + logMessage "can't continue" + exit + fi + + # look for a match (stock files) in older file sets + # and relocate if found + checkLinks=false + for (( i2 = $i1 + 1; i2 < $allFileSetsLength; i2++ )); do + IFS=':' read version2 version2number <<< "${allFileSets[$i2]}" + fileSet2="$workingFiles/$version2" + replacement2="$fileSet2/$baseName" + orig2="$fileSet2/$baseName.orig" + + if [ -L "$replacement2" ] ; then + replacement2isLink=true + replacement2isRealFile=false + elif [ -f "$replacement2" ] ; then + replacement2isRealFile=true + replacement2isLink=false + else + replacement2isRealFile=false + replacement2isLink=false + fi + # USE_ORIGINAL is valid only if the original file also exists (and is not a sym link) + if [ -f "$replacement2.USE_ORIGINAL" ] && [ -f $orig2 ] && [ ! -L $orig2 ]; then + useOrigFlag2=true + else + useOrigFlag2=false + fi + if $replacement2isRealFile || $useOrigFlag2 || [ -f "$fileSet2/NEW_FILE_SET" ]; then + doStockCheck=true + else + doStockCheck=false + fi + + stockMatch=false + if $doStockCheck ; then + if [ -d "$stockFiles/$version2" ]; then + # select appropirate original file + if $useAltOrig ; then + stockFile2="$stockFiles/$version2$altOrigFile" + else + stockFile2="$stockFiles/$version2$file" + fi + if [ ! -f "$stockFile2" ]; then + if $useAltOrig ; then + logMessage "ERROR $package: $version2 $baseName stock file missing - check ALT_ORIG" + touch "$fileSet2/$baseName.CHECK_ALT_ORIG" + else + logMessage "ERROR $package: $version2 $baseName stock file missing - consider using an ALT_ORIG" + fi + touch "$fileSet2/$baseName.NO_STOCK_FILE" + touch "$fileSet2/INCOMPLETE" + logMessage "can't continue" + exit + fi + + # stock files match + cmp -s "$stockFile2" "$stockFile1" > /dev/null + if [ $? -eq 0 ]; then + stockMatch=true + fi + # no stock files but existing file set + elif $replacement2isRealFile && [ -f "$orig2" ] ; then + # existing orig matches stock + cmp -s "$orig2" "$stockFile1" + if [ $? -eq 0 ] ;then + stockMatch=true + fi + fi + fi + if $stockMatch ; then + moveReplacement=true + if $replacement2isRealFile ; then + if $replacement1exists ; then + cmp -s "$replacement1" "$replacement2" /dev/null + if [ $? -ne 0 ]; then + logMessage "ERROR $package: $baseName $version1 and $version2 replacements differ but same stock files" + touch "$fileSet1/$baseName.CHECK_REPLACEMENT" + touch "$fileSet2/$baseName.CHECK_REPLACEMENT" + moveReplacement=false + fi + fi + if $moveReplacement ; then + mv -f "$replacement2" "$replacement1" + rm -f "$fileSet1/$baseName.USE_ORIGINAL" + ln -sf "../$version1/$baseName" "$replacement2" + cp -f "$stockFile1" "$orig1" + previousLink="../$version2/$baseName" + checkLinks=true + fi + elif $useOrigFlag2 ; then + touch "$replacement1.USE_ORIGINAL" + touch "$replacement2.USE_ORIGINAL" + fi + + if [ -f "$orig2" ]; then + mv -f "$orig2" "$orig1" + fi + fi + + # relink replacement to new location + if $checkLinks && $replacement2isLink ; then + if [ "$(readlink "$replacement2")" == "$previousLink" ]; then + ln -sf "../$version1/$baseName" "$replacement2" + fi + fi + done # for i2 + done # for i1 (update) + + # make another pass and fill in links that were missed in the first past + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + replacement1="$fileSet1/$baseName" + # must be a real replacement (not link) + if [ ! -f "$replacement1" ] || [ -L "$replacement1" ]; then + continue + fi + + stockFileSet1="$stockFiles/$version1" + if [ ! -d "$stockFileSet1" ]; then + continue + fi + + # if no replacement, search for one that we can link to + for (( i2 = $i1 + 1; i2 < $allFileSetsLength; i2++ )); do + IFS=':' read version2 version2number <<< "${allFileSets[$i2]}" + fileSet2="$workingFiles/$version2" + replacement2="$fileSet2/$baseName" + # skip if replacement already exists + if [ -e "$replacement2" ] ; then + continue + fi + + # select appropirate stock files + if $useAltOrig ; then + stockFile1="$stockFileSet1$altOrigFile" + stockFile2="$stockFiles/$version2$altOrigFile" + else + stockFile1="$stockFileSet1$file" + stockFile2="$stockFiles/$version2$file" + fi + # stock files match - create link + cmp -s "$stockFile2" "$stockFile1" > /dev/null + if [ $? -eq 0 ]; then + ln -sf "../$version1/$baseName" "$replacement2" + fi + done # for i2 + done # for i1 (missing sym links) + done # for file + + # check to see if a non-versioned file is appropriate -- but only if no errors were found + reloadFileList=false + if (( $packageErrors == 0 )) ; then + for file in $fileList ; do + realFileCount=0 + baseName=$(basename "$file") + + # file must be be using an alternate stock file + if [ ! -f "$workingFiles/$baseName.ALT_ORIG" ]; then + continue + fi + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + replacement1="$fileSet1/$baseName" + if [ -f "$replacement1" ] && [ ! -L "$replacement1" ]; then + (( realFileCount += 1 )) + + fi + done + + if (( realFileCount == 1 )); then + yesNoPrompt "$package: $baseName - make version-independent (y / n)?: " + if $yesResponse ; then + logMessage "$baseName.ALT_ORIG.UNUSED and $(basename $fileListFile.old) can be removed" + mv -f "$workingFiles/$baseName.ALT_ORIG" "$workingFiles/$baseName.ALT_ORIG.UNUSED" + fileListFile="$workingFiles/fileList" + grep -v "$file" "$fileListFile" > "$fileListFile.tmp" + mv -f "$fileListFile" "$fileListFile.old" + mv -f "$fileListFile.tmp" "$fileListFile" + reloadFileList=true + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + if [ ! -d "$fileSet1" ]; then + continue + fi + replacementFile="$fileSet1/$baseName" + if [ -L "$replacementFile" ]; then + rm -f "$replacementFile" + elif [ -f "$replacementFile" ]; then + mv "$replacementFile" "$workingFiles" + rm -f "$replacementFile.orig" + fi + done + else + logMessage "$baseName remains in version-dependent file sets" + fi + fi + done # for file (version independent check) + fi + + # reload fileList if changed above + if $reloadFileList ; then + fileList=$(cat "$workingFiles/fileList") + if [ -z "$fileList" ]; then + logMessage "WARNING $package: empty file list" + continue + fi + fi + + linksOnlyVersions=() + realFileVersions=() + linksOnlyVersionCount=0 + realFilesVersionCount=0 + beginProgress "$package: final checks" + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + if [ ! -d "$fileSet1" ]; then + continue + fi + outputProgressTick "." + + replacementFilesExist=false + replacmentSymLinksExist=false + for file in $fileList ; do + baseName=$(basename "$file") + + if [ -f "$workingFiles/$baseName.ALT_ORIG" ]; then + useAltOrig=true + altOrigFile=$(cat "$workingFiles/$baseName.ALT_ORIG") + else + useAltOrig=false + altOrigFile="" + fi + + replacement1="$fileSet1/$baseName" + orig1="$fileSet1/$baseName.orig" + + # do final checks for -- must be file, link or USE_ORIG but not more than one + if [ -L "$replacement1" ]; then + symLinkReplacement=true + realReplacement=false + anyReplacement=true + elif [ -f "$replacement1" ]; then + realReplacement=true + symLinkReplacement=false + anyReplacement=true + else + realReplacement=false + symLinkReplacement=false + anyReplacement=false + fi + if [ -f "$orig1" ]; then + origExists=true + else + origExists=false + fi + if [ -f "$replacement1.USE_ORIGINAL" ]; then + useOrigFlag=true + else + useOrigFlag=false + fi + + if ! $anyReplacement && ! $useOrigFlag; then + logMessage "ERROR $package: $baseName $version1 no replacement" + touch "$replacement1.NO_REPLACEMENT" + stockFileSet1="$stockFiles/$version1" + if $useAltOrig ; then + stockFile1="$stockFileSet1$altOrigFile" + else + stockFile1="$stockFileSet1$file" + fi + # fill in missing original file if it exists + if [ ! -f "$orig1" ] && [ -f "$stockFile1" ]; then + cp "$stockFile1" "$orig1" + fi + elif $anyReplacement && $useOrigFlag; then + logMessage "WARNING $package $version1 $baseName replacement exists - removing USE_ORIGINAL flag" + rm "$replacement1.USE_ORIGINAL" + fi + if $symLinkReplacement && $origExists ; then + logMessage "WARNING $package: $baseName $version1 should NOT contain link AND orig file" + elif $realReplacement && ! $origExists ; then + logMessage "ERROR $package: $baseName $version1 must contain real file AND orig file" + touch "$replacement1.NO_ORIG" + fi + + if [ -f "$replacement1.NO_REPLACEMENT" ] \ + || [ -f "$replacement1.CHECK_REPLACEMENT" ] \ + || [ -f "$replacement1.NO_ORIG" ] ; then + touch "$fileSet1/INCOMPLETE" + fi + + # identify real file & symlink in file set for later + if $symLinkReplacement ; then + replacmentSymLinksExist=true + fi + if $realReplacement || ( $useOrigFlag && $origExists ) ; then + replacementFilesExist=true + fi + done # for file + + # if all replacement files are in place, mark the file set COMPLETE + # so _checkFileSets can skip all checks + # COMPLETE tells _checkFileSets to skip all checks and accept the file set as is + if [ -f "$fileSet1/INCOMPLETE" ]; then + rm -f "$fileSet1/COMPLETE" + else + touch "$fileSet1/COMPLETE" + fi + + if ! $replacementFilesExist && $replacmentSymLinksExist ; then + touch "$fileSet1/LINKS_ONLY" + linksOnlyVersions+=" $version1" + ((linksOnlyVersionCount++)) + elif $replacementFilesExist ; then + realFileVersions+=" $version1" + ((realFilesVersionCount++)) + fi + + # remove file sets for incompatible Venus OS versions + if [ -e "$fileSet1/INCOMPATIBLE_VERSION" ]; then + if $replacementFilesExist ; then + logMessage "WARNING $package: not compatible with Venus $version1 but not empty - consider manual removal" + else + if [ ! -f "$fileSet1/NEW_FILE_SET" ]; then + logMessage "WARNING $package: not compatible with Venus $version1 - file set will not be included in update" + fi + rm -Rf "$fileSet1" + + fi + # not in stock files list + elif [ ! -d "$stockFiles/$version1" ]; then + if $replacementFilesExist ; then + logMessage "WARNING $package: $version1 no longer used but not empty - manual remove is OK" + touch "$fileSet1/UNUSED_FILE_SET" + # no files (empty file set) + else + # log removal of a previous file set if not created with this run + # if it was created with this run, delete it silently + if [ ! -f "$fileSet1/NEW_FILE_SET" ]; then + logMessage "WARNING $package: $version1 no longer used and contains only links - removing file set" + fi + rm -rf "$fileSet1" + fi + fi + + if [ -f "$fileSet1/NEW_FILE_SET" ]; then + logMessage "$package: new file set $version1" + fi + + # remove temporary files + done # for i1 (final checks) + rm -f "$workingFiles/v"*/*tmp + rm -f "$workingFiles/v"*/NEW_FILE_SET + + if [ ! -z "$realFileVersions" ]; then + logMessage "$package: $realFilesVersionCount file sets containing real files:$realFileVersions" + fi + if [ ! -z "$linksOnlyVersions" ]; then + logMessage "$package: $linksOnlyVersionCount file sets containing only links:$linksOnlyVersions" + fi + + if [ "$packageErrors" == 0 ]; then + errorText="no errors " + else + errorText="$totalErrors ERRORS " + fi + if [ "$packageWarnings" == 0 ]; then + warningText="no warnings" + else + warningText="$totalWarnings WARNINGS" + fi + + logMessage "$package complete $errorText $warningText" + + baseName=$(basename $workingDirectory) + + if [ -z "$globalEndAction" ]; then + echo + echo "select to finish:" + echo " update $package (u)" + echo " preserve working copy for inspection (p)" + echo " discard working copy (d)" + while true ; do + read -p "choose action from list above (u / p / d): " response + case $response in + [uU]*) + endAction='update' + break + ;; + [pP]*) + endAction='preserve' + break + ;; + [dD]*) + endAction='delete' + break + ;; + *) + esac + done + else + endAction=$globalEndAction + fi + + case $endAction in + preserve) + logMessage "$package unchanged - changes preserved as $baseName" + ;; + delete) + logMessage "$package unchanged - $baseName removed" + deleteNestedDirectories "$workingDirectory" + ;; + update) + logMessage "$package: updating file sets - backup in $package.backup" + deleteNestedDirectories "$package.backup" + mkdir "$package.backup" + mv "$sourceFiles" "$package.backup" + if [ -f "$sourceDirectory/obsoleteVersion" ]; then + mv -f "$sourceDirectory/obsoleteVersion" "$package.backup" + fi + if [ -f "$sourceDirectory/firstCompatibleVersion" ]; then + mv -f "$sourceDirectory/firstCompatibleVersion" "$package.backup" + fi + + deleteNestedDirectories "$sourceFiles" + mv "$workingFiles" "$sourceFiles" + if [ -f "$workingDirectory/obsoleteVersion" ]; then + mv -f "$workingDirectory/obsoleteVersion" "$sourceDirectory" + fi + if [ -f "$workingDirectory/firstCompatibleVersion" ]; then + mv -f "$workingDirectory/firstCompatibleVersion" "$sourceDirectory" + fi + deleteNestedDirectories $workingDirectory + ;; + *) + logMessage "ERROR: invalid end action $endAction" + esac +done # for package + +# review all file sets and report any that only contain sym links across all packages +# it would be possile to remove those verions from stock files without loosing any data +# this check is only done if updating all file sets and there are no errors +if $doAllPackages && [ "$totalErrors" == 0 ]; then + for entry in ${stockVersionList[@]} ; do + IFS=':' read version versionNumber <<< "$entry" + linksOnly=true + for package in $packageList; do + fileSet="$packageRoot/$package/FileSets/$version" + if [ ! -e "$fileSet/LINKS_ONLY" ]; then + linksOnly=false + break + fi + done + if $linksOnly ; then + logMessage "$version: only links in all packages - stock version could be removed" + fi + done +fi + +if [ "$totalErrors" == 0 ]; then + errorText="no errors " +else + errorText="$totalErrors ERRORS " +fi +if [ "$totalWarnings" == 0 ]; then + warningText="no warnings" +else + warningText="$totalWarnings WARNINGS" +fi + +logMessage "updateFileSets complete $errorText $warningText" diff --git a/updateFileSets-partilaFileSets b/updateFileSets-partilaFileSets new file mode 100755 index 0000000..3194df8 --- /dev/null +++ b/updateFileSets-partilaFileSets @@ -0,0 +1,827 @@ +#!/bin/bash + +# this script updates file sets for all packages in the list below +# it scans all Venus OS versions in the stockFiles directory +# +# This is a unix bash script and should be run on a host computer, not a GX device +# Windows will not run this script natively. +# However Windows 10 apparently supports bash: +# https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/ +# +# packages to be evaulated may be specified on the command line +# use 'all' to process all packages in the allPackages list below +# +# file sets which contain real files (not just links and flags) +# for a version NOT contained in StockFiles will be flagged with UNUSED_FILE_SET +# this can occur if you remove versions from StockFiles. +# For example, you may wish to remove beta versions after a beta test cycle. +# file sets which do not contain any real files (just symbolic links or flag files) are removed + +# stockFiles contains excerpts from Venus OS file systems +# and must be stored on the host +# within a directory with name of the exact Venus OS version +# and within the stockFiles directory defined below. +# +# 1) missing file set directories are created +# 2) if any files in fileList don't exist (eg, a new file was added to file list), +# the original file in stockFiles is copied to the version directory +# 3) if the original file does not exist, the file is so marked with .NO_STOCK_FILE +# this situation must be corrected: +# version-dependent files without an original MUST use an "alternate original" +# specified in FileSets. This permits version checks for these files too +# replacement files that do not replace a stock file should be placed in version-indpendent file storage +# (FileSets/). +# If these replacement files vary with Venus OS versions, they MUST include an "alternate original". +# This permits version checks for these files too +# +# when a stock file set does not exist, this script will check files from existing file sets +# for a matching original file. +# If a match is found, the replacement file is automatically placed in the new file set +# If no match is found, the missing replacement is flagged and a suitable replacement must be created manually. +# +# existing file sets not in the stockFiles are checked. If empty, they are removed. +# If not empty they are marked UNUSED_FILE_SET and flagged for manual removal. +# +# file sets will include all files listed in fileList. +# this allows the setup script to always have a replacement for known versions +# without searching other file sets for a matching original file +# (there have been cases where installation fails because the search for a matching original could not be found) +# if the stock file matches a previous version, a symbolic link for the replacement is created +# rather than duplicating the file +# this also makes maintanence easier since matching replacement can be identified +# +# original files in the file set are not normally used when installing the package +# however, they are retained so that the setup script can attempt to create a file set for an unknown Venus OS version +# this of course may fail if a matching original file can not be found +# +# if no end action is specified on the command line, the user is prompted for how to proceed for each package processed +# end actions specified will bypass this prompt and proceed with the next package +# end actions: +# -p do not update the package but preserve the working copy +# -d do not update the package and deete the working copy +# -u update the package with changes in the working copy's file sets +# +# -r restore package from backup if present - no processing is performed on the packge, backup or working copy +# backups are automatically created when updating a package +# Note: the restore option is not offered at the end prompt since the update has not been applied yet. +# +# if errors occur, the needed corrections may be more obvious by comparing the package and the working copy +# for this reason, preserving the working copy is recommended if errors are expected + +# set allPackages to all packages this script should evalueate if no options are included +allPackages="SetupHelper GuiMods ExtTransferSwitch ShutdownMonitor VeCanSetup RpiDisplaySetup RpiGpioSetup" +## GeneratorConnector TankRepeater are obsolete and file sets should not be updated. + +# set these as appropriate to your system +packageRoot="/Users/Kevin/GitHub" +stockFiles="$packageRoot/StockVenusOsFiles" + +totalErrors=0 +totalWarnings=0 +packageErrors=0 +packageWarnings=0 + +outputtingProgress=false + +function logMessage () +{ + if $outputtingProgress ; then + clearProgress + fi + echo "$*" + if [[ "$*" == "ERROR"* ]]; then + ((totalErrors++)) + ((packageErrors++)) + elif [[ "$*" == "WARNING"* ]]; then + ((totalWarnings++)) + ((packageWarnings++)) + fi +} + +function outputProgressTick () +{ + if ! $outputtingProgress ; then + echo -en "$beginProgressString" + fi + echo -en "$1" + outputtingProgress=true +} + +function clearProgress () +{ + echo -ne "\r\033[2K" + outputtingProgress=false +} + +beginProgressString="" + +function beginProgress () +{ + # erase the line but stay on it + if $outputtingProgress ; then + echo -ne "\r\033[2K" + fi + if [ ! -z "$1" ]; then + beginProgressString="$1 " + echo -en "$beginProgressString" + + outputtingProgress=true + fi +} + + +function versionStringToNumber () +{ + local local p4="" ; local p5="" ; local p6="" + local major=""; local minor="" + + # first character should be 'v' so first awk parameter will be empty and is not prited into the read command + # + # version number formats: v2.40, v2.40~6, v2.40-large-7, v2.40~6-large-7 + # so we must adjust how we use paramters read from the version string + # and parsed by awk + # if no beta make sure release is greater than any beta (i.e., a beta portion of 999) + + read major minor p4 p5 p6 <<< $(echo $1 | awk -v FS='[v.~-]' '{print $2, $3, $4, $5, $6}') + ((versionNumber = major * 1000000 + minor * 1000)) + if [ -z $p4 ] || [ $p4 = "large" ]; then + ((versionNumber += 999)) + else + ((versionNumber += p4)) + fi + if [ ! -z $p4 ] && [ $p4 = "large" ]; then + ((versionNumber += p5 * 1000)) + large=$p5 + elif [ ! -z $p6 ]; then + ((versionNumber += p6 * 1000)) + fi +} + +# removing a nested set of directories sometimes results in permission denied the first time + # so try several times to be sure + +function deleteNestedDirectories () +{ + rm -rf "$1" &> /dev/null + if [ -d "$1" ] ; then + rm -rf "$1" &> /dev/null + if [ -d "$1" ] ; then + rm -rf "$1" + fi + fi +} + + +yesNoPrompt () +{ + response='' + while true; do + /bin/echo -n "$*" + read response + case $response in + [yY]*) + yesResponse=true + break + ;; + [nN]*) + yesResponse=false + break + ;; + *) + esac + done +} + + +#### script code begins here +packageList="" +doAllPackages=false +globalEndAction='' +for param in $* ; do + case $param in + -[pP]*) + logMessage "working copies will be preserved - packages will not be updated" + globalEndAction='preserve' + ;; + -[dD]*) + logMessage "working copies will be deleted - packages will not be updated" + globalEndAction='delete' + ;; + -[uU]*) + logMessage "packages will be updated without prompting" + globalEndAction='update' + ;; + -[rR]*) + logMessage "packages will be restored from backups" + globalEndAction='restore' + ;; + all) + doAllPackages=true + ;; + *) + packageList+=" "$1 + esac + shift +done +if $doAllPackages ; then + packageList=$allPackages +elif [ -z "$packageList" ]; then + logMessage "ERROR no packages specified - use 'all' for all packages" + exit +fi + +if [ "$globalEndAction" == "restore" ]; then + for package in $packageList; do + sourceDirectory="$packageRoot/$package" + sourceFiles="$sourceDirectory/FileSets" + backupDirectory="$packageRoot/$package.backup" + backupFiles="$backupDirectory/FileSets" + if [ ! -d "$backupDirectory" ]; then + logMessage "WARNING $package: no backup found - package NOT restored" + continue + fi + logMessage "WARNING $package: restored from backup" + deleteNestedDirectories "$sourceFiles" + mv "$backupFiles" "$sourceFiles" + if [ -f "$backupFiles/obsoleteVersion" ]; then + mv -f "$backupFiles/obsoleteVersion" "$sourceDirectory" + fi + if [ -f "$backupFiles/firstCompatibleVersion" ]; then + mv -f "$backupFiles/firstCompatibleVersion" "$sourceDirectory" + fi + deleteNestedDirectories $backupDirectory + done + exit +fi + +# make the version list from the directories in stock files +# version lists are sorted so the most recent version is first +tempList=() +stockVersionList=($(ls -d "$stockFiles"/v* 2> /dev/null)) +for entry in ${stockVersionList[@]} ; do + version=$(basename $entry) + versionFile="$stockFiles/$version/opt/victronenergy/version" + realVersion=$(cat "$versionFile" | head -n 1) + + if [ $version != $realVersion ]; then + directoryName=$(basename $stockFiles)/$version + logMessage "ERROR $directoryName name does not mactch Venus $realVersion - can't continue" + exit + fi + versionStringToNumber $version + tempList+=("$version:$versionNumber") +done +stockVersionList=( $(echo ${tempList[@]} | tr ' ' '\n' | sort -t ':' -r -n -k 2 | uniq ) ) + +for package in $packageList; do + packageErrors=0 + packageWarnings=0 + sourceDirectory="$packageRoot/$package" + sourceFiles="$sourceDirectory/FileSets" + workingDirectory="$packageRoot/$package.copy" + workingFiles="$workingDirectory/FileSets" + + if [ ! -d "$sourceDirectory" ] || [ ! -f "$sourceDirectory/version" ]; then + logMessage "$sourceDirectory - not a package directory" + continue + fi + if [ ! -d "$sourceFiles" ]; then + logMessage "$package: no file sets" + continue + fi + if [ ! -f "$sourceFiles/fileList" ]; then + logMessage "$package: no version-dependent files" + continue + fi + fileList=$(cat "$sourceFiles/fileList") + if [ -z "$fileList" ]; then + logMessage "WARNING $package: empty file list" + continue + fi + + # make copy of source package FileSets + beginProgress "$package: making working copy" + deleteNestedDirectories "$workingDirectory" + mkdir -p "$workingDirectory" + cp -pR "$sourceFiles" "$workingFiles" + if [ -f "$sourceDirectory/obsoleteVersion" ]; then + cp -p "$sourceDirectory/obsoleteVersion" "$workingDirectory" + fi + if [ -f "$sourceDirectory/firstCompatibleVersion" ]; then + cp -p "$sourceDirectory/firstCompatibleVersion" "$workingDirectory" + fi + # compute compatible version range + if [ -f "$workingDirectory/obsoleteVersion" ]; then + versionStringToNumber $(cat "$workingDirectory/obsoleteVersion") + obsoleteVersion=$versionNumber + else + obsoleteVersion=999999999 + fi + if [ -f "$workingDirectory/firstCompatibleVersion" ]; then + versionStringToNumber $(cat "$workingDirectory/firstCompatibleVersion") + firstVersion=$versionNumber + else + firstVersion=0 + fi + + # append the package's existing file sets NOT in the stock versions + # to the END of the stock files list + # this insures these file sets contain only files used by that or other unused versions + sourceFileSets=($(ls -d "$sourceFiles"/v* 2> /dev/null)) + tempList=() + for entry in ${sourceFileSets[@]} ; do + version=$(basename $entry) + if [ ! -d "$stockFiles/$version" ]; then + versionStringToNumber $version + tempList+=($version:$versionNumber) + fi + done + existingFileSets=( $(echo ${tempList[@]} | tr ' ' '\n' | sort -t ':' -r -n -k 2 | uniq ) ) + allFileSets=(${stockVersionList[@]}) + allFileSets+=(${existingFileSets[@]}) + + # move incompatible versions to the end of the list + # so that real files end up in a supported file set + obsoleteFileSets=() + tempList=() + for entry in ${allFileSets[@]} ; do + IFS=':' read version versionNumber <<< "$entry" + if (( $versionNumber >= $obsoleteVersion )) || (( $versionNumber < $firstVersion )); then + obsoleteFileSets+=($version:$versionNumber) + else + tempList+=($version:$versionNumber) + fi + done + allFileSets=(${tempList[@]}) + allFileSets+=(${obsoleteFileSets[@]}) + allFileSetsLength=${#allFileSets[@]} + + # clean up flag files from a previous run + rm -f "$workingFiles"/*/INCOMPATIBLE_VERSION + rm -f "$workingFiles"/*/UNUSED_FILE_SET + rm -f "$workingFiles"/*/INCOMPLETE + rm -f "$workingFiles"/*/COMPLETE + rm -f "$workingFiles"/*/LINKS_ONLY + rm -f "$workingFiles"/*/*.NO_ORIG + rm -f "$workingFiles"/*/*.NO_REPLACEMENT + rm -f "$workingFiles"/*/*.NO_REPLACEMENT_LINK + rm -f "$workingFiles"/*/*.CHECK_REPLACEMENT + rm -f "$workingFiles"/*/NEW_FILE_SET + rm -f "$workingFiles"/*/*.MATCHES_PREVIOUS + + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version versionNumber <<< "${allFileSets[$i1]}" + + fileSet1="$workingFiles/$version" + if [ ! -d "$fileSet1" ]; then + mkdir "$fileSet1" + touch "$fileSet1/NEW_FILE_SET" + fi + # check to see if package is compatible with this Venus version + if (( $versionNumber >= $obsoleteVersion )) || (( $versionNumber < $firstVersion )); then + touch "$fileSet1/INCOMPATIBLE_VERSION" + fi + + done + + beginProgress "$package: updating file sets" + for file in $fileList ; do + baseName=$(basename "$file") + outputProgressTick "." + # use alternate original if present + if [ -f "$workingFiles/$baseName.ALT_ORIG" ]; then + useAltOrig=true + altOrigFile=$(cat "$workingFiles/$baseName.ALT_ORIG") + else + useAltOrig=false + altOrigFile="" + fi + + # move real files to newest file set + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + stockFileSet1="$stockFiles/$version1" + # if stock file set does not exist, or this is an incompatible version + # don't move files here + # this will allow file sets for versions no longer supported to be removed + # an error result if a replacement in this version is needed for other file sets + if [ ! -d "$stockFileSet1" ] || [ -f "$fileSet1/INCOMPATIBLE_VERSION" ]; then + continue + fi + + replacement1="$fileSet1/$baseName" + replacement1exists=false + useOrigFlag1=false + if [ -f "$replacement1" ] && [ ! -L "$replacement1" ]; then + replacement1exists=true + elif [ -f "$replacement1.USE_ORIGINAL" ]; then + useOrigFlag1=true + fi + orig1="$fileSet1/$baseName.orig" + # select appropirate stock file + if $useAltOrig ; then + stockFile1="$stockFileSet1$altOrigFile" + else + stockFile1="$stockFileSet1$file" + fi + + if [ ! -f "$stockFile1" ]; then + if $useAltOrig ; then + logMessage "ERROR $package: $version1 $baseName stock file missing (move) - check ALT_ORIG" + touch "$fileSet1/$baseName.CHECK_ALT_ORIG" + else + logMessage "ERROR $package: $version1 $baseName stock file missing (move) - consider using an ALT_ORIG" + fi + touch "$fileSet1/$baseName.NO_STOCK_FILE" + touch "$fileSet1/INCOMPLETE" + logMessage "can't continue" + exit + fi + + # look for a match (stock files) in older file sets + # and relocate if found + checkLinks=false + for (( i2 = $i1 + 1; i2 < $allFileSetsLength; i2++ )); do + IFS=':' read version2 version2number <<< "${allFileSets[$i2]}" + fileSet2="$workingFiles/$version2" + replacement2="$fileSet2/$baseName" + orig2="$fileSet2/$baseName.orig" + + if [ -L "$replacement2" ] ; then + replacement2isLink=true + replacement2isRealFile=false + elif [ -f "$replacement2" ] ; then + replacement2isRealFile=true + replacement2isLink=false + else + replacement2isRealFile=false + replacement2isLink=false + fi + # USE_ORIGINAL is valid only if the original file also exists (and is not a sym link) + if [ -f "$replacement2.USE_ORIGINAL" ] && [ -f $orig2 ] && [ ! -L $orig2 ]; then + useOrigFlag2=true + else + useOrigFlag2=false + fi + if $replacement2isRealFile || $useOrigFlag2 || [ -f "$fileSet2/NEW_FILE_SET" ]; then + doStockCheck=true + else + doStockCheck=false + fi + + stockMatch=false + if $doStockCheck ; then + if [ -d "$stockFiles/$version2" ]; then + # select appropirate original file + if $useAltOrig ; then + stockFile2="$stockFiles/$version2$altOrigFile" + else + stockFile2="$stockFiles/$version2$file" + fi + if [ ! -f "$stockFile2" ]; then + if $useAltOrig ; then + logMessage "ERROR $package: $version2 $baseName stock file missing - check ALT_ORIG" + touch "$fileSet2/$baseName.CHECK_ALT_ORIG" + else + logMessage "ERROR $package: $version2 $baseName stock file missing - consider using an ALT_ORIG" + fi + touch "$fileSet2/$baseName.NO_STOCK_FILE" + touch "$fileSet2/INCOMPLETE" + logMessage "can't continue" + exit + fi + + # stock files match + cmp -s "$stockFile2" "$stockFile1" > /dev/null + if [ $? -eq 0 ]; then + stockMatch=true + fi + # no stock files but existing file set + elif ( $replacement2isRealFile || $useOrigFlag2 ) && [ -f "$orig2" ] ; then + # existing orig matches stock + cmp -s "$orig2" "$stockFile1" + if [ $? -eq 0 ] ;then + stockMatch=true + fi + fi + fi + if $stockMatch ; then + moveReplacement=true + if $replacement2isRealFile ; then + if $replacement1exists ; then + cmp -s "$replacement1" "$replacement2" /dev/null + if [ $? -ne 0 ]; then + logMessage "ERROR $package: $baseName $version1 and $version2 replacements differ but same stock files" + touch "$fileSet1/$baseName.CHECK_REPLACEMENT" + touch "$fileSet2/$baseName.CHECK_REPLACEMENT" + moveReplacement=false + fi + fi + if $moveReplacement ; then + mv -f "$replacement2" "$replacement1" + rm -f "$fileSet1/$baseName.USE_ORIGINAL" + cp -f "$stockFile1" "$orig1" + checkLinks=true + fi + elif $useOrigFlag2 ; then + if $replacement1exists ; then + logMessage "ERROR $package $basename file in $version1 conflicts with USE_ORIGINAL in $version2" + touch "$fileSet1/$baseName.CHECK_REPLACEMENT" + touch "$fileSet2/$baseName.CHECK_REPLACEMENT" + else + mv "$replacement2.USE_ORIGINAL" "$replacement1.USE_ORIGINAL" + rm -f "$replacement1" + checkLinks=true + fi + fi + + if [ -f "$orig2" ]; then + mv -f "$orig2" "$orig1" + fi + fi + done # for i2 + done # for i1 (update) + done # for file + + # check to see if a non-versioned file is appropriate -- but only if no errors were found + reloadFileList=false + if (( $packageErrors == 0 )) ; then + for file in $fileList ; do + realFileCount=0 + baseName=$(basename "$file") + + # file must be be using an alternate stock file + if [ ! -f "$workingFiles/$baseName.ALT_ORIG" ]; then + continue + fi + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + replacement1="$fileSet1/$baseName" + if [ -f "$replacement1" ] && [ ! -L "$replacement1" ]; then + (( realFileCount += 1 )) + + fi + done + + if (( realFileCount == 1 )); then + yesNoPrompt "$package: $baseName - make version-independent (y / n)?: " + if $yesResponse ; then + logMessage "$baseName.ALT_ORIG.UNUSED and $(basename $fileListFile.old) can be removed" + mv -f "$workingFiles/$baseName.ALT_ORIG" "$workingFiles/$baseName.ALT_ORIG.UNUSED" + fileListFile="$workingFiles/fileList" + grep -v "$file" "$fileListFile" > "$fileListFile.tmp" + mv -f "$fileListFile" "$fileListFile.old" + mv -f "$fileListFile.tmp" "$fileListFile" + reloadFileList=true + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + if [ ! -d "$fileSet1" ]; then + continue + fi + replacementFile="$fileSet1/$baseName" + if [ -L "$replacementFile" ]; then + rm -f "$replacementFile" + elif [ -f "$replacementFile" ]; then + mv "$replacementFile" "$workingFiles" + rm -f "$replacementFile.orig" + fi + done + else + logMessage "$baseName remains in version-dependent file sets" + fi + fi + done # for file (version independent check) + fi + + # reload fileList if changed above + if $reloadFileList ; then + fileList=$(cat "$workingFiles/fileList") + if [ -z "$fileList" ]; then + logMessage "WARNING $package: empty file list" + continue + fi + fi + + beginProgress "$package: final checks" + for (( i1 = 0; i1 < $allFileSetsLength; i1++ )); do + IFS=':' read version1 version1number <<< "${allFileSets[$i1]}" + fileSet1="$workingFiles/$version1" + if [ ! -d "$fileSet1" ]; then + continue + fi + outputProgressTick "." + + emptyFileSet=true + completeFileSet=true + for file in $fileList ; do + baseName=$(basename "$file") + + if [ -f "$workingFiles/$baseName.ALT_ORIG" ]; then + useAltOrig=true + altOrigFile=$(cat "$workingFiles/$baseName.ALT_ORIG") + else + useAltOrig=false + altOrigFile="" + fi + + replacement1="$fileSet1/$baseName" + orig1="$fileSet1/$baseName.orig" + + # remove a symlink if it exists - no longer used + if [ -L "$replacement1" ]; then + rm "$replacement1" + fi + if [ -f "$replacement1" ]; then + realReplacement=true + else + realReplacement=false + fi + if [ -f "$orig1" ]; then + origExists=true + else + origExists=false + fi + useOrigFlag=false + if [ -f "$replacement1.USE_ORIGINAL" ]; then + if ! $realReplacement ; then + useOrigFlag=true + else + logMessage "WARNING $package $version1 $baseName replacement exists - removing USE_ORIGINAL flag" + rm "$replacement1.USE_ORIGINAL" + fi + fi + + if $realReplacement || $useOrigFlag ; then + emptyFileSet=false + # if original is missing, fill it in from stock if it exists + if [ ! -f "$orig1" ] ; then + stockFileSet1="$stockFiles/$version1" + if $useAltOrig ; then + stockFile1="$stockFileSet1$altOrigFile" + else + stockFile1="$stockFileSet1$file" + fi + if [ -f "$stockFile1" ]; then + cp "$stockFile1" "$orig1" + else + logMessage "ERROR $package: $baseName $version1 no original available" + touch "$replacement1.NO_ORIG" + completeFileSet=false + fi + fi + else + completeFileSet=false + fi + + if [ -f "$replacement1.NO_REPLACEMENT" ] \ + || [ -f "$replacement1.CHECK_REPLACEMENT" ] \ + || [ -f "$replacement1.NO_ORIG" ] ; then + touch "$fileSet1/INCOMPLETE" + completeFileSet=false + fi + done # for file + + # if all replacement files are in place, mark the file set COMPLETE + # COMPLETE tells _checkFileSets to skip all checks and accept the file set as is + if $completeFileSet ; then + touch "$fileSet1/COMPLETE" + else + rm -f "$fileSet1/COMPLETE" + fi + + if $emptyFileSet ; then + if [ ! -f "$fileSet1/NEW_FILE_SET" ]; then + logMessage "WARNING $package: $version1 - removing empty file set" + fi + rm -Rf "$fileSet1" + + # remove file sets for incompatible Venus OS versions + elif [ -e "$fileSet1/INCOMPATIBLE_VERSION" ]; then + logMessage "WARNING $package: not compatible with Venus $version1 but not empty - consider manual removal" + # not in stock files list + elif [ ! -d "$stockFiles/$version1" ]; then + logMessage "WARNING $package: $version1 no longer used but not empty - manual remove is OK" + touch "$fileSet1/UNUSED_FILE_SET" + fi + + if [ -f "$fileSet1/NEW_FILE_SET" ]; then + logMessage "$package: new file set $version1" + rm -f "$fileSet1/NEW_FILE_SET" + fi + done # for i1 (final checks) + # remove temporary files + rm -f "$workingFiles/v"*/*tmp + + if [ "$packageErrors" == 0 ]; then + errorText="no errors " + else + errorText="$totalErrors ERRORS " + fi + if [ "$packageWarnings" == 0 ]; then + warningText="no warnings" + else + warningText="$totalWarnings WARNINGS" + fi + + logMessage "$package complete $errorText $warningText" + + baseName=$(basename $workingDirectory) + + if [ -z "$globalEndAction" ]; then + echo + echo "select to finish:" + echo " update $package (u)" + echo " preserve working copy for inspection (p)" + echo " discard working copy (d)" + while true ; do + read -p "choose action from list above (u / p / d): " response + case $response in + [uU]*) + endAction='update' + break + ;; + [pP]*) + endAction='preserve' + break + ;; + [dD]*) + endAction='delete' + break + ;; + *) + esac + done + else + endAction=$globalEndAction + fi + + case $endAction in + preserve) + logMessage "$package unchanged - changes preserved as $baseName" + ;; + delete) + logMessage "$package unchanged - $baseName removed" + deleteNestedDirectories "$workingDirectory" + ;; + update) + logMessage "$package: updating file sets - backup in $package.backup" + deleteNestedDirectories "$package.backup" + mkdir "$package.backup" + mv "$sourceFiles" "$package.backup" + if [ -f "$sourceDirectory/obsoleteVersion" ]; then + mv -f "$sourceDirectory/obsoleteVersion" "$package.backup" + fi + if [ -f "$sourceDirectory/firstCompatibleVersion" ]; then + mv -f "$sourceDirectory/firstCompatibleVersion" "$package.backup" + fi + + deleteNestedDirectories "$sourceFiles" + mv "$workingFiles" "$sourceFiles" + if [ -f "$workingDirectory/obsoleteVersion" ]; then + mv -f "$workingDirectory/obsoleteVersion" "$sourceDirectory" + fi + if [ -f "$workingDirectory/firstCompatibleVersion" ]; then + mv -f "$workingDirectory/firstCompatibleVersion" "$sourceDirectory" + fi + deleteNestedDirectories $workingDirectory + ;; + *) + logMessage "ERROR: invalid end action $endAction" + esac +done # for package + +# review all file sets and report any that only contain sym links across all packages +# it would be possile to remove those verions from stock files without loosing any data +# this check is only done if updating all file sets and there are no errors +if $doAllPackages && [ "$totalErrors" == 0 ]; then + for entry in ${stockVersionList[@]} ; do + IFS=':' read version versionNumber <<< "$entry" + linksOnly=true + for package in $packageList; do + fileSet="$packageRoot/$package/FileSets/$version" + if [ ! -e "$fileSet/LINKS_ONLY" ]; then + linksOnly=false + break + fi + done + if $linksOnly ; then + logMessage "$version: only links in all packages - stock version could be removed" + fi + done +fi + +if [ "$totalErrors" == 0 ]; then + errorText="no errors " +else + errorText="$totalErrors ERRORS " +fi +if [ "$totalWarnings" == 0 ]; then + warningText="no warnings" +else + warningText="$totalWarnings WARNINGS" +fi + +logMessage "updateFileSets complete $errorText $warningText" diff --git a/venus-data.UninstallPackages.tgz b/venus-data.UninstallPackages.tgz index 08b23c1dd01284d215a83c203143e11c3e944ae9..f82b9665ec47569611a0b43242cd1213e631183b 100644 GIT binary patch literal 1522 zcmVNW|6{@OQzFw&;mhzRw z@?xn{DwL!`u?TC;Mt$ejN^|daen>cX^O`-#6UQ-Wen2#{R`=^m_o*_Vo&M_mYWraC z_M6LXZ@pFbmsTHaEvc*4;>rPO_}sj+O>S3;b-!`_ZeiJLtUIei=V;~5o!)ZE=A}lx zQN8<-&hD2R>%%qOH`~plp1r*+71T1c5Ww2KvjI#_On&+NucM!uPkzYmZhp4&=j)Rb zzyALBKi589{_0!j$M)0y#tFrji{X`thaY}tK6$$K^E2n` z#=<9`UX?0~GA^UZDT7S}l&~f1z5eOn~|lF(vJPuK(#NrDIr1hp@gRO#|;644CE` z4hQTx#N}Xjfq>jG4NHgiMsuUJTVGp~fw)@VIHchB4XuAX&;nwbxKKMFJ<2fTR@B7> z6fB#AO9%EL)uH2Y7!daWyUdQKtrH7BUC?b@A!ZYg+hAB+L^V-4t~8B7_o(GD*ldAs z;P=GD03C{v4U37H7}5}^nP+g)F)8Gk??KnV9TXPq*JfM9k`dMIV6*0-Znw5@2bw;?+(j~RkTz==^QS#a|v$O@{TC>U62QSLb_ z)O4sTOOK`WW^yi<15uaUuzIq9rS++H0GJ6zsi1a}{|NP*VBm>_CEq6Vblaj)9+`hj zMBVhbVA(=)veY#sDXvl6%w&+$Av~M;ISHx66^x|^ z*?8s+OrMlNYVX4o5(YUQQ4YiKGJFsd&1klT$0x|)W|?T>2EnT~JBxCo7Iu@+b5dqn zoNK6$hzcHla?o#q7gtpbEkH5_*-`3{KnRc`PK9y}A>yc#R7sSOTsDO)g+7xm$7E}P zD7`=yGmo>tL`lmjq&n?VcZYV+Tf_dcXYA0RvIAk`a*-VIH;rC!KvA*i5-;$A(^)um z9!s118=JfP_4e-Oe&Sfi?9${Mmtty!(xB^cvHgjZr1unbx$U9djo&F?B$Otki)+2W z`4UqMoG>j|(nURj$dVKvS!5K+tX3$%HG}aKku;CM%mj-w*PucMFNzzeVmk8Yz{Zau zc1_Y_66)lvTAGJzH&H$GP_aDIJXiZ?q8%;B(4~a})AvY%e@rRQC-~zMNnA1)`W|Yz zg8_SPZ~@?*k-qLUVu5B-{PY|kI8KKKN8jXq8?8q-nCm$~l^_{h+vUDE#?T4{<@0rT zlJ^_YsG1SPf>FNvQ*c8*nim9gfXF>d@d?khwsq<9sNx+mn>UDlsXa z&!3AtoHe>uaa)^b8Ld9)-l?|i$>otsHMm67kaXHS`q;cn35vth0YQGV0a}z YS1#LSyKI;3vRzR77k%q4S^yRR0M7{ZC;$Ke literal 1522 zcmVee~8?m5-oB8SVAnAF#NqgAwBgV{ARjVML*oL3FK3}RpsZyPruj%E| zd!q5mR~Bk|X|7nF zFV8JhYn6&pDwknxrP_cD)fc7VlAQKs)`_d$sod zt($KwwS)CmBV1g)zqP2ZIt$DDq#1Ji_BOdWUv7lWx9*gdg66undgvW3-@e^js<^z; zY&2_kJ~G+8YIFT?%?$1K%2ChVUQ$YW6

j?e5tC#>d9LeD>GTPb-gq$nS1`w)5v} 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 arxFf`i+=}xD&_56$do=y5bPBO?Ee5w_8-~+ literal 84321 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