~knielsen/ourdelta/bug_484127_484120_2

« back to all changes in this revision

Viewing changes to bakery/debian-5.1/dist/Ubuntu/rules

  • Committer: Arjen Lentz
  • Date: 2009-10-28 03:20:03 UTC
  • mfrom: (54.4.30 ourdelta-mariadb51-2)
  • Revision ID: arjen@openquery.com-20091028032003-3ebv58q8zin6xxbd
Merge from 5.1 bakery branch
Made autobake-deb.sh from 5.1 branch into separate autobake51-deb.sh (nasty merge)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/make -f
 
2
 
 
3
export DH_VERBOSE=1
 
4
export DEB_BUILD_HARDENING=1
 
5
 
 
6
PACKAGE=mariadb-5.1
 
7
 
 
8
include /usr/share/dpatch/dpatch.make
 
9
 
 
10
TMP=$(CURDIR)/debian/tmp/
 
11
 
 
12
ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
13
ARCH_OS = $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
 
14
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
15
DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 
16
DEBVERSION = $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }' | sed 's/^.*-//' )
 
17
 
 
18
DEB_SOURCE_PACKAGE ?= $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':'))
 
19
DEB_VERSION ?= $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
 
20
DEB_NOEPOCH_VERSION ?= $(shell echo $(DEB_VERSION) | cut -d: -f2-)
 
21
DEB_UPSTREAM_VERSION ?= $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
 
22
DEB_UPSTREAM_VERSION_MAJOR_MINOR := $(shell echo $(DEB_UPSTREAM_VERSION) | sed -r -n 's/^([0-9]+\.[0-9]+).*/\1/p')
 
23
 
 
24
DISTRIBUTION = $(shell lsb_release -i -s)
 
25
 
 
26
MAKE_J = -j$(shell if [ -f /proc/cpuinfo ] ; then grep -c processor.* /proc/cpuinfo ; else echo 1 ; fi)
 
27
ifeq (${MAKE_J}, -j0)
 
28
  MAKE_J = -j1
 
29
endif
 
30
 
 
31
MAKE_TEST_TARGET=test-force
 
32
ifneq ($(findstring $(DEB_BUILD_OPTIONS),fulltest),)
 
33
# make test-bt is the testsuite run by the MySQL build team 
 
34
# before a release, but it is long
 
35
    MAKE_TEST_TARGET=test-bt
 
36
endif
 
37
 
 
38
USE_ASSEMBLER=--enable-assembler 
 
39
 
 
40
# Use sane defaults.
 
41
MYSQL_BUILD_CC = gcc -static-libgcc
 
42
MYSQL_BUILD_CXX = gcc -static-libgcc
 
43
MYSQL_BUILD_CFLAGS = -O2 -fno-omit-frame-pointer -g -pipe -Wall
 
44
MYSQL_BUILD_CXXFLAGS = -O2 -fno-omit-frame-pointer -g -pipe -Wall
 
45
 
 
46
ifneq (,$(filter $(ARCH), amd64 i386 ia64 s390))
 
47
    TESTSUITE_FAIL_CMD=exit 1
 
48
else
 
49
    TESTSUITE_FAIL_CMD=true
 
50
endif
 
51
 
 
52
BUILDDIR = builddir
 
53
builddir = $(BUILDDIR)
 
54
 
 
55
# This causes seg11 crashes if LDAP is used for groups in /etc/nsswitch.conf
 
56
# so it is disabled by default although, according to MySQL, it brings >10%
 
57
# performance gain if enabled. See #299382.
 
58
ifeq ($(STATIC_MYSQLD), 1)
 
59
    USE_STATIC_MYSQLD=--with-mysqld-ldflags=-all-static
 
60
endif
 
61
                
 
62
 
 
63
configure: patch configure-stamp
 
64
configure-stamp:
 
65
        @echo "RULES.$@"
 
66
        dh_testdir
 
67
 
 
68
ifneq ($(ARCH_OS),hurd)
 
69
        if [ ! -d /proc/self ]; then echo "/proc IS NEEDED" 1>&2; exit 1; fi 
 
70
endif
 
71
 
 
72
        ( test -d $(builddir) || mkdir $(builddir) ) && cd $(builddir) && \
 
73
        sh -c  'PATH=$${MYSQL_BUILD_PATH:-"/bin:/usr/bin"} \
 
74
                CC=$${MYSQL_BUILD_CC:-"gcc -static-libgcc"} \
 
