~ubuntu-branches/ubuntu/trusty/libav/trusty-proposed

« back to all changes in this revision

Viewing changes to debian/rules

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2013-10-22 23:24:08 UTC
  • mfrom: (1.3.36 sid)
  • Revision ID: package-import@ubuntu.com-20131022232408-b8tvvn4pyzri9mi3
Tags: 6:9.10-1ubuntu1
* Build all -extra flavors from this source package, as libav got demoted
  from main to universe, cf LP: #1243235
* Simplify debian/rules to follow exactly the code that debian executes
* New upstream (LP: #1180288) fixes lots of security issues (LP: #1242802)
* Merge from unstable, remaining changes:
  - build-depend on libtiff5-dev rather than libtiff4-dev,
    avoids FTBFS caused by imlib
  - follow the regular debian codepaths

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
DEB_SOURCE := $(shell dpkg-parsechangelog | sed -n 's/^Source: //p')
5
5
DEB_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: //p')
6
6
UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | sed -r 's/[^:]+://; s/-[^-]+$$//')
7
 
SHLIBS_VERSION := $(EPOCH)0.8.3-1~
 
7
SHLIBS_VERSION := $(EPOCH)9.1-1
8
8
 
9
9
# these package do not build -extra variants
10
 
LIB_PKGS := 
 
10
LIB_PKGS := $(shell sed -nr 's/^Package:[[:space:]]*(lib(avutil|avdevice|avformat|avfilter|avresample|swscale)[0-9]+)[[:space:]]*$$/\1/p' debian/control)
11
11
# these packages do build -extra variants
12
 
LIB_PKGS2 := $(shell sed -nr 's/^Package:[[:space:]]*(lib(avutil|avcodec|avdevice|avformat|avfilter|postproc|swscale)[0-9]+)[[:space:]]*$$/\1/p' debian/control)
 
12
LIB_PKGS2 := $(shell sed -nr 's/^Package:[[:space:]]*(libavcodec[0-9]+)[[:space:]]*$$/\1/p' debian/control)
13
13
# these packages are the -extra- variants
14
 
LIB_EXTRA_PKGS := $(shell sed -nr 's/^Package:[[:space:]]*(lib(avutil|avcodec|avdevice|avformat|avfilter|postproc|swscale)(-extra-)[0-9]+)[[:space:]]*$$/\1/p' debian/control)
 
14
LIB_EXTRA_PKGS := $(shell sed -nr 's/^Package:[[:space:]]*(libavcodec-extra-[0-9]+)[[:space:]]*$$/\1/p' debian/control)
15
15
 
16
16
# these are the -dev packages
17
17
DEV_PKGS := $(shell echo $(LIB_PKGS) $(LIB_PKGS2) | sed 's/[0-9]\+\>/-dev/g')
57
57
endif
58
58
 
59
59
configure-%: configure-stamp-%
60
 
 
61
60
configure-stamp-%: $(CONFIGURE)
62
61
        dh_testdir
63
62
        mkdir -p debian-$*
84
83
debian-shared/tools/qt-faststart: build-stamp-shared
85
84
        $(MAKE) -C debian-shared tools/qt-faststart V=1
86
85
 
87
 
build-doxy: build-doxy-stamp
88
 
build-doxy-stamp:
89
 
        dh_testdir
90
 
ifneq ($(DEB_SOURCE), libav-extra)
91
 
        [ ! -x /usr/bin/doxygen ] || doxygen
92
 
endif
93
 
        touch $@
94
 
 
95
86
build: build-stamp build-extra
96
87
build-stamp: $(addprefix build-stamp-, $(FLAVORS)) debian-shared/tools/qt-faststart
97
88
        touch $@
110
101
                $(addprefix debian-extra-, $(FLAVORS)) doxy
111
102
        dh_clean $(DH_INSTALL_FILES) $(wildcard formats*.txt) $(wildcard codecs*.txt)
112
103
 
113
 
get-orig-source:
114
 
        dh_testdir
115
 
        sh debian/get-orig-source.sh -d $(SVN_VERSION)
116
 
 
117
104
# The trailing newline is important!
118
105
define install_flavor
119
106
        $(MAKE) -C debian-$(1) install DESTDIR=$(CURDIR)/debian/tmp \
128
115
 
129
116
endef
130
117
 
 
118
# installs arch-dependent files only
131
119
install: install-common install-extra
132
120
install-common: build $(DH_INSTALL_FILES)
133
121
        dh_testdir
134
122
        dh_testroot
135
 
        dh_prep
136
 
ifeq ($(DEB_SOURCE), libav)
 
123
        dh_prep -a
 
124
        $(foreach flavor,$(FLAVORS),$(call install_flavor,$(flavor)))
 
125
        mkdir -p debian/tmp/etc
 
126
        install -m 644 -D doc/avserver.conf debian/tmp/etc/
 
