lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181212095107.5e35982a@canb.auug.org.au>
Date:   Wed, 12 Dec 2018 09:51:07 +1100
From:   Stephen Rothwell <sfr@...b.auug.org.au>
To:     Andreas Grünbacher 
        <andreas.gruenbacher@...il.com>
Cc:     Konstantin Ryabitsev <konstantin@...uxfoundation.org>,
        Steven Whitehouse <swhiteho@...hat.com>,
        Bob Peterson <rpeterso@...hat.com>,
        Linux-Next Mailing List <linux-next@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Andreas Gruenbacher <agruenba@...hat.com>
Subject: Re: linux-next: Signed-off-by missing for commit in the gfs2 tree

Hi Andreas,

On Tue, 11 Dec 2018 21:47:43 +0100 Andreas Grünbacher <andreas.gruenbacher@...il.com> wrote:
>
> Yep, I've not asked for a way to get the server to reject or warn
> about such pushes without a reason.

Sure, but also here's the script I run (which could be run before
pushing) ...

----------------------------------------------------------------------
#!/bin/bash

if [ "$#" -lt 1 ]; then
	printf "Usage: %s <commit range>\n", "$0" 1>&2
	exit 1
fi

commits=$(git rev-list --no-merges "$@")
if [ -z "$commits" ]; then
	printf "No commits\n"
	exit 0
fi

author_missing=
committer_missing=

print_commits()
{
	local t="$1"

	shift

	s=
	is='is'
	its='its'
	[ "$#" -gt 1 ] && {
		s='s'
		is='are'
		its='their'
	}
	printf "Commit%s\n\n" "$s"
	git log --no-walk --pretty='format:  %h ("%s")' "$@"
	printf "\n%s missing a Signed-off-by from %s %s%s.\n" "$is" "$its" "$t" "$s"
	printf "\n"
}

for c in $commits; do
	ae=$(git log -1 --format='<%ae>%n<%aE>%n %an %n %aN ' "$c" | sort -u)
	ce=$(git log -1 --format='<%ce>%n<%cE>%n %cn %n %cN ' "$c" | sort -u)
	msg=$(git log -1 --format='%b' "$c")
	sob=$(echo "$msg" | sed -En 's/^\s*Signed-off-by:?\s*/ /ip')

	am=false
	cm=false
	grep -i -F -q "$ae" <<<"$sob" ||
		am=true
	grep -i -F -q "$ce" <<<"$sob" ||
		cm=true
	"$am" && author_missing+=" $c"
	"$cm" && committer_missing+=" $c"
done

if [ "$author_missing" ]; then
	print_commits "author" $author_missing
fi
if [ "$committer_missing" ]; then
	print_commits "committer" $committer_missing
fi
----------------------------------------------------------------------

-- 
Cheers,
Stephen Rothwell

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