|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Generate the apt repo metadata |
| 4 | +cd /build/results/packages |
| 5 | + |
| 6 | +mkdir -p dists/local/main/{binary-arm64,binary-amd64} |
| 7 | + |
| 8 | +dpkg-scanpackages -m -a amd64 . /dev/null > dists/local/main/binary-amd64/Packages |
| 9 | +dpkg-scanpackages -m -a arm64 . /dev/null > dists/local/main/binary-arm64/Packages |
| 10 | +dpkg-scanpackages -m -a amd64 . /dev/null | gzip -9c > dists/local/main/binary-amd64/Packages.gz |
| 11 | +dpkg-scanpackages -m -a arm64 . /dev/null | gzip -9c > dists/local/main/binary-arm64/Packages.gz |
| 12 | +dpkg-scanpackages -m -a amd64 . /dev/null | xz -9 > dists/local/main/binary-amd64/Packages.xz |
| 13 | +dpkg-scanpackages -m -a arm64 . /dev/null | xz -9 > dists/local/main/binary-arm64/Packages.xz |
| 14 | + |
| 15 | +# generate the release file |
| 16 | +cd dists/local |
| 17 | + |
| 18 | +do_hash() { |
| 19 | + HASH_NAME=$1 |
| 20 | + HASH_CMD=$2 |
| 21 | + echo "${HASH_NAME}:" |
| 22 | + for f in $(find -type f -name "Packages*"); do |
| 23 | + f=$(echo $f | cut -c3-) # remove ./ prefix |
| 24 | + if [ "$f" = "Release" ]; then |
| 25 | + continue |
| 26 | + fi |
| 27 | + echo " $(${HASH_CMD} ${f} | cut -d" " -f1) $(wc -c $f)" |
| 28 | + done |
| 29 | +} |
| 30 | + |
| 31 | +cat > Release << EOF |
| 32 | +Origin: EBcL workspace local repository |
| 33 | +Label: LocalRepo |
| 34 | +Suite: local |
| 35 | +Codename: local |
| 36 | +Version: 1.0 |
| 37 | +Architectures: amd64 arm64 |
| 38 | +Description: An example software repository |
| 39 | +Components: main |
| 40 | +Date: $(date -Ru) |
| 41 | +EOF |
| 42 | + |
| 43 | +do_hash "MD5Sum" "md5sum" >> Release |
| 44 | +do_hash "SHA1" "sha1sum" >> Release |
| 45 | +do_hash "SHA256" "sha256sum" >> Release |
| 46 | + |
| 47 | +# Generate Release signature |
| 48 | +gpg -b --output Release.gpg --armor Release |
| 49 | + |
| 50 | +# Generate InRelease file |
| 51 | +gpg --clearsign -o InRelease Release |
| 52 | + |
| 53 | +# Export signing key |
| 54 | +gpg --export $DEBMAIL > Release.key |
| 55 | + |
| 56 | +# Update local apt config |
| 57 | +sudo cp Release.key /etc/apt/trusted.gpg.d/local.gpg |
| 58 | +sudo bash -c "echo 'deb file:/build/results/packages local main' > /etc/apt/sources.list.d/local.list" |
0 commit comments