blob: 9c2b5b471ac891072ad3222c55eef105203b8536 (
plain)
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
|
#!/bin/sh
#
# Copyright (C) 2012 Karel Zak <kzak@redhat.com>
#
# Usage: ko-release-gen [<directory>]
#
# This script prepares a new release for publishing on kernel.org. The
# hierarchy of release files is created in the <directory> (default directory
# is "kernel.org"). Use case:
#
# make distcheck
# make changelog
# tools/ko-release-gen
# tools/ko-release-push
#
cd "$(git rev-parse --show-toplevel)" || {
echo "error: failed to chdir to git root"
exit 1
}
[ -f ".version" ] || \
echo "error: cannot found version file (call make distcheck)"
VERSION=$(cat .version)
VERSION_MAJOR=$(echo $VERSION | sed 's/-rc[0-9]//; s/\(.*\..*\)\..*/\1/')
VERSION_DOCS=$(echo $VERSION | sed 's/-rc[0-9]//')
DISTDIR=${1:-"kernel.org"}/v${VERSION_MAJOR}
GPG_CMD="gpg --use-agent --armor --detach-sign --quiet"
die() {
echo $1
exit 1
}
add_file() {
local src="$1"
local name=$(basename $1)
local subdir=$DISTDIR/${2:-""}
mkdir -p $subdir
cp $src $subdir || die "$src: copy failed"
[ -f $subdir/$name ] || die "$name not found"
echo -n " $subdir/$name ..."
case "$name" in
*.tar.xz)
local sig=$(echo "$name" | sed 's/\.tar\.xz/.tar.sign/')
xz -d -c $subdir/$name | $GPG_CMD --output $subdir/$sig
;;
*.tar.gz)
local sig=$(echo "$name" | sed 's/\.tar\.gz/.tar.sign/')
gzip -d -c $subdir/$name | $GPG_CMD --output $subdir/$sig
;;
*.tar.bz2)
local sig=$(echo "$name" | sed 's/\.tar\.bz2/.tar.sign/')
bzip2 -d -c $subdir/$name | $GPG_CMD --output $subdir/$sig
;;
*)
local sig="${name}.sign"
cat $subdir/$name | $GPG_CMD --output $subdir/$sig
;;
esac
echo " OK "
}
add_html_dir() {
local src="$1" # source dir
local tgt="$2" # target dir
for fl in $(ls $src/*.html $src/*.css $src/*.png); do
add_file $fl $tgt
done
}
rm -rf $DISTDIR
eval $(gpg-agent --daemon)
add_file util-linux-${VERSION}.tar.xz
add_file v${VERSION}-ChangeLog
add_file Documentation/releases/v${VERSION_DOCS}-ReleaseNotes
add_html_dir libmount/docs/html libmount-docs
add_html_dir libblkid/docs/html libblkid-docs
killall gpg-agent
|