(draft) blog post about turbogears 2 packaging
[homepage.git] / blog / posts / 2009 / 05 / kick-starting_turbogears_2_packaging / get-orig-source.mk
1 # debian/rules snippet for creating multi-upstream tarball relying on
2 # several debian/*.watch files
3
4 # Copyright © 2009 Stefano Zacchiroli <zack@debian.org>
5 # License: GNU GPL version 3 or above
6
7 # TODO: does not yet fully implement policy wrt get-orig-source:
8 #       - the target cannot be invoked from any dir (rely on "debian/")
9 #       - tmpdir handling is not fully safe (e.g., no "mktemp -d")
10
11 GOSTMP = get-orig.source.tmp
12 ORIGNAME = $(PKG)-$(shell date +%Y%m%d)
13 ORIGTARBALL = $(PKG)_$(shell date +%Y%m%d).orig.tar.gz
14
15 get-orig-source: $(patsubst %,%/get-orig-source,$(UPSTREAMS))
16         cd $(GOSTMP) && \
17         mkdir $(ORIGNAME) && \
18         for p in $(UPSTREAMS) ; do \
19                 mv `readlink $$p` $(ORIGNAME) ; \
20                 mv $$p $(ORIGNAME) ; \
21         done && \
22         tar cvzf $(ORIGTARBALL) $(ORIGNAME) && \
23         mv $(ORIGTARBALL) ../ && \
24         cd .. && \
25         rm -rf $(GOSTMP)/
26 $(GOSTMP):
27         -mkdir $@
28 %/get-orig-source: $(GOSTMP)
29         uscan --watchfile debian/$*.watch \
30                 --upstream-version 0 --package $* \
31                 --download --destdir $(GOSTMP)/
32         cd $(GOSTMP) && \
33         tar xzf $**.orig.tar.gz && \
34         ln -s `tar tzf $**.orig.tar.gz | head -n1` $*