75
                CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O2 -fno-omit-frame-pointer -g -pipe -Wall"} \
 
76
                CXX=$${MYSQL_BUILD_CXX:-"gcc -static-libgcc"} \
 
77
                CXXFLAGS=$${MYSQL_BUILD_CXXFLAGS:-"-O2 -fno-omit-frame-pointer -g -pipe -Wall"} \
 
78
            ../configure \
 
79
                --build=${DEB_BUILD_GNU_TYPE} \
 
80
                --host=${DEB_HOST_GNU_TYPE} \
 
81
                \
 
82
                --prefix=/usr \
 
83
                --exec-prefix=/usr \
 
84
                --libexecdir=/usr/sbin \
 
85
                --datadir=/usr/share \
 
86
                --localstatedir=/var/lib/mysql \
 
87
                --includedir=/usr/include \
 
88
                --infodir=/usr/share/info \
 
89
                --mandir=/usr/share/man \
 
90
                \
 
91
                --with-server-suffix="-$(DEBVERSION)" \
 
92
                --with-comment="(OurDelta - http://ourdelta.org/)" \
 
93
                --with-system-type="debian-linux-gnu" \
 
94
                \
 
95
                --enable-shared \
 
96
                --enable-static \
 
97
                --enable-thread-safe-client \
 
98
                --enable-local-infile \
 
99
                \
 
100
                --with-unix-socket-path=/var/run/mysqld/mysqld.sock \
 
101
                --with-mysqld-user=mysql \
 
102
                \
 
103
                --with-big-tables \
 
104
                --without-docs \
 
105
                --with-extra-charsets=all \
 
106
                --with-libwrap \
 
107
                --with-ssl \
 
108
                --with-libevent \
 
109
                --with-readline \
 
110
                --with-zlib-dir=bundled \
 
111
                --with-embedded-server \
 
112
                --with-plugins=max-no-ndb \
 
113
                --without-plugin-innodb_plugin'
 
114
 
 
115
        touch $@
 
116
 
 
117
build: build-stamp
 
118
 
 
119
build-stamp: configure
 
120
        @echo "RULES.$@"
 
121
        dh_testdir
 
122
 
 
123
        cd $(builddir) && $(MAKE) $(MAKE_J)
 
124
 
 
125
ifeq ($(findstring $(DEB_BUILD_OPTIONS),nocheck),)
 
126
        # Don't know why the following is necessary...
 
127
        cp unittest/unit.pl $(builddir)/unittest/
 