127
        install -m 644 -D debian-shared/tools/qt-faststart debian/tmp/usr/bin/qt-faststart
 
128
        dh_install $(addprefix -N,$(LIB_EXTRA_PKGS)) \
 
129
                 --fail-missing --sourcedir=debian/tmp
 
130
        env LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)" \
 
131
        debian/tmp/usr/bin/avconv -formats | tee formats-$(DEB_HOST_ARCH).txt
 
132
        env LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)" \
 
133
        debian/tmp/usr/bin/avconv -codecs | tee codecs.txt
 
134
        dh_installdocs -plibavformat54 formats-$(DEB_HOST_ARCH).txt
 
135
        dh_installdocs -plibavcodec54 codecs.txt
 
136
install-extra: build $(DH_INSTALL_FILES)
 
137
        dh_testdir
 
138
        dh_testroot
 
139
        $(foreach flavor,$(filter-out static,$(FLAVORS)),$(call install_flavor_extra,$(flavor)))
 
140
        dh_install $(addprefix -p,$(LIB_EXTRA_PKGS)) --fail-missing \
 
141
                --sourcedir=debian/tmp/extra
 
142
        env LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(CURDIR)/debian/tmp/extra/usr/lib/$(DEB_HOST_MULTIARCH)" \
 
143
        debian/tmp/usr/bin/avconv -codecs | tee codecs.txt
 
144
        dh_installdocs -plibavcodec-extra-54 codecs.txt
 
145
ifeq ($(DEB_SOURCE), libav)
 
146
        dh_installdocs -a doc/APIchanges
 
