From 34fd0d267e582bb811e644843dbc06e1c44d9f04 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 30 Aug 2023 17:13:46 +0200 Subject: [PATCH] scripts: update to newer versions Update some scripts to the versions that I actually use. Signed-off-by: Greg Kroah-Hartman --- scripts/dorelease | 165 ++++++++++++++++++++++++++++++++-------- scripts/guess-charset | 22 +++--- scripts/make_message_id | 40 ++++++---- 3 files changed, 172 insertions(+), 55 deletions(-) diff --git a/scripts/dorelease b/scripts/dorelease index 085c6f1799..be3c12c9d9 100755 --- a/scripts/dorelease +++ b/scripts/dorelease @@ -6,14 +6,14 @@ if [ $# -ne 1 ]; then - KETCHUP=`which ketchup 2>/dev/null` + KETCHUP=`which kv 2>/dev/null` if [ -z "$KETCHUP" ]; then echo -e "Usage:\t $0 release_number" echo -e "e.g.\t $0 2.6.11.12" echo -e "or install ketchup to automatically release the latest kernel version." exit 1 fi - RELEASE=`ketchup -m` + RELEASE=`kv` else RELEASE=$1 fi @@ -21,36 +21,60 @@ fi REL_ARRAY=(${RELEASE//./ }) BASE=${REL_ARRAY[0]}.${REL_ARRAY[1]}.${REL_ARRAY[2]} REL=${REL_ARRAY[3]} +MAJOR=${REL_ARRAY[0]} MINOR=${REL_ARRAY[2]} LONGTERM=0 # see if this is a "longterm" kernel or not -if [ $MINOR == "27" ]; then - LONGTERM=1 -fi -if [ $MINOR == "32" ]; then - LONGTERM=1 -fi -if [ $MINOR == "33" ]; then - LONGTERM=1 -fi -if [ $MINOR == "34" ]; then - LONGTERM=1 -fi -if [ $MINOR == "35" ]; then - LONGTERM=1 +if [ $MAJOR == "2" ]; then + if [ $MINOR == "27" ]; then + LONGTERM=1 + fi + if [ $MINOR == "32" ]; then + LONGTERM=1 + fi + if [ $MINOR == "33" ]; then + LONGTERM=1 + fi + if [ $MINOR == "34" ]; then + LONGTERM=1 + fi + if [ $MINOR == "35" ]; then + LONGTERM=1 + fi fi -#echo "longterm = $LONGTERM" +#echo "major = $MAJOR, minor = $MINOR, longterm = $LONGTERM" -# 3.0 or 2.6? +# 5.x or 4.x or 3.x or 2.6? VER="2.6" -if [ ${REL_ARRAY[0]} == "3" ] ; then +if [ ${MAJOR} == "3" ] ; then # 3.x series VER="3.0" BASE=${REL_ARRAY[0]}.${REL_ARRAY[1]} REL=${REL_ARRAY[2]} MINOR=${REL_ARRAY[1]} fi +if [ ${MAJOR} == "4" ] ; then + # 4.x series + VER="4.x" + BASE=${REL_ARRAY[0]}.${REL_ARRAY[1]} + REL=${REL_ARRAY[2]} + MINOR=${REL_ARRAY[1]} +fi +if [ ${MAJOR} == "5" ] ; then + # 5.x series + VER="5.x" + BASE=${REL_ARRAY[0]}.${REL_ARRAY[1]} + REL=${REL_ARRAY[2]} + MINOR=${REL_ARRAY[1]} +fi +if [ ${MAJOR} == "6" ] ; then + # 6.x series + VER="6.x" + BASE=${REL_ARRAY[0]}.${REL_ARRAY[1]} + REL=${REL_ARRAY[2]} + MINOR=${REL_ARRAY[1]} +fi LAST=$(($REL - 1)) @@ -76,9 +100,14 @@ echo -n "# [ret] to continue" read RELDIR="../release-$RELEASE" -mkdir $RELDIR -echo "# building tree in $RELDIR" +if [ -d ${RELDIR} ] ; then + rm ${RELDIR}/* +else + mkdir ${RELDIR} +fi + +echo "# building tree in ${RELDIR}" # build release materials, tarball, base patch, incr patch, changelog #git archive --format=tar --prefix=linux-$RELEASE/ HEAD | gzip -9 > $RELDIR/linux-${RELEASE}.tar.gz @@ -92,8 +121,10 @@ git archive --format=tar --prefix=linux-$RELEASE/ $RELEASE_COMMIT > $RELDIR/linu git diff-tree -p $BASE_COMMIT $RELEASE_COMMIT > $RELDIR/patch-${RELEASE} if [ $INCREMENTAL -ne 0 ]; then git diff-tree -p $LAST_COMMIT $RELEASE_COMMIT > $RELDIR/patch-${LAST_REL}-${REL} + cat $RELDIR/patch-${LAST_REL}-${REL} | diffstat -p1 > $RELDIR/diffstat-${LAST_REL}-${REL} 2>/dev/null +else + cat $RELDIR/patch-${RELEASE} | diffstat -p1 > $RELDIR/diffstat-${RELEASE} 2>/dev/null fi -cat $RELDIR/patch-${LAST_REL}-${REL} | diffstat -p1 > $RELDIR/diffstat-${LAST_REL}-${REL} 2>/dev/null git log ${LAST_COMMIT}..${RELEASE_COMMIT} > $RELDIR/ChangeLog-$RELEASE < $RELDIR/ChangeLog-$RELEASE git shortlog > $RELDIR/shortlog-$RELEASE @@ -107,19 +138,21 @@ fi echo "# " -HOST="gregkh@geb.kernel.org" +#HOST="gregkh@geb.kernel.org" +HOST="git@gitolite.kernel.org" SCRIPT="${RELDIR}/upload_v${RELEASE}" touch ${SCRIPT} +chmod 755 ${SCRIPT} if [ $LONGTERM -eq 1 ]; then echo "# This is a longterm release" echo "# finalize the release:" echo "cd ${RELDIR}" - echo "kup --host=${HOST} put --tar --prefix=linux-${RELEASE}/ /pub/scm/linux/kernel/git/stable/linux-stable.git v${RELEASE} linux-${RELEASE}.tar.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/linux-${RELEASE}.tar.gz" | tee -a ${SCRIPT} - echo "kup --host=${HOST} put ChangeLog-${RELEASE} ChangeLog-${RELEASE}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/" | tee -a ${SCRIPT} - echo "kup --host=${HOST} put patch-${RELEASE} patch-${RELEASE}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/patch-${RELEASE}.gz" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put --tar --prefix=linux-${RELEASE}/ /pub/scm/linux/kernel/git/stable/linux-stable.git v${RELEASE} linux-${RELEASE}.tar.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/linux-${RELEASE}.tar.gz" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put ChangeLog-${RELEASE} ChangeLog-${RELEASE}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put patch-${RELEASE} patch-${RELEASE}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/patch-${RELEASE}.gz" | tee -a ${SCRIPT} if [ $INCREMENTAL -ne 0 ]; then - echo "kup --host=${HOST} put patch-${LAST_REL}-${REL} patch-${LAST_REL}-${REL}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/incr/patch-${LAST_REL}-${REL}.gz" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put patch-${LAST_REL}-${REL} patch-${LAST_REL}-${REL}.asc /pub/linux/kernel/v${VER}/longterm/v${BASE}/incr/patch-${LAST_REL}-${REL}.gz" | tee -a ${SCRIPT} fi # echo "mv $RELDIR/linux-${RELEASE}.tar.gz ~/v2.6/longterm/v${BASE}/" # echo "mv $RELDIR/ChangeLog-${RELEASE} ~/v2.6/longterm/v${BASE}/" @@ -132,11 +165,11 @@ else echo "# This is a stable release" echo "# finalize it:" echo "cd ${RELDIR}" - echo "kup --host=${HOST} put --tar --prefix=linux-${RELEASE}/ /pub/scm/linux/kernel/git/stable/linux-stable.git v${RELEASE} linux-${RELEASE}.tar.asc /pub/linux/kernel/v${VER}/linux-${RELEASE}.tar.gz" | tee -a ${SCRIPT} - echo "kup --host=${HOST} put ChangeLog-${RELEASE} ChangeLog-${RELEASE}.asc /pub/linux/kernel/v${VER}/" | tee -a ${SCRIPT} - echo "kup --host=${HOST} put patch-${RELEASE} patch-${RELEASE}.asc /pub/linux/kernel/v${VER}/patch-${RELEASE}.gz" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put --tar --prefix=linux-${RELEASE}/ /pub/scm/linux/kernel/git/stable/linux-stable.git v${RELEASE} linux-${RELEASE}.tar.asc /pub/linux/kernel/v${VER}/linux-${RELEASE}.tar.gz" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put ChangeLog-${RELEASE} ChangeLog-${RELEASE}.asc /pub/linux/kernel/v${VER}/" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put patch-${RELEASE} patch-${RELEASE}.asc /pub/linux/kernel/v${VER}/patch-${RELEASE}.gz" | tee -a ${SCRIPT} if [ $INCREMENTAL -ne 0 ]; then - echo "kup --host=${HOST} put patch-${LAST_REL}-${REL} patch-${LAST_REL}-${REL}.asc /pub/linux/kernel/v${VER}/incr/patch-${LAST_REL}-${REL}.gz" | tee -a ${SCRIPT} + echo "kup --host=${HOST} --subcmd=kup-server put patch-${LAST_REL}-${REL} patch-${LAST_REL}-${REL}.asc /pub/linux/kernel/v${VER}/incr/patch-${LAST_REL}-${REL}.gz" | tee -a ${SCRIPT} fi # echo "mv $RELDIR/patch-${LAST_REL}-${REL}.gz ~" # echo "mv $RELDIR/diffstat-${LAST_REL}-${REL} ~" @@ -146,3 +179,73 @@ else # echo "# current LATEST-IS is '$LATEST' is that what it should be?" # echo "# mv ~/v${VER}/${LATEST} ~/v${VER}/LATEST-IS-${RELEASE}" fi + +# create the email + +#Subject: Linux ${RELEASE} + +cat << __EOF__ > ${RELDIR}/email +I'm announcing the release of the ${RELEASE} kernel. + +All users of the ${BASE} kernel series must upgrade. + +The updated ${BASE}.y git tree can be found at: + git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-${BASE}.y +and can be browsed at the normal kernel.org git web browser: + https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary + +thanks, + +greg k-h + +------------ + +__EOF__ + +if [ $INCREMENTAL -ne 0 ]; then + cat ${RELDIR}/diffstat-${LAST_REL}-${REL} >> ${RELDIR}/email +else + cat ${RELDIR}/diffstat-${RELEASE} >> ${RELDIR}/email +fi + +echo "" >> ${RELDIR}/email +cat $RELDIR/shortlog-$RELEASE >> ${RELDIR}/email + + +# create script to send email out + +cat << __EOF__ > ${RELDIR}/send_email +#!/bin/bash + +FROM="Greg Kroah-Hartman " +TO="linux-kernel@vger.kernel.org, akpm@linux-foundation.org, torvalds@linux-foundation.org, stable@vger.kernel.org" +CC="lwn@lwn.net, jslaby@suse.cz" +SUBJECT="Linux ${RELEASE}" +ID=\$(make_message_id) + +cat email | \\ + makemail -to="\${TO}" \\ + -from="\${FROM}" \\ + -cc="\${CC}" \\ + -subject="\${SUBJECT}" \\ + -message_id="\${ID}" \\ + -date="\$(date -R)" \\ + > msg.000 + +PATCH_ID=\$(make_message_id) +cat patch-${LAST_REL}-${REL} | \\ + makemail -to="\${TO}" \\ + -from="\${FROM}" \\ + -cc="\${CC}" \\ + -subject="Re: \${SUBJECT}" \\ + -message_id="\${PATCH_ID}" \\ + -reply_to="\${ID}" \\ + -date="\$(date -R)" \\ + > msg.001 + +git send-email msg.000 msg.001 +__EOF__ + +chmod 755 ${RELDIR}/send_email + + diff --git a/scripts/guess-charset b/scripts/guess-charset index 1b0fe54634..4e4dc5a55d 100755 --- a/scripts/guess-charset +++ b/scripts/guess-charset @@ -1,6 +1,6 @@ -#! /usr/bin/env python +#! /usr/bin/env python2 # vim: set fileencoding=utf-8 -# (c) Uwe Kleine-König +# (c) Uwe Kleine-König # GPLv2 import locale @@ -9,31 +9,31 @@ import sys f = file(sys.argv[1]) data = f.read() -def len_utf8_char(data): +def len_utf8_char(data, i): def check_cont(num): - if all(map(lambda c: ord(c) >= 0x80 and ord(c) <= 0xbf, data[1:num])): + if all(map(lambda c: ord(c) >= 0x80 and ord(c) <= 0xbf, data[i+1:i+num])): return num else: return -1 - if ord(data[0]) < 128: + if ord(data[i]) < 128: # ASCII char return 1 - elif ord(data[0]) & 0xe0 == 0xc0: + elif ord(data[i]) & 0xe0 == 0xc0: return check_cont(2) - elif ord(data[0]) & 0xf0 == 0xe0: + elif ord(data[i]) & 0xf0 == 0xe0: return check_cont(3) - elif ord(data[0]) & 0xf8 == 0xf0: + elif ord(data[i]) & 0xf8 == 0xf0: return check_cont(4) - elif ord(data[0]) & 0xfc == 0xf8: + elif ord(data[i]) & 0xfc == 0xf8: return check_cont(5) - elif ord(data[0]) & 0xfe == 0xfc: + elif ord(data[i]) & 0xfe == 0xfc: return check_cont(6) i = 0 maxl = 0 while i < len(data): - l = len_utf8_char(data[i:]) + l = len_utf8_char(data, i) if l < 0: prefenc = locale.getpreferredencoding() if prefenc not in ('UTF-8', 'ANSI_X3.4-1968'): diff --git a/scripts/make_message_id b/scripts/make_message_id index b76f77fdf3..03d0879569 100755 --- a/scripts/make_message_id +++ b/scripts/make_message_id @@ -1,13 +1,27 @@ -#!/usr/bin/perl - -# we make a "fake" message id by taking the current number -# of seconds since the beginning of Unix time and tacking on -# a random number to the end, in case we are called quicker than -# 1 second since the last time we were called. - -my $date = `date "+\%s"`; -my $hostname = `hostname -d`; -chomp($date); -my $pseudo_rand = int (rand(4200)); -$message_id = "$date$pseudo_rand\@$hostname"; -print "$message_id"; +#!/bin/bash +# This generates lore-friendly message-id headers that are safe, unique, and +# provide better UX for someone using lore to retrieve messages. +# +# Instructions for using with mutt/neomutt: +# +# Save this as ~/bin/my-gen-msgid, then add ~/.mutt-fix-msgid with the following, +# fixing your path to the file: +# +# my_hdr Message-ID: <`/home/user/bin/my-gen-msgid`> +# +# then edit ~/.muttrc to add: +# +# send-hook . "source ~/.mutt-fix-msgid" +# +# I like my msgid to start with the date +msgid="$(date +%Y%m%d%S)-" +if [[ -x /bin/diceware ]]; then + # I like memorable nonsense, so I can visually tell one message from another, + # by looking at the lore URL, so use diceware for that + msgid="${msgid}$(diceware --no-caps -d- -n2)-$(openssl rand -hex 2)" +else + # Just use openssl with some extra randomness + msgid="${msgid}$(openssl rand -hex 12)" +fi +# Don't leak my hostname, just use something that makes sense to me +echo -n "${msgid}@gregkh" -- 2.39.2