2 # Copyright (C) 2012-2019 Red Hat, Inc. All rights reserved.
4 # Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
6 # This software licensed under GPL-2.0+
9 # to build official release tarballs, handle tagging and publish.
12 # make -f build-aux/release.mk all version=0.9 release=yes publish
18 deliverables
= $(project
)-$(version
).sha256 \
19 $(project
)-$(version
).
tar.bz2 \
20 $(project
)-$(version
).
tar.gz \
21 $(project
)-$(version
).
tar.xz
24 all: tag tarballs sign
# first/last skipped per release/gpgsignkey respectively
30 @echo ERROR
: need to
define version
=
33 @if
[ ! -d .git
]; then \
34 echo This script needs to be executed from top level cluster git tree
; \
47 tag
: setup .
/tag-
$(version
)
51 @echo Building
test release
$(version
), no tagging
52 echo
'$(version)' > .tarball-version
54 # following will be captured by git-version-gen automatically
55 git tag
-a
-m
"v$(version) release" v
$(version
) HEAD
64 #make distcheck (disabled.. needs root)
69 sha256
: $(project
)-$(version
).sha256
71 # NOTE: dependency backtrack may fail trying to sign missing tarballs otherwise
72 # (actually, only when signing tarballs directly, but doesn't hurt anyway)
73 $(deliverables
): tarballs
75 $(project
)-$(version
).sha256
:
76 # checksum anything from deliverables except for in-prep checksums file
77 sha256sum
$(deliverables
:$@
=) |
sort -k2
> $@
83 @echo No GPG signing key defined
85 sign
: $(deliverables
:=.asc
)
88 # NOTE: cannot sign multiple files at once
89 $(project
)-$(version
).
%.asc
: $(project
)-$(version
).
%
90 gpg
--default-key
"$(gpgsignkey)" \
99 @echo Building
test release
$(version
), no publishing
!
102 @git push
--follow-tags
origin
103 @echo
: publishing files
104 @scp
$(deliverables
) $(deliverables
:=.asc
) www.kronosnet.org
:kronosnet
/releases
/.
110 rm -rf
$(project
)-* tag-
* .tarball-version