diff options
author | Adin Scannell <ascannell@google.com> | 2019-09-12 13:43:07 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-09-12 13:44:18 -0700 |
commit | 574eda88808138b2dd72ebe6bbca80a09a13c7fb (patch) | |
tree | 22b6a96c89d691071fd32e8cd8c23d6aa902e162 /tools/make_repository.sh | |
parent | e2528cae7662f291d762686b36cf2e7429b5b083 (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-x | tools/make_repository.sh | 21 |
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) |