147
        install -m 644 -D debian-shared/doc/*.html debian/libav-tools/usr/share/doc/libav-tools
 
148
        dh_installexamples -p libavcodec-dev libavcodec/api-example.c
 
149
        dh_installchangelogs -a Changelog
 
150
else
 
151
        dh_installchangelogs -a libav/Changelog
 
152
endif
 
153
 
 
154
binary-indep:
 
155
ifeq ($(DEB_SOURCE), libav)
 
156
        dh_testdir
 
157
        dh_testroot
 
158
        dh_prep -i
137
159
        # the libav-source package does exist in some derivatives such as ubuntu, etc.
138
160
        if grep -q 'Package: libav-source' debian/control; then \
139
161
          dh_installdirs -ptmp usr/src;  \
141
163
                 --exclude 'debian*' --exclude .git  --exclude .pc --exclude '*-stamp' \
142
164
                 --transform 's,^./,libav/,' ; \
143
165
        fi
144
 
        dh_installdirs -ptmp usr/src
145
 
        dh_installdirs -ptmp usr/share/doc/libav/html etc
146
 
        dh_installdirs -ptmp usr/share/doc/libav-doc/html
147
 
        $(foreach flavor,$(FLAVORS),$(call install_flavor,$(flavor)))
148
 
        # don't fail on binary-indep only builds.
149
 
        [ ! -d doxy ] || cp -af doxy/html debian/tmp/usr/share/doc/libav-doc
150
 
        install -m 644 -D doc/avserver.conf debian/tmp/etc/
151
 
        install -m 644 -D debian-shared/doc/*.html debian/tmp/usr/share/doc/libav/html/
152
 
        install -m 644 -D debian-shared/tools/qt-faststart debian/tmp/usr/bin/qt-faststart
153
 
        dh_install $(addprefix -N,$(LIB_EXTRA_PKGS)) -Nffmpeg -Xffmpeg \
154
 
                -Xffmpeg.1 -Xusr/share/doc/libav-doc \
155
 
                -Xusr/share/doc/libav --fail-missing --sourcedir=debian/tmp
156
 
        dh_install -pffmpeg --sourcedir=debian/tmp
157
 
        env LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)" \
158
 
        debian/tmp/usr/bin/avconv -formats | tee formats-$(DEB_HOST_ARCH).txt
159
 
        env LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)" \
160
 
        debian/tmp/usr/bin/avconv -codecs | tee codecs.txt
161
 
        dh_installdocs -plibavformat53 formats-$(DEB_HOST_ARCH).txt
162
 
        dh_installdocs -plibavcodec53 codecs.txt
163
 
else
164
 
        $(foreach flavor,$(FLAVORS),$(call install_flavor,$(flavor)))
165
 
        dh_install $(addprefix -N,$(LIB_EXTRA_PKGS)) -Nffmpeg -Xffmpeg \
166
 
                -Xffmpeg.1 -Xusr/share/doc/libav-doc \
167
 
                -Xusr/share/doc/libav --list-missing --sourcedir=debian/tmp
168
166
endif
169
 
 
170
 
install-extra: build $(DH_INSTALL_FILES)
171
 
        dh_testdir
172
 
        dh_testroot
173
 
        $(foreach flavor,$(filter-out static,$(FLAVORS)),$(call install_flavor_extra,$(flavor)))
174
 
        dh_install $(addprefix -p,$(LIB_EXTRA_PKGS)) -Xusr/share/doc/libav-doc \
175
 
                -Xusr/share/doc/libav --list-missing \
176
 
                --sourcedir=debian/tmp/extra
177
 
        env LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(CURDIR)/debian/tmp/extra/usr/lib/$(DEB_HOST_MULTIARCH)" \
178
 
        debian/tmp/usr/bin/avconv -codecs | tee codecs.txt
179
 
        dh_installdocs -plibavcodec-extra-53 codecs.txt
180
 
 
181
 
binary-indep: build-doxy install
 
167
        doxygen doc/Doxyfile
 
168
        mkdir -p debian/libav-doc/usr/share/doc/libav-doc
 
169
        mv -v doc/doxy/html debian/libav-doc/usr/share/doc/libav-doc
 
170
        dh_installdocs -i
 
171
        dh_installchangelogs -i
 
172
        dh_compress -i
 
173
        dh_fixperms -i
 
174
        dh_installdeb -i
 
175
        dh_gencontrol -i
 
176
        dh_md5sums -i
 
177
        dh_builddeb -i -- -Zxz
182
178
 
183
179
binary-arch: build install
184
180
        dh_testdir
185
181
        dh_testroot
186
182
        dh_installman -plibav-tools debian/qt-faststart.1
187
 
        dh_installdocs -A debian/README.Debian
188
183
ifeq ($(DEB_SOURCE), libav)
189
 
        dh_installdocs -p libavcodec-dev -plibavdevice-dev \
190
 
                -plibavformat-dev -plibavfilter-dev -plibpostproc-dev \
191
 
                -plibswscale-dev -plibavutil-dev -plibav-doc \
192
 
                doc/APIchanges
193
 
        dh_installexamples -p libav-tools doc/avserver.conf
194
 
        dh_installexamples -p libavcodec-dev libavcodec/api-example.c
195
 
        dh_strip
196
 
        dh_installchangelogs Changelog
 
184
        dh_strip -a --dbg-package=libav-dbg
197
185
else
198
 
        dh_strip
199
 
        dh_installchangelogs libav/Changelog
 
186
        dh_strip -a --dbg-package=libav-extra-dbg
200
187
endif
201
 
        dh_lintian
202
 
        dh_link
203
 
        dh_compress
204
 
        dh_fixperms
 
188
        dh_lintian -a
 
189
        dh_link -a
 
190
        dh_compress -a
 
191
        dh_fixperms -a
205
192
 
206
 
        for pkg in $(LIB_PKGS) $(LIB_EXTRA_PKGS); do \
 
193
        # operate on non -extra package producing packages
 
194
        for pkg in $(LIB_PKGS); do \
207
195
            dh_makeshlibs -p"$$pkg" -V"$$pkg (>= $(SHLIBS_VERSION))"; \
208
196
        done
 
197
        # operate e.g. the -extra- packages, produce shlibs that have alternative dependencies
 
198
        for pkg in $(LIB_EXTRA_PKGS); do \
 
199
            npkg=$$(echo "$$pkg" | sed -r 's/-extra-//'); \
 
200
            dh_makeshlibs -p"$$pkg" -V"$$npkg (>= $(SHLIBS_VERSION)) | $$pkg (>= $(EPOCH)$(UPSTREAM_VERSION))"; \
 
201
        done
 
202
        # operate on packages with -extra- variants such as libavcodec54 - produce shlibs that have alternative dependencies
209
203
        for pkg in $(LIB_PKGS2); do \
210
204
            upkg=$$(echo "$$pkg" | sed -r 's/([0-9]+)$$/-extra-\1/'); \
211
205
            dh_makeshlibs -p"$$pkg" -V"$$pkg (>= $(SHLIBS_VERSION)) | $$upkg (>= $(EPOCH)$(UPSTREAM_VERSION))"; \
212
206
        done
213
207
        dh_shlibdeps
214
 
        dh_installdeb
215
 
        dh_gencontrol
216
 
        dh_md5sums
217
 
        dh_builddeb -- -Zxz
 
208
        dh_installdeb -a
 
209
        dh_gencontrol -a
 
210
        dh_md5sums -a
 
211
        dh_builddeb -a -- -Zxz
218
212
 
219
213
binary: binary-indep binary-arch
220
214
 
221
 
.PHONY: build $(addprefix build-, $(FLAVORS)) build-doxy \
 
215
.PHONY: build $(addprefix build-, $(FLAVORS)) \
222
216
        clean \
223
217
        configure $(addprefix configure-, $(FLAVORS)) \
224
218
        binary binary-indep binary-arch \
225
 
        install \
 
219
        install install-common install-extra \
226
220
        get-orig-source