~ubuntu-branches/debian/stretch/dkms/stretch

« back to all changes in this revision

Viewing changes to dkms

  • Committer: Bazaar Package Importer
  • Author(s): Mario Limonciello, Mario Limonciello, Giuseppe Iuculano
  • Date: 2011-07-22 13:36:32 UTC
  • mfrom: (1.1.16 upstream)
  • Revision ID: james.westby@ubuntu.com-20110722133632-gliqndk9vu3iwv2c
Tags: 2.2.0.2-1
[ Mario Limonciello ]
* [c5846b6] Imported Upstream version 2.2.0.2
  - Doesn't leave files in /tmp (Closes: #633802)
  - Autoinstall works on multiple kernels (Closes: #634979) (LP: #812979)
  - PRE_BUILD command working directory fix. (LP: #812088)
* [83b5f6e] Drop kfreebsd.patch.  Merged upstream

[ Giuseppe Iuculano ]
* [a80ecc5] Updated VCS control field

Show diffs side-by-side

added added

removed removed

Lines of Context:
158
158
set_kernel_source_dir()
159
159
{
160
160
    # $1 = the kernel to base the directory on
161
 
    [[ $kernel_source_dir ]] && return
162
161
    kernel_source_dir="$(_get_kernel_dir "$1")"
163
162
}
164
163
 
925
924
run_build_script() {
926
925
    # $1 = script type
927
926
    # $2 = script to run
928
 
    [[ $2 && -x $dkms_tree/$module/$module_version/source/${2%% *} ]] || return 0
929
 
    echo $""
930
 
    echo $"Running the $1 script:"
931
 
    $dkms_tree/$module/$module_version/source/$2
 
927
    local script_type run
 
928
    [[ $2 ]] || return 0
 
929
    case "$1" in
 
930
        pre_build|post_build) script_type='build';;
 
931
        *) script_type='source'
 
932
    esac
 
933
    run="$dkms_tree/$module/$module_version/$script_type/$2"
 
934
    if [[ -x ${run%% *} ]]; then
 
935
        echo $""
 
936
        echo $"Running the $1 script:"
 
937
        (
 
938
            cd "$dkms_tree/$module/$module_version/$script_type/"
 
939
            exec $run
 
940
        )
 
941
    else
 
942
        echo $""
 
943
        warn $"The $1 script is not executable."
 
944
    fi
932
945
}
933
946
 
934
947
# Register a DKMS-ified source tree with DKMS.
1164
1177
    rm -rf "$dkms_tree/$module/$module_version/build"
1165
1178
    cp -rf "$dkms_tree/$module/$module_version/source/" "$dkms_tree/$module/$module_version/build"
1166
1179
 
1167
 
    # Run the pre_build script
1168
 
    run_build_script pre_build "$pre_build"
1169
 
 
1170
1180
    cd "$dkms_tree/$module/$module_version/build"
1171
1181
 
1172
1182
    # Apply any patches
1179
1189
            report_build_problem 6 $"Application of patch $p failed." \
1180
1190
            $"Check $dkms_tree/$module/$module_version/build/ for more information."
1181
1191
    done
 
1192
 
 
1193
    # Run the pre_build script
 
1194
    run_build_script pre_build "$pre_build"
1182
1195
}
1183
1196
 
1184
1197
# Build our previously prepared source tree.  prepare_build must be called
3128
3141
    # Walk through our list of installed and built modules, and create
3129
3142
    # a list of modules that need to be reinstalled.
3130
3143
    while read status mvka; do
3131
 
        # if it has not been built, do not try and build it now.
3132
 
        [[ $status = added ]] && continue
3133
 
        IFS='/' read m v k a <<< "$mvka"
3134
 
        [[ ! $last_m ]] && last_m="$m"
3135
 
        # If the module is already installed or weak-installed, skip it.
3136
 
        _is_module_installed "$m" "$v" "$kernelver" "$arch" && continue
3137
 
        module_status_weak "$m" "$v" "$kernelver" "$arch" >/dev/null && continue
3138
 
        # if the module does not want to be autoinstalled, skip it.
3139
 
        read_conf_or_die "$k" "$a" "$dkms_tree/$m/$v/source/dkms.conf"
3140
 
        if [[ ! $AUTOINSTALL ]]; then
3141
 
            continue
3142
 
        # otherwise, only autoinstall the latest version we have hanging around.
3143
 
        elif [[ $last_m != $m ]]; then
3144
 
            last_m="$m"
3145
 
            last_v='0'
3146
 
            [[ $tenative ]] && to_install[${#to_install[@]}]="$tenative"
3147
 
            tenative=''
3148
 
        elif [[ $last_m = $m && ($(VER $v) > $(VER $last_v)) ]]; then
3149
 
            last_v="$v"
3150
 
            tenative="$m/$v"
3151
 
        fi
 
3144
        # if it has not been built, do not try and build it now.
 
3145
        [[ $status = added ]] && continue
 
3146
        IFS='/' read m v k a <<< "$mvka"
 
3147
        [[ ! $last_m ]] && last_m="$m"
 
3148
        # If the module is already installed or weak-installed, skip it.
 
3149
        _is_module_installed "$m" "$v" "$kernelver" "$arch" && continue
 
3150
        module_status_weak "$m" "$v" "$kernelver" "$arch" >/dev/null && continue
 
3151
        # if the module does not want to be autoinstalled, skip it.
 
3152
        read_conf_or_die "$k" "$a" "$dkms_tree/$m/$v/source/dkms.conf"
 
3153
        if [[ ! $AUTOINSTALL ]]; then
 
3154
            continue
 
3155
        # otherwise, only autoinstall the latest version we have hanging around.
 
3156
        elif [[ $last_m != $m ]]; then
 
3157
            last_m="$m"
 
3158
            last_v='0'
 
3159
            [[ $tenative ]] && to_install[${#to_install[@]}]="$tenative"
 
3160
            tenative=''
 
3161
        fi
 
3162
        if [[ ($(VER $v) > $(VER $last_v)) ]]; then
 
3163
            last_v="$v"
 
3164
            tenative="$m/$v"
 
3165
        fi
3152
3166
    done < <(module_status)
3153
3167
    # We may have exited the loop with $tenative set.  If it is,
3154
3168
    # it contains something that should be updated.
3156
3170
    [[ $to_install ]] || return 0
3157
3171
    # Install modules that need to be updated in parallel.
3158
3172
    for mv in "${to_install[@]}"; do
3159
 
        IFS=/ read m v <<< "$mv"
3160
 
        (module="$m"; module_version="$v"; install_module) &
 
3173
        IFS=/ read m v <<< "$mv"
 
3174
        (module="$m"; module_version="$v"; install_module) &
3161
3175
    done
3162
3176
    wait
3163
3177
}
3410
3424
        --templatekernel*)   read_arg template_kernel "$1" "$2" || shift;;
3411
3425
        -c)                  read_arg conf "$1" "$2" || shift;;
3412
3426
        --quiet|-q)          exec >/dev/null 2>&1;;
3413
 
        --version|-V)        echo $"dkms: 2.2.0.1"
 
3427
        --version|-V)        echo $"dkms: 2.2.0.2"
3414
3428
                             exit 0;;
3415
3429
        --no-prepare-kernel) no_prepare_kernel="no-prepare-kernel";;
3416
3430
        --no-clean-kernel)   no_clean_kernel="no-clean-kernel";;