From e42d9ca25db256c88089bd289cbe7a4b78d9fbc4 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Mon, 28 Jul 2014 21:04:54 -0400 Subject: [PATCH] BF: right -- we can't apt-get update while installing the package (via apt at least, assuming it to be default way) + various fixups --- debian/neurodebian-repository.config | 2 +- debian/neurodebian-repository.postinst | 7 +++---- debian/neurodebian-repository.postrm | 5 ----- debian/neurodebian-repository.templates | 23 +++++++---------------- tools/nd-aptenable | 15 +++++++++++---- 5 files changed, 22 insertions(+), 30 deletions(-) diff --git a/debian/neurodebian-repository.config b/debian/neurodebian-repository.config index 6f36006..a40f153 100755 --- a/debian/neurodebian-repository.config +++ b/debian/neurodebian-repository.config @@ -48,7 +48,7 @@ while [ "$STATE" != 0 -a "$STATE" != 8 ]; do 4) db_input medium neurodebian-repository/components || true ;; 5) db_input low neurodebian-repository/overwrite || true ;; 6) db_input low neurodebian-repository/suffix || true ;; - 7) db_input low neurodebian-repository/apt-update || true ;; + 7) db_input medium neurodebian-repository/run-update-note || true ;; esac if db_go; then diff --git a/debian/neurodebian-repository.postinst b/debian/neurodebian-repository.postinst index d514acc..49dda25 100755 --- a/debian/neurodebian-repository.postinst +++ b/debian/neurodebian-repository.postinst @@ -8,17 +8,16 @@ set -e case "$1" in configure) # obtain all the options and call nd-aptenable - opts="" + opts="--do-not-update" db_get neurodebian-repository/release; [ "$RET" = "auto" ] || opts+=" -r '$RET'" db_get neurodebian-repository/mirror; nd_mirror="${RET##* }" # get just a url if it came together with alias db_get neurodebian-repository/flavor; nd_flavor="$RET" - db_get neurodebian-repository/components; nd_components="$RET" + db_get neurodebian-repository/components; nd_components="${RET// /}" db_get neurodebian-repository/overwrite; [ "$RET" = "true" ] && opts+=" --overwrite" || : db_get neurodebian-repository/suffix; [ "$RET" = "" ] || opts+=" --suffix='$RET'" || : - db_get neurodebian-repository/apt-update; [ "$RET" = "true" ] || opts+=" --do-not-update" || : - eval nd-aptenable -m "$nd_mirror" $opts + eval nd-aptenable -m "$nd_mirror" -c "$nd_components" $opts ;; abort-upgrade|abort-remove|abort-deconfigure) # nothing to do diff --git a/debian/neurodebian-repository.postrm b/debian/neurodebian-repository.postrm index 2c92f0f..902c3f4 100755 --- a/debian/neurodebian-repository.postrm +++ b/debian/neurodebian-repository.postrm @@ -2,14 +2,9 @@ set -e - case "$1" in purge) rm -f /etc/apt/sources.list.d/neurodebian.sources*.list - db_get neurodebian-repository/apt-update || : - if [ "$RET" = "true" ] ; then - apt-get update - fi ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) diff --git a/debian/neurodebian-repository.templates b/debian/neurodebian-repository.templates index e4293b8..5a206a4 100644 --- a/debian/neurodebian-repository.templates +++ b/debian/neurodebian-repository.templates @@ -82,22 +82,13 @@ Description: Additional suffix to use in the NeuroDebian APT file name (e.g. NeuroDebian devel) or release, without interfering with the main/default configuration file. -Template: neurodebian-repository/apt-update -Type: boolean -Default: true -Description: Should apt-get update be run to update list of packages? - -Template: neurodebian-repository/apt-update-failed -Type: error -Description: apt-get update failed - An attempt to update package lists of enabled APT repositories (via - apt-get update) has failed. - -Template: neurodebian-repository/netselect-not-found -Type: error -Description: netselect tool was not found - Please install netselect tool first (apt-get install netselect) or - choose a specific mirror. +Template: neurodebian-repository/run-update-note +Type: note +Description: Upon completion of installation invoke update in your APT frontend. + For the installed NeuroDebian APT configuration to take an effect, + list of packages needs to be updated. This needs to be done + "manually" (e.g. apt-get update) upon completion of installation of + the neurodebian-repository package. Template: neurodebian-repository/netselect-not-found Type: error diff --git a/tools/nd-aptenable b/tools/nd-aptenable index d6f5192..08812cc 100755 --- a/tools/nd-aptenable +++ b/tools/nd-aptenable @@ -280,8 +280,13 @@ netselect_mirror() { netselect_opts+=" -I" fi best_mirror=$(get_mirrors | awk '{print $2;}' | eval $ae_sudo xargs netselect $netselect_opts | awk '{print $2;}') - print_verbose 2 "Best mirror: $best_mirror" - echo $best_mirror + if [ -z "$best_mirror" ]; then + print_verbose 1 "Failed to select mirror using netselect. Selecting default one ($nd_mirror_default)" + echo "$nd_mirror_default" + else + print_verbose 2 "Best mirror: $best_mirror" + echo $best_mirror + fi fi } @@ -327,7 +332,7 @@ assure_command_from_package() # if absent -- check availability of the package apt_cache=$(LANG=C apt-cache policy "$pkg" 2>&1) - if [[ "$apt_cache" =~ "Unable to locate package" ]] || [[ "$apt_cache" =~ "Candidate: (none)" ]]; then + if [[ "$apt_cache" =~ Unable\ to\ locate\ package ]] || [[ "$apt_cache" =~ Candidate:\ (none) ]]; then print_verbose 1 "Package $pkg providing command $cmd is N/A. Skipping" return 10; fi @@ -430,7 +435,7 @@ if is_component_included software || is_component_included data; then if [ -z "$ae_mirror" ]; then # none specified ae_mirror_url=$nd_mirror_origin else - if ! [[ "$ae_mirror" =~ ".*://.*" ]]; then + if ! [[ "$ae_mirror" =~ .*://.* ]]; then case "$ae_mirror" in best) ae_mirror_url=$(netselect_mirror);; default) ae_mirror_url=$nd_mirror_default;; @@ -550,6 +555,8 @@ if [ ! -z "$ae_update" ]; then else eval_dry apt-get update fi +else + print_verbose 1 "apt-get update was not run. Please run to take an effect of changes" fi if [ "$ae_verbose" -ge 2 ]; then -- 2.39.2