Add ability to add extra apt keys
Adds an environment variable DIB_ADD_APT_KEYS pointing to a folder of apt repo GPG keys. Each key will be verified and installed with apt-key to the apt keyring. Change-Id: I4b15347a76aa3241e741931bb94f17598641ae42
This commit is contained in:
parent
b9189a204f
commit
2408569566
@ -6,3 +6,7 @@ HTTP proxy when installing packages. These customisations live here, where they
|
||||
can be used by any dpkg based element.
|
||||
|
||||
The dpkg specific version of install-packages is also kept here.
|
||||
|
||||
If an extra or updated apt key is needed then define DIB\_ADD\_APT\_KEYS with
|
||||
the path to a folder. Any key files inside will be added to the key ring before
|
||||
any apt-get commands take place.
|
||||
|
37
elements/dpkg/extra-data.d/01-copy-apt-keys
Executable file
37
elements/dpkg/extra-data.d/01-copy-apt-keys
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2014 Hewlett-Packard Development Company, L.P.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
DIB_ADD_APT_KEYS=${DIB_ADD_APT_KEYS:-""}
|
||||
if [ -z "${DIB_ADD_APT_KEYS}" ]; then
|
||||
echo "DIB_ADD_APT_KEYS is not set - not importing keys"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DIR=${TMP_MOUNT_PATH}/tmp/apt_keys
|
||||
if [ -e ${DIR} ]; then
|
||||
echo "${DIR} already exists!"
|
||||
exit 1
|
||||
fi
|
||||
sudo mkdir -p ${DIR}
|
||||
|
||||
# Copy to DIR
|
||||
for KEY in $(find ${DIB_ADD_APT_KEYS} -type f); do
|
||||
sudo cp -L ${KEY} ${DIR}
|
||||
done
|
33
elements/dpkg/pre-install.d/02-add-apt-keys
Executable file
33
elements/dpkg/pre-install.d/02-add-apt-keys
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2014 Hewlett-Packard Development Company, L.P.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
KEY_DIRECTORY=/tmp/apt_keys
|
||||
if [ ! -d "${KEY_DIRECTORY}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for KEY in ${KEY_DIRECTORY}/*; do
|
||||
if ! file -b "${KEY}" | grep -q 'PGP public key block'; then
|
||||
echo "Skipping ${KEY}, not a valid GPG public key"
|
||||
continue
|
||||
fi
|
||||
|
||||
apt-key add ${KEY}
|
||||
done
|
Loading…
Reference in New Issue
Block a user