Index: openacs-4/packages/acs-admin/www/install/install-3.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/install/install-3.tcl,v diff -u -r1.11.2.3 -r1.11.2.4 --- openacs-4/packages/acs-admin/www/install/install-3.tcl 28 Oct 2020 15:39:18 -0000 1.11.2.3 +++ openacs-4/packages/acs-admin/www/install/install-3.tcl 24 Apr 2022 16:58:09 -0000 1.11.2.4 @@ -45,30 +45,30 @@ while {[llength $to_install] > 0} { foreach package_key $to_install { - array unset version - array set version $repository($package_key) + array unset version + array set version $repository($package_key) - set satisfied_p 1 - foreach req [concat $version(embeds) $version(extends) $version(requires)] { - lassign $req pkg req_version + set satisfied_p 1 + foreach req [concat $version(embeds) $version(extends) $version(requires)] { + lassign $req pkg req_version - # - # A package can be installed, when its requirements are - # installed before the package. All other dependencies - # were checked earlier. - # + # + # A package can be installed, when its requirements are + # installed before the package. All other dependencies + # were checked earlier. + # - if { $pkg in $to_install } { - set satisfied_p 0 - #ns_log notice "we have to delay $pkg" - break - } - } - if {$satisfied_p} { - lappend install_order $package_key - set pos [lsearch $to_install $package_key] - set to_install [lreplace $to_install $pos $pos] - } + if { $pkg in $to_install } { + set satisfied_p 0 + #ns_log notice "we have to delay $pkg" + break + } + } + if {$satisfied_p} { + lappend install_order $package_key + set pos [lsearch $to_install $package_key] + set to_install [lreplace $to_install $pos $pos] + } } #ns_log notice "iteration: \nto_install: $to_install\ninstall_order: $install_order" } @@ -85,10 +85,10 @@ foreach package_key $install_order { ns_log Notice "Installing $package_key" - + array unset version array set version $repository($package_key) - + if { [info exists version(download_url)] && $version(download_url) ne "" } { ns_write [subst {

Transferring $version(download_url) ... @@ -134,7 +134,7 @@ if { [apm_package_upgrade_p $package_key $final_version_name] == 1} { ns_log Debug "Upgrading package [string totitle $version(package-name)] to $final_version_name." set upgrade_p 1 - + set initial_version_name [apm_highest_version_name $package_key] } else { set upgrade_p 0 @@ -151,10 +151,10 @@ ns_log Debug "Data model scripts: \nupgrade_from_version_name = $initial_version_name\nupgrade_to_version_name=$final_version_name\npackage_path=$package_path\npackage_key=$package_key\n => $data_model_files" ns_write [subst { -

Installing $package_key ...
- +

Installing $package_key ...
+ }] - + # Install the package -- this actually copies the files into the # right place in the filesystem and backs up any old files @@ -165,14 +165,14 @@ -load_data_model \ -data_model_files $data_model_files \ $spec_file] - + if { $version_id == 0 } { # Installation of the package failed and we shouldn't continue with installation # as there might be packages depending on the failed package. Ideally we should # probably check for such dependencies and continue if there are none. set success_p 0 } else { - ns_write "... installation OK
\n" + ns_write "... installation OK
\n" } if {$success_p} { @@ -189,7 +189,7 @@ # - run apm_package_install via "ns_eval": does not work, # since "ns_eval" runs a script twice, a package can only # be installed once. - # + # # - run parts of apm_package_install: e.g. loading just the # procs does not work, when it depends e.g. on package # parameters, which have as well be updated in the @@ -201,7 +201,7 @@ # # NaviServer variant: # - nstrace::statescript produces the blueprint - # - "ns_ictl save" updates it in the server + # - "ns_ictl save" updates it in the server # ns_ictl save [nstrace::statescript] ns_write "... blueprint updated
\n" @@ -225,10 +225,20 @@ ns_ictl markfordelete } ns_write [subst { - + }] } +if {$success_p && [namespace which ::nstrace::statescript] ne ""} { + + foreach package_key $install_order { + apm_bootstrap_load_libraries -init $package_key + ns_write "$package_key: loading init files done" + ns_log notice "$package_key: loading init files done" + } + ns_ictl save [nstrace::statescript] +} + ##### # # Done