Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #!/bin/bash # Update and upload u-boot-concept-qemu to PPA # # Usage: debian/update-ppa.sh [-n] # -n dry run: build source package but don't sign or upload set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SRC_DIR="$(dirname "$SCRIPT_DIR")" PPA="ppa:sjg1/u-boot-concept" GPG_KEY="9AEF88906888C1946332D80A0B6C19937329F977" MAINTAINER="Simon Glass <sjg@chromium.org>" ALL_SERIES="noble jammy questing resolute" cd "$SRC_DIR" DRY_RUN=0 if [ "$1" = "-n" ]; then DRY_RUN=1 echo "Dry run mode: will build but not sign or upload" fi # Pull latest from git echo "Pulling latest changes..." git pull # Get version info from the tree UBOOT_VERSION=$(sed -n 's/^VERSION = //p' Makefile).$(sed -n 's/^PATCHLEVEL = //p' Makefile) GIT_DATE=$(date -u +%Y%m%d) GIT_SHORT=$(git rev-parse --short HEAD) # Determine next PPA revision CURRENT_PPA=$(dpkg-parsechangelog -S Version 2>/dev/null || echo "") if echo "$CURRENT_PPA" | grep -q "~ppa"; then CURRENT_NUM=$(echo "$CURRENT_PPA" | sed 's/.*~ppa\([0-9]*\).*/\1/') NEXT_NUM=$((CURRENT_NUM + 1)) else NEXT_NUM=1 fi NEW_VERSION="${UBOOT_VERSION}-1~ppa${NEXT_NUM}" echo "Version: $NEW_VERSION (git $GIT_SHORT, $GIT_DATE)" # Save original changelog cp debian/changelog debian/changelog.orig for SERIES in $ALL_SERIES; do echo "" echo "=== Building for $SERIES ===" # Restore original changelog and add new entry for this series cp debian/changelog.orig debian/changelog cat > debian/changelog.new <<EOF u-boot-concept (${NEW_VERSION}~${SERIES}1) ${SERIES}; urgency=medium * Update to latest master (git ${GIT_SHORT}, ${GIT_DATE}). -- ${MAINTAINER} $(date -R) EOF cat debian/changelog >> debian/changelog.new mv debian/changelog.new debian/changelog # Clean and build source package echo "Building source package for $SERIES..." PATH=/usr/bin:/usr/sbin:/bin:/sbin dpkg-buildpackage -S -d -us -uc CHANGES="../u-boot-concept_${NEW_VERSION}~${SERIES}1_source.changes" if [ "$DRY_RUN" = "0" ]; then echo "Signing..." debsign -k "$GPG_KEY" "$CHANGES" echo "Uploading to ${PPA}..." dput --force "$PPA" "$CHANGES" else echo "Dry run: would sign and upload $CHANGES" fi done # Restore changelog with the first series entry for git cp debian/changelog.orig debian/changelog SERIES=$(echo "$ALL_SERIES" | awk '{print $1}') cat > debian/changelog.new <<EOF u-boot-concept (${NEW_VERSION}) ${SERIES}; urgency=medium * Update to latest master (git ${GIT_SHORT}, ${GIT_DATE}). -- ${MAINTAINER} $(date -R) EOF cat debian/changelog >> debian/changelog.new mv debian/changelog.new debian/changelog rm -f debian/changelog.orig if [ "$DRY_RUN" = "1" ]; then echo "" echo "Dry run complete. Source packages built in parent directory." else echo "" echo "Done. Monitor builds at:" echo " https://launchpad.net/~sjg1/+archive/ubuntu/u-boot-concept/+packages" fi |