128
        cp -r mysql-test/* $(builddir)/mysql-test/
 
129
        cp -r sql/share/* $(builddir)/sql/share/
 
130
        cp -r scripts/*sql $(builddir)/scripts/
 
131
        if [ ! -f testsuite-stamp ] ; then \
 
132
          cd $(builddir) && $(MAKE) $(MAKE_TEST_TARGET) || $(TESTSUITE_FAIL_CMD) ; \
 
133
        fi
 
134
endif
 
135
 
 
136
        touch testsuite-stamp
 
137
 
 
138
        touch build-stamp
 
139
 
 
140
clean: clean-patched unpatch
 
141
        rm -rf debian/patched
 
142
clean-patched:
 
143
        @echo "RULES.clean-patched"
 
144
        dh_testdir 
 
145
        dh_testroot
 
146
        rm -f configure-stamp*
 
147
        rm -f build-stamp*
 
148
        rm -f testsuite-stamp
 
149
        
 
150
        [ ! -f Makefile ] || $(MAKE) clean
 
151
        [ ! -d mysql-test/var ] || rm -rf mysql-test/var
 
152
        
 
153
        rm -rf $(BUILDDIR)
 
154
 
 
155
        debconf-updatepo
 
156
        dh_clean -v
 
157
 
 
158
 
 
159
install: build
 
160
        @echo "RULES.$@"
 
161
        dh_testdir
 
162
        dh_testroot
 
163
        dh_clean -k
 
164
        dh_installdirs
 
165
 
 
166
        # some self written manpages which hopefully
 
167
        # gets overwritten sooner or later with upstreams
 
168
        mkdir -p $(TMP)/usr/share/man/man1/
 
169
        mkdir -p $(TMP)/usr/share/man/man8/
 
170
        cp debian/additions/*.1 $(TMP)/usr/share/man/man1/
 
171
        mkdir -p $(TMP)/etc/mysql/conf.d/
 
172
        cp debian/additions/mysqld_safe_syslog.cnf $(TMP)/etc/mysql/conf.d/
 
173
 
 
174
        # make install (trailing slash needed for innobase)
 
175
        cd $(builddir) && $(MAKE) install DESTDIR=$(TMP)/
 
176
                
 
177
        # After installing, remove rpath to make lintian happy.
 
178
        set +e; \
 
179
        find ./debian/tmp/ -type f -print0 \
 
180
                | xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \
 
181
                | fgrep RPATH= \
 
182
                | cut -d: -f 1 \
 
183
                | xargs --no-run-if-empty chrpath -d; \
 
184
        set -e
 
185
 
 
186
        # libmariadbclient: move shared libraries (but not the rest like libheap.a & co)
 
187
        mv $(TMP)/usr/lib/mysql/libmysqlclient* $(TMP)/usr/lib
 
188
        perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient.la
 
189
        perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient_r.la
 
190
        # Check if our beloved versioned symbols are really there
 
191
        if [ "`objdump -T $(TMP)/usr/lib/libmysqlclient.so.16.0.0 | grep -c libmysqlclient_16`" -lt 500 ]; then \
 
192
          echo "ERROR: versioned symbols are absent"; \
 
193
          exit 1; \
 
194
        fi     
 
195
 
 
196
        # libmysqlclient-dev: forgotten header file since 3.23.25?
 
197
        cp $(BUILDDIR)/include/my_config.h $(TMP)/usr/include/mysql/
 
198
        cp include/my_dir.h $(TMP)/usr/include/mysql/
 
199
 
 
200
        # mysql-common: We now provide our own config file.
 
201
        # can't be mariadb-common, other packages insist
 
202
        install -d $(TMP)/etc/mysql
 
203
        install -m 0644 debian/additions/my.cnf $(TMP)/etc/mysql/my.cnf
 
204
 
 
205
        # mariadb-client
 
206
        install -m 0755 debian/additions/mysqlreport $(TMP)/usr/bin/
 
207
        install -m 0755 debian/additions/innotop/innotop $(TMP)/usr/bin/
 
208
        install -m 0644 debian/additions/innotop/innotop.1 $(TMP)/usr/share/man/man1/
 
209
 
 
210
        # mariadb-server
 
211
        install -m 0755 $(BUILDDIR)/scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe
 
212
        mkdir -p $(TMP)/usr/share/doc/mariadb-server-5.1/examples
 
213
        # We have a sane my.cnf, cruft not needed (remove my-*.cnf and config-*.cnf)
 
214
        #  $(TMP)/usr/share/mysql/*cnf      $(TMP)/usr/share/doc/mariadb-server-5.1/examples/
 
215
        rm -vf $(TMP)/usr/share/mysql/my-*.cnf \
 
216
                $(TMP)/usr/share/mysql/config-*.cnf \
 
217
                $(TMP)/usr/share/mysql/mi_test_all* \
 
218
               $(TMP)/usr/share/mysql/mysql-log-rotate \
 
219
               $(TMP)/usr/share/mysql/mysql.server \
 
220
               $(TMP)/usr/share/mysql/binary-configure
 
221
        nm -n $(BUILDDIR)/sql/mysqld |gzip -9 > $(TMP)/usr/share/doc/mariadb-server-5.1/mysqld.sym.gz
 
222
        install -m 0755 debian/additions/echo_stderr $(TMP)/usr/share/mysql/
 
223
        install -m 0755 debian/additions/debian-start $(TMP)/etc/mysql/
 
224
        install -m 0755 debian/additions/debian-start.inc.sh $(TMP)/usr/share/mysql/
 
225
 
 
226
        # mariadb-test
 
227
        mv $(TMP)/usr/mysql-test        $(TMP)/usr/share/mysql
 
228
 
 
229
        # lintian overrides
 
230
        mkdir -p $(TMP)/usr/share/lintian/overrides/
 
231
        cp debian/mysql-common.lintian-overrides       $(TMP)/usr/share/lintian/overrides/mysql-common
 
232
        cp debian/mariadb-server-5.1.lintian-overrides $(TMP)/usr/share/lintian/overrides/mariadb-server-5.1
 
233
        cp debian/mariadb-client-5.1.lintian-overrides $(TMP)/usr/share/lintian/overrides/mariadb-client-5.1
 
234
 
 
235
        # For 5.0 -> 5.1 transition
 
236
        d=$(TMP)/usr/share/mysql-common/internal-use-only/; \
 
237
        mkdir -p $$d; \
 
238
        cp debian/mariadb-server-5.1.mysql.init $$d/_etc_init.d_mysql; \
 
239
        cp debian/mariadb-server-5.1.mysql-server.logrotate $$d/_etc_logrotate.d_mysql-server; \
 
240
        cp debian/additions/debian-start $$d/_etc_mysql_debian-start;
 
241
 
 
242
        # install AppArmor profile
 
243
        install -D -m 644 debian/apparmor-profile $(TMP)/etc/apparmor.d/usr.sbin.mysqld
 
244
        # install Apport hook
 
245
        install -D -m 644 debian/mariadb-server-5.1.py $(TMP)/usr/share/apport/package-hooks/source_mariadb-5.1.py
 
246
 
 
247
        dh_movefiles
 
248
        
 
249
# Build architecture-independent files here.
 
250
binary-indep: build install
 
251
        @echo "RULES.binary-indep"
 
252
        dh_testdir -i
 
253
        dh_testroot -i
 
254
        dh_installdebconf -i
 
255
        dh_installdocs -i
 
256
        dh_installexamples -i
 
257
        dh_installmenu -i
 
258
        dh_installlogrotate -i
 
259
        dh_installinit -i
 
260
        dh_installcron -i 
 
261
        dh_installman -i
 
262
        dh_installinfo -i
 
263
        dh_installlogcheck -i
 
264
        dh_installchangelogs -i
 
265
        dh_link -i
 
266
        dh_compress -i
 
267
        dh_fixperms -i
 
268
        dh_installdeb -i
 
269
        dh_perl -i
 
270
        dh_gencontrol -i
 
271
        dh_md5sums -i
 
272
        dh_builddeb -i
 
273
        
 
274
# Build architecture-dependent files here.
 
275
binary-arch: build install
 
276
        @echo "RULES.binary-arch"
 
277
        dh_testdir 
 
278
        dh_testroot
 
279
 
 
280
        dh_installdebconf -a
 
281
        dh_installdocs -a
 
282
        dh_installexamples -a
 
283
        dh_installmenu -a
 
284
        dh_installlogrotate -a --name mysql-server
 
285
        # Start mysql in runlevel 19 before 20 where apache, proftpd etc gets
 
286
        # started which might depend on a running database server.
 
287
        dh_installinit -a --name=mysql -- defaults 19 21
 
288
        dh_installcron -a --name mysql-server
 
289
        dh_installman -a
 
290
        dh_installinfo -a
 
291
        dh_installlogcheck -a
 
292
        dh_installchangelogs -a
 
293
        dh_strip -a
 
294
        dh_link -a
 
295
        dh_compress -a
 
296
        dh_fixperms -a
 
297
        dh_makeshlibs -a
 
298
        dh_makeshlibs -plibmariadbclient16 -V'libmariadbclient16 (>= 5.1.21-1)'
 
299
        dh_installdeb -a
 
300
        dh_perl -a
 
301
        dh_shlibdeps -a -l debian/libmariadbclient16/usr/lib -L libmariadbclient16
 
302
        dh_gencontrol -a
 
303
        dh_md5sums -a
 
304
        dh_builddeb -a
 
305
 
 
306
source diff:
 
307
        @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
 
308
 
 
309
binary: binary-indep binary-arch
 
310
 
 
311
get-orig-source:
 
312
        @wget -nv -T10 -t3 \
 
313
          -O /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz \
 
314
          http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-$(DEB_UPSTREAM_VERSION_MAJOR_MINOR)/mysql-$(DEB_UPSTREAM_VERSION).tar.gz
 
315
        @tar xfz /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz -C /tmp
 
316
        @rm -rf /tmp/mysql-$(DEB_UPSTREAM_VERSION)/Docs
 
317
        @rm -rf /tmp/mysql-$(DEB_UPSTREAM_VERSION)/debian
 
318
        @mv /tmp/mysql-$(DEB_UPSTREAM_VERSION) /tmp/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig
 
319
        @cd /tmp ; tar czf $(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig
 
320
        @rm -f /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz
 
321
        @rm -rf /tmp/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig
 
322
 
 
323
.PHONY: clean clean-patched configure build binary binary-indep binary-arch install patch unpatch
 
324
 
 
325
# vim: ts=8