[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][ftp-team/dak][master] add script to merge multiple PGP signature blocks



Title: GitLab

Ansgar pushed to branch master at Debian FTP Team / dak

Commits:

2 changed files:

Changes:

  • config/debian/pointrelease
    ... ... @@ -387,19 +387,32 @@ log "Release file generated, waiting for RMs checking and (hopefully) signing"
    387 387
     merge-release-signatures() {
    
    388 388
         local archiveroot="${1}"
    
    389 389
         local s="${2}"
    
    390
    -    local releasefile="${3}"
    
    391
    -    rm -f ${archiveroot}/dists/${s}/InRelease ${archiveroot}/zzz-dists/${s}/InRelease
    
    390
    +    local oursignature="${3}"
    
    391
    +    local ourmessage="${4}"
    
    392
    +    local releasefile="${5}"
    
    393
    +
    
    394
    +    echo "==== Processing ${s}/${oursignature}..."
    
    395
    +
    
    396
    +    # backup ${oursignature} before we modify it...
    
    397
    +    cp --no-clobber ${archiveroot}/zzz-dists/${s}/${oursignature} ~/${suitename}_${newrev}/${oursignature}
    
    398
    +
    
    392 399
         cd ~/${suitename}_${newrev}
    
    393 400
         while ! ${wget} -O "${releasefile}" "${release_base}/${releasefile}"; do
    
    394 401
             sleep 10
    
    395 402
         done
    
    396
    -    cd ${archiveroot}/dists/${s}
    
    397
    -    cat ~/${suitename}_${newrev}/${releasefile} >> Release.gpg
    
    398
    -    gpg --no-default-keyring --keyring /usr/share/keyrings/debian-archive-keyring.gpg --trust-model=always --verify Release.gpg Release
    
    403
    +    ${scriptsdir}/gpg-merge-signatures "${oursignature}" "${releasefile}" > ${archiveroot}/dists/${s}/${oursignature}
    
    404
    +
    
    405
    +    gpg --no-default-keyring --keyring /usr/share/keyrings/debian-archive-keyring.gpg --trust-model=always --verify ${oursignature} ${ourmessage}
    
    399 406
     }
    
    400 407
     
    
    401
    -merge-release-signatures $(get_archiveroot ftp-master) ${suite} Release-${newrev}.gpg
    
    402
    -merge-release-signatures $(get_archiveroot debian-debug) ${suite}-debug Release-${newrev}-debug.gpg
    
    408
    +merge-release-signatures $(get_archiveroot ftp-master) ${suite} Release.gpg Release Release-${newrev}.gpg
    
    409
    +merge-release-signatures $(get_archiveroot debian-debug) ${suite}-debug Release.gpg Release Release-${newrev}-debug.gpg
    
    410
    +if [ "${suitename}" = stretch ]; then
    
    411
    +    rm -f ${archiveroot}/dists/${suite}/InRelease ${archiveroot}/zzz-dists/${suite}/InRelease
    
    412
    +else
    
    413
    +    merge-release-signatures $(get_archiveroot ftp-master) ${suite} InRelease "" InRelease-${newrev}.gpg
    
    414
    +    merge-release-signatures $(get_archiveroot debian-debug) ${suite}-debug InRelease "" InRelease-${newrev}-debug.gpg
    
    415
    +fi
    
    403 416
     
    
    404 417
     echo "Done. Is a mirrorpush needed? Or just one to the cd-builder?"
    
    405 418
     read -e -p "Mirrorpush? no/cd/yes " -i "cd" mirrorpush
    

  • scripts/debian/gpg-merge-signatures
    1
    +#!/bin/bash
    
    2
    +#
    
    3
    +# Copyright (C) 2019, Ansgar Burchardt <ansgar@debian.org>
    
    4
    +# License: GPL-2+
    
    5
    +#
    
    6
    +# This program is free software; you can redistribute it and/or modify
    
    7
    +# it under the terms of the GNU General Public License as published by
    
    8
    +# the Free Software Foundation; either version 2 of the License, or
    
    9
    +# (at your option) any later version.
    
    10
    +#
    
    11
    +# This program is distributed in the hope that it will be useful,
    
    12
    +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    13
    +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    14
    +# GNU General Public License for more details.
    
    15
    +#
    
    16
    +# You should have received a copy of the GNU General Public License
    
    17
    +# along with this program.  If not, see <https://www.gnu.org/licenses/>.
    
    18
    +
    
    19
    +set -eu
    
    20
    +set -o pipefail
    
    21
    +
    
    22
    +if [ $# -le 1 ]; then
    
    23
    +    echo >&2 "usage: $0 <files...>"
    
    24
    +    echo >&2
    
    25
    +    echo >&2 "merge multiple (cleartext or detached) signatures into one"
    
    26
    +    exit 0
    
    27
    +fi
    
    28
    +
    
    29
    +sed '/^-----BEGIN PGP SIGNATURE-----/ Q' "${1}"
    
    30
    +
    
    31
    +sed -sn '/^-----BEGIN PGP SIGNATURE-----/,$ p' "${@}" |
    
    32
    +    gpg --dearmor - |
    
    33
    +    gpg --enarmor - |
    
    34
    +    sed 's/^-----\(.*\) PGP ARMORED FILE-----/-----\1 PGP SIGNATURE-----/; /^Comment:/ d'


  • Reply to: