aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: e0d7de25646de8d4a49316e3af9c13a282b5c956 (about) (plain) (blame)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.POSIX:


.SUFFIXES:
.SUFFIXES: .in

.in:
	sed \
		-e "s|@HOSTNAME@|`hostname`|g" \
		< $< > $@
	if [ -x $< ]; then chmod +x $@; fi



all: EuAndreh.key guix nix debian


paku.lock: src/bin/paku
	touch $@


test-config-files = \
	tests/internet/etc/postfix/main.cf      \
	tests/internet/etc/dkimproxyout.conf    \
	tests/internet/etc/dovecot/dovecot.conf \

derived-assets = \
	$(test-config-files) \

guix: src/org/euandre/packages.scm result-packages result-services

src/org/euandre/packages.scm: paku.lock
	perl src/bin/paku guix > src/org/euandre/packages.scm

result-packages:
	guix build -r $@ -v3 -Lsrc/ -K \
		-f src/org/euandre/packages.scm \
		-f src/org/euandre/queue.scm

local-files = \
	/etc/postfix/master.cf \
	/etc/postfix/main.cf   \

internet-files = \
	$(local-files)            \
	/etc/sasl2/smtpd.conf     \
	/etc/dkimproxyout.conf    \
	/etc/dovecot/dovecot.conf \

result-local: result-packages
	guix system -v3 -Lsrc/ -K -r $@ build tests/local/system.scm
	for f in $(local-files); do \
		diff -U5 --color=always result-local$$f tests/local$$f; \
	done

result-internet: result-packages
	$(MAKE) $(test-config-files)
	guix system -v3 -Lsrc/ -K -r $@ build tests/internet/system.scm
	for f in $(internet-files); do \
		diff -U5 --color=always result-internet$$f tests/internet$$f; \
	done

result-services: result-local result-internet


nix: default.nix result

default.nix: paku.lock
	perl src/bin/paku nix > $@

result:
	nix-build build.nix


debian.mk: paku.lock
	perl src/bin/paku debian > $@

debian: debian.mk
	$(MAKE) -f debian.mk


public/debian: debian
	mkdir -p $(@D)
	rsync -avzP --delete `$(MAKE) -s -f debian.mk public-dir`/ $@/

public/paku.html: paku.lock src/bin/paku
	mkdir -p $(@D)
	perl src/bin/paku html > $@

public: public/debian public/paku.html


upload: public
	rsync -avzP --delete public/ euandre.org:/srv/www/s/package-repository/

HTTP-REMOTE = 'https://euandre.org/s/package-repository'
check-ubuntu:
	sh tests/vm-check.sh -x -t deb -H ubuntu-x86_64-headless -r $(HTTP-REMOTE)

check: check-ubuntu


clean:
	rm -rf \
		$(derived-assets) result* .paku/ public/ debian.mk

EuAndreh.key: paku.lock
	gpg --armour --export eu@euandre.org > $@