/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to initramfs-tools-hook

  • Committer: Teddy Hogeborn
  • Date: 2016-06-03 17:27:03 UTC
  • Revision ID: teddy@recompile.se-20160603172703-mc6tjor6rhq4xy74
mandos: Bug fix: Do multiprocessing cleanup correctly on exit

* mandos (main): Save module "multiprocessing" and open file "wnull"
                 as scope variables accessible by function cleanup(),
                 since the module and global variable may not be
                 accessible when the cleanup() function is run as
                 scheduled by atexit().

Show diffs side-by-side

added added

removed removed

Lines of Context:
80
80
        --mode=u=rwx "${DESTDIR}${PLUGINDIR}" \
81
81
        "${DESTDIR}${PLUGINHELPERDIR}"
82
82
 
83
 
copy_exec "$libdir"/mandos/mandos-to-cryptroot-unlock "${MANDOSDIR}"
84
 
 
85
83
# Copy the Mandos plugin runner
86
84
copy_exec "$libdir"/mandos/plugin-runner "${MANDOSDIR}"
87
85
 
144
142
for conf in /etc/initramfs-tools/conf.d/*; do
145
143
    if [ -n `basename \"$conf\" | grep '^[[:alnum:]][[:alnum:]\._-]*$' \
146
144
        | grep -v '\.dpkg-.*$'` ]; then
147
 
        [ -f "${conf}" ] && . "${conf}"
 
145
        [ -f ${conf} ] && . ${conf}
148
146
    fi
149
147
done
150
148
export DEVICE
159
157
    if [ -x "$hook" ]; then
160
158
        # Copy any files needed by the network hook
161
159
        MANDOSNETHOOKDIR=/etc/mandos/network-hooks.d MODE=files \
162
 
            VERBOSITY=0 "$hook" files | while read -r file target; do
 
160
            VERBOSITY=0 "$hook" files | while read file target; do
163
161
            if [ ! -e "${file}" ]; then
164
162
                echo "WARNING: file ${file} not found, requested by Mandos network hook '${hook##*/}'" >&2
165
163
            fi
171
169
        done
172
170
        # Copy and load any modules needed by the network hook
173
171
        MANDOSNETHOOKDIR=/etc/mandos/network-hooks.d MODE=modules \
174
 
            VERBOSITY=0 "$hook" modules | while read -r module; do
175
 
            force_load "$module"
 
172
            VERBOSITY=0 "$hook" modules | while read module; do
 
173
            if [ -z "${target}" ]; then
 
174
                force_load "$module"
 
175
            fi
176
176
        done
177
177
    fi
178
178
done
186
186
            copy_exec /usr/bin/gpgconf
187
187
        fi
188
188
        gpg="`/usr/bin/gpgconf|sed --quiet --expression='s/^gpg:[^:]*://p'`"
189
 
        gpgagent="`/usr/bin/gpgconf|sed --quiet --expression='s/^gpg-agent:[^:]*://p'`"
190
 
        # Newer versions of GnuPG 2 requires the gpg-agent binary
191
 
        if [ -e "$gpgagent" ] && [ ! -e "${DESTDIR}$gpgagent" ]; then
192
 
            copy_exec "$gpgagent"
193
 
        fi
194
189
    fi
195
190
elif dpkg --compare-versions "$libgpgme11_version" ge 1.4.1-0.1; then
196
191
    gpg=/usr/bin/gpg2
252
247
# initrd; it is intended to affect the initrd.img file itself, since
253
248
# it now contains secret key files.  There is, however, no other way
254
249
# to set the permission of the initrd.img file without a race
255
 
# condition.  This umask is set by "initramfs-tools-conf", installed
256
 
# as "/usr/share/initramfs-tools/conf.d/mandos-conf".)
 
250
# condition.  This umask is set by "initramfs-tools-hook-conf",
 
251
# installed as "/usr/share/initramfs-tools/conf-hooks.d/mandos".)
257
252
258
253
for full in "${MANDOSDIR}" "${CONFDIR}"; do
259
254
    while [ "$full" != "/" ]; do