-
Notifications
You must be signed in to change notification settings - Fork 601
/
Copy pathrules
executable file
·160 lines (141 loc) · 5.38 KB
/
rules
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/usr/bin/make -f
# -*- makefile -*-
#export DH_VERBOSE=1
export DH_OPTIONS
export DH_GOPKG := github.com/snapcore/snapd
#export DEB_BUILD_OPTIONS=nocheck
export DH_GOLANG_EXCLUDES=tests
export DH_GOLANG_GO_GENERATE=1
export PATH:=${PATH}:${CURDIR}
RELEASE = $(shell lsb_release -c -s)
SYSTEMD_UNITS_DESTDIR=
ifeq ($(RELEASE),trusty)
# We are relying on a deputy systemd setup for trusty,
# in which systemd does not run as PID 1. To solve the
# problem of services shipping systemd units and upstart jobs
# being started twice, we altered systemd on trusty to ignore
# /lib/systemd/system and instead consider only selected units from
# /lib/systemd/upstart.
SYSTEMD_UNITS_DESTDIR="lib/systemd/upstart/"
# make sure that trusty's golang-1.6 is picked up correctly.
export PATH:=/usr/lib/go-1.6/bin:${PATH}
else
SYSTEMD_UNITS_DESTDIR="lib/systemd/system/"
endif
# The go tool does not fully support vendoring with gccgo, but we can
# work around that by constructing the appropriate -I flag by hand.
GCCGO := $(shell go tool dist env > /dev/null 2>&1 && echo no || echo yes)
GCCGOFLAGS=
ifeq ($(GCCGO),yes)
GOARCH := $(shell go env GOARCH)
GOOS := $(shell go env GOOS)
GCCGOFLAGS=-gccgoflags="-I $(CURDIR)/_build/pkg/gccgo_$(GOOS)_$(GOARCH)/$(DH_GOPKG)/vendor"
export DH_GOLANG_GO_GENERATE=0
endif
# check if we need to include the testkeys in the binary
TAGS=
ifneq (,$(filter testkeys,$(DEB_BUILD_OPTIONS)))
TAGS=-tags withtestkeys
endif
%:
dh $@ --buildsystem=golang --with=golang --fail-missing --with systemd --builddirectory=_build
override_dh_auto_build:
mkdir -p _build/src/$(DH_GOPKG)/cmd/snap/test-data
cp -a cmd/snap/test-data/*.gpg _build/src/$(DH_GOPKG)/cmd/snap/test-data/
dh_auto_build -- $(TAGS) $(GCCGOFLAGS)
override_dh_auto_test:
dh_auto_test -- $(GCCGOFLAGS)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# check that only the main trusted account-key is included
[ $$(strings _build/bin/snapd|grep -c -E "public-key-sha3-384: [a-zA-Z0-9_-]{64}") -eq 1 ]
strings _build/bin/snapd|grep -c "^public-key-sha3-384: -CvQKAwRQ5h3Ffn10FILJoEZUXOv6km9FwA80-Rcj-f-6jadQ89VRswHNiEB9Lxk$$"
endif
override_dh_systemd_enable:
# enable auto-import
dh_systemd_enable \
-psnapd \
snapd.autoimport.service
# we want the auto-update timer enabled by default
dh_systemd_enable \
-psnapd \
snapd.refresh.timer
# but the auto-update service disabled
dh_systemd_enable \
--no-enable \
-psnapd \
snapd.refresh.service
# enable snapd
dh_systemd_enable \
-psnapd \
snapd.socket
dh_systemd_enable \
-psnapd \
snapd.service
override_dh_systemd_start:
# we want to start the auto-update timer
dh_systemd_start \
-psnapd \
snapd.refresh.timer
# but not start the service
dh_systemd_start \
--no-start \
-psnapd \
snapd.refresh.service
# start snapd
dh_systemd_start \
-psnapd \
snapd.socket
dh_systemd_start \
-psnapd \
snapd.service
# start autoimport
dh_systemd_start \
-psnapd \
snapd.autoimport.service
override_dh_install:
# we do not need this in the package, its just needed during build
rm -rf ${CURDIR}/debian/tmp/usr/bin/xgettext-go
# uboot-go is not shippable
rm -f ${CURDIR}/debian/tmp/usr/bin/uboot-go
# toolbelt is not shippable
rm -f ${CURDIR}/debian/tmp/usr/bin/toolbelt
# we do not like /usr/bin/snappy anymore
rm -f ${CURDIR}/debian/tmp/usr/bin/snappy
# install dev package files
mkdir -p debian/golang-github-snapcore-snapd-dev/usr/share
cp -R debian/tmp/usr/share/gocode debian/golang-github-snapcore-snapd-dev/usr/share
# install udev stuff, must be installed before 80-udisks
install debian/snapd.autoimport.udev -D debian/snapd/lib/udev/rules.d/70-snapd-autoimport.rules
# install binaries and needed files
install debian/tmp/usr/bin/snap -D debian/snapd/usr/bin/snap
install debian/tmp/usr/bin/snapctl -D debian/snapd/usr/bin/snapctl
install debian/tmp/usr/bin/snapd -D debian/snapd/usr/lib/snapd
install debian/tmp/usr/bin/snap-exec -D debian/snapd/usr/lib/snapd
install --mode=0644 data/completion/snap -D debian/snapd/usr/share/bash-completion/completions/snap
# i18n stuff
mkdir -p debian/snapd/usr/share
cp -R share/locale debian/snapd/usr/share
# etc/profile.d contains the PATH extension for snap packages
mkdir -p debian/snapd/etc
cp -R etc/profile.d debian/snapd/etc
# etc/X11/Xsession.d will add to XDG_DATA_DIRS so that we have .desktop support
mkdir -p debian/snapd/etc
cp -R etc/X11 debian/snapd/etc
# we conditionally install snapd's systemd units
mkdir -p debian/snapd/$(SYSTEMD_UNITS_DESTDIR)
install --mode=0644 debian/snapd.refresh.timer debian/snapd/$(SYSTEMD_UNITS_DESTDIR)
install --mode=0644 debian/snapd.refresh.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)
install --mode=0644 debian/snapd.autoimport.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)
install --mode=0644 debian/*.socket debian/snapd/$(SYSTEMD_UNITS_DESTDIR)
install --mode=0644 debian/snapd.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)
ifeq ($(RELEASE),trusty)
dh_link debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/snapd.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/multi-user.target.wants/snapd.service
dh_link debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/snapd.autoimport.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/multi-user.target.wants/snapd.autoimport.service
endif
override_dh_auto_install: snap.8
dh_auto_install -O--buildsystem=golang
snap.8:
$(CURDIR)/_build/bin/snap help --man > $@
override_dh_auto_clean:
dh_auto_clean -O--buildsystem=golang
rm -vf snap.8