summaryrefslogtreecommitdiffhomepage
path: root/tools/make_repository.sh
diff options
context:
space:
mode:
authorAdin Scannell <ascannell@google.com>2019-09-12 13:43:07 -0700
committergVisor bot <gvisor-bot@google.com>2019-09-12 13:44:18 -0700
commit574eda88808138b2dd72ebe6bbca80a09a13c7fb (patch)
tree22b6a96c89d691071fd32e8cd8c23d6aa902e162 /tools/make_repository.sh
parente2528cae7662f291d762686b36cf2e7429b5b083 (diff)
Update repository directory structure.
Currently it will not work with apt out of the box, as we require the dists/ prefix, along with a distribution name. This tweaks the overall structure to allow for the same URL prefix to be used for all repositories, and enables multiple architectures. Fixes #852 PiperOrigin-RevId: 268756104
Diffstat (limited to 'tools/make_repository.sh')
-rwxr-xr-xtools/make_repository.sh21
1 files changed, 15 insertions, 6 deletions
diff --git a/tools/make_repository.sh b/tools/make_repository.sh
index ccebe27b3..b16ac6311 100755
--- a/tools/make_repository.sh
+++ b/tools/make_repository.sh
@@ -39,11 +39,18 @@ cleanup() {
trap cleanup EXIT
gpg --no-default-keyring --keyring "${keyring}" --import "${private_key}" >&2
-# Export the public key from the keyring.
-gpg --no-default-keyring --keyring "${keyring}" --armor --export "${signer}" > "${tmpdir}"/keyFile >&2
-
# Copy the packages, and ensure permissions are correct.
-cp -a "$@" "${tmpdir}" && chmod 0644 "${tmpdir}"/*
+for pkg in "$@"; do
+ name=$(basename "${pkg}" .deb)
+ name=$(basename "${name}" .changes)
+ arch=${name##*_}
+ if [[ "${name}" == "${arch}" ]]; then
+ continue # Not a regular package.
+ fi
+ mkdir -p "${tmpdir}"/binary-"${arch}"
+ cp -a "${pkg}" "${tmpdir}"/binary-"${arch}"
+done
+find "${tmpdir}" -type f -exec chmod 0644 {} \;
# Ensure there are no symlinks hanging around; these may be remnants of the
# build process. They may be useful for other things, but we are going to build
@@ -51,12 +58,14 @@ cp -a "$@" "${tmpdir}" && chmod 0644 "${tmpdir}"/*
find "${tmpdir}" -type l -exec rm -f {} \;
# Sign all packages.
-for file in "${tmpdir}"/*.deb; do
+for file in "${tmpdir}"/binary-*/*.deb; do
dpkg-sig -g "--no-default-keyring --keyring ${keyring}" --sign builder "${file}" >&2
done
# Build the package list.
-(cd "${tmpdir}" && apt-ftparchive packages . | gzip > Packages.gz)
+for dir in "${tmpdir}"/binary-*; do
+ (cd "${dir}" && apt-ftparchive packages . | gzip > Packages.gz)
+done
# Build the release list.
(cd "${tmpdir}" && apt-ftparchive release . > Release)