From 443c10018cb1e33cd6a054c32eb62881f1dcfca2 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Wed, 24 Jan 2024 13:37:20 -0500 Subject: Update advisory format and introduce some automation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplify the advisory format by dropping the -Backport tags and instead stick to using just the -Commit tags. To identify backports, put a substring of git-describe into the release version in the brackets next to the commit ref. This way, it not only identifies that the fix (or regression) is on the release/2.YY/master branch, it also disambiguates regressions/fixes in the branch from those in the tarball. Add a README to make it easier for consumers to understand the format. Additionally, the Release wiki needs to be updated to inform the release manager to: 1. Generate a NEWS snipped from the advisories directory AND 2. on release/2.YY/master, replace the advisories directory with a text file pointing to the advisories directory in master so that we don't have to update multiple locations. Signed-off-by: Siddhesh Poyarekar Reviewed-by: Andreas K. Hüttel --- scripts/process-advisories.sh | 85 +++++++++++++++++++++++++++++++++++++++++++ scripts/process-fixed-cves.sh | 41 --------------------- 2 files changed, 85 insertions(+), 41 deletions(-) create mode 100755 scripts/process-advisories.sh delete mode 100755 scripts/process-fixed-cves.sh (limited to 'scripts') diff --git a/scripts/process-advisories.sh b/scripts/process-advisories.sh new file mode 100755 index 0000000000..a520fab5e6 --- /dev/null +++ b/scripts/process-advisories.sh @@ -0,0 +1,85 @@ +#!/bin/bash -e +# Copyright The GNU Toolchain Authors. +# This file is part of the GNU C Library. +# +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# . + +if ! [ -d advisories ]; then + echo "error: Run me from the toplevel directory of the glibc repository." + exit 1 +fi + +command=$1 + +usage () { + cat >&2 <. - -if ! [ -d advisories ]; then - echo "error: Run me from the toplevel directory of the glibc repository." - exit 1 -fi - -release=$(echo RELEASE | gcc -E -include version.h -o - - | grep -v "^#") -minor=$(echo __GLIBC_MINOR__ | gcc -E -include include/features.h -o - - | - grep -v "^#") - -if [ $release = "\"development\"" ]; then - cur_rel=2.$((minor + 1)) -else - cur_rel=2.$minor -fi - -for f in $(grep -l "^Fix-Commit: .* ($cur_rel)$" advisories/*); do - echo -e " $(basename $f):" - cve_id=$(sed -n 's/CVE-Id: \(.*\)/\1/p' $f) - echo "$(head -1 $f) ($cve_id)" | fold -w 68 -s | while read line; do - echo " $line" - done - echo -done -- cgit v1.2.3