summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Engling <erdgeist@erdgeist.org>2026-11-02 02:19:22 +0100
committerDirk Engling <erdgeist@erdgeist.org>2026-11-02 02:19:22 +0100
commit6de11792013cd087897fd7c2a7519fd26211b105 (patch)
treecdfd98cce340f6ce0510ecf2dc61f68b06262e5f
parent35757bced85cfe870d62590d73bdbcb5035efbba (diff)
Carry the version into the tarball
-rw-r--r--.gitignore2
-rw-r--r--Makefile17
2 files changed, 17 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 5a9567f..df288e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@ tests/runner
10tests/runner.poll 10tests/runner.poll
11tests/runner.sanitize 11tests/runner.sanitize
12.buildstamp 12.buildstamp
13.tarball-version
14opentracker-*.tar.gz
diff --git a/Makefile b/Makefile
index 45c0f29..a4fe92f 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@ FEATURES+=-DWANT_FULLSCRAPE
54#FEATURES+=-D_DEBUG_RANDOMTORRENTS 54#FEATURES+=-D_DEBUG_RANDOMTORRENTS
55 55
56VERSION=1.0.0 56VERSION=1.0.0
57GIT_VERSION=`sh -c 'command -v git >/dev/null && test -d .git && git describe --tags --match "v*" --always --dirty 2>/dev/null'` 57+GIT_VERSION=`sh -c 'test -r .tarball-version && read v < .tarball-version && echo "$$v" || { command -v git >/dev/null && test -d .git && git describe --tags --match "v*" --always --dirty 2>/dev/null; }'`
58 58
59OPTS_debug=-D_DEBUG -g -ggdb # -pg -fprofile-arcs -ftest-coverage 59OPTS_debug=-D_DEBUG -g -ggdb # -pg -fprofile-arcs -ftest-coverage
60OPTS_production=-O3 60OPTS_production=-O3
@@ -172,7 +172,7 @@ check-all:
172 $(MAKE) check-integration 172 $(MAKE) check-integration
173 $(MAKE) check-tsan 173 $(MAKE) check-tsan
174 174
175.PHONY: all FORCE check check-poll check-sanitize check-integration check-tsan check-all clean install 175.PHONY: all FORCE dist check check-poll check-sanitize check-integration check-tsan check-all clean install
176 176
177BINARIES=opentracker opentracker.debug opentracker.integration opentracker.tsan proxy proxy.debug $(TESTBIN) $(TESTBIN).sanitize $(TESTBIN).poll 177BINARIES=opentracker opentracker.debug opentracker.integration opentracker.tsan proxy proxy.debug $(TESTBIN) $(TESTBIN).sanitize $(TESTBIN).poll
178 178
@@ -181,3 +181,16 @@ clean:
181 181
182install: 182install:
183 install -m 755 opentracker $(DESTDIR)$(BINDIR) 183 install -m 755 opentracker $(DESTDIR)$(BINDIR)
184
185# Roll a release: tag it v<something>, then make dist. The commit is written
186# into the tarball, so a build from it reports the same version this checkout
187# would, without a git to ask. The tarball is HEAD by construction, so the
188# working tree it was rolled from does not enter into the version.
189DISTNAME=opentracker-$(VERSION)
190
191dist:
192 rm -rf $(DISTNAME) $(DISTNAME).tar.gz
193 git archive --format=tar --prefix=$(DISTNAME)/ HEAD | tar -xf -
194 git describe --tags --match "v*" --always > $(DISTNAME)/.tarball-version
195 tar -czf $(DISTNAME).tar.gz $(DISTNAME)
196 rm -rf $(DISTNAME)